diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index 47f5f835..120a5f20 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -109,7 +109,7 @@ steps: - label: ":video_game: Unity Android Integration Tests" depends_on: build env: - UNITY_VERSION: 6000.0.25f1 + UNITY_VERSION: 6000.0.36f1 commands: - chmod +x bin/arm64-macos-bugsnag-cli - bundle install @@ -136,111 +136,20 @@ steps: - group: ":react: React Native" steps: - - label: "RN 0.69 :ios: Integration Tests" - skip: "issue with Boost https://github.com/facebook/react-native/issues/42180" - depends_on: build + - label: ":large_blue_circle: :large_blue_circle: :large_blue_circle: REACT NATIVE ANDROID STEPS :large_blue_circle: :large_blue_circle: :large_blue_circle:" + depends_on: + - "build" agents: - queue: macos-12-arm - env: - XCODE_VERSION: 13 + queue: "macos" + timeout_in_minutes: 5 commands: - - chmod +x bin/arm64-macos-bugsnag-cli - - bundle install - - bundle exec maze-runner features/react-native-ios/rn0_69.feature - plugins: - artifacts#v1.5.0: - download: - - bin/arm64-macos-bugsnag-cli - upload: - - maze_output/**/* + - buildkite-agent pipeline upload .buildkite/react-native/android.pipeline.yml - - label: "RN 0.70 :ios: Integration Tests" - depends_on: build + - label: ":large_blue_circle: :large_blue_circle: :large_blue_circle: REACT NATIVE iOS STEPS :large_blue_circle: :large_blue_circle: :large_blue_circle:" + depends_on: + - "build" agents: - queue: macos-12-arm - env: - XCODE_VERSION: 13 + queue: "macos" + timeout_in_minutes: 5 commands: - - chmod +x bin/arm64-macos-bugsnag-cli - - bundle install - - bundle exec maze-runner features/react-native-ios/rn0_70.feature - plugins: - artifacts#v1.5.0: - download: - - bin/arm64-macos-bugsnag-cli - upload: - - maze_output/**/* - - - label: "RN 0.72 :ios: Integration Tests" - depends_on: build - agents: - queue: macos-12-arm - env: - XCODE_VERSION: 14 - commands: - - chmod +x bin/arm64-macos-bugsnag-cli - - bundle install - - bundle exec maze-runner features/react-native-ios/rn0_72.feature - plugins: - artifacts#v1.5.0: - download: - - bin/arm64-macos-bugsnag-cli - upload: - - maze_output/**/* - - - label: "RN 0.69 :android: Integration Tests" - depends_on: build - commands: - - chmod +x bin/arm64-macos-bugsnag-cli - - bundle install - - bundle exec maze-runner features/react-native-android/rn0_69.feature - plugins: - artifacts#v1.5.0: - download: - - bin/arm64-macos-bugsnag-cli - upload: - - maze_output/**/* - - - label: "RN 0.70 :android: Integration Tests" - depends_on: build - commands: - - chmod +x bin/arm64-macos-bugsnag-cli - - bundle install - - bundle exec maze-runner features/react-native-android/rn0_70.feature - plugins: - artifacts#v1.5.0: - download: - - bin/arm64-macos-bugsnag-cli - upload: - - maze_output/**/* - - - label: "RN 0.72 :android: Integration Tests" - depends_on: build - commands: - - chmod +x bin/arm64-macos-bugsnag-cli - - bundle install - - bundle exec maze-runner features/react-native-android/rn0_72.feature - plugins: - artifacts#v1.5.0: - download: - - bin/arm64-macos-bugsnag-cli - upload: - - maze_output/**/* - - - label: RN 0.72 Integration Tests - depends_on: build - agents: - queue: macos-12-arm - env: - XCODE_VERSION: 14 - commands: - - chmod +x bin/arm64-macos-bugsnag-cli - - bundle install - - bundle exec maze-runner features/react-native - plugins: - artifacts#v1.5.0: - download: - - bin/arm64-macos-bugsnag-cli - upload: - - maze_output/**/* - + - buildkite-agent pipeline upload .buildkite/react-native/ios.pipeline.yml diff --git a/.buildkite/react-native/android.pipeline.yml b/.buildkite/react-native/android.pipeline.yml new file mode 100644 index 00000000..b43812ce --- /dev/null +++ b/.buildkite/react-native/android.pipeline.yml @@ -0,0 +1,31 @@ +agents: + queue: macos-14 + +steps: + - label: ':android: Build RN {{matrix}} CLI test fixture' + key: "build-react-native-cli-android-fixture" + timeout_in_minutes: 15 + env: + JAVA_VERSION: "17" + NODE_VERSION: "18" + RN_VERSION: "{{matrix}}" + RCT_NEW_ARCH_ENABLED: "0" + BUILD_ANDROID: "true" + commands: + - "chmod +x bin/arm64-macos-bugsnag-cli" + - "bundle install" + - "bundle exec maze-runner features/react-native/android.feature" + matrix: + - "0.70" + - "0.73" + - "0.75" + plugins: + artifacts#v1.5.0: + download: + - bin/arm64-macos-bugsnag-cli + upload: + - maze_output/**/* + retry: + automatic: + - exit_status: "*" + limit: 1 \ No newline at end of file diff --git a/.buildkite/react-native/ios.pipeline.yml b/.buildkite/react-native/ios.pipeline.yml new file mode 100644 index 00000000..a2489a72 --- /dev/null +++ b/.buildkite/react-native/ios.pipeline.yml @@ -0,0 +1,31 @@ +agents: + queue: macos-14 + +steps: + - label: ':ios: Build RN {{matrix}} CLI test fixture' + key: "build-react-native-cli-ios-fixture" + timeout_in_minutes: 15 + env: + JAVA_VERSION: "17" + NODE_VERSION: "18" + RN_VERSION: "{{matrix}}" + RCT_NEW_ARCH_ENABLED: "0" + BUILD_IOS: "true" + commands: + - "chmod +x bin/arm64-macos-bugsnag-cli" + - "bundle install" + - "bundle exec maze-runner features/react-native/ios.feature" + matrix: + - "0.70" + - "0.73" + - "0.75" + plugins: + artifacts#v1.5.0: + download: + - bin/arm64-macos-bugsnag-cli + upload: + - maze_output/**/* + retry: + automatic: + - exit_status: "*" + limit: 1 \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index f06a17f8..fc204da0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,195 +1,180 @@ # Changelog -## TBD +## [3.0.0] - 2025-04-07 -### Enhancements -- Adds support for uploading breakpad .sym files [178](https://github.com/bugsnag/bugsnag-cli/pull/178) - -## 2.9.2 (2025-02-11) - -### Fixes -- Get NDK version from the `source.properties` file when uploading NDK symbol files [172](https://github.com/bugsnag/bugsnag-cli/pull/172) - -## 2.9.1 - (2025-01-23) - -### Fixes - -- Switch `js-yaml` to `yaml` for the NodeJS package [168](https://github.com/bugsnag/bugsnag-cli/pull/168) - -## 2.9.0 (2025-01-20) - -### Enhancements - -- Add a wrapper for the `npm` package to interact with the BugSnag CLI [161](https://github.com/bugsnag/bugsnag-cli/pull/161) -- Add the support for .so.* files when processing ndk symbol files [163](https://github.com/bugsnag/bugsnag-cli/pull/163) -- Add additional logging to the Android AAB upload command [165](https://github.com/bugsnag/bugsnag-cli/pull/165) - -## 2.8.0 (2025-01-06) - -### Enhancements - -- Add the Xcode Archive Command to support the uploading of xcarchive files [156](https://github.com/bugsnag/bugsnag-cli/pull/156) -- Rename the `dsym` upload command to `xcode-build` to better reflect the command's purpose. `dsym` will be removed in the next major release [156](https://github.com/bugsnag/bugsnag-cli/pull/156) - -## 2.7.0 (2024-11-26) - -### Enhancements - -- Add the `--configuration` option to the `upload dsym` command. [154](https://github.com/bugsnag/bugsnag-cli/pull/154) +This major release includes some breaking changes – please see our [Upgrading Guide](./UPGRADING.md) for full details. -## 2.6.3 (2024-11-26) - -### Enhancements +### Added +- Ensure that the React Native iOS command works with Xcode archives by default [#176](https://github.com/bugsnag/bugsnag-cli/pull/176) +- Create build wrapper for the @bugsnag/cli node package [#186](https://github.com/bugsnag/bugsnag-cli/pull/186) +- dSYM Super command to handle both Xcode Archives and Builds [#182](https://github.com/bugsnag/bugsnag-cli/pull/182) +- Adds support for uploading breakpad .sym files [178](https://github.com/bugsnag/bugsnag-cli/pull/178) -- Default the `--project-root` to the current working directory for the `upload dsym` command. [148](https://github.com/bugsnag/bugsnag-cli/pull/148) +### Fixed +- Update the path for AndroidManifest.xml in newer versions of RN [#176](https://github.com/bugsnag/bugsnag-cli/pull/176) +- Update how the `--project-root` is worked out for the `upload js` command [#187](https://github.com/bugsnag/bugsnag-cli/pull/187) +- Ensure we resolve the source path relative to the source map path for the JS command [#188](https://github.com/bugsnag/bugsnag-cli/pull/188) +- Preserve folder structure or the bundle URL during upload for the JS command [#189](https://github.com/bugsnag/bugsnag-cli/pull/189) -### Fixes +### Removed +- Remove the deprecated option `--fail-on-upload-error` [#191](https://github.com/bugsnag/bugsnag-cli/pull/191) -- Add the `--code-bundle-id` option to the `upload js` command. [150](https//github.com/bugsnag/bugsnag-cli/pull/150) +## [2.9.2] - 2025-02-11 -## 2.6.2 (2024-10-17) +### Fixed +- Get NDK version from the `source.properties` file when uploading NDK symbol files [#172](https://github.com/bugsnag/bugsnag-cli/pull/172) -### Fixes +## [2.9.1] - 2025-01-23 -- Ensure that the node package is configured correctly so that you can run `npx @bugsnag/cli` and `yarn bugsnag-cli`. [144](https://github.com/bugsnag/bugsnag-cli/pull/144) -- Replace the axios dependency with fetch to reduce the size of the package. [145](https://github.com/bugsnag/bugsnag-cli/pull/144) +### Fixed +- Switch `js-yaml` to `yaml` for the NodeJS package [#168](https://github.com/bugsnag/bugsnag-cli/pull/168) -## 2.6.1 (2024-09-18) +## [2.9.0] - 2025-01-20 -### Fixes +### Added +- Add a wrapper for the `npm` package to interact with the BugSnag CLI [#161](https://github.com/bugsnag/bugsnag-cli/pull/161) +- Add support for `.so.*` files when processing NDK symbol files [#163](https://github.com/bugsnag/bugsnag-cli/pull/163) +- Add additional logging to the Android AAB upload command [#165](https://github.com/bugsnag/bugsnag-cli/pull/165) -- Ensure that we only pass either `--code-bundle-id` or `--version-code`/`--version-name`/`--bundle-version` to the upload API. [140](https://github.com/bugsnag/bugsnag-cli/pull/140) +## [2.8.0] - 2025-01-06 -## 2.6.0 (2024-09-09) +### Added +- Add the Xcode Archive Command to support the uploading of `xcarchive` files [#156](https://github.com/bugsnag/bugsnag-cli/pull/156) +- Rename the `dsym` upload command to `xcode-build` to better reflect its purpose. `dsym` will be removed in the next major release [#156](https://github.com/bugsnag/bugsnag-cli/pull/156) -### Enhancements +## [2.7.0] - 2024-11-26 -- Add React Native super command [127](https://github.com/bugsnag/bugsnag-cli/pull/127) +### Added +- Add the `--configuration` option to the `upload dsym` command [#154](https://github.com/bugsnag/bugsnag-cli/pull/154) -### Fixes +## [2.6.3] - 2024-11-26 -- Allow spaces when processing and uploading dSYM files [135](https://github.com/bugsnag/bugsnag-cli/pull/135) +### Added +- Default the `--project-root` to the current working directory for the `upload dsym` command [#148](https://github.com/bugsnag/bugsnag-cli/pull/148) -## 2.5.0 (2024-07-31) +### Fixed +- Add the `--code-bundle-id` option to the `upload js` command [#150](https://github.com/bugsnag/bugsnag-cli/pull/150) -### Enhancements +## [2.6.2] - 2024-10-17 -- Add support for JavaScript source maps [121](https://github.com/bugsnag/bugsnag-cli/pull/121) +### Fixed +- Ensure that the Node package is configured correctly so that `npx @bugsnag/cli` and `yarn bugsnag-cli` work as expected [#144](https://github.com/bugsnag/bugsnag-cli/pull/144) +- Replace the axios dependency with fetch to reduce package size [#145](https://github.com/bugsnag/bugsnag-cli/pull/145) -## 2.4.1 (2024-07-17) +## [2.6.1] - 2024-09-18 -### Fixes +### Fixed +- Ensure that only either `--code-bundle-id` or `--version-code`/`--version-name`/`--bundle-version` is passed to the upload API [#140](https://github.com/bugsnag/bugsnag-cli/pull/140) -- Ensure that extracted `.aab` files can be processed by the Android AAB upload function [114](https://github.com/bugsnag/bugsnag-cli/pull/114) -- Dont show `--upload-api-root-url` and `--build-api-root-url` flags in the general help output [115](https://github.com/bugsnag/bugsnag-cli/pull/115) +## [2.6.0] - 2024-09-09 -## 2.4.0 (2024-07-08) +### Added +- Add React Native super command [#127](https://github.com/bugsnag/bugsnag-cli/pull/127) -### Enhancements +### Fixed +- Allow spaces when processing and uploading dSYM files [#135](https://github.com/bugsnag/bugsnag-cli/pull/135) -- Restrict input for the `--provider` option for `create-build` [102](https://github.com/bugsnag/bugsnag-cli/pull/102) +## [2.5.0] - 2024-07-31 -### Fixes +### Added +- Add support for JavaScript source maps [#121](https://github.com/bugsnag/bugsnag-cli/pull/121) -- Ensure that the binary is correctly installed when installing via PNPM and Yarn [109](https://github.com/bugsnag/bugsnag-cli/pull/109) +## [2.4.1] - 2024-07-17 -## 2.3.0 (2024-06-04) +### Fixed +- Ensure that extracted `.aab` files can be processed by the Android AAB upload function [#114](https://github.com/bugsnag/bugsnag-cli/pull/114) +- Hide `--upload-api-root-url` and `--build-api-root-url` flags in the general help output [#115](https://github.com/bugsnag/bugsnag-cli/pull/115) -### Enhancements +## [2.4.0] - 2024-07-08 -- Add the ability to set the log leveL via the `--log-level` flag [103](https://github.com/bugsnag/bugsnag-cli/pull/103) -- Allow more flexible path searching when uploading NDK symbol files [98](https://github.com/bugsnag/bugsnag-cli/pull/98) +### Added +- Restrict input for the `--provider` option for `create-build` [#102](https://github.com/bugsnag/bugsnag-cli/pull/102) -### Fixes +### Fixed +- Ensure binary installation works correctly via PNPM and Yarn [#109](https://github.com/bugsnag/bugsnag-cli/pull/109) -- Fix the error message when `--version-name` is missing [103](https://github.com/bugsnag/bugsnag-cli/pull/103) +## [2.3.0] - 2024-06-04 -## 2.2.0 (2024-04-17) +### Added +- Add the ability to set the log level via the `--log-level` flag [#103](https://github.com/bugsnag/bugsnag-cli/pull/103) +- Allow more flexible path searching when uploading NDK symbol files [#98](https://github.com/bugsnag/bugsnag-cli/pull/98) -### Enhancements +### Fixed +- Fix the error message when `--version-name` is missing [#103](https://github.com/bugsnag/bugsnag-cli/pull/103) -- `upload android-proguard` will now attempt to automatically locate the `classes.dex` files if no build-uuid or dex-files are found or specified [92](https://github.com/bugsnag/bugsnag-cli/pull/92) -- Added the `--no-build-uuid` option to the `upload android-*` options [92](https://github.com/bugsnag/bugsnag-cli/pull/92) -- Added `Windows_NT` to `supported-platforms.yml` [95](https://github.com/bugsnag/bugsnag-cli/pull/95) +## [2.2.0] - 2024-04-17 -## 2.1.1 (2023-03-22) +### Added +- `upload android-proguard` will now attempt to automatically locate the `classes.dex` files if no build-uuid or dex-files are found or specified [#92](https://github.com/bugsnag/bugsnag-cli/pull/92) +- Added the `--no-build-uuid` option to the `upload android-*` options [#92](https://github.com/bugsnag/bugsnag-cli/pull/92) +- Added `Windows_NT` to `supported-platforms.yml` [#95](https://github.com/bugsnag/bugsnag-cli/pull/95) -### Fixes +## [2.1.1] - 2023-03-22 -- Ensure that the `--retries` flag is correctly passed to the Unity Android upload API. [91](https://github.com/bugsnag/bugsnag-cli/pull/91) +### Fixed +- Ensure that the `--retries` flag is correctly passed to the Unity Android upload API. [#91](https://github.com/bugsnag/bugsnag-cli/pull/91) -## 2.1.0 (2023-03-18) +## [2.1.0] - 2023-03-18 -### Deprecations -- The `--fail-on-upload-error` option now has no affect: upload commands will now all return a non-zero exit code if the upload is unsuccessful. All 4xx and 5xx status codes from the upload API are treated as errors apart from duplicate files (409), which the command will not treat as an error case to allow re-run commands to succeed. [95](https://github.com/bugsnag/bugsnag-cli/pull/90) +### Removed +- The `--fail-on-upload-error` option now has no affect: upload commands will now all return a non-zero exit code if the upload is unsuccessful. All 4xx and 5xx status codes from the upload API are treated as errors apart from duplicate files (409), which the command will not treat as an error case to allow re-run commands to succeed. [#95](https://github.com/bugsnag/bugsnag-cli/pull/90) -### Enhancements +### Added - Add support for React Native source maps for iOS [online docs](https://docs.bugsnag.com/build-integrations/bugsnag-cli/upload-rn-ios/) - Add support for dSYM uploads for iOS [online docs](https://docs.bugsnag.com/build-integrations/bugsnag-cli/upload-dsym/) -- Allow `create build` to extract relevant information from a given Android manifest or AAB file.[65](https://github.com/bugsnag/bugsnag-cli/pull/65) +- Allow `create build` to extract relevant information from a given Android manifest or AAB file. [#65](https://github.com/bugsnag/bugsnag-cli/pull/65) -### Fixes +### Fixed -- Ensure that `--ios-app-path` exists when passed as an option via the `upload dart` CLI. [67](https://github.com/bugsnag/bugsnag-cli/pull/67) -- Ensure that uploads are retried when passing the `--retries=x` argument to the CLI. [70](https://github.com/bugsnag/bugsnag-cli/pull/70) +- Ensure that `--ios-app-path` exists when passed as an option via the `upload dart` CLI. [#67](https://github.com/bugsnag/bugsnag-cli/pull/67) +- Ensure that uploads are retried when passing the `--retries=x` argument to the CLI. [#70](https://github.com/bugsnag/bugsnag-cli/pull/70) -## 2.0.0 (2023-10-17) +## [2.0.0] - 2023-10-17 -### Breaking Changes - -- Remove deprecated (renamed) CLI options - `--version`, `--app-version`, `--app-version-code` and `--app-bundle-version`. [52](https://github.com/bugsnag/bugsnag-cli/pull/52) +### Removed +- Remove deprecated (renamed) CLI options - `--version`, `--app-version`, `--app-version-code` and `--app-bundle-version`. [#52](https://github.com/bugsnag/bugsnag-cli/pull/52) See [Upgrading Guide](./UPGRADING.md) for full details. -### Enhancements - -- Add support for Unity Android symbol files. [56](https://github.com/bugsnag/bugsnag-cli/pull/56) -- Add `--version` flag to the command to retrieve the version of the installed CLI. [51](https://github.com/bugsnag/bugsnag-cli/pull/51) -- Add `--dry-run` flag to all upload commands to validate but not upload source maps. [54](https://github.com/bugsnag/bugsnag-cli/pull/54) -- Automatically generate a unique value for the `buildUUID` parameter from `.aab` files when not specified in the `AndroidManifest` or `--build-uuid` option. [54](https://github.com/bugsnag/bugsnag-cli/pull/54) -- Add `--dex-files` flag to `upload android-proguard` to generate a unique value for the `buildUUID` from `classes.dex` files when uploading a `mapping.txt` [61](https://github.com/bugsnag/bugsnag-cli/pull/61) - -## 1.2.2 (2023-07-11) - -### Enhancements - -- Do not modify the projects package.json when installing the CLI via NPM. [50](https://github.com/bugsnag/bugsnag-cli/pull/50) +### Added -- Adjust `index.android.bundle` path checking for React Native Android to ensure that paths are tested correctly. [49](https://github.com/bugsnag/bugsnag-cli/pull/49) +- Add support for Unity Android symbol files. [#56](https://github.com/bugsnag/bugsnag-cli/pull/56) +- Add `--version` flag to the command to retrieve the version of the installed CLI. [#51](https://github.com/bugsnag/bugsnag-cli/pull/51) +- Add `--dry-run` flag to all upload commands to validate but not upload source maps. [#54](https://github.com/bugsnag/bugsnag-cli/pull/54) +- Automatically generate a unique value for the `buildUUID` parameter from `.aab` files when not specified in the `AndroidManifest` or `--build-uuid` option. [#54](https://github.com/bugsnag/bugsnag-cli/pull/54) +- Add `--dex-files` flag to `upload android-proguard` to generate a unique value for the `buildUUID` from `classes.dex` files when uploading a `mapping.txt` [#61](https://github.com/bugsnag/bugsnag-cli/pull/61) -## 1.2.1 (2023-07-03) +## [1.2.2] - 2023-07-11 -### Enhancements +### Added +- Do not modify the projects package.json when installing the CLI via NPM. [#50](https://github.com/bugsnag/bugsnag-cli/pull/50) +- Adjust `index.android.bundle` path checking for React Native Android to ensure that paths are tested correctly. [#49](https://github.com/bugsnag/bugsnag-cli/pull/49) -- Allow non-standard variants when not providing the bundle path as a flag to the CLI. [44](https://github.com/bugsnag/bugsnag-cli/pull/44) +## [1.2.1] - 2023-07-03 -- Add bundle path support for React Native 0.72. [46](https://github.com/bugsnag/bugsnag-cli/pull/46) +### Added +- Allow non-standard variants when not providing the bundle path as a flag to the CLI. [#44](https://github.com/bugsnag/bugsnag-cli/pull/44) +- Add bundle path support for React Native 0.72. [#46](https://github.com/bugsnag/bugsnag-cli/pull/46) -## 1.2.0 (2023-06-29) +## [1.2.0] - 2023-06-29 -### Enhancements +### Added +- Add support for installing the CLI via NPM - [#39](https://github.com/bugsnag/bugsnag-cli/pull/39) +- Move global `appVersion`, `appVersionCode` and `appBundleVersion` flags to sub commands for `dart` and `create-build` - [#41](https://github.com/bugsnag/bugsnag-cli/pull/41) +- Get values from Android AAB manifest via resource ID - [#41](https://github.com/bugsnag/bugsnag-cli/pull/41) -- Add support for installing the CLI via NPM - [39](https://github.com/bugsnag/bugsnag-cli/pull/39) +### Fixed +- Correct `buildUUID` name in server requests for Android Proguard - [#41](https://github.com/bugsnag/bugsnag-cli/pull/41) -- Move global `appVersion`, `appVersionCode` and `appBundleVersion` flags to sub commands for `dart` and `create-build` - [41](https://github.com/bugsnag/bugsnag-cli/pull/41) +## [1.1.1] -v2023-05-25 -- Get values from Android AAB manifest via resource ID - [41](https://github.com/bugsnag/bugsnag-cli/pull/41) +### Fixed +- Fix how we check for the AndroidManifest.xml file for Android AAB - [#37](https://github.com/bugsnag/bugsnag-cli/pull/37) -### Fixes - -- Correct `buildUUID` name in server requests for Android Proguard - [41](https://github.com/bugsnag/bugsnag-cli/pull/41) - -## 1.1.1 (2023-05-25) - -### Fixes - -- Fix how we check for the AndroidManifest.xml file for Android AAB - [37](https://github.com/bugsnag/bugsnag-cli/pull/37) - -## 1.1.0 (2023-05-10) - -### Enhancements +## [1.1.0] - 2023-05-10 +### Added Add support for: - React Native source maps for Android - see our [online docs](https://docs.bugsnag.com/build-integrations/bugsnag-cli/upload-rn-android/) - Android AAB files - see our [online docs](https://docs.bugsnag.com/build-integrations/bugsnag-cli/upload-android-aab/) @@ -198,6 +183,5 @@ Add support for: Add the `create-build` command to provide extra information whenever you build, release, or deploy your application. - see our [online docs](https://docs.bugsnag.com/build-integrations/bugsnag-cli/create-build/) -## 1.0.0 (2022-11-29) - +## [1.0.0] - 2022-11-29 - Initial release with support for Dart symbol files – see our [online docs](https://docs.bugsnag.com/build-integrations/bugsnag-cli/upload-dart/). diff --git a/README.md b/README.md index f69af134..5f5e636c 100644 --- a/README.md +++ b/README.md @@ -33,13 +33,15 @@ The script downloads the appropriate binary and attempts to install it to `~/.lo ### NPM -To install or upgrade the BugSnag CLI via `npm`, you can run the following command: +If your project uses `npm` or `yarn`, the CLI can be installed by adding the [`@bugsnag/cli`](https://www.npmjs.com/package/@bugsnag/cli) package: -`npm install @bugsnag/cli` +```sh +npm install @bugsnag/cli` +``` -## Supported commands +It can then be executed from your project scripts at `/node_modules/.bin/bugsnag-cli` or using `npx @bugsnag/cli`. -This tool is currently being developed. It currently supports the following commands: +## Supported commands ### Create builds @@ -49,86 +51,18 @@ Allows you to create a build within BugSnag to enrich releases shown in the BugS See the [`create-build`](https://docs.bugsnag.com/build-integrations/bugsnag-cli/create-build/) command reference for full usage information. -### Android NDK mapping files - -For apps that use the [NDK](https://developer.android.com/ndk/), this command extracts symbols from `.so` files and uploads them along with version information. - - $ bugsnag-cli upload android-ndk \ - app/build/intermediates/merged_native_libs/release/out/lib/arm64-v8a/libMyApp.so - -See the [`upload android-ndk`](https://docs.bugsnag.com/build-integrations/bugsnag-cli/upload-android-ndk/) command reference for full usage information. - -### Android Proguard mapping flies - -If you are using [ProGuard](https://developer.android.com/studio/build/shrink-code.html), [DexGuard](https://www.guardsquare.com/en/dexguard), or [R8](https://r8.googlesource.com/r8#d8-dexer-and-r8-shrinker) to minify and optimize your app, this command uploads the mapping file along with version information from your project directory: - - $ bugsnag-cli upload android-proguard app/build/outputs/proguard/release/mapping.txt - -See the [`upload android-proguard`](https://docs.bugsnag.com/build-integrations/bugsnag-cli/upload-android-proguard/) command reference for full usage information. - -### Android App Bundle (AAB) files - -If you distribute your app as an [Android App Bundle](https://developer.android.com/guide/app-bundle) (AAB), they contain all required files and so can be uploaded in a single command: - - $ bugsnag-cli upload android-aab app/build/outputs/bundle/release/app-release.aab - -See the [`upload android-aab`](https://docs.bugsnag.com/build-integrations/bugsnag-cli/upload-android-ndk/) command reference for full usage information. - -### React Native JavaScript source maps (Android only) - -To get unminified stack traces for JavaScript code in your React Native app built for Android, source maps must be generated and can be uploaded to BugSnag using the following command from the root of your project: - - $ bugsnag-cli upload react-native-android - -See the [`upload react-native-android`](https://docs.bugsnag.com/build-integrations/bugsnag-cli/upload-rn-android/) command reference for full usage information. - -### React Native JavaScript source maps (iOS only) - -To get unminified stack traces for JavaScript code in your React Native app built for iOS, source maps must be generated and uploaded to BugSnag. - - $ bugsnag-cli upload react-native-ios - -See the [`upload react-native-ios`](https://docs.bugsnag.com/build-integrations/bugsnag-cli/upload-rn-ios/) command reference for full usage information. - -### JavaScript source maps - -To get unminified stack traces for JavaScript code on the web, source maps must be generated and uploaded to BugSnag. - - $ bugsnag-cli upload js - -See the [`upload js`](https://docs.bugsnag.com/build-integrations/bugsnag-cli/upload-js/) command reference for full usage information. - -### Dart symbols for Flutter - -If you are stripping debug symbols from your Dart code when building your Flutter apps, you will need to upload symbol files in order to see full stacktraces using the following command: - - $ bugsnag-cli upload dart --api-key=YOUR_API_KEY app-debug-info/ - -### dSYM files from an Xcode build (iOS, macOS, tvOS) - -Upload dSYM files generated from a Build in Xcode to allow BugSnag to show human-friendly function names, file paths, and line numbers in your iOS, macOS, and tvOS stacktraces. - - $ bugsnag-cli upload xcode-build - -### dSYM files from an Xcode Archive (iOS, macOS, tvOS) - -Upload dSYM files generated from an Archive in Xcode to allow BugSnag to show human-friendly function names, file paths, and line numbers in your iOS, macOS, and tvOS stacktraces. - - $ bugsnag-cli upload xcode-archive - -### Unity Symbol Files (Android only) - -The unity-android command uploads the IL2CPP symbols from the .symbols.zip file produced by the Unity build (see [Unity documentation](https://docs.unity3d.com/Manual/android-symbols.html) for more information) to the [NDK symbol API](https://d1upynpnqddd6j.cloudfront.net/api/ndk-symbol-mapping-upload/). - - $ bugsnag-cli upload unity-android /path/to/build/directory - -### Breakpad symbol files +### Symbol & mapping file uploads -Upload [Breakpad](https://chromium.googlesource.com/breakpad/breakpad/) `.sym` files, generated by the `dump_syms` tool. +Simplifies the upload of the various symbol and mapping files required to make your stacktraces readable in the BugSnag dashboard. Where possible files the files to upload are located automatically and the parameters, such as API key, located in project files. However all options can be overridden to allow you to customize the command for your build system. - $ bugsnag-cli upload breakpad /path/to/mylib.sym +Supported uploads with links to online docs for the file type: -See our [Breakpad documentation](https://docs.bugsnag.com/api/breakpad-symbol-upload/#generating-symbol-files) for more information on how to generate symbol files. +* Android (obfuscation [mapping]((https://docs.bugsnag.com/build-integrations/bugsnag-cli/upload-android-proguard/)) and [native symbol]((https://docs.bugsnag.com/build-integrations/bugsnag-cli/upload-android-ndk/)) files, from builds or [AAB]((https://docs.bugsnag.com/build-integrations/bugsnag-cli/upload-android-aab/)) files) +* iOS (`.dSYM` from [builds]((https://docs.bugsnag.com/build-integrations/bugsnag-cli/upload-xcode-build/)) or [archives](https://docs.bugsnag.com/build-integrations/bugsnag-cli/upload-xcode-archive/)) +* JavaScript source maps – for [web](https://docs.bugsnag.com/build-integrations/bugsnag-cli/upload-js/) and [React Native]((https://docs.bugsnag.com/build-integrations/bugsnag-cli/upload-rn/)) +* Unity ([Android symbols](https://docs.bugsnag.com/build-integrations/bugsnag-cli/upload-unity-android/)) +* Dart ([stripped symbols](https://docs.bugsnag.com/build-integrations/bugsnag-cli/upload-dart/)) +* Breakpad ([generated symbol files](https://docs.bugsnag.com/build-integrations/bugsnag-cli/upload-breakpad/)) ## BugSnag On-Premise diff --git a/UPGRADING.md b/UPGRADING.md index e6b16ea4..0771b856 100644 --- a/UPGRADING.md +++ b/UPGRADING.md @@ -1,5 +1,22 @@ # Upgrading Guide +## v2.x to v3.x + +### Breaking changes + +When using the `upload dsym` and `upload react-native` commands, Xcode archives are now prioritized over dSYMs found inside the project from a build. This means that if you have both an archive and a build, the CLI will search the default archive location set in Xcode for the latest archive for that day and upload the dSYMs from the archive. + +The `upload xcode-build` commands can be used if you want to always pick dSYM files from a project build instead. + +### Deprecated options + +The following options have been removed from the CLI: + +| Command | Removed | Replacement | +|-------------------------------|--------------------------| ------------------ | +| `upload` | `--fail-on-upload-error` | | + + ## v1.x to v2.x ### Deprecated options diff --git a/bugsnag-cli-wrapper.js b/bugsnag-cli-wrapper.js index 9538d312..ff9bbfc8 100644 --- a/bugsnag-cli-wrapper.js +++ b/bugsnag-cli-wrapper.js @@ -1,20 +1,17 @@ -const { exec } = require('child_process'); +const { exec } = require('child_process') /** * - * @typedef {Object} BugsnagUploadOptions + * @typedef {Object} BugsnagOptions * @property {?string} apiKey - The API key for authentication. Optional. * @property {?boolean} dryRun - Whether to perform a dry run without actually uploading. Defaults to `false`. Optional. - * @property {?boolean} failOnUploadError - Whether to fail the process on upload error. Defaults to `false`. Optional. * @property {?string} logLevel - The log level for output. Optional. * @property {?number} port - The port for the connection. Defaults to `443`. Optional. + * @property {?boolean} failOnUploadError - Whether to fail the process on upload error. Defaults to `false`. Optional. * @property {?boolean} verbose - Whether to enable verbose logging. Defaults to `false`. Optional. * @property {?boolean} overwrite - Whether to overwrite existing files. Defaults to `false`. Optional. * @property {?number} retries - The number of retries for failed requests. Defaults to `0`. Optional. * @property {?number} timeout - The timeout value in seconds for requests. Defaults to `300`. Optional. - * @property {?string} uploadApiRootUrl - The root URL for the upload API. Defaults to `'https://upload.bugsnag.com'`. Optional. - * @property {?string} projectRoot - The root directory for the project. Optional. - * @property {?boolean} dev - Whether this is a development environment. Defaults to `false`. Optional. * */ @@ -28,7 +25,7 @@ class BugsnagCLI { * @returns {string} - The string in kebab-case format. */ static camelToKebab(str) { - return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase(); + return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase() } /** @@ -43,32 +40,32 @@ class BugsnagCLI { // Convert the options keys from camelCase to kebab-case const kebabCaseOptions = Object.entries(options) .map(([key, value]) => { - const kebabKey = BugsnagCLI.camelToKebab(key); + const kebabKey = BugsnagCLI.camelToKebab(key) if (typeof value === 'boolean' && value === true) { - return `--${kebabKey}`; + return `--${kebabKey}` } else if (typeof value !== 'boolean') { - return `--${kebabKey}=${value}`; + return `--${kebabKey}=${value}` } - return ''; + return '' }) .filter(Boolean) - .join(' '); + .join(' ') - const positionalArg = target ? `"${target}"` : ''; - const cliCommand = `npx bugsnag-cli ${command} ${kebabCaseOptions} ${positionalArg}`.trim(); + const positionalArg = target ? `"${target}"` : '' + const cliCommand = `npx bugsnag-cli ${command} ${kebabCaseOptions} ${positionalArg}`.trim() // Execute the command exec(cliCommand, (error, stdout, stderr) => { if (error) { const errorMessage = `Command failed: ${cliCommand}\n` + `Error: ${error.message}\n` + - `${stdout.trim()}`; - reject(errorMessage); + `${stdout.trim()}` + reject(errorMessage) } else { - resolve(stdout.trim()); + resolve(stdout.trim()) } - }); - }); + }) + }) } /** @@ -76,6 +73,14 @@ class BugsnagCLI { * Provides nested methods for specific upload types. */ static Upload = { + /** + * + * @typedef {Object} BugsnagUploadOptions + * @param {BugsnagOptions} options - Common Key-value pairs of options for the CLI. + * @param {?string} uploadApiRootUrl - The root URL for the upload API. Defaults to `'https://upload.bugsnag.com'`. Optional. + * @param {?string} projectRoot - The root directory for the project. Optional. + * @param {?boolean} dev - Whether this is a development environment. Defaults to `false`. Optional. + */ ReactNative: Object.assign( /** * @@ -124,7 +129,7 @@ class BugsnagCLI { * @param {?string} options.variant - The variant of the project (e.g., production, staging). Optional. * @param {?string} options.versionCode - The version code for the project. Optional. * @param {?string} target - The path to the file or directory to upload (e.g., a bundle file or folder). Optional. - * @returns {Promise} + * @returns {Promise} - Resolves with the command's output or rejects with an error message. */ Android: (options = {}, target = '') => BugsnagCLI.run('upload react-native-android', options, target), @@ -145,7 +150,44 @@ class BugsnagCLI { */ Js: (options = {}, target = '') => BugsnagCLI.run('upload js', options, target), - }; + } + + /** + * Send build information to Bugsnag + */ + static CreateBuild(options = {}, target = '') { + /** + * @typedef {Object} BugsnagBuildOptions + * @property {BugsnagOptions} options - Common Key-value pairs of options for the CLI. + * @param {?boolean} autoAssignRelease - Whether to automatically associate this build with new error events and sessions. Optional. + * @param {?string} buildApiRootUrl - The build server hostname. Optional. + * @param {?string} builderName - The name of the person or entity who built the app. Optional. + * @param {?string} metadata - Custom build information to associate with the release. Optional. + * @param {?string} provider - The source control provider for the build. Optional. + * @param {?string} releaseStage - The release stage (e.g., production, staging). Optional. + * @param {?string} repository - The URL of the repository containing the source code. Optional. + * @param {?string} revision - The source control SHA-1 hash for the code that has been built. Optional. + * @param {?string} versionName - The version of the application. Optional. + * @param {?string} androidAab - The path to an Android AAB file. Optional. + * @param {?string} appManifest - The path to an Android manifest file. Optional. + * @param {?string} versionCode - The version code of the build. Optional. + * @param {?string} bundleVersion - The bundle version of the build. Optional. + * @returns {Promise} - Resolves with the command's output or rejects with an error message. + */ + return new Promise((resolve, reject) => { + try { + const output = BugsnagCLI.run('create-build', options, target) + if (output instanceof Promise) { + output.then(resolve).catch(reject) + } else { + resolve(output) + } + } catch (error) { + reject(error) + } + }) + } + } -module.exports = BugsnagCLI; +module.exports = BugsnagCLI diff --git a/features/base-fixtures/js/.gitignore b/features/base-fixtures/js/.gitignore new file mode 100644 index 00000000..47a52c2c --- /dev/null +++ b/features/base-fixtures/js/.gitignore @@ -0,0 +1,3 @@ +dist/ +package-lock.json +out/ \ No newline at end of file diff --git a/features/base-fixtures/js/package.json b/features/base-fixtures/js/package.json new file mode 100644 index 00000000..f9fd4b58 --- /dev/null +++ b/features/base-fixtures/js/package.json @@ -0,0 +1,17 @@ +{ + "name": "js", + "version": "3.0.0", + "module": "src/index.ts", + "type": "module", + "private": true, + "scripts": { + "build": "tsc" + }, + "devDependencies": { + "@bugsnag/cli": "^2.9.2", + "@types/bun": "latest" + }, + "peerDependencies": { + "typescript": "^5" + } +} diff --git a/features/base-fixtures/js/src/dir1/file1.ts b/features/base-fixtures/js/src/dir1/file1.ts new file mode 100644 index 00000000..02f473ce --- /dev/null +++ b/features/base-fixtures/js/src/dir1/file1.ts @@ -0,0 +1,3 @@ +export function file1() { + return "file1"; +} diff --git a/features/base-fixtures/js/src/dir2/dir22/file3.ts b/features/base-fixtures/js/src/dir2/dir22/file3.ts new file mode 100644 index 00000000..707ac15c --- /dev/null +++ b/features/base-fixtures/js/src/dir2/dir22/file3.ts @@ -0,0 +1,3 @@ +export function file3() { + return "file3"; +} diff --git a/features/base-fixtures/js/src/dir2/file2.ts b/features/base-fixtures/js/src/dir2/file2.ts new file mode 100644 index 00000000..9ab24113 --- /dev/null +++ b/features/base-fixtures/js/src/dir2/file2.ts @@ -0,0 +1,3 @@ +export function file2() { + return "file2"; +} diff --git a/features/base-fixtures/js/src/index.ts b/features/base-fixtures/js/src/index.ts new file mode 100644 index 00000000..a7d655d5 --- /dev/null +++ b/features/base-fixtures/js/src/index.ts @@ -0,0 +1,7 @@ +import { file1 } from "./dir1/file1"; +import { file3 } from "./dir2/dir22/file3"; +import { file2 } from "./dir2/file2"; + +console.log(file1()); +console.log(file2()); +console.log(file3()); diff --git a/features/base-fixtures/js/tsconfig.json b/features/base-fixtures/js/tsconfig.json new file mode 100644 index 00000000..4d4f8da2 --- /dev/null +++ b/features/base-fixtures/js/tsconfig.json @@ -0,0 +1,29 @@ +{ + "compilerOptions": { + // Enable latest features + "lib": ["ESNext", "DOM"], + "target": "ESNext", + "module": "ESNext", + "moduleDetection": "force", + "jsx": "react-jsx", + "allowJs": true, + + // Bundler mode + "moduleResolution": "bundler", + "verbatimModuleSyntax": true, + "outDir": "out", + + // Best practices + "strict": true, + "skipLibCheck": true, + "noFallthroughCasesInSwitch": true, + + // Some stricter flags (disabled by default) + "noUnusedLocals": false, + "noUnusedParameters": false, + "noPropertyAccessFromIndexSignature": false, + "sourceMap": true + }, + "include": ["src/**/*"], + "exclude": ["node_modules"] +} diff --git a/features/base-fixtures/rn0_69/.buckconfig b/features/base-fixtures/rn0_69/.buckconfig deleted file mode 100644 index 934256cb..00000000 --- a/features/base-fixtures/rn0_69/.buckconfig +++ /dev/null @@ -1,6 +0,0 @@ - -[android] - target = Google Inc.:Google APIs:23 - -[maven_repositories] - central = https://repo1.maven.org/maven2 diff --git a/features/base-fixtures/rn0_69/.bundle/config b/features/base-fixtures/rn0_69/.bundle/config deleted file mode 100644 index 848943bb..00000000 --- a/features/base-fixtures/rn0_69/.bundle/config +++ /dev/null @@ -1,2 +0,0 @@ -BUNDLE_PATH: "vendor/bundle" -BUNDLE_FORCE_RUBY_PLATFORM: 1 diff --git a/features/base-fixtures/rn0_69/.eslintrc.js b/features/base-fixtures/rn0_69/.eslintrc.js deleted file mode 100644 index 40c6dcd0..00000000 --- a/features/base-fixtures/rn0_69/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - root: true, - extends: '@react-native-community', -}; diff --git a/features/base-fixtures/rn0_69/.flowconfig b/features/base-fixtures/rn0_69/.flowconfig deleted file mode 100644 index 74f3a75e..00000000 --- a/features/base-fixtures/rn0_69/.flowconfig +++ /dev/null @@ -1,66 +0,0 @@ -[ignore] -; We fork some components by platform -.*/*[.]android.js - -; Ignore "BUCK" generated dirs -/\.buckd/ - -; Ignore polyfills -node_modules/react-native/Libraries/polyfills/.* - -; Flow doesn't support platforms -.*/Libraries/Utilities/LoadingView.js - -.*/node_modules/resolve/test/resolver/malformed_package_json/package\.json$ - -[untyped] -.*/node_modules/@react-native-community/cli/.*/.* - -[include] - -[libs] -node_modules/react-native/interface.js -node_modules/react-native/flow/ - -[options] -emoji=true - -exact_by_default=true - -format.bracket_spacing=false - -module.file_ext=.js -module.file_ext=.json -module.file_ext=.ios.js - -munge_underscores=true - -module.name_mapper='^react-native/\(.*\)$' -> '/node_modules/react-native/\1' -module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '/node_modules/react-native/Libraries/Image/RelativeImageStub' - -suppress_type=$FlowIssue -suppress_type=$FlowFixMe -suppress_type=$FlowFixMeProps -suppress_type=$FlowFixMeState - -[lints] -sketchy-null-number=warn -sketchy-null-mixed=warn -sketchy-number=warn -untyped-type-import=warn -nonstrict-import=warn -deprecated-type=warn -unsafe-getters-setters=warn -unnecessary-invariant=warn - -[strict] -deprecated-type -nonstrict-import -sketchy-null -unclear-type -unsafe-getters-setters -untyped-import -untyped-type-import - -[version] -^0.176.3 diff --git a/features/base-fixtures/rn0_69/.gitignore b/features/base-fixtures/rn0_69/.gitignore deleted file mode 100644 index 344481b2..00000000 --- a/features/base-fixtures/rn0_69/.gitignore +++ /dev/null @@ -1,63 +0,0 @@ -# OSX -# -.DS_Store - -# Xcode -# -build/ -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 -xcuserdata -*.xccheckout -*.moved-aside -DerivedData -*.hmap -*.ipa -*.xcuserstate -ios/.xcode.env.local - -# Android/IntelliJ -# -build/ -.idea -.gradle -local.properties -*.iml -*.hprof - -# node.js -# -node_modules/ -npm-debug.log -yarn-error.log - -# BUCK -buck-out/ -\.buckd/ -*.keystore -!debug.keystore - -# fastlane -# -# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the -# screenshots whenever they are needed. -# For more information about the recommended setup visit: -# https://docs.fastlane.tools/best-practices/source-control/ - -**/fastlane/report.xml -**/fastlane/Preview.html -**/fastlane/screenshots -**/fastlane/test_output - -# Bundle artifact -*.jsbundle - -# Ruby / CocoaPods -/ios/Pods/ -/vendor/bundle/ diff --git a/features/base-fixtures/rn0_69/.prettierrc.js b/features/base-fixtures/rn0_69/.prettierrc.js deleted file mode 100644 index 2b540746..00000000 --- a/features/base-fixtures/rn0_69/.prettierrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - arrowParens: 'avoid', - bracketSameLine: true, - bracketSpacing: false, - singleQuote: true, - trailingComma: 'all', -}; diff --git a/features/base-fixtures/rn0_69/.watchmanconfig b/features/base-fixtures/rn0_69/.watchmanconfig deleted file mode 100644 index 9e26dfee..00000000 --- a/features/base-fixtures/rn0_69/.watchmanconfig +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/features/base-fixtures/rn0_69/App.js b/features/base-fixtures/rn0_69/App.js deleted file mode 100644 index f85f38d8..00000000 --- a/features/base-fixtures/rn0_69/App.js +++ /dev/null @@ -1,112 +0,0 @@ -/** - * Sample React Native App - * https://github.com/facebook/react-native - * - * @format - * @flow strict-local - */ - -import React from 'react'; -import type {Node} from 'react'; -import { - SafeAreaView, - ScrollView, - StatusBar, - StyleSheet, - Text, - useColorScheme, - View, -} from 'react-native'; - -import { - Colors, - DebugInstructions, - Header, - LearnMoreLinks, - ReloadInstructions, -} from 'react-native/Libraries/NewAppScreen'; - -const Section = ({children, title}): Node => { - const isDarkMode = useColorScheme() === 'dark'; - return ( - - - {title} - - - {children} - - - ); -}; - -const App: () => Node = () => { - const isDarkMode = useColorScheme() === 'dark'; - - const backgroundStyle = { - backgroundColor: isDarkMode ? Colors.darker : Colors.lighter, - }; - - return ( - - - -
- -
- Edit App.js to change this - screen and then come back to see your edits. -
-
- -
-
- -
-
- Read the docs to discover what to do next: -
- -
- - - ); -}; - -const styles = StyleSheet.create({ - sectionContainer: { - marginTop: 32, - paddingHorizontal: 24, - }, - sectionTitle: { - fontSize: 24, - fontWeight: '600', - }, - sectionDescription: { - marginTop: 8, - fontSize: 18, - fontWeight: '400', - }, - highlight: { - fontWeight: '700', - }, -}); - -export default App; diff --git a/features/base-fixtures/rn0_69/Gemfile b/features/base-fixtures/rn0_69/Gemfile deleted file mode 100644 index efb34ae1..00000000 --- a/features/base-fixtures/rn0_69/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -source 'https://rubygems.org' - -# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version -ruby '>= 2.6.10' - -gem 'cocoapods', '1.14.3' -gem 'xcodeproj', '< 1.26.0' diff --git a/features/base-fixtures/rn0_69/__tests__/App-test.js b/features/base-fixtures/rn0_69/__tests__/App-test.js deleted file mode 100644 index 17847669..00000000 --- a/features/base-fixtures/rn0_69/__tests__/App-test.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * @format - */ - -import 'react-native'; -import React from 'react'; -import App from '../App'; - -// Note: test renderer must be required after react-native. -import renderer from 'react-test-renderer'; - -it('renders correctly', () => { - renderer.create(); -}); diff --git a/features/base-fixtures/rn0_69/android/app/_BUCK b/features/base-fixtures/rn0_69/android/app/_BUCK deleted file mode 100644 index d49d886d..00000000 --- a/features/base-fixtures/rn0_69/android/app/_BUCK +++ /dev/null @@ -1,55 +0,0 @@ -# To learn about Buck see [Docs](https://buckbuild.com/). -# To run your application with Buck: -# - install Buck -# - `npm start` - to start the packager -# - `cd android` -# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"` -# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck -# - `buck install -r android/app` - compile, install and run application -# - -load(":build_defs.bzl", "create_aar_targets", "create_jar_targets") - -lib_deps = [] - -create_aar_targets(glob(["libs/*.aar"])) - -create_jar_targets(glob(["libs/*.jar"])) - -android_library( - name = "all-libs", - exported_deps = lib_deps, -) - -android_library( - name = "app-code", - srcs = glob([ - "src/main/java/**/*.java", - ]), - deps = [ - ":all-libs", - ":build_config", - ":res", - ], -) - -android_build_config( - name = "build_config", - package = "com.rn0_69", -) - -android_resource( - name = "res", - package = "com.rn0_69", - res = "src/main/res", -) - -android_binary( - name = "app", - keystore = "//android/keystores:debug", - manifest = "src/main/AndroidManifest.xml", - package_type = "debug", - deps = [ - ":app-code", - ], -) diff --git a/features/base-fixtures/rn0_69/android/app/build.gradle b/features/base-fixtures/rn0_69/android/app/build.gradle deleted file mode 100644 index 3e4171e0..00000000 --- a/features/base-fixtures/rn0_69/android/app/build.gradle +++ /dev/null @@ -1,320 +0,0 @@ -apply plugin: "com.android.application" - -import com.android.build.OutputFile - -/** - * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets - * and bundleReleaseJsAndAssets). - * These basically call `react-native bundle` with the correct arguments during the Android build - * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the - * bundle directly from the development server. Below you can see all the possible configurations - * and their defaults. If you decide to add a configuration block, make sure to add it before the - * `apply from: "../../node_modules/react-native/react.gradle"` line. - * - * project.ext.react = [ - * // the name of the generated asset file containing your JS bundle - * bundleAssetName: "index.android.bundle", - * - * // the entry file for bundle generation. If none specified and - * // "index.android.js" exists, it will be used. Otherwise "index.js" is - * // default. Can be overridden with ENTRY_FILE environment variable. - * entryFile: "index.android.js", - * - * // https://reactnative.dev/docs/performance#enable-the-ram-format - * bundleCommand: "ram-bundle", - * - * // whether to bundle JS and assets in debug mode - * bundleInDebug: false, - * - * // whether to bundle JS and assets in release mode - * bundleInRelease: true, - * - * // whether to bundle JS and assets in another build variant (if configured). - * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants - * // The configuration property can be in the following formats - * // 'bundleIn${productFlavor}${buildType}' - * // 'bundleIn${buildType}' - * // bundleInFreeDebug: true, - * // bundleInPaidRelease: true, - * // bundleInBeta: true, - * - * // whether to disable dev mode in custom build variants (by default only disabled in release) - * // for example: to disable dev mode in the staging build type (if configured) - * devDisabledInStaging: true, - * // The configuration property can be in the following formats - * // 'devDisabledIn${productFlavor}${buildType}' - * // 'devDisabledIn${buildType}' - * - * // the root of your project, i.e. where "package.json" lives - * root: "../../", - * - * // where to put the JS bundle asset in debug mode - * jsBundleDirDebug: "$buildDir/intermediates/assets/debug", - * - * // where to put the JS bundle asset in release mode - * jsBundleDirRelease: "$buildDir/intermediates/assets/release", - * - * // where to put drawable resources / React Native assets, e.g. the ones you use via - * // require('./image.png')), in debug mode - * resourcesDirDebug: "$buildDir/intermediates/res/merged/debug", - * - * // where to put drawable resources / React Native assets, e.g. the ones you use via - * // require('./image.png')), in release mode - * resourcesDirRelease: "$buildDir/intermediates/res/merged/release", - * - * // by default the gradle tasks are skipped if none of the JS files or assets change; this means - * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to - * // date; if you have any other folders that you want to ignore for performance reasons (gradle - * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/ - * // for example, you might want to remove it from here. - * inputExcludes: ["android/**", "ios/**"], - * - * // override which node gets called and with what additional arguments - * nodeExecutableAndArgs: ["node"], - * - * // supply additional arguments to the packager - * extraPackagerArgs: [] - * ] - */ - -project.ext.react = [ - enableHermes: false, // clean and rebuild if changing -] - -apply from: "../../node_modules/react-native/react.gradle" - -/** - * Set this to true to create two separate APKs instead of one: - * - An APK that only works on ARM devices - * - An APK that only works on x86 devices - * The advantage is the size of the APK is reduced by about 4MB. - * Upload all the APKs to the Play Store and people will download - * the correct one based on the CPU architecture of their device. - */ -def enableSeparateBuildPerCPUArchitecture = false - -/** - * Run Proguard to shrink the Java bytecode in release builds. - */ -def enableProguardInReleaseBuilds = false - -/** - * The preferred build flavor of JavaScriptCore. - * - * For example, to use the international variant, you can use: - * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` - * - * The international variant includes ICU i18n library and necessary data - * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that - * give correct results when using with locales other than en-US. Note that - * this variant is about 6MiB larger per architecture than default. - */ -def jscFlavor = 'org.webkit:android-jsc:+' - -/** - * Whether to enable the Hermes VM. - * - * This should be set on project.ext.react and that value will be read here. If it is not set - * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode - * and the benefits of using Hermes will therefore be sharply reduced. - */ -def enableHermes = project.ext.react.get("enableHermes", false); - -/** - * Architectures to build native code for. - */ -def reactNativeArchitectures() { - def value = project.getProperties().get("reactNativeArchitectures") - return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] -} - -android { - ndkVersion rootProject.ext.ndkVersion - - compileSdkVersion rootProject.ext.compileSdkVersion - - defaultConfig { - applicationId "com.rn0_69" - minSdkVersion rootProject.ext.minSdkVersion - targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 1 - versionName "1.0" - buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString() - - if (isNewArchitectureEnabled()) { - // We configure the NDK build only if you decide to opt-in for the New Architecture. - externalNativeBuild { - ndkBuild { - arguments "APP_PLATFORM=android-21", - "APP_STL=c++_shared", - "NDK_TOOLCHAIN_VERSION=clang", - "GENERATED_SRC_DIR=$buildDir/generated/source", - "PROJECT_BUILD_DIR=$buildDir", - "REACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid", - "REACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build", - "NODE_MODULES_DIR=$rootDir/../node_modules" - cFlags "-Wall", "-Werror", "-fexceptions", "-frtti", "-DWITH_INSPECTOR=1" - cppFlags "-std=c++17" - // Make sure this target name is the same you specify inside the - // src/main/jni/Android.mk file for the `LOCAL_MODULE` variable. - targets "rn0_69_appmodules" - } - } - if (!enableSeparateBuildPerCPUArchitecture) { - ndk { - abiFilters (*reactNativeArchitectures()) - } - } - } - } - - if (isNewArchitectureEnabled()) { - // We configure the NDK build only if you decide to opt-in for the New Architecture. - externalNativeBuild { - ndkBuild { - path "$projectDir/src/main/jni/Android.mk" - } - } - def reactAndroidProjectDir = project(':ReactAndroid').projectDir - def packageReactNdkDebugLibs = tasks.register("packageReactNdkDebugLibs", Copy) { - dependsOn(":ReactAndroid:packageReactNdkDebugLibsForBuck") - from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib") - into("$buildDir/react-ndk/exported") - } - def packageReactNdkReleaseLibs = tasks.register("packageReactNdkReleaseLibs", Copy) { - dependsOn(":ReactAndroid:packageReactNdkReleaseLibsForBuck") - from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib") - into("$buildDir/react-ndk/exported") - } - afterEvaluate { - // If you wish to add a custom TurboModule or component locally, - // you should uncomment this line. - // preBuild.dependsOn("generateCodegenArtifactsFromSchema") - preDebugBuild.dependsOn(packageReactNdkDebugLibs) - preReleaseBuild.dependsOn(packageReactNdkReleaseLibs) - - // Due to a bug inside AGP, we have to explicitly set a dependency - // between configureNdkBuild* tasks and the preBuild tasks. - // This can be removed once this is solved: https://issuetracker.google.com/issues/207403732 - configureNdkBuildRelease.dependsOn(preReleaseBuild) - configureNdkBuildDebug.dependsOn(preDebugBuild) - reactNativeArchitectures().each { architecture -> - tasks.findByName("configureNdkBuildDebug[${architecture}]")?.configure { - dependsOn("preDebugBuild") - } - tasks.findByName("configureNdkBuildRelease[${architecture}]")?.configure { - dependsOn("preReleaseBuild") - } - } - } - } - - splits { - abi { - reset() - enable enableSeparateBuildPerCPUArchitecture - universalApk false // If true, also generate a universal APK - include (*reactNativeArchitectures()) - } - } - signingConfigs { - debug { - storeFile file('debug.keystore') - storePassword 'android' - keyAlias 'androiddebugkey' - keyPassword 'android' - } - } - buildTypes { - debug { - signingConfig signingConfigs.debug - } - release { - // Caution! In production, you need to generate your own keystore file. - // see https://reactnative.dev/docs/signed-apk-android. - signingConfig signingConfigs.debug - minifyEnabled enableProguardInReleaseBuilds - proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" - } - } - - // applicationVariants are e.g. debug, release - applicationVariants.all { variant -> - variant.outputs.each { output -> - // For each separate APK per architecture, set a unique version code as described here: - // https://developer.android.com/studio/build/configure-apk-splits.html - // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc. - def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4] - def abi = output.getFilter(OutputFile.ABI) - if (abi != null) { // null for the universal-debug, universal-release variants - output.versionCodeOverride = - defaultConfig.versionCode * 1000 + versionCodes.get(abi) - } - - } - } -} - -dependencies { - implementation fileTree(dir: "libs", include: ["*.jar"]) - - //noinspection GradleDynamicVersion - implementation "com.facebook.react:react-native:+" // From node_modules - - implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0" - - debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") { - exclude group:'com.facebook.fbjni' - } - - debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") { - exclude group:'com.facebook.flipper' - exclude group:'com.squareup.okhttp3', module:'okhttp' - } - - debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") { - exclude group:'com.facebook.flipper' - } - - if (enableHermes) { - //noinspection GradleDynamicVersion - implementation("com.facebook.react:hermes-engine:+") { // From node_modules - exclude group:'com.facebook.fbjni' - } - } else { - implementation jscFlavor - } -} - -if (isNewArchitectureEnabled()) { - // If new architecture is enabled, we let you build RN from source - // Otherwise we fallback to a prebuilt .aar bundled in the NPM package. - // This will be applied to all the imported transtitive dependency. - configurations.all { - resolutionStrategy.dependencySubstitution { - substitute(module("com.facebook.react:react-native")) - .using(project(":ReactAndroid")) - .because("On New Architecture we're building React Native from source") - substitute(module("com.facebook.react:hermes-engine")) - .using(project(":ReactAndroid:hermes-engine")) - .because("On New Architecture we're building Hermes from source") - } - } -} - -// Run this once to be able to run the application with BUCK -// puts all compile dependencies into folder libs for BUCK to use -task copyDownloadableDepsToLibs(type: Copy) { - from configurations.implementation - into 'libs' -} - -apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) - -def isNewArchitectureEnabled() { - // To opt-in for the New Architecture, you can either: - // - Set `newArchEnabled` to true inside the `gradle.properties` file - // - Invoke gradle with `-newArchEnabled=true` - // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true` - return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true" -} diff --git a/features/base-fixtures/rn0_69/android/app/build_defs.bzl b/features/base-fixtures/rn0_69/android/app/build_defs.bzl deleted file mode 100644 index fff270f8..00000000 --- a/features/base-fixtures/rn0_69/android/app/build_defs.bzl +++ /dev/null @@ -1,19 +0,0 @@ -"""Helper definitions to glob .aar and .jar targets""" - -def create_aar_targets(aarfiles): - for aarfile in aarfiles: - name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")] - lib_deps.append(":" + name) - android_prebuilt_aar( - name = name, - aar = aarfile, - ) - -def create_jar_targets(jarfiles): - for jarfile in jarfiles: - name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")] - lib_deps.append(":" + name) - prebuilt_jar( - name = name, - binary_jar = jarfile, - ) diff --git a/features/base-fixtures/rn0_69/android/app/debug.keystore b/features/base-fixtures/rn0_69/android/app/debug.keystore deleted file mode 100644 index 364e105e..00000000 Binary files a/features/base-fixtures/rn0_69/android/app/debug.keystore and /dev/null differ diff --git a/features/base-fixtures/rn0_69/android/app/proguard-rules.pro b/features/base-fixtures/rn0_69/android/app/proguard-rules.pro deleted file mode 100644 index 11b02572..00000000 --- a/features/base-fixtures/rn0_69/android/app/proguard-rules.pro +++ /dev/null @@ -1,10 +0,0 @@ -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: diff --git a/features/base-fixtures/rn0_69/android/app/src/debug/AndroidManifest.xml b/features/base-fixtures/rn0_69/android/app/src/debug/AndroidManifest.xml deleted file mode 100644 index 4b185bc1..00000000 --- a/features/base-fixtures/rn0_69/android/app/src/debug/AndroidManifest.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - diff --git a/features/base-fixtures/rn0_69/android/app/src/debug/java/com/rn0_69/ReactNativeFlipper.java b/features/base-fixtures/rn0_69/android/app/src/debug/java/com/rn0_69/ReactNativeFlipper.java deleted file mode 100644 index 588dacf3..00000000 --- a/features/base-fixtures/rn0_69/android/app/src/debug/java/com/rn0_69/ReactNativeFlipper.java +++ /dev/null @@ -1,73 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - *

This source code is licensed under the MIT license found in the LICENSE file in the root - * directory of this source tree. - */ -package com.rn0_69; - -import android.content.Context; -import com.facebook.flipper.android.AndroidFlipperClient; -import com.facebook.flipper.android.utils.FlipperUtils; -import com.facebook.flipper.core.FlipperClient; -import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin; -import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin; -import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin; -import com.facebook.flipper.plugins.inspector.DescriptorMapping; -import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin; -import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor; -import com.facebook.flipper.plugins.network.NetworkFlipperPlugin; -import com.facebook.flipper.plugins.react.ReactFlipperPlugin; -import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin; -import com.facebook.react.ReactInstanceEventListener; -import com.facebook.react.ReactInstanceManager; -import com.facebook.react.bridge.ReactContext; -import com.facebook.react.modules.network.NetworkingModule; -import okhttp3.OkHttpClient; - -public class ReactNativeFlipper { - public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) { - if (FlipperUtils.shouldEnableFlipper(context)) { - final FlipperClient client = AndroidFlipperClient.getInstance(context); - - client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults())); - client.addPlugin(new ReactFlipperPlugin()); - client.addPlugin(new DatabasesFlipperPlugin(context)); - client.addPlugin(new SharedPreferencesFlipperPlugin(context)); - client.addPlugin(CrashReporterPlugin.getInstance()); - - NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin(); - NetworkingModule.setCustomClientBuilder( - new NetworkingModule.CustomClientBuilder() { - @Override - public void apply(OkHttpClient.Builder builder) { - builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin)); - } - }); - client.addPlugin(networkFlipperPlugin); - client.start(); - - // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized - // Hence we run if after all native modules have been initialized - ReactContext reactContext = reactInstanceManager.getCurrentReactContext(); - if (reactContext == null) { - reactInstanceManager.addReactInstanceEventListener( - new ReactInstanceEventListener() { - @Override - public void onReactContextInitialized(ReactContext reactContext) { - reactInstanceManager.removeReactInstanceEventListener(this); - reactContext.runOnNativeModulesQueueThread( - new Runnable() { - @Override - public void run() { - client.addPlugin(new FrescoFlipperPlugin()); - } - }); - } - }); - } else { - client.addPlugin(new FrescoFlipperPlugin()); - } - } - } -} diff --git a/features/base-fixtures/rn0_69/android/app/src/main/AndroidManifest.xml b/features/base-fixtures/rn0_69/android/app/src/main/AndroidManifest.xml deleted file mode 100644 index 707a48a9..00000000 --- a/features/base-fixtures/rn0_69/android/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - diff --git a/features/base-fixtures/rn0_69/android/app/src/main/java/com/rn0_69/MainActivity.java b/features/base-fixtures/rn0_69/android/app/src/main/java/com/rn0_69/MainActivity.java deleted file mode 100644 index fe9e234c..00000000 --- a/features/base-fixtures/rn0_69/android/app/src/main/java/com/rn0_69/MainActivity.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.rn0_69; - -import com.facebook.react.ReactActivity; -import com.facebook.react.ReactActivityDelegate; -import com.facebook.react.ReactRootView; - -public class MainActivity extends ReactActivity { - - /** - * Returns the name of the main component registered from JavaScript. This is used to schedule - * rendering of the component. - */ - @Override - protected String getMainComponentName() { - return "rn0_69"; - } - - /** - * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and - * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer - * (Paper). - */ - @Override - protected ReactActivityDelegate createReactActivityDelegate() { - return new MainActivityDelegate(this, getMainComponentName()); - } - - public static class MainActivityDelegate extends ReactActivityDelegate { - public MainActivityDelegate(ReactActivity activity, String mainComponentName) { - super(activity, mainComponentName); - } - - @Override - protected ReactRootView createRootView() { - ReactRootView reactRootView = new ReactRootView(getContext()); - // If you opted-in for the New Architecture, we enable the Fabric Renderer. - reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED); - return reactRootView; - } - - @Override - protected boolean isConcurrentRootEnabled() { - // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18). - // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html - return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED; - } - } -} diff --git a/features/base-fixtures/rn0_69/android/app/src/main/java/com/rn0_69/MainApplication.java b/features/base-fixtures/rn0_69/android/app/src/main/java/com/rn0_69/MainApplication.java deleted file mode 100644 index 071a150a..00000000 --- a/features/base-fixtures/rn0_69/android/app/src/main/java/com/rn0_69/MainApplication.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.rn0_69; - -import android.app.Application; -import android.content.Context; -import com.facebook.react.PackageList; -import com.facebook.react.ReactApplication; -import com.facebook.react.ReactInstanceManager; -import com.facebook.react.ReactNativeHost; -import com.facebook.react.ReactPackage; -import com.facebook.react.config.ReactFeatureFlags; -import com.facebook.soloader.SoLoader; -import com.rn0_69.newarchitecture.MainApplicationReactNativeHost; -import java.lang.reflect.InvocationTargetException; -import java.util.List; - -public class MainApplication extends Application implements ReactApplication { - - private final ReactNativeHost mReactNativeHost = - new ReactNativeHost(this) { - @Override - public boolean getUseDeveloperSupport() { - return BuildConfig.DEBUG; - } - - @Override - protected List getPackages() { - @SuppressWarnings("UnnecessaryLocalVariable") - List packages = new PackageList(this).getPackages(); - // Packages that cannot be autolinked yet can be added manually here, for example: - // packages.add(new MyReactNativePackage()); - return packages; - } - - @Override - protected String getJSMainModuleName() { - return "index"; - } - }; - - private final ReactNativeHost mNewArchitectureNativeHost = - new MainApplicationReactNativeHost(this); - - @Override - public ReactNativeHost getReactNativeHost() { - if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { - return mNewArchitectureNativeHost; - } else { - return mReactNativeHost; - } - } - - @Override - public void onCreate() { - super.onCreate(); - // If you opted-in for the New Architecture, we enable the TurboModule system - ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED; - SoLoader.init(this, /* native exopackage */ false); - initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); - } - - /** - * Loads Flipper in React Native templates. Call this in the onCreate method with something like - * initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); - * - * @param context - * @param reactInstanceManager - */ - private static void initializeFlipper( - Context context, ReactInstanceManager reactInstanceManager) { - if (BuildConfig.DEBUG) { - try { - /* - We use reflection here to pick up the class that initializes Flipper, - since Flipper library is not available in release mode - */ - Class aClass = Class.forName("com.rn0_69.ReactNativeFlipper"); - aClass - .getMethod("initializeFlipper", Context.class, ReactInstanceManager.class) - .invoke(null, context, reactInstanceManager); - } catch (ClassNotFoundException e) { - e.printStackTrace(); - } catch (NoSuchMethodException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } catch (InvocationTargetException e) { - e.printStackTrace(); - } - } - } -} diff --git a/features/base-fixtures/rn0_69/android/app/src/main/java/com/rn0_69/newarchitecture/MainApplicationReactNativeHost.java b/features/base-fixtures/rn0_69/android/app/src/main/java/com/rn0_69/newarchitecture/MainApplicationReactNativeHost.java deleted file mode 100644 index aa2c1719..00000000 --- a/features/base-fixtures/rn0_69/android/app/src/main/java/com/rn0_69/newarchitecture/MainApplicationReactNativeHost.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.rn0_69.newarchitecture; - -import android.app.Application; -import androidx.annotation.NonNull; -import com.facebook.react.PackageList; -import com.facebook.react.ReactInstanceManager; -import com.facebook.react.ReactNativeHost; -import com.facebook.react.ReactPackage; -import com.facebook.react.ReactPackageTurboModuleManagerDelegate; -import com.facebook.react.bridge.JSIModulePackage; -import com.facebook.react.bridge.JSIModuleProvider; -import com.facebook.react.bridge.JSIModuleSpec; -import com.facebook.react.bridge.JSIModuleType; -import com.facebook.react.bridge.JavaScriptContextHolder; -import com.facebook.react.bridge.ReactApplicationContext; -import com.facebook.react.bridge.UIManager; -import com.facebook.react.fabric.ComponentFactory; -import com.facebook.react.fabric.CoreComponentsRegistry; -import com.facebook.react.fabric.FabricJSIModuleProvider; -import com.facebook.react.fabric.ReactNativeConfig; -import com.facebook.react.uimanager.ViewManagerRegistry; -import com.rn0_69.BuildConfig; -import com.rn0_69.newarchitecture.components.MainComponentsRegistry; -import com.rn0_69.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate; -import java.util.ArrayList; -import java.util.List; - -/** - * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both - * TurboModule delegates and the Fabric Renderer. - * - *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the - * `newArchEnabled` property). Is ignored otherwise. - */ -public class MainApplicationReactNativeHost extends ReactNativeHost { - public MainApplicationReactNativeHost(Application application) { - super(application); - } - - @Override - public boolean getUseDeveloperSupport() { - return BuildConfig.DEBUG; - } - - @Override - protected List getPackages() { - List packages = new PackageList(this).getPackages(); - // Packages that cannot be autolinked yet can be added manually here, for example: - // packages.add(new MyReactNativePackage()); - // TurboModules must also be loaded here providing a valid TurboReactPackage implementation: - // packages.add(new TurboReactPackage() { ... }); - // If you have custom Fabric Components, their ViewManagers should also be loaded here - // inside a ReactPackage. - return packages; - } - - @Override - protected String getJSMainModuleName() { - return "index"; - } - - @NonNull - @Override - protected ReactPackageTurboModuleManagerDelegate.Builder - getReactPackageTurboModuleManagerDelegateBuilder() { - // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary - // for the new architecture and to use TurboModules correctly. - return new MainApplicationTurboModuleManagerDelegate.Builder(); - } - - @Override - protected JSIModulePackage getJSIModulePackage() { - return new JSIModulePackage() { - @Override - public List getJSIModules( - final ReactApplicationContext reactApplicationContext, - final JavaScriptContextHolder jsContext) { - final List specs = new ArrayList<>(); - - // Here we provide a new JSIModuleSpec that will be responsible of providing the - // custom Fabric Components. - specs.add( - new JSIModuleSpec() { - @Override - public JSIModuleType getJSIModuleType() { - return JSIModuleType.UIManager; - } - - @Override - public JSIModuleProvider getJSIModuleProvider() { - final ComponentFactory componentFactory = new ComponentFactory(); - CoreComponentsRegistry.register(componentFactory); - - // Here we register a Components Registry. - // The one that is generated with the template contains no components - // and just provides you the one from React Native core. - MainComponentsRegistry.register(componentFactory); - - final ReactInstanceManager reactInstanceManager = getReactInstanceManager(); - - ViewManagerRegistry viewManagerRegistry = - new ViewManagerRegistry( - reactInstanceManager.getOrCreateViewManagers(reactApplicationContext)); - - return new FabricJSIModuleProvider( - reactApplicationContext, - componentFactory, - ReactNativeConfig.DEFAULT_CONFIG, - viewManagerRegistry); - } - }); - return specs; - } - }; - } -} diff --git a/features/base-fixtures/rn0_69/android/app/src/main/java/com/rn0_69/newarchitecture/components/MainComponentsRegistry.java b/features/base-fixtures/rn0_69/android/app/src/main/java/com/rn0_69/newarchitecture/components/MainComponentsRegistry.java deleted file mode 100644 index 10cd211c..00000000 --- a/features/base-fixtures/rn0_69/android/app/src/main/java/com/rn0_69/newarchitecture/components/MainComponentsRegistry.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.rn0_69.newarchitecture.components; - -import com.facebook.jni.HybridData; -import com.facebook.proguard.annotations.DoNotStrip; -import com.facebook.react.fabric.ComponentFactory; -import com.facebook.soloader.SoLoader; - -/** - * Class responsible to load the custom Fabric Components. This class has native methods and needs a - * corresponding C++ implementation/header file to work correctly (already placed inside the jni/ - * folder for you). - * - *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the - * `newArchEnabled` property). Is ignored otherwise. - */ -@DoNotStrip -public class MainComponentsRegistry { - static { - SoLoader.loadLibrary("fabricjni"); - } - - @DoNotStrip private final HybridData mHybridData; - - @DoNotStrip - private native HybridData initHybrid(ComponentFactory componentFactory); - - @DoNotStrip - private MainComponentsRegistry(ComponentFactory componentFactory) { - mHybridData = initHybrid(componentFactory); - } - - @DoNotStrip - public static MainComponentsRegistry register(ComponentFactory componentFactory) { - return new MainComponentsRegistry(componentFactory); - } -} diff --git a/features/base-fixtures/rn0_69/android/app/src/main/java/com/rn0_69/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/features/base-fixtures/rn0_69/android/app/src/main/java/com/rn0_69/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java deleted file mode 100644 index 2428e9d9..00000000 --- a/features/base-fixtures/rn0_69/android/app/src/main/java/com/rn0_69/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.rn0_69.newarchitecture.modules; - -import com.facebook.jni.HybridData; -import com.facebook.react.ReactPackage; -import com.facebook.react.ReactPackageTurboModuleManagerDelegate; -import com.facebook.react.bridge.ReactApplicationContext; -import com.facebook.soloader.SoLoader; -import java.util.List; - -/** - * Class responsible to load the TurboModules. This class has native methods and needs a - * corresponding C++ implementation/header file to work correctly (already placed inside the jni/ - * folder for you). - * - *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the - * `newArchEnabled` property). Is ignored otherwise. - */ -public class MainApplicationTurboModuleManagerDelegate - extends ReactPackageTurboModuleManagerDelegate { - - private static volatile boolean sIsSoLibraryLoaded; - - protected MainApplicationTurboModuleManagerDelegate( - ReactApplicationContext reactApplicationContext, List packages) { - super(reactApplicationContext, packages); - } - - protected native HybridData initHybrid(); - - native boolean canCreateTurboModule(String moduleName); - - public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder { - protected MainApplicationTurboModuleManagerDelegate build( - ReactApplicationContext context, List packages) { - return new MainApplicationTurboModuleManagerDelegate(context, packages); - } - } - - @Override - protected synchronized void maybeLoadOtherSoLibraries() { - if (!sIsSoLibraryLoaded) { - // If you change the name of your application .so file in the Android.mk file, - // make sure you update the name here as well. - SoLoader.loadLibrary("rn0_69_appmodules"); - sIsSoLibraryLoaded = true; - } - } -} diff --git a/features/base-fixtures/rn0_69/android/app/src/main/jni/Android.mk b/features/base-fixtures/rn0_69/android/app/src/main/jni/Android.mk deleted file mode 100644 index c0e17d1e..00000000 --- a/features/base-fixtures/rn0_69/android/app/src/main/jni/Android.mk +++ /dev/null @@ -1,48 +0,0 @@ -THIS_DIR := $(call my-dir) - -include $(REACT_ANDROID_DIR)/Android-prebuilt.mk - -# If you wish to add a custom TurboModule or Fabric component in your app you -# will have to include the following autogenerated makefile. -# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk -include $(CLEAR_VARS) - -LOCAL_PATH := $(THIS_DIR) - -# You can customize the name of your application .so file here. -LOCAL_MODULE := rn0_69_appmodules - -LOCAL_C_INCLUDES := $(LOCAL_PATH) -LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp) -LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) - -# If you wish to add a custom TurboModule or Fabric component in your app you -# will have to uncomment those lines to include the generated source -# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni) -# -# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni -# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp) -# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni - -# Here you should add any native library you wish to depend on. -LOCAL_SHARED_LIBRARIES := \ - libfabricjni \ - libfbjni \ - libfolly_runtime \ - libglog \ - libjsi \ - libreact_codegen_rncore \ - libreact_debug \ - libreact_nativemodule_core \ - libreact_render_componentregistry \ - libreact_render_core \ - libreact_render_debug \ - libreact_render_graphics \ - librrc_view \ - libruntimeexecutor \ - libturbomodulejsijni \ - libyoga - -LOCAL_CFLAGS := -DLOG_TAG=\"ReactNative\" -fexceptions -frtti -std=c++17 -Wall - -include $(BUILD_SHARED_LIBRARY) diff --git a/features/base-fixtures/rn0_69/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/features/base-fixtures/rn0_69/android/app/src/main/jni/MainApplicationModuleProvider.cpp deleted file mode 100644 index 0ac23cc6..00000000 --- a/features/base-fixtures/rn0_69/android/app/src/main/jni/MainApplicationModuleProvider.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include "MainApplicationModuleProvider.h" - -#include - -namespace facebook { -namespace react { - -std::shared_ptr MainApplicationModuleProvider( - const std::string moduleName, - const JavaTurboModule::InitParams ¶ms) { - // Here you can provide your own module provider for TurboModules coming from - // either your application or from external libraries. The approach to follow - // is similar to the following (for a library called `samplelibrary`: - // - // auto module = samplelibrary_ModuleProvider(moduleName, params); - // if (module != nullptr) { - // return module; - // } - // return rncore_ModuleProvider(moduleName, params); - return rncore_ModuleProvider(moduleName, params); -} - -} // namespace react -} // namespace facebook diff --git a/features/base-fixtures/rn0_69/android/app/src/main/jni/MainApplicationModuleProvider.h b/features/base-fixtures/rn0_69/android/app/src/main/jni/MainApplicationModuleProvider.h deleted file mode 100644 index 0fa43fa6..00000000 --- a/features/base-fixtures/rn0_69/android/app/src/main/jni/MainApplicationModuleProvider.h +++ /dev/null @@ -1,16 +0,0 @@ -#pragma once - -#include -#include - -#include - -namespace facebook { -namespace react { - -std::shared_ptr MainApplicationModuleProvider( - const std::string moduleName, - const JavaTurboModule::InitParams ¶ms); - -} // namespace react -} // namespace facebook diff --git a/features/base-fixtures/rn0_69/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/features/base-fixtures/rn0_69/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp deleted file mode 100644 index dbbdc3d1..00000000 --- a/features/base-fixtures/rn0_69/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp +++ /dev/null @@ -1,45 +0,0 @@ -#include "MainApplicationTurboModuleManagerDelegate.h" -#include "MainApplicationModuleProvider.h" - -namespace facebook { -namespace react { - -jni::local_ref -MainApplicationTurboModuleManagerDelegate::initHybrid( - jni::alias_ref) { - return makeCxxInstance(); -} - -void MainApplicationTurboModuleManagerDelegate::registerNatives() { - registerHybrid({ - makeNativeMethod( - "initHybrid", MainApplicationTurboModuleManagerDelegate::initHybrid), - makeNativeMethod( - "canCreateTurboModule", - MainApplicationTurboModuleManagerDelegate::canCreateTurboModule), - }); -} - -std::shared_ptr -MainApplicationTurboModuleManagerDelegate::getTurboModule( - const std::string name, - const std::shared_ptr jsInvoker) { - // Not implemented yet: provide pure-C++ NativeModules here. - return nullptr; -} - -std::shared_ptr -MainApplicationTurboModuleManagerDelegate::getTurboModule( - const std::string name, - const JavaTurboModule::InitParams ¶ms) { - return MainApplicationModuleProvider(name, params); -} - -bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule( - std::string name) { - return getTurboModule(name, nullptr) != nullptr || - getTurboModule(name, {.moduleName = name}) != nullptr; -} - -} // namespace react -} // namespace facebook diff --git a/features/base-fixtures/rn0_69/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/features/base-fixtures/rn0_69/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h deleted file mode 100644 index 29e7e3ea..00000000 --- a/features/base-fixtures/rn0_69/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include - -#include -#include - -namespace facebook { -namespace react { - -class MainApplicationTurboModuleManagerDelegate - : public jni::HybridClass< - MainApplicationTurboModuleManagerDelegate, - TurboModuleManagerDelegate> { - public: - // Adapt it to the package you used for your Java class. - static constexpr auto kJavaDescriptor = - "Lcom/rn0_69/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;"; - - static jni::local_ref initHybrid(jni::alias_ref); - - static void registerNatives(); - - std::shared_ptr getTurboModule( - const std::string name, - const std::shared_ptr jsInvoker) override; - std::shared_ptr getTurboModule( - const std::string name, - const JavaTurboModule::InitParams ¶ms) override; - - /** - * Test-only method. Allows user to verify whether a TurboModule can be - * created by instances of this class. - */ - bool canCreateTurboModule(std::string name); -}; - -} // namespace react -} // namespace facebook diff --git a/features/base-fixtures/rn0_69/android/app/src/main/jni/MainComponentsRegistry.cpp b/features/base-fixtures/rn0_69/android/app/src/main/jni/MainComponentsRegistry.cpp deleted file mode 100644 index 8f7edffd..00000000 --- a/features/base-fixtures/rn0_69/android/app/src/main/jni/MainComponentsRegistry.cpp +++ /dev/null @@ -1,61 +0,0 @@ -#include "MainComponentsRegistry.h" - -#include -#include -#include -#include - -namespace facebook { -namespace react { - -MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {} - -std::shared_ptr -MainComponentsRegistry::sharedProviderRegistry() { - auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry(); - - // Custom Fabric Components go here. You can register custom - // components coming from your App or from 3rd party libraries here. - // - // providerRegistry->add(concreteComponentDescriptorProvider< - // AocViewerComponentDescriptor>()); - return providerRegistry; -} - -jni::local_ref -MainComponentsRegistry::initHybrid( - jni::alias_ref, - ComponentFactory *delegate) { - auto instance = makeCxxInstance(delegate); - - auto buildRegistryFunction = - [](EventDispatcher::Weak const &eventDispatcher, - ContextContainer::Shared const &contextContainer) - -> ComponentDescriptorRegistry::Shared { - auto registry = MainComponentsRegistry::sharedProviderRegistry() - ->createComponentDescriptorRegistry( - {eventDispatcher, contextContainer}); - - auto mutableRegistry = - std::const_pointer_cast(registry); - - mutableRegistry->setFallbackComponentDescriptor( - std::make_shared( - ComponentDescriptorParameters{ - eventDispatcher, contextContainer, nullptr})); - - return registry; - }; - - delegate->buildRegistryFunction = buildRegistryFunction; - return instance; -} - -void MainComponentsRegistry::registerNatives() { - registerHybrid({ - makeNativeMethod("initHybrid", MainComponentsRegistry::initHybrid), - }); -} - -} // namespace react -} // namespace facebook diff --git a/features/base-fixtures/rn0_69/android/app/src/main/jni/MainComponentsRegistry.h b/features/base-fixtures/rn0_69/android/app/src/main/jni/MainComponentsRegistry.h deleted file mode 100644 index 5929584c..00000000 --- a/features/base-fixtures/rn0_69/android/app/src/main/jni/MainComponentsRegistry.h +++ /dev/null @@ -1,32 +0,0 @@ -#pragma once - -#include -#include -#include -#include - -namespace facebook { -namespace react { - -class MainComponentsRegistry - : public facebook::jni::HybridClass { - public: - // Adapt it to the package you used for your Java class. - constexpr static auto kJavaDescriptor = - "Lcom/rn0_69/newarchitecture/components/MainComponentsRegistry;"; - - static void registerNatives(); - - MainComponentsRegistry(ComponentFactory *delegate); - - private: - static std::shared_ptr - sharedProviderRegistry(); - - static jni::local_ref initHybrid( - jni::alias_ref, - ComponentFactory *delegate); -}; - -} // namespace react -} // namespace facebook diff --git a/features/base-fixtures/rn0_69/android/app/src/main/jni/OnLoad.cpp b/features/base-fixtures/rn0_69/android/app/src/main/jni/OnLoad.cpp deleted file mode 100644 index c569b6e8..00000000 --- a/features/base-fixtures/rn0_69/android/app/src/main/jni/OnLoad.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include "MainApplicationTurboModuleManagerDelegate.h" -#include "MainComponentsRegistry.h" - -JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) { - return facebook::jni::initialize(vm, [] { - facebook::react::MainApplicationTurboModuleManagerDelegate:: - registerNatives(); - facebook::react::MainComponentsRegistry::registerNatives(); - }); -} diff --git a/features/base-fixtures/rn0_69/android/app/src/main/res/drawable/rn_edit_text_material.xml b/features/base-fixtures/rn0_69/android/app/src/main/res/drawable/rn_edit_text_material.xml deleted file mode 100644 index f35d9962..00000000 --- a/features/base-fixtures/rn0_69/android/app/src/main/res/drawable/rn_edit_text_material.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - diff --git a/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index a2f59082..00000000 Binary files a/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png deleted file mode 100644 index 1b523998..00000000 Binary files a/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png and /dev/null differ diff --git a/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index ff10afd6..00000000 Binary files a/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png deleted file mode 100644 index 115a4c76..00000000 Binary files a/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png and /dev/null differ diff --git a/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index dcd3cd80..00000000 Binary files a/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png deleted file mode 100644 index 459ca609..00000000 Binary files a/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png and /dev/null differ diff --git a/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 8ca12fe0..00000000 Binary files a/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index 8e19b410..00000000 Binary files a/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index b824ebdd..00000000 Binary files a/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index 4c19a13c..00000000 Binary files a/features/base-fixtures/rn0_69/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/features/base-fixtures/rn0_69/android/app/src/main/res/values/strings.xml b/features/base-fixtures/rn0_69/android/app/src/main/res/values/strings.xml deleted file mode 100644 index 5f2e2fb1..00000000 --- a/features/base-fixtures/rn0_69/android/app/src/main/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - rn0_69 - diff --git a/features/base-fixtures/rn0_69/android/app/src/main/res/values/styles.xml b/features/base-fixtures/rn0_69/android/app/src/main/res/values/styles.xml deleted file mode 100644 index 7ba83a2a..00000000 --- a/features/base-fixtures/rn0_69/android/app/src/main/res/values/styles.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/features/base-fixtures/rn0_69/android/build.gradle b/features/base-fixtures/rn0_69/android/build.gradle deleted file mode 100644 index c9bc539d..00000000 --- a/features/base-fixtures/rn0_69/android/build.gradle +++ /dev/null @@ -1,53 +0,0 @@ -import org.apache.tools.ant.taskdefs.condition.Os - -// Top-level build file where you can add configuration options common to all sub-projects/modules. - -buildscript { - ext { - buildToolsVersion = "31.0.0" - minSdkVersion = 21 - compileSdkVersion = 31 - targetSdkVersion = 31 - - if (System.properties['os.arch'] == "aarch64") { - // For M1 Users we need to use the NDK 24 which added support for aarch64 - ndkVersion = "24.0.8215888" - } else { - // Otherwise we default to the side-by-side NDK version from AGP. - ndkVersion = "21.4.7075529" - } - } - repositories { - google() - mavenCentral() - } - dependencies { - classpath("com.android.tools.build:gradle:7.1.1") - classpath("com.facebook.react:react-native-gradle-plugin") - classpath("de.undercouch:gradle-download-task:5.0.1") - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files - } -} - -allprojects { - repositories { - maven { - // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm - url("$rootDir/../node_modules/react-native/android") - } - maven { - // Android JSC is installed from npm - url("$rootDir/../node_modules/jsc-android/dist") - } - mavenCentral { - // We don't want to fetch react-native from Maven Central as there are - // older versions over there. - content { - excludeGroup "com.facebook.react" - } - } - google() - maven { url 'https://www.jitpack.io' } - } -} diff --git a/features/base-fixtures/rn0_69/android/gradle.properties b/features/base-fixtures/rn0_69/android/gradle.properties deleted file mode 100644 index fa4feae5..00000000 --- a/features/base-fixtures/rn0_69/android/gradle.properties +++ /dev/null @@ -1,40 +0,0 @@ -# Project-wide Gradle settings. - -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. - -# For more details on how to configure your build environment visit -# http://www.gradle.org/docs/current/userguide/build_environment.html - -# Specifies the JVM arguments used for the daemon process. -# The setting is particularly useful for tweaking memory settings. -# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m -org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m - -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true - -# AndroidX package structure to make it clearer which packages are bundled with the -# Android operating system, and which are packaged with your app's APK -# https://developer.android.com/topic/libraries/support-library/androidx-rn -android.useAndroidX=true -# Automatically convert third-party libraries to use AndroidX -android.enableJetifier=true - -# Version of flipper SDK to use with React Native -FLIPPER_VERSION=0.125.0 - -# Use this property to specify which architecture you want to build. -# You can also override it from the CLI using -# ./gradlew -PreactNativeArchitectures=x86_64 -reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 - -# Use this property to enable support to the new architecture. -# This will allow you to use TurboModules and the Fabric render in -# your application. You should enable this flag either if you want -# to write custom TurboModules/Fabric components OR use libraries that -# are providing them. -newArchEnabled=false diff --git a/features/base-fixtures/rn0_69/android/gradle/wrapper/gradle-wrapper.jar b/features/base-fixtures/rn0_69/android/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 7454180f..00000000 Binary files a/features/base-fixtures/rn0_69/android/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/features/base-fixtures/rn0_69/android/gradle/wrapper/gradle-wrapper.properties b/features/base-fixtures/rn0_69/android/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 669386b8..00000000 --- a/features/base-fixtures/rn0_69/android/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/features/base-fixtures/rn0_69/android/gradlew b/features/base-fixtures/rn0_69/android/gradlew deleted file mode 100755 index 1b6c7873..00000000 --- a/features/base-fixtures/rn0_69/android/gradlew +++ /dev/null @@ -1,234 +0,0 @@ -#!/bin/sh - -# -# Copyright Β© 2015-2021 the original authors. -# -# 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 -# -# https://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. -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions Β«$varΒ», Β«${var}Β», Β«${var:-default}Β», Β«${var+SET}Β», -# Β«${var#prefix}Β», Β«${var%suffix}Β», and Β«$( cmd )Β»; -# * compound commands having a testable exit status, especially Β«caseΒ»; -# * various built-in commands including Β«commandΒ», Β«setΒ», and Β«ulimitΒ». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" -APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ - "$@" - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/features/base-fixtures/rn0_69/android/gradlew.bat b/features/base-fixtures/rn0_69/android/gradlew.bat deleted file mode 100644 index ac1b06f9..00000000 --- a/features/base-fixtures/rn0_69/android/gradlew.bat +++ /dev/null @@ -1,89 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/features/base-fixtures/rn0_69/android/settings.gradle b/features/base-fixtures/rn0_69/android/settings.gradle deleted file mode 100644 index b0b0b0ec..00000000 --- a/features/base-fixtures/rn0_69/android/settings.gradle +++ /dev/null @@ -1,11 +0,0 @@ -rootProject.name = 'rn0_69' -apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) -include ':app' -includeBuild('../node_modules/react-native-gradle-plugin') - -if (settings.hasProperty("newArchEnabled") && settings.newArchEnabled == "true") { - include(":ReactAndroid") - project(":ReactAndroid").projectDir = file('../node_modules/react-native/ReactAndroid') - include(":ReactAndroid:hermes-engine") - project(":ReactAndroid:hermes-engine").projectDir = file('../node_modules/react-native/ReactAndroid/hermes-engine') -} diff --git a/features/base-fixtures/rn0_69/app.json b/features/base-fixtures/rn0_69/app.json deleted file mode 100644 index 53c1d81f..00000000 --- a/features/base-fixtures/rn0_69/app.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "rn0_69", - "displayName": "rn0_69" -} \ No newline at end of file diff --git a/features/base-fixtures/rn0_69/babel.config.js b/features/base-fixtures/rn0_69/babel.config.js deleted file mode 100644 index f842b77f..00000000 --- a/features/base-fixtures/rn0_69/babel.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: ['module:metro-react-native-babel-preset'], -}; diff --git a/features/base-fixtures/rn0_69/index.js b/features/base-fixtures/rn0_69/index.js deleted file mode 100644 index a850d031..00000000 --- a/features/base-fixtures/rn0_69/index.js +++ /dev/null @@ -1,9 +0,0 @@ -/** - * @format - */ - -import {AppRegistry} from 'react-native'; -import App from './App'; -import {name as appName} from './app.json'; - -AppRegistry.registerComponent(appName, () => App); diff --git a/features/base-fixtures/rn0_69/ios/.xcode.env b/features/base-fixtures/rn0_69/ios/.xcode.env deleted file mode 100644 index 3d5782c7..00000000 --- a/features/base-fixtures/rn0_69/ios/.xcode.env +++ /dev/null @@ -1,11 +0,0 @@ -# This `.xcode.env` file is versioned and is used to source the environment -# used when running script phases inside Xcode. -# To customize your local environment, you can create an `.xcode.env.local` -# file that is not versioned. - -# NODE_BINARY variable contains the PATH to the node executable. -# -# Customize the NODE_BINARY variable here. -# For example, to use nvm with brew, add the following line -# . "$(brew --prefix nvm)/nvm.sh" --no-use -export NODE_BINARY=$(command -v node) diff --git a/features/base-fixtures/rn0_69/ios/Podfile b/features/base-fixtures/rn0_69/ios/Podfile deleted file mode 100644 index ce84fc25..00000000 --- a/features/base-fixtures/rn0_69/ios/Podfile +++ /dev/null @@ -1,35 +0,0 @@ -require_relative '../node_modules/react-native/scripts/react_native_pods' -require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' - -platform :ios, '12.4' -install! 'cocoapods', :deterministic_uuids => false - -production = ENV["PRODUCTION"] == "1" - -target 'rn0_69' do - config = use_native_modules! - - # Flags change depending on the env values. - flags = get_default_flags() - - use_react_native!( - :path => config[:reactNativePath], - # to enable hermes on iOS, change `false` to `true` and then install pods - :production => production, - :hermes_enabled => flags[:hermes_enabled], - :fabric_enabled => flags[:fabric_enabled], - :flipper_configuration => FlipperConfiguration.enabled, - # An absolute path to your application root. - :app_path => "#{Pod::Config.instance.installation_root}/.." - ) - - target 'rn0_69Tests' do - inherit! :complete - # Pods for testing - end - - post_install do |installer| - react_native_post_install(installer) - __apply_Xcode_12_5_M1_post_install_workaround(installer) - end -end diff --git a/features/base-fixtures/rn0_69/ios/rn0_69.xcodeproj/project.pbxproj b/features/base-fixtures/rn0_69/ios/rn0_69.xcodeproj/project.pbxproj deleted file mode 100644 index dcd563e9..00000000 --- a/features/base-fixtures/rn0_69/ios/rn0_69.xcodeproj/project.pbxproj +++ /dev/null @@ -1,704 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 54; - objects = { - -/* Begin PBXBuildFile section */ - 00E356F31AD99517003FC87E /* rn0_69Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* rn0_69Tests.m */; }; - 0C80B921A6F3F58F76C31292 /* libPods-rn0_69.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-rn0_69.a */; }; - 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; - 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; - 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 7699B88040F8A987B510C191 /* libPods-rn0_69-rn0_69Tests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-rn0_69-rn0_69Tests.a */; }; - 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 13B07F861A680F5B00A75B9A; - remoteInfo = rn0_69; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 00E356EE1AD99517003FC87E /* rn0_69Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = rn0_69Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 00E356F21AD99517003FC87E /* rn0_69Tests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = rn0_69Tests.m; sourceTree = ""; }; - 13B07F961A680F5B00A75B9A /* rn0_69.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = rn0_69.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = rn0_69/AppDelegate.h; sourceTree = ""; }; - 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = rn0_69/AppDelegate.mm; sourceTree = ""; }; - 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = rn0_69/Images.xcassets; sourceTree = ""; }; - 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = rn0_69/Info.plist; sourceTree = ""; }; - 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = rn0_69/main.m; sourceTree = ""; }; - 19F6CBCC0A4E27FBF8BF4A61 /* libPods-rn0_69-rn0_69Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-rn0_69-rn0_69Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 3B4392A12AC88292D35C810B /* Pods-rn0_69.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-rn0_69.debug.xcconfig"; path = "Target Support Files/Pods-rn0_69/Pods-rn0_69.debug.xcconfig"; sourceTree = ""; }; - 5709B34CF0A7D63546082F79 /* Pods-rn0_69.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-rn0_69.release.xcconfig"; path = "Target Support Files/Pods-rn0_69/Pods-rn0_69.release.xcconfig"; sourceTree = ""; }; - 5B7EB9410499542E8C5724F5 /* Pods-rn0_69-rn0_69Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-rn0_69-rn0_69Tests.debug.xcconfig"; path = "Target Support Files/Pods-rn0_69-rn0_69Tests/Pods-rn0_69-rn0_69Tests.debug.xcconfig"; sourceTree = ""; }; - 5DCACB8F33CDC322A6C60F78 /* libPods-rn0_69.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-rn0_69.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = rn0_69/LaunchScreen.storyboard; sourceTree = ""; }; - 89C6BE57DB24E9ADA2F236DE /* Pods-rn0_69-rn0_69Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-rn0_69-rn0_69Tests.release.xcconfig"; path = "Target Support Files/Pods-rn0_69-rn0_69Tests/Pods-rn0_69-rn0_69Tests.release.xcconfig"; sourceTree = ""; }; - ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 00E356EB1AD99517003FC87E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 7699B88040F8A987B510C191 /* libPods-rn0_69-rn0_69Tests.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 0C80B921A6F3F58F76C31292 /* libPods-rn0_69.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 00E356EF1AD99517003FC87E /* rn0_69Tests */ = { - isa = PBXGroup; - children = ( - 00E356F21AD99517003FC87E /* rn0_69Tests.m */, - 00E356F01AD99517003FC87E /* Supporting Files */, - ); - path = rn0_69Tests; - sourceTree = ""; - }; - 00E356F01AD99517003FC87E /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 00E356F11AD99517003FC87E /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 13B07FAE1A68108700A75B9A /* rn0_69 */ = { - isa = PBXGroup; - children = ( - 13B07FAF1A68108700A75B9A /* AppDelegate.h */, - 13B07FB01A68108700A75B9A /* AppDelegate.mm */, - 13B07FB51A68108700A75B9A /* Images.xcassets */, - 13B07FB61A68108700A75B9A /* Info.plist */, - 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, - 13B07FB71A68108700A75B9A /* main.m */, - ); - name = rn0_69; - sourceTree = ""; - }; - 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { - isa = PBXGroup; - children = ( - ED297162215061F000B7C4FE /* JavaScriptCore.framework */, - 5DCACB8F33CDC322A6C60F78 /* libPods-rn0_69.a */, - 19F6CBCC0A4E27FBF8BF4A61 /* libPods-rn0_69-rn0_69Tests.a */, - ); - name = Frameworks; - sourceTree = ""; - }; - 832341AE1AAA6A7D00B99B32 /* Libraries */ = { - isa = PBXGroup; - children = ( - ); - name = Libraries; - sourceTree = ""; - }; - 83CBB9F61A601CBA00E9B192 = { - isa = PBXGroup; - children = ( - 13B07FAE1A68108700A75B9A /* rn0_69 */, - 832341AE1AAA6A7D00B99B32 /* Libraries */, - 00E356EF1AD99517003FC87E /* rn0_69Tests */, - 83CBBA001A601CBA00E9B192 /* Products */, - 2D16E6871FA4F8E400B85C8A /* Frameworks */, - BBD78D7AC51CEA395F1C20DB /* Pods */, - ); - indentWidth = 2; - sourceTree = ""; - tabWidth = 2; - usesTabs = 0; - }; - 83CBBA001A601CBA00E9B192 /* Products */ = { - isa = PBXGroup; - children = ( - 13B07F961A680F5B00A75B9A /* rn0_69.app */, - 00E356EE1AD99517003FC87E /* rn0_69Tests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - BBD78D7AC51CEA395F1C20DB /* Pods */ = { - isa = PBXGroup; - children = ( - 3B4392A12AC88292D35C810B /* Pods-rn0_69.debug.xcconfig */, - 5709B34CF0A7D63546082F79 /* Pods-rn0_69.release.xcconfig */, - 5B7EB9410499542E8C5724F5 /* Pods-rn0_69-rn0_69Tests.debug.xcconfig */, - 89C6BE57DB24E9ADA2F236DE /* Pods-rn0_69-rn0_69Tests.release.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 00E356ED1AD99517003FC87E /* rn0_69Tests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "rn0_69Tests" */; - buildPhases = ( - A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */, - 00E356EA1AD99517003FC87E /* Sources */, - 00E356EB1AD99517003FC87E /* Frameworks */, - 00E356EC1AD99517003FC87E /* Resources */, - C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */, - F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - 00E356F51AD99517003FC87E /* PBXTargetDependency */, - ); - name = rn0_69Tests; - productName = rn0_69Tests; - productReference = 00E356EE1AD99517003FC87E /* rn0_69Tests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 13B07F861A680F5B00A75B9A /* rn0_69 */ = { - isa = PBXNativeTarget; - buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "rn0_69" */; - buildPhases = ( - C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */, - FD10A7F022414F080027D42C /* Start Packager */, - 13B07F871A680F5B00A75B9A /* Sources */, - 13B07F8C1A680F5B00A75B9A /* Frameworks */, - 13B07F8E1A680F5B00A75B9A /* Resources */, - 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */, - E235C05ADACE081382539298 /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = rn0_69; - productName = rn0_69; - productReference = 13B07F961A680F5B00A75B9A /* rn0_69.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 83CBB9F71A601CBA00E9B192 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1210; - TargetAttributes = { - 00E356ED1AD99517003FC87E = { - CreatedOnToolsVersion = 6.2; - TestTargetID = 13B07F861A680F5B00A75B9A; - }; - 13B07F861A680F5B00A75B9A = { - LastSwiftMigration = 1120; - }; - }; - }; - buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "rn0_69" */; - compatibilityVersion = "Xcode 12.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 83CBB9F61A601CBA00E9B192; - productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 13B07F861A680F5B00A75B9A /* rn0_69 */, - 00E356ED1AD99517003FC87E /* rn0_69Tests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 00E356EC1AD99517003FC87E /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13B07F8E1A680F5B00A75B9A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */, - 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "$(SRCROOT)/.xcode.env.local", - "$(SRCROOT)/.xcode.env", - ); - name = "Bundle React Native code and images"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "set -e\n\nexport SOURCEMAP_PATH=\"$(pwd)/build/sourcemaps\"\nmkdir -p $SOURCEMAP_PATH\nexport SOURCEMAP_FILE=\"$SOURCEMAP_PATH/main.jsbundle.map\";\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; - }; - 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rn0_69/Pods-rn0_69-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rn0_69/Pods-rn0_69-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-rn0_69/Pods-rn0_69-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-rn0_69-rn0_69Tests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-rn0_69-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rn0_69-rn0_69Tests/Pods-rn0_69-rn0_69Tests-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rn0_69-rn0_69Tests/Pods-rn0_69-rn0_69Tests-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-rn0_69-rn0_69Tests/Pods-rn0_69-rn0_69Tests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rn0_69/Pods-rn0_69-resources-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rn0_69/Pods-rn0_69-resources-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-rn0_69/Pods-rn0_69-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rn0_69-rn0_69Tests/Pods-rn0_69-rn0_69Tests-resources-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rn0_69-rn0_69Tests/Pods-rn0_69-rn0_69Tests-resources-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-rn0_69-rn0_69Tests/Pods-rn0_69-rn0_69Tests-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - FD10A7F022414F080027D42C /* Start Packager */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Start Packager"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 00E356EA1AD99517003FC87E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 00E356F31AD99517003FC87E /* rn0_69Tests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13B07F871A680F5B00A75B9A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, - 13B07FC11A68108700A75B9A /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 13B07F861A680F5B00A75B9A /* rn0_69 */; - targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 00E356F61AD99517003FC87E /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5B7EB9410499542E8C5724F5 /* Pods-rn0_69-rn0_69Tests.debug.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = rn0_69Tests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.4; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - "$(inherited)", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.bugsnag.fixtures.reactnative"; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/rn0_69.app/rn0_69"; - }; - name = Debug; - }; - 00E356F71AD99517003FC87E /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 89C6BE57DB24E9ADA2F236DE /* Pods-rn0_69-rn0_69Tests.release.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - COPY_PHASE_STRIP = NO; - INFOPLIST_FILE = rn0_69Tests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.4; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - "$(inherited)", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.bugsnag.fixtures.reactnative"; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/rn0_69.app/rn0_69"; - }; - name = Release; - }; - 13B07F941A680F5B00A75B9A /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-rn0_69.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = 7W9PZ27Y5F; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = rn0_69/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.bugsnag.fixtures.reactnative"; - PRODUCT_NAME = rn0_69; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Debug; - }; - 13B07F951A680F5B00A75B9A /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-rn0_69.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = 7W9PZ27Y5F; - INFOPLIST_FILE = rn0_69/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.bugsnag.fixtures.reactnative"; - PRODUCT_NAME = rn0_69; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Release; - }; - 83CBBA201A601CBA00E9B192 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++17"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.4; - LD_RUNPATH_SEARCH_PATHS = ( - /usr/lib/swift, - "$(inherited)", - ); - LIBRARY_SEARCH_PATHS = ( - "\"$(SDKROOT)/usr/lib/swift\"", - "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", - "\"$(inherited)\"", - ); - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-DFOLLY_NO_CONFIG", - "-DFOLLY_MOBILE=1", - "-DFOLLY_USE_LIBCPP=1", - ); - REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 83CBBA211A601CBA00E9B192 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++17"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.4; - LD_RUNPATH_SEARCH_PATHS = ( - /usr/lib/swift, - "$(inherited)", - ); - LIBRARY_SEARCH_PATHS = ( - "\"$(SDKROOT)/usr/lib/swift\"", - "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", - "\"$(inherited)\"", - ); - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-DFOLLY_NO_CONFIG", - "-DFOLLY_MOBILE=1", - "-DFOLLY_USE_LIBCPP=1", - ); - REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "rn0_69Tests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 00E356F61AD99517003FC87E /* Debug */, - 00E356F71AD99517003FC87E /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "rn0_69" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 13B07F941A680F5B00A75B9A /* Debug */, - 13B07F951A680F5B00A75B9A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "rn0_69" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 83CBBA201A601CBA00E9B192 /* Debug */, - 83CBBA211A601CBA00E9B192 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; -} diff --git a/features/base-fixtures/rn0_69/ios/rn0_69.xcodeproj/xcshareddata/xcschemes/rn0_69.xcscheme b/features/base-fixtures/rn0_69/ios/rn0_69.xcodeproj/xcshareddata/xcschemes/rn0_69.xcscheme deleted file mode 100644 index 016da067..00000000 --- a/features/base-fixtures/rn0_69/ios/rn0_69.xcodeproj/xcshareddata/xcschemes/rn0_69.xcscheme +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/features/base-fixtures/rn0_69/ios/rn0_69.xcworkspace/contents.xcworkspacedata b/features/base-fixtures/rn0_69/ios/rn0_69.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 9657895f..00000000 --- a/features/base-fixtures/rn0_69/ios/rn0_69.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/features/base-fixtures/rn0_69/ios/rn0_69/AppDelegate.h b/features/base-fixtures/rn0_69/ios/rn0_69/AppDelegate.h deleted file mode 100644 index ef1de86a..00000000 --- a/features/base-fixtures/rn0_69/ios/rn0_69/AppDelegate.h +++ /dev/null @@ -1,8 +0,0 @@ -#import -#import - -@interface AppDelegate : UIResponder - -@property (nonatomic, strong) UIWindow *window; - -@end diff --git a/features/base-fixtures/rn0_69/ios/rn0_69/AppDelegate.mm b/features/base-fixtures/rn0_69/ios/rn0_69/AppDelegate.mm deleted file mode 100644 index 466d9403..00000000 --- a/features/base-fixtures/rn0_69/ios/rn0_69/AppDelegate.mm +++ /dev/null @@ -1,133 +0,0 @@ -#import "AppDelegate.h" - -#import -#import -#import - -#import - -#if RCT_NEW_ARCH_ENABLED -#import -#import -#import -#import -#import -#import - -#import - -static NSString *const kRNConcurrentRoot = @"concurrentRoot"; - -@interface AppDelegate () { - RCTTurboModuleManager *_turboModuleManager; - RCTSurfacePresenterBridgeAdapter *_bridgeAdapter; - std::shared_ptr _reactNativeConfig; - facebook::react::ContextContainer::Shared _contextContainer; -} -@end -#endif - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ - RCTAppSetupPrepareApp(application); - - RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; - -#if RCT_NEW_ARCH_ENABLED - _contextContainer = std::make_shared(); - _reactNativeConfig = std::make_shared(); - _contextContainer->insert("ReactNativeConfig", _reactNativeConfig); - _bridgeAdapter = [[RCTSurfacePresenterBridgeAdapter alloc] initWithBridge:bridge contextContainer:_contextContainer]; - bridge.surfacePresenter = _bridgeAdapter.surfacePresenter; -#endif - - NSDictionary *initProps = [self prepareInitialProps]; - UIView *rootView = RCTAppSetupDefaultRootView(bridge, @"rn0_69", initProps); - - if (@available(iOS 13.0, *)) { - rootView.backgroundColor = [UIColor systemBackgroundColor]; - } else { - rootView.backgroundColor = [UIColor whiteColor]; - } - - self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; - UIViewController *rootViewController = [UIViewController new]; - rootViewController.view = rootView; - self.window.rootViewController = rootViewController; - [self.window makeKeyAndVisible]; - return YES; -} - -/// This method controls whether the `concurrentRoot`feature of React18 is turned on or off. -/// -/// @see: https://reactjs.org/blog/2022/03/29/react-v18.html -/// @note: This requires to be rendering on Fabric (i.e. on the New Architecture). -/// @return: `true` if the `concurrentRoot` feture is enabled. Otherwise, it returns `false`. -- (BOOL)concurrentRootEnabled -{ - // Switch this bool to turn on and off the concurrent root - return true; -} - -- (NSDictionary *)prepareInitialProps -{ - NSMutableDictionary *initProps = [NSMutableDictionary new]; - -#ifdef RCT_NEW_ARCH_ENABLED - initProps[kRNConcurrentRoot] = @([self concurrentRootEnabled]); -#endif - - return initProps; -} - -- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge -{ -#if DEBUG - return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; -#else - return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; -#endif -} - -#if RCT_NEW_ARCH_ENABLED - -#pragma mark - RCTCxxBridgeDelegate - -- (std::unique_ptr)jsExecutorFactoryForBridge:(RCTBridge *)bridge -{ - _turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge - delegate:self - jsInvoker:bridge.jsCallInvoker]; - return RCTAppSetupDefaultJsExecutorFactory(bridge, _turboModuleManager); -} - -#pragma mark RCTTurboModuleManagerDelegate - -- (Class)getModuleClassFromName:(const char *)name -{ - return RCTCoreModulesClassProvider(name); -} - -- (std::shared_ptr)getTurboModule:(const std::string &)name - jsInvoker:(std::shared_ptr)jsInvoker -{ - return nullptr; -} - -- (std::shared_ptr)getTurboModule:(const std::string &)name - initParams: - (const facebook::react::ObjCTurboModule::InitParams &)params -{ - return nullptr; -} - -- (id)getModuleInstanceFromClass:(Class)moduleClass -{ - return RCTAppSetupDefaultModuleFromClass(moduleClass); -} - -#endif - -@end diff --git a/features/base-fixtures/rn0_69/ios/rn0_69/Images.xcassets/AppIcon.appiconset/Contents.json b/features/base-fixtures/rn0_69/ios/rn0_69/Images.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 81213230..00000000 --- a/features/base-fixtures/rn0_69/ios/rn0_69/Images.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "20x20" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "20x20" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "29x29" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "29x29" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "40x40" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "40x40" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "60x60" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "60x60" - }, - { - "idiom" : "ios-marketing", - "scale" : "1x", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/features/base-fixtures/rn0_69/ios/rn0_69/Images.xcassets/Contents.json b/features/base-fixtures/rn0_69/ios/rn0_69/Images.xcassets/Contents.json deleted file mode 100644 index 2d92bd53..00000000 --- a/features/base-fixtures/rn0_69/ios/rn0_69/Images.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/features/base-fixtures/rn0_69/ios/rn0_69/Info.plist b/features/base-fixtures/rn0_69/ios/rn0_69/Info.plist deleted file mode 100644 index 9a355d78..00000000 --- a/features/base-fixtures/rn0_69/ios/rn0_69/Info.plist +++ /dev/null @@ -1,55 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - rn0_69 - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - NSAppTransportSecurity - - NSExceptionDomains - - localhost - - NSExceptionAllowsInsecureHTTPLoads - - - - - NSLocationWhenInUseUsageDescription - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIViewControllerBasedStatusBarAppearance - - - diff --git a/features/base-fixtures/rn0_69/ios/rn0_69/LaunchScreen.storyboard b/features/base-fixtures/rn0_69/ios/rn0_69/LaunchScreen.storyboard deleted file mode 100644 index 130dd3b2..00000000 --- a/features/base-fixtures/rn0_69/ios/rn0_69/LaunchScreen.storyboard +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/features/base-fixtures/rn0_69/ios/rn0_69/main.m b/features/base-fixtures/rn0_69/ios/rn0_69/main.m deleted file mode 100644 index d645c724..00000000 --- a/features/base-fixtures/rn0_69/ios/rn0_69/main.m +++ /dev/null @@ -1,10 +0,0 @@ -#import - -#import "AppDelegate.h" - -int main(int argc, char *argv[]) -{ - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/features/base-fixtures/rn0_69/ios/rn0_69Tests/Info.plist b/features/base-fixtures/rn0_69/ios/rn0_69Tests/Info.plist deleted file mode 100644 index ba72822e..00000000 --- a/features/base-fixtures/rn0_69/ios/rn0_69Tests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/features/base-fixtures/rn0_69/ios/rn0_69Tests/rn0_69Tests.m b/features/base-fixtures/rn0_69/ios/rn0_69Tests/rn0_69Tests.m deleted file mode 100644 index dda8e7d6..00000000 --- a/features/base-fixtures/rn0_69/ios/rn0_69Tests/rn0_69Tests.m +++ /dev/null @@ -1,66 +0,0 @@ -#import -#import - -#import -#import - -#define TIMEOUT_SECONDS 600 -#define TEXT_TO_LOOK_FOR @"Welcome to React" - -@interface rn0_69Tests : XCTestCase - -@end - -@implementation rn0_69Tests - -- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test -{ - if (test(view)) { - return YES; - } - for (UIView *subview in [view subviews]) { - if ([self findSubviewInView:subview matching:test]) { - return YES; - } - } - return NO; -} - -- (void)testRendersWelcomeScreen -{ - UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; - NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; - BOOL foundElement = NO; - - __block NSString *redboxError = nil; -#ifdef DEBUG - RCTSetLogFunction( - ^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { - if (level >= RCTLogLevelError) { - redboxError = message; - } - }); -#endif - - while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { - [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; - [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; - - foundElement = [self findSubviewInView:vc.view - matching:^BOOL(UIView *view) { - if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { - return YES; - } - return NO; - }]; - } - -#ifdef DEBUG - RCTSetLogFunction(RCTDefaultLogFunction); -#endif - - XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); - XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); -} - -@end diff --git a/features/base-fixtures/rn0_69/metro.config.js b/features/base-fixtures/rn0_69/metro.config.js deleted file mode 100644 index e91aba93..00000000 --- a/features/base-fixtures/rn0_69/metro.config.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Metro configuration for React Native - * https://github.com/facebook/react-native - * - * @format - */ - -module.exports = { - transformer: { - getTransformOptions: async () => ({ - transform: { - experimentalImportSupport: false, - inlineRequires: true, - }, - }), - }, -}; diff --git a/features/base-fixtures/rn0_69/package.json b/features/base-fixtures/rn0_69/package.json deleted file mode 100644 index c3cc990a..00000000 --- a/features/base-fixtures/rn0_69/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "rn0_69", - "version": "0.0.1", - "private": true, - "scripts": { - "android": "react-native run-android", - "ios": "react-native run-ios", - "start": "react-native start", - "test": "jest", - "lint": "eslint ." - }, - "dependencies": { - "braces": "3.0.3", - "react": "^18.0.0", - "react-native": "^0.69.12" - }, - "devDependencies": { - "@babel/core": "^7.12.9", - "@babel/runtime": "^7.12.5", - "@react-native-community/eslint-config": "^2.0.0", - "babel-jest": "^29.7.0", - "eslint": "^7.32.0", - "jest": "^29.7.0", - "metro-react-native-babel-preset": "^0.70.3", - "react-test-renderer": "18.0.0" - }, - "jest": { - "preset": "react-native" - } -} diff --git a/features/base-fixtures/rn0_70/.buckconfig b/features/base-fixtures/rn0_70/.buckconfig deleted file mode 100644 index 934256cb..00000000 --- a/features/base-fixtures/rn0_70/.buckconfig +++ /dev/null @@ -1,6 +0,0 @@ - -[android] - target = Google Inc.:Google APIs:23 - -[maven_repositories] - central = https://repo1.maven.org/maven2 diff --git a/features/base-fixtures/rn0_70/.bundle/config b/features/base-fixtures/rn0_70/.bundle/config deleted file mode 100644 index 848943bb..00000000 --- a/features/base-fixtures/rn0_70/.bundle/config +++ /dev/null @@ -1,2 +0,0 @@ -BUNDLE_PATH: "vendor/bundle" -BUNDLE_FORCE_RUBY_PLATFORM: 1 diff --git a/features/base-fixtures/rn0_70/.eslintrc.js b/features/base-fixtures/rn0_70/.eslintrc.js deleted file mode 100644 index 40c6dcd0..00000000 --- a/features/base-fixtures/rn0_70/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - root: true, - extends: '@react-native-community', -}; diff --git a/features/base-fixtures/rn0_70/.flowconfig b/features/base-fixtures/rn0_70/.flowconfig deleted file mode 100644 index 3782e447..00000000 --- a/features/base-fixtures/rn0_70/.flowconfig +++ /dev/null @@ -1,66 +0,0 @@ -[ignore] -; We fork some components by platform -.*/*[.]android.js - -; Ignore "BUCK" generated dirs -/\.buckd/ - -; Ignore polyfills -node_modules/react-native/Libraries/polyfills/.* - -; Flow doesn't support platforms -.*/Libraries/Utilities/LoadingView.js - -.*/node_modules/resolve/test/resolver/malformed_package_json/package\.json$ - -[untyped] -.*/node_modules/@react-native-community/cli/.*/.* - -[include] - -[libs] -node_modules/react-native/interface.js -node_modules/react-native/flow/ - -[options] -emoji=true - -exact_by_default=true - -format.bracket_spacing=false - -module.file_ext=.js -module.file_ext=.json -module.file_ext=.ios.js - -munge_underscores=true - -module.name_mapper='^react-native/\(.*\)$' -> '/node_modules/react-native/\1' -module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '/node_modules/react-native/Libraries/Image/RelativeImageStub' - -suppress_type=$FlowIssue -suppress_type=$FlowFixMe -suppress_type=$FlowFixMeProps -suppress_type=$FlowFixMeState - -[lints] -sketchy-null-number=warn -sketchy-null-mixed=warn -sketchy-number=warn -untyped-type-import=warn -nonstrict-import=warn -deprecated-type=warn -unsafe-getters-setters=warn -unnecessary-invariant=warn - -[strict] -deprecated-type -nonstrict-import -sketchy-null -unclear-type -unsafe-getters-setters -untyped-import -untyped-type-import - -[version] -^0.182.0 diff --git a/features/base-fixtures/rn0_70/.gitignore b/features/base-fixtures/rn0_70/.gitignore deleted file mode 100644 index 2423126f..00000000 --- a/features/base-fixtures/rn0_70/.gitignore +++ /dev/null @@ -1,64 +0,0 @@ -# OSX -# -.DS_Store - -# Xcode -# -build/ -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 -xcuserdata -*.xccheckout -*.moved-aside -DerivedData -*.hmap -*.ipa -*.xcuserstate -ios/.xcode.env.local - -# Android/IntelliJ -# -build/ -.idea -.gradle -local.properties -*.iml -*.hprof -.cxx/ - -# node.js -# -node_modules/ -npm-debug.log -yarn-error.log - -# BUCK -buck-out/ -\.buckd/ -*.keystore -!debug.keystore - -# fastlane -# -# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the -# screenshots whenever they are needed. -# For more information about the recommended setup visit: -# https://docs.fastlane.tools/best-practices/source-control/ - -**/fastlane/report.xml -**/fastlane/Preview.html -**/fastlane/screenshots -**/fastlane/test_output - -# Bundle artifact -*.jsbundle - -# Ruby / CocoaPods -/ios/Pods/ -/vendor/bundle/ diff --git a/features/base-fixtures/rn0_70/.node-version b/features/base-fixtures/rn0_70/.node-version deleted file mode 100644 index b6a7d89c..00000000 --- a/features/base-fixtures/rn0_70/.node-version +++ /dev/null @@ -1 +0,0 @@ -16 diff --git a/features/base-fixtures/rn0_70/.prettierrc.js b/features/base-fixtures/rn0_70/.prettierrc.js deleted file mode 100644 index 2b540746..00000000 --- a/features/base-fixtures/rn0_70/.prettierrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - arrowParens: 'avoid', - bracketSameLine: true, - bracketSpacing: false, - singleQuote: true, - trailingComma: 'all', -}; diff --git a/features/base-fixtures/rn0_70/.watchmanconfig b/features/base-fixtures/rn0_70/.watchmanconfig deleted file mode 100644 index 9e26dfee..00000000 --- a/features/base-fixtures/rn0_70/.watchmanconfig +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/features/base-fixtures/rn0_70/App.js b/features/base-fixtures/rn0_70/App.js deleted file mode 100644 index 4c97733b..00000000 --- a/features/base-fixtures/rn0_70/App.js +++ /dev/null @@ -1,117 +0,0 @@ -/** - * Sample React Native App - * https://github.com/facebook/react-native - * - * @format - * @flow strict-local - */ - -import React from 'react'; -import type {Node} from 'react'; -import { - SafeAreaView, - ScrollView, - StatusBar, - StyleSheet, - Text, - useColorScheme, - View, -} from 'react-native'; - -import { - Colors, - DebugInstructions, - Header, - LearnMoreLinks, - ReloadInstructions, -} from 'react-native/Libraries/NewAppScreen'; - -/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's - * LTI update could not be added via codemod */ -const Section = ({children, title}): Node => { - const isDarkMode = useColorScheme() === 'dark'; - return ( - - - {title} - - - {children} - - - ); -}; - -const App: () => Node = () => { - const isDarkMode = useColorScheme() === 'dark'; - - const backgroundStyle = { - backgroundColor: isDarkMode ? Colors.darker : Colors.lighter, - }; - - return ( - - - -

- -
- Edit App.js to change this - screen and then come back to see your edits. -
-
- -
-
- -
-
- Read the docs to discover what to do next: -
- -
- - - ); -}; - -const styles = StyleSheet.create({ - sectionContainer: { - marginTop: 32, - paddingHorizontal: 24, - }, - sectionTitle: { - fontSize: 24, - fontWeight: '600', - }, - sectionDescription: { - marginTop: 8, - fontSize: 18, - fontWeight: '400', - }, - highlight: { - fontWeight: '700', - }, -}); - -export default App; diff --git a/features/base-fixtures/rn0_70/Gemfile b/features/base-fixtures/rn0_70/Gemfile deleted file mode 100644 index efb34ae1..00000000 --- a/features/base-fixtures/rn0_70/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -source 'https://rubygems.org' - -# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version -ruby '>= 2.6.10' - -gem 'cocoapods', '1.14.3' -gem 'xcodeproj', '< 1.26.0' diff --git a/features/base-fixtures/rn0_70/__tests__/App-test.js b/features/base-fixtures/rn0_70/__tests__/App-test.js deleted file mode 100644 index 17847669..00000000 --- a/features/base-fixtures/rn0_70/__tests__/App-test.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * @format - */ - -import 'react-native'; -import React from 'react'; -import App from '../App'; - -// Note: test renderer must be required after react-native. -import renderer from 'react-test-renderer'; - -it('renders correctly', () => { - renderer.create(); -}); diff --git a/features/base-fixtures/rn0_70/android/app/_BUCK b/features/base-fixtures/rn0_70/android/app/_BUCK deleted file mode 100644 index 0663ceba..00000000 --- a/features/base-fixtures/rn0_70/android/app/_BUCK +++ /dev/null @@ -1,55 +0,0 @@ -# To learn about Buck see [Docs](https://buckbuild.com/). -# To run your application with Buck: -# - install Buck -# - `npm start` - to start the packager -# - `cd android` -# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"` -# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck -# - `buck install -r android/app` - compile, install and run application -# - -load(":build_defs.bzl", "create_aar_targets", "create_jar_targets") - -lib_deps = [] - -create_aar_targets(glob(["libs/*.aar"])) - -create_jar_targets(glob(["libs/*.jar"])) - -android_library( - name = "all-libs", - exported_deps = lib_deps, -) - -android_library( - name = "app-code", - srcs = glob([ - "src/main/java/**/*.java", - ]), - deps = [ - ":all-libs", - ":build_config", - ":res", - ], -) - -android_build_config( - name = "build_config", - package = "com.rn0_70", -) - -android_resource( - name = "res", - package = "com.rn0_70", - res = "src/main/res", -) - -android_binary( - name = "app", - keystore = "//android/keystores:debug", - manifest = "src/main/AndroidManifest.xml", - package_type = "debug", - deps = [ - ":app-code", - ], -) diff --git a/features/base-fixtures/rn0_70/android/app/build.gradle b/features/base-fixtures/rn0_70/android/app/build.gradle deleted file mode 100644 index ea7522e5..00000000 --- a/features/base-fixtures/rn0_70/android/app/build.gradle +++ /dev/null @@ -1,313 +0,0 @@ -apply plugin: "com.android.application" - -import com.android.build.OutputFile -import org.apache.tools.ant.taskdefs.condition.Os - -/** - * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets - * and bundleReleaseJsAndAssets). - * These basically call `react-native bundle` with the correct arguments during the Android build - * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the - * bundle directly from the development server. Below you can see all the possible configurations - * and their defaults. If you decide to add a configuration block, make sure to add it before the - * `apply from: "../../node_modules/react-native/react.gradle"` line. - * - * project.ext.react = [ - * // the name of the generated asset file containing your JS bundle - * bundleAssetName: "index.android.bundle", - * - * // the entry file for bundle generation. If none specified and - * // "index.android.js" exists, it will be used. Otherwise "index.js" is - * // default. Can be overridden with ENTRY_FILE environment variable. - * entryFile: "index.android.js", - * - * // https://reactnative.dev/docs/performance#enable-the-ram-format - * bundleCommand: "ram-bundle", - * - * // whether to bundle JS and assets in debug mode - * bundleInDebug: false, - * - * // whether to bundle JS and assets in release mode - * bundleInRelease: true, - * - * // whether to bundle JS and assets in another build variant (if configured). - * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants - * // The configuration property can be in the following formats - * // 'bundleIn${productFlavor}${buildType}' - * // 'bundleIn${buildType}' - * // bundleInFreeDebug: true, - * // bundleInPaidRelease: true, - * // bundleInBeta: true, - * - * // whether to disable dev mode in custom build variants (by default only disabled in release) - * // for example: to disable dev mode in the staging build type (if configured) - * devDisabledInStaging: true, - * // The configuration property can be in the following formats - * // 'devDisabledIn${productFlavor}${buildType}' - * // 'devDisabledIn${buildType}' - * - * // the root of your project, i.e. where "package.json" lives - * root: "../../", - * - * // where to put the JS bundle asset in debug mode - * jsBundleDirDebug: "$buildDir/intermediates/assets/debug", - * - * // where to put the JS bundle asset in release mode - * jsBundleDirRelease: "$buildDir/intermediates/assets/release", - * - * // where to put drawable resources / React Native assets, e.g. the ones you use via - * // require('./image.png')), in debug mode - * resourcesDirDebug: "$buildDir/intermediates/res/merged/debug", - * - * // where to put drawable resources / React Native assets, e.g. the ones you use via - * // require('./image.png')), in release mode - * resourcesDirRelease: "$buildDir/intermediates/res/merged/release", - * - * // by default the gradle tasks are skipped if none of the JS files or assets change; this means - * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to - * // date; if you have any other folders that you want to ignore for performance reasons (gradle - * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/ - * // for example, you might want to remove it from here. - * inputExcludes: ["android/**", "ios/**"], - * - * // override which node gets called and with what additional arguments - * nodeExecutableAndArgs: ["node"], - * - * // supply additional arguments to the packager - * extraPackagerArgs: [] - * ] - */ - -project.ext.react = [ - enableHermes: true, // clean and rebuild if changing -] - -apply from: "../../node_modules/react-native/react.gradle" - -/** - * Set this to true to create two separate APKs instead of one: - * - An APK that only works on ARM devices - * - An APK that only works on x86 devices - * The advantage is the size of the APK is reduced by about 4MB. - * Upload all the APKs to the Play Store and people will download - * the correct one based on the CPU architecture of their device. - */ -def enableSeparateBuildPerCPUArchitecture = false - -/** - * Run Proguard to shrink the Java bytecode in release builds. - */ -def enableProguardInReleaseBuilds = false - -/** - * The preferred build flavor of JavaScriptCore. - * - * For example, to use the international variant, you can use: - * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` - * - * The international variant includes ICU i18n library and necessary data - * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that - * give correct results when using with locales other than en-US. Note that - * this variant is about 6MiB larger per architecture than default. - */ -def jscFlavor = 'org.webkit:android-jsc:+' - -/** - * Whether to enable the Hermes VM. - * - * This should be set on project.ext.react and that value will be read here. If it is not set - * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode - * and the benefits of using Hermes will therefore be sharply reduced. - */ -def enableHermes = project.ext.react.get("enableHermes", false); - -/** - * Architectures to build native code for. - */ -def reactNativeArchitectures() { - def value = project.getProperties().get("reactNativeArchitectures") - return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] -} - -android { - ndkVersion rootProject.ext.ndkVersion - - compileSdkVersion rootProject.ext.compileSdkVersion - - defaultConfig { - applicationId "com.rn0_70" - minSdkVersion rootProject.ext.minSdkVersion - targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 1 - versionName "1.0" - buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString() - - if (isNewArchitectureEnabled()) { - // We configure the CMake build only if you decide to opt-in for the New Architecture. - externalNativeBuild { - cmake { - arguments "-DPROJECT_BUILD_DIR=$buildDir", - "-DREACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid", - "-DREACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build", - "-DNODE_MODULES_DIR=$rootDir/../node_modules", - "-DANDROID_STL=c++_shared" - } - } - if (!enableSeparateBuildPerCPUArchitecture) { - ndk { - abiFilters (*reactNativeArchitectures()) - } - } - } - } - - if (isNewArchitectureEnabled()) { - // We configure the NDK build only if you decide to opt-in for the New Architecture. - externalNativeBuild { - cmake { - path "$projectDir/src/main/jni/CMakeLists.txt" - } - } - def reactAndroidProjectDir = project(':ReactAndroid').projectDir - def packageReactNdkDebugLibs = tasks.register("packageReactNdkDebugLibs", Copy) { - dependsOn(":ReactAndroid:packageReactNdkDebugLibsForBuck") - from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib") - into("$buildDir/react-ndk/exported") - } - def packageReactNdkReleaseLibs = tasks.register("packageReactNdkReleaseLibs", Copy) { - dependsOn(":ReactAndroid:packageReactNdkReleaseLibsForBuck") - from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib") - into("$buildDir/react-ndk/exported") - } - afterEvaluate { - // If you wish to add a custom TurboModule or component locally, - // you should uncomment this line. - // preBuild.dependsOn("generateCodegenArtifactsFromSchema") - preDebugBuild.dependsOn(packageReactNdkDebugLibs) - preReleaseBuild.dependsOn(packageReactNdkReleaseLibs) - - // Due to a bug inside AGP, we have to explicitly set a dependency - // between configureCMakeDebug* tasks and the preBuild tasks. - // This can be removed once this is solved: https://issuetracker.google.com/issues/207403732 - configureCMakeRelWithDebInfo.dependsOn(preReleaseBuild) - configureCMakeDebug.dependsOn(preDebugBuild) - reactNativeArchitectures().each { architecture -> - tasks.findByName("configureCMakeDebug[${architecture}]")?.configure { - dependsOn("preDebugBuild") - } - tasks.findByName("configureCMakeRelWithDebInfo[${architecture}]")?.configure { - dependsOn("preReleaseBuild") - } - } - } - } - - splits { - abi { - reset() - enable enableSeparateBuildPerCPUArchitecture - universalApk false // If true, also generate a universal APK - include (*reactNativeArchitectures()) - } - } - signingConfigs { - debug { - storeFile file('debug.keystore') - storePassword 'android' - keyAlias 'androiddebugkey' - keyPassword 'android' - } - } - buildTypes { - debug { - signingConfig signingConfigs.debug - } - release { - // Caution! In production, you need to generate your own keystore file. - // see https://reactnative.dev/docs/signed-apk-android. - signingConfig signingConfigs.debug - minifyEnabled enableProguardInReleaseBuilds - proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" - } - } - - // applicationVariants are e.g. debug, release - applicationVariants.all { variant -> - variant.outputs.each { output -> - // For each separate APK per architecture, set a unique version code as described here: - // https://developer.android.com/studio/build/configure-apk-splits.html - // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc. - def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4] - def abi = output.getFilter(OutputFile.ABI) - if (abi != null) { // null for the universal-debug, universal-release variants - output.versionCodeOverride = - defaultConfig.versionCode * 1000 + versionCodes.get(abi) - } - - } - } -} - -dependencies { - implementation fileTree(dir: "libs", include: ["*.jar"]) - - //noinspection GradleDynamicVersion - implementation "com.facebook.react:react-native:+" // From node_modules - - implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0" - - debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") { - exclude group:'com.facebook.fbjni' - } - - debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") { - exclude group:'com.facebook.flipper' - exclude group:'com.squareup.okhttp3', module:'okhttp' - } - - debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") { - exclude group:'com.facebook.flipper' - } - - if (enableHermes) { - //noinspection GradleDynamicVersion - implementation("com.facebook.react:hermes-engine:+") { // From node_modules - exclude group:'com.facebook.fbjni' - } - } else { - implementation jscFlavor - } -} - -if (isNewArchitectureEnabled()) { - // If new architecture is enabled, we let you build RN from source - // Otherwise we fallback to a prebuilt .aar bundled in the NPM package. - // This will be applied to all the imported transtitive dependency. - configurations.all { - resolutionStrategy.dependencySubstitution { - substitute(module("com.facebook.react:react-native")) - .using(project(":ReactAndroid")) - .because("On New Architecture we're building React Native from source") - substitute(module("com.facebook.react:hermes-engine")) - .using(project(":ReactAndroid:hermes-engine")) - .because("On New Architecture we're building Hermes from source") - } - } -} - -// Run this once to be able to run the application with BUCK -// puts all compile dependencies into folder libs for BUCK to use -task copyDownloadableDepsToLibs(type: Copy) { - from configurations.implementation - into 'libs' -} - -apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) - -def isNewArchitectureEnabled() { - // To opt-in for the New Architecture, you can either: - // - Set `newArchEnabled` to true inside the `gradle.properties` file - // - Invoke gradle with `-newArchEnabled=true` - // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true` - return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true" -} diff --git a/features/base-fixtures/rn0_70/android/app/build_defs.bzl b/features/base-fixtures/rn0_70/android/app/build_defs.bzl deleted file mode 100644 index fff270f8..00000000 --- a/features/base-fixtures/rn0_70/android/app/build_defs.bzl +++ /dev/null @@ -1,19 +0,0 @@ -"""Helper definitions to glob .aar and .jar targets""" - -def create_aar_targets(aarfiles): - for aarfile in aarfiles: - name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")] - lib_deps.append(":" + name) - android_prebuilt_aar( - name = name, - aar = aarfile, - ) - -def create_jar_targets(jarfiles): - for jarfile in jarfiles: - name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")] - lib_deps.append(":" + name) - prebuilt_jar( - name = name, - binary_jar = jarfile, - ) diff --git a/features/base-fixtures/rn0_70/android/app/debug.keystore b/features/base-fixtures/rn0_70/android/app/debug.keystore deleted file mode 100644 index 364e105e..00000000 Binary files a/features/base-fixtures/rn0_70/android/app/debug.keystore and /dev/null differ diff --git a/features/base-fixtures/rn0_70/android/app/proguard-rules.pro b/features/base-fixtures/rn0_70/android/app/proguard-rules.pro deleted file mode 100644 index 11b02572..00000000 --- a/features/base-fixtures/rn0_70/android/app/proguard-rules.pro +++ /dev/null @@ -1,10 +0,0 @@ -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: diff --git a/features/base-fixtures/rn0_70/android/app/src/debug/AndroidManifest.xml b/features/base-fixtures/rn0_70/android/app/src/debug/AndroidManifest.xml deleted file mode 100644 index 4b185bc1..00000000 --- a/features/base-fixtures/rn0_70/android/app/src/debug/AndroidManifest.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - diff --git a/features/base-fixtures/rn0_70/android/app/src/debug/java/com/rn0_70/ReactNativeFlipper.java b/features/base-fixtures/rn0_70/android/app/src/debug/java/com/rn0_70/ReactNativeFlipper.java deleted file mode 100644 index d52f6deb..00000000 --- a/features/base-fixtures/rn0_70/android/app/src/debug/java/com/rn0_70/ReactNativeFlipper.java +++ /dev/null @@ -1,73 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - *

This source code is licensed under the MIT license found in the LICENSE file in the root - * directory of this source tree. - */ -package com.rn0_70; - -import android.content.Context; -import com.facebook.flipper.android.AndroidFlipperClient; -import com.facebook.flipper.android.utils.FlipperUtils; -import com.facebook.flipper.core.FlipperClient; -import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin; -import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin; -import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin; -import com.facebook.flipper.plugins.inspector.DescriptorMapping; -import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin; -import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor; -import com.facebook.flipper.plugins.network.NetworkFlipperPlugin; -import com.facebook.flipper.plugins.react.ReactFlipperPlugin; -import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin; -import com.facebook.react.ReactInstanceEventListener; -import com.facebook.react.ReactInstanceManager; -import com.facebook.react.bridge.ReactContext; -import com.facebook.react.modules.network.NetworkingModule; -import okhttp3.OkHttpClient; - -public class ReactNativeFlipper { - public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) { - if (FlipperUtils.shouldEnableFlipper(context)) { - final FlipperClient client = AndroidFlipperClient.getInstance(context); - - client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults())); - client.addPlugin(new ReactFlipperPlugin()); - client.addPlugin(new DatabasesFlipperPlugin(context)); - client.addPlugin(new SharedPreferencesFlipperPlugin(context)); - client.addPlugin(CrashReporterPlugin.getInstance()); - - NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin(); - NetworkingModule.setCustomClientBuilder( - new NetworkingModule.CustomClientBuilder() { - @Override - public void apply(OkHttpClient.Builder builder) { - builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin)); - } - }); - client.addPlugin(networkFlipperPlugin); - client.start(); - - // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized - // Hence we run if after all native modules have been initialized - ReactContext reactContext = reactInstanceManager.getCurrentReactContext(); - if (reactContext == null) { - reactInstanceManager.addReactInstanceEventListener( - new ReactInstanceEventListener() { - @Override - public void onReactContextInitialized(ReactContext reactContext) { - reactInstanceManager.removeReactInstanceEventListener(this); - reactContext.runOnNativeModulesQueueThread( - new Runnable() { - @Override - public void run() { - client.addPlugin(new FrescoFlipperPlugin()); - } - }); - } - }); - } else { - client.addPlugin(new FrescoFlipperPlugin()); - } - } - } -} diff --git a/features/base-fixtures/rn0_70/android/app/src/main/AndroidManifest.xml b/features/base-fixtures/rn0_70/android/app/src/main/AndroidManifest.xml deleted file mode 100644 index b9ce822b..00000000 --- a/features/base-fixtures/rn0_70/android/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - diff --git a/features/base-fixtures/rn0_70/android/app/src/main/java/com/rn0_70/MainActivity.java b/features/base-fixtures/rn0_70/android/app/src/main/java/com/rn0_70/MainActivity.java deleted file mode 100644 index afc98d58..00000000 --- a/features/base-fixtures/rn0_70/android/app/src/main/java/com/rn0_70/MainActivity.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.rn0_70; - -import com.facebook.react.ReactActivity; -import com.facebook.react.ReactActivityDelegate; -import com.facebook.react.ReactRootView; - -public class MainActivity extends ReactActivity { - - /** - * Returns the name of the main component registered from JavaScript. This is used to schedule - * rendering of the component. - */ - @Override - protected String getMainComponentName() { - return "rn0_70"; - } - - /** - * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and - * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer - * (Paper). - */ - @Override - protected ReactActivityDelegate createReactActivityDelegate() { - return new MainActivityDelegate(this, getMainComponentName()); - } - - public static class MainActivityDelegate extends ReactActivityDelegate { - public MainActivityDelegate(ReactActivity activity, String mainComponentName) { - super(activity, mainComponentName); - } - - @Override - protected ReactRootView createRootView() { - ReactRootView reactRootView = new ReactRootView(getContext()); - // If you opted-in for the New Architecture, we enable the Fabric Renderer. - reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED); - return reactRootView; - } - - @Override - protected boolean isConcurrentRootEnabled() { - // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18). - // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html - return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED; - } - } -} diff --git a/features/base-fixtures/rn0_70/android/app/src/main/java/com/rn0_70/MainApplication.java b/features/base-fixtures/rn0_70/android/app/src/main/java/com/rn0_70/MainApplication.java deleted file mode 100644 index 9d2f85d0..00000000 --- a/features/base-fixtures/rn0_70/android/app/src/main/java/com/rn0_70/MainApplication.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.rn0_70; - -import android.app.Application; -import android.content.Context; -import com.facebook.react.PackageList; -import com.facebook.react.ReactApplication; -import com.facebook.react.ReactInstanceManager; -import com.facebook.react.ReactNativeHost; -import com.facebook.react.ReactPackage; -import com.facebook.react.config.ReactFeatureFlags; -import com.facebook.soloader.SoLoader; -import com.rn0_70.newarchitecture.MainApplicationReactNativeHost; -import java.lang.reflect.InvocationTargetException; -import java.util.List; - -public class MainApplication extends Application implements ReactApplication { - - private final ReactNativeHost mReactNativeHost = - new ReactNativeHost(this) { - @Override - public boolean getUseDeveloperSupport() { - return BuildConfig.DEBUG; - } - - @Override - protected List getPackages() { - @SuppressWarnings("UnnecessaryLocalVariable") - List packages = new PackageList(this).getPackages(); - // Packages that cannot be autolinked yet can be added manually here, for example: - // packages.add(new MyReactNativePackage()); - return packages; - } - - @Override - protected String getJSMainModuleName() { - return "index"; - } - }; - - private final ReactNativeHost mNewArchitectureNativeHost = - new MainApplicationReactNativeHost(this); - - @Override - public ReactNativeHost getReactNativeHost() { - if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { - return mNewArchitectureNativeHost; - } else { - return mReactNativeHost; - } - } - - @Override - public void onCreate() { - super.onCreate(); - // If you opted-in for the New Architecture, we enable the TurboModule system - ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED; - SoLoader.init(this, /* native exopackage */ false); - initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); - } - - /** - * Loads Flipper in React Native templates. Call this in the onCreate method with something like - * initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); - * - * @param context - * @param reactInstanceManager - */ - private static void initializeFlipper( - Context context, ReactInstanceManager reactInstanceManager) { - if (BuildConfig.DEBUG) { - try { - /* - We use reflection here to pick up the class that initializes Flipper, - since Flipper library is not available in release mode - */ - Class aClass = Class.forName("com.rn0_70.ReactNativeFlipper"); - aClass - .getMethod("initializeFlipper", Context.class, ReactInstanceManager.class) - .invoke(null, context, reactInstanceManager); - } catch (ClassNotFoundException e) { - e.printStackTrace(); - } catch (NoSuchMethodException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } catch (InvocationTargetException e) { - e.printStackTrace(); - } - } - } -} diff --git a/features/base-fixtures/rn0_70/android/app/src/main/java/com/rn0_70/newarchitecture/MainApplicationReactNativeHost.java b/features/base-fixtures/rn0_70/android/app/src/main/java/com/rn0_70/newarchitecture/MainApplicationReactNativeHost.java deleted file mode 100644 index 58951daa..00000000 --- a/features/base-fixtures/rn0_70/android/app/src/main/java/com/rn0_70/newarchitecture/MainApplicationReactNativeHost.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.rn0_70.newarchitecture; - -import android.app.Application; -import androidx.annotation.NonNull; -import com.facebook.react.PackageList; -import com.facebook.react.ReactInstanceManager; -import com.facebook.react.ReactNativeHost; -import com.facebook.react.ReactPackage; -import com.facebook.react.ReactPackageTurboModuleManagerDelegate; -import com.facebook.react.bridge.JSIModulePackage; -import com.facebook.react.bridge.JSIModuleProvider; -import com.facebook.react.bridge.JSIModuleSpec; -import com.facebook.react.bridge.JSIModuleType; -import com.facebook.react.bridge.JavaScriptContextHolder; -import com.facebook.react.bridge.ReactApplicationContext; -import com.facebook.react.bridge.UIManager; -import com.facebook.react.fabric.ComponentFactory; -import com.facebook.react.fabric.CoreComponentsRegistry; -import com.facebook.react.fabric.FabricJSIModuleProvider; -import com.facebook.react.fabric.ReactNativeConfig; -import com.facebook.react.uimanager.ViewManagerRegistry; -import com.rn0_70.BuildConfig; -import com.rn0_70.newarchitecture.components.MainComponentsRegistry; -import com.rn0_70.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate; -import java.util.ArrayList; -import java.util.List; - -/** - * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both - * TurboModule delegates and the Fabric Renderer. - * - *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the - * `newArchEnabled` property). Is ignored otherwise. - */ -public class MainApplicationReactNativeHost extends ReactNativeHost { - public MainApplicationReactNativeHost(Application application) { - super(application); - } - - @Override - public boolean getUseDeveloperSupport() { - return BuildConfig.DEBUG; - } - - @Override - protected List getPackages() { - List packages = new PackageList(this).getPackages(); - // Packages that cannot be autolinked yet can be added manually here, for example: - // packages.add(new MyReactNativePackage()); - // TurboModules must also be loaded here providing a valid TurboReactPackage implementation: - // packages.add(new TurboReactPackage() { ... }); - // If you have custom Fabric Components, their ViewManagers should also be loaded here - // inside a ReactPackage. - return packages; - } - - @Override - protected String getJSMainModuleName() { - return "index"; - } - - @NonNull - @Override - protected ReactPackageTurboModuleManagerDelegate.Builder - getReactPackageTurboModuleManagerDelegateBuilder() { - // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary - // for the new architecture and to use TurboModules correctly. - return new MainApplicationTurboModuleManagerDelegate.Builder(); - } - - @Override - protected JSIModulePackage getJSIModulePackage() { - return new JSIModulePackage() { - @Override - public List getJSIModules( - final ReactApplicationContext reactApplicationContext, - final JavaScriptContextHolder jsContext) { - final List specs = new ArrayList<>(); - - // Here we provide a new JSIModuleSpec that will be responsible of providing the - // custom Fabric Components. - specs.add( - new JSIModuleSpec() { - @Override - public JSIModuleType getJSIModuleType() { - return JSIModuleType.UIManager; - } - - @Override - public JSIModuleProvider getJSIModuleProvider() { - final ComponentFactory componentFactory = new ComponentFactory(); - CoreComponentsRegistry.register(componentFactory); - - // Here we register a Components Registry. - // The one that is generated with the template contains no components - // and just provides you the one from React Native core. - MainComponentsRegistry.register(componentFactory); - - final ReactInstanceManager reactInstanceManager = getReactInstanceManager(); - - ViewManagerRegistry viewManagerRegistry = - new ViewManagerRegistry( - reactInstanceManager.getOrCreateViewManagers(reactApplicationContext)); - - return new FabricJSIModuleProvider( - reactApplicationContext, - componentFactory, - ReactNativeConfig.DEFAULT_CONFIG, - viewManagerRegistry); - } - }); - return specs; - } - }; - } -} diff --git a/features/base-fixtures/rn0_70/android/app/src/main/java/com/rn0_70/newarchitecture/components/MainComponentsRegistry.java b/features/base-fixtures/rn0_70/android/app/src/main/java/com/rn0_70/newarchitecture/components/MainComponentsRegistry.java deleted file mode 100644 index cf3d099f..00000000 --- a/features/base-fixtures/rn0_70/android/app/src/main/java/com/rn0_70/newarchitecture/components/MainComponentsRegistry.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.rn0_70.newarchitecture.components; - -import com.facebook.jni.HybridData; -import com.facebook.proguard.annotations.DoNotStrip; -import com.facebook.react.fabric.ComponentFactory; -import com.facebook.soloader.SoLoader; - -/** - * Class responsible to load the custom Fabric Components. This class has native methods and needs a - * corresponding C++ implementation/header file to work correctly (already placed inside the jni/ - * folder for you). - * - *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the - * `newArchEnabled` property). Is ignored otherwise. - */ -@DoNotStrip -public class MainComponentsRegistry { - static { - SoLoader.loadLibrary("fabricjni"); - } - - @DoNotStrip private final HybridData mHybridData; - - @DoNotStrip - private native HybridData initHybrid(ComponentFactory componentFactory); - - @DoNotStrip - private MainComponentsRegistry(ComponentFactory componentFactory) { - mHybridData = initHybrid(componentFactory); - } - - @DoNotStrip - public static MainComponentsRegistry register(ComponentFactory componentFactory) { - return new MainComponentsRegistry(componentFactory); - } -} diff --git a/features/base-fixtures/rn0_70/android/app/src/main/java/com/rn0_70/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/features/base-fixtures/rn0_70/android/app/src/main/java/com/rn0_70/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java deleted file mode 100644 index d0daca91..00000000 --- a/features/base-fixtures/rn0_70/android/app/src/main/java/com/rn0_70/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.rn0_70.newarchitecture.modules; - -import com.facebook.jni.HybridData; -import com.facebook.react.ReactPackage; -import com.facebook.react.ReactPackageTurboModuleManagerDelegate; -import com.facebook.react.bridge.ReactApplicationContext; -import com.facebook.soloader.SoLoader; -import java.util.List; - -/** - * Class responsible to load the TurboModules. This class has native methods and needs a - * corresponding C++ implementation/header file to work correctly (already placed inside the jni/ - * folder for you). - * - *

Please note that this class is used ONLY if you opt-in for the New Architecture (see the - * `newArchEnabled` property). Is ignored otherwise. - */ -public class MainApplicationTurboModuleManagerDelegate - extends ReactPackageTurboModuleManagerDelegate { - - private static volatile boolean sIsSoLibraryLoaded; - - protected MainApplicationTurboModuleManagerDelegate( - ReactApplicationContext reactApplicationContext, List packages) { - super(reactApplicationContext, packages); - } - - protected native HybridData initHybrid(); - - native boolean canCreateTurboModule(String moduleName); - - public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder { - protected MainApplicationTurboModuleManagerDelegate build( - ReactApplicationContext context, List packages) { - return new MainApplicationTurboModuleManagerDelegate(context, packages); - } - } - - @Override - protected synchronized void maybeLoadOtherSoLibraries() { - if (!sIsSoLibraryLoaded) { - // If you change the name of your application .so file in the Android.mk file, - // make sure you update the name here as well. - SoLoader.loadLibrary("rn0_70_appmodules"); - sIsSoLibraryLoaded = true; - } - } -} diff --git a/features/base-fixtures/rn0_70/android/app/src/main/jni/CMakeLists.txt b/features/base-fixtures/rn0_70/android/app/src/main/jni/CMakeLists.txt deleted file mode 100644 index 870aa3d2..00000000 --- a/features/base-fixtures/rn0_70/android/app/src/main/jni/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -cmake_minimum_required(VERSION 3.13) - -# Define the library name here. -project(rn0_70_appmodules) - -# This file includes all the necessary to let you build your application with the New Architecture. -include(${REACT_ANDROID_DIR}/cmake-utils/ReactNative-application.cmake) diff --git a/features/base-fixtures/rn0_70/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/features/base-fixtures/rn0_70/android/app/src/main/jni/MainApplicationModuleProvider.cpp deleted file mode 100644 index 26162dd8..00000000 --- a/features/base-fixtures/rn0_70/android/app/src/main/jni/MainApplicationModuleProvider.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "MainApplicationModuleProvider.h" - -#include -#include - -namespace facebook { -namespace react { - -std::shared_ptr MainApplicationModuleProvider( - const std::string &moduleName, - const JavaTurboModule::InitParams ¶ms) { - // Here you can provide your own module provider for TurboModules coming from - // either your application or from external libraries. The approach to follow - // is similar to the following (for a library called `samplelibrary`: - // - // auto module = samplelibrary_ModuleProvider(moduleName, params); - // if (module != nullptr) { - // return module; - // } - // return rncore_ModuleProvider(moduleName, params); - - // Module providers autolinked by RN CLI - auto rncli_module = rncli_ModuleProvider(moduleName, params); - if (rncli_module != nullptr) { - return rncli_module; - } - - return rncore_ModuleProvider(moduleName, params); -} - -} // namespace react -} // namespace facebook diff --git a/features/base-fixtures/rn0_70/android/app/src/main/jni/MainApplicationModuleProvider.h b/features/base-fixtures/rn0_70/android/app/src/main/jni/MainApplicationModuleProvider.h deleted file mode 100644 index b38ccf53..00000000 --- a/features/base-fixtures/rn0_70/android/app/src/main/jni/MainApplicationModuleProvider.h +++ /dev/null @@ -1,16 +0,0 @@ -#pragma once - -#include -#include - -#include - -namespace facebook { -namespace react { - -std::shared_ptr MainApplicationModuleProvider( - const std::string &moduleName, - const JavaTurboModule::InitParams ¶ms); - -} // namespace react -} // namespace facebook diff --git a/features/base-fixtures/rn0_70/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/features/base-fixtures/rn0_70/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp deleted file mode 100644 index 5fd688c5..00000000 --- a/features/base-fixtures/rn0_70/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp +++ /dev/null @@ -1,45 +0,0 @@ -#include "MainApplicationTurboModuleManagerDelegate.h" -#include "MainApplicationModuleProvider.h" - -namespace facebook { -namespace react { - -jni::local_ref -MainApplicationTurboModuleManagerDelegate::initHybrid( - jni::alias_ref) { - return makeCxxInstance(); -} - -void MainApplicationTurboModuleManagerDelegate::registerNatives() { - registerHybrid({ - makeNativeMethod( - "initHybrid", MainApplicationTurboModuleManagerDelegate::initHybrid), - makeNativeMethod( - "canCreateTurboModule", - MainApplicationTurboModuleManagerDelegate::canCreateTurboModule), - }); -} - -std::shared_ptr -MainApplicationTurboModuleManagerDelegate::getTurboModule( - const std::string &name, - const std::shared_ptr &jsInvoker) { - // Not implemented yet: provide pure-C++ NativeModules here. - return nullptr; -} - -std::shared_ptr -MainApplicationTurboModuleManagerDelegate::getTurboModule( - const std::string &name, - const JavaTurboModule::InitParams ¶ms) { - return MainApplicationModuleProvider(name, params); -} - -bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule( - const std::string &name) { - return getTurboModule(name, nullptr) != nullptr || - getTurboModule(name, {.moduleName = name}) != nullptr; -} - -} // namespace react -} // namespace facebook diff --git a/features/base-fixtures/rn0_70/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/features/base-fixtures/rn0_70/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h deleted file mode 100644 index 12795494..00000000 --- a/features/base-fixtures/rn0_70/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include - -#include -#include - -namespace facebook { -namespace react { - -class MainApplicationTurboModuleManagerDelegate - : public jni::HybridClass< - MainApplicationTurboModuleManagerDelegate, - TurboModuleManagerDelegate> { - public: - // Adapt it to the package you used for your Java class. - static constexpr auto kJavaDescriptor = - "Lcom/rn0_70/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;"; - - static jni::local_ref initHybrid(jni::alias_ref); - - static void registerNatives(); - - std::shared_ptr getTurboModule( - const std::string &name, - const std::shared_ptr &jsInvoker) override; - std::shared_ptr getTurboModule( - const std::string &name, - const JavaTurboModule::InitParams ¶ms) override; - - /** - * Test-only method. Allows user to verify whether a TurboModule can be - * created by instances of this class. - */ - bool canCreateTurboModule(const std::string &name); -}; - -} // namespace react -} // namespace facebook diff --git a/features/base-fixtures/rn0_70/android/app/src/main/jni/MainComponentsRegistry.cpp b/features/base-fixtures/rn0_70/android/app/src/main/jni/MainComponentsRegistry.cpp deleted file mode 100644 index 54f598a4..00000000 --- a/features/base-fixtures/rn0_70/android/app/src/main/jni/MainComponentsRegistry.cpp +++ /dev/null @@ -1,65 +0,0 @@ -#include "MainComponentsRegistry.h" - -#include -#include -#include -#include -#include - -namespace facebook { -namespace react { - -MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {} - -std::shared_ptr -MainComponentsRegistry::sharedProviderRegistry() { - auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry(); - - // Autolinked providers registered by RN CLI - rncli_registerProviders(providerRegistry); - - // Custom Fabric Components go here. You can register custom - // components coming from your App or from 3rd party libraries here. - // - // providerRegistry->add(concreteComponentDescriptorProvider< - // AocViewerComponentDescriptor>()); - return providerRegistry; -} - -jni::local_ref -MainComponentsRegistry::initHybrid( - jni::alias_ref, - ComponentFactory *delegate) { - auto instance = makeCxxInstance(delegate); - - auto buildRegistryFunction = - [](EventDispatcher::Weak const &eventDispatcher, - ContextContainer::Shared const &contextContainer) - -> ComponentDescriptorRegistry::Shared { - auto registry = MainComponentsRegistry::sharedProviderRegistry() - ->createComponentDescriptorRegistry( - {eventDispatcher, contextContainer}); - - auto mutableRegistry = - std::const_pointer_cast(registry); - - mutableRegistry->setFallbackComponentDescriptor( - std::make_shared( - ComponentDescriptorParameters{ - eventDispatcher, contextContainer, nullptr})); - - return registry; - }; - - delegate->buildRegistryFunction = buildRegistryFunction; - return instance; -} - -void MainComponentsRegistry::registerNatives() { - registerHybrid({ - makeNativeMethod("initHybrid", MainComponentsRegistry::initHybrid), - }); -} - -} // namespace react -} // namespace facebook diff --git a/features/base-fixtures/rn0_70/android/app/src/main/jni/MainComponentsRegistry.h b/features/base-fixtures/rn0_70/android/app/src/main/jni/MainComponentsRegistry.h deleted file mode 100644 index 951f0b55..00000000 --- a/features/base-fixtures/rn0_70/android/app/src/main/jni/MainComponentsRegistry.h +++ /dev/null @@ -1,32 +0,0 @@ -#pragma once - -#include -#include -#include -#include - -namespace facebook { -namespace react { - -class MainComponentsRegistry - : public facebook::jni::HybridClass { - public: - // Adapt it to the package you used for your Java class. - constexpr static auto kJavaDescriptor = - "Lcom/rn0_70/newarchitecture/components/MainComponentsRegistry;"; - - static void registerNatives(); - - MainComponentsRegistry(ComponentFactory *delegate); - - private: - static std::shared_ptr - sharedProviderRegistry(); - - static jni::local_ref initHybrid( - jni::alias_ref, - ComponentFactory *delegate); -}; - -} // namespace react -} // namespace facebook diff --git a/features/base-fixtures/rn0_70/android/app/src/main/jni/OnLoad.cpp b/features/base-fixtures/rn0_70/android/app/src/main/jni/OnLoad.cpp deleted file mode 100644 index c569b6e8..00000000 --- a/features/base-fixtures/rn0_70/android/app/src/main/jni/OnLoad.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include "MainApplicationTurboModuleManagerDelegate.h" -#include "MainComponentsRegistry.h" - -JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) { - return facebook::jni::initialize(vm, [] { - facebook::react::MainApplicationTurboModuleManagerDelegate:: - registerNatives(); - facebook::react::MainComponentsRegistry::registerNatives(); - }); -} diff --git a/features/base-fixtures/rn0_70/android/app/src/main/res/drawable/rn_edit_text_material.xml b/features/base-fixtures/rn0_70/android/app/src/main/res/drawable/rn_edit_text_material.xml deleted file mode 100644 index f35d9962..00000000 --- a/features/base-fixtures/rn0_70/android/app/src/main/res/drawable/rn_edit_text_material.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - diff --git a/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index a2f59082..00000000 Binary files a/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png deleted file mode 100644 index 1b523998..00000000 Binary files a/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png and /dev/null differ diff --git a/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index ff10afd6..00000000 Binary files a/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png deleted file mode 100644 index 115a4c76..00000000 Binary files a/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png and /dev/null differ diff --git a/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index dcd3cd80..00000000 Binary files a/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png deleted file mode 100644 index 459ca609..00000000 Binary files a/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png and /dev/null differ diff --git a/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 8ca12fe0..00000000 Binary files a/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index 8e19b410..00000000 Binary files a/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index b824ebdd..00000000 Binary files a/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index 4c19a13c..00000000 Binary files a/features/base-fixtures/rn0_70/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/features/base-fixtures/rn0_70/android/app/src/main/res/values/strings.xml b/features/base-fixtures/rn0_70/android/app/src/main/res/values/strings.xml deleted file mode 100644 index d1080916..00000000 --- a/features/base-fixtures/rn0_70/android/app/src/main/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - rn0_70 - diff --git a/features/base-fixtures/rn0_70/android/app/src/main/res/values/styles.xml b/features/base-fixtures/rn0_70/android/app/src/main/res/values/styles.xml deleted file mode 100644 index 7ba83a2a..00000000 --- a/features/base-fixtures/rn0_70/android/app/src/main/res/values/styles.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/features/base-fixtures/rn0_70/android/build.gradle b/features/base-fixtures/rn0_70/android/build.gradle deleted file mode 100644 index 8569fee3..00000000 --- a/features/base-fixtures/rn0_70/android/build.gradle +++ /dev/null @@ -1,51 +0,0 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. - -buildscript { - ext { - buildToolsVersion = "31.0.0" - minSdkVersion = 21 - compileSdkVersion = 31 - targetSdkVersion = 31 - - if (System.properties['os.arch'] == "aarch64") { - // For M1 Users we need to use the NDK 24 which added support for aarch64 - ndkVersion = "24.0.8215888" - } else { - // Otherwise we default to the side-by-side NDK version from AGP. - ndkVersion = "21.4.7075529" - } - } - repositories { - google() - mavenCentral() - } - dependencies { - classpath("com.android.tools.build:gradle:7.2.1") - classpath("com.facebook.react:react-native-gradle-plugin") - classpath("de.undercouch:gradle-download-task:5.0.1") - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files - } -} - -allprojects { - repositories { - maven { - // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm - url("$rootDir/../node_modules/react-native/android") - } - maven { - // Android JSC is installed from npm - url("$rootDir/../node_modules/jsc-android/dist") - } - mavenCentral { - // We don't want to fetch react-native from Maven Central as there are - // older versions over there. - content { - excludeGroup "com.facebook.react" - } - } - google() - maven { url 'https://www.jitpack.io' } - } -} diff --git a/features/base-fixtures/rn0_70/android/gradle.properties b/features/base-fixtures/rn0_70/android/gradle.properties deleted file mode 100644 index fa4feae5..00000000 --- a/features/base-fixtures/rn0_70/android/gradle.properties +++ /dev/null @@ -1,40 +0,0 @@ -# Project-wide Gradle settings. - -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. - -# For more details on how to configure your build environment visit -# http://www.gradle.org/docs/current/userguide/build_environment.html - -# Specifies the JVM arguments used for the daemon process. -# The setting is particularly useful for tweaking memory settings. -# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m -org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m - -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true - -# AndroidX package structure to make it clearer which packages are bundled with the -# Android operating system, and which are packaged with your app's APK -# https://developer.android.com/topic/libraries/support-library/androidx-rn -android.useAndroidX=true -# Automatically convert third-party libraries to use AndroidX -android.enableJetifier=true - -# Version of flipper SDK to use with React Native -FLIPPER_VERSION=0.125.0 - -# Use this property to specify which architecture you want to build. -# You can also override it from the CLI using -# ./gradlew -PreactNativeArchitectures=x86_64 -reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 - -# Use this property to enable support to the new architecture. -# This will allow you to use TurboModules and the Fabric render in -# your application. You should enable this flag either if you want -# to write custom TurboModules/Fabric components OR use libraries that -# are providing them. -newArchEnabled=false diff --git a/features/base-fixtures/rn0_70/android/gradle/wrapper/gradle-wrapper.jar b/features/base-fixtures/rn0_70/android/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 41d9927a..00000000 Binary files a/features/base-fixtures/rn0_70/android/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/features/base-fixtures/rn0_70/android/gradle/wrapper/gradle-wrapper.properties b/features/base-fixtures/rn0_70/android/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 8fad3f5a..00000000 --- a/features/base-fixtures/rn0_70/android/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/features/base-fixtures/rn0_70/android/gradlew b/features/base-fixtures/rn0_70/android/gradlew deleted file mode 100755 index 1b6c7873..00000000 --- a/features/base-fixtures/rn0_70/android/gradlew +++ /dev/null @@ -1,234 +0,0 @@ -#!/bin/sh - -# -# Copyright Β© 2015-2021 the original authors. -# -# 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 -# -# https://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. -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions Β«$varΒ», Β«${var}Β», Β«${var:-default}Β», Β«${var+SET}Β», -# Β«${var#prefix}Β», Β«${var%suffix}Β», and Β«$( cmd )Β»; -# * compound commands having a testable exit status, especially Β«caseΒ»; -# * various built-in commands including Β«commandΒ», Β«setΒ», and Β«ulimitΒ». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" -APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ - "$@" - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/features/base-fixtures/rn0_70/android/gradlew.bat b/features/base-fixtures/rn0_70/android/gradlew.bat deleted file mode 100644 index ac1b06f9..00000000 --- a/features/base-fixtures/rn0_70/android/gradlew.bat +++ /dev/null @@ -1,89 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/features/base-fixtures/rn0_70/android/settings.gradle b/features/base-fixtures/rn0_70/android/settings.gradle deleted file mode 100644 index f63162fa..00000000 --- a/features/base-fixtures/rn0_70/android/settings.gradle +++ /dev/null @@ -1,11 +0,0 @@ -rootProject.name = 'rn0_70' -apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) -include ':app' -includeBuild('../node_modules/react-native-gradle-plugin') - -if (settings.hasProperty("newArchEnabled") && settings.newArchEnabled == "true") { - include(":ReactAndroid") - project(":ReactAndroid").projectDir = file('../node_modules/react-native/ReactAndroid') - include(":ReactAndroid:hermes-engine") - project(":ReactAndroid:hermes-engine").projectDir = file('../node_modules/react-native/ReactAndroid/hermes-engine') -} diff --git a/features/base-fixtures/rn0_70/app.json b/features/base-fixtures/rn0_70/app.json deleted file mode 100644 index 931461a5..00000000 --- a/features/base-fixtures/rn0_70/app.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "rn0_70", - "displayName": "rn0_70" -} \ No newline at end of file diff --git a/features/base-fixtures/rn0_70/babel.config.js b/features/base-fixtures/rn0_70/babel.config.js deleted file mode 100644 index f842b77f..00000000 --- a/features/base-fixtures/rn0_70/babel.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: ['module:metro-react-native-babel-preset'], -}; diff --git a/features/base-fixtures/rn0_70/index.js b/features/base-fixtures/rn0_70/index.js deleted file mode 100644 index a850d031..00000000 --- a/features/base-fixtures/rn0_70/index.js +++ /dev/null @@ -1,9 +0,0 @@ -/** - * @format - */ - -import {AppRegistry} from 'react-native'; -import App from './App'; -import {name as appName} from './app.json'; - -AppRegistry.registerComponent(appName, () => App); diff --git a/features/base-fixtures/rn0_70/ios/.xcode.env b/features/base-fixtures/rn0_70/ios/.xcode.env deleted file mode 100644 index 3d5782c7..00000000 --- a/features/base-fixtures/rn0_70/ios/.xcode.env +++ /dev/null @@ -1,11 +0,0 @@ -# This `.xcode.env` file is versioned and is used to source the environment -# used when running script phases inside Xcode. -# To customize your local environment, you can create an `.xcode.env.local` -# file that is not versioned. - -# NODE_BINARY variable contains the PATH to the node executable. -# -# Customize the NODE_BINARY variable here. -# For example, to use nvm with brew, add the following line -# . "$(brew --prefix nvm)/nvm.sh" --no-use -export NODE_BINARY=$(command -v node) diff --git a/features/base-fixtures/rn0_70/ios/Podfile b/features/base-fixtures/rn0_70/ios/Podfile deleted file mode 100644 index b85bbe94..00000000 --- a/features/base-fixtures/rn0_70/ios/Podfile +++ /dev/null @@ -1,43 +0,0 @@ -require_relative '../node_modules/react-native/scripts/react_native_pods' -require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' - -platform :ios, '12.4' -install! 'cocoapods', :deterministic_uuids => false - -target 'rn0_70' do - config = use_native_modules! - - # Flags change depending on the env values. - flags = get_default_flags() - - use_react_native!( - :path => config[:reactNativePath], - # Hermes is now enabled by default. Disable by setting this flag to false. - # Upcoming versions of React Native may rely on get_default_flags(), but - # we make it explicit here to aid in the React Native upgrade process. - :hermes_enabled => true, - :fabric_enabled => flags[:fabric_enabled], - # Enables Flipper. - # - # Note that if you have use_frameworks! enabled, Flipper will not work and - # you should disable the next line. - :flipper_configuration => FlipperConfiguration.enabled, - # An absolute path to your application root. - :app_path => "#{Pod::Config.instance.installation_root}/.." - ) - - target 'rn0_70Tests' do - inherit! :complete - # Pods for testing - end - - post_install do |installer| - react_native_post_install( - installer, - # Set `mac_catalyst_enabled` to `true` in order to apply patches - # necessary for Mac Catalyst builds - :mac_catalyst_enabled => false - ) - __apply_Xcode_12_5_M1_post_install_workaround(installer) - end -end diff --git a/features/base-fixtures/rn0_70/ios/rn0_70.xcodeproj/project.pbxproj b/features/base-fixtures/rn0_70/ios/rn0_70.xcodeproj/project.pbxproj deleted file mode 100644 index 4e5fd97f..00000000 --- a/features/base-fixtures/rn0_70/ios/rn0_70.xcodeproj/project.pbxproj +++ /dev/null @@ -1,704 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 54; - objects = { - -/* Begin PBXBuildFile section */ - 00E356F31AD99517003FC87E /* rn0_70Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* rn0_70Tests.m */; }; - 0C80B921A6F3F58F76C31292 /* libPods-rn0_70.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-rn0_70.a */; }; - 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; - 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; - 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 7699B88040F8A987B510C191 /* libPods-rn0_70-rn0_70Tests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-rn0_70-rn0_70Tests.a */; }; - 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 13B07F861A680F5B00A75B9A; - remoteInfo = rn0_70; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 00E356EE1AD99517003FC87E /* rn0_70Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = rn0_70Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 00E356F21AD99517003FC87E /* rn0_70Tests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = rn0_70Tests.m; sourceTree = ""; }; - 13B07F961A680F5B00A75B9A /* rn0_70.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = rn0_70.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = rn0_70/AppDelegate.h; sourceTree = ""; }; - 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = rn0_70/AppDelegate.mm; sourceTree = ""; }; - 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = rn0_70/Images.xcassets; sourceTree = ""; }; - 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = rn0_70/Info.plist; sourceTree = ""; }; - 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = rn0_70/main.m; sourceTree = ""; }; - 19F6CBCC0A4E27FBF8BF4A61 /* libPods-rn0_70-rn0_70Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-rn0_70-rn0_70Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 3B4392A12AC88292D35C810B /* Pods-rn0_70.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-rn0_70.debug.xcconfig"; path = "Target Support Files/Pods-rn0_70/Pods-rn0_70.debug.xcconfig"; sourceTree = ""; }; - 5709B34CF0A7D63546082F79 /* Pods-rn0_70.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-rn0_70.release.xcconfig"; path = "Target Support Files/Pods-rn0_70/Pods-rn0_70.release.xcconfig"; sourceTree = ""; }; - 5B7EB9410499542E8C5724F5 /* Pods-rn0_70-rn0_70Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-rn0_70-rn0_70Tests.debug.xcconfig"; path = "Target Support Files/Pods-rn0_70-rn0_70Tests/Pods-rn0_70-rn0_70Tests.debug.xcconfig"; sourceTree = ""; }; - 5DCACB8F33CDC322A6C60F78 /* libPods-rn0_70.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-rn0_70.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = rn0_70/LaunchScreen.storyboard; sourceTree = ""; }; - 89C6BE57DB24E9ADA2F236DE /* Pods-rn0_70-rn0_70Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-rn0_70-rn0_70Tests.release.xcconfig"; path = "Target Support Files/Pods-rn0_70-rn0_70Tests/Pods-rn0_70-rn0_70Tests.release.xcconfig"; sourceTree = ""; }; - ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 00E356EB1AD99517003FC87E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 7699B88040F8A987B510C191 /* libPods-rn0_70-rn0_70Tests.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 0C80B921A6F3F58F76C31292 /* libPods-rn0_70.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 00E356EF1AD99517003FC87E /* rn0_70Tests */ = { - isa = PBXGroup; - children = ( - 00E356F21AD99517003FC87E /* rn0_70Tests.m */, - 00E356F01AD99517003FC87E /* Supporting Files */, - ); - path = rn0_70Tests; - sourceTree = ""; - }; - 00E356F01AD99517003FC87E /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 00E356F11AD99517003FC87E /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 13B07FAE1A68108700A75B9A /* rn0_70 */ = { - isa = PBXGroup; - children = ( - 13B07FAF1A68108700A75B9A /* AppDelegate.h */, - 13B07FB01A68108700A75B9A /* AppDelegate.mm */, - 13B07FB51A68108700A75B9A /* Images.xcassets */, - 13B07FB61A68108700A75B9A /* Info.plist */, - 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, - 13B07FB71A68108700A75B9A /* main.m */, - ); - name = rn0_70; - sourceTree = ""; - }; - 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { - isa = PBXGroup; - children = ( - ED297162215061F000B7C4FE /* JavaScriptCore.framework */, - 5DCACB8F33CDC322A6C60F78 /* libPods-rn0_70.a */, - 19F6CBCC0A4E27FBF8BF4A61 /* libPods-rn0_70-rn0_70Tests.a */, - ); - name = Frameworks; - sourceTree = ""; - }; - 832341AE1AAA6A7D00B99B32 /* Libraries */ = { - isa = PBXGroup; - children = ( - ); - name = Libraries; - sourceTree = ""; - }; - 83CBB9F61A601CBA00E9B192 = { - isa = PBXGroup; - children = ( - 13B07FAE1A68108700A75B9A /* rn0_70 */, - 832341AE1AAA6A7D00B99B32 /* Libraries */, - 00E356EF1AD99517003FC87E /* rn0_70Tests */, - 83CBBA001A601CBA00E9B192 /* Products */, - 2D16E6871FA4F8E400B85C8A /* Frameworks */, - BBD78D7AC51CEA395F1C20DB /* Pods */, - ); - indentWidth = 2; - sourceTree = ""; - tabWidth = 2; - usesTabs = 0; - }; - 83CBBA001A601CBA00E9B192 /* Products */ = { - isa = PBXGroup; - children = ( - 13B07F961A680F5B00A75B9A /* rn0_70.app */, - 00E356EE1AD99517003FC87E /* rn0_70Tests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - BBD78D7AC51CEA395F1C20DB /* Pods */ = { - isa = PBXGroup; - children = ( - 3B4392A12AC88292D35C810B /* Pods-rn0_70.debug.xcconfig */, - 5709B34CF0A7D63546082F79 /* Pods-rn0_70.release.xcconfig */, - 5B7EB9410499542E8C5724F5 /* Pods-rn0_70-rn0_70Tests.debug.xcconfig */, - 89C6BE57DB24E9ADA2F236DE /* Pods-rn0_70-rn0_70Tests.release.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 00E356ED1AD99517003FC87E /* rn0_70Tests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "rn0_70Tests" */; - buildPhases = ( - A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */, - 00E356EA1AD99517003FC87E /* Sources */, - 00E356EB1AD99517003FC87E /* Frameworks */, - 00E356EC1AD99517003FC87E /* Resources */, - C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */, - F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - 00E356F51AD99517003FC87E /* PBXTargetDependency */, - ); - name = rn0_70Tests; - productName = rn0_70Tests; - productReference = 00E356EE1AD99517003FC87E /* rn0_70Tests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 13B07F861A680F5B00A75B9A /* rn0_70 */ = { - isa = PBXNativeTarget; - buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "rn0_70" */; - buildPhases = ( - C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */, - FD10A7F022414F080027D42C /* Start Packager */, - 13B07F871A680F5B00A75B9A /* Sources */, - 13B07F8C1A680F5B00A75B9A /* Frameworks */, - 13B07F8E1A680F5B00A75B9A /* Resources */, - 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */, - E235C05ADACE081382539298 /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = rn0_70; - productName = rn0_70; - productReference = 13B07F961A680F5B00A75B9A /* rn0_70.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 83CBB9F71A601CBA00E9B192 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1210; - TargetAttributes = { - 00E356ED1AD99517003FC87E = { - CreatedOnToolsVersion = 6.2; - TestTargetID = 13B07F861A680F5B00A75B9A; - }; - 13B07F861A680F5B00A75B9A = { - LastSwiftMigration = 1120; - }; - }; - }; - buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "rn0_70" */; - compatibilityVersion = "Xcode 12.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 83CBB9F61A601CBA00E9B192; - productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 13B07F861A680F5B00A75B9A /* rn0_70 */, - 00E356ED1AD99517003FC87E /* rn0_70Tests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 00E356EC1AD99517003FC87E /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13B07F8E1A680F5B00A75B9A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */, - 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "$(SRCROOT)/.xcode.env.local", - "$(SRCROOT)/.xcode.env", - ); - name = "Bundle React Native code and images"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "set -e\n\nexport SOURCEMAP_PATH=\"$(pwd)/build/sourcemaps\"\nmkdir -p $SOURCEMAP_PATH\nexport SOURCEMAP_FILE=\"$SOURCEMAP_PATH/main.jsbundle.map\";\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; - }; - 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rn0_70/Pods-rn0_70-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rn0_70/Pods-rn0_70-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-rn0_70/Pods-rn0_70-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-rn0_70-rn0_70Tests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-rn0_70-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rn0_70-rn0_70Tests/Pods-rn0_70-rn0_70Tests-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rn0_70-rn0_70Tests/Pods-rn0_70-rn0_70Tests-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-rn0_70-rn0_70Tests/Pods-rn0_70-rn0_70Tests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rn0_70/Pods-rn0_70-resources-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rn0_70/Pods-rn0_70-resources-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-rn0_70/Pods-rn0_70-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rn0_70-rn0_70Tests/Pods-rn0_70-rn0_70Tests-resources-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rn0_70-rn0_70Tests/Pods-rn0_70-rn0_70Tests-resources-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-rn0_70-rn0_70Tests/Pods-rn0_70-rn0_70Tests-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - FD10A7F022414F080027D42C /* Start Packager */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Start Packager"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 00E356EA1AD99517003FC87E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 00E356F31AD99517003FC87E /* rn0_70Tests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13B07F871A680F5B00A75B9A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, - 13B07FC11A68108700A75B9A /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 13B07F861A680F5B00A75B9A /* rn0_70 */; - targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 00E356F61AD99517003FC87E /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5B7EB9410499542E8C5724F5 /* Pods-rn0_70-rn0_70Tests.debug.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = rn0_70Tests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.4; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - "$(inherited)", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.bugsnag.fixtures.reactnative"; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/rn0_70.app/rn0_70"; - }; - name = Debug; - }; - 00E356F71AD99517003FC87E /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 89C6BE57DB24E9ADA2F236DE /* Pods-rn0_70-rn0_70Tests.release.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - COPY_PHASE_STRIP = NO; - INFOPLIST_FILE = rn0_70Tests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.4; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - "$(inherited)", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.bugsnag.fixtures.reactnative"; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/rn0_70.app/rn0_70"; - }; - name = Release; - }; - 13B07F941A680F5B00A75B9A /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-rn0_70.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = 7W9PZ27Y5F; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = rn0_70/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.bugsnag.fixtures.reactnative"; - PRODUCT_NAME = rn0_70; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Debug; - }; - 13B07F951A680F5B00A75B9A /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-rn0_70.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = 7W9PZ27Y5F; - INFOPLIST_FILE = rn0_70/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.bugsnag.fixtures.reactnative"; - PRODUCT_NAME = rn0_70; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Release; - }; - 83CBBA201A601CBA00E9B192 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++17"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.4; - LD_RUNPATH_SEARCH_PATHS = ( - /usr/lib/swift, - "$(inherited)", - ); - LIBRARY_SEARCH_PATHS = ( - "\"$(SDKROOT)/usr/lib/swift\"", - "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", - "\"$(inherited)\"", - ); - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-DFOLLY_NO_CONFIG", - "-DFOLLY_MOBILE=1", - "-DFOLLY_USE_LIBCPP=1", - ); - REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 83CBBA211A601CBA00E9B192 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++17"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.4; - LD_RUNPATH_SEARCH_PATHS = ( - /usr/lib/swift, - "$(inherited)", - ); - LIBRARY_SEARCH_PATHS = ( - "\"$(SDKROOT)/usr/lib/swift\"", - "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", - "\"$(inherited)\"", - ); - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-DFOLLY_NO_CONFIG", - "-DFOLLY_MOBILE=1", - "-DFOLLY_USE_LIBCPP=1", - ); - REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "rn0_70Tests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 00E356F61AD99517003FC87E /* Debug */, - 00E356F71AD99517003FC87E /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "rn0_70" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 13B07F941A680F5B00A75B9A /* Debug */, - 13B07F951A680F5B00A75B9A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "rn0_70" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 83CBBA201A601CBA00E9B192 /* Debug */, - 83CBBA211A601CBA00E9B192 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; -} diff --git a/features/base-fixtures/rn0_70/ios/rn0_70.xcodeproj/xcshareddata/xcschemes/rn0_70.xcscheme b/features/base-fixtures/rn0_70/ios/rn0_70.xcodeproj/xcshareddata/xcschemes/rn0_70.xcscheme deleted file mode 100644 index 6c60697e..00000000 --- a/features/base-fixtures/rn0_70/ios/rn0_70.xcodeproj/xcshareddata/xcschemes/rn0_70.xcscheme +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/features/base-fixtures/rn0_70/ios/rn0_70.xcworkspace/contents.xcworkspacedata b/features/base-fixtures/rn0_70/ios/rn0_70.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 9db768e1..00000000 --- a/features/base-fixtures/rn0_70/ios/rn0_70.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/features/base-fixtures/rn0_70/ios/rn0_70/AppDelegate.h b/features/base-fixtures/rn0_70/ios/rn0_70/AppDelegate.h deleted file mode 100644 index ef1de86a..00000000 --- a/features/base-fixtures/rn0_70/ios/rn0_70/AppDelegate.h +++ /dev/null @@ -1,8 +0,0 @@ -#import -#import - -@interface AppDelegate : UIResponder - -@property (nonatomic, strong) UIWindow *window; - -@end diff --git a/features/base-fixtures/rn0_70/ios/rn0_70/AppDelegate.mm b/features/base-fixtures/rn0_70/ios/rn0_70/AppDelegate.mm deleted file mode 100644 index 56881a0f..00000000 --- a/features/base-fixtures/rn0_70/ios/rn0_70/AppDelegate.mm +++ /dev/null @@ -1,133 +0,0 @@ -#import "AppDelegate.h" - -#import -#import -#import - -#import - -#if RCT_NEW_ARCH_ENABLED -#import -#import -#import -#import -#import -#import - -#import - -static NSString *const kRNConcurrentRoot = @"concurrentRoot"; - -@interface AppDelegate () { - RCTTurboModuleManager *_turboModuleManager; - RCTSurfacePresenterBridgeAdapter *_bridgeAdapter; - std::shared_ptr _reactNativeConfig; - facebook::react::ContextContainer::Shared _contextContainer; -} -@end -#endif - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ - RCTAppSetupPrepareApp(application); - - RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; - -#if RCT_NEW_ARCH_ENABLED - _contextContainer = std::make_shared(); - _reactNativeConfig = std::make_shared(); - _contextContainer->insert("ReactNativeConfig", _reactNativeConfig); - _bridgeAdapter = [[RCTSurfacePresenterBridgeAdapter alloc] initWithBridge:bridge contextContainer:_contextContainer]; - bridge.surfacePresenter = _bridgeAdapter.surfacePresenter; -#endif - - NSDictionary *initProps = [self prepareInitialProps]; - UIView *rootView = RCTAppSetupDefaultRootView(bridge, @"rn0_70", initProps); - - if (@available(iOS 13.0, *)) { - rootView.backgroundColor = [UIColor systemBackgroundColor]; - } else { - rootView.backgroundColor = [UIColor whiteColor]; - } - - self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; - UIViewController *rootViewController = [UIViewController new]; - rootViewController.view = rootView; - self.window.rootViewController = rootViewController; - [self.window makeKeyAndVisible]; - return YES; -} - -/// This method controls whether the `concurrentRoot`feature of React18 is turned on or off. -/// -/// @see: https://reactjs.org/blog/2022/03/29/react-v18.html -/// @note: This requires to be rendering on Fabric (i.e. on the New Architecture). -/// @return: `true` if the `concurrentRoot` feture is enabled. Otherwise, it returns `false`. -- (BOOL)concurrentRootEnabled -{ - // Switch this bool to turn on and off the concurrent root - return true; -} - -- (NSDictionary *)prepareInitialProps -{ - NSMutableDictionary *initProps = [NSMutableDictionary new]; - -#ifdef RCT_NEW_ARCH_ENABLED - initProps[kRNConcurrentRoot] = @([self concurrentRootEnabled]); -#endif - - return initProps; -} - -- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge -{ -#if DEBUG - return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; -#else - return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; -#endif -} - -#if RCT_NEW_ARCH_ENABLED - -#pragma mark - RCTCxxBridgeDelegate - -- (std::unique_ptr)jsExecutorFactoryForBridge:(RCTBridge *)bridge -{ - _turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge - delegate:self - jsInvoker:bridge.jsCallInvoker]; - return RCTAppSetupDefaultJsExecutorFactory(bridge, _turboModuleManager); -} - -#pragma mark RCTTurboModuleManagerDelegate - -- (Class)getModuleClassFromName:(const char *)name -{ - return RCTCoreModulesClassProvider(name); -} - -- (std::shared_ptr)getTurboModule:(const std::string &)name - jsInvoker:(std::shared_ptr)jsInvoker -{ - return nullptr; -} - -- (std::shared_ptr)getTurboModule:(const std::string &)name - initParams: - (const facebook::react::ObjCTurboModule::InitParams &)params -{ - return nullptr; -} - -- (id)getModuleInstanceFromClass:(Class)moduleClass -{ - return RCTAppSetupDefaultModuleFromClass(moduleClass); -} - -#endif - -@end diff --git a/features/base-fixtures/rn0_70/ios/rn0_70/Images.xcassets/AppIcon.appiconset/Contents.json b/features/base-fixtures/rn0_70/ios/rn0_70/Images.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 81213230..00000000 --- a/features/base-fixtures/rn0_70/ios/rn0_70/Images.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "20x20" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "20x20" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "29x29" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "29x29" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "40x40" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "40x40" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "60x60" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "60x60" - }, - { - "idiom" : "ios-marketing", - "scale" : "1x", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/features/base-fixtures/rn0_70/ios/rn0_70/Images.xcassets/Contents.json b/features/base-fixtures/rn0_70/ios/rn0_70/Images.xcassets/Contents.json deleted file mode 100644 index 2d92bd53..00000000 --- a/features/base-fixtures/rn0_70/ios/rn0_70/Images.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/features/base-fixtures/rn0_70/ios/rn0_70/Info.plist b/features/base-fixtures/rn0_70/ios/rn0_70/Info.plist deleted file mode 100644 index fb40dad4..00000000 --- a/features/base-fixtures/rn0_70/ios/rn0_70/Info.plist +++ /dev/null @@ -1,55 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - rn0_70 - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - NSAppTransportSecurity - - NSExceptionDomains - - localhost - - NSExceptionAllowsInsecureHTTPLoads - - - - - NSLocationWhenInUseUsageDescription - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIViewControllerBasedStatusBarAppearance - - - diff --git a/features/base-fixtures/rn0_70/ios/rn0_70/LaunchScreen.storyboard b/features/base-fixtures/rn0_70/ios/rn0_70/LaunchScreen.storyboard deleted file mode 100644 index 373c4a48..00000000 --- a/features/base-fixtures/rn0_70/ios/rn0_70/LaunchScreen.storyboard +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/features/base-fixtures/rn0_70/ios/rn0_70/main.m b/features/base-fixtures/rn0_70/ios/rn0_70/main.m deleted file mode 100644 index d645c724..00000000 --- a/features/base-fixtures/rn0_70/ios/rn0_70/main.m +++ /dev/null @@ -1,10 +0,0 @@ -#import - -#import "AppDelegate.h" - -int main(int argc, char *argv[]) -{ - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/features/base-fixtures/rn0_70/ios/rn0_70Tests/Info.plist b/features/base-fixtures/rn0_70/ios/rn0_70Tests/Info.plist deleted file mode 100644 index ba72822e..00000000 --- a/features/base-fixtures/rn0_70/ios/rn0_70Tests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/features/base-fixtures/rn0_70/ios/rn0_70Tests/rn0_70Tests.m b/features/base-fixtures/rn0_70/ios/rn0_70Tests/rn0_70Tests.m deleted file mode 100644 index a6d8bbe7..00000000 --- a/features/base-fixtures/rn0_70/ios/rn0_70Tests/rn0_70Tests.m +++ /dev/null @@ -1,66 +0,0 @@ -#import -#import - -#import -#import - -#define TIMEOUT_SECONDS 600 -#define TEXT_TO_LOOK_FOR @"Welcome to React" - -@interface rn0_70Tests : XCTestCase - -@end - -@implementation rn0_70Tests - -- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test -{ - if (test(view)) { - return YES; - } - for (UIView *subview in [view subviews]) { - if ([self findSubviewInView:subview matching:test]) { - return YES; - } - } - return NO; -} - -- (void)testRendersWelcomeScreen -{ - UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; - NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; - BOOL foundElement = NO; - - __block NSString *redboxError = nil; -#ifdef DEBUG - RCTSetLogFunction( - ^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { - if (level >= RCTLogLevelError) { - redboxError = message; - } - }); -#endif - - while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { - [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; - [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; - - foundElement = [self findSubviewInView:vc.view - matching:^BOOL(UIView *view) { - if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { - return YES; - } - return NO; - }]; - } - -#ifdef DEBUG - RCTSetLogFunction(RCTDefaultLogFunction); -#endif - - XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); - XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); -} - -@end diff --git a/features/base-fixtures/rn0_70/metro.config.js b/features/base-fixtures/rn0_70/metro.config.js deleted file mode 100644 index e91aba93..00000000 --- a/features/base-fixtures/rn0_70/metro.config.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Metro configuration for React Native - * https://github.com/facebook/react-native - * - * @format - */ - -module.exports = { - transformer: { - getTransformOptions: async () => ({ - transform: { - experimentalImportSupport: false, - inlineRequires: true, - }, - }), - }, -}; diff --git a/features/base-fixtures/rn0_70/package.json b/features/base-fixtures/rn0_70/package.json deleted file mode 100644 index b719f20a..00000000 --- a/features/base-fixtures/rn0_70/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "rn0_70", - "version": "0.0.1", - "private": true, - "scripts": { - "android": "react-native run-android", - "ios": "react-native run-ios", - "start": "react-native start", - "test": "jest", - "lint": "eslint ." - }, - "dependencies": { - "react": "^18.1.0", - "react-native": "^0.70.13" - }, - "devDependencies": { - "@babel/core": "^7.12.9", - "@babel/runtime": "^7.12.5", - "@react-native-community/eslint-config": "^2.0.0", - "babel-jest": "^29.7.0", - "eslint": "^7.32.0", - "jest": "^29.7.0", - "metro-react-native-babel-preset": "0.72.4", - "react-test-renderer": "18.1.0" - }, - "jest": { - "preset": "react-native" - } -} diff --git a/features/base-fixtures/rn0_72/.bundle/config b/features/base-fixtures/rn0_72/.bundle/config deleted file mode 100644 index 848943bb..00000000 --- a/features/base-fixtures/rn0_72/.bundle/config +++ /dev/null @@ -1,2 +0,0 @@ -BUNDLE_PATH: "vendor/bundle" -BUNDLE_FORCE_RUBY_PLATFORM: 1 diff --git a/features/base-fixtures/rn0_72/.eslintrc.js b/features/base-fixtures/rn0_72/.eslintrc.js deleted file mode 100644 index 187894b6..00000000 --- a/features/base-fixtures/rn0_72/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - root: true, - extends: '@react-native', -}; diff --git a/features/base-fixtures/rn0_72/.gitignore b/features/base-fixtures/rn0_72/.gitignore deleted file mode 100644 index 0cab2ac6..00000000 --- a/features/base-fixtures/rn0_72/.gitignore +++ /dev/null @@ -1,66 +0,0 @@ -# OSX -# -.DS_Store - -# Xcode -# -build/ -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 -xcuserdata -*.xccheckout -*.moved-aside -DerivedData -*.hmap -*.ipa -*.xcuserstate -ios/.xcode.env.local - -# Android/IntelliJ -# -build/ -.idea -.gradle -local.properties -*.iml -*.hprof -.cxx/ -*.keystore -!debug.keystore - -# node.js -# -node_modules/ -npm-debug.log -yarn-error.log - -# fastlane -# -# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the -# screenshots whenever they are needed. -# For more information about the recommended setup visit: -# https://docs.fastlane.tools/best-practices/source-control/ - -**/fastlane/report.xml -**/fastlane/Preview.html -**/fastlane/screenshots -**/fastlane/test_output - -# Bundle artifact -*.jsbundle - -# Ruby / CocoaPods -/ios/Pods/ -/vendor/bundle/ - -# Temporary files created by Metro to check the health of the file watcher -.metro-health-check* - -# testing -/coverage diff --git a/features/base-fixtures/rn0_72/.prettierrc.js b/features/base-fixtures/rn0_72/.prettierrc.js deleted file mode 100644 index 2b540746..00000000 --- a/features/base-fixtures/rn0_72/.prettierrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - arrowParens: 'avoid', - bracketSameLine: true, - bracketSpacing: false, - singleQuote: true, - trailingComma: 'all', -}; diff --git a/features/base-fixtures/rn0_72/.watchmanconfig b/features/base-fixtures/rn0_72/.watchmanconfig deleted file mode 100644 index 0967ef42..00000000 --- a/features/base-fixtures/rn0_72/.watchmanconfig +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/features/base-fixtures/rn0_72/App.tsx b/features/base-fixtures/rn0_72/App.tsx deleted file mode 100644 index bf24c331..00000000 --- a/features/base-fixtures/rn0_72/App.tsx +++ /dev/null @@ -1,118 +0,0 @@ -/** - * Sample React Native App - * https://github.com/facebook/react-native - * - * @format - */ - -import React from 'react'; -import type {PropsWithChildren} from 'react'; -import { - SafeAreaView, - ScrollView, - StatusBar, - StyleSheet, - Text, - useColorScheme, - View, -} from 'react-native'; - -import { - Colors, - DebugInstructions, - Header, - LearnMoreLinks, - ReloadInstructions, -} from 'react-native/Libraries/NewAppScreen'; - -type SectionProps = PropsWithChildren<{ - title: string; -}>; - -function Section({children, title}: SectionProps): JSX.Element { - const isDarkMode = useColorScheme() === 'dark'; - return ( - - - {title} - - - {children} - - - ); -} - -function App(): JSX.Element { - const isDarkMode = useColorScheme() === 'dark'; - - const backgroundStyle = { - backgroundColor: isDarkMode ? Colors.darker : Colors.lighter, - }; - - return ( - - - -

- -
- Edit App.tsx to change this - screen and then come back to see your edits. -
-
- -
-
- -
-
- Read the docs to discover what to do next: -
- -
- - - ); -} - -const styles = StyleSheet.create({ - sectionContainer: { - marginTop: 32, - paddingHorizontal: 24, - }, - sectionTitle: { - fontSize: 24, - fontWeight: '600', - }, - sectionDescription: { - marginTop: 8, - fontSize: 18, - fontWeight: '400', - }, - highlight: { - fontWeight: '700', - }, -}); - -export default App; diff --git a/features/base-fixtures/rn0_72/Gemfile b/features/base-fixtures/rn0_72/Gemfile deleted file mode 100644 index efb34ae1..00000000 --- a/features/base-fixtures/rn0_72/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -source 'https://rubygems.org' - -# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version -ruby '>= 2.6.10' - -gem 'cocoapods', '1.14.3' -gem 'xcodeproj', '< 1.26.0' diff --git a/features/base-fixtures/rn0_72/README.md b/features/base-fixtures/rn0_72/README.md deleted file mode 100644 index 12470c30..00000000 --- a/features/base-fixtures/rn0_72/README.md +++ /dev/null @@ -1,79 +0,0 @@ -This is a new [**React Native**](https://reactnative.dev) project, bootstrapped using [`@react-native-community/cli`](https://github.com/react-native-community/cli). - -# Getting Started - ->**Note**: Make sure you have completed the [React Native - Environment Setup](https://reactnative.dev/docs/environment-setup) instructions till "Creating a new application" step, before proceeding. - -## Step 1: Start the Metro Server - -First, you will need to start **Metro**, the JavaScript _bundler_ that ships _with_ React Native. - -To start Metro, run the following command from the _root_ of your React Native project: - -```bash -# using npm -npm start - -# OR using Yarn -yarn start -``` - -## Step 2: Start your Application - -Let Metro Bundler run in its _own_ terminal. Open a _new_ terminal from the _root_ of your React Native project. Run the following command to start your _Android_ or _iOS_ app: - -### For Android - -```bash -# using npm -npm run android - -# OR using Yarn -yarn android -``` - -### For iOS - -```bash -# using npm -npm run ios - -# OR using Yarn -yarn ios -``` - -If everything is set up _correctly_, you should see your new app running in your _Android Emulator_ or _iOS Simulator_ shortly provided you have set up your emulator/simulator correctly. - -This is one way to run your app β€” you can also run it directly from within Android Studio and Xcode respectively. - -## Step 3: Modifying your App - -Now that you have successfully run the app, let's modify it. - -1. Open `App.tsx` in your text editor of choice and edit some lines. -2. For **Android**: Press the R key twice or select **"Reload"** from the **Developer Menu** (Ctrl + M (on Window and Linux) or Cmd ⌘ + M (on macOS)) to see your changes! - - For **iOS**: Hit Cmd ⌘ + R in your iOS Simulator to reload the app and see your changes! - -## Congratulations! :tada: - -You've successfully run and modified your React Native App. :partying_face: - -### Now what? - -- If you want to add this new React Native code to an existing application, check out the [Integration guide](https://reactnative.dev/docs/integration-with-existing-apps). -- If you're curious to learn more about React Native, check out the [Introduction to React Native](https://reactnative.dev/docs/getting-started). - -# Troubleshooting - -If you can't get this to work, see the [Troubleshooting](https://reactnative.dev/docs/troubleshooting) page. - -# Learn More - -To learn more about React Native, take a look at the following resources: - -- [React Native Website](https://reactnative.dev) - learn more about React Native. -- [Getting Started](https://reactnative.dev/docs/environment-setup) - an **overview** of React Native and how setup your environment. -- [Learn the Basics](https://reactnative.dev/docs/getting-started) - a **guided tour** of the React Native **basics**. -- [Blog](https://reactnative.dev/blog) - read the latest official React Native **Blog** posts. -- [`@facebook/react-native`](https://github.com/facebook/react-native) - the Open Source; GitHub **repository** for React Native. diff --git a/features/base-fixtures/rn0_72/__tests__/App.test.tsx b/features/base-fixtures/rn0_72/__tests__/App.test.tsx deleted file mode 100644 index 3413ac1c..00000000 --- a/features/base-fixtures/rn0_72/__tests__/App.test.tsx +++ /dev/null @@ -1,17 +0,0 @@ -/** - * @format - */ - -import 'react-native'; -import React from 'react'; -import App from '../App'; - -// Note: import explicitly to use the types shiped with jest. -import {it} from '@jest/globals'; - -// Note: test renderer must be required after react-native. -import renderer from 'react-test-renderer'; - -it('renders correctly', () => { - renderer.create(); -}); diff --git a/features/base-fixtures/rn0_72/android/app/build.gradle b/features/base-fixtures/rn0_72/android/app/build.gradle deleted file mode 100644 index f2990c6d..00000000 --- a/features/base-fixtures/rn0_72/android/app/build.gradle +++ /dev/null @@ -1,123 +0,0 @@ -apply plugin: "com.android.application" -apply plugin: "com.facebook.react" - -/** - * This is the configuration block to customize your React Native Android app. - * By default you don't need to apply any configuration, just uncomment the lines you need. - */ -react { - /* Folders */ - // The root of your project, i.e. where "package.json" lives. Default is '..' - // root = file("../") - // The folder where the react-native NPM package is. Default is ../node_modules/react-native - // reactNativeDir = file("../node_modules/react-native") - // The folder where the react-native Codegen package is. Default is ../node_modules/@react-native/codegen - // codegenDir = file("../node_modules/@react-native/codegen") - // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js - // cliFile = file("../node_modules/react-native/cli.js") - - /* Variants */ - // The list of variants to that are debuggable. For those we're going to - // skip the bundling of the JS bundle and the assets. By default is just 'debug'. - // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants. - // debuggableVariants = ["liteDebug", "prodDebug"] - - /* Bundling */ - // A list containing the node command and its flags. Default is just 'node'. - // nodeExecutableAndArgs = ["node"] - // - // The command to run when bundling. By default is 'bundle' - // bundleCommand = "ram-bundle" - // - // The path to the CLI configuration file. Default is empty. - // bundleConfig = file(../rn-cli.config.js) - // - // The name of the generated asset file containing your JS bundle - // bundleAssetName = "MyApplication.android.bundle" - // - // The entry file for bundle generation. Default is 'index.android.js' or 'index.js' - // entryFile = file("../js/MyApplication.android.js") - // - // A list of extra flags to pass to the 'bundle' commands. - // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle - // extraPackagerArgs = [] - - /* Hermes Commands */ - // The hermes compiler command to run. By default it is 'hermesc' - // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc" - // - // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map" - // hermesFlags = ["-O", "-output-source-map"] -} - -/** - * Set this to true to Run Proguard on Release builds to minify the Java bytecode. - */ -def enableProguardInReleaseBuilds = true - -/** - * The preferred build flavor of JavaScriptCore (JSC) - * - * For example, to use the international variant, you can use: - * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` - * - * The international variant includes ICU i18n library and necessary data - * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that - * give correct results when using with locales other than en-US. Note that - * this variant is about 6MiB larger per architecture than default. - */ -def jscFlavor = 'org.webkit:android-jsc:+' - -android { - ndkVersion rootProject.ext.ndkVersion - - compileSdkVersion rootProject.ext.compileSdkVersion - - namespace "com.rn0_72" - defaultConfig { - applicationId "com.rn0_72" - minSdkVersion rootProject.ext.minSdkVersion - targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 1 - versionName "1.0" - } - signingConfigs { - debug { - storeFile file('debug.keystore') - storePassword 'android' - keyAlias 'androiddebugkey' - keyPassword 'android' - } - } - buildTypes { - debug { - signingConfig signingConfigs.debug - } - release { - // Caution! In production, you need to generate your own keystore file. - // see https://reactnative.dev/docs/signed-apk-android. - signingConfig signingConfigs.debug - minifyEnabled enableProguardInReleaseBuilds - proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" - } - } -} - -dependencies { - // The version of react-native is set by the React Native Gradle Plugin - implementation("com.facebook.react:react-android") - - debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") - debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") { - exclude group:'com.squareup.okhttp3', module:'okhttp' - } - - debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") - if (hermesEnabled.toBoolean()) { - implementation("com.facebook.react:hermes-android") - } else { - implementation jscFlavor - } -} - -apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) diff --git a/features/base-fixtures/rn0_72/android/app/debug.keystore b/features/base-fixtures/rn0_72/android/app/debug.keystore deleted file mode 100644 index 364e105e..00000000 Binary files a/features/base-fixtures/rn0_72/android/app/debug.keystore and /dev/null differ diff --git a/features/base-fixtures/rn0_72/android/app/proguard-rules.pro b/features/base-fixtures/rn0_72/android/app/proguard-rules.pro deleted file mode 100644 index 11b02572..00000000 --- a/features/base-fixtures/rn0_72/android/app/proguard-rules.pro +++ /dev/null @@ -1,10 +0,0 @@ -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: diff --git a/features/base-fixtures/rn0_72/android/app/src/debug/AndroidManifest.xml b/features/base-fixtures/rn0_72/android/app/src/debug/AndroidManifest.xml deleted file mode 100644 index 4b185bc1..00000000 --- a/features/base-fixtures/rn0_72/android/app/src/debug/AndroidManifest.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - diff --git a/features/base-fixtures/rn0_72/android/app/src/debug/java/com/rn0_72/ReactNativeFlipper.java b/features/base-fixtures/rn0_72/android/app/src/debug/java/com/rn0_72/ReactNativeFlipper.java deleted file mode 100644 index a3d34c2b..00000000 --- a/features/base-fixtures/rn0_72/android/app/src/debug/java/com/rn0_72/ReactNativeFlipper.java +++ /dev/null @@ -1,75 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - *

This source code is licensed under the MIT license found in the LICENSE file in the root - * directory of this source tree. - */ -package com.rn0_72; - -import android.content.Context; -import com.facebook.flipper.android.AndroidFlipperClient; -import com.facebook.flipper.android.utils.FlipperUtils; -import com.facebook.flipper.core.FlipperClient; -import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin; -import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin; -import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin; -import com.facebook.flipper.plugins.inspector.DescriptorMapping; -import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin; -import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor; -import com.facebook.flipper.plugins.network.NetworkFlipperPlugin; -import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin; -import com.facebook.react.ReactInstanceEventListener; -import com.facebook.react.ReactInstanceManager; -import com.facebook.react.bridge.ReactContext; -import com.facebook.react.modules.network.NetworkingModule; -import okhttp3.OkHttpClient; - -/** - * Class responsible of loading Flipper inside your React Native application. This is the debug - * flavor of it. Here you can add your own plugins and customize the Flipper setup. - */ -public class ReactNativeFlipper { - public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) { - if (FlipperUtils.shouldEnableFlipper(context)) { - final FlipperClient client = AndroidFlipperClient.getInstance(context); - - client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults())); - client.addPlugin(new DatabasesFlipperPlugin(context)); - client.addPlugin(new SharedPreferencesFlipperPlugin(context)); - client.addPlugin(CrashReporterPlugin.getInstance()); - - NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin(); - NetworkingModule.setCustomClientBuilder( - new NetworkingModule.CustomClientBuilder() { - @Override - public void apply(OkHttpClient.Builder builder) { - builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin)); - } - }); - client.addPlugin(networkFlipperPlugin); - client.start(); - - // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized - // Hence we run if after all native modules have been initialized - ReactContext reactContext = reactInstanceManager.getCurrentReactContext(); - if (reactContext == null) { - reactInstanceManager.addReactInstanceEventListener( - new ReactInstanceEventListener() { - @Override - public void onReactContextInitialized(ReactContext reactContext) { - reactInstanceManager.removeReactInstanceEventListener(this); - reactContext.runOnNativeModulesQueueThread( - new Runnable() { - @Override - public void run() { - client.addPlugin(new FrescoFlipperPlugin()); - } - }); - } - }); - } else { - client.addPlugin(new FrescoFlipperPlugin()); - } - } - } -} diff --git a/features/base-fixtures/rn0_72/android/app/src/main/AndroidManifest.xml b/features/base-fixtures/rn0_72/android/app/src/main/AndroidManifest.xml deleted file mode 100644 index 4122f36a..00000000 --- a/features/base-fixtures/rn0_72/android/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - diff --git a/features/base-fixtures/rn0_72/android/app/src/main/java/com/rn0_72/MainActivity.java b/features/base-fixtures/rn0_72/android/app/src/main/java/com/rn0_72/MainActivity.java deleted file mode 100644 index d149db27..00000000 --- a/features/base-fixtures/rn0_72/android/app/src/main/java/com/rn0_72/MainActivity.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.rn0_72; - -import com.facebook.react.ReactActivity; -import com.facebook.react.ReactActivityDelegate; -import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint; -import com.facebook.react.defaults.DefaultReactActivityDelegate; - -public class MainActivity extends ReactActivity { - - /** - * Returns the name of the main component registered from JavaScript. This is used to schedule - * rendering of the component. - */ - @Override - protected String getMainComponentName() { - return "rn0_72"; - } - - /** - * Returns the instance of the {@link ReactActivityDelegate}. Here we use a util class {@link - * DefaultReactActivityDelegate} which allows you to easily enable Fabric and Concurrent React - * (aka React 18) with two boolean flags. - */ - @Override - protected ReactActivityDelegate createReactActivityDelegate() { - return new DefaultReactActivityDelegate( - this, - getMainComponentName(), - // If you opted-in for the New Architecture, we enable the Fabric Renderer. - DefaultNewArchitectureEntryPoint.getFabricEnabled()); - } -} diff --git a/features/base-fixtures/rn0_72/android/app/src/main/java/com/rn0_72/MainApplication.java b/features/base-fixtures/rn0_72/android/app/src/main/java/com/rn0_72/MainApplication.java deleted file mode 100644 index 742f6c42..00000000 --- a/features/base-fixtures/rn0_72/android/app/src/main/java/com/rn0_72/MainApplication.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.rn0_72; - -import android.app.Application; -import com.facebook.react.PackageList; -import com.facebook.react.ReactApplication; -import com.facebook.react.ReactNativeHost; -import com.facebook.react.ReactPackage; -import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint; -import com.facebook.react.defaults.DefaultReactNativeHost; -import com.facebook.soloader.SoLoader; -import java.util.List; - -public class MainApplication extends Application implements ReactApplication { - - private final ReactNativeHost mReactNativeHost = - new DefaultReactNativeHost(this) { - @Override - public boolean getUseDeveloperSupport() { - return BuildConfig.DEBUG; - } - - @Override - protected List getPackages() { - @SuppressWarnings("UnnecessaryLocalVariable") - List packages = new PackageList(this).getPackages(); - // Packages that cannot be autolinked yet can be added manually here, for example: - // packages.add(new MyReactNativePackage()); - return packages; - } - - @Override - protected String getJSMainModuleName() { - return "index"; - } - - @Override - protected boolean isNewArchEnabled() { - return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED; - } - - @Override - protected Boolean isHermesEnabled() { - return BuildConfig.IS_HERMES_ENABLED; - } - }; - - @Override - public ReactNativeHost getReactNativeHost() { - return mReactNativeHost; - } - - @Override - public void onCreate() { - super.onCreate(); - SoLoader.init(this, /* native exopackage */ false); - if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { - // If you opted-in for the New Architecture, we load the native entry point for this app. - DefaultNewArchitectureEntryPoint.load(); - } - ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); - } -} diff --git a/features/base-fixtures/rn0_72/android/app/src/main/res/drawable/rn_edit_text_material.xml b/features/base-fixtures/rn0_72/android/app/src/main/res/drawable/rn_edit_text_material.xml deleted file mode 100644 index 73b37e4d..00000000 --- a/features/base-fixtures/rn0_72/android/app/src/main/res/drawable/rn_edit_text_material.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - diff --git a/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index a2f59082..00000000 Binary files a/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png deleted file mode 100644 index 1b523998..00000000 Binary files a/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png and /dev/null differ diff --git a/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index ff10afd6..00000000 Binary files a/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png deleted file mode 100644 index 115a4c76..00000000 Binary files a/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png and /dev/null differ diff --git a/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index dcd3cd80..00000000 Binary files a/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png deleted file mode 100644 index 459ca609..00000000 Binary files a/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png and /dev/null differ diff --git a/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 8ca12fe0..00000000 Binary files a/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index 8e19b410..00000000 Binary files a/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index b824ebdd..00000000 Binary files a/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index 4c19a13c..00000000 Binary files a/features/base-fixtures/rn0_72/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/features/base-fixtures/rn0_72/android/app/src/main/res/values/strings.xml b/features/base-fixtures/rn0_72/android/app/src/main/res/values/strings.xml deleted file mode 100644 index 9295ec00..00000000 --- a/features/base-fixtures/rn0_72/android/app/src/main/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - rn0_72 - diff --git a/features/base-fixtures/rn0_72/android/app/src/main/res/values/styles.xml b/features/base-fixtures/rn0_72/android/app/src/main/res/values/styles.xml deleted file mode 100644 index 7ba83a2a..00000000 --- a/features/base-fixtures/rn0_72/android/app/src/main/res/values/styles.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/features/base-fixtures/rn0_72/android/app/src/release/java/com/rn0_72/ReactNativeFlipper.java b/features/base-fixtures/rn0_72/android/app/src/release/java/com/rn0_72/ReactNativeFlipper.java deleted file mode 100644 index 2a8f8019..00000000 --- a/features/base-fixtures/rn0_72/android/app/src/release/java/com/rn0_72/ReactNativeFlipper.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - *

This source code is licensed under the MIT license found in the LICENSE file in the root - * directory of this source tree. - */ -package com.rn0_72; - -import android.content.Context; -import com.facebook.react.ReactInstanceManager; - -/** - * Class responsible of loading Flipper inside your React Native application. This is the release - * flavor of it so it's empty as we don't want to load Flipper. - */ -public class ReactNativeFlipper { - public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) { - // Do nothing as we don't want to initialize Flipper on Release. - } -} diff --git a/features/base-fixtures/rn0_72/android/build.gradle b/features/base-fixtures/rn0_72/android/build.gradle deleted file mode 100644 index 34ea7181..00000000 --- a/features/base-fixtures/rn0_72/android/build.gradle +++ /dev/null @@ -1,21 +0,0 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. - -buildscript { - ext { - buildToolsVersion = "33.0.0" - minSdkVersion = 21 - compileSdkVersion = 33 - targetSdkVersion = 33 - - // We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP. - ndkVersion = "23.1.7779620" - } - repositories { - google() - mavenCentral() - } - dependencies { - classpath("com.android.tools.build:gradle") - classpath("com.facebook.react:react-native-gradle-plugin") - } -} diff --git a/features/base-fixtures/rn0_72/android/gradle.properties b/features/base-fixtures/rn0_72/android/gradle.properties deleted file mode 100644 index a3b2fa12..00000000 --- a/features/base-fixtures/rn0_72/android/gradle.properties +++ /dev/null @@ -1,44 +0,0 @@ -# Project-wide Gradle settings. - -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. - -# For more details on how to configure your build environment visit -# http://www.gradle.org/docs/current/userguide/build_environment.html - -# Specifies the JVM arguments used for the daemon process. -# The setting is particularly useful for tweaking memory settings. -# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m -org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m - -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true - -# AndroidX package structure to make it clearer which packages are bundled with the -# Android operating system, and which are packaged with your app's APK -# https://developer.android.com/topic/libraries/support-library/androidx-rn -android.useAndroidX=true -# Automatically convert third-party libraries to use AndroidX -android.enableJetifier=true - -# Version of flipper SDK to use with React Native -FLIPPER_VERSION=0.182.0 - -# Use this property to specify which architecture you want to build. -# You can also override it from the CLI using -# ./gradlew -PreactNativeArchitectures=x86_64 -reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 - -# Use this property to enable support to the new architecture. -# This will allow you to use TurboModules and the Fabric render in -# your application. You should enable this flag either if you want -# to write custom TurboModules/Fabric components OR use libraries that -# are providing them. -newArchEnabled=false - -# Use this property to enable or disable the Hermes JS engine. -# If set to false, you will be using JSC instead. -hermesEnabled=true diff --git a/features/base-fixtures/rn0_72/android/gradle/wrapper/gradle-wrapper.jar b/features/base-fixtures/rn0_72/android/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 943f0cbf..00000000 Binary files a/features/base-fixtures/rn0_72/android/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/features/base-fixtures/rn0_72/android/gradle/wrapper/gradle-wrapper.properties b/features/base-fixtures/rn0_72/android/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 6ec1567a..00000000 --- a/features/base-fixtures/rn0_72/android/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,6 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-all.zip -networkTimeout=10000 -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/features/base-fixtures/rn0_72/android/gradlew b/features/base-fixtures/rn0_72/android/gradlew deleted file mode 100755 index 65dcd68d..00000000 --- a/features/base-fixtures/rn0_72/android/gradlew +++ /dev/null @@ -1,244 +0,0 @@ -#!/bin/sh - -# -# Copyright Β© 2015-2021 the original authors. -# -# 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 -# -# https://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. -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions Β«$varΒ», Β«${var}Β», Β«${var:-default}Β», Β«${var+SET}Β», -# Β«${var#prefix}Β», Β«${var%suffix}Β», and Β«$( cmd )Β»; -# * compound commands having a testable exit status, especially Β«caseΒ»; -# * various built-in commands including Β«commandΒ», Β«setΒ», and Β«ulimitΒ». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -# This is normally unused -# shellcheck disable=SC2034 -APP_BASE_NAME=${0##*/} -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ - "$@" - -# Stop when "xargs" is not available. -if ! command -v xargs >/dev/null 2>&1 -then - die "xargs is not available" -fi - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/features/base-fixtures/rn0_72/android/gradlew.bat b/features/base-fixtures/rn0_72/android/gradlew.bat deleted file mode 100644 index 6689b85b..00000000 --- a/features/base-fixtures/rn0_72/android/gradlew.bat +++ /dev/null @@ -1,92 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -@rem This is normally unused -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/features/base-fixtures/rn0_72/android/settings.gradle b/features/base-fixtures/rn0_72/android/settings.gradle deleted file mode 100644 index c398ea42..00000000 --- a/features/base-fixtures/rn0_72/android/settings.gradle +++ /dev/null @@ -1,4 +0,0 @@ -rootProject.name = 'rn0_72' -apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) -include ':app' -includeBuild('../node_modules/@react-native/gradle-plugin') diff --git a/features/base-fixtures/rn0_72/app.json b/features/base-fixtures/rn0_72/app.json deleted file mode 100644 index 432175d9..00000000 --- a/features/base-fixtures/rn0_72/app.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "rn0_72", - "displayName": "rn0_72" -} diff --git a/features/base-fixtures/rn0_72/babel.config.js b/features/base-fixtures/rn0_72/babel.config.js deleted file mode 100644 index f842b77f..00000000 --- a/features/base-fixtures/rn0_72/babel.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: ['module:metro-react-native-babel-preset'], -}; diff --git a/features/base-fixtures/rn0_72/index.js b/features/base-fixtures/rn0_72/index.js deleted file mode 100644 index a850d031..00000000 --- a/features/base-fixtures/rn0_72/index.js +++ /dev/null @@ -1,9 +0,0 @@ -/** - * @format - */ - -import {AppRegistry} from 'react-native'; -import App from './App'; -import {name as appName} from './app.json'; - -AppRegistry.registerComponent(appName, () => App); diff --git a/features/base-fixtures/rn0_72/ios/Podfile b/features/base-fixtures/rn0_72/ios/Podfile deleted file mode 100644 index 8cb5aa7b..00000000 --- a/features/base-fixtures/rn0_72/ios/Podfile +++ /dev/null @@ -1,62 +0,0 @@ -# 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, min_ios_version_supported -prepare_react_native_project! - -# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set. -# because `react-native-flipper` depends on (FlipperKit,...) that will be excluded -# -# To fix this you can also exclude `react-native-flipper` using a `react-native.config.js` -# ```js -# module.exports = { -# dependencies: { -# ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}), -# ``` -flipper_config = ENV['NO_FLIPPER'] == "1" ? FlipperConfiguration.disabled : FlipperConfiguration.enabled - -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 'rn0_72' do - config = use_native_modules! - - # Flags change depending on the env values. - flags = get_default_flags() - - use_react_native!( - :path => config[:reactNativePath], - # Hermes is now enabled by default. Disable by setting this flag to false. - :hermes_enabled => flags[:hermes_enabled], - :fabric_enabled => flags[:fabric_enabled], - # Enables Flipper. - # - # Note that if you have use_frameworks! enabled, Flipper will not work and - # you should disable the next line. - :flipper_configuration => flipper_config, - # An absolute path to your application root. - :app_path => "#{Pod::Config.instance.installation_root}/.." - ) - - target 'rn0_72Tests' do - inherit! :complete - # Pods for testing - end - - post_install do |installer| - # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202 - react_native_post_install( - installer, - config[:reactNativePath], - :mac_catalyst_enabled => false - ) - __apply_Xcode_12_5_M1_post_install_workaround(installer) - end -end diff --git a/features/base-fixtures/rn0_72/ios/rn0_72.xcodeproj/project.pbxproj b/features/base-fixtures/rn0_72/ios/rn0_72.xcodeproj/project.pbxproj deleted file mode 100644 index bdae1fcb..00000000 --- a/features/base-fixtures/rn0_72/ios/rn0_72.xcodeproj/project.pbxproj +++ /dev/null @@ -1,723 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 54; - objects = { - -/* Begin PBXBuildFile section */ - 00E356F31AD99517003FC87E /* rn0_72Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* rn0_72Tests.m */; }; - 0C80B921A6F3F58F76C31292 /* libPods-rn0_72.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-rn0_72.a */; }; - 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; - 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; - 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 7699B88040F8A987B510C191 /* libPods-rn0_72-rn0_72Tests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-rn0_72-rn0_72Tests.a */; }; - 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 13B07F861A680F5B00A75B9A; - remoteInfo = rn0_72; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 00E356EE1AD99517003FC87E /* rn0_72Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = rn0_72Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 00E356F21AD99517003FC87E /* rn0_72Tests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = rn0_72Tests.m; sourceTree = ""; }; - 13B07F961A680F5B00A75B9A /* rn0_72.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = rn0_72.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = rn0_72/AppDelegate.h; sourceTree = ""; }; - 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = rn0_72/AppDelegate.mm; sourceTree = ""; }; - 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = rn0_72/Images.xcassets; sourceTree = ""; }; - 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = rn0_72/Info.plist; sourceTree = ""; }; - 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = rn0_72/main.m; sourceTree = ""; }; - 19F6CBCC0A4E27FBF8BF4A61 /* libPods-rn0_72-rn0_72Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-rn0_72-rn0_72Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 3B4392A12AC88292D35C810B /* Pods-rn0_72.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-rn0_72.debug.xcconfig"; path = "Target Support Files/Pods-rn0_72/Pods-rn0_72.debug.xcconfig"; sourceTree = ""; }; - 5709B34CF0A7D63546082F79 /* Pods-rn0_72.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-rn0_72.release.xcconfig"; path = "Target Support Files/Pods-rn0_72/Pods-rn0_72.release.xcconfig"; sourceTree = ""; }; - 5B7EB9410499542E8C5724F5 /* Pods-rn0_72-rn0_72Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-rn0_72-rn0_72Tests.debug.xcconfig"; path = "Target Support Files/Pods-rn0_72-rn0_72Tests/Pods-rn0_72-rn0_72Tests.debug.xcconfig"; sourceTree = ""; }; - 5DCACB8F33CDC322A6C60F78 /* libPods-rn0_72.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-rn0_72.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = rn0_72/LaunchScreen.storyboard; sourceTree = ""; }; - 89C6BE57DB24E9ADA2F236DE /* Pods-rn0_72-rn0_72Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-rn0_72-rn0_72Tests.release.xcconfig"; path = "Target Support Files/Pods-rn0_72-rn0_72Tests/Pods-rn0_72-rn0_72Tests.release.xcconfig"; sourceTree = ""; }; - ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 00E356EB1AD99517003FC87E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 7699B88040F8A987B510C191 /* libPods-rn0_72-rn0_72Tests.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 0C80B921A6F3F58F76C31292 /* libPods-rn0_72.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 00E356EF1AD99517003FC87E /* rn0_72Tests */ = { - isa = PBXGroup; - children = ( - 00E356F21AD99517003FC87E /* rn0_72Tests.m */, - 00E356F01AD99517003FC87E /* Supporting Files */, - ); - path = rn0_72Tests; - sourceTree = ""; - }; - 00E356F01AD99517003FC87E /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 00E356F11AD99517003FC87E /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 13B07FAE1A68108700A75B9A /* rn0_72 */ = { - isa = PBXGroup; - children = ( - 13B07FAF1A68108700A75B9A /* AppDelegate.h */, - 13B07FB01A68108700A75B9A /* AppDelegate.mm */, - 13B07FB51A68108700A75B9A /* Images.xcassets */, - 13B07FB61A68108700A75B9A /* Info.plist */, - 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, - 13B07FB71A68108700A75B9A /* main.m */, - ); - name = rn0_72; - sourceTree = ""; - }; - 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { - isa = PBXGroup; - children = ( - ED297162215061F000B7C4FE /* JavaScriptCore.framework */, - 5DCACB8F33CDC322A6C60F78 /* libPods-rn0_72.a */, - 19F6CBCC0A4E27FBF8BF4A61 /* libPods-rn0_72-rn0_72Tests.a */, - ); - name = Frameworks; - sourceTree = ""; - }; - 832341AE1AAA6A7D00B99B32 /* Libraries */ = { - isa = PBXGroup; - children = ( - ); - name = Libraries; - sourceTree = ""; - }; - 83CBB9F61A601CBA00E9B192 = { - isa = PBXGroup; - children = ( - 13B07FAE1A68108700A75B9A /* rn0_72 */, - 832341AE1AAA6A7D00B99B32 /* Libraries */, - 00E356EF1AD99517003FC87E /* rn0_72Tests */, - 83CBBA001A601CBA00E9B192 /* Products */, - 2D16E6871FA4F8E400B85C8A /* Frameworks */, - BBD78D7AC51CEA395F1C20DB /* Pods */, - ); - indentWidth = 2; - sourceTree = ""; - tabWidth = 2; - usesTabs = 0; - }; - 83CBBA001A601CBA00E9B192 /* Products */ = { - isa = PBXGroup; - children = ( - 13B07F961A680F5B00A75B9A /* rn0_72.app */, - 00E356EE1AD99517003FC87E /* rn0_72Tests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - BBD78D7AC51CEA395F1C20DB /* Pods */ = { - isa = PBXGroup; - children = ( - 3B4392A12AC88292D35C810B /* Pods-rn0_72.debug.xcconfig */, - 5709B34CF0A7D63546082F79 /* Pods-rn0_72.release.xcconfig */, - 5B7EB9410499542E8C5724F5 /* Pods-rn0_72-rn0_72Tests.debug.xcconfig */, - 89C6BE57DB24E9ADA2F236DE /* Pods-rn0_72-rn0_72Tests.release.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 00E356ED1AD99517003FC87E /* rn0_72Tests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "rn0_72Tests" */; - buildPhases = ( - A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */, - 00E356EA1AD99517003FC87E /* Sources */, - 00E356EB1AD99517003FC87E /* Frameworks */, - 00E356EC1AD99517003FC87E /* Resources */, - C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */, - F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - 00E356F51AD99517003FC87E /* PBXTargetDependency */, - ); - name = rn0_72Tests; - productName = rn0_72Tests; - productReference = 00E356EE1AD99517003FC87E /* rn0_72Tests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 13B07F861A680F5B00A75B9A /* rn0_72 */ = { - isa = PBXNativeTarget; - buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "rn0_72" */; - buildPhases = ( - C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */, - FD10A7F022414F080027D42C /* Start Packager */, - 13B07F871A680F5B00A75B9A /* Sources */, - 13B07F8C1A680F5B00A75B9A /* Frameworks */, - 13B07F8E1A680F5B00A75B9A /* Resources */, - 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */, - E235C05ADACE081382539298 /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = rn0_72; - productName = rn0_72; - productReference = 13B07F961A680F5B00A75B9A /* rn0_72.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 83CBB9F71A601CBA00E9B192 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1210; - TargetAttributes = { - 00E356ED1AD99517003FC87E = { - CreatedOnToolsVersion = 6.2; - TestTargetID = 13B07F861A680F5B00A75B9A; - }; - 13B07F861A680F5B00A75B9A = { - LastSwiftMigration = 1120; - }; - }; - }; - buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "rn0_72" */; - compatibilityVersion = "Xcode 12.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 83CBB9F61A601CBA00E9B192; - productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 13B07F861A680F5B00A75B9A /* rn0_72 */, - 00E356ED1AD99517003FC87E /* rn0_72Tests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 00E356EC1AD99517003FC87E /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13B07F8E1A680F5B00A75B9A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */, - 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "$(SRCROOT)/.xcode.env.local", - "$(SRCROOT)/.xcode.env", - ); - name = "Bundle React Native code and images"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "set -e\n\nexport SOURCEMAP_PATH=\"$(pwd)/build/sourcemaps\"\nmkdir -p $SOURCEMAP_PATH\nexport SOURCEMAP_FILE=\"$SOURCEMAP_PATH/main.jsbundle.map\";\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; - }; - 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rn0_72/Pods-rn0_72-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rn0_72/Pods-rn0_72-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-rn0_72/Pods-rn0_72-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-rn0_72-rn0_72Tests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-rn0_72-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rn0_72-rn0_72Tests/Pods-rn0_72-rn0_72Tests-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rn0_72-rn0_72Tests/Pods-rn0_72-rn0_72Tests-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-rn0_72-rn0_72Tests/Pods-rn0_72-rn0_72Tests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rn0_72/Pods-rn0_72-resources-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rn0_72/Pods-rn0_72-resources-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-rn0_72/Pods-rn0_72-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rn0_72-rn0_72Tests/Pods-rn0_72-rn0_72Tests-resources-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-rn0_72-rn0_72Tests/Pods-rn0_72-rn0_72Tests-resources-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-rn0_72-rn0_72Tests/Pods-rn0_72-rn0_72Tests-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - FD10A7F022414F080027D42C /* Start Packager */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Start Packager"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 00E356EA1AD99517003FC87E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 00E356F31AD99517003FC87E /* rn0_72Tests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13B07F871A680F5B00A75B9A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, - 13B07FC11A68108700A75B9A /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 13B07F861A680F5B00A75B9A /* rn0_72 */; - targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 00E356F61AD99517003FC87E /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5B7EB9410499542E8C5724F5 /* Pods-rn0_72-rn0_72Tests.debug.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = rn0_72Tests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.4; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - "$(inherited)", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.bugsnag.fixtures.reactnative; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/rn0_72.app/rn0_72"; - }; - name = Debug; - }; - 00E356F71AD99517003FC87E /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 89C6BE57DB24E9ADA2F236DE /* Pods-rn0_72-rn0_72Tests.release.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - COPY_PHASE_STRIP = NO; - INFOPLIST_FILE = rn0_72Tests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.4; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - "$(inherited)", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.bugsnag.fixtures.reactnative; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/rn0_72.app/rn0_72"; - }; - name = Release; - }; - 13B07F941A680F5B00A75B9A /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-rn0_72.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = 7W9PZ27Y5F; - ENABLE_BITCODE = YES; - INFOPLIST_FILE = rn0_72/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - MARKETING_VERSION = 1.0; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.bugsnag.fixtures.reactnative; - PRODUCT_NAME = rn0_72; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Debug; - }; - 13B07F951A680F5B00A75B9A /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-rn0_72.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = 7W9PZ27Y5F; - INFOPLIST_FILE = rn0_72/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - MARKETING_VERSION = 1.0; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.bugsnag.fixtures.reactnative; - PRODUCT_NAME = rn0_72; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Release; - }; - 83CBBA201A601CBA00E9B192 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++17"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION, - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.4; - LD_RUNPATH_SEARCH_PATHS = ( - /usr/lib/swift, - "$(inherited)", - ); - LIBRARY_SEARCH_PATHS = ( - "\"$(SDKROOT)/usr/lib/swift\"", - "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", - "\"$(inherited)\"", - ); - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "$(inherited)"; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-DFOLLY_NO_CONFIG", - "-DFOLLY_MOBILE=1", - "-DFOLLY_USE_LIBCPP=1", - ); - OTHER_LDFLAGS = ( - "$(inherited)", - " ", - "-Wl -ld_classic ", - ); - REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 83CBBA211A601CBA00E9B192 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++17"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION, - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.4; - LD_RUNPATH_SEARCH_PATHS = ( - /usr/lib/swift, - "$(inherited)", - ); - LIBRARY_SEARCH_PATHS = ( - "\"$(SDKROOT)/usr/lib/swift\"", - "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", - "\"$(inherited)\"", - ); - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CFLAGS = "$(inherited)"; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-DFOLLY_NO_CONFIG", - "-DFOLLY_MOBILE=1", - "-DFOLLY_USE_LIBCPP=1", - ); - OTHER_LDFLAGS = ( - "$(inherited)", - " ", - "-Wl -ld_classic ", - ); - REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "rn0_72Tests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 00E356F61AD99517003FC87E /* Debug */, - 00E356F71AD99517003FC87E /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "rn0_72" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 13B07F941A680F5B00A75B9A /* Debug */, - 13B07F951A680F5B00A75B9A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "rn0_72" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 83CBBA201A601CBA00E9B192 /* Debug */, - 83CBBA211A601CBA00E9B192 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; -} diff --git a/features/base-fixtures/rn0_72/ios/rn0_72.xcodeproj/xcshareddata/xcschemes/rn0_72.xcscheme b/features/base-fixtures/rn0_72/ios/rn0_72.xcodeproj/xcshareddata/xcschemes/rn0_72.xcscheme deleted file mode 100644 index e0d54e1b..00000000 --- a/features/base-fixtures/rn0_72/ios/rn0_72.xcodeproj/xcshareddata/xcschemes/rn0_72.xcscheme +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/features/base-fixtures/rn0_72/ios/rn0_72.xcworkspace/contents.xcworkspacedata b/features/base-fixtures/rn0_72/ios/rn0_72.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 996d5374..00000000 --- a/features/base-fixtures/rn0_72/ios/rn0_72.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/features/base-fixtures/rn0_72/ios/rn0_72/AppDelegate.h b/features/base-fixtures/rn0_72/ios/rn0_72/AppDelegate.h deleted file mode 100644 index 5d280825..00000000 --- a/features/base-fixtures/rn0_72/ios/rn0_72/AppDelegate.h +++ /dev/null @@ -1,6 +0,0 @@ -#import -#import - -@interface AppDelegate : RCTAppDelegate - -@end diff --git a/features/base-fixtures/rn0_72/ios/rn0_72/AppDelegate.mm b/features/base-fixtures/rn0_72/ios/rn0_72/AppDelegate.mm deleted file mode 100644 index 92baf539..00000000 --- a/features/base-fixtures/rn0_72/ios/rn0_72/AppDelegate.mm +++ /dev/null @@ -1,26 +0,0 @@ -#import "AppDelegate.h" - -#import - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ - self.moduleName = @"rn0_72"; - // You can add your custom initial props in the dictionary below. - // They will be passed down to the ViewController used by React Native. - self.initialProps = @{}; - - return [super application:application didFinishLaunchingWithOptions:launchOptions]; -} - -- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge -{ -#if DEBUG - return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; -#else - return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; -#endif -} - -@end diff --git a/features/base-fixtures/rn0_72/ios/rn0_72/Images.xcassets/AppIcon.appiconset/Contents.json b/features/base-fixtures/rn0_72/ios/rn0_72/Images.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 81213230..00000000 --- a/features/base-fixtures/rn0_72/ios/rn0_72/Images.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "20x20" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "20x20" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "29x29" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "29x29" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "40x40" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "40x40" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "60x60" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "60x60" - }, - { - "idiom" : "ios-marketing", - "scale" : "1x", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/features/base-fixtures/rn0_72/ios/rn0_72/Images.xcassets/Contents.json b/features/base-fixtures/rn0_72/ios/rn0_72/Images.xcassets/Contents.json deleted file mode 100644 index 2d92bd53..00000000 --- a/features/base-fixtures/rn0_72/ios/rn0_72/Images.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/features/base-fixtures/rn0_72/ios/rn0_72/Info.plist b/features/base-fixtures/rn0_72/ios/rn0_72/Info.plist deleted file mode 100644 index 8a912fa6..00000000 --- a/features/base-fixtures/rn0_72/ios/rn0_72/Info.plist +++ /dev/null @@ -1,55 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - rn0_72 - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - $(MARKETING_VERSION) - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - LSRequiresIPhoneOS - - NSAppTransportSecurity - - NSExceptionDomains - - localhost - - NSExceptionAllowsInsecureHTTPLoads - - - - - NSLocationWhenInUseUsageDescription - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIViewControllerBasedStatusBarAppearance - - - diff --git a/features/base-fixtures/rn0_72/ios/rn0_72/LaunchScreen.storyboard b/features/base-fixtures/rn0_72/ios/rn0_72/LaunchScreen.storyboard deleted file mode 100644 index 991a632a..00000000 --- a/features/base-fixtures/rn0_72/ios/rn0_72/LaunchScreen.storyboard +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/features/base-fixtures/rn0_72/ios/rn0_72/main.m b/features/base-fixtures/rn0_72/ios/rn0_72/main.m deleted file mode 100644 index d645c724..00000000 --- a/features/base-fixtures/rn0_72/ios/rn0_72/main.m +++ /dev/null @@ -1,10 +0,0 @@ -#import - -#import "AppDelegate.h" - -int main(int argc, char *argv[]) -{ - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/features/base-fixtures/rn0_72/ios/rn0_72Tests/Info.plist b/features/base-fixtures/rn0_72/ios/rn0_72Tests/Info.plist deleted file mode 100644 index ba72822e..00000000 --- a/features/base-fixtures/rn0_72/ios/rn0_72Tests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/features/base-fixtures/rn0_72/ios/rn0_72Tests/rn0_72Tests.m b/features/base-fixtures/rn0_72/ios/rn0_72Tests/rn0_72Tests.m deleted file mode 100644 index af4a3ca4..00000000 --- a/features/base-fixtures/rn0_72/ios/rn0_72Tests/rn0_72Tests.m +++ /dev/null @@ -1,66 +0,0 @@ -#import -#import - -#import -#import - -#define TIMEOUT_SECONDS 600 -#define TEXT_TO_LOOK_FOR @"Welcome to React" - -@interface rn0_72Tests : XCTestCase - -@end - -@implementation rn0_72Tests - -- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test -{ - if (test(view)) { - return YES; - } - for (UIView *subview in [view subviews]) { - if ([self findSubviewInView:subview matching:test]) { - return YES; - } - } - return NO; -} - -- (void)testRendersWelcomeScreen -{ - UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; - NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; - BOOL foundElement = NO; - - __block NSString *redboxError = nil; -#ifdef DEBUG - RCTSetLogFunction( - ^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { - if (level >= RCTLogLevelError) { - redboxError = message; - } - }); -#endif - - while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { - [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; - [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; - - foundElement = [self findSubviewInView:vc.view - matching:^BOOL(UIView *view) { - if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { - return YES; - } - return NO; - }]; - } - -#ifdef DEBUG - RCTSetLogFunction(RCTDefaultLogFunction); -#endif - - XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); - XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); -} - -@end diff --git a/features/base-fixtures/rn0_72/jest.config.js b/features/base-fixtures/rn0_72/jest.config.js deleted file mode 100644 index 8eb675e9..00000000 --- a/features/base-fixtures/rn0_72/jest.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - preset: 'react-native', -}; diff --git a/features/base-fixtures/rn0_72/metro.config.js b/features/base-fixtures/rn0_72/metro.config.js deleted file mode 100644 index ad8f87b6..00000000 --- a/features/base-fixtures/rn0_72/metro.config.js +++ /dev/null @@ -1,11 +0,0 @@ -const {getDefaultConfig, mergeConfig} = require('@react-native/metro-config'); - -/** - * Metro configuration - * https://facebook.github.io/metro/docs/configuration - * - * @type {import('metro-config').MetroConfig} - */ -const config = {}; - -module.exports = mergeConfig(getDefaultConfig(__dirname), config); diff --git a/features/base-fixtures/rn0_72/package.json b/features/base-fixtures/rn0_72/package.json deleted file mode 100644 index 0555465f..00000000 --- a/features/base-fixtures/rn0_72/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "rn0_72", - "version": "0.0.1", - "private": true, - "scripts": { - "android": "react-native run-android", - "ios": "react-native run-ios", - "lint": "eslint .", - "start": "react-native start", - "test": "jest" - }, - "dependencies": { - "braces": "3.0.3", - "react": "^18.2.0", - "react-native": "^0.72.5" - }, - "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.11", - "@tsconfig/react-native": "^3.0.0", - "@types/react": "^18.0.24", - "@types/react-test-renderer": "^18.0.0", - "babel-jest": "^29.2.1", - "eslint": "^8.19.0", - "jest": "^29.2.1", - "metro-react-native-babel-preset": "0.76.8", - "prettier": "^2.4.1", - "react-test-renderer": "18.2.0", - "typescript": "4.8.4" - }, - "engines": { - "node": ">=16" - } -} diff --git a/features/base-fixtures/rn0_72/tsconfig.json b/features/base-fixtures/rn0_72/tsconfig.json deleted file mode 100644 index 45a6c707..00000000 --- a/features/base-fixtures/rn0_72/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "@tsconfig/react-native/tsconfig.json" -} diff --git a/features/js/js-multiple-maps-nested.feature b/features/js/js-multiple-maps-nested.feature new file mode 100644 index 00000000..a4b89639 --- /dev/null +++ b/features/js/js-multiple-maps-nested.feature @@ -0,0 +1,51 @@ +Feature: Js integration tests multiple nested source maps + + @BuildNestedJS + Scenario: Searches in the dist folder automatically + When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com features/base-fixtures/js/out/ + And I wait to receive 4 sourcemaps + Then the sourcemap is valid for the JS Build API + Then the sourcemaps Content-Type header is valid multipart form-data + And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" + And the sourcemap payload field "appVersion" equals "3.0.0" + And the sourcemap payload field "minifiedUrl" equals "example.com/dir1/file1.js" + And the sourcemap payload field "sourceMap" is valid json + And the sourcemap payload field "minifiedFile" is not empty + And the sourcemap payload field "projectRoot" ends with "base-fixtures/js" + And the sourcemap payload field "overwrite" equals "true" + + And I discard the oldest sourcemap + + Then the sourcemap is valid for the JS Build API + Then the sourcemaps Content-Type header is valid multipart form-data + And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" + And the sourcemap payload field "appVersion" equals "3.0.0" + And the sourcemap payload field "minifiedUrl" equals "example.com/dir2/dir22/file3.js" + And the sourcemap payload field "sourceMap" is valid json + And the sourcemap payload field "minifiedFile" is not empty + And the sourcemap payload field "projectRoot" ends with "base-fixtures/js" + And the sourcemap payload field "overwrite" equals "true" + + And I discard the oldest sourcemap + + Then the sourcemap is valid for the JS Build API + Then the sourcemaps Content-Type header is valid multipart form-data + And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" + And the sourcemap payload field "appVersion" equals "3.0.0" + And the sourcemap payload field "minifiedUrl" equals "example.com/dir2/file2.js" + And the sourcemap payload field "sourceMap" is valid json + And the sourcemap payload field "minifiedFile" is not empty + And the sourcemap payload field "projectRoot" ends with "base-fixtures/js" + And the sourcemap payload field "overwrite" equals "true" + + And I discard the oldest sourcemap + + Then the sourcemap is valid for the JS Build API + Then the sourcemaps Content-Type header is valid multipart form-data + And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" + And the sourcemap payload field "appVersion" equals "3.0.0" + And the sourcemap payload field "minifiedUrl" equals "example.com/index.js" + And the sourcemap payload field "sourceMap" is valid json + And the sourcemap payload field "minifiedFile" is not empty + And the sourcemap payload field "projectRoot" ends with "base-fixtures/js" + And the sourcemap payload field "overwrite" equals "true" diff --git a/features/js/js-multiple-maps.feature b/features/js/js-multiple-maps.feature index a2c3b61f..c1e6c488 100644 --- a/features/js/js-multiple-maps.feature +++ b/features/js/js-multiple-maps.feature @@ -1,7 +1,7 @@ Feature: Js integration tests multiple source maps Scenario: Searches in the dist folder automatically - When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com --project-root=features/js/fixtures/js-multiple-maps features/js/fixtures/js-multiple-maps/ + When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com --project-root=features/js/fixtures/js-multiple-maps features/js/fixtures/js-multiple-maps/dist/ And I wait to receive 2 sourcemaps Then the sourcemap is valid for the JS Build API Then the sourcemaps Content-Type header is valid multipart form-data diff --git a/features/js/js-webpack4.feature b/features/js/js-webpack4.feature index 6244a316..ab958d7d 100644 --- a/features/js/js-webpack4.feature +++ b/features/js/js-webpack4.feature @@ -46,14 +46,14 @@ Feature: Webpack 4 js Integration Tests Then the sourcemaps Content-Type header is valid multipart form-data And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" And the sourcemap payload field "appVersion" equals "1.2.3" - And the sourcemap payload field "minifiedUrl" equals "example.com/main.js" + And the sourcemap payload field "minifiedUrl" equals "example.com/dist/main.js" And the sourcemap payload field "sourceMap" is valid json And the sourcemap payload field "minifiedFile" is not empty And the sourcemap payload field "projectRoot" ends with "features/js/fixtures/js-webpack4" And the sourcemap payload field "overwrite" equals "true" Scenario: Uses the working directory as project root - When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com features/js/fixtures/js-webpack4/ + When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com features/js/fixtures/js-webpack4/dist And I wait to receive 1 sourcemaps Then the sourcemap is valid for the JS Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -62,7 +62,7 @@ Feature: Webpack 4 js Integration Tests And the sourcemap payload field "minifiedUrl" equals "example.com/main.js" And the sourcemap payload field "sourceMap" is valid json And the sourcemap payload field "minifiedFile" is not empty - And the sourcemap payload field "projectRoot" ends with "bugsnag-cli" + And the sourcemap payload field "projectRoot" ends with "js-webpack4" And the sourcemap payload field "overwrite" equals "true" Scenario: Base URL correctly appends the path @@ -82,14 +82,13 @@ Feature: Webpack 4 js Integration Tests When I make the "features/base-fixtures/js-webpack4" And I wait for the build to succeed - When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --bundle-url=example.com --project-root=features/base-fixtures/js-webpack4 features/base-fixtures/js-webpack4/dist/main.js.map + When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com features/base-fixtures/js-webpack4/dist/ And I wait to receive 1 sourcemaps Then the sourcemap is valid for the JS Build API Then the sourcemaps Content-Type header is valid multipart form-data And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" And the sourcemap payload field "appVersion" equals "1.2.3" - And the sourcemap payload field "minifiedUrl" equals "example.com" - And the sourcemap payload field "sourceMap" is valid json + And the sourcemap payload field "minifiedUrl" equals "example.com/main.js" And the sourcemap payload field "minifiedFile" is not empty And the sourcemap payload field "projectRoot" ends with "features/base-fixtures/js-webpack4" And the sourcemap payload field "overwrite" equals "true" \ No newline at end of file diff --git a/features/js/js-webpack5.feature b/features/js/js-webpack5.feature index f5fd4136..bde1732a 100644 --- a/features/js/js-webpack5.feature +++ b/features/js/js-webpack5.feature @@ -46,14 +46,14 @@ Feature: Webpack 5 js Integration Tests Then the sourcemaps Content-Type header is valid multipart form-data And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" And the sourcemap payload field "appVersion" equals "1.2.3" - And the sourcemap payload field "minifiedUrl" equals "example.com/main.js" + And the sourcemap payload field "minifiedUrl" equals "example.com/dist/main.js" And the sourcemap payload field "sourceMap" is valid json And the sourcemap payload field "minifiedFile" is not empty And the sourcemap payload field "projectRoot" ends with "features/js/fixtures/js-webpack5" And the sourcemap payload field "overwrite" equals "true" Scenario: Uses the working directory as project root - When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com features/js/fixtures/js-webpack5/ + When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com features/js/fixtures/js-webpack5/dist And I wait to receive 1 sourcemaps Then the sourcemap is valid for the JS Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -62,7 +62,7 @@ Feature: Webpack 5 js Integration Tests And the sourcemap payload field "minifiedUrl" equals "example.com/main.js" And the sourcemap payload field "sourceMap" is valid json And the sourcemap payload field "minifiedFile" is not empty - And the sourcemap payload field "projectRoot" ends with "bugsnag-cli" + And the sourcemap payload field "projectRoot" ends with "js-webpack5" And the sourcemap payload field "overwrite" equals "true" Scenario: Base URL correctly appends the path @@ -82,13 +82,13 @@ Feature: Webpack 5 js Integration Tests When I make the "features/base-fixtures/js-webpack5" And I wait for the build to succeed - When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --bundle-url=example.com --project-root=features/base-fixtures/js-webpack5 features/base-fixtures/js-webpack5/dist/main.js.map + When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com features/base-fixtures/js-webpack5/dist/ And I wait to receive 1 sourcemaps Then the sourcemap is valid for the JS Build API Then the sourcemaps Content-Type header is valid multipart form-data And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" And the sourcemap payload field "appVersion" equals "1.2.3" - And the sourcemap payload field "minifiedUrl" equals "example.com" + And the sourcemap payload field "minifiedUrl" equals "example.com/main.js" And the sourcemap payload field "sourceMap" is valid json And the sourcemap payload field "minifiedFile" is not empty And the sourcemap payload field "projectRoot" ends with "features/base-fixtures/js-webpack5" diff --git a/features/react-native-android/fixtures/rn0_69/android/app/build/generated/assets/react/release/index.android.bundle b/features/react-native-android/fixtures/rn0_69/android/app/build/generated/assets/react/release/index.android.bundle deleted file mode 100644 index e7461a3a..00000000 Binary files a/features/react-native-android/fixtures/rn0_69/android/app/build/generated/assets/react/release/index.android.bundle and /dev/null differ diff --git a/features/react-native-android/fixtures/rn0_69/android/app/build/generated/sourcemaps/react/release/index.android.bundle.map b/features/react-native-android/fixtures/rn0_69/android/app/build/generated/sourcemaps/react/release/index.android.bundle.map deleted file mode 100644 index 97e7b312..00000000 --- a/features/react-native-android/fixtures/rn0_69/android/app/build/generated/sourcemaps/react/release/index.android.bundle.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["/rn0_72/node_modules/metro-runtime/src/polyfills/require.js","/rn0_72/node_modules/@react-native/js-polyfills/console.js","/rn0_72/node_modules/@react-native/js-polyfills/error-guard.js","/rn0_72/node_modules/@react-native/js-polyfills/Object.es8.js","/rn0_72/index.js","/rn0_72/node_modules/react-native/index.js","/rn0_72/node_modules/react-native/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js","/rn0_72/node_modules/@babel/runtime/helpers/interopRequireDefault.js","/rn0_72/node_modules/react-native/Libraries/EventEmitter/RCTDeviceEventEmitter.js","/rn0_72/node_modules/react-native/Libraries/vendor/emitter/EventEmitter.js","/rn0_72/node_modules/@babel/runtime/helpers/toConsumableArray.js","/rn0_72/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","/rn0_72/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","/rn0_72/node_modules/@babel/runtime/helpers/iterableToArray.js","/rn0_72/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","/rn0_72/node_modules/@babel/runtime/helpers/nonIterableSpread.js","/rn0_72/node_modules/@babel/runtime/helpers/classCallCheck.js","/rn0_72/node_modules/@babel/runtime/helpers/createClass.js","/rn0_72/node_modules/@babel/runtime/helpers/toPropertyKey.js","/rn0_72/node_modules/@babel/runtime/helpers/toPrimitive.js","/rn0_72/node_modules/@babel/runtime/helpers/typeof.js","/rn0_72/node_modules/react-native/Libraries/Utilities/Platform.android.js","/rn0_72/node_modules/react-native/Libraries/Utilities/NativePlatformConstantsAndroid.js","/rn0_72/node_modules/react-native/Libraries/TurboModule/TurboModuleRegistry.js","/rn0_72/node_modules/invariant/browser.js","/rn0_72/node_modules/react-native/Libraries/BatchedBridge/NativeModules.js","/rn0_72/node_modules/@babel/runtime/helpers/slicedToArray.js","/rn0_72/node_modules/@babel/runtime/helpers/arrayWithHoles.js","/rn0_72/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","/rn0_72/node_modules/@babel/runtime/helpers/nonIterableRest.js","/rn0_72/node_modules/react-native/Libraries/BatchedBridge/BatchedBridge.js","/rn0_72/node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js","/rn0_72/node_modules/react-native/Libraries/Performance/Systrace.js","/rn0_72/node_modules/react-native/Libraries/vendor/core/ErrorUtils.js","/rn0_72/node_modules/react-native/Libraries/Utilities/stringifySafe.js","/rn0_72/node_modules/react-native/Libraries/Utilities/defineLazyObjectProperty.js","/rn0_72/node_modules/react-native/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/UIManager.js","/rn0_72/node_modules/nullthrows/nullthrows.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/BridgelessUIManager.js","/rn0_72/node_modules/react-native/Libraries/NativeComponent/NativeComponentRegistryUnstable.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/PaperUIManager.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/NativeUIManager.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/UIManagerProperties.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/FabricUIManager.js","/rn0_72/node_modules/react-native/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js","/rn0_72/node_modules/react-native/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/RendererProxy.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/RendererImplementation.js","/rn0_72/node_modules/react-native/Libraries/Renderer/shims/ReactFabric.js","/rn0_72/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-prod.js","/rn0_72/node_modules/react-native/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js","/rn0_72/node_modules/react-native/Libraries/Core/InitializeCore.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpGlobals.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpDOM.js","/rn0_72/node_modules/react-native/Libraries/DOM/Geometry/DOMRect.js","/rn0_72/node_modules/@babel/runtime/helpers/inherits.js","/rn0_72/node_modules/@babel/runtime/helpers/setPrototypeOf.js","/rn0_72/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","/rn0_72/node_modules/@babel/runtime/helpers/assertThisInitialized.js","/rn0_72/node_modules/@babel/runtime/helpers/getPrototypeOf.js","/rn0_72/node_modules/react-native/Libraries/DOM/Geometry/DOMRectReadOnly.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpPerformance.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/NativePerformance.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/Performance.js","/rn0_72/node_modules/react-native/Libraries/Utilities/warnOnce.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/EventCounts.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/NativePerformanceObserver.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/PerformanceObserver.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/RawPerformanceEntry.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/PerformanceEventTiming.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/PerformanceEntry.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/MemoryInfo.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/ReactNativeStartupTiming.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpErrorHandling.js","/rn0_72/node_modules/react-native/Libraries/Core/ExceptionsManager.js","/rn0_72/node_modules/@babel/runtime/helpers/wrapNativeSuper.js","/rn0_72/node_modules/@babel/runtime/helpers/isNativeFunction.js","/rn0_72/node_modules/@babel/runtime/helpers/construct.js","/rn0_72/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","/rn0_72/node_modules/react-native/Libraries/Core/Devtools/parseErrorStack.js","/rn0_72/node_modules/stacktrace-parser/dist/stack-trace-parser.cjs.js","/rn0_72/node_modules/react-native/Libraries/Core/Devtools/parseHermesStack.js","/rn0_72/node_modules/react-native/Libraries/Core/NativeExceptionsManager.js","/rn0_72/node_modules/react-native/Libraries/Core/polyfillPromise.js","/rn0_72/node_modules/react-native/Libraries/Utilities/PolyfillFunctions.js","/rn0_72/node_modules/react-native/Libraries/Promise.js","/rn0_72/node_modules/promise/setimmediate/finally.js","/rn0_72/node_modules/promise/setimmediate/core.js","/rn0_72/node_modules/promise/setimmediate/es6-extensions.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpRegeneratorRuntime.js","/rn0_72/node_modules/react-native/Libraries/Utilities/FeatureDetection.js","/rn0_72/node_modules/regenerator-runtime/runtime.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpTimers.js","/rn0_72/node_modules/react-native/Libraries/Core/Timers/JSTimers.js","/rn0_72/node_modules/react-native/Libraries/Core/Timers/NativeTiming.js","/rn0_72/node_modules/react-native/Libraries/Core/Timers/immediateShim.js","/rn0_72/node_modules/react-native/Libraries/Core/Timers/queueMicrotask.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpXHR.js","/rn0_72/node_modules/react-native/Libraries/Network/XMLHttpRequest.js","/rn0_72/node_modules/@babel/runtime/helpers/get.js","/rn0_72/node_modules/@babel/runtime/helpers/superPropBase.js","/rn0_72/node_modules/react-native/Libraries/Blob/BlobManager.js","/rn0_72/node_modules/react-native/Libraries/Blob/NativeBlobModule.js","/rn0_72/node_modules/react-native/Libraries/Blob/Blob.js","/rn0_72/node_modules/react-native/Libraries/Blob/BlobRegistry.js","/rn0_72/node_modules/event-target-shim/dist/event-target-shim.js","/rn0_72/node_modules/react-native/Libraries/Utilities/GlobalPerformanceLogger.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/ReactNativeFeatureFlags.js","/rn0_72/node_modules/react-native/Libraries/Utilities/createPerformanceLogger.js","/rn0_72/node_modules/react-native/Libraries/Utilities/infoLog.js","/rn0_72/node_modules/base64-js/index.js","/rn0_72/node_modules/react-native/Libraries/Network/RCTNetworking.android.js","/rn0_72/node_modules/react-native/Libraries/EventEmitter/NativeEventEmitter.js","/rn0_72/node_modules/react-native/Libraries/Network/convertRequestBody.js","/rn0_72/node_modules/react-native/Libraries/Network/FormData.js","/rn0_72/node_modules/react-native/Libraries/Utilities/binaryToBase64.js","/rn0_72/node_modules/react-native/Libraries/Network/NativeNetworkingAndroid.js","/rn0_72/node_modules/react-native/Libraries/Network/fetch.js","/rn0_72/node_modules/whatwg-fetch/dist/fetch.umd.js","/rn0_72/node_modules/react-native/Libraries/WebSocket/WebSocket.js","/rn0_72/node_modules/@babel/runtime/helpers/objectWithoutProperties.js","/rn0_72/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","/rn0_72/node_modules/react-native/Libraries/WebSocket/NativeWebSocketModule.js","/rn0_72/node_modules/react-native/Libraries/WebSocket/WebSocketEvent.js","/rn0_72/node_modules/react-native/Libraries/Blob/File.js","/rn0_72/node_modules/react-native/Libraries/Blob/FileReader.js","/rn0_72/node_modules/react-native/Libraries/Blob/NativeFileReaderModule.js","/rn0_72/node_modules/react-native/Libraries/Blob/URL.js","/rn0_72/node_modules/abort-controller/dist/abort-controller.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpAlert.js","/rn0_72/node_modules/react-native/Libraries/Alert/Alert.js","/rn0_72/node_modules/react-native/Libraries/Alert/RCTAlertManager.android.js","/rn0_72/node_modules/react-native/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpNavigator.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpBatchedBridge.js","/rn0_72/node_modules/react-native/Libraries/HeapCapture/HeapCapture.js","/rn0_72/node_modules/react-native/Libraries/HeapCapture/NativeJSCHeapCapture.js","/rn0_72/node_modules/react-native/Libraries/Performance/SamplingProfiler.js","/rn0_72/node_modules/react-native/Libraries/Performance/NativeJSCSamplingProfiler.js","/rn0_72/node_modules/react-native/Libraries/Utilities/RCTLog.js","/rn0_72/node_modules/react-native/Libraries/EventEmitter/RCTNativeAppEventEmitter.js","/rn0_72/node_modules/react-native/Libraries/Utilities/HMRClientProdShim.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpSegmentFetcher.js","/rn0_72/node_modules/react-native/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/AppRegistry.js","/rn0_72/node_modules/react-native/Libraries/BugReporting/BugReporting.js","/rn0_72/node_modules/react-native/Libraries/NativeModules/specs/NativeRedBox.js","/rn0_72/node_modules/react-native/Libraries/BugReporting/NativeBugReporting.js","/rn0_72/node_modules/react-native/Libraries/BugReporting/dumpReactTree.js","/rn0_72/node_modules/react-native/Libraries/Utilities/SceneTracker.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/HeadlessJsTaskError.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/renderApplication.js","/rn0_72/node_modules/react-native/Libraries/Utilities/PerformanceLoggerContext.js","/rn0_72/node_modules/react/index.js","/rn0_72/node_modules/react/cjs/react.production.min.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/AppContainer.js","/rn0_72/node_modules/react-native/Libraries/Components/View/View.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/flattenStyle.js","/rn0_72/node_modules/react-native/Libraries/Text/TextAncestor.js","/rn0_72/node_modules/react-native/Libraries/Components/View/ViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/NativeComponent/NativeComponentRegistry.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/getNativeComponentAttributes.js","/rn0_72/node_modules/react-native/Libraries/Components/View/ReactNativeStyleAttributes.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/processAspectRatio.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/processColor.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/normalizeColor.js","/rn0_72/node_modules/@react-native/normalize-colors/index.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/PlatformColorValueTypes.android.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/processFontVariant.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/processTransform.js","/rn0_72/node_modules/@babel/runtime/helpers/defineProperty.js","/rn0_72/node_modules/react-native/Libraries/Utilities/differ/sizesDiffer.js","/rn0_72/node_modules/react-native/Libraries/Utilities/differ/matricesDiffer.js","/rn0_72/node_modules/react-native/Libraries/Utilities/differ/pointsDiffer.js","/rn0_72/node_modules/react-native/Libraries/Utilities/differ/insetsDiffer.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/processColorArray.js","/rn0_72/node_modules/react-native/Libraries/Image/resolveAssetSource.js","/rn0_72/node_modules/react-native/Libraries/NativeModules/specs/NativeSourceCode.js","/rn0_72/node_modules/@react-native/assets-registry/registry.js","/rn0_72/node_modules/react-native/Libraries/Image/AssetSourceResolver.js","/rn0_72/node_modules/react-native/Libraries/Image/AssetUtils.js","/rn0_72/node_modules/react-native/Libraries/Utilities/PixelRatio.js","/rn0_72/node_modules/react-native/Libraries/Utilities/Dimensions.js","/rn0_72/node_modules/react-native/Libraries/Utilities/NativeDeviceInfo.js","/rn0_72/node_modules/@react-native/assets-registry/path-support.js","/rn0_72/node_modules/react-native/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js","/rn0_72/node_modules/react-native/Libraries/Utilities/verifyComponentAttributeEquivalence.js","/rn0_72/node_modules/react-native/Libraries/NativeComponent/PlatformBaseViewConfig.js","/rn0_72/node_modules/react-native/Libraries/NativeComponent/BaseViewConfig.android.js","/rn0_72/node_modules/react-native/Libraries/NativeComponent/ViewConfigIgnore.js","/rn0_72/node_modules/react-native/Libraries/NativeComponent/StaticViewConfigValidator.js","/rn0_72/node_modules/react-native/Libraries/NativeComponent/ViewConfig.js","/rn0_72/node_modules/react-native/Libraries/Utilities/codegenNativeCommands.js","/rn0_72/node_modules/react/jsx-runtime.js","/rn0_72/node_modules/react/cjs/react-jsx-runtime.production.min.js","/rn0_72/node_modules/react-native/Libraries/Utilities/AcessibilityMapping.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/StyleSheet.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/RootTag.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/DisplayMode.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/getCachedComponentWithDebugName.js","/rn0_72/node_modules/react-native/Libraries/Utilities/BackHandler.android.js","/rn0_72/node_modules/react-native/Libraries/NativeModules/specs/NativeDeviceEventManager.js","/rn0_72/node_modules/react-native/Libraries/ReactPrivate/ReactNativePrivateInterface.js","/rn0_72/node_modules/react-native/Libraries/EventEmitter/RCTEventEmitter.js","/rn0_72/node_modules/react-native/Libraries/Components/TextInput/TextInputState.js","/rn0_72/node_modules/react-native/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Utilities/differ/deepDiffer.js","/rn0_72/node_modules/react-native/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js","/rn0_72/node_modules/react-native/Libraries/Core/ReactFiberErrorDialog.js","/rn0_72/node_modules/react-native/Libraries/Core/RawEventEmitter.js","/rn0_72/node_modules/react-native/Libraries/Events/CustomEvent.js","/rn0_72/node_modules/react-native/Libraries/Events/EventPolyfill.js","/rn0_72/node_modules/scheduler/index.native.js","/rn0_72/node_modules/scheduler/cjs/scheduler.native.production.min.js","/rn0_72/node_modules/react-native/Libraries/Renderer/shims/ReactNative.js","/rn0_72/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js","/rn0_72/node_modules/react-native/Libraries/Components/ActivityIndicator/ActivityIndicator.js","/rn0_72/node_modules/react-native/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js","/rn0_72/node_modules/react-native/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Utilities/codegenNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/requireNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Renderer/shims/createReactNativeComponentClass.js","/rn0_72/node_modules/react-native/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/Button.js","/rn0_72/node_modules/react-native/Libraries/Text/Text.js","/rn0_72/node_modules/react-native/Libraries/Pressability/PressabilityDebug.js","/rn0_72/node_modules/react-native/Libraries/Pressability/usePressability.js","/rn0_72/node_modules/react-native/Libraries/Pressability/Pressability.js","/rn0_72/node_modules/react-native/Libraries/Components/Sound/SoundManager.js","/rn0_72/node_modules/react-native/Libraries/Components/Sound/NativeSoundManager.js","/rn0_72/node_modules/react-native/Libraries/Pressability/PressabilityPerformanceEventEmitter.js","/rn0_72/node_modules/react-native/Libraries/Pressability/HoverState.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/Rect.js","/rn0_72/node_modules/react-native/Libraries/Text/TextNativeComponent.js","/rn0_72/node_modules/deprecated-react-native-prop-types/index.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedColorPropType.js","/rn0_72/node_modules/deprecated-react-native-prop-types/node_modules/@react-native/normalize-colors/index.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedEdgeInsetsPropType.js","/rn0_72/node_modules/prop-types/index.js","/rn0_72/node_modules/prop-types/factoryWithThrowingShims.js","/rn0_72/node_modules/prop-types/lib/ReactPropTypesSecret.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedImagePropType.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedViewPropTypes.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedViewAccessibility.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedStyleSheetPropType.js","/rn0_72/node_modules/deprecated-react-native-prop-types/deprecatedCreateStrictShapeTypeChecker.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedViewStylePropTypes.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedLayoutPropTypes.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedShadowPropTypesIOS.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedTransformPropTypes.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedImageSourcePropType.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedImageStylePropTypes.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedPointPropType.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedTextInputPropTypes.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedTextPropTypes.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedTextStylePropTypes.js","/rn0_72/node_modules/react-native/Libraries/Components/Touchable/TouchableNativeFeedback.js","/rn0_72/node_modules/react-native/Libraries/Components/Touchable/TouchableOpacity.js","/rn0_72/node_modules/react-native/Libraries/Animated/Animated.js","/rn0_72/node_modules/react-native/Libraries/Animated/AnimatedImplementation.js","/rn0_72/node_modules/react-native/Libraries/Animated/animations/DecayAnimation.js","/rn0_72/node_modules/react-native/Libraries/Animated/NativeAnimatedHelper.js","/rn0_72/node_modules/react-native/Libraries/Animated/NativeAnimatedModule.js","/rn0_72/node_modules/react-native/Libraries/Animated/NativeAnimatedTurboModule.js","/rn0_72/node_modules/react-native/Libraries/Animated/animations/Animation.js","/rn0_72/node_modules/react-native/Libraries/Animated/animations/SpringAnimation.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedColor.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedValue.js","/rn0_72/node_modules/react-native/Libraries/Interaction/InteractionManager.js","/rn0_72/node_modules/react-native/Libraries/Interaction/TaskQueue.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedInterpolation.js","/rn0_72/node_modules/react-native/Libraries/Animated/Easing.js","/rn0_72/node_modules/react-native/Libraries/Animated/bezier.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedWithChildren.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedNode.js","/rn0_72/node_modules/react-native/Libraries/Animated/SpringConfig.js","/rn0_72/node_modules/react-native/Libraries/Animated/animations/TimingAnimation.js","/rn0_72/node_modules/react-native/Libraries/Animated/createAnimatedComponent.js","/rn0_72/node_modules/react-native/Libraries/Utilities/useMergeRefs.js","/rn0_72/node_modules/react-native/Libraries/Animated/useAnimatedProps.js","/rn0_72/node_modules/react-native/Libraries/Utilities/useRefEffect.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedProps.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedStyle.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedTransform.js","/rn0_72/node_modules/react-native/Libraries/Animated/AnimatedEvent.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedValueXY.js","/rn0_72/node_modules/react-native/Libraries/Renderer/public/ReactFabricPublicInstanceUtils.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedAddition.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedDiffClamp.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedDivision.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedModulo.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedMultiplication.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedSubtraction.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedTracking.js","/rn0_72/node_modules/react-native/Libraries/Animated/AnimatedMock.js","/rn0_72/node_modules/react-native/Libraries/Animated/components/AnimatedFlatList.js","/rn0_72/node_modules/react-native/Libraries/Lists/FlatList.js","/rn0_72/node_modules/memoize-one/dist/memoize-one.cjs.js","/rn0_72/node_modules/@react-native/virtualized-lists/index.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/VirtualizeUtils.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/VirtualizedList.js","/rn0_72/node_modules/@react-native/virtualized-lists/Interaction/Batchinator.js","/rn0_72/node_modules/@react-native/virtualized-lists/Utilities/clamp.js","/rn0_72/node_modules/@react-native/virtualized-lists/Utilities/infoLog.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/ChildListCollection.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/FillRateHelper.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/StateSafePureComponent.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/ViewabilityHelper.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/VirtualizedListCellRenderer.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/VirtualizedListContext.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/CellRenderMask.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/VirtualizedSectionList.js","/rn0_72/node_modules/react-native/Libraries/Animated/components/AnimatedImage.js","/rn0_72/node_modules/react-native/Libraries/Image/Image.android.js","/rn0_72/node_modules/@babel/runtime/helpers/asyncToGenerator.js","/rn0_72/node_modules/react-native/Libraries/Image/ImageAnalyticsTagContext.js","/rn0_72/node_modules/react-native/Libraries/Image/ImageInjection.js","/rn0_72/node_modules/react-native/Libraries/Image/ImageViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Image/TextInlineImageNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Image/NativeImageLoaderAndroid.js","/rn0_72/node_modules/react-native/Libraries/Image/ImageSourceUtils.js","/rn0_72/node_modules/react-native/Libraries/Image/ImageUtils.js","/rn0_72/node_modules/react-native/Libraries/Animated/components/AnimatedScrollView.js","/rn0_72/node_modules/react-native/Libraries/Components/RefreshControl/RefreshControl.js","/rn0_72/node_modules/react-native/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/ScrollView.js","/rn0_72/node_modules/react-native/Libraries/Interaction/FrameRateLogger.js","/rn0_72/node_modules/react-native/Libraries/Interaction/NativeFrameRateLogger.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/splitLayoutProps.js","/rn0_72/node_modules/react-native/Libraries/Utilities/dismissKeyboard.js","/rn0_72/node_modules/react-native/Libraries/Components/Keyboard/Keyboard.js","/rn0_72/node_modules/react-native/Libraries/LayoutAnimation/LayoutAnimation.js","/rn0_72/node_modules/react-native/Libraries/Components/Keyboard/NativeKeyboardObserver.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/processDecelerationRate.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/ScrollViewCommands.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/ScrollViewContext.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/ScrollViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/ScrollViewStickyHeader.js","/rn0_72/node_modules/react-native/Libraries/Animated/components/AnimatedSectionList.js","/rn0_72/node_modules/react-native/Libraries/Lists/SectionList.js","/rn0_72/node_modules/react-native/Libraries/Animated/components/AnimatedText.js","/rn0_72/node_modules/react-native/Libraries/Animated/components/AnimatedView.js","/rn0_72/node_modules/react-native/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js","/rn0_72/node_modules/react-native/Libraries/Components/StatusBar/StatusBar.js","/rn0_72/node_modules/react-native/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js","/rn0_72/node_modules/react-native/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js","/rn0_72/node_modules/react-native/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Image/ImageBackground.js","/rn0_72/node_modules/react-native/Libraries/Components/TextInput/InputAccessoryView.js","/rn0_72/node_modules/react-native/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/Keyboard/KeyboardAvoidingView.js","/rn0_72/node_modules/react-native/Libraries/Modal/Modal.js","/rn0_72/node_modules/react-native/Libraries/Modal/ModalInjection.js","/rn0_72/node_modules/react-native/Libraries/Modal/NativeModalManager.js","/rn0_72/node_modules/react-native/Libraries/Modal/RCTModalHostViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/I18nManager.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/NativeI18nManager.js","/rn0_72/node_modules/react-native/Libraries/Components/Pressable/Pressable.js","/rn0_72/node_modules/react-native/Libraries/Components/Pressable/useAndroidRippleForView.js","/rn0_72/node_modules/react-native/Libraries/Components/SafeAreaView/SafeAreaView.js","/rn0_72/node_modules/react-native/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/Switch/Switch.js","/rn0_72/node_modules/react-native/Libraries/Components/Switch/AndroidSwitchNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/Switch/SwitchNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/TextInput/TextInput.js","/rn0_72/node_modules/react-native/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/TextInput/RCTTextInputViewConfig.js","/rn0_72/node_modules/react-native/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/Touchable/Touchable.js","/rn0_72/node_modules/react-native/Libraries/Components/Touchable/BoundingDimensions.js","/rn0_72/node_modules/react-native/Libraries/Components/Touchable/PooledClass.js","/rn0_72/node_modules/react-native/Libraries/Components/Touchable/Position.js","/rn0_72/node_modules/react-native/Libraries/Components/Touchable/TouchableHighlight.js","/rn0_72/node_modules/react-native/Libraries/Components/Touchable/TouchableWithoutFeedback.js","/rn0_72/node_modules/react-native/Libraries/Lists/VirtualizedList.js","/rn0_72/node_modules/react-native/Libraries/Lists/VirtualizedSectionList.js","/rn0_72/node_modules/react-native/Libraries/ActionSheetIOS/ActionSheetIOS.js","/rn0_72/node_modules/react-native/Libraries/ActionSheetIOS/NativeActionSheetManager.js","/rn0_72/node_modules/react-native/Libraries/Utilities/Appearance.js","/rn0_72/node_modules/react-native/Libraries/Utilities/NativeAppearance.js","/rn0_72/node_modules/react-native/Libraries/AppState/AppState.js","/rn0_72/node_modules/react-native/Libraries/Utilities/logError.js","/rn0_72/node_modules/react-native/Libraries/AppState/NativeAppState.js","/rn0_72/node_modules/react-native/Libraries/Components/Clipboard/Clipboard.js","/rn0_72/node_modules/react-native/Libraries/Components/Clipboard/NativeClipboard.js","/rn0_72/node_modules/react-native/Libraries/Utilities/DeviceInfo.js","/rn0_72/node_modules/react-native/Libraries/Utilities/DevSettings.js","/rn0_72/node_modules/react-native/Libraries/NativeModules/specs/NativeDevSettings.js","/rn0_72/node_modules/react-native/Libraries/Linking/Linking.js","/rn0_72/node_modules/react-native/Libraries/Linking/NativeIntentAndroid.js","/rn0_72/node_modules/react-native/Libraries/Linking/NativeLinkingManager.js","/rn0_72/node_modules/react-native/Libraries/LogBox/LogBox.js","/rn0_72/node_modules/react-native/Libraries/Interaction/PanResponder.js","/rn0_72/node_modules/react-native/Libraries/Interaction/TouchHistoryMath.js","/rn0_72/node_modules/react-native/Libraries/PermissionsAndroid/PermissionsAndroid.js","/rn0_72/node_modules/react-native/Libraries/PermissionsAndroid/NativePermissionsAndroid.js","/rn0_72/node_modules/react-native/Libraries/PushNotificationIOS/PushNotificationIOS.js","/rn0_72/node_modules/react-native/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js","/rn0_72/node_modules/react-native/Libraries/Settings/Settings.android.js","/rn0_72/node_modules/react-native/Libraries/Share/Share.js","/rn0_72/node_modules/react-native/Libraries/Share/NativeShareModule.js","/rn0_72/node_modules/react-native/Libraries/Components/ToastAndroid/ToastAndroid.android.js","/rn0_72/node_modules/react-native/Libraries/Components/ToastAndroid/NativeToastAndroid.js","/rn0_72/node_modules/react-native/Libraries/Animated/useAnimatedValue.js","/rn0_72/node_modules/react-native/Libraries/Utilities/useColorScheme.js","/rn0_72/node_modules/use-sync-external-store/shim/index.native.js","/rn0_72/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.native.production.min.js","/rn0_72/node_modules/react-native/Libraries/Utilities/useWindowDimensions.js","/rn0_72/node_modules/react-native/Libraries/UTFSequence.js","/rn0_72/node_modules/react-native/Libraries/Vibration/Vibration.js","/rn0_72/node_modules/react-native/Libraries/Vibration/NativeVibration.js","/rn0_72/node_modules/react-native/Libraries/YellowBox/YellowBoxDeprecated.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/PlatformColorValueTypesIOS.js","/rn0_72/App.tsx","/rn0_72/node_modules/react-native/Libraries/NewAppScreen/index.js","/rn0_72/node_modules/react-native/Libraries/NewAppScreen/components/Colors.js","/rn0_72/node_modules/react-native/Libraries/NewAppScreen/components/DebugInstructions.js","/rn0_72/node_modules/react-native/Libraries/NewAppScreen/components/Header.js","/rn0_72/node_modules/react-native/Libraries/NewAppScreen/components/HermesBadge.js","/rn0_72/node_modules/react-native/Libraries/NewAppScreen/components/logo.png","/rn0_72/node_modules/react-native/Libraries/Image/AssetRegistry.js","/rn0_72/node_modules/react-native/Libraries/NewAppScreen/components/LearnMoreLinks.js","/rn0_72/node_modules/react-native/Libraries/Core/Devtools/openURLInBrowser.js","/rn0_72/node_modules/react-native/Libraries/Core/Devtools/getDevServer.js","/rn0_72/node_modules/react-native/Libraries/NewAppScreen/components/ReloadInstructions.js"],"names":["window","global","globalThis","__METRO_GLOBAL_PREFIX__","Map","Object","modules","EMPTY","module","guardedLoadModule","metroRequire","exports","hasOwnProperty","inGuard","loadModuleImplementation","ID_MASK_SHIFT","moduleId","LOCAL_ID_MASK","value","moduleDefinersBySegmentID","definingSegmentByModuleID","segmentId","unpackModuleId","unknownModuleError","metroImportDefault","metroImportAll","Error","console","LOG_LEVELS","Array","level","INSPECTOR_LEVELS","INSPECTOR_FRAMES_TO_SKIP","groupStack","groupFormat","inspect","element","OBJECT_COLUMN_NAME","rows","columnWidths","stringRows","space","repeat","cell","Math","msg","GROUP_OPEN","GROUP_PAD","GROUP_CLOSE","stylizeNoColor","formatValue","hash","formatPrimitive","arrayToHash","isError","isFunction","isRegExp","isDate","isArray","RegExp","Date","formatError","formatArray","reduceToSingleString","braces","formatProperty","ctx","recurseTimes","visibleKeys","array","isUndefined","isString","isNumber","isBoolean","isNull","JSON","String","output","name","base","numLinesEst","prev","arg","isObject","objectToString","e","log","_globalHandler","_inGuard","ErrorUtils","fun","context","guardName","TypeError","AppRegistry","appName","App","require","_dependencyMap","_$$_REQUIRE","Platform","Promise","NativeAccessibilityManagerIOS","NativeAccessibilityInfoAndroid","EventNames","deviceEventName","RCTDeviceEventEmitter","legacySendAccessibilityEvent","sendAccessibilityEvent","originalTimeout","obj","EventEmitter","Set","_createClass2","_classCallCheck2","allocate","registration","registrations","_len","_key","_toConsumableArray2","Symbol","instance","descriptor","_defineProperties","hint","Number","_typeof","NativePlatformConstantsAndroid","_getRequireWildcardCache","hasPropertyDescriptor","WeakMap","cacheNodeInterop","nodeInterop","cacheBabelInterop","turboModuleProxy","requireModule","invariant","args","argIndex","bridgeConfig","NativeModules","methods","promiseMethods","arrayContains","syncMethods","isPromise","isSync","genMethod","moduleID","constants","genModule","info","methodID","resolve","reject","updateErrorWithErrorData","enqueueingFrameError","hasErrorCallback","hasSuccessCallback","type","errorData","defineLazyObjectProperty","loadModule","MessageQueue","_this","method","_this2","cbID","queue","_this3","getValue","onFail","onSucc","now","DebuggerInternal","isSuccess","Boolean","TRACE_TAG_REACT_APPS","isEnabled","_asyncCookie","_limits$maxDepth","_limits$maxStringLimi","_limits$maxArrayLimit","_limits$maxObjectKeys","stack","maxDepth","maxObjectKeysLimit","keys","maxArrayLimit","maxStringLimit","replacer","valueSet","setValue","get","object","enumerable","writable","UIManager","reactTag","isFabricReactTag","UIManagerImpl","nullthrows","getFabricUIManager","callback","message","errorMessageForMethod","unstable_hasComponent","componentNameToExists","NativeUIManager","getConstants","UIManagerJS","isNativeUIManagerConstantsSet","NativeUIManagerConstants","viewManagerConfigs","triedLoadingConfig","lazifyViewManagerConfig","viewConfig","viewManager","commands","index","getViewManagerConfig","viewManagerName","key","BatchedBridge","namesToPlugins","pluginName$jscomp$inline_225","isOrderingDirty$jscomp$inline_224","ResponderEventPlugin","nativeFabricUIManager","registerEventHandler","setTimeout","clearTimeout","emptyContextObject","NO_CONTEXT","readContext","mountEffect","mountState","updateReducer","rerenderReducer","WeakSet","Infinity","devToolsConfig$jscomp$inline_938","__REACT_DEVTOOLS_GLOBAL_HOOK__","invokeGuardedCallbackImpl","reporter","invokeGuardedCallback","hasError","caughtError","hasRethrowError","event","getNodeFromInstance","invokeGuardedCallbackAndCatchFirstError","isArrayImpl","dispatchListener","dispatchConfig","functionThatReturnsTrue","functionThatReturnsFalse","createOrGetPooledEvent","releasePooledEvent","touch","getTouchIdentifier","touchBank","touchRecord","timestampForTouch","touchHistory","arr","responderInst","inst","getParent","getFiberCurrentPropsFromNode","getListener","accumulateInto","listener","targetInst","traverseTwoPhase","accumulateDirectionalDispatches","eventPluginOrder","plugins","pluginName","eventNameDispatchConfigs","publishRegistrationName","phasedRegistrationNames","eventName$jscomp$0","registrationNameModules","registrationName","requestedPhaseIsCapture","stateNode","mangledImperativeRegistrationName","listeners","listenerObj","getListeners","accumulateListenersAndInstances","traverseTwoPhase$1","accumulateDirectionalDispatches$1","MAYBE_ITERATOR_SYMBOL","REACT_FRAGMENT_TYPE","REACT_PORTAL_TYPE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_CONTEXT_TYPE","REACT_PROVIDER_TYPE","REACT_FORWARD_REF_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","getComponentNameFromType","innerType","fiber","node","getNearestMountedFiber","alternate","assertIsMounted","a","findCurrentFiberUsingSlowPath","findCurrentHostFiberImpl","deepDifferOptions","removedKeyCount","removedKeys","restoreDeletedValuesInNestedArray","nextProp","prevProp","clearNestedProperty","addNestedProperty","diffProperties","diffNestedProperty","emptyObject","defaultDiffer","updatePayload","undefined","isInsideEventHandler","batchedUpdatesImpl","dispatchListeners","executeDispatch","batchedUpdates","topLevelType","nativeEvent","eventTarget","possiblePlugin","target","eventQueue","forEachAccumulated","executeDispatchesAndReleaseTopLevel","rethrowError","injectedHook","rendererID","root","LN2","lanes","pendingLanes","getHighestPriorityLanes","nonIdlePendingLanes","wipLanes","nextLanes","pingedLanes","clz32","currentTime","nextTransitionLane","lane","nextReactTag","createNode","cloneNodeWithNewProps","fn","describeComponentFrame","valueStack","pop","didPerformWorkStackCursor","contextStackCursor","push","contextKey","getComponentNameFromFiber","assign","processChildContext","didChange","previousContext","x","y","isFlushingSyncQueue","syncQueue","currentUpdatePriority","i","flushSyncCallbacks","treeForkProvider","forkStack","forkStackIndex","treeContextProvider","idStack","idStackIndex","objectIs","describeFunctionComponentFrame","valueCursor","parent","workInProgress","lastFullyObservedContext","lastContextDependency","currentlyRenderingFiber","concurrentQueues","pushConcurrentUpdateQueue","markUpdateLaneFromFiberToRoot","executionContext","markRootEntangled","pendingQueue","renderLanes","workInProgressRootSkippedLanes","ctor","shallowEqual","isContextProvider","getMaskedContext","classComponentUpdater","isLegacyContextConsumer","emptyRefsObject","initializeUpdateQueue","applyDerivedStateFromProps","processUpdateQueue","resolvedInst","refs","stringRef","shouldTrackSideEffects","deleteChild","createWorkInProgress","newIndex","useFiber","createFiberFromText","resolveLazy","createFiberFromTypeAndProps","coerceRef","updateFragment","portal","createFiberFromPortal","createFiberFromFragment","REACT_ELEMENT_TYPE","getIteratorFn","throwOnInvalidObjectType","createChild","updateSlot","newChild","updatePortal","updateElement","updateTextNode","existingChildren","updateFromMap","placeChild","oldFiber","mapRemainingChildren","deleteRemainingChildren","returnFiber","placeSingleChild","reconcileChildrenIterator","reconcileChildrenArray","reconcileChildFibers","rootInstanceStackCursor","contextFiberStackCursor","contextStackCursor$1","requiredContext","shim$1","workInProgressSources","ReactCurrentDispatcher$1","HooksDispatcherOnUpdate","HooksDispatcherOnMount","didScheduleRenderPhaseUpdateDuringThisPass","HooksDispatcherOnRerender","ContextOnlyDispatcher","currentHook","workInProgressHook","currentlyRenderingFiber$1","updateWorkInProgressHook","update","snapshotChanged","updateEffect","subscribeToStore","pushEffect","updateStoreInstance","workInProgressRoot","pushStoreConsistencyCheck","checkIfSnapshotChanged","forceStoreRerender","scheduleUpdateOnFiber","mountWorkInProgressHook","basicStateReducer","dispatchSetState","areHookInputsEqual","mountEffectImpl","updateEffectImpl","ref","imperativeHandleEffect","claimNextTransitionLane","hook","ReactCurrentBatchConfig$1","requestUpdateLane","isRenderPhaseUpdate","enqueueConcurrentHookUpdate","requestEventTime","entangleTransitionUpdate","enqueueRenderPhaseUpdate","describeFiber","createUpdate","hasUncaughtError","error","logCapturedError","errorInfo","getDerivedStateFromError","legacyErrorBoundariesThatAlreadyFailed","PossiblyWeakMap","threadIDs","pingSuspendedRoot","mountChildFibers","prepareToReadContext","renderWithHooks","didReceiveUpdate","bailoutOnAlreadyFinishedWork","reconcileChildren","current","shouldConstruct","updateSimpleMemoComponent","updateFunctionComponent","prevState","subtreeRenderLanesCursor","subtreeRenderLanes","pushContextProvider","cloneUpdateQueue","resolveDefaultProps","oldProps","oldState","callComponentWillReceiveProps","hasForceUpdate","checkShouldComponentUpdate","getDerivedStateFromProps","hasNewLifecycles","oldContext","resetSuspendedCurrentOnMountInLegacyMode","constructClassInstance","mountClassInstance","finishClassComponent","markRef","hasContext","invalidateContextProvider","ReactCurrentOwner$1","didCaptureError","pushTopLevelContextObject","pushHostContainer","suspenseStackCursor","suspenseContext","didSuspend","mountSuspenseOffscreenState","SUSPENDED_MARKER","updateDehydratedSuspenseComponent","showFallback","mountSuspensePrimaryChildren","nextProps","createFiberFromOffscreen","hydrationErrors","renderDidSuspendDelayIfPossible","createCapturedValue","retrySuspenseComponentWithoutHydrating","scheduleContextWorkOnParentPath","scheduleSuspenseWorkOnFiber","initSuspenseListRenderState","findFirstSuspended","updateOffscreenComponent","updateSuspenseListComponent","updateSuspenseComponent","pushHostContext","pushHostRootContext","completedWork","appendChildNodeToSet","appendAllChildrenToContainer","needsVisibilityToggle","cloneHiddenInstance","hasRenderedATailFallback","child$63","popTreeContext","popRenderLanes","bubbleProperties","workInProgressRootRenderTargetTime","cutOffTailIfNeeded","workInProgressRootExitStatus","newProps","popContext","popProvider","popHostContainer","updateHostContainer","queueRecoverableErrors","createTextInstance","updateHostText$1","popHostContext","getViewConfigForType","ReactFabricHostComponent","appendAllChildren","updateHostComponent$1","resetWorkInProgressVersions","captureCommitPhaseError","nextEffect","shouldFireAfterActiveInstanceBlur","safelyCallDestroy","effect","detachFiberAfterEffects","commitDeletionEffectsOnFiber","recursivelyTraverseDeletionEffects","safelyDetachRef","_effect","createChildNodeSet","PossiblyWeakSet","resolveRetryWakeable","finishedWork","retryCache","parentFiber","commitMutationEffectsOnFiber","recursivelyTraverseMutationEffects","commitReconciliationEffects","flags","attachSuspenseRetryListeners","commitHookEffectListUnmount","commitHookEffectListMount","firstChild","commitUpdateQueue","currentEventTime","workInProgressRootRenderLanes","ReactCurrentBatchConfig","fabricGetCurrentEventPriority","FabricDiscretePriority","currentEventTransitionLane","nestedUpdateCount","markRootUpdated","workInProgressRootInterleavedUpdatedLanes","markRootSuspended$1","ensureRootIsScheduled","includesLegacySyncCallbacks","computeExpirationTime","expirationTime","getNextLanes","suspendedLanes","lanesToEventPriority","scheduleCallback$1","performConcurrentWorkOnRoot","performSyncWorkOnRoot","flushPassiveEffects","pushDispatcher","prepareFreshStack","workLoopConcurrent","resetContextDependencies","ReactCurrentDispatcher$2","handleError","renderRootSync","getLanesToRetrySynchronouslyOnError","recoverFromConcurrentError","isRenderConsistentWithExternalStores","workInProgressRootFatalError","commitRoot","workInProgressRootRecoverableErrors","workInProgressTransitions","index$4","ceil","scheduleTimeout","globalMostRecentFallbackTime","prevExecutionContext","workInProgressRootConcurrentErrors","workInProgressRootPingedLanes","cancelTimeout","didScheduleRenderPhaseUpdate","ReactCurrentOwner$2","sourceFiber$jscomp$0","currentSource","b","thrownValue","createCapturedValueAtFiber","createClassErrorUpdate","enqueueCapturedUpdate","createRootErrorUpdate","attachPingListener","enqueueUpdate","suspenseBoundary","completeUnitOfWork","workLoopSync","performUnitOfWork","beginWork$1","unwindWork","completeWork","ReactCurrentBatchConfig$2","commitRootImpl","rootWithPendingPassiveEffects","transitions","markRootFinished","rootDoesHavePassiveEffects","commitBeforeMutationEffects","commitLayoutEffects","onCommitRoot","pendingPassiveEffectsLanes","remainingLanes","rootWithNestedUpdates","firstUncaughtError","child","deletions","captureCommitPhaseErrorOnRoot","boundaryFiber","nextRetryLane","retryTimedOutBoundary","FiberNode","createFiber","REACT_OFFSCREEN_TYPE","mode","createLaneMap","findCurrentHostFiber","entangleTransitions","findHostInstance","componentOrHandle","addEventPoolingTo","Super","instrumentationCallback","isMoveish","isStartish","recordTouchEnd","recordTouchStart","recordTouchMove","trackedTouchCount","ResponderTouchHistoryStore","eventTypes","depthA","tempA","ResponderSyntheticEvent","JSCompiler_temp","accumulateTwoPhaseDispatchesSingle","accumulateTwoPhaseDispatchesSingleSkipTarget","shouldSetEventType","accumulateDirectDispatchesSingle","executeDirectDispatch","accumulate","changeResponder","getInstanceFromNode","customBubblingEventTypes","customDirectEventTypes","SyntheticEvent","bubbleDispatchConfig","accumulateDirectDispatchesSingle$1","accumulateTwoPhaseDispatchesSingle$1","from","fromOrTo","blockNativeResponder","to","fabricMeasure","mountSafeCallback_NOT_REALLY_SAFE","fabricMeasureInWindow","relativeToNativeNode","fabricMeasureLayout","_setNativeProps","optionsObj","eventListeners","capture","dispatchReducerAction","startTransition","globalClientIdCounter","updateDeferredValueImpl","appendChildNode","hadNoMutationsEffects","completeRoot","cloneNodeWithNewChildren","cloneNodeWithNewChildrenAndProps","cloneNode","oldText","attemptEarlyBailoutIfNoScheduledUpdate","updateMemoComponent","updateForwardRef","updateClassComponent","resolveLazyComponentTag","createPortal","roots","concurrentRoot","FiberRootNode","onRecoverableError","updateContainer","containerTag","DOMRect","DOMRectReadOnly","_isNativeReflectConstruct","_getPrototypeOf2","Derived","hasNativeReflectConstruct","Reflect","_possibleConstructorReturn2","_inherits2","_createSuper","_super","superClass","_setPrototypeOf","ReferenceError","_getPrototypeOf","o","castToNumber","NativePerformance","Performance","PerformanceEntry","warnOnce","PerformanceMark","markOptions","getCurrentTimeStamp","PerformanceMeasure","_super2","measureOptions","EventCounts","MemoryInfo","ReactNativeStartupTiming","warnNoNativePerformance","NativePerformanceObserver","warnNoNativePerformanceObserver","RawPerformanceEntryTypeValues","rawToPerformanceEntry","performanceEntryTypeToRaw","entryType","warnedKeys","cachedEventCounts","getCachedEventCounts","registeredObservers","_slicedToArray2","durationThreshold","union","v","PerformanceObserverEntryList","entry","entryResult","entries","observer","droppedEntriesCount","observerConfig","PerformanceObserver","currentEntryTypes","isOnPerformanceEntryCallbackSet","onPerformanceEntry","difference","observerCountPerEntryType","applyDurationThresholds","numberOfObserversForThisType","rawToPerformanceEntryType","PerformanceEventTiming","userExceptionDecorator","inUserExceptionDecorator","exceptionID","namePrefix","preprocessException","decoratedExtraDataKey","SyntheticError","reportException","inExceptionHandler","stringifySafe","reactConsoleErrorHandler","_wrapNativeSuper","_cache","Class","Function","_construct","location","convertHermesStack","frame","parseChrome","parseWinjs","parseGecko","parseNode","parseJSC","chromeRe","parts","chromeEvalRe","UNKNOWN_FUNCTION","isNative","winjsRe","geckoRe","geckoEvalRe","javaScriptCoreRe","nodeRe","sourceUrl","RE_FRAME","RE_SKIPPED","asFrame","isInternalBytecodeSourceUrl","parseLine","lastMessageLine","NativeModule","ExceptionsManager","_ref$configurable","polyfillObjectProperty","f","err","IS_ERROR","noop","doResolve","handle","self","Handler","onFulfilled","onRejected","handleResolved","setImmediate","deferred","tryCallOne","LAST_ERROR","getThen","newValue","finale","tryCallTwo","done","promise","safeThen","item","onSettledFulfill","onSettledReject","AggregateError","valuePromise","EMPTYSTRING","ZERO","FALSE","TRUE","UNDEFINED","NULL","ex","iterableToArray","res","val","remaining","mapAllSettled","values","getAggregateError","hasResolved","rejectionReasons","promises","resolveOnce","rejectionCheck","con","isNativeFunction","$Symbol","define","iteratorSymbol","getProto","hasOwn","Generator","defineProperty","Gp","Context","outerFn","tryLocsList","makeInvokeMethod","prototype","tryCatch","generator","PromiseImpl","invoke","result","previousPromise","GenStateSuspendedStart","state","GenStateExecuting","GenStateCompleted","maybeInvokeDelegate","innerFn","GenStateSuspendedYield","ContinueSentinel","doneResult","pushTryEntry","isNaN","iterable","next","GeneratorFunction","GeneratorFunctionPrototype","toStringTagSymbol","AsyncIterator","wrap","iter","resetTryEntry","record","exception","finallyEntry","_global$HermesInterna","_global$HermesInterna2","hasNativePromise","NativeTiming","JSTimers","timerIDs","GUID","_getFreeIndex","callbacks","types","_clearIndex","errors","FRAME_DURATION","frameTime","reactNativeMicrotasks","_callTimer","deleteTimer","_allocateCallback","createTimer","duration","func","_len2","_key2","_len3","_key3","requestIdleCallbacks","setSendIdleEvents","options","timeout","id","requestIdleCallbackTimeouts","_freeCallback","timersToCall","_callReactNativeMicrotasksPass","hasEmittedTimeDriftWarning","GUIID","clearedImmediates","resolvedPromise","XMLHttpRequestEventTarget","XMLHttpRequest","SUPPORTED_RESPONSE_TYPES","responseType","responseURL","responseHeaders","total","sortedHeaders","header","headers","_get2","_get","arguments","NativeBlobModule","c","r","BlobManager","uuidv4","ArrayBuffer","part","acc","encodeURI","createBlobCollector","Blob","end","registry","Event","wrappers","EventTarget","defineEventAttribute","privateData","retv","defineRedirectDescriptor","pd","defineCallDescriptor","isFunc","BaseEvent","defineWrapper","getWrapper","listenersMap","eventName","ATTRIBUTE","defineEventAttributeDescriptor","defineCustomEventTarget","setCancelFlag","optionsIsObj","BUBBLE","CAPTURE","wrapEvent","setPassiveListener","isStopped","setEventPhase","setCurrentTarget","createPerformanceLogger","ReactNativeFeatureFlags","PerformanceLogger","isLoggingForWebPerformance","startTime","endTime","performance","getCurrentTimestamp","_cookies","Systrace","timespan","Uint8Array","lookup","revLookup","len","validLen","getLens","Arr","_byteLength","placeHoldersLen","tmp","num","tripletToBase64","uint8","encodeChunk","NativeEventEmitter","_requestId","RCTNetworking","NativeNetworkingAndroid","convertRequestBody","generateRequestId","convertHeadersMapToArray","nativeModule","subscription","eventType","body","FormData","data","fetch","Headers","Request","Response","support","DataView","iterator","items","reader","FileReader","fileReaderReady","URLSearchParams","isDataView","isArrayBufferView","bufferClone","consumed","readBlobAsArrayBuffer","readArrayBufferAsText","readBlobAsText","decode","input","normalizeMethod","reQueryString","form","decodeURIComponent","init","xhr","url","abortXhr","request","parseHeaders","normalizeValue","viewClasses","normalizeName","oldValue","iteratorFor","redirectStatuses","RangeError","WebSocket","_ref2$headers","_objectWithoutProperties2","_excluded","NativeWebSocketModule","nextWebSocketId","binaryToBase64","base64","WebSocketEvent","File","NativeFileReaderModule","toByteArray","_this4","_Symbol$iterator","params","encodeURIComponent","last","URL","validateBaseUrl","baseUrl","BLOB_URL_PREFIX","AbortSignal","abortedFlags","signals","controller","AbortController","createAbortSignal","getSignal","abortSignal","Alert","title","buttons","buttonNeutral","buttonNegative","buttonPositive","RCTAlertManager","cancelButtonKey","destructiveButtonKey","preferredButtonKey","callbackOrButtons","btn","cb","NativeDialogManagerAndroid","emptyCallback","NativeJSCHeapCapture","warningHandler","RCTLog","levelsMap","appConfig","runnables","sections","renderApplication","componentProviderInstrumentationHook","componentProvider","scopedPerformanceLogger","wrapperComponentProvider","showArchitectureIndicator","appKey","coerceDisplayMode","infoLog","BugReporting","runCount","SceneTracker","unmountComponentAtNodeAndRemoveContainer","taskProviders","taskCancelProviders","NativeHeadlessJsTaskSupport","taskId","HeadlessJsTaskError","reason","defaultExtras","source","NativeBugReporting","NativeRedBox","getReactTree","_listeners","_activeScene","GlobalPerformanceLogger","_PerformanceLoggerContext","_AppContainer","initialProps","React","DisplayMode","displayMode","useConcurrentRoot","fabric","Renderer","useContext","PerformanceLoggerContext","z","D","B","L","J","m","l","K","escape","n","d","I","A","Q","R","O","N","P","S","C","u","t","M","T","V","U","StyleSheet","AppContainer","_View","styles","createRootTag","ariaLabelledBy","ariaBusy","accessibilityState","ariaChecked","ariaDisabled","ariaExpanded","ariaSelected","ariaValueMax","accessibilityValue","ariaValueMin","ariaValueNow","ariaValueText","flattenStyle","style","_TextAncestor","_ViewNativeComponent","ariaLive","ariaLabel","tabIndex","role","getAccessibilityRoleFromRole","ariaHidden","codegenNativeCommands","__INTERNAL_VIEW_CONFIG","getRuntimeConfig","ReactNativeViewConfigRegistry","native","createViewConfig","viewConfigProvider","getNativeComponentAttributes","verifyComponentAttributeEquivalence","StaticViewConfigValidator","hasNativeViewConfig","getDifferForType","getProcessorForType","diff","process","attachDefaultEventTypes","merge","processColor","processAspectRatio","sizesDiffer","processTransform","processFontVariant","normalizedColor","_normalizeColor","getMatchers","normalizeKeyword","hwbToRgb","parse360","parsePercentage","hslToRgb","parse1","parseInt","match","parse255","color","q","p","hue2rgb","h","g","w","red","green","blue","gray","cachedMatchers","call","commaSeparatedCall","callWithSlashSeparator","parseFloat","int","_getKeyAndValueFromCSSTransform","one","dummySize","two","defaultedOne","dummyPoint","dummyInsets","colors","processColorElement","TRANSPARENT","_sourceCodeScriptURL","_serverURL","getSourceCodeScriptURL","sourceCodeScriptURL","scriptURL","_scriptURL","_coerceLocalScriptURL","getDevServerURL","getScriptURL","_customSourceTransformer","assets","assetId","scale","assetDir","drawableFolder","AssetSourceResolver","getScaledAssetPath","path","getAssetPathInDrawableFolder","PixelRatio","scales","cacheBreaker","layoutSize","NativeDeviceInfo","Dimensions","dimensions","windowPhysicalPixels","screenPhysicalPixels","dimensionsInitialized","eventEmitter","androidScaleSuffix","drawableFileTypes","getAndroidAssetSuffix","getBasePath","basePath","viewConfigCallbacks","viewConfigs","processEventTypes","lefthandObjectDiff","IGNORED_KEYS","PlatformBaseViewConfig","propName","BaseViewConfig","DynamicallyInjectedByGestureHandler","ReactNativeStyleAttributes","ignoredViewConfigProps","accumulateDifferences","ifObject","isIgnored","composeIndexers","maybeA","commandObj","command","k","style1","cache","_backPressSubscriptions","BackHandler","NativeDeviceEventManager","handler","currentlyFocusedInputRef","focusInput","AndroidTextInputCommands","blurInput","inputs","deepDiffer","logListeners","errorValue","handleException","EventPolyfill","CustomEvent","eventInitDict","navigator","MessageChannel","nativeRuntimeScheduler","H","F","G","X","pluginName$jscomp$inline_231","isOrderingDirty$jscomp$inline_230","getInstanceFromTag","devToolsConfig$jscomp$inline_979","unmountComponentAtNode","instanceCache","nativeEventParam","EMPTY_NATIVE_EVENT","tag","instanceProps","recursivelyUncacheFiberNode","shim","getStackByFiberInDevAndProd","allocateTag","ReactNativeFiberHostComponent","finalizeInitialChildren","isHostParent","insertOrAppendPlacementNodeIntoContainer","insertOrAppendPlacementNode","hostParent","hostParentIsContainer","updatePayload$jscomp$0","getHostSibling","JSCompiler_inline_result","index$5","_receiveRootNodeIDEvent","UPDATE_SIGNAL","_ref$animating","_ref$color","_ref$hidesWhenStopped","_ref$size","PlatformActivityIndicator","_ref$styleAttr","_ref$indeterminate","_ProgressBarAndroidNativeComponent","codegenNativeComponent","requireNativeComponent","uiViewClassName","register","Button","disabled","TouchableOpacity","TouchableNativeFeedback","importantForAccessibility","_Text","useState","restProps","_disabled","onPress","onLongPress","onStartShouldSetResponder","useLazyInitialization","useMemo","initialized","pressRetentionOffset","onPressIn","onPressOut","onResponderTerminationRequest","suppressHighlighting","usePressability","eventHandlers","onResponderGrant","onResponderMove","onResponderRelease","onResponderTerminate","TextAncestor","accessible","userSelectToSelectableMap","verticalAlignToTextAlignVerticalMap","props","hasTextAncestor","ellipsizeMode","allowFontScaling","isPressable","setHighlighted","useRef","Pressability","useEffect","pressability","config","delay","signal","pageY","pageX","onStartShouldSetResponder_DEPRECATED","normalizeDelay","DEFAULT_LONG_PRESS_DELAY_MS","delayLongPress","getTouchFromPressEvent","longPressDeactivationDistance","onResponderTerminationRequest_DEPRECATED","onHoverIn","convertPointerEventToMouseEvent","onHoverOut","isHoverEnabled","PressabilityPerformanceEventEmitter","Transitions","nextState","isTerminalSignal","isActivationSignal","isPressInSignal","isActiveSignal","SoundManager","minPressDuration","normalizeRect","pressRectOffset","DEFAULT_PRESS_RECT_OFFSETS","NativeSoundManager","document","lastTouchTimestamp","HOVER_THRESHOLD_MS","createSquare","createReactNativeComponentClass","textViewConfig","virtualTextViewConfig","propFullName","emptyFunctionWithReset","emptyFunction","shapePropType","shapeTypes","checkType","findHostInstance_DEPRECATED","Commands","locationX","locationY","getBackgroundProp","processedColor","useForeground","Animated","Easing","_Animated","AnimatedImplementation","AnimatedMock","AnimatedValue","AnimatedValueXY","AnimatedColor","AnimatedInterpolation","AnimatedNode","createAnimatedComponent","attachNativeEvent","AnimatedEvent","AnimatedAddition","AnimatedSubtraction","AnimatedDivision","AnimatedMultiplication","AnimatedModulo","AnimatedDiffClamp","parallel","maybeVectorAnim","spring","_combineCallbacks","configuration","SpringAnimation","AnimatedTracking","start","timing","TimingAnimation","decay","DecayAnimation","animations","onComplete","doneCount","hasEnded","idx","stopTogether","sequence","time","_ref$iterations","_ref$resetBeforeItera","animation","iterations","isFinished","iterationsSoFar","resetBeforeIteration","restart","Animation","NativeAnimatedHelper","requestAnimationFrame","NativeAnimatedNonTurboModule","NativeAnimatedTurboModule","NativeAnimatedModule","useSingleOpBatching","SUPPORTED_COLOR_STYLES","eventListenerGetValueCallbacks","eventListenerAnimationFinishedCallbacks","SUPPORTED_STYLES","SUPPORTED_TRANSFORMS","SUPPORTED_INTERPOLATION_PARAMS","isSupportedTransformProp","isSupportedStyleProp","isSupportedInterpolationParam","__nativeAnimatedNodeTagCount","__nativeAnimationIdCount","_warnedMissingNativeAnimated","degrees","nativeOps","API","waitingForQueuedOperations","flushQueueTimeout","clearImmediate","singleOpQueue","globalEventEmitterGetValueListener","globalEventEmitterAnimationFinishedListener","setupGlobalEventEmitterListeners","queueOperations","nativeEventEmitter","onEnd","startNativeAnimationNextId","SpringConfig","previousAnimation","animatedValue","zeta","omega0","v0","x0","envelope","omega1","position","AnimatedWithChildren","isRgbaValue","normalizeColor","processColorObject","valueIn","defaultColor","isRgbaAnimatedValue","NativeAnimatedAPI","flushValue","shouldUpdateNodeConfig","findAnimatedStyles","leaves","_executeAsAnimatedBatch","InteractionManager","_nextUpdateHandle","_deadline","_processUpdate","_interactionSet","_addInteractionSet","_deleteInteractionSet","_emitter","_taskQueue","_scheduleUpdate","task","tasks","_inc","TaskQueue","tasksToCancel","stackItem","findRange","inputRange","interpolate","range","outputRange","easing","extrapolateLeft","extrapolateRight","inputMax","outputMax","numericComponentRegex","components","mapStringToNumericComponents","isColor","createNumericInterpolation","numericComponents","interpolations","createStringInterpolation","outputType","ease","bounciness","s","SUBDIVISION_MAX_ITERATIONS","aB","aA","calcBezier","SUBDIVISION_PRECISION","NEWTON_ITERATIONS","getSlope","currentX","float32ArraySupported","kSplineTableSize","Float32Array","kSampleStepSize","sampleValues","aX","currentSample","dist","intervalStart","mX1","mX2","NEWTON_MIN_SLOPE","binarySubdivide","newtonRaphsonIterate","mY1","mY2","getTForX","_uniqueId","oValue","stiffnessFromOrigamiValue","dampingFromOrigamiValue","speed","endValue","_easeInOut","easeInOut","useAnimatedProps","useMergeRefs","passthroughAnimatedPropExplicitValues","Component","useCallback","useReducer","useAnimatedPropsLifecycle","useRefEffect","reduceAnimatedProps","count","AnimatedProps","onUpdateRef","getEventTarget","propValue","isFabricInstance","scheduleUpdate","events","useLayoutEffect","isUnmountingRef","prevNodeRef","isFabricPublicInstance","_instance$getScrollRe","cleanupRef","AnimatedStyle","findNodeHandle","nativeViewTag","createAnimatedStyle","AnimatedTransform","createStyleWithAnimatedTransform","platformConfig","transConfigs","getter","nestedValue","argMapping","eventMappings","traverse","viewTag","recMapping","maybeInstance","isLegacyFabricInstance","inAnimationCallback","emptyAnimation","mockAnimationStart","anyValue","mockCompositeAnimation","_FlatList","removeClippedSubviews","numColumns","FlatList","memoizeOne","numColumnsOrDefault","isArrayLike","defaultKeyExtractor","keyExtractor","ListItemComponent","renderItem","cols","render","columnWrapperStyle","prevProps","onViewableItemsChanged","viewableItems","changed","_this$props$strictMod","strictMode","removeClippedSubviewsOrDefault","safeIsNaN","isEqual","areInputsEqual","calledOnce","lastThis","lastArgs","resultFn","lastResult","itemCount","right","left","mid","_scrollMetrics$zoomSc","visibleBegin","windowSize","velocity","visibleEnd","getFrameMetricsApprox","elementsThatOverlapOffsets","overscanFirst","first","overscanLast","newRangeCount","newCellCount","StateSafePureComponent","VirtualizedListContext","horizontal","initialNumToRender","maxToRenderPerBatch","onStartReachedThreshold","onEndReachedThreshold","threshold","scrollEventThrottle","VirtualizedList","ChildListCollection","FillRateHelper","Batchinator","ViewabilityHelper","_assertThisInitialized2","isVertical","_reactNative","curr","metrics","offset","timestamp","dOffset","remainder","frameMetrics","horizontalOrDefault","getItemCount","viewPosition","viewOffset","windowSizeOrDefault","onEndReachedThresholdOrDefault","contentLength","computeWindowedRenderLimits","maxToRenderPerBatchOrDefault","newCellsAroundViewport","cellsAroundViewport","distanceFromEnd","childIdx","ListHeaderComponent","ii","getItem","stickyIndicesFromProps","stickyOffset","stickyHeaderIndices","cells","getItemLayout","debug","_VirtualizedListCellRenderer","CellRendererComponent","ItemSeparatorComponent","inversionStyle","prevCellKey","shouldListenForLayout","nestedContext","findLastWhere","section","isLastSpacer","constrainToMeasured","clamp","lastMetrics","_defineProperty2","_usedIndexForKey","_keylessItemComponentName","scrollEventThrottleOrDefault","frameLast","normalize","windowTop","windowLen","visTop","visLen","distanceFromStart","isWithinStartThreshold","isWithinEndThreshold","onStartReachedThresholdOrDefault","distTop","getScrollingThreshold","distBottom","_this5","CellRenderMask","additionalRegions","initialNumToRenderOrDefault","firstCellIndex","cellIdx","itemIdx","firstVisibleItemIndex","maintainVisibleContentPositionAdjustment","timeoutHandle","cellKey","Info","_sampleRate","_minSampleCount","firstFrame","lastFrame","blankTop","pixels_blank","partialState","that","_isEntirelyVisible","_getPixelsVisible","viewAreaMode","pixels","percent","top","bottom","viewAreaCoveragePercentThreshold","viewablePercentThreshold","itemVisiblePercentThreshold","renderRange","_isViewable","viewableIndices","createViewToken","CellRenderer","select","onCellLayout","currContext","numCells","newMainRegion","lastIntersectIdx","other","region","firstIdx","middleIdx","LeadingSeparatorComponent","leadingSeparatorProps","SeparatorComponent","separatorProps","leadingSeparator","inverted","setSelfHighlightCallback","setSeparatorHighlighted","setSelfUpdatePropsCallback","setSeparatorProps","setLeadingSeparatorHighlighted","updateHighlightFor","updatePropsFor","setLeadingSeparatorProps","VirtualizedSectionList","viewable","keyExtractorWithNullableIndex","listItemCount","ItemWithSeparator","infoIndex","renderSectionFooter","renderSectionHeader","_VirtualizedList","itemIndex","Image","ImageInjection","resolveAssetSource","NativeImageLoaderAndroid","failure","success","prefetch","_queryCache","_asyncToGenerator2","getImageSourcesFromImageProps","_source$width","_source$height","onLoadStart","defaultSource","loadingIndicatorSource","convertObjectFitToResizeMode","objectFit","_ImageAnalyticsTagContext","analyticTag","nativeProps","_ImageViewNativeComponent","nativePropsWithAnalytics","resizeMode","_TextInlineImageNativeComponent","sources","forwardedRef","asyncGeneratorStep","gen","_next","_throw","ConditionallyIgnoredEventHandlers","shouldUseSrcForDefaultScale","sourceList","width","height","_imageSrc$split2$","ScrollView","AnimatedScrollViewWithoutInvertedRefreshControl","AnimatedScrollViewWithInvertedRefreshControl","_ScrollView","splitLayoutProps","RefreshControl","AndroidSwipeRefreshLayoutCommands","_excluded2","_AndroidSwipeRefreshLayoutNativeComponent","ScrollViewNativeComponent","ScrollContentViewNativeComponent","AndroidHorizontalScrollViewNativeComponent","AndroidHorizontalScrollContentViewNativeComponent","View","ScrollViewContext","memoize","nativeInstance","mutator","createRefForwarder","animated","additionalOffset","keyboardScreenY","scrollTextInputIntoVisibleRect","FrameRateLogger","dismissKeyboard","IS_ANIMATING_TOUCH_START_THRESHOLD_MS","timeSinceLastMomentumScrollEnd","TextInputState","keyboardShouldPersistTaps","currentlyFocusedInput","hasFocusedTextInput","Keyboard","newContentInsetTop","indexOfIndex","previousHeader","NativeVerticalScrollViewTuple","NativeHorizontalScrollViewTuple","_ScrollViewContext","VERTICAL","HORIZONTAL","hasStickyHeaders","processDecelerationRate","ScrollViewStickyHeader","childArray","NativeFrameRateLogger","NativeKeyboardObserver","LayoutAnimation","isLayoutAnimationEnabled","onAnimationComplete","onAnimationDidFail","animationCompletionHasRun","raceWithAnimationId","onAnimationDidEnd","isFabric","translateY","setIsFabric","setNextHeaderLayoutY","hiddenOnScroll","scrollAnimatedValue","layoutY","layoutHeight","_haveReceivedInitialZeroTranslateY","_timer","setTranslateY","measured","nextHeaderLayoutY","collisionPoint","scrollViewHeight","stickStartPoint","animatedValueListener","setAnimatedTranslateY","animatedListenerId","newAnimatedTranslateY","setLayoutY","setLayoutHeight","setMeasured","_SectionList","SectionList","listRef","_stickySectionHeadersEnabled","Text","StatusBar","DrawerLayoutAndroid","DRAWER_STATES","_this$props$drawerBac","drawStatusBar","_StatusBar","_AndroidDrawerLayoutNativeComponent","NativeStatusBarManagerAndroid","NativeStatusBarManagerIOS","createStackEntry","mergePropsStack","mergedProps","ImageBackground","_Image","flattenedStyle","InputAccessoryView","_RCTInputAccessoryViewNativeComponent","KeyboardAvoidingView","_ref","_relativeKeyboardHeight2","AccessibilityInfo","keyboardFrame","_this$props$enabled","enabled","ModalInjection","Modal","uniqueModalIdentifier","_RCTModalHostViewNativeComponent","NativeI18nManager","i18nConstants","useImperativeHandle","useAndroidRippleForView","usePressState","testOnly_pressed","android_rippleConfig","focusable","android_disableSound","cancelable","delayHoverIn","delayHoverOut","hitSlop","setPressed","unstable_pressDelay","viewRef","pressed","rippleConfig","borderless","foreground","radius","trackColor","nativeSwitchRef","ios_backgroundColor","_SwitchNativeComponent","returnsFalse","returnsTrue","_AndroidSwitchNativeComponent","onChange","onValueChange","setNative","SwitchCommands","AndroidSwitchCommands","propsSelection","RCTSinglelineTextInputNativeCommands","RCTMultilineTextInputNativeCommands","mostRecentEventCount","inputRef","lastNativeText","selection","lastNativeSelection","viewCommands","AndroidTextInput","text","RCTSinglelineTextInputView","RCTMultilineTextInputView","useOnChangeSync","emptyFunctionThatReturnsTrue","setLastNativeText","setLastNativeSelection","inputRefValue","setMostRecentEventCount","_ref2$allowFontScalin","_ref2$rejectResponder","_ref2$underlineColorA","_excluded3","InternalTextInput","readOnly","enterKeyHint","enterKeyHintToReturnTypeMap","inputMode","inputModeToKeyboardTypeMap","autoCompleteWebToAutoCompleteAndroidMap","textContentType","autoCompleteWebToTextContentTypeMap","autoComplete","RCTTextInputViewConfig","touches","changedTouches","hasTouches","States","Signals","longDelayMS","extractSingleTouch","positionOnActivate","Position","BoundingDimensions","aY","deltaX","deltaY","curState","IsActive","IsPressingIn","IsLongPressingIn","PooledClass","pooler","DEFAULT_POOLER","standardReleaser","TouchableHighlight","TouchableWithoutFeedback","createPressabilityConfig","PASSTHROUGH_PROPS","RCTActionSheetManager","processedTintColor","processedCancelButtonTintColor","NativeAppearance","colorScheme","nativeColorScheme","AppState","NativeAppState","emitter","logError","eventUpdated","changeHandler","focusOrBlurHandler","NativeClipboard","Linking","NativeLinkingManager","NativeIntentAndroid","gestureState","nextDX","nextDY","PanResponder","interactionState","clearInteractionHandle","ofCurrent","TouchHistoryMath","PermissionsAndroid","PERMISSIONS","PERMISSION_REQUEST_RESULT","NativePermissionsAndroid","_requestPermission","response","_request","rationale","permission","NativePushNotificationManagerIOS","PushNotificationIOS","nativeNotif","PushNotificationEmitter","NOTIF_REGISTRATION_ERROR_EVENT","NOTIF_REGISTER_EVENT","DEVICE_LOCAL_NOTIF_EVENT","DEVICE_NOTIF_EVENT","_notifHandlers","notification","Share","content","NativeShareModule","NativeToastAndroid","useSyncExternalStore","Appearance","appearanceSubscription","setDimensions","_vibrating","_id","NativeVibration","_default_vibration_length","vibrateScheduler","pattern","nextIndex","YellowBox","useColorScheme","Colors","isDarkMode","Section","_ImageBackground","_HermesBadge","links","_react","_TouchableOpacity","openURLInBrowser","link","_cachedDevServerURL","NativeSourceCode","FALLBACK","_cachedFullBundleURL"],"mappings":"A,4B,M,K,M,K,I,I,Q,I,E,Q,M,K,G,E,U,M,K,K,M,G,E,M,K,M,K,M,M,M,MAuYC,MAAA,OAAA,IAAA,MAAA,GAAA,IAAA,KAAA,MAAA,IAAAA,MAAA,EAAAC,MAAA,EAAAC,M,OAAA,KC+OA,MAAA,GAAA,IAAA,MAAA,GAAA,IAAA,KAAA,MAAA,IAAAF,MAAA,EAAAC,MAAA,EAAAC,M,KAAA,KC9f8B,MAAA,GAAA,IAAA,MAAA,GAAA,IAAA,KAAA,GAAA,IAAAF,MAAA,EAAAC,MAAA,EAAAC,M,KAAA,KC/D1B,MAAA,GAAA,IAAA,MAAA,GAAA,IAAA,KAAA,GAAA,IAAAF,MAAA,EAAAC,MAAA,EAAAC,M,KAAA,K,M,OCjD6C,Q,O,M,QC6ZhD,Q,O,M,QCD8B,Q,O,M,QC/ZsF,I,O,M,QC0BjF,Q,O,M,QC0HpC,Q,O,M,QClJiH,Q,O,M,QCHA,Q,O,M,QCCD,I,O,M,QCFD,I,O,M,QCMW,Q,O,M,QCNT,I,O,M,QCEH,I,O,M,QCaH,Q,O,M,QCZE,Q,O,M,QCKF,Q,O,M,QCFL,I,O,M,QCqE7E,Q,O,M,QCxCzB,Q,O,M,QCUA,Q,O,M,QCA0B,I,O,M,QCiKI,Q,O,M,QC1M+E,Q,O,M,QCJC,I,O,M,QCwBM,I,O,M,QCxBL,I,O,M,QCwBjF,Q,O,M,QCscD,Q,O,M,QCvW7B,I,O,M,QClGiD,I,O,M,QCgGtB,Q,O,M,QCvDc,I,O,M,QC/BI,Q,O,M,QC2KnB,Q,O,M,QC/LwC,I,O,M,QCmJjE,Q,O,M,QCpID,I,O,M,QCgK4B,Q,O,M,QCrEsC,Q,O,M,QCvDjE,I,O,M,QCeD,I,O,M,QChDiE,Q,O,M,QCiCG,Q,O,M,QCxC5B,Q,O,M,QCsFxC,Q,O,M,QC9E+C,Q,O,M,QC2tQ9C,Q,O,M,QClvQ8B,Q,O,M,QC8CwB,Q,O,M,QCtBvD,I,O,M,QCjBwC,Q,O,M,QCSW,Q,O,M,QCTqD,Q,O,M,QCVM,I,O,M,QCGW,Q,O,M,QCJJ,I,O,M,QCAP,I,O,M,QCoJ5G,Q,O,M,QCvHF,Q,O,M,QCEoE,Q,O,M,QCiRlE,Q,O,M,QCvRuB,I,O,M,QC6CvB,Q,O,M,QCrBF,Q,O,M,QCsQA,Q,O,M,QCvOA,Q,O,M,QCxE2D,Q,O,M,QC6BzD,Q,O,M,QCSA,Q,O,M,QCWA,Q,O,M,QC/BF,Q,O,M,QCyNC,Q,O,M,QC3N8G,Q,O,M,QC3BC,I,O,M,QCcP,Q,O,M,QCNe,I,O,M,QC+CxF,Q,O,M,QCiFX,I,O,M,QCCpB,I,O,M,QCtC8B,Q,O,M,QCjE/B,Q,O,M,QCkByD,Q,O,M,QCjCjC,Q,O,M,QCPvB,Q,O,M,QCqMD,I,O,M,QC3BC,Q,O,M,QC9ID,Q,O,M,QCbyD,I,O,M,QC0tBzD,I,O,M,QClpBA,Q,O,M,QCgYiC,Q,O,M,QC7cqB,Q,O,M,QC0CxB,I,O,M,QC3B9B,I,O,M,QCAC,Q,O,M,QCknB8B,Q,O,M,QCzoBoE,Q,O,M,QCTU,Q,O,M,QC6KjF,Q,O,M,QC3HG,Q,O,M,QCkGV,Q,O,M,QCvHpB,I,O,M,QCg0BwD,I,O,M,QCn0BjB,Q,O,M,QCyBA,I,O,M,QCwRxC,Q,O,M,QChUwB,I,O,M,QCkIxB,I,O,M,QCxDkC,Q,O,M,QC2BhC,Q,O,M,QC9EiC,Q,O,M,QCuDV,Q,O,M,QCnEM,Q,O,M,QCMoC,Q,O,M,QClBf,Q,O,M,QCylBhD,I,O,M,QCnUsB,Q,O,M,QCxR6F,Q,O,M,QCJK,I,O,M,QCqB5H,Q,O,M,QCP+B,Q,O,M,QC4BV,Q,O,M,QCoIM,Q,O,M,QCrK3B,Q,O,M,QCmHE,Q,O,M,QCXqC,Q,O,M,QCvGvC,Q,O,M,QCuJsB,Q,O,M,QCnJrB,Q,O,M,QCqBmE,Q,O,M,QC1BpE,Q,O,M,QCqCA,Q,O,M,QC9B4B,Q,O,M,QCVkC,Q,O,M,QCoB7B,Q,O,M,QCpBkC,Q,O,M,QCoC5C,Q,O,M,QCrCkB,Q,O,M,QCYP,I,O,M,QCsBI,Q,O,M,QCxBiC,Q,O,M,QCuU3C,Q,O,M,QCvNC,Q,O,M,QCxHyB,Q,O,M,QCCM,Q,O,M,QCkI9B,I,O,M,QC7GD,I,O,M,QC/BwB,Q,O,M,QCSgB,Q,O,M,QCmFrE,Q,O,M,QCtEsC,Q,O,M,QC5BtC,Q,O,M,QCqB2F,I,O,M,QC6H9D,Q,O,M,QCVR,Q,O,M,QCpGQ,I,O,M,QCjBO,Q,O,M,QCsGH,Q,O,M,QC2BjC,Q,O,M,QC2C6C,Q,O,M,QCrBF,Q,O,M,QChHR,I,O,M,QCHT,Q,O,M,QC1BK,Q,O,M,QC2aA,I,O,M,QC1a9B,I,O,M,QCLkC,I,O,M,QCyPF,Q,O,M,QCvQ6E,Q,O,M,QCUlF,I,O,M,QCyBG,I,O,M,QCxBF,I,O,M,QCaA,I,O,M,QCLK,Q,O,M,QC2EC,Q,O,M,QC1EL,Q,O,M,QCEgB,I,O,M,QC8HV,Q,O,M,QCpHpC,Q,O,M,QC+EwB,Q,O,M,QCGA,Q,O,M,QCvEM,Q,O,M,QCiC7B,I,O,M,QCqCA,Q,O,M,QCCD,Q,O,M,QCzGoC,Q,O,M,QC0SO,Q,O,M,QChR3C,Q,O,M,QCgHA,Q,O,M,QC/GA,Q,O,M,QCrBmC,Q,O,M,QC1BnC,Q,O,M,QCM2W,Q,O,M,QC+I3W,I,O,M,QC+NC,Q,O,M,QC9VD,Q,O,M,QCKyB,I,O,M,QCGzB,Q,O,M,QCwE4B,Q,O,M,QCxFsC,Q,O,M,QCwDjE,Q,O,M,QClD+B,Q,O,M,QC6L/B,Q,O,M,QCgiB8C,Q,O,M,QCjpBpB,I,O,M,QCXuB,I,O,M,QC5Bf,Q,O,M,QCvBN,Q,O,M,QCPJ,Q,O,M,QC+ME,Q,O,M,QC1O3B,Q,O,M,QCckS,I,O,M,QCOnP,Q,O,M,QC04QC,Q,O,M,QCptQV,Q,O,M,QCrGkC,Q,O,M,QC1EvE,Q,O,M,QC0CmC,Q,O,M,QC3CA,Q,O,M,QCIY,Q,O,M,QCiB/C,Q,O,M,QC8XoC,Q,O,M,QCvHhB,Q,O,M,QCvOrB,Q,O,M,QCnCA,Q,O,M,QCs5BA,Q,O,M,QCn7B6B,Q,O,M,QCC+B,Q,O,M,QC2BF,Q,O,M,QCO1D,Q,O,M,QC9BA,I,O,M,QCuDa,Q,O,M,QC9CZ,Q,O,M,QC6C6B,Q,O,M,QC6XC,I,O,M,QCrbc,Q,O,M,QCL7C,Q,O,M,QC8CC,Q,O,M,QCrDoC,I,O,M,QC6DG,Q,O,M,QCmFA,Q,O,M,QCxBI,Q,O,M,QCpFC,Q,O,M,QC4BU,Q,O,M,QCjBV,Q,O,M,QCyEH,Q,O,M,QCxGG,Q,O,M,QCQA,Q,O,M,QCIT,Q,O,M,QCQU,Q,O,M,QC1BhB,Q,O,M,QC4Ne,Q,O,M,QCzIL,Q,O,M,QCcK,Q,O,M,QCkPL,Q,O,M,QCpCd,Q,O,M,WCtRd,Q,O,M,WCisBZ,Q,O,M,WC1sBoD,Q,O,M,WCsjBpD,Q,O,M,WCnhBoE,Q,O,M,WCEpE,Q,O,M,WCYE,Q,O,M,WCLmD,Q,O,M,WC6BS,Q,O,M,WC3BA,Q,O,M,WC+H3B,Q,O,M,WC7BT,Q,O,M,WC6IG,Q,O,M,WCzET,Q,O,M,WCtFpB,I,O,M,WClJ6D,Q,O,M,WCkL3D,Q,O,M,WClGF,I,O,M,WCtCqD,Q,O,M,WCCrD,Q,O,M,WCjBA,Q,O,M,WC6JA,Q,O,M,WC5JA,Q,O,M,WCvBsD,Q,O,M,WC8BQ,Q,O,M,WCjCI,Q,O,M,WCwOhE,Q,O,M,WCvN8D,Q,O,M,WCEhE,I,O,M,WCjBiE,Q,O,M,WCDC,Q,O,M,WCCD,Q,O,M,WCDF,Q,O,M,WCCQ,Q,O,M,WCAH,Q,O,M,WCDX,Q,O,M,WC+KzD,Q,O,M,WCpKA,Q,O,M,WCgqByB,Q,O,M,WC5oBE,I,O,M,WCO1B,Q,O,M,WCwMD,Q,O,M,WC6yDgC,Q,O,M,WCn+DJ,Q,O,M,WCrDN,I,O,M,WCHE,I,O,M,WCmDtB,Q,O,M,WCsL6B,Q,O,M,WCnOH,Q,O,M,WC8UM,Q,O,M,WCnHhC,Q,O,M,WCjIF,Q,O,M,WCsCE,Q,O,M,WC+cA,Q,O,M,WCtlBF,Q,O,M,WCoU6C,Q,O,M,WCxTmE,I,O,M,WCT3F,Q,O,M,WCOrB,Q,O,M,WC2HsC,Q,O,M,WCrGT,Q,O,M,WCduC,Q,O,M,WC2CpE,Q,O,M,WC3DA,I,O,M,WC4GgC,Q,O,M,WC2ED,Q,O,M,WClI/B,Q,O,M,WCHC,Q,O,M,WC20D4B,Q,O,M,WCh0DG,Q,O,M,WCzD+B,Q,O,M,WC8C/D,I,O,M,WClDgC,Q,O,M,WCwLW,Q,O,M,WCJX,Q,O,M,WCrLgC,Q,O,M,WCMhE,Q,O,M,WC4CwD,Q,O,M,WCxChB,Q,O,M,WCEM,Q,O,M,WCoB7C,Q,O,M,WC9BgE,Q,O,M,WCwJ1B,Q,O,M,WCqIa,Q,O,M,WChRpD,Q,O,M,WC6I4B,Q,O,M,WC7J5B,Q,O,M,WCF4C,Q,O,M,WCkXR,Q,O,M,WCgHV,Q,O,M,WC/aU,Q,O,M,WCqBA,Q,O,M,WCmCpC,Q,O,M,WCXgC,Q,O,M,WCGG,Q,O,M,WC1FlC,Q,O,M,WCmOiC,Q,O,M,WCsDJ,Q,O,M,WCpS9B,I,O,M,WCM4D,Q,O,M,WCsH3D,Q,O,M,WCxEA,Q,O,M,WCzC0D,Q,O,M,WC4U7B,Q,O,M,WC1P9B,Q,O,M,WC1EsB,Q,O,M,WCTrB,Q,O,M,WCuOmC,Q,O,M,WClMnC,Q,O,M,WCDA,Q,O,M,WCumD0D,Q,O,M,WC3nDT,Q,O,M,WCkIqB,Q,O,M,WC9HtB,Q,O,M,WC65BvB,Q,O,M,WC75BS,Q,O,M,WCwFP,Q,O,M,WClGH,Q,O,M,WCmWC,Q,O,M,WCtKe,Q,O,M,WCzMT,Q,O,M,WCDO,Q,O,M,WCsIR,Q,O,M,WCtGmC,Q,O,M,WCqDjE,Q,O,M,WCvEyD,Q,O,M,WC4Ff,Q,O,M,WCrGlB,I,O,M,WCEwC,Q,O,M,WCWhE,Q,O,M,WCnBiE,Q,O,M,WCRjC,Q,O,M,WC2DL,Q,O,M,WCvCwC,Q,O,M,WCoG3B,Q,O,M,WCvGoB,Q,O,M,WCHC,Q,O,M,WC0OzC,Q,O,M,WCiUK,Q,O,M,WC7aO,I,O,M,WCgJU,Q,O,M,WC7NuB,Q,O,M,WCue9B,Q,O,M,WCpepC,Q,O,M,WC9CyB,I,O,M,WC2IH,Q,O,M,WCrJqC,Q,O,M,WCmD9B,Q,O,M,WCpCwC,Q,O,M,WCbrE,Q,O,M,WCCA,Q,O,M,WCrBA,Q,O,M,WCMgL,Q,O,M,WCoChL,Q,O,M,WCSyB,Q,O,M,WCyDC,Q,O,M,WCzFwC,Q,O,M,WCmDhE,Q,O,M,WCrDD,I,O,M,WCgGgB,Q,O,M,WCtG+C,Q,O,M,WCGhE,I,O,M,WCsB+B,Q,O,M,WCoCX,Q,O,M,WCxBK,Q,O,M,WCpDqM,Q,O,M,WCY5J,Q,O,M,WCgI5C,Q,O,M,WCtHW,Q,O,M,WCoBJ,Q,O,M,WCJG,Q,O,M,W,I,O,M,K,M,K,E,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I9apBvB,QACAC,MAAF,MAAA,aAAA,M,KAA+B,IAC7B,M,KACc,QACL,IAAR,IAIG,EAAH,IAEgB,EAAL,KAAA,IAwII,MAoCJ,MAKC,KAAH,MAYO,KAAH,QAQb,OAiBQ,UACA,IASQ,M,KAIF,MACS,IAAH,IACOC,MAAG,KAAA,OAAA,IAAA,IAAV,IAqI9B,EAtWD,EACYC,MAAa,OAAA,KAAhB,GAAA,IAKP,EAMF,GACMC,GAAAA,IAAO,MAAX,IAqBeC,IAGC,EACH,EADG,IAPJ,KAAA,QAAA,OAAA,KAAA,KAAA,KAAA,KAAA,KAWZD,IAAiB,MAcnB,IA3BI,EA4BJ,GAkCiBA,GAAAA,IAAO,IACfE,GAAgB,MAAhBA,GAEHC,MAAiB,MAFdD,EACG,MAAa,KADvB,EAmBF,GASIF,GAAAA,IAAO,IADT,GAEEA,IAAO,IAAwB,MAAqBC,IAFtD,IAMgBG,MAAY,QAE1BC,GAAkB,QAAlBA,GAAuC,KAGjCL,IAAO,IAAwC,MAAvD,EAPSA,IAAO,IAAwB,MAAtC,EAUJ,GASIA,GAAAA,IAAO,IADT,GAEEA,IAAO,IAAwB,MAAiBC,IAFlD,IAMgBG,MAAY,KAE5B,GAAsB,QAAtB,GAGgB,EAGd,GACE,GAAA,QAAA,SAAA,GACME,IAAmB,KAAA,MAAvB,GAC4B,IAAV,IADlB,EAKe,SAIbN,IAAO,IAAoC,MAAnD,EArBSA,IAAO,IAAwB,MAAtC,EAiDJ,UACOO,GAAAA,IAAL,GAAgBZ,IAAM,MAAtB,KACS,IAGSa,IAAwB,MACxC,EAAE,EAEAb,IAAM,MAA4B,MAAA,KACpC,EACO,IACP,EAEOa,IAAwB,MAA/B,EAKJ,GACiCC,GAAAA,IAAbC,IACSC,IAAXD,IACT,EAAA,KAAA,KAAP,EAMF,GACe,MAAcD,GAAAA,IAAnBG,IAAyC,MAA1C,IAAP,EAKF,UACEC,GAAAA,OAAoC,QAcpC,KACmB,KAAC,KAAD,KAMrB,EANsB,GACXb,GAAAA,IAAO,IAAZ,GAA2Bc,IAA6B,KAAA,KAAxD,GACEA,IAA6B,KAAWC,GAAAA,IAAX,MAD/B,EAGF,EAGJ,iBACE,GAAeF,GAAAA,IAAyB,KAAxC,IACoBC,IAA6B,KAAA,SAAhC,OACCD,IAAyB,IACzC,IACS,KACEb,IAAO,IAChBc,IAAgC,KAAA,KAGdnB,GAAAA,IAAM,SAC5B,GAAA,GACiCqB,IAAc,KAA5B,MAAS,MACb,MACJhB,IAAO,IAHlB,GAKA,GACQiB,IAAkB,KAAxB,KAEQ,SAAV,QAWoB,MACL,MAAe,MAI9B,GAK6B,MAcZ,SAMbtB,IACAS,IACAc,IACAC,IAEY,aANP,IAaS,MACM,MASH,KAAnB,EACA,EACe,MACH,QACQ,MACd,MAAqB,MAC3B,EACQ,EAUV,EA/Ec,KAAZ,EAiFJ,OACgB,MAMPC,YANO,IAMF,KAAZ,EAzLqB,EAMXA,MAAK,KAAA,WAAA,IAAA,IAAf,EAMyB,EAMfA,MAAK,KAAA,WAAA,IAAA,IAAf,E,0B,K,K,KC9Me,KAyWhB,IAGkB,UAMM,IACE,UAAO,IACP,UAAM,IACN,SAAM,IACN,SAAO,IA8Hf,IAAH,IA4BN,MAAV,MAsDkB,KAAX,MACL,KACkB,MAANzB,MAAH,IAEQ,EAAA,KAAA,IAAA,KAAA,KAAA,KAAA,IAOT,KAPS,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAH,QAuBdI,MAAqB,KAACsB,UAA0B,UAA3B,yJAhFS,KAUAC,IAAU,KAAX,KACAA,IAAU,MAAX,KACAA,IAAU,MAAX,KACEA,IAAU,KAAX,KACEA,IAAU,MAAX,KACCA,IAAU,MAAX,KANZ,EAAA,IAAA,KAAA,KAAA,IAAA,KAAA,K,KAAA,K,KAAA,K,KAAA,K,KAAA,K,KAAA,KAAH,QAcdvB,MAAqB,KAACsB,UAA0B,UAA3B,WA6DtB,EAzOD,KAAA,IACS,KAAP,EAAO,IAEQ,MAAb,MAA8C,IAAhB,OAA9B,MAGQE,MAAK,KAAU,KACd,KAAA,EAAA,KAAY,KAAZ,MAGA,SAAA,KAPT,EACiB,IADjB,EAgB0B,IAEXC,GAAAA,IAEb,UADF,IAEgB,QAAA,aAFhB,IAGcF,GAAAA,IAAU,QAHxB,IAQaA,IAAU,KAEnB3B,GAAAA,IAAM,MAAV,GACEA,IAAqB,MACnB8B,IAAgB,IAEhB,IAAE,KAAW,KAAA,EAAA,KACbC,aAJmB,IAOnBC,IAAU,QAAd,GACQC,QAAW,MAEnBjC,IAAwB,MAAA,MAC1B,EApCekC,GAAAA,IAAa,KAAA,UAAN,MAAd,EAuCV,KAAA,MACSN,MAAW,KAAOA,WAAK,OAAZ,MAAoB,KAAC,KAAD,KAAtC,EACSO,GAAAA,IAAP,EAIJ,SAAA,OAEOP,MAAa,KAAA,QAAlB,GAES,IACP,GAGQQ,MAHR,WAAA,SAAA,GACyB,KAAA,KAAvB,GACgB,IACVA,IAAmB,IACd,KAAA,KAHX,EAOI,KAAR,mBAKchC,MAAW,KAACiC,IAAI,IAAL,KAAc,MAAA,IACtB,IAAH,IACK,IAAH,IAID,KAAC,KAAD,KAqBEC,IAAgB,KAAC,KAAD,SAGP,MACN,KACR,IAAA,IAAA,IAEQD,IAAI,OAAxB,IACY,KAASE,IAAU,IAAX,KAAR,KADsB,GAAdF,IAAI,KAAxB,IAQArC,GAAAA,IAAwB,MAAkB,SAAA,KAAjB,IAAyB2B,IAAU,MAApC,MAC1B,EA/CI3B,GAAAA,IAAwB,MAAK2B,IAAU,UAAf,MACxB,EAqBF,UACqB,OAAC,KAAD,KAIXa,MACS,SAACA,IAAAA,IAAD,KAAjB,EALoB,GACAC,GAAAA,IAAYH,GAAAA,OAAY,IAAU,KAAtBA,UAAN,MAAyC,SAAA,KAC1DI,IAAP,EAfY,YACdJ,GAAAA,IAAmB,KAAJ,IACKD,IAAI,OAAxB,IACiBA,IAAI,IAAG,IAAPA,MAA2B,KAAA,IAC1CE,IAA0B,IAAVA,GAAiB,IAApB,IACbA,IAAU,IAAM,IAChBD,IAAkBK,MAAQ,KAACL,IAAY,IAAY,KAAzB,MAAX,IAJiB,GAAdD,IAAI,KAAxB,MAMF,EAcSI,GAAAA,aAAM,MAAuB,SAAA,KAApC,EAuBJ,OAEST,GAAAA,IAAe,KAAA,QAAfA,IAAsCY,MAAAA,IAAtCZ,IAAAA,IAAP,EAIAhC,GAAAA,IAAwB,MAACiC,IAAYY,SAAD,MAAqBlB,IAAU,MAA3C,MACxBK,IAAe,KAACc,IAAD,KACjB,EAGE9C,GAAAA,IAAwB,MAACiC,IAAYc,SAAD,MAAsBpB,IAAU,MAA5C,MACxBK,IAAe,KAACc,IAAD,KACjB,EAGEd,GAAAA,IAAc,MAAA,IACdhC,IAAwB,MAACiC,IAAYc,MAAD,KAAepB,IAAU,MAArC,MAC1B,EAEA,GACE,GACE3B,GAAAA,IAAwB,aAAC,IAA8B2B,IAAU,KAAzC,MAD1B,EAGF,EA9gBiB,EAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAwWf,EA5UaqB,GAAAA,IAHD,EACF,IADE,OAAA,KAAA,KAKHC,OAA0B,WAAf,OAAlB,EAGF,GACE,EAGF,KACa,EAAH,IAEK,KAAC,KAAD,KAIb,EAHEC,GAAAA,SAAS,MACX,EAKF,iBACK,MAAiB,GAAA,MACb,SAAP,OAKgBC,GAAAA,IAAe,MAC/B,QAKW/C,MAAW,KAAA,KACJgD,IAAW,KAK3BC,IAAO,KADT,GAEe,SAAA,OAFf,OAE+C,SAAA,KAF/C,OAQQ,OAAR,IACMC,IAAU,KAAd,MAIIC,IAAQ,KAAZ,MAGIC,IAAM,KAAV,MAGIH,IAAO,KAAX,MAOS,QAGPI,IAAO,OAAX,GAEW,UAIPH,IAAU,QAAd,GACe,QAALrC,GAAyB,SAAZ,IAAbA,IACD,QAAA,IAILsC,IAAQ,KAAZ,GACeG,MAAM,KAAU,KAAc,KAAA,SAApC,IAILF,IAAM,KAAV,GACeG,MAAI,KAAU,MAAiB,KAAA,SAArC,IAILN,IAAO,KAAX,GACeO,IAAW,SAAjB,IAGD,KAAR,IAAA,MAAyC,KAAzC,OAIA,OAQG,MAAU,KAAA,KAGb,uBAGmB,KAAC,KAAD,KAHnB,EACWC,qBAAW,wBAcnB,MAAS,MAAA,IAELC,IAAoB,OAA3B,EA3BMP,IAAQ,KACQ,MADpB,WAGoB,MAAlB,EAFmBG,MAAM,KAAU,KAAc,KAAA,SAA/B,MAAlB,EALW,IAANK,OAAyB,IAAzBA,IAAP,EApCSH,IAAW,KAAlB,EAHkB,MAACD,MAAI,KAAU,KAAc,KAAA,SAA7B,MAAlB,EAHkB,MAACD,MAAM,KAAU,KAAc,KAAA,SAA/B,MAAlB,EAJgB,KAALzC,GAAyB,SAAZ,IACN,UAAC,QAAA,QAAD,MAAlB,EAPK2C,IAAW,KAAlB,EAbA,EANuC,QAA/B,MAAA,aAAA,MAAR,EAyFSI,GAAAA,IACLC,GAAAA,IACAhD,IACAiD,IACAC,IAEAC,SANmB,IAArB,EAgBN,MACMC,GAAAA,MAAW,KAAf,MACIC,IAAQ,KAAZ,GAUIC,IAAQ,KAAZ,GACIC,IAAS,KAAb,GAEIC,IAAM,KAAV,GACF,EADuC,UAAA,MAAlB,EAFqB,aAAA,MAAlB,EADiB,aAAA,MAAlB,IAPjBC,MAAc,MAAA,KACJ,KAAC,kBAAD,MACA,KAAC,kBAAD,MACA,KAAC,kBAAD,UAJV,IAMgB,MANhB,QAMgB,MAAlB,EATwC,UAAA,MAAlB,EAiB1B,EACejD,MAAK,KAAU,KAAc,QAAA,SAAnC,QAAA,IAAP,EAGF,yBACe,IACY,KAGnBuC,KAHN,IACMrD,IAAsBgE,MAAM,KAAd,MACL,QADb,GAYa,KAZb,EAEIX,IAKEW,MAAM,qBALM,IADL,KAF0B,GAAzC,wBAgBY,KAAC,KAAD,KAOLC,IAAP,EAPa,GACG,MAAC,cAAD,KAAd,GACEA,GAAAA,IAAW,KACTZ,GAAAA,IAAeC,IAAKhD,IAAOiD,IAAcC,WAA3B,IADL,KADb,EAKF,EAIF,qBAES/D,MAA+B,KAAA,MAA/BA,GAA4D,IAAb,EAAA,OAC9C,KACE,KADV,KAOE,GACmB,cAAA,MADnB,EALmB,MADnB,WAGmB,MAHnB,UACmB,MAShBO,GAAAA,OAAc,QAAnB,OACS,QAAA,IAET,MACS,MAAa,KAAK,KAAL,OAApB,IA2BmB,cAAA,MA3BnB,KACM8D,IAAM,KACFxB,IAAqB,KAD7B,MAGqCiB,IAAlB,OAHnB,IACmB,OAIJ,SAAA,cAAf,IAGY,MAFV,GAYY,KACF,KAAC,KAAD,KAGC,KAAA,KANP,IAVJ,EAEU,KACF,KAAC,KAAD,KAGC,KAAA,KACE,SAAA,KAgBbG,IAAW,KAAf,MACE,GAAsB,MAAC,cAAD,KAAtB,MAGOK,MAAc,SAAA,KACP,MAAC,cAAD,KAAd,GAKY,KAAC,kBAAD,MACA,KAAC,kBAAD,MACA,KAAC,kBAAD,MACQ,UAAA,MARpB,EACoB,MAAQ,QAAJG,OAAJ,MACA,UAAA,MAFpB,IAYKA,IAAAA,IAAP,EAfI,EAtBW,OACI,IAAP,EASK,OACI,IAAP,EA6BhB,iBACiB,IACW,MAAC,KAAD,SAM1B,IAWa,IAANd,IAAoC,SAAA,SAApCA,IAAAA,OAAyD,IAAzDA,IAAAA,IAAP,EATU,IACLe,QAAmBA,IADpBf,IAGW,SAAA,SAHXA,IAAAA,OAKM,IALNA,IAAAA,IADF,EAPyB,GACzBgB,GAAAA,IAAW,GAAA,IACI,SAAA,OAAf,IAA4BA,IAAW,GAAA,IACd,KAAC,kBAAD,MAAuB,QAAzCC,OAAAA,IAAP,EAmBJ,EACSpD,MAAa,QAAA,KAApB,EAGF,GACS,OAAA,IAAP,EAGF,KACSqD,IAAP,EAOF,GACS,OAAA,IAAP,EAGF,GACS,OAAA,IAAP,EAOF,KACSA,IAAP,EAGF,GACSC,GAAAA,MAAQ,KAARA,GAAgBC,IAAc,SAAdA,IAAvB,EAGF,GACS,OAAA,IAAA,KAA2BF,IAAlC,EAGF,GACSC,GAAAA,MAAQ,KAARA,GAAeC,IAAc,SAAdA,IAAtB,EAGF,GAEID,GAAAA,MAAQ,KAARA,GACCC,IAAc,SAAdA,IAAAA,KAAuD1D,MAAb2D,IAA1CD,GAFH,EAMF,GACS,OAAA,IAAP,EAGF,EACS/E,MAAM,KAAU,KAAc,QAAA,KAArC,EAGF,EACSA,MAAM,KAAU,KAAoB,WAAA,MAA3C,EAkOF,EAAiB,EAUT,GACJ,GACEiF,GAAAA,WAAI,MAAD,KADL,EAGF,E,IC3lBQ,IAUuB,KAAH,IAeb,EACD,KADC,KAID,KAJC,KAON,KAPM,KAUD,KAVC,KAcH,KAdG,KAqCK,KArCL,KAqDV,KArDU,KAwDZ,KAxDY,KAAH,OAoFC,QAAc,EAnGI,GAIjC,EAagB,MAAA,MAChB,EAESC,GAAAA,IAAP,EAGAA,GAAAA,IAAAA,GAAkBA,WAAc,MAAhCA,EACF,EAGEA,GAAAA,IAAAA,GAAkBA,WAAc,MAAhCA,EACF,EACc,GAUVC,GAAAA,IAAQ,GAAA,IAKQ,WAAA,MAIhBA,IAAQ,GAAA,IAJR,EACA,EACAC,GAAAA,IAAsB,MAAA,KAEtBD,IAAQ,GAAA,MAEV,EAHU,EACRA,GAAAA,IAAQ,GAAA,IACV,EAGoB,SAKhBC,GAAAA,IAAkB,MAAA,IAAtB,GAOEA,IAAyB,MAAA,SAE3B,EAJkB,KAAA,MAAhB,EAOOD,GAAAA,IAAD,GAAD,GAAP,EAEG,YAOC,OAAJ,MAIkBV,IAAW,KAAd,OAAA,WAAA,IAXZ,KAwBH,IAhBEnD,MAAY,SAAA,QACZ,EAKF,IAAwC,KAAhBE,MAAA,KAAA,UAAA,IAAA,MAAgB,IAAhB,IAAA,IAAA,GAAgB,IAC/B4D,GAAAA,IAAyB,MAC9BC,GAAAA,IACAC,MAAAA,IAAAA,IAGAC,kBAL8B,IAAhC,E,EChGL,OA8CA,IAAI,EA9CJ,MAGwBvF,MAAM,KAAU,KAM5BA,MAAM,MAAb,OAAJ,cACEA,MAAiB,KAAH,MAoBLA,MAAM,MAAb,GAAJ,IACEA,MAAgB,KAAH,MAejB,EApCqB,KAEf,IAIgB,IAChB,GACMO,GADN,QAAA,SAAA,GACMA,IAAmB,KAAA,MAAvB,GACc,KAAC,IAAA,IAAY,IAAZ,IAAD,KADd,EAIF,IATYiF,MAAS,KAAA,WAAA,IAAA,IAAnB,EAkBY,KAEd,IAIe,IACf,GACMjF,GADN,QAAA,SAAA,GACMA,IAAmB,KAAA,MAAvB,GACa,KAAO,IAAP,KADb,EAIF,IATYiF,MAAS,KAAA,WAAA,IAAA,IAAnB,E,UCzCR,MAAA,QACA,IAAA,QAAA,IAAA,KAAA,KAAA,IAGAC,MAA6B,SAACC,IAAAA,KAAAA,KAAS,KAAV,MAAqB,EAALC,GAAAA,IAAAA,KAAN,E,K,O,IC6FtB,EAEf,WAFe,MAMf,SANe,MAUf,SAVe,MAcf,SAde,MAiBf,SAjBe,MAoBf,SApBe,MAuBf,SAvBe,MA0Bf,SA1Be,MA6Bf,SA7Be,MAiCf,SAjCe,MAoCf,SApCe,MAwCf,SAxCe,MAiDf,SAjDe,MAoDf,SApDe,MAuDf,SAvDe,MA0Df,SA1De,MA6Df,SA7De,MAgEf,SAhEe,MAmEf,SAnEe,MAsEf,SAtEe,MAyEf,SAzEe,MA4Ef,SA5Ee,MA+Ef,SA/Ee,MAkFf,SAlFe,MAqFf,SArFe,MAwFf,SAxFe,MA2Ff,SA3Fe,MA8Ff,SA9Fe,MAmGf,SAnGe,MAsGf,SAtGe,MA2Gf,SA3Ge,MA+Gf,SA/Ge,MAkHf,SAlHe,MAqHf,SArHe,MAwHf,SAxHe,MA2Hf,SA3He,MAoIf,SApIe,MAuIf,SAvIe,MA0If,SA1Ie,MA6If,SA7Ie,MAgJf,SAhJe,MAmJf,SAnJe,MAsJf,SAtJe,MAyJf,SAzJe,MA4Jf,SA5Je,MA+Jf,SA/Je,MAkKf,SAlKe,MAqKf,SArKe,MAyKf,SAzKe,MA4Kf,SA5Ke,MA+Kf,SA/Ke,MAkLf,SAlLe,MAqLf,SArLe,MAwLf,SAxLe,MAiMf,SAjMe,MAoMf,SApMe,MAuMf,SAvMe,MA0Mf,SA1Me,MA8Mf,SA9Me,MAiNf,SAjNe,MAoNf,SApNe,MAuNf,SAvNe,MA8Nf,SA9Ne,MAiOf,SAjOe,MAoOf,SApOe,MAuOf,SAvOe,MA0Of,SA1Oe,MA6Of,SA7Oe,MAkPf,SAlPe,MAqPf,SArPe,MAyPf,SAzPe,MA4Pf,SA5Pe,MA+Pf,SA/Pe,MAkQf,SAlQe,MAsQf,SAtQe,MAyQf,SAzQe,MA8Qf,SA9Qe,MAiRf,SAjRe,MAwRf,SAxRe,MAkSf,SAlSe,MA4Sf,SA5Se,MAsTf,SAtTe,SAAH,MAgUZ,EA7TSC,GAAAA,IAAOC,MAAA,MAAA,KAA8D,KAA5E,EAIOD,GAAAA,IAAOC,OAAA,MAAA,KAA8D,KAA5E,EAIOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAIOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAwD,KAAtE,EAIOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAA8C,KAA5D,EAIAC,GAAAA,IAAAD,OAAA,MAAA,aAAA,SAMc,IAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAoD,KAAlE,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAiC,KAA/C,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAwC,KAAtD,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAKOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAMOD,GAAAA,IAAOC,OAAA,MAAA,KAAiC,KAA/C,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGAC,GAAAA,IAAAD,OAAA,MAAA,aAAA,SAMc,IAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAoC,KAAlD,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAA+B,KAA7C,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAyC,MAAvD,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAA6B,KAA3C,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAA8D,KAA5E,EAIOD,GAAAA,IAAOC,OAAA,MAAA,KAA+C,KAA7D,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAqC,KAAnD,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAwC,KAAtD,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAoC,KAAlD,EAGAC,GAAAA,IAAAD,OAAA,MAAA,aAAA,SAMc,IAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAIOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAMOD,GAAAA,IAAOC,OAAA,MAAA,KAAyC,MAAvD,EAIOD,GAAAA,IAAOC,OAAA,MAAA,KAAyC,KAAvD,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAwC,KAAtD,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAA6C,KAA3D,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAA2B,KAAzC,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAKOD,GAAAA,IAAOC,OAAA,MAAA,KAAkD,KAAhE,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAqD,MAAnE,EAIOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAkD,MAAhE,EAIOD,GAAAA,IAAOC,OAAA,MAAA,KAAuC,KAArD,EAKOD,GAAAA,IAAOC,OAAA,MAAA,KAAkD,KAAhE,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAmC,MAAjD,EAEF,EACS,KAAP,EAAO,EACLvE,MAAY,SAAA,KADP,EAMT,EACEA,MAAa,SAAA,KAONsE,GAAAA,IAAOC,OAAA,MAAA,KAAsC,MAApD,EAEF,EACEvE,MAAa,SAAA,KAONsE,GAAAA,IAAOC,OAAA,MAAA,KAAsC,MAApD,EAEF,EACEvE,MAAa,SAAA,KAONsE,GAAAA,IAAOC,OAAA,MAAA,KAAsC,MAApD,EAEF,EACEvE,MAAa,SAAA,KAONsE,GAAAA,IAAOC,OAAA,MAAA,KAAsC,MAApD,E,a,M,K,I,Q,S,QCrZJ,IAAA,QAAA,IAAA,KAAA,KAEA,IAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,KA8BIE,KAAQ,SAARA,OAOIhG,MAAI,IACN,QADM,IAEN,QAFM,IAGN,QAHM,IAIN,QAJM,IAKN,QALM,IAMN,QANM,IAON,QAPM,IAQN,QARM,IAAD,KAAA,UAAA,IAAA,IAPPgG,EACIhG,MAAI,IACN,QADM,IAEN,QAFM,IAGN,QAHM,IAIN,QAJM,IAAD,KAAA,UAAA,IAAA,IADPgG,4BAAH,IA2ByB,EASP,KATO,KAkCN,KAlCM,KA2DH,KA3DG,KAoFH,KApFG,KAiHG,KAjHH,KA6IG,KA7IH,KAsKH,KAtKG,KAqMK,KArML,KAwPR,KAxPQ,KAyQH,KAzQG,KAgRF,KAhRE,KAiSA,KAjSA,KA+SW,KA/SX,KAsUG,KAtUH,KAwVM,MAAA,EA9UxBA,GAAAA,IAAAA,KAAQ,SAAZ,MAGaC,MAAO,KAAA,MAAC,QAAD,IAAA,IAAlB,IAFOA,MAAe,OAAA,KAAtB,EAEmB,GACbC,GAAAA,IAAAA,OAAJ,MAMQ,KANR,EACEA,IAAAA,KAAqD,SAAA,MADvD,EAQF,EAaEF,GAAAA,IAAAA,KAAQ,SAAZ,MAGaC,MAAO,KAAA,MAAC,QAAD,IAAA,IAAlB,IAFOA,MAAe,OAAA,KAAtB,EAEmB,GACbC,GAAAA,IAAAA,OAAJ,MAMQ,KANR,EACEA,IAAAA,KAAsD,SAAA,MADxD,EAQF,EAaEF,GAAAA,IAAAA,KAAQ,SAAZ,MAGaC,MAAO,KAAA,MAAC,QAAD,IAAA,IAAlB,IAFOA,MAAe,OAAA,KAAtB,EAEmB,GACbC,GAAAA,IAAAA,OAAJ,MAMQ,KANR,EACEA,IAAAA,KAAyD,SAAA,MAD3D,EAQF,EAYiB,EACRD,MAAO,KAAA,MAAC,QAAD,IAAA,IAAlB,EAAmB,MACbD,GAAAA,IAAAA,KAAQ,SAAZ,IAOME,IAAAA,OAAJ,MAMQ,KANR,EACEA,IAAAA,KAAyD,MAAA,MAD3D,EANIC,IAAAA,OAAJ,MAGQ,KAHR,EACEA,IAAAA,KAAoD,MAAA,KADtD,EAeJ,EAWyB,EACdF,MAAO,KAAA,MAAC,QAAD,IAAA,IAAlB,EAAmB,KACbD,GAAAA,IAAAA,KAAQ,SAAZ,IAIIE,IAAAA,SAAAA,IAAAA,IAAAA,KAA6B,MAD/B,IASQ,KATR,EAIEA,IAAAA,KAAwE,SAAA,MAQ9E,IAdWD,MAAe,OAAA,KAAtB,EA0BAD,GAAAA,IAAAA,KAAQ,SAAZ,MAGaC,MAAO,KAAA,MAAC,QAAD,IAAA,IAAlB,IAFOA,MAAe,OAAA,KAAtB,EAEmB,GACbC,GAAAA,IAAAA,OAAJ,MAMQ,KANR,EACEA,IAAAA,KAA+D,SAAA,MADjE,EAQF,EAYiB,EACRD,MAAO,KAAA,MAAC,QAAD,IAAA,IAAlB,EAAmB,MACbD,GAAAA,IAAAA,KAAQ,SAAZ,IAOME,IAAAA,OAAJ,MAMQ,KANR,EACEA,IAAAA,KAAsD,MAAA,MADxD,EANIC,IAAAA,OAAJ,MAGQ,KAHR,EACEA,IAAAA,KAAwD,MAAA,KAD1D,EAeJ,EAa2B,EAChBF,MAAO,KAAA,MAAC,QAAD,IAAA,IAAlB,EAAmB,GACbD,GAAAA,IAAAA,KAAQ,SAAZ,QAUQ,KAVR,EAEIG,IAAAA,OADF,IAEEA,IAAAA,KAA8B,MAFhC,MAMQ,KANR,EAIEA,IAAAA,KAA4D,SAAA,KAJ9D,EAWJ,EA0CwBC,GAAAA,IAAc,QAAA,OAC/BC,IAGHC,IAAAA,KAAiC,QAAA,MAH9BD,EACH,IAAO,KAAP,OADJ,EACW,EAAU,EAWrBE,GAAAA,IAAAA,cAA4B,MAC9B,EAKsB,GAKhBP,GAAAA,IAAAA,KAAQ,SAAZ,QAAA,IAIAQ,IAAAA,OAAAA,MAAAA,KAAAA,SAAsB,MACxB,IAJI,EAWoB,GAClBR,GAAAA,IAAAA,KAAQ,SAAZ,IAGEE,IAAAA,OAAAA,IAAAA,IAAAA,KAAuD,MAAA,KAAvDA,EAFAC,IAAAA,OAAAA,IAAAA,IAAAA,KAAwD,MAAA,KAAxDA,EAIJ,EAQmC,GAI7BH,GAAAA,IAAAA,KAAQ,SAAZ,IAGME,IAAAA,OAAJ,IAAIA,IAAAA,KAA6B,MAAjC,GAMEA,IAAAA,KAAAA,IAAAA,IAAAA,KAAuD,MAAA,KAAvDA,EALAA,IAAAA,KAAAA,IAAAA,IAAAA,KAAkE,SAAA,MAAlEA,EAHFC,IAAAA,OAAAA,IAAAA,IAAAA,KAAwD,MAAA,KAAxDA,EAWJ,EAO2B,KACrBH,GAAAA,IAAAA,KAAQ,SAAZ,MAYSC,MAAe,KAAA,KAAtB,QAXWA,MAAO,KAAA,IAAC,QAAD,IAAA,IAAlB,EAAmB,GACbE,GAAAA,IAAAA,OAAJ,IAAIA,IAAAA,KAA8B,MAAlC,GAMUM,GAAAA,MAAD,KANT,EACEN,IAAAA,KAA0D,MACxDM,GAAAA,IADwD,MAD5D,EAQF,E,K,KCxZQ,MAAiC,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EALtH,GACSC,GAAU,QAAVA,GAA8B,EAAA,OAArC,E,W,M,K,I,Q,S,QCWF,IAAA,QAAA,IAAA,KAAA,KAYMC,KAAY,KAAA,OAAA,IAAA,IAElB1G,MAAqB,KAAoC,EAAA,IAAA,WAApC,OAKgB,MAAA,E,W,K,M,M,K,I,Q,S,Q,I,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,K,IC+BJ,KA0E9B,IAAA,MAiBF,EAdD,MAQ8D,MAC5D,MACsB2G,MAAG,KAAA,OAAA,IAAA,IACJ,OAErB,EA1F+B,EAAA,KAAA,IAGUC,GAAAA,IAAA,KAAA,MAAA,IAMzC,KANyC,IAAA,IAAA,IA+BzC,MAAA,IAOA,KAPA,IA/ByC,IAoDzC,MAAA,IAGA,KAHA,IApDyC,IAiEzC,MAAA,IAGA,KAHA,IAjEyC,MAAA,MAuExC,EA1E8B,EAAAC,GAAAA,IAAA,KAAAH,GAAAA,MAAA,MAGQ,EAA9B,MAAgC,EAMzC,KAKM,OAAJ,cAKsBI,GAAAA,MAChB,SADwB,MAAX,IAIuD,KAAA,IAAA,IAGlE,KAHkE,IAAH,IAOtD,KAACC,IAAD,KACVA,IAAP,IAhBYvB,MAAS,KAAA,WAAA,IAAA,IAAnB,EAYEwB,GAAAA,IAAoB,KAACD,IAAD,OACtB,EAaJ,WAMU,SAAU,MAClB,OAA2B,KALpBvF,QAAAyF,IAAAA,IAAA,KAAA,UAAA,IAAA,OAKoB,OALpB,IAAAC,IAAA,IAAA,GAKoB,IACFC,GAAAA,IAAA,KAAA,KAAvB,GAAA,GAAA,IAAA,GAAA,IACc,KAAe,KAAa,QAAb,MAC7B,EAAA,EAAA,GAAA,EAEJ,EAKA,OAGE,IAGa,MAAX,IAHF,EACmB,EAAH,MADhB,EAKF,EAKA,EACuD,SAAU,QACxDH,IAAyC,KAAhD,E,Q,O,I,KChIU,MAA6B,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAHlH,GACSlB,GAAAA,IAAAD,MAAA,MAAA,KAAA,KAAAC,GAA0BA,IAAAD,OAAA,IAAA,KAAA,KAA1BC,GAAkDA,IAAAD,OAAA,IAAA,KAAA,KAAlDC,GAAqFA,IAAAD,OAAA,IAAA,KAAA,IAA5F,E,Q,O,I,KCDY,MAA6B,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAHlH,KACMrE,MAAa,KAAA,KAAjB,KACF,EADiCsE,GAAAA,IAAAD,MAAA,MAAA,KAAA,KAAP,E,K,KCGZ,MAA4B,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EALjH,QACE,IAA4B,KAA5B,IAA8C,KAA9C,EAC2BrE,MAAK,KAAA,UAAA,IAAA,MAAhC,IAAkE,IAAN,IAAX,GAAjD,IACA,E,K,KCAY,MAA2B,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAHhH,KACM,KAAA,OAAJ,IAA0C4F,MAAM,MAAP,MAAzC,IAA0E,QAA1E,MACF,EAD2G5F,MAAU,MAAA,KAAjB,E,Q,O,I,KCQtF,MAAsC,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAR3H,MACE,KAAQ,EACJ,OAAJ,SACQxB,MAAM,KAAU,KAAc,KAAA,KAAS,cAAA,aAC/C,IAAuB,QAAvB,GAA0C,KAAY,KAAtD,IACA,QAAA,QACA,IAAyB,cAA+C,MAAA,KAAxE,KACF,EADsF8F,GAAAA,IAAAD,MAAA,MAAA,KAAA,MAAP,EADtCrE,MAAU,MAAA,KAAjB,EAHEsE,GAAAA,IAAAD,MAAA,MAAA,KAAA,MAAP,E,K,KCAf,MAA6B,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAHlH,EACYL,MAAS,KAAA,WAAA,IAAA,IAAnB,E,K,KCIY,MAA0B,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAL/G,MACQ6B,IAAN,KACY7B,MAAS,KAAA,WAAA,IAAA,IAAnB,IAEJ,E,Q,O,I,K,I,KCcc,MAAuB,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAjB5G,kBAC2B,KAKOM,KALhC,IACwB,IACY,KAAVwB,KAAH,MACE,MACnB,IAAJ,GAA8C,MAC9CtH,MAAqB,KAAS8F,IAAAD,IAAA,IAAA,KAAwB,KAAxB,KAAT,OALY,GAAV,KAAzB,IAOF,EACA,SACE,GAAgB0B,GAAAA,IAA6B,OAAZ,MACjC,GAAiBA,GAAAA,MAAiB,MAAlC,EACAvH,MAAqB,KAA2B,IAAA,SAA3B,OAGrB,E,Q,O,I,KCVY,MAAyB,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAHlG8F,GAAAA,IAAAD,MAAA,MAAA,YAAA,SACH,IAAA,KAAA,KAAA,YAAAC,MAAkCvB,MAAM,KAA/C,E,Q,O,I,KCOY,MAAuB,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAV5G,UACMuB,GAAAA,IAAAD,MAAA,MAAA,KAAA,KAAA,SAAJ,SAAA,SACiBuB,MAAM,MAAP,IAChB,QAKQI,IAA6BC,MAA7BD,EAAoBjD,MAAe,KAA3C,EAJqB,KAAQiD,MAAR,MACf1B,IAAAD,IAAA,IAAA,KAAA,KAAA,KAAJ,IACUL,MAAS,KAAA,WAAA,IAAA,IAAnB,EAD+B,EAJkB,E,K,I,K,ICOvC,MAAkB,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EATvG,EAGUrF,GAAAA,MAAyC,SAAA,GAAd,IAAkDiH,MAAM,UAAb,GAA3C,IAE/B,KAF+B,EAAoE,KAAvE,IAAV,MAInBjH,IAAM,OAAmB,MAAe,KAA4B,KAAT,MAAoBuH,SAAO,KAJzF,EAAuG,GAC9F,GAAP,EACE,OACKjB,KAAqB,SAAA,GAArBA,IAAyC,KAAiBW,MAA1DX,IAA4EW,MAAM,KAAlFX,IAA0G,GAAjH,E,UCIJ,MAAA,QAAA,IAAA,KAAA,KAAA,IASiB,UAIf,SAJe,MASf,SATe,MAoCf,SApCe,MA4Cf,SA5Ce,MAgDP,KAhDO,QA2DH,MAAY,EAvDxB,EAEa,MAAU,MAArB,EAGF,EAmBU,QAAR,IAEqBkB,GAAAA,IAAAA,KAA2C,KAAA,IAA9C,MAGP,MAAX,EAGF,EAKE,EAGF,EAEa,MAAU,UAAd,IAAP,EAEM,OACN,IAAA,OAGI,IAAA,GAII,KAJJ,EAEI,MALR,EAEQ,MAH6B,E,e,K,I,M,K,I,Q,O,WCvDzC,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAC,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAwB1B,SAAA,KAE/C,MAAA,EA1ByE,IAAA,KAAA,OAAA,cAAA8H,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,c,I,I,I,K,M,M,K,I,Q,O,K,M,K,QCA1E,MAAA,QAAA,IAAA,KAAA,KAAA,IAI+B,MAAT,IAgCrB,EA9BD,GAEMnI,GAAAA,IAAM,QAAV,IAEuBkG,IAAAD,OAAA,MAAA,KAAA,MACrB,IAKEqC,MAAJ,IAKA,EAJqBA,MAAgB,KACnC,EANE,EAaGC,GAAAA,SAAa,KAApB,EAGK,GACUA,GAAAA,MAAa,KAC5BC,IAAAA,OACEjI,MACC,MAAA,aAAA,UAAA,IAFM,MAKT,E,EC3Bc,QA4BF,QAAa,EA5BX,UAOd,MAEE,eAMa,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,IAAH,MACI,MACAkB,MACI,KAAC,cAAO,KAAR,MADC,KAAA,OAAA,IAAA,QAGP,MAXZ,IACcA,MAAK,KAAA,WAAA,IAAA,eAaF,MACjB,EAEJ,EARkDgH,GAAAA,IAAKC,IAAQ,GAAA,GAAA,IAAT,IAAX,E,a,I,I,K,K,K,I,K,I,K,IC+CjB,MA2FmC,EACnD,MAAV,GAEkB,MAAX,GACsB,SAC3B,IAAA,SAAA,SAKwC,IAAA,KAC3B,MAAZC,GAAmC,IAAnCA,oBAA8C,KAC7C,KAD6C,KAR1C,wBADiB,0BA+BPC,OAAH,MAAiB,EAtL/B,UAQE,KACE,EAGF1C,GAAAA,IAAAD,MAAA,IAAA,QAAA,MAAiB,OAAW,OAAS,OAAgB,OAAa,IAClE,IAAA,KACwB,UAAA,KAAtB,GAAA,GAAuD,UAAA,KAAtB,GAAjC,IACA,IAFF,MAOA,GAAA,GAES,EAAA,IAAP,EAGgC,kBAClC4C,KACiB,KAAC,KAAD,KADjBA,EAcAzI,MAAa,KAACG,IAAD,MAETA,IAAM,OAAV,IAGEmB,MAAY,KACT,MAAA,uBAAA,IADS,eAFZnB,IAAsB,KAAH,MAWKA,IAAnB,EAAA,IAAA,KAAP,EA3BkB,eAEXuI,GAAAA,IAAAA,GAAkBC,GAAAA,IAAcD,MAAD,MAA/BA,KAEAE,IAAAA,GAAeD,GAAAA,IAAcC,MAAD,MAA5BA,KACH9C,GAAAA,IAAAD,OAAA,MAAA,KACE,GAAA,GAAc,GAAd,IADF,MAImBgD,GAAwBC,MAAAA,GAC3C3I,IAAqB4I,IAAUC,IAAD,UAAZ,IACpB,EAK4BC,GAAAA,IAAAA,KAAajJ,MAAa,MAAC,EAAD,KAAhC,EAkBxB8F,GAAAA,IAAAD,OAAA,MAAA,KACEjG,IAAM,UADR,MAI+C,SAAA,KAClCsJ,OAAS,SACfC,GAAY,MAAnB,EAGF,eAEE,IAuBO,cAvBP,EACO,0BA2DA,MACP,EA5DO,MAAqD,KAAhB3H,MAAA,KAAA,UAAA,IAAA,MAAgB,IAAhB,IAAA,IAAA,GAAgB,YAIRH,MAAK,KAAA,OAAA,IAAA,IAAZ,IAC9B2E,MAAO,KAAA,IAAC,QAAD,IAAA,IAAlB,EAAmB,KAAA,OAAA,IACjBF,GAAAA,IAAAD,OAAA,MAAA,KAA+B,MAC7BmD,GAAAA,IACAI,IACAf,GAAAA,IACA,KACA,QAL6B,IAajC,EATYgB,GAAAA,SAAO,KAAX,EAEFC,GAAAA,IACEC,GAAAA,IAEEC,GAAAA,SAFsB,MADpB,KADC,EAWV,MAAwD,KAAhBhI,MAAA,KAAA,UAAA,IAAA,MAAgB,IAAhB,IAAA,IAAA,GAAgB,IACvC,OAAJ6G,IAA2B,QAAJA,IAAD,IACZ,UAAJA,IAA2B,QAAJA,IAAD,IACjB,OAAA,IACF,GAAA,IACzBoB,GACE3D,GAAAA,IAAAD,IAAA,IAAA,SAAA,MADF4D,EAMoCC,MAAAA,EAEHD,MAGP,KAAQ,KADZC,IACQrB,IAAJ,MACtBsB,GAAAA,QAAJ,IASE7D,GAAAA,IAAAD,OAAA,IAAA,KAA+B,MAC7BmD,IACAI,gBAF6B,IAQnC,EAhBWtD,GAAAA,IAAAD,OAAA,IAAA,KAAgC,MACrCmD,IACAI,gBAFqC,IAAvC,EAuBR,GACsB,QAAA,WAAbpF,IAAP,EAGF,KAMShE,MAAa,KAAQ4J,GAAa,EAAbA,GAAR,MAApB,EAeE,OAGeV,GAAAA,OAAS,MACtB,GACE,EAGM,MAAR,WAKEW,IAAyBrB,IAAmB,KAAO,EAC5C,KAD4C,IAA3B,OAL1B,EACEA,IAAkB,KAAa,MAAP,YAQ5B,EAHiBsB,GAAAA,IAAWX,GAAAA,IAAI,KAAOH,MAAZ,MAAhB,E,Q,O,I,KCnMD,MAAyB,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAH9G,MACSlD,GAAAA,IAAAD,MAAA,MAAA,KAAA,KAAAC,GAAuBA,IAAAD,OAAA,IAAA,KAAA,MAAvBC,GAAuDA,IAAAD,OAAA,IAAA,KAAA,MAAvDC,GAA6FA,IAAAD,OAAA,IAAA,KAAA,IAApG,E,K,KCFY,MAA0B,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAH/G,KACMrE,MAAa,KAAA,KAAjB,KACF,EAD0B,E,K,KC0BZ,MAAgC,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EA3BrH,0BACW,MAAoC,SAAA,OAAf,GAAoC4F,MAAM,MAAP,IAAnC,GAA2D,MAA3D,GAArB,GACT,IAwBF,EAnBa,QAGT,GACwB,KAAA,QAAK,OAA3B,UAGkC,QAAA,QAAI,QAA/B,MAAoD,QAAG,KAAH,KAAgB,KAApE,SAA2B,QAAA,QAAI,QAA/B,MAAoD,QAAG,KAAH,KAAgB,KAApE,QAFDpH,SAAM,KAAV,MAGJ,EAGE,GACE,MAAqB,KAArB,OAAqD,KAAA,IAAIA,MAAM,KAA/D,IACQ,GACR,GAF6E,KAErE,EADV,GACE,GATuB,KASf,EADA,KACR,GACF,KADU,EANV,IAGA,GACE,MAAqB,KAArB,OAAqD,KAAA,MAAIA,MAAM,KAA/D,IACQ,GACR,GAF6E,KAErE,EADV,GACE,GAGJ,KAHY,EADA,KACR,GACF,KADU,EAJF,EAEN,MAAqB,KAArB,OAAqD,KAAA,MAAIA,MAAM,KAA/D,IACQ,GACR,GAF6E,KAErE,EADV,GACE,GAEJ,KAFY,EADA,EACR,GACF,EADU,E,K,KClBF,MAA2B,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAHhH,EACYwF,MAAS,KAAA,WAAA,IAAA,IAAnB,E,KCakC,SAAA,KAAA,KAAA,OAAA,IAAA,MAQpCxF,MAAqB,KAA8B,IAAA,IAAA,WAA9B,UAKP,MAAiB,E,K,O,O,ICab,OAgEf,OAyXW,MAAgB,EAzbZ,EAAA,KAAA,IA8ChB8F,GAAAA,IAAAD,OAAA,MAAA,KAAA,MAAA,IAoBA,KApBA,IAAA,IAAA,IA8BC,MAAA,IAED,KAFC,IA9BD,IAyCC,MAAA,IAED,KAFC,IAzCD,IAmDC,MAAA,IAED,KAFC,IAnDD,IAuDC,MAAA,IAED,KAFC,IAvDD,IA2DC,MAAA,IAED,KAFC,IA3DD,IAyEC,MAAA,IAED,KAFC,IAzED,IA8EC,MAAA,IAED,KAFC,IA9ED,IAkGC,MAAA,IAED,KAFC,IAlGD,IAqJC,MAAA,IAED,KAFC,IArJD,IA4PC,MAAA,IAED,KAFC,IA5PD,IA2QA,MAAA,IACA,KADA,IA3QA,IAgRA,MAAA,IAIA,KAJA,IAhRA,IAoSA,MAAA,IACA,KADA,IApSA,IA4SC,MAAA,IAED,KAFC,IA5SD,IAoTC,MAAA,IAED,KAFC,IApTD,IAuVC,MAAA,IAED,KAFC,IAvVD,IAwYC,MAAA,IApYD,KAoYC,IAAA,IAAA,IAxYD,OAkBC,EAhDD,GAAcC,GAAAA,IAAAD,MAAA,MAAA,KAAAkE,GAAAA,IAAA,MACgB,EAAH,MACX,IAAC,IAAD,IAAK,IAAL,IAAS,IAAT,IAAA,IAAH,QACkBhK,MAAG,KAAA,OAAA,IAAA,IAAV,MACOA,MAAG,KAAA,OAAA,IAAA,IAAV,MACV,MACG,MACYwD,MAAQ,KAAA,IAAX,QACW,MAW7B,MAAoC,KAAA,KAFP,MAKX,MAAkB,KAAA,KAAzB,MAKX,MAAyC,KAAA,KAFP,MAG1C,EAsBA,QAAA,OAAA,OAAA,IAI+D,IACjD,MAAC,KAAD,KAIY,MAAA,IAAxB,EAHEyG,GAAAA,IAAmB,MAAC7J,IAAQ8J,IAAQ5B,IAAjB,SACrB,EAKF,QAAA,OAAA,IAG+D,IACjD,MAAC,KAAD,KAIY,MAAA,IAAxB,EAHE6B,GAAAA,IAAqB,MAACC,IAAM9B,IAAP,QACvB,EAKF,KAA4E,IAC9D,MAAC,KAAD,KAIM,MACJ,IAAC,IAAD,IAAK,IAAL,IAAS,IAAT,IAAiB,MAAjB,IAAH,QACC,IAAG,OAAR+B,MAAP,EALEC,GAAAA,IAAgC,MAAA,MAClC,EAOF,EACS9G,MAAQ,KAAA,OAAS,MAAjBA,IAAP,EAGF,KAAA,OACM,MAA8B,QAAH,MACjC,EAD0CpD,GAAAA,IAAN,EAGpC,KAEuC,OACjC,MAA8B,QAAH,MASjC,EARQmK,GAAAA,IAAJ,GACWA,MAAQ,IAAX,MACE,IAIHnK,IAAP,EAIJ,GACuB,SAAqB,MACnCmK,KAAmB,IAA1B,EAGF,YAgBuB,wBAAA,IACd1K,GAAAA,IAAyB,MAAA,OAAhC,EAGF,YAOE,GAAA,GA2BE2K,GAAqB,KAAK,SAAJ,IAAD,KAErBC,GAAqB,KAAM,SAAJ,IAAA,IAAF,KACjB,MAAsB,KAAK,MAAL,MACtB,MAAsB,KAAK,MAAL,MAUxB,MAAQ,GAAA,QACd,EAEA,YAOuB,wBAAA,IAEjB,QAAO,IAAiB,KAAA,KACxB,SAAO,IAAiB,KAAA,KA8DxB,SAAO,IAAa,KAAA,OAEZjH,MAAQ,KAAA,IAElB3D,GAAAA,IAAM,MADR,GAEY,MAAV6K,OAFF,IAIoB,MACJ,IAAC,IAAD,IAAK,IAAL,IAAS,IAAT,IAAiB,MAAjB,IAAH,MACI,MACf7K,IAAgC,MAAA,KAElCkG,IAAAD,IAAA,MAAA,KAAqB,MAAmC,MAAO,IAAG,SAA7C,MASN,MAAR,GACK,SAAC,EAAA,IAAA,KAAA,IAAA,KAAD,KAOd,EAEA,EASA,EAKA,MACqC,QACrC,EAMA,MAC+B,MAAA,IAA7B,GAGE,EACI,IACJ,EAAE,EACAC,GAAAA,IAAAD,OAAA,MAAA,KAA2B,MAAA,KAC7B,IANE,IADJ,EASF,EAOA,EAGI,MAAA,OAAA,IAAA,GAEA6E,MAAgB,QAAhBA,IAJF,EAQF,GACE5E,GAAAA,IAAAD,OAAA,MAAA,KAAmB,UAAA,KACX,QAAR,IACqC,MAAA,IAErCC,IAAAD,IAAA,IAAA,KAAiB,MAAA,IACnB,EAEA,sBACoBtC,MAAQ,KAAA,IAAX,MACgB,MAAP,MACL,MACjBuC,GAAAA,IAAAD,IADF,MAGE,MAAA,KAAmB,MAAE,MAAA,uBAAA,IAAF,KAHrB,KACE,MAAA,KAAmB,SAAwB,IAAA,KAAA,KAAA,KAAtB,MAAA,2BAAA,IAAF,KAIb,MAAR,GACY,MAAC,IAAA,IAAA,KAAA,IAAA,KAAD,KAEgC,MAAA,KAC5C,MAC8B7F,MAAW,KAAK,MAAL,KACV,KAC0B,SAAA,KAG9BJ,IAAM,QAANA,OACzBkG,IAAAD,OAAA,MAAA,KAEG,MAAA,4CAAA,MAFH,MAMgB,IAAlB,GACEC,IAAAD,OAAA,MAAA,KAEG,MAAA,uBAAA,MAFH,MAKW,IAAc,KAAA,MAC3BC,IAAAD,OAAA,MAAA,KAAiB,MAAA,IACnB,EAEA,QACoBtC,MAAQ,KAAA,IAAX,MACgB,MAAP,SAIT4G,IAEGA,IACDQ,GAET,MAAsB,KAAA,KAFbA,EACT,MAAsB,KAAA,KA0B9B,KACE,EAGE,MAAyB,KAAA,KACzB,MAAyB,KAAA,KACrB,KAAA7E,GAAAA,IAAAD,OAAA,MAAA,QAAA,KAAA,MAKV,EApYA,KACE,MAQO,IAGLkE,GAAAA,IAAY,KAAgB,MAHvB,EACLA,GAAAA,IAAY,OAAgB,MADvB,EAPLA,GAAAA,IAAY,OAAmB,KAAH,MAD9B,EAaF,EAZmC,iBAC7BzI,MAAW,MACF,OAAJ6H,OAAF,MAAA,SAAA,MACQ,WAAJA,IAA0B,UAAJA,IAA6B,KAArD,MAAA,KAAA,MADF,IAEK7E,MAAc,MAAK,MAAL,KAAjB,MAAA,aAAA,MAFF,IADQ,OAKb,E,Q,I,K,M,M,K,I,Q,O,K,M,K,M,K,M,K,M,K,M,M,K,YCtFoB,MAEV,MA4Gf,EAzFQ1E,GAAAA,IAAM,MAANA,KAEHgL,MAAQhL,IAAM,QAAP,KAFJA,EACHA,IAA2B,MAACiL,IAAD,KAD/B,EAWK,EAA+C,EAM/C,GACDC,GAAAA,MAAS,IAAb,GAEI,UAAA,IAA2C,IAC7ClL,IAA8B,MAACiL,OAAD,OAElC,EAMMC,GAAAA,MAAS,IAAb,GACElL,IAA4B,MAACiL,OAAD,MAEhC,EAOO,GAIUE,GAAAA,IACXD,MAAS,IAAb,GACEC,IAAY,GAAA,IAEV,UAAA,IAA2C,IAC7CnL,IAAmC,MACjCiL,gBADiC,IAOrC,EAOK,GAKDC,GAAAA,MAAS,IAAb,GAEI,UAAA,IAA2C,IAC7ClL,IAAiC,MAC/BiL,gBAD+B,IAOrC,EAKO,GACDC,GAAAA,MAAS,IAAb,GAEI,UAAA,IAA2C,IAC7ClL,IAAM,MAANA,GACEA,IAAyB,MAACiL,OAAD,OAE/B,E,GClGwB,SAAV,QAAoC,E,W,O,M,K,I,Q,O,Q,QCdlD,IAAA,QAAA,IAAA,KAAA,KAAA,IAuGqE,UAAD,KAOxC,MAAA,EAxGrB,KAWK,QAJAG,MAAGvD,MAAM,MAIT,MAHMwD,MAAGxD,MAAM,MAGf,MAFKyD,MAAGzD,MAAM,MAEd,MADU0D,MAAG1D,MAAM,MAAT0D,YAVf,SAUe,IAEQ,IAAH,IAkDlB,KAAP,EA/CA,WACSC,GAAAA,IAAK,KAAZ,GAAgCA,IAAK,IAArC,IACEA,IAAW,MAAA,IADD,KAAZ,GAAgCA,IAAK,IAArC,IAII,OAAJ,WAOA,SAAA,YAKI5J,MAAa,KAAA,KAAjB,MAYE4G,GAAAA,IAAAA,KAAU,QAAD,MACEpI,MAAW,KAAA,KAClBoL,IAAK,KAAWC,IAApB,IAEe,KAAUC,IAAlB,OAEK,EACc,KAAIA,IAAJ,MAAxB,GAAA,GAAA,IAAA,GAAA,IAAA,GACmB,IAAR,IACX,EAAA,EAAA,GAAA,KAE2B,KAAUA,IAAdC,IAAH,MAPf,KAD6B,KAAxB,MAAA,aAAA,MADZ,KAbIH,IAAK,KAAWC,IAApB,IAEgB,KAAUG,IAAnB,IAEG,KAAIA,IAAJ,MACC,KACa,KAAL3K,IAAZ,MAAA,aAAA,MADK,IAAA,IAAD,KAHJ,EAD6B,KAAxB,MAAA,aAAA,MAwBduK,IAAa,MAAA,KACb,EA/BE,EANS,KAAUK,QAAgC,KAAhCA,IAAnB,IAGA,EAFwB,MAAIA,IAAJ,MAAf5K,IAAP,EAuCC,OACL,SAEO,OAEI,OAAJ,SAMmBQ,MAAfwD,IAAJ,GAMSP,MAAc,MAAMoH,GAAAA,IAAN,SAC1B,IAGA,EAFE,IAAO,QAAA,IAAP,EAGF,EACc,KAAV,GAAJ,IAGuB,KAAA,IAAnB,EACA,EAAW,IAIZ,QAAA,IAAP,EAnBY,SAAH7G,IAAqB,KAArBA,IAAP,EALqB,KAAA,IAAnB,EACA,MACA,MALF,MAFA,E,E,QCfQ,QAA4B,EAlD1C,WAAA,IAAA,IAAA,KAAA,IAU0B,KAAd,IACmB,OAAVyC,IAAH,IACW,MAAVA,IAAH,IAGF,MA2BZtH,MAAqB,KAAe,EA1CtC,KA0CsC,IAAA,MAAA,IAAA,IAAf,SAMvB,EA5BS2L,GAAAA,IAAL,KAMU,IACRC,IAASC,MAAG,IAAJ,KAEHhL,IAAP,EAEF,GACO,GAAA,MACG,MACRb,MAAqB,KAAC8L,IAAQrH,IAG5BsH,IACAC,IAJkC,EAAA,IAAA,IAAA,IAAA,KAAf,SAMvB,E,UC7CF,MAAA,QAAA,IAAA,KAAA,KAAA,I,QAwBc,MAAgC,EAlB9C,UAIE,IACEC,GAAAA,IAAAA,KAAgC,MAE9BA,IAAAA,KAAsB,KAAA,IAAE,MAAwB,MAFlB,MADlC,IAMA,IACEA,GAAAA,IAAAA,KAAgC,MAE9BA,IAAAA,KAAsB,KAAA,IAAE,MAAwB,MAFlB,MADlC,EAMF,E,UClBA,MAAA,QAAA,IAAA,KAAA,QA4BQ,QAANrM,OAEW,IAAA,KAFXA,KACW,IAAA,KADXA,Y,SADuC,MAM1BI,MAAA,KACG,EACT,KADS,IA6BD,KA7BC,KAuDH,KAvDG,KA8Fa,KA9Fb,KAiIU,KAjIV,KADH,EAAA,UA8JD,MAAa,EAzK3B,MAESkM,MAAAA,IAAP,EAWO,MAWDC,GAAAA,MAAgB,KAApB,GAaEC,IAAqB,KAAA,MAbvB,EAC0BC,IAAAA,KAAWC,IAAAA,OAAAA,IAAAA,KAAAA,MAAkB,IAAnB,KAEc,MAAA,KAChD,KAGEhL,MAAY,KAAE,MAAA,SAAA,KAAF,KAEJ,IALV,EACyB,KAAA,MAU7B,EAEe,MAST6K,GAAAA,MAAgB,KAApB,GAaEC,IAA6B,MAAA,MAb/B,EAC0BC,IAAAA,KAAWC,IAAAA,OAAAA,IAAAA,KAAAA,MAAkB,IAAnB,KAEc,MAAA,KAChD,KAGEhL,MAAY,KAAE,MAAA,SAAA,KAAF,KAEJ,IALV,EACiC,MAAA,MAUrC,EAEa,YAWP6K,GAAAA,MAAgB,KAApB,GAmBEC,IAA2B,qBAAA,IAnB7B,EAC0BC,IAAAA,KAAWC,IAAAA,OAAAA,IAAAA,KAAAA,MAAkB,IAAnB,KAEc,MAAA,KAEA,MAAA,KAEhD,GAAA,GACE,EAG2B,qBAAA,IAejC,EAE6B,UAUvBH,GAAAA,IAAgB,KAApB,GAiBEC,IAA2C,SAAA,eAhB3C9K,MAAY,SAAA,KAGY+K,IAAAA,KAAWC,IAAAA,OAAAA,IAAAA,KAAAA,MAAkB,IAAnB,KAEc,MAAA,SAChD,KACyB,KAErB,KAFqB,MAe7B,EAZUC,GAAAA,oBAAQ,IACV,EAakB,SAKpBJ,GAAAA,MAAgB,KAApB,GAYEC,IAAwC,MAAA,OAZ1C,EAC0BC,IAAAA,KAAWC,IAAAA,OAAAA,IAAAA,KAAAA,MAAkB,IAAnB,KAEc,MAAA,KAChD,KAIiB,MAAA,SAAA,KACgB,MAAA,OAWrC,E,K,KC/LY,MACR,KAAgB,QAEtBtM,MAAqB,KAAO,KAAwB,IAAA,QAA/B,SAA8C,EAZnE,QACE,MAGgBqB,QAAMmL,QAAkC,IAAnC,KAAA,UAAA,IAAA,OACJ,MACjB,EAJE,E,K,O,ICY0B,KAAH,IAKV,EACO,KADP,KASO,KATP,KAYD,KAZC,IAgBa,KAhBb,KAoBO,KApBP,KAwBC,KAxBD,KA4BH,KA5BG,KAkCH,KAlCG,KAoCR,KApCQ,KAsCT,KAtCS,KAwCA,KAxCA,KAmDa,KAnDb,KAwDN,KAxDM,IAmEE,KAnEF,KAuEK,KAvEL,KA4EA,KA5EA,KAuFgB,KAvFhB,KAkGC,KAlGD,KAoGG,KApGH,KAqGe,KArGf,KA2GoB,KA3GpB,KA6Ga,KA7Gb,KA+GF,KA/GE,KAiHC,KAjHD,KA2HwB,KA3HxB,KAkIS,KAlIT,KAoIA,KApIA,KA0IG,KA1IH,QAAH,QA4IZ,EAjJ4B,OAC5B,QAAA,IAD+C,EAMzB,EACpBlL,MAAa,KACXmL,GAAAA,UAAqB,SAArBA,OAAAA,IADW,OAKb,EAGOC,GAAAA,IAAAA,MAAAA,MAAAA,KAAAA,SAAqB,KAA5B,EAEY,EACZpL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KACN,EAAP,EAE0B,EAC1BnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KACN,EAAP,EAEoB,EACpBnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KACN,IAAP,EAEc,EACdnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KACN,EAAP,EAEU,EAKDnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADT,EAEH,EACVnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KAD+C,EAEvD,EACLnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADU,EAEnB,EACJnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADS,EAET,EAUJnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADb,EAEiB,EAIjBnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADwB,EAEvC,EAUEnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADb,EAEM,EAGNnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADiD,EAErD,EAITnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADoB,EAE7B,EAUJnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADb,EAEoB,EAU7BnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KAFJ,EAGK,EACdnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADkD,EAE/C,EAAa,EACD,EAK5BnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KAFyB,EAGL,EACjCnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADwC,EAE3B,EAC1BnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADqD,EAEvD,EACXnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KAD8C,EAE7C,EAOLnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADQ,EAIO,EACrCnL,MAAa,KACXmL,GAAAA,UAAqB,KADV,KAGf,EAGwB,EACtBnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KAD8C,EAE9C,EAKJnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KAD6B,EAEnC,EAChBnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADG,E,Q,M,M,K,I,Q,O,K,MCrJkC1M,MAAG,KAAA,OAAA,IAAA,IAAV,MAmB9C,EAXM,GACoB4M,GAAAA,IAAyB,KAAA,OAClD,IACM/M,IAAM,MAAV,KAIS,MAAA,aAAA,MAAP,EAHqBA,IAA8C,MAAA,KACnE+M,IAAyB,KAAA,SAK7B,E,a,I,I,I,K,I,K,I,K,MChBF,IAAA,QAAA,IAAA,KAAA,KAAA,IAOmD,EAAH,MAEjBhG,MAAG,KAAA,OAAA,IAAA,IAAV,IAEO,EAAH,MACK,IA0DhB3G,MAAA,KACZ4M,KAAe,EACR,KADQ,KAeN,KAfM,IAkBE,KAlBF,KAqBE,KArBF,KADH,EAAA,OAgCjBA,KAAkD,MAAd,MA+Cb,IAAE,MAAlB,GACLA,IAAAA,KAA4B,KAAA,IAAE,MAAyB,KAAC,KAAD,KAO9C,UAAX,GACE5M,MAAW,KAAC6M,IAAY,IAAb,KAAwB,KAAC,KAAD,KADrC,EAoBiBC,OAAH,MAAe,EAnKtBC,GAAAA,IAAL,GAC6BH,IAAAA,KAA4B,KAAA,IAA/B,MACK,IAExBI,IAAP,EAGF,GAEIC,GAAAA,IAAkB,MADpB,IAEErN,IAAM,MAFR,GAGEgN,IAAAA,KAAe,MAHjB,GAMIK,IACEL,IAAAA,KAA0C,MAAA,KADT,IAErC,EAAE,IACAtL,MAAa,SACX,QAAA,IADW,MAMb2L,MAAmC,IAIxBA,IAAkB,IACjC,MAMKrN,IAAM,MAAX,GACE,EAIAgN,IAAAA,KAAe,MADjB,GAEGM,IAAsB,KAAA,KAFzB,GAIiBN,IAAAA,KAA8B,MAAA,KAC7CM,IAAsB,KAAA,OACtB,IAA4B,MAA5B,IACEL,IAAY,IAA4B,MAAT,IAC/BM,IAAuB,KAIpBF,IAAkB,IAAzB,EArBE,EA6DJ,OACqBJ,GAAAA,IAAY,IAAE,IACjCI,IAA4B,IACd,UAAd,KACEnH,IAAAD,OAAA,IAAA,KAAyBuH,IAAyB,EAC3C,KAD2C,QAAlD,OAcA,IAAA,KAAyBA,IAAwB,EAC1C,KAD0C,QAAjD,OAgBJ,EA7BW,IACiBtH,GAAAA,IAAAD,OAAA,IAAA,KAAcuH,GAAAA,IAAU,MAAxB,IACiB,UACrCC,OACErN,MAAW,KAACqN,IAAD,KAAqB,KAAC,KAAD,KAM3BpE,IAAP,EANmC,GACjBoE,GAAAA,IAAW,IACrB,OAAJ,IACEpE,IAAc,IADhB,EAGF,EAKC,MACiBnD,GAAAA,IAAAD,OAAA,IAAA,KAAcuH,GAAAA,IAAU,MAAxB,IACiB,UAErCC,eACErN,MAAW,KAACqN,IAAD,KAAqB,KAAC,KAAD,KAM3BC,IAAP,EANmC,GACjBD,GAAAA,IAAW,IACrB,OAAJ,IACEC,IAAgBC,IAAK,GAAA,GAAA,IAAR,IADf,EAGF,EAjDNX,GAAAA,IAAAA,KAA0B,qBAAA,MAC5B,EAESC,GAAAA,MAAY,IAAnB,EAGOW,GAAAA,SAAoB,KAA3B,EAGOA,GAAAA,SAAoB,OAApBA,IAAP,EAyDsD,KAAA,IACtD1H,GAAAA,IAAAD,OAAA,MAAA,KAAyB+G,IAAAA,KAAkC,EACpD,KADoD,IAA3D,OAGF,EAFeA,GAAAA,IAAAA,KAA0C,MAACa,GAAAA,IAAD,KAAhD,EAM2B,OAC7B3H,GAAAA,IAAAD,OAAA,IAAA,KAA4B,MAAA,KAAjC,GACOoH,IAAkB,IAAvB,GACEA,IAAsCJ,IAAY,IAAE,IAAjB,IADrC,IAGA/G,IAAAD,OAAA,IAAA,KAAyB+G,IAAAA,KAAkC,EACpD,KADoD,IAA3D,OAJF,MAeF,EAVW,EACHtL,MAAY,KAC8DmM,GAAAA,IAAvE,MAAA,aAAA,MACgEA,IAA9D,MAAA,aAAA,MADF,IADS,KAKLX,GAAAA,IAAgC,MAACW,IAAD,KAAvC,E,e,K,I,M,K,I,Q,O,WCzKV,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA7F,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OA2G1B,SAAA,KAAmB,MAAA,EA3GO,IAAA,KAAA,OAAA,cAAA8H,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,ECezD,WAAH,QAqCZ,E,Q,MCvDW/H,MAAA,KAAA,IAAA,QAAA,O,KAAA,QAsEZ,EADQJ,GAAAA,IAAM,MAAb,E,e,K,I,M,K,I,Q,O,WCnEF,OAAA,KAA6E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAgI,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAoBtC,SAAA,KAA2B,MAAA,EApBW,IAAA,KAAA,OAAA,cAAA8H,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,e,K,I,M,K,I,Q,O,WCA7E,OAAA,KAA6E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAqDtC,SAAA,KAA8B,MAAA,EArDQ,IAAA,KAAA,OAAA,cAAA8H,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,W,I,I,M,M,K,I,Q,OCa7E/H,MAAA,OAAA,MAAA,KAAA,KAAA,KAAA,KAAA,KAAyC,EAAzC,SAAA,QAAA,IAAAM,GAAAA,IAAAoN,IAAA,GAAApN,IAAA,IAAAwF,IAAAD,MAAA,MAAA,KAAA,IAAA,UAAA7F,MAAA,KAAAM,IAAA,IAAA,IAAA,KAAA,IAAA,SAAA,EAAA,IAAA,EAAAwF,GAAAA,IAAAD,MAAA,MAAA,KAAA6H,GAAAA,IAAA,IAAA,E,Q,O,O,M,M,K,I,Q,O,K,M,K,M,K,M,K,M,K,M,K,M,K,M,K,QCsFC,EAhGM,GACE,MACA,MACE,MACQ,MAQf9H,GAAAA,IAAOC,IADT,MAQS,MAAA,KAAwC,KAAA,MARjD,IACS,MAAA,KAAwC,mBAAA,IADjD,EAUF,EAKSD,GAAAA,IAAOC,OAAA,MAAA,KAA6D,SAAA,KAA3E,EAQOD,GAAAA,IAAOC,OAAA,MAAA,KAAgD,SAAA,KAA9D,EAKK,SAKDjG,GAAAA,IAAM,QAAV,IASSgG,IAAOC,OAAA,MAAA,KAAiD,MAAA,OAA/D,EANOD,IAAOC,MAAA,MAAA,KAAiD,MAAA,OAA/D,EAkBKD,GAAAA,IAAOC,OAAA,MAAA,KAAwD,YAAA,MAAtE,EAaAD,GAAAA,IAAOC,OAAA,MAAA,KAA0E,SAAA,KAGnF,EAOSD,GAAAA,IAAOC,OAAA,MAAA,KAAyD,YAAA,MAAvE,EAMK,EACE+E,UAAO,KAAd,E,WCtFqB,MAAA,KAGb,MAAV,MAGE+C,IAAAA,KAAAA,MAAoC,UAAA,MAHtC,EACqC,MAAd,MADvB,GAMc,MAAkC,E,mB,I,Q,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,OCnBzC,IAAA,QAEU,IAAA,KAUL,IACC,IACI,IACH,IACD,EACA,KADA,KAAH,MAmCQnM,MAAK,KAAR,IACe,IACT,IACA,IAqBRxB,MAAM,KAAT,IAiCW,KAAY,EACf,KADe,KAUd,KAVc,KAkBtB,KAlBsB,KAAA,KAsBnB,KAtBmB,KAA3B,MA+BqB,UAGV,KAHU,MASd,KATc,MAAH,MAeA,KAAH,MAgBJ,KA2BkC,MAAC,EACpC,KADoC,IAAD,KAAxB,IAWH,QACH,QACD,QACN,IAAH,IACM,UAAA,MAAH,IAoEiB,EACf,KADe,KAIT,KAJS,KAAA,IAAH,IAoEX,IACE,IAYQ,EACE,UADF,IAAA,IAOC,EACC,UADD,IAKV,QALU,IAOS,EACR,UADQ,IAKnB,QALmB,IAOX,EACG,UADH,IAAA,IAOR,MAAA,IAAA,IAID,MAAA,IAAA,IAID,MAAA,IAAA,IAII,MAAA,IAAA,IAIW,MAAA,IAEb,IAFa,IAIb,MAAA,IAAsD,IAAtD,IACC,MAAA,IAAuD,IAAvD,IACG,MAAA,IAEJ,IAFI,IAnDL,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAH,IA+YC,EACqB,KADrB,KAjRY,EACR,KADQ,KAAA,KAKR,KALQ,KAAA,KAAA,KAAH,IAgWI,EAAH,OAkFrB,IAAA,KAAA,MAAyD,MAGzD,IAA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DJ,YADI,YADP,YADG,YADH,QADG,YADJ,YADE,QADH,YADO,YADH,YADC,YADA,QADG,YADG,QADA,QADE,QADF,QADD,YADF,YADA,QADF,QADM,YADV,YADC,YADF,QADI,QADL,YADO,YADG,QADA,QADA,YADF,QADC,YADF,YADF,YADA,YADC,YADD,YADW,YADX,YADC,YADD,YADG,QADH,YADI,YADL,YADH,YADA,QADC,YADG,YADF,YADC,YADJ,YADO,QADN,YADD,YADK,YADL,YADM,YADD,YADF,QADI,YADA,YADF,QADC,QADH,QADA,QADI,YADH,YADE,QADG,QADA,QADA,QADA,YADD,YADF,YADH,YADG,YADA,QADI,YADH,YADF,YADD,QADC,YADD,YADK,QADL,QADA,QADJ,YADG,YADC,QADM,YADT,YADI,QADC,QADD,YADE,YADF,YADJ,YADK,QADN,YADU,KADT,YADC,YADD,YADA,QADK,QADN,YADQ,YADH,IAFE,E,O,M,K,I,Q,S,M,M,MChSK,KAE3B,MAEkC,KAOlC,MAEgC,KAIhC,MAAA,EAjB2B,EAAyC,KAAhClxC,MAAA,KAAA,UAAA,IAAA,MAAgC,IAAhC,IAAA,IAAA,GAAgC,IAC7D,EAAA,KAAP,EAGkC,OAG9B,IAAJ,KAGA,EAFE,EAK8B,GAGhC,E,E,QCJY,QAAsB,EAfpC,KAGMA,MAAa,KAAA,KAAjB,GAMQ,UAAA,KACC,KAACoJ,MAAD,KAET,EARE,E,K,O,ICoDqD,KAAH,I,QAgNxC,QAAoB,EA/PlC,aAGM,UAAJ,SACoBtH,MAAM,KAAA,IAAC,iBAAD,IAAA,IACY,IAGR,KAAA,KAOLwC,MAPvB,GACuB6sC,IACZ,IACA,IAF2C,MAA1C,KAAO,KAKjB,IACqB,KAAA7sC,IAAAD,IAAA,IAAA,KAAA,EAAA,OAAA,KAPK,KAAA,QAA5B,GAiBF,EAsBuD,gBACxBvC,MAAM,KAAA,IAAC,iBAAD,IAAA,IAErC,IAAA,WAAA,WAAA,WAAA,QAAA,QAAA,IAwEyBg4B,MAAK,QAAN,GAAe7zB,MAAM,KAAlC,EAAA,IAAA,IAAP,EApB0C,KAAA,OAE1C,IAAe,KA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,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,OCXzC,IAAA,QAEU,IAAA,KAUL,MACC,IACI,IACH,IACD,EACA,KADA,KAAH,MAmCQnsC,MAAK,KAAR,IACe,IACT,IACA,IAqBRxB,MAAM,KAAT,IAiCW,KAAY,EACf,KADe,KAUd,KAVc,KAkBtB,KAlBsB,KAAA,KAsBnB,KAtBmB,KAA3B,MA+BqB,UAGV,KAHU,MASd,KATc,MAAH,MAeA,KAAH,MAgBJ,KA2BkC,MAAC,EACpC,KADoC,IAAD,KAAxB,IAWH,QACH,QACD,QACN,IAAH,IACM,UAAA,MAAH,IAoEiB,EACf,KADe,KAIT,KAJS,KAAA,IAAH,IAoEX,IACE,IAYQ,EACE,UADF,IAAA,IAOC,EACC,UADD,IAKV,QALU,IAOS,EACR,UADQ,IAKnB,QALmB,IAOX,EACG,UADH,IAAA,IAOR,MAAA,IAAA,IAID,MAAA,IAAA,IAID,MAAA,IAAA,IAII,MAAA,IAAA,IAIW,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AAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,QAAA,QAAA,QAAA,QAAA,QAAA,MAyJA,YAFsB,YADL,YADI,YADL,YADA,YADC,QADG,YADH,YADC,QADH,YADD,QADM,QADE,YADP,QADK,QADA,QADA,YADF,YADD,YADA,YADE,QADA,YADE,YADJ,YADK,QADF,YADA,YADN,QADU,YADP,YADI,YADN,YADA,YADA,YADK,YADC,YADG,YADA,YADJ,YADI,YADP,YADG,YADH,QADG,YADJ,YADE,QADH,YADO,YADH,YADC,YADA,QADG,YADG,QADA,QADE,QADF,QADD,YADF,YADA,QADF,QADM,YADV,YADC,YADF,QADI,QADL,YADO,YADG,QADA,QADA,YADF,QADC,YADF,YADF,YADA,YADC,YADD,YADW,YADX,YADC,YADD,YADG,QADH,YADI,YADL,YADH,YADA,QADC,YADG,YADF,YADC,YADJ,YADO,QADN,YADD,YADK,YADL,YADM,YADD,YADF,QADI,YADA,YADF,QADC,QADH,QADA,QADI,YADH,YADE,QADG,QADA,QADA,QADA,YADD,YADF,YADH,YADG,YADA,QADI,YADH,YADF,YADD,QADC,YADD,YADK,QADL,QADA,QADJ,YADG,YADC,QADM,YADT,YADI,QADC,QADD,YADE,YADF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","sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n *\n * @format\n * @oncall react_native\n * @polyfill\n */\n\n\"use strict\";\n\n/* eslint-disable no-bitwise */\n// A simpler $ArrayLike. Not iterable and doesn't have a `length`.\n// This is compatible with actual arrays as well as with objects that look like\n// {0: 'value', 1: '...'}\nglobal.__r = metroRequire;\nglobal[`${__METRO_GLOBAL_PREFIX__}__d`] = define;\nglobal.__c = clear;\nglobal.__registerSegment = registerSegment;\nvar modules = clear();\n\n// Don't use a Symbol here, it would pull in an extra polyfill with all sorts of\n// additional stuff (e.g. Array.from).\nconst EMPTY = {};\nconst CYCLE_DETECTED = {};\nconst { hasOwnProperty } = {};\nif (__DEV__) {\n global.$RefreshReg$ = () => {};\n global.$RefreshSig$ = () => (type) => type;\n}\nfunction clear() {\n modules = Object.create(null);\n\n // We return modules here so that we can assign an initial value to modules\n // when defining it. Otherwise, we would have to do \"let modules = null\",\n // which will force us to add \"nullthrows\" everywhere.\n return modules;\n}\nif (__DEV__) {\n var verboseNamesToModuleIds = Object.create(null);\n var initializingModuleIds = [];\n}\nfunction define(factory, moduleId, dependencyMap) {\n if (modules[moduleId] != null) {\n if (__DEV__) {\n // (We take `inverseDependencies` from `arguments` to avoid an unused\n // named parameter in `define` in production.\n const inverseDependencies = arguments[4];\n\n // If the module has already been defined and the define method has been\n // called with inverseDependencies, we can hot reload it.\n if (inverseDependencies) {\n global.__accept(moduleId, factory, dependencyMap, inverseDependencies);\n }\n }\n\n // prevent repeated calls to `global.nativeRequire` to overwrite modules\n // that are already loaded\n return;\n }\n const mod = {\n dependencyMap,\n factory,\n hasError: false,\n importedAll: EMPTY,\n importedDefault: EMPTY,\n isInitialized: false,\n publicModule: {\n exports: {},\n },\n };\n modules[moduleId] = mod;\n if (__DEV__) {\n // HMR\n mod.hot = createHotReloadingObject();\n\n // DEBUGGABLE MODULES NAMES\n // we take `verboseName` from `arguments` to avoid an unused named parameter\n // in `define` in production.\n const verboseName = arguments[3];\n if (verboseName) {\n mod.verboseName = verboseName;\n verboseNamesToModuleIds[verboseName] = moduleId;\n }\n }\n}\nfunction metroRequire(moduleId) {\n if (__DEV__ && typeof moduleId === \"string\") {\n const verboseName = moduleId;\n moduleId = verboseNamesToModuleIds[verboseName];\n if (moduleId == null) {\n throw new Error(`Unknown named module: \"${verboseName}\"`);\n } else {\n console.warn(\n `Requiring module \"${verboseName}\" by name is only supported for ` +\n \"debugging purposes and will BREAK IN PRODUCTION!\"\n );\n }\n }\n\n //$FlowFixMe: at this point we know that moduleId is a number\n const moduleIdReallyIsNumber = moduleId;\n if (__DEV__) {\n const initializingIndex = initializingModuleIds.indexOf(\n moduleIdReallyIsNumber\n );\n if (initializingIndex !== -1) {\n const cycle = initializingModuleIds\n .slice(initializingIndex)\n .map((id) => (modules[id] ? modules[id].verboseName : \"[unknown]\"));\n if (shouldPrintRequireCycle(cycle)) {\n cycle.push(cycle[0]); // We want to print A -> B -> A:\n console.warn(\n `Require cycle: ${cycle.join(\" -> \")}\\n\\n` +\n \"Require cycles are allowed, but can result in uninitialized values. \" +\n \"Consider refactoring to remove the need for a cycle.\"\n );\n }\n }\n }\n const module = modules[moduleIdReallyIsNumber];\n return module && module.isInitialized\n ? module.publicModule.exports\n : guardedLoadModule(moduleIdReallyIsNumber, module);\n}\n\n// We print require cycles unless they match a pattern in the\n// `requireCycleIgnorePatterns` configuration.\nfunction shouldPrintRequireCycle(modules) {\n const regExps =\n global[__METRO_GLOBAL_PREFIX__ + \"__requireCycleIgnorePatterns\"];\n if (!Array.isArray(regExps)) {\n return true;\n }\n const isIgnored = (module) =>\n module != null && regExps.some((regExp) => regExp.test(module));\n\n // Print the cycle unless any part of it is ignored\n return modules.every((module) => !isIgnored(module));\n}\nfunction metroImportDefault(moduleId) {\n if (__DEV__ && typeof moduleId === \"string\") {\n const verboseName = moduleId;\n moduleId = verboseNamesToModuleIds[verboseName];\n }\n\n //$FlowFixMe: at this point we know that moduleId is a number\n const moduleIdReallyIsNumber = moduleId;\n if (\n modules[moduleIdReallyIsNumber] &&\n modules[moduleIdReallyIsNumber].importedDefault !== EMPTY\n ) {\n return modules[moduleIdReallyIsNumber].importedDefault;\n }\n const exports = metroRequire(moduleIdReallyIsNumber);\n const importedDefault =\n exports && exports.__esModule ? exports.default : exports;\n\n // $FlowFixMe The metroRequire call above will throw if modules[id] is null\n return (modules[moduleIdReallyIsNumber].importedDefault = importedDefault);\n}\nmetroRequire.importDefault = metroImportDefault;\nfunction metroImportAll(moduleId) {\n if (__DEV__ && typeof moduleId === \"string\") {\n const verboseName = moduleId;\n moduleId = verboseNamesToModuleIds[verboseName];\n }\n\n //$FlowFixMe: at this point we know that moduleId is a number\n const moduleIdReallyIsNumber = moduleId;\n if (\n modules[moduleIdReallyIsNumber] &&\n modules[moduleIdReallyIsNumber].importedAll !== EMPTY\n ) {\n return modules[moduleIdReallyIsNumber].importedAll;\n }\n const exports = metroRequire(moduleIdReallyIsNumber);\n let importedAll;\n if (exports && exports.__esModule) {\n importedAll = exports;\n } else {\n importedAll = {};\n\n // Refrain from using Object.assign, it has to work in ES3 environments.\n if (exports) {\n for (const key in exports) {\n if (hasOwnProperty.call(exports, key)) {\n importedAll[key] = exports[key];\n }\n }\n }\n importedAll.default = exports;\n }\n\n // $FlowFixMe The metroRequire call above will throw if modules[id] is null\n return (modules[moduleIdReallyIsNumber].importedAll = importedAll);\n}\nmetroRequire.importAll = metroImportAll;\n\n// The `require.context()` syntax is never executed in the runtime because it is converted\n// to `require()` in `metro/src/ModuleGraph/worker/collectDependencies.js` after collecting\n// dependencies. If the feature flag is not enabled then the conversion never takes place and this error is thrown (development only).\nmetroRequire.context = function fallbackRequireContext() {\n if (__DEV__) {\n throw new Error(\n \"The experimental Metro feature `require.context` is not enabled in your project.\\nThis can be enabled by setting the `transformer.unstable_allowRequireContext` property to `true` in your Metro configuration.\"\n );\n }\n throw new Error(\n \"The experimental Metro feature `require.context` is not enabled in your project.\"\n );\n};\n\n// `require.resolveWeak()` is a compile-time primitive (see collectDependencies.js)\nmetroRequire.resolveWeak = function fallbackRequireResolveWeak() {\n if (__DEV__) {\n throw new Error(\n \"require.resolveWeak cannot be called dynamically. Ensure you are using the same version of `metro` and `metro-runtime`.\"\n );\n }\n throw new Error(\"require.resolveWeak cannot be called dynamically.\");\n};\nlet inGuard = false;\nfunction guardedLoadModule(moduleId, module) {\n if (!inGuard && global.ErrorUtils) {\n inGuard = true;\n let returnValue;\n try {\n returnValue = loadModuleImplementation(moduleId, module);\n } catch (e) {\n // TODO: (moti) T48204692 Type this use of ErrorUtils.\n global.ErrorUtils.reportFatalError(e);\n }\n inGuard = false;\n return returnValue;\n } else {\n return loadModuleImplementation(moduleId, module);\n }\n}\nconst ID_MASK_SHIFT = 16;\nconst LOCAL_ID_MASK = ~0 >>> ID_MASK_SHIFT;\nfunction unpackModuleId(moduleId) {\n const segmentId = moduleId >>> ID_MASK_SHIFT;\n const localId = moduleId & LOCAL_ID_MASK;\n return {\n segmentId,\n localId,\n };\n}\nmetroRequire.unpackModuleId = unpackModuleId;\nfunction packModuleId(value) {\n return (value.segmentId << ID_MASK_SHIFT) + value.localId;\n}\nmetroRequire.packModuleId = packModuleId;\nconst moduleDefinersBySegmentID = [];\nconst definingSegmentByModuleID = new Map();\nfunction registerSegment(segmentId, moduleDefiner, moduleIds) {\n moduleDefinersBySegmentID[segmentId] = moduleDefiner;\n if (__DEV__) {\n if (segmentId === 0 && moduleIds) {\n throw new Error(\n \"registerSegment: Expected moduleIds to be null for main segment\"\n );\n }\n if (segmentId !== 0 && !moduleIds) {\n throw new Error(\n \"registerSegment: Expected moduleIds to be passed for segment #\" +\n segmentId\n );\n }\n }\n if (moduleIds) {\n moduleIds.forEach((moduleId) => {\n if (!modules[moduleId] && !definingSegmentByModuleID.has(moduleId)) {\n definingSegmentByModuleID.set(moduleId, segmentId);\n }\n });\n }\n}\nfunction loadModuleImplementation(moduleId, module) {\n if (!module && moduleDefinersBySegmentID.length > 0) {\n const segmentId = definingSegmentByModuleID.get(moduleId) ?? 0;\n const definer = moduleDefinersBySegmentID[segmentId];\n if (definer != null) {\n definer(moduleId);\n module = modules[moduleId];\n definingSegmentByModuleID.delete(moduleId);\n }\n }\n const nativeRequire = global.nativeRequire;\n if (!module && nativeRequire) {\n const { segmentId, localId } = unpackModuleId(moduleId);\n nativeRequire(localId, segmentId);\n module = modules[moduleId];\n }\n if (!module) {\n throw unknownModuleError(moduleId);\n }\n if (module.hasError) {\n throw module.error;\n }\n if (__DEV__) {\n var Systrace = requireSystrace();\n var Refresh = requireRefresh();\n }\n\n // We must optimistically mark module as initialized before running the\n // factory to keep any require cycles inside the factory from causing an\n // infinite require loop.\n module.isInitialized = true;\n const { factory, dependencyMap } = module;\n if (__DEV__) {\n initializingModuleIds.push(moduleId);\n }\n try {\n if (__DEV__) {\n // $FlowIgnore: we know that __DEV__ is const and `Systrace` exists\n Systrace.beginEvent(\"JS_require_\" + (module.verboseName || moduleId));\n }\n const moduleObject = module.publicModule;\n if (__DEV__) {\n moduleObject.hot = module.hot;\n var prevRefreshReg = global.$RefreshReg$;\n var prevRefreshSig = global.$RefreshSig$;\n if (Refresh != null) {\n const RefreshRuntime = Refresh;\n global.$RefreshReg$ = (type, id) => {\n RefreshRuntime.register(type, moduleId + \" \" + id);\n };\n global.$RefreshSig$ =\n RefreshRuntime.createSignatureFunctionForTransform;\n }\n }\n moduleObject.id = moduleId;\n\n // keep args in sync with with defineModuleCode in\n // metro/src/Resolver/index.js\n // and metro/src/ModuleGraph/worker.js\n factory(\n global,\n metroRequire,\n metroImportDefault,\n metroImportAll,\n moduleObject,\n moduleObject.exports,\n dependencyMap\n );\n\n // avoid removing factory in DEV mode as it breaks HMR\n if (!__DEV__) {\n // $FlowFixMe: This is only sound because we never access `factory` again\n module.factory = undefined;\n module.dependencyMap = undefined;\n }\n if (__DEV__) {\n // $FlowIgnore: we know that __DEV__ is const and `Systrace` exists\n Systrace.endEvent();\n if (Refresh != null) {\n registerExportsForReactRefresh(Refresh, moduleObject.exports, moduleId);\n }\n }\n return moduleObject.exports;\n } catch (e) {\n module.hasError = true;\n module.error = e;\n module.isInitialized = false;\n module.publicModule.exports = undefined;\n throw e;\n } finally {\n if (__DEV__) {\n if (initializingModuleIds.pop() !== moduleId) {\n throw new Error(\n \"initializingModuleIds is corrupt; something is terribly wrong\"\n );\n }\n global.$RefreshReg$ = prevRefreshReg;\n global.$RefreshSig$ = prevRefreshSig;\n }\n }\n}\nfunction unknownModuleError(id) {\n let message = 'Requiring unknown module \"' + id + '\".';\n if (__DEV__) {\n message +=\n \" If you are sure the module exists, try restarting Metro. \" +\n \"You may also want to run `yarn` or `npm install`.\";\n }\n return Error(message);\n}\nif (__DEV__) {\n // $FlowFixMe[prop-missing]\n metroRequire.Systrace = {\n beginEvent: () => {},\n endEvent: () => {},\n };\n // $FlowFixMe[prop-missing]\n metroRequire.getModules = () => {\n return modules;\n };\n\n // HOT MODULE RELOADING\n var createHotReloadingObject = function () {\n const hot = {\n _acceptCallback: null,\n _disposeCallback: null,\n _didAccept: false,\n accept: (callback) => {\n hot._didAccept = true;\n hot._acceptCallback = callback;\n },\n dispose: (callback) => {\n hot._disposeCallback = callback;\n },\n };\n return hot;\n };\n let reactRefreshTimeout = null;\n const metroHotUpdateModule = function (\n id,\n factory,\n dependencyMap,\n inverseDependencies\n ) {\n const mod = modules[id];\n if (!mod) {\n if (factory) {\n // New modules are going to be handled by the define() method.\n return;\n }\n throw unknownModuleError(id);\n }\n if (!mod.hasError && !mod.isInitialized) {\n // The module hasn't actually been executed yet,\n // so we can always safely replace it.\n mod.factory = factory;\n mod.dependencyMap = dependencyMap;\n return;\n }\n const Refresh = requireRefresh();\n const refreshBoundaryIDs = new Set();\n\n // In this loop, we will traverse the dependency tree upwards from the\n // changed module. Updates \"bubble\" up to the closest accepted parent.\n //\n // If we reach the module root and nothing along the way accepted the update,\n // we know hot reload is going to fail. In that case we return false.\n //\n // The main purpose of this loop is to figure out whether it's safe to apply\n // a hot update. It is only safe when the update was accepted somewhere\n // along the way upwards for each of its parent dependency module chains.\n //\n // We perform a topological sort because we may discover the same\n // module more than once in the list of things to re-execute, and\n // we want to execute modules before modules that depend on them.\n //\n // If we didn't have this check, we'd risk re-evaluating modules that\n // have side effects and lead to confusing and meaningless crashes.\n\n let didBailOut = false;\n let updatedModuleIDs;\n try {\n updatedModuleIDs = topologicalSort(\n [id],\n // Start with the changed module and go upwards\n (pendingID) => {\n const pendingModule = modules[pendingID];\n if (pendingModule == null) {\n // Nothing to do.\n return [];\n }\n const pendingHot = pendingModule.hot;\n if (pendingHot == null) {\n throw new Error(\n \"[Refresh] Expected module.hot to always exist in DEV.\"\n );\n }\n // A module can be accepted manually from within itself.\n let canAccept = pendingHot._didAccept;\n if (!canAccept && Refresh != null) {\n // Or React Refresh may mark it accepted based on exports.\n const isBoundary = isReactRefreshBoundary(\n Refresh,\n pendingModule.publicModule.exports\n );\n if (isBoundary) {\n canAccept = true;\n refreshBoundaryIDs.add(pendingID);\n }\n }\n if (canAccept) {\n // Don't look at parents.\n return [];\n }\n // If we bubble through the roof, there is no way to do a hot update.\n // Bail out altogether. This is the failure case.\n const parentIDs = inverseDependencies[pendingID];\n if (parentIDs.length === 0) {\n // Reload the app because the hot reload can't succeed.\n // This should work both on web and React Native.\n performFullRefresh(\"No root boundary\", {\n source: mod,\n failed: pendingModule,\n });\n didBailOut = true;\n return [];\n }\n // This module can't handle the update but maybe all its parents can?\n // Put them all in the queue to run the same set of checks.\n return parentIDs;\n },\n () => didBailOut // Should we stop?\n ).reverse();\n } catch (e) {\n if (e === CYCLE_DETECTED) {\n performFullRefresh(\"Dependency cycle\", {\n source: mod,\n });\n return;\n }\n throw e;\n }\n if (didBailOut) {\n return;\n }\n\n // If we reached here, it is likely that hot reload will be successful.\n // Run the actual factories.\n const seenModuleIDs = new Set();\n for (let i = 0; i < updatedModuleIDs.length; i++) {\n const updatedID = updatedModuleIDs[i];\n if (seenModuleIDs.has(updatedID)) {\n continue;\n }\n seenModuleIDs.add(updatedID);\n const updatedMod = modules[updatedID];\n if (updatedMod == null) {\n throw new Error(\"[Refresh] Expected to find the updated module.\");\n }\n const prevExports = updatedMod.publicModule.exports;\n const didError = runUpdatedModule(\n updatedID,\n updatedID === id ? factory : undefined,\n updatedID === id ? dependencyMap : undefined\n );\n const nextExports = updatedMod.publicModule.exports;\n if (didError) {\n // The user was shown a redbox about module initialization.\n // There's nothing for us to do here until it's fixed.\n return;\n }\n if (refreshBoundaryIDs.has(updatedID)) {\n // Since we just executed the code for it, it's possible\n // that the new exports make it ineligible for being a boundary.\n const isNoLongerABoundary = !isReactRefreshBoundary(\n Refresh,\n nextExports\n );\n // It can also become ineligible if its exports are incompatible\n // with the previous exports.\n // For example, if you add/remove/change exports, we'll want\n // to re-execute the importing modules, and force those components\n // to re-render. Similarly, if you convert a class component\n // to a function, we want to invalidate the boundary.\n const didInvalidate = shouldInvalidateReactRefreshBoundary(\n Refresh,\n prevExports,\n nextExports\n );\n if (isNoLongerABoundary || didInvalidate) {\n // We'll be conservative. The only case in which we won't do a full\n // reload is if all parent modules are also refresh boundaries.\n // In that case we'll add them to the current queue.\n const parentIDs = inverseDependencies[updatedID];\n if (parentIDs.length === 0) {\n // Looks like we bubbled to the root. Can't recover from that.\n performFullRefresh(\n isNoLongerABoundary\n ? \"No longer a boundary\"\n : \"Invalidated boundary\",\n {\n source: mod,\n failed: updatedMod,\n }\n );\n return;\n }\n // Schedule all parent refresh boundaries to re-run in this loop.\n for (let j = 0; j < parentIDs.length; j++) {\n const parentID = parentIDs[j];\n const parentMod = modules[parentID];\n if (parentMod == null) {\n throw new Error(\"[Refresh] Expected to find parent module.\");\n }\n const canAcceptParent = isReactRefreshBoundary(\n Refresh,\n parentMod.publicModule.exports\n );\n if (canAcceptParent) {\n // All parents will have to re-run too.\n refreshBoundaryIDs.add(parentID);\n updatedModuleIDs.push(parentID);\n } else {\n performFullRefresh(\"Invalidated boundary\", {\n source: mod,\n failed: parentMod,\n });\n return;\n }\n }\n }\n }\n }\n if (Refresh != null) {\n // Debounce a little in case there are multiple updates queued up.\n // This is also useful because __accept may be called multiple times.\n if (reactRefreshTimeout == null) {\n reactRefreshTimeout = setTimeout(() => {\n reactRefreshTimeout = null;\n // Update React components.\n Refresh.performReactRefresh();\n }, 30);\n }\n }\n };\n const topologicalSort = function (roots, getEdges, earlyStop) {\n const result = [];\n const visited = new Set();\n const stack = new Set();\n function traverseDependentNodes(node) {\n if (stack.has(node)) {\n throw CYCLE_DETECTED;\n }\n if (visited.has(node)) {\n return;\n }\n visited.add(node);\n stack.add(node);\n const dependentNodes = getEdges(node);\n if (earlyStop(node)) {\n stack.delete(node);\n return;\n }\n dependentNodes.forEach((dependent) => {\n traverseDependentNodes(dependent);\n });\n stack.delete(node);\n result.push(node);\n }\n roots.forEach((root) => {\n traverseDependentNodes(root);\n });\n return result;\n };\n const runUpdatedModule = function (id, factory, dependencyMap) {\n const mod = modules[id];\n if (mod == null) {\n throw new Error(\"[Refresh] Expected to find the module.\");\n }\n const { hot } = mod;\n if (!hot) {\n throw new Error(\"[Refresh] Expected module.hot to always exist in DEV.\");\n }\n if (hot._disposeCallback) {\n try {\n hot._disposeCallback();\n } catch (error) {\n console.error(\n `Error while calling dispose handler for module ${id}: `,\n error\n );\n }\n }\n if (factory) {\n mod.factory = factory;\n }\n if (dependencyMap) {\n mod.dependencyMap = dependencyMap;\n }\n mod.hasError = false;\n mod.error = undefined;\n mod.importedAll = EMPTY;\n mod.importedDefault = EMPTY;\n mod.isInitialized = false;\n const prevExports = mod.publicModule.exports;\n mod.publicModule.exports = {};\n hot._didAccept = false;\n hot._acceptCallback = null;\n hot._disposeCallback = null;\n metroRequire(id);\n if (mod.hasError) {\n // This error has already been reported via a redbox.\n // We know it's likely a typo or some mistake that was just introduced.\n // Our goal now is to keep the rest of the application working so that by\n // the time user fixes the error, the app isn't completely destroyed\n // underneath the redbox. So we'll revert the module object to the last\n // successful export and stop propagating this update.\n mod.hasError = false;\n mod.isInitialized = true;\n mod.error = null;\n mod.publicModule.exports = prevExports;\n // We errored. Stop the update.\n return true;\n }\n if (hot._acceptCallback) {\n try {\n hot._acceptCallback();\n } catch (error) {\n console.error(\n `Error while calling accept handler for module ${id}: `,\n error\n );\n }\n }\n // No error.\n return false;\n };\n const performFullRefresh = (reason, modules) => {\n /* global window */\n if (\n typeof window !== \"undefined\" &&\n window.location != null &&\n typeof window.location.reload === \"function\"\n ) {\n window.location.reload();\n } else {\n const Refresh = requireRefresh();\n if (Refresh != null) {\n const sourceName = modules.source?.verboseName ?? \"unknown\";\n const failedName = modules.failed?.verboseName ?? \"unknown\";\n Refresh.performFullRefresh(\n `Fast Refresh - ${reason} <${sourceName}> <${failedName}>`\n );\n } else {\n console.warn(\"Could not reload the application after an edit.\");\n }\n }\n };\n\n // Modules that only export components become React Refresh boundaries.\n var isReactRefreshBoundary = function (Refresh, moduleExports) {\n if (Refresh.isLikelyComponentType(moduleExports)) {\n return true;\n }\n if (moduleExports == null || typeof moduleExports !== \"object\") {\n // Exit if we can't iterate over exports.\n return false;\n }\n let hasExports = false;\n let areAllExportsComponents = true;\n for (const key in moduleExports) {\n hasExports = true;\n if (key === \"__esModule\") {\n continue;\n }\n const desc = Object.getOwnPropertyDescriptor(moduleExports, key);\n if (desc && desc.get) {\n // Don't invoke getters as they may have side effects.\n return false;\n }\n const exportValue = moduleExports[key];\n if (!Refresh.isLikelyComponentType(exportValue)) {\n areAllExportsComponents = false;\n }\n }\n return hasExports && areAllExportsComponents;\n };\n var shouldInvalidateReactRefreshBoundary = (\n Refresh,\n prevExports,\n nextExports\n ) => {\n const prevSignature = getRefreshBoundarySignature(Refresh, prevExports);\n const nextSignature = getRefreshBoundarySignature(Refresh, nextExports);\n if (prevSignature.length !== nextSignature.length) {\n return true;\n }\n for (let i = 0; i < nextSignature.length; i++) {\n if (prevSignature[i] !== nextSignature[i]) {\n return true;\n }\n }\n return false;\n };\n\n // When this signature changes, it's unsafe to stop at this refresh boundary.\n var getRefreshBoundarySignature = (Refresh, moduleExports) => {\n const signature = [];\n signature.push(Refresh.getFamilyByType(moduleExports));\n if (moduleExports == null || typeof moduleExports !== \"object\") {\n // Exit if we can't iterate over exports.\n // (This is important for legacy environments.)\n return signature;\n }\n for (const key in moduleExports) {\n if (key === \"__esModule\") {\n continue;\n }\n const desc = Object.getOwnPropertyDescriptor(moduleExports, key);\n if (desc && desc.get) {\n continue;\n }\n const exportValue = moduleExports[key];\n signature.push(key);\n signature.push(Refresh.getFamilyByType(exportValue));\n }\n return signature;\n };\n var registerExportsForReactRefresh = (Refresh, moduleExports, moduleID) => {\n Refresh.register(moduleExports, moduleID + \" %exports%\");\n if (moduleExports == null || typeof moduleExports !== \"object\") {\n // Exit if we can't iterate over exports.\n // (This is important for legacy environments.)\n return;\n }\n for (const key in moduleExports) {\n const desc = Object.getOwnPropertyDescriptor(moduleExports, key);\n if (desc && desc.get) {\n // Don't invoke getters as they may have side effects.\n continue;\n }\n const exportValue = moduleExports[key];\n const typeID = moduleID + \" %exports% \" + key;\n Refresh.register(exportValue, typeID);\n }\n };\n global.__accept = metroHotUpdateModule;\n}\nif (__DEV__) {\n // The metro require polyfill can not have module dependencies.\n // The Systrace and ReactRefresh dependencies are, therefore, made publicly\n // available. Ideally, the dependency would be inversed in a way that\n // Systrace / ReactRefresh could integrate into Metro rather than\n // having to make them publicly available.\n\n var requireSystrace = function requireSystrace() {\n return (\n // $FlowFixMe[prop-missing]\n global[__METRO_GLOBAL_PREFIX__ + \"__SYSTRACE\"] || metroRequire.Systrace\n );\n };\n var requireRefresh = function requireRefresh() {\n return (\n // $FlowFixMe[prop-missing]\n global[__METRO_GLOBAL_PREFIX__ + \"__ReactRefresh\"] || metroRequire.Refresh\n );\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @polyfill\n * @nolint\n * @format\n */\n\n/* eslint-disable no-shadow, eqeqeq, curly, no-unused-vars, no-void, no-control-regex */\n\n/**\n * This pipes all of our console logging functions to native logging so that\n * JavaScript errors in required modules show up in Xcode via NSLog.\n */\nconst inspect = (function () {\n // Copyright Joyent, Inc. and other Node contributors.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a\n // copy of this software and associated documentation files (the\n // \"Software\"), to deal in the Software without restriction, including\n // without limitation the rights to use, copy, modify, merge, publish,\n // distribute, sublicense, and/or sell copies of the Software, and to permit\n // persons to whom the Software is furnished to do so, subject to the\n // following conditions:\n //\n // The above copyright notice and this permission notice shall be included\n // in all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n // USE OR OTHER DEALINGS IN THE SOFTWARE.\n //\n // https://github.com/joyent/node/blob/master/lib/util.js\n\n function inspect(obj, opts) {\n var ctx = {\n seen: [],\n formatValueCalls: 0,\n stylize: stylizeNoColor,\n };\n return formatValue(ctx, obj, opts.depth);\n }\n\n function stylizeNoColor(str, styleType) {\n return str;\n }\n\n function arrayToHash(array) {\n var hash = {};\n\n array.forEach(function (val, idx) {\n hash[val] = true;\n });\n\n return hash;\n }\n\n function formatValue(ctx, value, recurseTimes) {\n ctx.formatValueCalls++;\n if (ctx.formatValueCalls > 200) {\n return `[TOO BIG formatValueCalls ${ctx.formatValueCalls} exceeded limit of 200]`;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (\n isError(value) &&\n (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)\n ) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '',\n array = false,\n braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function (key) {\n return formatProperty(\n ctx,\n value,\n recurseTimes,\n visibleKeys,\n key,\n array,\n );\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n }\n\n function formatPrimitive(ctx, value) {\n if (isUndefined(value)) return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple =\n \"'\" +\n JSON.stringify(value)\n .replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') +\n \"'\";\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value)) return ctx.stylize('' + value, 'number');\n if (isBoolean(value)) return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value)) return ctx.stylize('null', 'null');\n }\n\n function formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n }\n\n function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(\n formatProperty(\n ctx,\n value,\n recurseTimes,\n visibleKeys,\n String(i),\n true,\n ),\n );\n } else {\n output.push('');\n }\n }\n keys.forEach(function (key) {\n if (!key.match(/^\\d+$/)) {\n output.push(\n formatProperty(ctx, value, recurseTimes, visibleKeys, key, true),\n );\n }\n });\n return output;\n }\n\n function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || {value: value[key]};\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str\n .split('\\n')\n .map(function (line) {\n return ' ' + line;\n })\n .join('\\n')\n .substr(2);\n } else {\n str =\n '\\n' +\n str\n .split('\\n')\n .map(function (line) {\n return ' ' + line;\n })\n .join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n }\n\n function reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function (prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return (\n braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1]\n );\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n }\n\n // NOTE: These type checking functions intentionally don't use `instanceof`\n // because it is fragile and can be easily faked with `Object.create()`.\n function isArray(ar) {\n return Array.isArray(ar);\n }\n\n function isBoolean(arg) {\n return typeof arg === 'boolean';\n }\n\n function isNull(arg) {\n return arg === null;\n }\n\n function isNullOrUndefined(arg) {\n return arg == null;\n }\n\n function isNumber(arg) {\n return typeof arg === 'number';\n }\n\n function isString(arg) {\n return typeof arg === 'string';\n }\n\n function isSymbol(arg) {\n return typeof arg === 'symbol';\n }\n\n function isUndefined(arg) {\n return arg === void 0;\n }\n\n function isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n }\n\n function isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n }\n\n function isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n }\n\n function isError(e) {\n return (\n isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error)\n );\n }\n\n function isFunction(arg) {\n return typeof arg === 'function';\n }\n\n function objectToString(o) {\n return Object.prototype.toString.call(o);\n }\n\n function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n return inspect;\n})();\n\nconst OBJECT_COLUMN_NAME = '(index)';\nconst LOG_LEVELS = {\n trace: 0,\n info: 1,\n warn: 2,\n error: 3,\n};\nconst INSPECTOR_LEVELS = [];\nINSPECTOR_LEVELS[LOG_LEVELS.trace] = 'debug';\nINSPECTOR_LEVELS[LOG_LEVELS.info] = 'log';\nINSPECTOR_LEVELS[LOG_LEVELS.warn] = 'warning';\nINSPECTOR_LEVELS[LOG_LEVELS.error] = 'error';\n\n// Strip the inner function in getNativeLogFunction(), if in dev also\n// strip method printing to originalConsole.\nconst INSPECTOR_FRAMES_TO_SKIP = __DEV__ ? 2 : 1;\n\nfunction getNativeLogFunction(level) {\n return function () {\n let str;\n if (arguments.length === 1 && typeof arguments[0] === 'string') {\n str = arguments[0];\n } else {\n str = Array.prototype.map\n .call(arguments, function (arg) {\n return inspect(arg, {depth: 10});\n })\n .join(', ');\n }\n\n // TRICKY\n // If more than one argument is provided, the code above collapses them all\n // into a single formatted string. This transform wraps string arguments in\n // single quotes (e.g. \"foo\" -> \"'foo'\") which then breaks the \"Warning:\"\n // check below. So it's important that we look at the first argument, rather\n // than the formatted argument string.\n const firstArg = arguments[0];\n\n let logLevel = level;\n if (\n typeof firstArg === 'string' &&\n firstArg.slice(0, 9) === 'Warning: ' &&\n logLevel >= LOG_LEVELS.error\n ) {\n // React warnings use console.error so that a stack trace is shown,\n // but we don't (currently) want these to show a redbox\n // (Note: Logic duplicated in ExceptionsManager.js.)\n logLevel = LOG_LEVELS.warn;\n }\n if (global.__inspectorLog) {\n global.__inspectorLog(\n INSPECTOR_LEVELS[logLevel],\n str,\n [].slice.call(arguments),\n INSPECTOR_FRAMES_TO_SKIP,\n );\n }\n if (groupStack.length) {\n str = groupFormat('', str);\n }\n global.nativeLoggingHook(str, logLevel);\n };\n}\n\nfunction repeat(element, n) {\n return Array.apply(null, Array(n)).map(function () {\n return element;\n });\n}\n\nfunction consoleTablePolyfill(rows) {\n // convert object -> array\n if (!Array.isArray(rows)) {\n var data = rows;\n rows = [];\n for (var key in data) {\n if (data.hasOwnProperty(key)) {\n var row = data[key];\n row[OBJECT_COLUMN_NAME] = key;\n rows.push(row);\n }\n }\n }\n if (rows.length === 0) {\n global.nativeLoggingHook('', LOG_LEVELS.info);\n return;\n }\n\n var columns = Object.keys(rows[0]).sort();\n var stringRows = [];\n var columnWidths = [];\n\n // Convert each cell to a string. Also\n // figure out max cell width for each column\n columns.forEach(function (k, i) {\n columnWidths[i] = k.length;\n for (var j = 0; j < rows.length; j++) {\n var cellStr = (rows[j][k] || '?').toString();\n stringRows[j] = stringRows[j] || [];\n stringRows[j][i] = cellStr;\n columnWidths[i] = Math.max(columnWidths[i], cellStr.length);\n }\n });\n\n // Join all elements in the row into a single string with | separators\n // (appends extra spaces to each cell to make separators | aligned)\n function joinRow(row, space) {\n var cells = row.map(function (cell, i) {\n var extraSpaces = repeat(' ', columnWidths[i] - cell.length).join('');\n return cell + extraSpaces;\n });\n space = space || ' ';\n return cells.join(space + '|' + space);\n }\n\n var separators = columnWidths.map(function (columnWidth) {\n return repeat('-', columnWidth).join('');\n });\n var separatorRow = joinRow(separators, '-');\n var header = joinRow(columns);\n var table = [header, separatorRow];\n\n for (var i = 0; i < rows.length; i++) {\n table.push(joinRow(stringRows[i]));\n }\n\n // Notice extra empty line at the beginning.\n // Native logging hook adds \"RCTLog >\" at the front of every\n // logged string, which would shift the header and screw up\n // the table\n global.nativeLoggingHook('\\n' + table.join('\\n'), LOG_LEVELS.info);\n}\n\nconst GROUP_PAD = '\\u2502'; // Box light vertical\nconst GROUP_OPEN = '\\u2510'; // Box light down+left\nconst GROUP_CLOSE = '\\u2518'; // Box light up+left\n\nconst groupStack = [];\n\nfunction groupFormat(prefix, msg) {\n // Insert group formatting before the console message\n return groupStack.join('') + prefix + ' ' + (msg || '');\n}\n\nfunction consoleGroupPolyfill(label) {\n global.nativeLoggingHook(groupFormat(GROUP_OPEN, label), LOG_LEVELS.info);\n groupStack.push(GROUP_PAD);\n}\n\nfunction consoleGroupCollapsedPolyfill(label) {\n global.nativeLoggingHook(groupFormat(GROUP_CLOSE, label), LOG_LEVELS.info);\n groupStack.push(GROUP_PAD);\n}\n\nfunction consoleGroupEndPolyfill() {\n groupStack.pop();\n global.nativeLoggingHook(groupFormat(GROUP_CLOSE), LOG_LEVELS.info);\n}\n\nfunction consoleAssertPolyfill(expression, label) {\n if (!expression) {\n global.nativeLoggingHook('Assertion failed: ' + label, LOG_LEVELS.error);\n }\n}\n\nif (global.nativeLoggingHook) {\n const originalConsole = global.console;\n // Preserve the original `console` as `originalConsole`\n if (__DEV__ && originalConsole) {\n const descriptor = Object.getOwnPropertyDescriptor(global, 'console');\n if (descriptor) {\n Object.defineProperty(global, 'originalConsole', descriptor);\n }\n }\n\n global.console = {\n error: getNativeLogFunction(LOG_LEVELS.error),\n info: getNativeLogFunction(LOG_LEVELS.info),\n log: getNativeLogFunction(LOG_LEVELS.info),\n warn: getNativeLogFunction(LOG_LEVELS.warn),\n trace: getNativeLogFunction(LOG_LEVELS.trace),\n debug: getNativeLogFunction(LOG_LEVELS.trace),\n table: consoleTablePolyfill,\n group: consoleGroupPolyfill,\n groupEnd: consoleGroupEndPolyfill,\n groupCollapsed: consoleGroupCollapsedPolyfill,\n assert: consoleAssertPolyfill,\n };\n\n Object.defineProperty(console, '_isPolyfilled', {\n value: true,\n enumerable: false,\n });\n\n // If available, also call the original `console` method since that is\n // sometimes useful. Ex: on OS X, this will let you see rich output in\n // the Safari Web Inspector console.\n if (__DEV__ && originalConsole) {\n Object.keys(console).forEach(methodName => {\n const reactNativeMethod = console[methodName];\n if (originalConsole[methodName]) {\n console[methodName] = function () {\n originalConsole[methodName](...arguments);\n reactNativeMethod.apply(console, arguments);\n };\n }\n });\n\n // The following methods are not supported by this polyfill but\n // we still should pass them to original console if they are\n // supported by it.\n ['clear', 'dir', 'dirxml', 'profile', 'profileEnd'].forEach(methodName => {\n if (typeof originalConsole[methodName] === 'function') {\n console[methodName] = function () {\n originalConsole[methodName](...arguments);\n };\n }\n });\n }\n} else if (!global.console) {\n function stub() {}\n const log = global.print || stub;\n\n global.console = {\n debug: log,\n error: log,\n info: log,\n log: log,\n trace: log,\n warn: log,\n assert(expression, label) {\n if (!expression) {\n log('Assertion failed: ' + label);\n }\n },\n clear: stub,\n dir: stub,\n dirxml: stub,\n group: stub,\n groupCollapsed: stub,\n groupEnd: stub,\n profile: stub,\n profileEnd: stub,\n table: stub,\n };\n\n Object.defineProperty(console, '_isPolyfilled', {\n value: true,\n enumerable: false,\n });\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n * @polyfill\n */\n\nlet _inGuard = 0;\n\ntype ErrorHandler = (error: mixed, isFatal: boolean) => void;\ntype Fn = (...Args) => Return;\n\n/**\n * This is the error handler that is called when we encounter an exception\n * when loading a module. This will report any errors encountered before\n * ExceptionsManager is configured.\n */\nlet _globalHandler: ErrorHandler = function onError(\n e: mixed,\n isFatal: boolean,\n) {\n throw e;\n};\n\n/**\n * The particular require runtime that we are using looks for a global\n * `ErrorUtils` object and if it exists, then it requires modules with the\n * error handler specified via ErrorUtils.setGlobalHandler by calling the\n * require function with applyWithGuard. Since the require module is loaded\n * before any of the modules, this ErrorUtils must be defined (and the handler\n * set) globally before requiring anything.\n */\nconst ErrorUtils = {\n setGlobalHandler(fun: ErrorHandler): void {\n _globalHandler = fun;\n },\n getGlobalHandler(): ErrorHandler {\n return _globalHandler;\n },\n reportError(error: mixed): void {\n _globalHandler && _globalHandler(error, false);\n },\n reportFatalError(error: mixed): void {\n // NOTE: This has an untyped call site in Metro.\n _globalHandler && _globalHandler(error, true);\n },\n applyWithGuard, TOut>(\n fun: Fn,\n context?: ?mixed,\n args?: ?TArgs,\n // Unused, but some code synced from www sets it to null.\n unused_onError?: null,\n // Some callers pass a name here, which we ignore.\n unused_name?: ?string,\n ): ?TOut {\n try {\n _inGuard++;\n /* $FlowFixMe[incompatible-call] : TODO T48204745 (1) apply(context,\n * null) is fine. (2) array -> rest array should work */\n /* $FlowFixMe[incompatible-type] : TODO T48204745 (1) apply(context,\n * null) is fine. (2) array -> rest array should work */\n return fun.apply(context, args);\n } catch (e) {\n ErrorUtils.reportError(e);\n } finally {\n _inGuard--;\n }\n return null;\n },\n applyWithGuardIfNeeded, TOut>(\n fun: Fn,\n context?: ?mixed,\n args?: ?TArgs,\n ): ?TOut {\n if (ErrorUtils.inGuard()) {\n /* $FlowFixMe[incompatible-call] : TODO T48204745 (1) apply(context,\n * null) is fine. (2) array -> rest array should work */\n /* $FlowFixMe[incompatible-type] : TODO T48204745 (1) apply(context,\n * null) is fine. (2) array -> rest array should work */\n return fun.apply(context, args);\n } else {\n ErrorUtils.applyWithGuard(fun, context, args);\n }\n return null;\n },\n inGuard(): boolean {\n return !!_inGuard;\n },\n guard, TOut>(\n fun: Fn,\n name?: ?string,\n context?: ?mixed,\n ): ?(...TArgs) => ?TOut {\n // TODO: (moti) T48204753 Make sure this warning is never hit and remove it - types\n // should be sufficient.\n if (typeof fun !== 'function') {\n console.warn('A function must be passed to ErrorUtils.guard, got ', fun);\n return null;\n }\n const guardName = name ?? fun.name ?? '';\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n function guarded(...args: TArgs): ?TOut {\n return ErrorUtils.applyWithGuard(\n fun,\n context ?? this,\n args,\n null,\n guardName,\n );\n }\n\n return guarded;\n },\n};\n\nglobal.ErrorUtils = ErrorUtils;\n\nexport type ErrorUtilsT = typeof ErrorUtils;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @polyfill\n * @nolint\n */\n\n(function () {\n 'use strict';\n\n const hasOwnProperty = Object.prototype.hasOwnProperty;\n\n /**\n * Returns an array of the given object's own enumerable entries.\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries\n */\n if (typeof Object.entries !== 'function') {\n Object.entries = function (object) {\n // `null` and `undefined` values are not allowed.\n if (object == null) {\n throw new TypeError('Object.entries called on non-object');\n }\n\n const entries = [];\n for (const key in object) {\n if (hasOwnProperty.call(object, key)) {\n entries.push([key, object[key]]);\n }\n }\n return entries;\n };\n }\n\n /**\n * Returns an array of the given object's own enumerable entries.\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values\n */\n if (typeof Object.values !== 'function') {\n Object.values = function (object) {\n // `null` and `undefined` values are not allowed.\n if (object == null) {\n throw new TypeError('Object.values called on non-object');\n }\n\n const values = [];\n for (const key in object) {\n if (hasOwnProperty.call(object, key)) {\n values.push(object[key]);\n }\n }\n return values;\n };\n }\n})();\n","/**\n * @format\n */\n\nimport {AppRegistry} from 'react-native';\nimport App from './App';\nimport {name as appName} from './app.json';\n\nAppRegistry.registerComponent(appName, () => App);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\n// Components\nimport typeof AccessibilityInfo from './Libraries/Components/AccessibilityInfo/AccessibilityInfo';\nimport typeof ActivityIndicator from './Libraries/Components/ActivityIndicator/ActivityIndicator';\nimport typeof Button from './Libraries/Components/Button';\nimport typeof DrawerLayoutAndroid from './Libraries/Components/DrawerAndroid/DrawerLayoutAndroid';\nimport typeof FlatList from './Libraries/Lists/FlatList';\nimport typeof Image from './Libraries/Image/Image';\nimport typeof ImageBackground from './Libraries/Image/ImageBackground';\nimport typeof InputAccessoryView from './Libraries/Components/TextInput/InputAccessoryView';\nimport typeof KeyboardAvoidingView from './Libraries/Components/Keyboard/KeyboardAvoidingView';\nimport typeof Modal from './Libraries/Modal/Modal';\nimport typeof Pressable from './Libraries/Components/Pressable/Pressable';\nimport typeof ProgressBarAndroid from './Libraries/Components/ProgressBarAndroid/ProgressBarAndroid';\nimport typeof RefreshControl from './Libraries/Components/RefreshControl/RefreshControl';\nimport typeof SafeAreaView from './Libraries/Components/SafeAreaView/SafeAreaView';\nimport typeof ScrollView from './Libraries/Components/ScrollView/ScrollView';\nimport typeof SectionList from './Libraries/Lists/SectionList';\nimport typeof StatusBar from './Libraries/Components/StatusBar/StatusBar';\nimport typeof Switch from './Libraries/Components/Switch/Switch';\nimport typeof Text from './Libraries/Text/Text';\nimport typeof TextInput from './Libraries/Components/TextInput/TextInput';\nimport typeof Touchable from './Libraries/Components/Touchable/Touchable';\nimport typeof TouchableHighlight from './Libraries/Components/Touchable/TouchableHighlight';\nimport typeof TouchableNativeFeedback from './Libraries/Components/Touchable/TouchableNativeFeedback';\nimport typeof TouchableOpacity from './Libraries/Components/Touchable/TouchableOpacity';\nimport typeof TouchableWithoutFeedback from './Libraries/Components/Touchable/TouchableWithoutFeedback';\nimport typeof View from './Libraries/Components/View/View';\nimport typeof VirtualizedList from './Libraries/Lists/VirtualizedList';\nimport typeof VirtualizedSectionList from './Libraries/Lists/VirtualizedSectionList';\n\n// APIs\nimport typeof ActionSheetIOS from './Libraries/ActionSheetIOS/ActionSheetIOS';\nimport typeof Alert from './Libraries/Alert/Alert';\nimport typeof Animated from './Libraries/Animated/Animated';\nimport typeof * as AnimatedModule from './Libraries/Animated/Animated';\nimport typeof Appearance from './Libraries/Utilities/Appearance';\nimport typeof AppRegistry from './Libraries/ReactNative/AppRegistry';\nimport typeof AppState from './Libraries/AppState/AppState';\nimport typeof BackHandler from './Libraries/Utilities/BackHandler';\nimport typeof Clipboard from './Libraries/Components/Clipboard/Clipboard';\nimport typeof DeviceInfo from './Libraries/Utilities/DeviceInfo';\nimport typeof DevSettings from './Libraries/Utilities/DevSettings';\nimport typeof Dimensions from './Libraries/Utilities/Dimensions';\nimport typeof Easing from './Libraries/Animated/Easing';\nimport typeof ReactNative from './Libraries/Renderer/shims/ReactNative';\nimport typeof I18nManager from './Libraries/ReactNative/I18nManager';\nimport typeof InteractionManager from './Libraries/Interaction/InteractionManager';\nimport typeof Keyboard from './Libraries/Components/Keyboard/Keyboard';\nimport typeof LayoutAnimation from './Libraries/LayoutAnimation/LayoutAnimation';\nimport typeof Linking from './Libraries/Linking/Linking';\nimport typeof LogBox from './Libraries/LogBox/LogBox';\nimport typeof NativeDialogManagerAndroid from './Libraries/NativeModules/specs/NativeDialogManagerAndroid';\nimport typeof NativeEventEmitter from './Libraries/EventEmitter/NativeEventEmitter';\nimport typeof Networking from './Libraries/Network/RCTNetworking';\nimport typeof PanResponder from './Libraries/Interaction/PanResponder';\nimport typeof PermissionsAndroid from './Libraries/PermissionsAndroid/PermissionsAndroid';\nimport typeof PixelRatio from './Libraries/Utilities/PixelRatio';\nimport typeof PushNotificationIOS from './Libraries/PushNotificationIOS/PushNotificationIOS';\nimport typeof Settings from './Libraries/Settings/Settings';\nimport typeof Share from './Libraries/Share/Share';\nimport typeof StyleSheet from './Libraries/StyleSheet/StyleSheet';\nimport typeof * as Systrace from './Libraries/Performance/Systrace';\nimport typeof ToastAndroid from './Libraries/Components/ToastAndroid/ToastAndroid';\nimport typeof * as TurboModuleRegistry from './Libraries/TurboModule/TurboModuleRegistry';\nimport typeof UIManager from './Libraries/ReactNative/UIManager';\nimport typeof useAnimatedValue from './Libraries/Animated/useAnimatedValue';\nimport typeof useColorScheme from './Libraries/Utilities/useColorScheme';\nimport typeof useWindowDimensions from './Libraries/Utilities/useWindowDimensions';\nimport typeof UTFSequence from './Libraries/UTFSequence';\nimport typeof Vibration from './Libraries/Vibration/Vibration';\nimport typeof YellowBox from './Libraries/YellowBox/YellowBoxDeprecated';\n\n// Plugins\nimport typeof {DynamicColorIOS} from './Libraries/StyleSheet/PlatformColorValueTypesIOS';\nimport typeof NativeModules from './Libraries/BatchedBridge/NativeModules';\nimport typeof Platform from './Libraries/Utilities/Platform';\nimport typeof {PlatformColor} from './Libraries/StyleSheet/PlatformColorValueTypes';\nimport typeof processColor from './Libraries/StyleSheet/processColor';\nimport typeof RCTDeviceEventEmitter from './Libraries/EventEmitter/RCTDeviceEventEmitter';\nimport typeof RCTNativeAppEventEmitter from './Libraries/EventEmitter/RCTNativeAppEventEmitter';\nimport typeof {RootTagContext} from './Libraries/ReactNative/RootTag';\n\nimport type {HostComponent as _HostComponentInternal} from './Libraries/Renderer/shims/ReactNativeTypes';\n\nexport type HostComponent = _HostComponentInternal;\n\nconst invariant = require('invariant');\nconst warnOnce = require('./Libraries/Utilities/warnOnce');\n\nmodule.exports = {\n // Components\n get AccessibilityInfo(): AccessibilityInfo {\n return require('./Libraries/Components/AccessibilityInfo/AccessibilityInfo')\n .default;\n },\n get ActivityIndicator(): ActivityIndicator {\n return require('./Libraries/Components/ActivityIndicator/ActivityIndicator')\n .default;\n },\n get Button(): Button {\n return require('./Libraries/Components/Button');\n },\n // $FlowFixMe[value-as-type]\n get DrawerLayoutAndroid(): DrawerLayoutAndroid {\n return require('./Libraries/Components/DrawerAndroid/DrawerLayoutAndroid');\n },\n get FlatList(): FlatList {\n return require('./Libraries/Lists/FlatList');\n },\n get Image(): Image {\n return require('./Libraries/Image/Image');\n },\n get ImageBackground(): ImageBackground {\n return require('./Libraries/Image/ImageBackground');\n },\n get InputAccessoryView(): InputAccessoryView {\n return require('./Libraries/Components/TextInput/InputAccessoryView');\n },\n get KeyboardAvoidingView(): KeyboardAvoidingView {\n return require('./Libraries/Components/Keyboard/KeyboardAvoidingView')\n .default;\n },\n get Modal(): Modal {\n return require('./Libraries/Modal/Modal');\n },\n get Pressable(): Pressable {\n return require('./Libraries/Components/Pressable/Pressable').default;\n },\n // $FlowFixMe[value-as-type]\n get ProgressBarAndroid(): ProgressBarAndroid {\n warnOnce(\n 'progress-bar-android-moved',\n 'ProgressBarAndroid has been extracted from react-native core and will be removed in a future release. ' +\n \"It can now be installed and imported from '@react-native-community/progress-bar-android' instead of 'react-native'. \" +\n 'See https://github.com/react-native-progress-view/progress-bar-android',\n );\n return require('./Libraries/Components/ProgressBarAndroid/ProgressBarAndroid');\n },\n get RefreshControl(): RefreshControl {\n return require('./Libraries/Components/RefreshControl/RefreshControl');\n },\n get SafeAreaView(): SafeAreaView {\n return require('./Libraries/Components/SafeAreaView/SafeAreaView').default;\n },\n get ScrollView(): ScrollView {\n return require('./Libraries/Components/ScrollView/ScrollView');\n },\n get SectionList(): SectionList {\n return require('./Libraries/Lists/SectionList').default;\n },\n get StatusBar(): StatusBar {\n return require('./Libraries/Components/StatusBar/StatusBar');\n },\n get Switch(): Switch {\n return require('./Libraries/Components/Switch/Switch').default;\n },\n get Text(): Text {\n return require('./Libraries/Text/Text');\n },\n get TextInput(): TextInput {\n return require('./Libraries/Components/TextInput/TextInput');\n },\n get Touchable(): Touchable {\n return require('./Libraries/Components/Touchable/Touchable');\n },\n get TouchableHighlight(): TouchableHighlight {\n return require('./Libraries/Components/Touchable/TouchableHighlight');\n },\n get TouchableNativeFeedback(): TouchableNativeFeedback {\n return require('./Libraries/Components/Touchable/TouchableNativeFeedback');\n },\n get TouchableOpacity(): TouchableOpacity {\n return require('./Libraries/Components/Touchable/TouchableOpacity');\n },\n get TouchableWithoutFeedback(): TouchableWithoutFeedback {\n return require('./Libraries/Components/Touchable/TouchableWithoutFeedback');\n },\n get View(): View {\n return require('./Libraries/Components/View/View');\n },\n get VirtualizedList(): VirtualizedList {\n return require('./Libraries/Lists/VirtualizedList');\n },\n get VirtualizedSectionList(): VirtualizedSectionList {\n return require('./Libraries/Lists/VirtualizedSectionList');\n },\n\n // APIs\n get ActionSheetIOS(): ActionSheetIOS {\n return require('./Libraries/ActionSheetIOS/ActionSheetIOS');\n },\n get Alert(): Alert {\n return require('./Libraries/Alert/Alert');\n },\n // Include any types exported in the Animated module together with its default export, so\n // you can references types such as Animated.Numeric\n get Animated(): {...$Diff, ...Animated} {\n // $FlowExpectedError[prop-missing]: we only return the default export, all other exports are types\n return require('./Libraries/Animated/Animated').default;\n },\n get Appearance(): Appearance {\n return require('./Libraries/Utilities/Appearance');\n },\n get AppRegistry(): AppRegistry {\n return require('./Libraries/ReactNative/AppRegistry');\n },\n get AppState(): AppState {\n return require('./Libraries/AppState/AppState');\n },\n get BackHandler(): BackHandler {\n return require('./Libraries/Utilities/BackHandler');\n },\n get Clipboard(): Clipboard {\n warnOnce(\n 'clipboard-moved',\n 'Clipboard has been extracted from react-native core and will be removed in a future release. ' +\n \"It can now be installed and imported from '@react-native-clipboard/clipboard' instead of 'react-native'. \" +\n 'See https://github.com/react-native-clipboard/clipboard',\n );\n return require('./Libraries/Components/Clipboard/Clipboard');\n },\n get DeviceInfo(): DeviceInfo {\n return require('./Libraries/Utilities/DeviceInfo');\n },\n get DevSettings(): DevSettings {\n return require('./Libraries/Utilities/DevSettings');\n },\n get Dimensions(): Dimensions {\n return require('./Libraries/Utilities/Dimensions').default;\n },\n get Easing(): Easing {\n return require('./Libraries/Animated/Easing').default;\n },\n get findNodeHandle(): $PropertyType {\n return require('./Libraries/ReactNative/RendererProxy').findNodeHandle;\n },\n get I18nManager(): I18nManager {\n return require('./Libraries/ReactNative/I18nManager');\n },\n get InteractionManager(): InteractionManager {\n return require('./Libraries/Interaction/InteractionManager');\n },\n get Keyboard(): Keyboard {\n return require('./Libraries/Components/Keyboard/Keyboard');\n },\n get LayoutAnimation(): LayoutAnimation {\n return require('./Libraries/LayoutAnimation/LayoutAnimation');\n },\n get Linking(): Linking {\n return require('./Libraries/Linking/Linking');\n },\n get LogBox(): LogBox {\n return require('./Libraries/LogBox/LogBox').default;\n },\n get NativeDialogManagerAndroid(): NativeDialogManagerAndroid {\n return require('./Libraries/NativeModules/specs/NativeDialogManagerAndroid')\n .default;\n },\n get NativeEventEmitter(): NativeEventEmitter {\n return require('./Libraries/EventEmitter/NativeEventEmitter').default;\n },\n get Networking(): Networking {\n return require('./Libraries/Network/RCTNetworking').default;\n },\n get PanResponder(): PanResponder {\n return require('./Libraries/Interaction/PanResponder').default;\n },\n get PermissionsAndroid(): PermissionsAndroid {\n return require('./Libraries/PermissionsAndroid/PermissionsAndroid');\n },\n get PixelRatio(): PixelRatio {\n return require('./Libraries/Utilities/PixelRatio').default;\n },\n get PushNotificationIOS(): PushNotificationIOS {\n warnOnce(\n 'pushNotificationIOS-moved',\n 'PushNotificationIOS has been extracted from react-native core and will be removed in a future release. ' +\n \"It can now be installed and imported from '@react-native-community/push-notification-ios' instead of 'react-native'. \" +\n 'See https://github.com/react-native-push-notification-ios/push-notification-ios',\n );\n return require('./Libraries/PushNotificationIOS/PushNotificationIOS');\n },\n get Settings(): Settings {\n return require('./Libraries/Settings/Settings');\n },\n get Share(): Share {\n return require('./Libraries/Share/Share');\n },\n get StyleSheet(): StyleSheet {\n return require('./Libraries/StyleSheet/StyleSheet');\n },\n get Systrace(): Systrace {\n return require('./Libraries/Performance/Systrace');\n },\n // $FlowFixMe[value-as-type]\n get ToastAndroid(): ToastAndroid {\n return require('./Libraries/Components/ToastAndroid/ToastAndroid');\n },\n get TurboModuleRegistry(): TurboModuleRegistry {\n return require('./Libraries/TurboModule/TurboModuleRegistry');\n },\n get UIManager(): UIManager {\n return require('./Libraries/ReactNative/UIManager');\n },\n get unstable_batchedUpdates(): $PropertyType<\n ReactNative,\n 'unstable_batchedUpdates',\n > {\n return require('./Libraries/ReactNative/RendererProxy')\n .unstable_batchedUpdates;\n },\n get useAnimatedValue(): useAnimatedValue {\n return require('./Libraries/Animated/useAnimatedValue').default;\n },\n get useColorScheme(): useColorScheme {\n return require('./Libraries/Utilities/useColorScheme').default;\n },\n get useWindowDimensions(): useWindowDimensions {\n return require('./Libraries/Utilities/useWindowDimensions').default;\n },\n get UTFSequence(): UTFSequence {\n return require('./Libraries/UTFSequence').default;\n },\n get Vibration(): Vibration {\n return require('./Libraries/Vibration/Vibration');\n },\n get YellowBox(): YellowBox {\n return require('./Libraries/YellowBox/YellowBoxDeprecated');\n },\n\n // Plugins\n get DeviceEventEmitter(): RCTDeviceEventEmitter {\n return require('./Libraries/EventEmitter/RCTDeviceEventEmitter').default;\n },\n get DynamicColorIOS(): DynamicColorIOS {\n return require('./Libraries/StyleSheet/PlatformColorValueTypesIOS')\n .DynamicColorIOS;\n },\n get NativeAppEventEmitter(): RCTNativeAppEventEmitter {\n return require('./Libraries/EventEmitter/RCTNativeAppEventEmitter');\n },\n get NativeModules(): NativeModules {\n return require('./Libraries/BatchedBridge/NativeModules');\n },\n get Platform(): Platform {\n return require('./Libraries/Utilities/Platform');\n },\n get PlatformColor(): PlatformColor {\n return require('./Libraries/StyleSheet/PlatformColorValueTypes')\n .PlatformColor;\n },\n get processColor(): processColor {\n return require('./Libraries/StyleSheet/processColor').default;\n },\n get requireNativeComponent(): (\n uiViewClassName: string,\n ) => HostComponent {\n return require('./Libraries/ReactNative/requireNativeComponent').default;\n },\n get RootTagContext(): RootTagContext {\n return require('./Libraries/ReactNative/RootTag').RootTagContext;\n },\n get unstable_enableLogBox(): () => void {\n return () =>\n console.warn(\n 'LogBox is enabled by default so there is no need to call unstable_enableLogBox() anymore. This is a no op and will be removed in the next version.',\n );\n },\n // Deprecated Prop Types\n get ColorPropType(): $FlowFixMe {\n console.error(\n 'ColorPropType will be removed from React Native, along with all ' +\n 'other PropTypes. We recommend that you migrate away from PropTypes ' +\n 'and switch to a type system like TypeScript. If you need to ' +\n 'continue using ColorPropType, migrate to the ' +\n \"'deprecated-react-native-prop-types' package.\",\n );\n return require('deprecated-react-native-prop-types').ColorPropType;\n },\n get EdgeInsetsPropType(): $FlowFixMe {\n console.error(\n 'EdgeInsetsPropType will be removed from React Native, along with all ' +\n 'other PropTypes. We recommend that you migrate away from PropTypes ' +\n 'and switch to a type system like TypeScript. If you need to ' +\n 'continue using EdgeInsetsPropType, migrate to the ' +\n \"'deprecated-react-native-prop-types' package.\",\n );\n return require('deprecated-react-native-prop-types').EdgeInsetsPropType;\n },\n get PointPropType(): $FlowFixMe {\n console.error(\n 'PointPropType will be removed from React Native, along with all ' +\n 'other PropTypes. We recommend that you migrate away from PropTypes ' +\n 'and switch to a type system like TypeScript. If you need to ' +\n 'continue using PointPropType, migrate to the ' +\n \"'deprecated-react-native-prop-types' package.\",\n );\n return require('deprecated-react-native-prop-types').PointPropType;\n },\n get ViewPropTypes(): $FlowFixMe {\n console.error(\n 'ViewPropTypes will be removed from React Native, along with all ' +\n 'other PropTypes. We recommend that you migrate away from PropTypes ' +\n 'and switch to a type system like TypeScript. If you need to ' +\n 'continue using ViewPropTypes, migrate to the ' +\n \"'deprecated-react-native-prop-types' package.\",\n );\n return require('deprecated-react-native-prop-types').ViewPropTypes;\n },\n};\n\nif (__DEV__) {\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ART. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ART. */\n Object.defineProperty(module.exports, 'ART', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ART has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/art' instead of 'react-native'. \" +\n 'See https://github.com/react-native-art/art',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ListView. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ListView. */\n Object.defineProperty(module.exports, 'ListView', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ListView has been removed from React Native. ' +\n 'See https://fb.me/nolistview for more information or use ' +\n '`deprecated-react-native-listview`.',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access SwipeableListView. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access SwipeableListView. */\n Object.defineProperty(module.exports, 'SwipeableListView', {\n configurable: true,\n get() {\n invariant(\n false,\n 'SwipeableListView has been removed from React Native. ' +\n 'See https://fb.me/nolistview for more information or use ' +\n '`deprecated-react-native-swipeable-listview`.',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access WebView. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access WebView. */\n Object.defineProperty(module.exports, 'WebView', {\n configurable: true,\n get() {\n invariant(\n false,\n 'WebView has been removed from React Native. ' +\n \"It can now be installed and imported from 'react-native-webview' instead of 'react-native'. \" +\n 'See https://github.com/react-native-webview/react-native-webview',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access NetInfo. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access NetInfo. */\n Object.defineProperty(module.exports, 'NetInfo', {\n configurable: true,\n get() {\n invariant(\n false,\n 'NetInfo has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/netinfo' instead of 'react-native'. \" +\n 'See https://github.com/react-native-netinfo/react-native-netinfo',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access CameraRoll. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access CameraRoll. */\n Object.defineProperty(module.exports, 'CameraRoll', {\n configurable: true,\n get() {\n invariant(\n false,\n 'CameraRoll has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/cameraroll' instead of 'react-native'. \" +\n 'See https://github.com/react-native-cameraroll/react-native-cameraroll',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ImageStore. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ImageStore. */\n Object.defineProperty(module.exports, 'ImageStore', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ImageStore has been removed from React Native. ' +\n 'To get a base64-encoded string from a local image use either of the following third-party libraries:' +\n \"* expo-file-system: `readAsStringAsync(filepath, 'base64')`\" +\n \"* react-native-fs: `readFile(filepath, 'base64')`\",\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ImageEditor. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ImageEditor. */\n Object.defineProperty(module.exports, 'ImageEditor', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ImageEditor has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/image-editor' instead of 'react-native'. \" +\n 'See https://github.com/callstack/react-native-image-editor',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access TimePickerAndroid. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access TimePickerAndroid. */\n Object.defineProperty(module.exports, 'TimePickerAndroid', {\n configurable: true,\n get() {\n invariant(\n false,\n 'TimePickerAndroid has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/datetimepicker' instead of 'react-native'. \" +\n 'See https://github.com/react-native-datetimepicker/datetimepicker',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ToolbarAndroid. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ToolbarAndroid. */\n Object.defineProperty(module.exports, 'ToolbarAndroid', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ToolbarAndroid has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/toolbar-android' instead of 'react-native'. \" +\n 'See https://github.com/react-native-toolbar-android/toolbar-android',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ViewPagerAndroid. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ViewPagerAndroid. */\n Object.defineProperty(module.exports, 'ViewPagerAndroid', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ViewPagerAndroid has been removed from React Native. ' +\n \"It can now be installed and imported from 'react-native-pager-view' instead of 'react-native'. \" +\n 'See https://github.com/callstack/react-native-pager-view',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access CheckBox. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access CheckBox. */\n Object.defineProperty(module.exports, 'CheckBox', {\n configurable: true,\n get() {\n invariant(\n false,\n 'CheckBox has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/checkbox' instead of 'react-native'. \" +\n 'See https://github.com/react-native-checkbox/react-native-checkbox',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access SegmentedControlIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access SegmentedControlIOS. */\n Object.defineProperty(module.exports, 'SegmentedControlIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'SegmentedControlIOS has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/segmented-checkbox' instead of 'react-native'.\" +\n 'See https://github.com/react-native-segmented-control/segmented-control',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access StatusBarIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access StatusBarIOS. */\n Object.defineProperty(module.exports, 'StatusBarIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'StatusBarIOS has been removed from React Native. ' +\n 'Has been merged with StatusBar. ' +\n 'See https://reactnative.dev/docs/statusbar',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access PickerIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access PickerIOS. */\n Object.defineProperty(module.exports, 'PickerIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'PickerIOS has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-picker/picker' instead of 'react-native'. \" +\n 'See https://github.com/react-native-picker/picker',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access Picker. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access Picker. */\n Object.defineProperty(module.exports, 'Picker', {\n configurable: true,\n get() {\n invariant(\n false,\n 'Picker has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-picker/picker' instead of 'react-native'. \" +\n 'See https://github.com/react-native-picker/picker',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access DatePickerAndroid. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access DatePickerAndroid. */\n Object.defineProperty(module.exports, 'DatePickerAndroid', {\n configurable: true,\n get() {\n invariant(\n false,\n 'DatePickerAndroid has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/datetimepicker' instead of 'react-native'. \" +\n 'See https://github.com/react-native-datetimepicker/datetimepicker',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access MaskedViewIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access MaskedViewIOS. */\n Object.defineProperty(module.exports, 'MaskedViewIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'MaskedViewIOS has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/react-native-masked-view' instead of 'react-native'. \" +\n 'See https://github.com/react-native-masked-view/masked-view',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access AsyncStorage. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access AsyncStorage. */\n Object.defineProperty(module.exports, 'AsyncStorage', {\n configurable: true,\n get() {\n invariant(\n false,\n 'AsyncStorage has been removed from react-native core. ' +\n \"It can now be installed and imported from '@react-native-async-storage/async-storage' instead of 'react-native'. \" +\n 'See https://github.com/react-native-async-storage/async-storage',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ImagePickerIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ImagePickerIOS. */\n Object.defineProperty(module.exports, 'ImagePickerIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ImagePickerIOS has been removed from React Native. ' +\n \"Please upgrade to use either '@react-native-community/react-native-image-picker' or 'expo-image-picker'. \" +\n \"If you cannot upgrade to a different library, please install the deprecated '@react-native-community/image-picker-ios' package. \" +\n 'See https://github.com/rnc-archive/react-native-image-picker-ios',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ProgressViewIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ProgressViewIOS. */\n Object.defineProperty(module.exports, 'ProgressViewIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ProgressViewIOS has been removed from react-native core. ' +\n \"It can now be installed and imported from '@react-native-community/progress-view' instead of 'react-native'. \" +\n 'See https://github.com/react-native-progress-view/progress-view',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access DatePickerIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access DatePickerIOS. */\n Object.defineProperty(module.exports, 'DatePickerIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'DatePickerIOS has been removed from react-native core. ' +\n \"It can now be installed and imported from '@react-native-community/datetimepicker' instead of 'react-native'. \" +\n 'See https://github.com/react-native-datetimepicker/datetimepicker',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access Slider. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access Slider. */\n Object.defineProperty(module.exports, 'Slider', {\n configurable: true,\n get() {\n invariant(\n false,\n 'Slider has been removed from react-native core. ' +\n \"It can now be installed and imported from '@react-native-community/slider' instead of 'react-native'. \" +\n 'See https://github.com/callstack/react-native-slider',\n );\n },\n });\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {EventSubscription} from '../../vendor/emitter/EventEmitter';\nimport type {ElementRef} from 'react';\n\nimport RCTDeviceEventEmitter from '../../EventEmitter/RCTDeviceEventEmitter';\nimport {sendAccessibilityEvent} from '../../ReactNative/RendererProxy';\nimport Platform from '../../Utilities/Platform';\nimport legacySendAccessibilityEvent from './legacySendAccessibilityEvent';\nimport NativeAccessibilityInfoAndroid from './NativeAccessibilityInfo';\nimport NativeAccessibilityManagerIOS from './NativeAccessibilityManager';\n\n// Events that are only supported on Android.\ntype AccessibilityEventDefinitionsAndroid = {\n accessibilityServiceChanged: [boolean],\n};\n\n// Events that are only supported on iOS.\ntype AccessibilityEventDefinitionsIOS = {\n announcementFinished: [{announcement: string, success: boolean}],\n boldTextChanged: [boolean],\n grayscaleChanged: [boolean],\n invertColorsChanged: [boolean],\n reduceTransparencyChanged: [boolean],\n};\n\ntype AccessibilityEventDefinitions = {\n ...AccessibilityEventDefinitionsAndroid,\n ...AccessibilityEventDefinitionsIOS,\n change: [boolean], // screenReaderChanged\n reduceMotionChanged: [boolean],\n screenReaderChanged: [boolean],\n};\n\ntype AccessibilityEventTypes = 'click' | 'focus' | 'viewHoverEnter';\n\n// Mapping of public event names to platform-specific event names.\nconst EventNames: Map<\n $Keys,\n string,\n> = Platform.OS === 'android'\n ? new Map([\n ['change', 'touchExplorationDidChange'],\n ['reduceMotionChanged', 'reduceMotionDidChange'],\n ['screenReaderChanged', 'touchExplorationDidChange'],\n ['accessibilityServiceChanged', 'accessibilityServiceDidChange'],\n ])\n : new Map([\n ['announcementFinished', 'announcementFinished'],\n ['boldTextChanged', 'boldTextChanged'],\n ['change', 'screenReaderChanged'],\n ['grayscaleChanged', 'grayscaleChanged'],\n ['invertColorsChanged', 'invertColorsChanged'],\n ['reduceMotionChanged', 'reduceMotionChanged'],\n ['reduceTransparencyChanged', 'reduceTransparencyChanged'],\n ['screenReaderChanged', 'screenReaderChanged'],\n ]);\n\n/**\n * Sometimes it's useful to know whether or not the device has a screen reader\n * that is currently active. The `AccessibilityInfo` API is designed for this\n * purpose. You can use it to query the current state of the screen reader as\n * well as to register to be notified when the state of the screen reader\n * changes.\n *\n * See https://reactnative.dev/docs/accessibilityinfo\n */\nconst AccessibilityInfo = {\n /**\n * Query whether bold text is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when bold text is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#isBoldTextEnabled\n */\n isBoldTextEnabled(): Promise {\n if (Platform.OS === 'android') {\n return Promise.resolve(false);\n } else {\n return new Promise((resolve, reject) => {\n if (NativeAccessibilityManagerIOS != null) {\n NativeAccessibilityManagerIOS.getCurrentBoldTextState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n });\n }\n },\n\n /**\n * Query whether grayscale is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when grayscale is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#isGrayscaleEnabled\n */\n isGrayscaleEnabled(): Promise {\n if (Platform.OS === 'android') {\n return Promise.resolve(false);\n } else {\n return new Promise((resolve, reject) => {\n if (NativeAccessibilityManagerIOS != null) {\n NativeAccessibilityManagerIOS.getCurrentGrayscaleState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n });\n }\n },\n\n /**\n * Query whether inverted colors are currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when invert color is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#isInvertColorsEnabled\n */\n isInvertColorsEnabled(): Promise {\n if (Platform.OS === 'android') {\n return Promise.resolve(false);\n } else {\n return new Promise((resolve, reject) => {\n if (NativeAccessibilityManagerIOS != null) {\n NativeAccessibilityManagerIOS.getCurrentInvertColorsState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n });\n }\n },\n\n /**\n * Query whether reduced motion is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when a reduce motion is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#isReduceMotionEnabled\n */\n isReduceMotionEnabled(): Promise {\n return new Promise((resolve, reject) => {\n if (Platform.OS === 'android') {\n if (NativeAccessibilityInfoAndroid != null) {\n NativeAccessibilityInfoAndroid.isReduceMotionEnabled(resolve);\n } else {\n reject(null);\n }\n } else {\n if (NativeAccessibilityManagerIOS != null) {\n NativeAccessibilityManagerIOS.getCurrentReduceMotionState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n }\n });\n },\n\n /**\n * Query whether reduce motion and prefer cross-fade transitions settings are currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when prefer cross-fade transitions is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#prefersCrossFadeTransitions\n */\n prefersCrossFadeTransitions(): Promise {\n return new Promise((resolve, reject) => {\n if (Platform.OS === 'android') {\n return Promise.resolve(false);\n } else {\n if (\n NativeAccessibilityManagerIOS?.getCurrentPrefersCrossFadeTransitionsState !=\n null\n ) {\n NativeAccessibilityManagerIOS.getCurrentPrefersCrossFadeTransitionsState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n }\n });\n },\n\n /**\n * Query whether reduced transparency is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when a reduce transparency is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#isReduceTransparencyEnabled\n */\n isReduceTransparencyEnabled(): Promise {\n if (Platform.OS === 'android') {\n return Promise.resolve(false);\n } else {\n return new Promise((resolve, reject) => {\n if (NativeAccessibilityManagerIOS != null) {\n NativeAccessibilityManagerIOS.getCurrentReduceTransparencyState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n });\n }\n },\n\n /**\n * Query whether a screen reader is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when a screen reader is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#isScreenReaderEnabled\n */\n isScreenReaderEnabled(): Promise {\n return new Promise((resolve, reject) => {\n if (Platform.OS === 'android') {\n if (NativeAccessibilityInfoAndroid != null) {\n NativeAccessibilityInfoAndroid.isTouchExplorationEnabled(resolve);\n } else {\n reject(null);\n }\n } else {\n if (NativeAccessibilityManagerIOS != null) {\n NativeAccessibilityManagerIOS.getCurrentVoiceOverState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n }\n });\n },\n\n /**\n * Query whether Accessibility Service is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when any service is enabled and `false` otherwise.\n *\n * @platform android\n *\n * See https://reactnative.dev/docs/accessibilityinfo/#isaccessibilityserviceenabled-android\n */\n isAccessibilityServiceEnabled(): Promise {\n return new Promise((resolve, reject) => {\n if (Platform.OS === 'android') {\n if (\n NativeAccessibilityInfoAndroid != null &&\n NativeAccessibilityInfoAndroid.isAccessibilityServiceEnabled != null\n ) {\n NativeAccessibilityInfoAndroid.isAccessibilityServiceEnabled(resolve);\n } else {\n reject(null);\n }\n } else {\n reject(null);\n }\n });\n },\n\n /**\n * Add an event handler. Supported events:\n *\n * - `reduceMotionChanged`: Fires when the state of the reduce motion toggle changes.\n * The argument to the event handler is a boolean. The boolean is `true` when a reduce\n * motion is enabled (or when \"Transition Animation Scale\" in \"Developer options\" is\n * \"Animation off\") and `false` otherwise.\n * - `screenReaderChanged`: Fires when the state of the screen reader changes. The argument\n * to the event handler is a boolean. The boolean is `true` when a screen\n * reader is enabled and `false` otherwise.\n *\n * These events are only supported on iOS:\n *\n * - `boldTextChanged`: iOS-only event. Fires when the state of the bold text toggle changes.\n * The argument to the event handler is a boolean. The boolean is `true` when a bold text\n * is enabled and `false` otherwise.\n * - `grayscaleChanged`: iOS-only event. Fires when the state of the gray scale toggle changes.\n * The argument to the event handler is a boolean. The boolean is `true` when a gray scale\n * is enabled and `false` otherwise.\n * - `invertColorsChanged`: iOS-only event. Fires when the state of the invert colors toggle\n * changes. The argument to the event handler is a boolean. The boolean is `true` when a invert\n * colors is enabled and `false` otherwise.\n * - `reduceTransparencyChanged`: iOS-only event. Fires when the state of the reduce transparency\n * toggle changes. The argument to the event handler is a boolean. The boolean is `true`\n * when a reduce transparency is enabled and `false` otherwise.\n * - `announcementFinished`: iOS-only event. Fires when the screen reader has\n * finished making an announcement. The argument to the event handler is a\n * dictionary with these keys:\n * - `announcement`: The string announced by the screen reader.\n * - `success`: A boolean indicating whether the announcement was\n * successfully made.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#addeventlistener\n */\n addEventListener>(\n eventName: K,\n // $FlowIssue[incompatible-type] - Flow bug with unions and generics (T128099423)\n handler: (...$ElementType) => void,\n ): EventSubscription {\n const deviceEventName = EventNames.get(eventName);\n return deviceEventName == null\n ? {remove(): void {}}\n : // $FlowFixMe[incompatible-call]\n RCTDeviceEventEmitter.addListener(deviceEventName, handler);\n },\n\n /**\n * Set accessibility focus to a React component.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#setaccessibilityfocus\n */\n setAccessibilityFocus(reactTag: number): void {\n legacySendAccessibilityEvent(reactTag, 'focus');\n },\n\n /**\n * Send a named accessibility event to a HostComponent.\n */\n sendAccessibilityEvent(\n handle: ElementRef>,\n eventType: AccessibilityEventTypes,\n ) {\n // iOS only supports 'focus' event types\n if (Platform.OS === 'ios' && eventType === 'click') {\n return;\n }\n // route through React renderer to distinguish between Fabric and non-Fabric handles\n sendAccessibilityEvent(handle, eventType);\n },\n\n /**\n * Post a string to be announced by the screen reader.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#announceforaccessibility\n */\n announceForAccessibility(announcement: string): void {\n if (Platform.OS === 'android') {\n NativeAccessibilityInfoAndroid?.announceForAccessibility(announcement);\n } else {\n NativeAccessibilityManagerIOS?.announceForAccessibility(announcement);\n }\n },\n\n /**\n * Post a string to be announced by the screen reader.\n * - `announcement`: The string announced by the screen reader.\n * - `options`: An object that configures the reading options.\n * - `queue`: The announcement will be queued behind existing announcements. iOS only.\n */\n announceForAccessibilityWithOptions(\n announcement: string,\n options: {queue?: boolean},\n ): void {\n if (Platform.OS === 'android') {\n NativeAccessibilityInfoAndroid?.announceForAccessibility(announcement);\n } else {\n if (NativeAccessibilityManagerIOS?.announceForAccessibilityWithOptions) {\n NativeAccessibilityManagerIOS?.announceForAccessibilityWithOptions(\n announcement,\n options,\n );\n } else {\n NativeAccessibilityManagerIOS?.announceForAccessibility(announcement);\n }\n }\n },\n\n /**\n * Get the recommended timeout for changes to the UI needed by this user.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#getrecommendedtimeoutmillis\n */\n getRecommendedTimeoutMillis(originalTimeout: number): Promise {\n if (Platform.OS === 'android') {\n return new Promise((resolve, reject) => {\n if (NativeAccessibilityInfoAndroid?.getRecommendedTimeoutMillis) {\n NativeAccessibilityInfoAndroid.getRecommendedTimeoutMillis(\n originalTimeout,\n resolve,\n );\n } else {\n resolve(originalTimeout);\n }\n });\n } else {\n return Promise.resolve(originalTimeout);\n }\n },\n};\n\nexport default AccessibilityInfo;\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {IEventEmitter} from '../vendor/emitter/EventEmitter';\n\nimport EventEmitter from '../vendor/emitter/EventEmitter';\n\n// FIXME: use typed events\ntype RCTDeviceEventDefinitions = $FlowFixMe;\n\n/**\n * Global EventEmitter used by the native platform to emit events to JavaScript.\n * Events are identified by globally unique event names.\n *\n * NativeModules that emit events should instead subclass `NativeEventEmitter`.\n */\nconst RCTDeviceEventEmitter: IEventEmitter =\n new EventEmitter();\n\nObject.defineProperty(global, '__rctDeviceEventEmitter', {\n configurable: true,\n value: RCTDeviceEventEmitter,\n});\n\nexport default (RCTDeviceEventEmitter: IEventEmitter);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nexport interface EventSubscription {\n remove(): void;\n}\n\nexport interface IEventEmitter {\n addListener>(\n eventType: TEvent,\n listener: (...args: $ElementType) => mixed,\n context?: mixed,\n ): EventSubscription;\n\n emit>(\n eventType: TEvent,\n ...args: $ElementType\n ): void;\n\n removeAllListeners>(eventType?: ?TEvent): void;\n\n listenerCount>(eventType: TEvent): number;\n}\n\ninterface Registration {\n +context: mixed;\n +listener: (...args: TArgs) => mixed;\n +remove: () => void;\n}\n\ntype Registry = $ObjMap<\n TEventToArgsMap,\n (TArgs) => Set>,\n>;\n\n/**\n * EventEmitter manages listeners and publishes events to them.\n *\n * EventEmitter accepts a single type parameter that defines the valid events\n * and associated listener argument(s).\n *\n * @example\n *\n * const emitter = new EventEmitter<{\n * success: [number, string],\n * error: [Error],\n * }>();\n *\n * emitter.on('success', (statusCode, responseText) => {...});\n * emitter.emit('success', 200, '...');\n *\n * emitter.on('error', error => {...});\n * emitter.emit('error', new Error('Resource not found'));\n *\n */\nexport default class EventEmitter\n implements IEventEmitter\n{\n _registry: Registry = {};\n\n /**\n * Registers a listener that is called when the supplied event is emitted.\n * Returns a subscription that has a `remove` method to undo registration.\n */\n addListener>(\n eventType: TEvent,\n listener: (...args: $ElementType) => mixed,\n context: mixed,\n ): EventSubscription {\n if (typeof listener !== 'function') {\n throw new TypeError(\n 'EventEmitter.addListener(...): 2nd argument must be a function.',\n );\n }\n const registrations = allocate<_, _, TEventToArgsMap[TEvent]>(\n this._registry,\n eventType,\n );\n const registration: Registration<$ElementType> = {\n context,\n listener,\n remove(): void {\n registrations.delete(registration);\n },\n };\n registrations.add(registration);\n return registration;\n }\n\n /**\n * Emits the supplied event. Additional arguments supplied to `emit` will be\n * passed through to each of the registered listeners.\n *\n * If a listener modifies the listeners registered for the same event, those\n * changes will not be reflected in the current invocation of `emit`.\n */\n emit>(\n eventType: TEvent,\n ...args: $ElementType\n ): void {\n const registrations: ?Set<\n Registration<$ElementType>,\n > = this._registry[eventType];\n if (registrations != null) {\n for (const registration of [...registrations]) {\n registration.listener.apply(registration.context, args);\n }\n }\n }\n\n /**\n * Removes all registered listeners.\n */\n removeAllListeners>(\n eventType?: ?TEvent,\n ): void {\n if (eventType == null) {\n this._registry = {};\n } else {\n delete this._registry[eventType];\n }\n }\n\n /**\n * Returns the number of registered listeners for the supplied event.\n */\n listenerCount>(eventType: TEvent): number {\n const registrations: ?Set> = this._registry[eventType];\n return registrations == null ? 0 : registrations.size;\n }\n}\n\nfunction allocate<\n TEventToArgsMap: {...},\n TEvent: $Keys,\n TEventArgs: $ElementType,\n>(\n registry: Registry,\n eventType: TEvent,\n): Set> {\n let registrations: ?Set> = registry[eventType];\n if (registrations == null) {\n registrations = new Set();\n registry[eventType] = registrations;\n }\n return registrations;\n}\n","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport NativePlatformConstantsAndroid from './NativePlatformConstantsAndroid';\n\nexport type PlatformSelectSpec = {\n android?: T,\n native?: T,\n default?: T,\n ...\n};\n\nconst Platform = {\n __constants: null,\n OS: 'android',\n // $FlowFixMe[unsafe-getters-setters]\n get Version(): number {\n // $FlowFixMe[object-this-reference]\n return this.constants.Version;\n },\n // $FlowFixMe[unsafe-getters-setters]\n get constants(): {|\n isTesting: boolean,\n reactNativeVersion: {|\n major: number,\n minor: number,\n patch: number,\n prerelease: ?number,\n |},\n Version: number,\n Release: string,\n Serial: string,\n Fingerprint: string,\n Model: string,\n ServerHost?: string,\n uiMode: string,\n Brand: string,\n Manufacturer: string,\n |} {\n // $FlowFixMe[object-this-reference]\n if (this.__constants == null) {\n // $FlowFixMe[object-this-reference]\n this.__constants = NativePlatformConstantsAndroid.getConstants();\n }\n // $FlowFixMe[object-this-reference]\n return this.__constants;\n },\n // $FlowFixMe[unsafe-getters-setters]\n get isTesting(): boolean {\n if (__DEV__) {\n // $FlowFixMe[object-this-reference]\n return this.constants.isTesting;\n }\n return false;\n },\n // $FlowFixMe[unsafe-getters-setters]\n get isTV(): boolean {\n // $FlowFixMe[object-this-reference]\n return this.constants.uiMode === 'tv';\n },\n select: (spec: PlatformSelectSpec): T =>\n 'android' in spec\n ? // $FlowFixMe[incompatible-return]\n spec.android\n : 'native' in spec\n ? // $FlowFixMe[incompatible-return]\n spec.native\n : // $FlowFixMe[incompatible-return]\n spec.default,\n};\n\nmodule.exports = Platform;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n isTesting: boolean,\n reactNativeVersion: {|\n major: number,\n minor: number,\n patch: number,\n prerelease: ?number,\n |},\n Version: number,\n Release: string,\n Serial: string,\n Fingerprint: string,\n Model: string,\n ServerHost?: string,\n uiMode: string,\n Brand: string,\n Manufacturer: string,\n |};\n +getAndroidID: () => string;\n}\n\nexport default (TurboModuleRegistry.getEnforcing(\n 'PlatformConstants',\n): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from './RCTExport';\n\nimport invariant from 'invariant';\n\nconst NativeModules = require('../BatchedBridge/NativeModules');\n\nconst turboModuleProxy = global.__turboModuleProxy;\n\nfunction requireModule(name: string): ?T {\n // Bridgeless mode requires TurboModules\n if (global.RN$Bridgeless !== true) {\n // Backward compatibility layer during migration.\n const legacyModule = NativeModules[name];\n if (legacyModule != null) {\n return ((legacyModule: $FlowFixMe): T);\n }\n }\n\n if (turboModuleProxy != null) {\n const module: ?T = turboModuleProxy(name);\n return module;\n }\n\n return null;\n}\n\nexport function get(name: string): ?T {\n return requireModule(name);\n}\n\nexport function getEnforcing(name: string): T {\n const module = requireModule(name);\n invariant(\n module != null,\n `TurboModuleRegistry.getEnforcing(...): '${name}' could not be found. ` +\n 'Verify that a module by this name is registered in the native binary.',\n );\n return module;\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nimport type {ExtendedError} from '../Core/ExtendedError';\n\nconst BatchedBridge = require('./BatchedBridge');\nconst invariant = require('invariant');\n\nexport type ModuleConfig = [\n string /* name */,\n ?{...} /* constants */,\n ?$ReadOnlyArray /* functions */,\n ?$ReadOnlyArray /* promise method IDs */,\n ?$ReadOnlyArray /* sync method IDs */,\n];\n\nexport type MethodType = 'async' | 'promise' | 'sync';\n\nfunction genModule(\n config: ?ModuleConfig,\n moduleID: number,\n): ?{\n name: string,\n module?: {...},\n ...\n} {\n if (!config) {\n return null;\n }\n\n const [moduleName, constants, methods, promiseMethods, syncMethods] = config;\n invariant(\n !moduleName.startsWith('RCT') && !moduleName.startsWith('RK'),\n \"Module name prefixes should've been stripped by the native side \" +\n \"but wasn't for \" +\n moduleName,\n );\n\n if (!constants && !methods) {\n // Module contents will be filled in lazily later\n return {name: moduleName};\n }\n\n const module: {[string]: mixed} = {};\n methods &&\n methods.forEach((methodName, methodID) => {\n const isPromise =\n (promiseMethods && arrayContains(promiseMethods, methodID)) || false;\n const isSync =\n (syncMethods && arrayContains(syncMethods, methodID)) || false;\n invariant(\n !isPromise || !isSync,\n 'Cannot have a method that is both async and a sync hook',\n );\n const methodType = isPromise ? 'promise' : isSync ? 'sync' : 'async';\n module[methodName] = genMethod(moduleID, methodID, methodType);\n });\n\n Object.assign(module, constants);\n\n if (module.getConstants == null) {\n module.getConstants = () => constants || Object.freeze({});\n } else {\n console.warn(\n `Unable to define method 'getConstants()' on NativeModule '${moduleName}'. NativeModule '${moduleName}' already has a constant or method called 'getConstants'. Please remove it.`,\n );\n }\n\n if (__DEV__) {\n BatchedBridge.createDebugLookup(moduleID, moduleName, methods);\n }\n\n return {name: moduleName, module};\n}\n\n// export this method as a global so we can call it from native\nglobal.__fbGenNativeModule = genModule;\n\nfunction loadModule(name: string, moduleID: number): ?{...} {\n invariant(\n global.nativeRequireModuleConfig,\n \"Can't lazily create module without nativeRequireModuleConfig\",\n );\n const config = global.nativeRequireModuleConfig(name);\n const info = genModule(config, moduleID);\n return info && info.module;\n}\n\nfunction genMethod(moduleID: number, methodID: number, type: MethodType) {\n let fn = null;\n if (type === 'promise') {\n fn = function promiseMethodWrapper(...args: Array) {\n // In case we reject, capture a useful stack trace here.\n /* $FlowFixMe[class-object-subtyping] added when improving typing for\n * this parameters */\n const enqueueingFrameError: ExtendedError = new Error();\n return new Promise((resolve, reject) => {\n BatchedBridge.enqueueNativeCall(\n moduleID,\n methodID,\n args,\n data => resolve(data),\n errorData =>\n reject(\n updateErrorWithErrorData(\n (errorData: $FlowFixMe),\n enqueueingFrameError,\n ),\n ),\n );\n });\n };\n } else {\n fn = function nonPromiseMethodWrapper(...args: Array) {\n const lastArg = args.length > 0 ? args[args.length - 1] : null;\n const secondLastArg = args.length > 1 ? args[args.length - 2] : null;\n const hasSuccessCallback = typeof lastArg === 'function';\n const hasErrorCallback = typeof secondLastArg === 'function';\n hasErrorCallback &&\n invariant(\n hasSuccessCallback,\n 'Cannot have a non-function arg after a function arg.',\n );\n // $FlowFixMe[incompatible-type]\n const onSuccess: ?(mixed) => void = hasSuccessCallback ? lastArg : null;\n // $FlowFixMe[incompatible-type]\n const onFail: ?(mixed) => void = hasErrorCallback ? secondLastArg : null;\n // $FlowFixMe[unsafe-addition]\n const callbackCount = hasSuccessCallback + hasErrorCallback;\n const newArgs = args.slice(0, args.length - callbackCount);\n if (type === 'sync') {\n return BatchedBridge.callNativeSyncHook(\n moduleID,\n methodID,\n newArgs,\n onFail,\n onSuccess,\n );\n } else {\n BatchedBridge.enqueueNativeCall(\n moduleID,\n methodID,\n newArgs,\n onFail,\n onSuccess,\n );\n }\n };\n }\n // $FlowFixMe[prop-missing]\n fn.type = type;\n return fn;\n}\n\nfunction arrayContains(array: $ReadOnlyArray, value: T): boolean {\n return array.indexOf(value) !== -1;\n}\n\nfunction updateErrorWithErrorData(\n errorData: {message: string, ...},\n error: ExtendedError,\n): ExtendedError {\n /* $FlowFixMe[class-object-subtyping] added when improving typing for this\n * parameters */\n return Object.assign(error, errorData || {});\n}\n\nlet NativeModules: {[moduleName: string]: $FlowFixMe, ...} = {};\nif (global.nativeModuleProxy) {\n NativeModules = global.nativeModuleProxy;\n} else if (!global.nativeExtensions) {\n const bridgeConfig = global.__fbBatchedBridgeConfig;\n invariant(\n bridgeConfig,\n '__fbBatchedBridgeConfig is not set, cannot invoke native modules',\n );\n\n const defineLazyObjectProperty = require('../Utilities/defineLazyObjectProperty');\n (bridgeConfig.remoteModuleConfig || []).forEach(\n (config: ModuleConfig, moduleID: number) => {\n // Initially this config will only contain the module name when running in JSC. The actual\n // configuration of the module will be lazily loaded.\n const info = genModule(config, moduleID);\n if (!info) {\n return;\n }\n\n if (info.module) {\n NativeModules[info.name] = info.module;\n }\n // If there's no module config, define a lazy getter\n else {\n defineLazyObjectProperty(NativeModules, info.name, {\n get: () => loadModule(info.name, moduleID),\n });\n }\n },\n );\n}\n\nmodule.exports = NativeModules;\n","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nconst MessageQueue = require('./MessageQueue');\n\nconst BatchedBridge: MessageQueue = new MessageQueue();\n\n// Wire up the batched bridge on the global object so that we can call into it.\n// Ideally, this would be the inverse relationship. I.e. the native environment\n// provides this global directly with its script embedded. Then this module\n// would export it. A possible fix would be to trim the dependencies in\n// MessageQueue to its minimal features and embed that in the native runtime.\n\nObject.defineProperty(global, '__fbBatchedBridge', {\n configurable: true,\n value: BatchedBridge,\n});\n\nmodule.exports = BatchedBridge;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nconst Systrace = require('../Performance/Systrace');\nconst deepFreezeAndThrowOnMutationInDev = require('../Utilities/deepFreezeAndThrowOnMutationInDev');\nconst stringifySafe = require('../Utilities/stringifySafe').default;\nconst warnOnce = require('../Utilities/warnOnce');\nconst ErrorUtils = require('../vendor/core/ErrorUtils');\nconst invariant = require('invariant');\n\nexport type SpyData = {\n type: number,\n module: ?string,\n method: string | number,\n args: mixed[],\n ...\n};\n\nconst TO_JS = 0;\nconst TO_NATIVE = 1;\n\nconst MODULE_IDS = 0;\nconst METHOD_IDS = 1;\nconst PARAMS = 2;\nconst MIN_TIME_BETWEEN_FLUSHES_MS = 5;\n\n// eslint-disable-next-line no-bitwise\nconst TRACE_TAG_REACT_APPS = 1 << 17;\n\nconst DEBUG_INFO_LIMIT = 32;\n\nclass MessageQueue {\n _lazyCallableModules: {[key: string]: (void) => {...}, ...};\n _queue: [number[], number[], mixed[], number];\n _successCallbacks: Map void>;\n _failureCallbacks: Map void>;\n _callID: number;\n _lastFlush: number;\n _eventLoopStartTime: number;\n _reactNativeMicrotasksCallback: ?() => void;\n\n _debugInfo: {[number]: [number, number], ...};\n _remoteModuleTable: {[number]: string, ...};\n _remoteMethodTable: {[number]: $ReadOnlyArray, ...};\n\n __spy: ?(data: SpyData) => void;\n\n constructor() {\n this._lazyCallableModules = {};\n this._queue = [[], [], [], 0];\n this._successCallbacks = new Map();\n this._failureCallbacks = new Map();\n this._callID = 0;\n this._lastFlush = 0;\n this._eventLoopStartTime = Date.now();\n this._reactNativeMicrotasksCallback = null;\n\n if (__DEV__) {\n this._debugInfo = {};\n this._remoteModuleTable = {};\n this._remoteMethodTable = {};\n }\n\n // $FlowFixMe[cannot-write]\n this.callFunctionReturnFlushedQueue =\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.callFunctionReturnFlushedQueue.bind(this);\n // $FlowFixMe[cannot-write]\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.flushedQueue = this.flushedQueue.bind(this);\n\n // $FlowFixMe[cannot-write]\n this.invokeCallbackAndReturnFlushedQueue =\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.invokeCallbackAndReturnFlushedQueue.bind(this);\n }\n\n /**\n * Public APIs\n */\n\n static spy(spyOrToggle: boolean | ((data: SpyData) => void)) {\n if (spyOrToggle === true) {\n MessageQueue.prototype.__spy = info => {\n console.log(\n `${info.type === TO_JS ? 'N->JS' : 'JS->N'} : ` +\n `${info.module != null ? info.module + '.' : ''}${info.method}` +\n `(${JSON.stringify(info.args)})`,\n );\n };\n } else if (spyOrToggle === false) {\n MessageQueue.prototype.__spy = null;\n } else {\n MessageQueue.prototype.__spy = spyOrToggle;\n }\n }\n\n callFunctionReturnFlushedQueue(\n module: string,\n method: string,\n args: mixed[],\n ): null | [Array, Array, Array, number] {\n this.__guard(() => {\n this.__callFunction(module, method, args);\n });\n\n return this.flushedQueue();\n }\n\n invokeCallbackAndReturnFlushedQueue(\n cbID: number,\n args: mixed[],\n ): null | [Array, Array, Array, number] {\n this.__guard(() => {\n this.__invokeCallback(cbID, args);\n });\n\n return this.flushedQueue();\n }\n\n flushedQueue(): null | [Array, Array, Array, number] {\n this.__guard(() => {\n this.__callReactNativeMicrotasks();\n });\n\n const queue = this._queue;\n this._queue = [[], [], [], this._callID];\n return queue[0].length ? queue : null;\n }\n\n getEventLoopRunningTime(): number {\n return Date.now() - this._eventLoopStartTime;\n }\n\n registerCallableModule(name: string, module: {...}) {\n this._lazyCallableModules[name] = () => module;\n }\n\n registerLazyCallableModule(name: string, factory: void => interface {}) {\n let module: interface {};\n let getValue: ?(void) => interface {} = factory;\n this._lazyCallableModules[name] = () => {\n if (getValue) {\n module = getValue();\n getValue = null;\n }\n /* $FlowFixMe[class-object-subtyping] added when improving typing for\n * this parameters */\n return module;\n };\n }\n\n getCallableModule(name: string): {...} | null {\n const getValue = this._lazyCallableModules[name];\n return getValue ? getValue() : null;\n }\n\n callNativeSyncHook(\n moduleID: number,\n methodID: number,\n params: mixed[],\n onFail: ?(...mixed[]) => void,\n onSucc: ?(...mixed[]) => void,\n ): mixed {\n if (__DEV__) {\n invariant(\n global.nativeCallSyncHook,\n 'Calling synchronous methods on native ' +\n 'modules is not supported in Chrome.\\n\\n Consider providing alternative ' +\n 'methods to expose this method in debug mode, e.g. by exposing constants ' +\n 'ahead-of-time.',\n );\n }\n this.processCallbacks(moduleID, methodID, params, onFail, onSucc);\n return global.nativeCallSyncHook(moduleID, methodID, params);\n }\n\n processCallbacks(\n moduleID: number,\n methodID: number,\n params: mixed[],\n onFail: ?(...mixed[]) => void,\n onSucc: ?(...mixed[]) => void,\n ): void {\n if (onFail || onSucc) {\n if (__DEV__) {\n this._debugInfo[this._callID] = [moduleID, methodID];\n if (this._callID > DEBUG_INFO_LIMIT) {\n delete this._debugInfo[this._callID - DEBUG_INFO_LIMIT];\n }\n if (this._successCallbacks.size > 500) {\n const info: {[number]: {method: string, module: string}} = {};\n this._successCallbacks.forEach((_, callID) => {\n const debug = this._debugInfo[callID];\n const module = debug && this._remoteModuleTable[debug[0]];\n const method = debug && this._remoteMethodTable[debug[0]][debug[1]];\n info[callID] = {module, method};\n });\n warnOnce(\n 'excessive-number-of-pending-callbacks',\n `Excessive number of pending callbacks: ${\n this._successCallbacks.size\n }. Some pending callbacks that might have leaked by never being called from native code: ${stringifySafe(\n info,\n )}`,\n );\n }\n }\n // Encode callIDs into pairs of callback identifiers by shifting left and using the rightmost bit\n // to indicate fail (0) or success (1)\n // eslint-disable-next-line no-bitwise\n onFail && params.push(this._callID << 1);\n // eslint-disable-next-line no-bitwise\n onSucc && params.push((this._callID << 1) | 1);\n this._successCallbacks.set(this._callID, onSucc);\n this._failureCallbacks.set(this._callID, onFail);\n }\n if (__DEV__) {\n global.nativeTraceBeginAsyncFlow &&\n global.nativeTraceBeginAsyncFlow(\n TRACE_TAG_REACT_APPS,\n 'native',\n this._callID,\n );\n }\n this._callID++;\n }\n\n enqueueNativeCall(\n moduleID: number,\n methodID: number,\n params: mixed[],\n onFail: ?(...mixed[]) => void,\n onSucc: ?(...mixed[]) => void,\n ): void {\n this.processCallbacks(moduleID, methodID, params, onFail, onSucc);\n\n this._queue[MODULE_IDS].push(moduleID);\n this._queue[METHOD_IDS].push(methodID);\n\n if (__DEV__) {\n // Validate that parameters passed over the bridge are\n // folly-convertible. As a special case, if a prop value is a\n // function it is permitted here, and special-cased in the\n // conversion.\n const isValidArgument = (val: mixed): boolean => {\n switch (typeof val) {\n case 'undefined':\n case 'boolean':\n case 'string':\n return true;\n case 'number':\n return isFinite(val);\n case 'object':\n if (val == null) {\n return true;\n }\n\n if (Array.isArray(val)) {\n return val.every(isValidArgument);\n }\n\n for (const k in val) {\n if (typeof val[k] !== 'function' && !isValidArgument(val[k])) {\n return false;\n }\n }\n\n return true;\n case 'function':\n return false;\n default:\n return false;\n }\n };\n\n // Replacement allows normally non-JSON-convertible values to be\n // seen. There is ambiguity with string values, but in context,\n // it should at least be a strong hint.\n const replacer = (key: string, val: $FlowFixMe) => {\n const t = typeof val;\n if (t === 'function') {\n return '<>';\n } else if (t === 'number' && !isFinite(val)) {\n return '<<' + val.toString() + '>>';\n } else {\n return val;\n }\n };\n\n // Note that JSON.stringify\n invariant(\n isValidArgument(params),\n '%s is not usable as a native method argument',\n JSON.stringify(params, replacer),\n );\n\n // The params object should not be mutated after being queued\n deepFreezeAndThrowOnMutationInDev(params);\n }\n this._queue[PARAMS].push(params);\n\n const now = Date.now();\n if (\n global.nativeFlushQueueImmediate &&\n now - this._lastFlush >= MIN_TIME_BETWEEN_FLUSHES_MS\n ) {\n const queue = this._queue;\n this._queue = [[], [], [], this._callID];\n this._lastFlush = now;\n global.nativeFlushQueueImmediate(queue);\n }\n Systrace.counterEvent('pending_js_to_native_queue', this._queue[0].length);\n if (__DEV__ && this.__spy && isFinite(moduleID)) {\n // $FlowFixMe[not-a-function]\n this.__spy({\n type: TO_NATIVE,\n module: this._remoteModuleTable[moduleID],\n method: this._remoteMethodTable[moduleID][methodID],\n args: params,\n });\n } else if (this.__spy) {\n this.__spy({\n type: TO_NATIVE,\n module: moduleID + '',\n method: methodID,\n args: params,\n });\n }\n }\n\n createDebugLookup(\n moduleID: number,\n name: string,\n methods: ?$ReadOnlyArray,\n ) {\n if (__DEV__) {\n this._remoteModuleTable[moduleID] = name;\n this._remoteMethodTable[moduleID] = methods || [];\n }\n }\n\n // For JSTimers to register its callback. Otherwise a circular dependency\n // between modules is introduced. Note that only one callback may be\n // registered at a time.\n setReactNativeMicrotasksCallback(fn: () => void) {\n this._reactNativeMicrotasksCallback = fn;\n }\n\n /**\n * Private methods\n */\n\n __guard(fn: () => void) {\n if (this.__shouldPauseOnThrow()) {\n fn();\n } else {\n try {\n fn();\n } catch (error) {\n ErrorUtils.reportFatalError(error);\n }\n }\n }\n\n // MessageQueue installs a global handler to catch all exceptions where JS users can register their own behavior\n // This handler makes all exceptions to be propagated from inside MessageQueue rather than by the VM at their origin\n // This makes stacktraces to be placed at MessageQueue rather than at where they were launched\n // The parameter DebuggerInternal.shouldPauseOnThrow is used to check before catching all exceptions and\n // can be configured by the VM or any Inspector\n __shouldPauseOnThrow(): boolean {\n return (\n // $FlowFixMe[cannot-resolve-name]\n typeof DebuggerInternal !== 'undefined' &&\n // $FlowFixMe[cannot-resolve-name]\n DebuggerInternal.shouldPauseOnThrow === true\n );\n }\n\n __callReactNativeMicrotasks() {\n Systrace.beginEvent('JSTimers.callReactNativeMicrotasks()');\n if (this._reactNativeMicrotasksCallback != null) {\n this._reactNativeMicrotasksCallback();\n }\n Systrace.endEvent();\n }\n\n __callFunction(module: string, method: string, args: mixed[]): void {\n this._lastFlush = Date.now();\n this._eventLoopStartTime = this._lastFlush;\n if (__DEV__ || this.__spy) {\n Systrace.beginEvent(`${module}.${method}(${stringifySafe(args)})`);\n } else {\n Systrace.beginEvent(`${module}.${method}(...)`);\n }\n if (this.__spy) {\n this.__spy({type: TO_JS, module, method, args});\n }\n const moduleMethods = this.getCallableModule(module);\n if (!moduleMethods) {\n const callableModuleNames = Object.keys(this._lazyCallableModules);\n const n = callableModuleNames.length;\n const callableModuleNameList = callableModuleNames.join(', ');\n\n // TODO(T122225939): Remove after investigation: Why are we getting to this line in bridgeless mode?\n const isBridgelessMode = global.RN$Bridgeless === true ? 'true' : 'false';\n invariant(\n false,\n `Failed to call into JavaScript module method ${module}.${method}(). Module has not been registered as callable. Bridgeless Mode: ${isBridgelessMode}. Registered callable JavaScript modules (n = ${n}): ${callableModuleNameList}.\n A frequent cause of the error is that the application entry file path is incorrect. This can also happen when the JS bundle is corrupt or there is an early initialization error when loading React Native.`,\n );\n }\n if (!moduleMethods[method]) {\n invariant(\n false,\n `Failed to call into JavaScript module method ${module}.${method}(). Module exists, but the method is undefined.`,\n );\n }\n moduleMethods[method].apply(moduleMethods, args);\n Systrace.endEvent();\n }\n\n __invokeCallback(cbID: number, args: mixed[]): void {\n this._lastFlush = Date.now();\n this._eventLoopStartTime = this._lastFlush;\n\n // The rightmost bit of cbID indicates fail (0) or success (1), the other bits are the callID shifted left.\n // eslint-disable-next-line no-bitwise\n const callID = cbID >>> 1;\n // eslint-disable-next-line no-bitwise\n const isSuccess = cbID & 1;\n const callback = isSuccess\n ? this._successCallbacks.get(callID)\n : this._failureCallbacks.get(callID);\n\n if (__DEV__) {\n const debug = this._debugInfo[callID];\n const module = debug && this._remoteModuleTable[debug[0]];\n const method = debug && this._remoteMethodTable[debug[0]][debug[1]];\n invariant(\n callback,\n `No callback found with cbID ${cbID} and callID ${callID} for ` +\n (method\n ? ` ${module}.${method} - most likely the callback was already invoked`\n : `module ${module || ''}`) +\n `. Args: '${stringifySafe(args)}'`,\n );\n const profileName = debug\n ? ''\n : cbID;\n if (callback && this.__spy) {\n this.__spy({type: TO_JS, module: null, method: profileName, args});\n }\n Systrace.beginEvent(\n `MessageQueue.invokeCallback(${profileName}, ${stringifySafe(args)})`,\n );\n }\n\n if (!callback) {\n return;\n }\n\n this._successCallbacks.delete(callID);\n this._failureCallbacks.delete(callID);\n callback(...args);\n\n if (__DEV__) {\n Systrace.endEvent();\n }\n }\n}\n\nmodule.exports = MessageQueue;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport typeof * as SystraceModule from './Systrace';\n\nconst TRACE_TAG_REACT_APPS = 1 << 17; // eslint-disable-line no-bitwise\n\nlet _asyncCookie = 0;\n\ntype EventName = string | (() => string);\ntype EventArgs = ?{[string]: string};\n\n/**\n * Indicates if the application is currently being traced.\n *\n * Calling methods on this module when the application isn't being traced is\n * cheap, but this method can be used to avoid computing expensive values for\n * those functions.\n *\n * @example\n * if (Systrace.isEnabled()) {\n * const expensiveArgs = computeExpensiveArgs();\n * Systrace.beginEvent('myEvent', expensiveArgs);\n * }\n */\nexport function isEnabled(): boolean {\n return global.nativeTraceIsTracing\n ? global.nativeTraceIsTracing(TRACE_TAG_REACT_APPS)\n : Boolean(global.__RCTProfileIsProfiling);\n}\n\n/**\n * @deprecated This function is now a no-op but it's left for backwards\n * compatibility. `isEnabled` will now synchronously check if we're actively\n * profiling or not. This is necessary because we don't have callbacks to know\n * when profiling has started/stopped on Android APIs.\n */\nexport function setEnabled(_doEnable: boolean): void {}\n\n/**\n * Marks the start of a synchronous event that should end in the same stack\n * frame. The end of this event should be marked using the `endEvent` function.\n */\nexport function beginEvent(eventName: EventName, args?: EventArgs): void {\n if (isEnabled()) {\n const eventNameString =\n typeof eventName === 'function' ? eventName() : eventName;\n global.nativeTraceBeginSection(TRACE_TAG_REACT_APPS, eventNameString, args);\n }\n}\n\n/**\n * Marks the end of a synchronous event started in the same stack frame.\n */\nexport function endEvent(args?: EventArgs): void {\n if (isEnabled()) {\n global.nativeTraceEndSection(TRACE_TAG_REACT_APPS, args);\n }\n}\n\n/**\n * Marks the start of a potentially asynchronous event. The end of this event\n * should be marked calling the `endAsyncEvent` function with the cookie\n * returned by this function.\n */\nexport function beginAsyncEvent(\n eventName: EventName,\n args?: EventArgs,\n): number {\n const cookie = _asyncCookie;\n if (isEnabled()) {\n _asyncCookie++;\n const eventNameString =\n typeof eventName === 'function' ? eventName() : eventName;\n global.nativeTraceBeginAsyncSection(\n TRACE_TAG_REACT_APPS,\n eventNameString,\n cookie,\n args,\n );\n }\n return cookie;\n}\n\n/**\n * Marks the end of a potentially asynchronous event, which was started with\n * the given cookie.\n */\nexport function endAsyncEvent(\n eventName: EventName,\n cookie: number,\n args?: EventArgs,\n): void {\n if (isEnabled()) {\n const eventNameString =\n typeof eventName === 'function' ? eventName() : eventName;\n global.nativeTraceEndAsyncSection(\n TRACE_TAG_REACT_APPS,\n eventNameString,\n cookie,\n args,\n );\n }\n}\n\n/**\n * Registers a new value for a counter event.\n */\nexport function counterEvent(eventName: EventName, value: number): void {\n if (isEnabled()) {\n const eventNameString =\n typeof eventName === 'function' ? eventName() : eventName;\n global.nativeTraceCounter &&\n global.nativeTraceCounter(TRACE_TAG_REACT_APPS, eventNameString, value);\n }\n}\n\nif (__DEV__) {\n const Systrace: SystraceModule = {\n isEnabled,\n setEnabled,\n beginEvent,\n endEvent,\n beginAsyncEvent,\n endAsyncEvent,\n counterEvent,\n };\n\n // The metro require polyfill can not have dependencies (true for all polyfills).\n // Ensure that `Systrace` is available in polyfill by exposing it globally.\n global[(global.__METRO_GLOBAL_PREFIX__ || '') + '__SYSTRACE'] = Systrace;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport type {ErrorUtilsT} from '@react-native/js-polyfills/error-guard';\n\n/**\n * The particular require runtime that we are using looks for a global\n * `ErrorUtils` object and if it exists, then it requires modules with the\n * error handler specified via ErrorUtils.setGlobalHandler by calling the\n * require function with applyWithGuard. Since the require module is loaded\n * before any of the modules, this ErrorUtils must be defined (and the handler\n * set) globally before requiring anything.\n *\n * However, we still want to treat ErrorUtils as a module so that other modules\n * that use it aren't just using a global variable, so simply export the global\n * variable here. ErrorUtils is originally defined in a file named error-guard.js.\n */\nmodule.exports = (global.ErrorUtils: ErrorUtilsT);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport invariant from 'invariant';\n\n/**\n * Tries to stringify with JSON.stringify and toString, but catches exceptions\n * (e.g. from circular objects) and always returns a string and never throws.\n */\nexport function createStringifySafeWithLimits(limits: {|\n maxDepth?: number,\n maxStringLimit?: number,\n maxArrayLimit?: number,\n maxObjectKeysLimit?: number,\n|}): mixed => string {\n const {\n maxDepth = Number.POSITIVE_INFINITY,\n maxStringLimit = Number.POSITIVE_INFINITY,\n maxArrayLimit = Number.POSITIVE_INFINITY,\n maxObjectKeysLimit = Number.POSITIVE_INFINITY,\n } = limits;\n const stack: Array = [];\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n function replacer(key: string, value: mixed): mixed {\n while (stack.length && this !== stack[0]) {\n stack.shift();\n }\n\n if (typeof value === 'string') {\n const truncatedString = '...(truncated)...';\n if (value.length > maxStringLimit + truncatedString.length) {\n return value.substring(0, maxStringLimit) + truncatedString;\n }\n return value;\n }\n if (typeof value !== 'object' || value === null) {\n return value;\n }\n\n let retval: mixed = value;\n if (Array.isArray(value)) {\n if (stack.length >= maxDepth) {\n retval = `[ ... array with ${value.length} values ... ]`;\n } else if (value.length > maxArrayLimit) {\n retval = value\n .slice(0, maxArrayLimit)\n .concat([\n `... extra ${value.length - maxArrayLimit} values truncated ...`,\n ]);\n }\n } else {\n // Add refinement after Array.isArray call.\n invariant(typeof value === 'object', 'This was already found earlier');\n let keys = Object.keys(value);\n if (stack.length >= maxDepth) {\n retval = `{ ... object with ${keys.length} keys ... }`;\n } else if (keys.length > maxObjectKeysLimit) {\n // Return a sample of the keys.\n retval = ({}: {[string]: mixed});\n for (let k of keys.slice(0, maxObjectKeysLimit)) {\n retval[k] = value[k];\n }\n const truncatedKey = '...(truncated keys)...';\n retval[truncatedKey] = keys.length - maxObjectKeysLimit;\n }\n }\n stack.unshift(retval);\n return retval;\n }\n\n return function stringifySafe(arg: mixed): string {\n if (arg === undefined) {\n return 'undefined';\n } else if (arg === null) {\n return 'null';\n } else if (typeof arg === 'function') {\n try {\n return arg.toString();\n } catch (e) {\n return '[function unknown]';\n }\n } else if (arg instanceof Error) {\n return arg.name + ': ' + arg.message;\n } else {\n // Perform a try catch, just in case the object has a circular\n // reference or stringify throws for some other reason.\n try {\n const ret = JSON.stringify(arg, replacer);\n if (ret === undefined) {\n return '[\"' + typeof arg + '\" failed to stringify]';\n }\n return ret;\n } catch (e) {\n if (typeof arg.toString === 'function') {\n try {\n // $FlowFixMe[incompatible-use] : toString shouldn't take any arguments in general.\n return arg.toString();\n } catch (E) {}\n }\n }\n }\n return '[\"' + typeof arg + '\" failed to stringify]';\n };\n}\n\nconst stringifySafe: mixed => string = createStringifySafeWithLimits({\n maxDepth: 10,\n maxStringLimit: 100,\n maxArrayLimit: 50,\n maxObjectKeysLimit: 50,\n});\n\nexport default stringifySafe;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\n/**\n * Defines a lazily evaluated property on the supplied `object`.\n */\nfunction defineLazyObjectProperty(\n object: interface {},\n name: string,\n descriptor: {\n get: () => T,\n enumerable?: boolean,\n writable?: boolean,\n ...\n },\n): void {\n const {get} = descriptor;\n const enumerable = descriptor.enumerable !== false;\n const writable = descriptor.writable !== false;\n\n let value;\n let valueSet = false;\n function getValue(): T {\n // WORKAROUND: A weird infinite loop occurs where calling `getValue` calls\n // `setValue` which calls `Object.defineProperty` which somehow triggers\n // `getValue` again. Adding `valueSet` breaks this loop.\n if (!valueSet) {\n // Calling `get()` here can trigger an infinite loop if it fails to\n // remove the getter on the property, which can happen when executing\n // JS in a V8 context. `valueSet = true` will break this loop, and\n // sets the value of the property to undefined, until the code in `get()`\n // finishes, at which point the property is set to the correct value.\n valueSet = true;\n setValue(get());\n }\n return value;\n }\n function setValue(newValue: T): void {\n value = newValue;\n valueSet = true;\n Object.defineProperty(object, name, {\n value: newValue,\n configurable: true,\n enumerable,\n writable,\n });\n }\n\n Object.defineProperty(object, name, {\n get: getValue,\n set: setValue,\n configurable: true,\n enumerable,\n });\n}\n\nmodule.exports = defineLazyObjectProperty;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport UIManager from '../../ReactNative/UIManager';\n\n/**\n * This is a function exposed to the React Renderer that can be used by the\n * pre-Fabric renderer to emit accessibility events to pre-Fabric nodes.\n */\nfunction legacySendAccessibilityEvent(\n reactTag: number,\n eventType: string,\n): void {\n if (eventType === 'focus') {\n UIManager.sendAccessibilityEvent(\n reactTag,\n UIManager.getConstants().AccessibilityEventTypes.typeViewFocused,\n );\n }\n if (eventType === 'click') {\n UIManager.sendAccessibilityEvent(\n reactTag,\n UIManager.getConstants().AccessibilityEventTypes.typeViewClicked,\n );\n }\n}\n\nmodule.exports = legacySendAccessibilityEvent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {RootTag} from '../Types/RootTagTypes';\nimport type {Spec} from './NativeUIManager';\n\nimport {getFabricUIManager} from './FabricUIManager';\nimport nullthrows from 'nullthrows';\n\nexport interface UIManagerJSInterface extends Spec {\n +getViewManagerConfig: (viewManagerName: string) => Object;\n +hasViewManagerConfig: (viewManagerName: string) => boolean;\n +createView: (\n reactTag: ?number,\n viewName: string,\n rootTag: RootTag,\n props: Object,\n ) => void;\n +updateView: (reactTag: number, viewName: string, props: Object) => void;\n +manageChildren: (\n containerTag: ?number,\n moveFromIndices: Array,\n moveToIndices: Array,\n addChildReactTags: Array,\n addAtIndices: Array,\n removeAtIndices: Array,\n ) => void;\n}\n\nfunction isFabricReactTag(reactTag: number): boolean {\n // React reserves even numbers for Fabric.\n return reactTag % 2 === 0;\n}\n\nconst UIManagerImpl: UIManagerJSInterface =\n global.RN$Bridgeless === true\n ? require('./BridgelessUIManager')\n : require('./PaperUIManager');\n\n// $FlowFixMe[cannot-spread-interface]\nconst UIManager = {\n ...UIManagerImpl,\n measure(\n reactTag: number,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number,\n ) => void,\n ): void {\n if (isFabricReactTag(reactTag)) {\n const FabricUIManager = nullthrows(getFabricUIManager());\n const shadowNode =\n FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag);\n if (shadowNode) {\n FabricUIManager.measure(shadowNode, callback);\n } else {\n console.warn(`measure cannot find view with tag #${reactTag}`);\n // $FlowFixMe[incompatible-call]\n callback();\n }\n } else {\n // Paper\n UIManagerImpl.measure(reactTag, callback);\n }\n },\n\n measureInWindow(\n reactTag: number,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ): void {\n if (isFabricReactTag(reactTag)) {\n const FabricUIManager = nullthrows(getFabricUIManager());\n const shadowNode =\n FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag);\n if (shadowNode) {\n FabricUIManager.measureInWindow(shadowNode, callback);\n } else {\n console.warn(`measure cannot find view with tag #${reactTag}`);\n // $FlowFixMe[incompatible-call]\n callback();\n }\n } else {\n // Paper\n UIManagerImpl.measureInWindow(reactTag, callback);\n }\n },\n\n measureLayout(\n reactTag: number,\n ancestorReactTag: number,\n errorCallback: (error: Object) => void,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ): void {\n if (isFabricReactTag(reactTag)) {\n const FabricUIManager = nullthrows(getFabricUIManager());\n const shadowNode =\n FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag);\n const ancestorShadowNode =\n FabricUIManager.findShadowNodeByTag_DEPRECATED(ancestorReactTag);\n\n if (!shadowNode || !ancestorShadowNode) {\n return;\n }\n\n FabricUIManager.measureLayout(\n shadowNode,\n ancestorShadowNode,\n errorCallback,\n callback,\n );\n } else {\n // Paper\n UIManagerImpl.measureLayout(\n reactTag,\n ancestorReactTag,\n errorCallback,\n callback,\n );\n }\n },\n\n measureLayoutRelativeToParent(\n reactTag: number,\n errorCallback: (error: Object) => void,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ): void {\n if (isFabricReactTag(reactTag)) {\n console.warn(\n 'RCTUIManager.measureLayoutRelativeToParent method is deprecated and it will not be implemented in newer versions of RN (Fabric) - T47686450',\n );\n const FabricUIManager = nullthrows(getFabricUIManager());\n const shadowNode =\n FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag);\n if (shadowNode) {\n FabricUIManager.measure(\n shadowNode,\n (left, top, width, height, pageX, pageY) => {\n callback(left, top, width, height);\n },\n );\n }\n } else {\n // Paper\n UIManagerImpl.measureLayoutRelativeToParent(\n reactTag,\n errorCallback,\n callback,\n );\n }\n },\n\n dispatchViewManagerCommand(\n reactTag: number,\n commandName: number | string,\n commandArgs: any[],\n ) {\n if (isFabricReactTag(reactTag)) {\n const FabricUIManager = nullthrows(getFabricUIManager());\n const shadowNode =\n FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag);\n if (shadowNode) {\n // Transform the accidental CommandID into a CommandName which is the stringified number.\n // The interop layer knows how to convert this number into the right method name.\n // Stringify a string is a no-op, so it's safe.\n commandName = `${commandName}`;\n FabricUIManager.dispatchCommand(shadowNode, commandName, commandArgs);\n }\n } else {\n UIManagerImpl.dispatchViewManagerCommand(\n reactTag,\n // We have some legacy components that are actually already using strings. Β―\\_(ツ)_/Β―\n // $FlowFixMe[incompatible-call]\n commandName,\n commandArgs,\n );\n }\n },\n};\n\nmodule.exports = UIManager;\n","'use strict';\n\nfunction nullthrows(x, message) {\n if (x != null) {\n return x;\n }\n var error = new Error(message !== undefined ? message : 'Got unexpected ' + x);\n error.framesToPop = 1; // Skip nullthrows's own stack frame.\n throw error;\n}\n\nmodule.exports = nullthrows;\nmodule.exports.default = nullthrows;\n\nObject.defineProperty(module.exports, '__esModule', {value: true});\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {RootTag} from '../Types/RootTagTypes';\n\nimport {unstable_hasComponent} from '../NativeComponent/NativeComponentRegistryUnstable';\n\nconst errorMessageForMethod = (methodName: string): string =>\n \"[ReactNative Architecture][JS] '\" +\n methodName +\n \"' is not available in the new React Native architecture.\";\n\nmodule.exports = {\n getViewManagerConfig: (viewManagerName: string): mixed => {\n console.error(\n errorMessageForMethod('getViewManagerConfig') +\n 'Use hasViewManagerConfig instead. viewManagerName: ' +\n viewManagerName,\n );\n return null;\n },\n hasViewManagerConfig: (viewManagerName: string): boolean => {\n return unstable_hasComponent(viewManagerName);\n },\n getConstants: (): Object => {\n console.error(errorMessageForMethod('getConstants'));\n return {};\n },\n getConstantsForViewManager: (viewManagerName: string): Object => {\n console.error(errorMessageForMethod('getConstantsForViewManager'));\n return {};\n },\n getDefaultEventTypes: (): Array => {\n console.error(errorMessageForMethod('getDefaultEventTypes'));\n return [];\n },\n lazilyLoadView: (name: string): Object => {\n console.error(errorMessageForMethod('lazilyLoadView'));\n return {};\n },\n createView: (\n reactTag: ?number,\n viewName: string,\n rootTag: RootTag,\n props: Object,\n ): void => console.error(errorMessageForMethod('createView')),\n updateView: (reactTag: number, viewName: string, props: Object): void =>\n console.error(errorMessageForMethod('updateView')),\n focus: (reactTag: ?number): void =>\n console.error(errorMessageForMethod('focus')),\n blur: (reactTag: ?number): void =>\n console.error(errorMessageForMethod('blur')),\n findSubviewIn: (\n reactTag: ?number,\n point: Array,\n callback: (\n nativeViewTag: number,\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ): void => console.error(errorMessageForMethod('findSubviewIn')),\n dispatchViewManagerCommand: (\n reactTag: ?number,\n commandID: number,\n commandArgs: ?Array,\n ): void => console.error(errorMessageForMethod('dispatchViewManagerCommand')),\n measure: (\n reactTag: ?number,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number,\n ) => void,\n ): void => console.error(errorMessageForMethod('measure')),\n measureInWindow: (\n reactTag: ?number,\n callback: (x: number, y: number, width: number, height: number) => void,\n ): void => console.error(errorMessageForMethod('measureInWindow')),\n viewIsDescendantOf: (\n reactTag: ?number,\n ancestorReactTag: ?number,\n callback: (result: Array) => void,\n ): void => console.error(errorMessageForMethod('viewIsDescendantOf')),\n measureLayout: (\n reactTag: ?number,\n ancestorReactTag: ?number,\n errorCallback: (error: Object) => void,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ): void => console.error(errorMessageForMethod('measureLayout')),\n measureLayoutRelativeToParent: (\n reactTag: ?number,\n errorCallback: (error: Object) => void,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ): void =>\n console.error(errorMessageForMethod('measureLayoutRelativeToParent')),\n setJSResponder: (reactTag: ?number, blockNativeResponder: boolean): void =>\n console.error(errorMessageForMethod('setJSResponder')),\n clearJSResponder: (): void => {}, // Don't log error here because we're aware it gets called\n configureNextLayoutAnimation: (\n config: Object,\n callback: () => void,\n errorCallback: (error: Object) => void,\n ): void =>\n console.error(errorMessageForMethod('configureNextLayoutAnimation')),\n removeSubviewsFromContainerWithID: (containerID: number): void =>\n console.error(errorMessageForMethod('removeSubviewsFromContainerWithID')),\n replaceExistingNonRootView: (reactTag: ?number, newReactTag: ?number): void =>\n console.error(errorMessageForMethod('replaceExistingNonRootView')),\n setChildren: (containerTag: ?number, reactTags: Array): void =>\n console.error(errorMessageForMethod('setChildren')),\n manageChildren: (\n containerTag: ?number,\n moveFromIndices: Array,\n moveToIndices: Array,\n addChildReactTags: Array,\n addAtIndices: Array,\n removeAtIndices: Array,\n ): void => console.error(errorMessageForMethod('manageChildren')),\n\n // Android only\n setLayoutAnimationEnabledExperimental: (enabled: boolean): void => {\n console.error(\n errorMessageForMethod('setLayoutAnimationEnabledExperimental'),\n );\n },\n // Please use AccessibilityInfo.sendAccessibilityEvent instead.\n // See SetAccessibilityFocusExample in AccessibilityExample.js for a migration example.\n sendAccessibilityEvent: (reactTag: ?number, eventType: number): void =>\n console.error(errorMessageForMethod('sendAccessibilityEvent')),\n showPopupMenu: (\n reactTag: ?number,\n items: Array,\n error: (error: Object) => void,\n success: (event: string, selected?: number) => void,\n ): void => console.error(errorMessageForMethod('showPopupMenu')),\n dismissPopupMenu: (): void =>\n console.error(errorMessageForMethod('dismissPopupMenu')),\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nlet componentNameToExists: Map = new Map();\n\n/**\n * Unstable API. Do not use!\n *\n * This method returns if the component with name received as a parameter\n * is registered in the native platform.\n */\nexport function unstable_hasComponent(name: string): boolean {\n let hasNativeComponent = componentNameToExists.get(name);\n if (hasNativeComponent == null) {\n if (global.__nativeComponentRegistry__hasComponent) {\n hasNativeComponent = global.__nativeComponentRegistry__hasComponent(name);\n componentNameToExists.set(name, hasNativeComponent);\n } else {\n throw `unstable_hasComponent('${name}'): Global function is not registered`;\n }\n }\n return hasNativeComponent;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {RootTag} from '../Types/RootTagTypes';\n\nimport NativeUIManager from './NativeUIManager';\n\nconst NativeModules = require('../BatchedBridge/NativeModules');\nconst defineLazyObjectProperty = require('../Utilities/defineLazyObjectProperty');\nconst Platform = require('../Utilities/Platform');\nconst UIManagerProperties = require('./UIManagerProperties');\n\nconst viewManagerConfigs: {[string]: any | null} = {};\n\nconst triedLoadingConfig = new Set();\n\nlet NativeUIManagerConstants = {};\nlet isNativeUIManagerConstantsSet = false;\nfunction getConstants(): Object {\n if (!isNativeUIManagerConstantsSet) {\n NativeUIManagerConstants = NativeUIManager.getConstants();\n isNativeUIManagerConstantsSet = true;\n }\n return NativeUIManagerConstants;\n}\n\nfunction getViewManagerConfig(viewManagerName: string): any {\n if (\n viewManagerConfigs[viewManagerName] === undefined &&\n global.nativeCallSyncHook && // If we're in the Chrome Debugger, let's not even try calling the sync method\n NativeUIManager.getConstantsForViewManager\n ) {\n try {\n viewManagerConfigs[viewManagerName] =\n NativeUIManager.getConstantsForViewManager(viewManagerName);\n } catch (e) {\n console.error(\n \"NativeUIManager.getConstantsForViewManager('\" +\n viewManagerName +\n \"') threw an exception.\",\n e,\n );\n viewManagerConfigs[viewManagerName] = null;\n }\n }\n\n const config = viewManagerConfigs[viewManagerName];\n if (config) {\n return config;\n }\n\n // If we're in the Chrome Debugger, let's not even try calling the sync\n // method.\n if (!global.nativeCallSyncHook) {\n return config;\n }\n\n if (\n NativeUIManager.lazilyLoadView &&\n !triedLoadingConfig.has(viewManagerName)\n ) {\n const result = NativeUIManager.lazilyLoadView(viewManagerName);\n triedLoadingConfig.add(viewManagerName);\n if (result != null && result.viewConfig != null) {\n getConstants()[viewManagerName] = result.viewConfig;\n lazifyViewManagerConfig(viewManagerName);\n }\n }\n\n return viewManagerConfigs[viewManagerName];\n}\n\n/* $FlowFixMe[cannot-spread-interface] (>=0.123.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.123.0 was deployed. To see\n * the error, delete this comment and run Flow. */\nconst UIManagerJS = {\n ...NativeUIManager,\n createView(\n reactTag: ?number,\n viewName: string,\n rootTag: RootTag,\n props: Object,\n ): void {\n if (Platform.OS === 'ios' && viewManagerConfigs[viewName] === undefined) {\n // This is necessary to force the initialization of native viewManager\n // classes in iOS when using static ViewConfigs\n getViewManagerConfig(viewName);\n }\n\n NativeUIManager.createView(reactTag, viewName, rootTag, props);\n },\n getConstants(): Object {\n return getConstants();\n },\n getViewManagerConfig(viewManagerName: string): any {\n return getViewManagerConfig(viewManagerName);\n },\n hasViewManagerConfig(viewManagerName: string): boolean {\n return getViewManagerConfig(viewManagerName) != null;\n },\n};\n\n// TODO (T45220498): Remove this.\n// 3rd party libs may be calling `NativeModules.UIManager.getViewManagerConfig()`\n// instead of `UIManager.getViewManagerConfig()` off UIManager.js.\n// This is a workaround for now.\n// $FlowFixMe[prop-missing]\nNativeUIManager.getViewManagerConfig = UIManagerJS.getViewManagerConfig;\n\nfunction lazifyViewManagerConfig(viewName: string) {\n const viewConfig = getConstants()[viewName];\n viewManagerConfigs[viewName] = viewConfig;\n if (viewConfig.Manager) {\n defineLazyObjectProperty(viewConfig, 'Constants', {\n get: () => {\n const viewManager = NativeModules[viewConfig.Manager];\n const constants: {[string]: mixed} = {};\n viewManager &&\n Object.keys(viewManager).forEach(key => {\n const value = viewManager[key];\n if (typeof value !== 'function') {\n constants[key] = value;\n }\n });\n return constants;\n },\n });\n defineLazyObjectProperty(viewConfig, 'Commands', {\n get: () => {\n const viewManager = NativeModules[viewConfig.Manager];\n const commands: {[string]: number} = {};\n let index = 0;\n viewManager &&\n Object.keys(viewManager).forEach(key => {\n const value = viewManager[key];\n if (typeof value === 'function') {\n commands[key] = index++;\n }\n });\n return commands;\n },\n });\n }\n}\n\n/**\n * Copies the ViewManager constants and commands into UIManager. This is\n * only needed for iOS, which puts the constants in the ViewManager\n * namespace instead of UIManager, unlike Android.\n */\nif (Platform.OS === 'ios') {\n Object.keys(getConstants()).forEach(viewName => {\n lazifyViewManagerConfig(viewName);\n });\n} else if (getConstants().ViewManagerNames) {\n NativeUIManager.getConstants().ViewManagerNames.forEach(viewManagerName => {\n defineLazyObjectProperty(NativeUIManager, viewManagerName, {\n get: () => NativeUIManager.getConstantsForViewManager(viewManagerName),\n });\n });\n}\n\nif (!global.nativeCallSyncHook) {\n Object.keys(getConstants()).forEach(viewManagerName => {\n if (!UIManagerProperties.includes(viewManagerName)) {\n if (!viewManagerConfigs[viewManagerName]) {\n viewManagerConfigs[viewManagerName] = getConstants()[viewManagerName];\n }\n defineLazyObjectProperty(NativeUIManager, viewManagerName, {\n get: () => {\n console.warn(\n `Accessing view manager configs directly off UIManager via UIManager['${viewManagerName}'] ` +\n `is no longer supported. Use UIManager.getViewManagerConfig('${viewManagerName}') instead.`,\n );\n\n return UIManagerJS.getViewManagerConfig(viewManagerName);\n },\n });\n }\n });\n}\n\nmodule.exports = UIManagerJS;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {RootTag} from '../TurboModule/RCTExport';\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => Object;\n +getConstantsForViewManager: (viewManagerName: string) => Object;\n +getDefaultEventTypes: () => Array;\n +lazilyLoadView: (name: string) => Object; // revisit return\n +createView: (\n reactTag: ?number,\n viewName: string,\n rootTag: RootTag,\n props: Object,\n ) => void;\n +updateView: (reactTag: number, viewName: string, props: Object) => void;\n +focus: (reactTag: ?number) => void;\n +blur: (reactTag: ?number) => void;\n +findSubviewIn: (\n reactTag: ?number,\n point: Array,\n callback: (\n nativeViewTag: number,\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ) => void;\n +dispatchViewManagerCommand: (\n reactTag: ?number,\n commandID: number,\n commandArgs: ?Array,\n ) => void;\n +measure: (\n reactTag: number,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number,\n ) => void,\n ) => void;\n +measureInWindow: (\n reactTag: number,\n callback: (x: number, y: number, width: number, height: number) => void,\n ) => void;\n +viewIsDescendantOf: (\n reactTag: ?number,\n ancestorReactTag: ?number,\n callback: (result: Array) => void,\n ) => void;\n +measureLayout: (\n reactTag: number,\n ancestorReactTag: number,\n errorCallback: (error: Object) => void,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ) => void;\n +measureLayoutRelativeToParent: (\n reactTag: number,\n errorCallback: (error: Object) => void,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ) => void;\n +setJSResponder: (reactTag: ?number, blockNativeResponder: boolean) => void;\n +clearJSResponder: () => void;\n +configureNextLayoutAnimation: (\n config: Object,\n callback: () => void, // check what is returned here\n errorCallback: (error: Object) => void,\n ) => void;\n +removeSubviewsFromContainerWithID: (containerID: number) => void;\n +replaceExistingNonRootView: (\n reactTag: ?number,\n newReactTag: ?number,\n ) => void;\n +setChildren: (containerTag: ?number, reactTags: Array) => void;\n +manageChildren: (\n containerTag: ?number,\n moveFromIndices: Array,\n moveToIndices: Array,\n addChildReactTags: Array,\n addAtIndices: Array,\n removeAtIndices: Array,\n ) => void;\n\n // Android only\n +setLayoutAnimationEnabledExperimental: (enabled: boolean) => void;\n +sendAccessibilityEvent: (reactTag: ?number, eventType: number) => void;\n +showPopupMenu: (\n reactTag: ?number,\n items: Array,\n error: (error: Object) => void,\n success: (event: string, selected?: number) => void,\n ) => void;\n +dismissPopupMenu: () => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('UIManager'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\n/**\n * The list of non-ViewManager related UIManager properties.\n *\n * In an effort to improve startup performance by lazily loading view managers,\n * the interface to access view managers will change from\n * UIManager['viewManagerName'] to UIManager.getViewManagerConfig('viewManagerName').\n * By using a function call instead of a property access, the UIManager will\n * be able to initialize and load the required view manager from native\n * synchronously. All of React Native's core components have been updated to\n * use getViewManagerConfig(). For the next few releases, any usage of\n * UIManager['viewManagerName'] will result in a warning. Because React Native\n * does not support Proxy objects, a view manager access is implied if any of\n * UIManager's properties that are not one of the properties below is being\n * accessed. Once UIManager property accesses for view managers has been fully\n * deprecated, this file will also be removed.\n */\nmodule.exports = [\n 'clearJSResponder',\n 'configureNextLayoutAnimation',\n 'createView',\n 'dismissPopupMenu',\n 'dispatchViewManagerCommand',\n 'findSubviewIn',\n 'getConstantsForViewManager',\n 'getDefaultEventTypes',\n 'manageChildren',\n 'measure',\n 'measureInWindow',\n 'measureLayout',\n 'measureLayoutRelativeToParent',\n 'removeRootView',\n 'removeSubviewsFromContainerWithID',\n 'replaceExistingNonRootView',\n 'sendAccessibilityEvent',\n 'setChildren',\n 'setJSResponder',\n 'setLayoutAnimationEnabledExperimental',\n 'showPopupMenu',\n 'updateView',\n 'viewIsDescendantOf',\n 'PopupMenu',\n 'LazyViewManagersEnabled',\n 'ViewManagerNames',\n 'StyleConstants',\n 'AccessibilityEventTypes',\n 'UIView',\n 'getViewManagerConfig',\n 'hasViewManagerConfig',\n 'blur',\n 'focus',\n 'genericBubblingEventTypes',\n 'genericDirectEventTypes',\n 'lazilyLoadView',\n];\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nimport type {\n LayoutAnimationConfig,\n MeasureInWindowOnSuccessCallback,\n MeasureLayoutOnSuccessCallback,\n MeasureOnSuccessCallback,\n} from '../Renderer/shims/ReactNativeTypes';\nimport type {RootTag} from '../Types/RootTagTypes';\n\n// TODO: type these properly.\nexport opaque type Node = {...};\ntype NodeSet = Array;\ntype NodeProps = {...};\ntype InstanceHandle = {...};\nexport type Spec = {|\n +createNode: (\n reactTag: number,\n viewName: string,\n rootTag: RootTag,\n props: NodeProps,\n instanceHandle: InstanceHandle,\n ) => Node,\n +cloneNode: (node: Node) => Node,\n +cloneNodeWithNewChildren: (node: Node) => Node,\n +cloneNodeWithNewProps: (node: Node, newProps: NodeProps) => Node,\n +cloneNodeWithNewChildrenAndProps: (node: Node, newProps: NodeProps) => Node,\n +createChildSet: (rootTag: RootTag) => NodeSet,\n +appendChild: (parentNode: Node, child: Node) => Node,\n +appendChildToSet: (childSet: NodeSet, child: Node) => void,\n +completeRoot: (rootTag: RootTag, childSet: NodeSet) => void,\n +measure: (node: Node, callback: MeasureOnSuccessCallback) => void,\n +measureInWindow: (\n node: Node,\n callback: MeasureInWindowOnSuccessCallback,\n ) => void,\n +measureLayout: (\n node: Node,\n relativeNode: Node,\n onFail: () => void,\n onSuccess: MeasureLayoutOnSuccessCallback,\n ) => void,\n +configureNextLayoutAnimation: (\n config: LayoutAnimationConfig,\n callback: () => void, // check what is returned here\n errorCallback: () => void,\n ) => void,\n +sendAccessibilityEvent: (node: Node, eventType: string) => void,\n +findShadowNodeByTag_DEPRECATED: (reactTag: number) => ?Node,\n +getBoundingClientRect: (\n node: Node,\n ) => [\n /* x:*/ number,\n /* y:*/ number,\n /* width:*/ number,\n /* height:*/ number,\n ],\n +setNativeProps: (node: Node, newProps: NodeProps) => void,\n +dispatchCommand: (\n node: Node,\n commandName: string,\n args: Array,\n ) => void,\n|};\n\n// This is exposed as a getter because apps using the legacy renderer AND\n// Fabric can define the binding lazily. If we evaluated the global and cached\n// it in the module we might be caching an `undefined` value before it is set.\nexport function getFabricUIManager(): ?Spec {\n return global.nativeFabricUIManager;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +isReduceMotionEnabled: (\n onSuccess: (isReduceMotionEnabled: boolean) => void,\n ) => void;\n +isTouchExplorationEnabled: (\n onSuccess: (isScreenReaderEnabled: boolean) => void,\n ) => void;\n +isAccessibilityServiceEnabled?: ?(\n onSuccess: (isAccessibilityServiceEnabled: boolean) => void,\n ) => void;\n +setAccessibilityFocus: (reactTag: number) => void;\n +announceForAccessibility: (announcement: string) => void;\n +getRecommendedTimeoutMillis?: (\n mSec: number,\n onSuccess: (recommendedTimeoutMillis: number) => void,\n ) => void;\n}\n\nexport default (TurboModuleRegistry.get('AccessibilityInfo'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getCurrentBoldTextState: (\n onSuccess: (isBoldTextEnabled: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +getCurrentGrayscaleState: (\n onSuccess: (isGrayscaleEnabled: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +getCurrentInvertColorsState: (\n onSuccess: (isInvertColorsEnabled: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +getCurrentReduceMotionState: (\n onSuccess: (isReduceMotionEnabled: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +getCurrentPrefersCrossFadeTransitionsState?: (\n onSuccess: (prefersCrossFadeTransitions: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +getCurrentReduceTransparencyState: (\n onSuccess: (isReduceTransparencyEnabled: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +getCurrentVoiceOverState: (\n onSuccess: (isScreenReaderEnabled: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +setAccessibilityContentSizeMultipliers: (JSMultipliers: {|\n +extraSmall?: ?number,\n +small?: ?number,\n +medium?: ?number,\n +large?: ?number,\n +extraLarge?: ?number,\n +extraExtraLarge?: ?number,\n +extraExtraExtraLarge?: ?number,\n +accessibilityMedium?: ?number,\n +accessibilityLarge?: ?number,\n +accessibilityExtraLarge?: ?number,\n +accessibilityExtraExtraLarge?: ?number,\n +accessibilityExtraExtraExtraLarge?: ?number,\n |}) => void;\n +setAccessibilityFocus: (reactTag: number) => void;\n +announceForAccessibility: (announcement: string) => void;\n +announceForAccessibilityWithOptions?: (\n announcement: string,\n options: {queue?: boolean},\n ) => void;\n}\n\nexport default (TurboModuleRegistry.get('AccessibilityManager'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n/**\n * This module exists to allow apps to select their renderer implementation\n * (e.g.: Fabric-only, Paper-only) without having to pull all the renderer\n * implementations into their app bundle, which affects app size.\n *\n * By default, the setup will be:\n * -> RendererProxy\n * -> RendererImplementation (which uses Fabric or Paper depending on a flag at runtime)\n *\n * But this will allow a setup like this without duplicating logic:\n * -> RendererProxy (fork)\n * -> RendererImplementation (which uses Fabric or Paper depending on a flag at runtime)\n * or -> OtherImplementation (which uses Fabric only)\n */\n\nexport * from './RendererImplementation';\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../Renderer/shims/ReactNativeTypes';\nimport type {Element, ElementRef, ElementType} from 'react';\n\nimport {type RootTag} from './RootTag';\n\nexport function renderElement({\n element,\n rootTag,\n useFabric,\n useConcurrentRoot,\n}: {\n element: Element,\n rootTag: number,\n useFabric: boolean,\n useConcurrentRoot: boolean,\n}): void {\n if (useFabric) {\n require('../Renderer/shims/ReactFabric').render(\n element,\n rootTag,\n null,\n useConcurrentRoot,\n );\n } else {\n require('../Renderer/shims/ReactNative').render(element, rootTag);\n }\n}\n\nexport function findHostInstance_DEPRECATED(\n componentOrHandle: ?(ElementRef | number),\n): ?ElementRef> {\n return require('../Renderer/shims/ReactNative').findHostInstance_DEPRECATED(\n componentOrHandle,\n );\n}\n\nexport function findNodeHandle(\n componentOrHandle: ?(ElementRef | number),\n): ?number {\n return require('../Renderer/shims/ReactNative').findNodeHandle(\n componentOrHandle,\n );\n}\n\nexport function dispatchCommand(\n handle: ElementRef>,\n command: string,\n args: Array,\n): void {\n if (global.RN$Bridgeless === true) {\n // Note: this function has the same implementation in the legacy and new renderer.\n // However, evaluating the old renderer comes with some side effects.\n return require('../Renderer/shims/ReactFabric').dispatchCommand(\n handle,\n command,\n args,\n );\n } else {\n return require('../Renderer/shims/ReactNative').dispatchCommand(\n handle,\n command,\n args,\n );\n }\n}\n\nexport function sendAccessibilityEvent(\n handle: ElementRef>,\n eventType: string,\n): void {\n return require('../Renderer/shims/ReactNative').sendAccessibilityEvent(\n handle,\n eventType,\n );\n}\n\n/**\n * This method is used by AppRegistry to unmount a root when using the old\n * React Native renderer (Paper).\n */\nexport function unmountComponentAtNodeAndRemoveContainer(rootTag: RootTag) {\n // $FlowExpectedError[incompatible-type] rootTag is an opaque type so we can't really cast it as is.\n const rootTagAsNumber: number = rootTag;\n require('../Renderer/shims/ReactNative').unmountComponentAtNodeAndRemoveContainer(\n rootTagAsNumber,\n );\n}\n\nexport function unstable_batchedUpdates(\n fn: T => void,\n bookkeeping: T,\n): void {\n // This doesn't actually do anything when batching updates for a Fabric root.\n return require('../Renderer/shims/ReactNative').unstable_batchedUpdates(\n fn,\n bookkeeping,\n );\n}\n\nexport function isProfilingRenderer(): boolean {\n return Boolean(__DEV__);\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @noformat\n * @flow\n * @generated SignedSource<>\n *\n * This file was sync'd from the facebook/react repository.\n */\n\n'use strict';\n\nimport {BatchedBridge} from 'react-native/Libraries/ReactPrivate/ReactNativePrivateInterface';\n\nimport type {ReactFabricType} from './ReactNativeTypes';\n\nlet ReactFabric;\n\nif (__DEV__) {\n ReactFabric = require('../implementations/ReactFabric-dev');\n} else {\n ReactFabric = require('../implementations/ReactFabric-prod');\n}\n\nif (global.RN$Bridgeless) {\n global.RN$stopSurface = ReactFabric.stopSurface;\n} else {\n BatchedBridge.registerCallableModule('ReactFabric', ReactFabric);\n}\n\nmodule.exports = (ReactFabric: ReactFabricType);\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @noflow\n * @nolint\n * @providesModule ReactFabric-prod\n * @preventMunge\n * @generated SignedSource<>\n */\n\n\"use strict\";\nrequire(\"react-native/Libraries/ReactPrivate/ReactNativePrivateInitializeCore\");\nvar ReactNativePrivateInterface = require(\"react-native/Libraries/ReactPrivate/ReactNativePrivateInterface\"),\n React = require(\"react\"),\n Scheduler = require(\"scheduler\");\nfunction invokeGuardedCallbackImpl(name, func, context, a, b, c, d, e, f) {\n var funcArgs = Array.prototype.slice.call(arguments, 3);\n try {\n func.apply(context, funcArgs);\n } catch (error) {\n this.onError(error);\n }\n}\nvar hasError = !1,\n caughtError = null,\n hasRethrowError = !1,\n rethrowError = null,\n reporter = {\n onError: function(error) {\n hasError = !0;\n caughtError = error;\n }\n };\nfunction invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {\n hasError = !1;\n caughtError = null;\n invokeGuardedCallbackImpl.apply(reporter, arguments);\n}\nfunction invokeGuardedCallbackAndCatchFirstError(\n name,\n func,\n context,\n a,\n b,\n c,\n d,\n e,\n f\n) {\n invokeGuardedCallback.apply(this, arguments);\n if (hasError) {\n if (hasError) {\n var error = caughtError;\n hasError = !1;\n caughtError = null;\n } else\n throw Error(\n \"clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.\"\n );\n hasRethrowError || ((hasRethrowError = !0), (rethrowError = error));\n }\n}\nvar isArrayImpl = Array.isArray,\n getFiberCurrentPropsFromNode = null,\n getInstanceFromNode = null,\n getNodeFromInstance = null;\nfunction executeDispatch(event, listener, inst) {\n var type = event.type || \"unknown-event\";\n event.currentTarget = getNodeFromInstance(inst);\n invokeGuardedCallbackAndCatchFirstError(type, listener, void 0, event);\n event.currentTarget = null;\n}\nfunction executeDirectDispatch(event) {\n var dispatchListener = event._dispatchListeners,\n dispatchInstance = event._dispatchInstances;\n if (isArrayImpl(dispatchListener))\n throw Error(\"executeDirectDispatch(...): Invalid `event`.\");\n event.currentTarget = dispatchListener\n ? getNodeFromInstance(dispatchInstance)\n : null;\n dispatchListener = dispatchListener ? dispatchListener(event) : null;\n event.currentTarget = null;\n event._dispatchListeners = null;\n event._dispatchInstances = null;\n return dispatchListener;\n}\nvar assign = Object.assign;\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction SyntheticEvent(\n dispatchConfig,\n targetInst,\n nativeEvent,\n nativeEventTarget\n) {\n this.dispatchConfig = dispatchConfig;\n this._targetInst = targetInst;\n this.nativeEvent = nativeEvent;\n this._dispatchInstances = this._dispatchListeners = null;\n dispatchConfig = this.constructor.Interface;\n for (var propName in dispatchConfig)\n dispatchConfig.hasOwnProperty(propName) &&\n ((targetInst = dispatchConfig[propName])\n ? (this[propName] = targetInst(nativeEvent))\n : \"target\" === propName\n ? (this.target = nativeEventTarget)\n : (this[propName] = nativeEvent[propName]));\n this.isDefaultPrevented = (null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue)\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n}\nassign(SyntheticEvent.prototype, {\n preventDefault: function() {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function() {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble && (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function() {\n this.isPersistent = functionThatReturnsTrue;\n },\n isPersistent: functionThatReturnsFalse,\n destructor: function() {\n var Interface = this.constructor.Interface,\n propName;\n for (propName in Interface) this[propName] = null;\n this.nativeEvent = this._targetInst = this.dispatchConfig = null;\n this.isPropagationStopped = this.isDefaultPrevented = functionThatReturnsFalse;\n this._dispatchInstances = this._dispatchListeners = null;\n }\n});\nSyntheticEvent.Interface = {\n type: null,\n target: null,\n currentTarget: function() {\n return null;\n },\n eventPhase: null,\n bubbles: null,\n cancelable: null,\n timeStamp: function(event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: null,\n isTrusted: null\n};\nSyntheticEvent.extend = function(Interface) {\n function E() {}\n function Class() {\n return Super.apply(this, arguments);\n }\n var Super = this;\n E.prototype = Super.prototype;\n var prototype = new E();\n assign(prototype, Class.prototype);\n Class.prototype = prototype;\n Class.prototype.constructor = Class;\n Class.Interface = assign({}, Super.Interface, Interface);\n Class.extend = Super.extend;\n addEventPoolingTo(Class);\n return Class;\n};\naddEventPoolingTo(SyntheticEvent);\nfunction createOrGetPooledEvent(\n dispatchConfig,\n targetInst,\n nativeEvent,\n nativeInst\n) {\n if (this.eventPool.length) {\n var instance = this.eventPool.pop();\n this.call(instance, dispatchConfig, targetInst, nativeEvent, nativeInst);\n return instance;\n }\n return new this(dispatchConfig, targetInst, nativeEvent, nativeInst);\n}\nfunction releasePooledEvent(event) {\n if (!(event instanceof this))\n throw Error(\n \"Trying to release an event instance into a pool of a different type.\"\n );\n event.destructor();\n 10 > this.eventPool.length && this.eventPool.push(event);\n}\nfunction addEventPoolingTo(EventConstructor) {\n EventConstructor.getPooled = createOrGetPooledEvent;\n EventConstructor.eventPool = [];\n EventConstructor.release = releasePooledEvent;\n}\nvar ResponderSyntheticEvent = SyntheticEvent.extend({\n touchHistory: function() {\n return null;\n }\n});\nfunction isStartish(topLevelType) {\n return \"topTouchStart\" === topLevelType;\n}\nfunction isMoveish(topLevelType) {\n return \"topTouchMove\" === topLevelType;\n}\nvar startDependencies = [\"topTouchStart\"],\n moveDependencies = [\"topTouchMove\"],\n endDependencies = [\"topTouchCancel\", \"topTouchEnd\"],\n touchBank = [],\n touchHistory = {\n touchBank: touchBank,\n numberActiveTouches: 0,\n indexOfSingleActiveTouch: -1,\n mostRecentTimeStamp: 0\n };\nfunction timestampForTouch(touch) {\n return touch.timeStamp || touch.timestamp;\n}\nfunction getTouchIdentifier(_ref) {\n _ref = _ref.identifier;\n if (null == _ref) throw Error(\"Touch object is missing identifier.\");\n return _ref;\n}\nfunction recordTouchStart(touch) {\n var identifier = getTouchIdentifier(touch),\n touchRecord = touchBank[identifier];\n touchRecord\n ? ((touchRecord.touchActive = !0),\n (touchRecord.startPageX = touch.pageX),\n (touchRecord.startPageY = touch.pageY),\n (touchRecord.startTimeStamp = timestampForTouch(touch)),\n (touchRecord.currentPageX = touch.pageX),\n (touchRecord.currentPageY = touch.pageY),\n (touchRecord.currentTimeStamp = timestampForTouch(touch)),\n (touchRecord.previousPageX = touch.pageX),\n (touchRecord.previousPageY = touch.pageY),\n (touchRecord.previousTimeStamp = timestampForTouch(touch)))\n : ((touchRecord = {\n touchActive: !0,\n startPageX: touch.pageX,\n startPageY: touch.pageY,\n startTimeStamp: timestampForTouch(touch),\n currentPageX: touch.pageX,\n currentPageY: touch.pageY,\n currentTimeStamp: timestampForTouch(touch),\n previousPageX: touch.pageX,\n previousPageY: touch.pageY,\n previousTimeStamp: timestampForTouch(touch)\n }),\n (touchBank[identifier] = touchRecord));\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n}\nfunction recordTouchMove(touch) {\n var touchRecord = touchBank[getTouchIdentifier(touch)];\n touchRecord &&\n ((touchRecord.touchActive = !0),\n (touchRecord.previousPageX = touchRecord.currentPageX),\n (touchRecord.previousPageY = touchRecord.currentPageY),\n (touchRecord.previousTimeStamp = touchRecord.currentTimeStamp),\n (touchRecord.currentPageX = touch.pageX),\n (touchRecord.currentPageY = touch.pageY),\n (touchRecord.currentTimeStamp = timestampForTouch(touch)),\n (touchHistory.mostRecentTimeStamp = timestampForTouch(touch)));\n}\nfunction recordTouchEnd(touch) {\n var touchRecord = touchBank[getTouchIdentifier(touch)];\n touchRecord &&\n ((touchRecord.touchActive = !1),\n (touchRecord.previousPageX = touchRecord.currentPageX),\n (touchRecord.previousPageY = touchRecord.currentPageY),\n (touchRecord.previousTimeStamp = touchRecord.currentTimeStamp),\n (touchRecord.currentPageX = touch.pageX),\n (touchRecord.currentPageY = touch.pageY),\n (touchRecord.currentTimeStamp = timestampForTouch(touch)),\n (touchHistory.mostRecentTimeStamp = timestampForTouch(touch)));\n}\nvar instrumentationCallback,\n ResponderTouchHistoryStore = {\n instrument: function(callback) {\n instrumentationCallback = callback;\n },\n recordTouchTrack: function(topLevelType, nativeEvent) {\n null != instrumentationCallback &&\n instrumentationCallback(topLevelType, nativeEvent);\n if (isMoveish(topLevelType))\n nativeEvent.changedTouches.forEach(recordTouchMove);\n else if (isStartish(topLevelType))\n nativeEvent.changedTouches.forEach(recordTouchStart),\n (touchHistory.numberActiveTouches = nativeEvent.touches.length),\n 1 === touchHistory.numberActiveTouches &&\n (touchHistory.indexOfSingleActiveTouch =\n nativeEvent.touches[0].identifier);\n else if (\n \"topTouchEnd\" === topLevelType ||\n \"topTouchCancel\" === topLevelType\n )\n if (\n (nativeEvent.changedTouches.forEach(recordTouchEnd),\n (touchHistory.numberActiveTouches = nativeEvent.touches.length),\n 1 === touchHistory.numberActiveTouches)\n )\n for (\n topLevelType = 0;\n topLevelType < touchBank.length;\n topLevelType++\n )\n if (\n ((nativeEvent = touchBank[topLevelType]),\n null != nativeEvent && nativeEvent.touchActive)\n ) {\n touchHistory.indexOfSingleActiveTouch = topLevelType;\n break;\n }\n },\n touchHistory: touchHistory\n };\nfunction accumulate(current, next) {\n if (null == next)\n throw Error(\n \"accumulate(...): Accumulated items must not be null or undefined.\"\n );\n return null == current\n ? next\n : isArrayImpl(current)\n ? current.concat(next)\n : isArrayImpl(next)\n ? [current].concat(next)\n : [current, next];\n}\nfunction accumulateInto(current, next) {\n if (null == next)\n throw Error(\n \"accumulateInto(...): Accumulated items must not be null or undefined.\"\n );\n if (null == current) return next;\n if (isArrayImpl(current)) {\n if (isArrayImpl(next)) return current.push.apply(current, next), current;\n current.push(next);\n return current;\n }\n return isArrayImpl(next) ? [current].concat(next) : [current, next];\n}\nfunction forEachAccumulated(arr, cb, scope) {\n Array.isArray(arr) ? arr.forEach(cb, scope) : arr && cb.call(scope, arr);\n}\nvar responderInst = null,\n trackedTouchCount = 0;\nfunction changeResponder(nextResponderInst, blockHostResponder) {\n var oldResponderInst = responderInst;\n responderInst = nextResponderInst;\n if (null !== ResponderEventPlugin.GlobalResponderHandler)\n ResponderEventPlugin.GlobalResponderHandler.onChange(\n oldResponderInst,\n nextResponderInst,\n blockHostResponder\n );\n}\nvar eventTypes = {\n startShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onStartShouldSetResponder\",\n captured: \"onStartShouldSetResponderCapture\"\n },\n dependencies: startDependencies\n },\n scrollShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onScrollShouldSetResponder\",\n captured: \"onScrollShouldSetResponderCapture\"\n },\n dependencies: [\"topScroll\"]\n },\n selectionChangeShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onSelectionChangeShouldSetResponder\",\n captured: \"onSelectionChangeShouldSetResponderCapture\"\n },\n dependencies: [\"topSelectionChange\"]\n },\n moveShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onMoveShouldSetResponder\",\n captured: \"onMoveShouldSetResponderCapture\"\n },\n dependencies: moveDependencies\n },\n responderStart: {\n registrationName: \"onResponderStart\",\n dependencies: startDependencies\n },\n responderMove: {\n registrationName: \"onResponderMove\",\n dependencies: moveDependencies\n },\n responderEnd: {\n registrationName: \"onResponderEnd\",\n dependencies: endDependencies\n },\n responderRelease: {\n registrationName: \"onResponderRelease\",\n dependencies: endDependencies\n },\n responderTerminationRequest: {\n registrationName: \"onResponderTerminationRequest\",\n dependencies: []\n },\n responderGrant: { registrationName: \"onResponderGrant\", dependencies: [] },\n responderReject: { registrationName: \"onResponderReject\", dependencies: [] },\n responderTerminate: {\n registrationName: \"onResponderTerminate\",\n dependencies: []\n }\n};\nfunction getParent(inst) {\n do inst = inst.return;\n while (inst && 5 !== inst.tag);\n return inst ? inst : null;\n}\nfunction traverseTwoPhase(inst, fn, arg) {\n for (var path = []; inst; ) path.push(inst), (inst = getParent(inst));\n for (inst = path.length; 0 < inst--; ) fn(path[inst], \"captured\", arg);\n for (inst = 0; inst < path.length; inst++) fn(path[inst], \"bubbled\", arg);\n}\nfunction getListener(inst, registrationName) {\n inst = inst.stateNode;\n if (null === inst) return null;\n inst = getFiberCurrentPropsFromNode(inst);\n if (null === inst) return null;\n if ((inst = inst[registrationName]) && \"function\" !== typeof inst)\n throw Error(\n \"Expected `\" +\n registrationName +\n \"` listener to be a function, instead got a value of `\" +\n typeof inst +\n \"` type.\"\n );\n return inst;\n}\nfunction accumulateDirectionalDispatches(inst, phase, event) {\n if (\n (phase = getListener(\n inst,\n event.dispatchConfig.phasedRegistrationNames[phase]\n ))\n )\n (event._dispatchListeners = accumulateInto(\n event._dispatchListeners,\n phase\n )),\n (event._dispatchInstances = accumulateInto(\n event._dispatchInstances,\n inst\n ));\n}\nfunction accumulateDirectDispatchesSingle(event) {\n if (event && event.dispatchConfig.registrationName) {\n var inst = event._targetInst;\n if (inst && event && event.dispatchConfig.registrationName) {\n var listener = getListener(inst, event.dispatchConfig.registrationName);\n listener &&\n ((event._dispatchListeners = accumulateInto(\n event._dispatchListeners,\n listener\n )),\n (event._dispatchInstances = accumulateInto(\n event._dispatchInstances,\n inst\n )));\n }\n }\n}\nfunction accumulateTwoPhaseDispatchesSingleSkipTarget(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n var targetInst = event._targetInst;\n targetInst = targetInst ? getParent(targetInst) : null;\n traverseTwoPhase(targetInst, accumulateDirectionalDispatches, event);\n }\n}\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n event &&\n event.dispatchConfig.phasedRegistrationNames &&\n traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);\n}\nvar ResponderEventPlugin = {\n _getResponder: function() {\n return responderInst;\n },\n eventTypes: eventTypes,\n extractEvents: function(\n topLevelType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n if (isStartish(topLevelType)) trackedTouchCount += 1;\n else if (\n \"topTouchEnd\" === topLevelType ||\n \"topTouchCancel\" === topLevelType\n )\n if (0 <= trackedTouchCount) --trackedTouchCount;\n else return null;\n ResponderTouchHistoryStore.recordTouchTrack(topLevelType, nativeEvent);\n if (\n targetInst &&\n ((\"topScroll\" === topLevelType && !nativeEvent.responderIgnoreScroll) ||\n (0 < trackedTouchCount && \"topSelectionChange\" === topLevelType) ||\n isStartish(topLevelType) ||\n isMoveish(topLevelType))\n ) {\n var shouldSetEventType = isStartish(topLevelType)\n ? eventTypes.startShouldSetResponder\n : isMoveish(topLevelType)\n ? eventTypes.moveShouldSetResponder\n : \"topSelectionChange\" === topLevelType\n ? eventTypes.selectionChangeShouldSetResponder\n : eventTypes.scrollShouldSetResponder;\n if (responderInst)\n b: {\n var JSCompiler_temp = responderInst;\n for (\n var depthA = 0, tempA = JSCompiler_temp;\n tempA;\n tempA = getParent(tempA)\n )\n depthA++;\n tempA = 0;\n for (var tempB = targetInst; tempB; tempB = getParent(tempB))\n tempA++;\n for (; 0 < depthA - tempA; )\n (JSCompiler_temp = getParent(JSCompiler_temp)), depthA--;\n for (; 0 < tempA - depthA; )\n (targetInst = getParent(targetInst)), tempA--;\n for (; depthA--; ) {\n if (\n JSCompiler_temp === targetInst ||\n JSCompiler_temp === targetInst.alternate\n )\n break b;\n JSCompiler_temp = getParent(JSCompiler_temp);\n targetInst = getParent(targetInst);\n }\n JSCompiler_temp = null;\n }\n else JSCompiler_temp = targetInst;\n targetInst = JSCompiler_temp;\n JSCompiler_temp = targetInst === responderInst;\n shouldSetEventType = ResponderSyntheticEvent.getPooled(\n shouldSetEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory;\n JSCompiler_temp\n ? forEachAccumulated(\n shouldSetEventType,\n accumulateTwoPhaseDispatchesSingleSkipTarget\n )\n : forEachAccumulated(\n shouldSetEventType,\n accumulateTwoPhaseDispatchesSingle\n );\n b: {\n JSCompiler_temp = shouldSetEventType._dispatchListeners;\n targetInst = shouldSetEventType._dispatchInstances;\n if (isArrayImpl(JSCompiler_temp))\n for (\n depthA = 0;\n depthA < JSCompiler_temp.length &&\n !shouldSetEventType.isPropagationStopped();\n depthA++\n ) {\n if (\n JSCompiler_temp[depthA](shouldSetEventType, targetInst[depthA])\n ) {\n JSCompiler_temp = targetInst[depthA];\n break b;\n }\n }\n else if (\n JSCompiler_temp &&\n JSCompiler_temp(shouldSetEventType, targetInst)\n ) {\n JSCompiler_temp = targetInst;\n break b;\n }\n JSCompiler_temp = null;\n }\n shouldSetEventType._dispatchInstances = null;\n shouldSetEventType._dispatchListeners = null;\n shouldSetEventType.isPersistent() ||\n shouldSetEventType.constructor.release(shouldSetEventType);\n if (JSCompiler_temp && JSCompiler_temp !== responderInst)\n if (\n ((shouldSetEventType = ResponderSyntheticEvent.getPooled(\n eventTypes.responderGrant,\n JSCompiler_temp,\n nativeEvent,\n nativeEventTarget\n )),\n (shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(\n shouldSetEventType,\n accumulateDirectDispatchesSingle\n ),\n (targetInst = !0 === executeDirectDispatch(shouldSetEventType)),\n responderInst)\n )\n if (\n ((depthA = ResponderSyntheticEvent.getPooled(\n eventTypes.responderTerminationRequest,\n responderInst,\n nativeEvent,\n nativeEventTarget\n )),\n (depthA.touchHistory = ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(depthA, accumulateDirectDispatchesSingle),\n (tempA =\n !depthA._dispatchListeners || executeDirectDispatch(depthA)),\n depthA.isPersistent() || depthA.constructor.release(depthA),\n tempA)\n ) {\n depthA = ResponderSyntheticEvent.getPooled(\n eventTypes.responderTerminate,\n responderInst,\n nativeEvent,\n nativeEventTarget\n );\n depthA.touchHistory = ResponderTouchHistoryStore.touchHistory;\n forEachAccumulated(depthA, accumulateDirectDispatchesSingle);\n var JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n [shouldSetEventType, depthA]\n );\n changeResponder(JSCompiler_temp, targetInst);\n } else\n (shouldSetEventType = ResponderSyntheticEvent.getPooled(\n eventTypes.responderReject,\n JSCompiler_temp,\n nativeEvent,\n nativeEventTarget\n )),\n (shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(\n shouldSetEventType,\n accumulateDirectDispatchesSingle\n ),\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n shouldSetEventType\n ));\n else\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n shouldSetEventType\n )),\n changeResponder(JSCompiler_temp, targetInst);\n else JSCompiler_temp$jscomp$0 = null;\n } else JSCompiler_temp$jscomp$0 = null;\n shouldSetEventType = responderInst && isStartish(topLevelType);\n JSCompiler_temp = responderInst && isMoveish(topLevelType);\n targetInst =\n responderInst &&\n (\"topTouchEnd\" === topLevelType || \"topTouchCancel\" === topLevelType);\n if (\n (shouldSetEventType = shouldSetEventType\n ? eventTypes.responderStart\n : JSCompiler_temp\n ? eventTypes.responderMove\n : targetInst\n ? eventTypes.responderEnd\n : null)\n )\n (shouldSetEventType = ResponderSyntheticEvent.getPooled(\n shouldSetEventType,\n responderInst,\n nativeEvent,\n nativeEventTarget\n )),\n (shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(\n shouldSetEventType,\n accumulateDirectDispatchesSingle\n ),\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n shouldSetEventType\n ));\n shouldSetEventType = responderInst && \"topTouchCancel\" === topLevelType;\n if (\n (topLevelType =\n responderInst &&\n !shouldSetEventType &&\n (\"topTouchEnd\" === topLevelType || \"topTouchCancel\" === topLevelType))\n )\n a: {\n if ((topLevelType = nativeEvent.touches) && 0 !== topLevelType.length)\n for (\n JSCompiler_temp = 0;\n JSCompiler_temp < topLevelType.length;\n JSCompiler_temp++\n )\n if (\n ((targetInst = topLevelType[JSCompiler_temp].target),\n null !== targetInst &&\n void 0 !== targetInst &&\n 0 !== targetInst)\n ) {\n depthA = getInstanceFromNode(targetInst);\n b: {\n for (targetInst = responderInst; depthA; ) {\n if (\n targetInst === depthA ||\n targetInst === depthA.alternate\n ) {\n targetInst = !0;\n break b;\n }\n depthA = getParent(depthA);\n }\n targetInst = !1;\n }\n if (targetInst) {\n topLevelType = !1;\n break a;\n }\n }\n topLevelType = !0;\n }\n if (\n (topLevelType = shouldSetEventType\n ? eventTypes.responderTerminate\n : topLevelType\n ? eventTypes.responderRelease\n : null)\n )\n (nativeEvent = ResponderSyntheticEvent.getPooled(\n topLevelType,\n responderInst,\n nativeEvent,\n nativeEventTarget\n )),\n (nativeEvent.touchHistory = ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(nativeEvent, accumulateDirectDispatchesSingle),\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n nativeEvent\n )),\n changeResponder(null);\n return JSCompiler_temp$jscomp$0;\n },\n GlobalResponderHandler: null,\n injection: {\n injectGlobalResponderHandler: function(GlobalResponderHandler) {\n ResponderEventPlugin.GlobalResponderHandler = GlobalResponderHandler;\n }\n }\n },\n eventPluginOrder = null,\n namesToPlugins = {};\nfunction recomputePluginOrdering() {\n if (eventPluginOrder)\n for (var pluginName in namesToPlugins) {\n var pluginModule = namesToPlugins[pluginName],\n pluginIndex = eventPluginOrder.indexOf(pluginName);\n if (-1 >= pluginIndex)\n throw Error(\n \"EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `\" +\n (pluginName + \"`.\")\n );\n if (!plugins[pluginIndex]) {\n if (!pluginModule.extractEvents)\n throw Error(\n \"EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `\" +\n (pluginName + \"` does not.\")\n );\n plugins[pluginIndex] = pluginModule;\n pluginIndex = pluginModule.eventTypes;\n for (var eventName in pluginIndex) {\n var JSCompiler_inline_result = void 0;\n var dispatchConfig = pluginIndex[eventName],\n eventName$jscomp$0 = eventName;\n if (eventNameDispatchConfigs.hasOwnProperty(eventName$jscomp$0))\n throw Error(\n \"EventPluginRegistry: More than one plugin attempted to publish the same event name, `\" +\n (eventName$jscomp$0 + \"`.\")\n );\n eventNameDispatchConfigs[eventName$jscomp$0] = dispatchConfig;\n var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n if (phasedRegistrationNames) {\n for (JSCompiler_inline_result in phasedRegistrationNames)\n phasedRegistrationNames.hasOwnProperty(\n JSCompiler_inline_result\n ) &&\n publishRegistrationName(\n phasedRegistrationNames[JSCompiler_inline_result],\n pluginModule,\n eventName$jscomp$0\n );\n JSCompiler_inline_result = !0;\n } else\n dispatchConfig.registrationName\n ? (publishRegistrationName(\n dispatchConfig.registrationName,\n pluginModule,\n eventName$jscomp$0\n ),\n (JSCompiler_inline_result = !0))\n : (JSCompiler_inline_result = !1);\n if (!JSCompiler_inline_result)\n throw Error(\n \"EventPluginRegistry: Failed to publish event `\" +\n eventName +\n \"` for plugin `\" +\n pluginName +\n \"`.\"\n );\n }\n }\n }\n}\nfunction publishRegistrationName(registrationName, pluginModule) {\n if (registrationNameModules[registrationName])\n throw Error(\n \"EventPluginRegistry: More than one plugin attempted to publish the same registration name, `\" +\n (registrationName + \"`.\")\n );\n registrationNameModules[registrationName] = pluginModule;\n}\nvar plugins = [],\n eventNameDispatchConfigs = {},\n registrationNameModules = {};\nfunction getListeners(\n inst,\n registrationName,\n phase,\n dispatchToImperativeListeners\n) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n inst = getFiberCurrentPropsFromNode(stateNode);\n if (null === inst) return null;\n if ((inst = inst[registrationName]) && \"function\" !== typeof inst)\n throw Error(\n \"Expected `\" +\n registrationName +\n \"` listener to be a function, instead got a value of `\" +\n typeof inst +\n \"` type.\"\n );\n if (\n !(\n dispatchToImperativeListeners &&\n stateNode.canonical &&\n stateNode.canonical._eventListeners\n )\n )\n return inst;\n var listeners = [];\n inst && listeners.push(inst);\n var requestedPhaseIsCapture = \"captured\" === phase,\n mangledImperativeRegistrationName = requestedPhaseIsCapture\n ? \"rn:\" + registrationName.replace(/Capture$/, \"\")\n : \"rn:\" + registrationName;\n stateNode.canonical._eventListeners[mangledImperativeRegistrationName] &&\n 0 <\n stateNode.canonical._eventListeners[mangledImperativeRegistrationName]\n .length &&\n stateNode.canonical._eventListeners[\n mangledImperativeRegistrationName\n ].forEach(function(listenerObj) {\n if (\n (null != listenerObj.options.capture && listenerObj.options.capture) ===\n requestedPhaseIsCapture\n ) {\n var listenerFnWrapper = function(syntheticEvent) {\n var eventInst = new ReactNativePrivateInterface.CustomEvent(\n mangledImperativeRegistrationName,\n { detail: syntheticEvent.nativeEvent }\n );\n eventInst.isTrusted = !0;\n eventInst.setSyntheticEvent(syntheticEvent);\n for (\n var _len = arguments.length,\n args = Array(1 < _len ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n )\n args[_key - 1] = arguments[_key];\n listenerObj.listener.apply(listenerObj, [eventInst].concat(args));\n };\n listenerObj.options.once\n ? listeners.push(function() {\n stateNode.canonical.removeEventListener_unstable(\n mangledImperativeRegistrationName,\n listenerObj.listener,\n listenerObj.capture\n );\n listenerObj.invalidated ||\n ((listenerObj.invalidated = !0),\n listenerObj.listener.apply(listenerObj, arguments));\n })\n : listeners.push(listenerFnWrapper);\n }\n });\n return 0 === listeners.length\n ? null\n : 1 === listeners.length\n ? listeners[0]\n : listeners;\n}\nvar customBubblingEventTypes =\n ReactNativePrivateInterface.ReactNativeViewConfigRegistry\n .customBubblingEventTypes,\n customDirectEventTypes =\n ReactNativePrivateInterface.ReactNativeViewConfigRegistry\n .customDirectEventTypes;\nfunction accumulateListenersAndInstances(inst, event, listeners) {\n var listenersLength = listeners\n ? isArrayImpl(listeners)\n ? listeners.length\n : 1\n : 0;\n if (0 < listenersLength)\n if (\n ((event._dispatchListeners = accumulateInto(\n event._dispatchListeners,\n listeners\n )),\n null == event._dispatchInstances && 1 === listenersLength)\n )\n event._dispatchInstances = inst;\n else\n for (\n event._dispatchInstances = event._dispatchInstances || [],\n isArrayImpl(event._dispatchInstances) ||\n (event._dispatchInstances = [event._dispatchInstances]),\n listeners = 0;\n listeners < listenersLength;\n listeners++\n )\n event._dispatchInstances.push(inst);\n}\nfunction accumulateDirectionalDispatches$1(inst, phase, event) {\n phase = getListeners(\n inst,\n event.dispatchConfig.phasedRegistrationNames[phase],\n phase,\n !0\n );\n accumulateListenersAndInstances(inst, event, phase);\n}\nfunction traverseTwoPhase$1(inst, fn, arg, skipBubbling) {\n for (var path = []; inst; ) {\n path.push(inst);\n do inst = inst.return;\n while (inst && 5 !== inst.tag);\n inst = inst ? inst : null;\n }\n for (inst = path.length; 0 < inst--; ) fn(path[inst], \"captured\", arg);\n if (skipBubbling) fn(path[0], \"bubbled\", arg);\n else\n for (inst = 0; inst < path.length; inst++) fn(path[inst], \"bubbled\", arg);\n}\nfunction accumulateTwoPhaseDispatchesSingle$1(event) {\n event &&\n event.dispatchConfig.phasedRegistrationNames &&\n traverseTwoPhase$1(\n event._targetInst,\n accumulateDirectionalDispatches$1,\n event,\n !1\n );\n}\nfunction accumulateDirectDispatchesSingle$1(event) {\n if (event && event.dispatchConfig.registrationName) {\n var inst = event._targetInst;\n if (inst && event && event.dispatchConfig.registrationName) {\n var listeners = getListeners(\n inst,\n event.dispatchConfig.registrationName,\n \"bubbled\",\n !1\n );\n accumulateListenersAndInstances(inst, event, listeners);\n }\n }\n}\nif (eventPluginOrder)\n throw Error(\n \"EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.\"\n );\neventPluginOrder = Array.prototype.slice.call([\n \"ResponderEventPlugin\",\n \"ReactNativeBridgeEventPlugin\"\n]);\nrecomputePluginOrdering();\nvar injectedNamesToPlugins$jscomp$inline_223 = {\n ResponderEventPlugin: ResponderEventPlugin,\n ReactNativeBridgeEventPlugin: {\n eventTypes: {},\n extractEvents: function(\n topLevelType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n if (null == targetInst) return null;\n var bubbleDispatchConfig = customBubblingEventTypes[topLevelType],\n directDispatchConfig = customDirectEventTypes[topLevelType];\n if (!bubbleDispatchConfig && !directDispatchConfig)\n throw Error(\n 'Unsupported top level event type \"' + topLevelType + '\" dispatched'\n );\n topLevelType = SyntheticEvent.getPooled(\n bubbleDispatchConfig || directDispatchConfig,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n if (bubbleDispatchConfig)\n null != topLevelType &&\n null != topLevelType.dispatchConfig.phasedRegistrationNames &&\n topLevelType.dispatchConfig.phasedRegistrationNames.skipBubbling\n ? topLevelType &&\n topLevelType.dispatchConfig.phasedRegistrationNames &&\n traverseTwoPhase$1(\n topLevelType._targetInst,\n accumulateDirectionalDispatches$1,\n topLevelType,\n !0\n )\n : forEachAccumulated(\n topLevelType,\n accumulateTwoPhaseDispatchesSingle$1\n );\n else if (directDispatchConfig)\n forEachAccumulated(topLevelType, accumulateDirectDispatchesSingle$1);\n else return null;\n return topLevelType;\n }\n }\n },\n isOrderingDirty$jscomp$inline_224 = !1,\n pluginName$jscomp$inline_225;\nfor (pluginName$jscomp$inline_225 in injectedNamesToPlugins$jscomp$inline_223)\n if (\n injectedNamesToPlugins$jscomp$inline_223.hasOwnProperty(\n pluginName$jscomp$inline_225\n )\n ) {\n var pluginModule$jscomp$inline_226 =\n injectedNamesToPlugins$jscomp$inline_223[pluginName$jscomp$inline_225];\n if (\n !namesToPlugins.hasOwnProperty(pluginName$jscomp$inline_225) ||\n namesToPlugins[pluginName$jscomp$inline_225] !==\n pluginModule$jscomp$inline_226\n ) {\n if (namesToPlugins[pluginName$jscomp$inline_225])\n throw Error(\n \"EventPluginRegistry: Cannot inject two different event plugins using the same name, `\" +\n (pluginName$jscomp$inline_225 + \"`.\")\n );\n namesToPlugins[\n pluginName$jscomp$inline_225\n ] = pluginModule$jscomp$inline_226;\n isOrderingDirty$jscomp$inline_224 = !0;\n }\n }\nisOrderingDirty$jscomp$inline_224 && recomputePluginOrdering();\nfunction getInstanceFromInstance(instanceHandle) {\n return instanceHandle;\n}\ngetFiberCurrentPropsFromNode = function(inst) {\n return inst.canonical.currentProps;\n};\ngetInstanceFromNode = getInstanceFromInstance;\ngetNodeFromInstance = function(inst) {\n inst = inst.stateNode.canonical;\n if (!inst._nativeTag) throw Error(\"All native instances should have a tag.\");\n return inst;\n};\nResponderEventPlugin.injection.injectGlobalResponderHandler({\n onChange: function(from, to, blockNativeResponder) {\n var fromOrTo = from || to;\n (fromOrTo = fromOrTo && fromOrTo.stateNode) &&\n fromOrTo.canonical._internalInstanceHandle\n ? (from &&\n nativeFabricUIManager.setIsJSResponder(\n from.stateNode.node,\n !1,\n blockNativeResponder || !1\n ),\n to &&\n nativeFabricUIManager.setIsJSResponder(\n to.stateNode.node,\n !0,\n blockNativeResponder || !1\n ))\n : null !== to\n ? ReactNativePrivateInterface.UIManager.setJSResponder(\n to.stateNode.canonical._nativeTag,\n blockNativeResponder\n )\n : ReactNativePrivateInterface.UIManager.clearJSResponder();\n }\n});\nvar ReactSharedInternals =\n React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,\n REACT_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_PROVIDER_TYPE = Symbol.for(\"react.provider\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nSymbol.for(\"react.debug_trace_mode\");\nvar REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.cache\");\nSymbol.for(\"react.tracing_marker\");\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type) return type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Consumer\";\n case REACT_PROVIDER_TYPE:\n return (type._context.displayName || \"Context\") + \".Provider\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nfunction getComponentNameFromFiber(fiber) {\n var type = fiber.type;\n switch (fiber.tag) {\n case 24:\n return \"Cache\";\n case 9:\n return (type.displayName || \"Context\") + \".Consumer\";\n case 10:\n return (type._context.displayName || \"Context\") + \".Provider\";\n case 18:\n return \"DehydratedFragment\";\n case 11:\n return (\n (fiber = type.render),\n (fiber = fiber.displayName || fiber.name || \"\"),\n type.displayName ||\n (\"\" !== fiber ? \"ForwardRef(\" + fiber + \")\" : \"ForwardRef\")\n );\n case 7:\n return \"Fragment\";\n case 5:\n return type;\n case 4:\n return \"Portal\";\n case 3:\n return \"Root\";\n case 6:\n return \"Text\";\n case 16:\n return getComponentNameFromType(type);\n case 8:\n return type === REACT_STRICT_MODE_TYPE ? \"StrictMode\" : \"Mode\";\n case 22:\n return \"Offscreen\";\n case 12:\n return \"Profiler\";\n case 21:\n return \"Scope\";\n case 13:\n return \"Suspense\";\n case 19:\n return \"SuspenseList\";\n case 25:\n return \"TracingMarker\";\n case 1:\n case 0:\n case 17:\n case 2:\n case 14:\n case 15:\n if (\"function\" === typeof type)\n return type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n }\n return null;\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(\"Unable to find node on an unmounted component.\");\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate)\n throw Error(\"Unable to find node on an unmounted component.\");\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(\"Unable to find node on an unmounted component.\");\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$0 = parentA.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) {\n for (child$0 = parentB.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild)\n throw Error(\n \"Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.\"\n );\n }\n }\n if (a.alternate !== b)\n throw Error(\n \"Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (3 !== a.tag)\n throw Error(\"Unable to find node on an unmounted component.\");\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiber(parent) {\n parent = findCurrentFiberUsingSlowPath(parent);\n return null !== parent ? findCurrentHostFiberImpl(parent) : null;\n}\nfunction findCurrentHostFiberImpl(node) {\n if (5 === node.tag || 6 === node.tag) return node;\n for (node = node.child; null !== node; ) {\n var match = findCurrentHostFiberImpl(node);\n if (null !== match) return match;\n node = node.sibling;\n }\n return null;\n}\nfunction mountSafeCallback_NOT_REALLY_SAFE(context, callback) {\n return function() {\n if (\n callback &&\n (\"boolean\" !== typeof context.__isMounted || context.__isMounted)\n )\n return callback.apply(context, arguments);\n };\n}\nvar emptyObject = {},\n removedKeys = null,\n removedKeyCount = 0,\n deepDifferOptions = { unsafelyIgnoreFunctions: !0 };\nfunction defaultDiffer(prevProp, nextProp) {\n return \"object\" !== typeof nextProp || null === nextProp\n ? !0\n : ReactNativePrivateInterface.deepDiffer(\n prevProp,\n nextProp,\n deepDifferOptions\n );\n}\nfunction restoreDeletedValuesInNestedArray(\n updatePayload,\n node,\n validAttributes\n) {\n if (isArrayImpl(node))\n for (var i = node.length; i-- && 0 < removedKeyCount; )\n restoreDeletedValuesInNestedArray(\n updatePayload,\n node[i],\n validAttributes\n );\n else if (node && 0 < removedKeyCount)\n for (i in removedKeys)\n if (removedKeys[i]) {\n var nextProp = node[i];\n if (void 0 !== nextProp) {\n var attributeConfig = validAttributes[i];\n if (attributeConfig) {\n \"function\" === typeof nextProp && (nextProp = !0);\n \"undefined\" === typeof nextProp && (nextProp = null);\n if (\"object\" !== typeof attributeConfig)\n updatePayload[i] = nextProp;\n else if (\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n )\n (nextProp =\n \"function\" === typeof attributeConfig.process\n ? attributeConfig.process(nextProp)\n : nextProp),\n (updatePayload[i] = nextProp);\n removedKeys[i] = !1;\n removedKeyCount--;\n }\n }\n }\n}\nfunction diffNestedProperty(\n updatePayload,\n prevProp,\n nextProp,\n validAttributes\n) {\n if (!updatePayload && prevProp === nextProp) return updatePayload;\n if (!prevProp || !nextProp)\n return nextProp\n ? addNestedProperty(updatePayload, nextProp, validAttributes)\n : prevProp\n ? clearNestedProperty(updatePayload, prevProp, validAttributes)\n : updatePayload;\n if (!isArrayImpl(prevProp) && !isArrayImpl(nextProp))\n return diffProperties(updatePayload, prevProp, nextProp, validAttributes);\n if (isArrayImpl(prevProp) && isArrayImpl(nextProp)) {\n var minLength =\n prevProp.length < nextProp.length ? prevProp.length : nextProp.length,\n i;\n for (i = 0; i < minLength; i++)\n updatePayload = diffNestedProperty(\n updatePayload,\n prevProp[i],\n nextProp[i],\n validAttributes\n );\n for (; i < prevProp.length; i++)\n updatePayload = clearNestedProperty(\n updatePayload,\n prevProp[i],\n validAttributes\n );\n for (; i < nextProp.length; i++)\n updatePayload = addNestedProperty(\n updatePayload,\n nextProp[i],\n validAttributes\n );\n return updatePayload;\n }\n return isArrayImpl(prevProp)\n ? diffProperties(\n updatePayload,\n ReactNativePrivateInterface.flattenStyle(prevProp),\n nextProp,\n validAttributes\n )\n : diffProperties(\n updatePayload,\n prevProp,\n ReactNativePrivateInterface.flattenStyle(nextProp),\n validAttributes\n );\n}\nfunction addNestedProperty(updatePayload, nextProp, validAttributes) {\n if (!nextProp) return updatePayload;\n if (!isArrayImpl(nextProp))\n return diffProperties(\n updatePayload,\n emptyObject,\n nextProp,\n validAttributes\n );\n for (var i = 0; i < nextProp.length; i++)\n updatePayload = addNestedProperty(\n updatePayload,\n nextProp[i],\n validAttributes\n );\n return updatePayload;\n}\nfunction clearNestedProperty(updatePayload, prevProp, validAttributes) {\n if (!prevProp) return updatePayload;\n if (!isArrayImpl(prevProp))\n return diffProperties(\n updatePayload,\n prevProp,\n emptyObject,\n validAttributes\n );\n for (var i = 0; i < prevProp.length; i++)\n updatePayload = clearNestedProperty(\n updatePayload,\n prevProp[i],\n validAttributes\n );\n return updatePayload;\n}\nfunction diffProperties(updatePayload, prevProps, nextProps, validAttributes) {\n var attributeConfig, propKey;\n for (propKey in nextProps)\n if ((attributeConfig = validAttributes[propKey])) {\n var prevProp = prevProps[propKey];\n var nextProp = nextProps[propKey];\n \"function\" === typeof nextProp &&\n ((nextProp = !0), \"function\" === typeof prevProp && (prevProp = !0));\n \"undefined\" === typeof nextProp &&\n ((nextProp = null),\n \"undefined\" === typeof prevProp && (prevProp = null));\n removedKeys && (removedKeys[propKey] = !1);\n if (updatePayload && void 0 !== updatePayload[propKey])\n if (\"object\" !== typeof attributeConfig)\n updatePayload[propKey] = nextProp;\n else {\n if (\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n )\n (attributeConfig =\n \"function\" === typeof attributeConfig.process\n ? attributeConfig.process(nextProp)\n : nextProp),\n (updatePayload[propKey] = attributeConfig);\n }\n else if (prevProp !== nextProp)\n if (\"object\" !== typeof attributeConfig)\n defaultDiffer(prevProp, nextProp) &&\n ((updatePayload || (updatePayload = {}))[propKey] = nextProp);\n else if (\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n ) {\n if (\n void 0 === prevProp ||\n (\"function\" === typeof attributeConfig.diff\n ? attributeConfig.diff(prevProp, nextProp)\n : defaultDiffer(prevProp, nextProp))\n )\n (attributeConfig =\n \"function\" === typeof attributeConfig.process\n ? attributeConfig.process(nextProp)\n : nextProp),\n ((updatePayload || (updatePayload = {}))[\n propKey\n ] = attributeConfig);\n } else\n (removedKeys = null),\n (removedKeyCount = 0),\n (updatePayload = diffNestedProperty(\n updatePayload,\n prevProp,\n nextProp,\n attributeConfig\n )),\n 0 < removedKeyCount &&\n updatePayload &&\n (restoreDeletedValuesInNestedArray(\n updatePayload,\n nextProp,\n attributeConfig\n ),\n (removedKeys = null));\n }\n for (var propKey$2 in prevProps)\n void 0 === nextProps[propKey$2] &&\n (!(attributeConfig = validAttributes[propKey$2]) ||\n (updatePayload && void 0 !== updatePayload[propKey$2]) ||\n ((prevProp = prevProps[propKey$2]),\n void 0 !== prevProp &&\n (\"object\" !== typeof attributeConfig ||\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n ? (((updatePayload || (updatePayload = {}))[propKey$2] = null),\n removedKeys || (removedKeys = {}),\n removedKeys[propKey$2] ||\n ((removedKeys[propKey$2] = !0), removedKeyCount++))\n : (updatePayload = clearNestedProperty(\n updatePayload,\n prevProp,\n attributeConfig\n )))));\n return updatePayload;\n}\nfunction batchedUpdatesImpl(fn, bookkeeping) {\n return fn(bookkeeping);\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates(fn, bookkeeping) {\n if (isInsideEventHandler) return fn(bookkeeping);\n isInsideEventHandler = !0;\n try {\n return batchedUpdatesImpl(fn, bookkeeping);\n } finally {\n isInsideEventHandler = !1;\n }\n}\nvar eventQueue = null;\nfunction executeDispatchesAndReleaseTopLevel(e) {\n if (e) {\n var dispatchListeners = e._dispatchListeners,\n dispatchInstances = e._dispatchInstances;\n if (isArrayImpl(dispatchListeners))\n for (\n var i = 0;\n i < dispatchListeners.length && !e.isPropagationStopped();\n i++\n )\n executeDispatch(e, dispatchListeners[i], dispatchInstances[i]);\n else\n dispatchListeners &&\n executeDispatch(e, dispatchListeners, dispatchInstances);\n e._dispatchListeners = null;\n e._dispatchInstances = null;\n e.isPersistent() || e.constructor.release(e);\n }\n}\nfunction dispatchEvent(target, topLevelType, nativeEvent) {\n var eventTarget = null;\n if (null != target) {\n var stateNode = target.stateNode;\n null != stateNode && (eventTarget = stateNode.canonical);\n }\n batchedUpdates(function() {\n var event = { eventName: topLevelType, nativeEvent: nativeEvent };\n ReactNativePrivateInterface.RawEventEmitter.emit(topLevelType, event);\n ReactNativePrivateInterface.RawEventEmitter.emit(\"*\", event);\n event = eventTarget;\n for (\n var events = null, legacyPlugins = plugins, i = 0;\n i < legacyPlugins.length;\n i++\n ) {\n var possiblePlugin = legacyPlugins[i];\n possiblePlugin &&\n (possiblePlugin = possiblePlugin.extractEvents(\n topLevelType,\n target,\n nativeEvent,\n event\n )) &&\n (events = accumulateInto(events, possiblePlugin));\n }\n event = events;\n null !== event && (eventQueue = accumulateInto(eventQueue, event));\n event = eventQueue;\n eventQueue = null;\n if (event) {\n forEachAccumulated(event, executeDispatchesAndReleaseTopLevel);\n if (eventQueue)\n throw Error(\n \"processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.\"\n );\n if (hasRethrowError)\n throw ((event = rethrowError),\n (hasRethrowError = !1),\n (rethrowError = null),\n event);\n }\n });\n}\nvar scheduleCallback = Scheduler.unstable_scheduleCallback,\n cancelCallback = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority = Scheduler.unstable_NormalPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n rendererID = null,\n injectedHook = null;\nfunction onCommitRoot(root) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n root,\n void 0,\n 128 === (root.current.flags & 128)\n );\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionLane = 64,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 4194240;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n return lanes & 130023424;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 1073741824;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n nonIdlePendingLanes = pendingLanes & 268435455;\n if (0 !== nonIdlePendingLanes) {\n var nonIdleUnblockedLanes = nonIdlePendingLanes & ~suspendedLanes;\n 0 !== nonIdleUnblockedLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdleUnblockedLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes &&\n (nextLanes = getHighestPriorityLanes(pingedLanes)));\n } else\n (nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes &&\n (nextLanes = getHighestPriorityLanes(pingedLanes));\n if (0 === nextLanes) return 0;\n if (\n 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (pingedLanes = wipLanes & -wipLanes),\n suspendedLanes >= pingedLanes ||\n (16 === suspendedLanes && 0 !== (pingedLanes & 4194240)))\n )\n return wipLanes;\n 0 !== (nextLanes & 4) && (nextLanes |= pendingLanes & 16);\n wipLanes = root.entangledLanes;\n if (0 !== wipLanes)\n for (root = root.entanglements, wipLanes &= nextLanes; 0 < wipLanes; )\n (pendingLanes = 31 - clz32(wipLanes)),\n (suspendedLanes = 1 << pendingLanes),\n (nextLanes |= root[pendingLanes]),\n (wipLanes &= ~suspendedLanes);\n return nextLanes;\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n return currentTime + 250;\n case 8:\n case 16:\n case 32:\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n return -1;\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction getLanesToRetrySynchronouslyOnError(root) {\n root = root.pendingLanes & -1073741825;\n return 0 !== root ? root : root & 1073741824 ? 1073741824 : 0;\n}\nfunction claimNextTransitionLane() {\n var lane = nextTransitionLane;\n nextTransitionLane <<= 1;\n 0 === (nextTransitionLane & 4194240) && (nextTransitionLane = 64);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated(root, updateLane, eventTime) {\n root.pendingLanes |= updateLane;\n 536870912 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0));\n root = root.eventTimes;\n updateLane = 31 - clz32(updateLane);\n root[updateLane] = eventTime;\n}\nfunction markRootFinished(root, remainingLanes) {\n var noLongerPendingLanes = root.pendingLanes & ~remainingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.mutableReadLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n remainingLanes = root.entanglements;\n var eventTimes = root.eventTimes;\n for (root = root.expirationTimes; 0 < noLongerPendingLanes; ) {\n var index$7 = 31 - clz32(noLongerPendingLanes),\n lane = 1 << index$7;\n remainingLanes[index$7] = 0;\n eventTimes[index$7] = -1;\n root[index$7] = -1;\n noLongerPendingLanes &= ~lane;\n }\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$8 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$8;\n (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n (root[index$8] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nvar currentUpdatePriority = 0;\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 1 < lanes\n ? 4 < lanes\n ? 0 !== (lanes & 268435455)\n ? 16\n : 536870912\n : 4\n : 1;\n}\nfunction shim$1() {\n throw Error(\n \"The current renderer does not support hydration. This error is likely caused by a bug in React. Please file an issue.\"\n );\n}\nvar _nativeFabricUIManage = nativeFabricUIManager,\n createNode = _nativeFabricUIManage.createNode,\n cloneNode = _nativeFabricUIManage.cloneNode,\n cloneNodeWithNewChildren = _nativeFabricUIManage.cloneNodeWithNewChildren,\n cloneNodeWithNewChildrenAndProps =\n _nativeFabricUIManage.cloneNodeWithNewChildrenAndProps,\n cloneNodeWithNewProps = _nativeFabricUIManage.cloneNodeWithNewProps,\n createChildNodeSet = _nativeFabricUIManage.createChildSet,\n appendChildNode = _nativeFabricUIManage.appendChild,\n appendChildNodeToSet = _nativeFabricUIManage.appendChildToSet,\n completeRoot = _nativeFabricUIManage.completeRoot,\n registerEventHandler = _nativeFabricUIManage.registerEventHandler,\n fabricMeasure = _nativeFabricUIManage.measure,\n fabricMeasureInWindow = _nativeFabricUIManage.measureInWindow,\n fabricMeasureLayout = _nativeFabricUIManage.measureLayout,\n FabricDiscretePriority = _nativeFabricUIManage.unstable_DiscreteEventPriority,\n fabricGetCurrentEventPriority =\n _nativeFabricUIManage.unstable_getCurrentEventPriority,\n _setNativeProps = _nativeFabricUIManage.setNativeProps,\n getViewConfigForType =\n ReactNativePrivateInterface.ReactNativeViewConfigRegistry.get,\n nextReactTag = 2;\nregisterEventHandler && registerEventHandler(dispatchEvent);\nvar ReactFabricHostComponent = (function() {\n function ReactFabricHostComponent(\n tag,\n viewConfig,\n props,\n internalInstanceHandle\n ) {\n this._nativeTag = tag;\n this.viewConfig = viewConfig;\n this.currentProps = props;\n this._internalInstanceHandle = internalInstanceHandle;\n }\n var _proto = ReactFabricHostComponent.prototype;\n _proto.blur = function() {\n ReactNativePrivateInterface.TextInputState.blurTextInput(this);\n };\n _proto.focus = function() {\n ReactNativePrivateInterface.TextInputState.focusTextInput(this);\n };\n _proto.measure = function(callback) {\n var stateNode = this._internalInstanceHandle.stateNode;\n null != stateNode &&\n fabricMeasure(\n stateNode.node,\n mountSafeCallback_NOT_REALLY_SAFE(this, callback)\n );\n };\n _proto.measureInWindow = function(callback) {\n var stateNode = this._internalInstanceHandle.stateNode;\n null != stateNode &&\n fabricMeasureInWindow(\n stateNode.node,\n mountSafeCallback_NOT_REALLY_SAFE(this, callback)\n );\n };\n _proto.measureLayout = function(relativeToNativeNode, onSuccess, onFail) {\n if (\n \"number\" !== typeof relativeToNativeNode &&\n relativeToNativeNode instanceof ReactFabricHostComponent\n ) {\n var toStateNode = this._internalInstanceHandle.stateNode;\n relativeToNativeNode =\n relativeToNativeNode._internalInstanceHandle.stateNode;\n null != toStateNode &&\n null != relativeToNativeNode &&\n fabricMeasureLayout(\n toStateNode.node,\n relativeToNativeNode.node,\n mountSafeCallback_NOT_REALLY_SAFE(this, onFail),\n mountSafeCallback_NOT_REALLY_SAFE(this, onSuccess)\n );\n }\n };\n _proto.setNativeProps = function(nativeProps) {\n nativeProps = diffProperties(\n null,\n emptyObject,\n nativeProps,\n this.viewConfig.validAttributes\n );\n var stateNode = this._internalInstanceHandle.stateNode;\n null != stateNode &&\n null != nativeProps &&\n _setNativeProps(stateNode.node, nativeProps);\n };\n _proto.addEventListener_unstable = function(eventType, listener, options) {\n if (\"string\" !== typeof eventType)\n throw Error(\"addEventListener_unstable eventType must be a string\");\n if (\"function\" !== typeof listener)\n throw Error(\"addEventListener_unstable listener must be a function\");\n var optionsObj =\n \"object\" === typeof options && null !== options ? options : {};\n options =\n (\"boolean\" === typeof options ? options : optionsObj.capture) || !1;\n var once = optionsObj.once || !1;\n optionsObj = optionsObj.passive || !1;\n var eventListeners = this._eventListeners || {};\n null == this._eventListeners && (this._eventListeners = eventListeners);\n var namedEventListeners = eventListeners[eventType] || [];\n null == eventListeners[eventType] &&\n (eventListeners[eventType] = namedEventListeners);\n namedEventListeners.push({\n listener: listener,\n invalidated: !1,\n options: {\n capture: options,\n once: once,\n passive: optionsObj,\n signal: null\n }\n });\n };\n _proto.removeEventListener_unstable = function(eventType, listener, options) {\n var optionsObj =\n \"object\" === typeof options && null !== options ? options : {},\n capture =\n (\"boolean\" === typeof options ? options : optionsObj.capture) || !1;\n (options = this._eventListeners) &&\n (optionsObj = options[eventType]) &&\n (options[eventType] = optionsObj.filter(function(listenerObj) {\n return !(\n listenerObj.listener === listener &&\n listenerObj.options.capture === capture\n );\n }));\n };\n return ReactFabricHostComponent;\n})();\nfunction createTextInstance(\n text,\n rootContainerInstance,\n hostContext,\n internalInstanceHandle\n) {\n hostContext = nextReactTag;\n nextReactTag += 2;\n return {\n node: createNode(\n hostContext,\n \"RCTRawText\",\n rootContainerInstance,\n { text: text },\n internalInstanceHandle\n )\n };\n}\nvar scheduleTimeout = setTimeout,\n cancelTimeout = clearTimeout;\nfunction cloneHiddenInstance(instance) {\n var node = instance.node;\n var JSCompiler_inline_result = diffProperties(\n null,\n emptyObject,\n { style: { display: \"none\" } },\n instance.canonical.viewConfig.validAttributes\n );\n return {\n node: cloneNodeWithNewProps(node, JSCompiler_inline_result),\n canonical: instance.canonical\n };\n}\nfunction describeComponentFrame(name, source, ownerName) {\n source = \"\";\n ownerName && (source = \" (created by \" + ownerName + \")\");\n return \"\\n in \" + (name || \"Unknown\") + source;\n}\nfunction describeFunctionComponentFrame(fn, source) {\n return fn\n ? describeComponentFrame(fn.displayName || fn.name || null, source, null)\n : \"\";\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar emptyContextObject = {},\n contextStackCursor = createCursor(emptyContextObject),\n didPerformWorkStackCursor = createCursor(!1),\n previousContext = emptyContextObject;\nfunction getMaskedContext(workInProgress, unmaskedContext) {\n var contextTypes = workInProgress.type.contextTypes;\n if (!contextTypes) return emptyContextObject;\n var instance = workInProgress.stateNode;\n if (\n instance &&\n instance.__reactInternalMemoizedUnmaskedChildContext === unmaskedContext\n )\n return instance.__reactInternalMemoizedMaskedChildContext;\n var context = {},\n key;\n for (key in contextTypes) context[key] = unmaskedContext[key];\n instance &&\n ((workInProgress = workInProgress.stateNode),\n (workInProgress.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext),\n (workInProgress.__reactInternalMemoizedMaskedChildContext = context));\n return context;\n}\nfunction isContextProvider(type) {\n type = type.childContextTypes;\n return null !== type && void 0 !== type;\n}\nfunction popContext() {\n pop(didPerformWorkStackCursor);\n pop(contextStackCursor);\n}\nfunction pushTopLevelContextObject(fiber, context, didChange) {\n if (contextStackCursor.current !== emptyContextObject)\n throw Error(\n \"Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.\"\n );\n push(contextStackCursor, context);\n push(didPerformWorkStackCursor, didChange);\n}\nfunction processChildContext(fiber, type, parentContext) {\n var instance = fiber.stateNode;\n type = type.childContextTypes;\n if (\"function\" !== typeof instance.getChildContext) return parentContext;\n instance = instance.getChildContext();\n for (var contextKey in instance)\n if (!(contextKey in type))\n throw Error(\n (getComponentNameFromFiber(fiber) || \"Unknown\") +\n '.getChildContext(): key \"' +\n contextKey +\n '\" is not defined in childContextTypes.'\n );\n return assign({}, parentContext, instance);\n}\nfunction pushContextProvider(workInProgress) {\n workInProgress =\n ((workInProgress = workInProgress.stateNode) &&\n workInProgress.__reactInternalMemoizedMergedChildContext) ||\n emptyContextObject;\n previousContext = contextStackCursor.current;\n push(contextStackCursor, workInProgress);\n push(didPerformWorkStackCursor, didPerformWorkStackCursor.current);\n return !0;\n}\nfunction invalidateContextProvider(workInProgress, type, didChange) {\n var instance = workInProgress.stateNode;\n if (!instance)\n throw Error(\n \"Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.\"\n );\n didChange\n ? ((workInProgress = processChildContext(\n workInProgress,\n type,\n previousContext\n )),\n (instance.__reactInternalMemoizedMergedChildContext = workInProgress),\n pop(didPerformWorkStackCursor),\n pop(contextStackCursor),\n push(contextStackCursor, workInProgress))\n : pop(didPerformWorkStackCursor);\n push(didPerformWorkStackCursor, didChange);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n syncQueue = null,\n includesLegacySyncCallbacks = !1,\n isFlushingSyncQueue = !1;\nfunction flushSyncCallbacks() {\n if (!isFlushingSyncQueue && null !== syncQueue) {\n isFlushingSyncQueue = !0;\n var i = 0,\n previousUpdatePriority = currentUpdatePriority;\n try {\n var queue = syncQueue;\n for (currentUpdatePriority = 1; i < queue.length; i++) {\n var callback = queue[i];\n do callback = callback(!0);\n while (null !== callback);\n }\n syncQueue = null;\n includesLegacySyncCallbacks = !1;\n } catch (error) {\n throw (null !== syncQueue && (syncQueue = syncQueue.slice(i + 1)),\n scheduleCallback(ImmediatePriority, flushSyncCallbacks),\n error);\n } finally {\n (currentUpdatePriority = previousUpdatePriority),\n (isFlushingSyncQueue = !1);\n }\n }\n return null;\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null;\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n --forkStackIndex,\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n --idStackIndex,\n (idStack[idStackIndex] = null),\n --idStackIndex,\n (idStack[idStackIndex] = null);\n}\nvar hydrationErrors = null,\n ReactCurrentBatchConfig = ReactSharedInternals.ReactCurrentBatchConfig;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction describeFiber(fiber) {\n switch (fiber.tag) {\n case 5:\n return describeComponentFrame(fiber.type, null, null);\n case 16:\n return describeComponentFrame(\"Lazy\", null, null);\n case 13:\n return describeComponentFrame(\"Suspense\", null, null);\n case 19:\n return describeComponentFrame(\"SuspenseList\", null, null);\n case 0:\n case 2:\n case 15:\n return describeFunctionComponentFrame(fiber.type, null);\n case 11:\n return describeFunctionComponentFrame(fiber.type.render, null);\n case 1:\n return (fiber = describeFunctionComponentFrame(fiber.type, null)), fiber;\n default:\n return \"\";\n }\n}\nfunction resolveDefaultProps(Component, baseProps) {\n if (Component && Component.defaultProps) {\n baseProps = assign({}, baseProps);\n Component = Component.defaultProps;\n for (var propName in Component)\n void 0 === baseProps[propName] &&\n (baseProps[propName] = Component[propName]);\n return baseProps;\n }\n return baseProps;\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber = null,\n lastContextDependency = null,\n lastFullyObservedContext = null;\nfunction resetContextDependencies() {\n lastFullyObservedContext = lastContextDependency = currentlyRenderingFiber = null;\n}\nfunction popProvider(context) {\n var currentValue = valueCursor.current;\n pop(valueCursor);\n context._currentValue2 = currentValue;\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction prepareToReadContext(workInProgress, renderLanes) {\n currentlyRenderingFiber = workInProgress;\n lastFullyObservedContext = lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress &&\n null !== workInProgress.firstContext &&\n (0 !== (workInProgress.lanes & renderLanes) && (didReceiveUpdate = !0),\n (workInProgress.firstContext = null));\n}\nfunction readContext(context) {\n var value = context._currentValue2;\n if (lastFullyObservedContext !== context)\n if (\n ((context = { context: context, memoizedValue: value, next: null }),\n null === lastContextDependency)\n ) {\n if (null === currentlyRenderingFiber)\n throw Error(\n \"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\"\n );\n lastContextDependency = context;\n currentlyRenderingFiber.dependencies = {\n lanes: 0,\n firstContext: context\n };\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar concurrentQueues = null;\nfunction pushConcurrentUpdateQueue(queue) {\n null === concurrentQueues\n ? (concurrentQueues = [queue])\n : concurrentQueues.push(queue);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n var interleaved = queue.interleaved;\n null === interleaved\n ? ((update.next = update), pushConcurrentUpdateQueue(queue))\n : ((update.next = interleaved.next), (interleaved.next = update));\n queue.interleaved = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n alternate = sourceFiber;\n for (sourceFiber = sourceFiber.return; null !== sourceFiber; )\n (sourceFiber.childLanes |= lane),\n (alternate = sourceFiber.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n (alternate = sourceFiber),\n (sourceFiber = sourceFiber.return);\n return 3 === alternate.tag ? alternate.stateNode : null;\n}\nvar hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, interleaved: null, lanes: 0 },\n effects: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n effects: current.effects\n });\n}\nfunction createUpdate(eventTime, lane) {\n return {\n eventTime: eventTime,\n lane: lane,\n tag: 0,\n payload: null,\n callback: null,\n next: null\n };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n }\n pending = updateQueue.interleaved;\n null === pending\n ? ((update.next = update), pushConcurrentUpdateQueue(updateQueue))\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.interleaved = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194240))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n eventTime: queue.eventTime,\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: queue.callback,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n effects: current.effects\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance,\n renderLanes\n) {\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane,\n updateEventTime = pendingQueue.eventTime;\n if ((renderLanes & updateLane) === updateLane) {\n null !== current &&\n (current = current.next = {\n eventTime: updateEventTime,\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n updateEventTime = instance;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(\n updateEventTime,\n newState,\n updateLane\n );\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(updateEventTime, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n null !== pendingQueue.callback &&\n 0 !== pendingQueue.lane &&\n ((workInProgress$jscomp$0.flags |= 64),\n (updateLane = queue.effects),\n null === updateLane\n ? (queue.effects = [pendingQueue])\n : updateLane.push(pendingQueue));\n } else\n (updateEventTime = {\n eventTime: updateEventTime,\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = updateEventTime),\n (lastPendingUpdate = newState))\n : (current = current.next = updateEventTime),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (updateLane = pendingQueue),\n (pendingQueue = updateLane.next),\n (updateLane.next = null),\n (queue.lastBaseUpdate = updateLane),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n props = queue.shared.interleaved;\n if (null !== props) {\n queue = props;\n do (lastBaseUpdate |= queue.lane), (queue = queue.next);\n while (queue !== props);\n } else null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction commitUpdateQueue(finishedWork, finishedQueue, instance) {\n finishedWork = finishedQueue.effects;\n finishedQueue.effects = null;\n if (null !== finishedWork)\n for (\n finishedQueue = 0;\n finishedQueue < finishedWork.length;\n finishedQueue++\n ) {\n var effect = finishedWork[finishedQueue],\n callback = effect.callback;\n if (null !== callback) {\n effect.callback = null;\n if (\"function\" !== typeof callback)\n throw Error(\n \"Invalid argument passed as callback. Expected a function. Instead received: \" +\n callback\n );\n callback.call(instance);\n }\n }\n}\nvar emptyRefsObject = new React.Component().refs;\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n isMounted: function(component) {\n return (component = component._reactInternals)\n ? getNearestMountedFiber(component) === component\n : !1;\n },\n enqueueSetState: function(inst, payload, callback) {\n inst = inst._reactInternals;\n var eventTime = requestEventTime(),\n lane = requestUpdateLane(inst),\n update = createUpdate(eventTime, lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane, eventTime),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function(inst, payload, callback) {\n inst = inst._reactInternals;\n var eventTime = requestEventTime(),\n lane = requestUpdateLane(inst),\n update = createUpdate(eventTime, lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane, eventTime),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function(inst, callback) {\n inst = inst._reactInternals;\n var eventTime = requestEventTime(),\n lane = requestUpdateLane(inst),\n update = createUpdate(eventTime, lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane, eventTime),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction constructClassInstance(workInProgress, ctor, props) {\n var isLegacyContextConsumer = !1,\n unmaskedContext = emptyContextObject;\n var context = ctor.contextType;\n \"object\" === typeof context && null !== context\n ? (context = readContext(context))\n : ((unmaskedContext = isContextProvider(ctor)\n ? previousContext\n : contextStackCursor.current),\n (isLegacyContextConsumer = ctor.contextTypes),\n (context = (isLegacyContextConsumer =\n null !== isLegacyContextConsumer && void 0 !== isLegacyContextConsumer)\n ? getMaskedContext(workInProgress, unmaskedContext)\n : emptyContextObject));\n ctor = new ctor(props, context);\n workInProgress.memoizedState =\n null !== ctor.state && void 0 !== ctor.state ? ctor.state : null;\n ctor.updater = classComponentUpdater;\n workInProgress.stateNode = ctor;\n ctor._reactInternals = workInProgress;\n isLegacyContextConsumer &&\n ((workInProgress = workInProgress.stateNode),\n (workInProgress.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext),\n (workInProgress.__reactInternalMemoizedMaskedChildContext = context));\n return ctor;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction mountClassInstance(workInProgress, ctor, newProps, renderLanes) {\n var instance = workInProgress.stateNode;\n instance.props = newProps;\n instance.state = workInProgress.memoizedState;\n instance.refs = emptyRefsObject;\n initializeUpdateQueue(workInProgress);\n var contextType = ctor.contextType;\n \"object\" === typeof contextType && null !== contextType\n ? (instance.context = readContext(contextType))\n : ((contextType = isContextProvider(ctor)\n ? previousContext\n : contextStackCursor.current),\n (instance.context = getMaskedContext(workInProgress, contextType)));\n instance.state = workInProgress.memoizedState;\n contextType = ctor.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(workInProgress, ctor, contextType, newProps),\n (instance.state = workInProgress.memoizedState));\n \"function\" === typeof ctor.getDerivedStateFromProps ||\n \"function\" === typeof instance.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof instance.UNSAFE_componentWillMount &&\n \"function\" !== typeof instance.componentWillMount) ||\n ((ctor = instance.state),\n \"function\" === typeof instance.componentWillMount &&\n instance.componentWillMount(),\n \"function\" === typeof instance.UNSAFE_componentWillMount &&\n instance.UNSAFE_componentWillMount(),\n ctor !== instance.state &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null),\n processUpdateQueue(workInProgress, newProps, instance, renderLanes),\n (instance.state = workInProgress.memoizedState));\n \"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4);\n}\nfunction coerceRef(returnFiber, current, element) {\n returnFiber = element.ref;\n if (\n null !== returnFiber &&\n \"function\" !== typeof returnFiber &&\n \"object\" !== typeof returnFiber\n ) {\n if (element._owner) {\n element = element._owner;\n if (element) {\n if (1 !== element.tag)\n throw Error(\n \"Function components cannot have string refs. We recommend using useRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref\"\n );\n var inst = element.stateNode;\n }\n if (!inst)\n throw Error(\n \"Missing owner for string ref \" +\n returnFiber +\n \". This error is likely caused by a bug in React. Please file an issue.\"\n );\n var resolvedInst = inst,\n stringRef = \"\" + returnFiber;\n if (\n null !== current &&\n null !== current.ref &&\n \"function\" === typeof current.ref &&\n current.ref._stringRef === stringRef\n )\n return current.ref;\n current = function(value) {\n var refs = resolvedInst.refs;\n refs === emptyRefsObject && (refs = resolvedInst.refs = {});\n null === value ? delete refs[stringRef] : (refs[stringRef] = value);\n };\n current._stringRef = stringRef;\n return current;\n }\n if (\"string\" !== typeof returnFiber)\n throw Error(\n \"Expected ref to be a function, a string, an object returned by React.createRef(), or null.\"\n );\n if (!element._owner)\n throw Error(\n \"Element ref was specified as a string (\" +\n returnFiber +\n \") but no owner was set. This could happen for one of the following reasons:\\n1. You may be adding a ref to a function component\\n2. You may be adding a ref to a component that was not created inside a component's render method\\n3. You have multiple copies of React loaded\\nSee https://reactjs.org/link/refs-must-have-owner for more information.\"\n );\n }\n return returnFiber;\n}\nfunction throwOnInvalidObjectType(returnFiber, newChild) {\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n}\nfunction resolveLazy(lazyType) {\n var init = lazyType._init;\n return init(lazyType._payload);\n}\nfunction ChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(returnFiber, currentFirstChild) {\n for (returnFiber = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? returnFiber.set(currentFirstChild.key, currentFirstChild)\n : returnFiber.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return returnFiber;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 2), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 2;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 2);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (lanes = useFiber(current, element.props)),\n (lanes.ref = coerceRef(returnFiber, current, element)),\n (lanes.return = returnFiber),\n lanes\n );\n lanes = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n lanes.ref = coerceRef(returnFiber, current, element);\n lanes.return = returnFiber;\n return lanes;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n (lanes.ref = coerceRef(returnFiber, null, newChild)),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n return createChild(returnFiber, init(newChild._payload), lanes);\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (key = newChild._init),\n updateSlot(returnFiber, oldFiber, key(newChild._payload), lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n init(newChild._payload),\n lanes\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber), resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(returnFiber, oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function(child) {\n return deleteChild(returnFiber, child);\n });\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildrenIterable,\n lanes\n ) {\n var iteratorFn = getIteratorFn(newChildrenIterable);\n if (\"function\" !== typeof iteratorFn)\n throw Error(\n \"An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.\"\n );\n newChildrenIterable = iteratorFn.call(newChildrenIterable);\n if (null == newChildrenIterable)\n throw Error(\"An iterable object provided no iterator.\");\n for (\n var previousNewFiber = (iteratorFn = null),\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildrenIterable.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildrenIterable.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (iteratorFn = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return deleteRemainingChildren(returnFiber, oldFiber), iteratorFn;\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildrenIterable.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (iteratorFn = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n return iteratorFn;\n }\n for (\n oldFiber = mapRemainingChildren(returnFiber, oldFiber);\n !step.done;\n newIdx++, step = newChildrenIterable.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (iteratorFn = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function(child) {\n return deleteChild(returnFiber, child);\n });\n return iteratorFn;\n }\n function reconcileChildFibers(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (\n var key = newChild.key, child = currentFirstChild;\n null !== child;\n\n ) {\n if (child.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === child.tag) {\n deleteRemainingChildren(returnFiber, child.sibling);\n currentFirstChild = useFiber(\n child,\n newChild.props.children\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n break a;\n }\n } else if (\n child.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === child.type)\n ) {\n deleteRemainingChildren(returnFiber, child.sibling);\n currentFirstChild = useFiber(child, newChild.props);\n currentFirstChild.ref = coerceRef(\n returnFiber,\n child,\n newChild\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n break a;\n }\n deleteRemainingChildren(returnFiber, child);\n break;\n } else deleteChild(returnFiber, child);\n child = child.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((currentFirstChild = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (currentFirstChild.return = returnFiber),\n (returnFiber = currentFirstChild))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n (lanes.ref = coerceRef(\n returnFiber,\n currentFirstChild,\n newChild\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (child = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === child)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n currentFirstChild = useFiber(\n currentFirstChild,\n newChild.children || []\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n currentFirstChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (child = newChild._init),\n reconcileChildFibers(\n returnFiber,\n currentFirstChild,\n child(newChild._payload),\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild))\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (currentFirstChild = useFiber(currentFirstChild, newChild)),\n (currentFirstChild.return = returnFiber),\n (returnFiber = currentFirstChild))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (currentFirstChild = createFiberFromText(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (currentFirstChild.return = returnFiber),\n (returnFiber = currentFirstChild)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return reconcileChildFibers;\n}\nvar reconcileChildFibers = ChildReconciler(!0),\n mountChildFibers = ChildReconciler(!1),\n NO_CONTEXT = {},\n contextStackCursor$1 = createCursor(NO_CONTEXT),\n contextFiberStackCursor = createCursor(NO_CONTEXT),\n rootInstanceStackCursor = createCursor(NO_CONTEXT);\nfunction requiredContext(c) {\n if (c === NO_CONTEXT)\n throw Error(\n \"Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.\"\n );\n return c;\n}\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor$1, NO_CONTEXT);\n pop(contextStackCursor$1);\n push(contextStackCursor$1, { isInAParentText: !1 });\n}\nfunction popHostContainer() {\n pop(contextStackCursor$1);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n requiredContext(rootInstanceStackCursor.current);\n var context = requiredContext(contextStackCursor$1.current);\n var JSCompiler_inline_result = fiber.type;\n JSCompiler_inline_result =\n \"AndroidTextInput\" === JSCompiler_inline_result ||\n \"RCTMultilineTextInputView\" === JSCompiler_inline_result ||\n \"RCTSinglelineTextInputView\" === JSCompiler_inline_result ||\n \"RCTText\" === JSCompiler_inline_result ||\n \"RCTVirtualText\" === JSCompiler_inline_result;\n JSCompiler_inline_result =\n context.isInAParentText !== JSCompiler_inline_result\n ? { isInAParentText: JSCompiler_inline_result }\n : context;\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor$1, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor$1), pop(contextFiberStackCursor));\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (null !== state && (null === state.dehydrated || shim$1() || shim$1()))\n return node;\n } else if (19 === node.tag && void 0 !== node.memoizedProps.revealOrder) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar workInProgressSources = [];\nfunction resetWorkInProgressVersions() {\n for (var i = 0; i < workInProgressSources.length; i++)\n workInProgressSources[i]._workInProgressVersionSecondary = null;\n workInProgressSources.length = 0;\n}\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher,\n ReactCurrentBatchConfig$1 = ReactSharedInternals.ReactCurrentBatchConfig,\n renderLanes = 0,\n currentlyRenderingFiber$1 = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber$1 = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactCurrentDispatcher$1.current =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n current = Component(props, secondArg);\n if (didScheduleRenderPhaseUpdateDuringThisPass) {\n nextRenderLanes = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= nextRenderLanes)\n throw Error(\n \"Too many re-renders. React limits the number of renders to prevent an infinite loop.\"\n );\n nextRenderLanes += 1;\n workInProgressHook = currentHook = null;\n workInProgress.updateQueue = null;\n ReactCurrentDispatcher$1.current = HooksDispatcherOnRerender;\n current = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n }\n ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n workInProgress = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber$1 = null;\n didScheduleRenderPhaseUpdate = !1;\n if (workInProgress)\n throw Error(\n \"Rendered fewer hooks than expected. This may be caused by an accidental early return statement.\"\n );\n return current;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber$1.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber$1.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber$1.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook)\n throw Error(\"Rendered more hooks than during the previous render.\");\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber$1.memoizedState = workInProgressHook = nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue)\n throw Error(\n \"Should have a queue. This is likely a bug in React. Please file an issue.\"\n );\n queue.lastRenderedReducer = reducer;\n var current = currentHook,\n baseQueue = current.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n if (null !== baseQueue) {\n pendingQueue = baseQueue.next;\n current = current.baseState;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = pendingQueue;\n do {\n var updateLane = update.lane;\n if ((renderLanes & updateLane) === updateLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next = {\n lane: 0,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n (current = update.hasEagerState\n ? update.eagerState\n : reducer(current, update.action));\n else {\n var clone = {\n lane: updateLane,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n };\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = clone),\n (baseFirst = current))\n : (newBaseQueueLast = newBaseQueueLast.next = clone);\n currentlyRenderingFiber$1.lanes |= updateLane;\n workInProgressRootSkippedLanes |= updateLane;\n }\n update = update.next;\n } while (null !== update && update !== pendingQueue);\n null === newBaseQueueLast\n ? (baseFirst = current)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n objectIs(current, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = current;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = current;\n }\n reducer = queue.interleaved;\n if (null !== reducer) {\n baseQueue = reducer;\n do\n (pendingQueue = baseQueue.lane),\n (currentlyRenderingFiber$1.lanes |= pendingQueue),\n (workInProgressRootSkippedLanes |= pendingQueue),\n (baseQueue = baseQueue.next);\n while (baseQueue !== reducer);\n } else null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue)\n throw Error(\n \"Should have a queue. This is likely a bug in React. Please file an issue.\"\n );\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateMutableSource() {}\nfunction updateSyncExternalStore(subscribe, getSnapshot) {\n var fiber = currentlyRenderingFiber$1,\n hook = updateWorkInProgressHook(),\n nextSnapshot = getSnapshot(),\n snapshotChanged = !objectIs(hook.memoizedState, nextSnapshot);\n snapshotChanged &&\n ((hook.memoizedState = nextSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushEffect(\n 9,\n updateStoreInstance.bind(null, fiber, hook, nextSnapshot, getSnapshot),\n void 0,\n null\n );\n if (null === workInProgressRoot)\n throw Error(\n \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\"\n );\n 0 !== (renderLanes & 30) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot);\n }\n return nextSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber$1.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = { lastEffect: null, stores: null }),\n (currentlyRenderingFiber$1.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function() {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = markUpdateLaneFromFiberToRoot(fiber, 1);\n null !== root && scheduleUpdateOnFiber(root, fiber, 1, -1);\n}\nfunction mountState(initialState) {\n var hook = mountWorkInProgressHook();\n \"function\" === typeof initialState && (initialState = initialState());\n hook.memoizedState = hook.baseState = initialState;\n initialState = {\n pending: null,\n interleaved: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n hook.queue = initialState;\n initialState = initialState.dispatch = dispatchSetState.bind(\n null,\n currentlyRenderingFiber$1,\n initialState\n );\n return [hook.memoizedState, initialState];\n}\nfunction pushEffect(tag, create, destroy, deps) {\n tag = { tag: tag, create: create, destroy: destroy, deps: deps, next: null };\n create = currentlyRenderingFiber$1.updateQueue;\n null === create\n ? ((create = { lastEffect: null, stores: null }),\n (currentlyRenderingFiber$1.updateQueue = create),\n (create.lastEffect = tag.next = tag))\n : ((destroy = create.lastEffect),\n null === destroy\n ? (create.lastEffect = tag.next = tag)\n : ((deps = destroy.next),\n (destroy.next = tag),\n (tag.next = deps),\n (create.lastEffect = tag)));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(\n 1 | hookFlags,\n create,\n void 0,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var destroy = void 0;\n if (null !== currentHook) {\n var prevEffect = currentHook.memoizedState;\n destroy = prevEffect.destroy;\n if (null !== deps && areHookInputsEqual(deps, prevEffect.deps)) {\n hook.memoizedState = pushEffect(hookFlags, create, destroy, deps);\n return;\n }\n }\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(1 | hookFlags, create, destroy, deps);\n}\nfunction mountEffect(create, deps) {\n return mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n return updateEffectImpl(2048, 8, create, deps);\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref)\n return (\n (create = create()),\n ref(create),\n function() {\n ref(null);\n }\n );\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function() {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n return updateEffectImpl(\n 4,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (\n null !== prevState &&\n null !== deps &&\n areHookInputsEqual(deps, prevState[1])\n )\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (\n null !== prevState &&\n null !== deps &&\n areHookInputsEqual(deps, prevState[1])\n )\n return prevState[0];\n nextCreate = nextCreate();\n hook.memoizedState = [nextCreate, deps];\n return nextCreate;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value) {\n if (0 === (renderLanes & 21))\n return (\n hook.baseState && ((hook.baseState = !1), (didReceiveUpdate = !0)),\n (hook.memoizedState = value)\n );\n objectIs(value, prevValue) ||\n ((value = claimNextTransitionLane()),\n (currentlyRenderingFiber$1.lanes |= value),\n (workInProgressRootSkippedLanes |= value),\n (hook.baseState = !0));\n return prevValue;\n}\nfunction startTransition(setPending, callback) {\n var previousPriority = currentUpdatePriority;\n currentUpdatePriority =\n 0 !== previousPriority && 4 > previousPriority ? previousPriority : 4;\n setPending(!0);\n var prevTransition = ReactCurrentBatchConfig$1.transition;\n ReactCurrentBatchConfig$1.transition = {};\n try {\n setPending(!1), callback();\n } finally {\n (currentUpdatePriority = previousPriority),\n (ReactCurrentBatchConfig$1.transition = prevTransition);\n }\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane(fiber);\n action = {\n lane: lane,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, action);\n else if (\n ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action)\n ) {\n var eventTime = requestEventTime();\n scheduleUpdateOnFiber(action, fiber, lane, eventTime);\n entangleTransitionUpdate(action, queue, lane);\n }\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane(fiber),\n update = {\n lane: lane,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState)) {\n var interleaved = queue.interleaved;\n null === interleaved\n ? ((update.next = update), pushConcurrentUpdateQueue(queue))\n : ((update.next = interleaved.next), (interleaved.next = update));\n queue.interleaved = update;\n return;\n }\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n null !== action &&\n ((update = requestEventTime()),\n scheduleUpdateOnFiber(action, fiber, lane, update),\n entangleTransitionUpdate(action, queue, lane));\n }\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber$1 ||\n (null !== alternate && alternate === currentlyRenderingFiber$1)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate = !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194240)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useMutableSource: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n unstable_isNewReconciler: !1\n },\n HooksDispatcherOnMount = {\n readContext: readContext,\n useCallback: function(callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n return mountEffectImpl(\n 4,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function(create, deps) {\n return mountEffectImpl(4, 4, create, deps);\n },\n useInsertionEffect: function(create, deps) {\n return mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function(nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n nextCreate = nextCreate();\n hook.memoizedState = [nextCreate, deps];\n return nextCreate;\n },\n useReducer: function(reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n initialArg = void 0 !== init ? init(initialArg) : initialArg;\n hook.memoizedState = hook.baseState = initialArg;\n reducer = {\n pending: null,\n interleaved: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialArg\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber$1,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function(initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: mountState,\n useDebugValue: mountDebugValue,\n useDeferredValue: function(value) {\n return (mountWorkInProgressHook().memoizedState = value);\n },\n useTransition: function() {\n var _mountState = mountState(!1),\n isPending = _mountState[0];\n _mountState = startTransition.bind(null, _mountState[1]);\n mountWorkInProgressHook().memoizedState = _mountState;\n return [isPending, _mountState];\n },\n useMutableSource: function() {},\n useSyncExternalStore: function(subscribe, getSnapshot) {\n var fiber = currentlyRenderingFiber$1,\n hook = mountWorkInProgressHook();\n var nextSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(\n \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\"\n );\n 0 !== (renderLanes & 30) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot);\n hook.memoizedState = nextSnapshot;\n var inst = { value: nextSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushEffect(\n 9,\n updateStoreInstance.bind(null, fiber, inst, nextSnapshot, getSnapshot),\n void 0,\n null\n );\n return nextSnapshot;\n },\n useId: function() {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix,\n globalClientId = globalClientIdCounter++;\n identifierPrefix =\n \":\" + identifierPrefix + \"r\" + globalClientId.toString(32) + \":\";\n return (hook.memoizedState = identifierPrefix);\n },\n unstable_isNewReconciler: !1\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function() {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function(value) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(hook, currentHook.memoizedState, value);\n },\n useTransition: function() {\n var isPending = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [isPending, start];\n },\n useMutableSource: updateMutableSource,\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n unstable_isNewReconciler: !1\n },\n HooksDispatcherOnRerender = {\n readContext: readContext,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function() {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function(value) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? (hook.memoizedState = value)\n : updateDeferredValueImpl(hook, currentHook.memoizedState, value);\n },\n useTransition: function() {\n var isPending = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [isPending, start];\n },\n useMutableSource: updateMutableSource,\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n unstable_isNewReconciler: !1\n };\nfunction createCapturedValueAtFiber(value, source) {\n try {\n var info = \"\",\n node = source;\n do (info += describeFiber(node)), (node = node.return);\n while (node);\n var JSCompiler_inline_result = info;\n } catch (x) {\n JSCompiler_inline_result =\n \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n return {\n value: value,\n source: source,\n stack: JSCompiler_inline_result,\n digest: null\n };\n}\nfunction createCapturedValue(value, digest, stack) {\n return {\n value: value,\n source: null,\n stack: null != stack ? stack : null,\n digest: null != digest ? digest : null\n };\n}\nif (\n \"function\" !==\n typeof ReactNativePrivateInterface.ReactFiberErrorDialog.showErrorDialog\n)\n throw Error(\n \"Expected ReactFiberErrorDialog.showErrorDialog to be a function.\"\n );\nfunction logCapturedError(boundary, errorInfo) {\n try {\n !1 !==\n ReactNativePrivateInterface.ReactFiberErrorDialog.showErrorDialog({\n componentStack: null !== errorInfo.stack ? errorInfo.stack : \"\",\n error: errorInfo.value,\n errorBoundary:\n null !== boundary && 1 === boundary.tag ? boundary.stateNode : null\n }) && console.error(errorInfo.value);\n } catch (e) {\n setTimeout(function() {\n throw e;\n });\n }\n}\nvar PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map;\nfunction createRootErrorUpdate(fiber, errorInfo, lane) {\n lane = createUpdate(-1, lane);\n lane.tag = 3;\n lane.payload = { element: null };\n var error = errorInfo.value;\n lane.callback = function() {\n hasUncaughtError || ((hasUncaughtError = !0), (firstUncaughtError = error));\n logCapturedError(fiber, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(fiber, errorInfo, lane) {\n lane = createUpdate(-1, lane);\n lane.tag = 3;\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n lane.payload = function() {\n return getDerivedStateFromError(error);\n };\n lane.callback = function() {\n logCapturedError(fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (lane.callback = function() {\n logCapturedError(fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n return lane;\n}\nfunction attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n if (null === pingCache) {\n pingCache = root.pingCache = new PossiblyWeakMap();\n var threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else\n (threadIDs = pingCache.get(wakeable)),\n void 0 === threadIDs &&\n ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n threadIDs.has(lanes) ||\n (threadIDs.add(lanes),\n (root = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n wakeable.then(root, root));\n}\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner,\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n prepareToReadContext(workInProgress, renderLanes);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n ref,\n renderLanes\n );\n if (null !== current && !didReceiveUpdate)\n return (\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.flags &= -2053),\n (current.lanes &= ~renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare &&\n void 0 === Component.defaultProps\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (0 === (current.lanes & renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n 0 !== (current.lanes & renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n if (\"hidden\" === nextProps.mode)\n if (0 === (workInProgress.mode & 1))\n (workInProgress.memoizedState = {\n baseLanes: 0,\n cachePool: null,\n transitions: null\n }),\n push(subtreeRenderLanesCursor, subtreeRenderLanes),\n (subtreeRenderLanes |= renderLanes);\n else {\n if (0 === (renderLanes & 1073741824))\n return (\n (current =\n null !== prevState\n ? prevState.baseLanes | renderLanes\n : renderLanes),\n (workInProgress.lanes = workInProgress.childLanes = 1073741824),\n (workInProgress.memoizedState = {\n baseLanes: current,\n cachePool: null,\n transitions: null\n }),\n (workInProgress.updateQueue = null),\n push(subtreeRenderLanesCursor, subtreeRenderLanes),\n (subtreeRenderLanes |= current),\n null\n );\n workInProgress.memoizedState = {\n baseLanes: 0,\n cachePool: null,\n transitions: null\n };\n nextProps = null !== prevState ? prevState.baseLanes : renderLanes;\n push(subtreeRenderLanesCursor, subtreeRenderLanes);\n subtreeRenderLanes |= nextProps;\n }\n else\n null !== prevState\n ? ((nextProps = prevState.baseLanes | renderLanes),\n (workInProgress.memoizedState = null))\n : (nextProps = renderLanes),\n push(subtreeRenderLanesCursor, subtreeRenderLanes),\n (subtreeRenderLanes |= nextProps);\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (\n (null === current && null !== ref) ||\n (null !== current && current.ref !== ref)\n )\n workInProgress.flags |= 512;\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n var context = isContextProvider(Component)\n ? previousContext\n : contextStackCursor.current;\n context = getMaskedContext(workInProgress, context);\n prepareToReadContext(workInProgress, renderLanes);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n context,\n renderLanes\n );\n if (null !== current && !didReceiveUpdate)\n return (\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.flags &= -2053),\n (current.lanes &= ~renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (isContextProvider(Component)) {\n var hasContext = !0;\n pushContextProvider(workInProgress);\n } else hasContext = !1;\n prepareToReadContext(workInProgress, renderLanes);\n if (null === workInProgress.stateNode)\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress),\n constructClassInstance(workInProgress, Component, nextProps),\n mountClassInstance(workInProgress, Component, nextProps, renderLanes),\n (nextProps = !0);\n else if (null === current) {\n var instance = workInProgress.stateNode,\n oldProps = workInProgress.memoizedProps;\n instance.props = oldProps;\n var oldContext = instance.context,\n contextType = Component.contextType;\n \"object\" === typeof contextType && null !== contextType\n ? (contextType = readContext(contextType))\n : ((contextType = isContextProvider(Component)\n ? previousContext\n : contextStackCursor.current),\n (contextType = getMaskedContext(workInProgress, contextType)));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps,\n hasNewLifecycles =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof instance.getSnapshotBeforeUpdate;\n hasNewLifecycles ||\n (\"function\" !== typeof instance.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof instance.componentWillReceiveProps) ||\n ((oldProps !== nextProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n instance,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n instance.state = oldState;\n processUpdateQueue(workInProgress, nextProps, instance, renderLanes);\n oldContext = workInProgress.memoizedState;\n oldProps !== nextProps ||\n oldState !== oldContext ||\n didPerformWorkStackCursor.current ||\n hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (hasNewLifecycles ||\n (\"function\" !== typeof instance.UNSAFE_componentWillMount &&\n \"function\" !== typeof instance.componentWillMount) ||\n (\"function\" === typeof instance.componentWillMount &&\n instance.componentWillMount(),\n \"function\" === typeof instance.UNSAFE_componentWillMount &&\n instance.UNSAFE_componentWillMount()),\n \"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4))\n : (\"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (instance.props = nextProps),\n (instance.state = oldContext),\n (instance.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4),\n (nextProps = !1));\n } else {\n instance = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n oldProps = workInProgress.memoizedProps;\n contextType =\n workInProgress.type === workInProgress.elementType\n ? oldProps\n : resolveDefaultProps(workInProgress.type, oldProps);\n instance.props = contextType;\n hasNewLifecycles = workInProgress.pendingProps;\n oldState = instance.context;\n oldContext = Component.contextType;\n \"object\" === typeof oldContext && null !== oldContext\n ? (oldContext = readContext(oldContext))\n : ((oldContext = isContextProvider(Component)\n ? previousContext\n : contextStackCursor.current),\n (oldContext = getMaskedContext(workInProgress, oldContext)));\n var getDerivedStateFromProps$jscomp$0 = Component.getDerivedStateFromProps;\n (getDerivedStateFromProps =\n \"function\" === typeof getDerivedStateFromProps$jscomp$0 ||\n \"function\" === typeof instance.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof instance.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof instance.componentWillReceiveProps) ||\n ((oldProps !== hasNewLifecycles || oldState !== oldContext) &&\n callComponentWillReceiveProps(\n workInProgress,\n instance,\n nextProps,\n oldContext\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n instance.state = oldState;\n processUpdateQueue(workInProgress, nextProps, instance, renderLanes);\n var newState = workInProgress.memoizedState;\n oldProps !== hasNewLifecycles ||\n oldState !== newState ||\n didPerformWorkStackCursor.current ||\n hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps$jscomp$0 &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps$jscomp$0,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType,\n nextProps,\n oldState,\n newState,\n oldContext\n ) ||\n !1)\n ? (getDerivedStateFromProps ||\n (\"function\" !== typeof instance.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof instance.componentWillUpdate) ||\n (\"function\" === typeof instance.componentWillUpdate &&\n instance.componentWillUpdate(nextProps, newState, oldContext),\n \"function\" === typeof instance.UNSAFE_componentWillUpdate &&\n instance.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldContext\n )),\n \"function\" === typeof instance.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof instance.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof instance.componentDidUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof instance.getSnapshotBeforeUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (instance.props = nextProps),\n (instance.state = newState),\n (instance.context = oldContext),\n (nextProps = contextType))\n : (\"function\" !== typeof instance.componentDidUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof instance.getSnapshotBeforeUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n return finishClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n hasContext,\n renderLanes\n );\n}\nfunction finishClassComponent(\n current,\n workInProgress,\n Component,\n shouldUpdate,\n hasContext,\n renderLanes\n) {\n markRef(current, workInProgress);\n var didCaptureError = 0 !== (workInProgress.flags & 128);\n if (!shouldUpdate && !didCaptureError)\n return (\n hasContext && invalidateContextProvider(workInProgress, Component, !1),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n shouldUpdate = workInProgress.stateNode;\n ReactCurrentOwner$1.current = workInProgress;\n var nextChildren =\n didCaptureError && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : shouldUpdate.render();\n workInProgress.flags |= 1;\n null !== current && didCaptureError\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n nextChildren,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n workInProgress.memoizedState = shouldUpdate.state;\n hasContext && invalidateContextProvider(workInProgress, Component, !0);\n return workInProgress.child;\n}\nfunction pushHostRootContext(workInProgress) {\n var root = workInProgress.stateNode;\n root.pendingContext\n ? pushTopLevelContextObject(\n workInProgress,\n root.pendingContext,\n root.pendingContext !== root.context\n )\n : root.context &&\n pushTopLevelContextObject(workInProgress, root.context, !1);\n pushHostContainer(workInProgress, root.containerInfo);\n}\nvar SUSPENDED_MARKER = { dehydrated: null, treeContext: null, retryLane: 0 };\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: null, transitions: null };\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n suspenseContext = suspenseStackCursor.current,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseContext & 2));\n if (JSCompiler_temp) (showFallback = !0), (workInProgress.flags &= -129);\n else if (null === current || null !== current.memoizedState)\n suspenseContext |= 1;\n push(suspenseStackCursor, suspenseContext & 1);\n if (null === current) {\n current = workInProgress.memoizedState;\n if (null !== current && null !== current.dehydrated)\n return (\n 0 === (workInProgress.mode & 1)\n ? (workInProgress.lanes = 1)\n : shim$1()\n ? (workInProgress.lanes = 8)\n : (workInProgress.lanes = 1073741824),\n null\n );\n didSuspend = nextProps.children;\n current = nextProps.fallback;\n return showFallback\n ? ((nextProps = workInProgress.mode),\n (showFallback = workInProgress.child),\n (didSuspend = { mode: \"hidden\", children: didSuspend }),\n 0 === (nextProps & 1) && null !== showFallback\n ? ((showFallback.childLanes = 0),\n (showFallback.pendingProps = didSuspend))\n : (showFallback = createFiberFromOffscreen(\n didSuspend,\n nextProps,\n 0,\n null\n )),\n (current = createFiberFromFragment(\n current,\n nextProps,\n renderLanes,\n null\n )),\n (showFallback.return = workInProgress),\n (current.return = workInProgress),\n (showFallback.sibling = current),\n (workInProgress.child = showFallback),\n (workInProgress.child.memoizedState = mountSuspenseOffscreenState(\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n current)\n : mountSuspensePrimaryChildren(workInProgress, didSuspend);\n }\n suspenseContext = current.memoizedState;\n if (\n null !== suspenseContext &&\n ((JSCompiler_temp = suspenseContext.dehydrated), null !== JSCompiler_temp)\n )\n return updateDehydratedSuspenseComponent(\n current,\n workInProgress,\n didSuspend,\n nextProps,\n JSCompiler_temp,\n suspenseContext,\n renderLanes\n );\n if (showFallback) {\n showFallback = nextProps.fallback;\n didSuspend = workInProgress.mode;\n suspenseContext = current.child;\n JSCompiler_temp = suspenseContext.sibling;\n var primaryChildProps = { mode: \"hidden\", children: nextProps.children };\n 0 === (didSuspend & 1) && workInProgress.child !== suspenseContext\n ? ((nextProps = workInProgress.child),\n (nextProps.childLanes = 0),\n (nextProps.pendingProps = primaryChildProps),\n (workInProgress.deletions = null))\n : ((nextProps = createWorkInProgress(suspenseContext, primaryChildProps)),\n (nextProps.subtreeFlags = suspenseContext.subtreeFlags & 14680064));\n null !== JSCompiler_temp\n ? (showFallback = createWorkInProgress(JSCompiler_temp, showFallback))\n : ((showFallback = createFiberFromFragment(\n showFallback,\n didSuspend,\n renderLanes,\n null\n )),\n (showFallback.flags |= 2));\n showFallback.return = workInProgress;\n nextProps.return = workInProgress;\n nextProps.sibling = showFallback;\n workInProgress.child = nextProps;\n nextProps = showFallback;\n showFallback = workInProgress.child;\n didSuspend = current.child.memoizedState;\n didSuspend =\n null === didSuspend\n ? mountSuspenseOffscreenState(renderLanes)\n : {\n baseLanes: didSuspend.baseLanes | renderLanes,\n cachePool: null,\n transitions: didSuspend.transitions\n };\n showFallback.memoizedState = didSuspend;\n showFallback.childLanes = current.childLanes & ~renderLanes;\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return nextProps;\n }\n showFallback = current.child;\n current = showFallback.sibling;\n nextProps = createWorkInProgress(showFallback, {\n mode: \"visible\",\n children: nextProps.children\n });\n 0 === (workInProgress.mode & 1) && (nextProps.lanes = renderLanes);\n nextProps.return = workInProgress;\n nextProps.sibling = null;\n null !== current &&\n ((renderLanes = workInProgress.deletions),\n null === renderLanes\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : renderLanes.push(current));\n workInProgress.child = nextProps;\n workInProgress.memoizedState = null;\n return nextProps;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = createFiberFromOffscreen(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode,\n 0,\n null\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n recoverableError\n) {\n null !== recoverableError &&\n (null === hydrationErrors\n ? (hydrationErrors = [recoverableError])\n : hydrationErrors.push(recoverableError));\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction updateDehydratedSuspenseComponent(\n current,\n workInProgress,\n didSuspend,\n nextProps,\n suspenseInstance,\n suspenseState,\n renderLanes\n) {\n if (didSuspend) {\n if (workInProgress.flags & 256)\n return (\n (workInProgress.flags &= -257),\n (suspenseState = createCapturedValue(\n Error(\n \"There was an error while hydrating this Suspense boundary. Switched to client rendering.\"\n )\n )),\n retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n suspenseState\n )\n );\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n null\n );\n suspenseState = nextProps.fallback;\n didSuspend = workInProgress.mode;\n nextProps = createFiberFromOffscreen(\n { mode: \"visible\", children: nextProps.children },\n didSuspend,\n 0,\n null\n );\n suspenseState = createFiberFromFragment(\n suspenseState,\n didSuspend,\n renderLanes,\n null\n );\n suspenseState.flags |= 2;\n nextProps.return = workInProgress;\n suspenseState.return = workInProgress;\n nextProps.sibling = suspenseState;\n workInProgress.child = nextProps;\n 0 !== (workInProgress.mode & 1) &&\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n workInProgress.child.memoizedState = mountSuspenseOffscreenState(\n renderLanes\n );\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return suspenseState;\n }\n if (0 === (workInProgress.mode & 1))\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n null\n );\n if (shim$1())\n return (\n (suspenseState = shim$1().digest),\n (suspenseState = createCapturedValue(\n Error(\n \"The server could not finish this Suspense boundary, likely due to an error during server rendering. Switched to client rendering.\"\n ),\n suspenseState,\n void 0\n )),\n retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n suspenseState\n )\n );\n didSuspend = 0 !== (renderLanes & current.childLanes);\n if (didReceiveUpdate || didSuspend) {\n nextProps = workInProgressRoot;\n if (null !== nextProps) {\n switch (renderLanes & -renderLanes) {\n case 4:\n didSuspend = 2;\n break;\n case 16:\n didSuspend = 8;\n break;\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n didSuspend = 32;\n break;\n case 536870912:\n didSuspend = 268435456;\n break;\n default:\n didSuspend = 0;\n }\n didSuspend =\n 0 !== (didSuspend & (nextProps.suspendedLanes | renderLanes))\n ? 0\n : didSuspend;\n 0 !== didSuspend &&\n didSuspend !== suspenseState.retryLane &&\n ((suspenseState.retryLane = didSuspend),\n markUpdateLaneFromFiberToRoot(current, didSuspend),\n scheduleUpdateOnFiber(nextProps, current, didSuspend, -1));\n }\n renderDidSuspendDelayIfPossible();\n suspenseState = createCapturedValue(\n Error(\n \"This Suspense boundary received an update before it finished hydrating. This caused the boundary to switch to client rendering. The usual way to fix this is to wrap the original update in startTransition.\"\n )\n );\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n suspenseState\n );\n }\n if (shim$1())\n return (\n (workInProgress.flags |= 128),\n (workInProgress.child = current.child),\n retryDehydratedSuspenseBoundary.bind(null, current),\n shim$1(),\n null\n );\n current = mountSuspensePrimaryChildren(workInProgress, nextProps.children);\n current.flags |= 4096;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n reconcileChildren(current, workInProgress, nextProps.children, renderLanes);\n nextProps = suspenseStackCursor.current;\n if (0 !== (nextProps & 2))\n (nextProps = (nextProps & 1) | 2), (workInProgress.flags |= 128);\n else {\n if (null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n nextProps &= 1;\n }\n push(suspenseStackCursor, nextProps);\n if (0 === (workInProgress.mode & 1)) workInProgress.memoizedState = null;\n else\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child),\n (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode\n );\n break;\n case \"backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode\n );\n break;\n case \"together\":\n initSuspenseListRenderState(workInProgress, !1, null, null, void 0);\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress) {\n 0 === (workInProgress.mode & 1) &&\n null !== current &&\n ((current.alternate = null),\n (workInProgress.alternate = null),\n (workInProgress.flags |= 2));\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes)) return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(\"Resuming work not yet implemented.\");\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling = createWorkInProgress(\n current,\n current.pendingProps\n )),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostRootContext(workInProgress);\n break;\n case 5:\n pushHostContext(workInProgress);\n break;\n case 1:\n isContextProvider(workInProgress.type) &&\n pushContextProvider(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n var context = workInProgress.type._context,\n nextValue = workInProgress.memoizedProps.value;\n push(valueCursor, context._currentValue2);\n context._currentValue2 = nextValue;\n break;\n case 13:\n context = workInProgress.memoizedState;\n if (null !== context) {\n if (null !== context.dehydrated)\n return (\n push(suspenseStackCursor, suspenseStackCursor.current & 1),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n break;\n case 19:\n context = 0 !== (renderLanes & workInProgress.childLanes);\n if (0 !== (current.flags & 128)) {\n if (context)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n nextValue = workInProgress.memoizedState;\n null !== nextValue &&\n ((nextValue.rendering = null),\n (nextValue.tail = null),\n (nextValue.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (context) break;\n else return null;\n case 22:\n case 23:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(current, workInProgress, renderLanes)\n );\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction hadNoMutationsEffects(current, completedWork) {\n if (null !== current && current.child === completedWork.child) return !0;\n if (0 !== (completedWork.flags & 16)) return !1;\n for (current = completedWork.child; null !== current; ) {\n if (0 !== (current.flags & 12854) || 0 !== (current.subtreeFlags & 12854))\n return !1;\n current = current.sibling;\n }\n return !0;\n}\nvar appendAllChildren,\n updateHostContainer,\n updateHostComponent$1,\n updateHostText$1;\nappendAllChildren = function(\n parent,\n workInProgress,\n needsVisibilityToggle,\n isHidden\n) {\n for (var node = workInProgress.child; null !== node; ) {\n if (5 === node.tag) {\n var instance = node.stateNode;\n needsVisibilityToggle &&\n isHidden &&\n (instance = cloneHiddenInstance(instance));\n appendChildNode(parent.node, instance.node);\n } else if (6 === node.tag) {\n instance = node.stateNode;\n if (needsVisibilityToggle && isHidden)\n throw Error(\"Not yet implemented.\");\n appendChildNode(parent.node, instance.node);\n } else if (4 !== node.tag)\n if (22 === node.tag && null !== node.memoizedState)\n (instance = node.child),\n null !== instance && (instance.return = node),\n appendAllChildren(parent, node, !0, !0);\n else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === workInProgress) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === workInProgress) return;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n};\nfunction appendAllChildrenToContainer(\n containerChildSet,\n workInProgress,\n needsVisibilityToggle,\n isHidden\n) {\n for (var node = workInProgress.child; null !== node; ) {\n if (5 === node.tag) {\n var instance = node.stateNode;\n needsVisibilityToggle &&\n isHidden &&\n (instance = cloneHiddenInstance(instance));\n appendChildNodeToSet(containerChildSet, instance.node);\n } else if (6 === node.tag) {\n instance = node.stateNode;\n if (needsVisibilityToggle && isHidden)\n throw Error(\"Not yet implemented.\");\n appendChildNodeToSet(containerChildSet, instance.node);\n } else if (4 !== node.tag)\n if (22 === node.tag && null !== node.memoizedState)\n (instance = node.child),\n null !== instance && (instance.return = node),\n appendAllChildrenToContainer(containerChildSet, node, !0, !0);\n else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === workInProgress) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === workInProgress) return;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n}\nupdateHostContainer = function(current, workInProgress) {\n var portalOrRoot = workInProgress.stateNode;\n if (!hadNoMutationsEffects(current, workInProgress)) {\n current = portalOrRoot.containerInfo;\n var newChildSet = createChildNodeSet(current);\n appendAllChildrenToContainer(newChildSet, workInProgress, !1, !1);\n portalOrRoot.pendingChildren = newChildSet;\n workInProgress.flags |= 4;\n completeRoot(current, newChildSet);\n }\n};\nupdateHostComponent$1 = function(current, workInProgress, type, newProps) {\n type = current.stateNode;\n var oldProps = current.memoizedProps;\n if (\n (current = hadNoMutationsEffects(current, workInProgress)) &&\n oldProps === newProps\n )\n workInProgress.stateNode = type;\n else {\n var recyclableInstance = workInProgress.stateNode;\n requiredContext(contextStackCursor$1.current);\n var updatePayload = null;\n oldProps !== newProps &&\n ((oldProps = diffProperties(\n null,\n oldProps,\n newProps,\n recyclableInstance.canonical.viewConfig.validAttributes\n )),\n (recyclableInstance.canonical.currentProps = newProps),\n (updatePayload = oldProps));\n current && null === updatePayload\n ? (workInProgress.stateNode = type)\n : ((newProps = updatePayload),\n (oldProps = type.node),\n (type = {\n node: current\n ? null !== newProps\n ? cloneNodeWithNewProps(oldProps, newProps)\n : cloneNode(oldProps)\n : null !== newProps\n ? cloneNodeWithNewChildrenAndProps(oldProps, newProps)\n : cloneNodeWithNewChildren(oldProps),\n canonical: type.canonical\n }),\n (workInProgress.stateNode = type),\n current\n ? (workInProgress.flags |= 4)\n : appendAllChildren(type, workInProgress, !1, !1));\n }\n};\nupdateHostText$1 = function(current, workInProgress, oldText, newText) {\n oldText !== newText\n ? ((current = requiredContext(rootInstanceStackCursor.current)),\n (oldText = requiredContext(contextStackCursor$1.current)),\n (workInProgress.stateNode = createTextInstance(\n newText,\n current,\n oldText,\n workInProgress\n )),\n (workInProgress.flags |= 4))\n : (workInProgress.stateNode = current.stateNode);\n};\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$62 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$62 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$62\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$62.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$63 = completedWork.child; null !== child$63; )\n (newChildLanes |= child$63.lanes | child$63.childLanes),\n (subtreeFlags |= child$63.subtreeFlags & 14680064),\n (subtreeFlags |= child$63.flags & 14680064),\n (child$63.return = completedWork),\n (child$63 = child$63.sibling);\n else\n for (child$63 = completedWork.child; null !== child$63; )\n (newChildLanes |= child$63.lanes | child$63.childLanes),\n (subtreeFlags |= child$63.subtreeFlags),\n (subtreeFlags |= child$63.flags),\n (child$63.return = completedWork),\n (child$63 = child$63.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 2:\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return (\n isContextProvider(workInProgress.type) && popContext(),\n bubbleProperties(workInProgress),\n null\n );\n case 3:\n return (\n (renderLanes = workInProgress.stateNode),\n popHostContainer(),\n pop(didPerformWorkStackCursor),\n pop(contextStackCursor),\n resetWorkInProgressVersions(),\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null)),\n (null !== current && null !== current.child) ||\n null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n null !== hydrationErrors &&\n (queueRecoverableErrors(hydrationErrors),\n (hydrationErrors = null))),\n updateHostContainer(current, workInProgress),\n bubbleProperties(workInProgress),\n null\n );\n case 5:\n popHostContext(workInProgress);\n renderLanes = requiredContext(rootInstanceStackCursor.current);\n var type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n updateHostComponent$1(\n current,\n workInProgress,\n type,\n newProps,\n renderLanes\n ),\n current.ref !== workInProgress.ref && (workInProgress.flags |= 512);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(\n \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\"\n );\n bubbleProperties(workInProgress);\n return null;\n }\n requiredContext(contextStackCursor$1.current);\n current = nextReactTag;\n nextReactTag += 2;\n type = getViewConfigForType(type);\n var updatePayload = diffProperties(\n null,\n emptyObject,\n newProps,\n type.validAttributes\n );\n renderLanes = createNode(\n current,\n type.uiViewClassName,\n renderLanes,\n updatePayload,\n workInProgress\n );\n current = new ReactFabricHostComponent(\n current,\n type,\n newProps,\n workInProgress\n );\n current = { node: renderLanes, canonical: current };\n appendAllChildren(current, workInProgress, !1, !1);\n workInProgress.stateNode = current;\n null !== workInProgress.ref && (workInProgress.flags |= 512);\n }\n bubbleProperties(workInProgress);\n return null;\n case 6:\n if (current && null != workInProgress.stateNode)\n updateHostText$1(\n current,\n workInProgress,\n current.memoizedProps,\n newProps\n );\n else {\n if (\"string\" !== typeof newProps && null === workInProgress.stateNode)\n throw Error(\n \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\"\n );\n current = requiredContext(rootInstanceStackCursor.current);\n renderLanes = requiredContext(contextStackCursor$1.current);\n workInProgress.stateNode = createTextInstance(\n newProps,\n current,\n renderLanes,\n workInProgress\n );\n }\n bubbleProperties(workInProgress);\n return null;\n case 13:\n pop(suspenseStackCursor);\n newProps = workInProgress.memoizedState;\n if (\n null === current ||\n (null !== current.memoizedState &&\n null !== current.memoizedState.dehydrated)\n ) {\n if (null !== newProps && null !== newProps.dehydrated) {\n if (null === current) {\n throw Error(\n \"A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.\"\n );\n throw Error(\n \"Expected prepareToHydrateHostSuspenseInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null);\n workInProgress.flags |= 4;\n bubbleProperties(workInProgress);\n type = !1;\n } else\n null !== hydrationErrors &&\n (queueRecoverableErrors(hydrationErrors), (hydrationErrors = null)),\n (type = !0);\n if (!type) return workInProgress.flags & 65536 ? workInProgress : null;\n }\n if (0 !== (workInProgress.flags & 128))\n return (workInProgress.lanes = renderLanes), workInProgress;\n renderLanes = null !== newProps;\n renderLanes !== (null !== current && null !== current.memoizedState) &&\n renderLanes &&\n ((workInProgress.child.flags |= 8192),\n 0 !== (workInProgress.mode & 1) &&\n (null === current || 0 !== (suspenseStackCursor.current & 1)\n ? 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3)\n : renderDidSuspendDelayIfPossible()));\n null !== workInProgress.updateQueue && (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n return null;\n case 4:\n return (\n popHostContainer(),\n updateHostContainer(current, workInProgress),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type._context),\n bubbleProperties(workInProgress),\n null\n );\n case 17:\n return (\n isContextProvider(workInProgress.type) && popContext(),\n bubbleProperties(workInProgress),\n null\n );\n case 19:\n pop(suspenseStackCursor);\n type = workInProgress.memoizedState;\n if (null === type) return bubbleProperties(workInProgress), null;\n newProps = 0 !== (workInProgress.flags & 128);\n updatePayload = type.rendering;\n if (null === updatePayload)\n if (newProps) cutOffTailIfNeeded(type, !1);\n else {\n if (\n 0 !== workInProgressRootExitStatus ||\n (null !== current && 0 !== (current.flags & 128))\n )\n for (current = workInProgress.child; null !== current; ) {\n updatePayload = findFirstSuspended(current);\n if (null !== updatePayload) {\n workInProgress.flags |= 128;\n cutOffTailIfNeeded(type, !1);\n current = updatePayload.updateQueue;\n null !== current &&\n ((workInProgress.updateQueue = current),\n (workInProgress.flags |= 4));\n workInProgress.subtreeFlags = 0;\n current = renderLanes;\n for (renderLanes = workInProgress.child; null !== renderLanes; )\n (newProps = renderLanes),\n (type = current),\n (newProps.flags &= 14680066),\n (updatePayload = newProps.alternate),\n null === updatePayload\n ? ((newProps.childLanes = 0),\n (newProps.lanes = type),\n (newProps.child = null),\n (newProps.subtreeFlags = 0),\n (newProps.memoizedProps = null),\n (newProps.memoizedState = null),\n (newProps.updateQueue = null),\n (newProps.dependencies = null),\n (newProps.stateNode = null))\n : ((newProps.childLanes = updatePayload.childLanes),\n (newProps.lanes = updatePayload.lanes),\n (newProps.child = updatePayload.child),\n (newProps.subtreeFlags = 0),\n (newProps.deletions = null),\n (newProps.memoizedProps = updatePayload.memoizedProps),\n (newProps.memoizedState = updatePayload.memoizedState),\n (newProps.updateQueue = updatePayload.updateQueue),\n (newProps.type = updatePayload.type),\n (type = updatePayload.dependencies),\n (newProps.dependencies =\n null === type\n ? null\n : {\n lanes: type.lanes,\n firstContext: type.firstContext\n })),\n (renderLanes = renderLanes.sibling);\n push(\n suspenseStackCursor,\n (suspenseStackCursor.current & 1) | 2\n );\n return workInProgress.child;\n }\n current = current.sibling;\n }\n null !== type.tail &&\n now() > workInProgressRootRenderTargetTime &&\n ((workInProgress.flags |= 128),\n (newProps = !0),\n cutOffTailIfNeeded(type, !1),\n (workInProgress.lanes = 4194304));\n }\n else {\n if (!newProps)\n if (\n ((current = findFirstSuspended(updatePayload)), null !== current)\n ) {\n if (\n ((workInProgress.flags |= 128),\n (newProps = !0),\n (current = current.updateQueue),\n null !== current &&\n ((workInProgress.updateQueue = current),\n (workInProgress.flags |= 4)),\n cutOffTailIfNeeded(type, !0),\n null === type.tail &&\n \"hidden\" === type.tailMode &&\n !updatePayload.alternate)\n )\n return bubbleProperties(workInProgress), null;\n } else\n 2 * now() - type.renderingStartTime >\n workInProgressRootRenderTargetTime &&\n 1073741824 !== renderLanes &&\n ((workInProgress.flags |= 128),\n (newProps = !0),\n cutOffTailIfNeeded(type, !1),\n (workInProgress.lanes = 4194304));\n type.isBackwards\n ? ((updatePayload.sibling = workInProgress.child),\n (workInProgress.child = updatePayload))\n : ((current = type.last),\n null !== current\n ? (current.sibling = updatePayload)\n : (workInProgress.child = updatePayload),\n (type.last = updatePayload));\n }\n if (null !== type.tail)\n return (\n (workInProgress = type.tail),\n (type.rendering = workInProgress),\n (type.tail = workInProgress.sibling),\n (type.renderingStartTime = now()),\n (workInProgress.sibling = null),\n (current = suspenseStackCursor.current),\n push(suspenseStackCursor, newProps ? (current & 1) | 2 : current & 1),\n workInProgress\n );\n bubbleProperties(workInProgress);\n return null;\n case 22:\n case 23:\n return (\n popRenderLanes(),\n (renderLanes = null !== workInProgress.memoizedState),\n null !== current &&\n (null !== current.memoizedState) !== renderLanes &&\n (workInProgress.flags |= 8192),\n renderLanes && 0 !== (workInProgress.mode & 1)\n ? 0 !== (subtreeRenderLanes & 1073741824) &&\n bubbleProperties(workInProgress)\n : bubbleProperties(workInProgress),\n null\n );\n case 24:\n return null;\n case 25:\n return null;\n }\n throw Error(\n \"Unknown unit of work tag (\" +\n workInProgress.tag +\n \"). This error is likely caused by a bug in React. Please file an issue.\"\n );\n}\nfunction unwindWork(current, workInProgress) {\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 1:\n return (\n isContextProvider(workInProgress.type) && popContext(),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 3:\n return (\n popHostContainer(),\n pop(didPerformWorkStackCursor),\n pop(contextStackCursor),\n resetWorkInProgressVersions(),\n (current = workInProgress.flags),\n 0 !== (current & 65536) && 0 === (current & 128)\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 5:\n return popHostContext(workInProgress), null;\n case 13:\n pop(suspenseStackCursor);\n current = workInProgress.memoizedState;\n if (\n null !== current &&\n null !== current.dehydrated &&\n null === workInProgress.alternate\n )\n throw Error(\n \"Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.\"\n );\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 19:\n return pop(suspenseStackCursor), null;\n case 4:\n return popHostContainer(), null;\n case 10:\n return popProvider(workInProgress.type._context), null;\n case 22:\n case 23:\n return popRenderLanes(), null;\n case 24:\n return null;\n default:\n return null;\n }\n}\nvar PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null;\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref;\n if (null !== ref)\n if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n else ref.current = null;\n}\nfunction safelyCallDestroy(current, nearestMountedAncestor, destroy) {\n try {\n destroy();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nvar shouldFireAfterActiveInstanceBlur = !1;\nfunction commitBeforeMutationEffects(root, firstChild) {\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((root = nextEffect),\n (firstChild = root.child),\n 0 !== (root.subtreeFlags & 1028) && null !== firstChild)\n )\n (firstChild.return = root), (nextEffect = firstChild);\n else\n for (; null !== nextEffect; ) {\n root = nextEffect;\n try {\n var current = root.alternate;\n if (0 !== (root.flags & 1024))\n switch (root.tag) {\n case 0:\n case 11:\n case 15:\n break;\n case 1:\n if (null !== current) {\n var prevProps = current.memoizedProps,\n prevState = current.memoizedState,\n instance = root.stateNode,\n snapshot = instance.getSnapshotBeforeUpdate(\n root.elementType === root.type\n ? prevProps\n : resolveDefaultProps(root.type, prevProps),\n prevState\n );\n instance.__reactInternalSnapshotBeforeUpdate = snapshot;\n }\n break;\n case 3:\n break;\n case 5:\n case 6:\n case 4:\n case 17:\n break;\n default:\n throw Error(\n \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n } catch (error) {\n captureCommitPhaseError(root, root.return, error);\n }\n firstChild = root.sibling;\n if (null !== firstChild) {\n firstChild.return = root.return;\n nextEffect = firstChild;\n break;\n }\n nextEffect = root.return;\n }\n current = shouldFireAfterActiveInstanceBlur;\n shouldFireAfterActiveInstanceBlur = !1;\n return current;\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor\n) {\n var updateQueue = finishedWork.updateQueue;\n updateQueue = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== updateQueue) {\n var effect = (updateQueue = updateQueue.next);\n do {\n if ((effect.tag & flags) === flags) {\n var destroy = effect.destroy;\n effect.destroy = void 0;\n void 0 !== destroy &&\n safelyCallDestroy(finishedWork, nearestMountedAncestor, destroy);\n }\n effect = effect.next;\n } while (effect !== updateQueue);\n }\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n finishedWork = finishedWork.updateQueue;\n finishedWork = null !== finishedWork ? finishedWork.lastEffect : null;\n if (null !== finishedWork) {\n var effect = (finishedWork = finishedWork.next);\n do {\n if ((effect.tag & flags) === flags) {\n var create$75 = effect.create;\n effect.destroy = create$75();\n }\n effect = effect.next;\n } while (effect !== finishedWork);\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 5:\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 18:\n break;\n case 4:\n createChildNodeSet(deletedFiber.stateNode.containerInfo);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n var updateQueue = deletedFiber.updateQueue;\n if (\n null !== updateQueue &&\n ((updateQueue = updateQueue.lastEffect), null !== updateQueue)\n ) {\n var effect = (updateQueue = updateQueue.next);\n do {\n var _effect = effect,\n destroy = _effect.destroy;\n _effect = _effect.tag;\n void 0 !== destroy &&\n (0 !== (_effect & 2)\n ? safelyCallDestroy(deletedFiber, nearestMountedAncestor, destroy)\n : 0 !== (_effect & 4) &&\n safelyCallDestroy(\n deletedFiber,\n nearestMountedAncestor,\n destroy\n ));\n effect = effect.next;\n } while (effect !== updateQueue);\n }\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n updateQueue = deletedFiber.stateNode;\n if (\"function\" === typeof updateQueue.componentWillUnmount)\n try {\n (updateQueue.props = deletedFiber.memoizedProps),\n (updateQueue.state = deletedFiber.memoizedState),\n updateQueue.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(deletedFiber, nearestMountedAncestor, error);\n }\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork) {\n var wakeables = finishedWork.updateQueue;\n if (null !== wakeables) {\n finishedWork.updateQueue = null;\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n wakeables.forEach(function(wakeable) {\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n retryCache.has(wakeable) ||\n (retryCache.add(wakeable), wakeable.then(retry, retry));\n });\n }\n}\nfunction recursivelyTraverseMutationEffects(root, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n try {\n commitDeletionEffectsOnFiber(root, parentFiber, childToDelete);\n var alternate = childToDelete.alternate;\n null !== alternate && (alternate.return = null);\n childToDelete.return = null;\n } catch (error) {\n captureCommitPhaseError(childToDelete, parentFiber, error);\n }\n }\n if (parentFiber.subtreeFlags & 12854)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n try {\n commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n try {\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return);\n } catch (error$79) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error$79);\n }\n }\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n null !== current &&\n safelyDetachRef(current, current.return);\n break;\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n null !== current &&\n safelyDetachRef(current, current.return);\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 3:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 4:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n root = finishedWork.child;\n root.flags & 8192 &&\n ((current = null !== root.memoizedState),\n (root.stateNode.isHidden = current),\n !current ||\n (null !== root.alternate && null !== root.alternate.memoizedState) ||\n (globalMostRecentFallbackTime = now()));\n flags & 4 && attachSuspenseRetryListeners(finishedWork);\n break;\n case 22:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 8192 &&\n (finishedWork.stateNode.isHidden = null !== finishedWork.memoizedState);\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 && attachSuspenseRetryListeners(finishedWork);\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n flags & 2 && (finishedWork.flags &= -3);\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction commitLayoutEffects(finishedWork) {\n for (nextEffect = finishedWork; null !== nextEffect; ) {\n var fiber = nextEffect,\n firstChild = fiber.child;\n if (0 !== (fiber.subtreeFlags & 8772) && null !== firstChild)\n (firstChild.return = fiber), (nextEffect = firstChild);\n else\n for (fiber = finishedWork; null !== nextEffect; ) {\n firstChild = nextEffect;\n if (0 !== (firstChild.flags & 8772)) {\n var current = firstChild.alternate;\n try {\n if (0 !== (firstChild.flags & 8772))\n switch (firstChild.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListMount(5, firstChild);\n break;\n case 1:\n var instance = firstChild.stateNode;\n if (firstChild.flags & 4)\n if (null === current) instance.componentDidMount();\n else {\n var prevProps =\n firstChild.elementType === firstChild.type\n ? current.memoizedProps\n : resolveDefaultProps(\n firstChild.type,\n current.memoizedProps\n );\n instance.componentDidUpdate(\n prevProps,\n current.memoizedState,\n instance.__reactInternalSnapshotBeforeUpdate\n );\n }\n var updateQueue = firstChild.updateQueue;\n null !== updateQueue &&\n commitUpdateQueue(firstChild, updateQueue, instance);\n break;\n case 3:\n var updateQueue$76 = firstChild.updateQueue;\n if (null !== updateQueue$76) {\n current = null;\n if (null !== firstChild.child)\n switch (firstChild.child.tag) {\n case 5:\n current = firstChild.child.stateNode.canonical;\n break;\n case 1:\n current = firstChild.child.stateNode;\n }\n commitUpdateQueue(firstChild, updateQueue$76, current);\n }\n break;\n case 5:\n if (null === current && firstChild.flags & 4)\n throw Error(\n \"The current renderer does not support mutation. This error is likely caused by a bug in React. Please file an issue.\"\n );\n break;\n case 6:\n break;\n case 4:\n break;\n case 12:\n break;\n case 13:\n break;\n case 19:\n case 17:\n case 21:\n case 22:\n case 23:\n case 25:\n break;\n default:\n throw Error(\n \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (firstChild.flags & 512) {\n current = void 0;\n var ref = firstChild.ref;\n if (null !== ref) {\n var instance$jscomp$0 = firstChild.stateNode;\n switch (firstChild.tag) {\n case 5:\n current = instance$jscomp$0.canonical;\n break;\n default:\n current = instance$jscomp$0;\n }\n \"function\" === typeof ref\n ? ref(current)\n : (ref.current = current);\n }\n }\n } catch (error) {\n captureCommitPhaseError(firstChild, firstChild.return, error);\n }\n }\n if (firstChild === fiber) {\n nextEffect = null;\n break;\n }\n current = firstChild.sibling;\n if (null !== current) {\n current.return = firstChild.return;\n nextEffect = current;\n break;\n }\n nextEffect = firstChild.return;\n }\n }\n}\nvar ceil = Math.ceil,\n ReactCurrentDispatcher$2 = ReactSharedInternals.ReactCurrentDispatcher,\n ReactCurrentOwner$2 = ReactSharedInternals.ReactCurrentOwner,\n ReactCurrentBatchConfig$2 = ReactSharedInternals.ReactCurrentBatchConfig,\n executionContext = 0,\n workInProgressRoot = null,\n workInProgress = null,\n workInProgressRootRenderLanes = 0,\n subtreeRenderLanes = 0,\n subtreeRenderLanesCursor = createCursor(0),\n workInProgressRootExitStatus = 0,\n workInProgressRootFatalError = null,\n workInProgressRootSkippedLanes = 0,\n workInProgressRootInterleavedUpdatedLanes = 0,\n workInProgressRootPingedLanes = 0,\n workInProgressRootConcurrentErrors = null,\n workInProgressRootRecoverableErrors = null,\n globalMostRecentFallbackTime = 0,\n workInProgressRootRenderTargetTime = Infinity,\n workInProgressTransitions = null,\n hasUncaughtError = !1,\n firstUncaughtError = null,\n legacyErrorBoundariesThatAlreadyFailed = null,\n rootDoesHavePassiveEffects = !1,\n rootWithPendingPassiveEffects = null,\n pendingPassiveEffectsLanes = 0,\n nestedUpdateCount = 0,\n rootWithNestedUpdates = null,\n currentEventTime = -1,\n currentEventTransitionLane = 0;\nfunction requestEventTime() {\n return 0 !== (executionContext & 6)\n ? now()\n : -1 !== currentEventTime\n ? currentEventTime\n : (currentEventTime = now());\n}\nfunction requestUpdateLane(fiber) {\n if (0 === (fiber.mode & 1)) return 1;\n if (0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes)\n return workInProgressRootRenderLanes & -workInProgressRootRenderLanes;\n if (null !== ReactCurrentBatchConfig.transition)\n return (\n 0 === currentEventTransitionLane &&\n (currentEventTransitionLane = claimNextTransitionLane()),\n currentEventTransitionLane\n );\n fiber = currentUpdatePriority;\n if (0 === fiber)\n a: {\n fiber = fabricGetCurrentEventPriority\n ? fabricGetCurrentEventPriority()\n : null;\n if (null != fiber)\n switch (fiber) {\n case FabricDiscretePriority:\n fiber = 1;\n break a;\n }\n fiber = 16;\n }\n return fiber;\n}\nfunction scheduleUpdateOnFiber(root, fiber, lane, eventTime) {\n if (50 < nestedUpdateCount)\n throw ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(\n \"Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\"\n ));\n markRootUpdated(root, lane, eventTime);\n if (0 === (executionContext & 2) || root !== workInProgressRoot)\n root === workInProgressRoot &&\n (0 === (executionContext & 2) &&\n (workInProgressRootInterleavedUpdatedLanes |= lane),\n 4 === workInProgressRootExitStatus &&\n markRootSuspended$1(root, workInProgressRootRenderLanes)),\n ensureRootIsScheduled(root, eventTime),\n 1 === lane &&\n 0 === executionContext &&\n 0 === (fiber.mode & 1) &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n includesLegacySyncCallbacks && flushSyncCallbacks());\n}\nfunction ensureRootIsScheduled(root, currentTime) {\n for (\n var existingCallbackNode = root.callbackNode,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n expirationTimes = root.expirationTimes,\n lanes = root.pendingLanes;\n 0 < lanes;\n\n ) {\n var index$5 = 31 - clz32(lanes),\n lane = 1 << index$5,\n expirationTime = expirationTimes[index$5];\n if (-1 === expirationTime) {\n if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n expirationTimes[index$5] = computeExpirationTime(lane, currentTime);\n } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n lanes &= ~lane;\n }\n suspendedLanes = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes : 0\n );\n if (0 === suspendedLanes)\n null !== existingCallbackNode && cancelCallback(existingCallbackNode),\n (root.callbackNode = null),\n (root.callbackPriority = 0);\n else if (\n ((currentTime = suspendedLanes & -suspendedLanes),\n root.callbackPriority !== currentTime)\n ) {\n null != existingCallbackNode && cancelCallback(existingCallbackNode);\n if (1 === currentTime)\n 0 === root.tag\n ? ((existingCallbackNode = performSyncWorkOnRoot.bind(null, root)),\n (includesLegacySyncCallbacks = !0),\n null === syncQueue\n ? (syncQueue = [existingCallbackNode])\n : syncQueue.push(existingCallbackNode))\n : ((existingCallbackNode = performSyncWorkOnRoot.bind(null, root)),\n null === syncQueue\n ? (syncQueue = [existingCallbackNode])\n : syncQueue.push(existingCallbackNode)),\n scheduleCallback(ImmediatePriority, flushSyncCallbacks),\n (existingCallbackNode = null);\n else {\n switch (lanesToEventPriority(suspendedLanes)) {\n case 1:\n existingCallbackNode = ImmediatePriority;\n break;\n case 4:\n existingCallbackNode = UserBlockingPriority;\n break;\n case 16:\n existingCallbackNode = NormalPriority;\n break;\n case 536870912:\n existingCallbackNode = IdlePriority;\n break;\n default:\n existingCallbackNode = NormalPriority;\n }\n existingCallbackNode = scheduleCallback$1(\n existingCallbackNode,\n performConcurrentWorkOnRoot.bind(null, root)\n );\n }\n root.callbackPriority = currentTime;\n root.callbackNode = existingCallbackNode;\n }\n}\nfunction performConcurrentWorkOnRoot(root, didTimeout) {\n currentEventTime = -1;\n currentEventTransitionLane = 0;\n if (0 !== (executionContext & 6))\n throw Error(\"Should not already be working.\");\n var originalCallbackNode = root.callbackNode;\n if (flushPassiveEffects() && root.callbackNode !== originalCallbackNode)\n return null;\n var lanes = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes : 0\n );\n if (0 === lanes) return null;\n if (0 !== (lanes & 30) || 0 !== (lanes & root.expiredLanes) || didTimeout)\n didTimeout = renderRootSync(root, lanes);\n else {\n didTimeout = lanes;\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher();\n if (\n workInProgressRoot !== root ||\n workInProgressRootRenderLanes !== didTimeout\n )\n (workInProgressTransitions = null),\n (workInProgressRootRenderTargetTime = now() + 500),\n prepareFreshStack(root, didTimeout);\n do\n try {\n workLoopConcurrent();\n break;\n } catch (thrownValue) {\n handleError(root, thrownValue);\n }\n while (1);\n resetContextDependencies();\n ReactCurrentDispatcher$2.current = prevDispatcher;\n executionContext = prevExecutionContext;\n null !== workInProgress\n ? (didTimeout = 0)\n : ((workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0),\n (didTimeout = workInProgressRootExitStatus));\n }\n if (0 !== didTimeout) {\n 2 === didTimeout &&\n ((prevExecutionContext = getLanesToRetrySynchronouslyOnError(root)),\n 0 !== prevExecutionContext &&\n ((lanes = prevExecutionContext),\n (didTimeout = recoverFromConcurrentError(root, prevExecutionContext))));\n if (1 === didTimeout)\n throw ((originalCallbackNode = workInProgressRootFatalError),\n prepareFreshStack(root, 0),\n markRootSuspended$1(root, lanes),\n ensureRootIsScheduled(root, now()),\n originalCallbackNode);\n if (6 === didTimeout) markRootSuspended$1(root, lanes);\n else {\n prevExecutionContext = root.current.alternate;\n if (\n 0 === (lanes & 30) &&\n !isRenderConsistentWithExternalStores(prevExecutionContext) &&\n ((didTimeout = renderRootSync(root, lanes)),\n 2 === didTimeout &&\n ((prevDispatcher = getLanesToRetrySynchronouslyOnError(root)),\n 0 !== prevDispatcher &&\n ((lanes = prevDispatcher),\n (didTimeout = recoverFromConcurrentError(root, prevDispatcher)))),\n 1 === didTimeout)\n )\n throw ((originalCallbackNode = workInProgressRootFatalError),\n prepareFreshStack(root, 0),\n markRootSuspended$1(root, lanes),\n ensureRootIsScheduled(root, now()),\n originalCallbackNode);\n root.finishedWork = prevExecutionContext;\n root.finishedLanes = lanes;\n switch (didTimeout) {\n case 0:\n case 1:\n throw Error(\"Root did not complete. This is a bug in React.\");\n case 2:\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n case 3:\n markRootSuspended$1(root, lanes);\n if (\n (lanes & 130023424) === lanes &&\n ((didTimeout = globalMostRecentFallbackTime + 500 - now()),\n 10 < didTimeout)\n ) {\n if (0 !== getNextLanes(root, 0)) break;\n prevExecutionContext = root.suspendedLanes;\n if ((prevExecutionContext & lanes) !== lanes) {\n requestEventTime();\n root.pingedLanes |= root.suspendedLanes & prevExecutionContext;\n break;\n }\n root.timeoutHandle = scheduleTimeout(\n commitRoot.bind(\n null,\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n ),\n didTimeout\n );\n break;\n }\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n case 4:\n markRootSuspended$1(root, lanes);\n if ((lanes & 4194240) === lanes) break;\n didTimeout = root.eventTimes;\n for (prevExecutionContext = -1; 0 < lanes; ) {\n var index$4 = 31 - clz32(lanes);\n prevDispatcher = 1 << index$4;\n index$4 = didTimeout[index$4];\n index$4 > prevExecutionContext && (prevExecutionContext = index$4);\n lanes &= ~prevDispatcher;\n }\n lanes = prevExecutionContext;\n lanes = now() - lanes;\n lanes =\n (120 > lanes\n ? 120\n : 480 > lanes\n ? 480\n : 1080 > lanes\n ? 1080\n : 1920 > lanes\n ? 1920\n : 3e3 > lanes\n ? 3e3\n : 4320 > lanes\n ? 4320\n : 1960 * ceil(lanes / 1960)) - lanes;\n if (10 < lanes) {\n root.timeoutHandle = scheduleTimeout(\n commitRoot.bind(\n null,\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n ),\n lanes\n );\n break;\n }\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n case 5:\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n default:\n throw Error(\"Unknown root exit status.\");\n }\n }\n }\n ensureRootIsScheduled(root, now());\n return root.callbackNode === originalCallbackNode\n ? performConcurrentWorkOnRoot.bind(null, root)\n : null;\n}\nfunction recoverFromConcurrentError(root, errorRetryLanes) {\n var errorsFromFirstAttempt = workInProgressRootConcurrentErrors;\n root.current.memoizedState.isDehydrated &&\n (prepareFreshStack(root, errorRetryLanes).flags |= 256);\n root = renderRootSync(root, errorRetryLanes);\n 2 !== root &&\n ((errorRetryLanes = workInProgressRootRecoverableErrors),\n (workInProgressRootRecoverableErrors = errorsFromFirstAttempt),\n null !== errorRetryLanes && queueRecoverableErrors(errorRetryLanes));\n return root;\n}\nfunction queueRecoverableErrors(errors) {\n null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = errors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n errors\n );\n}\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n for (var node = finishedWork; ; ) {\n if (node.flags & 16384) {\n var updateQueue = node.updateQueue;\n if (\n null !== updateQueue &&\n ((updateQueue = updateQueue.stores), null !== updateQueue)\n )\n for (var i = 0; i < updateQueue.length; i++) {\n var check = updateQueue[i],\n getSnapshot = check.getSnapshot;\n check = check.value;\n try {\n if (!objectIs(getSnapshot(), check)) return !1;\n } catch (error) {\n return !1;\n }\n }\n }\n updateQueue = node.child;\n if (node.subtreeFlags & 16384 && null !== updateQueue)\n (updateQueue.return = node), (node = updateQueue);\n else {\n if (node === finishedWork) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === finishedWork) return !0;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n return !0;\n}\nfunction markRootSuspended$1(root, suspendedLanes) {\n suspendedLanes &= ~workInProgressRootPingedLanes;\n suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes;\n for (root = root.expirationTimes; 0 < suspendedLanes; ) {\n var index$6 = 31 - clz32(suspendedLanes),\n lane = 1 << index$6;\n root[index$6] = -1;\n suspendedLanes &= ~lane;\n }\n}\nfunction performSyncWorkOnRoot(root) {\n if (0 !== (executionContext & 6))\n throw Error(\"Should not already be working.\");\n flushPassiveEffects();\n var lanes = getNextLanes(root, 0);\n if (0 === (lanes & 1)) return ensureRootIsScheduled(root, now()), null;\n var exitStatus = renderRootSync(root, lanes);\n if (0 !== root.tag && 2 === exitStatus) {\n var errorRetryLanes = getLanesToRetrySynchronouslyOnError(root);\n 0 !== errorRetryLanes &&\n ((lanes = errorRetryLanes),\n (exitStatus = recoverFromConcurrentError(root, errorRetryLanes)));\n }\n if (1 === exitStatus)\n throw ((exitStatus = workInProgressRootFatalError),\n prepareFreshStack(root, 0),\n markRootSuspended$1(root, lanes),\n ensureRootIsScheduled(root, now()),\n exitStatus);\n if (6 === exitStatus)\n throw Error(\"Root did not complete. This is a bug in React.\");\n root.finishedWork = root.current.alternate;\n root.finishedLanes = lanes;\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n ensureRootIsScheduled(root, now());\n return null;\n}\nfunction popRenderLanes() {\n subtreeRenderLanes = subtreeRenderLanesCursor.current;\n pop(subtreeRenderLanesCursor);\n}\nfunction prepareFreshStack(root, lanes) {\n root.finishedWork = null;\n root.finishedLanes = 0;\n var timeoutHandle = root.timeoutHandle;\n -1 !== timeoutHandle &&\n ((root.timeoutHandle = -1), cancelTimeout(timeoutHandle));\n if (null !== workInProgress)\n for (timeoutHandle = workInProgress.return; null !== timeoutHandle; ) {\n var interruptedWork = timeoutHandle;\n popTreeContext(interruptedWork);\n switch (interruptedWork.tag) {\n case 1:\n interruptedWork = interruptedWork.type.childContextTypes;\n null !== interruptedWork &&\n void 0 !== interruptedWork &&\n popContext();\n break;\n case 3:\n popHostContainer();\n pop(didPerformWorkStackCursor);\n pop(contextStackCursor);\n resetWorkInProgressVersions();\n break;\n case 5:\n popHostContext(interruptedWork);\n break;\n case 4:\n popHostContainer();\n break;\n case 13:\n pop(suspenseStackCursor);\n break;\n case 19:\n pop(suspenseStackCursor);\n break;\n case 10:\n popProvider(interruptedWork.type._context);\n break;\n case 22:\n case 23:\n popRenderLanes();\n }\n timeoutHandle = timeoutHandle.return;\n }\n workInProgressRoot = root;\n workInProgress = root = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = subtreeRenderLanes = lanes;\n workInProgressRootExitStatus = 0;\n workInProgressRootFatalError = null;\n workInProgressRootPingedLanes = workInProgressRootInterleavedUpdatedLanes = workInProgressRootSkippedLanes = 0;\n workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors = null;\n if (null !== concurrentQueues) {\n for (lanes = 0; lanes < concurrentQueues.length; lanes++)\n if (\n ((timeoutHandle = concurrentQueues[lanes]),\n (interruptedWork = timeoutHandle.interleaved),\n null !== interruptedWork)\n ) {\n timeoutHandle.interleaved = null;\n var firstInterleavedUpdate = interruptedWork.next,\n lastPendingUpdate = timeoutHandle.pending;\n if (null !== lastPendingUpdate) {\n var firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = firstInterleavedUpdate;\n interruptedWork.next = firstPendingUpdate;\n }\n timeoutHandle.pending = interruptedWork;\n }\n concurrentQueues = null;\n }\n return root;\n}\nfunction handleError(root$jscomp$0, thrownValue) {\n do {\n var erroredWork = workInProgress;\n try {\n resetContextDependencies();\n ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n if (didScheduleRenderPhaseUpdate) {\n for (\n var hook = currentlyRenderingFiber$1.memoizedState;\n null !== hook;\n\n ) {\n var queue = hook.queue;\n null !== queue && (queue.pending = null);\n hook = hook.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber$1 = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n ReactCurrentOwner$2.current = null;\n if (null === erroredWork || null === erroredWork.return) {\n workInProgressRootExitStatus = 1;\n workInProgressRootFatalError = thrownValue;\n workInProgress = null;\n break;\n }\n a: {\n var root = root$jscomp$0,\n returnFiber = erroredWork.return,\n sourceFiber = erroredWork,\n value = thrownValue;\n thrownValue = workInProgressRootRenderLanes;\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n var wakeable = value,\n sourceFiber$jscomp$0 = sourceFiber,\n tag = sourceFiber$jscomp$0.tag;\n if (\n 0 === (sourceFiber$jscomp$0.mode & 1) &&\n (0 === tag || 11 === tag || 15 === tag)\n ) {\n var currentSource = sourceFiber$jscomp$0.alternate;\n currentSource\n ? ((sourceFiber$jscomp$0.updateQueue = currentSource.updateQueue),\n (sourceFiber$jscomp$0.memoizedState =\n currentSource.memoizedState),\n (sourceFiber$jscomp$0.lanes = currentSource.lanes))\n : ((sourceFiber$jscomp$0.updateQueue = null),\n (sourceFiber$jscomp$0.memoizedState = null));\n }\n b: {\n sourceFiber$jscomp$0 = returnFiber;\n do {\n var JSCompiler_temp;\n if ((JSCompiler_temp = 13 === sourceFiber$jscomp$0.tag)) {\n var nextState = sourceFiber$jscomp$0.memoizedState;\n JSCompiler_temp =\n null !== nextState\n ? null !== nextState.dehydrated\n ? !0\n : !1\n : !0;\n }\n if (JSCompiler_temp) {\n var suspenseBoundary = sourceFiber$jscomp$0;\n break b;\n }\n sourceFiber$jscomp$0 = sourceFiber$jscomp$0.return;\n } while (null !== sourceFiber$jscomp$0);\n suspenseBoundary = null;\n }\n if (null !== suspenseBoundary) {\n suspenseBoundary.flags &= -257;\n value = suspenseBoundary;\n sourceFiber$jscomp$0 = thrownValue;\n if (0 === (value.mode & 1))\n if (value === returnFiber) value.flags |= 65536;\n else {\n value.flags |= 128;\n sourceFiber.flags |= 131072;\n sourceFiber.flags &= -52805;\n if (1 === sourceFiber.tag)\n if (null === sourceFiber.alternate) sourceFiber.tag = 17;\n else {\n var update = createUpdate(-1, 1);\n update.tag = 2;\n enqueueUpdate(sourceFiber, update, 1);\n }\n sourceFiber.lanes |= 1;\n }\n else (value.flags |= 65536), (value.lanes = sourceFiber$jscomp$0);\n suspenseBoundary.mode & 1 &&\n attachPingListener(root, wakeable, thrownValue);\n thrownValue = suspenseBoundary;\n root = wakeable;\n var wakeables = thrownValue.updateQueue;\n if (null === wakeables) {\n var updateQueue = new Set();\n updateQueue.add(root);\n thrownValue.updateQueue = updateQueue;\n } else wakeables.add(root);\n break a;\n } else {\n if (0 === (thrownValue & 1)) {\n attachPingListener(root, wakeable, thrownValue);\n renderDidSuspendDelayIfPossible();\n break a;\n }\n value = Error(\n \"A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition.\"\n );\n }\n }\n root = value = createCapturedValueAtFiber(value, sourceFiber);\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [root])\n : workInProgressRootConcurrentErrors.push(root);\n root = returnFiber;\n do {\n switch (root.tag) {\n case 3:\n wakeable = value;\n root.flags |= 65536;\n thrownValue &= -thrownValue;\n root.lanes |= thrownValue;\n var update$jscomp$0 = createRootErrorUpdate(\n root,\n wakeable,\n thrownValue\n );\n enqueueCapturedUpdate(root, update$jscomp$0);\n break a;\n case 1:\n wakeable = value;\n var ctor = root.type,\n instance = root.stateNode;\n if (\n 0 === (root.flags & 128) &&\n (\"function\" === typeof ctor.getDerivedStateFromError ||\n (null !== instance &&\n \"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance))))\n ) {\n root.flags |= 65536;\n thrownValue &= -thrownValue;\n root.lanes |= thrownValue;\n var update$32 = createClassErrorUpdate(\n root,\n wakeable,\n thrownValue\n );\n enqueueCapturedUpdate(root, update$32);\n break a;\n }\n }\n root = root.return;\n } while (null !== root);\n }\n completeUnitOfWork(erroredWork);\n } catch (yetAnotherThrownValue) {\n thrownValue = yetAnotherThrownValue;\n workInProgress === erroredWork &&\n null !== erroredWork &&\n (workInProgress = erroredWork = erroredWork.return);\n continue;\n }\n break;\n } while (1);\n}\nfunction pushDispatcher() {\n var prevDispatcher = ReactCurrentDispatcher$2.current;\n ReactCurrentDispatcher$2.current = ContextOnlyDispatcher;\n return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n}\nfunction renderDidSuspendDelayIfPossible() {\n if (\n 0 === workInProgressRootExitStatus ||\n 3 === workInProgressRootExitStatus ||\n 2 === workInProgressRootExitStatus\n )\n workInProgressRootExitStatus = 4;\n null === workInProgressRoot ||\n (0 === (workInProgressRootSkippedLanes & 268435455) &&\n 0 === (workInProgressRootInterleavedUpdatedLanes & 268435455)) ||\n markRootSuspended$1(workInProgressRoot, workInProgressRootRenderLanes);\n}\nfunction renderRootSync(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher();\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes)\n (workInProgressTransitions = null), prepareFreshStack(root, lanes);\n do\n try {\n workLoopSync();\n break;\n } catch (thrownValue) {\n handleError(root, thrownValue);\n }\n while (1);\n resetContextDependencies();\n executionContext = prevExecutionContext;\n ReactCurrentDispatcher$2.current = prevDispatcher;\n if (null !== workInProgress)\n throw Error(\n \"Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue.\"\n );\n workInProgressRoot = null;\n workInProgressRootRenderLanes = 0;\n return workInProgressRootExitStatus;\n}\nfunction workLoopSync() {\n for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n}\nfunction workLoopConcurrent() {\n for (; null !== workInProgress && !shouldYield(); )\n performUnitOfWork(workInProgress);\n}\nfunction performUnitOfWork(unitOfWork) {\n var next = beginWork$1(unitOfWork.alternate, unitOfWork, subtreeRenderLanes);\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n ReactCurrentOwner$2.current = null;\n}\nfunction completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n do {\n var current = completedWork.alternate;\n unitOfWork = completedWork.return;\n if (0 === (completedWork.flags & 32768)) {\n if (\n ((current = completeWork(current, completedWork, subtreeRenderLanes)),\n null !== current)\n ) {\n workInProgress = current;\n return;\n }\n } else {\n current = unwindWork(current, completedWork);\n if (null !== current) {\n current.flags &= 32767;\n workInProgress = current;\n return;\n }\n if (null !== unitOfWork)\n (unitOfWork.flags |= 32768),\n (unitOfWork.subtreeFlags = 0),\n (unitOfWork.deletions = null);\n else {\n workInProgressRootExitStatus = 6;\n workInProgress = null;\n return;\n }\n }\n completedWork = completedWork.sibling;\n if (null !== completedWork) {\n workInProgress = completedWork;\n return;\n }\n workInProgress = completedWork = unitOfWork;\n } while (null !== completedWork);\n 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);\n}\nfunction commitRoot(root, recoverableErrors, transitions) {\n var previousUpdateLanePriority = currentUpdatePriority,\n prevTransition = ReactCurrentBatchConfig$2.transition;\n try {\n (ReactCurrentBatchConfig$2.transition = null),\n (currentUpdatePriority = 1),\n commitRootImpl(\n root,\n recoverableErrors,\n transitions,\n previousUpdateLanePriority\n );\n } finally {\n (ReactCurrentBatchConfig$2.transition = prevTransition),\n (currentUpdatePriority = previousUpdateLanePriority);\n }\n return null;\n}\nfunction commitRootImpl(\n root,\n recoverableErrors,\n transitions,\n renderPriorityLevel\n) {\n do flushPassiveEffects();\n while (null !== rootWithPendingPassiveEffects);\n if (0 !== (executionContext & 6))\n throw Error(\"Should not already be working.\");\n transitions = root.finishedWork;\n var lanes = root.finishedLanes;\n if (null === transitions) return null;\n root.finishedWork = null;\n root.finishedLanes = 0;\n if (transitions === root.current)\n throw Error(\n \"Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.\"\n );\n root.callbackNode = null;\n root.callbackPriority = 0;\n var remainingLanes = transitions.lanes | transitions.childLanes;\n markRootFinished(root, remainingLanes);\n root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n (0 === (transitions.subtreeFlags & 2064) &&\n 0 === (transitions.flags & 2064)) ||\n rootDoesHavePassiveEffects ||\n ((rootDoesHavePassiveEffects = !0),\n scheduleCallback$1(NormalPriority, function() {\n flushPassiveEffects();\n return null;\n }));\n remainingLanes = 0 !== (transitions.flags & 15990);\n if (0 !== (transitions.subtreeFlags & 15990) || remainingLanes) {\n remainingLanes = ReactCurrentBatchConfig$2.transition;\n ReactCurrentBatchConfig$2.transition = null;\n var previousPriority = currentUpdatePriority;\n currentUpdatePriority = 1;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n ReactCurrentOwner$2.current = null;\n commitBeforeMutationEffects(root, transitions);\n commitMutationEffectsOnFiber(transitions, root);\n root.current = transitions;\n commitLayoutEffects(transitions, root, lanes);\n requestPaint();\n executionContext = prevExecutionContext;\n currentUpdatePriority = previousPriority;\n ReactCurrentBatchConfig$2.transition = remainingLanes;\n } else root.current = transitions;\n rootDoesHavePassiveEffects &&\n ((rootDoesHavePassiveEffects = !1),\n (rootWithPendingPassiveEffects = root),\n (pendingPassiveEffectsLanes = lanes));\n remainingLanes = root.pendingLanes;\n 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);\n onCommitRoot(transitions.stateNode, renderPriorityLevel);\n ensureRootIsScheduled(root, now());\n if (null !== recoverableErrors)\n for (\n renderPriorityLevel = root.onRecoverableError, transitions = 0;\n transitions < recoverableErrors.length;\n transitions++\n )\n (lanes = recoverableErrors[transitions]),\n renderPriorityLevel(lanes.value, {\n componentStack: lanes.stack,\n digest: lanes.digest\n });\n if (hasUncaughtError)\n throw ((hasUncaughtError = !1),\n (root = firstUncaughtError),\n (firstUncaughtError = null),\n root);\n 0 !== (pendingPassiveEffectsLanes & 1) &&\n 0 !== root.tag &&\n flushPassiveEffects();\n remainingLanes = root.pendingLanes;\n 0 !== (remainingLanes & 1)\n ? root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n : (nestedUpdateCount = 0);\n flushSyncCallbacks();\n return null;\n}\nfunction flushPassiveEffects() {\n if (null !== rootWithPendingPassiveEffects) {\n var renderPriority = lanesToEventPriority(pendingPassiveEffectsLanes),\n prevTransition = ReactCurrentBatchConfig$2.transition,\n previousPriority = currentUpdatePriority;\n try {\n ReactCurrentBatchConfig$2.transition = null;\n currentUpdatePriority = 16 > renderPriority ? 16 : renderPriority;\n if (null === rootWithPendingPassiveEffects)\n var JSCompiler_inline_result = !1;\n else {\n renderPriority = rootWithPendingPassiveEffects;\n rootWithPendingPassiveEffects = null;\n pendingPassiveEffectsLanes = 0;\n if (0 !== (executionContext & 6))\n throw Error(\"Cannot flush passive effects while already rendering.\");\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n for (nextEffect = renderPriority.current; null !== nextEffect; ) {\n var fiber = nextEffect,\n child = fiber.child;\n if (0 !== (nextEffect.flags & 16)) {\n var deletions = fiber.deletions;\n if (null !== deletions) {\n for (var i = 0; i < deletions.length; i++) {\n var fiberToDelete = deletions[i];\n for (nextEffect = fiberToDelete; null !== nextEffect; ) {\n var fiber$jscomp$0 = nextEffect;\n switch (fiber$jscomp$0.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber$jscomp$0, fiber);\n }\n var child$jscomp$0 = fiber$jscomp$0.child;\n if (null !== child$jscomp$0)\n (child$jscomp$0.return = fiber$jscomp$0),\n (nextEffect = child$jscomp$0);\n else\n for (; null !== nextEffect; ) {\n fiber$jscomp$0 = nextEffect;\n var sibling = fiber$jscomp$0.sibling,\n returnFiber = fiber$jscomp$0.return;\n detachFiberAfterEffects(fiber$jscomp$0);\n if (fiber$jscomp$0 === fiberToDelete) {\n nextEffect = null;\n break;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break;\n }\n nextEffect = returnFiber;\n }\n }\n }\n var previousFiber = fiber.alternate;\n if (null !== previousFiber) {\n var detachedChild = previousFiber.child;\n if (null !== detachedChild) {\n previousFiber.child = null;\n do {\n var detachedSibling = detachedChild.sibling;\n detachedChild.sibling = null;\n detachedChild = detachedSibling;\n } while (null !== detachedChild);\n }\n }\n nextEffect = fiber;\n }\n }\n if (0 !== (fiber.subtreeFlags & 2064) && null !== child)\n (child.return = fiber), (nextEffect = child);\n else\n b: for (; null !== nextEffect; ) {\n fiber = nextEffect;\n if (0 !== (fiber.flags & 2048))\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(9, fiber, fiber.return);\n }\n var sibling$jscomp$0 = fiber.sibling;\n if (null !== sibling$jscomp$0) {\n sibling$jscomp$0.return = fiber.return;\n nextEffect = sibling$jscomp$0;\n break b;\n }\n nextEffect = fiber.return;\n }\n }\n var finishedWork = renderPriority.current;\n for (nextEffect = finishedWork; null !== nextEffect; ) {\n child = nextEffect;\n var firstChild = child.child;\n if (0 !== (child.subtreeFlags & 2064) && null !== firstChild)\n (firstChild.return = child), (nextEffect = firstChild);\n else\n b: for (child = finishedWork; null !== nextEffect; ) {\n deletions = nextEffect;\n if (0 !== (deletions.flags & 2048))\n try {\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListMount(9, deletions);\n }\n } catch (error) {\n captureCommitPhaseError(deletions, deletions.return, error);\n }\n if (deletions === child) {\n nextEffect = null;\n break b;\n }\n var sibling$jscomp$1 = deletions.sibling;\n if (null !== sibling$jscomp$1) {\n sibling$jscomp$1.return = deletions.return;\n nextEffect = sibling$jscomp$1;\n break b;\n }\n nextEffect = deletions.return;\n }\n }\n executionContext = prevExecutionContext;\n flushSyncCallbacks();\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onPostCommitFiberRoot\n )\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, renderPriority);\n } catch (err) {}\n JSCompiler_inline_result = !0;\n }\n return JSCompiler_inline_result;\n } finally {\n (currentUpdatePriority = previousPriority),\n (ReactCurrentBatchConfig$2.transition = prevTransition);\n }\n }\n return !1;\n}\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createRootErrorUpdate(rootFiber, sourceFiber, 1);\n rootFiber = enqueueUpdate(rootFiber, sourceFiber, 1);\n sourceFiber = requestEventTime();\n null !== rootFiber &&\n (markRootUpdated(rootFiber, 1, sourceFiber),\n ensureRootIsScheduled(rootFiber, sourceFiber));\n}\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {\n if (3 === sourceFiber.tag)\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n else\n for (\n nearestMountedAncestor = sourceFiber.return;\n null !== nearestMountedAncestor;\n\n ) {\n if (3 === nearestMountedAncestor.tag) {\n captureCommitPhaseErrorOnRoot(\n nearestMountedAncestor,\n sourceFiber,\n error\n );\n break;\n } else if (1 === nearestMountedAncestor.tag) {\n var instance = nearestMountedAncestor.stateNode;\n if (\n \"function\" ===\n typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n (\"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n ) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createClassErrorUpdate(\n nearestMountedAncestor,\n sourceFiber,\n 1\n );\n nearestMountedAncestor = enqueueUpdate(\n nearestMountedAncestor,\n sourceFiber,\n 1\n );\n sourceFiber = requestEventTime();\n null !== nearestMountedAncestor &&\n (markRootUpdated(nearestMountedAncestor, 1, sourceFiber),\n ensureRootIsScheduled(nearestMountedAncestor, sourceFiber));\n break;\n }\n }\n nearestMountedAncestor = nearestMountedAncestor.return;\n }\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n null !== pingCache && pingCache.delete(wakeable);\n wakeable = requestEventTime();\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n workInProgressRoot === root &&\n (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n (4 === workInProgressRootExitStatus ||\n (3 === workInProgressRootExitStatus &&\n (workInProgressRootRenderLanes & 130023424) ===\n workInProgressRootRenderLanes &&\n 500 > now() - globalMostRecentFallbackTime)\n ? prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes));\n ensureRootIsScheduled(root, wakeable);\n}\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n 0 === retryLane &&\n (0 === (boundaryFiber.mode & 1)\n ? (retryLane = 1)\n : ((retryLane = nextRetryLane),\n (nextRetryLane <<= 1),\n 0 === (nextRetryLane & 130023424) && (nextRetryLane = 4194304)));\n var eventTime = requestEventTime();\n boundaryFiber = markUpdateLaneFromFiberToRoot(boundaryFiber, retryLane);\n null !== boundaryFiber &&\n (markRootUpdated(boundaryFiber, retryLane, eventTime),\n ensureRootIsScheduled(boundaryFiber, eventTime));\n}\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState,\n retryLane = 0;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = 0;\n switch (boundaryFiber.tag) {\n case 13:\n var retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n break;\n case 19:\n retryCache = boundaryFiber.stateNode;\n break;\n default:\n throw Error(\n \"Pinged unknown suspense boundary type. This is probably a bug in React.\"\n );\n }\n null !== retryCache && retryCache.delete(wakeable);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nvar beginWork$1;\nbeginWork$1 = function(current, workInProgress, renderLanes) {\n if (null !== current)\n if (\n current.memoizedProps !== workInProgress.pendingProps ||\n didPerformWorkStackCursor.current\n )\n didReceiveUpdate = !0;\n else {\n if (\n 0 === (current.lanes & renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else didReceiveUpdate = !1;\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 2:\n var Component = workInProgress.type;\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress);\n current = workInProgress.pendingProps;\n var context = getMaskedContext(\n workInProgress,\n contextStackCursor.current\n );\n prepareToReadContext(workInProgress, renderLanes);\n context = renderWithHooks(\n null,\n workInProgress,\n Component,\n current,\n context,\n renderLanes\n );\n workInProgress.flags |= 1;\n if (\n \"object\" === typeof context &&\n null !== context &&\n \"function\" === typeof context.render &&\n void 0 === context.$$typeof\n ) {\n workInProgress.tag = 1;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n if (isContextProvider(Component)) {\n var hasContext = !0;\n pushContextProvider(workInProgress);\n } else hasContext = !1;\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state\n ? context.state\n : null;\n initializeUpdateQueue(workInProgress);\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n mountClassInstance(workInProgress, Component, current, renderLanes);\n workInProgress = finishClassComponent(\n null,\n workInProgress,\n Component,\n !0,\n hasContext,\n renderLanes\n );\n } else\n (workInProgress.tag = 0),\n reconcileChildren(null, workInProgress, context, renderLanes),\n (workInProgress = workInProgress.child);\n return workInProgress;\n case 16:\n Component = workInProgress.elementType;\n a: {\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress);\n current = workInProgress.pendingProps;\n context = Component._init;\n Component = context(Component._payload);\n workInProgress.type = Component;\n context = workInProgress.tag = resolveLazyComponentTag(Component);\n current = resolveDefaultProps(Component, current);\n switch (context) {\n case 0:\n workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n Component,\n current,\n renderLanes\n );\n break a;\n case 1:\n workInProgress = updateClassComponent(\n null,\n workInProgress,\n Component,\n current,\n renderLanes\n );\n break a;\n case 11:\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n Component,\n current,\n renderLanes\n );\n break a;\n case 14:\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n Component,\n resolveDefaultProps(Component.type, current),\n renderLanes\n );\n break a;\n }\n throw Error(\n \"Element type is invalid. Received a promise that resolves to: \" +\n Component +\n \". Lazy element type must resolve to a class or function.\"\n );\n }\n return workInProgress;\n case 0:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n updateFunctionComponent(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 1:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n updateClassComponent(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 3:\n pushHostRootContext(workInProgress);\n if (null === current)\n throw Error(\"Should have a current fiber. This is a bug in React.\");\n context = workInProgress.pendingProps;\n Component = workInProgress.memoizedState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, context, null, renderLanes);\n context = workInProgress.memoizedState.element;\n context === Component\n ? (workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ))\n : (reconcileChildren(current, workInProgress, context, renderLanes),\n (workInProgress = workInProgress.child));\n return workInProgress;\n case 5:\n return (\n pushHostContext(workInProgress),\n (Component = workInProgress.pendingProps.children),\n markRef(current, workInProgress),\n reconcileChildren(current, workInProgress, Component, renderLanes),\n workInProgress.child\n );\n case 6:\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (Component = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n ))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n workInProgress.child\n );\n case 11:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n updateForwardRef(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n a: {\n Component = workInProgress.type._context;\n context = workInProgress.pendingProps;\n hasContext = workInProgress.memoizedProps;\n var newValue = context.value;\n push(valueCursor, Component._currentValue2);\n Component._currentValue2 = newValue;\n if (null !== hasContext)\n if (objectIs(hasContext.value, newValue)) {\n if (\n hasContext.children === context.children &&\n !didPerformWorkStackCursor.current\n ) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n } else\n for (\n hasContext = workInProgress.child,\n null !== hasContext && (hasContext.return = workInProgress);\n null !== hasContext;\n\n ) {\n var list = hasContext.dependencies;\n if (null !== list) {\n newValue = hasContext.child;\n for (\n var dependency = list.firstContext;\n null !== dependency;\n\n ) {\n if (dependency.context === Component) {\n if (1 === hasContext.tag) {\n dependency = createUpdate(-1, renderLanes & -renderLanes);\n dependency.tag = 2;\n var updateQueue = hasContext.updateQueue;\n if (null !== updateQueue) {\n updateQueue = updateQueue.shared;\n var pending = updateQueue.pending;\n null === pending\n ? (dependency.next = dependency)\n : ((dependency.next = pending.next),\n (pending.next = dependency));\n updateQueue.pending = dependency;\n }\n }\n hasContext.lanes |= renderLanes;\n dependency = hasContext.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n hasContext.return,\n renderLanes,\n workInProgress\n );\n list.lanes |= renderLanes;\n break;\n }\n dependency = dependency.next;\n }\n } else if (10 === hasContext.tag)\n newValue =\n hasContext.type === workInProgress.type\n ? null\n : hasContext.child;\n else if (18 === hasContext.tag) {\n newValue = hasContext.return;\n if (null === newValue)\n throw Error(\n \"We just came from a parent so we must have had a parent. This is a bug in React.\"\n );\n newValue.lanes |= renderLanes;\n list = newValue.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n newValue,\n renderLanes,\n workInProgress\n );\n newValue = hasContext.sibling;\n } else newValue = hasContext.child;\n if (null !== newValue) newValue.return = hasContext;\n else\n for (newValue = hasContext; null !== newValue; ) {\n if (newValue === workInProgress) {\n newValue = null;\n break;\n }\n hasContext = newValue.sibling;\n if (null !== hasContext) {\n hasContext.return = newValue.return;\n newValue = hasContext;\n break;\n }\n newValue = newValue.return;\n }\n hasContext = newValue;\n }\n reconcileChildren(\n current,\n workInProgress,\n context.children,\n renderLanes\n );\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 9:\n return (\n (context = workInProgress.type),\n (Component = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress, renderLanes),\n (context = readContext(context)),\n (Component = Component(context)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, Component, renderLanes),\n workInProgress.child\n );\n case 14:\n return (\n (Component = workInProgress.type),\n (context = resolveDefaultProps(Component, workInProgress.pendingProps)),\n (context = resolveDefaultProps(Component.type, context)),\n updateMemoComponent(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 17:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress),\n (workInProgress.tag = 1),\n isContextProvider(Component)\n ? ((current = !0), pushContextProvider(workInProgress))\n : (current = !1),\n prepareToReadContext(workInProgress, renderLanes),\n constructClassInstance(workInProgress, Component, context),\n mountClassInstance(workInProgress, Component, context, renderLanes),\n finishClassComponent(\n null,\n workInProgress,\n Component,\n !0,\n current,\n renderLanes\n )\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(current, workInProgress, renderLanes);\n }\n throw Error(\n \"Unknown unit of work tag (\" +\n workInProgress.tag +\n \"). This error is likely caused by a bug in React. Please file an issue.\"\n );\n};\nfunction scheduleCallback$1(priorityLevel, callback) {\n return scheduleCallback(priorityLevel, callback);\n}\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null;\n this.index = 0;\n this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiber(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction resolveLazyComponentTag(Component) {\n if (\"function\" === typeof Component)\n return shouldConstruct(Component) ? 1 : 0;\n if (void 0 !== Component && null !== Component) {\n Component = Component.$$typeof;\n if (Component === REACT_FORWARD_REF_TYPE) return 11;\n if (Component === REACT_MEMO_TYPE) return 14;\n }\n return 2;\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiber(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 14680064;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 2;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type) fiberTag = 5;\n else\n a: switch (type) {\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 8;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiber(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiber(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiber(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_OFFSCREEN_TYPE:\n return createFiberFromOffscreen(pendingProps, mode, lanes, key);\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_PROVIDER_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONTEXT_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n throw Error(\n \"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: \" +\n ((null == type ? type : typeof type) + \".\")\n );\n }\n key = createFiber(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiber(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromOffscreen(pendingProps, mode, lanes, key) {\n pendingProps = createFiber(22, pendingProps, key, mode);\n pendingProps.elementType = REACT_OFFSCREEN_TYPE;\n pendingProps.lanes = lanes;\n pendingProps.stateNode = { isHidden: !1 };\n return pendingProps;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiber(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiber(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nfunction FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onRecoverableError\n) {\n this.tag = tag;\n this.containerInfo = containerInfo;\n this.finishedWork = this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = -1;\n this.callbackNode = this.pendingContext = this.context = null;\n this.callbackPriority = 0;\n this.eventTimes = createLaneMap(0);\n this.expirationTimes = createLaneMap(-1);\n this.entangledLanes = this.finishedLanes = this.mutableReadLanes = this.expiredLanes = this.pingedLanes = this.suspendedLanes = this.pendingLanes = 0;\n this.entanglements = createLaneMap(0);\n this.identifierPrefix = identifierPrefix;\n this.onRecoverableError = onRecoverableError;\n}\nfunction createPortal(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\nfunction findHostInstance(component) {\n var fiber = component._reactInternals;\n if (void 0 === fiber) {\n if (\"function\" === typeof component.render)\n throw Error(\"Unable to find node on an unmounted component.\");\n component = Object.keys(component).join(\",\");\n throw Error(\n \"Argument appears to not be a ReactComponent. Keys: \" + component\n );\n }\n component = findCurrentHostFiber(fiber);\n return null === component ? null : component.stateNode;\n}\nfunction updateContainer(element, container, parentComponent, callback) {\n var current = container.current,\n eventTime = requestEventTime(),\n lane = requestUpdateLane(current);\n a: if (parentComponent) {\n parentComponent = parentComponent._reactInternals;\n b: {\n if (\n getNearestMountedFiber(parentComponent) !== parentComponent ||\n 1 !== parentComponent.tag\n )\n throw Error(\n \"Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.\"\n );\n var JSCompiler_inline_result = parentComponent;\n do {\n switch (JSCompiler_inline_result.tag) {\n case 3:\n JSCompiler_inline_result =\n JSCompiler_inline_result.stateNode.context;\n break b;\n case 1:\n if (isContextProvider(JSCompiler_inline_result.type)) {\n JSCompiler_inline_result =\n JSCompiler_inline_result.stateNode\n .__reactInternalMemoizedMergedChildContext;\n break b;\n }\n }\n JSCompiler_inline_result = JSCompiler_inline_result.return;\n } while (null !== JSCompiler_inline_result);\n throw Error(\n \"Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (1 === parentComponent.tag) {\n var Component = parentComponent.type;\n if (isContextProvider(Component)) {\n parentComponent = processChildContext(\n parentComponent,\n Component,\n JSCompiler_inline_result\n );\n break a;\n }\n }\n parentComponent = JSCompiler_inline_result;\n } else parentComponent = emptyContextObject;\n null === container.context\n ? (container.context = parentComponent)\n : (container.pendingContext = parentComponent);\n container = createUpdate(eventTime, lane);\n container.payload = { element: element };\n callback = void 0 === callback ? null : callback;\n null !== callback && (container.callback = callback);\n element = enqueueUpdate(current, container, lane);\n null !== element &&\n (scheduleUpdateOnFiber(element, current, lane, eventTime),\n entangleTransitions(element, current, lane));\n return lane;\n}\nfunction emptyFindFiberByHostInstance() {\n return null;\n}\nfunction findNodeHandle(componentOrHandle) {\n if (null == componentOrHandle) return null;\n if (\"number\" === typeof componentOrHandle) return componentOrHandle;\n if (componentOrHandle._nativeTag) return componentOrHandle._nativeTag;\n if (componentOrHandle.canonical && componentOrHandle.canonical._nativeTag)\n return componentOrHandle.canonical._nativeTag;\n componentOrHandle = findHostInstance(componentOrHandle);\n return null == componentOrHandle\n ? componentOrHandle\n : componentOrHandle.canonical\n ? componentOrHandle.canonical._nativeTag\n : componentOrHandle._nativeTag;\n}\nfunction onRecoverableError(error) {\n console.error(error);\n}\nbatchedUpdatesImpl = function(fn, a) {\n var prevExecutionContext = executionContext;\n executionContext |= 1;\n try {\n return fn(a);\n } finally {\n (executionContext = prevExecutionContext),\n 0 === executionContext &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n includesLegacySyncCallbacks && flushSyncCallbacks());\n }\n};\nvar roots = new Map(),\n devToolsConfig$jscomp$inline_938 = {\n findFiberByHostInstance: getInstanceFromInstance,\n bundleType: 0,\n version: \"18.2.0-next-9e3b772b8-20220608\",\n rendererPackageName: \"react-native-renderer\",\n rendererConfig: {\n getInspectorDataForViewTag: function() {\n throw Error(\n \"getInspectorDataForViewTag() is not available in production\"\n );\n },\n getInspectorDataForViewAtPoint: function() {\n throw Error(\n \"getInspectorDataForViewAtPoint() is not available in production.\"\n );\n }.bind(null, findNodeHandle)\n }\n };\nvar internals$jscomp$inline_1180 = {\n bundleType: devToolsConfig$jscomp$inline_938.bundleType,\n version: devToolsConfig$jscomp$inline_938.version,\n rendererPackageName: devToolsConfig$jscomp$inline_938.rendererPackageName,\n rendererConfig: devToolsConfig$jscomp$inline_938.rendererConfig,\n overrideHookState: null,\n overrideHookStateDeletePath: null,\n overrideHookStateRenamePath: null,\n overrideProps: null,\n overridePropsDeletePath: null,\n overridePropsRenamePath: null,\n setErrorHandler: null,\n setSuspenseHandler: null,\n scheduleUpdate: null,\n currentDispatcherRef: ReactSharedInternals.ReactCurrentDispatcher,\n findHostInstanceByFiber: function(fiber) {\n fiber = findCurrentHostFiber(fiber);\n return null === fiber ? null : fiber.stateNode;\n },\n findFiberByHostInstance:\n devToolsConfig$jscomp$inline_938.findFiberByHostInstance ||\n emptyFindFiberByHostInstance,\n findHostInstancesForRefresh: null,\n scheduleRefresh: null,\n scheduleRoot: null,\n setRefreshHandler: null,\n getCurrentFiber: null,\n reconcilerVersion: \"18.2.0-next-9e3b772b8-20220608\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var hook$jscomp$inline_1181 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (\n !hook$jscomp$inline_1181.isDisabled &&\n hook$jscomp$inline_1181.supportsFiber\n )\n try {\n (rendererID = hook$jscomp$inline_1181.inject(\n internals$jscomp$inline_1180\n )),\n (injectedHook = hook$jscomp$inline_1181);\n } catch (err) {}\n}\nexports.createPortal = function(children, containerTag) {\n return createPortal(\n children,\n containerTag,\n null,\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null\n );\n};\nexports.dispatchCommand = function(handle, command, args) {\n null != handle._nativeTag &&\n (null != handle._internalInstanceHandle\n ? ((handle = handle._internalInstanceHandle.stateNode),\n null != handle &&\n nativeFabricUIManager.dispatchCommand(handle.node, command, args))\n : ReactNativePrivateInterface.UIManager.dispatchViewManagerCommand(\n handle._nativeTag,\n command,\n args\n ));\n};\nexports.findHostInstance_DEPRECATED = function(componentOrHandle) {\n if (null == componentOrHandle) return null;\n if (componentOrHandle._nativeTag) return componentOrHandle;\n if (componentOrHandle.canonical && componentOrHandle.canonical._nativeTag)\n return componentOrHandle.canonical;\n componentOrHandle = findHostInstance(componentOrHandle);\n return null == componentOrHandle\n ? componentOrHandle\n : componentOrHandle.canonical\n ? componentOrHandle.canonical\n : componentOrHandle;\n};\nexports.findNodeHandle = findNodeHandle;\nexports.getInspectorDataForInstance = void 0;\nexports.render = function(element, containerTag, callback, concurrentRoot) {\n var root = roots.get(containerTag);\n root ||\n ((root = concurrentRoot ? 1 : 0),\n (concurrentRoot = new FiberRootNode(\n containerTag,\n root,\n !1,\n \"\",\n onRecoverableError\n )),\n (root = createFiber(3, null, null, 1 === root ? 1 : 0)),\n (concurrentRoot.current = root),\n (root.stateNode = concurrentRoot),\n (root.memoizedState = {\n element: null,\n isDehydrated: !1,\n cache: null,\n transitions: null,\n pendingSuspenseBoundaries: null\n }),\n initializeUpdateQueue(root),\n (root = concurrentRoot),\n roots.set(containerTag, root));\n updateContainer(element, root, null, callback);\n a: if (((element = root.current), element.child))\n switch (element.child.tag) {\n case 5:\n element = element.child.stateNode.canonical;\n break a;\n default:\n element = element.child.stateNode;\n }\n else element = null;\n return element;\n};\nexports.sendAccessibilityEvent = function(handle, eventType) {\n null != handle._nativeTag &&\n (null != handle._internalInstanceHandle\n ? ((handle = handle._internalInstanceHandle.stateNode),\n null != handle &&\n nativeFabricUIManager.sendAccessibilityEvent(handle.node, eventType))\n : ReactNativePrivateInterface.legacySendAccessibilityEvent(\n handle._nativeTag,\n eventType\n ));\n};\nexports.stopSurface = function(containerTag) {\n var root = roots.get(containerTag);\n root &&\n updateContainer(null, root, null, function() {\n roots.delete(containerTag);\n });\n};\nexports.unmountComponentAtNode = function(containerTag) {\n this.stopSurface(containerTag);\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport '../Core/InitializeCore';\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n/**\n * Sets up global variables typical in most JavaScript environments.\n *\n * 1. Global timers (via `setTimeout` etc).\n * 2. Global console object.\n * 3. Hooks for printing stack traces with source maps.\n *\n * Leaves enough room in the environment for implementing your own:\n *\n * 1. Require system.\n * 2. Bridged modules.\n *\n */\n\n'use strict';\n\nconst start = Date.now();\n\nrequire('./setUpGlobals');\nrequire('./setUpDOM');\nrequire('./setUpPerformance');\nrequire('./setUpErrorHandling');\nrequire('./polyfillPromise');\nrequire('./setUpRegeneratorRuntime');\nrequire('./setUpTimers');\nrequire('./setUpXHR');\nrequire('./setUpAlert');\nrequire('./setUpNavigator');\nrequire('./setUpBatchedBridge');\nrequire('./setUpSegmentFetcher');\nif (__DEV__) {\n require('./checkNativeVersion');\n require('./setUpDeveloperTools');\n require('../LogBox/LogBox').default.install();\n}\n\nrequire('../ReactNative/AppRegistry');\n\nconst GlobalPerformanceLogger = require('../Utilities/GlobalPerformanceLogger');\n// We could just call GlobalPerformanceLogger.markPoint at the top of the file,\n// but then we'd be excluding the time it took to require the logger.\n// Instead, we just use Date.now and backdate the timestamp.\nGlobalPerformanceLogger.markPoint(\n 'initializeCore_start',\n GlobalPerformanceLogger.currentTimestamp() - (Date.now() - start),\n);\nGlobalPerformanceLogger.markPoint('initializeCore_end');\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\n/**\n * Sets up global variables for React Native.\n * You can use this module directly, or just require InitializeCore.\n */\nif (global.window === undefined) {\n // $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.\n global.window = global;\n}\n\nif (global.self === undefined) {\n // $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.\n global.self = global;\n}\n\n// Set up process\n// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.\nglobal.process = global.process || {};\n// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.\nglobal.process.env = global.process.env || {};\nif (!global.process.env.NODE_ENV) {\n // $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.\n global.process.env.NODE_ENV = __DEV__ ? 'development' : 'production';\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport DOMRect from '../DOM/Geometry/DOMRect';\nimport DOMRectReadOnly from '../DOM/Geometry/DOMRectReadOnly';\n\n// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it\nglobal.DOMRect = DOMRect;\n\n// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it\nglobal.DOMRectReadOnly = DOMRectReadOnly;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n/**\n * The JSDoc comments in this file have been extracted from [DOMRect](https://developer.mozilla.org/en-US/docs/Web/API/DOMRect).\n * Content by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/DOMRect/contributors.txt),\n * licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).\n */\n\nimport DOMRectReadOnly, {type DOMRectLike} from './DOMRectReadOnly';\n\n// flowlint unsafe-getters-setters:off\n\n/**\n * A `DOMRect` describes the size and position of a rectangle.\n * The type of box represented by the `DOMRect` is specified by the method or property that returned it.\n *\n * This is a (mostly) spec-compliant version of `DOMRect` (https://developer.mozilla.org/en-US/docs/Web/API/DOMRect).\n */\nexport default class DOMRect extends DOMRectReadOnly {\n /**\n * The x coordinate of the `DOMRect`'s origin.\n */\n get x(): number {\n return this.__getInternalX();\n }\n\n set x(x: ?number) {\n this.__setInternalX(x);\n }\n\n /**\n * The y coordinate of the `DOMRect`'s origin.\n */\n get y(): number {\n return this.__getInternalY();\n }\n\n set y(y: ?number) {\n this.__setInternalY(y);\n }\n\n /**\n * The width of the `DOMRect`.\n */\n get width(): number {\n return this.__getInternalWidth();\n }\n\n set width(width: ?number) {\n this.__setInternalWidth(width);\n }\n\n /**\n * The height of the `DOMRect`.\n */\n get height(): number {\n return this.__getInternalHeight();\n }\n\n set height(height: ?number) {\n this.__setInternalHeight(height);\n }\n\n /**\n * Creates a new `DOMRect` object with a given location and dimensions.\n */\n static fromRect(rect?: ?DOMRectLike): DOMRect {\n if (!rect) {\n return new DOMRect();\n }\n\n return new DOMRect(rect.x, rect.y, rect.width, rect.height);\n }\n}\n","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n/**\n * The JSDoc comments in this file have been extracted from [DOMRectReadOnly](https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly).\n * Content by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly/contributors.txt),\n * licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).\n */\n\n// flowlint sketchy-null:off, unsafe-getters-setters:off\n\nexport interface DOMRectLike {\n x?: ?number;\n y?: ?number;\n width?: ?number;\n height?: ?number;\n}\n\nfunction castToNumber(value: mixed): number {\n return value ? Number(value) : 0;\n}\n\n/**\n * The `DOMRectReadOnly` interface specifies the standard properties used by `DOMRect` to define a rectangle whose properties are immutable.\n *\n * This is a (mostly) spec-compliant version of `DOMRectReadOnly` (https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly).\n */\nexport default class DOMRectReadOnly {\n _x: number;\n _y: number;\n _width: number;\n _height: number;\n\n constructor(x: ?number, y: ?number, width: ?number, height: ?number) {\n this.__setInternalX(x);\n this.__setInternalY(y);\n this.__setInternalWidth(width);\n this.__setInternalHeight(height);\n }\n\n /**\n * The x coordinate of the `DOMRectReadOnly`'s origin.\n */\n get x(): number {\n return this._x;\n }\n\n /**\n * The y coordinate of the `DOMRectReadOnly`'s origin.\n */\n get y(): number {\n return this._y;\n }\n\n /**\n * The width of the `DOMRectReadOnly`.\n */\n get width(): number {\n return this._width;\n }\n\n /**\n * The height of the `DOMRectReadOnly`.\n */\n get height(): number {\n return this._height;\n }\n\n /**\n * Returns the top coordinate value of the `DOMRect` (has the same value as `y`, or `y + height` if `height` is negative).\n */\n get top(): number {\n const height = this._height;\n const y = this._y;\n\n if (height < 0) {\n return y + height;\n }\n\n return y;\n }\n\n /**\n * Returns the right coordinate value of the `DOMRect` (has the same value as ``x + width`, or `x` if `width` is negative).\n */\n get right(): number {\n const width = this._width;\n const x = this._x;\n\n if (width < 0) {\n return x;\n }\n\n return x + width;\n }\n\n /**\n * Returns the bottom coordinate value of the `DOMRect` (has the same value as `y + height`, or `y` if `height` is negative).\n */\n get bottom(): number {\n const height = this._height;\n const y = this._y;\n\n if (height < 0) {\n return y;\n }\n\n return y + height;\n }\n\n /**\n * Returns the left coordinate value of the `DOMRect` (has the same value as `x`, or `x + width` if `width` is negative).\n */\n get left(): number {\n const width = this._width;\n const x = this._x;\n\n if (width < 0) {\n return x + width;\n }\n\n return x;\n }\n\n toJSON(): {\n x: number,\n y: number,\n width: number,\n height: number,\n top: number,\n left: number,\n bottom: number,\n right: number,\n } {\n const {x, y, width, height, top, left, bottom, right} = this;\n return {x, y, width, height, top, left, bottom, right};\n }\n\n /**\n * Creates a new `DOMRectReadOnly` object with a given location and dimensions.\n */\n static fromRect(rect?: ?DOMRectLike): DOMRectReadOnly {\n if (!rect) {\n return new DOMRectReadOnly();\n }\n\n return new DOMRectReadOnly(rect.x, rect.y, rect.width, rect.height);\n }\n\n __getInternalX(): number {\n return this._x;\n }\n\n __getInternalY(): number {\n return this._y;\n }\n\n __getInternalWidth(): number {\n return this._width;\n }\n\n __getInternalHeight(): number {\n return this._height;\n }\n\n __setInternalX(x: ?number) {\n this._x = castToNumber(x);\n }\n\n __setInternalY(y: ?number) {\n this._y = castToNumber(y);\n }\n\n __setInternalWidth(width: ?number) {\n this._width = castToNumber(width);\n }\n\n __setInternalHeight(height: ?number) {\n this._height = castToNumber(height);\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport NativePerformance from '../WebPerformance/NativePerformance';\nimport Performance from '../WebPerformance/Performance';\n\n// In case if the native implementation of the Performance API is available, use it,\n// otherwise fall back to the legacy/default one, which only defines 'Performance.now()'\nif (NativePerformance) {\n // $FlowExpectedError[cannot-write]\n global.performance = new Performance();\n} else {\n if (!global.performance) {\n // $FlowExpectedError[cannot-write]\n global.performance = ({}: {now?: () => number});\n }\n\n /**\n * Returns a double, measured in milliseconds.\n * https://developer.mozilla.org/en-US/docs/Web/API/Performance/now\n */\n if (typeof global.performance.now !== 'function') {\n // $FlowExpectedError[cannot-write]\n global.performance.now = function () {\n const performanceNow = global.nativePerformanceNow || Date.now;\n return performanceNow();\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport type NativeMemoryInfo = {[key: string]: number};\n\nexport type ReactNativeStartupTiming = {|\n startTime: number,\n endTime: number,\n executeJavaScriptBundleEntryPointStart: number,\n executeJavaScriptBundleEntryPointEnd: number,\n|};\n\nexport interface Spec extends TurboModule {\n +mark: (name: string, startTime: number, duration: number) => void;\n +measure: (\n name: string,\n startTime: number,\n endTime: number,\n duration?: number,\n startMark?: string,\n endMark?: string,\n ) => void;\n +getSimpleMemoryInfo: () => NativeMemoryInfo;\n +getReactNativeStartupTiming: () => ReactNativeStartupTiming;\n}\n\nexport default (TurboModuleRegistry.get('NativePerformanceCxx'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n// flowlint unsafe-getters-setters:off\n\nimport type {HighResTimeStamp, PerformanceEntryType} from './PerformanceEntry';\nimport type {PerformanceEntryList} from './PerformanceObserver';\n\nimport warnOnce from '../Utilities/warnOnce';\nimport EventCounts from './EventCounts';\nimport MemoryInfo from './MemoryInfo';\nimport NativePerformance from './NativePerformance';\nimport NativePerformanceObserver from './NativePerformanceObserver';\nimport {PerformanceEntry} from './PerformanceEntry';\nimport {warnNoNativePerformanceObserver} from './PerformanceObserver';\nimport {\n performanceEntryTypeToRaw,\n rawToPerformanceEntry,\n} from './RawPerformanceEntry';\nimport {RawPerformanceEntryTypeValues} from './RawPerformanceEntry';\nimport ReactNativeStartupTiming from './ReactNativeStartupTiming';\n\ntype DetailType = mixed;\n\nexport type PerformanceMarkOptions = {\n detail?: DetailType,\n startTime?: HighResTimeStamp,\n};\n\ndeclare var global: {\n // This value is defined directly via JSI, if available.\n +nativePerformanceNow?: ?() => number,\n};\n\nconst getCurrentTimeStamp: () => HighResTimeStamp = global.nativePerformanceNow\n ? global.nativePerformanceNow\n : () => Date.now();\n\nexport class PerformanceMark extends PerformanceEntry {\n detail: DetailType;\n\n constructor(markName: string, markOptions?: PerformanceMarkOptions) {\n super({\n name: markName,\n entryType: 'mark',\n startTime: markOptions?.startTime ?? getCurrentTimeStamp(),\n duration: 0,\n });\n\n if (markOptions) {\n this.detail = markOptions.detail;\n }\n }\n}\n\nexport type TimeStampOrName = HighResTimeStamp | string;\n\nexport type PerformanceMeasureOptions = {\n detail?: DetailType,\n start?: TimeStampOrName,\n end?: TimeStampOrName,\n duration?: HighResTimeStamp,\n};\n\nexport class PerformanceMeasure extends PerformanceEntry {\n detail: DetailType;\n\n constructor(measureName: string, measureOptions?: PerformanceMeasureOptions) {\n super({\n name: measureName,\n entryType: 'measure',\n startTime: 0,\n duration: measureOptions?.duration ?? 0,\n });\n\n if (measureOptions) {\n this.detail = measureOptions.detail;\n }\n }\n}\n\nfunction warnNoNativePerformance() {\n warnOnce(\n 'missing-native-performance',\n 'Missing native implementation of Performance',\n );\n}\n\n/**\n * Partial implementation of the Performance interface for RN,\n * corresponding to the standard in\n * https://www.w3.org/TR/user-timing/#extensions-performance-interface\n */\nexport default class Performance {\n eventCounts: EventCounts = new EventCounts();\n\n // Get the current JS memory information.\n get memory(): MemoryInfo {\n if (NativePerformance?.getSimpleMemoryInfo) {\n // JSI API implementations may have different variants of names for the JS\n // heap information we need here. We will parse the result based on our\n // guess of the implementation for now.\n const memoryInfo = NativePerformance.getSimpleMemoryInfo();\n if (memoryInfo.hasOwnProperty('hermes_heapSize')) {\n // We got memory information from Hermes\n const {\n hermes_heapSize: totalJSHeapSize,\n hermes_allocatedBytes: usedJSHeapSize,\n } = memoryInfo;\n\n return new MemoryInfo({\n jsHeapSizeLimit: null, // We don't know the heap size limit from Hermes.\n totalJSHeapSize,\n usedJSHeapSize,\n });\n } else {\n // JSC and V8 has no native implementations for memory information in JSI::Instrumentation\n return new MemoryInfo();\n }\n }\n\n return new MemoryInfo();\n }\n\n // Startup metrics is not used in web, but only in React Native.\n get reactNativeStartupTiming(): ReactNativeStartupTiming {\n if (NativePerformance?.getReactNativeStartupTiming) {\n return new ReactNativeStartupTiming(\n NativePerformance.getReactNativeStartupTiming(),\n );\n }\n return new ReactNativeStartupTiming();\n }\n\n mark(\n markName: string,\n markOptions?: PerformanceMarkOptions,\n ): PerformanceMark {\n const mark = new PerformanceMark(markName, markOptions);\n\n if (NativePerformance?.mark) {\n NativePerformance.mark(markName, mark.startTime, mark.duration);\n } else {\n warnNoNativePerformance();\n }\n\n return mark;\n }\n\n clearMarks(markName?: string): void {\n if (!NativePerformanceObserver?.clearEntries) {\n warnNoNativePerformanceObserver();\n return;\n }\n\n NativePerformanceObserver?.clearEntries(\n RawPerformanceEntryTypeValues.MARK,\n markName,\n );\n }\n\n measure(\n measureName: string,\n startMarkOrOptions?: string | PerformanceMeasureOptions,\n endMark?: string,\n ): PerformanceMeasure {\n let options;\n let startMarkName,\n endMarkName = endMark,\n duration,\n startTime = 0,\n endTime = 0;\n\n if (typeof startMarkOrOptions === 'string') {\n startMarkName = startMarkOrOptions;\n } else if (startMarkOrOptions !== undefined) {\n options = startMarkOrOptions;\n if (endMark !== undefined) {\n throw new TypeError(\n \"Performance.measure: Can't have both options and endMark\",\n );\n }\n if (options.start === undefined && options.end === undefined) {\n throw new TypeError(\n 'Performance.measure: Must have at least one of start/end specified in options',\n );\n }\n if (\n options.start !== undefined &&\n options.end !== undefined &&\n options.duration !== undefined\n ) {\n throw new TypeError(\n \"Performance.measure: Can't have both start/end and duration explicitly in options\",\n );\n }\n\n if (typeof options.start === 'number') {\n startTime = options.start;\n } else {\n startMarkName = options.start;\n }\n\n if (typeof options.end === 'number') {\n endTime = options.end;\n } else {\n endMarkName = options.end;\n }\n\n duration = options.duration ?? duration;\n }\n\n const measure = new PerformanceMeasure(measureName, options);\n\n if (NativePerformance?.measure) {\n NativePerformance.measure(\n measureName,\n startTime,\n endTime,\n duration,\n startMarkName,\n endMarkName,\n );\n } else {\n warnNoNativePerformance();\n }\n\n return measure;\n }\n\n clearMeasures(measureName?: string): void {\n if (!NativePerformanceObserver?.clearEntries) {\n warnNoNativePerformanceObserver();\n return;\n }\n\n NativePerformanceObserver?.clearEntries(\n RawPerformanceEntryTypeValues.MEASURE,\n measureName,\n );\n }\n\n /**\n * Returns a double, measured in milliseconds.\n * https://developer.mozilla.org/en-US/docs/Web/API/Performance/now\n */\n now(): HighResTimeStamp {\n return getCurrentTimeStamp();\n }\n\n /**\n * An extension that allows to get back to JS all currently logged marks/measures\n * (in our case, be it from JS or native), see\n * https://www.w3.org/TR/performance-timeline/#extensions-to-the-performance-interface\n */\n getEntries(): PerformanceEntryList {\n if (!NativePerformanceObserver?.clearEntries) {\n warnNoNativePerformanceObserver();\n return [];\n }\n return NativePerformanceObserver.getEntries().map(rawToPerformanceEntry);\n }\n\n getEntriesByType(entryType: PerformanceEntryType): PerformanceEntryList {\n if (entryType !== 'mark' && entryType !== 'measure') {\n console.log(\n `Performance.getEntriesByType: Only valid for 'mark' and 'measure' entry types, got ${entryType}`,\n );\n return [];\n }\n\n if (!NativePerformanceObserver?.clearEntries) {\n warnNoNativePerformanceObserver();\n return [];\n }\n return NativePerformanceObserver.getEntries(\n performanceEntryTypeToRaw(entryType),\n ).map(rawToPerformanceEntry);\n }\n\n getEntriesByName(\n entryName: string,\n entryType?: PerformanceEntryType,\n ): PerformanceEntryList {\n if (\n entryType !== undefined &&\n entryType !== 'mark' &&\n entryType !== 'measure'\n ) {\n console.log(\n `Performance.getEntriesByName: Only valid for 'mark' and 'measure' entry types, got ${entryType}`,\n );\n return [];\n }\n\n if (!NativePerformanceObserver?.clearEntries) {\n warnNoNativePerformanceObserver();\n return [];\n }\n return NativePerformanceObserver.getEntries(\n entryType != null ? performanceEntryTypeToRaw(entryType) : undefined,\n entryName,\n ).map(rawToPerformanceEntry);\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nconst warnedKeys: {[string]: boolean, ...} = {};\n\n/**\n * A simple function that prints a warning message once per session.\n *\n * @param {string} key - The key used to ensure the message is printed once.\n * This should be unique to the callsite.\n * @param {string} message - The message to print\n */\nfunction warnOnce(key: string, message: string) {\n if (warnedKeys[key]) {\n return;\n }\n\n console.warn(message);\n\n warnedKeys[key] = true;\n}\n\nmodule.exports = warnOnce;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport NativePerformanceObserver from './NativePerformanceObserver';\nimport {warnNoNativePerformanceObserver} from './PerformanceObserver';\n\ntype EventCountsForEachCallbackType =\n | (() => void)\n | ((value: number) => void)\n | ((value: number, key: string) => void)\n | ((value: number, key: string, map: Map) => void);\n\nlet cachedEventCounts: ?Map;\n\nfunction getCachedEventCounts(): Map {\n if (cachedEventCounts) {\n return cachedEventCounts;\n }\n if (!NativePerformanceObserver) {\n warnNoNativePerformanceObserver();\n return new Map();\n }\n\n cachedEventCounts = new Map(\n NativePerformanceObserver.getEventCounts(),\n );\n // $FlowFixMe[incompatible-call]\n global.queueMicrotask(() => {\n // To be consistent with the calls to the API from the same task,\n // but also not to refetch the data from native too often,\n // schedule to invalidate the cache later,\n // after the current task is guaranteed to have finished.\n cachedEventCounts = null;\n });\n return cachedEventCounts ?? new Map();\n}\n/**\n * Implementation of the EventCounts Web Performance API\n * corresponding to the standard in\n * https://www.w3.org/TR/event-timing/#eventcounts\n */\nexport default class EventCounts {\n // flowlint unsafe-getters-setters:off\n get size(): number {\n return getCachedEventCounts().size;\n }\n\n entries(): Iterator<[string, number]> {\n return getCachedEventCounts().entries();\n }\n\n forEach(callback: EventCountsForEachCallbackType): void {\n return getCachedEventCounts().forEach(callback);\n }\n\n get(key: string): ?number {\n return getCachedEventCounts().get(key);\n }\n\n has(key: string): boolean {\n return getCachedEventCounts().has(key);\n }\n\n keys(): Iterator {\n return getCachedEventCounts().keys();\n }\n\n values(): Iterator {\n return getCachedEventCounts().values();\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport type RawPerformanceEntryType = number;\n\nexport type RawPerformanceEntry = {|\n name: string,\n entryType: RawPerformanceEntryType,\n startTime: number,\n duration: number,\n // For \"event\" entries only:\n processingStart?: number,\n processingEnd?: number,\n interactionId?: number,\n|};\n\nexport type GetPendingEntriesResult = {|\n entries: $ReadOnlyArray,\n droppedEntriesCount: number,\n|};\n\nexport interface Spec extends TurboModule {\n +startReporting: (entryType: RawPerformanceEntryType) => void;\n +stopReporting: (entryType: RawPerformanceEntryType) => void;\n +popPendingEntries: () => GetPendingEntriesResult;\n +setOnPerformanceEntryCallback: (callback?: () => void) => void;\n +logRawEntry: (entry: RawPerformanceEntry) => void;\n +getEventCounts: () => $ReadOnlyArray<[string, number]>;\n +setDurationThreshold: (\n entryType: RawPerformanceEntryType,\n durationThreshold: number,\n ) => void;\n +clearEntries: (\n entryType: RawPerformanceEntryType,\n entryName?: string,\n ) => void;\n +getEntries: (\n entryType?: RawPerformanceEntryType,\n entryName?: string,\n ) => $ReadOnlyArray;\n}\n\nexport default (TurboModuleRegistry.get(\n 'NativePerformanceObserverCxx',\n): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport type {HighResTimeStamp, PerformanceEntryType} from './PerformanceEntry';\n\nimport warnOnce from '../Utilities/warnOnce';\nimport NativePerformanceObserver from './NativePerformanceObserver';\nimport {PerformanceEntry} from './PerformanceEntry';\nimport {\n performanceEntryTypeToRaw,\n rawToPerformanceEntry,\n} from './RawPerformanceEntry';\n\nexport type PerformanceEntryList = $ReadOnlyArray;\n\nexport class PerformanceObserverEntryList {\n _entries: PerformanceEntryList;\n\n constructor(entries: PerformanceEntryList) {\n this._entries = entries;\n }\n\n getEntries(): PerformanceEntryList {\n return this._entries;\n }\n\n getEntriesByType(type: PerformanceEntryType): PerformanceEntryList {\n return this._entries.filter(entry => entry.entryType === type);\n }\n\n getEntriesByName(\n name: string,\n type?: PerformanceEntryType,\n ): PerformanceEntryList {\n if (type === undefined) {\n return this._entries.filter(entry => entry.name === name);\n } else {\n return this._entries.filter(\n entry => entry.name === name && entry.entryType === type,\n );\n }\n }\n}\n\nexport type PerformanceObserverCallback = (\n list: PerformanceObserverEntryList,\n observer: PerformanceObserver,\n // The number of buffered entries which got dropped from the buffer due to the buffer being full:\n droppedEntryCount?: number,\n) => void;\n\nexport type PerformanceObserverInit =\n | {\n entryTypes: Array,\n }\n | {\n type: PerformanceEntryType,\n durationThreshold?: HighResTimeStamp,\n };\n\ntype PerformanceObserverConfig = {|\n callback: PerformanceObserverCallback,\n // Map of {entryType: durationThreshold}\n entryTypes: $ReadOnlyMap,\n|};\n\nconst observerCountPerEntryType: Map = new Map();\nconst registeredObservers: Map =\n new Map();\nlet isOnPerformanceEntryCallbackSet: boolean = false;\n\n// This is a callback that gets scheduled and periodically called from the native side\nconst onPerformanceEntry = () => {\n if (!NativePerformanceObserver) {\n return;\n }\n const entryResult = NativePerformanceObserver.popPendingEntries();\n const rawEntries = entryResult?.entries ?? [];\n const droppedEntriesCount = entryResult?.droppedEntriesCount;\n if (rawEntries.length === 0) {\n return;\n }\n const entries = rawEntries.map(rawToPerformanceEntry);\n for (const [observer, observerConfig] of registeredObservers.entries()) {\n const entriesForObserver: PerformanceEntryList = entries.filter(entry => {\n if (!observerConfig.entryTypes.has(entry.entryType)) {\n return false;\n }\n const durationThreshold = observerConfig.entryTypes.get(entry.entryType);\n return entry.duration >= (durationThreshold ?? 0);\n });\n observerConfig.callback(\n new PerformanceObserverEntryList(entriesForObserver),\n observer,\n droppedEntriesCount,\n );\n }\n};\n\nexport function warnNoNativePerformanceObserver() {\n warnOnce(\n 'missing-native-performance-observer',\n 'Missing native implementation of PerformanceObserver',\n );\n}\n\nfunction applyDurationThresholds() {\n const durationThresholds: Map = Array.from(\n registeredObservers.values(),\n )\n .map(config => config.entryTypes)\n .reduce(\n (accumulator, currentValue) => union(accumulator, currentValue),\n new Map(),\n );\n\n for (const [entryType, durationThreshold] of durationThresholds) {\n NativePerformanceObserver?.setDurationThreshold(\n performanceEntryTypeToRaw(entryType),\n durationThreshold ?? 0,\n );\n }\n}\n\n/**\n * Implementation of the PerformanceObserver interface for RN,\n * corresponding to the standard in https://www.w3.org/TR/performance-timeline/\n *\n * @example\n * const observer = new PerformanceObserver((list, _observer) => {\n * const entries = list.getEntries();\n * entries.forEach(entry => {\n * reportEvent({\n * eventName: entry.name,\n * startTime: entry.startTime,\n * endTime: entry.startTime + entry.duration,\n * processingStart: entry.processingStart,\n * processingEnd: entry.processingEnd,\n * interactionId: entry.interactionId,\n * });\n * });\n * });\n * observer.observe({ type: \"event\" });\n */\nexport default class PerformanceObserver {\n _callback: PerformanceObserverCallback;\n _type: 'single' | 'multiple' | void;\n\n constructor(callback: PerformanceObserverCallback) {\n this._callback = callback;\n }\n\n observe(options: PerformanceObserverInit): void {\n if (!NativePerformanceObserver) {\n warnNoNativePerformanceObserver();\n return;\n }\n\n this._validateObserveOptions(options);\n\n let requestedEntryTypes;\n\n if (options.entryTypes) {\n this._type = 'multiple';\n requestedEntryTypes = new Map(\n options.entryTypes.map(t => [t, undefined]),\n );\n } else {\n this._type = 'single';\n requestedEntryTypes = new Map([\n [options.type, options.durationThreshold],\n ]);\n }\n\n // The same observer may receive multiple calls to \"observe\", so we need\n // to check what is new on this call vs. previous ones.\n const currentEntryTypes = registeredObservers.get(this)?.entryTypes;\n const nextEntryTypes = currentEntryTypes\n ? union(requestedEntryTypes, currentEntryTypes)\n : requestedEntryTypes;\n\n // This `observe` call is a no-op because there are no new things to observe.\n if (currentEntryTypes && currentEntryTypes.size === nextEntryTypes.size) {\n return;\n }\n\n registeredObservers.set(this, {\n callback: this._callback,\n entryTypes: nextEntryTypes,\n });\n\n if (!isOnPerformanceEntryCallbackSet) {\n NativePerformanceObserver.setOnPerformanceEntryCallback(\n onPerformanceEntry,\n );\n isOnPerformanceEntryCallbackSet = true;\n }\n\n // We only need to start listenening to new entry types being observed in\n // this observer.\n const newEntryTypes = currentEntryTypes\n ? difference(\n new Set(requestedEntryTypes.keys()),\n new Set(currentEntryTypes.keys()),\n )\n : new Set(requestedEntryTypes.keys());\n for (const type of newEntryTypes) {\n if (!observerCountPerEntryType.has(type)) {\n const rawType = performanceEntryTypeToRaw(type);\n NativePerformanceObserver.startReporting(rawType);\n }\n observerCountPerEntryType.set(\n type,\n (observerCountPerEntryType.get(type) ?? 0) + 1,\n );\n }\n applyDurationThresholds();\n }\n\n disconnect(): void {\n if (!NativePerformanceObserver) {\n warnNoNativePerformanceObserver();\n return;\n }\n\n const observerConfig = registeredObservers.get(this);\n if (!observerConfig) {\n return;\n }\n\n // Disconnect this observer\n for (const type of observerConfig.entryTypes.keys()) {\n const numberOfObserversForThisType =\n observerCountPerEntryType.get(type) ?? 0;\n if (numberOfObserversForThisType === 1) {\n observerCountPerEntryType.delete(type);\n NativePerformanceObserver.stopReporting(\n performanceEntryTypeToRaw(type),\n );\n } else if (numberOfObserversForThisType !== 0) {\n observerCountPerEntryType.set(type, numberOfObserversForThisType - 1);\n }\n }\n\n // Disconnect all observers if this was the last one\n registeredObservers.delete(this);\n if (registeredObservers.size === 0) {\n NativePerformanceObserver.setOnPerformanceEntryCallback(undefined);\n isOnPerformanceEntryCallbackSet = false;\n }\n\n applyDurationThresholds();\n }\n\n _validateObserveOptions(options: PerformanceObserverInit): void {\n const {type, entryTypes, durationThreshold} = options;\n\n if (!type && !entryTypes) {\n throw new TypeError(\n \"Failed to execute 'observe' on 'PerformanceObserver': An observe() call must not include both entryTypes and type arguments.\",\n );\n }\n\n if (entryTypes && type) {\n throw new TypeError(\n \"Failed to execute 'observe' on 'PerformanceObserver': An observe() call must include either entryTypes or type arguments.\",\n );\n }\n\n if (this._type === 'multiple' && type) {\n throw new Error(\n \"Failed to execute 'observe' on 'PerformanceObserver': This observer has performed observe({entryTypes:...}, therefore it cannot perform observe({type:...})\",\n );\n }\n\n if (this._type === 'single' && entryTypes) {\n throw new Error(\n \"Failed to execute 'observe' on 'PerformanceObserver': This PerformanceObserver has performed observe({type:...}, therefore it cannot perform observe({entryTypes:...})\",\n );\n }\n\n if (entryTypes && durationThreshold !== undefined) {\n throw new TypeError(\n \"Failed to execute 'observe' on 'PerformanceObserver': An observe() call must not include both entryTypes and durationThreshold arguments.\",\n );\n }\n }\n\n static supportedEntryTypes: $ReadOnlyArray =\n Object.freeze(['mark', 'measure', 'event']);\n}\n\n// As a Set union, except if value exists in both, we take minimum\nfunction union(\n a: $ReadOnlyMap,\n b: $ReadOnlyMap,\n): Map {\n const res = new Map();\n for (const [k, v] of a) {\n if (!b.has(k)) {\n res.set(k, v);\n } else {\n res.set(k, Math.min(v ?? 0, b.get(k) ?? 0));\n }\n }\n return res;\n}\n\nfunction difference(a: $ReadOnlySet, b: $ReadOnlySet): Set {\n return new Set([...a].filter(x => !b.has(x)));\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport type {\n RawPerformanceEntry,\n RawPerformanceEntryType,\n} from './NativePerformanceObserver';\nimport type {PerformanceEntryType} from './PerformanceEntry';\n\nimport {PerformanceEntry} from './PerformanceEntry';\nimport {PerformanceEventTiming} from './PerformanceEventTiming';\n\nexport const RawPerformanceEntryTypeValues = {\n UNDEFINED: 0,\n MARK: 1,\n MEASURE: 2,\n EVENT: 3,\n};\n\nexport function rawToPerformanceEntry(\n entry: RawPerformanceEntry,\n): PerformanceEntry {\n if (entry.entryType === RawPerformanceEntryTypeValues.EVENT) {\n return new PerformanceEventTiming({\n name: entry.name,\n startTime: entry.startTime,\n duration: entry.duration,\n processingStart: entry.processingStart,\n processingEnd: entry.processingEnd,\n interactionId: entry.interactionId,\n });\n } else {\n return new PerformanceEntry({\n name: entry.name,\n entryType: rawToPerformanceEntryType(entry.entryType),\n startTime: entry.startTime,\n duration: entry.duration,\n });\n }\n}\n\nexport function rawToPerformanceEntryType(\n type: RawPerformanceEntryType,\n): PerformanceEntryType {\n switch (type) {\n case RawPerformanceEntryTypeValues.MARK:\n return 'mark';\n case RawPerformanceEntryTypeValues.MEASURE:\n return 'measure';\n case RawPerformanceEntryTypeValues.EVENT:\n return 'event';\n case RawPerformanceEntryTypeValues.UNDEFINED:\n throw new TypeError(\n \"rawToPerformanceEntryType: UNDEFINED can't be cast to PerformanceEntryType\",\n );\n default:\n throw new TypeError(\n `rawToPerformanceEntryType: unexpected performance entry type received: ${type}`,\n );\n }\n}\n\nexport function performanceEntryTypeToRaw(\n type: PerformanceEntryType,\n): RawPerformanceEntryType {\n switch (type) {\n case 'mark':\n return RawPerformanceEntryTypeValues.MARK;\n case 'measure':\n return RawPerformanceEntryTypeValues.MEASURE;\n case 'event':\n return RawPerformanceEntryTypeValues.EVENT;\n default:\n // Verify exhaustive check with Flow\n (type: empty);\n throw new TypeError(\n `performanceEntryTypeToRaw: unexpected performance entry type received: ${type}`,\n );\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport type {HighResTimeStamp} from './PerformanceEntry';\n\nimport {PerformanceEntry} from './PerformanceEntry';\n\nexport class PerformanceEventTiming extends PerformanceEntry {\n processingStart: HighResTimeStamp;\n processingEnd: HighResTimeStamp;\n interactionId: number;\n\n constructor(init: {\n name: string,\n startTime?: HighResTimeStamp,\n duration?: HighResTimeStamp,\n processingStart?: HighResTimeStamp,\n processingEnd?: HighResTimeStamp,\n interactionId?: number,\n }) {\n super({\n name: init.name,\n entryType: 'event',\n startTime: init.startTime ?? 0,\n duration: init.duration ?? 0,\n });\n this.processingStart = init.processingStart ?? 0;\n this.processingEnd = init.processingEnd ?? 0;\n this.interactionId = init.interactionId ?? 0;\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nexport type HighResTimeStamp = number;\nexport type PerformanceEntryType = 'mark' | 'measure' | 'event';\n\nexport class PerformanceEntry {\n name: string;\n entryType: PerformanceEntryType;\n startTime: HighResTimeStamp;\n duration: HighResTimeStamp;\n\n constructor(init: {\n name: string,\n entryType: PerformanceEntryType,\n startTime: HighResTimeStamp,\n duration: HighResTimeStamp,\n }) {\n this.name = init.name;\n this.entryType = init.entryType;\n this.startTime = init.startTime;\n this.duration = init.duration;\n }\n\n toJSON(): {\n name: string,\n entryType: PerformanceEntryType,\n startTime: HighResTimeStamp,\n duration: HighResTimeStamp,\n } {\n return {\n name: this.name,\n entryType: this.entryType,\n startTime: this.startTime,\n duration: this.duration,\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n * @oncall react_native\n */\n\n// flowlint unsafe-getters-setters:off\n\nexport type MemoryInfoLike = {\n jsHeapSizeLimit: ?number,\n totalJSHeapSize: ?number,\n usedJSHeapSize: ?number,\n};\n\n// Read-only object with JS memory information. This is returned by the performance.memory API.\nexport default class MemoryInfo {\n _jsHeapSizeLimit: ?number;\n _totalJSHeapSize: ?number;\n _usedJSHeapSize: ?number;\n\n constructor(memoryInfo: ?MemoryInfoLike) {\n if (memoryInfo != null) {\n this._jsHeapSizeLimit = memoryInfo.jsHeapSizeLimit;\n this._totalJSHeapSize = memoryInfo.totalJSHeapSize;\n this._usedJSHeapSize = memoryInfo.usedJSHeapSize;\n }\n }\n\n /**\n * The maximum size of the heap, in bytes, that is available to the context\n */\n get jsHeapSizeLimit(): ?number {\n return this._jsHeapSizeLimit;\n }\n\n /**\n * The total allocated heap size, in bytes\n */\n get totalJSHeapSize(): ?number {\n return this._totalJSHeapSize;\n }\n\n /**\n * The currently active segment of JS heap, in bytes.\n */\n get usedJSHeapSize(): ?number {\n return this._usedJSHeapSize;\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n * @oncall react_native\n */\n\n// flowlint unsafe-getters-setters:off\n\nimport type {ReactNativeStartupTiming as ReactNativeStartupTimingType} from './NativePerformance';\n\n// Read-only object with RN startup timing information.\n// This is returned by the performance.reactNativeStartup API.\nexport default class ReactNativeStartupTiming {\n // All time information here are in ms. To match web spec,\n // the default value for timings are zero if not present.\n // See https://www.w3.org/TR/performance-timeline/#performancetiming-interface\n _startTime = 0;\n _endTime = 0;\n _executeJavaScriptBundleEntryPointStart = 0;\n _executeJavaScriptBundleEntryPointEnd = 0;\n\n constructor(startUpTiming: ?ReactNativeStartupTimingType) {\n if (startUpTiming != null) {\n this._startTime = startUpTiming.startTime;\n this._endTime = startUpTiming.endTime;\n this._executeJavaScriptBundleEntryPointStart =\n startUpTiming.executeJavaScriptBundleEntryPointStart;\n this._executeJavaScriptBundleEntryPointEnd =\n startUpTiming.executeJavaScriptBundleEntryPointEnd;\n }\n }\n\n /**\n * Start time of the RN app startup process. This is provided by the platform by implementing the `ReactMarker.setAppStartTime` API in the native platform code.\n */\n get startTime(): number {\n return this._startTime;\n }\n\n /**\n * End time of the RN app startup process. This is equal to `executeJavaScriptBundleEntryPointEnd`.\n */\n get endTime(): number {\n return this._endTime;\n }\n\n /**\n * Start time of JS bundle being executed. This indicates the RN JS bundle is loaded and start to be evaluated.\n */\n get executeJavaScriptBundleEntryPointStart(): number {\n return this._executeJavaScriptBundleEntryPointStart;\n }\n\n /**\n * End time of JS bundle being executed. This indicates all the synchronous entry point jobs are finished.\n */\n get executeJavaScriptBundleEntryPointEnd(): number {\n return this._executeJavaScriptBundleEntryPointEnd;\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\n/**\n * Sets up the console and exception handling (redbox) for React Native.\n * You can use this module directly, or just require InitializeCore.\n */\nconst ExceptionsManager = require('./ExceptionsManager');\nExceptionsManager.installConsoleErrorReporter();\n\n// Set up error handler\nif (!global.__fbDisableExceptionsManager) {\n const handleError = (e: mixed, isFatal: boolean) => {\n try {\n ExceptionsManager.handleException(e, isFatal);\n } catch (ee) {\n console.log('Failed to print error: ', ee.message);\n throw e;\n }\n };\n\n const ErrorUtils = require('../vendor/core/ErrorUtils');\n ErrorUtils.setGlobalHandler(handleError);\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nimport type {ExtendedError} from './ExtendedError';\nimport type {ExceptionData} from './NativeExceptionsManager';\n\nclass SyntheticError extends Error {\n name: string = '';\n}\n\ntype ExceptionDecorator = ExceptionData => ExceptionData;\n\nlet userExceptionDecorator: ?ExceptionDecorator;\nlet inUserExceptionDecorator = false;\n\n// This Symbol is used to decorate an ExtendedError with extra data in select usecases.\n// Note that data passed using this method should be strictly contained,\n// as data that's not serializable/too large may cause issues with passing the error to the native code.\nconst decoratedExtraDataKey: symbol = Symbol('decoratedExtraDataKey');\n\n/**\n * Allows the app to add information to the exception report before it is sent\n * to native. This API is not final.\n */\n\nfunction unstable_setExceptionDecorator(\n exceptionDecorator: ?ExceptionDecorator,\n) {\n userExceptionDecorator = exceptionDecorator;\n}\n\nfunction preprocessException(data: ExceptionData): ExceptionData {\n if (userExceptionDecorator && !inUserExceptionDecorator) {\n inUserExceptionDecorator = true;\n try {\n return userExceptionDecorator(data);\n } catch {\n // Fall through\n } finally {\n inUserExceptionDecorator = false;\n }\n }\n return data;\n}\n\n/**\n * Handles the developer-visible aspect of errors and exceptions\n */\nlet exceptionID = 0;\nfunction reportException(\n e: ExtendedError,\n isFatal: boolean,\n reportToConsole: boolean, // only true when coming from handleException; the error has not yet been logged\n) {\n const parseErrorStack = require('./Devtools/parseErrorStack');\n const stack = parseErrorStack(e?.stack);\n const currentExceptionID = ++exceptionID;\n const originalMessage = e.message || '';\n let message = originalMessage;\n if (e.componentStack != null) {\n message += `\\n\\nThis error is located at:${e.componentStack}`;\n }\n const namePrefix = e.name == null || e.name === '' ? '' : `${e.name}: `;\n\n if (!message.startsWith(namePrefix)) {\n message = namePrefix + message;\n }\n\n message =\n e.jsEngine == null ? message : `${message}, js engine: ${e.jsEngine}`;\n\n const data = preprocessException({\n message,\n originalMessage: message === originalMessage ? null : originalMessage,\n name: e.name == null || e.name === '' ? null : e.name,\n componentStack:\n typeof e.componentStack === 'string' ? e.componentStack : null,\n stack,\n id: currentExceptionID,\n isFatal,\n extraData: {\n // $FlowFixMe[incompatible-use] we can't define a type with a Symbol-keyed field in flow\n ...e[decoratedExtraDataKey],\n jsEngine: e.jsEngine,\n rawStack: e.stack,\n },\n });\n\n if (reportToConsole) {\n // we feed back into console.error, to make sure any methods that are\n // monkey patched on top of console.error are called when coming from\n // handleException\n console.error(data.message);\n }\n\n if (__DEV__) {\n const LogBox = require('../LogBox/LogBox').default;\n LogBox.addException({\n ...data,\n isComponentError: !!e.isComponentError,\n });\n } else if (isFatal || e.type !== 'warn') {\n const NativeExceptionsManager =\n require('./NativeExceptionsManager').default;\n if (NativeExceptionsManager) {\n NativeExceptionsManager.reportException(data);\n }\n }\n}\n\ndeclare var console: typeof console & {\n _errorOriginal: typeof console.error,\n reportErrorsAsExceptions: boolean,\n ...\n};\n\n// If we trigger console.error _from_ handleException,\n// we do want to make sure that console.error doesn't trigger error reporting again\nlet inExceptionHandler = false;\n\n/**\n * Logs exceptions to the (native) console and displays them\n */\nfunction handleException(e: mixed, isFatal: boolean) {\n let error: Error;\n if (e instanceof Error) {\n error = e;\n } else {\n // Workaround for reporting errors caused by `throw 'some string'`\n // Unfortunately there is no way to figure out the stacktrace in this\n // case, so if you ended up here trying to trace an error, look for\n // `throw ''` somewhere in your codebase.\n error = new SyntheticError(e);\n }\n try {\n inExceptionHandler = true;\n /* $FlowFixMe[class-object-subtyping] added when improving typing for this\n * parameters */\n reportException(error, isFatal, /*reportToConsole*/ true);\n } finally {\n inExceptionHandler = false;\n }\n}\n\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\nfunction reactConsoleErrorHandler(...args) {\n // bubble up to any original handlers\n console._errorOriginal(...args);\n if (!console.reportErrorsAsExceptions) {\n return;\n }\n if (inExceptionHandler) {\n // The fundamental trick here is that are multiple entry point to logging errors:\n // (see D19743075 for more background)\n //\n // 1. An uncaught exception being caught by the global handler\n // 2. An error being logged throw console.error\n //\n // However, console.error is monkey patched multiple times: by this module, and by the\n // DevTools setup that sends messages to Metro.\n // The patching order cannot be relied upon.\n //\n // So, some scenarios that are handled by this flag:\n //\n // Logging an error:\n // 1. console.error called from user code\n // 2. (possibly) arrives _first_ at DevTool handler, send to Metro\n // 3. Bubbles to here\n // 4. goes into report Exception.\n // 5. should not trigger console.error again, to avoid looping / logging twice\n // 6. should still bubble up to original console\n // (which might either be console.log, or the DevTools handler in case it patched _earlier_ and (2) didn't happen)\n //\n // Throwing an uncaught exception:\n // 1. exception thrown\n // 2. picked up by handleException\n // 3. should be sent to console.error (not console._errorOriginal, as DevTools might have patched _later_ and it needs to send it to Metro)\n // 4. that _might_ bubble again to the `reactConsoleErrorHandle` defined here\n // -> should not handle exception _again_, to avoid looping / showing twice (this code branch)\n // 5. should still bubble up to original console (which might either be console.log, or the DevTools handler in case that one patched _earlier_)\n return;\n }\n\n let error;\n\n const firstArg = args[0];\n if (firstArg?.stack) {\n // reportException will console.error this with high enough fidelity.\n error = firstArg;\n } else {\n const stringifySafe = require('../Utilities/stringifySafe').default;\n if (typeof firstArg === 'string' && firstArg.startsWith('Warning: ')) {\n // React warnings use console.error so that a stack trace is shown, but\n // we don't (currently) want these to show a redbox\n // (Note: Logic duplicated in polyfills/console.js.)\n return;\n }\n const message = args\n .map(arg => (typeof arg === 'string' ? arg : stringifySafe(arg)))\n .join(' ');\n\n error = new SyntheticError(message);\n error.name = 'console.error';\n }\n\n reportException(\n /* $FlowFixMe[class-object-subtyping] added when improving typing for this\n * parameters */\n error,\n false, // isFatal\n false, // reportToConsole\n );\n}\n\n/**\n * Shows a redbox with stacktrace for all console.error messages. Disable by\n * setting `console.reportErrorsAsExceptions = false;` in your app.\n */\nfunction installConsoleErrorReporter() {\n // Enable reportErrorsAsExceptions\n if (console._errorOriginal) {\n return; // already installed\n }\n // Flow doesn't like it when you set arbitrary values on a global object\n console._errorOriginal = console.error.bind(console);\n console.error = reactConsoleErrorHandler;\n if (console.reportErrorsAsExceptions === undefined) {\n // Individual apps can disable this\n // Flow doesn't like it when you set arbitrary values on a global object\n console.reportErrorsAsExceptions = true;\n }\n}\n\nmodule.exports = {\n decoratedExtraDataKey,\n handleException,\n installConsoleErrorReporter,\n SyntheticError,\n unstable_setExceptionDecorator,\n};\n","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nvar setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeFunction = require(\"./isNativeFunction.js\");\nvar construct = require(\"./construct.js\");\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _wrapNativeSuper(Class);\n}\nmodule.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nmodule.exports = _isNativeFunction, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct.bind(), module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n return _construct.apply(null, arguments);\n}\nmodule.exports = _construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nimport type {StackFrame} from '../NativeExceptionsManager';\nimport type {HermesParsedStack} from './parseHermesStack';\n\nconst parseHermesStack = require('./parseHermesStack');\n\nfunction convertHermesStack(stack: HermesParsedStack): Array {\n const frames: Array = [];\n for (const entry of stack.entries) {\n if (entry.type !== 'FRAME') {\n continue;\n }\n const {location, functionName} = entry;\n if (location.type === 'NATIVE' || location.type === 'INTERNAL_BYTECODE') {\n continue;\n }\n frames.push({\n methodName: functionName,\n file: location.sourceUrl,\n lineNumber: location.line1Based,\n column:\n location.type === 'SOURCE'\n ? location.column1Based - 1\n : location.virtualOffset0Based,\n });\n }\n return frames;\n}\n\nfunction parseErrorStack(errorStack?: string): Array {\n if (errorStack == null) {\n return [];\n }\n\n const stacktraceParser = require('stacktrace-parser');\n const parsedStack = Array.isArray(errorStack)\n ? errorStack\n : global.HermesInternal\n ? convertHermesStack(parseHermesStack(errorStack))\n : stacktraceParser.parse(errorStack).map((frame): StackFrame => ({\n ...frame,\n column: frame.column != null ? frame.column - 1 : null,\n }));\n\n return parsedStack;\n}\n\nmodule.exports = parseErrorStack;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar UNKNOWN_FUNCTION = '';\n/**\n * This parses the different stack traces and puts them into one format\n * This borrows heavily from TraceKit (https://github.com/csnover/TraceKit)\n */\n\nfunction parse(stackString) {\n var lines = stackString.split('\\n');\n return lines.reduce(function (stack, line) {\n var parseResult = parseChrome(line) || parseWinjs(line) || parseGecko(line) || parseNode(line) || parseJSC(line);\n\n if (parseResult) {\n stack.push(parseResult);\n }\n\n return stack;\n }, []);\n}\nvar chromeRe = /^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack||\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nvar chromeEvalRe = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nfunction parseChrome(line) {\n var parts = chromeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n var submatch = chromeEvalRe.exec(parts[2]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n\n parts[3] = submatch[2]; // line\n\n parts[4] = submatch[3]; // column\n }\n\n return {\n file: !isNative ? parts[2] : null,\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: isNative ? [parts[2]] : [],\n lineNumber: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null\n };\n}\n\nvar winjsRe = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseWinjs(line) {\n var parts = winjsRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n}\n\nvar geckoRe = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar geckoEvalRe = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nfunction parseGecko(line) {\n var parts = geckoRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n var submatch = geckoEvalRe.exec(parts[3]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = null; // no column when eval\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: parts[2] ? parts[2].split(',') : [],\n lineNumber: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null\n };\n}\n\nvar javaScriptCoreRe = /^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i;\n\nfunction parseJSC(line) {\n var parts = javaScriptCoreRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[4],\n column: parts[5] ? +parts[5] : null\n };\n}\n\nvar nodeRe = /^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseNode(line) {\n var parts = nodeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n}\n\nexports.parse = parse;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\ntype HermesStackLocationNative = $ReadOnly<{\n type: 'NATIVE',\n}>;\n\ntype HermesStackLocationSource = $ReadOnly<{\n type: 'SOURCE',\n sourceUrl: string,\n line1Based: number,\n column1Based: number,\n}>;\n\ntype HermesStackLocationInternalBytecode = $ReadOnly<{\n type: 'INTERNAL_BYTECODE',\n sourceUrl: string,\n line1Based: number,\n virtualOffset0Based: number,\n}>;\n\ntype HermesStackLocationBytecode = $ReadOnly<{\n type: 'BYTECODE',\n sourceUrl: string,\n line1Based: number,\n virtualOffset0Based: number,\n}>;\n\ntype HermesStackLocation =\n | HermesStackLocationNative\n | HermesStackLocationSource\n | HermesStackLocationInternalBytecode\n | HermesStackLocationBytecode;\n\ntype HermesStackEntryFrame = $ReadOnly<{\n type: 'FRAME',\n location: HermesStackLocation,\n functionName: string,\n}>;\n\ntype HermesStackEntrySkipped = $ReadOnly<{\n type: 'SKIPPED',\n count: number,\n}>;\n\ntype HermesStackEntry = HermesStackEntryFrame | HermesStackEntrySkipped;\n\nexport type HermesParsedStack = $ReadOnly<{\n message: string,\n entries: $ReadOnlyArray,\n}>;\n\n// Capturing groups:\n// 1. function name\n// 2. is this a native stack frame?\n// 3. is this a bytecode address or a source location?\n// 4. source URL (filename)\n// 5. line number (1 based)\n// 6. column number (1 based) or virtual offset (0 based)\nconst RE_FRAME =\n /^ {4}at (.+?)(?: \\((native)\\)?| \\((address at )?(.*?):(\\d+):(\\d+)\\))$/;\n\n// Capturing groups:\n// 1. count of skipped frames\nconst RE_SKIPPED = /^ {4}... skipping (\\d+) frames$/;\n\nfunction isInternalBytecodeSourceUrl(sourceUrl: string): boolean {\n // See https://github.com/facebook/hermes/blob/3332fa020cae0bab751f648db7c94e1d687eeec7/lib/VM/Runtime.cpp#L1100\n return sourceUrl === 'InternalBytecode.js';\n}\n\nfunction parseLine(line: string): ?HermesStackEntry {\n const asFrame = line.match(RE_FRAME);\n if (asFrame) {\n return {\n type: 'FRAME',\n functionName: asFrame[1],\n location:\n asFrame[2] === 'native'\n ? {type: 'NATIVE'}\n : asFrame[3] === 'address at '\n ? isInternalBytecodeSourceUrl(asFrame[4])\n ? {\n type: 'INTERNAL_BYTECODE',\n sourceUrl: asFrame[4],\n line1Based: Number.parseInt(asFrame[5], 10),\n virtualOffset0Based: Number.parseInt(asFrame[6], 10),\n }\n : {\n type: 'BYTECODE',\n sourceUrl: asFrame[4],\n line1Based: Number.parseInt(asFrame[5], 10),\n virtualOffset0Based: Number.parseInt(asFrame[6], 10),\n }\n : {\n type: 'SOURCE',\n sourceUrl: asFrame[4],\n line1Based: Number.parseInt(asFrame[5], 10),\n column1Based: Number.parseInt(asFrame[6], 10),\n },\n };\n }\n const asSkipped = line.match(RE_SKIPPED);\n if (asSkipped) {\n return {\n type: 'SKIPPED',\n count: Number.parseInt(asSkipped[1], 10),\n };\n }\n}\n\nmodule.exports = function parseHermesStack(stack: string): HermesParsedStack {\n const lines = stack.split(/\\n/);\n let entries: Array = [];\n let lastMessageLine = -1;\n for (let i = 0; i < lines.length; ++i) {\n const line = lines[i];\n if (!line) {\n continue;\n }\n const entry = parseLine(line);\n if (entry) {\n entries.push(entry);\n continue;\n }\n // No match - we're still in the message\n lastMessageLine = i;\n entries = [];\n }\n const message = lines.slice(0, lastMessageLine + 1).join('\\n');\n return {message, entries};\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nconst Platform = require('../Utilities/Platform');\n\nexport type StackFrame = {|\n column: ?number,\n file: ?string,\n lineNumber: ?number,\n methodName: string,\n collapse?: boolean,\n|};\nexport type ExceptionData = {\n message: string,\n originalMessage: ?string,\n name: ?string,\n componentStack: ?string,\n stack: Array,\n id: number,\n isFatal: boolean,\n // flowlint-next-line unclear-type:off\n extraData?: Object,\n ...\n};\nexport interface Spec extends TurboModule {\n // Deprecated: Use `reportException`\n +reportFatalException: (\n message: string,\n stack: Array,\n exceptionId: number,\n ) => void;\n // Deprecated: Use `reportException`\n +reportSoftException: (\n message: string,\n stack: Array,\n exceptionId: number,\n ) => void;\n +reportException?: (data: ExceptionData) => void;\n +updateExceptionMessage: (\n message: string,\n stack: Array,\n exceptionId: number,\n ) => void;\n // TODO(T53311281): This is a noop on iOS now. Implement it.\n +dismissRedbox?: () => void;\n}\n\nconst NativeModule =\n TurboModuleRegistry.getEnforcing('ExceptionsManager');\n\nconst ExceptionsManager = {\n reportFatalException(\n message: string,\n stack: Array,\n exceptionId: number,\n ) {\n NativeModule.reportFatalException(message, stack, exceptionId);\n },\n reportSoftException(\n message: string,\n stack: Array,\n exceptionId: number,\n ) {\n NativeModule.reportSoftException(message, stack, exceptionId);\n },\n updateExceptionMessage(\n message: string,\n stack: Array,\n exceptionId: number,\n ) {\n NativeModule.updateExceptionMessage(message, stack, exceptionId);\n },\n dismissRedbox(): void {\n if (Platform.OS !== 'ios' && NativeModule.dismissRedbox) {\n // TODO(T53311281): This is a noop on iOS now. Implement it.\n NativeModule.dismissRedbox();\n }\n },\n reportException(data: ExceptionData): void {\n if (NativeModule.reportException) {\n NativeModule.reportException(data);\n return;\n }\n if (data.isFatal) {\n ExceptionsManager.reportFatalException(data.message, data.stack, data.id);\n } else {\n ExceptionsManager.reportSoftException(data.message, data.stack, data.id);\n }\n },\n};\n\nexport default ExceptionsManager;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nconst {polyfillGlobal} = require('../Utilities/PolyfillFunctions');\n\n/**\n * Set up Promise. The native Promise implementation throws the following error:\n * ERROR: Event loop not supported.\n *\n * If you don't need these polyfills, don't use InitializeCore; just directly\n * require the modules you need from InitializeCore for setup.\n */\n\n// If global.Promise is provided by Hermes, we are confident that it can provide\n// all the methods needed by React Native, so we can directly use it.\nif (global?.HermesInternal?.hasPromise?.()) {\n const HermesPromise = global.Promise;\n\n if (__DEV__) {\n if (typeof HermesPromise !== 'function') {\n console.error('HermesPromise does not exist');\n }\n global.HermesInternal?.enablePromiseRejectionTracker?.(\n require('../promiseRejectionTrackingOptions').default,\n );\n }\n} else {\n polyfillGlobal('Promise', () => require('../Promise'));\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nconst defineLazyObjectProperty = require('./defineLazyObjectProperty');\n\n/**\n * Sets an object's property. If a property with the same name exists, this will\n * replace it but maintain its descriptor configuration. The property will be\n * replaced with a lazy getter.\n *\n * In DEV mode the original property value will be preserved as `original[PropertyName]`\n * so that, if necessary, it can be restored. For example, if you want to route\n * network requests through DevTools (to trace them):\n *\n * global.XMLHttpRequest = global.originalXMLHttpRequest;\n *\n * @see https://github.com/facebook/react-native/issues/934\n */\nfunction polyfillObjectProperty(\n object: {...},\n name: string,\n getValue: () => T,\n): void {\n const descriptor = Object.getOwnPropertyDescriptor<$FlowFixMe>(object, name);\n if (__DEV__ && descriptor) {\n const backupName = `original${name[0].toUpperCase()}${name.substr(1)}`;\n Object.defineProperty(object, backupName, descriptor);\n }\n\n const {enumerable, writable, configurable = false} = descriptor || {};\n if (descriptor && !configurable) {\n console.error('Failed to set polyfill. ' + name + ' is not configurable.');\n return;\n }\n\n defineLazyObjectProperty(object, name, {\n get: getValue,\n enumerable: enumerable !== false,\n writable: writable !== false,\n });\n}\n\nfunction polyfillGlobal(name: string, getValue: () => T): void {\n polyfillObjectProperty(global, name, getValue);\n}\n\nmodule.exports = {polyfillObjectProperty, polyfillGlobal};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nconst Promise = require('promise/setimmediate/es6-extensions');\n\nrequire('promise/setimmediate/finally');\n\nif (__DEV__) {\n require('promise/setimmediate/rejection-tracking').enable(\n require('./promiseRejectionTrackingOptions').default,\n );\n}\n\nmodule.exports = Promise;\n","'use strict';\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\nPromise.prototype.finally = function (f) {\n return this.then(function (value) {\n return Promise.resolve(f()).then(function () {\n return value;\n });\n }, function (err) {\n return Promise.resolve(f()).then(function () {\n throw err;\n });\n });\n};\n","'use strict';\n\n\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n try {\n return obj.then;\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nfunction tryCallOne(fn, a) {\n try {\n return fn(a);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\nfunction tryCallTwo(fn, a, b) {\n try {\n fn(a, b);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('Promise constructor\\'s argument is not a function');\n }\n this._x = 0;\n this._y = 0;\n this._z = null;\n this._A = null;\n if (fn === noop) return;\n doResolve(fn, this);\n}\nPromise._B = null;\nPromise._C = null;\nPromise._D = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n if (this.constructor !== Promise) {\n return safeThen(this, onFulfilled, onRejected);\n }\n var res = new Promise(noop);\n handle(this, new Handler(onFulfilled, onRejected, res));\n return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n return new self.constructor(function (resolve, reject) {\n var res = new Promise(noop);\n res.then(resolve, reject);\n handle(self, new Handler(onFulfilled, onRejected, res));\n });\n}\nfunction handle(self, deferred) {\n while (self._y === 3) {\n self = self._z;\n }\n if (Promise._B) {\n Promise._B(self);\n }\n if (self._y === 0) {\n if (self._x === 0) {\n self._x = 1;\n self._A = deferred;\n return;\n }\n if (self._x === 1) {\n self._x = 2;\n self._A = [self._A, deferred];\n return;\n }\n self._A.push(deferred);\n return;\n }\n handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n setImmediate(function() {\n var cb = self._y === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n if (self._y === 1) {\n resolve(deferred.promise, self._z);\n } else {\n reject(deferred.promise, self._z);\n }\n return;\n }\n var ret = tryCallOne(cb, self._z);\n if (ret === IS_ERROR) {\n reject(deferred.promise, LAST_ERROR);\n } else {\n resolve(deferred.promise, ret);\n }\n });\n}\nfunction resolve(self, newValue) {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self) {\n return reject(\n self,\n new TypeError('A promise cannot be resolved with itself.')\n );\n }\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = getThen(newValue);\n if (then === IS_ERROR) {\n return reject(self, LAST_ERROR);\n }\n if (\n then === self.then &&\n newValue instanceof Promise\n ) {\n self._y = 3;\n self._z = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(then.bind(newValue), self);\n return;\n }\n }\n self._y = 1;\n self._z = newValue;\n finale(self);\n}\n\nfunction reject(self, newValue) {\n self._y = 2;\n self._z = newValue;\n if (Promise._C) {\n Promise._C(self, newValue);\n }\n finale(self);\n}\nfunction finale(self) {\n if (self._x === 1) {\n handle(self, self._A);\n self._A = null;\n }\n if (self._x === 2) {\n for (var i = 0; i < self._A.length; i++) {\n handle(self, self._A[i]);\n }\n self._A = null;\n }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n var done = false;\n var res = tryCallTwo(fn, function (value) {\n if (done) return;\n done = true;\n resolve(promise, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(promise, reason);\n });\n if (!done && res === IS_ERROR) {\n done = true;\n reject(promise, LAST_ERROR);\n }\n}\n","'use strict';\n\n//This file contains the ES6 extensions to the core Promises/A+ API\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\n\n/* Static Functions */\n\nvar TRUE = valuePromise(true);\nvar FALSE = valuePromise(false);\nvar NULL = valuePromise(null);\nvar UNDEFINED = valuePromise(undefined);\nvar ZERO = valuePromise(0);\nvar EMPTYSTRING = valuePromise('');\n\nfunction valuePromise(value) {\n var p = new Promise(Promise._D);\n p._y = 1;\n p._z = value;\n return p;\n}\nPromise.resolve = function (value) {\n if (value instanceof Promise) return value;\n\n if (value === null) return NULL;\n if (value === undefined) return UNDEFINED;\n if (value === true) return TRUE;\n if (value === false) return FALSE;\n if (value === 0) return ZERO;\n if (value === '') return EMPTYSTRING;\n\n if (typeof value === 'object' || typeof value === 'function') {\n try {\n var then = value.then;\n if (typeof then === 'function') {\n return new Promise(then.bind(value));\n }\n } catch (ex) {\n return new Promise(function (resolve, reject) {\n reject(ex);\n });\n }\n }\n return valuePromise(value);\n};\n\nvar iterableToArray = function (iterable) {\n if (typeof Array.from === 'function') {\n // ES2015+, iterables exist\n iterableToArray = Array.from;\n return Array.from(iterable);\n }\n\n // ES5, only arrays and array-likes exist\n iterableToArray = function (x) { return Array.prototype.slice.call(x); };\n return Array.prototype.slice.call(iterable);\n}\n\nPromise.all = function (arr) {\n var args = iterableToArray(arr);\n\n return new Promise(function (resolve, reject) {\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n if (val instanceof Promise && val.then === Promise.prototype.then) {\n while (val._y === 3) {\n val = val._z;\n }\n if (val._y === 1) return res(i, val._z);\n if (val._y === 2) reject(val._z);\n val.then(function (val) {\n res(i, val);\n }, reject);\n return;\n } else {\n var then = val.then;\n if (typeof then === 'function') {\n var p = new Promise(then.bind(val));\n p.then(function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nfunction onSettledFulfill(value) {\n return { status: 'fulfilled', value: value };\n}\nfunction onSettledReject(reason) {\n return { status: 'rejected', reason: reason };\n}\nfunction mapAllSettled(item) {\n if(item && (typeof item === 'object' || typeof item === 'function')){\n if(item instanceof Promise && item.then === Promise.prototype.then){\n return item.then(onSettledFulfill, onSettledReject);\n }\n var then = item.then;\n if (typeof then === 'function') {\n return new Promise(then.bind(item)).then(onSettledFulfill, onSettledReject)\n }\n }\n\n return onSettledFulfill(item);\n}\nPromise.allSettled = function (iterable) {\n return Promise.all(iterableToArray(iterable).map(mapAllSettled));\n};\n\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n iterableToArray(values).forEach(function(value){\n Promise.resolve(value).then(resolve, reject);\n });\n });\n};\n\n/* Prototype Methods */\n\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\n\nfunction getAggregateError(errors){\n if(typeof AggregateError === 'function'){\n return new AggregateError(errors,'All promises were rejected');\n }\n\n var error = new Error('All promises were rejected');\n\n error.name = 'AggregateError';\n error.errors = errors;\n\n return error;\n}\n\nPromise.any = function promiseAny(values) {\n return new Promise(function(resolve, reject) {\n var promises = iterableToArray(values);\n var hasResolved = false;\n var rejectionReasons = [];\n\n function resolveOnce(value) {\n if (!hasResolved) {\n hasResolved = true;\n resolve(value);\n }\n }\n\n function rejectionCheck(reason) {\n rejectionReasons.push(reason);\n\n if (rejectionReasons.length === promises.length) {\n reject(getAggregateError(rejectionReasons));\n }\n }\n\n if(promises.length === 0){\n reject(getAggregateError(rejectionReasons));\n } else {\n promises.forEach(function(value){\n Promise.resolve(value).then(resolveOnce, rejectionCheck);\n });\n }\n });\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nconst {hasNativeConstructor} = require('../Utilities/FeatureDetection');\nconst {polyfillGlobal} = require('../Utilities/PolyfillFunctions');\n\n/**\n * Set up regenerator.\n * You can use this module directly, or just require InitializeCore.\n */\n\nlet hasNativeGenerator;\ntry {\n // If this function was lowered by regenerator-transform, it will try to\n // access `global.regeneratorRuntime` which doesn't exist yet and will throw.\n hasNativeGenerator = hasNativeConstructor(function* () {},\n 'GeneratorFunction');\n} catch {\n // In this case, we know generators are not provided natively.\n hasNativeGenerator = false;\n}\n\n// If generators are provided natively, which suggests that there was no\n// regenerator-transform, then there is no need to set up the runtime.\nif (!hasNativeGenerator) {\n polyfillGlobal('regeneratorRuntime', () => {\n // The require just sets up the global, so make sure when we first\n // invoke it the global does not exist\n delete global.regeneratorRuntime;\n\n // regenerator-runtime/runtime exports the regeneratorRuntime object, so we\n // can return it safely.\n return require('regenerator-runtime/runtime'); // flowlint-line untyped-import:off\n });\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n/**\n * @return whether or not a @param {function} f is provided natively by calling\n * `toString` and check if the result includes `[native code]` in it.\n *\n * Note that a polyfill can technically fake this behavior but few does it.\n * Therefore, this is usually good enough for our purpose.\n */\nfunction isNativeFunction(f: Function): boolean {\n return typeof f === 'function' && f.toString().indexOf('[native code]') > -1;\n}\n\n/**\n * @return whether or not the constructor of @param {object} o is an native\n * function named with @param {string} expectedName.\n */\nfunction hasNativeConstructor(o: Object, expectedName: string): boolean {\n const con = Object.getPrototypeOf(o).constructor;\n return con.name === expectedName && isNativeFunction(con);\n}\n\nmodule.exports = {isNativeFunction, hasNativeConstructor};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next mehtod, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nconst {isNativeFunction} = require('../Utilities/FeatureDetection');\nconst {polyfillGlobal} = require('../Utilities/PolyfillFunctions');\n\nif (__DEV__) {\n if (typeof global.Promise !== 'function') {\n console.error('Promise should exist before setting up timers.');\n }\n}\n\n// Currently, Hermes `Promise` is implemented via Internal Bytecode.\nconst hasHermesPromiseQueuedToJSVM =\n global.HermesInternal?.hasPromise?.() === true &&\n global.HermesInternal?.useEngineQueue?.() === true;\n\nconst hasNativePromise = isNativeFunction(Promise);\nconst hasPromiseQueuedToJSVM = hasNativePromise || hasHermesPromiseQueuedToJSVM;\n\n// In bridgeless mode, timers are host functions installed from cpp.\nif (global.RN$Bridgeless !== true) {\n /**\n * Set up timers.\n * You can use this module directly, or just require InitializeCore.\n */\n const defineLazyTimer = (\n name:\n | $TEMPORARY$string<'cancelAnimationFrame'>\n | $TEMPORARY$string<'cancelIdleCallback'>\n | $TEMPORARY$string<'clearInterval'>\n | $TEMPORARY$string<'clearTimeout'>\n | $TEMPORARY$string<'requestAnimationFrame'>\n | $TEMPORARY$string<'requestIdleCallback'>\n | $TEMPORARY$string<'setInterval'>\n | $TEMPORARY$string<'setTimeout'>,\n ) => {\n polyfillGlobal(name, () => require('./Timers/JSTimers')[name]);\n };\n defineLazyTimer('setTimeout');\n defineLazyTimer('clearTimeout');\n defineLazyTimer('setInterval');\n defineLazyTimer('clearInterval');\n defineLazyTimer('requestAnimationFrame');\n defineLazyTimer('cancelAnimationFrame');\n defineLazyTimer('requestIdleCallback');\n defineLazyTimer('cancelIdleCallback');\n}\n\n/**\n * Set up immediate APIs, which is required to use the same microtask queue\n * as the Promise.\n */\nif (hasPromiseQueuedToJSVM) {\n // When promise queues to the JSVM microtasks queue, we shim the immediate\n // APIs via `queueMicrotask` to maintain the backward compatibility.\n polyfillGlobal(\n 'setImmediate',\n () => require('./Timers/immediateShim').setImmediate,\n );\n polyfillGlobal(\n 'clearImmediate',\n () => require('./Timers/immediateShim').clearImmediate,\n );\n} else {\n // When promise was polyfilled hence is queued to the RN microtask queue,\n // we polyfill the immediate APIs as aliases to the ReactNativeMicrotask APIs.\n // Note that in bridgeless mode, immediate APIs are installed from cpp.\n if (global.RN$Bridgeless !== true) {\n polyfillGlobal(\n 'setImmediate',\n () => require('./Timers/JSTimers').queueReactNativeMicrotask,\n );\n polyfillGlobal(\n 'clearImmediate',\n () => require('./Timers/JSTimers').clearReactNativeMicrotask,\n );\n }\n}\n\n/**\n * Set up the microtask queueing API, which is required to use the same\n * microtask queue as the Promise.\n */\nif (hasHermesPromiseQueuedToJSVM) {\n // Fast path for Hermes.\n polyfillGlobal('queueMicrotask', () => global.HermesInternal?.enqueueJob);\n} else {\n // Polyfill it with promise (regardless it's polyfilled or native) otherwise.\n polyfillGlobal(\n 'queueMicrotask',\n () => require('./Timers/queueMicrotask.js').default,\n );\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport NativeTiming from './NativeTiming';\n\nconst BatchedBridge = require('../../BatchedBridge/BatchedBridge');\nconst Systrace = require('../../Performance/Systrace');\nconst invariant = require('invariant');\n\n/**\n * JS implementation of timer functions. Must be completely driven by an\n * external clock signal, all that's stored here is timerID, timer type, and\n * callback.\n */\n\nexport type JSTimerType =\n | 'setTimeout'\n | 'setInterval'\n | 'requestAnimationFrame'\n | 'queueReactNativeMicrotask'\n | 'requestIdleCallback';\n\n// These timing constants should be kept in sync with the ones in native ios and\n// android `RCTTiming` module.\nconst FRAME_DURATION = 1000 / 60;\nconst IDLE_CALLBACK_FRAME_DEADLINE = 1;\n\n// Parallel arrays\nconst callbacks: Array = [];\nconst types: Array = [];\nconst timerIDs: Array = [];\nlet reactNativeMicrotasks: Array = [];\nlet requestIdleCallbacks: Array = [];\nconst requestIdleCallbackTimeouts: {[number]: number, ...} = {};\n\nlet GUID = 1;\nconst errors: Array = [];\n\nlet hasEmittedTimeDriftWarning = false;\n\n// Returns a free index if one is available, and the next consecutive index otherwise.\nfunction _getFreeIndex(): number {\n let freeIndex = timerIDs.indexOf(null);\n if (freeIndex === -1) {\n freeIndex = timerIDs.length;\n }\n return freeIndex;\n}\n\nfunction _allocateCallback(func: Function, type: JSTimerType): number {\n const id = GUID++;\n const freeIndex = _getFreeIndex();\n timerIDs[freeIndex] = id;\n callbacks[freeIndex] = func;\n types[freeIndex] = type;\n return id;\n}\n\n/**\n * Calls the callback associated with the ID. Also unregister that callback\n * if it was a one time timer (setTimeout), and not unregister it if it was\n * recurring (setInterval).\n */\nfunction _callTimer(timerID: number, frameTime: number, didTimeout: ?boolean) {\n if (timerID > GUID) {\n console.warn(\n 'Tried to call timer with ID %s but no such timer exists.',\n timerID,\n );\n }\n\n // timerIndex of -1 means that no timer with that ID exists. There are\n // two situations when this happens, when a garbage timer ID was given\n // and when a previously existing timer was deleted before this callback\n // fired. In both cases we want to ignore the timer id, but in the former\n // case we warn as well.\n const timerIndex = timerIDs.indexOf(timerID);\n if (timerIndex === -1) {\n return;\n }\n\n const type = types[timerIndex];\n const callback = callbacks[timerIndex];\n if (!callback || !type) {\n console.error('No callback found for timerID ' + timerID);\n return;\n }\n\n if (__DEV__) {\n Systrace.beginEvent(type + ' [invoke]');\n }\n\n // Clear the metadata\n if (type !== 'setInterval') {\n _clearIndex(timerIndex);\n }\n\n try {\n if (\n type === 'setTimeout' ||\n type === 'setInterval' ||\n type === 'queueReactNativeMicrotask'\n ) {\n callback();\n } else if (type === 'requestAnimationFrame') {\n callback(global.performance.now());\n } else if (type === 'requestIdleCallback') {\n callback({\n timeRemaining: function () {\n // TODO: Optimisation: allow running for longer than one frame if\n // there are no pending JS calls on the bridge from native. This\n // would require a way to check the bridge queue synchronously.\n return Math.max(\n 0,\n FRAME_DURATION - (global.performance.now() - frameTime),\n );\n },\n didTimeout: !!didTimeout,\n });\n } else {\n console.error('Tried to call a callback with invalid type: ' + type);\n }\n } catch (e) {\n // Don't rethrow so that we can run all timers.\n errors.push(e);\n }\n\n if (__DEV__) {\n Systrace.endEvent();\n }\n}\n\n/**\n * Performs a single pass over the enqueued reactNativeMicrotasks. Returns whether\n * more reactNativeMicrotasks are queued up (can be used as a condition a while loop).\n */\nfunction _callReactNativeMicrotasksPass() {\n if (reactNativeMicrotasks.length === 0) {\n return false;\n }\n\n if (__DEV__) {\n Systrace.beginEvent('callReactNativeMicrotasksPass()');\n }\n\n // The main reason to extract a single pass is so that we can track\n // in the system trace\n const passReactNativeMicrotasks = reactNativeMicrotasks;\n reactNativeMicrotasks = [];\n\n // Use for loop rather than forEach as per @vjeux's advice\n // https://github.com/facebook/react-native/commit/c8fd9f7588ad02d2293cac7224715f4af7b0f352#commitcomment-14570051\n for (let i = 0; i < passReactNativeMicrotasks.length; ++i) {\n _callTimer(passReactNativeMicrotasks[i], 0);\n }\n\n if (__DEV__) {\n Systrace.endEvent();\n }\n return reactNativeMicrotasks.length > 0;\n}\n\nfunction _clearIndex(i: number) {\n timerIDs[i] = null;\n callbacks[i] = null;\n types[i] = null;\n}\n\nfunction _freeCallback(timerID: number) {\n // timerIDs contains nulls after timers have been removed;\n // ignore nulls upfront so indexOf doesn't find them\n if (timerID == null) {\n return;\n }\n\n const index = timerIDs.indexOf(timerID);\n // See corresponding comment in `callTimers` for reasoning behind this\n if (index !== -1) {\n const type = types[index];\n _clearIndex(index);\n if (\n type !== 'queueReactNativeMicrotask' &&\n type !== 'requestIdleCallback'\n ) {\n deleteTimer(timerID);\n }\n }\n}\n\n/**\n * JS implementation of timer functions. Must be completely driven by an\n * external clock signal, all that's stored here is timerID, timer type, and\n * callback.\n */\nconst JSTimers = {\n /**\n * @param {function} func Callback to be invoked after `duration` ms.\n * @param {number} duration Number of milliseconds.\n */\n setTimeout: function (\n func: Function,\n duration: number,\n ...args: any\n ): number {\n const id = _allocateCallback(\n () => func.apply(undefined, args),\n 'setTimeout',\n );\n createTimer(id, duration || 0, Date.now(), /* recurring */ false);\n return id;\n },\n\n /**\n * @param {function} func Callback to be invoked every `duration` ms.\n * @param {number} duration Number of milliseconds.\n */\n setInterval: function (\n func: Function,\n duration: number,\n ...args: any\n ): number {\n const id = _allocateCallback(\n () => func.apply(undefined, args),\n 'setInterval',\n );\n createTimer(id, duration || 0, Date.now(), /* recurring */ true);\n return id;\n },\n\n /**\n * The React Native microtask mechanism is used to back public APIs e.g.\n * `queueMicrotask`, `clearImmediate`, and `setImmediate` (which is used by\n * the Promise polyfill) when the JSVM microtask mechanism is not used.\n *\n * @param {function} func Callback to be invoked before the end of the\n * current JavaScript execution loop.\n */\n queueReactNativeMicrotask: function (func: Function, ...args: any): number {\n const id = _allocateCallback(\n () => func.apply(undefined, args),\n 'queueReactNativeMicrotask',\n );\n reactNativeMicrotasks.push(id);\n return id;\n },\n\n /**\n * @param {function} func Callback to be invoked every frame.\n */\n requestAnimationFrame: function (func: Function): any | number {\n const id = _allocateCallback(func, 'requestAnimationFrame');\n createTimer(id, 1, Date.now(), /* recurring */ false);\n return id;\n },\n\n /**\n * @param {function} func Callback to be invoked every frame and provided\n * with time remaining in frame.\n * @param {?object} options\n */\n requestIdleCallback: function (\n func: Function,\n options: ?Object,\n ): any | number {\n if (requestIdleCallbacks.length === 0) {\n setSendIdleEvents(true);\n }\n\n const timeout = options && options.timeout;\n const id: number = _allocateCallback(\n timeout != null\n ? (deadline: any) => {\n const timeoutId: number = requestIdleCallbackTimeouts[id];\n if (timeoutId) {\n JSTimers.clearTimeout(timeoutId);\n delete requestIdleCallbackTimeouts[id];\n }\n return func(deadline);\n }\n : func,\n 'requestIdleCallback',\n );\n requestIdleCallbacks.push(id);\n\n if (timeout != null) {\n const timeoutId: number = JSTimers.setTimeout(() => {\n const index: number = requestIdleCallbacks.indexOf(id);\n if (index > -1) {\n requestIdleCallbacks.splice(index, 1);\n _callTimer(id, global.performance.now(), true);\n }\n delete requestIdleCallbackTimeouts[id];\n if (requestIdleCallbacks.length === 0) {\n setSendIdleEvents(false);\n }\n }, timeout);\n requestIdleCallbackTimeouts[id] = timeoutId;\n }\n return id;\n },\n\n cancelIdleCallback: function (timerID: number) {\n _freeCallback(timerID);\n const index = requestIdleCallbacks.indexOf(timerID);\n if (index !== -1) {\n requestIdleCallbacks.splice(index, 1);\n }\n\n const timeoutId = requestIdleCallbackTimeouts[timerID];\n if (timeoutId) {\n JSTimers.clearTimeout(timeoutId);\n delete requestIdleCallbackTimeouts[timerID];\n }\n\n if (requestIdleCallbacks.length === 0) {\n setSendIdleEvents(false);\n }\n },\n\n clearTimeout: function (timerID: number) {\n _freeCallback(timerID);\n },\n\n clearInterval: function (timerID: number) {\n _freeCallback(timerID);\n },\n\n clearReactNativeMicrotask: function (timerID: number) {\n _freeCallback(timerID);\n const index = reactNativeMicrotasks.indexOf(timerID);\n if (index !== -1) {\n reactNativeMicrotasks.splice(index, 1);\n }\n },\n\n cancelAnimationFrame: function (timerID: number) {\n _freeCallback(timerID);\n },\n\n /**\n * This is called from the native side. We are passed an array of timerIDs,\n * and\n */\n callTimers: function (timersToCall: Array): any | void {\n invariant(\n timersToCall.length !== 0,\n 'Cannot call `callTimers` with an empty list of IDs.',\n );\n\n errors.length = 0;\n for (let i = 0; i < timersToCall.length; i++) {\n _callTimer(timersToCall[i], 0);\n }\n\n const errorCount = errors.length;\n if (errorCount > 0) {\n if (errorCount > 1) {\n // Throw all the other errors in a setTimeout, which will throw each\n // error one at a time\n for (let ii = 1; ii < errorCount; ii++) {\n JSTimers.setTimeout(\n ((error: Error) => {\n throw error;\n }).bind(null, errors[ii]),\n 0,\n );\n }\n }\n throw errors[0];\n }\n },\n\n callIdleCallbacks: function (frameTime: number) {\n if (\n FRAME_DURATION - (Date.now() - frameTime) <\n IDLE_CALLBACK_FRAME_DEADLINE\n ) {\n return;\n }\n\n errors.length = 0;\n if (requestIdleCallbacks.length > 0) {\n const passIdleCallbacks = requestIdleCallbacks;\n requestIdleCallbacks = [];\n\n for (let i = 0; i < passIdleCallbacks.length; ++i) {\n _callTimer(passIdleCallbacks[i], frameTime);\n }\n }\n\n if (requestIdleCallbacks.length === 0) {\n setSendIdleEvents(false);\n }\n\n errors.forEach(error =>\n JSTimers.setTimeout(() => {\n throw error;\n }, 0),\n );\n },\n\n /**\n * This is called after we execute any command we receive from native but\n * before we hand control back to native.\n */\n callReactNativeMicrotasks() {\n errors.length = 0;\n while (_callReactNativeMicrotasksPass()) {}\n errors.forEach(error =>\n JSTimers.setTimeout(() => {\n throw error;\n }, 0),\n );\n },\n\n /**\n * Called from native (in development) when environment times are out-of-sync.\n */\n emitTimeDriftWarning(warningMessage: string) {\n if (hasEmittedTimeDriftWarning) {\n return;\n }\n hasEmittedTimeDriftWarning = true;\n console.warn(warningMessage);\n },\n};\n\nfunction createTimer(\n callbackID: number,\n duration: number,\n jsSchedulingTime: number,\n repeats: boolean,\n): void {\n invariant(NativeTiming, 'NativeTiming is available');\n NativeTiming.createTimer(callbackID, duration, jsSchedulingTime, repeats);\n}\n\nfunction deleteTimer(timerID: number): void {\n invariant(NativeTiming, 'NativeTiming is available');\n NativeTiming.deleteTimer(timerID);\n}\n\nfunction setSendIdleEvents(sendIdleEvents: boolean): void {\n invariant(NativeTiming, 'NativeTiming is available');\n NativeTiming.setSendIdleEvents(sendIdleEvents);\n}\n\nlet ExportedJSTimers: {|\n callIdleCallbacks: (frameTime: number) => any | void,\n callReactNativeMicrotasks: () => void,\n callTimers: (timersToCall: Array) => any | void,\n cancelAnimationFrame: (timerID: number) => void,\n cancelIdleCallback: (timerID: number) => void,\n clearReactNativeMicrotask: (timerID: number) => void,\n clearInterval: (timerID: number) => void,\n clearTimeout: (timerID: number) => void,\n emitTimeDriftWarning: (warningMessage: string) => any | void,\n requestAnimationFrame: (func: any) => any | number,\n requestIdleCallback: (func: any, options: ?any) => any | number,\n queueReactNativeMicrotask: (func: any, ...args: any) => number,\n setInterval: (func: any, duration: number, ...args: any) => number,\n setTimeout: (func: any, duration: number, ...args: any) => number,\n|};\n\nif (!NativeTiming) {\n console.warn(\"Timing native module is not available, can't set timers.\");\n // $FlowFixMe[prop-missing] : we can assume timers are generally available\n ExportedJSTimers = ({\n callReactNativeMicrotasks: JSTimers.callReactNativeMicrotasks,\n queueReactNativeMicrotask: JSTimers.queueReactNativeMicrotask,\n }: typeof JSTimers);\n} else {\n ExportedJSTimers = JSTimers;\n}\n\nBatchedBridge.setReactNativeMicrotasksCallback(\n JSTimers.callReactNativeMicrotasks,\n);\n\nmodule.exports = ExportedJSTimers;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +createTimer: (\n callbackID: number,\n duration: number,\n jsSchedulingTime: number,\n repeats: boolean,\n ) => void;\n +deleteTimer: (timerID: number) => void;\n +setSendIdleEvents: (sendIdleEvents: boolean) => void;\n}\n\nexport default (TurboModuleRegistry.get('Timing'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\n// Globally Unique Immediate ID.\nlet GUIID = 1;\n\n// A global set of the currently cleared immediates.\nconst clearedImmediates: Set = new Set();\n\n/**\n * Shim the setImmediate API on top of queueMicrotask.\n * @param {function} func Callback to be invoked before the end of the\n * current JavaScript execution loop.\n */\nfunction setImmediate(callback: Function, ...args: any): number {\n if (arguments.length < 1) {\n throw new TypeError(\n 'setImmediate must be called with at least one argument (a function to call)',\n );\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\n 'The first argument to setImmediate must be a function.',\n );\n }\n\n const id = GUIID++;\n // This is an edgey case in which the sequentially assigned ID has been\n // \"guessed\" and \"cleared\" ahead of time, so we need to clear it up first.\n if (clearedImmediates.has(id)) {\n clearedImmediates.delete(id);\n }\n\n // $FlowFixMe[incompatible-call]\n global.queueMicrotask(() => {\n if (!clearedImmediates.has(id)) {\n callback.apply(undefined, args);\n } else {\n // Free up the Set entry.\n clearedImmediates.delete(id);\n }\n });\n\n return id;\n}\n\n/**\n * @param {number} immediateID The ID of the immediate to be clearred.\n */\nfunction clearImmediate(immediateID: number) {\n clearedImmediates.add(immediateID);\n}\n\nconst immediateShim = {\n setImmediate: setImmediate,\n clearImmediate: clearImmediate,\n};\n\nmodule.exports = immediateShim;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nlet resolvedPromise;\n\n/**\n * Polyfill for the microtask queueing API defined by WHATWG HTML spec.\n * https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask\n *\n * The method must queue a microtask to invoke @param {function} callback, and\n * if the callback throws an exception, report the exception.\n */\nexport default function queueMicrotask(callback: Function) {\n if (arguments.length < 1) {\n throw new TypeError(\n 'queueMicrotask must be called with at least one argument (a function to call)',\n );\n }\n if (typeof callback !== 'function') {\n throw new TypeError('The argument to queueMicrotask must be a function.');\n }\n\n // Try to reuse a lazily allocated resolved promise from closure.\n (resolvedPromise || (resolvedPromise = Promise.resolve()))\n .then(callback)\n .catch(error =>\n // Report the exception until the next tick.\n setTimeout(() => {\n throw error;\n }, 0),\n );\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nconst {polyfillGlobal} = require('../Utilities/PolyfillFunctions');\n\n/**\n * Set up XMLHttpRequest. The native XMLHttpRequest in Chrome dev tools is CORS\n * aware and won't let you fetch anything from the internet.\n *\n * You can use this module directly, or just require InitializeCore.\n */\npolyfillGlobal('XMLHttpRequest', () => require('../Network/XMLHttpRequest'));\npolyfillGlobal('FormData', () => require('../Network/FormData'));\n\npolyfillGlobal('fetch', () => require('../Network/fetch').fetch);\npolyfillGlobal('Headers', () => require('../Network/fetch').Headers);\npolyfillGlobal('Request', () => require('../Network/fetch').Request);\npolyfillGlobal('Response', () => require('../Network/fetch').Response);\npolyfillGlobal('WebSocket', () => require('../WebSocket/WebSocket'));\npolyfillGlobal('Blob', () => require('../Blob/Blob'));\npolyfillGlobal('File', () => require('../Blob/File'));\npolyfillGlobal('FileReader', () => require('../Blob/FileReader'));\npolyfillGlobal('URL', () => require('../Blob/URL').URL); // flowlint-line untyped-import:off\npolyfillGlobal('URLSearchParams', () => require('../Blob/URL').URLSearchParams); // flowlint-line untyped-import:off\npolyfillGlobal(\n 'AbortController',\n () => require('abort-controller/dist/abort-controller').AbortController, // flowlint-line untyped-import:off\n);\npolyfillGlobal(\n 'AbortSignal',\n () => require('abort-controller/dist/abort-controller').AbortSignal, // flowlint-line untyped-import:off\n);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nimport type {IPerformanceLogger} from '../Utilities/createPerformanceLogger';\n\nimport {type EventSubscription} from '../vendor/emitter/EventEmitter';\n\nconst BlobManager = require('../Blob/BlobManager');\nconst GlobalPerformanceLogger = require('../Utilities/GlobalPerformanceLogger');\nconst RCTNetworking = require('./RCTNetworking').default;\nconst base64 = require('base64-js');\nconst EventTarget = require('event-target-shim');\nconst invariant = require('invariant');\n\nconst DEBUG_NETWORK_SEND_DELAY: false = false; // Set to a number of milliseconds when debugging\n\nexport type NativeResponseType = 'base64' | 'blob' | 'text';\nexport type ResponseType =\n | ''\n | 'arraybuffer'\n | 'blob'\n | 'document'\n | 'json'\n | 'text';\nexport type Response = ?Object | string;\n\ntype XHRInterceptor = interface {\n requestSent(id: number, url: string, method: string, headers: Object): void,\n responseReceived(\n id: number,\n url: string,\n status: number,\n headers: Object,\n ): void,\n dataReceived(id: number, data: string): void,\n loadingFinished(id: number, encodedDataLength: number): void,\n loadingFailed(id: number, error: string): void,\n};\n\n// The native blob module is optional so inject it here if available.\nif (BlobManager.isAvailable) {\n BlobManager.addNetworkingHandler();\n}\n\nconst UNSENT = 0;\nconst OPENED = 1;\nconst HEADERS_RECEIVED = 2;\nconst LOADING = 3;\nconst DONE = 4;\n\nconst SUPPORTED_RESPONSE_TYPES = {\n arraybuffer: typeof global.ArrayBuffer === 'function',\n blob: typeof global.Blob === 'function',\n document: false,\n json: true,\n text: true,\n '': true,\n};\n\nconst REQUEST_EVENTS = [\n 'abort',\n 'error',\n 'load',\n 'loadstart',\n 'progress',\n 'timeout',\n 'loadend',\n];\n\nconst XHR_EVENTS = REQUEST_EVENTS.concat('readystatechange');\n\nclass XMLHttpRequestEventTarget extends (EventTarget(...REQUEST_EVENTS): any) {\n onload: ?Function;\n onloadstart: ?Function;\n onprogress: ?Function;\n ontimeout: ?Function;\n onerror: ?Function;\n onabort: ?Function;\n onloadend: ?Function;\n}\n\n/**\n * Shared base for platform-specific XMLHttpRequest implementations.\n */\nclass XMLHttpRequest extends (EventTarget(...XHR_EVENTS): any) {\n static UNSENT: number = UNSENT;\n static OPENED: number = OPENED;\n static HEADERS_RECEIVED: number = HEADERS_RECEIVED;\n static LOADING: number = LOADING;\n static DONE: number = DONE;\n\n static _interceptor: ?XHRInterceptor = null;\n\n UNSENT: number = UNSENT;\n OPENED: number = OPENED;\n HEADERS_RECEIVED: number = HEADERS_RECEIVED;\n LOADING: number = LOADING;\n DONE: number = DONE;\n\n // EventTarget automatically initializes these to `null`.\n onload: ?Function;\n onloadstart: ?Function;\n onprogress: ?Function;\n ontimeout: ?Function;\n onerror: ?Function;\n onabort: ?Function;\n onloadend: ?Function;\n onreadystatechange: ?Function;\n\n readyState: number = UNSENT;\n responseHeaders: ?Object;\n status: number = 0;\n timeout: number = 0;\n responseURL: ?string;\n withCredentials: boolean = true;\n\n upload: XMLHttpRequestEventTarget = new XMLHttpRequestEventTarget();\n\n _requestId: ?number;\n _subscriptions: Array;\n\n _aborted: boolean = false;\n _cachedResponse: Response;\n _hasError: boolean = false;\n _headers: Object;\n _lowerCaseResponseHeaders: Object;\n _method: ?string = null;\n _perfKey: ?string = null;\n _responseType: ResponseType;\n _response: string = '';\n _sent: boolean;\n _url: ?string = null;\n _timedOut: boolean = false;\n _trackingName: string = 'unknown';\n _incrementalEvents: boolean = false;\n _performanceLogger: IPerformanceLogger = GlobalPerformanceLogger;\n\n static setInterceptor(interceptor: ?XHRInterceptor) {\n XMLHttpRequest._interceptor = interceptor;\n }\n\n constructor() {\n super();\n this._reset();\n }\n\n _reset(): void {\n this.readyState = this.UNSENT;\n this.responseHeaders = undefined;\n this.status = 0;\n delete this.responseURL;\n\n this._requestId = null;\n\n this._cachedResponse = undefined;\n this._hasError = false;\n this._headers = {};\n this._response = '';\n this._responseType = '';\n this._sent = false;\n this._lowerCaseResponseHeaders = {};\n\n this._clearSubscriptions();\n this._timedOut = false;\n }\n\n get responseType(): ResponseType {\n return this._responseType;\n }\n\n set responseType(responseType: ResponseType): void {\n if (this._sent) {\n throw new Error(\n \"Failed to set the 'responseType' property on 'XMLHttpRequest': The \" +\n 'response type cannot be set after the request has been sent.',\n );\n }\n if (!SUPPORTED_RESPONSE_TYPES.hasOwnProperty(responseType)) {\n console.warn(\n `The provided value '${responseType}' is not a valid 'responseType'.`,\n );\n return;\n }\n\n // redboxes early, e.g. for 'arraybuffer' on ios 7\n invariant(\n SUPPORTED_RESPONSE_TYPES[responseType] || responseType === 'document',\n `The provided value '${responseType}' is unsupported in this environment.`,\n );\n\n if (responseType === 'blob') {\n invariant(\n BlobManager.isAvailable,\n 'Native module BlobModule is required for blob support',\n );\n }\n this._responseType = responseType;\n }\n\n get responseText(): string {\n if (this._responseType !== '' && this._responseType !== 'text') {\n throw new Error(\n \"The 'responseText' property is only available if 'responseType' \" +\n `is set to '' or 'text', but it is '${this._responseType}'.`,\n );\n }\n if (this.readyState < LOADING) {\n return '';\n }\n return this._response;\n }\n\n get response(): Response {\n const {responseType} = this;\n if (responseType === '' || responseType === 'text') {\n return this.readyState < LOADING || this._hasError ? '' : this._response;\n }\n\n if (this.readyState !== DONE) {\n return null;\n }\n\n if (this._cachedResponse !== undefined) {\n return this._cachedResponse;\n }\n\n switch (responseType) {\n case 'document':\n this._cachedResponse = null;\n break;\n\n case 'arraybuffer':\n this._cachedResponse = base64.toByteArray(this._response).buffer;\n break;\n\n case 'blob':\n if (typeof this._response === 'object' && this._response) {\n this._cachedResponse = BlobManager.createFromOptions(this._response);\n } else if (this._response === '') {\n this._cachedResponse = BlobManager.createFromParts([]);\n } else {\n throw new Error(`Invalid response for blob: ${this._response}`);\n }\n break;\n\n case 'json':\n try {\n this._cachedResponse = JSON.parse(this._response);\n } catch (_) {\n this._cachedResponse = null;\n }\n break;\n\n default:\n this._cachedResponse = null;\n }\n\n return this._cachedResponse;\n }\n\n // exposed for testing\n __didCreateRequest(requestId: number): void {\n this._requestId = requestId;\n\n XMLHttpRequest._interceptor &&\n XMLHttpRequest._interceptor.requestSent(\n requestId,\n this._url || '',\n this._method || 'GET',\n this._headers,\n );\n }\n\n // exposed for testing\n __didUploadProgress(\n requestId: number,\n progress: number,\n total: number,\n ): void {\n if (requestId === this._requestId) {\n this.upload.dispatchEvent({\n type: 'progress',\n lengthComputable: true,\n loaded: progress,\n total,\n });\n }\n }\n\n __didReceiveResponse(\n requestId: number,\n status: number,\n responseHeaders: ?Object,\n responseURL: ?string,\n ): void {\n if (requestId === this._requestId) {\n this._perfKey != null &&\n this._performanceLogger.stopTimespan(this._perfKey);\n this.status = status;\n this.setResponseHeaders(responseHeaders);\n this.setReadyState(this.HEADERS_RECEIVED);\n if (responseURL || responseURL === '') {\n this.responseURL = responseURL;\n } else {\n delete this.responseURL;\n }\n\n XMLHttpRequest._interceptor &&\n XMLHttpRequest._interceptor.responseReceived(\n requestId,\n responseURL || this._url || '',\n status,\n responseHeaders || {},\n );\n }\n }\n\n __didReceiveData(requestId: number, response: string): void {\n if (requestId !== this._requestId) {\n return;\n }\n this._response = response;\n this._cachedResponse = undefined; // force lazy recomputation\n this.setReadyState(this.LOADING);\n\n XMLHttpRequest._interceptor &&\n XMLHttpRequest._interceptor.dataReceived(requestId, response);\n }\n\n __didReceiveIncrementalData(\n requestId: number,\n responseText: string,\n progress: number,\n total: number,\n ) {\n if (requestId !== this._requestId) {\n return;\n }\n if (!this._response) {\n this._response = responseText;\n } else {\n this._response += responseText;\n }\n\n XMLHttpRequest._interceptor &&\n XMLHttpRequest._interceptor.dataReceived(requestId, responseText);\n\n this.setReadyState(this.LOADING);\n this.__didReceiveDataProgress(requestId, progress, total);\n }\n\n __didReceiveDataProgress(\n requestId: number,\n loaded: number,\n total: number,\n ): void {\n if (requestId !== this._requestId) {\n return;\n }\n this.dispatchEvent({\n type: 'progress',\n lengthComputable: total >= 0,\n loaded,\n total,\n });\n }\n\n // exposed for testing\n __didCompleteResponse(\n requestId: number,\n error: string,\n timeOutError: boolean,\n ): void {\n if (requestId === this._requestId) {\n if (error) {\n if (this._responseType === '' || this._responseType === 'text') {\n this._response = error;\n }\n this._hasError = true;\n if (timeOutError) {\n this._timedOut = true;\n }\n }\n this._clearSubscriptions();\n this._requestId = null;\n this.setReadyState(this.DONE);\n\n if (error) {\n XMLHttpRequest._interceptor &&\n XMLHttpRequest._interceptor.loadingFailed(requestId, error);\n } else {\n XMLHttpRequest._interceptor &&\n XMLHttpRequest._interceptor.loadingFinished(\n requestId,\n this._response.length,\n );\n }\n }\n }\n\n _clearSubscriptions(): void {\n (this._subscriptions || []).forEach(sub => {\n if (sub) {\n sub.remove();\n }\n });\n this._subscriptions = [];\n }\n\n getAllResponseHeaders(): ?string {\n if (!this.responseHeaders) {\n // according to the spec, return null if no response has been received\n return null;\n }\n\n // Assign to non-nullable local variable.\n const responseHeaders = this.responseHeaders;\n\n const unsortedHeaders: Map<\n string,\n {lowerHeaderName: string, upperHeaderName: string, headerValue: string},\n > = new Map();\n for (const rawHeaderName of Object.keys(responseHeaders)) {\n const headerValue = responseHeaders[rawHeaderName];\n const lowerHeaderName = rawHeaderName.toLowerCase();\n const header = unsortedHeaders.get(lowerHeaderName);\n if (header) {\n header.headerValue += ', ' + headerValue;\n unsortedHeaders.set(lowerHeaderName, header);\n } else {\n unsortedHeaders.set(lowerHeaderName, {\n lowerHeaderName,\n upperHeaderName: rawHeaderName.toUpperCase(),\n headerValue,\n });\n }\n }\n\n // Sort in ascending order, with a being less than b if a's name is legacy-uppercased-byte less than b's name.\n const sortedHeaders = [...unsortedHeaders.values()].sort((a, b) => {\n if (a.upperHeaderName < b.upperHeaderName) {\n return -1;\n }\n if (a.upperHeaderName > b.upperHeaderName) {\n return 1;\n }\n return 0;\n });\n\n // Combine into single text response.\n return (\n sortedHeaders\n .map(header => {\n return header.lowerHeaderName + ': ' + header.headerValue;\n })\n .join('\\r\\n') + '\\r\\n'\n );\n }\n\n getResponseHeader(header: string): ?string {\n const value = this._lowerCaseResponseHeaders[header.toLowerCase()];\n return value !== undefined ? value : null;\n }\n\n setRequestHeader(header: string, value: any): void {\n if (this.readyState !== this.OPENED) {\n throw new Error('Request has not been opened');\n }\n this._headers[header.toLowerCase()] = String(value);\n }\n\n /**\n * Custom extension for tracking origins of request.\n */\n setTrackingName(trackingName: string): XMLHttpRequest {\n this._trackingName = trackingName;\n return this;\n }\n\n /**\n * Custom extension for setting a custom performance logger\n */\n setPerformanceLogger(performanceLogger: IPerformanceLogger): XMLHttpRequest {\n this._performanceLogger = performanceLogger;\n return this;\n }\n\n open(method: string, url: string, async: ?boolean): void {\n /* Other optional arguments are not supported yet */\n if (this.readyState !== this.UNSENT) {\n throw new Error('Cannot open, already sending');\n }\n if (async !== undefined && !async) {\n // async is default\n throw new Error('Synchronous http requests are not supported');\n }\n if (!url) {\n throw new Error('Cannot load an empty url');\n }\n this._method = method.toUpperCase();\n this._url = url;\n this._aborted = false;\n this.setReadyState(this.OPENED);\n }\n\n send(data: any): void {\n if (this.readyState !== this.OPENED) {\n throw new Error('Request has not been opened');\n }\n if (this._sent) {\n throw new Error('Request has already been sent');\n }\n this._sent = true;\n const incrementalEvents =\n this._incrementalEvents || !!this.onreadystatechange || !!this.onprogress;\n\n this._subscriptions.push(\n RCTNetworking.addListener('didSendNetworkData', args =>\n this.__didUploadProgress(...args),\n ),\n );\n this._subscriptions.push(\n RCTNetworking.addListener('didReceiveNetworkResponse', args =>\n this.__didReceiveResponse(...args),\n ),\n );\n this._subscriptions.push(\n RCTNetworking.addListener('didReceiveNetworkData', args =>\n this.__didReceiveData(...args),\n ),\n );\n this._subscriptions.push(\n RCTNetworking.addListener('didReceiveNetworkIncrementalData', args =>\n this.__didReceiveIncrementalData(...args),\n ),\n );\n this._subscriptions.push(\n RCTNetworking.addListener('didReceiveNetworkDataProgress', args =>\n this.__didReceiveDataProgress(...args),\n ),\n );\n this._subscriptions.push(\n RCTNetworking.addListener('didCompleteNetworkResponse', args =>\n this.__didCompleteResponse(...args),\n ),\n );\n\n let nativeResponseType: NativeResponseType = 'text';\n if (this._responseType === 'arraybuffer') {\n nativeResponseType = 'base64';\n }\n if (this._responseType === 'blob') {\n nativeResponseType = 'blob';\n }\n\n const doSend = () => {\n const friendlyName =\n this._trackingName !== 'unknown' ? this._trackingName : this._url;\n this._perfKey = 'network_XMLHttpRequest_' + String(friendlyName);\n this._performanceLogger.startTimespan(this._perfKey);\n invariant(\n this._method,\n 'XMLHttpRequest method needs to be defined (%s).',\n friendlyName,\n );\n invariant(\n this._url,\n 'XMLHttpRequest URL needs to be defined (%s).',\n friendlyName,\n );\n RCTNetworking.sendRequest(\n this._method,\n this._trackingName,\n this._url,\n this._headers,\n data,\n /* $FlowFixMe(>=0.78.0 site=react_native_android_fb) This issue was found\n * when making Flow check .android.js files. */\n nativeResponseType,\n incrementalEvents,\n this.timeout,\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.__didCreateRequest.bind(this),\n this.withCredentials,\n );\n };\n if (DEBUG_NETWORK_SEND_DELAY) {\n setTimeout(doSend, DEBUG_NETWORK_SEND_DELAY);\n } else {\n doSend();\n }\n }\n\n abort(): void {\n this._aborted = true;\n if (this._requestId) {\n RCTNetworking.abortRequest(this._requestId);\n }\n // only call onreadystatechange if there is something to abort,\n // below logic is per spec\n if (\n !(\n this.readyState === this.UNSENT ||\n (this.readyState === this.OPENED && !this._sent) ||\n this.readyState === this.DONE\n )\n ) {\n this._reset();\n this.setReadyState(this.DONE);\n }\n // Reset again after, in case modified in handler\n this._reset();\n }\n\n setResponseHeaders(responseHeaders: ?Object): void {\n this.responseHeaders = responseHeaders || null;\n const headers = responseHeaders || {};\n this._lowerCaseResponseHeaders = Object.keys(headers).reduce<{\n [string]: any,\n }>((lcaseHeaders, headerName) => {\n lcaseHeaders[headerName.toLowerCase()] = headers[headerName];\n return lcaseHeaders;\n }, {});\n }\n\n setReadyState(newState: number): void {\n this.readyState = newState;\n this.dispatchEvent({type: 'readystatechange'});\n if (newState === this.DONE) {\n if (this._aborted) {\n this.dispatchEvent({type: 'abort'});\n } else if (this._hasError) {\n if (this._timedOut) {\n this.dispatchEvent({type: 'timeout'});\n } else {\n this.dispatchEvent({type: 'error'});\n }\n } else {\n this.dispatchEvent({type: 'load'});\n }\n this.dispatchEvent({type: 'loadend'});\n }\n }\n\n /* global EventListener */\n addEventListener(type: string, listener: EventListener): void {\n // If we dont' have a 'readystatechange' event handler, we don't\n // have to send repeated LOADING events with incremental updates\n // to responseText, which will avoid a bunch of native -> JS\n // bridge traffic.\n if (type === 'readystatechange' || type === 'progress') {\n this._incrementalEvents = true;\n }\n super.addEventListener(type, listener);\n }\n}\n\nmodule.exports = XMLHttpRequest;\n","var superPropBase = require(\"./superPropBase.js\");\nfunction _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get.bind(), module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n return _get.apply(this, arguments);\n}\nmodule.exports = _get, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n}\nmodule.exports = _superPropBase, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {BlobCollector, BlobData, BlobOptions} from './BlobTypes';\n\nimport NativeBlobModule from './NativeBlobModule';\nimport invariant from 'invariant';\n\nconst Blob = require('./Blob');\nconst BlobRegistry = require('./BlobRegistry');\n\n/*eslint-disable no-bitwise */\n/*eslint-disable eqeqeq */\n\n/**\n * Based on the rfc4122-compliant solution posted at\n * http://stackoverflow.com/questions/105034\n */\nfunction uuidv4(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\n const r = (Math.random() * 16) | 0,\n v = c == 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\n// **Temporary workaround**\n// TODO(#24654): Use turbomodules for the Blob module.\n// Blob collector is a jsi::HostObject that is used by native to know\n// when the a Blob instance is deallocated. This allows to free the\n// underlying native resources. This is a hack to workaround the fact\n// that the current bridge infra doesn't allow to track js objects\n// deallocation. Ideally the whole Blob object should be a jsi::HostObject.\nfunction createBlobCollector(blobId: string): BlobCollector | null {\n if (global.__blobCollectorProvider == null) {\n return null;\n } else {\n return global.__blobCollectorProvider(blobId);\n }\n}\n\n/**\n * Module to manage blobs. Wrapper around the native blob module.\n */\nclass BlobManager {\n /**\n * If the native blob module is available.\n */\n static isAvailable: boolean = !!NativeBlobModule;\n\n /**\n * Create blob from existing array of blobs.\n */\n static createFromParts(\n parts: Array,\n options?: BlobOptions,\n ): Blob {\n invariant(NativeBlobModule, 'NativeBlobModule is available.');\n\n const blobId = uuidv4();\n const items = parts.map(part => {\n if (\n part instanceof ArrayBuffer ||\n (global.ArrayBufferView && part instanceof global.ArrayBufferView)\n ) {\n throw new Error(\n \"Creating blobs from 'ArrayBuffer' and 'ArrayBufferView' are not supported\",\n );\n }\n if (part instanceof Blob) {\n return {\n data: part.data,\n type: 'blob',\n };\n } else {\n return {\n data: String(part),\n type: 'string',\n };\n }\n });\n const size = items.reduce((acc, curr) => {\n if (curr.type === 'string') {\n return acc + global.unescape(encodeURI(curr.data)).length;\n } else {\n return acc + curr.data.size;\n }\n }, 0);\n\n NativeBlobModule.createFromParts(items, blobId);\n\n return BlobManager.createFromOptions({\n blobId,\n offset: 0,\n size,\n type: options ? options.type : '',\n lastModified: options ? options.lastModified : Date.now(),\n });\n }\n\n /**\n * Create blob instance from blob data from native.\n * Used internally by modules like XHR, WebSocket, etc.\n */\n static createFromOptions(options: BlobData): Blob {\n BlobRegistry.register(options.blobId);\n // $FlowFixMe[prop-missing]\n return Object.assign(Object.create(Blob.prototype), {\n data:\n // Reuse the collector instance when creating from an existing blob.\n // This will make sure that the underlying resource is only deallocated\n // when all blobs that refer to it are deallocated.\n options.__collector == null\n ? {\n ...options,\n __collector: createBlobCollector(options.blobId),\n }\n : options,\n });\n }\n\n /**\n * Deallocate resources for a blob.\n */\n static release(blobId: string): void {\n invariant(NativeBlobModule, 'NativeBlobModule is available.');\n\n BlobRegistry.unregister(blobId);\n if (BlobRegistry.has(blobId)) {\n return;\n }\n NativeBlobModule.release(blobId);\n }\n\n /**\n * Inject the blob content handler in the networking module to support blob\n * requests and responses.\n */\n static addNetworkingHandler(): void {\n invariant(NativeBlobModule, 'NativeBlobModule is available.');\n\n NativeBlobModule.addNetworkingHandler();\n }\n\n /**\n * Indicate the websocket should return a blob for incoming binary\n * messages.\n */\n static addWebSocketHandler(socketId: number): void {\n invariant(NativeBlobModule, 'NativeBlobModule is available.');\n\n NativeBlobModule.addWebSocketHandler(socketId);\n }\n\n /**\n * Indicate the websocket should no longer return a blob for incoming\n * binary messages.\n */\n static removeWebSocketHandler(socketId: number): void {\n invariant(NativeBlobModule, 'NativeBlobModule is available.');\n\n NativeBlobModule.removeWebSocketHandler(socketId);\n }\n\n /**\n * Send a blob message to a websocket.\n */\n static sendOverSocket(blob: Blob, socketId: number): void {\n invariant(NativeBlobModule, 'NativeBlobModule is available.');\n\n NativeBlobModule.sendOverSocket(blob.data, socketId);\n }\n}\n\nmodule.exports = BlobManager;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|BLOB_URI_SCHEME: ?string, BLOB_URI_HOST: ?string|};\n +addNetworkingHandler: () => void;\n +addWebSocketHandler: (id: number) => void;\n +removeWebSocketHandler: (id: number) => void;\n +sendOverSocket: (blob: Object, socketID: number) => void;\n +createFromParts: (parts: Array, withId: string) => void;\n +release: (blobId: string) => void;\n}\n\nconst NativeModule = TurboModuleRegistry.get('BlobModule');\n\nlet constants = null;\nlet NativeBlobModule = null;\n\nif (NativeModule != null) {\n NativeBlobModule = {\n getConstants(): {|BLOB_URI_SCHEME: ?string, BLOB_URI_HOST: ?string|} {\n if (constants == null) {\n constants = NativeModule.getConstants();\n }\n return constants;\n },\n addNetworkingHandler(): void {\n NativeModule.addNetworkingHandler();\n },\n addWebSocketHandler(id: number): void {\n NativeModule.addWebSocketHandler(id);\n },\n removeWebSocketHandler(id: number): void {\n NativeModule.removeWebSocketHandler(id);\n },\n sendOverSocket(blob: Object, socketID: number): void {\n NativeModule.sendOverSocket(blob, socketID);\n },\n createFromParts(parts: Array, withId: string): void {\n NativeModule.createFromParts(parts, withId);\n },\n release(blobId: string): void {\n NativeModule.release(blobId);\n },\n };\n}\n\nexport default (NativeBlobModule: ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nimport type {BlobData, BlobOptions} from './BlobTypes';\n\n/**\n * Opaque JS representation of some binary data in native.\n *\n * The API is modeled after the W3C Blob API, with one caveat\n * regarding explicit deallocation. Refer to the `close()`\n * method for further details.\n *\n * Example usage in a React component:\n *\n * class WebSocketImage extends React.Component {\n * state = {blob: null};\n * componentDidMount() {\n * let ws = this.ws = new WebSocket(...);\n * ws.binaryType = 'blob';\n * ws.onmessage = (event) => {\n * if (this.state.blob) {\n * this.state.blob.close();\n * }\n * this.setState({blob: event.data});\n * };\n * }\n * componentUnmount() {\n * if (this.state.blob) {\n * this.state.blob.close();\n * }\n * this.ws.close();\n * }\n * render() {\n * if (!this.state.blob) {\n * return ;\n * }\n * return ;\n * }\n * }\n *\n * Reference: https://developer.mozilla.org/en-US/docs/Web/API/Blob\n */\nclass Blob {\n _data: ?BlobData;\n\n /**\n * Constructor for JS consumers.\n * Currently we only support creating Blobs from other Blobs.\n * Reference: https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob\n */\n constructor(parts: Array = [], options?: BlobOptions) {\n const BlobManager = require('./BlobManager');\n this.data = BlobManager.createFromParts(parts, options).data;\n }\n\n /*\n * This method is used to create a new Blob object containing\n * the data in the specified range of bytes of the source Blob.\n * Reference: https://developer.mozilla.org/en-US/docs/Web/API/Blob/slice\n */\n // $FlowFixMe[unsafe-getters-setters]\n set data(data: ?BlobData) {\n this._data = data;\n }\n\n // $FlowFixMe[unsafe-getters-setters]\n get data(): BlobData {\n if (!this._data) {\n throw new Error('Blob has been closed and is no longer available');\n }\n\n return this._data;\n }\n\n slice(start?: number, end?: number): Blob {\n const BlobManager = require('./BlobManager');\n let {offset, size} = this.data;\n\n if (typeof start === 'number') {\n if (start > size) {\n // $FlowFixMe[reassign-const]\n start = size;\n }\n offset += start;\n size -= start;\n\n if (typeof end === 'number') {\n if (end < 0) {\n // $FlowFixMe[reassign-const]\n end = this.size + end;\n }\n if (end > this.size) {\n // $FlowFixMe[reassign-const]\n end = this.size;\n }\n size = end - start;\n }\n }\n return BlobManager.createFromOptions({\n blobId: this.data.blobId,\n offset,\n size,\n /* Since `blob.slice()` creates a new view onto the same binary\n * data as the original blob, we should re-use the same collector\n * object so that the underlying resource gets deallocated when\n * the last view into the data is released, not the first.\n */\n __collector: this.data.__collector,\n });\n }\n\n /**\n * This method is in the standard, but not actually implemented by\n * any browsers at this point. It's important for how Blobs work in\n * React Native, however, since we cannot de-allocate resources automatically,\n * so consumers need to explicitly de-allocate them.\n *\n * Note that the semantics around Blobs created via `blob.slice()`\n * and `new Blob([blob])` are different. `blob.slice()` creates a\n * new *view* onto the same binary data, so calling `close()` on any\n * of those views is enough to deallocate the data, whereas\n * `new Blob([blob, ...])` actually copies the data in memory.\n */\n close() {\n const BlobManager = require('./BlobManager');\n BlobManager.release(this.data.blobId);\n this.data = null;\n }\n\n /**\n * Size of the data contained in the Blob object, in bytes.\n */\n // $FlowFixMe[unsafe-getters-setters]\n get size(): number {\n return this.data.size;\n }\n\n /*\n * String indicating the MIME type of the data contained in the Blob.\n * If the type is unknown, this string is empty.\n */\n // $FlowFixMe[unsafe-getters-setters]\n get type(): string {\n return this.data.type || '';\n }\n}\n\nmodule.exports = Blob;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nconst registry: {[key: string]: number, ...} = {};\n\nconst register = (id: string) => {\n if (registry[id]) {\n registry[id]++;\n } else {\n registry[id] = 1;\n }\n};\n\nconst unregister = (id: string) => {\n if (registry[id]) {\n registry[id]--;\n if (registry[id] <= 0) {\n delete registry[id];\n }\n }\n};\n\nconst has = (id: string): number | boolean => {\n return registry[id] && registry[id] > 0;\n};\n\nmodule.exports = {\n register,\n unregister,\n has,\n};\n","/**\n * @author Toru Nagashima \n * @copyright 2015 Toru Nagashima. All rights reserved.\n * See LICENSE file in root directory for full license.\n */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/**\n * @typedef {object} PrivateData\n * @property {EventTarget} eventTarget The event target.\n * @property {{type:string}} event The original event object.\n * @property {number} eventPhase The current event phase.\n * @property {EventTarget|null} currentTarget The current event target.\n * @property {boolean} canceled The flag to prevent default.\n * @property {boolean} stopped The flag to stop propagation.\n * @property {boolean} immediateStopped The flag to stop propagation immediately.\n * @property {Function|null} passiveListener The listener if the current listener is passive. Otherwise this is null.\n * @property {number} timeStamp The unix time.\n * @private\n */\n\n/**\n * Private data for event wrappers.\n * @type {WeakMap}\n * @private\n */\nconst privateData = new WeakMap();\n\n/**\n * Cache for wrapper classes.\n * @type {WeakMap}\n * @private\n */\nconst wrappers = new WeakMap();\n\n/**\n * Get private data.\n * @param {Event} event The event object to get private data.\n * @returns {PrivateData} The private data of the event.\n * @private\n */\nfunction pd(event) {\n const retv = privateData.get(event);\n console.assert(\n retv != null,\n \"'this' is expected an Event object, but got\",\n event\n );\n return retv\n}\n\n/**\n * https://dom.spec.whatwg.org/#set-the-canceled-flag\n * @param data {PrivateData} private data.\n */\nfunction setCancelFlag(data) {\n if (data.passiveListener != null) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(\n \"Unable to preventDefault inside passive event listener invocation.\",\n data.passiveListener\n );\n }\n return\n }\n if (!data.event.cancelable) {\n return\n }\n\n data.canceled = true;\n if (typeof data.event.preventDefault === \"function\") {\n data.event.preventDefault();\n }\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#interface-event\n * @private\n */\n/**\n * The event wrapper.\n * @constructor\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Event|{type:string}} event The original event to wrap.\n */\nfunction Event(eventTarget, event) {\n privateData.set(this, {\n eventTarget,\n event,\n eventPhase: 2,\n currentTarget: eventTarget,\n canceled: false,\n stopped: false,\n immediateStopped: false,\n passiveListener: null,\n timeStamp: event.timeStamp || Date.now(),\n });\n\n // https://heycam.github.io/webidl/#Unforgeable\n Object.defineProperty(this, \"isTrusted\", { value: false, enumerable: true });\n\n // Define accessors\n const keys = Object.keys(event);\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (!(key in this)) {\n Object.defineProperty(this, key, defineRedirectDescriptor(key));\n }\n }\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEvent.prototype = {\n /**\n * The type of this event.\n * @type {string}\n */\n get type() {\n return pd(this).event.type\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get target() {\n return pd(this).eventTarget\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get currentTarget() {\n return pd(this).currentTarget\n },\n\n /**\n * @returns {EventTarget[]} The composed path of this event.\n */\n composedPath() {\n const currentTarget = pd(this).currentTarget;\n if (currentTarget == null) {\n return []\n }\n return [currentTarget]\n },\n\n /**\n * Constant of NONE.\n * @type {number}\n */\n get NONE() {\n return 0\n },\n\n /**\n * Constant of CAPTURING_PHASE.\n * @type {number}\n */\n get CAPTURING_PHASE() {\n return 1\n },\n\n /**\n * Constant of AT_TARGET.\n * @type {number}\n */\n get AT_TARGET() {\n return 2\n },\n\n /**\n * Constant of BUBBLING_PHASE.\n * @type {number}\n */\n get BUBBLING_PHASE() {\n return 3\n },\n\n /**\n * The target of this event.\n * @type {number}\n */\n get eventPhase() {\n return pd(this).eventPhase\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopPropagation() {\n const data = pd(this);\n\n data.stopped = true;\n if (typeof data.event.stopPropagation === \"function\") {\n data.event.stopPropagation();\n }\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopImmediatePropagation() {\n const data = pd(this);\n\n data.stopped = true;\n data.immediateStopped = true;\n if (typeof data.event.stopImmediatePropagation === \"function\") {\n data.event.stopImmediatePropagation();\n }\n },\n\n /**\n * The flag to be bubbling.\n * @type {boolean}\n */\n get bubbles() {\n return Boolean(pd(this).event.bubbles)\n },\n\n /**\n * The flag to be cancelable.\n * @type {boolean}\n */\n get cancelable() {\n return Boolean(pd(this).event.cancelable)\n },\n\n /**\n * Cancel this event.\n * @returns {void}\n */\n preventDefault() {\n setCancelFlag(pd(this));\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n */\n get defaultPrevented() {\n return pd(this).canceled\n },\n\n /**\n * The flag to be composed.\n * @type {boolean}\n */\n get composed() {\n return Boolean(pd(this).event.composed)\n },\n\n /**\n * The unix time of this event.\n * @type {number}\n */\n get timeStamp() {\n return pd(this).timeStamp\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n * @deprecated\n */\n get srcElement() {\n return pd(this).eventTarget\n },\n\n /**\n * The flag to stop event bubbling.\n * @type {boolean}\n * @deprecated\n */\n get cancelBubble() {\n return pd(this).stopped\n },\n set cancelBubble(value) {\n if (!value) {\n return\n }\n const data = pd(this);\n\n data.stopped = true;\n if (typeof data.event.cancelBubble === \"boolean\") {\n data.event.cancelBubble = true;\n }\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n * @deprecated\n */\n get returnValue() {\n return !pd(this).canceled\n },\n set returnValue(value) {\n if (!value) {\n setCancelFlag(pd(this));\n }\n },\n\n /**\n * Initialize this event object. But do nothing under event dispatching.\n * @param {string} type The event type.\n * @param {boolean} [bubbles=false] The flag to be possible to bubble up.\n * @param {boolean} [cancelable=false] The flag to be possible to cancel.\n * @deprecated\n */\n initEvent() {\n // Do nothing.\n },\n};\n\n// `constructor` is not enumerable.\nObject.defineProperty(Event.prototype, \"constructor\", {\n value: Event,\n configurable: true,\n writable: true,\n});\n\n// Ensure `event instanceof window.Event` is `true`.\nif (typeof window !== \"undefined\" && typeof window.Event !== \"undefined\") {\n Object.setPrototypeOf(Event.prototype, window.Event.prototype);\n\n // Make association for wrappers.\n wrappers.set(window.Event.prototype, Event);\n}\n\n/**\n * Get the property descriptor to redirect a given property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to redirect the property.\n * @private\n */\nfunction defineRedirectDescriptor(key) {\n return {\n get() {\n return pd(this).event[key]\n },\n set(value) {\n pd(this).event[key] = value;\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Get the property descriptor to call a given method property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to call the method property.\n * @private\n */\nfunction defineCallDescriptor(key) {\n return {\n value() {\n const event = pd(this).event;\n return event[key].apply(event, arguments)\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define new wrapper class.\n * @param {Function} BaseEvent The base wrapper class.\n * @param {Object} proto The prototype of the original event.\n * @returns {Function} The defined wrapper class.\n * @private\n */\nfunction defineWrapper(BaseEvent, proto) {\n const keys = Object.keys(proto);\n if (keys.length === 0) {\n return BaseEvent\n }\n\n /** CustomEvent */\n function CustomEvent(eventTarget, event) {\n BaseEvent.call(this, eventTarget, event);\n }\n\n CustomEvent.prototype = Object.create(BaseEvent.prototype, {\n constructor: { value: CustomEvent, configurable: true, writable: true },\n });\n\n // Define accessors.\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (!(key in BaseEvent.prototype)) {\n const descriptor = Object.getOwnPropertyDescriptor(proto, key);\n const isFunc = typeof descriptor.value === \"function\";\n Object.defineProperty(\n CustomEvent.prototype,\n key,\n isFunc\n ? defineCallDescriptor(key)\n : defineRedirectDescriptor(key)\n );\n }\n }\n\n return CustomEvent\n}\n\n/**\n * Get the wrapper class of a given prototype.\n * @param {Object} proto The prototype of the original event to get its wrapper.\n * @returns {Function} The wrapper class.\n * @private\n */\nfunction getWrapper(proto) {\n if (proto == null || proto === Object.prototype) {\n return Event\n }\n\n let wrapper = wrappers.get(proto);\n if (wrapper == null) {\n wrapper = defineWrapper(getWrapper(Object.getPrototypeOf(proto)), proto);\n wrappers.set(proto, wrapper);\n }\n return wrapper\n}\n\n/**\n * Wrap a given event to management a dispatching.\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Object} event The event to wrap.\n * @returns {Event} The wrapper instance.\n * @private\n */\nfunction wrapEvent(eventTarget, event) {\n const Wrapper = getWrapper(Object.getPrototypeOf(event));\n return new Wrapper(eventTarget, event)\n}\n\n/**\n * Get the immediateStopped flag of a given event.\n * @param {Event} event The event to get.\n * @returns {boolean} The flag to stop propagation immediately.\n * @private\n */\nfunction isStopped(event) {\n return pd(event).immediateStopped\n}\n\n/**\n * Set the current event phase of a given event.\n * @param {Event} event The event to set current target.\n * @param {number} eventPhase New event phase.\n * @returns {void}\n * @private\n */\nfunction setEventPhase(event, eventPhase) {\n pd(event).eventPhase = eventPhase;\n}\n\n/**\n * Set the current target of a given event.\n * @param {Event} event The event to set current target.\n * @param {EventTarget|null} currentTarget New current target.\n * @returns {void}\n * @private\n */\nfunction setCurrentTarget(event, currentTarget) {\n pd(event).currentTarget = currentTarget;\n}\n\n/**\n * Set a passive listener of a given event.\n * @param {Event} event The event to set current target.\n * @param {Function|null} passiveListener New passive listener.\n * @returns {void}\n * @private\n */\nfunction setPassiveListener(event, passiveListener) {\n pd(event).passiveListener = passiveListener;\n}\n\n/**\n * @typedef {object} ListenerNode\n * @property {Function} listener\n * @property {1|2|3} listenerType\n * @property {boolean} passive\n * @property {boolean} once\n * @property {ListenerNode|null} next\n * @private\n */\n\n/**\n * @type {WeakMap>}\n * @private\n */\nconst listenersMap = new WeakMap();\n\n// Listener types\nconst CAPTURE = 1;\nconst BUBBLE = 2;\nconst ATTRIBUTE = 3;\n\n/**\n * Check whether a given value is an object or not.\n * @param {any} x The value to check.\n * @returns {boolean} `true` if the value is an object.\n */\nfunction isObject(x) {\n return x !== null && typeof x === \"object\" //eslint-disable-line no-restricted-syntax\n}\n\n/**\n * Get listeners.\n * @param {EventTarget} eventTarget The event target to get.\n * @returns {Map} The listeners.\n * @private\n */\nfunction getListeners(eventTarget) {\n const listeners = listenersMap.get(eventTarget);\n if (listeners == null) {\n throw new TypeError(\n \"'this' is expected an EventTarget object, but got another value.\"\n )\n }\n return listeners\n}\n\n/**\n * Get the property descriptor for the event attribute of a given event.\n * @param {string} eventName The event name to get property descriptor.\n * @returns {PropertyDescriptor} The property descriptor.\n * @private\n */\nfunction defineEventAttributeDescriptor(eventName) {\n return {\n get() {\n const listeners = getListeners(this);\n let node = listeners.get(eventName);\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n return node.listener\n }\n node = node.next;\n }\n return null\n },\n\n set(listener) {\n if (typeof listener !== \"function\" && !isObject(listener)) {\n listener = null; // eslint-disable-line no-param-reassign\n }\n const listeners = getListeners(this);\n\n // Traverse to the tail while removing old value.\n let prev = null;\n let node = listeners.get(eventName);\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n // Remove old value.\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n } else {\n prev = node;\n }\n\n node = node.next;\n }\n\n // Add new value.\n if (listener !== null) {\n const newNode = {\n listener,\n listenerType: ATTRIBUTE,\n passive: false,\n once: false,\n next: null,\n };\n if (prev === null) {\n listeners.set(eventName, newNode);\n } else {\n prev.next = newNode;\n }\n }\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define an event attribute (e.g. `eventTarget.onclick`).\n * @param {Object} eventTargetPrototype The event target prototype to define an event attrbite.\n * @param {string} eventName The event name to define.\n * @returns {void}\n */\nfunction defineEventAttribute(eventTargetPrototype, eventName) {\n Object.defineProperty(\n eventTargetPrototype,\n `on${eventName}`,\n defineEventAttributeDescriptor(eventName)\n );\n}\n\n/**\n * Define a custom EventTarget with event attributes.\n * @param {string[]} eventNames Event names for event attributes.\n * @returns {EventTarget} The custom EventTarget.\n * @private\n */\nfunction defineCustomEventTarget(eventNames) {\n /** CustomEventTarget */\n function CustomEventTarget() {\n EventTarget.call(this);\n }\n\n CustomEventTarget.prototype = Object.create(EventTarget.prototype, {\n constructor: {\n value: CustomEventTarget,\n configurable: true,\n writable: true,\n },\n });\n\n for (let i = 0; i < eventNames.length; ++i) {\n defineEventAttribute(CustomEventTarget.prototype, eventNames[i]);\n }\n\n return CustomEventTarget\n}\n\n/**\n * EventTarget.\n *\n * - This is constructor if no arguments.\n * - This is a function which returns a CustomEventTarget constructor if there are arguments.\n *\n * For example:\n *\n * class A extends EventTarget {}\n * class B extends EventTarget(\"message\") {}\n * class C extends EventTarget(\"message\", \"error\") {}\n * class D extends EventTarget([\"message\", \"error\"]) {}\n */\nfunction EventTarget() {\n /*eslint-disable consistent-return */\n if (this instanceof EventTarget) {\n listenersMap.set(this, new Map());\n return\n }\n if (arguments.length === 1 && Array.isArray(arguments[0])) {\n return defineCustomEventTarget(arguments[0])\n }\n if (arguments.length > 0) {\n const types = new Array(arguments.length);\n for (let i = 0; i < arguments.length; ++i) {\n types[i] = arguments[i];\n }\n return defineCustomEventTarget(types)\n }\n throw new TypeError(\"Cannot call a class as a function\")\n /*eslint-enable consistent-return */\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEventTarget.prototype = {\n /**\n * Add a given listener to this event target.\n * @param {string} eventName The event name to add.\n * @param {Function} listener The listener to add.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n addEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n if (typeof listener !== \"function\" && !isObject(listener)) {\n throw new TypeError(\"'listener' should be a function or an object.\")\n }\n\n const listeners = getListeners(this);\n const optionsIsObj = isObject(options);\n const capture = optionsIsObj\n ? Boolean(options.capture)\n : Boolean(options);\n const listenerType = capture ? CAPTURE : BUBBLE;\n const newNode = {\n listener,\n listenerType,\n passive: optionsIsObj && Boolean(options.passive),\n once: optionsIsObj && Boolean(options.once),\n next: null,\n };\n\n // Set it as the first node if the first node is null.\n let node = listeners.get(eventName);\n if (node === undefined) {\n listeners.set(eventName, newNode);\n return\n }\n\n // Traverse to the tail while checking duplication..\n let prev = null;\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n // Should ignore duplication.\n return\n }\n prev = node;\n node = node.next;\n }\n\n // Add it.\n prev.next = newNode;\n },\n\n /**\n * Remove a given listener from this event target.\n * @param {string} eventName The event name to remove.\n * @param {Function} listener The listener to remove.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n removeEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n\n const listeners = getListeners(this);\n const capture = isObject(options)\n ? Boolean(options.capture)\n : Boolean(options);\n const listenerType = capture ? CAPTURE : BUBBLE;\n\n let prev = null;\n let node = listeners.get(eventName);\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n return\n }\n\n prev = node;\n node = node.next;\n }\n },\n\n /**\n * Dispatch a given event.\n * @param {Event|{type:string}} event The event to dispatch.\n * @returns {boolean} `false` if canceled.\n */\n dispatchEvent(event) {\n if (event == null || typeof event.type !== \"string\") {\n throw new TypeError('\"event.type\" should be a string.')\n }\n\n // If listeners aren't registered, terminate.\n const listeners = getListeners(this);\n const eventName = event.type;\n let node = listeners.get(eventName);\n if (node == null) {\n return true\n }\n\n // Since we cannot rewrite several properties, so wrap object.\n const wrappedEvent = wrapEvent(this, event);\n\n // This doesn't process capturing phase and bubbling phase.\n // This isn't participating in a tree.\n let prev = null;\n while (node != null) {\n // Remove this listener if it's once\n if (node.once) {\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n } else {\n prev = node;\n }\n\n // Call this listener\n setPassiveListener(\n wrappedEvent,\n node.passive ? node.listener : null\n );\n if (typeof node.listener === \"function\") {\n try {\n node.listener.call(this, wrappedEvent);\n } catch (err) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(err);\n }\n }\n } else if (\n node.listenerType !== ATTRIBUTE &&\n typeof node.listener.handleEvent === \"function\"\n ) {\n node.listener.handleEvent(wrappedEvent);\n }\n\n // Break if `event.stopImmediatePropagation` was called.\n if (isStopped(wrappedEvent)) {\n break\n }\n\n node = node.next;\n }\n setPassiveListener(wrappedEvent, null);\n setEventPhase(wrappedEvent, 0);\n setCurrentTarget(wrappedEvent, null);\n\n return !wrappedEvent.defaultPrevented\n },\n};\n\n// `constructor` is not enumerable.\nObject.defineProperty(EventTarget.prototype, \"constructor\", {\n value: EventTarget,\n configurable: true,\n writable: true,\n});\n\n// Ensure `eventTarget instanceof window.EventTarget` is `true`.\nif (\n typeof window !== \"undefined\" &&\n typeof window.EventTarget !== \"undefined\"\n) {\n Object.setPrototypeOf(EventTarget.prototype, window.EventTarget.prototype);\n}\n\nexports.defineEventAttribute = defineEventAttribute;\nexports.EventTarget = EventTarget;\nexports.default = EventTarget;\n\nmodule.exports = EventTarget\nmodule.exports.EventTarget = module.exports[\"default\"] = EventTarget\nmodule.exports.defineEventAttribute = defineEventAttribute\n//# sourceMappingURL=event-target-shim.js.map\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {IPerformanceLogger} from './createPerformanceLogger';\n\nimport ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';\nimport NativePerformance from '../WebPerformance/NativePerformance';\nimport createPerformanceLogger from './createPerformanceLogger';\n\nfunction isLoggingForWebPerformance(): boolean {\n return (\n NativePerformance != null &&\n ReactNativeFeatureFlags.isGlobalWebPerformanceLoggerEnabled()\n );\n}\n\n/**\n * This is a global shared instance of IPerformanceLogger that is created with\n * createPerformanceLogger().\n * This logger should be used only for global performance metrics like the ones\n * that are logged during loading bundle. If you want to log something from your\n * React component you should use PerformanceLoggerContext instead.\n */\nconst GlobalPerformanceLogger: IPerformanceLogger = createPerformanceLogger(\n isLoggingForWebPerformance(),\n);\n\nmodule.exports = GlobalPerformanceLogger;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nexport type FeatureFlags = {|\n /**\n * Function used to enable / disabled Layout Animations in React Native.\n * Default value = true.\n */\n isLayoutAnimationEnabled: () => boolean,\n /**\n * Function used to enable / disable W3C pointer event emitting in React Native.\n * If enabled you must also flip the equivalent native flags on each platform:\n * iOS -> RCTSetDispatchW3CPointerEvents\n * Android -> ReactFeatureFlags.dispatchPointerEvents\n */\n shouldEmitW3CPointerEvents: () => boolean,\n /**\n * Function used to enable / disable Pressibility from using W3C Pointer Events\n * for its hover callbacks\n */\n shouldPressibilityUseW3CPointerEventsForHover: () => boolean,\n /**\n * Enables an experimental flush-queue debouncing in Animated.js.\n */\n animatedShouldDebounceQueueFlush: () => boolean,\n /**\n * Enables an experimental mega-operation for Animated.js that replaces\n * many calls to native with a single call into native, to reduce JSI/JNI\n * traffic.\n */\n animatedShouldUseSingleOp: () => boolean,\n /**\n * Enables GlobalPerformanceLogger replacement with a WebPerformance API based\n * implementation\n */\n isGlobalWebPerformanceLoggerEnabled: () => boolean,\n /**\n * Enables access to the host tree in Fabric using DOM-compatible APIs.\n */\n enableAccessToHostTreeInFabric: () => boolean,\n|};\n\nconst ReactNativeFeatureFlags: FeatureFlags = {\n isLayoutAnimationEnabled: () => true,\n shouldEmitW3CPointerEvents: () => false,\n shouldPressibilityUseW3CPointerEventsForHover: () => false,\n animatedShouldDebounceQueueFlush: () => false,\n animatedShouldUseSingleOp: () => false,\n isGlobalWebPerformanceLoggerEnabled: () => false,\n enableAccessToHostTreeInFabric: () => false,\n};\n\nmodule.exports = ReactNativeFeatureFlags;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {\n Extras,\n ExtraValue,\n IPerformanceLogger,\n Timespan,\n} from './IPerformanceLogger';\n\nimport * as Systrace from '../Performance/Systrace';\nimport Performance from '../WebPerformance/Performance';\nimport infoLog from './infoLog';\n\nconst _cookies: {[key: string]: number, ...} = {};\n\nconst PRINT_TO_CONSOLE: false = false; // Type as false to prevent accidentally committing `true`;\n\n// This is the prefix for optional logging points/timespans as marks/measures via Performance API,\n// used to separate these internally from other marks/measures\nconst WEB_PERFORMANCE_PREFIX = 'global_perf_';\n\n// TODO: Remove once T143070419 is done\nconst performance = new Performance();\n\nexport const getCurrentTimestamp: () => number =\n global.nativeQPLTimestamp ?? global.performance.now.bind(global.performance);\n\nclass PerformanceLogger implements IPerformanceLogger {\n _timespans: {[key: string]: ?Timespan} = {};\n _extras: {[key: string]: ?ExtraValue} = {};\n _points: {[key: string]: ?number} = {};\n _pointExtras: {[key: string]: ?Extras, ...} = {};\n _closed: boolean = false;\n _isLoggingForWebPerformance: boolean = false;\n\n constructor(isLoggingForWebPerformance?: boolean) {\n this._isLoggingForWebPerformance = isLoggingForWebPerformance === true;\n }\n\n addTimespan(\n key: string,\n startTime: number,\n endTime: number,\n startExtras?: Extras,\n endExtras?: Extras,\n ) {\n if (this._closed) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog('PerformanceLogger: addTimespan - has closed ignoring: ', key);\n }\n return;\n }\n if (this._timespans[key]) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: Attempting to add a timespan that already exists ',\n key,\n );\n }\n return;\n }\n\n this._timespans[key] = {\n startTime,\n endTime,\n totalTime: endTime - (startTime || 0),\n startExtras,\n endExtras,\n };\n\n if (this._isLoggingForWebPerformance) {\n performance.measure(`${WEB_PERFORMANCE_PREFIX}_${key}`, {\n start: startTime,\n end: endTime,\n });\n }\n }\n\n append(performanceLogger: IPerformanceLogger) {\n this._timespans = {\n ...performanceLogger.getTimespans(),\n ...this._timespans,\n };\n this._extras = {...performanceLogger.getExtras(), ...this._extras};\n this._points = {...performanceLogger.getPoints(), ...this._points};\n this._pointExtras = {\n ...performanceLogger.getPointExtras(),\n ...this._pointExtras,\n };\n }\n\n clear() {\n this._timespans = {};\n this._extras = {};\n this._points = {};\n if (PRINT_TO_CONSOLE) {\n infoLog('PerformanceLogger.js', 'clear');\n }\n }\n\n clearCompleted() {\n for (const key in this._timespans) {\n if (this._timespans[key]?.totalTime != null) {\n delete this._timespans[key];\n }\n }\n this._extras = {};\n this._points = {};\n if (PRINT_TO_CONSOLE) {\n infoLog('PerformanceLogger.js', 'clearCompleted');\n }\n }\n\n close() {\n this._closed = true;\n }\n\n currentTimestamp(): number {\n return getCurrentTimestamp();\n }\n\n getExtras(): {[key: string]: ?ExtraValue} {\n return this._extras;\n }\n\n getPoints(): {[key: string]: ?number} {\n return this._points;\n }\n\n getPointExtras(): {[key: string]: ?Extras} {\n return this._pointExtras;\n }\n\n getTimespans(): {[key: string]: ?Timespan} {\n return this._timespans;\n }\n\n hasTimespan(key: string): boolean {\n return !!this._timespans[key];\n }\n\n isClosed(): boolean {\n return this._closed;\n }\n\n logEverything() {\n if (PRINT_TO_CONSOLE) {\n // log timespans\n for (const key in this._timespans) {\n if (this._timespans[key]?.totalTime != null) {\n infoLog(key + ': ' + this._timespans[key].totalTime + 'ms');\n }\n }\n\n // log extras\n infoLog(this._extras);\n\n // log points\n for (const key in this._points) {\n if (this._points[key] != null) {\n infoLog(key + ': ' + this._points[key] + 'ms');\n }\n }\n }\n }\n\n markPoint(\n key: string,\n timestamp?: number = getCurrentTimestamp(),\n extras?: Extras,\n ) {\n if (this._closed) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog('PerformanceLogger: markPoint - has closed ignoring: ', key);\n }\n return;\n }\n if (this._points[key] != null) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: Attempting to mark a point that has been already logged ',\n key,\n );\n }\n return;\n }\n this._points[key] = timestamp;\n if (extras) {\n this._pointExtras[key] = extras;\n }\n\n if (this._isLoggingForWebPerformance) {\n performance.mark(`${WEB_PERFORMANCE_PREFIX}_${key}`, {\n startTime: timestamp,\n });\n }\n }\n\n removeExtra(key: string): ?ExtraValue {\n const value = this._extras[key];\n delete this._extras[key];\n return value;\n }\n\n setExtra(key: string, value: ExtraValue) {\n if (this._closed) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog('PerformanceLogger: setExtra - has closed ignoring: ', key);\n }\n return;\n }\n\n if (this._extras.hasOwnProperty(key)) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: Attempting to set an extra that already exists ',\n {key, currentValue: this._extras[key], attemptedValue: value},\n );\n }\n return;\n }\n this._extras[key] = value;\n }\n\n startTimespan(\n key: string,\n timestamp?: number = getCurrentTimestamp(),\n extras?: Extras,\n ) {\n if (this._closed) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: startTimespan - has closed ignoring: ',\n key,\n );\n }\n return;\n }\n\n if (this._timespans[key]) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: Attempting to start a timespan that already exists ',\n key,\n );\n }\n return;\n }\n\n this._timespans[key] = {\n startTime: timestamp,\n startExtras: extras,\n };\n _cookies[key] = Systrace.beginAsyncEvent(key);\n if (PRINT_TO_CONSOLE) {\n infoLog('PerformanceLogger.js', 'start: ' + key);\n }\n\n if (this._isLoggingForWebPerformance) {\n performance.mark(`${WEB_PERFORMANCE_PREFIX}_timespan_start_${key}`, {\n startTime: timestamp,\n });\n }\n }\n\n stopTimespan(\n key: string,\n timestamp?: number = getCurrentTimestamp(),\n extras?: Extras,\n ) {\n if (this._closed) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog('PerformanceLogger: stopTimespan - has closed ignoring: ', key);\n }\n return;\n }\n\n const timespan = this._timespans[key];\n if (!timespan || timespan.startTime == null) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: Attempting to end a timespan that has not started ',\n key,\n );\n }\n return;\n }\n if (timespan.endTime != null) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: Attempting to end a timespan that has already ended ',\n key,\n );\n }\n return;\n }\n\n timespan.endExtras = extras;\n timespan.endTime = timestamp;\n timespan.totalTime = timespan.endTime - (timespan.startTime || 0);\n if (PRINT_TO_CONSOLE) {\n infoLog('PerformanceLogger.js', 'end: ' + key);\n }\n\n if (_cookies[key] != null) {\n Systrace.endAsyncEvent(key, _cookies[key]);\n delete _cookies[key];\n }\n\n if (this._isLoggingForWebPerformance) {\n performance.measure(`${WEB_PERFORMANCE_PREFIX}_${key}`, {\n start: `${WEB_PERFORMANCE_PREFIX}_timespan_start_${key}`,\n end: timestamp,\n });\n }\n }\n}\n\n// Re-exporting for backwards compatibility with all the clients that\n// may still import it from this module.\nexport type {Extras, ExtraValue, IPerformanceLogger, Timespan};\n\n/**\n * This function creates performance loggers that can be used to collect and log\n * various performance data such as timespans, points and extras.\n * The loggers need to have minimal overhead since they're used in production.\n */\nexport default function createPerformanceLogger(\n isLoggingForWebPerformance?: boolean,\n): IPerformanceLogger {\n return new PerformanceLogger(isLoggingForWebPerformance);\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\n/**\n * Intentional info-level logging for clear separation from ad-hoc console debug logging.\n */\nfunction infoLog(...args: Array): void {\n return console.log(...args);\n}\n\nmodule.exports = infoLog;\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {RequestBody} from './convertRequestBody';\n\n// Do not require the native RCTNetworking module directly! Use this wrapper module instead.\n// It will add the necessary requestId, so that you don't have to generate it yourself.\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport Platform from '../Utilities/Platform';\nimport convertRequestBody from './convertRequestBody';\nimport NativeNetworkingAndroid from './NativeNetworkingAndroid';\n\ntype Header = [string, string];\n\n// Convert FormData headers to arrays, which are easier to consume in\n// native on Android.\nfunction convertHeadersMapToArray(headers: Object): Array
{\n const headerArray: Array
= [];\n for (const name in headers) {\n headerArray.push([name, headers[name]]);\n }\n return headerArray;\n}\n\nlet _requestId = 1;\nfunction generateRequestId(): number {\n return _requestId++;\n}\n\n/**\n * This class is a wrapper around the native RCTNetworking module. It adds a necessary unique\n * requestId to each network request that can be used to abort that request later on.\n */\n// FIXME: use typed events\nclass RCTNetworking extends NativeEventEmitter<$FlowFixMe> {\n constructor() {\n super(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeNetworkingAndroid,\n );\n }\n\n sendRequest(\n method: string,\n trackingName: string,\n url: string,\n headers: Object,\n data: RequestBody,\n responseType: 'text' | 'base64',\n incrementalUpdates: boolean,\n timeout: number,\n callback: (requestId: number) => mixed,\n withCredentials: boolean,\n ) {\n const body = convertRequestBody(data);\n if (body && body.formData) {\n body.formData = body.formData.map(part => ({\n ...part,\n headers: convertHeadersMapToArray(part.headers),\n }));\n }\n const requestId = generateRequestId();\n NativeNetworkingAndroid.sendRequest(\n method,\n url,\n requestId,\n convertHeadersMapToArray(headers),\n {...body, trackingName},\n responseType,\n incrementalUpdates,\n timeout,\n withCredentials,\n );\n callback(requestId);\n }\n\n abortRequest(requestId: number) {\n NativeNetworkingAndroid.abortRequest(requestId);\n }\n\n clearCookies(callback: (result: boolean) => any) {\n NativeNetworkingAndroid.clearCookies(callback);\n }\n}\n\nexport default (new RCTNetworking(): RCTNetworking);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nimport type {\n EventSubscription,\n IEventEmitter,\n} from '../vendor/emitter/EventEmitter';\n\nimport Platform from '../Utilities/Platform';\nimport RCTDeviceEventEmitter from './RCTDeviceEventEmitter';\nimport invariant from 'invariant';\n\ninterface NativeModule {\n addListener(eventType: string): void;\n removeListeners(count: number): void;\n}\n\nexport type {EventSubscription};\n\n/**\n * `NativeEventEmitter` is intended for use by Native Modules to emit events to\n * JavaScript listeners. If a `NativeModule` is supplied to the constructor, it\n * will be notified (via `addListener` and `removeListeners`) when the listener\n * count changes to manage \"native memory\".\n *\n * Currently, all native events are fired via a global `RCTDeviceEventEmitter`.\n * This means event names must be globally unique, and it means that call sites\n * can theoretically listen to `RCTDeviceEventEmitter` (although discouraged).\n */\nexport default class NativeEventEmitter\n implements IEventEmitter\n{\n _nativeModule: ?NativeModule;\n\n constructor(nativeModule: ?NativeModule) {\n if (Platform.OS === 'ios') {\n invariant(\n nativeModule != null,\n '`new NativeEventEmitter()` requires a non-null argument.',\n );\n }\n\n const hasAddListener =\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n !!nativeModule && typeof nativeModule.addListener === 'function';\n const hasRemoveListeners =\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n !!nativeModule && typeof nativeModule.removeListeners === 'function';\n\n if (nativeModule && hasAddListener && hasRemoveListeners) {\n this._nativeModule = nativeModule;\n } else if (nativeModule != null) {\n if (!hasAddListener) {\n console.warn(\n '`new NativeEventEmitter()` was called with a non-null argument without the required `addListener` method.',\n );\n }\n if (!hasRemoveListeners) {\n console.warn(\n '`new NativeEventEmitter()` was called with a non-null argument without the required `removeListeners` method.',\n );\n }\n }\n }\n\n addListener>(\n eventType: TEvent,\n listener: (...args: $ElementType) => mixed,\n context?: mixed,\n ): EventSubscription {\n this._nativeModule?.addListener(eventType);\n let subscription: ?EventSubscription = RCTDeviceEventEmitter.addListener(\n eventType,\n listener,\n context,\n );\n\n return {\n remove: () => {\n if (subscription != null) {\n this._nativeModule?.removeListeners(1);\n // $FlowFixMe[incompatible-use]\n subscription.remove();\n subscription = null;\n }\n },\n };\n }\n\n emit>(\n eventType: TEvent,\n ...args: $ElementType\n ): void {\n // Generally, `RCTDeviceEventEmitter` is directly invoked. But this is\n // included for completeness.\n RCTDeviceEventEmitter.emit(eventType, ...args);\n }\n\n removeAllListeners>(\n eventType?: ?TEvent,\n ): void {\n invariant(\n eventType != null,\n '`NativeEventEmitter.removeAllListener()` requires a non-null argument.',\n );\n this._nativeModule?.removeListeners(this.listenerCount(eventType));\n RCTDeviceEventEmitter.removeAllListeners(eventType);\n }\n\n listenerCount>(eventType: TEvent): number {\n return RCTDeviceEventEmitter.listenerCount(eventType);\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nconst Blob = require('../Blob/Blob');\nconst binaryToBase64 = require('../Utilities/binaryToBase64');\nconst FormData = require('./FormData');\n\nexport type RequestBody =\n | string\n | Blob\n | FormData\n | {uri: string, ...}\n | ArrayBuffer\n | $ArrayBufferView;\n\nfunction convertRequestBody(body: RequestBody): Object {\n if (typeof body === 'string') {\n return {string: body};\n }\n if (body instanceof Blob) {\n return {blob: body.data};\n }\n if (body instanceof FormData) {\n return {formData: body.getParts()};\n }\n if (body instanceof ArrayBuffer || ArrayBuffer.isView(body)) {\n /* $FlowFixMe[incompatible-call] : no way to assert that 'body' is indeed\n * an ArrayBufferView */\n return {base64: binaryToBase64(body)};\n }\n return body;\n}\n\nmodule.exports = convertRequestBody;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\ntype FormDataValue = string | {name?: string, type?: string, uri: string};\ntype FormDataNameValuePair = [string, FormDataValue];\n\ntype Headers = {[name: string]: string, ...};\ntype FormDataPart =\n | {\n string: string,\n headers: Headers,\n ...\n }\n | {\n uri: string,\n headers: Headers,\n name?: string,\n type?: string,\n ...\n };\n\n/**\n * Polyfill for XMLHttpRequest2 FormData API, allowing multipart POST requests\n * with mixed data (string, native files) to be submitted via XMLHttpRequest.\n *\n * Example:\n *\n * var photo = {\n * uri: uriFromCameraRoll,\n * type: 'image/jpeg',\n * name: 'photo.jpg',\n * };\n *\n * var body = new FormData();\n * body.append('authToken', 'secret');\n * body.append('photo', photo);\n * body.append('title', 'A beautiful photo!');\n *\n * xhr.open('POST', serverURL);\n * xhr.send(body);\n */\nclass FormData {\n _parts: Array;\n\n constructor() {\n this._parts = [];\n }\n\n append(key: string, value: FormDataValue) {\n // The XMLHttpRequest spec doesn't specify if duplicate keys are allowed.\n // MDN says that any new values should be appended to existing values.\n // In any case, major browsers allow duplicate keys, so that's what we'll do\n // too. They'll simply get appended as additional form data parts in the\n // request body, leaving the server to deal with them.\n this._parts.push([key, value]);\n }\n\n getAll(key: string): Array {\n return this._parts\n .filter(([name]) => name === key)\n .map(([, value]) => value);\n }\n\n getParts(): Array {\n return this._parts.map(([name, value]) => {\n const contentDisposition = 'form-data; name=\"' + name + '\"';\n\n const headers: Headers = {'content-disposition': contentDisposition};\n\n // The body part is a \"blob\", which in React Native just means\n // an object with a `uri` attribute. Optionally, it can also\n // have a `name` and `type` attribute to specify filename and\n // content type (cf. web Blob interface.)\n if (typeof value === 'object' && !Array.isArray(value) && value) {\n if (typeof value.name === 'string') {\n headers['content-disposition'] += '; filename=\"' + value.name + '\"';\n }\n if (typeof value.type === 'string') {\n headers['content-type'] = value.type;\n }\n return {...value, headers, fieldName: name};\n }\n // Convert non-object values to strings as per FormData.append() spec\n return {string: String(value), headers, fieldName: name};\n });\n }\n}\n\nmodule.exports = FormData;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nconst base64 = require('base64-js');\n\nfunction binaryToBase64(data: ArrayBuffer | $ArrayBufferView): string {\n if (data instanceof ArrayBuffer) {\n // $FlowFixMe[reassign-const]\n data = new Uint8Array(data);\n }\n if (data instanceof Uint8Array) {\n return base64.fromByteArray(data);\n }\n if (!ArrayBuffer.isView(data)) {\n throw new Error('data must be ArrayBuffer or typed array');\n }\n // Already checked that `data` is `DataView` in `ArrayBuffer.isView(data)`\n const {buffer, byteOffset, byteLength} = ((data: $FlowFixMe): DataView);\n return base64.fromByteArray(new Uint8Array(buffer, byteOffset, byteLength));\n}\n\nmodule.exports = binaryToBase64;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\ntype Header = [string, string];\n\nexport interface Spec extends TurboModule {\n +sendRequest: (\n method: string,\n url: string,\n requestId: number,\n headers: Array
,\n data: Object,\n responseType: string,\n useIncrementalUpdates: boolean,\n timeout: number,\n withCredentials: boolean,\n ) => void;\n +abortRequest: (requestId: number) => void;\n +clearCookies: (callback: (result: boolean) => void) => void;\n\n // RCTEventEmitter\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('Networking'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n/* globals Headers, Request, Response */\n\n'use strict';\n\n// side-effectful require() to put fetch,\n// Headers, Request, Response in global scope\nrequire('whatwg-fetch');\n\nmodule.exports = {fetch, Headers, Request, Response};\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (factory((global.WHATWGFetch = {})));\n}(this, (function (exports) { 'use strict';\n\n var global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n (typeof global !== 'undefined' && global);\n\n var support = {\n searchParams: 'URLSearchParams' in global,\n iterable: 'Symbol' in global && 'iterator' in Symbol,\n blob:\n 'FileReader' in global &&\n 'Blob' in global &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in global,\n arrayBuffer: 'ArrayBuffer' in global\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n this.bodyUsed = this.bodyUsed;\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this);\n if (isConsumed) {\n return isConsumed\n }\n if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/;\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime());\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/;\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime();\n }\n }\n }\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText;\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = global.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n setTimeout(function() {\n resolve(new Response(body, options));\n }, 0);\n };\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n }, 0);\n };\n\n function fixUrl(url) {\n try {\n return url === '' && global.location.href ? global.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob';\n } else if (\n support.arrayBuffer &&\n request.headers.get('Content-Type') &&\n request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1\n ) {\n xhr.responseType = 'arraybuffer';\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) {\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]));\n });\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!global.fetch) {\n global.fetch = fetch;\n global.Headers = Headers;\n global.Request = Request;\n global.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {BlobData} from '../Blob/BlobTypes';\nimport type {EventSubscription} from '../vendor/emitter/EventEmitter';\n\nimport Blob from '../Blob/Blob';\nimport BlobManager from '../Blob/BlobManager';\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport binaryToBase64 from '../Utilities/binaryToBase64';\nimport Platform from '../Utilities/Platform';\nimport NativeWebSocketModule from './NativeWebSocketModule';\nimport WebSocketEvent from './WebSocketEvent';\nimport base64 from 'base64-js';\nimport EventTarget from 'event-target-shim';\nimport invariant from 'invariant';\n\ntype ArrayBufferView =\n | Int8Array\n | Uint8Array\n | Uint8ClampedArray\n | Int16Array\n | Uint16Array\n | Int32Array\n | Uint32Array\n | Float32Array\n | Float64Array\n | DataView;\n\ntype BinaryType = 'blob' | 'arraybuffer';\n\nconst CONNECTING = 0;\nconst OPEN = 1;\nconst CLOSING = 2;\nconst CLOSED = 3;\n\nconst CLOSE_NORMAL = 1000;\n\n// Abnormal closure where no code is provided in a control frame\n// https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5\nconst CLOSE_ABNORMAL = 1006;\n\nconst WEBSOCKET_EVENTS = ['close', 'error', 'message', 'open'];\n\nlet nextWebSocketId = 0;\n\ntype WebSocketEventDefinitions = {\n websocketOpen: [{id: number, protocol: string}],\n websocketClosed: [{id: number, code: number, reason: string}],\n websocketMessage: [\n | {type: 'binary', id: number, data: string}\n | {type: 'text', id: number, data: string}\n | {type: 'blob', id: number, data: BlobData},\n ],\n websocketFailed: [{id: number, message: string}],\n};\n\n/**\n * Browser-compatible WebSockets implementation.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/WebSocket\n * See https://github.com/websockets/ws\n */\nclass WebSocket extends (EventTarget(...WEBSOCKET_EVENTS): any) {\n static CONNECTING: number = CONNECTING;\n static OPEN: number = OPEN;\n static CLOSING: number = CLOSING;\n static CLOSED: number = CLOSED;\n\n CONNECTING: number = CONNECTING;\n OPEN: number = OPEN;\n CLOSING: number = CLOSING;\n CLOSED: number = CLOSED;\n\n _socketId: number;\n _eventEmitter: NativeEventEmitter;\n _subscriptions: Array;\n _binaryType: ?BinaryType;\n\n onclose: ?Function;\n onerror: ?Function;\n onmessage: ?Function;\n onopen: ?Function;\n\n bufferedAmount: number;\n extension: ?string;\n protocol: ?string;\n readyState: number = CONNECTING;\n url: ?string;\n\n constructor(\n url: string,\n protocols: ?string | ?Array,\n options: ?{headers?: {origin?: string, ...}, ...},\n ) {\n super();\n this.url = url;\n if (typeof protocols === 'string') {\n protocols = [protocols];\n }\n\n const {headers = {}, ...unrecognized} = options || {};\n\n // Preserve deprecated backwards compatibility for the 'origin' option\n // $FlowFixMe[prop-missing]\n if (unrecognized && typeof unrecognized.origin === 'string') {\n console.warn(\n 'Specifying `origin` as a WebSocket connection option is deprecated. Include it under `headers` instead.',\n );\n /* $FlowFixMe[prop-missing] (>=0.54.0 site=react_native_fb,react_native_\n * oss) This comment suppresses an error found when Flow v0.54 was\n * deployed. To see the error delete this comment and run Flow. */\n headers.origin = unrecognized.origin;\n /* $FlowFixMe[prop-missing] (>=0.54.0 site=react_native_fb,react_native_\n * oss) This comment suppresses an error found when Flow v0.54 was\n * deployed. To see the error delete this comment and run Flow. */\n delete unrecognized.origin;\n }\n\n // Warn about and discard anything else\n if (Object.keys(unrecognized).length > 0) {\n console.warn(\n 'Unrecognized WebSocket connection option(s) `' +\n Object.keys(unrecognized).join('`, `') +\n '`. ' +\n 'Did you mean to put these under `headers`?',\n );\n }\n\n if (!Array.isArray(protocols)) {\n protocols = null;\n }\n\n this._eventEmitter = new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeWebSocketModule,\n );\n this._socketId = nextWebSocketId++;\n this._registerEvents();\n NativeWebSocketModule.connect(url, protocols, {headers}, this._socketId);\n }\n\n get binaryType(): ?BinaryType {\n return this._binaryType;\n }\n\n set binaryType(binaryType: BinaryType): void {\n if (binaryType !== 'blob' && binaryType !== 'arraybuffer') {\n throw new Error(\"binaryType must be either 'blob' or 'arraybuffer'\");\n }\n if (this._binaryType === 'blob' || binaryType === 'blob') {\n invariant(\n BlobManager.isAvailable,\n 'Native module BlobModule is required for blob support',\n );\n if (binaryType === 'blob') {\n BlobManager.addWebSocketHandler(this._socketId);\n } else {\n BlobManager.removeWebSocketHandler(this._socketId);\n }\n }\n this._binaryType = binaryType;\n }\n\n close(code?: number, reason?: string): void {\n if (this.readyState === this.CLOSING || this.readyState === this.CLOSED) {\n return;\n }\n\n this.readyState = this.CLOSING;\n this._close(code, reason);\n }\n\n send(data: string | ArrayBuffer | ArrayBufferView | Blob): void {\n if (this.readyState === this.CONNECTING) {\n throw new Error('INVALID_STATE_ERR');\n }\n\n if (data instanceof Blob) {\n invariant(\n BlobManager.isAvailable,\n 'Native module BlobModule is required for blob support',\n );\n BlobManager.sendOverSocket(data, this._socketId);\n return;\n }\n\n if (typeof data === 'string') {\n NativeWebSocketModule.send(data, this._socketId);\n return;\n }\n\n if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) {\n NativeWebSocketModule.sendBinary(binaryToBase64(data), this._socketId);\n return;\n }\n\n throw new Error('Unsupported data type');\n }\n\n ping(): void {\n if (this.readyState === this.CONNECTING) {\n throw new Error('INVALID_STATE_ERR');\n }\n\n NativeWebSocketModule.ping(this._socketId);\n }\n\n _close(code?: number, reason?: string): void {\n // See https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent\n const statusCode = typeof code === 'number' ? code : CLOSE_NORMAL;\n const closeReason = typeof reason === 'string' ? reason : '';\n NativeWebSocketModule.close(statusCode, closeReason, this._socketId);\n\n if (BlobManager.isAvailable && this._binaryType === 'blob') {\n BlobManager.removeWebSocketHandler(this._socketId);\n }\n }\n\n _unregisterEvents(): void {\n this._subscriptions.forEach(e => e.remove());\n this._subscriptions = [];\n }\n\n _registerEvents(): void {\n this._subscriptions = [\n this._eventEmitter.addListener('websocketMessage', ev => {\n if (ev.id !== this._socketId) {\n return;\n }\n let data: Blob | BlobData | ArrayBuffer | string = ev.data;\n switch (ev.type) {\n case 'binary':\n data = base64.toByteArray(ev.data).buffer;\n break;\n case 'blob':\n data = BlobManager.createFromOptions(ev.data);\n break;\n }\n this.dispatchEvent(new WebSocketEvent('message', {data}));\n }),\n this._eventEmitter.addListener('websocketOpen', ev => {\n if (ev.id !== this._socketId) {\n return;\n }\n this.readyState = this.OPEN;\n this.protocol = ev.protocol;\n this.dispatchEvent(new WebSocketEvent('open'));\n }),\n this._eventEmitter.addListener('websocketClosed', ev => {\n if (ev.id !== this._socketId) {\n return;\n }\n this.readyState = this.CLOSED;\n this.dispatchEvent(\n new WebSocketEvent('close', {\n code: ev.code,\n reason: ev.reason,\n // TODO: missing `wasClean` (exposed on iOS as `clean` but missing on Android)\n }),\n );\n this._unregisterEvents();\n this.close();\n }),\n this._eventEmitter.addListener('websocketFailed', ev => {\n if (ev.id !== this._socketId) {\n return;\n }\n this.readyState = this.CLOSED;\n this.dispatchEvent(\n new WebSocketEvent('error', {\n message: ev.message,\n }),\n );\n this.dispatchEvent(\n new WebSocketEvent('close', {\n code: CLOSE_ABNORMAL,\n reason: ev.message,\n // TODO: Expose `wasClean`\n }),\n );\n this._unregisterEvents();\n this.close();\n }),\n ];\n }\n}\n\nmodule.exports = WebSocket;\n","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +connect: (\n url: string,\n protocols: ?Array,\n options: {|headers?: Object|},\n socketID: number,\n ) => void;\n +send: (message: string, forSocketID: number) => void;\n +sendBinary: (base64String: string, forSocketID: number) => void;\n +ping: (socketID: number) => void;\n +close: (code: number, reason: string, socketID: number) => void;\n\n // RCTEventEmitter\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing(\n 'WebSocketModule',\n): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\n/**\n * Event object passed to the `onopen`, `onclose`, `onmessage`, `onerror`\n * callbacks of `WebSocket`.\n *\n * The `type` property is \"open\", \"close\", \"message\", \"error\" respectively.\n *\n * In case of \"message\", the `data` property contains the incoming data.\n */\nclass WebSocketEvent {\n constructor(type, eventInitDict) {\n this.type = type.toString();\n Object.assign(this, eventInitDict);\n }\n}\n\nmodule.exports = WebSocketEvent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {BlobOptions} from './BlobTypes';\n\nconst Blob = require('./Blob');\nconst invariant = require('invariant');\n\n/**\n * The File interface provides information about files.\n */\nclass File extends Blob {\n /**\n * Constructor for JS consumers.\n */\n constructor(\n parts: Array,\n name: string,\n options?: BlobOptions,\n ) {\n invariant(\n parts != null && name != null,\n 'Failed to construct `File`: Must pass both `parts` and `name` arguments.',\n );\n\n super(parts, options);\n this.data.name = name;\n }\n\n /**\n * Name of the file.\n */\n get name(): string {\n invariant(this.data.name != null, 'Files must have a name set.');\n return this.data.name;\n }\n\n /*\n * Last modified time of the file.\n */\n get lastModified(): number {\n return this.data.lastModified || 0;\n }\n}\n\nmodule.exports = File;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type Blob from './Blob';\n\nimport NativeFileReaderModule from './NativeFileReaderModule';\nimport {toByteArray} from 'base64-js';\n\nconst EventTarget = require('event-target-shim');\n\ntype ReadyState =\n | 0 // EMPTY\n | 1 // LOADING\n | 2; // DONE\n\ntype ReaderResult = string | ArrayBuffer;\n\nconst READER_EVENTS = [\n 'abort',\n 'error',\n 'load',\n 'loadstart',\n 'loadend',\n 'progress',\n];\n\nconst EMPTY = 0;\nconst LOADING = 1;\nconst DONE = 2;\n\nclass FileReader extends (EventTarget(...READER_EVENTS): any) {\n static EMPTY: number = EMPTY;\n static LOADING: number = LOADING;\n static DONE: number = DONE;\n\n EMPTY: number = EMPTY;\n LOADING: number = LOADING;\n DONE: number = DONE;\n\n _readyState: ReadyState;\n _error: ?Error;\n _result: ?ReaderResult;\n _aborted: boolean = false;\n\n constructor() {\n super();\n this._reset();\n }\n\n _reset(): void {\n this._readyState = EMPTY;\n this._error = null;\n this._result = null;\n }\n\n _setReadyState(newState: ReadyState) {\n this._readyState = newState;\n this.dispatchEvent({type: 'readystatechange'});\n if (newState === DONE) {\n if (this._aborted) {\n this.dispatchEvent({type: 'abort'});\n } else if (this._error) {\n this.dispatchEvent({type: 'error'});\n } else {\n this.dispatchEvent({type: 'load'});\n }\n this.dispatchEvent({type: 'loadend'});\n }\n }\n\n readAsArrayBuffer(blob: ?Blob): void {\n this._aborted = false;\n\n if (blob == null) {\n throw new TypeError(\n \"Failed to execute 'readAsArrayBuffer' on 'FileReader': parameter 1 is not of type 'Blob'\",\n );\n }\n\n NativeFileReaderModule.readAsDataURL(blob.data).then(\n (text: string) => {\n if (this._aborted) {\n return;\n }\n\n const base64 = text.split(',')[1];\n const typedArray = toByteArray(base64);\n\n this._result = typedArray.buffer;\n this._setReadyState(DONE);\n },\n error => {\n if (this._aborted) {\n return;\n }\n this._error = error;\n this._setReadyState(DONE);\n },\n );\n }\n\n readAsDataURL(blob: ?Blob): void {\n this._aborted = false;\n\n if (blob == null) {\n throw new TypeError(\n \"Failed to execute 'readAsDataURL' on 'FileReader': parameter 1 is not of type 'Blob'\",\n );\n }\n\n NativeFileReaderModule.readAsDataURL(blob.data).then(\n (text: string) => {\n if (this._aborted) {\n return;\n }\n this._result = text;\n this._setReadyState(DONE);\n },\n error => {\n if (this._aborted) {\n return;\n }\n this._error = error;\n this._setReadyState(DONE);\n },\n );\n }\n\n readAsText(blob: ?Blob, encoding: string = 'UTF-8'): void {\n this._aborted = false;\n\n if (blob == null) {\n throw new TypeError(\n \"Failed to execute 'readAsText' on 'FileReader': parameter 1 is not of type 'Blob'\",\n );\n }\n\n NativeFileReaderModule.readAsText(blob.data, encoding).then(\n (text: string) => {\n if (this._aborted) {\n return;\n }\n this._result = text;\n this._setReadyState(DONE);\n },\n error => {\n if (this._aborted) {\n return;\n }\n this._error = error;\n this._setReadyState(DONE);\n },\n );\n }\n\n abort() {\n this._aborted = true;\n // only call onreadystatechange if there is something to abort, as per spec\n if (this._readyState !== EMPTY && this._readyState !== DONE) {\n this._reset();\n this._setReadyState(DONE);\n }\n // Reset again after, in case modified in handler\n this._reset();\n }\n\n get readyState(): ReadyState {\n return this._readyState;\n }\n\n get error(): ?Error {\n return this._error;\n }\n\n get result(): ?ReaderResult {\n return this._result;\n }\n}\n\nmodule.exports = FileReader;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +readAsDataURL: (data: Object) => Promise;\n +readAsText: (data: Object, encoding: string) => Promise;\n}\n\nexport default (TurboModuleRegistry.getEnforcing(\n 'FileReaderModule',\n): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type Blob from './Blob';\n\nimport NativeBlobModule from './NativeBlobModule';\n\nlet BLOB_URL_PREFIX = null;\n\nif (\n NativeBlobModule &&\n typeof NativeBlobModule.getConstants().BLOB_URI_SCHEME === 'string'\n) {\n const constants = NativeBlobModule.getConstants();\n // $FlowFixMe[incompatible-type] asserted above\n // $FlowFixMe[unsafe-addition]\n BLOB_URL_PREFIX = constants.BLOB_URI_SCHEME + ':';\n if (typeof constants.BLOB_URI_HOST === 'string') {\n BLOB_URL_PREFIX += `//${constants.BLOB_URI_HOST}/`;\n }\n}\n\n/**\n * To allow Blobs be accessed via `content://` URIs,\n * you need to register `BlobProvider` as a ContentProvider in your app's `AndroidManifest.xml`:\n *\n * ```xml\n * \n * \n * \n * \n * \n * ```\n * And then define the `blob_provider_authority` string in `res/values/strings.xml`.\n * Use a dotted name that's entirely unique to your app:\n *\n * ```xml\n * \n * your.app.package.blobs\n * \n * ```\n */\n\n// Small subset from whatwg-url: https://github.com/jsdom/whatwg-url/tree/master/src\n// The reference code bloat comes from Unicode issues with URLs, so those won't work here.\nexport class URLSearchParams {\n _searchParams: Array> = [];\n\n constructor(params: any) {\n if (typeof params === 'object') {\n Object.keys(params).forEach(key => this.append(key, params[key]));\n }\n }\n\n append(key: string, value: string): void {\n this._searchParams.push([key, value]);\n }\n\n delete(name: string): void {\n throw new Error('URLSearchParams.delete is not implemented');\n }\n\n get(name: string): void {\n throw new Error('URLSearchParams.get is not implemented');\n }\n\n getAll(name: string): void {\n throw new Error('URLSearchParams.getAll is not implemented');\n }\n\n has(name: string): void {\n throw new Error('URLSearchParams.has is not implemented');\n }\n\n set(name: string, value: string): void {\n throw new Error('URLSearchParams.set is not implemented');\n }\n\n sort(): void {\n throw new Error('URLSearchParams.sort is not implemented');\n }\n\n // $FlowFixMe[unsupported-syntax]\n // $FlowFixMe[missing-local-annot]\n [Symbol.iterator]() {\n return this._searchParams[Symbol.iterator]();\n }\n\n toString(): string {\n if (this._searchParams.length === 0) {\n return '';\n }\n const last = this._searchParams.length - 1;\n return this._searchParams.reduce((acc, curr, index) => {\n return (\n acc +\n encodeURIComponent(curr[0]) +\n '=' +\n encodeURIComponent(curr[1]) +\n (index === last ? '' : '&')\n );\n }, '');\n }\n}\n\nfunction validateBaseUrl(url: string) {\n // from this MIT-licensed gist: https://gist.github.com/dperini/729294\n return /^(?:(?:(?:https?|ftp):)?\\/\\/)(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)*(?:[a-z\\u00a1-\\uffff]{2,}\\.?))(?::\\d{2,5})?(?:[/?#]\\S*)?$/.test(\n url,\n );\n}\n\nexport class URL {\n _url: string;\n _searchParamsInstance: ?URLSearchParams = null;\n\n static createObjectURL(blob: Blob): string {\n if (BLOB_URL_PREFIX === null) {\n throw new Error('Cannot create URL for blob!');\n }\n return `${BLOB_URL_PREFIX}${blob.data.blobId}?offset=${blob.data.offset}&size=${blob.size}`;\n }\n\n static revokeObjectURL(url: string) {\n // Do nothing.\n }\n\n // $FlowFixMe[missing-local-annot]\n constructor(url: string, base: string | URL) {\n let baseUrl = null;\n if (!base || validateBaseUrl(url)) {\n this._url = url;\n if (!this._url.endsWith('/')) {\n this._url += '/';\n }\n } else {\n if (typeof base === 'string') {\n baseUrl = base;\n if (!validateBaseUrl(baseUrl)) {\n throw new TypeError(`Invalid base URL: ${baseUrl}`);\n }\n } else {\n baseUrl = base.toString();\n }\n if (baseUrl.endsWith('/')) {\n baseUrl = baseUrl.slice(0, baseUrl.length - 1);\n }\n if (!url.startsWith('/')) {\n url = `/${url}`;\n }\n if (baseUrl.endsWith(url)) {\n url = '';\n }\n this._url = `${baseUrl}${url}`;\n }\n }\n\n get hash(): string {\n throw new Error('URL.hash is not implemented');\n }\n\n get host(): string {\n throw new Error('URL.host is not implemented');\n }\n\n get hostname(): string {\n throw new Error('URL.hostname is not implemented');\n }\n\n get href(): string {\n return this.toString();\n }\n\n get origin(): string {\n throw new Error('URL.origin is not implemented');\n }\n\n get password(): string {\n throw new Error('URL.password is not implemented');\n }\n\n get pathname(): string {\n throw new Error('URL.pathname not implemented');\n }\n\n get port(): string {\n throw new Error('URL.port is not implemented');\n }\n\n get protocol(): string {\n throw new Error('URL.protocol is not implemented');\n }\n\n get search(): string {\n throw new Error('URL.search is not implemented');\n }\n\n get searchParams(): URLSearchParams {\n if (this._searchParamsInstance == null) {\n this._searchParamsInstance = new URLSearchParams();\n }\n return this._searchParamsInstance;\n }\n\n toJSON(): string {\n return this.toString();\n }\n\n toString(): string {\n if (this._searchParamsInstance === null) {\n return this._url;\n }\n // $FlowFixMe[incompatible-use]\n const instanceString = this._searchParamsInstance.toString();\n const separator = this._url.indexOf('?') > -1 ? '&' : '?';\n return this._url + separator + instanceString;\n }\n\n get username(): string {\n throw new Error('URL.username is not implemented');\n }\n}\n","/**\n * @author Toru Nagashima \n * See LICENSE file in root directory for full license.\n */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar eventTargetShim = require('event-target-shim');\n\n/**\n * The signal class.\n * @see https://dom.spec.whatwg.org/#abortsignal\n */\nclass AbortSignal extends eventTargetShim.EventTarget {\n /**\n * AbortSignal cannot be constructed directly.\n */\n constructor() {\n super();\n throw new TypeError(\"AbortSignal cannot be constructed directly\");\n }\n /**\n * Returns `true` if this `AbortSignal`'s `AbortController` has signaled to abort, and `false` otherwise.\n */\n get aborted() {\n const aborted = abortedFlags.get(this);\n if (typeof aborted !== \"boolean\") {\n throw new TypeError(`Expected 'this' to be an 'AbortSignal' object, but got ${this === null ? \"null\" : typeof this}`);\n }\n return aborted;\n }\n}\neventTargetShim.defineEventAttribute(AbortSignal.prototype, \"abort\");\n/**\n * Create an AbortSignal object.\n */\nfunction createAbortSignal() {\n const signal = Object.create(AbortSignal.prototype);\n eventTargetShim.EventTarget.call(signal);\n abortedFlags.set(signal, false);\n return signal;\n}\n/**\n * Abort a given signal.\n */\nfunction abortSignal(signal) {\n if (abortedFlags.get(signal) !== false) {\n return;\n }\n abortedFlags.set(signal, true);\n signal.dispatchEvent({ type: \"abort\" });\n}\n/**\n * Aborted flag for each instances.\n */\nconst abortedFlags = new WeakMap();\n// Properties should be enumerable.\nObject.defineProperties(AbortSignal.prototype, {\n aborted: { enumerable: true },\n});\n// `toString()` should return `\"[object AbortSignal]\"`\nif (typeof Symbol === \"function\" && typeof Symbol.toStringTag === \"symbol\") {\n Object.defineProperty(AbortSignal.prototype, Symbol.toStringTag, {\n configurable: true,\n value: \"AbortSignal\",\n });\n}\n\n/**\n * The AbortController.\n * @see https://dom.spec.whatwg.org/#abortcontroller\n */\nclass AbortController {\n /**\n * Initialize this controller.\n */\n constructor() {\n signals.set(this, createAbortSignal());\n }\n /**\n * Returns the `AbortSignal` object associated with this object.\n */\n get signal() {\n return getSignal(this);\n }\n /**\n * Abort and signal to any observers that the associated activity is to be aborted.\n */\n abort() {\n abortSignal(getSignal(this));\n }\n}\n/**\n * Associated signals.\n */\nconst signals = new WeakMap();\n/**\n * Get the associated signal of a given controller.\n */\nfunction getSignal(controller) {\n const signal = signals.get(controller);\n if (signal == null) {\n throw new TypeError(`Expected 'this' to be an 'AbortController' object, but got ${controller === null ? \"null\" : typeof controller}`);\n }\n return signal;\n}\n// Properties should be enumerable.\nObject.defineProperties(AbortController.prototype, {\n signal: { enumerable: true },\n abort: { enumerable: true },\n});\nif (typeof Symbol === \"function\" && typeof Symbol.toStringTag === \"symbol\") {\n Object.defineProperty(AbortController.prototype, Symbol.toStringTag, {\n configurable: true,\n value: \"AbortController\",\n });\n}\n\nexports.AbortController = AbortController;\nexports.AbortSignal = AbortSignal;\nexports.default = AbortController;\n\nmodule.exports = AbortController\nmodule.exports.AbortController = module.exports[\"default\"] = AbortController\nmodule.exports.AbortSignal = AbortSignal\n//# sourceMappingURL=abort-controller.js.map\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\n/**\n * Set up alert().\n * You can use this module directly, or just require InitializeCore.\n */\nif (!global.alert) {\n global.alert = function (text: string) {\n // Require Alert on demand. Requiring it too early can lead to issues\n // with things like Platform not being fully initialized.\n require('../Alert/Alert').alert('Alert', '' + text);\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {DialogOptions} from '../NativeModules/specs/NativeDialogManagerAndroid';\n\nimport Platform from '../Utilities/Platform';\nimport RCTAlertManager from './RCTAlertManager';\n\nexport type AlertType =\n | 'default'\n | 'plain-text'\n | 'secure-text'\n | 'login-password';\nexport type AlertButtonStyle = 'default' | 'cancel' | 'destructive';\nexport type Buttons = Array<{\n text?: string,\n onPress?: ?Function,\n isPreferred?: boolean,\n style?: AlertButtonStyle,\n ...\n}>;\n\ntype Options = {\n cancelable?: ?boolean,\n userInterfaceStyle?: 'unspecified' | 'light' | 'dark',\n onDismiss?: ?() => void,\n ...\n};\n\n/**\n * Launches an alert dialog with the specified title and message.\n *\n * See https://reactnative.dev/docs/alert\n */\nclass Alert {\n static alert(\n title: ?string,\n message?: ?string,\n buttons?: Buttons,\n options?: Options,\n ): void {\n if (Platform.OS === 'ios') {\n Alert.prompt(\n title,\n message,\n buttons,\n 'default',\n undefined,\n undefined,\n options,\n );\n } else if (Platform.OS === 'android') {\n const NativeDialogManagerAndroid =\n require('../NativeModules/specs/NativeDialogManagerAndroid').default;\n if (!NativeDialogManagerAndroid) {\n return;\n }\n const constants = NativeDialogManagerAndroid.getConstants();\n\n const config: DialogOptions = {\n title: title || '',\n message: message || '',\n cancelable: false,\n };\n\n if (options && options.cancelable) {\n config.cancelable = options.cancelable;\n }\n // At most three buttons (neutral, negative, positive). Ignore rest.\n // The text 'OK' should be probably localized. iOS Alert does that in native.\n const defaultPositiveText = 'OK';\n const validButtons: Buttons = buttons\n ? buttons.slice(0, 3)\n : [{text: defaultPositiveText}];\n const buttonPositive = validButtons.pop();\n const buttonNegative = validButtons.pop();\n const buttonNeutral = validButtons.pop();\n\n if (buttonNeutral) {\n config.buttonNeutral = buttonNeutral.text || '';\n }\n if (buttonNegative) {\n config.buttonNegative = buttonNegative.text || '';\n }\n if (buttonPositive) {\n config.buttonPositive = buttonPositive.text || defaultPositiveText;\n }\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n const onAction = (action, buttonKey) => {\n if (action === constants.buttonClicked) {\n if (buttonKey === constants.buttonNeutral) {\n buttonNeutral.onPress && buttonNeutral.onPress();\n } else if (buttonKey === constants.buttonNegative) {\n buttonNegative.onPress && buttonNegative.onPress();\n } else if (buttonKey === constants.buttonPositive) {\n buttonPositive.onPress && buttonPositive.onPress();\n }\n } else if (action === constants.dismissed) {\n options && options.onDismiss && options.onDismiss();\n }\n };\n const onError = (errorMessage: string) => console.warn(errorMessage);\n NativeDialogManagerAndroid.showAlert(config, onError, onAction);\n }\n }\n\n static prompt(\n title: ?string,\n message?: ?string,\n callbackOrButtons?: ?(((text: string) => void) | Buttons),\n type?: ?AlertType = 'plain-text',\n defaultValue?: string,\n keyboardType?: string,\n options?: Options,\n ): void {\n if (Platform.OS === 'ios') {\n let callbacks: Array = [];\n const buttons = [];\n let cancelButtonKey;\n let destructiveButtonKey;\n let preferredButtonKey;\n if (typeof callbackOrButtons === 'function') {\n callbacks = [callbackOrButtons];\n } else if (Array.isArray(callbackOrButtons)) {\n callbackOrButtons.forEach((btn, index) => {\n callbacks[index] = btn.onPress;\n if (btn.style === 'cancel') {\n cancelButtonKey = String(index);\n } else if (btn.style === 'destructive') {\n destructiveButtonKey = String(index);\n }\n if (btn.isPreferred) {\n preferredButtonKey = String(index);\n }\n if (btn.text || index < (callbackOrButtons || []).length - 1) {\n const btnDef: {[number]: string} = {};\n btnDef[index] = btn.text || '';\n buttons.push(btnDef);\n }\n });\n }\n\n RCTAlertManager.alertWithArgs(\n {\n title: title || '',\n message: message || undefined,\n buttons,\n type: type || undefined,\n defaultValue,\n cancelButtonKey,\n destructiveButtonKey,\n preferredButtonKey,\n keyboardType,\n userInterfaceStyle: options?.userInterfaceStyle || undefined,\n },\n (id, value) => {\n const cb = callbacks[id];\n cb && cb(value);\n },\n );\n }\n }\n}\n\nmodule.exports = Alert;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport NativeDialogManagerAndroid from '../NativeModules/specs/NativeDialogManagerAndroid';\n\nfunction emptyCallback() {}\n\nmodule.exports = {\n alertWithArgs: function (args, callback) {\n // TODO(5998984): Polyfill it correctly with DialogManagerAndroid\n if (!NativeDialogManagerAndroid) {\n return;\n }\n\n NativeDialogManagerAndroid.showAlert(\n args,\n emptyCallback,\n callback || emptyCallback,\n );\n },\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\n/* 'buttonClicked' | 'dismissed' */\ntype DialogAction = string;\n/*\n buttonPositive = -1,\n buttonNegative = -2,\n buttonNeutral = -3\n*/\ntype DialogButtonKey = number;\nexport type DialogOptions = {|\n title?: string,\n message?: string,\n buttonPositive?: string,\n buttonNegative?: string,\n buttonNeutral?: string,\n items?: Array,\n cancelable?: boolean,\n|};\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n +buttonClicked: DialogAction,\n +dismissed: DialogAction,\n +buttonPositive: DialogButtonKey,\n +buttonNegative: DialogButtonKey,\n +buttonNeutral: DialogButtonKey,\n |};\n +showAlert: (\n config: DialogOptions,\n onError: (error: string) => void,\n onAction: (action: DialogAction, buttonKey?: DialogButtonKey) => void,\n ) => void;\n}\n\nexport default (TurboModuleRegistry.get('DialogManagerAndroid'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nconst {polyfillObjectProperty} = require('../Utilities/PolyfillFunctions');\n\nconst navigator = global.navigator;\nif (navigator === undefined) {\n // $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.\n global.navigator = {product: 'ReactNative'};\n} else {\n // see https://github.com/facebook/react-native/issues/10881\n polyfillObjectProperty(navigator, 'product', () => 'ReactNative');\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nlet registerModule;\nif (global.RN$Bridgeless === true && global.RN$registerCallableModule) {\n registerModule = global.RN$registerCallableModule;\n} else {\n const BatchedBridge = require('../BatchedBridge/BatchedBridge');\n registerModule = (\n moduleName:\n | $TEMPORARY$string<'GlobalPerformanceLogger'>\n | $TEMPORARY$string<'HMRClient'>\n | $TEMPORARY$string<'HeapCapture'>\n | $TEMPORARY$string<'JSTimers'>\n | $TEMPORARY$string<'RCTDeviceEventEmitter'>\n | $TEMPORARY$string<'RCTLog'>\n | $TEMPORARY$string<'RCTNativeAppEventEmitter'>\n | $TEMPORARY$string<'SamplingProfiler'>\n | $TEMPORARY$string<'Systrace'>,\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n factory,\n ) => BatchedBridge.registerLazyCallableModule(moduleName, factory);\n}\n\nregisterModule('Systrace', () => require('../Performance/Systrace'));\nif (!(global.RN$Bridgeless === true)) {\n registerModule('JSTimers', () => require('./Timers/JSTimers'));\n}\nregisterModule('HeapCapture', () => require('../HeapCapture/HeapCapture'));\nregisterModule('SamplingProfiler', () =>\n require('../Performance/SamplingProfiler'),\n);\nregisterModule('RCTLog', () => require('../Utilities/RCTLog'));\nregisterModule(\n 'RCTDeviceEventEmitter',\n () => require('../EventEmitter/RCTDeviceEventEmitter').default,\n);\nregisterModule('RCTNativeAppEventEmitter', () =>\n require('../EventEmitter/RCTNativeAppEventEmitter'),\n);\nregisterModule('GlobalPerformanceLogger', () =>\n require('../Utilities/GlobalPerformanceLogger'),\n);\n\nif (__DEV__) {\n registerModule('HMRClient', () => require('../Utilities/HMRClient'));\n} else {\n registerModule('HMRClient', () => require('../Utilities/HMRClientProdShim'));\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport NativeJSCHeapCapture from './NativeJSCHeapCapture';\n\nconst HeapCapture = {\n captureHeap: function (path: string) {\n let error = null;\n try {\n global.nativeCaptureHeap(path);\n console.log('HeapCapture.captureHeap succeeded: ' + path);\n } catch (e) {\n console.log('HeapCapture.captureHeap error: ' + e.toString());\n error = e.toString();\n }\n if (NativeJSCHeapCapture) {\n NativeJSCHeapCapture.captureComplete(path, error);\n }\n },\n};\n\nmodule.exports = HeapCapture;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +captureComplete: (path: string, error: ?string) => void;\n}\n\nexport default (TurboModuleRegistry.get('JSCHeapCapture'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nconst SamplingProfiler = {\n poke: function (token: number): void {\n let error = null;\n let result = null;\n try {\n result = global.pokeSamplingProfiler();\n if (result === null) {\n console.log('The JSC Sampling Profiler has started');\n } else {\n console.log('The JSC Sampling Profiler has stopped');\n }\n } catch (e) {\n console.log(\n 'Error occurred when restarting Sampling Profiler: ' + e.toString(),\n );\n error = e.toString();\n }\n\n const NativeJSCSamplingProfiler =\n require('./NativeJSCSamplingProfiler').default;\n if (NativeJSCSamplingProfiler) {\n NativeJSCSamplingProfiler.operationComplete(token, result, error);\n }\n },\n};\n\nmodule.exports = SamplingProfiler;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +operationComplete: (token: number, result: ?string, error: ?string) => void;\n}\n\nexport default (TurboModuleRegistry.get('JSCSamplingProfiler'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nconst invariant = require('invariant');\n\nconst levelsMap = {\n log: 'log',\n info: 'info',\n warn: 'warn',\n error: 'error',\n fatal: 'error',\n};\n\nlet warningHandler: ?(...Array) => void = null;\n\nconst RCTLog = {\n // level one of log, info, warn, error, mustfix\n logIfNoNativeHook(level: string, ...args: Array): void {\n // We already printed in the native console, so only log here if using a js debugger\n if (typeof global.nativeLoggingHook === 'undefined') {\n RCTLog.logToConsole(level, ...args);\n } else {\n // Report native warnings to LogBox\n if (warningHandler && level === 'warn') {\n warningHandler(...args);\n }\n }\n },\n\n // Log to console regardless of nativeLoggingHook\n logToConsole(level: string, ...args: Array): void {\n const logFn = levelsMap[level];\n invariant(\n logFn,\n 'Level \"' + level + '\" not one of ' + Object.keys(levelsMap).toString(),\n );\n\n console[logFn](...args);\n },\n\n setWarningHandler(handler: typeof warningHandler): void {\n warningHandler = handler;\n },\n};\n\nmodule.exports = RCTLog;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport RCTDeviceEventEmitter from './RCTDeviceEventEmitter';\n\n/**\n * Deprecated - subclass NativeEventEmitter to create granular event modules instead of\n * adding all event listeners directly to RCTNativeAppEventEmitter.\n */\nconst RCTNativeAppEventEmitter = RCTDeviceEventEmitter;\nmodule.exports = RCTNativeAppEventEmitter;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n'use strict';\n\nimport type {HMRClientNativeInterface} from './HMRClient';\n\n// This shim ensures DEV binary builds don't crash in JS\n// when they're combined with a PROD JavaScript build.\nconst HMRClientProdShim: HMRClientNativeInterface = {\n setup() {},\n enable() {\n console.error(\n 'Fast Refresh is disabled in JavaScript bundles built in production mode. ' +\n 'Did you forget to run Metro?',\n );\n },\n disable() {},\n registerBundle() {},\n log() {},\n};\n\nmodule.exports = HMRClientProdShim;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nexport type FetchSegmentFunction = typeof __fetchSegment;\n\n/**\n * Set up SegmentFetcher.\n * You can use this module directly, or just require InitializeCore.\n */\n\nfunction __fetchSegment(\n segmentId: number,\n options: $ReadOnly<{\n otaBuildNumber: ?string,\n requestedModuleName: string,\n segmentHash: string,\n }>,\n callback: (?Error) => void,\n) {\n const SegmentFetcher =\n require('./SegmentFetcher/NativeSegmentFetcher').default;\n SegmentFetcher.fetchSegment(\n segmentId,\n options,\n (\n errorObject: ?{\n message: string,\n code: string,\n ...\n },\n ) => {\n if (errorObject) {\n const error = new Error(errorObject.message);\n (error: any).code = errorObject.code; // flowlint-line unclear-type: off\n callback(error);\n }\n\n callback(null);\n },\n );\n}\n\nglobal.__fetchSegment = __fetchSegment;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +fetchSegment: (\n segmentId: number,\n options: Object, // flowlint-line unclear-type: off\n callback: (error: ?Object) => void, // flowlint-line unclear-type: off\n ) => void;\n +getSegment?: (\n segmentId: number,\n options: Object, // flowlint-line unclear-type: off\n callback: (error: ?Object, path: ?string) => void, // flowlint-line unclear-type: off\n ) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('SegmentFetcher'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {RootTag} from '../Types/RootTagTypes';\nimport type {IPerformanceLogger} from '../Utilities/createPerformanceLogger';\n\nimport BatchedBridge from '../BatchedBridge/BatchedBridge';\nimport BugReporting from '../BugReporting/BugReporting';\nimport createPerformanceLogger from '../Utilities/createPerformanceLogger';\nimport infoLog from '../Utilities/infoLog';\nimport SceneTracker from '../Utilities/SceneTracker';\nimport {coerceDisplayMode} from './DisplayMode';\nimport HeadlessJsTaskError from './HeadlessJsTaskError';\nimport NativeHeadlessJsTaskSupport from './NativeHeadlessJsTaskSupport';\nimport renderApplication from './renderApplication';\nimport {unmountComponentAtNodeAndRemoveContainer} from './RendererProxy';\nimport invariant from 'invariant';\n\ntype Task = (taskData: any) => Promise;\nexport type TaskProvider = () => Task;\ntype TaskCanceller = () => void;\ntype TaskCancelProvider = () => TaskCanceller;\n\nexport type ComponentProvider = () => React$ComponentType;\nexport type ComponentProviderInstrumentationHook = (\n component: ComponentProvider,\n scopedPerformanceLogger: IPerformanceLogger,\n) => React$ComponentType;\nexport type AppConfig = {\n appKey: string,\n component?: ComponentProvider,\n run?: Function,\n section?: boolean,\n ...\n};\nexport type Runnable = {\n component?: ComponentProvider,\n run: Function,\n ...\n};\nexport type Runnables = {[appKey: string]: Runnable, ...};\nexport type Registry = {\n sections: Array,\n runnables: Runnables,\n ...\n};\nexport type WrapperComponentProvider = (\n appParameters: any,\n) => React$ComponentType;\n\nconst runnables: Runnables = {};\nlet runCount = 1;\nconst sections: Runnables = {};\nconst taskProviders: Map = new Map();\nconst taskCancelProviders: Map = new Map();\nlet componentProviderInstrumentationHook: ComponentProviderInstrumentationHook =\n (component: ComponentProvider) => component();\n\nlet wrapperComponentProvider: ?WrapperComponentProvider;\nlet showArchitectureIndicator = false;\n\n/**\n * `AppRegistry` is the JavaScript entry point to running all React Native apps.\n *\n * See https://reactnative.dev/docs/appregistry\n */\nconst AppRegistry = {\n setWrapperComponentProvider(provider: WrapperComponentProvider) {\n wrapperComponentProvider = provider;\n },\n\n enableArchitectureIndicator(enabled: boolean): void {\n showArchitectureIndicator = enabled;\n },\n\n registerConfig(config: Array): void {\n config.forEach(appConfig => {\n if (appConfig.run) {\n AppRegistry.registerRunnable(appConfig.appKey, appConfig.run);\n } else {\n invariant(\n appConfig.component != null,\n 'AppRegistry.registerConfig(...): Every config is expected to set ' +\n 'either `run` or `component`, but `%s` has neither.',\n appConfig.appKey,\n );\n AppRegistry.registerComponent(\n appConfig.appKey,\n appConfig.component,\n appConfig.section,\n );\n }\n });\n },\n\n /**\n * Registers an app's root component.\n *\n * See https://reactnative.dev/docs/appregistry#registercomponent\n */\n registerComponent(\n appKey: string,\n componentProvider: ComponentProvider,\n section?: boolean,\n ): string {\n let scopedPerformanceLogger = createPerformanceLogger();\n runnables[appKey] = {\n componentProvider,\n run: (appParameters, displayMode) => {\n const concurrentRootEnabled =\n appParameters.initialProps?.concurrentRoot ||\n appParameters.concurrentRoot;\n renderApplication(\n componentProviderInstrumentationHook(\n componentProvider,\n scopedPerformanceLogger,\n ),\n appParameters.initialProps,\n appParameters.rootTag,\n wrapperComponentProvider && wrapperComponentProvider(appParameters),\n appParameters.fabric,\n showArchitectureIndicator,\n scopedPerformanceLogger,\n appKey === 'LogBox',\n appKey,\n coerceDisplayMode(displayMode),\n concurrentRootEnabled,\n );\n },\n };\n if (section) {\n sections[appKey] = runnables[appKey];\n }\n return appKey;\n },\n\n registerRunnable(appKey: string, run: Function): string {\n runnables[appKey] = {run};\n return appKey;\n },\n\n registerSection(appKey: string, component: ComponentProvider): void {\n AppRegistry.registerComponent(appKey, component, true);\n },\n\n getAppKeys(): Array {\n return Object.keys(runnables);\n },\n\n getSectionKeys(): Array {\n return Object.keys(sections);\n },\n\n getSections(): Runnables {\n return {\n ...sections,\n };\n },\n\n getRunnable(appKey: string): ?Runnable {\n return runnables[appKey];\n },\n\n getRegistry(): Registry {\n return {\n sections: AppRegistry.getSectionKeys(),\n runnables: {...runnables},\n };\n },\n\n setComponentProviderInstrumentationHook(\n hook: ComponentProviderInstrumentationHook,\n ) {\n componentProviderInstrumentationHook = hook;\n },\n\n /**\n * Loads the JavaScript bundle and runs the app.\n *\n * See https://reactnative.dev/docs/appregistry#runapplication\n */\n runApplication(\n appKey: string,\n appParameters: any,\n displayMode?: number,\n ): void {\n if (appKey !== 'LogBox') {\n const logParams = __DEV__\n ? '\" with ' + JSON.stringify(appParameters)\n : '';\n const msg = 'Running \"' + appKey + logParams;\n infoLog(msg);\n BugReporting.addSource(\n 'AppRegistry.runApplication' + runCount++,\n () => msg,\n );\n }\n invariant(\n runnables[appKey] && runnables[appKey].run,\n `\"${appKey}\" has not been registered. This can happen if:\\n` +\n '* Metro (the local dev server) is run from the wrong folder. ' +\n 'Check if Metro is running, stop it and restart it in the current project.\\n' +\n \"* A module failed to load due to an error and `AppRegistry.registerComponent` wasn't called.\",\n );\n\n SceneTracker.setActiveScene({name: appKey});\n runnables[appKey].run(appParameters, displayMode);\n },\n\n /**\n * Update initial props for a surface that's already rendered\n */\n setSurfaceProps(\n appKey: string,\n appParameters: any,\n displayMode?: number,\n ): void {\n if (appKey !== 'LogBox') {\n const msg =\n 'Updating props for Surface \"' +\n appKey +\n '\" with ' +\n JSON.stringify(appParameters);\n infoLog(msg);\n BugReporting.addSource(\n 'AppRegistry.setSurfaceProps' + runCount++,\n () => msg,\n );\n }\n invariant(\n runnables[appKey] && runnables[appKey].run,\n `\"${appKey}\" has not been registered. This can happen if:\\n` +\n '* Metro (the local dev server) is run from the wrong folder. ' +\n 'Check if Metro is running, stop it and restart it in the current project.\\n' +\n \"* A module failed to load due to an error and `AppRegistry.registerComponent` wasn't called.\",\n );\n\n runnables[appKey].run(appParameters, displayMode);\n },\n\n /**\n * Stops an application when a view should be destroyed.\n *\n * See https://reactnative.dev/docs/appregistry#unmountapplicationcomponentatroottag\n */\n unmountApplicationComponentAtRootTag(rootTag: RootTag): void {\n unmountComponentAtNodeAndRemoveContainer(rootTag);\n },\n\n /**\n * Register a headless task. A headless task is a bit of code that runs without a UI.\n *\n * See https://reactnative.dev/docs/appregistry#registerheadlesstask\n */\n registerHeadlessTask(taskKey: string, taskProvider: TaskProvider): void {\n // $FlowFixMe[object-this-reference]\n this.registerCancellableHeadlessTask(taskKey, taskProvider, () => () => {\n /* Cancel is no-op */\n });\n },\n\n /**\n * Register a cancellable headless task. A headless task is a bit of code that runs without a UI.\n *\n * See https://reactnative.dev/docs/appregistry#registercancellableheadlesstask\n */\n registerCancellableHeadlessTask(\n taskKey: string,\n taskProvider: TaskProvider,\n taskCancelProvider: TaskCancelProvider,\n ): void {\n if (taskProviders.has(taskKey)) {\n console.warn(\n `registerHeadlessTask or registerCancellableHeadlessTask called multiple times for same key '${taskKey}'`,\n );\n }\n taskProviders.set(taskKey, taskProvider);\n taskCancelProviders.set(taskKey, taskCancelProvider);\n },\n\n /**\n * Only called from native code. Starts a headless task.\n *\n * See https://reactnative.dev/docs/appregistry#startheadlesstask\n */\n startHeadlessTask(taskId: number, taskKey: string, data: any): void {\n const taskProvider = taskProviders.get(taskKey);\n if (!taskProvider) {\n console.warn(`No task registered for key ${taskKey}`);\n if (NativeHeadlessJsTaskSupport) {\n NativeHeadlessJsTaskSupport.notifyTaskFinished(taskId);\n }\n return;\n }\n taskProvider()(data)\n .then(() => {\n if (NativeHeadlessJsTaskSupport) {\n NativeHeadlessJsTaskSupport.notifyTaskFinished(taskId);\n }\n })\n .catch(reason => {\n console.error(reason);\n\n if (\n NativeHeadlessJsTaskSupport &&\n reason instanceof HeadlessJsTaskError\n ) {\n // $FlowFixMe[unused-promise]\n NativeHeadlessJsTaskSupport.notifyTaskRetry(taskId).then(\n retryPosted => {\n if (!retryPosted) {\n NativeHeadlessJsTaskSupport.notifyTaskFinished(taskId);\n }\n },\n );\n }\n });\n },\n\n /**\n * Only called from native code. Cancels a headless task.\n *\n * See https://reactnative.dev/docs/appregistry#cancelheadlesstask\n */\n cancelHeadlessTask(taskId: number, taskKey: string): void {\n const taskCancelProvider = taskCancelProviders.get(taskKey);\n if (!taskCancelProvider) {\n throw new Error(`No task canceller registered for key '${taskKey}'`);\n }\n taskCancelProvider()();\n },\n};\n\nif (!(global.RN$Bridgeless === true)) {\n BatchedBridge.registerCallableModule('AppRegistry', AppRegistry);\n\n AppRegistry.registerComponent('LogBox', () => {\n if (__DEV__) {\n return require('../LogBox/LogBoxInspectorContainer').default;\n } else {\n return function NoOp() {\n return null;\n };\n }\n });\n}\n\nmodule.exports = AppRegistry;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter';\nimport NativeRedBox from '../NativeModules/specs/NativeRedBox';\nimport {type EventSubscription} from '../vendor/emitter/EventEmitter';\nimport NativeBugReporting from './NativeBugReporting';\n\ntype ExtraData = {[key: string]: string, ...};\ntype SourceCallback = () => string;\ntype DebugData = {\n extras: ExtraData,\n files: ExtraData,\n ...\n};\n\nfunction defaultExtras() {\n BugReporting.addFileSource('react_hierarchy.txt', () =>\n require('./dumpReactTree')(),\n );\n}\n\n/**\n * A simple class for collecting bug report data. Components can add sources that will be queried when a bug report\n * is created via `collectExtraData`. For example, a list component might add a source that provides the list of rows\n * that are currently visible on screen. Components should also remember to call `remove()` on the object that is\n * returned by `addSource` when they are unmounted.\n */\nclass BugReporting {\n static _extraSources: Map = new Map();\n static _fileSources: Map = new Map();\n static _subscription: ?EventSubscription = null;\n static _redboxSubscription: ?EventSubscription = null;\n\n static _maybeInit() {\n if (!BugReporting._subscription) {\n BugReporting._subscription = RCTDeviceEventEmitter.addListener(\n 'collectBugExtraData',\n // $FlowFixMe[method-unbinding]\n BugReporting.collectExtraData,\n null,\n );\n defaultExtras();\n }\n\n if (!BugReporting._redboxSubscription) {\n BugReporting._redboxSubscription = RCTDeviceEventEmitter.addListener(\n 'collectRedBoxExtraData',\n // $FlowFixMe[method-unbinding]\n BugReporting.collectExtraData,\n null,\n );\n }\n }\n\n /**\n * Maps a string key to a simple callback that should return a string payload to be attached\n * to a bug report. Source callbacks are called when `collectExtraData` is called.\n *\n * Returns an object to remove the source when the component unmounts.\n *\n * Conflicts trample with a warning.\n */\n static addSource(\n key: string,\n callback: SourceCallback,\n ): {remove: () => void, ...} {\n return this._addSource(key, callback, BugReporting._extraSources);\n }\n\n /**\n * Maps a string key to a simple callback that should return a string payload to be attached\n * to a bug report. Source callbacks are called when `collectExtraData` is called.\n *\n * Returns an object to remove the source when the component unmounts.\n *\n * Conflicts trample with a warning.\n */\n static addFileSource(\n key: string,\n callback: SourceCallback,\n ): {remove: () => void, ...} {\n return this._addSource(key, callback, BugReporting._fileSources);\n }\n\n static _addSource(\n key: string,\n callback: SourceCallback,\n source: Map,\n ): {remove: () => void, ...} {\n BugReporting._maybeInit();\n if (source.has(key)) {\n console.warn(\n `BugReporting.add* called multiple times for same key '${key}'`,\n );\n }\n source.set(key, callback);\n return {\n remove: () => {\n source.delete(key);\n },\n };\n }\n\n /**\n * This can be called from a native bug reporting flow, or from JS code.\n *\n * If available, this will call `NativeModules.BugReporting.setExtraData(extraData)`\n * after collecting `extraData`.\n */\n static collectExtraData(): DebugData {\n const extraData: ExtraData = {};\n for (const [key, callback] of BugReporting._extraSources) {\n extraData[key] = callback();\n }\n const fileData: ExtraData = {};\n for (const [key, callback] of BugReporting._fileSources) {\n fileData[key] = callback();\n }\n\n if (NativeBugReporting != null && NativeBugReporting.setExtraData != null) {\n NativeBugReporting.setExtraData(extraData, fileData);\n }\n\n if (NativeRedBox != null && NativeRedBox.setExtraData != null) {\n NativeRedBox.setExtraData(extraData, 'From BugReporting.js');\n }\n\n return {extras: extraData, files: fileData};\n }\n}\n\nmodule.exports = BugReporting;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +setExtraData: (extraData: Object, forIdentifier: string) => void;\n +dismiss: () => void;\n}\n\nexport default (TurboModuleRegistry.get('RedBox'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +startReportAProblemFlow: () => void;\n +setExtraData: (extraData: Object, extraFiles: Object) => void;\n +setCategoryID: (categoryID: string) => void;\n}\n\nexport default (TurboModuleRegistry.get('BugReporting'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\n/*\nconst getReactData = require('getReactData');\n\nconst INDENTATION_SIZE = 2;\nconst MAX_DEPTH = 2;\nconst MAX_STRING_LENGTH = 50;\n*/\n\n/**\n * Dump all React Native root views and their content. This function tries\n * it best to get the content but ultimately relies on implementation details\n * of React and will fail in future versions.\n */\nfunction dumpReactTree(): string {\n try {\n return getReactTree();\n } catch (e) {\n return 'Failed to dump react tree: ' + e;\n }\n}\n\nfunction getReactTree() {\n // TODO(sema): Reenable tree dumps using the Fiber tree structure. #15945684\n return (\n 'React tree dumps have been temporarily disabled while React is ' +\n 'upgraded to Fiber.'\n );\n /*\n let output = '';\n const rootIds = Object.getOwnPropertyNames(ReactNativeMount._instancesByContainerID);\n for (const rootId of rootIds) {\n const instance = ReactNativeMount._instancesByContainerID[rootId];\n output += `============ Root ID: ${rootId} ============\\n`;\n output += dumpNode(instance, 0);\n output += `============ End root ID: ${rootId} ============\\n`;\n }\n return output;\n*/\n}\n\n/*\nfunction dumpNode(node: Object, indentation: number) {\n const data = getReactData(node);\n if (data.nodeType === 'Text') {\n return indent(indentation) + data.text + '\\n';\n } else if (data.nodeType === 'Empty') {\n return '';\n }\n let output = indent(indentation) + `<${data.name}`;\n if (data.nodeType === 'Composite') {\n for (const propName of Object.getOwnPropertyNames(data.props || {})) {\n if (isNormalProp(propName)) {\n try {\n const value = convertValue(data.props[propName]);\n if (value) {\n output += ` ${propName}=${value}`;\n }\n } catch (e) {\n const message = `[Failed to get property: ${e}]`;\n output += ` ${propName}=${message}`;\n }\n }\n }\n }\n let childOutput = '';\n for (const child of data.children || []) {\n childOutput += dumpNode(child, indentation + 1);\n }\n\n if (childOutput) {\n output += '>\\n' + childOutput + indent(indentation) + `\\n`;\n } else {\n output += ' />\\n';\n }\n\n return output;\n}\n\nfunction isNormalProp(name: string): boolean {\n switch (name) {\n case 'children':\n case 'key':\n case 'ref':\n return false;\n default:\n return true;\n }\n}\n\nfunction convertObject(object: Object, depth: number) {\n if (depth >= MAX_DEPTH) {\n return '[...omitted]';\n }\n let output = '{';\n let first = true;\n for (const key of Object.getOwnPropertyNames(object)) {\n if (!first) {\n output += ', ';\n }\n output += `${key}: ${convertValue(object[key], depth + 1)}`;\n first = false;\n }\n return output + '}';\n}\n\nfunction convertValue(value, depth = 0): ?string {\n if (!value) {\n return null;\n }\n\n switch (typeof value) {\n case 'string':\n return JSON.stringify(possiblyEllipsis(value).replace('\\n', '\\\\n'));\n case 'boolean':\n case 'number':\n return JSON.stringify(value);\n case 'function':\n return '[function]';\n case 'object':\n return convertObject(value, depth);\n default:\n return null;\n }\n}\n\nfunction possiblyEllipsis(value: string) {\n if (value.length > MAX_STRING_LENGTH) {\n return value.slice(0, MAX_STRING_LENGTH) + '...';\n } else {\n return value;\n }\n}\n\nfunction indent(size: number) {\n return ' '.repeat(size * INDENTATION_SIZE);\n}\n*/\n\nmodule.exports = dumpReactTree;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nexport type Scene = {name: string, ...};\n\nlet _listeners: Array<(scene: Scene) => void> = [];\n\nlet _activeScene = {name: 'default'};\n\nconst SceneTracker = {\n setActiveScene(scene: Scene) {\n _activeScene = scene;\n _listeners.forEach(listener => listener(_activeScene));\n },\n\n getActiveScene(): Scene {\n return _activeScene;\n },\n\n addActiveSceneChangedListener(callback: (scene: Scene) => void): {\n remove: () => void,\n ...\n } {\n _listeners.push(callback);\n return {\n remove: () => {\n _listeners = _listeners.filter(listener => callback !== listener);\n },\n };\n },\n};\n\nmodule.exports = SceneTracker;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nexport default class HeadlessJsTaskError extends Error {}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +notifyTaskFinished: (taskId: number) => void;\n +notifyTaskRetry: (taskId: number) => Promise;\n}\n\nexport default (TurboModuleRegistry.get('HeadlessJsTaskSupport'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {IPerformanceLogger} from '../Utilities/createPerformanceLogger';\n\nimport GlobalPerformanceLogger from '../Utilities/GlobalPerformanceLogger';\nimport PerformanceLoggerContext from '../Utilities/PerformanceLoggerContext';\nimport AppContainer from './AppContainer';\nimport DisplayMode, {type DisplayModeType} from './DisplayMode';\nimport getCachedComponentWithDebugName from './getCachedComponentWithDebugName';\nimport * as Renderer from './RendererProxy';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\n// require BackHandler so it sets the default handler that exits the app if no listeners respond\nimport '../Utilities/BackHandler';\n\ntype OffscreenType = React.AbstractComponent<{\n mode: 'visible' | 'hidden',\n children: React.Node,\n}>;\n\nexport default function renderApplication(\n RootComponent: React.ComponentType,\n initialProps: Props,\n rootTag: any,\n WrapperComponent?: ?React.ComponentType,\n fabric?: boolean,\n showArchitectureIndicator?: boolean,\n scopedPerformanceLogger?: IPerformanceLogger,\n isLogBox?: boolean,\n debugName?: string,\n displayMode?: ?DisplayModeType,\n useConcurrentRoot?: boolean,\n useOffscreen?: boolean,\n) {\n invariant(rootTag, 'Expect to have a valid rootTag, instead got ', rootTag);\n\n const performanceLogger = scopedPerformanceLogger ?? GlobalPerformanceLogger;\n\n let renderable: React.MixedElement = (\n \n \n \n \n \n );\n\n if (__DEV__ && debugName) {\n const RootComponentWithMeaningfulName = getCachedComponentWithDebugName(\n `${debugName}(RootComponent)`,\n );\n renderable = (\n \n {renderable}\n \n );\n }\n\n if (useOffscreen && displayMode != null) {\n // $FlowFixMe[incompatible-type]\n // $FlowFixMe[prop-missing]\n const Offscreen: OffscreenType = React.unstable_Offscreen;\n\n renderable = (\n \n {renderable}\n \n );\n }\n\n performanceLogger.startTimespan('renderApplication_React_render');\n performanceLogger.setExtra(\n 'usedReactConcurrentRoot',\n useConcurrentRoot ? '1' : '0',\n );\n performanceLogger.setExtra('usedReactFabric', fabric ? '1' : '0');\n performanceLogger.setExtra(\n 'usedReactProfiler',\n Renderer.isProfilingRenderer(),\n );\n Renderer.renderElement({\n element: renderable,\n rootTag,\n useFabric: Boolean(fabric),\n useConcurrentRoot: Boolean(useConcurrentRoot),\n });\n performanceLogger.stopTimespan('renderApplication_React_render');\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {IPerformanceLogger} from './createPerformanceLogger';\n\nimport GlobalPerformanceLogger from './GlobalPerformanceLogger';\nimport * as React from 'react';\nimport {useContext} from 'react';\n\n/**\n * This is a React Context that provides a scoped instance of IPerformanceLogger.\n * We wrap every with a Provider for this context so the logger\n * should be available in every component.\n * See React docs about using Context: https://reactjs.org/docs/context.html\n */\nconst PerformanceLoggerContext: React.Context =\n React.createContext(GlobalPerformanceLogger);\nif (__DEV__) {\n PerformanceLoggerContext.displayName = 'PerformanceLoggerContext';\n}\n\nexport function usePerformanceLogger(): IPerformanceLogger {\n return useContext(PerformanceLoggerContext);\n}\n\nexport default PerformanceLoggerContext;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1,\n internal_excludeLogBox?: ?boolean,\n internal_excludeInspector?: ?boolean,\n|}>;\n\ntype State = {|\n inspector: ?React.Node,\n devtoolsOverlay: ?React.Node,\n traceUpdateOverlay: ?React.Node,\n mainKey: number,\n hasError: boolean,\n|};\n\nclass AppContainer extends React.Component {\n state: State = {\n inspector: null,\n devtoolsOverlay: null,\n traceUpdateOverlay: null,\n mainKey: 1,\n hasError: false,\n };\n _mainRef: ?React.ElementRef;\n _subscription: ?EventSubscription = null;\n\n static getDerivedStateFromError: any = undefined;\n\n componentDidMount(): void {\n if (__DEV__) {\n if (!this.props.internal_excludeInspector) {\n this._subscription = RCTDeviceEventEmitter.addListener(\n 'toggleElementInspector',\n () => {\n const Inspector = require('../Inspector/Inspector');\n const inspector = this.state.inspector ? null : (\n {\n this.setState(\n s => ({mainKey: s.mainKey + 1}),\n () => updateInspectedView(this._mainRef),\n );\n }}\n />\n );\n this.setState({inspector});\n },\n );\n if (window.__REACT_DEVTOOLS_GLOBAL_HOOK__ != null) {\n const DevtoolsOverlay =\n require('../Inspector/DevtoolsOverlay').default;\n const devtoolsOverlay = (\n \n );\n const TraceUpdateOverlay =\n require('../Components/TraceUpdateOverlay/TraceUpdateOverlay').default;\n const traceUpdateOverlay = ;\n this.setState({devtoolsOverlay, traceUpdateOverlay});\n }\n }\n }\n }\n\n componentWillUnmount(): void {\n if (this._subscription != null) {\n this._subscription.remove();\n }\n }\n\n render(): React.Node {\n let logBox = null;\n if (__DEV__) {\n if (!this.props.internal_excludeLogBox) {\n const LogBoxNotificationContainer =\n require('../LogBox/LogBoxNotificationContainer').default;\n logBox = ;\n }\n }\n\n let innerView: React.Node = (\n {\n this._mainRef = ref;\n }}>\n {this.props.children}\n \n );\n\n const Wrapper = this.props.WrapperComponent;\n if (Wrapper != null) {\n innerView = (\n \n {innerView}\n \n );\n }\n return (\n \n \n {!this.state.hasError && innerView}\n {this.state.traceUpdateOverlay}\n {this.state.devtoolsOverlay}\n {this.state.inspector}\n {logBox}\n \n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n appContainer: {\n flex: 1,\n },\n});\n\nmodule.exports = AppContainer;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {ViewProps} from './ViewPropTypes';\n\nimport flattenStyle from '../../StyleSheet/flattenStyle';\nimport TextAncestor from '../../Text/TextAncestor';\nimport {getAccessibilityRoleFromRole} from '../../Utilities/AcessibilityMapping';\nimport ViewNativeComponent from './ViewNativeComponent';\nimport * as React from 'react';\n\nexport type Props = ViewProps;\n\n/**\n * The most fundamental component for building a UI, View is a container that\n * supports layout with flexbox, style, some touch handling, and accessibility\n * controls.\n *\n * @see https://reactnative.dev/docs/view\n */\nconst View: React.AbstractComponent<\n ViewProps,\n React.ElementRef,\n> = React.forwardRef(\n (\n {\n accessibilityElementsHidden,\n accessibilityLabel,\n accessibilityLabelledBy,\n accessibilityLiveRegion,\n accessibilityRole,\n accessibilityState,\n accessibilityValue,\n 'aria-busy': ariaBusy,\n 'aria-checked': ariaChecked,\n 'aria-disabled': ariaDisabled,\n 'aria-expanded': ariaExpanded,\n 'aria-hidden': ariaHidden,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-live': ariaLive,\n 'aria-selected': ariaSelected,\n 'aria-valuemax': ariaValueMax,\n 'aria-valuemin': ariaValueMin,\n 'aria-valuenow': ariaValueNow,\n 'aria-valuetext': ariaValueText,\n focusable,\n id,\n importantForAccessibility,\n nativeID,\n pointerEvents,\n role,\n tabIndex,\n ...otherProps\n }: ViewProps,\n forwardedRef,\n ) => {\n const _accessibilityLabelledBy =\n ariaLabelledBy?.split(/\\s*,\\s*/g) ?? accessibilityLabelledBy;\n\n let _accessibilityState;\n if (\n accessibilityState != null ||\n ariaBusy != null ||\n ariaChecked != null ||\n ariaDisabled != null ||\n ariaExpanded != null ||\n ariaSelected != null\n ) {\n _accessibilityState = {\n busy: ariaBusy ?? accessibilityState?.busy,\n checked: ariaChecked ?? accessibilityState?.checked,\n disabled: ariaDisabled ?? accessibilityState?.disabled,\n expanded: ariaExpanded ?? accessibilityState?.expanded,\n selected: ariaSelected ?? accessibilityState?.selected,\n };\n }\n let _accessibilityValue;\n if (\n accessibilityValue != null ||\n ariaValueMax != null ||\n ariaValueMin != null ||\n ariaValueNow != null ||\n ariaValueText != null\n ) {\n _accessibilityValue = {\n max: ariaValueMax ?? accessibilityValue?.max,\n min: ariaValueMin ?? accessibilityValue?.min,\n now: ariaValueNow ?? accessibilityValue?.now,\n text: ariaValueText ?? accessibilityValue?.text,\n };\n }\n\n // $FlowFixMe[underconstrained-implicit-instantiation]\n let style = flattenStyle(otherProps.style);\n\n const newPointerEvents = style?.pointerEvents || pointerEvents;\n\n return (\n \n \n \n );\n },\n);\n\nView.displayName = 'View';\n\nmodule.exports = View;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nimport type {DangerouslyImpreciseStyleProp} from './StyleSheet';\nimport type {____FlattenStyleProp_Internal} from './StyleSheetTypes';\n\nfunction flattenStyle<+TStyleProp: DangerouslyImpreciseStyleProp>(\n style: ?TStyleProp,\n // $FlowFixMe[underconstrained-implicit-instantiation]\n): ?____FlattenStyleProp_Internal {\n if (style === null || typeof style !== 'object') {\n return undefined;\n }\n\n if (!Array.isArray(style)) {\n return style;\n }\n\n const result: {[string]: $FlowFixMe} = {};\n for (let i = 0, styleLength = style.length; i < styleLength; ++i) {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n const computedStyle = flattenStyle(style[i]);\n if (computedStyle) {\n for (const key in computedStyle) {\n result[key] = computedStyle[key];\n }\n }\n }\n return result;\n}\n\nmodule.exports = flattenStyle;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nconst React = require('react');\n\n/**\n * Whether the current element is the descendant of a element.\n */\nconst TextAncestorContext = (React.createContext(\n false,\n): React$Context<$FlowFixMe>);\nif (__DEV__) {\n TextAncestorContext.displayName = 'TextAncestorContext';\n}\nmodule.exports = TextAncestorContext;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport Platform from '../../Utilities/Platform';\nimport {type ViewProps as Props} from './ViewPropTypes';\nimport * as React from 'react';\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig =\n Platform.OS === 'android'\n ? {\n uiViewClassName: 'RCTView',\n validAttributes: {\n // ReactClippingViewManager @ReactProps\n removeClippedSubviews: true,\n\n // ReactViewManager @ReactProps\n accessible: true,\n hasTVPreferredFocus: true,\n nextFocusDown: true,\n nextFocusForward: true,\n nextFocusLeft: true,\n nextFocusRight: true,\n nextFocusUp: true,\n\n borderRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderBottomRightRadius: true,\n borderBottomLeftRadius: true,\n borderTopStartRadius: true,\n borderTopEndRadius: true,\n borderBottomStartRadius: true,\n borderBottomEndRadius: true,\n borderEndEndRadius: true,\n borderEndStartRadius: true,\n borderStartEndRadius: true,\n borderStartStartRadius: true,\n borderStyle: true,\n hitSlop: true,\n pointerEvents: true,\n nativeBackgroundAndroid: true,\n nativeForegroundAndroid: true,\n needsOffscreenAlphaCompositing: true,\n\n borderWidth: true,\n borderLeftWidth: true,\n borderRightWidth: true,\n borderTopWidth: true,\n borderBottomWidth: true,\n borderStartWidth: true,\n borderEndWidth: true,\n\n borderColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderLeftColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderRightColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderTopColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderBottomColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderStartColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderEndColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderBlockColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderBlockEndColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderBlockStartColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n\n focusable: true,\n overflow: true,\n backfaceVisibility: true,\n },\n }\n : {\n uiViewClassName: 'RCTView',\n };\n\nconst ViewNativeComponent: HostComponent =\n NativeComponentRegistry.get('RCTView', () => __INTERNAL_VIEW_CONFIG);\n\ninterface NativeCommands {\n +hotspotUpdate: (\n viewRef: React.ElementRef>,\n x: number,\n y: number,\n ) => void;\n +setPressed: (\n viewRef: React.ElementRef>,\n pressed: boolean,\n ) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['hotspotUpdate', 'setPressed'],\n});\n\nexport default ViewNativeComponent;\n\nexport type ViewNativeComponentType = HostComponent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../Renderer/shims/ReactNativeTypes';\n\nimport getNativeComponentAttributes from '../ReactNative/getNativeComponentAttributes';\nimport UIManager from '../ReactNative/UIManager';\nimport ReactNativeViewConfigRegistry from '../Renderer/shims/ReactNativeViewConfigRegistry';\nimport verifyComponentAttributeEquivalence from '../Utilities/verifyComponentAttributeEquivalence';\nimport * as StaticViewConfigValidator from './StaticViewConfigValidator';\nimport {createViewConfig} from './ViewConfig';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\nlet getRuntimeConfig;\n\n/**\n * Configures a function that is called to determine whether a given component\n * should be registered using reflection of the native component at runtime.\n *\n * The provider should return null if the native component is unavailable in\n * the current environment.\n */\nexport function setRuntimeConfigProvider(\n runtimeConfigProvider: (name: string) => ?{\n native: boolean,\n strict: boolean,\n verify: boolean,\n },\n): void {\n invariant(\n getRuntimeConfig == null,\n 'NativeComponentRegistry.setRuntimeConfigProvider() called more than once.',\n );\n getRuntimeConfig = runtimeConfigProvider;\n}\n\n/**\n * Gets a `NativeComponent` that can be rendered by React Native.\n *\n * The supplied `viewConfigProvider` may or may not be invoked and utilized,\n * depending on how `setRuntimeConfigProvider` is configured.\n */\nexport function get(\n name: string,\n viewConfigProvider: () => PartialViewConfig,\n): HostComponent {\n ReactNativeViewConfigRegistry.register(name, () => {\n const {native, strict, verify} = getRuntimeConfig?.(name) ?? {\n native: true,\n strict: false,\n verify: false,\n };\n\n const viewConfig = native\n ? getNativeComponentAttributes(name)\n : createViewConfig(viewConfigProvider());\n\n if (verify) {\n const nativeViewConfig = native\n ? viewConfig\n : getNativeComponentAttributes(name);\n const staticViewConfig = native\n ? createViewConfig(viewConfigProvider())\n : viewConfig;\n\n if (strict) {\n const validationOutput = StaticViewConfigValidator.validate(\n name,\n nativeViewConfig,\n staticViewConfig,\n );\n\n if (validationOutput.type === 'invalid') {\n console.error(\n StaticViewConfigValidator.stringifyValidationResult(\n name,\n validationOutput,\n ),\n );\n }\n } else {\n verifyComponentAttributeEquivalence(nativeViewConfig, staticViewConfig);\n }\n }\n\n return viewConfig;\n });\n\n // $FlowFixMe[incompatible-return] `NativeComponent` is actually string!\n return name;\n}\n\n/**\n * Same as `NativeComponentRegistry.get(...)`, except this will check either\n * the `setRuntimeConfigProvider` configuration or use native reflection (slow)\n * to determine whether this native component is available.\n *\n * If the native component is not available, a stub component is returned. Note\n * that the return value of this is not `HostComponent` because the returned\n * component instance is not guaranteed to have native methods.\n */\nexport function getWithFallback_DEPRECATED(\n name: string,\n viewConfigProvider: () => PartialViewConfig,\n): React.AbstractComponent {\n if (getRuntimeConfig == null) {\n // `getRuntimeConfig == null` when static view configs are disabled\n // If `setRuntimeConfigProvider` is not configured, use native reflection.\n if (hasNativeViewConfig(name)) {\n return get(name, viewConfigProvider);\n }\n } else {\n // If there is no runtime config, then the native component is unavailable.\n if (getRuntimeConfig(name) != null) {\n return get(name, viewConfigProvider);\n }\n }\n\n const FallbackNativeComponent = function (props: Config): React.Node {\n return null;\n };\n FallbackNativeComponent.displayName = `Fallback(${name})`;\n return FallbackNativeComponent;\n}\n\nfunction hasNativeViewConfig(name: string): boolean {\n invariant(getRuntimeConfig == null, 'Unexpected invocation!');\n return UIManager.getViewManagerConfig(name) != null;\n}\n\n/**\n * Unstable API. Do not use!\n *\n * This method returns if there is a StaticViewConfig registered for the\n * component name received as a parameter.\n */\nexport function unstable_hasStaticViewConfig(name: string): boolean {\n const {native} = getRuntimeConfig?.(name) ?? {\n native: true,\n };\n return !native;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nconst ReactNativeStyleAttributes = require('../Components/View/ReactNativeStyleAttributes');\nconst resolveAssetSource = require('../Image/resolveAssetSource');\nconst processColor = require('../StyleSheet/processColor').default;\nconst processColorArray = require('../StyleSheet/processColorArray');\nconst insetsDiffer = require('../Utilities/differ/insetsDiffer');\nconst matricesDiffer = require('../Utilities/differ/matricesDiffer');\nconst pointsDiffer = require('../Utilities/differ/pointsDiffer');\nconst sizesDiffer = require('../Utilities/differ/sizesDiffer');\nconst UIManager = require('./UIManager');\nconst invariant = require('invariant');\n\nfunction getNativeComponentAttributes(uiViewClassName: string): any {\n const viewConfig = UIManager.getViewManagerConfig(uiViewClassName);\n\n invariant(\n viewConfig != null && viewConfig.NativeProps != null,\n 'requireNativeComponent: \"%s\" was not found in the UIManager.',\n uiViewClassName,\n );\n\n // TODO: This seems like a whole lot of runtime initialization for every\n // native component that can be either avoided or simplified.\n let {baseModuleName, bubblingEventTypes, directEventTypes} = viewConfig;\n let nativeProps = viewConfig.NativeProps;\n\n bubblingEventTypes = bubblingEventTypes ?? {};\n directEventTypes = directEventTypes ?? {};\n\n while (baseModuleName) {\n const baseModule = UIManager.getViewManagerConfig(baseModuleName);\n if (!baseModule) {\n baseModuleName = null;\n } else {\n bubblingEventTypes = {\n ...baseModule.bubblingEventTypes,\n ...bubblingEventTypes,\n };\n directEventTypes = {\n ...baseModule.directEventTypes,\n ...directEventTypes,\n };\n nativeProps = {\n ...baseModule.NativeProps,\n ...nativeProps,\n };\n baseModuleName = baseModule.baseModuleName;\n }\n }\n\n const validAttributes: {[string]: mixed} = {};\n\n for (const key in nativeProps) {\n const typeName = nativeProps[key];\n const diff = getDifferForType(typeName);\n const process = getProcessorForType(typeName);\n\n // If diff or process == null, omit the corresponding property from the Attribute\n // Why:\n // 1. Consistency with AttributeType flow type\n // 2. Consistency with Static View Configs, which omit the null properties\n validAttributes[key] =\n diff == null\n ? process == null\n ? true\n : {process}\n : process == null\n ? {diff}\n : {diff, process};\n }\n\n // Unfortunately, the current setup declares style properties as top-level\n // props. This makes it so we allow style properties in the `style` prop.\n // TODO: Move style properties into a `style` prop and disallow them as\n // top-level props on the native side.\n validAttributes.style = ReactNativeStyleAttributes;\n\n Object.assign(viewConfig, {\n uiViewClassName,\n validAttributes,\n bubblingEventTypes,\n directEventTypes,\n });\n\n attachDefaultEventTypes(viewConfig);\n\n return viewConfig;\n}\n\nfunction attachDefaultEventTypes(viewConfig: any) {\n // This is supported on UIManager platforms (ex: Android),\n // as lazy view managers are not implemented for all platforms.\n // See [UIManager] for details on constants and implementations.\n const constants = UIManager.getConstants();\n if (constants.ViewManagerNames || constants.LazyViewManagersEnabled) {\n // Lazy view managers enabled.\n viewConfig = merge(viewConfig, UIManager.getDefaultEventTypes());\n } else {\n viewConfig.bubblingEventTypes = merge(\n viewConfig.bubblingEventTypes,\n constants.genericBubblingEventTypes,\n );\n viewConfig.directEventTypes = merge(\n viewConfig.directEventTypes,\n constants.genericDirectEventTypes,\n );\n }\n}\n\n// TODO: Figure out how to avoid all this runtime initialization cost.\nfunction merge(destination: ?Object, source: ?Object): ?Object {\n if (!source) {\n return destination;\n }\n if (!destination) {\n return source;\n }\n\n for (const key in source) {\n if (!source.hasOwnProperty(key)) {\n continue;\n }\n\n let sourceValue = source[key];\n if (destination.hasOwnProperty(key)) {\n const destinationValue = destination[key];\n if (\n typeof sourceValue === 'object' &&\n typeof destinationValue === 'object'\n ) {\n sourceValue = merge(destinationValue, sourceValue);\n }\n }\n destination[key] = sourceValue;\n }\n return destination;\n}\n\nfunction getDifferForType(\n typeName: string,\n): ?(prevProp: any, nextProp: any) => boolean {\n switch (typeName) {\n // iOS Types\n case 'CATransform3D':\n return matricesDiffer;\n case 'CGPoint':\n return pointsDiffer;\n case 'CGSize':\n return sizesDiffer;\n case 'UIEdgeInsets':\n return insetsDiffer;\n // Android Types\n case 'Point':\n return pointsDiffer;\n case 'EdgeInsets':\n return insetsDiffer;\n }\n return null;\n}\n\nfunction getProcessorForType(typeName: string): ?(nextProp: any) => any {\n switch (typeName) {\n // iOS Types\n case 'CGColor':\n case 'UIColor':\n return processColor;\n case 'CGColorArray':\n case 'UIColorArray':\n return processColorArray;\n case 'CGImage':\n case 'UIImage':\n case 'RCTImageSource':\n return resolveAssetSource;\n // Android Types\n case 'Color':\n return processColor;\n case 'ColorArray':\n return processColorArray;\n case 'ImageSource':\n return resolveAssetSource;\n }\n return null;\n}\n\nmodule.exports = getNativeComponentAttributes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format strict-local\n * @flow\n */\n\nimport type {AnyAttributeType} from '../../Renderer/shims/ReactNativeTypes';\n\nimport processAspectRatio from '../../StyleSheet/processAspectRatio';\nimport processColor from '../../StyleSheet/processColor';\nimport processFontVariant from '../../StyleSheet/processFontVariant';\nimport processTransform from '../../StyleSheet/processTransform';\nimport sizesDiffer from '../../Utilities/differ/sizesDiffer';\n\nconst colorAttributes = {process: processColor};\n\nconst ReactNativeStyleAttributes: {[string]: AnyAttributeType, ...} = {\n /**\n * Layout\n */\n alignContent: true,\n alignItems: true,\n alignSelf: true,\n aspectRatio: {process: processAspectRatio},\n borderBottomWidth: true,\n borderEndWidth: true,\n borderLeftWidth: true,\n borderRightWidth: true,\n borderStartWidth: true,\n borderTopWidth: true,\n columnGap: true,\n borderWidth: true,\n bottom: true,\n direction: true,\n display: true,\n end: true,\n flex: true,\n flexBasis: true,\n flexDirection: true,\n flexGrow: true,\n flexShrink: true,\n flexWrap: true,\n gap: true,\n height: true,\n justifyContent: true,\n left: true,\n margin: true,\n marginBlock: true,\n marginBlockEnd: true,\n marginBlockStart: true,\n marginBottom: true,\n marginEnd: true,\n marginHorizontal: true,\n marginInline: true,\n marginInlineEnd: true,\n marginInlineStart: true,\n marginLeft: true,\n marginRight: true,\n marginStart: true,\n marginTop: true,\n marginVertical: true,\n maxHeight: true,\n maxWidth: true,\n minHeight: true,\n minWidth: true,\n overflow: true,\n padding: true,\n paddingBlock: true,\n paddingBlockEnd: true,\n paddingBlockStart: true,\n paddingBottom: true,\n paddingEnd: true,\n paddingHorizontal: true,\n paddingInline: true,\n paddingInlineEnd: true,\n paddingInlineStart: true,\n paddingLeft: true,\n paddingRight: true,\n paddingStart: true,\n paddingTop: true,\n paddingVertical: true,\n position: true,\n right: true,\n rowGap: true,\n start: true,\n top: true,\n width: true,\n zIndex: true,\n\n /**\n * Shadow\n */\n elevation: true,\n shadowColor: colorAttributes,\n shadowOffset: {diff: sizesDiffer},\n shadowOpacity: true,\n shadowRadius: true,\n\n /**\n * Transform\n */\n transform: {process: processTransform},\n\n /**\n * View\n */\n backfaceVisibility: true,\n backgroundColor: colorAttributes,\n borderBlockColor: colorAttributes,\n borderBlockEndColor: colorAttributes,\n borderBlockStartColor: colorAttributes,\n borderBottomColor: colorAttributes,\n borderBottomEndRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderBottomStartRadius: true,\n borderColor: colorAttributes,\n borderCurve: true,\n borderEndColor: colorAttributes,\n borderEndEndRadius: true,\n borderEndStartRadius: true,\n borderLeftColor: colorAttributes,\n borderRadius: true,\n borderRightColor: colorAttributes,\n borderStartColor: colorAttributes,\n borderStartEndRadius: true,\n borderStartStartRadius: true,\n borderStyle: true,\n borderTopColor: colorAttributes,\n borderTopEndRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderTopStartRadius: true,\n opacity: true,\n pointerEvents: true,\n\n /**\n * Text\n */\n color: colorAttributes,\n fontFamily: true,\n fontSize: true,\n fontStyle: true,\n fontVariant: {process: processFontVariant},\n fontWeight: true,\n includeFontPadding: true,\n letterSpacing: true,\n lineHeight: true,\n textAlign: true,\n textAlignVertical: true,\n textDecorationColor: colorAttributes,\n textDecorationLine: true,\n textDecorationStyle: true,\n textShadowColor: colorAttributes,\n textShadowOffset: true,\n textShadowRadius: true,\n textTransform: true,\n userSelect: true,\n verticalAlign: true,\n writingDirection: true,\n\n /**\n * Image\n */\n overlayColor: colorAttributes,\n resizeMode: true,\n tintColor: colorAttributes,\n objectFit: true,\n};\n\nmodule.exports = ReactNativeStyleAttributes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nconst invariant = require('invariant');\n\nfunction processAspectRatio(aspectRatio?: number | string): ?number {\n if (typeof aspectRatio === 'number') {\n return aspectRatio;\n }\n if (typeof aspectRatio !== 'string') {\n if (__DEV__) {\n invariant(\n !aspectRatio,\n 'aspectRatio must either be a number, a ratio string or `auto`. You passed: %s',\n aspectRatio,\n );\n }\n return;\n }\n\n const matches = aspectRatio.split('/').map(s => s.trim());\n\n if (matches.includes('auto')) {\n if (__DEV__) {\n invariant(\n matches.length,\n 'aspectRatio does not support `auto `. You passed: %s',\n aspectRatio,\n );\n }\n return;\n }\n\n const hasNonNumericValues = matches.some(n => Number.isNaN(Number(n)));\n if (__DEV__) {\n invariant(\n !hasNonNumericValues && (matches.length === 1 || matches.length === 2),\n 'aspectRatio must either be a number, a ratio string or `auto`. You passed: %s',\n aspectRatio,\n );\n }\n\n if (hasNonNumericValues) {\n return;\n }\n\n if (matches.length === 2) {\n return Number(matches[0]) / Number(matches[1]);\n }\n\n return Number(matches[0]);\n}\n\nmodule.exports = processAspectRatio;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n'use strict';\n\nimport type {NativeColorValue} from './PlatformColorValueTypes';\nimport type {ColorValue} from './StyleSheet';\n\nconst Platform = require('../Utilities/Platform');\nconst normalizeColor = require('./normalizeColor');\n\nexport type ProcessedColorValue = number | NativeColorValue;\n\n/* eslint no-bitwise: 0 */\nfunction processColor(color?: ?(number | ColorValue)): ?ProcessedColorValue {\n if (color === undefined || color === null) {\n return color;\n }\n\n let normalizedColor = normalizeColor(color);\n if (normalizedColor === null || normalizedColor === undefined) {\n return undefined;\n }\n\n if (typeof normalizedColor === 'object') {\n const processColorObject =\n require('./PlatformColorValueTypes').processColorObject;\n\n const processedColorObj = processColorObject(normalizedColor);\n\n if (processedColorObj != null) {\n return processedColorObj;\n }\n }\n\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n\n // Converts 0xrrggbbaa into 0xaarrggbb\n normalizedColor = ((normalizedColor << 24) | (normalizedColor >>> 8)) >>> 0;\n\n if (Platform.OS === 'android') {\n // Android use 32 bit *signed* integer to represent the color\n // We utilize the fact that bitwise operations in JS also operates on\n // signed 32 bit integers, so that we can use those to convert from\n // *unsigned* to *signed* 32bit int that way.\n normalizedColor = normalizedColor | 0x0;\n }\n return normalizedColor;\n}\n\nexport default processColor;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n/* eslint no-bitwise: 0 */\n\nimport type {ProcessedColorValue} from './processColor';\nimport type {ColorValue} from './StyleSheet';\n\nimport _normalizeColor from '@react-native/normalize-colors';\n\nfunction normalizeColor(\n color: ?(ColorValue | ProcessedColorValue),\n): ?ProcessedColorValue {\n if (typeof color === 'object' && color != null) {\n const {normalizeColorObject} = require('./PlatformColorValueTypes');\n const normalizedColor = normalizeColorObject(color);\n if (normalizedColor != null) {\n return normalizedColor;\n }\n }\n\n if (typeof color === 'string' || typeof color === 'number') {\n return _normalizeColor(color);\n }\n}\n\nmodule.exports = normalizeColor;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @noflow\n */\n\n/* eslint no-bitwise: 0 */\n\n'use strict';\n\nfunction normalizeColor(color) {\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color;\n }\n return null;\n }\n\n if (typeof color !== 'string') {\n return null;\n }\n\n const matchers = getMatchers();\n let match;\n\n // Ordered based on occurrences on Facebook codebase\n if ((match = matchers.hex6.exec(color))) {\n return parseInt(match[1] + 'ff', 16) >>> 0;\n }\n\n const colorFromKeyword = normalizeKeyword(color);\n if (colorFromKeyword != null) {\n return colorFromKeyword;\n }\n\n if ((match = matchers.rgb.exec(color))) {\n return (\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) | // b\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers.rgba.exec(color))) {\n // rgba(R G B / A) notation\n if (match[6] !== undefined) {\n return (\n ((parse255(match[6]) << 24) | // r\n (parse255(match[7]) << 16) | // g\n (parse255(match[8]) << 8) | // b\n parse1(match[9])) >>> // a\n 0\n );\n }\n\n // rgba(R, G, B, A) notation\n return (\n ((parse255(match[2]) << 24) | // r\n (parse255(match[3]) << 16) | // g\n (parse255(match[4]) << 8) | // b\n parse1(match[5])) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hex3.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n 'ff', // a\n 16,\n ) >>> 0\n );\n }\n\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = matchers.hex8.exec(color))) {\n return parseInt(match[1], 16) >>> 0;\n }\n\n if ((match = matchers.hex4.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n match[4] +\n match[4], // a\n 16,\n ) >>> 0\n );\n }\n\n if ((match = matchers.hsl.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]), // l\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hsla.exec(color))) {\n // hsla(H S L / A) notation\n if (match[6] !== undefined) {\n return (\n (hslToRgb(\n parse360(match[6]), // h\n parsePercentage(match[7]), // s\n parsePercentage(match[8]), // l\n ) |\n parse1(match[9])) >>> // a\n 0\n );\n }\n\n // hsla(H, S, L, A) notation\n return (\n (hslToRgb(\n parse360(match[2]), // h\n parsePercentage(match[3]), // s\n parsePercentage(match[4]), // l\n ) |\n parse1(match[5])) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hwb.exec(color))) {\n return (\n (hwbToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // w\n parsePercentage(match[3]), // b\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n return null;\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n\nfunction hslToRgb(h, s, l) {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n\n return (\n (Math.round(r * 255) << 24) |\n (Math.round(g * 255) << 16) |\n (Math.round(b * 255) << 8)\n );\n}\n\nfunction hwbToRgb(h, w, b) {\n if (w + b >= 1) {\n const gray = Math.round((w * 255) / (w + b));\n\n return (gray << 24) | (gray << 16) | (gray << 8);\n }\n\n const red = hue2rgb(0, 1, h + 1 / 3) * (1 - w - b) + w;\n const green = hue2rgb(0, 1, h) * (1 - w - b) + w;\n const blue = hue2rgb(0, 1, h - 1 / 3) * (1 - w - b) + w;\n\n return (\n (Math.round(red * 255) << 24) |\n (Math.round(green * 255) << 16) |\n (Math.round(blue * 255) << 8)\n );\n}\n\nconst NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nconst PERCENTAGE = NUMBER + '%';\n\nfunction call(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,?\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nfunction callWithSlashSeparator(...args) {\n return (\n '\\\\(\\\\s*(' +\n args.slice(0, args.length - 1).join(')\\\\s*,?\\\\s*(') +\n ')\\\\s*/\\\\s*(' +\n args[args.length - 1] +\n ')\\\\s*\\\\)'\n );\n}\n\nfunction commaSeparatedCall(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nlet cachedMatchers;\n\nfunction getMatchers() {\n if (cachedMatchers === undefined) {\n cachedMatchers = {\n rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)),\n rgba: new RegExp(\n 'rgba(' +\n commaSeparatedCall(NUMBER, NUMBER, NUMBER, NUMBER) +\n '|' +\n callWithSlashSeparator(NUMBER, NUMBER, NUMBER, NUMBER) +\n ')',\n ),\n hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hsla: new RegExp(\n 'hsla(' +\n commaSeparatedCall(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +\n '|' +\n callWithSlashSeparator(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +\n ')',\n ),\n hwb: new RegExp('hwb' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#([0-9a-fA-F]{6})$/,\n hex8: /^#([0-9a-fA-F]{8})$/,\n };\n }\n return cachedMatchers;\n}\n\nfunction parse255(str) {\n const int = parseInt(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 255) {\n return 255;\n }\n return int;\n}\n\nfunction parse360(str) {\n const int = parseFloat(str);\n return (((int % 360) + 360) % 360) / 360;\n}\n\nfunction parse1(str) {\n const num = parseFloat(str);\n if (num < 0) {\n return 0;\n }\n if (num > 1) {\n return 255;\n }\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n // parseFloat conveniently ignores the final %\n const int = parseFloat(str);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\n\nfunction normalizeKeyword(name) {\n // prettier-ignore\n switch (name) {\n case 'transparent': return 0x00000000;\n // http://www.w3.org/TR/css3-color/#svg-color\n case 'aliceblue': return 0xf0f8ffff;\n case 'antiquewhite': return 0xfaebd7ff;\n case 'aqua': return 0x00ffffff;\n case 'aquamarine': return 0x7fffd4ff;\n case 'azure': return 0xf0ffffff;\n case 'beige': return 0xf5f5dcff;\n case 'bisque': return 0xffe4c4ff;\n case 'black': return 0x000000ff;\n case 'blanchedalmond': return 0xffebcdff;\n case 'blue': return 0x0000ffff;\n case 'blueviolet': return 0x8a2be2ff;\n case 'brown': return 0xa52a2aff;\n case 'burlywood': return 0xdeb887ff;\n case 'burntsienna': return 0xea7e5dff;\n case 'cadetblue': return 0x5f9ea0ff;\n case 'chartreuse': return 0x7fff00ff;\n case 'chocolate': return 0xd2691eff;\n case 'coral': return 0xff7f50ff;\n case 'cornflowerblue': return 0x6495edff;\n case 'cornsilk': return 0xfff8dcff;\n case 'crimson': return 0xdc143cff;\n case 'cyan': return 0x00ffffff;\n case 'darkblue': return 0x00008bff;\n case 'darkcyan': return 0x008b8bff;\n case 'darkgoldenrod': return 0xb8860bff;\n case 'darkgray': return 0xa9a9a9ff;\n case 'darkgreen': return 0x006400ff;\n case 'darkgrey': return 0xa9a9a9ff;\n case 'darkkhaki': return 0xbdb76bff;\n case 'darkmagenta': return 0x8b008bff;\n case 'darkolivegreen': return 0x556b2fff;\n case 'darkorange': return 0xff8c00ff;\n case 'darkorchid': return 0x9932ccff;\n case 'darkred': return 0x8b0000ff;\n case 'darksalmon': return 0xe9967aff;\n case 'darkseagreen': return 0x8fbc8fff;\n case 'darkslateblue': return 0x483d8bff;\n case 'darkslategray': return 0x2f4f4fff;\n case 'darkslategrey': return 0x2f4f4fff;\n case 'darkturquoise': return 0x00ced1ff;\n case 'darkviolet': return 0x9400d3ff;\n case 'deeppink': return 0xff1493ff;\n case 'deepskyblue': return 0x00bfffff;\n case 'dimgray': return 0x696969ff;\n case 'dimgrey': return 0x696969ff;\n case 'dodgerblue': return 0x1e90ffff;\n case 'firebrick': return 0xb22222ff;\n case 'floralwhite': return 0xfffaf0ff;\n case 'forestgreen': return 0x228b22ff;\n case 'fuchsia': return 0xff00ffff;\n case 'gainsboro': return 0xdcdcdcff;\n case 'ghostwhite': return 0xf8f8ffff;\n case 'gold': return 0xffd700ff;\n case 'goldenrod': return 0xdaa520ff;\n case 'gray': return 0x808080ff;\n case 'green': return 0x008000ff;\n case 'greenyellow': return 0xadff2fff;\n case 'grey': return 0x808080ff;\n case 'honeydew': return 0xf0fff0ff;\n case 'hotpink': return 0xff69b4ff;\n case 'indianred': return 0xcd5c5cff;\n case 'indigo': return 0x4b0082ff;\n case 'ivory': return 0xfffff0ff;\n case 'khaki': return 0xf0e68cff;\n case 'lavender': return 0xe6e6faff;\n case 'lavenderblush': return 0xfff0f5ff;\n case 'lawngreen': return 0x7cfc00ff;\n case 'lemonchiffon': return 0xfffacdff;\n case 'lightblue': return 0xadd8e6ff;\n case 'lightcoral': return 0xf08080ff;\n case 'lightcyan': return 0xe0ffffff;\n case 'lightgoldenrodyellow': return 0xfafad2ff;\n case 'lightgray': return 0xd3d3d3ff;\n case 'lightgreen': return 0x90ee90ff;\n case 'lightgrey': return 0xd3d3d3ff;\n case 'lightpink': return 0xffb6c1ff;\n case 'lightsalmon': return 0xffa07aff;\n case 'lightseagreen': return 0x20b2aaff;\n case 'lightskyblue': return 0x87cefaff;\n case 'lightslategray': return 0x778899ff;\n case 'lightslategrey': return 0x778899ff;\n case 'lightsteelblue': return 0xb0c4deff;\n case 'lightyellow': return 0xffffe0ff;\n case 'lime': return 0x00ff00ff;\n case 'limegreen': return 0x32cd32ff;\n case 'linen': return 0xfaf0e6ff;\n case 'magenta': return 0xff00ffff;\n case 'maroon': return 0x800000ff;\n case 'mediumaquamarine': return 0x66cdaaff;\n case 'mediumblue': return 0x0000cdff;\n case 'mediumorchid': return 0xba55d3ff;\n case 'mediumpurple': return 0x9370dbff;\n case 'mediumseagreen': return 0x3cb371ff;\n case 'mediumslateblue': return 0x7b68eeff;\n case 'mediumspringgreen': return 0x00fa9aff;\n case 'mediumturquoise': return 0x48d1ccff;\n case 'mediumvioletred': return 0xc71585ff;\n case 'midnightblue': return 0x191970ff;\n case 'mintcream': return 0xf5fffaff;\n case 'mistyrose': return 0xffe4e1ff;\n case 'moccasin': return 0xffe4b5ff;\n case 'navajowhite': return 0xffdeadff;\n case 'navy': return 0x000080ff;\n case 'oldlace': return 0xfdf5e6ff;\n case 'olive': return 0x808000ff;\n case 'olivedrab': return 0x6b8e23ff;\n case 'orange': return 0xffa500ff;\n case 'orangered': return 0xff4500ff;\n case 'orchid': return 0xda70d6ff;\n case 'palegoldenrod': return 0xeee8aaff;\n case 'palegreen': return 0x98fb98ff;\n case 'paleturquoise': return 0xafeeeeff;\n case 'palevioletred': return 0xdb7093ff;\n case 'papayawhip': return 0xffefd5ff;\n case 'peachpuff': return 0xffdab9ff;\n case 'peru': return 0xcd853fff;\n case 'pink': return 0xffc0cbff;\n case 'plum': return 0xdda0ddff;\n case 'powderblue': return 0xb0e0e6ff;\n case 'purple': return 0x800080ff;\n case 'rebeccapurple': return 0x663399ff;\n case 'red': return 0xff0000ff;\n case 'rosybrown': return 0xbc8f8fff;\n case 'royalblue': return 0x4169e1ff;\n case 'saddlebrown': return 0x8b4513ff;\n case 'salmon': return 0xfa8072ff;\n case 'sandybrown': return 0xf4a460ff;\n case 'seagreen': return 0x2e8b57ff;\n case 'seashell': return 0xfff5eeff;\n case 'sienna': return 0xa0522dff;\n case 'silver': return 0xc0c0c0ff;\n case 'skyblue': return 0x87ceebff;\n case 'slateblue': return 0x6a5acdff;\n case 'slategray': return 0x708090ff;\n case 'slategrey': return 0x708090ff;\n case 'snow': return 0xfffafaff;\n case 'springgreen': return 0x00ff7fff;\n case 'steelblue': return 0x4682b4ff;\n case 'tan': return 0xd2b48cff;\n case 'teal': return 0x008080ff;\n case 'thistle': return 0xd8bfd8ff;\n case 'tomato': return 0xff6347ff;\n case 'turquoise': return 0x40e0d0ff;\n case 'violet': return 0xee82eeff;\n case 'wheat': return 0xf5deb3ff;\n case 'white': return 0xffffffff;\n case 'whitesmoke': return 0xf5f5f5ff;\n case 'yellow': return 0xffff00ff;\n case 'yellowgreen': return 0x9acd32ff;\n }\n return null;\n}\n\nmodule.exports = normalizeColor;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {ProcessedColorValue} from './processColor';\nimport type {ColorValue} from './StyleSheet';\n\nexport opaque type NativeColorValue = {\n resource_paths?: Array,\n};\n\nexport const PlatformColor = (...names: Array): ColorValue => {\n return {resource_paths: names};\n};\n\nexport const normalizeColorObject = (\n color: NativeColorValue,\n): ?ProcessedColorValue => {\n if ('resource_paths' in color) {\n return color;\n }\n return null;\n};\n\nexport const processColorObject = (\n color: NativeColorValue,\n): ?NativeColorValue => {\n return color;\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nimport type {____FontVariantArray_Internal} from './StyleSheetTypes';\n\nfunction processFontVariant(\n fontVariant: ____FontVariantArray_Internal | string,\n): ?____FontVariantArray_Internal {\n if (Array.isArray(fontVariant)) {\n return fontVariant;\n }\n\n // $FlowFixMe[incompatible-type]\n const match: ?____FontVariantArray_Internal = fontVariant\n .split(' ')\n .filter(Boolean);\n\n return match;\n}\n\nmodule.exports = processFontVariant;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nconst stringifySafe = require('../Utilities/stringifySafe').default;\nconst invariant = require('invariant');\n\n/**\n * Generate a transform matrix based on the provided transforms, and use that\n * within the style object instead.\n *\n * This allows us to provide an API that is similar to CSS, where transforms may\n * be applied in an arbitrary order, and yet have a universal, singular\n * interface to native code.\n */\nfunction processTransform(\n transform: Array | string,\n): Array | Array {\n if (typeof transform === 'string') {\n const regex = new RegExp(/(\\w+)\\(([^)]+)\\)/g);\n let transformArray: Array = [];\n let matches;\n\n while ((matches = regex.exec(transform))) {\n const {key, value} = _getKeyAndValueFromCSSTransform(\n matches[1],\n matches[2],\n );\n\n if (value !== undefined) {\n transformArray.push({[key]: value});\n }\n }\n transform = transformArray;\n }\n\n if (__DEV__) {\n _validateTransforms(transform);\n }\n\n return transform;\n}\n\nconst _getKeyAndValueFromCSSTransform: (\n key:\n | string\n | $TEMPORARY$string<'matrix'>\n | $TEMPORARY$string<'perspective'>\n | $TEMPORARY$string<'rotate'>\n | $TEMPORARY$string<'rotateX'>\n | $TEMPORARY$string<'rotateY'>\n | $TEMPORARY$string<'rotateZ'>\n | $TEMPORARY$string<'scale'>\n | $TEMPORARY$string<'scaleX'>\n | $TEMPORARY$string<'scaleY'>\n | $TEMPORARY$string<'skewX'>\n | $TEMPORARY$string<'skewY'>\n | $TEMPORARY$string<'translate'>\n | $TEMPORARY$string<'translate3d'>\n | $TEMPORARY$string<'translateX'>\n | $TEMPORARY$string<'translateY'>,\n args: string,\n) => {key: string, value?: number[] | number | string} = (key, args) => {\n const argsWithUnitsRegex = new RegExp(/([+-]?\\d+(\\.\\d+)?)([a-zA-Z]+)?/g);\n\n switch (key) {\n case 'matrix':\n return {key, value: args.match(/[+-]?\\d+(\\.\\d+)?/g)?.map(Number)};\n case 'translate':\n case 'translate3d':\n const parsedArgs = [];\n let missingUnitOfMeasurement = false;\n\n let matches;\n while ((matches = argsWithUnitsRegex.exec(args))) {\n const value = Number(matches[1]);\n const unitOfMeasurement = matches[3];\n\n if (value !== 0 && !unitOfMeasurement) {\n missingUnitOfMeasurement = true;\n }\n\n parsedArgs.push(value);\n }\n\n if (__DEV__) {\n invariant(\n !missingUnitOfMeasurement,\n `Transform with key ${key} must have units unless the provided value is 0, found %s`,\n `${key}(${args})`,\n );\n\n if (key === 'translate') {\n invariant(\n parsedArgs?.length === 1 || parsedArgs?.length === 2,\n 'Transform with key translate must be an string with 1 or 2 parameters, found %s: %s',\n parsedArgs?.length,\n `${key}(${args})`,\n );\n } else {\n invariant(\n parsedArgs?.length === 3,\n 'Transform with key translate3d must be an string with 3 parameters, found %s: %s',\n parsedArgs?.length,\n `${key}(${args})`,\n );\n }\n }\n\n if (parsedArgs?.length === 1) {\n parsedArgs.push(0);\n }\n\n return {key: 'translate', value: parsedArgs};\n case 'translateX':\n case 'translateY':\n case 'perspective':\n const argMatches = argsWithUnitsRegex.exec(args);\n\n if (!argMatches?.length) {\n return {key, value: undefined};\n }\n\n const value = Number(argMatches[1]);\n const unitOfMeasurement = argMatches[3];\n\n if (__DEV__) {\n invariant(\n value === 0 || unitOfMeasurement,\n `Transform with key ${key} must have units unless the provided value is 0, found %s`,\n `${key}(${args})`,\n );\n }\n\n return {key, value};\n\n default:\n return {key, value: !isNaN(args) ? Number(args) : args};\n }\n};\n\nfunction _validateTransforms(transform: Array): void {\n transform.forEach(transformation => {\n const keys = Object.keys(transformation);\n invariant(\n keys.length === 1,\n 'You must specify exactly one property per transform object. Passed properties: %s',\n stringifySafe(transformation),\n );\n const key = keys[0];\n const value = transformation[key];\n _validateTransform(key, value, transformation);\n });\n}\n\nfunction _validateTransform(\n key:\n | string\n | $TEMPORARY$string<'matrix'>\n | $TEMPORARY$string<'perspective'>\n | $TEMPORARY$string<'rotate'>\n | $TEMPORARY$string<'rotateX'>\n | $TEMPORARY$string<'rotateY'>\n | $TEMPORARY$string<'rotateZ'>\n | $TEMPORARY$string<'scale'>\n | $TEMPORARY$string<'scaleX'>\n | $TEMPORARY$string<'scaleY'>\n | $TEMPORARY$string<'skewX'>\n | $TEMPORARY$string<'skewY'>\n | $TEMPORARY$string<'translate'>\n | $TEMPORARY$string<'translateX'>\n | $TEMPORARY$string<'translateY'>,\n value: any | number | string,\n transformation: any,\n) {\n invariant(\n !value.getValue,\n 'You passed an Animated.Value to a normal component. ' +\n 'You need to wrap that component in an Animated. For example, ' +\n 'replace by .',\n );\n\n const multivalueTransforms = ['matrix', 'translate'];\n if (multivalueTransforms.indexOf(key) !== -1) {\n invariant(\n Array.isArray(value),\n 'Transform with key of %s must have an array as the value: %s',\n key,\n stringifySafe(transformation),\n );\n }\n switch (key) {\n case 'matrix':\n invariant(\n value.length === 9 || value.length === 16,\n 'Matrix transform must have a length of 9 (2d) or 16 (3d). ' +\n 'Provided matrix has a length of %s: %s',\n /* $FlowFixMe[prop-missing] (>=0.84.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.84 was deployed. To\n * see the error, delete this comment and run Flow. */\n value.length,\n stringifySafe(transformation),\n );\n break;\n case 'translate':\n invariant(\n value.length === 2 || value.length === 3,\n 'Transform with key translate must be an array of length 2 or 3, found %s: %s',\n /* $FlowFixMe[prop-missing] (>=0.84.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.84 was deployed. To\n * see the error, delete this comment and run Flow. */\n value.length,\n stringifySafe(transformation),\n );\n break;\n case 'rotateX':\n case 'rotateY':\n case 'rotateZ':\n case 'rotate':\n case 'skewX':\n case 'skewY':\n invariant(\n typeof value === 'string',\n 'Transform with key of \"%s\" must be a string: %s',\n key,\n stringifySafe(transformation),\n );\n invariant(\n value.indexOf('deg') > -1 || value.indexOf('rad') > -1,\n 'Rotate transform must be expressed in degrees (deg) or radians ' +\n '(rad): %s',\n stringifySafe(transformation),\n );\n break;\n case 'perspective':\n invariant(\n typeof value === 'number',\n 'Transform with key of \"%s\" must be a number: %s',\n key,\n stringifySafe(transformation),\n );\n invariant(\n value !== 0,\n 'Transform with key of \"%s\" cannot be zero: %s',\n key,\n stringifySafe(transformation),\n );\n break;\n case 'translateX':\n case 'translateY':\n case 'scale':\n case 'scaleX':\n case 'scaleY':\n invariant(\n typeof value === 'number',\n 'Transform with key of \"%s\" must be a number: %s',\n key,\n stringifySafe(transformation),\n );\n break;\n default:\n invariant(\n false,\n 'Invalid transform %s: %s',\n key,\n stringifySafe(transformation),\n );\n }\n}\n\nmodule.exports = processTransform;\n","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nconst dummySize = {width: undefined, height: undefined};\ntype Size = {width: ?number, height: ?number};\n\nconst sizesDiffer = function (one: Size, two: Size): boolean {\n const defaultedOne = one || dummySize;\n const defaultedTwo = two || dummySize;\n return (\n defaultedOne !== defaultedTwo &&\n (defaultedOne.width !== defaultedTwo.width ||\n defaultedOne.height !== defaultedTwo.height)\n );\n};\n\nmodule.exports = sizesDiffer;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\n/**\n * Unrolls an array comparison specially for matrices. Prioritizes\n * checking of indices that are most likely to change so that the comparison\n * bails as early as possible.\n *\n * @param {MatrixMath.Matrix} one First matrix.\n * @param {MatrixMath.Matrix} two Second matrix.\n * @return {boolean} Whether or not the two matrices differ.\n */\nconst matricesDiffer = function (\n one: ?Array,\n two: ?Array,\n): boolean {\n if (one === two) {\n return false;\n }\n return (\n !one ||\n !two ||\n one[12] !== two[12] ||\n one[13] !== two[13] ||\n one[14] !== two[14] ||\n one[5] !== two[5] ||\n one[10] !== two[10] ||\n one[0] !== two[0] ||\n one[1] !== two[1] ||\n one[2] !== two[2] ||\n one[3] !== two[3] ||\n one[4] !== two[4] ||\n one[6] !== two[6] ||\n one[7] !== two[7] ||\n one[8] !== two[8] ||\n one[9] !== two[9] ||\n one[11] !== two[11] ||\n one[15] !== two[15]\n );\n};\n\nmodule.exports = matricesDiffer;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\ntype Point = {\n x: ?number,\n y: ?number,\n ...\n};\n\nconst dummyPoint = {x: undefined, y: undefined};\n\nconst pointsDiffer = function (one: ?Point, two: ?Point): boolean {\n one = one || dummyPoint;\n two = two || dummyPoint;\n return one !== two && (one.x !== two.x || one.y !== two.y);\n};\n\nmodule.exports = pointsDiffer;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\ntype Inset = {\n top: ?number,\n left: ?number,\n right: ?number,\n bottom: ?number,\n ...\n};\n\nconst dummyInsets = {\n top: undefined,\n left: undefined,\n right: undefined,\n bottom: undefined,\n};\n\nconst insetsDiffer = function (one: Inset, two: Inset): boolean {\n one = one || dummyInsets;\n two = two || dummyInsets;\n return (\n one !== two &&\n (one.top !== two.top ||\n one.left !== two.left ||\n one.right !== two.right ||\n one.bottom !== two.bottom)\n );\n};\n\nmodule.exports = insetsDiffer;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n'use strict';\n\nimport type {ColorValue} from './StyleSheet';\n\nimport processColor, {type ProcessedColorValue} from './processColor';\n\nconst TRANSPARENT = 0; // rgba(0, 0, 0, 0)\n\nfunction processColorArray(\n colors: ?$ReadOnlyArray,\n): ?$ReadOnlyArray {\n return colors == null ? null : colors.map(processColorElement);\n}\n\nfunction processColorElement(color: ColorValue): ProcessedColorValue {\n const value = processColor(color);\n // For invalid colors, fallback to transparent.\n if (value == null) {\n console.error('Invalid value in color array:', color);\n return TRANSPARENT;\n }\n return value;\n}\n\nmodule.exports = processColorArray;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n// Resolves an asset into a `source` for `Image`.\n\n'use strict';\n\nimport type {ResolvedAssetSource} from './AssetSourceResolver';\n\nconst AssetSourceResolver = require('./AssetSourceResolver');\nconst {pickScale} = require('./AssetUtils');\nconst AssetRegistry = require('@react-native/assets-registry/registry');\n\nlet _customSourceTransformer, _serverURL, _scriptURL;\n\nlet _sourceCodeScriptURL: ?string;\nfunction getSourceCodeScriptURL(): ?string {\n if (_sourceCodeScriptURL) {\n return _sourceCodeScriptURL;\n }\n\n let sourceCode =\n global.nativeExtensions && global.nativeExtensions.SourceCode;\n if (!sourceCode) {\n sourceCode = require('../NativeModules/specs/NativeSourceCode').default;\n }\n _sourceCodeScriptURL = sourceCode.getConstants().scriptURL;\n return _sourceCodeScriptURL;\n}\n\nfunction getDevServerURL(): ?string {\n if (_serverURL === undefined) {\n const sourceCodeScriptURL = getSourceCodeScriptURL();\n const match =\n sourceCodeScriptURL && sourceCodeScriptURL.match(/^https?:\\/\\/.*?\\//);\n if (match) {\n // jsBundle was loaded from network\n _serverURL = match[0];\n } else {\n // jsBundle was loaded from file\n _serverURL = null;\n }\n }\n return _serverURL;\n}\n\nfunction _coerceLocalScriptURL(scriptURL: ?string): ?string {\n if (scriptURL) {\n if (scriptURL.startsWith('assets://')) {\n // android: running from within assets, no offline path to use\n return null;\n }\n scriptURL = scriptURL.substring(0, scriptURL.lastIndexOf('/') + 1);\n if (!scriptURL.includes('://')) {\n // Add file protocol in case we have an absolute file path and not a URL.\n // This shouldn't really be necessary. scriptURL should be a URL.\n scriptURL = 'file://' + scriptURL;\n }\n }\n return scriptURL;\n}\n\nfunction getScriptURL(): ?string {\n if (_scriptURL === undefined) {\n _scriptURL = _coerceLocalScriptURL(getSourceCodeScriptURL());\n }\n return _scriptURL;\n}\n\nfunction setCustomSourceTransformer(\n transformer: (resolver: AssetSourceResolver) => ResolvedAssetSource,\n): void {\n _customSourceTransformer = transformer;\n}\n\n/**\n * `source` is either a number (opaque type returned by require('./foo.png'))\n * or an `ImageSource` like { uri: '' }\n */\nfunction resolveAssetSource(source: any): ?ResolvedAssetSource {\n if (typeof source === 'object') {\n return source;\n }\n\n const asset = AssetRegistry.getAssetByID(source);\n if (!asset) {\n return null;\n }\n\n const resolver = new AssetSourceResolver(\n getDevServerURL(),\n getScriptURL(),\n asset,\n );\n if (_customSourceTransformer) {\n return _customSourceTransformer(resolver);\n }\n return resolver.defaultAsset();\n}\n\nresolveAssetSource.pickScale = pickScale;\nresolveAssetSource.setCustomSourceTransformer = setCustomSourceTransformer;\nmodule.exports = resolveAssetSource;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n scriptURL: string,\n |};\n}\n\nconst NativeModule = TurboModuleRegistry.getEnforcing('SourceCode');\nlet constants = null;\n\nconst NativeSourceCode = {\n getConstants(): {|\n scriptURL: string,\n |} {\n if (constants == null) {\n constants = NativeModule.getConstants();\n }\n\n return constants;\n },\n};\n\nexport default NativeSourceCode;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nexport type PackagerAsset = {\n +__packager_asset: boolean,\n +fileSystemLocation: string,\n +httpServerLocation: string,\n +width: ?number,\n +height: ?number,\n +scales: Array,\n +hash: string,\n +name: string,\n +type: string,\n ...\n};\n\nconst assets: Array = [];\n\nfunction registerAsset(asset: PackagerAsset): number {\n // `push` returns new array length, so the first asset will\n // get id 1 (not 0) to make the value truthy\n return assets.push(asset);\n}\n\nfunction getAssetByID(assetId: number): PackagerAsset {\n return assets[assetId - 1];\n}\n\nmodule.exports = {registerAsset, getAssetByID};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nexport type ResolvedAssetSource = {|\n +__packager_asset: boolean,\n +width: ?number,\n +height: ?number,\n +uri: string,\n +scale: number,\n|};\n\nimport type {PackagerAsset} from '@react-native/assets-registry/registry';\n\nconst PixelRatio = require('../Utilities/PixelRatio').default;\nconst Platform = require('../Utilities/Platform');\nconst {pickScale} = require('./AssetUtils');\nconst {\n getAndroidResourceFolderName,\n getAndroidResourceIdentifier,\n getBasePath,\n} = require('@react-native/assets-registry/path-support');\nconst invariant = require('invariant');\n\n/**\n * Returns a path like 'assets/AwesomeModule/icon@2x.png'\n */\nfunction getScaledAssetPath(asset: PackagerAsset): string {\n const scale = pickScale(asset.scales, PixelRatio.get());\n const scaleSuffix = scale === 1 ? '' : '@' + scale + 'x';\n const assetDir = getBasePath(asset);\n return assetDir + '/' + asset.name + scaleSuffix + '.' + asset.type;\n}\n\n/**\n * Returns a path like 'drawable-mdpi/icon.png'\n */\nfunction getAssetPathInDrawableFolder(asset: PackagerAsset): string {\n const scale = pickScale(asset.scales, PixelRatio.get());\n const drawableFolder = getAndroidResourceFolderName(asset, scale);\n const fileName = getAndroidResourceIdentifier(asset);\n return drawableFolder + '/' + fileName + '.' + asset.type;\n}\n\nclass AssetSourceResolver {\n serverUrl: ?string;\n // where the jsbundle is being run from\n jsbundleUrl: ?string;\n // the asset to resolve\n asset: PackagerAsset;\n\n constructor(serverUrl: ?string, jsbundleUrl: ?string, asset: PackagerAsset) {\n this.serverUrl = serverUrl;\n this.jsbundleUrl = jsbundleUrl;\n this.asset = asset;\n }\n\n isLoadedFromServer(): boolean {\n return !!this.serverUrl;\n }\n\n isLoadedFromFileSystem(): boolean {\n return !!(this.jsbundleUrl && this.jsbundleUrl.startsWith('file://'));\n }\n\n defaultAsset(): ResolvedAssetSource {\n if (this.isLoadedFromServer()) {\n return this.assetServerURL();\n }\n\n if (Platform.OS === 'android') {\n return this.isLoadedFromFileSystem()\n ? this.drawableFolderInBundle()\n : this.resourceIdentifierWithoutScale();\n } else {\n return this.scaledAssetURLNearBundle();\n }\n }\n\n /**\n * Returns an absolute URL which can be used to fetch the asset\n * from the devserver\n */\n assetServerURL(): ResolvedAssetSource {\n invariant(!!this.serverUrl, 'need server to load from');\n return this.fromSource(\n this.serverUrl +\n getScaledAssetPath(this.asset) +\n '?platform=' +\n Platform.OS +\n '&hash=' +\n this.asset.hash,\n );\n }\n\n /**\n * Resolves to just the scaled asset filename\n * E.g. 'assets/AwesomeModule/icon@2x.png'\n */\n scaledAssetPath(): ResolvedAssetSource {\n return this.fromSource(getScaledAssetPath(this.asset));\n }\n\n /**\n * Resolves to where the bundle is running from, with a scaled asset filename\n * E.g. 'file:///sdcard/bundle/assets/AwesomeModule/icon@2x.png'\n */\n scaledAssetURLNearBundle(): ResolvedAssetSource {\n const path = this.jsbundleUrl || 'file://';\n return this.fromSource(\n // Assets can have relative paths outside of the project root.\n // When bundling them we replace `../` with `_` to make sure they\n // don't end up outside of the expected assets directory.\n path + getScaledAssetPath(this.asset).replace(/\\.\\.\\//g, '_'),\n );\n }\n\n /**\n * The default location of assets bundled with the app, located by\n * resource identifier\n * The Android resource system picks the correct scale.\n * E.g. 'assets_awesomemodule_icon'\n */\n resourceIdentifierWithoutScale(): ResolvedAssetSource {\n invariant(\n Platform.OS === 'android',\n 'resource identifiers work on Android',\n );\n return this.fromSource(getAndroidResourceIdentifier(this.asset));\n }\n\n /**\n * If the jsbundle is running from a sideload location, this resolves assets\n * relative to its location\n * E.g. 'file:///sdcard/AwesomeModule/drawable-mdpi/icon.png'\n */\n drawableFolderInBundle(): ResolvedAssetSource {\n const path = this.jsbundleUrl || 'file://';\n return this.fromSource(path + getAssetPathInDrawableFolder(this.asset));\n }\n\n fromSource(source: string): ResolvedAssetSource {\n return {\n __packager_asset: true,\n width: this.asset.width,\n height: this.asset.height,\n uri: source,\n scale: pickScale(this.asset.scales, PixelRatio.get()),\n };\n }\n\n static pickScale: (scales: Array, deviceScale?: number) => number =\n pickScale;\n}\n\nmodule.exports = AssetSourceResolver;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport PixelRatio from '../Utilities/PixelRatio';\n\nlet cacheBreaker;\nlet warnIfCacheBreakerUnset = true;\n\nexport function pickScale(scales: Array, deviceScale?: number): number {\n if (deviceScale == null) {\n deviceScale = PixelRatio.get();\n }\n // Packager guarantees that `scales` array is sorted\n for (let i = 0; i < scales.length; i++) {\n if (scales[i] >= deviceScale) {\n return scales[i];\n }\n }\n\n // If nothing matches, device scale is larger than any available\n // scales, so we return the biggest one. Unless the array is empty,\n // in which case we default to 1\n return scales[scales.length - 1] || 1;\n}\n\nexport function setUrlCacheBreaker(appendage: string) {\n cacheBreaker = appendage;\n}\n\nexport function getUrlCacheBreaker(): string {\n if (cacheBreaker == null) {\n if (__DEV__ && warnIfCacheBreakerUnset) {\n warnIfCacheBreakerUnset = false;\n console.warn(\n 'AssetUtils.getUrlCacheBreaker: Cache breaker value is unset',\n );\n }\n return '';\n }\n return cacheBreaker;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n'use strict';\n\nconst Dimensions = require('./Dimensions').default;\n\n/**\n * PixelRatio class gives access to the device pixel density.\n *\n * ## Fetching a correctly sized image\n *\n * You should get a higher resolution image if you are on a high pixel density\n * device. A good rule of thumb is to multiply the size of the image you display\n * by the pixel ratio.\n *\n * ```\n * var image = getImage({\n * width: PixelRatio.getPixelSizeForLayoutSize(200),\n * height: PixelRatio.getPixelSizeForLayoutSize(100),\n * });\n * \n * ```\n *\n * ## Pixel grid snapping\n *\n * In iOS, you can specify positions and dimensions for elements with arbitrary\n * precision, for example 29.674825. But, ultimately the physical display only\n * have a fixed number of pixels, for example 640Γ—960 for iPhone 4 or 750Γ—1334\n * for iPhone 6. iOS tries to be as faithful as possible to the user value by\n * spreading one original pixel into multiple ones to trick the eye. The\n * downside of this technique is that it makes the resulting element look\n * blurry.\n *\n * In practice, we found out that developers do not want this feature and they\n * have to work around it by doing manual rounding in order to avoid having\n * blurry elements. In React Native, we are rounding all the pixels\n * automatically.\n *\n * We have to be careful when to do this rounding. You never want to work with\n * rounded and unrounded values at the same time as you're going to accumulate\n * rounding errors. Having even one rounding error is deadly because a one\n * pixel border may vanish or be twice as big.\n *\n * In React Native, everything in JavaScript and within the layout engine works\n * with arbitrary precision numbers. It's only when we set the position and\n * dimensions of the native element on the main thread that we round. Also,\n * rounding is done relative to the root rather than the parent, again to avoid\n * accumulating rounding errors.\n *\n */\nclass PixelRatio {\n /**\n * Returns the device pixel density. Some examples:\n *\n * - PixelRatio.get() === 1\n * - mdpi Android devices (160 dpi)\n * - PixelRatio.get() === 1.5\n * - hdpi Android devices (240 dpi)\n * - PixelRatio.get() === 2\n * - iPhone 4, 4S\n * - iPhone 5, 5c, 5s\n * - iPhone 6\n * - iPhone 7\n * - iPhone 8\n * - iPhone SE\n * - xhdpi Android devices (320 dpi)\n * - PixelRatio.get() === 3\n * - iPhone 6 Plus\n * - iPhone 7 Plus\n * - iPhone 8 Plus\n * - iPhone X\n * - xxhdpi Android devices (480 dpi)\n * - PixelRatio.get() === 3.5\n * - Nexus 6\n */\n static get(): number {\n return Dimensions.get('window').scale;\n }\n\n /**\n * Returns the scaling factor for font sizes. This is the ratio that is used to calculate the\n * absolute font size, so any elements that heavily depend on that should use this to do\n * calculations.\n *\n * If a font scale is not set, this returns the device pixel ratio.\n *\n * This reflects the user preference set in:\n * - Settings > Display > Font size on Android,\n * - Settings > Display & Brightness > Text Size on iOS.\n */\n static getFontScale(): number {\n return Dimensions.get('window').fontScale || PixelRatio.get();\n }\n\n /**\n * Converts a layout size (dp) to pixel size (px).\n *\n * Guaranteed to return an integer number.\n */\n static getPixelSizeForLayoutSize(layoutSize: number): number {\n return Math.round(layoutSize * PixelRatio.get());\n }\n\n /**\n * Rounds a layout size (dp) to the nearest layout size that corresponds to\n * an integer number of pixels. For example, on a device with a PixelRatio\n * of 3, `PixelRatio.roundToNearestPixel(8.4) = 8.33`, which corresponds to\n * exactly (8.33 * 3) = 25 pixels.\n */\n static roundToNearestPixel(layoutSize: number): number {\n const ratio = PixelRatio.get();\n return Math.round(layoutSize * ratio) / ratio;\n }\n\n // No-op for iOS, but used on the web. Should not be documented.\n static startDetecting() {}\n}\n\nexport default PixelRatio;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter';\nimport EventEmitter, {\n type EventSubscription,\n} from '../vendor/emitter/EventEmitter';\nimport NativeDeviceInfo, {\n type DimensionsPayload,\n type DisplayMetrics,\n type DisplayMetricsAndroid,\n} from './NativeDeviceInfo';\nimport invariant from 'invariant';\n\nconst eventEmitter = new EventEmitter<{\n change: [DimensionsPayload],\n}>();\nlet dimensionsInitialized = false;\nlet dimensions: DimensionsPayload;\n\nclass Dimensions {\n /**\n * NOTE: `useWindowDimensions` is the preferred API for React components.\n *\n * Initial dimensions are set before `runApplication` is called so they should\n * be available before any other require's are run, but may be updated later.\n *\n * Note: Although dimensions are available immediately, they may change (e.g\n * due to device rotation) so any rendering logic or styles that depend on\n * these constants should try to call this function on every render, rather\n * than caching the value (for example, using inline styles rather than\n * setting a value in a `StyleSheet`).\n *\n * Example: `const {height, width} = Dimensions.get('window');`\n *\n * @param {string} dim Name of dimension as defined when calling `set`.\n * @returns {DisplayMetrics? | DisplayMetricsAndroid?} Value for the dimension.\n */\n static get(dim: string): DisplayMetrics | DisplayMetricsAndroid {\n invariant(dimensions[dim], 'No dimension set for key ' + dim);\n return dimensions[dim];\n }\n\n /**\n * This should only be called from native code by sending the\n * didUpdateDimensions event.\n *\n * @param {DimensionsPayload} dims Simple string-keyed object of dimensions to set\n */\n static set(dims: $ReadOnly): void {\n // We calculate the window dimensions in JS so that we don't encounter loss of\n // precision in transferring the dimensions (which could be non-integers) over\n // the bridge.\n let {screen, window} = dims;\n const {windowPhysicalPixels} = dims;\n if (windowPhysicalPixels) {\n window = {\n width: windowPhysicalPixels.width / windowPhysicalPixels.scale,\n height: windowPhysicalPixels.height / windowPhysicalPixels.scale,\n scale: windowPhysicalPixels.scale,\n fontScale: windowPhysicalPixels.fontScale,\n };\n }\n const {screenPhysicalPixels} = dims;\n if (screenPhysicalPixels) {\n screen = {\n width: screenPhysicalPixels.width / screenPhysicalPixels.scale,\n height: screenPhysicalPixels.height / screenPhysicalPixels.scale,\n scale: screenPhysicalPixels.scale,\n fontScale: screenPhysicalPixels.fontScale,\n };\n } else if (screen == null) {\n screen = window;\n }\n\n dimensions = {window, screen};\n if (dimensionsInitialized) {\n // Don't fire 'change' the first time the dimensions are set.\n eventEmitter.emit('change', dimensions);\n } else {\n dimensionsInitialized = true;\n }\n }\n\n /**\n * Add an event handler. Supported events:\n *\n * - `change`: Fires when a property within the `Dimensions` object changes. The argument\n * to the event handler is an object with `window` and `screen` properties whose values\n * are the same as the return values of `Dimensions.get('window')` and\n * `Dimensions.get('screen')`, respectively.\n */\n static addEventListener(\n type: 'change',\n handler: Function,\n ): EventSubscription {\n invariant(\n type === 'change',\n 'Trying to subscribe to unknown event: \"%s\"',\n type,\n );\n return eventEmitter.addListener(type, handler);\n }\n}\n\nlet initialDims: ?$ReadOnly =\n global.nativeExtensions &&\n global.nativeExtensions.DeviceInfo &&\n global.nativeExtensions.DeviceInfo.Dimensions;\nif (!initialDims) {\n // Subscribe before calling getConstants to make sure we don't miss any updates in between.\n RCTDeviceEventEmitter.addListener(\n 'didUpdateDimensions',\n (update: DimensionsPayload) => {\n Dimensions.set(update);\n },\n );\n initialDims = NativeDeviceInfo.getConstants().Dimensions;\n}\n\nDimensions.set(initialDims);\n\nexport default Dimensions;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport type DisplayMetricsAndroid = {|\n width: number,\n height: number,\n scale: number,\n fontScale: number,\n densityDpi: number,\n|};\n\nexport type DisplayMetrics = {|\n width: number,\n height: number,\n scale: number,\n fontScale: number,\n|};\n\nexport type DimensionsPayload = {|\n window?: DisplayMetrics,\n screen?: DisplayMetrics,\n windowPhysicalPixels?: DisplayMetricsAndroid,\n screenPhysicalPixels?: DisplayMetricsAndroid,\n|};\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n +Dimensions: DimensionsPayload,\n +isIPhoneX_deprecated?: boolean,\n |};\n}\n\nconst NativeModule: Spec = TurboModuleRegistry.getEnforcing('DeviceInfo');\nlet constants = null;\n\nconst NativeDeviceInfo = {\n getConstants(): {|\n +Dimensions: DimensionsPayload,\n +isIPhoneX_deprecated?: boolean,\n |} {\n if (constants == null) {\n constants = NativeModule.getConstants();\n }\n return constants;\n },\n};\n\nexport default NativeDeviceInfo;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nimport type {PackagerAsset} from './registry.js';\n\nconst androidScaleSuffix = {\n '0.75': 'ldpi',\n '1': 'mdpi',\n '1.5': 'hdpi',\n '2': 'xhdpi',\n '3': 'xxhdpi',\n '4': 'xxxhdpi',\n};\n\nconst ANDROID_BASE_DENSITY = 160;\n\n/**\n * FIXME: using number to represent discrete scale numbers is fragile in essence because of\n * floating point numbers imprecision.\n */\nfunction getAndroidAssetSuffix(scale: number): string {\n if (scale.toString() in androidScaleSuffix) {\n return androidScaleSuffix[scale.toString()];\n }\n // NOTE: Android Gradle Plugin does not fully support the nnndpi format.\n // See https://issuetracker.google.com/issues/72884435\n if (Number.isFinite(scale) && scale > 0) {\n return Math.round(scale * ANDROID_BASE_DENSITY) + 'dpi';\n }\n throw new Error('no such scale ' + scale.toString());\n}\n\n// See https://developer.android.com/guide/topics/resources/drawable-resource.html\nconst drawableFileTypes = new Set([\n 'gif',\n 'jpeg',\n 'jpg',\n 'ktx',\n 'png',\n 'svg',\n 'webp',\n 'xml',\n]);\n\nfunction getAndroidResourceFolderName(\n asset: PackagerAsset,\n scale: number,\n): string | $TEMPORARY$string<'raw'> {\n if (!drawableFileTypes.has(asset.type)) {\n return 'raw';\n }\n const suffix = getAndroidAssetSuffix(scale);\n if (!suffix) {\n throw new Error(\n \"Don't know which android drawable suffix to use for scale: \" +\n scale +\n '\\nAsset: ' +\n JSON.stringify(asset, null, '\\t') +\n '\\nPossible scales are:' +\n JSON.stringify(androidScaleSuffix, null, '\\t'),\n );\n }\n return 'drawable-' + suffix;\n}\n\nfunction getAndroidResourceIdentifier(asset: PackagerAsset): string {\n return (getBasePath(asset) + '/' + asset.name)\n .toLowerCase()\n .replace(/\\//g, '_') // Encode folder structure in file name\n .replace(/([^a-z0-9_])/g, '') // Remove illegal chars\n .replace(/^assets_/, ''); // Remove \"assets_\" prefix\n}\n\nfunction getBasePath(asset: PackagerAsset): string {\n const basePath = asset.httpServerLocation;\n return basePath.startsWith('/') ? basePath.substr(1) : basePath;\n}\n\nmodule.exports = {\n getAndroidResourceFolderName,\n getAndroidResourceIdentifier,\n getBasePath,\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @noformat\n * @flow strict-local\n * @generated SignedSource<<47ba85d7f43c9b591d6804827322d00e>>\n *\n * This file was sync'd from the facebook/react repository.\n */\n\n'use strict';\n\nimport {type ViewConfig} from './ReactNativeTypes';\nimport invariant from 'invariant';\n\n// Event configs\nconst customBubblingEventTypes: {\n [eventName: string]: $ReadOnly<{\n phasedRegistrationNames: $ReadOnly<{\n captured: string,\n bubbled: string,\n skipBubbling?: ?boolean,\n }>,\n }>,\n ...\n} = {};\nconst customDirectEventTypes: {\n [eventName: string]: $ReadOnly<{\n registrationName: string,\n }>,\n ...\n} = {};\n\nexports.customBubblingEventTypes = customBubblingEventTypes;\nexports.customDirectEventTypes = customDirectEventTypes;\n\nconst viewConfigCallbacks = new Map ViewConfig>();\nconst viewConfigs = new Map();\n\nfunction processEventTypes(viewConfig: ViewConfig): void {\n const {bubblingEventTypes, directEventTypes} = viewConfig;\n\n if (__DEV__) {\n if (bubblingEventTypes != null && directEventTypes != null) {\n for (const topLevelType in directEventTypes) {\n invariant(\n bubblingEventTypes[topLevelType] == null,\n 'Event cannot be both direct and bubbling: %s',\n topLevelType,\n );\n }\n }\n }\n\n if (bubblingEventTypes != null) {\n for (const topLevelType in bubblingEventTypes) {\n if (customBubblingEventTypes[topLevelType] == null) {\n customBubblingEventTypes[topLevelType] =\n bubblingEventTypes[topLevelType];\n }\n }\n }\n\n if (directEventTypes != null) {\n for (const topLevelType in directEventTypes) {\n if (customDirectEventTypes[topLevelType] == null) {\n customDirectEventTypes[topLevelType] = directEventTypes[topLevelType];\n }\n }\n }\n}\n\n/**\n * Registers a native view/component by name.\n * A callback is provided to load the view config from UIManager.\n * The callback is deferred until the view is actually rendered.\n */\nexports.register = function (name: string, callback: () => ViewConfig): string {\n invariant(\n !viewConfigCallbacks.has(name),\n 'Tried to register two views with the same name %s',\n name,\n );\n invariant(\n typeof callback === 'function',\n 'View config getter callback for component `%s` must be a function (received `%s`)',\n name,\n callback === null ? 'null' : typeof callback,\n );\n viewConfigCallbacks.set(name, callback);\n return name;\n};\n\n/**\n * Retrieves a config for the specified view.\n * If this is the first time the view has been used,\n * This configuration will be lazy-loaded from UIManager.\n */\nexports.get = function (name: string): ViewConfig {\n let viewConfig;\n if (!viewConfigs.has(name)) {\n const callback = viewConfigCallbacks.get(name);\n if (typeof callback !== 'function') {\n invariant(\n false,\n 'View config getter callback for component `%s` must be a function (received `%s`).%s',\n name,\n callback === null ? 'null' : typeof callback,\n typeof name[0] === 'string' && /[a-z]/.test(name[0])\n ? ' Make sure to start component names with a capital letter.'\n : '',\n );\n }\n viewConfig = callback();\n processEventTypes(viewConfig);\n viewConfigs.set(name, viewConfig);\n\n // Clear the callback after the config is set so that\n // we don't mask any errors during registration.\n viewConfigCallbacks.set(name, null);\n } else {\n viewConfig = viewConfigs.get(name);\n }\n invariant(viewConfig, 'View config not found for name %s', name);\n return viewConfig;\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport PlatformBaseViewConfig from '../NativeComponent/PlatformBaseViewConfig';\nimport {type ViewConfig} from '../Renderer/shims/ReactNativeTypes';\n\nconst IGNORED_KEYS = ['transform', 'hitSlop'];\n\n/**\n * The purpose of this function is to validate that the view config that\n * native exposes for a given view manager is the same as the view config\n * that is specified for that view manager in JS.\n *\n * In order to improve perf, we want to avoid calling into native to get\n * the view config when each view manager is used. To do this, we are moving\n * the configs to JS. In the future we will use these JS based view configs\n * to codegen the view manager on native to ensure they stay in sync without\n * this runtime check.\n *\n * If this function fails, that likely means a change was made to the native\n * view manager without updating the JS config as well. Ideally you can make\n * that direct change to the JS config. If you don't know what the differences\n * are, the best approach I've found is to create a view that prints\n * the return value of getNativeComponentAttributes, and then copying that\n * text and pasting it back into JS:\n * {JSON.stringify(getNativeComponentAttributes('RCTView'))}\n *\n * This is meant to be a stopgap until the time comes when we only have a\n * single source of truth. I wonder if this message will still be here two\n * years from now...\n */\nexport default function verifyComponentAttributeEquivalence(\n nativeViewConfig: ViewConfig,\n staticViewConfig: ViewConfig,\n) {\n for (const prop of [\n 'validAttributes',\n 'bubblingEventTypes',\n 'directEventTypes',\n ]) {\n const diff = Object.keys(\n lefthandObjectDiff(nativeViewConfig[prop], staticViewConfig[prop]),\n );\n\n if (diff.length > 0) {\n const name =\n staticViewConfig.uiViewClassName ?? nativeViewConfig.uiViewClassName;\n console.error(\n `'${name}' has a view config that does not match native. ` +\n `'${prop}' is missing: ${diff.join(', ')}`,\n );\n }\n }\n}\n\n// Return the different key-value pairs of the right object, by iterating through the keys in the left object\n// Note it won't return a difference where a key is missing in the left but exists the right.\nfunction lefthandObjectDiff(leftObj: Object, rightObj: Object): Object {\n const differentKeys: {[string]: any | {...}} = {};\n\n function compare(leftItem: any, rightItem: any, key: string) {\n if (typeof leftItem !== typeof rightItem && leftItem != null) {\n differentKeys[key] = rightItem;\n return;\n }\n\n if (typeof leftItem === 'object') {\n const objDiff = lefthandObjectDiff(leftItem, rightItem);\n if (Object.keys(objDiff).length > 1) {\n differentKeys[key] = objDiff;\n }\n return;\n }\n\n if (leftItem !== rightItem) {\n differentKeys[key] = rightItem;\n return;\n }\n }\n\n for (const key in leftObj) {\n if (IGNORED_KEYS.includes(key)) {\n continue;\n }\n\n if (!rightObj) {\n differentKeys[key] = {};\n } else if (leftObj.hasOwnProperty(key)) {\n compare(leftObj[key], rightObj[key], key);\n }\n }\n\n return differentKeys;\n}\n\nexport function getConfigWithoutViewProps(\n viewConfig: ViewConfig,\n propName: string,\n): {...} {\n if (!viewConfig[propName]) {\n return {};\n }\n\n return Object.keys(viewConfig[propName])\n .filter(prop => !PlatformBaseViewConfig[propName][prop])\n .reduce<{[string]: any}>((obj, prop) => {\n obj[prop] = viewConfig[propName][prop];\n return obj;\n }, {});\n}\n\nexport function stringifyViewConfig(viewConfig: any): string {\n return JSON.stringify(\n viewConfig,\n (key, val) => {\n if (typeof val === 'function') {\n return `Ζ’ ${val.name}`;\n }\n return val;\n },\n 2,\n );\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {PartialViewConfig} from '../Renderer/shims/ReactNativeTypes';\n\nimport BaseViewConfig from './BaseViewConfig';\n\nexport type PartialViewConfigWithoutName = $Rest<\n PartialViewConfig,\n {uiViewClassName: string},\n>;\n\nconst PlatformBaseViewConfig: PartialViewConfigWithoutName = BaseViewConfig;\n\n// In Wilde/FB4A, use RNHostComponentListRoute in Bridge mode to verify\n// whether the JS props defined here match the native props defined\n// in RCTViewManagers in iOS, and ViewManagers in Android.\nexport default PlatformBaseViewConfig;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {PartialViewConfigWithoutName} from './PlatformBaseViewConfig';\n\nimport ReactNativeStyleAttributes from '../Components/View/ReactNativeStyleAttributes';\nimport {DynamicallyInjectedByGestureHandler} from './ViewConfigIgnore';\n\nconst bubblingEventTypes = {\n // Bubbling events from UIManagerModuleConstants.java\n topChange: {\n phasedRegistrationNames: {\n captured: 'onChangeCapture',\n bubbled: 'onChange',\n },\n },\n topSelect: {\n phasedRegistrationNames: {\n captured: 'onSelectCapture',\n bubbled: 'onSelect',\n },\n },\n topTouchEnd: {\n phasedRegistrationNames: {\n captured: 'onTouchEndCapture',\n bubbled: 'onTouchEnd',\n },\n },\n topTouchCancel: {\n phasedRegistrationNames: {\n captured: 'onTouchCancelCapture',\n bubbled: 'onTouchCancel',\n },\n },\n topTouchStart: {\n phasedRegistrationNames: {\n captured: 'onTouchStartCapture',\n bubbled: 'onTouchStart',\n },\n },\n topTouchMove: {\n phasedRegistrationNames: {\n captured: 'onTouchMoveCapture',\n bubbled: 'onTouchMove',\n },\n },\n\n // Experimental/Work in Progress Pointer Events (not yet ready for use)\n topPointerCancel: {\n phasedRegistrationNames: {\n captured: 'onPointerCancelCapture',\n bubbled: 'onPointerCancel',\n },\n },\n topPointerDown: {\n phasedRegistrationNames: {\n captured: 'onPointerDownCapture',\n bubbled: 'onPointerDown',\n },\n },\n topPointerEnter: {\n phasedRegistrationNames: {\n captured: 'onPointerEnterCapture',\n bubbled: 'onPointerEnter',\n skipBubbling: true,\n },\n },\n topPointerLeave: {\n phasedRegistrationNames: {\n captured: 'onPointerLeaveCapture',\n bubbled: 'onPointerLeave',\n skipBubbling: true,\n },\n },\n topPointerMove: {\n phasedRegistrationNames: {\n captured: 'onPointerMoveCapture',\n bubbled: 'onPointerMove',\n },\n },\n topPointerUp: {\n phasedRegistrationNames: {\n captured: 'onPointerUpCapture',\n bubbled: 'onPointerUp',\n },\n },\n topPointerOut: {\n phasedRegistrationNames: {\n captured: 'onPointerOutCapture',\n bubbled: 'onPointerOut',\n },\n },\n topPointerOver: {\n phasedRegistrationNames: {\n captured: 'onPointerOverCapture',\n bubbled: 'onPointerOver',\n },\n },\n};\n\nconst directEventTypes = {\n topAccessibilityAction: {\n registrationName: 'onAccessibilityAction',\n },\n onGestureHandlerEvent: DynamicallyInjectedByGestureHandler({\n registrationName: 'onGestureHandlerEvent',\n }),\n onGestureHandlerStateChange: DynamicallyInjectedByGestureHandler({\n registrationName: 'onGestureHandlerStateChange',\n }),\n\n // Direct events from UIManagerModuleConstants.java\n topContentSizeChange: {\n registrationName: 'onContentSizeChange',\n },\n topScrollBeginDrag: {\n registrationName: 'onScrollBeginDrag',\n },\n topMessage: {\n registrationName: 'onMessage',\n },\n topSelectionChange: {\n registrationName: 'onSelectionChange',\n },\n topLoadingFinish: {\n registrationName: 'onLoadingFinish',\n },\n topMomentumScrollEnd: {\n registrationName: 'onMomentumScrollEnd',\n },\n topClick: {\n registrationName: 'onClick',\n },\n topLoadingStart: {\n registrationName: 'onLoadingStart',\n },\n topLoadingError: {\n registrationName: 'onLoadingError',\n },\n topMomentumScrollBegin: {\n registrationName: 'onMomentumScrollBegin',\n },\n topScrollEndDrag: {\n registrationName: 'onScrollEndDrag',\n },\n topScroll: {\n registrationName: 'onScroll',\n },\n topLayout: {\n registrationName: 'onLayout',\n },\n};\n\nconst validAttributesForNonEventProps = {\n // @ReactProps from BaseViewManager\n backgroundColor: {process: require('../StyleSheet/processColor').default},\n transform: true,\n opacity: true,\n elevation: true,\n shadowColor: {process: require('../StyleSheet/processColor').default},\n zIndex: true,\n renderToHardwareTextureAndroid: true,\n testID: true,\n nativeID: true,\n accessibilityLabelledBy: true,\n accessibilityLabel: true,\n accessibilityHint: true,\n accessibilityRole: true,\n accessibilityCollection: true,\n accessibilityCollectionItem: true,\n accessibilityState: true,\n accessibilityActions: true,\n accessibilityValue: true,\n importantForAccessibility: true,\n rotation: true,\n scaleX: true,\n scaleY: true,\n translateX: true,\n translateY: true,\n accessibilityLiveRegion: true,\n\n // @ReactProps from LayoutShadowNode\n width: true,\n minWidth: true,\n collapsable: true,\n maxWidth: true,\n height: true,\n minHeight: true,\n maxHeight: true,\n flex: true,\n flexGrow: true,\n rowGap: true,\n columnGap: true,\n gap: true,\n flexShrink: true,\n flexBasis: true,\n aspectRatio: true,\n flexDirection: true,\n flexWrap: true,\n alignSelf: true,\n alignItems: true,\n alignContent: true,\n justifyContent: true,\n overflow: true,\n display: true,\n\n margin: true,\n marginBlock: true,\n marginBlockEnd: true,\n marginBlockStart: true,\n marginBottom: true,\n marginEnd: true,\n marginHorizontal: true,\n marginInline: true,\n marginInlineEnd: true,\n marginInlineStart: true,\n marginLeft: true,\n marginRight: true,\n marginStart: true,\n marginTop: true,\n marginVertical: true,\n\n padding: true,\n paddingBlock: true,\n paddingBlockEnd: true,\n paddingBlockStart: true,\n paddingBottom: true,\n paddingEnd: true,\n paddingHorizontal: true,\n paddingInline: true,\n paddingInlineEnd: true,\n paddingInlineStart: true,\n paddingLeft: true,\n paddingRight: true,\n paddingStart: true,\n paddingTop: true,\n paddingVertical: true,\n\n borderWidth: true,\n borderStartWidth: true,\n borderEndWidth: true,\n borderTopWidth: true,\n borderBottomWidth: true,\n borderLeftWidth: true,\n borderRightWidth: true,\n\n start: true,\n end: true,\n left: true,\n right: true,\n top: true,\n bottom: true,\n\n position: true,\n\n style: ReactNativeStyleAttributes,\n};\n\n// Props for bubbling and direct events\nconst validAttributesForEventProps = {\n onLayout: true,\n\n // PanResponder handlers\n onMoveShouldSetResponder: true,\n onMoveShouldSetResponderCapture: true,\n onStartShouldSetResponder: true,\n onStartShouldSetResponderCapture: true,\n onResponderGrant: true,\n onResponderReject: true,\n onResponderStart: true,\n onResponderEnd: true,\n onResponderRelease: true,\n onResponderMove: true,\n onResponderTerminate: true,\n onResponderTerminationRequest: true,\n onShouldBlockNativeResponder: true,\n\n // Touch events\n onTouchStart: true,\n onTouchMove: true,\n onTouchEnd: true,\n onTouchCancel: true,\n\n // Pointer events\n onPointerEnter: true,\n onPointerEnterCapture: true,\n onPointerLeave: true,\n onPointerLeaveCapture: true,\n onPointerMove: true,\n onPointerMoveCapture: true,\n onPointerOut: true,\n onPointerOutCapture: true,\n onPointerOver: true,\n onPointerOverCapture: true,\n};\n\n/**\n * On Android, Props are derived from a ViewManager and its ShadowNode.\n *\n * Where did we find these base platform props from?\n * - Nearly all component ViewManagers descend from BaseViewManager,\n * - and BaseViewManagers' ShadowNodes descend from LayoutShadowNode.\n * - Also, all components inherit ViewConfigs from UIManagerModuleConstants.java.\n *\n * So, these ViewConfigs are generated from LayoutShadowNode and BaseViewManager.\n */\nconst PlatformBaseViewConfigAndroid: PartialViewConfigWithoutName = {\n directEventTypes,\n bubblingEventTypes,\n validAttributes: {\n ...validAttributesForNonEventProps,\n ...validAttributesForEventProps,\n },\n};\n\nexport default PlatformBaseViewConfigAndroid;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport Platform from '../Utilities/Platform';\n\nconst ignoredViewConfigProps = new WeakSet<{...}>();\n\n/**\n * Decorates ViewConfig values that are dynamically injected by the library,\n * react-native-gesture-handler. (T45765076)\n */\nexport function DynamicallyInjectedByGestureHandler(object: T): T {\n ignoredViewConfigProps.add(object);\n return object;\n}\n\n/**\n * On iOS, ViewManager event declarations generate {eventName}: true entries\n * in ViewConfig valueAttributes. These entries aren't generated for Android.\n * This annotation allows Static ViewConfigs to insert these entries into\n * iOS but not Android.\n *\n * In the future, we want to remove this platform-inconsistency. We want\n * to set RN$ViewConfigEventValidAttributesDisabled = true server-side,\n * so that iOS does not generate validAttributes from event props in iOS RCTViewManager,\n * since Android does not generate validAttributes from events props in Android ViewManager.\n *\n * TODO(T110872225): Remove this logic, after achieving platform-consistency\n */\nexport function ConditionallyIgnoredEventHandlers(\n value: T,\n): T | void {\n if (Platform.OS === 'ios') {\n return value;\n }\n return undefined;\n}\n\nexport function isIgnored(value: mixed): boolean {\n if (typeof value === 'object' && value != null) {\n return ignoredViewConfigProps.has(value);\n }\n return false;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport {type ViewConfig} from '../Renderer/shims/ReactNativeTypes';\nimport {isIgnored} from './ViewConfigIgnore';\n\nexport type Difference =\n | {\n type: 'missing',\n path: Array,\n nativeValue: mixed,\n }\n | {\n type: 'unequal',\n path: Array,\n nativeValue: mixed,\n staticValue: mixed,\n }\n | {\n type: 'unexpected',\n path: Array,\n staticValue: mixed,\n };\n\nexport type ValidationResult = ValidResult | InvalidResult;\ntype ValidResult = {\n type: 'valid',\n};\ntype InvalidResult = {\n type: 'invalid',\n differences: Array,\n};\n\n/**\n * During the migration from native view configs to static view configs, this is\n * used to validate that the two are equivalent.\n */\nexport function validate(\n name: string,\n nativeViewConfig: ViewConfig,\n staticViewConfig: ViewConfig,\n): ValidationResult {\n const differences: Array = [];\n accumulateDifferences(\n differences,\n [],\n {\n bubblingEventTypes: nativeViewConfig.bubblingEventTypes,\n directEventTypes: nativeViewConfig.directEventTypes,\n uiViewClassName: nativeViewConfig.uiViewClassName,\n validAttributes: nativeViewConfig.validAttributes,\n },\n {\n bubblingEventTypes: staticViewConfig.bubblingEventTypes,\n directEventTypes: staticViewConfig.directEventTypes,\n uiViewClassName: staticViewConfig.uiViewClassName,\n validAttributes: staticViewConfig.validAttributes,\n },\n );\n\n if (differences.length === 0) {\n return {type: 'valid'};\n }\n\n return {\n type: 'invalid',\n differences,\n };\n}\n\nexport function stringifyValidationResult(\n name: string,\n validationResult: InvalidResult,\n): string {\n const {differences} = validationResult;\n return [\n `StaticViewConfigValidator: Invalid static view config for '${name}'.`,\n '',\n ...differences.map(difference => {\n const {type, path} = difference;\n switch (type) {\n case 'missing':\n return `- '${path.join('.')}' is missing.`;\n case 'unequal':\n return `- '${path.join('.')}' is the wrong value.`;\n case 'unexpected':\n return `- '${path.join('.')}' is present but not expected to be.`;\n }\n }),\n '',\n ].join('\\n');\n}\n\nfunction accumulateDifferences(\n differences: Array,\n path: Array,\n nativeObject: {...},\n staticObject: {...},\n): void {\n for (const nativeKey in nativeObject) {\n const nativeValue = nativeObject[nativeKey];\n\n if (!staticObject.hasOwnProperty(nativeKey)) {\n differences.push({\n path: [...path, nativeKey],\n type: 'missing',\n nativeValue,\n });\n continue;\n }\n\n const staticValue = staticObject[nativeKey];\n\n const nativeValueIfObject = ifObject(nativeValue);\n if (nativeValueIfObject != null) {\n const staticValueIfObject = ifObject(staticValue);\n if (staticValueIfObject != null) {\n path.push(nativeKey);\n accumulateDifferences(\n differences,\n path,\n nativeValueIfObject,\n staticValueIfObject,\n );\n path.pop();\n continue;\n }\n }\n\n if (nativeValue !== staticValue) {\n differences.push({\n path: [...path, nativeKey],\n type: 'unequal',\n nativeValue,\n staticValue,\n });\n }\n }\n\n for (const staticKey in staticObject) {\n if (\n !nativeObject.hasOwnProperty(staticKey) &&\n !isIgnored(staticObject[staticKey])\n ) {\n differences.push({\n path: [...path, staticKey],\n type: 'unexpected',\n staticValue: staticObject[staticKey],\n });\n }\n }\n}\n\nfunction ifObject(value: mixed): ?{...} {\n return typeof value === 'object' && !Array.isArray(value) ? value : null;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n PartialViewConfig,\n ViewConfig,\n} from '../Renderer/shims/ReactNativeTypes';\n\nimport PlatformBaseViewConfig from './PlatformBaseViewConfig';\n\n/**\n * Creates a complete `ViewConfig` from a `PartialViewConfig`.\n */\nexport function createViewConfig(\n partialViewConfig: PartialViewConfig,\n): ViewConfig {\n return {\n uiViewClassName: partialViewConfig.uiViewClassName,\n Commands: {},\n bubblingEventTypes: composeIndexers(\n PlatformBaseViewConfig.bubblingEventTypes,\n partialViewConfig.bubblingEventTypes,\n ),\n directEventTypes: composeIndexers(\n PlatformBaseViewConfig.directEventTypes,\n partialViewConfig.directEventTypes,\n ),\n // $FlowFixMe[incompatible-return]\n validAttributes: composeIndexers(\n // $FlowFixMe[incompatible-call] `style` property confuses Flow.\n PlatformBaseViewConfig.validAttributes,\n // $FlowFixMe[incompatible-call] `style` property confuses Flow.\n partialViewConfig.validAttributes,\n ),\n };\n}\n\nfunction composeIndexers(\n maybeA: ?{+[string]: T},\n maybeB: ?{+[string]: T},\n): {+[string]: T} {\n return maybeA == null || maybeB == null\n ? maybeA ?? maybeB ?? {}\n : {...maybeA, ...maybeB};\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nconst {dispatchCommand} = require('../ReactNative/RendererProxy');\n\ntype Options = $ReadOnly<{|\n supportedCommands: $ReadOnlyArray,\n|}>;\n\nfunction codegenNativeCommands(options: Options<$Keys>): T {\n const commandObj: {[$Keys]: (...$ReadOnlyArray) => void} = {};\n\n options.supportedCommands.forEach(command => {\n // $FlowFixMe[missing-local-annot]\n commandObj[command] = (ref, ...args) => {\n // $FlowFixMe[incompatible-call]\n dispatchCommand(ref, command, args);\n };\n });\n\n return ((commandObj: any): T);\n}\n\nexport default codegenNativeCommands;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nimport type {\n AccessibilityRole,\n Role,\n} from '../Components/View/ViewAccessibility';\n\n// Map role values to AccessibilityRole values\nexport function getAccessibilityRoleFromRole(role: Role): ?AccessibilityRole {\n switch (role) {\n case 'alert':\n return 'alert';\n case 'alertdialog':\n return undefined;\n case 'application':\n return undefined;\n case 'article':\n return undefined;\n case 'banner':\n return undefined;\n case 'button':\n return 'button';\n case 'cell':\n return undefined;\n case 'checkbox':\n return 'checkbox';\n case 'columnheader':\n return undefined;\n case 'combobox':\n return 'combobox';\n case 'complementary':\n return undefined;\n case 'contentinfo':\n return undefined;\n case 'definition':\n return undefined;\n case 'dialog':\n return undefined;\n case 'directory':\n return undefined;\n case 'document':\n return undefined;\n case 'feed':\n return undefined;\n case 'figure':\n return undefined;\n case 'form':\n return undefined;\n case 'grid':\n return 'grid';\n case 'group':\n return undefined;\n case 'heading':\n return 'header';\n case 'img':\n return 'image';\n case 'link':\n return 'link';\n case 'list':\n return 'list';\n case 'listitem':\n return undefined;\n case 'log':\n return undefined;\n case 'main':\n return undefined;\n case 'marquee':\n return undefined;\n case 'math':\n return undefined;\n case 'menu':\n return 'menu';\n case 'menubar':\n return 'menubar';\n case 'menuitem':\n return 'menuitem';\n case 'meter':\n return undefined;\n case 'navigation':\n return undefined;\n case 'none':\n return 'none';\n case 'note':\n return undefined;\n case 'option':\n return undefined;\n case 'presentation':\n return 'none';\n case 'progressbar':\n return 'progressbar';\n case 'radio':\n return 'radio';\n case 'radiogroup':\n return 'radiogroup';\n case 'region':\n return undefined;\n case 'row':\n return undefined;\n case 'rowgroup':\n return undefined;\n case 'rowheader':\n return undefined;\n case 'scrollbar':\n return 'scrollbar';\n case 'searchbox':\n return 'search';\n case 'separator':\n return undefined;\n case 'slider':\n return 'adjustable';\n case 'spinbutton':\n return 'spinbutton';\n case 'status':\n return undefined;\n case 'summary':\n return 'summary';\n case 'switch':\n return 'switch';\n case 'tab':\n return 'tab';\n case 'table':\n return undefined;\n case 'tablist':\n return 'tablist';\n case 'tabpanel':\n return undefined;\n case 'term':\n return undefined;\n case 'timer':\n return 'timer';\n case 'toolbar':\n return 'toolbar';\n case 'tooltip':\n return undefined;\n case 'tree':\n return undefined;\n case 'treegrid':\n return undefined;\n case 'treeitem':\n return undefined;\n }\n\n return undefined;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {\n ____ColorValue_Internal,\n ____DangerouslyImpreciseStyle_Internal,\n ____DangerouslyImpreciseStyleProp_Internal,\n ____ImageStyle_Internal,\n ____ImageStyleProp_Internal,\n ____Styles_Internal,\n ____TextStyle_Internal,\n ____TextStyleProp_Internal,\n ____ViewStyle_Internal,\n ____ViewStyleProp_Internal,\n} from './StyleSheetTypes';\n\nconst ReactNativeStyleAttributes = require('../Components/View/ReactNativeStyleAttributes');\nconst PixelRatio = require('../Utilities/PixelRatio').default;\nconst flatten = require('./flattenStyle');\n\n/**\n * This type should be used as the type for anything that is a color. It is\n * most useful when using DynamicColorIOS which can be a string or a dynamic\n * color object.\n *\n * type props = {backgroundColor: ColorValue};\n */\nexport type ColorValue = ____ColorValue_Internal;\n\n/**\n * This type should be used as the type for a prop that is passed through\n * to a 's `style` prop. This ensures call sites of the component\n * can't pass styles that View doesn't support such as `fontSize`.`\n *\n * type Props = {style: ViewStyleProp}\n * const MyComponent = (props: Props) => \n */\nexport type ViewStyleProp = ____ViewStyleProp_Internal;\n\n/**\n * This type should be used as the type for a prop that is passed through\n * to a 's `style` prop. This ensures call sites of the component\n * can't pass styles that Text doesn't support such as `resizeMode`.`\n *\n * type Props = {style: TextStyleProp}\n * const MyComponent = (props: Props) => \n */\nexport type TextStyleProp = ____TextStyleProp_Internal;\n\n/**\n * This type should be used as the type for a prop that is passed through\n * to an 's `style` prop. This ensures call sites of the component\n * can't pass styles that Image doesn't support such as `fontSize`.`\n *\n * type Props = {style: ImageStyleProp}\n * const MyComponent = (props: Props) => \n */\nexport type ImageStyleProp = ____ImageStyleProp_Internal;\n\n/**\n * WARNING: You probably shouldn't be using this type. This type\n * is similar to the ones above except it allows styles that are accepted\n * by all of View, Text, or Image. It is therefore very unsafe to pass this\n * through to an underlying component. Using this is almost always a mistake\n * and using one of the other more restrictive types is likely the right choice.\n */\nexport type DangerouslyImpreciseStyleProp =\n ____DangerouslyImpreciseStyleProp_Internal;\n\n/**\n * Utility type for getting the values for specific style keys.\n *\n * The following is bad because position is more restrictive than 'string':\n * ```\n * type Props = {position: string};\n * ```\n *\n * You should use the following instead:\n *\n * ```\n * type Props = {position: TypeForStyleKey<'position'>};\n * ```\n *\n * This will correctly give you the type 'absolute' | 'relative'\n */\nexport type TypeForStyleKey<\n +key: $Keys<____DangerouslyImpreciseStyle_Internal>,\n> = $ElementType<____DangerouslyImpreciseStyle_Internal, key>;\n\n/**\n * This type is an object of the different possible style\n * properties that can be specified for View.\n *\n * Note that this isn't a safe way to type a style prop for a component as\n * results from StyleSheet.create return an internal identifier, not\n * an object of styles.\n *\n * If you want to type the style prop of a function,\n * consider using ViewStyleProp.\n *\n * A reasonable usage of this type is for helper functions that return an\n * object of styles to pass to a View that can't be precomputed with\n * StyleSheet.create.\n */\nexport type ViewStyle = ____ViewStyle_Internal;\n\n/**\n * This type is an object of the different possible style\n * properties that can be specified for Text.\n *\n * Note that this isn't a safe way to type a style prop for a component as\n * results from StyleSheet.create return an internal identifier, not\n * an object of styles.\n *\n * If you want to type the style prop of a function,\n * consider using TextStyleProp.\n *\n * A reasonable usage of this type is for helper functions that return an\n * object of styles to pass to a Text that can't be precomputed with\n * StyleSheet.create.\n */\nexport type TextStyle = ____TextStyle_Internal;\n\n/**\n * This type is an object of the different possible style\n * properties that can be specified for Image.\n *\n * Note that this isn't a safe way to type a style prop for a component as\n * results from StyleSheet.create return an internal identifier, not\n * an object of styles.\n *\n * If you want to type the style prop of a function,\n * consider using ImageStyleProp.\n *\n * A reasonable usage of this type is for helper functions that return an\n * object of styles to pass to an Image that can't be precomputed with\n * StyleSheet.create.\n */\nexport type ImageStyle = ____ImageStyle_Internal;\n\n/**\n * WARNING: You probably shouldn't be using this type. This type is an object\n * with all possible style keys and their values. Note that this isn't\n * a safe way to type a style prop for a component as results from\n * StyleSheet.create return an internal identifier, not an object of styles.\n *\n * If you want to type the style prop of a function, consider using\n * ViewStyleProp, TextStyleProp, or ImageStyleProp.\n *\n * This should only be used by very core utilities that operate on an object\n * containing any possible style value.\n */\nexport type DangerouslyImpreciseStyle = ____DangerouslyImpreciseStyle_Internal;\n\nlet hairlineWidth: number = PixelRatio.roundToNearestPixel(0.4);\nif (hairlineWidth === 0) {\n hairlineWidth = 1 / PixelRatio.get();\n}\n\nconst absoluteFill = {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n};\nif (__DEV__) {\n Object.freeze(absoluteFill);\n}\n\n/**\n * A StyleSheet is an abstraction similar to CSS StyleSheets\n *\n * Create a new StyleSheet:\n *\n * ```\n * const styles = StyleSheet.create({\n * container: {\n * borderRadius: 4,\n * borderWidth: 0.5,\n * borderColor: '#d6d7da',\n * },\n * title: {\n * fontSize: 19,\n * fontWeight: 'bold',\n * },\n * activeTitle: {\n * color: 'red',\n * },\n * });\n * ```\n *\n * Use a StyleSheet:\n *\n * ```\n * \n * \n * \n * ```\n *\n * Code quality:\n *\n * - By moving styles away from the render function, you're making the code\n * easier to understand.\n * - Naming the styles is a good way to add meaning to the low level components\n * in the render function.\n *\n * Performance:\n *\n * - Making a stylesheet from a style object makes it possible to refer to it\n * by ID instead of creating a new style object every time.\n * - It also allows to send the style only once through the bridge. All\n * subsequent uses are going to refer an id (not implemented yet).\n */\nmodule.exports = {\n /**\n * This is defined as the width of a thin line on the platform. It can be\n * used as the thickness of a border or division between two elements.\n * Example:\n * ```\n * {\n * borderBottomColor: '#bbb',\n * borderBottomWidth: StyleSheet.hairlineWidth\n * }\n * ```\n *\n * This constant will always be a round number of pixels (so a line defined\n * by it look crisp) and will try to match the standard width of a thin line\n * on the underlying platform. However, you should not rely on it being a\n * constant size, because on different platforms and screen densities its\n * value may be calculated differently.\n *\n * A line with hairline width may not be visible if your simulator is downscaled.\n */\n hairlineWidth,\n\n /**\n * A very common pattern is to create overlays with position absolute and zero positioning,\n * so `absoluteFill` can be used for convenience and to reduce duplication of these repeated\n * styles.\n */\n absoluteFill: (absoluteFill: any), // TODO: This should be updated after we fix downstream Flow sites.\n\n /**\n * Sometimes you may want `absoluteFill` but with a couple tweaks - `absoluteFillObject` can be\n * used to create a customized entry in a `StyleSheet`, e.g.:\n *\n * const styles = StyleSheet.create({\n * wrapper: {\n * ...StyleSheet.absoluteFillObject,\n * top: 10,\n * backgroundColor: 'transparent',\n * },\n * });\n */\n absoluteFillObject: absoluteFill,\n\n /**\n * Combines two styles such that `style2` will override any styles in `style1`.\n * If either style is falsy, the other one is returned without allocating an\n * array, saving allocations and maintaining reference equality for\n * PureComponent checks.\n */\n compose(\n style1: ?T,\n style2: ?T,\n ): ?T | $ReadOnlyArray {\n if (style1 != null && style2 != null) {\n return ([style1, style2]: $ReadOnlyArray);\n } else {\n return style1 != null ? style1 : style2;\n }\n },\n\n /**\n * Flattens an array of style objects, into one aggregated style object.\n * Alternatively, this method can be used to lookup IDs, returned by\n * StyleSheet.register.\n *\n * > **NOTE**: Exercise caution as abusing this can tax you in terms of\n * > optimizations.\n * >\n * > IDs enable optimizations through the bridge and memory in general. Referring\n * > to style objects directly will deprive you of these optimizations.\n *\n * Example:\n * ```\n * const styles = StyleSheet.create({\n * listItem: {\n * flex: 1,\n * fontSize: 16,\n * color: 'white'\n * },\n * selectedListItem: {\n * color: 'green'\n * }\n * });\n *\n * StyleSheet.flatten([styles.listItem, styles.selectedListItem])\n * // returns { flex: 1, fontSize: 16, color: 'green' }\n * ```\n * Alternative use:\n * ```\n * StyleSheet.flatten(styles.listItem);\n * // return { flex: 1, fontSize: 16, color: 'white' }\n * // Simply styles.listItem would return its ID (number)\n * ```\n * This method internally uses `StyleSheetRegistry.getStyleByID(style)`\n * to resolve style objects represented by IDs. Thus, an array of style\n * objects (instances of StyleSheet.create), are individually resolved to,\n * their respective objects, merged as one and then returned. This also explains\n * the alternative use.\n */\n flatten,\n\n /**\n * WARNING: EXPERIMENTAL. Breaking changes will probably happen a lot and will\n * not be reliably announced. The whole thing might be deleted, who knows? Use\n * at your own risk.\n *\n * Sets a function to use to pre-process a style property value. This is used\n * internally to process color and transform values. You should not use this\n * unless you really know what you are doing and have exhausted other options.\n */\n setStyleAttributePreprocessor(\n property: string,\n process: (nextProp: mixed) => mixed,\n ) {\n let value;\n\n if (ReactNativeStyleAttributes[property] === true) {\n value = {process};\n } else if (typeof ReactNativeStyleAttributes[property] === 'object') {\n value = {...ReactNativeStyleAttributes[property], process};\n } else {\n console.error(`${property} is not a valid style attribute`);\n return;\n }\n\n if (\n __DEV__ &&\n typeof value.process === 'function' &&\n typeof ReactNativeStyleAttributes[property]?.process === 'function' &&\n value.process !== ReactNativeStyleAttributes[property]?.process\n ) {\n console.warn(`Overwriting ${property} style attribute preprocessor`);\n }\n\n ReactNativeStyleAttributes[property] = value;\n },\n\n /**\n * Creates a StyleSheet style reference from the given object.\n */\n create<+S: ____Styles_Internal>(obj: S): $ReadOnly {\n // TODO: This should return S as the return type. But first,\n // we need to codemod all the callsites that are typing this\n // return value as a number (even though it was opaque).\n if (__DEV__) {\n for (const key in obj) {\n if (obj[key]) {\n Object.freeze(obj[key]);\n }\n }\n }\n return obj;\n },\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport * as React from 'react';\n\nexport opaque type RootTag = number;\n\nexport const RootTagContext: React$Context =\n React.createContext(0);\n\nif (__DEV__) {\n RootTagContext.displayName = 'RootTagContext';\n}\n\n/**\n * Intended to only be used by `AppContainer`.\n */\nexport function createRootTag(rootTag: number | RootTag): RootTag {\n return rootTag;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nexport opaque type DisplayModeType = number;\n\n/** DisplayMode should be in sync with the method displayModeToInt from\n * react/renderer/uimanager/primitives.h. */\nconst DisplayMode: {[string]: DisplayModeType} = Object.freeze({\n VISIBLE: 1,\n SUSPENDED: 2,\n HIDDEN: 3,\n});\n\nexport function coerceDisplayMode(value: ?number): DisplayModeType {\n switch (value) {\n case DisplayMode.SUSPENDED:\n return DisplayMode.SUSPENDED;\n case DisplayMode.HIDDEN:\n return DisplayMode.HIDDEN;\n default:\n return DisplayMode.VISIBLE;\n }\n}\n\nexport default DisplayMode;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {AbstractComponent} from 'react';\n\nimport * as React from 'react';\n\ntype NoopComponent = AbstractComponent<{children: React.Node}>;\n\nconst cache: Map<\n string, // displayName\n NoopComponent, // ComponentWithDisplayName\n> = new Map();\n\nexport default function getCachedComponentWithDisplayName(\n displayName: string,\n): NoopComponent {\n let ComponentWithDisplayName = cache.get(displayName);\n\n if (!ComponentWithDisplayName) {\n ComponentWithDisplayName = ({children}: {children: React.Node}) => children;\n // $FlowFixMe[prop-missing]\n ComponentWithDisplayName.displayName = displayName;\n cache.set(displayName, ComponentWithDisplayName);\n }\n\n return ComponentWithDisplayName;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport NativeDeviceEventManager from '../../Libraries/NativeModules/specs/NativeDeviceEventManager';\nimport RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter';\n\nconst DEVICE_BACK_EVENT = 'hardwareBackPress';\n\ntype BackPressEventName = 'backPress' | 'hardwareBackPress';\n\nconst _backPressSubscriptions = [];\n\nRCTDeviceEventEmitter.addListener(DEVICE_BACK_EVENT, function () {\n for (let i = _backPressSubscriptions.length - 1; i >= 0; i--) {\n if (_backPressSubscriptions[i]()) {\n return;\n }\n }\n\n BackHandler.exitApp();\n});\n\n/**\n * Detect hardware button presses for back navigation.\n *\n * Android: Detect hardware back button presses, and programmatically invoke the default back button\n * functionality to exit the app if there are no listeners or if none of the listeners return true.\n *\n * iOS: Not applicable.\n *\n * The event subscriptions are called in reverse order (i.e. last registered subscription first),\n * and if one subscription returns true then subscriptions registered earlier will not be called.\n *\n * Example:\n *\n * ```javascript\n * BackHandler.addEventListener('hardwareBackPress', function() {\n * // this.onMainScreen and this.goBack are just examples, you need to use your own implementation here\n * // Typically you would use the navigator here to go to the last state.\n *\n * if (!this.onMainScreen()) {\n * this.goBack();\n * return true;\n * }\n * return false;\n * });\n * ```\n */\ntype TBackHandler = {|\n +exitApp: () => void,\n +addEventListener: (\n eventName: BackPressEventName,\n handler: () => ?boolean,\n ) => {remove: () => void, ...},\n +removeEventListener: (\n eventName: BackPressEventName,\n handler: () => ?boolean,\n ) => void,\n|};\nconst BackHandler: TBackHandler = {\n exitApp: function (): void {\n if (!NativeDeviceEventManager) {\n return;\n }\n\n NativeDeviceEventManager.invokeDefaultBackPressHandler();\n },\n\n /**\n * Adds an event handler. Supported events:\n *\n * - `hardwareBackPress`: Fires when the Android hardware back button is pressed.\n */\n addEventListener: function (\n eventName: BackPressEventName,\n handler: () => ?boolean,\n ): {remove: () => void, ...} {\n if (_backPressSubscriptions.indexOf(handler) === -1) {\n _backPressSubscriptions.push(handler);\n }\n return {\n remove: (): void => BackHandler.removeEventListener(eventName, handler),\n };\n },\n\n /**\n * Removes the event handler.\n */\n removeEventListener: function (\n eventName: BackPressEventName,\n handler: () => ?boolean,\n ): void {\n const index = _backPressSubscriptions.indexOf(handler);\n if (index !== -1) {\n _backPressSubscriptions.splice(index, 1);\n }\n },\n};\n\nmodule.exports = BackHandler;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +invokeDefaultBackPressHandler: () => void;\n}\n\nexport default (TurboModuleRegistry.get('DeviceEventManager'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport typeof BatchedBridge from '../BatchedBridge/BatchedBridge';\nimport typeof legacySendAccessibilityEvent from '../Components/AccessibilityInfo/legacySendAccessibilityEvent';\nimport typeof TextInputState from '../Components/TextInput/TextInputState';\nimport typeof ExceptionsManager from '../Core/ExceptionsManager';\nimport typeof RawEventEmitter from '../Core/RawEventEmitter';\nimport typeof ReactFiberErrorDialog from '../Core/ReactFiberErrorDialog';\nimport typeof RCTEventEmitter from '../EventEmitter/RCTEventEmitter';\nimport typeof CustomEvent from '../Events/CustomEvent';\nimport typeof UIManager from '../ReactNative/UIManager';\nimport typeof ReactNativeViewConfigRegistry from '../Renderer/shims/ReactNativeViewConfigRegistry';\nimport typeof flattenStyle from '../StyleSheet/flattenStyle';\nimport typeof deepFreezeAndThrowOnMutationInDev from '../Utilities/deepFreezeAndThrowOnMutationInDev';\nimport typeof deepDiffer from '../Utilities/differ/deepDiffer';\nimport typeof Platform from '../Utilities/Platform';\n\nimport {type DangerouslyImpreciseStyleProp} from '../StyleSheet/StyleSheet';\n\n// flowlint unsafe-getters-setters:off\nmodule.exports = {\n get BatchedBridge(): BatchedBridge {\n return require('../BatchedBridge/BatchedBridge');\n },\n get ExceptionsManager(): ExceptionsManager {\n return require('../Core/ExceptionsManager');\n },\n get Platform(): Platform {\n return require('../Utilities/Platform');\n },\n get RCTEventEmitter(): RCTEventEmitter {\n return require('../EventEmitter/RCTEventEmitter');\n },\n get ReactNativeViewConfigRegistry(): ReactNativeViewConfigRegistry {\n return require('../Renderer/shims/ReactNativeViewConfigRegistry');\n },\n get TextInputState(): TextInputState {\n return require('../Components/TextInput/TextInputState');\n },\n get UIManager(): UIManager {\n return require('../ReactNative/UIManager');\n },\n get deepDiffer(): deepDiffer {\n return require('../Utilities/differ/deepDiffer');\n },\n get deepFreezeAndThrowOnMutationInDev(): deepFreezeAndThrowOnMutationInDev<\n {...} | Array,\n > {\n return require('../Utilities/deepFreezeAndThrowOnMutationInDev');\n },\n get flattenStyle(): flattenStyle {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n return require('../StyleSheet/flattenStyle');\n },\n get ReactFiberErrorDialog(): ReactFiberErrorDialog {\n return require('../Core/ReactFiberErrorDialog').default;\n },\n get legacySendAccessibilityEvent(): legacySendAccessibilityEvent {\n return require('../Components/AccessibilityInfo/legacySendAccessibilityEvent');\n },\n get RawEventEmitter(): RawEventEmitter {\n return require('../Core/RawEventEmitter').default;\n },\n get CustomEvent(): CustomEvent {\n return require('../Events/CustomEvent').default;\n },\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nconst BatchedBridge = require('../BatchedBridge/BatchedBridge');\n\nconst RCTEventEmitter = {\n register(eventEmitter: any) {\n if (global.RN$Bridgeless) {\n global.RN$registerCallableModule('RCTEventEmitter', () => eventEmitter);\n } else {\n BatchedBridge.registerCallableModule('RCTEventEmitter', eventEmitter);\n }\n },\n};\n\nmodule.exports = RCTEventEmitter;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n// This class is responsible for coordinating the \"focused\" state for\n// TextInputs. All calls relating to the keyboard should be funneled\n// through here.\n\nimport type {\n HostComponent,\n MeasureInWindowOnSuccessCallback,\n MeasureLayoutOnSuccessCallback,\n MeasureOnSuccessCallback,\n} from '../../Renderer/shims/ReactNativeTypes';\n\nimport {Commands as AndroidTextInputCommands} from '../../Components/TextInput/AndroidTextInputNativeComponent';\nimport {Commands as iOSTextInputCommands} from '../../Components/TextInput/RCTSingelineTextInputNativeComponent';\n\nconst {findNodeHandle} = require('../../ReactNative/RendererProxy');\nconst Platform = require('../../Utilities/Platform');\nconst React = require('react');\ntype ComponentRef = React.ElementRef>;\n\nlet currentlyFocusedInputRef: ?ComponentRef = null;\nconst inputs = new Set<{\n blur(): void,\n focus(): void,\n measure(callback: MeasureOnSuccessCallback): void,\n measureInWindow(callback: MeasureInWindowOnSuccessCallback): void,\n measureLayout(\n relativeToNativeNode: number | React.ElementRef>,\n onSuccess: MeasureLayoutOnSuccessCallback,\n onFail?: () => void,\n ): void,\n setNativeProps(nativeProps: {...}): void,\n}>();\n\nfunction currentlyFocusedInput(): ?ComponentRef {\n return currentlyFocusedInputRef;\n}\n\n/**\n * Returns the ID of the currently focused text field, if one exists\n * If no text field is focused it returns null\n */\nfunction currentlyFocusedField(): ?number {\n if (__DEV__) {\n console.error(\n 'currentlyFocusedField is deprecated and will be removed in a future release. Use currentlyFocusedInput',\n );\n }\n\n return findNodeHandle(currentlyFocusedInputRef);\n}\n\nfunction focusInput(textField: ?ComponentRef): void {\n if (currentlyFocusedInputRef !== textField && textField != null) {\n currentlyFocusedInputRef = textField;\n }\n}\n\nfunction blurInput(textField: ?ComponentRef): void {\n if (currentlyFocusedInputRef === textField && textField != null) {\n currentlyFocusedInputRef = null;\n }\n}\n\nfunction focusField(textFieldID: ?number): void {\n if (__DEV__) {\n console.error('focusField no longer works. Use focusInput');\n }\n\n return;\n}\n\nfunction blurField(textFieldID: ?number) {\n if (__DEV__) {\n console.error('blurField no longer works. Use blurInput');\n }\n\n return;\n}\n\n/**\n * @param {number} TextInputID id of the text field to focus\n * Focuses the specified text field\n * noop if the text field was already focused or if the field is not editable\n */\nfunction focusTextInput(textField: ?ComponentRef) {\n if (typeof textField === 'number') {\n if (__DEV__) {\n console.error(\n 'focusTextInput must be called with a host component. Passing a react tag is deprecated.',\n );\n }\n\n return;\n }\n\n if (textField != null) {\n const fieldCanBeFocused =\n currentlyFocusedInputRef !== textField &&\n // $FlowFixMe - `currentProps` is missing in `NativeMethods`\n textField.currentProps?.editable !== false;\n\n if (!fieldCanBeFocused) {\n return;\n }\n focusInput(textField);\n if (Platform.OS === 'ios') {\n // This isn't necessarily a single line text input\n // But commands don't actually care as long as the thing being passed in\n // actually has a command with that name. So this should work with single\n // and multiline text inputs. Ideally we'll merge them into one component\n // in the future.\n iOSTextInputCommands.focus(textField);\n } else if (Platform.OS === 'android') {\n AndroidTextInputCommands.focus(textField);\n }\n }\n}\n\n/**\n * @param {number} textFieldID id of the text field to unfocus\n * Unfocuses the specified text field\n * noop if it wasn't focused\n */\nfunction blurTextInput(textField: ?ComponentRef) {\n if (typeof textField === 'number') {\n if (__DEV__) {\n console.error(\n 'blurTextInput must be called with a host component. Passing a react tag is deprecated.',\n );\n }\n\n return;\n }\n\n if (currentlyFocusedInputRef === textField && textField != null) {\n blurInput(textField);\n if (Platform.OS === 'ios') {\n // This isn't necessarily a single line text input\n // But commands don't actually care as long as the thing being passed in\n // actually has a command with that name. So this should work with single\n // and multiline text inputs. Ideally we'll merge them into one component\n // in the future.\n iOSTextInputCommands.blur(textField);\n } else if (Platform.OS === 'android') {\n AndroidTextInputCommands.blur(textField);\n }\n }\n}\n\nfunction registerInput(textField: ComponentRef) {\n if (typeof textField === 'number') {\n if (__DEV__) {\n console.error(\n 'registerInput must be called with a host component. Passing a react tag is deprecated.',\n );\n }\n\n return;\n }\n\n inputs.add(textField);\n}\n\nfunction unregisterInput(textField: ComponentRef) {\n if (typeof textField === 'number') {\n if (__DEV__) {\n console.error(\n 'unregisterInput must be called with a host component. Passing a react tag is deprecated.',\n );\n }\n\n return;\n }\n inputs.delete(textField);\n}\n\nfunction isTextInput(textField: ComponentRef): boolean {\n if (typeof textField === 'number') {\n if (__DEV__) {\n console.error(\n 'isTextInput must be called with a host component. Passing a react tag is deprecated.',\n );\n }\n\n return false;\n }\n\n return inputs.has(textField);\n}\n\nmodule.exports = {\n currentlyFocusedInput,\n focusInput,\n blurInput,\n\n currentlyFocusedField,\n focusField,\n blurField,\n focusTextInput,\n blurTextInput,\n registerInput,\n unregisterInput,\n isTextInput,\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {\n ColorValue,\n TextStyleProp,\n ViewStyleProp,\n} from '../../StyleSheet/StyleSheet';\nimport type {\n BubblingEventHandler,\n DirectEventHandler,\n Double,\n Float,\n Int32,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\nimport type {TextInputNativeCommands} from './TextInputNativeCommands';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\n\nexport type KeyboardType =\n // Cross Platform\n | 'default'\n | 'email-address'\n | 'numeric'\n | 'phone-pad'\n | 'number-pad'\n | 'decimal-pad'\n | 'url'\n // iOS-only\n | 'ascii-capable'\n | 'numbers-and-punctuation'\n | 'name-phone-pad'\n | 'twitter'\n | 'web-search'\n // Android-only\n | 'visible-password';\n\nexport type ReturnKeyType =\n // Cross Platform\n | 'done'\n | 'go'\n | 'next'\n | 'search'\n | 'send'\n // Android-only\n | 'none'\n | 'previous'\n // iOS-only\n | 'default'\n | 'emergency-call'\n | 'google'\n | 'join'\n | 'route'\n | 'yahoo';\n\nexport type SubmitBehavior = 'submit' | 'blurAndSubmit' | 'newline';\n\nexport type NativeProps = $ReadOnly<{|\n // This allows us to inherit everything from ViewProps except for style (see below)\n // This must be commented for Fabric codegen to work.\n ...$Diff>,\n\n /**\n * Android props after this\n */\n /**\n * Specifies autocomplete hints for the system, so it can provide autofill. On Android, the system will always attempt to offer autofill by using heuristics to identify the type of content.\n * To disable autocomplete, set `autoComplete` to `off`.\n *\n * *Android Only*\n *\n * Possible values for `autoComplete` are:\n *\n * - `birthdate-day`\n * - `birthdate-full`\n * - `birthdate-month`\n * - `birthdate-year`\n * - `cc-csc`\n * - `cc-exp`\n * - `cc-exp-day`\n * - `cc-exp-month`\n * - `cc-exp-year`\n * - `cc-number`\n * - `email`\n * - `gender`\n * - `name`\n * - `name-family`\n * - `name-given`\n * - `name-middle`\n * - `name-middle-initial`\n * - `name-prefix`\n * - `name-suffix`\n * - `password`\n * - `password-new`\n * - `postal-address`\n * - `postal-address-country`\n * - `postal-address-extended`\n * - `postal-address-extended-postal-code`\n * - `postal-address-locality`\n * - `postal-address-region`\n * - `postal-code`\n * - `street-address`\n * - `sms-otp`\n * - `tel`\n * - `tel-country-code`\n * - `tel-national`\n * - `tel-device`\n * - `username`\n * - `username-new`\n * - `off`\n *\n * @platform android\n */\n autoComplete?: WithDefault<\n | 'birthdate-day'\n | 'birthdate-full'\n | 'birthdate-month'\n | 'birthdate-year'\n | 'cc-csc'\n | 'cc-exp'\n | 'cc-exp-day'\n | 'cc-exp-month'\n | 'cc-exp-year'\n | 'cc-number'\n | 'email'\n | 'gender'\n | 'name'\n | 'name-family'\n | 'name-given'\n | 'name-middle'\n | 'name-middle-initial'\n | 'name-prefix'\n | 'name-suffix'\n | 'password'\n | 'password-new'\n | 'postal-address'\n | 'postal-address-country'\n | 'postal-address-extended'\n | 'postal-address-extended-postal-code'\n | 'postal-address-locality'\n | 'postal-address-region'\n | 'postal-code'\n | 'street-address'\n | 'sms-otp'\n | 'tel'\n | 'tel-country-code'\n | 'tel-national'\n | 'tel-device'\n | 'username'\n | 'username-new'\n | 'off',\n 'off',\n >,\n\n /**\n * Sets the return key to the label. Use it instead of `returnKeyType`.\n * @platform android\n */\n returnKeyLabel?: ?string,\n\n /**\n * Sets the number of lines for a `TextInput`. Use it with multiline set to\n * `true` to be able to fill the lines.\n * @platform android\n */\n numberOfLines?: ?Int32,\n\n /**\n * When `false`, if there is a small amount of space available around a text input\n * (e.g. landscape orientation on a phone), the OS may choose to have the user edit\n * the text inside of a full screen text input mode. When `true`, this feature is\n * disabled and users will always edit the text directly inside of the text input.\n * Defaults to `false`.\n * @platform android\n */\n disableFullscreenUI?: ?boolean,\n\n /**\n * Set text break strategy on Android API Level 23+, possible values are `simple`, `highQuality`, `balanced`\n * The default value is `simple`.\n * @platform android\n */\n textBreakStrategy?: WithDefault<\n 'simple' | 'highQuality' | 'balanced',\n 'simple',\n >,\n\n /**\n * The color of the `TextInput` underline.\n * @platform android\n */\n underlineColorAndroid?: ?ColorValue,\n\n /**\n * If defined, the provided image resource will be rendered on the left.\n * The image resource must be inside `/android/app/src/main/res/drawable` and referenced\n * like\n * ```\n * \n * ```\n * @platform android\n */\n inlineImageLeft?: ?string,\n\n /**\n * Padding between the inline image, if any, and the text input itself.\n * @platform android\n */\n inlineImagePadding?: ?Int32,\n\n importantForAutofill?: string /*?(\n | 'auto'\n | 'no'\n | 'noExcludeDescendants'\n | 'yes'\n | 'yesExcludeDescendants'\n ),*/,\n\n /**\n * When `false`, it will prevent the soft keyboard from showing when the field is focused.\n * Defaults to `true`.\n */\n showSoftInputOnFocus?: ?boolean,\n\n /**\n * TextInput props after this\n */\n /**\n * Can tell `TextInput` to automatically capitalize certain characters.\n *\n * - `characters`: all characters.\n * - `words`: first letter of each word.\n * - `sentences`: first letter of each sentence (*default*).\n * - `none`: don't auto capitalize anything.\n */\n autoCapitalize?: WithDefault<\n 'none' | 'sentences' | 'words' | 'characters',\n 'none',\n >,\n\n /**\n * If `false`, disables auto-correct. The default value is `true`.\n */\n autoCorrect?: ?boolean,\n\n /**\n * If `true`, focuses the input on `componentDidMount`.\n * The default value is `false`.\n */\n autoFocus?: ?boolean,\n\n /**\n * Specifies whether fonts should scale to respect Text Size accessibility settings. The\n * default is `true`.\n */\n allowFontScaling?: ?boolean,\n\n /**\n * Specifies largest possible scale a font can reach when `allowFontScaling` is enabled.\n * Possible values:\n * `null/undefined` (default): inherit from the parent node or the global default (0)\n * `0`: no max, ignore parent/global default\n * `>= 1`: sets the maxFontSizeMultiplier of this node to this value\n */\n maxFontSizeMultiplier?: ?Float,\n\n /**\n * If `false`, text is not editable. The default value is `true`.\n */\n editable?: ?boolean,\n\n /**\n * Determines which keyboard to open, e.g.`numeric`.\n *\n * The following values work across platforms:\n *\n * - `default`\n * - `numeric`\n * - `number-pad`\n * - `decimal-pad`\n * - `email-address`\n * - `phone-pad`\n * - `url`\n *\n * *Android Only*\n *\n * The following values work on Android only:\n *\n * - `visible-password`\n */\n keyboardType?: WithDefault,\n\n /**\n * Determines how the return key should look. On Android you can also use\n * `returnKeyLabel`.\n *\n * *Cross platform*\n *\n * The following values work across platforms:\n *\n * - `done`\n * - `go`\n * - `next`\n * - `search`\n * - `send`\n *\n * *Android Only*\n *\n * The following values work on Android only:\n *\n * - `none`\n * - `previous`\n */\n returnKeyType?: WithDefault,\n\n /**\n * Limits the maximum number of characters that can be entered. Use this\n * instead of implementing the logic in JS to avoid flicker.\n */\n maxLength?: ?Int32,\n\n /**\n * If `true`, the text input can be multiple lines.\n * The default value is `false`.\n */\n multiline?: ?boolean,\n\n /**\n * Callback that is called when the text input is blurred.\n * `target` is the reactTag of the element\n */\n onBlur?: ?BubblingEventHandler<$ReadOnly<{|target: Int32|}>>,\n\n /**\n * Callback that is called when the text input is focused.\n * `target` is the reactTag of the element\n */\n onFocus?: ?BubblingEventHandler<$ReadOnly<{|target: Int32|}>>,\n\n /**\n * Callback that is called when the text input's text changes.\n * `target` is the reactTag of the element\n * TODO: differentiate between onChange and onChangeText\n */\n onChange?: ?BubblingEventHandler<\n $ReadOnly<{|target: Int32, eventCount: Int32, text: string|}>,\n >,\n\n /**\n * Callback that is called when the text input's text changes.\n * Changed text is passed as an argument to the callback handler.\n * TODO: differentiate between onChange and onChangeText\n */\n onChangeText?: ?BubblingEventHandler<\n $ReadOnly<{|target: Int32, eventCount: Int32, text: string|}>,\n >,\n\n /**\n * Callback that is called when the text input's content size changes.\n * This will be called with\n * `{ nativeEvent: { contentSize: { width, height } } }`.\n *\n * Only called for multiline text inputs.\n */\n onContentSizeChange?: ?DirectEventHandler<\n $ReadOnly<{|\n target: Int32,\n contentSize: $ReadOnly<{|width: Double, height: Double|}>,\n |}>,\n >,\n\n onTextInput?: ?BubblingEventHandler<\n $ReadOnly<{|\n target: Int32,\n text: string,\n previousText: string,\n range: $ReadOnly<{|start: Double, end: Double|}>,\n |}>,\n >,\n\n /**\n * Callback that is called when text input ends.\n */\n onEndEditing?: ?BubblingEventHandler<\n $ReadOnly<{|target: Int32, text: string|}>,\n >,\n\n /**\n * Callback that is called when the text input selection is changed.\n * This will be called with\n * `{ nativeEvent: { selection: { start, end } } }`.\n */\n onSelectionChange?: ?DirectEventHandler<\n $ReadOnly<{|\n target: Int32,\n selection: $ReadOnly<{|start: Double, end: Double|}>,\n |}>,\n >,\n\n /**\n * Callback that is called when the text input's submit button is pressed.\n * Invalid if `multiline={true}` is specified.\n */\n onSubmitEditing?: ?BubblingEventHandler<\n $ReadOnly<{|target: Int32, text: string|}>,\n >,\n\n /**\n * Callback that is called when a key is pressed.\n * This will be called with `{ nativeEvent: { key: keyValue } }`\n * where `keyValue` is `'Enter'` or `'Backspace'` for respective keys and\n * the typed-in character otherwise including `' '` for space.\n * Fires before `onChange` callbacks.\n */\n onKeyPress?: ?BubblingEventHandler<$ReadOnly<{|target: Int32, key: string|}>>,\n\n /**\n * Invoked on content scroll with `{ nativeEvent: { contentOffset: { x, y } } }`.\n * May also contain other properties from ScrollEvent but on Android contentSize\n * is not provided for performance reasons.\n */\n onScroll?: ?DirectEventHandler<\n $ReadOnly<{|\n target: Int32,\n responderIgnoreScroll: boolean,\n contentInset: $ReadOnly<{|\n top: Double, // always 0 on Android\n bottom: Double, // always 0 on Android\n left: Double, // always 0 on Android\n right: Double, // always 0 on Android\n |}>,\n contentOffset: $ReadOnly<{|\n x: Double,\n y: Double,\n |}>,\n contentSize: $ReadOnly<{|\n width: Double, // always 0 on Android\n height: Double, // always 0 on Android\n |}>,\n layoutMeasurement: $ReadOnly<{|\n width: Double,\n height: Double,\n |}>,\n velocity: $ReadOnly<{|\n x: Double, // always 0 on Android\n y: Double, // always 0 on Android\n |}>,\n |}>,\n >,\n\n /**\n * The string that will be rendered before text input has been entered.\n */\n placeholder?: ?Stringish,\n\n /**\n * The text color of the placeholder string.\n */\n placeholderTextColor?: ?ColorValue,\n\n /**\n * If `true`, the text input obscures the text entered so that sensitive text\n * like passwords stay secure. The default value is `false`. Does not work with 'multiline={true}'.\n */\n secureTextEntry?: ?boolean,\n\n /**\n * The highlight and cursor color of the text input.\n */\n selectionColor?: ?ColorValue,\n\n /**\n * The start and end of the text input's selection. Set start and end to\n * the same value to position the cursor.\n */\n selection?: ?$ReadOnly<{|\n start: Int32,\n end?: ?Int32,\n |}>,\n\n /**\n * The value to show for the text input. `TextInput` is a controlled\n * component, which means the native value will be forced to match this\n * value prop if provided. For most uses, this works great, but in some\n * cases this may cause flickering - one common cause is preventing edits\n * by keeping value the same. In addition to simply setting the same value,\n * either set `editable={false}`, or set/update `maxLength` to prevent\n * unwanted edits without flicker.\n */\n value?: ?string,\n\n /**\n * Provides an initial value that will change when the user starts typing.\n * Useful for simple use-cases where you do not want to deal with listening\n * to events and updating the value prop to keep the controlled state in sync.\n */\n defaultValue?: ?string,\n\n /**\n * If `true`, all text will automatically be selected on focus.\n */\n selectTextOnFocus?: ?boolean,\n\n /**\n * If `true`, the text field will blur when submitted.\n * The default value is true for single-line fields and false for\n * multiline fields. Note that for multiline fields, setting `blurOnSubmit`\n * to `true` means that pressing return will blur the field and trigger the\n * `onSubmitEditing` event instead of inserting a newline into the field.\n *\n * @deprecated\n * Note that `submitBehavior` now takes the place of `blurOnSubmit` and will\n * override any behavior defined by `blurOnSubmit`.\n * @see submitBehavior\n */\n blurOnSubmit?: ?boolean,\n\n /**\n * When the return key is pressed,\n *\n * For single line inputs:\n *\n * - `'newline`' defaults to `'blurAndSubmit'`\n * - `undefined` defaults to `'blurAndSubmit'`\n *\n * For multiline inputs:\n *\n * - `'newline'` adds a newline\n * - `undefined` defaults to `'newline'`\n *\n * For both single line and multiline inputs:\n *\n * - `'submit'` will only send a submit event and not blur the input\n * - `'blurAndSubmit`' will both blur the input and send a submit event\n */\n submitBehavior?: ?SubmitBehavior,\n\n /**\n * Note that not all Text styles are supported, an incomplete list of what is not supported includes:\n *\n * - `borderLeftWidth`\n * - `borderTopWidth`\n * - `borderRightWidth`\n * - `borderBottomWidth`\n * - `borderTopLeftRadius`\n * - `borderTopRightRadius`\n * - `borderBottomRightRadius`\n * - `borderBottomLeftRadius`\n *\n * see [Issue#7070](https://github.com/facebook/react-native/issues/7070)\n * for more detail.\n *\n * [Styles](docs/style.html)\n */\n // TODO: figure out what to do with this style prop for codegen/Fabric purposes\n // This must be commented for Fabric codegen to work; it's currently not possible\n // to override the default View style prop in codegen.\n style?: ?TextStyleProp,\n\n /**\n * If `true`, caret is hidden. The default value is `false`.\n * This property is supported only for single-line TextInput component on iOS.\n */\n caretHidden?: ?boolean,\n\n /*\n * If `true`, contextMenuHidden is hidden. The default value is `false`.\n */\n contextMenuHidden?: ?boolean,\n\n /**\n * The following are props that `BaseTextShadowNode` takes. It is unclear if they\n * are used by TextInput.\n */\n textShadowColor?: ?ColorValue,\n textShadowRadius?: ?Float,\n textDecorationLine?: ?string,\n fontStyle?: ?string,\n textShadowOffset?: ?$ReadOnly<{|width?: ?Double, height?: ?Double|}>,\n lineHeight?: ?Float,\n textTransform?: ?string,\n color?: ?Int32,\n letterSpacing?: ?Float,\n fontSize?: ?Float,\n textAlign?: ?string,\n includeFontPadding?: ?boolean,\n fontWeight?: ?string,\n fontFamily?: ?string,\n\n /**\n * I cannot find where these are defined but JS complains without them.\n */\n textAlignVertical?: ?string,\n cursorColor?: ?ColorValue,\n\n /**\n * \"Private\" fields used by TextInput.js and not users of this component directly\n */\n mostRecentEventCount: Int32,\n text?: ?string,\n|}>;\n\ntype NativeType = HostComponent;\n\ntype NativeCommands = TextInputNativeCommands;\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['focus', 'blur', 'setTextAndSelection'],\n});\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {\n uiViewClassName: 'AndroidTextInput',\n bubblingEventTypes: {\n topBlur: {\n phasedRegistrationNames: {\n bubbled: 'onBlur',\n captured: 'onBlurCapture',\n },\n },\n topEndEditing: {\n phasedRegistrationNames: {\n bubbled: 'onEndEditing',\n captured: 'onEndEditingCapture',\n },\n },\n topFocus: {\n phasedRegistrationNames: {\n bubbled: 'onFocus',\n captured: 'onFocusCapture',\n },\n },\n topKeyPress: {\n phasedRegistrationNames: {\n bubbled: 'onKeyPress',\n captured: 'onKeyPressCapture',\n },\n },\n topSubmitEditing: {\n phasedRegistrationNames: {\n bubbled: 'onSubmitEditing',\n captured: 'onSubmitEditingCapture',\n },\n },\n topTextInput: {\n phasedRegistrationNames: {\n bubbled: 'onTextInput',\n captured: 'onTextInputCapture',\n },\n },\n },\n directEventTypes: {\n topScroll: {\n registrationName: 'onScroll',\n },\n },\n validAttributes: {\n maxFontSizeMultiplier: true,\n adjustsFontSizeToFit: true,\n minimumFontScale: true,\n autoFocus: true,\n placeholder: true,\n inlineImagePadding: true,\n contextMenuHidden: true,\n textShadowColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n maxLength: true,\n selectTextOnFocus: true,\n textShadowRadius: true,\n underlineColorAndroid: {\n process: require('../../StyleSheet/processColor').default,\n },\n textDecorationLine: true,\n submitBehavior: true,\n textAlignVertical: true,\n fontStyle: true,\n textShadowOffset: true,\n selectionColor: {process: require('../../StyleSheet/processColor').default},\n placeholderTextColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n importantForAutofill: true,\n lineHeight: true,\n textTransform: true,\n returnKeyType: true,\n keyboardType: true,\n multiline: true,\n color: {process: require('../../StyleSheet/processColor').default},\n autoComplete: true,\n numberOfLines: true,\n letterSpacing: true,\n returnKeyLabel: true,\n fontSize: true,\n onKeyPress: true,\n cursorColor: {process: require('../../StyleSheet/processColor').default},\n text: true,\n showSoftInputOnFocus: true,\n textAlign: true,\n autoCapitalize: true,\n autoCorrect: true,\n caretHidden: true,\n secureTextEntry: true,\n textBreakStrategy: true,\n onScroll: true,\n onContentSizeChange: true,\n disableFullscreenUI: true,\n includeFontPadding: true,\n fontWeight: true,\n fontFamily: true,\n allowFontScaling: true,\n onSelectionChange: true,\n mostRecentEventCount: true,\n inlineImageLeft: true,\n editable: true,\n fontVariant: true,\n borderBottomRightRadius: true,\n borderBottomColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderRadius: true,\n borderRightColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderColor: {process: require('../../StyleSheet/processColor').default},\n borderTopRightRadius: true,\n borderStyle: true,\n borderBottomLeftRadius: true,\n borderLeftColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderTopLeftRadius: true,\n borderTopColor: {process: require('../../StyleSheet/processColor').default},\n },\n};\n\nlet AndroidTextInputNativeComponent = NativeComponentRegistry.get(\n 'AndroidTextInput',\n () => __INTERNAL_VIEW_CONFIG,\n);\n\n// flowlint-next-line unclear-type:off\nexport default ((AndroidTextInputNativeComponent: any): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nlet logListeners;\n\ntype LogListeners = {|\n +onDifferentFunctionsIgnored: (nameOne: ?string, nameTwo: ?string) => void,\n|};\n\ntype Options = {|+unsafelyIgnoreFunctions?: boolean|};\n\nfunction unstable_setLogListeners(listeners: ?LogListeners) {\n logListeners = listeners;\n}\n\n/*\n * @returns {bool} true if different, false if equal\n */\nconst deepDiffer = function (\n one: any,\n two: any,\n maxDepthOrOptions: Options | number = -1,\n maybeOptions?: Options,\n): boolean {\n const options =\n typeof maxDepthOrOptions === 'number' ? maybeOptions : maxDepthOrOptions;\n const maxDepth =\n typeof maxDepthOrOptions === 'number' ? maxDepthOrOptions : -1;\n if (maxDepth === 0) {\n return true;\n }\n if (one === two) {\n // Short circuit on identical object references instead of traversing them.\n return false;\n }\n if (typeof one === 'function' && typeof two === 'function') {\n // We consider all functions equal unless explicitly configured otherwise\n let unsafelyIgnoreFunctions = options?.unsafelyIgnoreFunctions;\n if (unsafelyIgnoreFunctions == null) {\n if (\n logListeners &&\n logListeners.onDifferentFunctionsIgnored &&\n (!options || !('unsafelyIgnoreFunctions' in options))\n ) {\n logListeners.onDifferentFunctionsIgnored(one.name, two.name);\n }\n unsafelyIgnoreFunctions = true;\n }\n return !unsafelyIgnoreFunctions;\n }\n if (typeof one !== 'object' || one === null) {\n // Primitives can be directly compared\n return one !== two;\n }\n if (typeof two !== 'object' || two === null) {\n // We know they are different because the previous case would have triggered\n // otherwise.\n return true;\n }\n if (one.constructor !== two.constructor) {\n return true;\n }\n if (Array.isArray(one)) {\n // We know two is also an array because the constructors are equal\n const len = one.length;\n if (two.length !== len) {\n return true;\n }\n for (let ii = 0; ii < len; ii++) {\n if (deepDiffer(one[ii], two[ii], maxDepth - 1, options)) {\n return true;\n }\n }\n } else {\n for (const key in one) {\n if (deepDiffer(one[key], two[key], maxDepth - 1, options)) {\n return true;\n }\n }\n for (const twoKey in two) {\n // The only case we haven't checked yet is keys that are in two but aren't\n // in one, which means they are different.\n if (one[twoKey] === undefined && two[twoKey] !== undefined) {\n return true;\n }\n }\n }\n return false;\n};\n\ndeepDiffer.unstable_setLogListeners = unstable_setLogListeners;\nmodule.exports = deepDiffer;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\n/**\n * If your application is accepting different values for the same field over\n * time and is doing a diff on them, you can either (1) create a copy or\n * (2) ensure that those values are not mutated behind two passes.\n * This function helps you with (2) by freezing the object and throwing if\n * the user subsequently modifies the value.\n *\n * There are two caveats with this function:\n * - If the call site is not in strict mode, it will only throw when\n * mutating existing fields, adding a new one\n * will unfortunately fail silently :(\n * - If the object is already frozen or sealed, it will not continue the\n * deep traversal and will leave leaf nodes unfrozen.\n *\n * Freezing the object and adding the throw mechanism is expensive and will\n * only be used in DEV.\n */\nfunction deepFreezeAndThrowOnMutationInDev>(\n object: T,\n): T {\n if (__DEV__) {\n if (\n typeof object !== 'object' ||\n object === null ||\n Object.isFrozen(object) ||\n Object.isSealed(object)\n ) {\n return object;\n }\n\n // $FlowFixMe[not-an-object] `object` can be an array, but Object.keys works with arrays too\n const keys = Object.keys((object: {...} | Array));\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n const hasOwnProperty = Object.prototype.hasOwnProperty;\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (hasOwnProperty.call(object, key)) {\n Object.defineProperty(object, key, {\n get: identity.bind(null, object[key]),\n });\n Object.defineProperty(object, key, {\n set: throwOnImmutableMutation.bind(null, key),\n });\n }\n }\n\n Object.freeze(object);\n Object.seal(object);\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (hasOwnProperty.call(object, key)) {\n deepFreezeAndThrowOnMutationInDev(object[key]);\n }\n }\n }\n return object;\n}\n\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\nfunction throwOnImmutableMutation(key: empty, value) {\n throw Error(\n 'You attempted to set the key `' +\n key +\n '` with the value `' +\n JSON.stringify(value) +\n '` on an object that is meant to be immutable ' +\n 'and has been frozen.',\n );\n}\n\nfunction identity(value: mixed) {\n return value;\n}\n\nmodule.exports = deepFreezeAndThrowOnMutationInDev;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {ExtendedError} from './ExtendedError';\n\nimport {SyntheticError, handleException} from './ExceptionsManager';\n\nexport type CapturedError = {\n +componentStack: string,\n +error: mixed,\n +errorBoundary: ?{...},\n ...\n};\n\nconst ReactFiberErrorDialog = {\n /**\n * Intercept lifecycle errors and ensure they are shown with the correct stack\n * trace within the native redbox component.\n */\n showErrorDialog({componentStack, error: errorValue}: CapturedError): boolean {\n let error: ?ExtendedError;\n\n // Typically, `errorValue` should be an error. However, other values such as\n // strings (or even null) are sometimes thrown.\n if (errorValue instanceof Error) {\n /* $FlowFixMe[class-object-subtyping] added when improving typing for\n * this parameters */\n error = (errorValue: ExtendedError);\n } else if (typeof errorValue === 'string') {\n /* $FlowFixMe[class-object-subtyping] added when improving typing for\n * this parameters */\n error = (new SyntheticError(errorValue): ExtendedError);\n } else {\n /* $FlowFixMe[class-object-subtyping] added when improving typing for\n * this parameters */\n error = (new SyntheticError('Unspecified error'): ExtendedError);\n }\n try {\n error.componentStack = componentStack;\n error.isComponentError = true;\n } catch {\n // Ignored.\n }\n\n handleException(error, false);\n\n // Return false here to prevent ReactFiberErrorLogger default behavior of\n // logging error details to console.error. Calls to console.error are\n // automatically routed to the native redbox controller, which we've already\n // done above by calling ExceptionsManager.\n return false;\n },\n};\n\nexport default ReactFiberErrorDialog;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {IEventEmitter} from '../vendor/emitter/EventEmitter';\n\nimport EventEmitter from '../vendor/emitter/EventEmitter';\n\nexport type RawEventEmitterEvent = $ReadOnly<{|\n eventName: string,\n // We expect, but do not/cannot require, that nativeEvent is an object\n // with the properties: key, elementType (string), type (string), tag (numeric),\n // and a stateNode of the native element/Fiber the event was emitted to.\n nativeEvent: {[string]: mixed},\n|}>;\n\ntype RawEventDefinitions = {\n [eventChannel: string]: [RawEventEmitterEvent],\n};\n\nconst RawEventEmitter: IEventEmitter =\n new EventEmitter();\n\n// See the React renderer / react repo for how this is used.\n// Raw events are emitted here when they are received in JS\n// and before any event Plugins process them or before components\n// have a chance to respond to them. This allows you to implement\n// app-specific perf monitoring, which is unimplemented by default,\n// making this entire RawEventEmitter do nothing by default until\n// *you* add listeners for your own app.\n// Besides perf monitoring and maybe debugging, this RawEventEmitter\n// should not be used.\nexport default RawEventEmitter;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n// Make sure global Event is defined\nimport EventPolyfill from './EventPolyfill';\n\ntype CustomEvent$Options = $ReadOnly<{|\n bubbles?: boolean,\n cancelable?: boolean,\n composed?: boolean,\n detail?: {...},\n|}>;\n\nclass CustomEvent extends EventPolyfill {\n detail: ?{...};\n\n constructor(typeArg: string, options: CustomEvent$Options) {\n const {bubbles, cancelable, composed} = options;\n super(typeArg, {bubbles, cancelable, composed});\n\n this.detail = options.detail; // this would correspond to `NativeEvent` in SyntheticEvent\n }\n}\n\nexport default CustomEvent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n// https://dom.spec.whatwg.org/#dictdef-eventinit\ntype Event$Init = {\n bubbles?: boolean,\n cancelable?: boolean,\n composed?: boolean,\n /** Non-standard. See `composed` instead. */\n scoped?: boolean,\n ...\n};\n\n/**\n * This is a copy of the Event interface defined in Flow:\n * https://github.com/facebook/flow/blob/741104e69c43057ebd32804dd6bcc1b5e97548ea/lib/dom.js\n * which is itself a faithful interface of the W3 spec:\n * https://dom.spec.whatwg.org/#interface-event\n *\n * Since Flow assumes that Event is provided and is on the global object,\n * we must provide an implementation of Event for CustomEvent (and future\n * alignment of React Native's event system with the W3 spec).\n */\ninterface IEvent {\n constructor(type: string, eventInitDict?: Event$Init): void;\n /**\n * Returns the type of event, e.g. \"click\", \"hashchange\", or \"submit\".\n */\n +type: string;\n /**\n * Returns the object to which event is dispatched (its target).\n */\n +target: EventTarget; // TODO: nullable\n /** @deprecated */\n +srcElement: Element; // TODO: nullable\n /**\n * Returns the object whose event listener's callback is currently being invoked.\n */\n +currentTarget: EventTarget; // TODO: nullable\n /**\n * Returns the invocation target objects of event's path (objects on which\n * listeners will be invoked), except for any nodes in shadow trees of which\n * the shadow root's mode is \"closed\" that are not reachable from event's\n * currentTarget.\n */\n composedPath(): Array;\n\n +NONE: number;\n +AT_TARGET: number;\n +BUBBLING_PHASE: number;\n +CAPTURING_PHASE: number;\n /**\n * Returns the event's phase, which is one of NONE, CAPTURING_PHASE, AT_TARGET,\n * and BUBBLING_PHASE.\n */\n +eventPhase: number;\n\n /**\n * When dispatched in a tree, invoking this method prevents event from reaching\n * any objects other than the current object.\n */\n stopPropagation(): void;\n /**\n * Invoking this method prevents event from reaching any registered event\n * listeners after the current one finishes running and, when dispatched in a\n * tree, also prevents event from reaching any other objects.\n */\n stopImmediatePropagation(): void;\n\n /**\n * Returns true or false depending on how event was initialized. True if\n * event goes through its target's ancestors in reverse tree order, and\n * false otherwise.\n */\n +bubbles: boolean;\n /**\n * Returns true or false depending on how event was initialized. Its\n * return value does not always carry meaning, but true can indicate\n * that part of the operation during which event was dispatched, can\n * be canceled by invoking the preventDefault() method.\n */\n +cancelable: boolean;\n // returnValue: boolean; // legacy, and some subclasses still define it as a string!\n /**\n * If invoked when the cancelable attribute value is true, and while\n * executing a listener for the event with passive set to false, signals to\n * the operation that caused event to be dispatched that it needs to be\n * canceled.\n */\n preventDefault(): void;\n /**\n * Returns true if preventDefault() was invoked successfully to indicate\n * cancelation, and false otherwise.\n */\n +defaultPrevented: boolean;\n /**\n * Returns true or false depending on how event was initialized. True if\n * event invokes listeners past a ShadowRoot node that is the root of its\n * target, and false otherwise.\n */\n +composed: boolean;\n\n /**\n * Returns true if event was dispatched by the user agent, and false otherwise.\n */\n +isTrusted: boolean;\n /**\n * Returns the event's timestamp as the number of milliseconds measured relative\n * to the time origin.\n */\n +timeStamp: number;\n\n /** Non-standard. See Event.prototype.composedPath */\n +deepPath?: () => EventTarget[];\n /** Non-standard. See Event.prototype.composed */\n +scoped: boolean;\n\n /**\n * @deprecated\n */\n initEvent(type: string, bubbles: boolean, cancelable: boolean): void;\n}\n\nclass EventPolyfill implements IEvent {\n type: string;\n bubbles: boolean;\n cancelable: boolean;\n composed: boolean;\n // Non-standard. See `composed` instead.\n scoped: boolean;\n isTrusted: boolean;\n defaultPrevented: boolean;\n timeStamp: number;\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Event/eventPhase\n NONE: number;\n AT_TARGET: number;\n BUBBLING_PHASE: number;\n CAPTURING_PHASE: number;\n\n eventPhase: number;\n\n currentTarget: EventTarget; // TODO: nullable\n target: EventTarget; // TODO: nullable\n /** @deprecated */\n srcElement: Element; // TODO: nullable\n\n // React Native-specific: proxy data to a SyntheticEvent when\n // certain methods are called.\n // SyntheticEvent will also have a reference to this instance -\n // it is circular - and both classes use this reference to keep\n // data with the other in sync.\n _syntheticEvent: mixed;\n\n constructor(type: string, eventInitDict?: Event$Init) {\n this.type = type;\n this.bubbles = !!(eventInitDict?.bubbles || false);\n this.cancelable = !!(eventInitDict?.cancelable || false);\n this.composed = !!(eventInitDict?.composed || false);\n this.scoped = !!(eventInitDict?.scoped || false);\n\n // TODO: somehow guarantee that only \"private\" instantiations of Event\n // can set this to true\n this.isTrusted = false;\n\n // TODO: in the future we'll want to make sure this has the same\n // time-basis as events originating from native\n this.timeStamp = Date.now();\n\n this.defaultPrevented = false;\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Event/eventPhase\n this.NONE = 0;\n this.AT_TARGET = 1;\n this.BUBBLING_PHASE = 2;\n this.CAPTURING_PHASE = 3;\n this.eventPhase = this.NONE;\n\n // $FlowFixMe\n this.currentTarget = null;\n // $FlowFixMe\n this.target = null;\n // $FlowFixMe\n this.srcElement = null;\n }\n\n composedPath(): Array {\n throw new Error('TODO: not yet implemented');\n }\n\n preventDefault(): void {\n this.defaultPrevented = true;\n\n if (this._syntheticEvent != null) {\n // $FlowFixMe\n this._syntheticEvent.preventDefault();\n }\n }\n\n initEvent(type: string, bubbles: boolean, cancelable: boolean): void {\n throw new Error(\n 'TODO: not yet implemented. This method is also deprecated.',\n );\n }\n\n stopImmediatePropagation(): void {\n throw new Error('TODO: not yet implemented');\n }\n\n stopPropagation(): void {\n if (this._syntheticEvent != null) {\n // $FlowFixMe\n this._syntheticEvent.stopPropagation();\n }\n }\n\n setSyntheticEvent(value: mixed): void {\n this._syntheticEvent = value;\n }\n}\n\n// Assertion magic for polyfill follows.\ndeclare var checkEvent: Event; // eslint-disable-line no-unused-vars\n\n/*::\n// This can be a strict mode error at runtime so put it in a Flow comment.\n(checkEvent: IEvent);\n*/\n\nglobal.Event = EventPolyfill;\n\nexport default EventPolyfill;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.native.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.native.development.js');\n}\n","/**\n * @license React\n * scheduler.native.production.min.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(E,c))ng(A,E)?(a[d]=A,a[n]=c,d=n):(a[d]=E,a[m]=c,d=m);else if(ng(A,c))a[d]=A,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var l;if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var p=performance;l=function(){return p.now()}}else{var q=Date,r=q.now();l=function(){return q.now()-r}}var u=[],v=[],w=1,x=null,y=3,z=!1,B=!1,C=!1,D=\"function\"===typeof setTimeout?setTimeout:null,F=\"function\"===typeof clearTimeout?clearTimeout:null,G=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending?navigator.scheduling.isInputPending.bind(navigator.scheduling):null;function H(a){for(var b=h(v);null!==b;){if(null===b.callback)k(v);else if(b.startTime<=a)k(v),b.sortIndex=b.expirationTime,f(u,b);else break;b=h(v)}}function I(a){C=!1;H(a);if(!B)if(null!==h(u))B=!0,J=K,L||(L=!0,M());else{var b=h(v);null!==b&&N(I,b.startTime-a)}}\nfunction K(a,b){B=!1;C&&(C=!1,F(O),O=-1);z=!0;var c=y;try{a:{H(b);for(x=h(u);null!==x&&(!(x.expirationTime>b)||a&&!P());){var d=x.callback;if(\"function\"===typeof d){x.callback=null;y=x.priorityLevel;var e=d(x.expirationTime<=b);b=l();if(\"function\"===typeof e){x.callback=e;H(b);var t=!0;break a}else x===h(u)&&k(u),H(b)}else k(u);x=h(u)}if(null!==x)t=!0;else{var m=h(v);null!==m&&N(I,m.startTime-b);t=!1}}return t}finally{x=null,y=c,z=!1}}\nfunction Q(a,b,c){var d=l();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,f(v,a),null===h(u)&&a===h(v)&&(C?(F(O),O=-1):C=!0,N(I,c-d))):(a.sortIndex=e,f(u,a),B||z||(B=!0,J=K,L||(L=!0,M())));return a}function R(a){a.callback=null}function S(){return y}\nvar L=!1,J=null,O=-1,T=-1;function P(){return 5>l()-T?!1:!0}function U(){}function V(){if(null!==J){var a=l();T=a;var b=!0;try{b=J(!0,a)}finally{b?M():(L=!1,J=null)}}else L=!1}var M;if(\"function\"===typeof G)M=function(){G(V)};else if(\"undefined\"!==typeof MessageChannel){var W=new MessageChannel,X=W.port2;W.port1.onmessage=V;M=function(){X.postMessage(null)}}else M=function(){D(V,0)};function N(a,b){O=D(function(){a(l())},b)}\nvar Y=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_UserBlockingPriority:2,aa=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_NormalPriority:3,ba=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_LowPriority:4,ca=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_ImmediatePriority:1,da=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_scheduleCallback:Q,ea=\"undefined\"!==\ntypeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_cancelCallback:R,fa=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_getCurrentPriorityLevel:S,ha=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_shouldYield:P,ia=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_requestPaint:U,ja=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_now:l;\nfunction Z(){throw Error(\"Not implemented.\");}exports.unstable_IdlePriority=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_IdlePriority:5;exports.unstable_ImmediatePriority=ca;exports.unstable_LowPriority=ba;exports.unstable_NormalPriority=aa;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=Y;exports.unstable_cancelCallback=ea;exports.unstable_continueExecution=Z;exports.unstable_forceFrameRate=Z;exports.unstable_getCurrentPriorityLevel=fa;\nexports.unstable_getFirstCallbackNode=Z;exports.unstable_next=Z;exports.unstable_now=ja;exports.unstable_pauseExecution=Z;exports.unstable_requestPaint=ia;exports.unstable_runWithPriority=Z;exports.unstable_scheduleCallback=da;exports.unstable_shouldYield=ha;exports.unstable_wrapCallback=Z;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @noformat\n * @flow\n * @generated SignedSource<<744176db456e2656dac661d36e55f42a>>\n *\n * This file was sync'd from the facebook/react repository.\n */\n\n'use strict';\n\nimport type {ReactNativeType} from './ReactNativeTypes';\n\nlet ReactNative;\n\nif (__DEV__) {\n ReactNative = require('../implementations/ReactNativeRenderer-dev');\n} else {\n ReactNative = require('../implementations/ReactNativeRenderer-prod');\n}\n\nmodule.exports = (ReactNative: ReactNativeType);\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @noflow\n * @nolint\n * @providesModule ReactNativeRenderer-prod\n * @preventMunge\n * @generated SignedSource<<07cf699c0d1c149943b7a02432aa1550>>\n */\n\n\"use strict\";\nrequire(\"react-native/Libraries/ReactPrivate/ReactNativePrivateInitializeCore\");\nvar ReactNativePrivateInterface = require(\"react-native/Libraries/ReactPrivate/ReactNativePrivateInterface\"),\n React = require(\"react\"),\n Scheduler = require(\"scheduler\");\nfunction invokeGuardedCallbackImpl(name, func, context, a, b, c, d, e, f) {\n var funcArgs = Array.prototype.slice.call(arguments, 3);\n try {\n func.apply(context, funcArgs);\n } catch (error) {\n this.onError(error);\n }\n}\nvar hasError = !1,\n caughtError = null,\n hasRethrowError = !1,\n rethrowError = null,\n reporter = {\n onError: function(error) {\n hasError = !0;\n caughtError = error;\n }\n };\nfunction invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {\n hasError = !1;\n caughtError = null;\n invokeGuardedCallbackImpl.apply(reporter, arguments);\n}\nfunction invokeGuardedCallbackAndCatchFirstError(\n name,\n func,\n context,\n a,\n b,\n c,\n d,\n e,\n f\n) {\n invokeGuardedCallback.apply(this, arguments);\n if (hasError) {\n if (hasError) {\n var error = caughtError;\n hasError = !1;\n caughtError = null;\n } else\n throw Error(\n \"clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.\"\n );\n hasRethrowError || ((hasRethrowError = !0), (rethrowError = error));\n }\n}\nvar isArrayImpl = Array.isArray,\n getFiberCurrentPropsFromNode = null,\n getInstanceFromNode = null,\n getNodeFromInstance = null;\nfunction executeDispatch(event, listener, inst) {\n var type = event.type || \"unknown-event\";\n event.currentTarget = getNodeFromInstance(inst);\n invokeGuardedCallbackAndCatchFirstError(type, listener, void 0, event);\n event.currentTarget = null;\n}\nfunction executeDirectDispatch(event) {\n var dispatchListener = event._dispatchListeners,\n dispatchInstance = event._dispatchInstances;\n if (isArrayImpl(dispatchListener))\n throw Error(\"executeDirectDispatch(...): Invalid `event`.\");\n event.currentTarget = dispatchListener\n ? getNodeFromInstance(dispatchInstance)\n : null;\n dispatchListener = dispatchListener ? dispatchListener(event) : null;\n event.currentTarget = null;\n event._dispatchListeners = null;\n event._dispatchInstances = null;\n return dispatchListener;\n}\nvar assign = Object.assign;\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction SyntheticEvent(\n dispatchConfig,\n targetInst,\n nativeEvent,\n nativeEventTarget\n) {\n this.dispatchConfig = dispatchConfig;\n this._targetInst = targetInst;\n this.nativeEvent = nativeEvent;\n this._dispatchInstances = this._dispatchListeners = null;\n dispatchConfig = this.constructor.Interface;\n for (var propName in dispatchConfig)\n dispatchConfig.hasOwnProperty(propName) &&\n ((targetInst = dispatchConfig[propName])\n ? (this[propName] = targetInst(nativeEvent))\n : \"target\" === propName\n ? (this.target = nativeEventTarget)\n : (this[propName] = nativeEvent[propName]));\n this.isDefaultPrevented = (null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue)\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n}\nassign(SyntheticEvent.prototype, {\n preventDefault: function() {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function() {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble && (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function() {\n this.isPersistent = functionThatReturnsTrue;\n },\n isPersistent: functionThatReturnsFalse,\n destructor: function() {\n var Interface = this.constructor.Interface,\n propName;\n for (propName in Interface) this[propName] = null;\n this.nativeEvent = this._targetInst = this.dispatchConfig = null;\n this.isPropagationStopped = this.isDefaultPrevented = functionThatReturnsFalse;\n this._dispatchInstances = this._dispatchListeners = null;\n }\n});\nSyntheticEvent.Interface = {\n type: null,\n target: null,\n currentTarget: function() {\n return null;\n },\n eventPhase: null,\n bubbles: null,\n cancelable: null,\n timeStamp: function(event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: null,\n isTrusted: null\n};\nSyntheticEvent.extend = function(Interface) {\n function E() {}\n function Class() {\n return Super.apply(this, arguments);\n }\n var Super = this;\n E.prototype = Super.prototype;\n var prototype = new E();\n assign(prototype, Class.prototype);\n Class.prototype = prototype;\n Class.prototype.constructor = Class;\n Class.Interface = assign({}, Super.Interface, Interface);\n Class.extend = Super.extend;\n addEventPoolingTo(Class);\n return Class;\n};\naddEventPoolingTo(SyntheticEvent);\nfunction createOrGetPooledEvent(\n dispatchConfig,\n targetInst,\n nativeEvent,\n nativeInst\n) {\n if (this.eventPool.length) {\n var instance = this.eventPool.pop();\n this.call(instance, dispatchConfig, targetInst, nativeEvent, nativeInst);\n return instance;\n }\n return new this(dispatchConfig, targetInst, nativeEvent, nativeInst);\n}\nfunction releasePooledEvent(event) {\n if (!(event instanceof this))\n throw Error(\n \"Trying to release an event instance into a pool of a different type.\"\n );\n event.destructor();\n 10 > this.eventPool.length && this.eventPool.push(event);\n}\nfunction addEventPoolingTo(EventConstructor) {\n EventConstructor.getPooled = createOrGetPooledEvent;\n EventConstructor.eventPool = [];\n EventConstructor.release = releasePooledEvent;\n}\nvar ResponderSyntheticEvent = SyntheticEvent.extend({\n touchHistory: function() {\n return null;\n }\n});\nfunction isStartish(topLevelType) {\n return \"topTouchStart\" === topLevelType;\n}\nfunction isMoveish(topLevelType) {\n return \"topTouchMove\" === topLevelType;\n}\nvar startDependencies = [\"topTouchStart\"],\n moveDependencies = [\"topTouchMove\"],\n endDependencies = [\"topTouchCancel\", \"topTouchEnd\"],\n touchBank = [],\n touchHistory = {\n touchBank: touchBank,\n numberActiveTouches: 0,\n indexOfSingleActiveTouch: -1,\n mostRecentTimeStamp: 0\n };\nfunction timestampForTouch(touch) {\n return touch.timeStamp || touch.timestamp;\n}\nfunction getTouchIdentifier(_ref) {\n _ref = _ref.identifier;\n if (null == _ref) throw Error(\"Touch object is missing identifier.\");\n return _ref;\n}\nfunction recordTouchStart(touch) {\n var identifier = getTouchIdentifier(touch),\n touchRecord = touchBank[identifier];\n touchRecord\n ? ((touchRecord.touchActive = !0),\n (touchRecord.startPageX = touch.pageX),\n (touchRecord.startPageY = touch.pageY),\n (touchRecord.startTimeStamp = timestampForTouch(touch)),\n (touchRecord.currentPageX = touch.pageX),\n (touchRecord.currentPageY = touch.pageY),\n (touchRecord.currentTimeStamp = timestampForTouch(touch)),\n (touchRecord.previousPageX = touch.pageX),\n (touchRecord.previousPageY = touch.pageY),\n (touchRecord.previousTimeStamp = timestampForTouch(touch)))\n : ((touchRecord = {\n touchActive: !0,\n startPageX: touch.pageX,\n startPageY: touch.pageY,\n startTimeStamp: timestampForTouch(touch),\n currentPageX: touch.pageX,\n currentPageY: touch.pageY,\n currentTimeStamp: timestampForTouch(touch),\n previousPageX: touch.pageX,\n previousPageY: touch.pageY,\n previousTimeStamp: timestampForTouch(touch)\n }),\n (touchBank[identifier] = touchRecord));\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n}\nfunction recordTouchMove(touch) {\n var touchRecord = touchBank[getTouchIdentifier(touch)];\n touchRecord &&\n ((touchRecord.touchActive = !0),\n (touchRecord.previousPageX = touchRecord.currentPageX),\n (touchRecord.previousPageY = touchRecord.currentPageY),\n (touchRecord.previousTimeStamp = touchRecord.currentTimeStamp),\n (touchRecord.currentPageX = touch.pageX),\n (touchRecord.currentPageY = touch.pageY),\n (touchRecord.currentTimeStamp = timestampForTouch(touch)),\n (touchHistory.mostRecentTimeStamp = timestampForTouch(touch)));\n}\nfunction recordTouchEnd(touch) {\n var touchRecord = touchBank[getTouchIdentifier(touch)];\n touchRecord &&\n ((touchRecord.touchActive = !1),\n (touchRecord.previousPageX = touchRecord.currentPageX),\n (touchRecord.previousPageY = touchRecord.currentPageY),\n (touchRecord.previousTimeStamp = touchRecord.currentTimeStamp),\n (touchRecord.currentPageX = touch.pageX),\n (touchRecord.currentPageY = touch.pageY),\n (touchRecord.currentTimeStamp = timestampForTouch(touch)),\n (touchHistory.mostRecentTimeStamp = timestampForTouch(touch)));\n}\nvar instrumentationCallback,\n ResponderTouchHistoryStore = {\n instrument: function(callback) {\n instrumentationCallback = callback;\n },\n recordTouchTrack: function(topLevelType, nativeEvent) {\n null != instrumentationCallback &&\n instrumentationCallback(topLevelType, nativeEvent);\n if (isMoveish(topLevelType))\n nativeEvent.changedTouches.forEach(recordTouchMove);\n else if (isStartish(topLevelType))\n nativeEvent.changedTouches.forEach(recordTouchStart),\n (touchHistory.numberActiveTouches = nativeEvent.touches.length),\n 1 === touchHistory.numberActiveTouches &&\n (touchHistory.indexOfSingleActiveTouch =\n nativeEvent.touches[0].identifier);\n else if (\n \"topTouchEnd\" === topLevelType ||\n \"topTouchCancel\" === topLevelType\n )\n if (\n (nativeEvent.changedTouches.forEach(recordTouchEnd),\n (touchHistory.numberActiveTouches = nativeEvent.touches.length),\n 1 === touchHistory.numberActiveTouches)\n )\n for (\n topLevelType = 0;\n topLevelType < touchBank.length;\n topLevelType++\n )\n if (\n ((nativeEvent = touchBank[topLevelType]),\n null != nativeEvent && nativeEvent.touchActive)\n ) {\n touchHistory.indexOfSingleActiveTouch = topLevelType;\n break;\n }\n },\n touchHistory: touchHistory\n };\nfunction accumulate(current, next) {\n if (null == next)\n throw Error(\n \"accumulate(...): Accumulated items must not be null or undefined.\"\n );\n return null == current\n ? next\n : isArrayImpl(current)\n ? current.concat(next)\n : isArrayImpl(next)\n ? [current].concat(next)\n : [current, next];\n}\nfunction accumulateInto(current, next) {\n if (null == next)\n throw Error(\n \"accumulateInto(...): Accumulated items must not be null or undefined.\"\n );\n if (null == current) return next;\n if (isArrayImpl(current)) {\n if (isArrayImpl(next)) return current.push.apply(current, next), current;\n current.push(next);\n return current;\n }\n return isArrayImpl(next) ? [current].concat(next) : [current, next];\n}\nfunction forEachAccumulated(arr, cb, scope) {\n Array.isArray(arr) ? arr.forEach(cb, scope) : arr && cb.call(scope, arr);\n}\nvar responderInst = null,\n trackedTouchCount = 0;\nfunction changeResponder(nextResponderInst, blockHostResponder) {\n var oldResponderInst = responderInst;\n responderInst = nextResponderInst;\n if (null !== ResponderEventPlugin.GlobalResponderHandler)\n ResponderEventPlugin.GlobalResponderHandler.onChange(\n oldResponderInst,\n nextResponderInst,\n blockHostResponder\n );\n}\nvar eventTypes = {\n startShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onStartShouldSetResponder\",\n captured: \"onStartShouldSetResponderCapture\"\n },\n dependencies: startDependencies\n },\n scrollShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onScrollShouldSetResponder\",\n captured: \"onScrollShouldSetResponderCapture\"\n },\n dependencies: [\"topScroll\"]\n },\n selectionChangeShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onSelectionChangeShouldSetResponder\",\n captured: \"onSelectionChangeShouldSetResponderCapture\"\n },\n dependencies: [\"topSelectionChange\"]\n },\n moveShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onMoveShouldSetResponder\",\n captured: \"onMoveShouldSetResponderCapture\"\n },\n dependencies: moveDependencies\n },\n responderStart: {\n registrationName: \"onResponderStart\",\n dependencies: startDependencies\n },\n responderMove: {\n registrationName: \"onResponderMove\",\n dependencies: moveDependencies\n },\n responderEnd: {\n registrationName: \"onResponderEnd\",\n dependencies: endDependencies\n },\n responderRelease: {\n registrationName: \"onResponderRelease\",\n dependencies: endDependencies\n },\n responderTerminationRequest: {\n registrationName: \"onResponderTerminationRequest\",\n dependencies: []\n },\n responderGrant: { registrationName: \"onResponderGrant\", dependencies: [] },\n responderReject: { registrationName: \"onResponderReject\", dependencies: [] },\n responderTerminate: {\n registrationName: \"onResponderTerminate\",\n dependencies: []\n }\n};\nfunction getParent(inst) {\n do inst = inst.return;\n while (inst && 5 !== inst.tag);\n return inst ? inst : null;\n}\nfunction traverseTwoPhase(inst, fn, arg) {\n for (var path = []; inst; ) path.push(inst), (inst = getParent(inst));\n for (inst = path.length; 0 < inst--; ) fn(path[inst], \"captured\", arg);\n for (inst = 0; inst < path.length; inst++) fn(path[inst], \"bubbled\", arg);\n}\nfunction getListener(inst, registrationName) {\n inst = inst.stateNode;\n if (null === inst) return null;\n inst = getFiberCurrentPropsFromNode(inst);\n if (null === inst) return null;\n if ((inst = inst[registrationName]) && \"function\" !== typeof inst)\n throw Error(\n \"Expected `\" +\n registrationName +\n \"` listener to be a function, instead got a value of `\" +\n typeof inst +\n \"` type.\"\n );\n return inst;\n}\nfunction accumulateDirectionalDispatches(inst, phase, event) {\n if (\n (phase = getListener(\n inst,\n event.dispatchConfig.phasedRegistrationNames[phase]\n ))\n )\n (event._dispatchListeners = accumulateInto(\n event._dispatchListeners,\n phase\n )),\n (event._dispatchInstances = accumulateInto(\n event._dispatchInstances,\n inst\n ));\n}\nfunction accumulateDirectDispatchesSingle(event) {\n if (event && event.dispatchConfig.registrationName) {\n var inst = event._targetInst;\n if (inst && event && event.dispatchConfig.registrationName) {\n var listener = getListener(inst, event.dispatchConfig.registrationName);\n listener &&\n ((event._dispatchListeners = accumulateInto(\n event._dispatchListeners,\n listener\n )),\n (event._dispatchInstances = accumulateInto(\n event._dispatchInstances,\n inst\n )));\n }\n }\n}\nfunction accumulateTwoPhaseDispatchesSingleSkipTarget(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n var targetInst = event._targetInst;\n targetInst = targetInst ? getParent(targetInst) : null;\n traverseTwoPhase(targetInst, accumulateDirectionalDispatches, event);\n }\n}\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n event &&\n event.dispatchConfig.phasedRegistrationNames &&\n traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);\n}\nvar ResponderEventPlugin = {\n _getResponder: function() {\n return responderInst;\n },\n eventTypes: eventTypes,\n extractEvents: function(\n topLevelType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n if (isStartish(topLevelType)) trackedTouchCount += 1;\n else if (\n \"topTouchEnd\" === topLevelType ||\n \"topTouchCancel\" === topLevelType\n )\n if (0 <= trackedTouchCount) --trackedTouchCount;\n else return null;\n ResponderTouchHistoryStore.recordTouchTrack(topLevelType, nativeEvent);\n if (\n targetInst &&\n ((\"topScroll\" === topLevelType && !nativeEvent.responderIgnoreScroll) ||\n (0 < trackedTouchCount && \"topSelectionChange\" === topLevelType) ||\n isStartish(topLevelType) ||\n isMoveish(topLevelType))\n ) {\n var shouldSetEventType = isStartish(topLevelType)\n ? eventTypes.startShouldSetResponder\n : isMoveish(topLevelType)\n ? eventTypes.moveShouldSetResponder\n : \"topSelectionChange\" === topLevelType\n ? eventTypes.selectionChangeShouldSetResponder\n : eventTypes.scrollShouldSetResponder;\n if (responderInst)\n b: {\n var JSCompiler_temp = responderInst;\n for (\n var depthA = 0, tempA = JSCompiler_temp;\n tempA;\n tempA = getParent(tempA)\n )\n depthA++;\n tempA = 0;\n for (var tempB = targetInst; tempB; tempB = getParent(tempB))\n tempA++;\n for (; 0 < depthA - tempA; )\n (JSCompiler_temp = getParent(JSCompiler_temp)), depthA--;\n for (; 0 < tempA - depthA; )\n (targetInst = getParent(targetInst)), tempA--;\n for (; depthA--; ) {\n if (\n JSCompiler_temp === targetInst ||\n JSCompiler_temp === targetInst.alternate\n )\n break b;\n JSCompiler_temp = getParent(JSCompiler_temp);\n targetInst = getParent(targetInst);\n }\n JSCompiler_temp = null;\n }\n else JSCompiler_temp = targetInst;\n targetInst = JSCompiler_temp;\n JSCompiler_temp = targetInst === responderInst;\n shouldSetEventType = ResponderSyntheticEvent.getPooled(\n shouldSetEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory;\n JSCompiler_temp\n ? forEachAccumulated(\n shouldSetEventType,\n accumulateTwoPhaseDispatchesSingleSkipTarget\n )\n : forEachAccumulated(\n shouldSetEventType,\n accumulateTwoPhaseDispatchesSingle\n );\n b: {\n JSCompiler_temp = shouldSetEventType._dispatchListeners;\n targetInst = shouldSetEventType._dispatchInstances;\n if (isArrayImpl(JSCompiler_temp))\n for (\n depthA = 0;\n depthA < JSCompiler_temp.length &&\n !shouldSetEventType.isPropagationStopped();\n depthA++\n ) {\n if (\n JSCompiler_temp[depthA](shouldSetEventType, targetInst[depthA])\n ) {\n JSCompiler_temp = targetInst[depthA];\n break b;\n }\n }\n else if (\n JSCompiler_temp &&\n JSCompiler_temp(shouldSetEventType, targetInst)\n ) {\n JSCompiler_temp = targetInst;\n break b;\n }\n JSCompiler_temp = null;\n }\n shouldSetEventType._dispatchInstances = null;\n shouldSetEventType._dispatchListeners = null;\n shouldSetEventType.isPersistent() ||\n shouldSetEventType.constructor.release(shouldSetEventType);\n if (JSCompiler_temp && JSCompiler_temp !== responderInst)\n if (\n ((shouldSetEventType = ResponderSyntheticEvent.getPooled(\n eventTypes.responderGrant,\n JSCompiler_temp,\n nativeEvent,\n nativeEventTarget\n )),\n (shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(\n shouldSetEventType,\n accumulateDirectDispatchesSingle\n ),\n (targetInst = !0 === executeDirectDispatch(shouldSetEventType)),\n responderInst)\n )\n if (\n ((depthA = ResponderSyntheticEvent.getPooled(\n eventTypes.responderTerminationRequest,\n responderInst,\n nativeEvent,\n nativeEventTarget\n )),\n (depthA.touchHistory = ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(depthA, accumulateDirectDispatchesSingle),\n (tempA =\n !depthA._dispatchListeners || executeDirectDispatch(depthA)),\n depthA.isPersistent() || depthA.constructor.release(depthA),\n tempA)\n ) {\n depthA = ResponderSyntheticEvent.getPooled(\n eventTypes.responderTerminate,\n responderInst,\n nativeEvent,\n nativeEventTarget\n );\n depthA.touchHistory = ResponderTouchHistoryStore.touchHistory;\n forEachAccumulated(depthA, accumulateDirectDispatchesSingle);\n var JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n [shouldSetEventType, depthA]\n );\n changeResponder(JSCompiler_temp, targetInst);\n } else\n (shouldSetEventType = ResponderSyntheticEvent.getPooled(\n eventTypes.responderReject,\n JSCompiler_temp,\n nativeEvent,\n nativeEventTarget\n )),\n (shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(\n shouldSetEventType,\n accumulateDirectDispatchesSingle\n ),\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n shouldSetEventType\n ));\n else\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n shouldSetEventType\n )),\n changeResponder(JSCompiler_temp, targetInst);\n else JSCompiler_temp$jscomp$0 = null;\n } else JSCompiler_temp$jscomp$0 = null;\n shouldSetEventType = responderInst && isStartish(topLevelType);\n JSCompiler_temp = responderInst && isMoveish(topLevelType);\n targetInst =\n responderInst &&\n (\"topTouchEnd\" === topLevelType || \"topTouchCancel\" === topLevelType);\n if (\n (shouldSetEventType = shouldSetEventType\n ? eventTypes.responderStart\n : JSCompiler_temp\n ? eventTypes.responderMove\n : targetInst\n ? eventTypes.responderEnd\n : null)\n )\n (shouldSetEventType = ResponderSyntheticEvent.getPooled(\n shouldSetEventType,\n responderInst,\n nativeEvent,\n nativeEventTarget\n )),\n (shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(\n shouldSetEventType,\n accumulateDirectDispatchesSingle\n ),\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n shouldSetEventType\n ));\n shouldSetEventType = responderInst && \"topTouchCancel\" === topLevelType;\n if (\n (topLevelType =\n responderInst &&\n !shouldSetEventType &&\n (\"topTouchEnd\" === topLevelType || \"topTouchCancel\" === topLevelType))\n )\n a: {\n if ((topLevelType = nativeEvent.touches) && 0 !== topLevelType.length)\n for (\n JSCompiler_temp = 0;\n JSCompiler_temp < topLevelType.length;\n JSCompiler_temp++\n )\n if (\n ((targetInst = topLevelType[JSCompiler_temp].target),\n null !== targetInst &&\n void 0 !== targetInst &&\n 0 !== targetInst)\n ) {\n depthA = getInstanceFromNode(targetInst);\n b: {\n for (targetInst = responderInst; depthA; ) {\n if (\n targetInst === depthA ||\n targetInst === depthA.alternate\n ) {\n targetInst = !0;\n break b;\n }\n depthA = getParent(depthA);\n }\n targetInst = !1;\n }\n if (targetInst) {\n topLevelType = !1;\n break a;\n }\n }\n topLevelType = !0;\n }\n if (\n (topLevelType = shouldSetEventType\n ? eventTypes.responderTerminate\n : topLevelType\n ? eventTypes.responderRelease\n : null)\n )\n (nativeEvent = ResponderSyntheticEvent.getPooled(\n topLevelType,\n responderInst,\n nativeEvent,\n nativeEventTarget\n )),\n (nativeEvent.touchHistory = ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(nativeEvent, accumulateDirectDispatchesSingle),\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n nativeEvent\n )),\n changeResponder(null);\n return JSCompiler_temp$jscomp$0;\n },\n GlobalResponderHandler: null,\n injection: {\n injectGlobalResponderHandler: function(GlobalResponderHandler) {\n ResponderEventPlugin.GlobalResponderHandler = GlobalResponderHandler;\n }\n }\n },\n eventPluginOrder = null,\n namesToPlugins = {};\nfunction recomputePluginOrdering() {\n if (eventPluginOrder)\n for (var pluginName in namesToPlugins) {\n var pluginModule = namesToPlugins[pluginName],\n pluginIndex = eventPluginOrder.indexOf(pluginName);\n if (-1 >= pluginIndex)\n throw Error(\n \"EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `\" +\n (pluginName + \"`.\")\n );\n if (!plugins[pluginIndex]) {\n if (!pluginModule.extractEvents)\n throw Error(\n \"EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `\" +\n (pluginName + \"` does not.\")\n );\n plugins[pluginIndex] = pluginModule;\n pluginIndex = pluginModule.eventTypes;\n for (var eventName in pluginIndex) {\n var JSCompiler_inline_result = void 0;\n var dispatchConfig = pluginIndex[eventName],\n eventName$jscomp$0 = eventName;\n if (eventNameDispatchConfigs.hasOwnProperty(eventName$jscomp$0))\n throw Error(\n \"EventPluginRegistry: More than one plugin attempted to publish the same event name, `\" +\n (eventName$jscomp$0 + \"`.\")\n );\n eventNameDispatchConfigs[eventName$jscomp$0] = dispatchConfig;\n var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n if (phasedRegistrationNames) {\n for (JSCompiler_inline_result in phasedRegistrationNames)\n phasedRegistrationNames.hasOwnProperty(\n JSCompiler_inline_result\n ) &&\n publishRegistrationName(\n phasedRegistrationNames[JSCompiler_inline_result],\n pluginModule,\n eventName$jscomp$0\n );\n JSCompiler_inline_result = !0;\n } else\n dispatchConfig.registrationName\n ? (publishRegistrationName(\n dispatchConfig.registrationName,\n pluginModule,\n eventName$jscomp$0\n ),\n (JSCompiler_inline_result = !0))\n : (JSCompiler_inline_result = !1);\n if (!JSCompiler_inline_result)\n throw Error(\n \"EventPluginRegistry: Failed to publish event `\" +\n eventName +\n \"` for plugin `\" +\n pluginName +\n \"`.\"\n );\n }\n }\n }\n}\nfunction publishRegistrationName(registrationName, pluginModule) {\n if (registrationNameModules[registrationName])\n throw Error(\n \"EventPluginRegistry: More than one plugin attempted to publish the same registration name, `\" +\n (registrationName + \"`.\")\n );\n registrationNameModules[registrationName] = pluginModule;\n}\nvar plugins = [],\n eventNameDispatchConfigs = {},\n registrationNameModules = {};\nfunction getListeners(\n inst,\n registrationName,\n phase,\n dispatchToImperativeListeners\n) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n inst = getFiberCurrentPropsFromNode(stateNode);\n if (null === inst) return null;\n if ((inst = inst[registrationName]) && \"function\" !== typeof inst)\n throw Error(\n \"Expected `\" +\n registrationName +\n \"` listener to be a function, instead got a value of `\" +\n typeof inst +\n \"` type.\"\n );\n if (\n !(\n dispatchToImperativeListeners &&\n stateNode.canonical &&\n stateNode.canonical._eventListeners\n )\n )\n return inst;\n var listeners = [];\n inst && listeners.push(inst);\n var requestedPhaseIsCapture = \"captured\" === phase,\n mangledImperativeRegistrationName = requestedPhaseIsCapture\n ? \"rn:\" + registrationName.replace(/Capture$/, \"\")\n : \"rn:\" + registrationName;\n stateNode.canonical._eventListeners[mangledImperativeRegistrationName] &&\n 0 <\n stateNode.canonical._eventListeners[mangledImperativeRegistrationName]\n .length &&\n stateNode.canonical._eventListeners[\n mangledImperativeRegistrationName\n ].forEach(function(listenerObj) {\n if (\n (null != listenerObj.options.capture && listenerObj.options.capture) ===\n requestedPhaseIsCapture\n ) {\n var listenerFnWrapper = function(syntheticEvent) {\n var eventInst = new ReactNativePrivateInterface.CustomEvent(\n mangledImperativeRegistrationName,\n { detail: syntheticEvent.nativeEvent }\n );\n eventInst.isTrusted = !0;\n eventInst.setSyntheticEvent(syntheticEvent);\n for (\n var _len = arguments.length,\n args = Array(1 < _len ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n )\n args[_key - 1] = arguments[_key];\n listenerObj.listener.apply(listenerObj, [eventInst].concat(args));\n };\n listenerObj.options.once\n ? listeners.push(function() {\n stateNode.canonical.removeEventListener_unstable(\n mangledImperativeRegistrationName,\n listenerObj.listener,\n listenerObj.capture\n );\n listenerObj.invalidated ||\n ((listenerObj.invalidated = !0),\n listenerObj.listener.apply(listenerObj, arguments));\n })\n : listeners.push(listenerFnWrapper);\n }\n });\n return 0 === listeners.length\n ? null\n : 1 === listeners.length\n ? listeners[0]\n : listeners;\n}\nvar customBubblingEventTypes =\n ReactNativePrivateInterface.ReactNativeViewConfigRegistry\n .customBubblingEventTypes,\n customDirectEventTypes =\n ReactNativePrivateInterface.ReactNativeViewConfigRegistry\n .customDirectEventTypes;\nfunction accumulateListenersAndInstances(inst, event, listeners) {\n var listenersLength = listeners\n ? isArrayImpl(listeners)\n ? listeners.length\n : 1\n : 0;\n if (0 < listenersLength)\n if (\n ((event._dispatchListeners = accumulateInto(\n event._dispatchListeners,\n listeners\n )),\n null == event._dispatchInstances && 1 === listenersLength)\n )\n event._dispatchInstances = inst;\n else\n for (\n event._dispatchInstances = event._dispatchInstances || [],\n isArrayImpl(event._dispatchInstances) ||\n (event._dispatchInstances = [event._dispatchInstances]),\n listeners = 0;\n listeners < listenersLength;\n listeners++\n )\n event._dispatchInstances.push(inst);\n}\nfunction accumulateDirectionalDispatches$1(inst, phase, event) {\n phase = getListeners(\n inst,\n event.dispatchConfig.phasedRegistrationNames[phase],\n phase,\n !0\n );\n accumulateListenersAndInstances(inst, event, phase);\n}\nfunction traverseTwoPhase$1(inst, fn, arg, skipBubbling) {\n for (var path = []; inst; ) {\n path.push(inst);\n do inst = inst.return;\n while (inst && 5 !== inst.tag);\n inst = inst ? inst : null;\n }\n for (inst = path.length; 0 < inst--; ) fn(path[inst], \"captured\", arg);\n if (skipBubbling) fn(path[0], \"bubbled\", arg);\n else\n for (inst = 0; inst < path.length; inst++) fn(path[inst], \"bubbled\", arg);\n}\nfunction accumulateTwoPhaseDispatchesSingle$1(event) {\n event &&\n event.dispatchConfig.phasedRegistrationNames &&\n traverseTwoPhase$1(\n event._targetInst,\n accumulateDirectionalDispatches$1,\n event,\n !1\n );\n}\nfunction accumulateDirectDispatchesSingle$1(event) {\n if (event && event.dispatchConfig.registrationName) {\n var inst = event._targetInst;\n if (inst && event && event.dispatchConfig.registrationName) {\n var listeners = getListeners(\n inst,\n event.dispatchConfig.registrationName,\n \"bubbled\",\n !1\n );\n accumulateListenersAndInstances(inst, event, listeners);\n }\n }\n}\nif (eventPluginOrder)\n throw Error(\n \"EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.\"\n );\neventPluginOrder = Array.prototype.slice.call([\n \"ResponderEventPlugin\",\n \"ReactNativeBridgeEventPlugin\"\n]);\nrecomputePluginOrdering();\nvar injectedNamesToPlugins$jscomp$inline_229 = {\n ResponderEventPlugin: ResponderEventPlugin,\n ReactNativeBridgeEventPlugin: {\n eventTypes: {},\n extractEvents: function(\n topLevelType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n if (null == targetInst) return null;\n var bubbleDispatchConfig = customBubblingEventTypes[topLevelType],\n directDispatchConfig = customDirectEventTypes[topLevelType];\n if (!bubbleDispatchConfig && !directDispatchConfig)\n throw Error(\n 'Unsupported top level event type \"' + topLevelType + '\" dispatched'\n );\n topLevelType = SyntheticEvent.getPooled(\n bubbleDispatchConfig || directDispatchConfig,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n if (bubbleDispatchConfig)\n null != topLevelType &&\n null != topLevelType.dispatchConfig.phasedRegistrationNames &&\n topLevelType.dispatchConfig.phasedRegistrationNames.skipBubbling\n ? topLevelType &&\n topLevelType.dispatchConfig.phasedRegistrationNames &&\n traverseTwoPhase$1(\n topLevelType._targetInst,\n accumulateDirectionalDispatches$1,\n topLevelType,\n !0\n )\n : forEachAccumulated(\n topLevelType,\n accumulateTwoPhaseDispatchesSingle$1\n );\n else if (directDispatchConfig)\n forEachAccumulated(topLevelType, accumulateDirectDispatchesSingle$1);\n else return null;\n return topLevelType;\n }\n }\n },\n isOrderingDirty$jscomp$inline_230 = !1,\n pluginName$jscomp$inline_231;\nfor (pluginName$jscomp$inline_231 in injectedNamesToPlugins$jscomp$inline_229)\n if (\n injectedNamesToPlugins$jscomp$inline_229.hasOwnProperty(\n pluginName$jscomp$inline_231\n )\n ) {\n var pluginModule$jscomp$inline_232 =\n injectedNamesToPlugins$jscomp$inline_229[pluginName$jscomp$inline_231];\n if (\n !namesToPlugins.hasOwnProperty(pluginName$jscomp$inline_231) ||\n namesToPlugins[pluginName$jscomp$inline_231] !==\n pluginModule$jscomp$inline_232\n ) {\n if (namesToPlugins[pluginName$jscomp$inline_231])\n throw Error(\n \"EventPluginRegistry: Cannot inject two different event plugins using the same name, `\" +\n (pluginName$jscomp$inline_231 + \"`.\")\n );\n namesToPlugins[\n pluginName$jscomp$inline_231\n ] = pluginModule$jscomp$inline_232;\n isOrderingDirty$jscomp$inline_230 = !0;\n }\n }\nisOrderingDirty$jscomp$inline_230 && recomputePluginOrdering();\nvar instanceCache = new Map(),\n instanceProps = new Map();\nfunction getInstanceFromTag(tag) {\n return instanceCache.get(tag) || null;\n}\nfunction batchedUpdatesImpl(fn, bookkeeping) {\n return fn(bookkeeping);\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates(fn, bookkeeping) {\n if (isInsideEventHandler) return fn(bookkeeping);\n isInsideEventHandler = !0;\n try {\n return batchedUpdatesImpl(fn, bookkeeping);\n } finally {\n isInsideEventHandler = !1;\n }\n}\nvar eventQueue = null;\nfunction executeDispatchesAndReleaseTopLevel(e) {\n if (e) {\n var dispatchListeners = e._dispatchListeners,\n dispatchInstances = e._dispatchInstances;\n if (isArrayImpl(dispatchListeners))\n for (\n var i = 0;\n i < dispatchListeners.length && !e.isPropagationStopped();\n i++\n )\n executeDispatch(e, dispatchListeners[i], dispatchInstances[i]);\n else\n dispatchListeners &&\n executeDispatch(e, dispatchListeners, dispatchInstances);\n e._dispatchListeners = null;\n e._dispatchInstances = null;\n e.isPersistent() || e.constructor.release(e);\n }\n}\nvar EMPTY_NATIVE_EVENT = {};\nfunction _receiveRootNodeIDEvent(rootNodeID, topLevelType, nativeEventParam) {\n var nativeEvent = nativeEventParam || EMPTY_NATIVE_EVENT,\n inst = getInstanceFromTag(rootNodeID),\n target = null;\n null != inst && (target = inst.stateNode);\n batchedUpdates(function() {\n var JSCompiler_inline_result = target;\n for (\n var events = null, legacyPlugins = plugins, i = 0;\n i < legacyPlugins.length;\n i++\n ) {\n var possiblePlugin = legacyPlugins[i];\n possiblePlugin &&\n (possiblePlugin = possiblePlugin.extractEvents(\n topLevelType,\n inst,\n nativeEvent,\n JSCompiler_inline_result\n )) &&\n (events = accumulateInto(events, possiblePlugin));\n }\n JSCompiler_inline_result = events;\n null !== JSCompiler_inline_result &&\n (eventQueue = accumulateInto(eventQueue, JSCompiler_inline_result));\n JSCompiler_inline_result = eventQueue;\n eventQueue = null;\n if (JSCompiler_inline_result) {\n forEachAccumulated(\n JSCompiler_inline_result,\n executeDispatchesAndReleaseTopLevel\n );\n if (eventQueue)\n throw Error(\n \"processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.\"\n );\n if (hasRethrowError)\n throw ((JSCompiler_inline_result = rethrowError),\n (hasRethrowError = !1),\n (rethrowError = null),\n JSCompiler_inline_result);\n }\n });\n}\nReactNativePrivateInterface.RCTEventEmitter.register({\n receiveEvent: function(rootNodeID, topLevelType, nativeEventParam) {\n _receiveRootNodeIDEvent(rootNodeID, topLevelType, nativeEventParam);\n },\n receiveTouches: function(eventTopLevelType, touches, changedIndices) {\n if (\n \"topTouchEnd\" === eventTopLevelType ||\n \"topTouchCancel\" === eventTopLevelType\n ) {\n var JSCompiler_temp = [];\n for (var i = 0; i < changedIndices.length; i++) {\n var index$0 = changedIndices[i];\n JSCompiler_temp.push(touches[index$0]);\n touches[index$0] = null;\n }\n for (i = changedIndices = 0; i < touches.length; i++)\n (index$0 = touches[i]),\n null !== index$0 && (touches[changedIndices++] = index$0);\n touches.length = changedIndices;\n } else\n for (JSCompiler_temp = [], i = 0; i < changedIndices.length; i++)\n JSCompiler_temp.push(touches[changedIndices[i]]);\n for (\n changedIndices = 0;\n changedIndices < JSCompiler_temp.length;\n changedIndices++\n ) {\n i = JSCompiler_temp[changedIndices];\n i.changedTouches = JSCompiler_temp;\n i.touches = touches;\n index$0 = null;\n var target = i.target;\n null === target || void 0 === target || 1 > target || (index$0 = target);\n _receiveRootNodeIDEvent(index$0, eventTopLevelType, i);\n }\n }\n});\ngetFiberCurrentPropsFromNode = function(stateNode) {\n return instanceProps.get(stateNode._nativeTag) || null;\n};\ngetInstanceFromNode = getInstanceFromTag;\ngetNodeFromInstance = function(inst) {\n inst = inst.stateNode;\n var tag = inst._nativeTag;\n void 0 === tag && ((inst = inst.canonical), (tag = inst._nativeTag));\n if (!tag) throw Error(\"All native instances should have a tag.\");\n return inst;\n};\nResponderEventPlugin.injection.injectGlobalResponderHandler({\n onChange: function(from, to, blockNativeResponder) {\n null !== to\n ? ReactNativePrivateInterface.UIManager.setJSResponder(\n to.stateNode._nativeTag,\n blockNativeResponder\n )\n : ReactNativePrivateInterface.UIManager.clearJSResponder();\n }\n});\nvar ReactSharedInternals =\n React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,\n REACT_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_PROVIDER_TYPE = Symbol.for(\"react.provider\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nSymbol.for(\"react.debug_trace_mode\");\nvar REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.cache\");\nSymbol.for(\"react.tracing_marker\");\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type) return type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Consumer\";\n case REACT_PROVIDER_TYPE:\n return (type._context.displayName || \"Context\") + \".Provider\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nfunction getComponentNameFromFiber(fiber) {\n var type = fiber.type;\n switch (fiber.tag) {\n case 24:\n return \"Cache\";\n case 9:\n return (type.displayName || \"Context\") + \".Consumer\";\n case 10:\n return (type._context.displayName || \"Context\") + \".Provider\";\n case 18:\n return \"DehydratedFragment\";\n case 11:\n return (\n (fiber = type.render),\n (fiber = fiber.displayName || fiber.name || \"\"),\n type.displayName ||\n (\"\" !== fiber ? \"ForwardRef(\" + fiber + \")\" : \"ForwardRef\")\n );\n case 7:\n return \"Fragment\";\n case 5:\n return type;\n case 4:\n return \"Portal\";\n case 3:\n return \"Root\";\n case 6:\n return \"Text\";\n case 16:\n return getComponentNameFromType(type);\n case 8:\n return type === REACT_STRICT_MODE_TYPE ? \"StrictMode\" : \"Mode\";\n case 22:\n return \"Offscreen\";\n case 12:\n return \"Profiler\";\n case 21:\n return \"Scope\";\n case 13:\n return \"Suspense\";\n case 19:\n return \"SuspenseList\";\n case 25:\n return \"TracingMarker\";\n case 1:\n case 0:\n case 17:\n case 2:\n case 14:\n case 15:\n if (\"function\" === typeof type)\n return type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n }\n return null;\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(\"Unable to find node on an unmounted component.\");\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate)\n throw Error(\"Unable to find node on an unmounted component.\");\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(\"Unable to find node on an unmounted component.\");\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$1 = parentA.child; child$1; ) {\n if (child$1 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$1 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$1 = child$1.sibling;\n }\n if (!didFindChild) {\n for (child$1 = parentB.child; child$1; ) {\n if (child$1 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$1 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$1 = child$1.sibling;\n }\n if (!didFindChild)\n throw Error(\n \"Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.\"\n );\n }\n }\n if (a.alternate !== b)\n throw Error(\n \"Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (3 !== a.tag)\n throw Error(\"Unable to find node on an unmounted component.\");\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiber(parent) {\n parent = findCurrentFiberUsingSlowPath(parent);\n return null !== parent ? findCurrentHostFiberImpl(parent) : null;\n}\nfunction findCurrentHostFiberImpl(node) {\n if (5 === node.tag || 6 === node.tag) return node;\n for (node = node.child; null !== node; ) {\n var match = findCurrentHostFiberImpl(node);\n if (null !== match) return match;\n node = node.sibling;\n }\n return null;\n}\nvar emptyObject = {},\n removedKeys = null,\n removedKeyCount = 0,\n deepDifferOptions = { unsafelyIgnoreFunctions: !0 };\nfunction defaultDiffer(prevProp, nextProp) {\n return \"object\" !== typeof nextProp || null === nextProp\n ? !0\n : ReactNativePrivateInterface.deepDiffer(\n prevProp,\n nextProp,\n deepDifferOptions\n );\n}\nfunction restoreDeletedValuesInNestedArray(\n updatePayload,\n node,\n validAttributes\n) {\n if (isArrayImpl(node))\n for (var i = node.length; i-- && 0 < removedKeyCount; )\n restoreDeletedValuesInNestedArray(\n updatePayload,\n node[i],\n validAttributes\n );\n else if (node && 0 < removedKeyCount)\n for (i in removedKeys)\n if (removedKeys[i]) {\n var nextProp = node[i];\n if (void 0 !== nextProp) {\n var attributeConfig = validAttributes[i];\n if (attributeConfig) {\n \"function\" === typeof nextProp && (nextProp = !0);\n \"undefined\" === typeof nextProp && (nextProp = null);\n if (\"object\" !== typeof attributeConfig)\n updatePayload[i] = nextProp;\n else if (\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n )\n (nextProp =\n \"function\" === typeof attributeConfig.process\n ? attributeConfig.process(nextProp)\n : nextProp),\n (updatePayload[i] = nextProp);\n removedKeys[i] = !1;\n removedKeyCount--;\n }\n }\n }\n}\nfunction diffNestedProperty(\n updatePayload,\n prevProp,\n nextProp,\n validAttributes\n) {\n if (!updatePayload && prevProp === nextProp) return updatePayload;\n if (!prevProp || !nextProp)\n return nextProp\n ? addNestedProperty(updatePayload, nextProp, validAttributes)\n : prevProp\n ? clearNestedProperty(updatePayload, prevProp, validAttributes)\n : updatePayload;\n if (!isArrayImpl(prevProp) && !isArrayImpl(nextProp))\n return diffProperties(updatePayload, prevProp, nextProp, validAttributes);\n if (isArrayImpl(prevProp) && isArrayImpl(nextProp)) {\n var minLength =\n prevProp.length < nextProp.length ? prevProp.length : nextProp.length,\n i;\n for (i = 0; i < minLength; i++)\n updatePayload = diffNestedProperty(\n updatePayload,\n prevProp[i],\n nextProp[i],\n validAttributes\n );\n for (; i < prevProp.length; i++)\n updatePayload = clearNestedProperty(\n updatePayload,\n prevProp[i],\n validAttributes\n );\n for (; i < nextProp.length; i++)\n updatePayload = addNestedProperty(\n updatePayload,\n nextProp[i],\n validAttributes\n );\n return updatePayload;\n }\n return isArrayImpl(prevProp)\n ? diffProperties(\n updatePayload,\n ReactNativePrivateInterface.flattenStyle(prevProp),\n nextProp,\n validAttributes\n )\n : diffProperties(\n updatePayload,\n prevProp,\n ReactNativePrivateInterface.flattenStyle(nextProp),\n validAttributes\n );\n}\nfunction addNestedProperty(updatePayload, nextProp, validAttributes) {\n if (!nextProp) return updatePayload;\n if (!isArrayImpl(nextProp))\n return diffProperties(\n updatePayload,\n emptyObject,\n nextProp,\n validAttributes\n );\n for (var i = 0; i < nextProp.length; i++)\n updatePayload = addNestedProperty(\n updatePayload,\n nextProp[i],\n validAttributes\n );\n return updatePayload;\n}\nfunction clearNestedProperty(updatePayload, prevProp, validAttributes) {\n if (!prevProp) return updatePayload;\n if (!isArrayImpl(prevProp))\n return diffProperties(\n updatePayload,\n prevProp,\n emptyObject,\n validAttributes\n );\n for (var i = 0; i < prevProp.length; i++)\n updatePayload = clearNestedProperty(\n updatePayload,\n prevProp[i],\n validAttributes\n );\n return updatePayload;\n}\nfunction diffProperties(updatePayload, prevProps, nextProps, validAttributes) {\n var attributeConfig, propKey;\n for (propKey in nextProps)\n if ((attributeConfig = validAttributes[propKey])) {\n var prevProp = prevProps[propKey];\n var nextProp = nextProps[propKey];\n \"function\" === typeof nextProp &&\n ((nextProp = !0), \"function\" === typeof prevProp && (prevProp = !0));\n \"undefined\" === typeof nextProp &&\n ((nextProp = null),\n \"undefined\" === typeof prevProp && (prevProp = null));\n removedKeys && (removedKeys[propKey] = !1);\n if (updatePayload && void 0 !== updatePayload[propKey])\n if (\"object\" !== typeof attributeConfig)\n updatePayload[propKey] = nextProp;\n else {\n if (\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n )\n (attributeConfig =\n \"function\" === typeof attributeConfig.process\n ? attributeConfig.process(nextProp)\n : nextProp),\n (updatePayload[propKey] = attributeConfig);\n }\n else if (prevProp !== nextProp)\n if (\"object\" !== typeof attributeConfig)\n defaultDiffer(prevProp, nextProp) &&\n ((updatePayload || (updatePayload = {}))[propKey] = nextProp);\n else if (\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n ) {\n if (\n void 0 === prevProp ||\n (\"function\" === typeof attributeConfig.diff\n ? attributeConfig.diff(prevProp, nextProp)\n : defaultDiffer(prevProp, nextProp))\n )\n (attributeConfig =\n \"function\" === typeof attributeConfig.process\n ? attributeConfig.process(nextProp)\n : nextProp),\n ((updatePayload || (updatePayload = {}))[\n propKey\n ] = attributeConfig);\n } else\n (removedKeys = null),\n (removedKeyCount = 0),\n (updatePayload = diffNestedProperty(\n updatePayload,\n prevProp,\n nextProp,\n attributeConfig\n )),\n 0 < removedKeyCount &&\n updatePayload &&\n (restoreDeletedValuesInNestedArray(\n updatePayload,\n nextProp,\n attributeConfig\n ),\n (removedKeys = null));\n }\n for (var propKey$3 in prevProps)\n void 0 === nextProps[propKey$3] &&\n (!(attributeConfig = validAttributes[propKey$3]) ||\n (updatePayload && void 0 !== updatePayload[propKey$3]) ||\n ((prevProp = prevProps[propKey$3]),\n void 0 !== prevProp &&\n (\"object\" !== typeof attributeConfig ||\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n ? (((updatePayload || (updatePayload = {}))[propKey$3] = null),\n removedKeys || (removedKeys = {}),\n removedKeys[propKey$3] ||\n ((removedKeys[propKey$3] = !0), removedKeyCount++))\n : (updatePayload = clearNestedProperty(\n updatePayload,\n prevProp,\n attributeConfig\n )))));\n return updatePayload;\n}\nfunction mountSafeCallback_NOT_REALLY_SAFE(context, callback) {\n return function() {\n if (\n callback &&\n (\"boolean\" !== typeof context.__isMounted || context.__isMounted)\n )\n return callback.apply(context, arguments);\n };\n}\nvar ReactNativeFiberHostComponent = (function() {\n function ReactNativeFiberHostComponent(tag, viewConfig) {\n this._nativeTag = tag;\n this._children = [];\n this.viewConfig = viewConfig;\n }\n var _proto = ReactNativeFiberHostComponent.prototype;\n _proto.blur = function() {\n ReactNativePrivateInterface.TextInputState.blurTextInput(this);\n };\n _proto.focus = function() {\n ReactNativePrivateInterface.TextInputState.focusTextInput(this);\n };\n _proto.measure = function(callback) {\n ReactNativePrivateInterface.UIManager.measure(\n this._nativeTag,\n mountSafeCallback_NOT_REALLY_SAFE(this, callback)\n );\n };\n _proto.measureInWindow = function(callback) {\n ReactNativePrivateInterface.UIManager.measureInWindow(\n this._nativeTag,\n mountSafeCallback_NOT_REALLY_SAFE(this, callback)\n );\n };\n _proto.measureLayout = function(relativeToNativeNode, onSuccess, onFail) {\n if (\"number\" === typeof relativeToNativeNode)\n var relativeNode = relativeToNativeNode;\n else\n relativeToNativeNode._nativeTag &&\n (relativeNode = relativeToNativeNode._nativeTag);\n null != relativeNode &&\n ReactNativePrivateInterface.UIManager.measureLayout(\n this._nativeTag,\n relativeNode,\n mountSafeCallback_NOT_REALLY_SAFE(this, onFail),\n mountSafeCallback_NOT_REALLY_SAFE(this, onSuccess)\n );\n };\n _proto.setNativeProps = function(nativeProps) {\n nativeProps = diffProperties(\n null,\n emptyObject,\n nativeProps,\n this.viewConfig.validAttributes\n );\n null != nativeProps &&\n ReactNativePrivateInterface.UIManager.updateView(\n this._nativeTag,\n this.viewConfig.uiViewClassName,\n nativeProps\n );\n };\n return ReactNativeFiberHostComponent;\n })(),\n scheduleCallback = Scheduler.unstable_scheduleCallback,\n cancelCallback = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority = Scheduler.unstable_NormalPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n rendererID = null,\n injectedHook = null;\nfunction onCommitRoot(root) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n root,\n void 0,\n 128 === (root.current.flags & 128)\n );\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionLane = 64,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 4194240;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n return lanes & 130023424;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 1073741824;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n nonIdlePendingLanes = pendingLanes & 268435455;\n if (0 !== nonIdlePendingLanes) {\n var nonIdleUnblockedLanes = nonIdlePendingLanes & ~suspendedLanes;\n 0 !== nonIdleUnblockedLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdleUnblockedLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes &&\n (nextLanes = getHighestPriorityLanes(pingedLanes)));\n } else\n (nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes &&\n (nextLanes = getHighestPriorityLanes(pingedLanes));\n if (0 === nextLanes) return 0;\n if (\n 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (pingedLanes = wipLanes & -wipLanes),\n suspendedLanes >= pingedLanes ||\n (16 === suspendedLanes && 0 !== (pingedLanes & 4194240)))\n )\n return wipLanes;\n 0 !== (nextLanes & 4) && (nextLanes |= pendingLanes & 16);\n wipLanes = root.entangledLanes;\n if (0 !== wipLanes)\n for (root = root.entanglements, wipLanes &= nextLanes; 0 < wipLanes; )\n (pendingLanes = 31 - clz32(wipLanes)),\n (suspendedLanes = 1 << pendingLanes),\n (nextLanes |= root[pendingLanes]),\n (wipLanes &= ~suspendedLanes);\n return nextLanes;\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n return currentTime + 250;\n case 8:\n case 16:\n case 32:\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n return -1;\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction getLanesToRetrySynchronouslyOnError(root) {\n root = root.pendingLanes & -1073741825;\n return 0 !== root ? root : root & 1073741824 ? 1073741824 : 0;\n}\nfunction claimNextTransitionLane() {\n var lane = nextTransitionLane;\n nextTransitionLane <<= 1;\n 0 === (nextTransitionLane & 4194240) && (nextTransitionLane = 64);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated(root, updateLane, eventTime) {\n root.pendingLanes |= updateLane;\n 536870912 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0));\n root = root.eventTimes;\n updateLane = 31 - clz32(updateLane);\n root[updateLane] = eventTime;\n}\nfunction markRootFinished(root, remainingLanes) {\n var noLongerPendingLanes = root.pendingLanes & ~remainingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.mutableReadLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n remainingLanes = root.entanglements;\n var eventTimes = root.eventTimes;\n for (root = root.expirationTimes; 0 < noLongerPendingLanes; ) {\n var index$8 = 31 - clz32(noLongerPendingLanes),\n lane = 1 << index$8;\n remainingLanes[index$8] = 0;\n eventTimes[index$8] = -1;\n root[index$8] = -1;\n noLongerPendingLanes &= ~lane;\n }\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$9 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$9;\n (lane & entangledLanes) | (root[index$9] & entangledLanes) &&\n (root[index$9] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nvar currentUpdatePriority = 0;\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 1 < lanes\n ? 4 < lanes\n ? 0 !== (lanes & 268435455)\n ? 16\n : 536870912\n : 4\n : 1;\n}\nfunction shim() {\n throw Error(\n \"The current renderer does not support hydration. This error is likely caused by a bug in React. Please file an issue.\"\n );\n}\nvar getViewConfigForType =\n ReactNativePrivateInterface.ReactNativeViewConfigRegistry.get,\n UPDATE_SIGNAL = {},\n nextReactTag = 3;\nfunction allocateTag() {\n var tag = nextReactTag;\n 1 === tag % 10 && (tag += 2);\n nextReactTag = tag + 2;\n return tag;\n}\nfunction recursivelyUncacheFiberNode(node) {\n if (\"number\" === typeof node)\n instanceCache.delete(node), instanceProps.delete(node);\n else {\n var tag = node._nativeTag;\n instanceCache.delete(tag);\n instanceProps.delete(tag);\n node._children.forEach(recursivelyUncacheFiberNode);\n }\n}\nfunction finalizeInitialChildren(parentInstance) {\n if (0 === parentInstance._children.length) return !1;\n var nativeTags = parentInstance._children.map(function(child) {\n return \"number\" === typeof child ? child : child._nativeTag;\n });\n ReactNativePrivateInterface.UIManager.setChildren(\n parentInstance._nativeTag,\n nativeTags\n );\n return !1;\n}\nvar scheduleTimeout = setTimeout,\n cancelTimeout = clearTimeout;\nfunction describeComponentFrame(name, source, ownerName) {\n source = \"\";\n ownerName && (source = \" (created by \" + ownerName + \")\");\n return \"\\n in \" + (name || \"Unknown\") + source;\n}\nfunction describeFunctionComponentFrame(fn, source) {\n return fn\n ? describeComponentFrame(fn.displayName || fn.name || null, source, null)\n : \"\";\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar emptyContextObject = {},\n contextStackCursor = createCursor(emptyContextObject),\n didPerformWorkStackCursor = createCursor(!1),\n previousContext = emptyContextObject;\nfunction getMaskedContext(workInProgress, unmaskedContext) {\n var contextTypes = workInProgress.type.contextTypes;\n if (!contextTypes) return emptyContextObject;\n var instance = workInProgress.stateNode;\n if (\n instance &&\n instance.__reactInternalMemoizedUnmaskedChildContext === unmaskedContext\n )\n return instance.__reactInternalMemoizedMaskedChildContext;\n var context = {},\n key;\n for (key in contextTypes) context[key] = unmaskedContext[key];\n instance &&\n ((workInProgress = workInProgress.stateNode),\n (workInProgress.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext),\n (workInProgress.__reactInternalMemoizedMaskedChildContext = context));\n return context;\n}\nfunction isContextProvider(type) {\n type = type.childContextTypes;\n return null !== type && void 0 !== type;\n}\nfunction popContext() {\n pop(didPerformWorkStackCursor);\n pop(contextStackCursor);\n}\nfunction pushTopLevelContextObject(fiber, context, didChange) {\n if (contextStackCursor.current !== emptyContextObject)\n throw Error(\n \"Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.\"\n );\n push(contextStackCursor, context);\n push(didPerformWorkStackCursor, didChange);\n}\nfunction processChildContext(fiber, type, parentContext) {\n var instance = fiber.stateNode;\n type = type.childContextTypes;\n if (\"function\" !== typeof instance.getChildContext) return parentContext;\n instance = instance.getChildContext();\n for (var contextKey in instance)\n if (!(contextKey in type))\n throw Error(\n (getComponentNameFromFiber(fiber) || \"Unknown\") +\n '.getChildContext(): key \"' +\n contextKey +\n '\" is not defined in childContextTypes.'\n );\n return assign({}, parentContext, instance);\n}\nfunction pushContextProvider(workInProgress) {\n workInProgress =\n ((workInProgress = workInProgress.stateNode) &&\n workInProgress.__reactInternalMemoizedMergedChildContext) ||\n emptyContextObject;\n previousContext = contextStackCursor.current;\n push(contextStackCursor, workInProgress);\n push(didPerformWorkStackCursor, didPerformWorkStackCursor.current);\n return !0;\n}\nfunction invalidateContextProvider(workInProgress, type, didChange) {\n var instance = workInProgress.stateNode;\n if (!instance)\n throw Error(\n \"Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.\"\n );\n didChange\n ? ((workInProgress = processChildContext(\n workInProgress,\n type,\n previousContext\n )),\n (instance.__reactInternalMemoizedMergedChildContext = workInProgress),\n pop(didPerformWorkStackCursor),\n pop(contextStackCursor),\n push(contextStackCursor, workInProgress))\n : pop(didPerformWorkStackCursor);\n push(didPerformWorkStackCursor, didChange);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n syncQueue = null,\n includesLegacySyncCallbacks = !1,\n isFlushingSyncQueue = !1;\nfunction flushSyncCallbacks() {\n if (!isFlushingSyncQueue && null !== syncQueue) {\n isFlushingSyncQueue = !0;\n var i = 0,\n previousUpdatePriority = currentUpdatePriority;\n try {\n var queue = syncQueue;\n for (currentUpdatePriority = 1; i < queue.length; i++) {\n var callback = queue[i];\n do callback = callback(!0);\n while (null !== callback);\n }\n syncQueue = null;\n includesLegacySyncCallbacks = !1;\n } catch (error) {\n throw (null !== syncQueue && (syncQueue = syncQueue.slice(i + 1)),\n scheduleCallback(ImmediatePriority, flushSyncCallbacks),\n error);\n } finally {\n (currentUpdatePriority = previousUpdatePriority),\n (isFlushingSyncQueue = !1);\n }\n }\n return null;\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null;\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n --forkStackIndex,\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n --idStackIndex,\n (idStack[idStackIndex] = null),\n --idStackIndex,\n (idStack[idStackIndex] = null);\n}\nvar hydrationErrors = null,\n ReactCurrentBatchConfig = ReactSharedInternals.ReactCurrentBatchConfig;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction describeFiber(fiber) {\n switch (fiber.tag) {\n case 5:\n return describeComponentFrame(fiber.type, null, null);\n case 16:\n return describeComponentFrame(\"Lazy\", null, null);\n case 13:\n return describeComponentFrame(\"Suspense\", null, null);\n case 19:\n return describeComponentFrame(\"SuspenseList\", null, null);\n case 0:\n case 2:\n case 15:\n return describeFunctionComponentFrame(fiber.type, null);\n case 11:\n return describeFunctionComponentFrame(fiber.type.render, null);\n case 1:\n return (fiber = describeFunctionComponentFrame(fiber.type, null)), fiber;\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\";\n do\n (info += describeFiber(workInProgress)),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nfunction resolveDefaultProps(Component, baseProps) {\n if (Component && Component.defaultProps) {\n baseProps = assign({}, baseProps);\n Component = Component.defaultProps;\n for (var propName in Component)\n void 0 === baseProps[propName] &&\n (baseProps[propName] = Component[propName]);\n return baseProps;\n }\n return baseProps;\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber = null,\n lastContextDependency = null,\n lastFullyObservedContext = null;\nfunction resetContextDependencies() {\n lastFullyObservedContext = lastContextDependency = currentlyRenderingFiber = null;\n}\nfunction popProvider(context) {\n var currentValue = valueCursor.current;\n pop(valueCursor);\n context._currentValue = currentValue;\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction prepareToReadContext(workInProgress, renderLanes) {\n currentlyRenderingFiber = workInProgress;\n lastFullyObservedContext = lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress &&\n null !== workInProgress.firstContext &&\n (0 !== (workInProgress.lanes & renderLanes) && (didReceiveUpdate = !0),\n (workInProgress.firstContext = null));\n}\nfunction readContext(context) {\n var value = context._currentValue;\n if (lastFullyObservedContext !== context)\n if (\n ((context = { context: context, memoizedValue: value, next: null }),\n null === lastContextDependency)\n ) {\n if (null === currentlyRenderingFiber)\n throw Error(\n \"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\"\n );\n lastContextDependency = context;\n currentlyRenderingFiber.dependencies = {\n lanes: 0,\n firstContext: context\n };\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar concurrentQueues = null;\nfunction pushConcurrentUpdateQueue(queue) {\n null === concurrentQueues\n ? (concurrentQueues = [queue])\n : concurrentQueues.push(queue);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n var interleaved = queue.interleaved;\n null === interleaved\n ? ((update.next = update), pushConcurrentUpdateQueue(queue))\n : ((update.next = interleaved.next), (interleaved.next = update));\n queue.interleaved = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n alternate = sourceFiber;\n for (sourceFiber = sourceFiber.return; null !== sourceFiber; )\n (sourceFiber.childLanes |= lane),\n (alternate = sourceFiber.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n (alternate = sourceFiber),\n (sourceFiber = sourceFiber.return);\n return 3 === alternate.tag ? alternate.stateNode : null;\n}\nvar hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, interleaved: null, lanes: 0 },\n effects: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n effects: current.effects\n });\n}\nfunction createUpdate(eventTime, lane) {\n return {\n eventTime: eventTime,\n lane: lane,\n tag: 0,\n payload: null,\n callback: null,\n next: null\n };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n }\n pending = updateQueue.interleaved;\n null === pending\n ? ((update.next = update), pushConcurrentUpdateQueue(updateQueue))\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.interleaved = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194240))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n eventTime: queue.eventTime,\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: queue.callback,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n effects: current.effects\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance,\n renderLanes\n) {\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane,\n updateEventTime = pendingQueue.eventTime;\n if ((renderLanes & updateLane) === updateLane) {\n null !== current &&\n (current = current.next = {\n eventTime: updateEventTime,\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n updateEventTime = instance;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(\n updateEventTime,\n newState,\n updateLane\n );\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(updateEventTime, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n null !== pendingQueue.callback &&\n 0 !== pendingQueue.lane &&\n ((workInProgress$jscomp$0.flags |= 64),\n (updateLane = queue.effects),\n null === updateLane\n ? (queue.effects = [pendingQueue])\n : updateLane.push(pendingQueue));\n } else\n (updateEventTime = {\n eventTime: updateEventTime,\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = updateEventTime),\n (lastPendingUpdate = newState))\n : (current = current.next = updateEventTime),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (updateLane = pendingQueue),\n (pendingQueue = updateLane.next),\n (updateLane.next = null),\n (queue.lastBaseUpdate = updateLane),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n props = queue.shared.interleaved;\n if (null !== props) {\n queue = props;\n do (lastBaseUpdate |= queue.lane), (queue = queue.next);\n while (queue !== props);\n } else null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction commitUpdateQueue(finishedWork, finishedQueue, instance) {\n finishedWork = finishedQueue.effects;\n finishedQueue.effects = null;\n if (null !== finishedWork)\n for (\n finishedQueue = 0;\n finishedQueue < finishedWork.length;\n finishedQueue++\n ) {\n var effect = finishedWork[finishedQueue],\n callback = effect.callback;\n if (null !== callback) {\n effect.callback = null;\n if (\"function\" !== typeof callback)\n throw Error(\n \"Invalid argument passed as callback. Expected a function. Instead received: \" +\n callback\n );\n callback.call(instance);\n }\n }\n}\nvar emptyRefsObject = new React.Component().refs;\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n isMounted: function(component) {\n return (component = component._reactInternals)\n ? getNearestMountedFiber(component) === component\n : !1;\n },\n enqueueSetState: function(inst, payload, callback) {\n inst = inst._reactInternals;\n var eventTime = requestEventTime(),\n lane = requestUpdateLane(inst),\n update = createUpdate(eventTime, lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane, eventTime),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function(inst, payload, callback) {\n inst = inst._reactInternals;\n var eventTime = requestEventTime(),\n lane = requestUpdateLane(inst),\n update = createUpdate(eventTime, lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane, eventTime),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function(inst, callback) {\n inst = inst._reactInternals;\n var eventTime = requestEventTime(),\n lane = requestUpdateLane(inst),\n update = createUpdate(eventTime, lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane, eventTime),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction constructClassInstance(workInProgress, ctor, props) {\n var isLegacyContextConsumer = !1,\n unmaskedContext = emptyContextObject;\n var context = ctor.contextType;\n \"object\" === typeof context && null !== context\n ? (context = readContext(context))\n : ((unmaskedContext = isContextProvider(ctor)\n ? previousContext\n : contextStackCursor.current),\n (isLegacyContextConsumer = ctor.contextTypes),\n (context = (isLegacyContextConsumer =\n null !== isLegacyContextConsumer && void 0 !== isLegacyContextConsumer)\n ? getMaskedContext(workInProgress, unmaskedContext)\n : emptyContextObject));\n ctor = new ctor(props, context);\n workInProgress.memoizedState =\n null !== ctor.state && void 0 !== ctor.state ? ctor.state : null;\n ctor.updater = classComponentUpdater;\n workInProgress.stateNode = ctor;\n ctor._reactInternals = workInProgress;\n isLegacyContextConsumer &&\n ((workInProgress = workInProgress.stateNode),\n (workInProgress.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext),\n (workInProgress.__reactInternalMemoizedMaskedChildContext = context));\n return ctor;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction mountClassInstance(workInProgress, ctor, newProps, renderLanes) {\n var instance = workInProgress.stateNode;\n instance.props = newProps;\n instance.state = workInProgress.memoizedState;\n instance.refs = emptyRefsObject;\n initializeUpdateQueue(workInProgress);\n var contextType = ctor.contextType;\n \"object\" === typeof contextType && null !== contextType\n ? (instance.context = readContext(contextType))\n : ((contextType = isContextProvider(ctor)\n ? previousContext\n : contextStackCursor.current),\n (instance.context = getMaskedContext(workInProgress, contextType)));\n instance.state = workInProgress.memoizedState;\n contextType = ctor.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(workInProgress, ctor, contextType, newProps),\n (instance.state = workInProgress.memoizedState));\n \"function\" === typeof ctor.getDerivedStateFromProps ||\n \"function\" === typeof instance.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof instance.UNSAFE_componentWillMount &&\n \"function\" !== typeof instance.componentWillMount) ||\n ((ctor = instance.state),\n \"function\" === typeof instance.componentWillMount &&\n instance.componentWillMount(),\n \"function\" === typeof instance.UNSAFE_componentWillMount &&\n instance.UNSAFE_componentWillMount(),\n ctor !== instance.state &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null),\n processUpdateQueue(workInProgress, newProps, instance, renderLanes),\n (instance.state = workInProgress.memoizedState));\n \"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4);\n}\nfunction coerceRef(returnFiber, current, element) {\n returnFiber = element.ref;\n if (\n null !== returnFiber &&\n \"function\" !== typeof returnFiber &&\n \"object\" !== typeof returnFiber\n ) {\n if (element._owner) {\n element = element._owner;\n if (element) {\n if (1 !== element.tag)\n throw Error(\n \"Function components cannot have string refs. We recommend using useRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref\"\n );\n var inst = element.stateNode;\n }\n if (!inst)\n throw Error(\n \"Missing owner for string ref \" +\n returnFiber +\n \". This error is likely caused by a bug in React. Please file an issue.\"\n );\n var resolvedInst = inst,\n stringRef = \"\" + returnFiber;\n if (\n null !== current &&\n null !== current.ref &&\n \"function\" === typeof current.ref &&\n current.ref._stringRef === stringRef\n )\n return current.ref;\n current = function(value) {\n var refs = resolvedInst.refs;\n refs === emptyRefsObject && (refs = resolvedInst.refs = {});\n null === value ? delete refs[stringRef] : (refs[stringRef] = value);\n };\n current._stringRef = stringRef;\n return current;\n }\n if (\"string\" !== typeof returnFiber)\n throw Error(\n \"Expected ref to be a function, a string, an object returned by React.createRef(), or null.\"\n );\n if (!element._owner)\n throw Error(\n \"Element ref was specified as a string (\" +\n returnFiber +\n \") but no owner was set. This could happen for one of the following reasons:\\n1. You may be adding a ref to a function component\\n2. You may be adding a ref to a component that was not created inside a component's render method\\n3. You have multiple copies of React loaded\\nSee https://reactjs.org/link/refs-must-have-owner for more information.\"\n );\n }\n return returnFiber;\n}\nfunction throwOnInvalidObjectType(returnFiber, newChild) {\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n}\nfunction resolveLazy(lazyType) {\n var init = lazyType._init;\n return init(lazyType._payload);\n}\nfunction ChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(returnFiber, currentFirstChild) {\n for (returnFiber = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? returnFiber.set(currentFirstChild.key, currentFirstChild)\n : returnFiber.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return returnFiber;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 2), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 2;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 2);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (lanes = useFiber(current, element.props)),\n (lanes.ref = coerceRef(returnFiber, current, element)),\n (lanes.return = returnFiber),\n lanes\n );\n lanes = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n lanes.ref = coerceRef(returnFiber, current, element);\n lanes.return = returnFiber;\n return lanes;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n (lanes.ref = coerceRef(returnFiber, null, newChild)),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n return createChild(returnFiber, init(newChild._payload), lanes);\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (key = newChild._init),\n updateSlot(returnFiber, oldFiber, key(newChild._payload), lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n init(newChild._payload),\n lanes\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber), resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(returnFiber, oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function(child) {\n return deleteChild(returnFiber, child);\n });\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildrenIterable,\n lanes\n ) {\n var iteratorFn = getIteratorFn(newChildrenIterable);\n if (\"function\" !== typeof iteratorFn)\n throw Error(\n \"An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.\"\n );\n newChildrenIterable = iteratorFn.call(newChildrenIterable);\n if (null == newChildrenIterable)\n throw Error(\"An iterable object provided no iterator.\");\n for (\n var previousNewFiber = (iteratorFn = null),\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildrenIterable.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildrenIterable.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (iteratorFn = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return deleteRemainingChildren(returnFiber, oldFiber), iteratorFn;\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildrenIterable.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (iteratorFn = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n return iteratorFn;\n }\n for (\n oldFiber = mapRemainingChildren(returnFiber, oldFiber);\n !step.done;\n newIdx++, step = newChildrenIterable.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (iteratorFn = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function(child) {\n return deleteChild(returnFiber, child);\n });\n return iteratorFn;\n }\n function reconcileChildFibers(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (\n var key = newChild.key, child = currentFirstChild;\n null !== child;\n\n ) {\n if (child.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === child.tag) {\n deleteRemainingChildren(returnFiber, child.sibling);\n currentFirstChild = useFiber(\n child,\n newChild.props.children\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n break a;\n }\n } else if (\n child.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === child.type)\n ) {\n deleteRemainingChildren(returnFiber, child.sibling);\n currentFirstChild = useFiber(child, newChild.props);\n currentFirstChild.ref = coerceRef(\n returnFiber,\n child,\n newChild\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n break a;\n }\n deleteRemainingChildren(returnFiber, child);\n break;\n } else deleteChild(returnFiber, child);\n child = child.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((currentFirstChild = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (currentFirstChild.return = returnFiber),\n (returnFiber = currentFirstChild))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n (lanes.ref = coerceRef(\n returnFiber,\n currentFirstChild,\n newChild\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (child = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === child)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n currentFirstChild = useFiber(\n currentFirstChild,\n newChild.children || []\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n currentFirstChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (child = newChild._init),\n reconcileChildFibers(\n returnFiber,\n currentFirstChild,\n child(newChild._payload),\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild))\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (currentFirstChild = useFiber(currentFirstChild, newChild)),\n (currentFirstChild.return = returnFiber),\n (returnFiber = currentFirstChild))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (currentFirstChild = createFiberFromText(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (currentFirstChild.return = returnFiber),\n (returnFiber = currentFirstChild)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return reconcileChildFibers;\n}\nvar reconcileChildFibers = ChildReconciler(!0),\n mountChildFibers = ChildReconciler(!1),\n NO_CONTEXT = {},\n contextStackCursor$1 = createCursor(NO_CONTEXT),\n contextFiberStackCursor = createCursor(NO_CONTEXT),\n rootInstanceStackCursor = createCursor(NO_CONTEXT);\nfunction requiredContext(c) {\n if (c === NO_CONTEXT)\n throw Error(\n \"Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.\"\n );\n return c;\n}\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor$1, NO_CONTEXT);\n pop(contextStackCursor$1);\n push(contextStackCursor$1, { isInAParentText: !1 });\n}\nfunction popHostContainer() {\n pop(contextStackCursor$1);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n requiredContext(rootInstanceStackCursor.current);\n var context = requiredContext(contextStackCursor$1.current);\n var JSCompiler_inline_result = fiber.type;\n JSCompiler_inline_result =\n \"AndroidTextInput\" === JSCompiler_inline_result ||\n \"RCTMultilineTextInputView\" === JSCompiler_inline_result ||\n \"RCTSinglelineTextInputView\" === JSCompiler_inline_result ||\n \"RCTText\" === JSCompiler_inline_result ||\n \"RCTVirtualText\" === JSCompiler_inline_result;\n JSCompiler_inline_result =\n context.isInAParentText !== JSCompiler_inline_result\n ? { isInAParentText: JSCompiler_inline_result }\n : context;\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor$1, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor$1), pop(contextFiberStackCursor));\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (null !== state && (null === state.dehydrated || shim() || shim()))\n return node;\n } else if (19 === node.tag && void 0 !== node.memoizedProps.revealOrder) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar workInProgressSources = [];\nfunction resetWorkInProgressVersions() {\n for (var i = 0; i < workInProgressSources.length; i++)\n workInProgressSources[i]._workInProgressVersionPrimary = null;\n workInProgressSources.length = 0;\n}\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher,\n ReactCurrentBatchConfig$1 = ReactSharedInternals.ReactCurrentBatchConfig,\n renderLanes = 0,\n currentlyRenderingFiber$1 = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber$1 = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactCurrentDispatcher$1.current =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n current = Component(props, secondArg);\n if (didScheduleRenderPhaseUpdateDuringThisPass) {\n nextRenderLanes = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= nextRenderLanes)\n throw Error(\n \"Too many re-renders. React limits the number of renders to prevent an infinite loop.\"\n );\n nextRenderLanes += 1;\n workInProgressHook = currentHook = null;\n workInProgress.updateQueue = null;\n ReactCurrentDispatcher$1.current = HooksDispatcherOnRerender;\n current = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n }\n ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n workInProgress = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber$1 = null;\n didScheduleRenderPhaseUpdate = !1;\n if (workInProgress)\n throw Error(\n \"Rendered fewer hooks than expected. This may be caused by an accidental early return statement.\"\n );\n return current;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber$1.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber$1.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber$1.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook)\n throw Error(\"Rendered more hooks than during the previous render.\");\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber$1.memoizedState = workInProgressHook = nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue)\n throw Error(\n \"Should have a queue. This is likely a bug in React. Please file an issue.\"\n );\n queue.lastRenderedReducer = reducer;\n var current = currentHook,\n baseQueue = current.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n if (null !== baseQueue) {\n pendingQueue = baseQueue.next;\n current = current.baseState;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = pendingQueue;\n do {\n var updateLane = update.lane;\n if ((renderLanes & updateLane) === updateLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next = {\n lane: 0,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n (current = update.hasEagerState\n ? update.eagerState\n : reducer(current, update.action));\n else {\n var clone = {\n lane: updateLane,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n };\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = clone),\n (baseFirst = current))\n : (newBaseQueueLast = newBaseQueueLast.next = clone);\n currentlyRenderingFiber$1.lanes |= updateLane;\n workInProgressRootSkippedLanes |= updateLane;\n }\n update = update.next;\n } while (null !== update && update !== pendingQueue);\n null === newBaseQueueLast\n ? (baseFirst = current)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n objectIs(current, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = current;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = current;\n }\n reducer = queue.interleaved;\n if (null !== reducer) {\n baseQueue = reducer;\n do\n (pendingQueue = baseQueue.lane),\n (currentlyRenderingFiber$1.lanes |= pendingQueue),\n (workInProgressRootSkippedLanes |= pendingQueue),\n (baseQueue = baseQueue.next);\n while (baseQueue !== reducer);\n } else null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue)\n throw Error(\n \"Should have a queue. This is likely a bug in React. Please file an issue.\"\n );\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateMutableSource() {}\nfunction updateSyncExternalStore(subscribe, getSnapshot) {\n var fiber = currentlyRenderingFiber$1,\n hook = updateWorkInProgressHook(),\n nextSnapshot = getSnapshot(),\n snapshotChanged = !objectIs(hook.memoizedState, nextSnapshot);\n snapshotChanged &&\n ((hook.memoizedState = nextSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushEffect(\n 9,\n updateStoreInstance.bind(null, fiber, hook, nextSnapshot, getSnapshot),\n void 0,\n null\n );\n if (null === workInProgressRoot)\n throw Error(\n \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\"\n );\n 0 !== (renderLanes & 30) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot);\n }\n return nextSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber$1.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = { lastEffect: null, stores: null }),\n (currentlyRenderingFiber$1.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function() {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = markUpdateLaneFromFiberToRoot(fiber, 1);\n null !== root && scheduleUpdateOnFiber(root, fiber, 1, -1);\n}\nfunction mountState(initialState) {\n var hook = mountWorkInProgressHook();\n \"function\" === typeof initialState && (initialState = initialState());\n hook.memoizedState = hook.baseState = initialState;\n initialState = {\n pending: null,\n interleaved: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n hook.queue = initialState;\n initialState = initialState.dispatch = dispatchSetState.bind(\n null,\n currentlyRenderingFiber$1,\n initialState\n );\n return [hook.memoizedState, initialState];\n}\nfunction pushEffect(tag, create, destroy, deps) {\n tag = { tag: tag, create: create, destroy: destroy, deps: deps, next: null };\n create = currentlyRenderingFiber$1.updateQueue;\n null === create\n ? ((create = { lastEffect: null, stores: null }),\n (currentlyRenderingFiber$1.updateQueue = create),\n (create.lastEffect = tag.next = tag))\n : ((destroy = create.lastEffect),\n null === destroy\n ? (create.lastEffect = tag.next = tag)\n : ((deps = destroy.next),\n (destroy.next = tag),\n (tag.next = deps),\n (create.lastEffect = tag)));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(\n 1 | hookFlags,\n create,\n void 0,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var destroy = void 0;\n if (null !== currentHook) {\n var prevEffect = currentHook.memoizedState;\n destroy = prevEffect.destroy;\n if (null !== deps && areHookInputsEqual(deps, prevEffect.deps)) {\n hook.memoizedState = pushEffect(hookFlags, create, destroy, deps);\n return;\n }\n }\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(1 | hookFlags, create, destroy, deps);\n}\nfunction mountEffect(create, deps) {\n return mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n return updateEffectImpl(2048, 8, create, deps);\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref)\n return (\n (create = create()),\n ref(create),\n function() {\n ref(null);\n }\n );\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function() {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n return updateEffectImpl(\n 4,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (\n null !== prevState &&\n null !== deps &&\n areHookInputsEqual(deps, prevState[1])\n )\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (\n null !== prevState &&\n null !== deps &&\n areHookInputsEqual(deps, prevState[1])\n )\n return prevState[0];\n nextCreate = nextCreate();\n hook.memoizedState = [nextCreate, deps];\n return nextCreate;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value) {\n if (0 === (renderLanes & 21))\n return (\n hook.baseState && ((hook.baseState = !1), (didReceiveUpdate = !0)),\n (hook.memoizedState = value)\n );\n objectIs(value, prevValue) ||\n ((value = claimNextTransitionLane()),\n (currentlyRenderingFiber$1.lanes |= value),\n (workInProgressRootSkippedLanes |= value),\n (hook.baseState = !0));\n return prevValue;\n}\nfunction startTransition(setPending, callback) {\n var previousPriority = currentUpdatePriority;\n currentUpdatePriority =\n 0 !== previousPriority && 4 > previousPriority ? previousPriority : 4;\n setPending(!0);\n var prevTransition = ReactCurrentBatchConfig$1.transition;\n ReactCurrentBatchConfig$1.transition = {};\n try {\n setPending(!1), callback();\n } finally {\n (currentUpdatePriority = previousPriority),\n (ReactCurrentBatchConfig$1.transition = prevTransition);\n }\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane(fiber);\n action = {\n lane: lane,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, action);\n else if (\n ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action)\n ) {\n var eventTime = requestEventTime();\n scheduleUpdateOnFiber(action, fiber, lane, eventTime);\n entangleTransitionUpdate(action, queue, lane);\n }\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane(fiber),\n update = {\n lane: lane,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState)) {\n var interleaved = queue.interleaved;\n null === interleaved\n ? ((update.next = update), pushConcurrentUpdateQueue(queue))\n : ((update.next = interleaved.next), (interleaved.next = update));\n queue.interleaved = update;\n return;\n }\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n null !== action &&\n ((update = requestEventTime()),\n scheduleUpdateOnFiber(action, fiber, lane, update),\n entangleTransitionUpdate(action, queue, lane));\n }\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber$1 ||\n (null !== alternate && alternate === currentlyRenderingFiber$1)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate = !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194240)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useMutableSource: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n unstable_isNewReconciler: !1\n },\n HooksDispatcherOnMount = {\n readContext: readContext,\n useCallback: function(callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n return mountEffectImpl(\n 4,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function(create, deps) {\n return mountEffectImpl(4, 4, create, deps);\n },\n useInsertionEffect: function(create, deps) {\n return mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function(nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n nextCreate = nextCreate();\n hook.memoizedState = [nextCreate, deps];\n return nextCreate;\n },\n useReducer: function(reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n initialArg = void 0 !== init ? init(initialArg) : initialArg;\n hook.memoizedState = hook.baseState = initialArg;\n reducer = {\n pending: null,\n interleaved: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialArg\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber$1,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function(initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: mountState,\n useDebugValue: mountDebugValue,\n useDeferredValue: function(value) {\n return (mountWorkInProgressHook().memoizedState = value);\n },\n useTransition: function() {\n var _mountState = mountState(!1),\n isPending = _mountState[0];\n _mountState = startTransition.bind(null, _mountState[1]);\n mountWorkInProgressHook().memoizedState = _mountState;\n return [isPending, _mountState];\n },\n useMutableSource: function() {},\n useSyncExternalStore: function(subscribe, getSnapshot) {\n var fiber = currentlyRenderingFiber$1,\n hook = mountWorkInProgressHook();\n var nextSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(\n \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\"\n );\n 0 !== (renderLanes & 30) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot);\n hook.memoizedState = nextSnapshot;\n var inst = { value: nextSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushEffect(\n 9,\n updateStoreInstance.bind(null, fiber, inst, nextSnapshot, getSnapshot),\n void 0,\n null\n );\n return nextSnapshot;\n },\n useId: function() {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix,\n globalClientId = globalClientIdCounter++;\n identifierPrefix =\n \":\" + identifierPrefix + \"r\" + globalClientId.toString(32) + \":\";\n return (hook.memoizedState = identifierPrefix);\n },\n unstable_isNewReconciler: !1\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function() {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function(value) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(hook, currentHook.memoizedState, value);\n },\n useTransition: function() {\n var isPending = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [isPending, start];\n },\n useMutableSource: updateMutableSource,\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n unstable_isNewReconciler: !1\n },\n HooksDispatcherOnRerender = {\n readContext: readContext,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function() {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function(value) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? (hook.memoizedState = value)\n : updateDeferredValueImpl(hook, currentHook.memoizedState, value);\n },\n useTransition: function() {\n var isPending = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [isPending, start];\n },\n useMutableSource: updateMutableSource,\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n unstable_isNewReconciler: !1\n };\nfunction createCapturedValueAtFiber(value, source) {\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source),\n digest: null\n };\n}\nfunction createCapturedValue(value, digest, stack) {\n return {\n value: value,\n source: null,\n stack: null != stack ? stack : null,\n digest: null != digest ? digest : null\n };\n}\nif (\n \"function\" !==\n typeof ReactNativePrivateInterface.ReactFiberErrorDialog.showErrorDialog\n)\n throw Error(\n \"Expected ReactFiberErrorDialog.showErrorDialog to be a function.\"\n );\nfunction logCapturedError(boundary, errorInfo) {\n try {\n !1 !==\n ReactNativePrivateInterface.ReactFiberErrorDialog.showErrorDialog({\n componentStack: null !== errorInfo.stack ? errorInfo.stack : \"\",\n error: errorInfo.value,\n errorBoundary:\n null !== boundary && 1 === boundary.tag ? boundary.stateNode : null\n }) && console.error(errorInfo.value);\n } catch (e) {\n setTimeout(function() {\n throw e;\n });\n }\n}\nvar PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map;\nfunction createRootErrorUpdate(fiber, errorInfo, lane) {\n lane = createUpdate(-1, lane);\n lane.tag = 3;\n lane.payload = { element: null };\n var error = errorInfo.value;\n lane.callback = function() {\n hasUncaughtError || ((hasUncaughtError = !0), (firstUncaughtError = error));\n logCapturedError(fiber, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(fiber, errorInfo, lane) {\n lane = createUpdate(-1, lane);\n lane.tag = 3;\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n lane.payload = function() {\n return getDerivedStateFromError(error);\n };\n lane.callback = function() {\n logCapturedError(fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (lane.callback = function() {\n logCapturedError(fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n return lane;\n}\nfunction attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n if (null === pingCache) {\n pingCache = root.pingCache = new PossiblyWeakMap();\n var threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else\n (threadIDs = pingCache.get(wakeable)),\n void 0 === threadIDs &&\n ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n threadIDs.has(lanes) ||\n (threadIDs.add(lanes),\n (root = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n wakeable.then(root, root));\n}\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner,\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n prepareToReadContext(workInProgress, renderLanes);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n ref,\n renderLanes\n );\n if (null !== current && !didReceiveUpdate)\n return (\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.flags &= -2053),\n (current.lanes &= ~renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare &&\n void 0 === Component.defaultProps\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (0 === (current.lanes & renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n 0 !== (current.lanes & renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n if (\"hidden\" === nextProps.mode)\n if (0 === (workInProgress.mode & 1))\n (workInProgress.memoizedState = {\n baseLanes: 0,\n cachePool: null,\n transitions: null\n }),\n push(subtreeRenderLanesCursor, subtreeRenderLanes),\n (subtreeRenderLanes |= renderLanes);\n else {\n if (0 === (renderLanes & 1073741824))\n return (\n (current =\n null !== prevState\n ? prevState.baseLanes | renderLanes\n : renderLanes),\n (workInProgress.lanes = workInProgress.childLanes = 1073741824),\n (workInProgress.memoizedState = {\n baseLanes: current,\n cachePool: null,\n transitions: null\n }),\n (workInProgress.updateQueue = null),\n push(subtreeRenderLanesCursor, subtreeRenderLanes),\n (subtreeRenderLanes |= current),\n null\n );\n workInProgress.memoizedState = {\n baseLanes: 0,\n cachePool: null,\n transitions: null\n };\n nextProps = null !== prevState ? prevState.baseLanes : renderLanes;\n push(subtreeRenderLanesCursor, subtreeRenderLanes);\n subtreeRenderLanes |= nextProps;\n }\n else\n null !== prevState\n ? ((nextProps = prevState.baseLanes | renderLanes),\n (workInProgress.memoizedState = null))\n : (nextProps = renderLanes),\n push(subtreeRenderLanesCursor, subtreeRenderLanes),\n (subtreeRenderLanes |= nextProps);\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (\n (null === current && null !== ref) ||\n (null !== current && current.ref !== ref)\n )\n workInProgress.flags |= 512;\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n var context = isContextProvider(Component)\n ? previousContext\n : contextStackCursor.current;\n context = getMaskedContext(workInProgress, context);\n prepareToReadContext(workInProgress, renderLanes);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n context,\n renderLanes\n );\n if (null !== current && !didReceiveUpdate)\n return (\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.flags &= -2053),\n (current.lanes &= ~renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (isContextProvider(Component)) {\n var hasContext = !0;\n pushContextProvider(workInProgress);\n } else hasContext = !1;\n prepareToReadContext(workInProgress, renderLanes);\n if (null === workInProgress.stateNode)\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress),\n constructClassInstance(workInProgress, Component, nextProps),\n mountClassInstance(workInProgress, Component, nextProps, renderLanes),\n (nextProps = !0);\n else if (null === current) {\n var instance = workInProgress.stateNode,\n oldProps = workInProgress.memoizedProps;\n instance.props = oldProps;\n var oldContext = instance.context,\n contextType = Component.contextType;\n \"object\" === typeof contextType && null !== contextType\n ? (contextType = readContext(contextType))\n : ((contextType = isContextProvider(Component)\n ? previousContext\n : contextStackCursor.current),\n (contextType = getMaskedContext(workInProgress, contextType)));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps,\n hasNewLifecycles =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof instance.getSnapshotBeforeUpdate;\n hasNewLifecycles ||\n (\"function\" !== typeof instance.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof instance.componentWillReceiveProps) ||\n ((oldProps !== nextProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n instance,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n instance.state = oldState;\n processUpdateQueue(workInProgress, nextProps, instance, renderLanes);\n oldContext = workInProgress.memoizedState;\n oldProps !== nextProps ||\n oldState !== oldContext ||\n didPerformWorkStackCursor.current ||\n hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (hasNewLifecycles ||\n (\"function\" !== typeof instance.UNSAFE_componentWillMount &&\n \"function\" !== typeof instance.componentWillMount) ||\n (\"function\" === typeof instance.componentWillMount &&\n instance.componentWillMount(),\n \"function\" === typeof instance.UNSAFE_componentWillMount &&\n instance.UNSAFE_componentWillMount()),\n \"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4))\n : (\"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (instance.props = nextProps),\n (instance.state = oldContext),\n (instance.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4),\n (nextProps = !1));\n } else {\n instance = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n oldProps = workInProgress.memoizedProps;\n contextType =\n workInProgress.type === workInProgress.elementType\n ? oldProps\n : resolveDefaultProps(workInProgress.type, oldProps);\n instance.props = contextType;\n hasNewLifecycles = workInProgress.pendingProps;\n oldState = instance.context;\n oldContext = Component.contextType;\n \"object\" === typeof oldContext && null !== oldContext\n ? (oldContext = readContext(oldContext))\n : ((oldContext = isContextProvider(Component)\n ? previousContext\n : contextStackCursor.current),\n (oldContext = getMaskedContext(workInProgress, oldContext)));\n var getDerivedStateFromProps$jscomp$0 = Component.getDerivedStateFromProps;\n (getDerivedStateFromProps =\n \"function\" === typeof getDerivedStateFromProps$jscomp$0 ||\n \"function\" === typeof instance.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof instance.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof instance.componentWillReceiveProps) ||\n ((oldProps !== hasNewLifecycles || oldState !== oldContext) &&\n callComponentWillReceiveProps(\n workInProgress,\n instance,\n nextProps,\n oldContext\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n instance.state = oldState;\n processUpdateQueue(workInProgress, nextProps, instance, renderLanes);\n var newState = workInProgress.memoizedState;\n oldProps !== hasNewLifecycles ||\n oldState !== newState ||\n didPerformWorkStackCursor.current ||\n hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps$jscomp$0 &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps$jscomp$0,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType,\n nextProps,\n oldState,\n newState,\n oldContext\n ) ||\n !1)\n ? (getDerivedStateFromProps ||\n (\"function\" !== typeof instance.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof instance.componentWillUpdate) ||\n (\"function\" === typeof instance.componentWillUpdate &&\n instance.componentWillUpdate(nextProps, newState, oldContext),\n \"function\" === typeof instance.UNSAFE_componentWillUpdate &&\n instance.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldContext\n )),\n \"function\" === typeof instance.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof instance.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof instance.componentDidUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof instance.getSnapshotBeforeUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (instance.props = nextProps),\n (instance.state = newState),\n (instance.context = oldContext),\n (nextProps = contextType))\n : (\"function\" !== typeof instance.componentDidUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof instance.getSnapshotBeforeUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n return finishClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n hasContext,\n renderLanes\n );\n}\nfunction finishClassComponent(\n current,\n workInProgress,\n Component,\n shouldUpdate,\n hasContext,\n renderLanes\n) {\n markRef(current, workInProgress);\n var didCaptureError = 0 !== (workInProgress.flags & 128);\n if (!shouldUpdate && !didCaptureError)\n return (\n hasContext && invalidateContextProvider(workInProgress, Component, !1),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n shouldUpdate = workInProgress.stateNode;\n ReactCurrentOwner$1.current = workInProgress;\n var nextChildren =\n didCaptureError && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : shouldUpdate.render();\n workInProgress.flags |= 1;\n null !== current && didCaptureError\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n nextChildren,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n workInProgress.memoizedState = shouldUpdate.state;\n hasContext && invalidateContextProvider(workInProgress, Component, !0);\n return workInProgress.child;\n}\nfunction pushHostRootContext(workInProgress) {\n var root = workInProgress.stateNode;\n root.pendingContext\n ? pushTopLevelContextObject(\n workInProgress,\n root.pendingContext,\n root.pendingContext !== root.context\n )\n : root.context &&\n pushTopLevelContextObject(workInProgress, root.context, !1);\n pushHostContainer(workInProgress, root.containerInfo);\n}\nvar SUSPENDED_MARKER = { dehydrated: null, treeContext: null, retryLane: 0 };\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: null, transitions: null };\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n suspenseContext = suspenseStackCursor.current,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseContext & 2));\n if (JSCompiler_temp) (showFallback = !0), (workInProgress.flags &= -129);\n else if (null === current || null !== current.memoizedState)\n suspenseContext |= 1;\n push(suspenseStackCursor, suspenseContext & 1);\n if (null === current) {\n current = workInProgress.memoizedState;\n if (null !== current && null !== current.dehydrated)\n return (\n 0 === (workInProgress.mode & 1)\n ? (workInProgress.lanes = 1)\n : shim()\n ? (workInProgress.lanes = 8)\n : (workInProgress.lanes = 1073741824),\n null\n );\n didSuspend = nextProps.children;\n current = nextProps.fallback;\n return showFallback\n ? ((nextProps = workInProgress.mode),\n (showFallback = workInProgress.child),\n (didSuspend = { mode: \"hidden\", children: didSuspend }),\n 0 === (nextProps & 1) && null !== showFallback\n ? ((showFallback.childLanes = 0),\n (showFallback.pendingProps = didSuspend))\n : (showFallback = createFiberFromOffscreen(\n didSuspend,\n nextProps,\n 0,\n null\n )),\n (current = createFiberFromFragment(\n current,\n nextProps,\n renderLanes,\n null\n )),\n (showFallback.return = workInProgress),\n (current.return = workInProgress),\n (showFallback.sibling = current),\n (workInProgress.child = showFallback),\n (workInProgress.child.memoizedState = mountSuspenseOffscreenState(\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n current)\n : mountSuspensePrimaryChildren(workInProgress, didSuspend);\n }\n suspenseContext = current.memoizedState;\n if (\n null !== suspenseContext &&\n ((JSCompiler_temp = suspenseContext.dehydrated), null !== JSCompiler_temp)\n )\n return updateDehydratedSuspenseComponent(\n current,\n workInProgress,\n didSuspend,\n nextProps,\n JSCompiler_temp,\n suspenseContext,\n renderLanes\n );\n if (showFallback) {\n showFallback = nextProps.fallback;\n didSuspend = workInProgress.mode;\n suspenseContext = current.child;\n JSCompiler_temp = suspenseContext.sibling;\n var primaryChildProps = { mode: \"hidden\", children: nextProps.children };\n 0 === (didSuspend & 1) && workInProgress.child !== suspenseContext\n ? ((nextProps = workInProgress.child),\n (nextProps.childLanes = 0),\n (nextProps.pendingProps = primaryChildProps),\n (workInProgress.deletions = null))\n : ((nextProps = createWorkInProgress(suspenseContext, primaryChildProps)),\n (nextProps.subtreeFlags = suspenseContext.subtreeFlags & 14680064));\n null !== JSCompiler_temp\n ? (showFallback = createWorkInProgress(JSCompiler_temp, showFallback))\n : ((showFallback = createFiberFromFragment(\n showFallback,\n didSuspend,\n renderLanes,\n null\n )),\n (showFallback.flags |= 2));\n showFallback.return = workInProgress;\n nextProps.return = workInProgress;\n nextProps.sibling = showFallback;\n workInProgress.child = nextProps;\n nextProps = showFallback;\n showFallback = workInProgress.child;\n didSuspend = current.child.memoizedState;\n didSuspend =\n null === didSuspend\n ? mountSuspenseOffscreenState(renderLanes)\n : {\n baseLanes: didSuspend.baseLanes | renderLanes,\n cachePool: null,\n transitions: didSuspend.transitions\n };\n showFallback.memoizedState = didSuspend;\n showFallback.childLanes = current.childLanes & ~renderLanes;\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return nextProps;\n }\n showFallback = current.child;\n current = showFallback.sibling;\n nextProps = createWorkInProgress(showFallback, {\n mode: \"visible\",\n children: nextProps.children\n });\n 0 === (workInProgress.mode & 1) && (nextProps.lanes = renderLanes);\n nextProps.return = workInProgress;\n nextProps.sibling = null;\n null !== current &&\n ((renderLanes = workInProgress.deletions),\n null === renderLanes\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : renderLanes.push(current));\n workInProgress.child = nextProps;\n workInProgress.memoizedState = null;\n return nextProps;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = createFiberFromOffscreen(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode,\n 0,\n null\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n recoverableError\n) {\n null !== recoverableError &&\n (null === hydrationErrors\n ? (hydrationErrors = [recoverableError])\n : hydrationErrors.push(recoverableError));\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction updateDehydratedSuspenseComponent(\n current,\n workInProgress,\n didSuspend,\n nextProps,\n suspenseInstance,\n suspenseState,\n renderLanes\n) {\n if (didSuspend) {\n if (workInProgress.flags & 256)\n return (\n (workInProgress.flags &= -257),\n (suspenseState = createCapturedValue(\n Error(\n \"There was an error while hydrating this Suspense boundary. Switched to client rendering.\"\n )\n )),\n retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n suspenseState\n )\n );\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n null\n );\n suspenseState = nextProps.fallback;\n didSuspend = workInProgress.mode;\n nextProps = createFiberFromOffscreen(\n { mode: \"visible\", children: nextProps.children },\n didSuspend,\n 0,\n null\n );\n suspenseState = createFiberFromFragment(\n suspenseState,\n didSuspend,\n renderLanes,\n null\n );\n suspenseState.flags |= 2;\n nextProps.return = workInProgress;\n suspenseState.return = workInProgress;\n nextProps.sibling = suspenseState;\n workInProgress.child = nextProps;\n 0 !== (workInProgress.mode & 1) &&\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n workInProgress.child.memoizedState = mountSuspenseOffscreenState(\n renderLanes\n );\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return suspenseState;\n }\n if (0 === (workInProgress.mode & 1))\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n null\n );\n if (shim())\n return (\n (suspenseState = shim().digest),\n (suspenseState = createCapturedValue(\n Error(\n \"The server could not finish this Suspense boundary, likely due to an error during server rendering. Switched to client rendering.\"\n ),\n suspenseState,\n void 0\n )),\n retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n suspenseState\n )\n );\n didSuspend = 0 !== (renderLanes & current.childLanes);\n if (didReceiveUpdate || didSuspend) {\n nextProps = workInProgressRoot;\n if (null !== nextProps) {\n switch (renderLanes & -renderLanes) {\n case 4:\n didSuspend = 2;\n break;\n case 16:\n didSuspend = 8;\n break;\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n didSuspend = 32;\n break;\n case 536870912:\n didSuspend = 268435456;\n break;\n default:\n didSuspend = 0;\n }\n didSuspend =\n 0 !== (didSuspend & (nextProps.suspendedLanes | renderLanes))\n ? 0\n : didSuspend;\n 0 !== didSuspend &&\n didSuspend !== suspenseState.retryLane &&\n ((suspenseState.retryLane = didSuspend),\n markUpdateLaneFromFiberToRoot(current, didSuspend),\n scheduleUpdateOnFiber(nextProps, current, didSuspend, -1));\n }\n renderDidSuspendDelayIfPossible();\n suspenseState = createCapturedValue(\n Error(\n \"This Suspense boundary received an update before it finished hydrating. This caused the boundary to switch to client rendering. The usual way to fix this is to wrap the original update in startTransition.\"\n )\n );\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n suspenseState\n );\n }\n if (shim())\n return (\n (workInProgress.flags |= 128),\n (workInProgress.child = current.child),\n retryDehydratedSuspenseBoundary.bind(null, current),\n shim(),\n null\n );\n current = mountSuspensePrimaryChildren(workInProgress, nextProps.children);\n current.flags |= 4096;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n reconcileChildren(current, workInProgress, nextProps.children, renderLanes);\n nextProps = suspenseStackCursor.current;\n if (0 !== (nextProps & 2))\n (nextProps = (nextProps & 1) | 2), (workInProgress.flags |= 128);\n else {\n if (null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n nextProps &= 1;\n }\n push(suspenseStackCursor, nextProps);\n if (0 === (workInProgress.mode & 1)) workInProgress.memoizedState = null;\n else\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child),\n (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode\n );\n break;\n case \"backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode\n );\n break;\n case \"together\":\n initSuspenseListRenderState(workInProgress, !1, null, null, void 0);\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress) {\n 0 === (workInProgress.mode & 1) &&\n null !== current &&\n ((current.alternate = null),\n (workInProgress.alternate = null),\n (workInProgress.flags |= 2));\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes)) return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(\"Resuming work not yet implemented.\");\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling = createWorkInProgress(\n current,\n current.pendingProps\n )),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostRootContext(workInProgress);\n break;\n case 5:\n pushHostContext(workInProgress);\n break;\n case 1:\n isContextProvider(workInProgress.type) &&\n pushContextProvider(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n var context = workInProgress.type._context,\n nextValue = workInProgress.memoizedProps.value;\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n break;\n case 13:\n context = workInProgress.memoizedState;\n if (null !== context) {\n if (null !== context.dehydrated)\n return (\n push(suspenseStackCursor, suspenseStackCursor.current & 1),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n break;\n case 19:\n context = 0 !== (renderLanes & workInProgress.childLanes);\n if (0 !== (current.flags & 128)) {\n if (context)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n nextValue = workInProgress.memoizedState;\n null !== nextValue &&\n ((nextValue.rendering = null),\n (nextValue.tail = null),\n (nextValue.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (context) break;\n else return null;\n case 22:\n case 23:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(current, workInProgress, renderLanes)\n );\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nvar appendAllChildren,\n updateHostContainer,\n updateHostComponent$1,\n updateHostText$1;\nappendAllChildren = function(parent, workInProgress) {\n for (var node = workInProgress.child; null !== node; ) {\n if (5 === node.tag || 6 === node.tag) parent._children.push(node.stateNode);\n else if (4 !== node.tag && null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === workInProgress) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === workInProgress) return;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n};\nupdateHostContainer = function() {};\nupdateHostComponent$1 = function(current, workInProgress, type, newProps) {\n current.memoizedProps !== newProps &&\n (requiredContext(contextStackCursor$1.current),\n (workInProgress.updateQueue = UPDATE_SIGNAL)) &&\n (workInProgress.flags |= 4);\n};\nupdateHostText$1 = function(current, workInProgress, oldText, newText) {\n oldText !== newText && (workInProgress.flags |= 4);\n};\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$62 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$62 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$62\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$62.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$63 = completedWork.child; null !== child$63; )\n (newChildLanes |= child$63.lanes | child$63.childLanes),\n (subtreeFlags |= child$63.subtreeFlags & 14680064),\n (subtreeFlags |= child$63.flags & 14680064),\n (child$63.return = completedWork),\n (child$63 = child$63.sibling);\n else\n for (child$63 = completedWork.child; null !== child$63; )\n (newChildLanes |= child$63.lanes | child$63.childLanes),\n (subtreeFlags |= child$63.subtreeFlags),\n (subtreeFlags |= child$63.flags),\n (child$63.return = completedWork),\n (child$63 = child$63.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 2:\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return (\n isContextProvider(workInProgress.type) && popContext(),\n bubbleProperties(workInProgress),\n null\n );\n case 3:\n return (\n (renderLanes = workInProgress.stateNode),\n popHostContainer(),\n pop(didPerformWorkStackCursor),\n pop(contextStackCursor),\n resetWorkInProgressVersions(),\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null)),\n (null !== current && null !== current.child) ||\n null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n null !== hydrationErrors &&\n (queueRecoverableErrors(hydrationErrors),\n (hydrationErrors = null))),\n updateHostContainer(current, workInProgress),\n bubbleProperties(workInProgress),\n null\n );\n case 5:\n popHostContext(workInProgress);\n renderLanes = requiredContext(rootInstanceStackCursor.current);\n var type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n updateHostComponent$1(\n current,\n workInProgress,\n type,\n newProps,\n renderLanes\n ),\n current.ref !== workInProgress.ref && (workInProgress.flags |= 512);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(\n \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\"\n );\n bubbleProperties(workInProgress);\n return null;\n }\n requiredContext(contextStackCursor$1.current);\n current = allocateTag();\n type = getViewConfigForType(type);\n var updatePayload = diffProperties(\n null,\n emptyObject,\n newProps,\n type.validAttributes\n );\n ReactNativePrivateInterface.UIManager.createView(\n current,\n type.uiViewClassName,\n renderLanes,\n updatePayload\n );\n renderLanes = new ReactNativeFiberHostComponent(\n current,\n type,\n workInProgress\n );\n instanceCache.set(current, workInProgress);\n instanceProps.set(current, newProps);\n appendAllChildren(renderLanes, workInProgress, !1, !1);\n workInProgress.stateNode = renderLanes;\n finalizeInitialChildren(renderLanes) && (workInProgress.flags |= 4);\n null !== workInProgress.ref && (workInProgress.flags |= 512);\n }\n bubbleProperties(workInProgress);\n return null;\n case 6:\n if (current && null != workInProgress.stateNode)\n updateHostText$1(\n current,\n workInProgress,\n current.memoizedProps,\n newProps\n );\n else {\n if (\"string\" !== typeof newProps && null === workInProgress.stateNode)\n throw Error(\n \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\"\n );\n current = requiredContext(rootInstanceStackCursor.current);\n if (!requiredContext(contextStackCursor$1.current).isInAParentText)\n throw Error(\n \"Text strings must be rendered within a component.\"\n );\n renderLanes = allocateTag();\n ReactNativePrivateInterface.UIManager.createView(\n renderLanes,\n \"RCTRawText\",\n current,\n { text: newProps }\n );\n instanceCache.set(renderLanes, workInProgress);\n workInProgress.stateNode = renderLanes;\n }\n bubbleProperties(workInProgress);\n return null;\n case 13:\n pop(suspenseStackCursor);\n newProps = workInProgress.memoizedState;\n if (\n null === current ||\n (null !== current.memoizedState &&\n null !== current.memoizedState.dehydrated)\n ) {\n if (null !== newProps && null !== newProps.dehydrated) {\n if (null === current) {\n throw Error(\n \"A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.\"\n );\n throw Error(\n \"Expected prepareToHydrateHostSuspenseInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null);\n workInProgress.flags |= 4;\n bubbleProperties(workInProgress);\n type = !1;\n } else\n null !== hydrationErrors &&\n (queueRecoverableErrors(hydrationErrors), (hydrationErrors = null)),\n (type = !0);\n if (!type) return workInProgress.flags & 65536 ? workInProgress : null;\n }\n if (0 !== (workInProgress.flags & 128))\n return (workInProgress.lanes = renderLanes), workInProgress;\n renderLanes = null !== newProps;\n renderLanes !== (null !== current && null !== current.memoizedState) &&\n renderLanes &&\n ((workInProgress.child.flags |= 8192),\n 0 !== (workInProgress.mode & 1) &&\n (null === current || 0 !== (suspenseStackCursor.current & 1)\n ? 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3)\n : renderDidSuspendDelayIfPossible()));\n null !== workInProgress.updateQueue && (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n return null;\n case 4:\n return (\n popHostContainer(),\n updateHostContainer(current, workInProgress),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type._context),\n bubbleProperties(workInProgress),\n null\n );\n case 17:\n return (\n isContextProvider(workInProgress.type) && popContext(),\n bubbleProperties(workInProgress),\n null\n );\n case 19:\n pop(suspenseStackCursor);\n type = workInProgress.memoizedState;\n if (null === type) return bubbleProperties(workInProgress), null;\n newProps = 0 !== (workInProgress.flags & 128);\n updatePayload = type.rendering;\n if (null === updatePayload)\n if (newProps) cutOffTailIfNeeded(type, !1);\n else {\n if (\n 0 !== workInProgressRootExitStatus ||\n (null !== current && 0 !== (current.flags & 128))\n )\n for (current = workInProgress.child; null !== current; ) {\n updatePayload = findFirstSuspended(current);\n if (null !== updatePayload) {\n workInProgress.flags |= 128;\n cutOffTailIfNeeded(type, !1);\n current = updatePayload.updateQueue;\n null !== current &&\n ((workInProgress.updateQueue = current),\n (workInProgress.flags |= 4));\n workInProgress.subtreeFlags = 0;\n current = renderLanes;\n for (renderLanes = workInProgress.child; null !== renderLanes; )\n (newProps = renderLanes),\n (type = current),\n (newProps.flags &= 14680066),\n (updatePayload = newProps.alternate),\n null === updatePayload\n ? ((newProps.childLanes = 0),\n (newProps.lanes = type),\n (newProps.child = null),\n (newProps.subtreeFlags = 0),\n (newProps.memoizedProps = null),\n (newProps.memoizedState = null),\n (newProps.updateQueue = null),\n (newProps.dependencies = null),\n (newProps.stateNode = null))\n : ((newProps.childLanes = updatePayload.childLanes),\n (newProps.lanes = updatePayload.lanes),\n (newProps.child = updatePayload.child),\n (newProps.subtreeFlags = 0),\n (newProps.deletions = null),\n (newProps.memoizedProps = updatePayload.memoizedProps),\n (newProps.memoizedState = updatePayload.memoizedState),\n (newProps.updateQueue = updatePayload.updateQueue),\n (newProps.type = updatePayload.type),\n (type = updatePayload.dependencies),\n (newProps.dependencies =\n null === type\n ? null\n : {\n lanes: type.lanes,\n firstContext: type.firstContext\n })),\n (renderLanes = renderLanes.sibling);\n push(\n suspenseStackCursor,\n (suspenseStackCursor.current & 1) | 2\n );\n return workInProgress.child;\n }\n current = current.sibling;\n }\n null !== type.tail &&\n now() > workInProgressRootRenderTargetTime &&\n ((workInProgress.flags |= 128),\n (newProps = !0),\n cutOffTailIfNeeded(type, !1),\n (workInProgress.lanes = 4194304));\n }\n else {\n if (!newProps)\n if (\n ((current = findFirstSuspended(updatePayload)), null !== current)\n ) {\n if (\n ((workInProgress.flags |= 128),\n (newProps = !0),\n (current = current.updateQueue),\n null !== current &&\n ((workInProgress.updateQueue = current),\n (workInProgress.flags |= 4)),\n cutOffTailIfNeeded(type, !0),\n null === type.tail &&\n \"hidden\" === type.tailMode &&\n !updatePayload.alternate)\n )\n return bubbleProperties(workInProgress), null;\n } else\n 2 * now() - type.renderingStartTime >\n workInProgressRootRenderTargetTime &&\n 1073741824 !== renderLanes &&\n ((workInProgress.flags |= 128),\n (newProps = !0),\n cutOffTailIfNeeded(type, !1),\n (workInProgress.lanes = 4194304));\n type.isBackwards\n ? ((updatePayload.sibling = workInProgress.child),\n (workInProgress.child = updatePayload))\n : ((current = type.last),\n null !== current\n ? (current.sibling = updatePayload)\n : (workInProgress.child = updatePayload),\n (type.last = updatePayload));\n }\n if (null !== type.tail)\n return (\n (workInProgress = type.tail),\n (type.rendering = workInProgress),\n (type.tail = workInProgress.sibling),\n (type.renderingStartTime = now()),\n (workInProgress.sibling = null),\n (current = suspenseStackCursor.current),\n push(suspenseStackCursor, newProps ? (current & 1) | 2 : current & 1),\n workInProgress\n );\n bubbleProperties(workInProgress);\n return null;\n case 22:\n case 23:\n return (\n popRenderLanes(),\n (renderLanes = null !== workInProgress.memoizedState),\n null !== current &&\n (null !== current.memoizedState) !== renderLanes &&\n (workInProgress.flags |= 8192),\n renderLanes && 0 !== (workInProgress.mode & 1)\n ? 0 !== (subtreeRenderLanes & 1073741824) &&\n (bubbleProperties(workInProgress),\n workInProgress.subtreeFlags & 6 && (workInProgress.flags |= 8192))\n : bubbleProperties(workInProgress),\n null\n );\n case 24:\n return null;\n case 25:\n return null;\n }\n throw Error(\n \"Unknown unit of work tag (\" +\n workInProgress.tag +\n \"). This error is likely caused by a bug in React. Please file an issue.\"\n );\n}\nfunction unwindWork(current, workInProgress) {\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 1:\n return (\n isContextProvider(workInProgress.type) && popContext(),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 3:\n return (\n popHostContainer(),\n pop(didPerformWorkStackCursor),\n pop(contextStackCursor),\n resetWorkInProgressVersions(),\n (current = workInProgress.flags),\n 0 !== (current & 65536) && 0 === (current & 128)\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 5:\n return popHostContext(workInProgress), null;\n case 13:\n pop(suspenseStackCursor);\n current = workInProgress.memoizedState;\n if (\n null !== current &&\n null !== current.dehydrated &&\n null === workInProgress.alternate\n )\n throw Error(\n \"Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.\"\n );\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 19:\n return pop(suspenseStackCursor), null;\n case 4:\n return popHostContainer(), null;\n case 10:\n return popProvider(workInProgress.type._context), null;\n case 22:\n case 23:\n return popRenderLanes(), null;\n case 24:\n return null;\n default:\n return null;\n }\n}\nvar PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null;\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref;\n if (null !== ref)\n if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n else ref.current = null;\n}\nfunction safelyCallDestroy(current, nearestMountedAncestor, destroy) {\n try {\n destroy();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nvar shouldFireAfterActiveInstanceBlur = !1;\nfunction commitBeforeMutationEffects(root, firstChild) {\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((root = nextEffect),\n (firstChild = root.child),\n 0 !== (root.subtreeFlags & 1028) && null !== firstChild)\n )\n (firstChild.return = root), (nextEffect = firstChild);\n else\n for (; null !== nextEffect; ) {\n root = nextEffect;\n try {\n var current = root.alternate;\n if (0 !== (root.flags & 1024))\n switch (root.tag) {\n case 0:\n case 11:\n case 15:\n break;\n case 1:\n if (null !== current) {\n var prevProps = current.memoizedProps,\n prevState = current.memoizedState,\n instance = root.stateNode,\n snapshot = instance.getSnapshotBeforeUpdate(\n root.elementType === root.type\n ? prevProps\n : resolveDefaultProps(root.type, prevProps),\n prevState\n );\n instance.__reactInternalSnapshotBeforeUpdate = snapshot;\n }\n break;\n case 3:\n break;\n case 5:\n case 6:\n case 4:\n case 17:\n break;\n default:\n throw Error(\n \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n } catch (error) {\n captureCommitPhaseError(root, root.return, error);\n }\n firstChild = root.sibling;\n if (null !== firstChild) {\n firstChild.return = root.return;\n nextEffect = firstChild;\n break;\n }\n nextEffect = root.return;\n }\n current = shouldFireAfterActiveInstanceBlur;\n shouldFireAfterActiveInstanceBlur = !1;\n return current;\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor\n) {\n var updateQueue = finishedWork.updateQueue;\n updateQueue = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== updateQueue) {\n var effect = (updateQueue = updateQueue.next);\n do {\n if ((effect.tag & flags) === flags) {\n var destroy = effect.destroy;\n effect.destroy = void 0;\n void 0 !== destroy &&\n safelyCallDestroy(finishedWork, nearestMountedAncestor, destroy);\n }\n effect = effect.next;\n } while (effect !== updateQueue);\n }\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n finishedWork = finishedWork.updateQueue;\n finishedWork = null !== finishedWork ? finishedWork.lastEffect : null;\n if (null !== finishedWork) {\n var effect = (finishedWork = finishedWork.next);\n do {\n if ((effect.tag & flags) === flags) {\n var create$75 = effect.create;\n effect.destroy = create$75();\n }\n effect = effect.next;\n } while (effect !== finishedWork);\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nfunction isHostParent(fiber) {\n return 5 === fiber.tag || 3 === fiber.tag || 4 === fiber.tag;\n}\nfunction getHostSibling(fiber) {\n a: for (;;) {\n for (; null === fiber.sibling; ) {\n if (null === fiber.return || isHostParent(fiber.return)) return null;\n fiber = fiber.return;\n }\n fiber.sibling.return = fiber.return;\n for (\n fiber = fiber.sibling;\n 5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;\n\n ) {\n if (fiber.flags & 2) continue a;\n if (null === fiber.child || 4 === fiber.tag) continue a;\n else (fiber.child.return = fiber), (fiber = fiber.child);\n }\n if (!(fiber.flags & 2)) return fiber.stateNode;\n }\n}\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n if (((node = node.stateNode), before)) {\n if (\"number\" === typeof parent)\n throw Error(\"Container does not support insertBefore operation\");\n } else\n ReactNativePrivateInterface.UIManager.setChildren(parent, [\n \"number\" === typeof node ? node : node._nativeTag\n ]);\n else if (4 !== tag && ((node = node.child), null !== node))\n for (\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n (node = node.sibling);\n}\nfunction insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n if (((node = node.stateNode), before)) {\n tag = parent._children;\n var index = tag.indexOf(node);\n 0 <= index\n ? (tag.splice(index, 1),\n (before = tag.indexOf(before)),\n tag.splice(before, 0, node),\n ReactNativePrivateInterface.UIManager.manageChildren(\n parent._nativeTag,\n [index],\n [before],\n [],\n [],\n []\n ))\n : ((before = tag.indexOf(before)),\n tag.splice(before, 0, node),\n ReactNativePrivateInterface.UIManager.manageChildren(\n parent._nativeTag,\n [],\n [],\n [\"number\" === typeof node ? node : node._nativeTag],\n [before],\n []\n ));\n } else\n (before = \"number\" === typeof node ? node : node._nativeTag),\n (tag = parent._children),\n (index = tag.indexOf(node)),\n 0 <= index\n ? (tag.splice(index, 1),\n tag.push(node),\n ReactNativePrivateInterface.UIManager.manageChildren(\n parent._nativeTag,\n [index],\n [tag.length - 1],\n [],\n [],\n []\n ))\n : (tag.push(node),\n ReactNativePrivateInterface.UIManager.manageChildren(\n parent._nativeTag,\n [],\n [],\n [before],\n [tag.length - 1],\n []\n ));\n else if (4 !== tag && ((node = node.child), null !== node))\n for (\n insertOrAppendPlacementNode(node, before, parent), node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(node, before, parent), (node = node.sibling);\n}\nvar hostParent = null,\n hostParentIsContainer = !1;\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 5:\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n var prevHostParent = hostParent,\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = null;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n null !== hostParent &&\n (hostParentIsContainer\n ? ((finishedRoot = hostParent),\n recursivelyUncacheFiberNode(deletedFiber.stateNode),\n ReactNativePrivateInterface.UIManager.manageChildren(\n finishedRoot,\n [],\n [],\n [],\n [],\n [0]\n ))\n : ((finishedRoot = hostParent),\n (nearestMountedAncestor = deletedFiber.stateNode),\n recursivelyUncacheFiberNode(nearestMountedAncestor),\n (deletedFiber = finishedRoot._children),\n (nearestMountedAncestor = deletedFiber.indexOf(\n nearestMountedAncestor\n )),\n deletedFiber.splice(nearestMountedAncestor, 1),\n ReactNativePrivateInterface.UIManager.manageChildren(\n finishedRoot._nativeTag,\n [],\n [],\n [],\n [],\n [nearestMountedAncestor]\n )));\n break;\n case 18:\n null !== hostParent && shim(hostParent, deletedFiber.stateNode);\n break;\n case 4:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode.containerInfo;\n hostParentIsContainer = !0;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n prevHostParent = deletedFiber.updateQueue;\n if (\n null !== prevHostParent &&\n ((prevHostParent = prevHostParent.lastEffect), null !== prevHostParent)\n ) {\n prevHostParentIsContainer = prevHostParent = prevHostParent.next;\n do {\n var _effect = prevHostParentIsContainer,\n destroy = _effect.destroy;\n _effect = _effect.tag;\n void 0 !== destroy &&\n (0 !== (_effect & 2)\n ? safelyCallDestroy(deletedFiber, nearestMountedAncestor, destroy)\n : 0 !== (_effect & 4) &&\n safelyCallDestroy(\n deletedFiber,\n nearestMountedAncestor,\n destroy\n ));\n prevHostParentIsContainer = prevHostParentIsContainer.next;\n } while (prevHostParentIsContainer !== prevHostParent);\n }\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n prevHostParent = deletedFiber.stateNode;\n if (\"function\" === typeof prevHostParent.componentWillUnmount)\n try {\n (prevHostParent.props = deletedFiber.memoizedProps),\n (prevHostParent.state = deletedFiber.memoizedState),\n prevHostParent.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(deletedFiber, nearestMountedAncestor, error);\n }\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork) {\n var wakeables = finishedWork.updateQueue;\n if (null !== wakeables) {\n finishedWork.updateQueue = null;\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n wakeables.forEach(function(wakeable) {\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n retryCache.has(wakeable) ||\n (retryCache.add(wakeable), wakeable.then(retry, retry));\n });\n }\n}\nfunction recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n try {\n var root = root$jscomp$0,\n returnFiber = parentFiber,\n parent = returnFiber;\n a: for (; null !== parent; ) {\n switch (parent.tag) {\n case 5:\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n case 3:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n case 4:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n }\n parent = parent.return;\n }\n if (null === hostParent)\n throw Error(\n \"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.\"\n );\n commitDeletionEffectsOnFiber(root, returnFiber, childToDelete);\n hostParent = null;\n hostParentIsContainer = !1;\n var alternate = childToDelete.alternate;\n null !== alternate && (alternate.return = null);\n childToDelete.return = null;\n } catch (error) {\n captureCommitPhaseError(childToDelete, parentFiber, error);\n }\n }\n if (parentFiber.subtreeFlags & 12854)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n try {\n commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n try {\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return);\n } catch (error$85) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error$85);\n }\n }\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n null !== current &&\n safelyDetachRef(current, current.return);\n break;\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n null !== current &&\n safelyDetachRef(current, current.return);\n if (flags & 4) {\n var instance$87 = finishedWork.stateNode;\n if (null != instance$87) {\n var newProps = finishedWork.memoizedProps,\n oldProps = null !== current ? current.memoizedProps : newProps,\n updatePayload = finishedWork.updateQueue;\n finishedWork.updateQueue = null;\n if (null !== updatePayload)\n try {\n var viewConfig = instance$87.viewConfig;\n instanceProps.set(instance$87._nativeTag, newProps);\n var updatePayload$jscomp$0 = diffProperties(\n null,\n oldProps,\n newProps,\n viewConfig.validAttributes\n );\n null != updatePayload$jscomp$0 &&\n ReactNativePrivateInterface.UIManager.updateView(\n instance$87._nativeTag,\n viewConfig.uiViewClassName,\n updatePayload$jscomp$0\n );\n } catch (error$88) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$88\n );\n }\n }\n }\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(\n \"This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue.\"\n );\n viewConfig = finishedWork.stateNode;\n updatePayload$jscomp$0 = finishedWork.memoizedProps;\n try {\n ReactNativePrivateInterface.UIManager.updateView(\n viewConfig,\n \"RCTRawText\",\n { text: updatePayload$jscomp$0 }\n );\n } catch (error$89) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error$89);\n }\n }\n break;\n case 3:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 4:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n viewConfig = finishedWork.child;\n viewConfig.flags & 8192 &&\n ((updatePayload$jscomp$0 = null !== viewConfig.memoizedState),\n (viewConfig.stateNode.isHidden = updatePayload$jscomp$0),\n !updatePayload$jscomp$0 ||\n (null !== viewConfig.alternate &&\n null !== viewConfig.alternate.memoizedState) ||\n (globalMostRecentFallbackTime = now()));\n flags & 4 && attachSuspenseRetryListeners(finishedWork);\n break;\n case 22:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 8192)\n a: for (\n viewConfig = null !== finishedWork.memoizedState,\n finishedWork.stateNode.isHidden = viewConfig,\n updatePayload$jscomp$0 = null,\n current = finishedWork;\n ;\n\n ) {\n if (5 === current.tag) {\n if (null === updatePayload$jscomp$0) {\n updatePayload$jscomp$0 = current;\n try {\n if (((instance$87 = current.stateNode), viewConfig))\n (newProps = instance$87.viewConfig),\n (oldProps = diffProperties(\n null,\n emptyObject,\n { style: { display: \"none\" } },\n newProps.validAttributes\n )),\n ReactNativePrivateInterface.UIManager.updateView(\n instance$87._nativeTag,\n newProps.uiViewClassName,\n oldProps\n );\n else {\n updatePayload = current.stateNode;\n var props = current.memoizedProps,\n viewConfig$jscomp$0 = updatePayload.viewConfig,\n prevProps = assign({}, props, {\n style: [props.style, { display: \"none\" }]\n });\n var updatePayload$jscomp$1 = diffProperties(\n null,\n prevProps,\n props,\n viewConfig$jscomp$0.validAttributes\n );\n ReactNativePrivateInterface.UIManager.updateView(\n updatePayload._nativeTag,\n viewConfig$jscomp$0.uiViewClassName,\n updatePayload$jscomp$1\n );\n }\n } catch (error) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error\n );\n }\n }\n } else if (6 === current.tag) {\n if (null === updatePayload$jscomp$0)\n try {\n throw Error(\"Not yet implemented.\");\n } catch (error$80) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$80\n );\n }\n } else if (\n ((22 !== current.tag && 23 !== current.tag) ||\n null === current.memoizedState ||\n current === finishedWork) &&\n null !== current.child\n ) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === finishedWork) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === finishedWork)\n break a;\n updatePayload$jscomp$0 === current &&\n (updatePayload$jscomp$0 = null);\n current = current.return;\n }\n updatePayload$jscomp$0 === current && (updatePayload$jscomp$0 = null);\n current.sibling.return = current.return;\n current = current.sibling;\n }\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 && attachSuspenseRetryListeners(finishedWork);\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n if (flags & 2) {\n try {\n a: {\n for (var parent = finishedWork.return; null !== parent; ) {\n if (isHostParent(parent)) {\n var JSCompiler_inline_result = parent;\n break a;\n }\n parent = parent.return;\n }\n throw Error(\n \"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n switch (JSCompiler_inline_result.tag) {\n case 5:\n var parent$jscomp$0 = JSCompiler_inline_result.stateNode;\n JSCompiler_inline_result.flags & 32 &&\n (JSCompiler_inline_result.flags &= -33);\n var before = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before, parent$jscomp$0);\n break;\n case 3:\n case 4:\n var parent$81 = JSCompiler_inline_result.stateNode.containerInfo,\n before$82 = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n before$82,\n parent$81\n );\n break;\n default:\n throw Error(\n \"Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n finishedWork.flags &= -3;\n }\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction commitLayoutEffects(finishedWork) {\n for (nextEffect = finishedWork; null !== nextEffect; ) {\n var fiber = nextEffect,\n firstChild = fiber.child;\n if (0 !== (fiber.subtreeFlags & 8772) && null !== firstChild)\n (firstChild.return = fiber), (nextEffect = firstChild);\n else\n for (fiber = finishedWork; null !== nextEffect; ) {\n firstChild = nextEffect;\n if (0 !== (firstChild.flags & 8772)) {\n var current = firstChild.alternate;\n try {\n if (0 !== (firstChild.flags & 8772))\n switch (firstChild.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListMount(5, firstChild);\n break;\n case 1:\n var instance = firstChild.stateNode;\n if (firstChild.flags & 4)\n if (null === current) instance.componentDidMount();\n else {\n var prevProps =\n firstChild.elementType === firstChild.type\n ? current.memoizedProps\n : resolveDefaultProps(\n firstChild.type,\n current.memoizedProps\n );\n instance.componentDidUpdate(\n prevProps,\n current.memoizedState,\n instance.__reactInternalSnapshotBeforeUpdate\n );\n }\n var updateQueue = firstChild.updateQueue;\n null !== updateQueue &&\n commitUpdateQueue(firstChild, updateQueue, instance);\n break;\n case 3:\n var updateQueue$76 = firstChild.updateQueue;\n if (null !== updateQueue$76) {\n current = null;\n if (null !== firstChild.child)\n switch (firstChild.child.tag) {\n case 5:\n current = firstChild.child.stateNode;\n break;\n case 1:\n current = firstChild.child.stateNode;\n }\n commitUpdateQueue(firstChild, updateQueue$76, current);\n }\n break;\n case 5:\n break;\n case 6:\n break;\n case 4:\n break;\n case 12:\n break;\n case 13:\n break;\n case 19:\n case 17:\n case 21:\n case 22:\n case 23:\n case 25:\n break;\n default:\n throw Error(\n \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (firstChild.flags & 512) {\n current = void 0;\n var ref = firstChild.ref;\n if (null !== ref) {\n var instance$jscomp$0 = firstChild.stateNode;\n switch (firstChild.tag) {\n case 5:\n current = instance$jscomp$0;\n break;\n default:\n current = instance$jscomp$0;\n }\n \"function\" === typeof ref\n ? ref(current)\n : (ref.current = current);\n }\n }\n } catch (error) {\n captureCommitPhaseError(firstChild, firstChild.return, error);\n }\n }\n if (firstChild === fiber) {\n nextEffect = null;\n break;\n }\n current = firstChild.sibling;\n if (null !== current) {\n current.return = firstChild.return;\n nextEffect = current;\n break;\n }\n nextEffect = firstChild.return;\n }\n }\n}\nvar ceil = Math.ceil,\n ReactCurrentDispatcher$2 = ReactSharedInternals.ReactCurrentDispatcher,\n ReactCurrentOwner$2 = ReactSharedInternals.ReactCurrentOwner,\n ReactCurrentBatchConfig$2 = ReactSharedInternals.ReactCurrentBatchConfig,\n executionContext = 0,\n workInProgressRoot = null,\n workInProgress = null,\n workInProgressRootRenderLanes = 0,\n subtreeRenderLanes = 0,\n subtreeRenderLanesCursor = createCursor(0),\n workInProgressRootExitStatus = 0,\n workInProgressRootFatalError = null,\n workInProgressRootSkippedLanes = 0,\n workInProgressRootInterleavedUpdatedLanes = 0,\n workInProgressRootPingedLanes = 0,\n workInProgressRootConcurrentErrors = null,\n workInProgressRootRecoverableErrors = null,\n globalMostRecentFallbackTime = 0,\n workInProgressRootRenderTargetTime = Infinity,\n workInProgressTransitions = null,\n hasUncaughtError = !1,\n firstUncaughtError = null,\n legacyErrorBoundariesThatAlreadyFailed = null,\n rootDoesHavePassiveEffects = !1,\n rootWithPendingPassiveEffects = null,\n pendingPassiveEffectsLanes = 0,\n nestedUpdateCount = 0,\n rootWithNestedUpdates = null,\n currentEventTime = -1,\n currentEventTransitionLane = 0;\nfunction requestEventTime() {\n return 0 !== (executionContext & 6)\n ? now()\n : -1 !== currentEventTime\n ? currentEventTime\n : (currentEventTime = now());\n}\nfunction requestUpdateLane(fiber) {\n if (0 === (fiber.mode & 1)) return 1;\n if (0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes)\n return workInProgressRootRenderLanes & -workInProgressRootRenderLanes;\n if (null !== ReactCurrentBatchConfig.transition)\n return (\n 0 === currentEventTransitionLane &&\n (currentEventTransitionLane = claimNextTransitionLane()),\n currentEventTransitionLane\n );\n fiber = currentUpdatePriority;\n return 0 !== fiber ? fiber : 16;\n}\nfunction scheduleUpdateOnFiber(root, fiber, lane, eventTime) {\n if (50 < nestedUpdateCount)\n throw ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(\n \"Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\"\n ));\n markRootUpdated(root, lane, eventTime);\n if (0 === (executionContext & 2) || root !== workInProgressRoot)\n root === workInProgressRoot &&\n (0 === (executionContext & 2) &&\n (workInProgressRootInterleavedUpdatedLanes |= lane),\n 4 === workInProgressRootExitStatus &&\n markRootSuspended$1(root, workInProgressRootRenderLanes)),\n ensureRootIsScheduled(root, eventTime),\n 1 === lane &&\n 0 === executionContext &&\n 0 === (fiber.mode & 1) &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n includesLegacySyncCallbacks && flushSyncCallbacks());\n}\nfunction ensureRootIsScheduled(root, currentTime) {\n for (\n var existingCallbackNode = root.callbackNode,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n expirationTimes = root.expirationTimes,\n lanes = root.pendingLanes;\n 0 < lanes;\n\n ) {\n var index$6 = 31 - clz32(lanes),\n lane = 1 << index$6,\n expirationTime = expirationTimes[index$6];\n if (-1 === expirationTime) {\n if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n expirationTimes[index$6] = computeExpirationTime(lane, currentTime);\n } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n lanes &= ~lane;\n }\n suspendedLanes = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes : 0\n );\n if (0 === suspendedLanes)\n null !== existingCallbackNode && cancelCallback(existingCallbackNode),\n (root.callbackNode = null),\n (root.callbackPriority = 0);\n else if (\n ((currentTime = suspendedLanes & -suspendedLanes),\n root.callbackPriority !== currentTime)\n ) {\n null != existingCallbackNode && cancelCallback(existingCallbackNode);\n if (1 === currentTime)\n 0 === root.tag\n ? ((existingCallbackNode = performSyncWorkOnRoot.bind(null, root)),\n (includesLegacySyncCallbacks = !0),\n null === syncQueue\n ? (syncQueue = [existingCallbackNode])\n : syncQueue.push(existingCallbackNode))\n : ((existingCallbackNode = performSyncWorkOnRoot.bind(null, root)),\n null === syncQueue\n ? (syncQueue = [existingCallbackNode])\n : syncQueue.push(existingCallbackNode)),\n scheduleCallback(ImmediatePriority, flushSyncCallbacks),\n (existingCallbackNode = null);\n else {\n switch (lanesToEventPriority(suspendedLanes)) {\n case 1:\n existingCallbackNode = ImmediatePriority;\n break;\n case 4:\n existingCallbackNode = UserBlockingPriority;\n break;\n case 16:\n existingCallbackNode = NormalPriority;\n break;\n case 536870912:\n existingCallbackNode = IdlePriority;\n break;\n default:\n existingCallbackNode = NormalPriority;\n }\n existingCallbackNode = scheduleCallback$1(\n existingCallbackNode,\n performConcurrentWorkOnRoot.bind(null, root)\n );\n }\n root.callbackPriority = currentTime;\n root.callbackNode = existingCallbackNode;\n }\n}\nfunction performConcurrentWorkOnRoot(root, didTimeout) {\n currentEventTime = -1;\n currentEventTransitionLane = 0;\n if (0 !== (executionContext & 6))\n throw Error(\"Should not already be working.\");\n var originalCallbackNode = root.callbackNode;\n if (flushPassiveEffects() && root.callbackNode !== originalCallbackNode)\n return null;\n var lanes = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes : 0\n );\n if (0 === lanes) return null;\n if (0 !== (lanes & 30) || 0 !== (lanes & root.expiredLanes) || didTimeout)\n didTimeout = renderRootSync(root, lanes);\n else {\n didTimeout = lanes;\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher();\n if (\n workInProgressRoot !== root ||\n workInProgressRootRenderLanes !== didTimeout\n )\n (workInProgressTransitions = null),\n (workInProgressRootRenderTargetTime = now() + 500),\n prepareFreshStack(root, didTimeout);\n do\n try {\n workLoopConcurrent();\n break;\n } catch (thrownValue) {\n handleError(root, thrownValue);\n }\n while (1);\n resetContextDependencies();\n ReactCurrentDispatcher$2.current = prevDispatcher;\n executionContext = prevExecutionContext;\n null !== workInProgress\n ? (didTimeout = 0)\n : ((workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0),\n (didTimeout = workInProgressRootExitStatus));\n }\n if (0 !== didTimeout) {\n 2 === didTimeout &&\n ((prevExecutionContext = getLanesToRetrySynchronouslyOnError(root)),\n 0 !== prevExecutionContext &&\n ((lanes = prevExecutionContext),\n (didTimeout = recoverFromConcurrentError(root, prevExecutionContext))));\n if (1 === didTimeout)\n throw ((originalCallbackNode = workInProgressRootFatalError),\n prepareFreshStack(root, 0),\n markRootSuspended$1(root, lanes),\n ensureRootIsScheduled(root, now()),\n originalCallbackNode);\n if (6 === didTimeout) markRootSuspended$1(root, lanes);\n else {\n prevExecutionContext = root.current.alternate;\n if (\n 0 === (lanes & 30) &&\n !isRenderConsistentWithExternalStores(prevExecutionContext) &&\n ((didTimeout = renderRootSync(root, lanes)),\n 2 === didTimeout &&\n ((prevDispatcher = getLanesToRetrySynchronouslyOnError(root)),\n 0 !== prevDispatcher &&\n ((lanes = prevDispatcher),\n (didTimeout = recoverFromConcurrentError(root, prevDispatcher)))),\n 1 === didTimeout)\n )\n throw ((originalCallbackNode = workInProgressRootFatalError),\n prepareFreshStack(root, 0),\n markRootSuspended$1(root, lanes),\n ensureRootIsScheduled(root, now()),\n originalCallbackNode);\n root.finishedWork = prevExecutionContext;\n root.finishedLanes = lanes;\n switch (didTimeout) {\n case 0:\n case 1:\n throw Error(\"Root did not complete. This is a bug in React.\");\n case 2:\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n case 3:\n markRootSuspended$1(root, lanes);\n if (\n (lanes & 130023424) === lanes &&\n ((didTimeout = globalMostRecentFallbackTime + 500 - now()),\n 10 < didTimeout)\n ) {\n if (0 !== getNextLanes(root, 0)) break;\n prevExecutionContext = root.suspendedLanes;\n if ((prevExecutionContext & lanes) !== lanes) {\n requestEventTime();\n root.pingedLanes |= root.suspendedLanes & prevExecutionContext;\n break;\n }\n root.timeoutHandle = scheduleTimeout(\n commitRoot.bind(\n null,\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n ),\n didTimeout\n );\n break;\n }\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n case 4:\n markRootSuspended$1(root, lanes);\n if ((lanes & 4194240) === lanes) break;\n didTimeout = root.eventTimes;\n for (prevExecutionContext = -1; 0 < lanes; ) {\n var index$5 = 31 - clz32(lanes);\n prevDispatcher = 1 << index$5;\n index$5 = didTimeout[index$5];\n index$5 > prevExecutionContext && (prevExecutionContext = index$5);\n lanes &= ~prevDispatcher;\n }\n lanes = prevExecutionContext;\n lanes = now() - lanes;\n lanes =\n (120 > lanes\n ? 120\n : 480 > lanes\n ? 480\n : 1080 > lanes\n ? 1080\n : 1920 > lanes\n ? 1920\n : 3e3 > lanes\n ? 3e3\n : 4320 > lanes\n ? 4320\n : 1960 * ceil(lanes / 1960)) - lanes;\n if (10 < lanes) {\n root.timeoutHandle = scheduleTimeout(\n commitRoot.bind(\n null,\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n ),\n lanes\n );\n break;\n }\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n case 5:\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n default:\n throw Error(\"Unknown root exit status.\");\n }\n }\n }\n ensureRootIsScheduled(root, now());\n return root.callbackNode === originalCallbackNode\n ? performConcurrentWorkOnRoot.bind(null, root)\n : null;\n}\nfunction recoverFromConcurrentError(root, errorRetryLanes) {\n var errorsFromFirstAttempt = workInProgressRootConcurrentErrors;\n root.current.memoizedState.isDehydrated &&\n (prepareFreshStack(root, errorRetryLanes).flags |= 256);\n root = renderRootSync(root, errorRetryLanes);\n 2 !== root &&\n ((errorRetryLanes = workInProgressRootRecoverableErrors),\n (workInProgressRootRecoverableErrors = errorsFromFirstAttempt),\n null !== errorRetryLanes && queueRecoverableErrors(errorRetryLanes));\n return root;\n}\nfunction queueRecoverableErrors(errors) {\n null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = errors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n errors\n );\n}\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n for (var node = finishedWork; ; ) {\n if (node.flags & 16384) {\n var updateQueue = node.updateQueue;\n if (\n null !== updateQueue &&\n ((updateQueue = updateQueue.stores), null !== updateQueue)\n )\n for (var i = 0; i < updateQueue.length; i++) {\n var check = updateQueue[i],\n getSnapshot = check.getSnapshot;\n check = check.value;\n try {\n if (!objectIs(getSnapshot(), check)) return !1;\n } catch (error) {\n return !1;\n }\n }\n }\n updateQueue = node.child;\n if (node.subtreeFlags & 16384 && null !== updateQueue)\n (updateQueue.return = node), (node = updateQueue);\n else {\n if (node === finishedWork) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === finishedWork) return !0;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n return !0;\n}\nfunction markRootSuspended$1(root, suspendedLanes) {\n suspendedLanes &= ~workInProgressRootPingedLanes;\n suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes;\n for (root = root.expirationTimes; 0 < suspendedLanes; ) {\n var index$7 = 31 - clz32(suspendedLanes),\n lane = 1 << index$7;\n root[index$7] = -1;\n suspendedLanes &= ~lane;\n }\n}\nfunction performSyncWorkOnRoot(root) {\n if (0 !== (executionContext & 6))\n throw Error(\"Should not already be working.\");\n flushPassiveEffects();\n var lanes = getNextLanes(root, 0);\n if (0 === (lanes & 1)) return ensureRootIsScheduled(root, now()), null;\n var exitStatus = renderRootSync(root, lanes);\n if (0 !== root.tag && 2 === exitStatus) {\n var errorRetryLanes = getLanesToRetrySynchronouslyOnError(root);\n 0 !== errorRetryLanes &&\n ((lanes = errorRetryLanes),\n (exitStatus = recoverFromConcurrentError(root, errorRetryLanes)));\n }\n if (1 === exitStatus)\n throw ((exitStatus = workInProgressRootFatalError),\n prepareFreshStack(root, 0),\n markRootSuspended$1(root, lanes),\n ensureRootIsScheduled(root, now()),\n exitStatus);\n if (6 === exitStatus)\n throw Error(\"Root did not complete. This is a bug in React.\");\n root.finishedWork = root.current.alternate;\n root.finishedLanes = lanes;\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n ensureRootIsScheduled(root, now());\n return null;\n}\nfunction popRenderLanes() {\n subtreeRenderLanes = subtreeRenderLanesCursor.current;\n pop(subtreeRenderLanesCursor);\n}\nfunction prepareFreshStack(root, lanes) {\n root.finishedWork = null;\n root.finishedLanes = 0;\n var timeoutHandle = root.timeoutHandle;\n -1 !== timeoutHandle &&\n ((root.timeoutHandle = -1), cancelTimeout(timeoutHandle));\n if (null !== workInProgress)\n for (timeoutHandle = workInProgress.return; null !== timeoutHandle; ) {\n var interruptedWork = timeoutHandle;\n popTreeContext(interruptedWork);\n switch (interruptedWork.tag) {\n case 1:\n interruptedWork = interruptedWork.type.childContextTypes;\n null !== interruptedWork &&\n void 0 !== interruptedWork &&\n popContext();\n break;\n case 3:\n popHostContainer();\n pop(didPerformWorkStackCursor);\n pop(contextStackCursor);\n resetWorkInProgressVersions();\n break;\n case 5:\n popHostContext(interruptedWork);\n break;\n case 4:\n popHostContainer();\n break;\n case 13:\n pop(suspenseStackCursor);\n break;\n case 19:\n pop(suspenseStackCursor);\n break;\n case 10:\n popProvider(interruptedWork.type._context);\n break;\n case 22:\n case 23:\n popRenderLanes();\n }\n timeoutHandle = timeoutHandle.return;\n }\n workInProgressRoot = root;\n workInProgress = root = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = subtreeRenderLanes = lanes;\n workInProgressRootExitStatus = 0;\n workInProgressRootFatalError = null;\n workInProgressRootPingedLanes = workInProgressRootInterleavedUpdatedLanes = workInProgressRootSkippedLanes = 0;\n workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors = null;\n if (null !== concurrentQueues) {\n for (lanes = 0; lanes < concurrentQueues.length; lanes++)\n if (\n ((timeoutHandle = concurrentQueues[lanes]),\n (interruptedWork = timeoutHandle.interleaved),\n null !== interruptedWork)\n ) {\n timeoutHandle.interleaved = null;\n var firstInterleavedUpdate = interruptedWork.next,\n lastPendingUpdate = timeoutHandle.pending;\n if (null !== lastPendingUpdate) {\n var firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = firstInterleavedUpdate;\n interruptedWork.next = firstPendingUpdate;\n }\n timeoutHandle.pending = interruptedWork;\n }\n concurrentQueues = null;\n }\n return root;\n}\nfunction handleError(root$jscomp$0, thrownValue) {\n do {\n var erroredWork = workInProgress;\n try {\n resetContextDependencies();\n ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n if (didScheduleRenderPhaseUpdate) {\n for (\n var hook = currentlyRenderingFiber$1.memoizedState;\n null !== hook;\n\n ) {\n var queue = hook.queue;\n null !== queue && (queue.pending = null);\n hook = hook.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber$1 = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n ReactCurrentOwner$2.current = null;\n if (null === erroredWork || null === erroredWork.return) {\n workInProgressRootExitStatus = 1;\n workInProgressRootFatalError = thrownValue;\n workInProgress = null;\n break;\n }\n a: {\n var root = root$jscomp$0,\n returnFiber = erroredWork.return,\n sourceFiber = erroredWork,\n value = thrownValue;\n thrownValue = workInProgressRootRenderLanes;\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n var wakeable = value,\n sourceFiber$jscomp$0 = sourceFiber,\n tag = sourceFiber$jscomp$0.tag;\n if (\n 0 === (sourceFiber$jscomp$0.mode & 1) &&\n (0 === tag || 11 === tag || 15 === tag)\n ) {\n var currentSource = sourceFiber$jscomp$0.alternate;\n currentSource\n ? ((sourceFiber$jscomp$0.updateQueue = currentSource.updateQueue),\n (sourceFiber$jscomp$0.memoizedState =\n currentSource.memoizedState),\n (sourceFiber$jscomp$0.lanes = currentSource.lanes))\n : ((sourceFiber$jscomp$0.updateQueue = null),\n (sourceFiber$jscomp$0.memoizedState = null));\n }\n b: {\n sourceFiber$jscomp$0 = returnFiber;\n do {\n var JSCompiler_temp;\n if ((JSCompiler_temp = 13 === sourceFiber$jscomp$0.tag)) {\n var nextState = sourceFiber$jscomp$0.memoizedState;\n JSCompiler_temp =\n null !== nextState\n ? null !== nextState.dehydrated\n ? !0\n : !1\n : !0;\n }\n if (JSCompiler_temp) {\n var suspenseBoundary = sourceFiber$jscomp$0;\n break b;\n }\n sourceFiber$jscomp$0 = sourceFiber$jscomp$0.return;\n } while (null !== sourceFiber$jscomp$0);\n suspenseBoundary = null;\n }\n if (null !== suspenseBoundary) {\n suspenseBoundary.flags &= -257;\n value = suspenseBoundary;\n sourceFiber$jscomp$0 = thrownValue;\n if (0 === (value.mode & 1))\n if (value === returnFiber) value.flags |= 65536;\n else {\n value.flags |= 128;\n sourceFiber.flags |= 131072;\n sourceFiber.flags &= -52805;\n if (1 === sourceFiber.tag)\n if (null === sourceFiber.alternate) sourceFiber.tag = 17;\n else {\n var update = createUpdate(-1, 1);\n update.tag = 2;\n enqueueUpdate(sourceFiber, update, 1);\n }\n sourceFiber.lanes |= 1;\n }\n else (value.flags |= 65536), (value.lanes = sourceFiber$jscomp$0);\n suspenseBoundary.mode & 1 &&\n attachPingListener(root, wakeable, thrownValue);\n thrownValue = suspenseBoundary;\n root = wakeable;\n var wakeables = thrownValue.updateQueue;\n if (null === wakeables) {\n var updateQueue = new Set();\n updateQueue.add(root);\n thrownValue.updateQueue = updateQueue;\n } else wakeables.add(root);\n break a;\n } else {\n if (0 === (thrownValue & 1)) {\n attachPingListener(root, wakeable, thrownValue);\n renderDidSuspendDelayIfPossible();\n break a;\n }\n value = Error(\n \"A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition.\"\n );\n }\n }\n root = value = createCapturedValueAtFiber(value, sourceFiber);\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [root])\n : workInProgressRootConcurrentErrors.push(root);\n root = returnFiber;\n do {\n switch (root.tag) {\n case 3:\n wakeable = value;\n root.flags |= 65536;\n thrownValue &= -thrownValue;\n root.lanes |= thrownValue;\n var update$jscomp$0 = createRootErrorUpdate(\n root,\n wakeable,\n thrownValue\n );\n enqueueCapturedUpdate(root, update$jscomp$0);\n break a;\n case 1:\n wakeable = value;\n var ctor = root.type,\n instance = root.stateNode;\n if (\n 0 === (root.flags & 128) &&\n (\"function\" === typeof ctor.getDerivedStateFromError ||\n (null !== instance &&\n \"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance))))\n ) {\n root.flags |= 65536;\n thrownValue &= -thrownValue;\n root.lanes |= thrownValue;\n var update$34 = createClassErrorUpdate(\n root,\n wakeable,\n thrownValue\n );\n enqueueCapturedUpdate(root, update$34);\n break a;\n }\n }\n root = root.return;\n } while (null !== root);\n }\n completeUnitOfWork(erroredWork);\n } catch (yetAnotherThrownValue) {\n thrownValue = yetAnotherThrownValue;\n workInProgress === erroredWork &&\n null !== erroredWork &&\n (workInProgress = erroredWork = erroredWork.return);\n continue;\n }\n break;\n } while (1);\n}\nfunction pushDispatcher() {\n var prevDispatcher = ReactCurrentDispatcher$2.current;\n ReactCurrentDispatcher$2.current = ContextOnlyDispatcher;\n return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n}\nfunction renderDidSuspendDelayIfPossible() {\n if (\n 0 === workInProgressRootExitStatus ||\n 3 === workInProgressRootExitStatus ||\n 2 === workInProgressRootExitStatus\n )\n workInProgressRootExitStatus = 4;\n null === workInProgressRoot ||\n (0 === (workInProgressRootSkippedLanes & 268435455) &&\n 0 === (workInProgressRootInterleavedUpdatedLanes & 268435455)) ||\n markRootSuspended$1(workInProgressRoot, workInProgressRootRenderLanes);\n}\nfunction renderRootSync(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher();\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes)\n (workInProgressTransitions = null), prepareFreshStack(root, lanes);\n do\n try {\n workLoopSync();\n break;\n } catch (thrownValue) {\n handleError(root, thrownValue);\n }\n while (1);\n resetContextDependencies();\n executionContext = prevExecutionContext;\n ReactCurrentDispatcher$2.current = prevDispatcher;\n if (null !== workInProgress)\n throw Error(\n \"Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue.\"\n );\n workInProgressRoot = null;\n workInProgressRootRenderLanes = 0;\n return workInProgressRootExitStatus;\n}\nfunction workLoopSync() {\n for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n}\nfunction workLoopConcurrent() {\n for (; null !== workInProgress && !shouldYield(); )\n performUnitOfWork(workInProgress);\n}\nfunction performUnitOfWork(unitOfWork) {\n var next = beginWork$1(unitOfWork.alternate, unitOfWork, subtreeRenderLanes);\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n ReactCurrentOwner$2.current = null;\n}\nfunction completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n do {\n var current = completedWork.alternate;\n unitOfWork = completedWork.return;\n if (0 === (completedWork.flags & 32768)) {\n if (\n ((current = completeWork(current, completedWork, subtreeRenderLanes)),\n null !== current)\n ) {\n workInProgress = current;\n return;\n }\n } else {\n current = unwindWork(current, completedWork);\n if (null !== current) {\n current.flags &= 32767;\n workInProgress = current;\n return;\n }\n if (null !== unitOfWork)\n (unitOfWork.flags |= 32768),\n (unitOfWork.subtreeFlags = 0),\n (unitOfWork.deletions = null);\n else {\n workInProgressRootExitStatus = 6;\n workInProgress = null;\n return;\n }\n }\n completedWork = completedWork.sibling;\n if (null !== completedWork) {\n workInProgress = completedWork;\n return;\n }\n workInProgress = completedWork = unitOfWork;\n } while (null !== completedWork);\n 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);\n}\nfunction commitRoot(root, recoverableErrors, transitions) {\n var previousUpdateLanePriority = currentUpdatePriority,\n prevTransition = ReactCurrentBatchConfig$2.transition;\n try {\n (ReactCurrentBatchConfig$2.transition = null),\n (currentUpdatePriority = 1),\n commitRootImpl(\n root,\n recoverableErrors,\n transitions,\n previousUpdateLanePriority\n );\n } finally {\n (ReactCurrentBatchConfig$2.transition = prevTransition),\n (currentUpdatePriority = previousUpdateLanePriority);\n }\n return null;\n}\nfunction commitRootImpl(\n root,\n recoverableErrors,\n transitions,\n renderPriorityLevel\n) {\n do flushPassiveEffects();\n while (null !== rootWithPendingPassiveEffects);\n if (0 !== (executionContext & 6))\n throw Error(\"Should not already be working.\");\n transitions = root.finishedWork;\n var lanes = root.finishedLanes;\n if (null === transitions) return null;\n root.finishedWork = null;\n root.finishedLanes = 0;\n if (transitions === root.current)\n throw Error(\n \"Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.\"\n );\n root.callbackNode = null;\n root.callbackPriority = 0;\n var remainingLanes = transitions.lanes | transitions.childLanes;\n markRootFinished(root, remainingLanes);\n root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n (0 === (transitions.subtreeFlags & 2064) &&\n 0 === (transitions.flags & 2064)) ||\n rootDoesHavePassiveEffects ||\n ((rootDoesHavePassiveEffects = !0),\n scheduleCallback$1(NormalPriority, function() {\n flushPassiveEffects();\n return null;\n }));\n remainingLanes = 0 !== (transitions.flags & 15990);\n if (0 !== (transitions.subtreeFlags & 15990) || remainingLanes) {\n remainingLanes = ReactCurrentBatchConfig$2.transition;\n ReactCurrentBatchConfig$2.transition = null;\n var previousPriority = currentUpdatePriority;\n currentUpdatePriority = 1;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n ReactCurrentOwner$2.current = null;\n commitBeforeMutationEffects(root, transitions);\n commitMutationEffectsOnFiber(transitions, root);\n root.current = transitions;\n commitLayoutEffects(transitions, root, lanes);\n requestPaint();\n executionContext = prevExecutionContext;\n currentUpdatePriority = previousPriority;\n ReactCurrentBatchConfig$2.transition = remainingLanes;\n } else root.current = transitions;\n rootDoesHavePassiveEffects &&\n ((rootDoesHavePassiveEffects = !1),\n (rootWithPendingPassiveEffects = root),\n (pendingPassiveEffectsLanes = lanes));\n remainingLanes = root.pendingLanes;\n 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);\n onCommitRoot(transitions.stateNode, renderPriorityLevel);\n ensureRootIsScheduled(root, now());\n if (null !== recoverableErrors)\n for (\n renderPriorityLevel = root.onRecoverableError, transitions = 0;\n transitions < recoverableErrors.length;\n transitions++\n )\n (lanes = recoverableErrors[transitions]),\n renderPriorityLevel(lanes.value, {\n componentStack: lanes.stack,\n digest: lanes.digest\n });\n if (hasUncaughtError)\n throw ((hasUncaughtError = !1),\n (root = firstUncaughtError),\n (firstUncaughtError = null),\n root);\n 0 !== (pendingPassiveEffectsLanes & 1) &&\n 0 !== root.tag &&\n flushPassiveEffects();\n remainingLanes = root.pendingLanes;\n 0 !== (remainingLanes & 1)\n ? root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n : (nestedUpdateCount = 0);\n flushSyncCallbacks();\n return null;\n}\nfunction flushPassiveEffects() {\n if (null !== rootWithPendingPassiveEffects) {\n var renderPriority = lanesToEventPriority(pendingPassiveEffectsLanes),\n prevTransition = ReactCurrentBatchConfig$2.transition,\n previousPriority = currentUpdatePriority;\n try {\n ReactCurrentBatchConfig$2.transition = null;\n currentUpdatePriority = 16 > renderPriority ? 16 : renderPriority;\n if (null === rootWithPendingPassiveEffects)\n var JSCompiler_inline_result = !1;\n else {\n renderPriority = rootWithPendingPassiveEffects;\n rootWithPendingPassiveEffects = null;\n pendingPassiveEffectsLanes = 0;\n if (0 !== (executionContext & 6))\n throw Error(\"Cannot flush passive effects while already rendering.\");\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n for (nextEffect = renderPriority.current; null !== nextEffect; ) {\n var fiber = nextEffect,\n child = fiber.child;\n if (0 !== (nextEffect.flags & 16)) {\n var deletions = fiber.deletions;\n if (null !== deletions) {\n for (var i = 0; i < deletions.length; i++) {\n var fiberToDelete = deletions[i];\n for (nextEffect = fiberToDelete; null !== nextEffect; ) {\n var fiber$jscomp$0 = nextEffect;\n switch (fiber$jscomp$0.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber$jscomp$0, fiber);\n }\n var child$jscomp$0 = fiber$jscomp$0.child;\n if (null !== child$jscomp$0)\n (child$jscomp$0.return = fiber$jscomp$0),\n (nextEffect = child$jscomp$0);\n else\n for (; null !== nextEffect; ) {\n fiber$jscomp$0 = nextEffect;\n var sibling = fiber$jscomp$0.sibling,\n returnFiber = fiber$jscomp$0.return;\n detachFiberAfterEffects(fiber$jscomp$0);\n if (fiber$jscomp$0 === fiberToDelete) {\n nextEffect = null;\n break;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break;\n }\n nextEffect = returnFiber;\n }\n }\n }\n var previousFiber = fiber.alternate;\n if (null !== previousFiber) {\n var detachedChild = previousFiber.child;\n if (null !== detachedChild) {\n previousFiber.child = null;\n do {\n var detachedSibling = detachedChild.sibling;\n detachedChild.sibling = null;\n detachedChild = detachedSibling;\n } while (null !== detachedChild);\n }\n }\n nextEffect = fiber;\n }\n }\n if (0 !== (fiber.subtreeFlags & 2064) && null !== child)\n (child.return = fiber), (nextEffect = child);\n else\n b: for (; null !== nextEffect; ) {\n fiber = nextEffect;\n if (0 !== (fiber.flags & 2048))\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(9, fiber, fiber.return);\n }\n var sibling$jscomp$0 = fiber.sibling;\n if (null !== sibling$jscomp$0) {\n sibling$jscomp$0.return = fiber.return;\n nextEffect = sibling$jscomp$0;\n break b;\n }\n nextEffect = fiber.return;\n }\n }\n var finishedWork = renderPriority.current;\n for (nextEffect = finishedWork; null !== nextEffect; ) {\n child = nextEffect;\n var firstChild = child.child;\n if (0 !== (child.subtreeFlags & 2064) && null !== firstChild)\n (firstChild.return = child), (nextEffect = firstChild);\n else\n b: for (child = finishedWork; null !== nextEffect; ) {\n deletions = nextEffect;\n if (0 !== (deletions.flags & 2048))\n try {\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListMount(9, deletions);\n }\n } catch (error) {\n captureCommitPhaseError(deletions, deletions.return, error);\n }\n if (deletions === child) {\n nextEffect = null;\n break b;\n }\n var sibling$jscomp$1 = deletions.sibling;\n if (null !== sibling$jscomp$1) {\n sibling$jscomp$1.return = deletions.return;\n nextEffect = sibling$jscomp$1;\n break b;\n }\n nextEffect = deletions.return;\n }\n }\n executionContext = prevExecutionContext;\n flushSyncCallbacks();\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onPostCommitFiberRoot\n )\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, renderPriority);\n } catch (err) {}\n JSCompiler_inline_result = !0;\n }\n return JSCompiler_inline_result;\n } finally {\n (currentUpdatePriority = previousPriority),\n (ReactCurrentBatchConfig$2.transition = prevTransition);\n }\n }\n return !1;\n}\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createRootErrorUpdate(rootFiber, sourceFiber, 1);\n rootFiber = enqueueUpdate(rootFiber, sourceFiber, 1);\n sourceFiber = requestEventTime();\n null !== rootFiber &&\n (markRootUpdated(rootFiber, 1, sourceFiber),\n ensureRootIsScheduled(rootFiber, sourceFiber));\n}\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {\n if (3 === sourceFiber.tag)\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n else\n for (\n nearestMountedAncestor = sourceFiber.return;\n null !== nearestMountedAncestor;\n\n ) {\n if (3 === nearestMountedAncestor.tag) {\n captureCommitPhaseErrorOnRoot(\n nearestMountedAncestor,\n sourceFiber,\n error\n );\n break;\n } else if (1 === nearestMountedAncestor.tag) {\n var instance = nearestMountedAncestor.stateNode;\n if (\n \"function\" ===\n typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n (\"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n ) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createClassErrorUpdate(\n nearestMountedAncestor,\n sourceFiber,\n 1\n );\n nearestMountedAncestor = enqueueUpdate(\n nearestMountedAncestor,\n sourceFiber,\n 1\n );\n sourceFiber = requestEventTime();\n null !== nearestMountedAncestor &&\n (markRootUpdated(nearestMountedAncestor, 1, sourceFiber),\n ensureRootIsScheduled(nearestMountedAncestor, sourceFiber));\n break;\n }\n }\n nearestMountedAncestor = nearestMountedAncestor.return;\n }\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n null !== pingCache && pingCache.delete(wakeable);\n wakeable = requestEventTime();\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n workInProgressRoot === root &&\n (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n (4 === workInProgressRootExitStatus ||\n (3 === workInProgressRootExitStatus &&\n (workInProgressRootRenderLanes & 130023424) ===\n workInProgressRootRenderLanes &&\n 500 > now() - globalMostRecentFallbackTime)\n ? prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes));\n ensureRootIsScheduled(root, wakeable);\n}\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n 0 === retryLane &&\n (0 === (boundaryFiber.mode & 1)\n ? (retryLane = 1)\n : ((retryLane = nextRetryLane),\n (nextRetryLane <<= 1),\n 0 === (nextRetryLane & 130023424) && (nextRetryLane = 4194304)));\n var eventTime = requestEventTime();\n boundaryFiber = markUpdateLaneFromFiberToRoot(boundaryFiber, retryLane);\n null !== boundaryFiber &&\n (markRootUpdated(boundaryFiber, retryLane, eventTime),\n ensureRootIsScheduled(boundaryFiber, eventTime));\n}\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState,\n retryLane = 0;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = 0;\n switch (boundaryFiber.tag) {\n case 13:\n var retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n break;\n case 19:\n retryCache = boundaryFiber.stateNode;\n break;\n default:\n throw Error(\n \"Pinged unknown suspense boundary type. This is probably a bug in React.\"\n );\n }\n null !== retryCache && retryCache.delete(wakeable);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nvar beginWork$1;\nbeginWork$1 = function(current, workInProgress, renderLanes) {\n if (null !== current)\n if (\n current.memoizedProps !== workInProgress.pendingProps ||\n didPerformWorkStackCursor.current\n )\n didReceiveUpdate = !0;\n else {\n if (\n 0 === (current.lanes & renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else didReceiveUpdate = !1;\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 2:\n var Component = workInProgress.type;\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress);\n current = workInProgress.pendingProps;\n var context = getMaskedContext(\n workInProgress,\n contextStackCursor.current\n );\n prepareToReadContext(workInProgress, renderLanes);\n context = renderWithHooks(\n null,\n workInProgress,\n Component,\n current,\n context,\n renderLanes\n );\n workInProgress.flags |= 1;\n if (\n \"object\" === typeof context &&\n null !== context &&\n \"function\" === typeof context.render &&\n void 0 === context.$$typeof\n ) {\n workInProgress.tag = 1;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n if (isContextProvider(Component)) {\n var hasContext = !0;\n pushContextProvider(workInProgress);\n } else hasContext = !1;\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state\n ? context.state\n : null;\n initializeUpdateQueue(workInProgress);\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n mountClassInstance(workInProgress, Component, current, renderLanes);\n workInProgress = finishClassComponent(\n null,\n workInProgress,\n Component,\n !0,\n hasContext,\n renderLanes\n );\n } else\n (workInProgress.tag = 0),\n reconcileChildren(null, workInProgress, context, renderLanes),\n (workInProgress = workInProgress.child);\n return workInProgress;\n case 16:\n Component = workInProgress.elementType;\n a: {\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress);\n current = workInProgress.pendingProps;\n context = Component._init;\n Component = context(Component._payload);\n workInProgress.type = Component;\n context = workInProgress.tag = resolveLazyComponentTag(Component);\n current = resolveDefaultProps(Component, current);\n switch (context) {\n case 0:\n workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n Component,\n current,\n renderLanes\n );\n break a;\n case 1:\n workInProgress = updateClassComponent(\n null,\n workInProgress,\n Component,\n current,\n renderLanes\n );\n break a;\n case 11:\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n Component,\n current,\n renderLanes\n );\n break a;\n case 14:\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n Component,\n resolveDefaultProps(Component.type, current),\n renderLanes\n );\n break a;\n }\n throw Error(\n \"Element type is invalid. Received a promise that resolves to: \" +\n Component +\n \". Lazy element type must resolve to a class or function.\"\n );\n }\n return workInProgress;\n case 0:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n updateFunctionComponent(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 1:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n updateClassComponent(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 3:\n pushHostRootContext(workInProgress);\n if (null === current)\n throw Error(\"Should have a current fiber. This is a bug in React.\");\n context = workInProgress.pendingProps;\n Component = workInProgress.memoizedState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, context, null, renderLanes);\n context = workInProgress.memoizedState.element;\n context === Component\n ? (workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ))\n : (reconcileChildren(current, workInProgress, context, renderLanes),\n (workInProgress = workInProgress.child));\n return workInProgress;\n case 5:\n return (\n pushHostContext(workInProgress),\n (Component = workInProgress.pendingProps.children),\n markRef(current, workInProgress),\n reconcileChildren(current, workInProgress, Component, renderLanes),\n workInProgress.child\n );\n case 6:\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (Component = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n ))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n workInProgress.child\n );\n case 11:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n updateForwardRef(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n a: {\n Component = workInProgress.type._context;\n context = workInProgress.pendingProps;\n hasContext = workInProgress.memoizedProps;\n var newValue = context.value;\n push(valueCursor, Component._currentValue);\n Component._currentValue = newValue;\n if (null !== hasContext)\n if (objectIs(hasContext.value, newValue)) {\n if (\n hasContext.children === context.children &&\n !didPerformWorkStackCursor.current\n ) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n } else\n for (\n hasContext = workInProgress.child,\n null !== hasContext && (hasContext.return = workInProgress);\n null !== hasContext;\n\n ) {\n var list = hasContext.dependencies;\n if (null !== list) {\n newValue = hasContext.child;\n for (\n var dependency = list.firstContext;\n null !== dependency;\n\n ) {\n if (dependency.context === Component) {\n if (1 === hasContext.tag) {\n dependency = createUpdate(-1, renderLanes & -renderLanes);\n dependency.tag = 2;\n var updateQueue = hasContext.updateQueue;\n if (null !== updateQueue) {\n updateQueue = updateQueue.shared;\n var pending = updateQueue.pending;\n null === pending\n ? (dependency.next = dependency)\n : ((dependency.next = pending.next),\n (pending.next = dependency));\n updateQueue.pending = dependency;\n }\n }\n hasContext.lanes |= renderLanes;\n dependency = hasContext.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n hasContext.return,\n renderLanes,\n workInProgress\n );\n list.lanes |= renderLanes;\n break;\n }\n dependency = dependency.next;\n }\n } else if (10 === hasContext.tag)\n newValue =\n hasContext.type === workInProgress.type\n ? null\n : hasContext.child;\n else if (18 === hasContext.tag) {\n newValue = hasContext.return;\n if (null === newValue)\n throw Error(\n \"We just came from a parent so we must have had a parent. This is a bug in React.\"\n );\n newValue.lanes |= renderLanes;\n list = newValue.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n newValue,\n renderLanes,\n workInProgress\n );\n newValue = hasContext.sibling;\n } else newValue = hasContext.child;\n if (null !== newValue) newValue.return = hasContext;\n else\n for (newValue = hasContext; null !== newValue; ) {\n if (newValue === workInProgress) {\n newValue = null;\n break;\n }\n hasContext = newValue.sibling;\n if (null !== hasContext) {\n hasContext.return = newValue.return;\n newValue = hasContext;\n break;\n }\n newValue = newValue.return;\n }\n hasContext = newValue;\n }\n reconcileChildren(\n current,\n workInProgress,\n context.children,\n renderLanes\n );\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 9:\n return (\n (context = workInProgress.type),\n (Component = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress, renderLanes),\n (context = readContext(context)),\n (Component = Component(context)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, Component, renderLanes),\n workInProgress.child\n );\n case 14:\n return (\n (Component = workInProgress.type),\n (context = resolveDefaultProps(Component, workInProgress.pendingProps)),\n (context = resolveDefaultProps(Component.type, context)),\n updateMemoComponent(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 17:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress),\n (workInProgress.tag = 1),\n isContextProvider(Component)\n ? ((current = !0), pushContextProvider(workInProgress))\n : (current = !1),\n prepareToReadContext(workInProgress, renderLanes),\n constructClassInstance(workInProgress, Component, context),\n mountClassInstance(workInProgress, Component, context, renderLanes),\n finishClassComponent(\n null,\n workInProgress,\n Component,\n !0,\n current,\n renderLanes\n )\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(current, workInProgress, renderLanes);\n }\n throw Error(\n \"Unknown unit of work tag (\" +\n workInProgress.tag +\n \"). This error is likely caused by a bug in React. Please file an issue.\"\n );\n};\nfunction scheduleCallback$1(priorityLevel, callback) {\n return scheduleCallback(priorityLevel, callback);\n}\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null;\n this.index = 0;\n this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiber(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction resolveLazyComponentTag(Component) {\n if (\"function\" === typeof Component)\n return shouldConstruct(Component) ? 1 : 0;\n if (void 0 !== Component && null !== Component) {\n Component = Component.$$typeof;\n if (Component === REACT_FORWARD_REF_TYPE) return 11;\n if (Component === REACT_MEMO_TYPE) return 14;\n }\n return 2;\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiber(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 14680064;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 2;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type) fiberTag = 5;\n else\n a: switch (type) {\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 8;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiber(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiber(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiber(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_OFFSCREEN_TYPE:\n return createFiberFromOffscreen(pendingProps, mode, lanes, key);\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_PROVIDER_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONTEXT_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n throw Error(\n \"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: \" +\n ((null == type ? type : typeof type) + \".\")\n );\n }\n key = createFiber(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiber(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromOffscreen(pendingProps, mode, lanes, key) {\n pendingProps = createFiber(22, pendingProps, key, mode);\n pendingProps.elementType = REACT_OFFSCREEN_TYPE;\n pendingProps.lanes = lanes;\n pendingProps.stateNode = { isHidden: !1 };\n return pendingProps;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiber(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiber(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nfunction FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onRecoverableError\n) {\n this.tag = tag;\n this.containerInfo = containerInfo;\n this.finishedWork = this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = -1;\n this.callbackNode = this.pendingContext = this.context = null;\n this.callbackPriority = 0;\n this.eventTimes = createLaneMap(0);\n this.expirationTimes = createLaneMap(-1);\n this.entangledLanes = this.finishedLanes = this.mutableReadLanes = this.expiredLanes = this.pingedLanes = this.suspendedLanes = this.pendingLanes = 0;\n this.entanglements = createLaneMap(0);\n this.identifierPrefix = identifierPrefix;\n this.onRecoverableError = onRecoverableError;\n}\nfunction createPortal(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\nfunction findHostInstance(component) {\n var fiber = component._reactInternals;\n if (void 0 === fiber) {\n if (\"function\" === typeof component.render)\n throw Error(\"Unable to find node on an unmounted component.\");\n component = Object.keys(component).join(\",\");\n throw Error(\n \"Argument appears to not be a ReactComponent. Keys: \" + component\n );\n }\n component = findCurrentHostFiber(fiber);\n return null === component ? null : component.stateNode;\n}\nfunction updateContainer(element, container, parentComponent, callback) {\n var current = container.current,\n eventTime = requestEventTime(),\n lane = requestUpdateLane(current);\n a: if (parentComponent) {\n parentComponent = parentComponent._reactInternals;\n b: {\n if (\n getNearestMountedFiber(parentComponent) !== parentComponent ||\n 1 !== parentComponent.tag\n )\n throw Error(\n \"Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.\"\n );\n var JSCompiler_inline_result = parentComponent;\n do {\n switch (JSCompiler_inline_result.tag) {\n case 3:\n JSCompiler_inline_result =\n JSCompiler_inline_result.stateNode.context;\n break b;\n case 1:\n if (isContextProvider(JSCompiler_inline_result.type)) {\n JSCompiler_inline_result =\n JSCompiler_inline_result.stateNode\n .__reactInternalMemoizedMergedChildContext;\n break b;\n }\n }\n JSCompiler_inline_result = JSCompiler_inline_result.return;\n } while (null !== JSCompiler_inline_result);\n throw Error(\n \"Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (1 === parentComponent.tag) {\n var Component = parentComponent.type;\n if (isContextProvider(Component)) {\n parentComponent = processChildContext(\n parentComponent,\n Component,\n JSCompiler_inline_result\n );\n break a;\n }\n }\n parentComponent = JSCompiler_inline_result;\n } else parentComponent = emptyContextObject;\n null === container.context\n ? (container.context = parentComponent)\n : (container.pendingContext = parentComponent);\n container = createUpdate(eventTime, lane);\n container.payload = { element: element };\n callback = void 0 === callback ? null : callback;\n null !== callback && (container.callback = callback);\n element = enqueueUpdate(current, container, lane);\n null !== element &&\n (scheduleUpdateOnFiber(element, current, lane, eventTime),\n entangleTransitions(element, current, lane));\n return lane;\n}\nfunction emptyFindFiberByHostInstance() {\n return null;\n}\nfunction findNodeHandle(componentOrHandle) {\n if (null == componentOrHandle) return null;\n if (\"number\" === typeof componentOrHandle) return componentOrHandle;\n if (componentOrHandle._nativeTag) return componentOrHandle._nativeTag;\n if (componentOrHandle.canonical && componentOrHandle.canonical._nativeTag)\n return componentOrHandle.canonical._nativeTag;\n componentOrHandle = findHostInstance(componentOrHandle);\n return null == componentOrHandle\n ? componentOrHandle\n : componentOrHandle.canonical\n ? componentOrHandle.canonical._nativeTag\n : componentOrHandle._nativeTag;\n}\nfunction onRecoverableError(error) {\n console.error(error);\n}\nfunction unmountComponentAtNode(containerTag) {\n var root = roots.get(containerTag);\n root &&\n updateContainer(null, root, null, function() {\n roots.delete(containerTag);\n });\n}\nbatchedUpdatesImpl = function(fn, a) {\n var prevExecutionContext = executionContext;\n executionContext |= 1;\n try {\n return fn(a);\n } finally {\n (executionContext = prevExecutionContext),\n 0 === executionContext &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n includesLegacySyncCallbacks && flushSyncCallbacks());\n }\n};\nvar roots = new Map(),\n devToolsConfig$jscomp$inline_979 = {\n findFiberByHostInstance: getInstanceFromTag,\n bundleType: 0,\n version: \"18.2.0-next-9e3b772b8-20220608\",\n rendererPackageName: \"react-native-renderer\",\n rendererConfig: {\n getInspectorDataForViewTag: function() {\n throw Error(\n \"getInspectorDataForViewTag() is not available in production\"\n );\n },\n getInspectorDataForViewAtPoint: function() {\n throw Error(\n \"getInspectorDataForViewAtPoint() is not available in production.\"\n );\n }.bind(null, findNodeHandle)\n }\n };\nvar internals$jscomp$inline_1247 = {\n bundleType: devToolsConfig$jscomp$inline_979.bundleType,\n version: devToolsConfig$jscomp$inline_979.version,\n rendererPackageName: devToolsConfig$jscomp$inline_979.rendererPackageName,\n rendererConfig: devToolsConfig$jscomp$inline_979.rendererConfig,\n overrideHookState: null,\n overrideHookStateDeletePath: null,\n overrideHookStateRenamePath: null,\n overrideProps: null,\n overridePropsDeletePath: null,\n overridePropsRenamePath: null,\n setErrorHandler: null,\n setSuspenseHandler: null,\n scheduleUpdate: null,\n currentDispatcherRef: ReactSharedInternals.ReactCurrentDispatcher,\n findHostInstanceByFiber: function(fiber) {\n fiber = findCurrentHostFiber(fiber);\n return null === fiber ? null : fiber.stateNode;\n },\n findFiberByHostInstance:\n devToolsConfig$jscomp$inline_979.findFiberByHostInstance ||\n emptyFindFiberByHostInstance,\n findHostInstancesForRefresh: null,\n scheduleRefresh: null,\n scheduleRoot: null,\n setRefreshHandler: null,\n getCurrentFiber: null,\n reconcilerVersion: \"18.2.0-next-9e3b772b8-20220608\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var hook$jscomp$inline_1248 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (\n !hook$jscomp$inline_1248.isDisabled &&\n hook$jscomp$inline_1248.supportsFiber\n )\n try {\n (rendererID = hook$jscomp$inline_1248.inject(\n internals$jscomp$inline_1247\n )),\n (injectedHook = hook$jscomp$inline_1248);\n } catch (err) {}\n}\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = {\n computeComponentStackForErrorReporting: function(reactTag) {\n return (reactTag = getInstanceFromTag(reactTag))\n ? getStackByFiberInDevAndProd(reactTag)\n : \"\";\n }\n};\nexports.createPortal = function(children, containerTag) {\n return createPortal(\n children,\n containerTag,\n null,\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null\n );\n};\nexports.dispatchCommand = function(handle, command, args) {\n null != handle._nativeTag &&\n (null != handle._internalInstanceHandle\n ? ((handle = handle._internalInstanceHandle.stateNode),\n null != handle &&\n nativeFabricUIManager.dispatchCommand(handle.node, command, args))\n : ReactNativePrivateInterface.UIManager.dispatchViewManagerCommand(\n handle._nativeTag,\n command,\n args\n ));\n};\nexports.findHostInstance_DEPRECATED = function(componentOrHandle) {\n if (null == componentOrHandle) return null;\n if (componentOrHandle._nativeTag) return componentOrHandle;\n if (componentOrHandle.canonical && componentOrHandle.canonical._nativeTag)\n return componentOrHandle.canonical;\n componentOrHandle = findHostInstance(componentOrHandle);\n return null == componentOrHandle\n ? componentOrHandle\n : componentOrHandle.canonical\n ? componentOrHandle.canonical\n : componentOrHandle;\n};\nexports.findNodeHandle = findNodeHandle;\nexports.getInspectorDataForInstance = void 0;\nexports.render = function(element, containerTag, callback) {\n var root = roots.get(containerTag);\n if (!root) {\n root = new FiberRootNode(containerTag, 0, !1, \"\", onRecoverableError);\n var JSCompiler_inline_result = createFiber(3, null, null, 0);\n root.current = JSCompiler_inline_result;\n JSCompiler_inline_result.stateNode = root;\n JSCompiler_inline_result.memoizedState = {\n element: null,\n isDehydrated: !1,\n cache: null,\n transitions: null,\n pendingSuspenseBoundaries: null\n };\n initializeUpdateQueue(JSCompiler_inline_result);\n roots.set(containerTag, root);\n }\n updateContainer(element, root, null, callback);\n a: if (((element = root.current), element.child))\n switch (element.child.tag) {\n case 5:\n element = element.child.stateNode;\n break a;\n default:\n element = element.child.stateNode;\n }\n else element = null;\n return element;\n};\nexports.sendAccessibilityEvent = function(handle, eventType) {\n null != handle._nativeTag &&\n (null != handle._internalInstanceHandle\n ? ((handle = handle._internalInstanceHandle.stateNode),\n null != handle &&\n nativeFabricUIManager.sendAccessibilityEvent(handle.node, eventType))\n : ReactNativePrivateInterface.legacySendAccessibilityEvent(\n handle._nativeTag,\n eventType\n ));\n};\nexports.unmountComponentAtNode = unmountComponentAtNode;\nexports.unmountComponentAtNodeAndRemoveContainer = function(containerTag) {\n unmountComponentAtNode(containerTag);\n ReactNativePrivateInterface.UIManager.removeRootView(containerTag);\n};\nexports.unstable_batchedUpdates = batchedUpdates;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n * @generate-docs\n */\n\n'use strict';\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport StyleSheet, {type ColorValue} from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport View from '../View/View';\nimport * as React from 'react';\n\nconst PlatformActivityIndicator =\n Platform.OS === 'android'\n ? require('../ProgressBarAndroid/ProgressBarAndroid')\n : require('./ActivityIndicatorViewNativeComponent').default;\n\nconst GRAY = '#999999';\n\ntype IndicatorSize = number | 'small' | 'large';\n\ntype IOSProps = $ReadOnly<{|\n /**\n Whether the indicator should hide when not animating.\n\n @platform ios\n */\n hidesWhenStopped?: ?boolean,\n|}>;\ntype Props = $ReadOnly<{|\n ...ViewProps,\n ...IOSProps,\n\n /**\n \tWhether to show the indicator (`true`) or hide it (`false`).\n */\n animating?: ?boolean,\n\n /**\n The foreground color of the spinner.\n\n @default {@platform android} `null` (system accent default color)\n @default {@platform ios} '#999999'\n */\n color?: ?ColorValue,\n\n /**\n Size of the indicator.\n\n @type enum(`'small'`, `'large'`)\n @type {@platform android} number\n */\n size?: ?IndicatorSize,\n|}>;\n\nconst ActivityIndicator = (\n {\n animating = true,\n color = Platform.OS === 'ios' ? GRAY : null,\n hidesWhenStopped = true,\n onLayout,\n size = 'small',\n style,\n ...restProps\n }: Props,\n forwardedRef?: any,\n) => {\n let sizeStyle;\n let sizeProp;\n\n switch (size) {\n case 'small':\n sizeStyle = styles.sizeSmall;\n sizeProp = 'small';\n break;\n case 'large':\n sizeStyle = styles.sizeLarge;\n sizeProp = 'large';\n break;\n default:\n sizeStyle = {height: size, width: size};\n break;\n }\n\n const nativeProps = {\n animating,\n color,\n hidesWhenStopped,\n ...restProps,\n ref: forwardedRef,\n style: sizeStyle,\n size: sizeProp,\n };\n\n const androidProps = {\n styleAttr: 'Normal',\n indeterminate: true,\n };\n\n return (\n \n {Platform.OS === 'android' ? (\n // $FlowFixMe[prop-missing] Flow doesn't know when this is the android component\n \n ) : (\n /* $FlowFixMe[prop-missing] (>=0.106.0 site=react_native_android_fb) This comment\n * suppresses an error found when Flow v0.106 was deployed. To see the\n * error, delete this comment and run Flow. */\n \n )}\n \n );\n};\n\n/**\n Displays a circular loading indicator.\n\n ```SnackPlayer name=ActivityIndicator%20Function%20Component%20Example\n import React from \"react\";\n import { ActivityIndicator, StyleSheet, Text, View } from \"react-native\";\n\n const App = () => (\n \n \n \n \n \n \n );\n\n const styles = StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: \"center\"\n },\n horizontal: {\n flexDirection: \"row\",\n justifyContent: \"space-around\",\n padding: 10\n }\n });\n export default App;\n ```\n\n ```SnackPlayer name=ActivityIndicator%20Class%20Component%20Example\n import React, { Component } from \"react\";\n import { ActivityIndicator, StyleSheet, Text, View } from \"react-native\";\n\n class App extends Component {\n render() {\n return (\n \n \n \n \n \n \n );\n }\n }\n\n const styles = StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: \"center\"\n },\n horizontal: {\n flexDirection: \"row\",\n justifyContent: \"space-around\",\n padding: 10\n }\n });\n export default App;\n ```\n*/\n\nconst ActivityIndicatorWithRef: React.AbstractComponent<\n Props,\n HostComponent,\n> = React.forwardRef(ActivityIndicator);\nActivityIndicatorWithRef.displayName = 'ActivityIndicator';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n sizeSmall: {\n width: 20,\n height: 20,\n },\n sizeLarge: {\n width: 36,\n height: 36,\n },\n});\n\nexport default ActivityIndicatorWithRef;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport ProgressBarAndroidNativeComponent from './ProgressBarAndroidNativeComponent';\n\nconst React = require('react');\n\nexport type ProgressBarAndroidProps = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * Style of the ProgressBar and whether it shows indeterminate progress (e.g. spinner).\n *\n * `indeterminate` can only be false if `styleAttr` is Horizontal, and requires a\n * `progress` value.\n */\n ...\n | {|\n styleAttr: 'Horizontal',\n indeterminate: false,\n progress: number,\n |}\n | {|\n typeAttr:\n | 'Horizontal'\n | 'Normal'\n | 'Small'\n | 'Large'\n | 'Inverse'\n | 'SmallInverse'\n | 'LargeInverse',\n indeterminate: true,\n |},\n /**\n * Whether to show the ProgressBar (true, the default) or hide it (false).\n */\n animating?: ?boolean,\n /**\n * Color of the progress bar.\n */\n color?: ?ColorValue,\n /**\n * Used to locate this view in end-to-end tests.\n */\n testID?: ?string,\n|}>;\n\n/**\n * React component that wraps the Android-only `ProgressBar`. This component is\n * used to indicate that the app is loading or there is activity in the app.\n *\n * Example:\n *\n * ```\n * render: function() {\n * var progressBar =\n * \n * \n * ;\n\n * return (\n * \n * );\n * },\n * ```\n */\nconst ProgressBarAndroid = (\n {\n styleAttr = 'Normal',\n indeterminate = true,\n animating = true,\n ...restProps\n }: ProgressBarAndroidProps,\n forwardedRef: ?React.Ref,\n) => {\n return (\n \n );\n};\n\nconst ProgressBarAndroidToExport = React.forwardRef(ProgressBarAndroid);\n\nmodule.exports =\n /* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\n (ProgressBarAndroidToExport: typeof ProgressBarAndroidNativeComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {Double, WithDefault} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n //Props\n styleAttr?: string,\n typeAttr?: string,\n indeterminate: boolean,\n progress?: WithDefault,\n animating?: WithDefault,\n color?: ?ColorValue,\n testID?: WithDefault,\n|}>;\n\nexport default (codegenNativeComponent('AndroidProgressBar', {\n interfaceOnly: true,\n}): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n// TODO: move this file to shims/ReactNative (requires React update and sync)\n\nimport type {HostComponent} from '../../Libraries/Renderer/shims/ReactNativeTypes';\n\nimport requireNativeComponent from '../../Libraries/ReactNative/requireNativeComponent';\nimport UIManager from '../ReactNative/UIManager';\n\n// TODO: import from CodegenSchema once workspaces are enabled\ntype Options = $ReadOnly<{|\n interfaceOnly?: boolean,\n paperComponentName?: string,\n paperComponentNameDeprecated?: string,\n excludedPlatforms?: $ReadOnlyArray<'iOS' | 'android'>,\n|}>;\n\nexport type NativeComponentType = HostComponent;\n\n// If this function runs then that means the view configs were not\n// generated at build time using `GenerateViewConfigJs.js`. Thus\n// we need to `requireNativeComponent` to get the view configs from view managers.\n// `requireNativeComponent` is not available in Bridgeless mode.\n// e.g. This function runs at runtime if `codegenNativeComponent` was not called\n// from a file suffixed with NativeComponent.js.\nfunction codegenNativeComponent(\n componentName: string,\n options?: Options,\n): NativeComponentType {\n if (global.RN$Bridgeless === true) {\n const errorMessage =\n \"Native Component '\" +\n componentName +\n \"' that calls codegenNativeComponent was not code generated at build time. Please check its definition.\";\n console.error(errorMessage);\n }\n\n let componentNameInUse =\n options && options.paperComponentName != null\n ? options.paperComponentName\n : componentName;\n\n if (options != null && options.paperComponentNameDeprecated != null) {\n if (UIManager.hasViewManagerConfig(componentName)) {\n componentNameInUse = componentName;\n } else if (\n options.paperComponentNameDeprecated != null &&\n UIManager.hasViewManagerConfig(options.paperComponentNameDeprecated)\n ) {\n // $FlowFixMe[incompatible-type]\n componentNameInUse = options.paperComponentNameDeprecated;\n } else {\n throw new Error(\n `Failed to find native component for either ${componentName} or ${\n options.paperComponentNameDeprecated ?? '(unknown)'\n }`,\n );\n }\n }\n\n return (requireNativeComponent(\n // $FlowFixMe[incompatible-call]\n componentNameInUse,\n ): HostComponent);\n}\n\nexport default codegenNativeComponent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {HostComponent} from '../Renderer/shims/ReactNativeTypes';\n\nconst createReactNativeComponentClass = require('../Renderer/shims/createReactNativeComponentClass');\nconst getNativeComponentAttributes = require('./getNativeComponentAttributes');\n\n/**\n * Creates values that can be used like React components which represent native\n * view managers. You should create JavaScript modules that wrap these values so\n * that the results are memoized. Example:\n *\n * const View = requireNativeComponent('RCTView');\n *\n */\n\nconst requireNativeComponent = (uiViewClassName: string): HostComponent =>\n ((createReactNativeComponentClass(uiViewClassName, () =>\n getNativeComponentAttributes(uiViewClassName),\n ): any): HostComponent);\n\nexport default requireNativeComponent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @noformat\n * @flow strict-local\n * @generated SignedSource<>\n *\n * This file was sync'd from the facebook/react repository.\n */\n\n'use strict';\n\nimport {ReactNativeViewConfigRegistry} from 'react-native/Libraries/ReactPrivate/ReactNativePrivateInterface';\nimport {type ViewConfig} from './ReactNativeTypes';\n\nconst {register} = ReactNativeViewConfigRegistry;\n\n/**\n * Creates a renderable ReactNative host component.\n * Use this method for view configs that are loaded from UIManager.\n * Use createReactNativeComponentClass() for view configs defined within JavaScript.\n *\n * @param {string} config iOS View configuration.\n * @private\n */\nconst createReactNativeComponentClass = function (\n name: string,\n callback: () => ViewConfig,\n): string {\n return register(name, callback);\n};\n\nmodule.exports = createReactNativeComponentClass;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {WithDefault} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * Whether the indicator should hide when not animating (true by default).\n *\n * See https://reactnative.dev/docs/activityindicator#hideswhenstopped\n */\n hidesWhenStopped?: WithDefault,\n\n /**\n * Whether to show the indicator (true, the default) or hide it (false).\n *\n * See https://reactnative.dev/docs/activityindicator#animating\n */\n animating?: WithDefault,\n\n /**\n * The foreground color of the spinner (default is gray).\n *\n * See https://reactnative.dev/docs/activityindicator#color\n */\n color?: ?ColorValue,\n\n /**\n * Size of the indicator (default is 'small').\n * Passing a number to the size prop is only supported on Android.\n *\n * See https://reactnative.dev/docs/activityindicator#size\n */\n size?: WithDefault<'small' | 'large', 'small'>,\n|}>;\n\nexport default (codegenNativeComponent('ActivityIndicatorView', {\n paperComponentName: 'RCTActivityIndicatorView',\n}): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n * @generate-docs\n */\n\n'use strict';\n\nimport type {TextStyleProp, ViewStyleProp} from '../StyleSheet/StyleSheet';\nimport type {PressEvent} from '../Types/CoreEventTypes';\nimport type {Button as ButtonType} from './Button.flow';\nimport type {\n AccessibilityActionEvent,\n AccessibilityActionInfo,\n AccessibilityState,\n} from './View/ViewAccessibility';\n\nimport StyleSheet, {type ColorValue} from '../StyleSheet/StyleSheet';\nimport Text from '../Text/Text';\nimport Platform from '../Utilities/Platform';\nimport TouchableNativeFeedback from './Touchable/TouchableNativeFeedback';\nimport TouchableOpacity from './Touchable/TouchableOpacity';\nimport View from './View/View';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\ntype ButtonProps = $ReadOnly<{|\n /**\n Text to display inside the button. On Android the given title will be\n converted to the uppercased form.\n */\n title: string,\n\n /**\n Handler to be called when the user taps the button. The first function\n argument is an event in form of [PressEvent](pressevent).\n */\n onPress: (event?: PressEvent) => mixed,\n\n /**\n If `true`, doesn't play system sound on touch.\n\n @platform android\n\n @default false\n */\n touchSoundDisabled?: ?boolean,\n\n /**\n Color of the text (iOS), or background color of the button (Android).\n\n @default {@platform android} '#2196F3'\n @default {@platform ios} '#007AFF'\n */\n color?: ?ColorValue,\n\n /**\n TV preferred focus.\n\n @platform tv\n\n @default false\n */\n hasTVPreferredFocus?: ?boolean,\n\n /**\n Designates the next view to receive focus when the user navigates down. See\n the [Android documentation][android:nextFocusDown].\n\n [android:nextFocusDown]:\n https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusDown\n\n @platform android, tv\n */\n nextFocusDown?: ?number,\n\n /**\n Designates the next view to receive focus when the user navigates forward.\n See the [Android documentation][android:nextFocusForward].\n\n [android:nextFocusForward]:\n https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusForward\n\n @platform android, tv\n */\n nextFocusForward?: ?number,\n\n /**\n Designates the next view to receive focus when the user navigates left. See\n the [Android documentation][android:nextFocusLeft].\n\n [android:nextFocusLeft]:\n https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusLeft\n\n @platform android, tv\n */\n nextFocusLeft?: ?number,\n\n /**\n Designates the next view to receive focus when the user navigates right. See\n the [Android documentation][android:nextFocusRight].\n\n [android:nextFocusRight]:\n https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusRight\n\n @platform android, tv\n */\n nextFocusRight?: ?number,\n\n /**\n Designates the next view to receive focus when the user navigates up. See\n the [Android documentation][android:nextFocusUp].\n\n [android:nextFocusUp]:\n https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusUp\n\n @platform android, tv\n */\n nextFocusUp?: ?number,\n\n /**\n Text to display for blindness accessibility features.\n */\n accessibilityLabel?: ?string,\n /**\n * Alias for accessibilityLabel https://reactnative.dev/docs/view#accessibilitylabel\n * https://github.com/facebook/react-native/issues/34424\n */\n 'aria-label'?: ?string,\n /**\n If `true`, disable all interactions for this component.\n\n @default false\n */\n disabled?: ?boolean,\n\n /**\n Used to locate this view in end-to-end tests.\n */\n testID?: ?string,\n\n /**\n * Accessibility props.\n */\n accessible?: ?boolean,\n accessibilityActions?: ?$ReadOnlyArray,\n onAccessibilityAction?: ?(event: AccessibilityActionEvent) => mixed,\n accessibilityState?: ?AccessibilityState,\n\n /**\n * alias for accessibilityState\n *\n * see https://reactnative.dev/docs/accessibility#accessibilitystate\n */\n 'aria-busy'?: ?boolean,\n 'aria-checked'?: ?boolean | 'mixed',\n 'aria-disabled'?: ?boolean,\n 'aria-expanded'?: ?boolean,\n 'aria-selected'?: ?boolean,\n\n /**\n * [Android] Controlling if a view fires accessibility events and if it is reported to accessibility services.\n */\n importantForAccessibility?: ?('auto' | 'yes' | 'no' | 'no-hide-descendants'),\n accessibilityHint?: ?string,\n accessibilityLanguage?: ?Stringish,\n|}>;\n\n/**\n A basic button component that should render nicely on any platform. Supports a\n minimal level of customization.\n\n If this button doesn't look right for your app, you can build your own button\n using [TouchableOpacity](touchableopacity) or\n [TouchableWithoutFeedback](touchablewithoutfeedback). For inspiration, look at\n the [source code for this button component][button:source]. Or, take a look at\n the [wide variety of button components built by the community]\n [button:examples].\n\n [button:source]:\n https://github.com/facebook/react-native/blob/HEAD/Libraries/Components/Button.js\n\n [button:examples]:\n https://js.coach/?menu%5Bcollections%5D=React%20Native&page=1&query=button\n\n ```jsx\n \n ```\n\n ```SnackPlayer name=Button%20Example\n import React from 'react';\n import { StyleSheet, Button, View, SafeAreaView, Text, Alert } from 'react-native';\n\n const Separator = () => (\n \n );\n\n const App = () => (\n \n \n \n The title and onPress handler are required. It is recommended to set accessibilityLabel to help make your app usable by everyone.\n \n Alert.alert('Simple Button pressed')}\n />\n \n \n \n \n Adjust the color in a way that looks standard on each platform. On iOS, the color prop controls the color of the text. On Android, the color adjusts the background color of the button.\n \n Alert.alert('Button with adjusted color pressed')}\n />\n \n \n \n \n All interaction for the component are disabled.\n \n Alert.alert('Cannot press this one')}\n />\n \n \n \n \n This layout strategy lets the title define the width of the button.\n \n \n Alert.alert('Left button pressed')}\n />\n Alert.alert('Right button pressed')}\n />\n \n \n \n );\n\n const styles = StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: 'center',\n marginHorizontal: 16,\n },\n title: {\n textAlign: 'center',\n marginVertical: 8,\n },\n fixToText: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n separator: {\n marginVertical: 8,\n borderBottomColor: '#737373',\n borderBottomWidth: StyleSheet.hairlineWidth,\n },\n });\n\n export default App;\n ```\n */\n\nclass Button extends React.Component {\n render(): React.Node {\n const {\n accessibilityLabel,\n accessibilityState,\n 'aria-busy': ariaBusy,\n 'aria-checked': ariaChecked,\n 'aria-disabled': ariaDisabled,\n 'aria-expanded': ariaExpanded,\n 'aria-label': ariaLabel,\n 'aria-selected': ariaSelected,\n importantForAccessibility,\n color,\n onPress,\n touchSoundDisabled,\n title,\n hasTVPreferredFocus,\n nextFocusDown,\n nextFocusForward,\n nextFocusLeft,\n nextFocusRight,\n nextFocusUp,\n testID,\n accessible,\n accessibilityActions,\n accessibilityHint,\n accessibilityLanguage,\n onAccessibilityAction,\n } = this.props;\n const buttonStyles: Array = [styles.button];\n const textStyles: Array = [styles.text];\n if (color) {\n if (Platform.OS === 'ios') {\n textStyles.push({color: color});\n } else {\n buttonStyles.push({backgroundColor: color});\n }\n }\n\n let _accessibilityState = {\n busy: ariaBusy ?? accessibilityState?.busy,\n checked: ariaChecked ?? accessibilityState?.checked,\n disabled: ariaDisabled ?? accessibilityState?.disabled,\n expanded: ariaExpanded ?? accessibilityState?.expanded,\n selected: ariaSelected ?? accessibilityState?.selected,\n };\n\n const disabled =\n this.props.disabled != null\n ? this.props.disabled\n : _accessibilityState?.disabled;\n\n _accessibilityState =\n disabled !== _accessibilityState?.disabled\n ? {..._accessibilityState, disabled}\n : _accessibilityState;\n\n if (disabled) {\n buttonStyles.push(styles.buttonDisabled);\n textStyles.push(styles.textDisabled);\n }\n\n invariant(\n typeof title === 'string',\n 'The title prop of a Button must be a string',\n );\n const formattedTitle =\n Platform.OS === 'android' ? title.toUpperCase() : title;\n const Touchable =\n Platform.OS === 'android' ? TouchableNativeFeedback : TouchableOpacity;\n\n // If `no` is specified for `importantForAccessibility`, it will be changed to `no-hide-descendants` because the text inside should not be focused.\n const _importantForAccessibility =\n importantForAccessibility === 'no'\n ? 'no-hide-descendants'\n : importantForAccessibility;\n\n return (\n \n \n \n {formattedTitle}\n \n \n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n button: Platform.select({\n ios: {},\n android: {\n elevation: 4,\n // Material design blue from https://material.google.com/style/color.html#color-color-palette\n backgroundColor: '#2196F3',\n borderRadius: 2,\n },\n }),\n text: {\n textAlign: 'center',\n margin: 8,\n ...Platform.select({\n ios: {\n // iOS blue from https://developer.apple.com/ios/human-interface-guidelines/visual-design/color/\n color: '#007AFF',\n fontSize: 18,\n },\n android: {\n color: 'white',\n fontWeight: '500',\n },\n }),\n },\n buttonDisabled: Platform.select({\n ios: {},\n android: {\n elevation: 0,\n backgroundColor: '#dfdfdf',\n },\n }),\n textDisabled: Platform.select({\n ios: {\n color: '#cdcdcd',\n },\n android: {\n color: '#a1a1a1',\n },\n }),\n});\n\nmodule.exports = (Button: ButtonType);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {PressEvent} from '../Types/CoreEventTypes';\nimport type {TextProps} from './TextProps';\n\nimport * as PressabilityDebug from '../Pressability/PressabilityDebug';\nimport usePressability from '../Pressability/usePressability';\nimport flattenStyle from '../StyleSheet/flattenStyle';\nimport processColor from '../StyleSheet/processColor';\nimport {getAccessibilityRoleFromRole} from '../Utilities/AcessibilityMapping';\nimport Platform from '../Utilities/Platform';\nimport TextAncestor from './TextAncestor';\nimport {NativeText, NativeVirtualText} from './TextNativeComponent';\nimport * as React from 'react';\nimport {useContext, useMemo, useState} from 'react';\n\n/**\n * Text is the fundamental component for displaying text.\n *\n * @see https://reactnative.dev/docs/text\n */\nconst Text: React.AbstractComponent<\n TextProps,\n React.ElementRef,\n> = React.forwardRef((props: TextProps, forwardedRef) => {\n const {\n accessible,\n accessibilityLabel,\n accessibilityRole,\n accessibilityState,\n allowFontScaling,\n 'aria-busy': ariaBusy,\n 'aria-checked': ariaChecked,\n 'aria-disabled': ariaDisabled,\n 'aria-expanded': ariaExpanded,\n 'aria-label': ariaLabel,\n 'aria-selected': ariaSelected,\n ellipsizeMode,\n id,\n nativeID,\n onLongPress,\n onPress,\n onPressIn,\n onPressOut,\n onResponderGrant,\n onResponderMove,\n onResponderRelease,\n onResponderTerminate,\n onResponderTerminationRequest,\n onStartShouldSetResponder,\n pressRetentionOffset,\n role,\n suppressHighlighting,\n ...restProps\n } = props;\n\n const [isHighlighted, setHighlighted] = useState(false);\n\n let _accessibilityState;\n if (\n accessibilityState != null ||\n ariaBusy != null ||\n ariaChecked != null ||\n ariaDisabled != null ||\n ariaExpanded != null ||\n ariaSelected != null\n ) {\n _accessibilityState = {\n busy: ariaBusy ?? accessibilityState?.busy,\n checked: ariaChecked ?? accessibilityState?.checked,\n disabled: ariaDisabled ?? accessibilityState?.disabled,\n expanded: ariaExpanded ?? accessibilityState?.expanded,\n selected: ariaSelected ?? accessibilityState?.selected,\n };\n }\n\n const _disabled =\n restProps.disabled != null\n ? restProps.disabled\n : _accessibilityState?.disabled;\n\n const nativeTextAccessibilityState =\n _disabled !== _accessibilityState?.disabled\n ? {..._accessibilityState, disabled: _disabled}\n : _accessibilityState;\n\n const isPressable =\n (onPress != null ||\n onLongPress != null ||\n onStartShouldSetResponder != null) &&\n _disabled !== true;\n\n const initialized = useLazyInitialization(isPressable);\n const config = useMemo(\n () =>\n initialized\n ? {\n disabled: !isPressable,\n pressRectOffset: pressRetentionOffset,\n onLongPress,\n onPress,\n onPressIn(event: PressEvent) {\n setHighlighted(!suppressHighlighting);\n onPressIn?.(event);\n },\n onPressOut(event: PressEvent) {\n setHighlighted(false);\n onPressOut?.(event);\n },\n onResponderTerminationRequest_DEPRECATED:\n onResponderTerminationRequest,\n onStartShouldSetResponder_DEPRECATED: onStartShouldSetResponder,\n }\n : null,\n [\n initialized,\n isPressable,\n pressRetentionOffset,\n onLongPress,\n onPress,\n onPressIn,\n onPressOut,\n onResponderTerminationRequest,\n onStartShouldSetResponder,\n suppressHighlighting,\n ],\n );\n\n const eventHandlers = usePressability(config);\n const eventHandlersForText = useMemo(\n () =>\n eventHandlers == null\n ? null\n : {\n onResponderGrant(event: PressEvent) {\n eventHandlers.onResponderGrant(event);\n if (onResponderGrant != null) {\n onResponderGrant(event);\n }\n },\n onResponderMove(event: PressEvent) {\n eventHandlers.onResponderMove(event);\n if (onResponderMove != null) {\n onResponderMove(event);\n }\n },\n onResponderRelease(event: PressEvent) {\n eventHandlers.onResponderRelease(event);\n if (onResponderRelease != null) {\n onResponderRelease(event);\n }\n },\n onResponderTerminate(event: PressEvent) {\n eventHandlers.onResponderTerminate(event);\n if (onResponderTerminate != null) {\n onResponderTerminate(event);\n }\n },\n onClick: eventHandlers.onClick,\n onResponderTerminationRequest:\n eventHandlers.onResponderTerminationRequest,\n onStartShouldSetResponder: eventHandlers.onStartShouldSetResponder,\n },\n [\n eventHandlers,\n onResponderGrant,\n onResponderMove,\n onResponderRelease,\n onResponderTerminate,\n ],\n );\n\n // TODO: Move this processing to the view configuration.\n const selectionColor =\n restProps.selectionColor == null\n ? null\n : processColor(restProps.selectionColor);\n\n let style = restProps.style;\n\n if (__DEV__) {\n if (PressabilityDebug.isEnabled() && onPress != null) {\n style = [restProps.style, {color: 'magenta'}];\n }\n }\n\n let numberOfLines = restProps.numberOfLines;\n if (numberOfLines != null && !(numberOfLines >= 0)) {\n console.error(\n `'numberOfLines' in must be a non-negative number, received: ${numberOfLines}. The value will be set to 0.`,\n );\n numberOfLines = 0;\n }\n\n const hasTextAncestor = useContext(TextAncestor);\n\n const _accessible = Platform.select({\n ios: accessible !== false,\n default: accessible,\n });\n\n // $FlowFixMe[underconstrained-implicit-instantiation]\n style = flattenStyle(style);\n\n if (typeof style?.fontWeight === 'number') {\n style.fontWeight = style?.fontWeight.toString();\n }\n\n let _selectable = restProps.selectable;\n if (style?.userSelect != null) {\n _selectable = userSelectToSelectableMap[style.userSelect];\n delete style.userSelect;\n }\n\n if (style?.verticalAlign != null) {\n style.textAlignVertical =\n verticalAlignToTextAlignVerticalMap[style.verticalAlign];\n delete style.verticalAlign;\n }\n\n const _hasOnPressOrOnLongPress =\n props.onPress != null || props.onLongPress != null;\n\n return hasTextAncestor ? (\n \n ) : (\n \n \n \n );\n});\n\nText.displayName = 'Text';\n\n/**\n * Switch to `deprecated-react-native-prop-types` for compatibility with future\n * releases. This is deprecated and will be removed in the future.\n */\nText.propTypes = require('deprecated-react-native-prop-types').TextPropTypes;\n\n/**\n * Returns false until the first time `newValue` is true, after which this will\n * always return true. This is necessary to lazily initialize `Pressability` so\n * we do not eagerly create one for every pressable `Text` component.\n */\nfunction useLazyInitialization(newValue: boolean): boolean {\n const [oldValue, setValue] = useState(newValue);\n if (!oldValue && newValue) {\n setValue(newValue);\n }\n return oldValue;\n}\n\nconst userSelectToSelectableMap = {\n auto: true,\n text: true,\n none: false,\n contain: true,\n all: true,\n};\n\nconst verticalAlignToTextAlignVerticalMap = {\n auto: 'auto',\n top: 'top',\n bottom: 'bottom',\n middle: 'center',\n};\n\nmodule.exports = Text;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {ColorValue} from '../StyleSheet/StyleSheet';\n\nimport View from '../Components/View/View';\nimport normalizeColor from '../StyleSheet/normalizeColor';\nimport {type RectOrSize, normalizeRect} from '../StyleSheet/Rect';\nimport * as React from 'react';\n\ntype Props = $ReadOnly<{|\n color: ColorValue,\n hitSlop: ?RectOrSize,\n|}>;\n\n/**\n * Displays a debug overlay to visualize press targets when enabled via the\n * React Native Inspector. Calls to this module should be guarded by `__DEV__`,\n * for example:\n *\n * return (\n * \n * {children}\n * {__DEV__ ? (\n * \n * ) : null}\n * \n * );\n *\n */\nexport function PressabilityDebugView(props: Props): React.Node {\n if (__DEV__) {\n if (isEnabled()) {\n const normalizedColor = normalizeColor(props.color);\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n const baseColor =\n '#' + (normalizedColor ?? 0).toString(16).padStart(8, '0');\n const hitSlop = normalizeRect(props.hitSlop);\n return (\n \n );\n }\n }\n return null;\n}\n\nlet isDebugEnabled = false;\n\nexport function isEnabled(): boolean {\n if (__DEV__) {\n return isDebugEnabled;\n }\n return false;\n}\n\nexport function setEnabled(value: boolean): void {\n if (__DEV__) {\n isDebugEnabled = value;\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport Pressability, {\n type EventHandlers,\n type PressabilityConfig,\n} from './Pressability';\nimport {useEffect, useRef} from 'react';\n\n/**\n * Creates a persistent instance of `Pressability` that automatically configures\n * itself and resets. Accepts null `config` to support lazy initialization. Once\n * initialized, will not un-initialize until the component has been unmounted.\n */\nexport default function usePressability(\n config: ?PressabilityConfig,\n): ?EventHandlers {\n const pressabilityRef = useRef(null);\n if (config != null && pressabilityRef.current == null) {\n pressabilityRef.current = new Pressability(config);\n }\n const pressability = pressabilityRef.current;\n\n // On the initial mount, this is a no-op. On updates, `pressability` will be\n // re-configured to use the new configuration.\n useEffect(() => {\n if (config != null && pressability != null) {\n pressability.configure(config);\n }\n }, [config, pressability]);\n\n // On unmount, reset pending state and timers inside `pressability`. This is\n // a separate effect because we do not want to reset when `config` changes.\n useEffect(() => {\n if (pressability != null) {\n return () => {\n pressability.reset();\n };\n }\n }, [pressability]);\n\n return pressability == null ? null : pressability.getEventHandlers();\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {HostComponent} from '../Renderer/shims/ReactNativeTypes';\nimport type {\n BlurEvent,\n FocusEvent,\n MouseEvent,\n PressEvent,\n} from '../Types/CoreEventTypes';\n\nimport SoundManager from '../Components/Sound/SoundManager';\nimport ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';\nimport UIManager from '../ReactNative/UIManager';\nimport {type RectOrSize, normalizeRect} from '../StyleSheet/Rect';\nimport {type PointerEvent} from '../Types/CoreEventTypes';\nimport Platform from '../Utilities/Platform';\nimport {isHoverEnabled} from './HoverState';\nimport PressabilityPerformanceEventEmitter from './PressabilityPerformanceEventEmitter.js';\nimport {type PressabilityTouchSignal as TouchSignal} from './PressabilityTypes.js';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\nexport type PressabilityConfig = $ReadOnly<{|\n /**\n * Whether a press gesture can be interrupted by a parent gesture such as a\n * scroll event. Defaults to true.\n */\n cancelable?: ?boolean,\n\n /**\n * Whether to disable initialization of the press gesture.\n */\n disabled?: ?boolean,\n\n /**\n * Amount to extend the `VisualRect` by to create `HitRect`.\n */\n hitSlop?: ?RectOrSize,\n\n /**\n * Amount to extend the `HitRect` by to create `PressRect`.\n */\n pressRectOffset?: ?RectOrSize,\n\n /**\n * Whether to disable the systemm sound when `onPress` fires on Android.\n **/\n android_disableSound?: ?boolean,\n\n /**\n * Duration to wait after hover in before calling `onHoverIn`.\n */\n delayHoverIn?: ?number,\n\n /**\n * Duration to wait after hover out before calling `onHoverOut`.\n */\n delayHoverOut?: ?number,\n\n /**\n * Duration (in addition to `delayPressIn`) after which a press gesture is\n * considered a long press gesture. Defaults to 500 (milliseconds).\n */\n delayLongPress?: ?number,\n\n /**\n * Duration to wait after press down before calling `onPressIn`.\n */\n delayPressIn?: ?number,\n\n /**\n * Duration to wait after letting up before calling `onPressOut`.\n */\n delayPressOut?: ?number,\n\n /**\n * Minimum duration to wait between calling `onPressIn` and `onPressOut`.\n */\n minPressDuration?: ?number,\n\n /**\n * Called after the element loses focus.\n */\n onBlur?: ?(event: BlurEvent) => mixed,\n\n /**\n * Called after the element is focused.\n */\n onFocus?: ?(event: FocusEvent) => mixed,\n\n /**\n * Called when the hover is activated to provide visual feedback.\n */\n onHoverIn?: ?(event: MouseEvent) => mixed,\n\n /**\n * Called when the hover is deactivated to undo visual feedback.\n */\n onHoverOut?: ?(event: MouseEvent) => mixed,\n\n /**\n * Called when a long press gesture has been triggered.\n */\n onLongPress?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when a press gesture has been triggered.\n */\n onPress?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when the press is activated to provide visual feedback.\n */\n onPressIn?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when the press location moves. (This should rarely be used.)\n */\n onPressMove?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when the press is deactivated to undo visual feedback.\n */\n onPressOut?: ?(event: PressEvent) => mixed,\n\n /**\n * Returns whether a long press gesture should cancel the press gesture.\n * Defaults to true.\n */\n onLongPressShouldCancelPress_DEPRECATED?: ?() => boolean,\n\n /**\n * If `cancelable` is set, this will be ignored.\n *\n * Returns whether to yield to a lock termination request (e.g. if a native\n * scroll gesture attempts to steal the responder lock).\n */\n onResponderTerminationRequest_DEPRECATED?: ?() => boolean,\n\n /**\n * If `disabled` is set, this will be ignored.\n *\n * Returns whether to start a press gesture.\n *\n * @deprecated\n */\n onStartShouldSetResponder_DEPRECATED?: ?() => boolean,\n|}>;\n\nexport type EventHandlers = $ReadOnly<{|\n onBlur: (event: BlurEvent) => void,\n onClick: (event: PressEvent) => void,\n onFocus: (event: FocusEvent) => void,\n onMouseEnter?: (event: MouseEvent) => void,\n onMouseLeave?: (event: MouseEvent) => void,\n onPointerEnter?: (event: PointerEvent) => void,\n onPointerLeave?: (event: PointerEvent) => void,\n onResponderGrant: (event: PressEvent) => void,\n onResponderMove: (event: PressEvent) => void,\n onResponderRelease: (event: PressEvent) => void,\n onResponderTerminate: (event: PressEvent) => void,\n onResponderTerminationRequest: () => boolean,\n onStartShouldSetResponder: () => boolean,\n|}>;\n\ntype TouchState =\n | 'NOT_RESPONDER'\n | 'RESPONDER_INACTIVE_PRESS_IN'\n | 'RESPONDER_INACTIVE_PRESS_OUT'\n | 'RESPONDER_ACTIVE_PRESS_IN'\n | 'RESPONDER_ACTIVE_PRESS_OUT'\n | 'RESPONDER_ACTIVE_LONG_PRESS_IN'\n | 'RESPONDER_ACTIVE_LONG_PRESS_OUT'\n | 'ERROR';\n\nconst Transitions = Object.freeze({\n NOT_RESPONDER: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'RESPONDER_INACTIVE_PRESS_IN',\n RESPONDER_RELEASE: 'ERROR',\n RESPONDER_TERMINATED: 'ERROR',\n ENTER_PRESS_RECT: 'ERROR',\n LEAVE_PRESS_RECT: 'ERROR',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_INACTIVE_PRESS_IN: {\n DELAY: 'RESPONDER_ACTIVE_PRESS_IN',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_INACTIVE_PRESS_OUT: {\n DELAY: 'RESPONDER_ACTIVE_PRESS_OUT',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_ACTIVE_PRESS_IN: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n },\n RESPONDER_ACTIVE_PRESS_OUT: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_ACTIVE_LONG_PRESS_IN: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',\n LONG_PRESS_DETECTED: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n },\n RESPONDER_ACTIVE_LONG_PRESS_OUT: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n ERROR: {\n DELAY: 'NOT_RESPONDER',\n RESPONDER_GRANT: 'RESPONDER_INACTIVE_PRESS_IN',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'NOT_RESPONDER',\n LEAVE_PRESS_RECT: 'NOT_RESPONDER',\n LONG_PRESS_DETECTED: 'NOT_RESPONDER',\n },\n});\n\nconst isActiveSignal = (signal: TouchState) =>\n signal === 'RESPONDER_ACTIVE_PRESS_IN' ||\n signal === 'RESPONDER_ACTIVE_LONG_PRESS_IN';\n\nconst isActivationSignal = (signal: TouchState) =>\n signal === 'RESPONDER_ACTIVE_PRESS_OUT' ||\n signal === 'RESPONDER_ACTIVE_PRESS_IN';\n\nconst isPressInSignal = (signal: TouchState) =>\n signal === 'RESPONDER_INACTIVE_PRESS_IN' ||\n signal === 'RESPONDER_ACTIVE_PRESS_IN' ||\n signal === 'RESPONDER_ACTIVE_LONG_PRESS_IN';\n\nconst isTerminalSignal = (signal: TouchSignal) =>\n signal === 'RESPONDER_TERMINATED' || signal === 'RESPONDER_RELEASE';\n\nconst DEFAULT_LONG_PRESS_DELAY_MS = 500;\nconst DEFAULT_PRESS_RECT_OFFSETS = {\n bottom: 30,\n left: 20,\n right: 20,\n top: 20,\n};\nconst DEFAULT_MIN_PRESS_DURATION = 130;\n\nconst DEFAULT_LONG_PRESS_DEACTIVATION_DISTANCE = 10;\nlet longPressDeactivationDistance = DEFAULT_LONG_PRESS_DEACTIVATION_DISTANCE;\n/**\n * Pressability implements press handling capabilities.\n *\n * =========================== Pressability Tutorial ===========================\n *\n * The `Pressability` class helps you create press interactions by analyzing the\n * geometry of elements and observing when another responder (e.g. ScrollView)\n * has stolen the touch lock. It offers hooks for your component to provide\n * interaction feedback to the user:\n *\n * - When a press has activated (e.g. highlight an element)\n * - When a press has deactivated (e.g. un-highlight an element)\n * - When a press sould trigger an action, meaning it activated and deactivated\n * while within the geometry of the element without the lock being stolen.\n *\n * A high quality interaction isn't as simple as you might think. There should\n * be a slight delay before activation. Moving your finger beyond an element's\n * bounds should trigger deactivation, but moving the same finger back within an\n * element's bounds should trigger reactivation.\n *\n * In order to use `Pressability`, do the following:\n *\n * 1. Instantiate `Pressability` and store it on your component's state.\n *\n * state = {\n * pressability: new Pressability({\n * // ...\n * }),\n * };\n *\n * 2. Choose the rendered component who should collect the press events. On that\n * element, spread `pressability.getEventHandlers()` into its props.\n *\n * return (\n * \n * );\n *\n * 3. Reset `Pressability` when your component unmounts.\n *\n * componentWillUnmount() {\n * this.state.pressability.reset();\n * }\n *\n * ==================== Pressability Implementation Details ====================\n *\n * `Pressability` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * # Geometry\n *\n * β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n * β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ - Presses start anywhere within `HitRect`, which\n * β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ is expanded via the prop `hitSlop`.\n * β”‚ β”‚ β”‚ VisualRect β”‚ β”‚ β”‚\n * β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ - When pressed down for sufficient amount of time\n * β”‚ β”‚ HitRect β”‚ β”‚ before letting up, `VisualRect` activates for\n * β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ as long as the press stays within `PressRect`.\n * β”‚ PressRect o β”‚\n * β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”‚β”€β”€β”€β”˜\n * Out Region └────── `PressRect`, which is expanded via the prop\n * `pressRectOffset`, allows presses to move\n * beyond `HitRect` while maintaining activation\n * and being eligible for a \"press\".\n *\n * # State Machine\n *\n * β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” ◀──── RESPONDER_RELEASE\n * β”‚ NOT_RESPONDER β”‚\n * β””β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ◀──── RESPONDER_TERMINATED\n * β”‚\n * β”‚ RESPONDER_GRANT (HitRect)\n * β”‚\n * β–Ό\n * β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n * β”‚ RESPONDER_INACTIVE_ β”‚ DELAY β”‚ RESPONDER_ACTIVE_ β”‚ T + DELAY β”‚ RESPONDER_ACTIVE_ β”‚\n * β”‚ PRESS_IN β”œβ”€β”€β”€β”€β”€β”€β”€β”€β–Ά β”‚ PRESS_IN β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Ά β”‚ LONG_PRESS_IN β”‚\n * β””β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜\n * β”‚ β–² β”‚ β–² β”‚ β–²\n * β”‚LEAVE_ β”‚ β”‚LEAVE_ β”‚ β”‚LEAVE_ β”‚\n * β”‚PRESS_RECT β”‚ENTER_ β”‚PRESS_RECT β”‚ENTER_ β”‚PRESS_RECT β”‚ENTER_\n * β”‚ β”‚PRESS_RECT β”‚ β”‚PRESS_RECT β”‚ β”‚PRESS_RECT\n * β–Ό β”‚ β–Ό β”‚ β–Ό β”‚\n * β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”\n * β”‚ RESPONDER_INACTIVE_ β”‚ DELAY β”‚ RESPONDER_ACTIVE_ β”‚ β”‚ RESPONDER_ACTIVE_ β”‚\n * β”‚ PRESS_OUT β”œβ”€β”€β”€β”€β”€β”€β”€β”€β–Ά β”‚ PRESS_OUT β”‚ β”‚ LONG_PRESS_OUT β”‚\n * β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜\n *\n * T + DELAY => LONG_PRESS_DELAY + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the invocation of `onPress` and `onLongPress` that occur when a\n * responder is release while in the \"press in\" states.\n */\nexport default class Pressability {\n _config: PressabilityConfig;\n _eventHandlers: ?EventHandlers = null;\n _hoverInDelayTimeout: ?TimeoutID = null;\n _hoverOutDelayTimeout: ?TimeoutID = null;\n _isHovered: boolean = false;\n _longPressDelayTimeout: ?TimeoutID = null;\n _pressDelayTimeout: ?TimeoutID = null;\n _pressOutDelayTimeout: ?TimeoutID = null;\n _responderID: ?number | React.ElementRef> = null;\n _responderRegion: ?$ReadOnly<{|\n bottom: number,\n left: number,\n right: number,\n top: number,\n |}> = null;\n _touchActivatePosition: ?$ReadOnly<{|\n pageX: number,\n pageY: number,\n |}>;\n _touchActivateTime: ?number;\n _touchState: TouchState = 'NOT_RESPONDER';\n\n constructor(config: PressabilityConfig) {\n this.configure(config);\n }\n\n configure(config: PressabilityConfig): void {\n this._config = config;\n }\n\n /**\n * Resets any pending timers. This should be called on unmount.\n */\n reset(): void {\n this._cancelHoverInDelayTimeout();\n this._cancelHoverOutDelayTimeout();\n this._cancelLongPressDelayTimeout();\n this._cancelPressDelayTimeout();\n this._cancelPressOutDelayTimeout();\n\n // Ensure that, if any async event handlers are fired after unmount\n // due to a race, we don't call any configured callbacks.\n this._config = Object.freeze({});\n }\n\n /**\n * Returns a set of props to spread into the interactive element.\n */\n getEventHandlers(): EventHandlers {\n if (this._eventHandlers == null) {\n this._eventHandlers = this._createEventHandlers();\n }\n return this._eventHandlers;\n }\n\n static setLongPressDeactivationDistance(distance: number): void {\n longPressDeactivationDistance = distance;\n }\n\n _createEventHandlers(): EventHandlers {\n const focusEventHandlers = {\n onBlur: (event: BlurEvent): void => {\n const {onBlur} = this._config;\n if (onBlur != null) {\n onBlur(event);\n }\n },\n onFocus: (event: FocusEvent): void => {\n const {onFocus} = this._config;\n if (onFocus != null) {\n onFocus(event);\n }\n },\n };\n\n const responderEventHandlers = {\n onStartShouldSetResponder: (): boolean => {\n const {disabled} = this._config;\n if (disabled == null) {\n const {onStartShouldSetResponder_DEPRECATED} = this._config;\n return onStartShouldSetResponder_DEPRECATED == null\n ? true\n : onStartShouldSetResponder_DEPRECATED();\n }\n return !disabled;\n },\n\n onResponderGrant: (event: PressEvent): void => {\n event.persist();\n\n this._cancelPressOutDelayTimeout();\n\n this._responderID = event.currentTarget;\n this._touchState = 'NOT_RESPONDER';\n this._receiveSignal('RESPONDER_GRANT', event);\n\n const delayPressIn = normalizeDelay(this._config.delayPressIn);\n if (delayPressIn > 0) {\n this._pressDelayTimeout = setTimeout(() => {\n this._receiveSignal('DELAY', event);\n }, delayPressIn);\n } else {\n this._receiveSignal('DELAY', event);\n }\n\n const delayLongPress = normalizeDelay(\n this._config.delayLongPress,\n 10,\n DEFAULT_LONG_PRESS_DELAY_MS - delayPressIn,\n );\n this._longPressDelayTimeout = setTimeout(() => {\n this._handleLongPress(event);\n }, delayLongPress + delayPressIn);\n },\n\n onResponderMove: (event: PressEvent): void => {\n const {onPressMove} = this._config;\n if (onPressMove != null) {\n onPressMove(event);\n }\n\n // Region may not have finished being measured, yet.\n const responderRegion = this._responderRegion;\n if (responderRegion == null) {\n return;\n }\n\n const touch = getTouchFromPressEvent(event);\n if (touch == null) {\n this._cancelLongPressDelayTimeout();\n this._receiveSignal('LEAVE_PRESS_RECT', event);\n return;\n }\n\n if (this._touchActivatePosition != null) {\n const deltaX = this._touchActivatePosition.pageX - touch.pageX;\n const deltaY = this._touchActivatePosition.pageY - touch.pageY;\n if (Math.hypot(deltaX, deltaY) > longPressDeactivationDistance) {\n this._cancelLongPressDelayTimeout();\n }\n }\n\n if (this._isTouchWithinResponderRegion(touch, responderRegion)) {\n this._receiveSignal('ENTER_PRESS_RECT', event);\n } else {\n this._cancelLongPressDelayTimeout();\n this._receiveSignal('LEAVE_PRESS_RECT', event);\n }\n },\n\n onResponderRelease: (event: PressEvent): void => {\n this._receiveSignal('RESPONDER_RELEASE', event);\n },\n\n onResponderTerminate: (event: PressEvent): void => {\n this._receiveSignal('RESPONDER_TERMINATED', event);\n },\n\n onResponderTerminationRequest: (): boolean => {\n const {cancelable} = this._config;\n if (cancelable == null) {\n const {onResponderTerminationRequest_DEPRECATED} = this._config;\n return onResponderTerminationRequest_DEPRECATED == null\n ? true\n : onResponderTerminationRequest_DEPRECATED();\n }\n return cancelable;\n },\n\n onClick: (event: PressEvent): void => {\n const {onPress, disabled} = this._config;\n if (onPress != null && disabled !== true) {\n onPress(event);\n }\n },\n };\n\n if (process.env.NODE_ENV === 'test') {\n // We are setting this in order to find this node in ReactNativeTestTools\n // $FlowFixMe[prop-missing]\n responderEventHandlers.onStartShouldSetResponder.testOnly_pressabilityConfig =\n () => this._config;\n }\n\n if (\n ReactNativeFeatureFlags.shouldPressibilityUseW3CPointerEventsForHover()\n ) {\n const hoverPointerEvents = {\n onPointerEnter: (undefined: void | (PointerEvent => void)),\n onPointerLeave: (undefined: void | (PointerEvent => void)),\n };\n const {onHoverIn, onHoverOut} = this._config;\n if (onHoverIn != null) {\n hoverPointerEvents.onPointerEnter = (event: PointerEvent) => {\n this._isHovered = true;\n this._cancelHoverOutDelayTimeout();\n if (onHoverIn != null) {\n const delayHoverIn = normalizeDelay(this._config.delayHoverIn);\n if (delayHoverIn > 0) {\n event.persist();\n this._hoverInDelayTimeout = setTimeout(() => {\n onHoverIn(convertPointerEventToMouseEvent(event));\n }, delayHoverIn);\n } else {\n onHoverIn(convertPointerEventToMouseEvent(event));\n }\n }\n };\n }\n if (onHoverOut != null) {\n hoverPointerEvents.onPointerLeave = (event: PointerEvent) => {\n if (this._isHovered) {\n this._isHovered = false;\n this._cancelHoverInDelayTimeout();\n if (onHoverOut != null) {\n const delayHoverOut = normalizeDelay(this._config.delayHoverOut);\n if (delayHoverOut > 0) {\n event.persist();\n this._hoverOutDelayTimeout = setTimeout(() => {\n onHoverOut(convertPointerEventToMouseEvent(event));\n }, delayHoverOut);\n } else {\n onHoverOut(convertPointerEventToMouseEvent(event));\n }\n }\n }\n };\n }\n return {\n ...focusEventHandlers,\n ...responderEventHandlers,\n ...hoverPointerEvents,\n };\n } else {\n const mouseEventHandlers =\n Platform.OS === 'ios' || Platform.OS === 'android'\n ? null\n : {\n onMouseEnter: (event: MouseEvent): void => {\n if (isHoverEnabled()) {\n this._isHovered = true;\n this._cancelHoverOutDelayTimeout();\n const {onHoverIn} = this._config;\n if (onHoverIn != null) {\n const delayHoverIn = normalizeDelay(\n this._config.delayHoverIn,\n );\n if (delayHoverIn > 0) {\n event.persist();\n this._hoverInDelayTimeout = setTimeout(() => {\n onHoverIn(event);\n }, delayHoverIn);\n } else {\n onHoverIn(event);\n }\n }\n }\n },\n\n onMouseLeave: (event: MouseEvent): void => {\n if (this._isHovered) {\n this._isHovered = false;\n this._cancelHoverInDelayTimeout();\n const {onHoverOut} = this._config;\n if (onHoverOut != null) {\n const delayHoverOut = normalizeDelay(\n this._config.delayHoverOut,\n );\n if (delayHoverOut > 0) {\n event.persist();\n this._hoverInDelayTimeout = setTimeout(() => {\n onHoverOut(event);\n }, delayHoverOut);\n } else {\n onHoverOut(event);\n }\n }\n }\n },\n };\n return {\n ...focusEventHandlers,\n ...responderEventHandlers,\n ...mouseEventHandlers,\n };\n }\n }\n\n /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n */\n _receiveSignal(signal: TouchSignal, event: PressEvent): void {\n // Especially on iOS, not all events have timestamps associated.\n // For telemetry purposes, this doesn't matter too much, as long as *some* do.\n // Since the native timestamp is integral for logging telemetry, just skip\n // events if they don't have a timestamp attached.\n if (event.nativeEvent.timestamp != null) {\n PressabilityPerformanceEventEmitter.emitEvent(() => {\n return {\n signal,\n nativeTimestamp: event.nativeEvent.timestamp,\n };\n });\n }\n\n const prevState = this._touchState;\n const nextState = Transitions[prevState]?.[signal];\n if (this._responderID == null && signal === 'RESPONDER_RELEASE') {\n return;\n }\n invariant(\n nextState != null && nextState !== 'ERROR',\n 'Pressability: Invalid signal `%s` for state `%s` on responder: %s',\n signal,\n prevState,\n typeof this._responderID === 'number'\n ? this._responderID\n : '<>',\n );\n if (prevState !== nextState) {\n this._performTransitionSideEffects(prevState, nextState, signal, event);\n this._touchState = nextState;\n }\n }\n\n /**\n * Performs a transition between touchable states and identify any activations\n * or deactivations (and callback invocations).\n */\n _performTransitionSideEffects(\n prevState: TouchState,\n nextState: TouchState,\n signal: TouchSignal,\n event: PressEvent,\n ): void {\n if (isTerminalSignal(signal)) {\n this._touchActivatePosition = null;\n this._cancelLongPressDelayTimeout();\n }\n\n const isInitialTransition =\n prevState === 'NOT_RESPONDER' &&\n nextState === 'RESPONDER_INACTIVE_PRESS_IN';\n\n const isActivationTransition =\n !isActivationSignal(prevState) && isActivationSignal(nextState);\n\n if (isInitialTransition || isActivationTransition) {\n this._measureResponderRegion();\n }\n\n if (isPressInSignal(prevState) && signal === 'LONG_PRESS_DETECTED') {\n const {onLongPress} = this._config;\n if (onLongPress != null) {\n onLongPress(event);\n }\n }\n\n const isPrevActive = isActiveSignal(prevState);\n const isNextActive = isActiveSignal(nextState);\n\n if (!isPrevActive && isNextActive) {\n this._activate(event);\n } else if (isPrevActive && !isNextActive) {\n this._deactivate(event);\n }\n\n if (isPressInSignal(prevState) && signal === 'RESPONDER_RELEASE') {\n // If we never activated (due to delays), activate and deactivate now.\n if (!isNextActive && !isPrevActive) {\n this._activate(event);\n this._deactivate(event);\n }\n const {onLongPress, onPress, android_disableSound} = this._config;\n if (onPress != null) {\n const isPressCanceledByLongPress =\n onLongPress != null &&\n prevState === 'RESPONDER_ACTIVE_LONG_PRESS_IN' &&\n this._shouldLongPressCancelPress();\n if (!isPressCanceledByLongPress) {\n if (Platform.OS === 'android' && android_disableSound !== true) {\n SoundManager.playTouchSound();\n }\n onPress(event);\n }\n }\n }\n\n this._cancelPressDelayTimeout();\n }\n\n _activate(event: PressEvent): void {\n const {onPressIn} = this._config;\n const {pageX, pageY} = getTouchFromPressEvent(event);\n this._touchActivatePosition = {pageX, pageY};\n this._touchActivateTime = Date.now();\n if (onPressIn != null) {\n onPressIn(event);\n }\n }\n\n _deactivate(event: PressEvent): void {\n const {onPressOut} = this._config;\n if (onPressOut != null) {\n const minPressDuration = normalizeDelay(\n this._config.minPressDuration,\n 0,\n DEFAULT_MIN_PRESS_DURATION,\n );\n const pressDuration = Date.now() - (this._touchActivateTime ?? 0);\n const delayPressOut = Math.max(\n minPressDuration - pressDuration,\n normalizeDelay(this._config.delayPressOut),\n );\n if (delayPressOut > 0) {\n event.persist();\n this._pressOutDelayTimeout = setTimeout(() => {\n onPressOut(event);\n }, delayPressOut);\n } else {\n onPressOut(event);\n }\n }\n this._touchActivateTime = null;\n }\n\n _measureResponderRegion(): void {\n if (this._responderID == null) {\n return;\n }\n\n if (typeof this._responderID === 'number') {\n UIManager.measure(this._responderID, this._measureCallback);\n } else {\n this._responderID.measure(this._measureCallback);\n }\n }\n\n _measureCallback = (\n left: number,\n top: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number,\n ) => {\n if (!left && !top && !width && !height && !pageX && !pageY) {\n return;\n }\n this._responderRegion = {\n bottom: pageY + height,\n left: pageX,\n right: pageX + width,\n top: pageY,\n };\n };\n\n _isTouchWithinResponderRegion(\n touch: $PropertyType,\n responderRegion: $ReadOnly<{|\n bottom: number,\n left: number,\n right: number,\n top: number,\n |}>,\n ): boolean {\n const hitSlop = normalizeRect(this._config.hitSlop);\n const pressRectOffset = normalizeRect(this._config.pressRectOffset);\n\n let regionBottom = responderRegion.bottom;\n let regionLeft = responderRegion.left;\n let regionRight = responderRegion.right;\n let regionTop = responderRegion.top;\n\n if (hitSlop != null) {\n if (hitSlop.bottom != null) {\n regionBottom += hitSlop.bottom;\n }\n if (hitSlop.left != null) {\n regionLeft -= hitSlop.left;\n }\n if (hitSlop.right != null) {\n regionRight += hitSlop.right;\n }\n if (hitSlop.top != null) {\n regionTop -= hitSlop.top;\n }\n }\n\n regionBottom +=\n pressRectOffset?.bottom ?? DEFAULT_PRESS_RECT_OFFSETS.bottom;\n regionLeft -= pressRectOffset?.left ?? DEFAULT_PRESS_RECT_OFFSETS.left;\n regionRight += pressRectOffset?.right ?? DEFAULT_PRESS_RECT_OFFSETS.right;\n regionTop -= pressRectOffset?.top ?? DEFAULT_PRESS_RECT_OFFSETS.top;\n\n return (\n touch.pageX > regionLeft &&\n touch.pageX < regionRight &&\n touch.pageY > regionTop &&\n touch.pageY < regionBottom\n );\n }\n\n _handleLongPress(event: PressEvent): void {\n if (\n this._touchState === 'RESPONDER_ACTIVE_PRESS_IN' ||\n this._touchState === 'RESPONDER_ACTIVE_LONG_PRESS_IN'\n ) {\n this._receiveSignal('LONG_PRESS_DETECTED', event);\n }\n }\n\n _shouldLongPressCancelPress(): boolean {\n return (\n this._config.onLongPressShouldCancelPress_DEPRECATED == null ||\n this._config.onLongPressShouldCancelPress_DEPRECATED()\n );\n }\n\n _cancelHoverInDelayTimeout(): void {\n if (this._hoverInDelayTimeout != null) {\n clearTimeout(this._hoverInDelayTimeout);\n this._hoverInDelayTimeout = null;\n }\n }\n\n _cancelHoverOutDelayTimeout(): void {\n if (this._hoverOutDelayTimeout != null) {\n clearTimeout(this._hoverOutDelayTimeout);\n this._hoverOutDelayTimeout = null;\n }\n }\n\n _cancelLongPressDelayTimeout(): void {\n if (this._longPressDelayTimeout != null) {\n clearTimeout(this._longPressDelayTimeout);\n this._longPressDelayTimeout = null;\n }\n }\n\n _cancelPressDelayTimeout(): void {\n if (this._pressDelayTimeout != null) {\n clearTimeout(this._pressDelayTimeout);\n this._pressDelayTimeout = null;\n }\n }\n\n _cancelPressOutDelayTimeout(): void {\n if (this._pressOutDelayTimeout != null) {\n clearTimeout(this._pressOutDelayTimeout);\n this._pressOutDelayTimeout = null;\n }\n }\n}\n\nfunction normalizeDelay(\n delay: ?number,\n min: number = 0,\n fallback: number = 0,\n): number {\n return Math.max(min, delay ?? fallback);\n}\n\nconst getTouchFromPressEvent = (event: PressEvent) => {\n const {changedTouches, touches} = event.nativeEvent;\n\n if (touches != null && touches.length > 0) {\n return touches[0];\n }\n if (changedTouches != null && changedTouches.length > 0) {\n return changedTouches[0];\n }\n return event.nativeEvent;\n};\n\nfunction convertPointerEventToMouseEvent(input: PointerEvent): MouseEvent {\n const {clientX, clientY} = input.nativeEvent;\n return {\n ...input,\n nativeEvent: {\n clientX,\n clientY,\n pageX: clientX,\n pageY: clientY,\n timestamp: input.timeStamp,\n },\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport NativeSoundManager from './NativeSoundManager';\n\nconst SoundManager = {\n playTouchSound: function (): void {\n if (NativeSoundManager) {\n NativeSoundManager.playTouchSound();\n }\n },\n};\n\nmodule.exports = SoundManager;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\n/**\n * Native Module used for playing sounds in native platform.\n */\nexport interface Spec extends TurboModule {\n +playTouchSound: () => void;\n}\n\nexport default (TurboModuleRegistry.get('SoundManager'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport {type PressabilityTouchSignal as TouchSignal} from './PressabilityTypes.js';\n\nexport type PressabilityPerformanceEvent = $ReadOnly<{|\n signal: TouchSignal,\n nativeTimestamp: number,\n|}>;\nexport type PressabilityPerformanceEventListener =\n PressabilityPerformanceEvent => void;\n\nclass PressabilityPerformanceEventEmitter {\n _listeners: Array = [];\n\n constructor() {}\n\n addListener(listener: PressabilityPerformanceEventListener): void {\n this._listeners.push(listener);\n }\n\n removeListener(listener: PressabilityPerformanceEventListener): void {\n const index = this._listeners.indexOf(listener);\n if (index > -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n emitEvent(constructEvent: () => PressabilityPerformanceEvent): void {\n if (this._listeners.length === 0) {\n return;\n }\n\n const event = constructEvent();\n this._listeners.forEach(listener => listener(event));\n }\n}\n\nconst PressabilityPerformanceEventEmitterSingleton: PressabilityPerformanceEventEmitter =\n new PressabilityPerformanceEventEmitter();\n\nexport default PressabilityPerformanceEventEmitterSingleton;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport Platform from '../Utilities/Platform';\n\nlet isEnabled = false;\n\nif (Platform.OS === 'web') {\n const canUseDOM = Boolean(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement,\n );\n\n if (canUseDOM) {\n /**\n * Web browsers emulate mouse events (and hover states) after touch events.\n * This code infers when the currently-in-use modality supports hover\n * (including for multi-modality devices) and considers \"hover\" to be enabled\n * if a mouse movement occurs more than 1 second after the last touch event.\n * This threshold is long enough to account for longer delays between the\n * browser firing touch and mouse events on low-powered devices.\n */\n const HOVER_THRESHOLD_MS = 1000;\n let lastTouchTimestamp = 0;\n\n const enableHover = () => {\n if (isEnabled || Date.now() - lastTouchTimestamp < HOVER_THRESHOLD_MS) {\n return;\n }\n isEnabled = true;\n };\n\n const disableHover = () => {\n lastTouchTimestamp = Date.now();\n if (isEnabled) {\n isEnabled = false;\n }\n };\n\n document.addEventListener('touchstart', disableHover, true);\n document.addEventListener('touchmove', disableHover, true);\n document.addEventListener('mousemove', enableHover, true);\n }\n}\n\nexport function isHoverEnabled(): boolean {\n return isEnabled;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nexport type Rect = $ReadOnly<{|\n bottom?: ?number,\n left?: ?number,\n right?: ?number,\n top?: ?number,\n|}>;\n\nexport type RectOrSize = Rect | number;\n\nexport function createSquare(size: number): Rect {\n return {bottom: size, left: size, right: size, top: size};\n}\n\nexport function normalizeRect(rectOrSize: ?RectOrSize): ?Rect {\n return typeof rectOrSize === 'number' ? createSquare(rectOrSize) : rectOrSize;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport {createViewConfig} from '../NativeComponent/ViewConfig';\nimport UIManager from '../ReactNative/UIManager';\nimport createReactNativeComponentClass from '../Renderer/shims/createReactNativeComponentClass';\nimport {type HostComponent} from '../Renderer/shims/ReactNativeTypes';\nimport {type ProcessedColorValue} from '../StyleSheet/processColor';\nimport {type PressEvent} from '../Types/CoreEventTypes';\nimport {type TextProps} from './TextProps';\n\ntype NativeTextProps = $ReadOnly<{\n ...TextProps,\n isHighlighted?: ?boolean,\n selectionColor?: ?ProcessedColorValue,\n onClick?: ?(event: PressEvent) => mixed,\n // This is only needed for platforms that optimize text hit testing, e.g.,\n // react-native-windows. It can be used to only hit test virtual text spans\n // that have pressable events attached to them.\n isPressable?: ?boolean,\n}>;\n\nconst textViewConfig = {\n validAttributes: {\n isHighlighted: true,\n isPressable: true,\n numberOfLines: true,\n ellipsizeMode: true,\n allowFontScaling: true,\n dynamicTypeRamp: true,\n maxFontSizeMultiplier: true,\n disabled: true,\n selectable: true,\n selectionColor: true,\n adjustsFontSizeToFit: true,\n minimumFontScale: true,\n textBreakStrategy: true,\n onTextLayout: true,\n onInlineViewLayout: true,\n dataDetectorType: true,\n android_hyphenationFrequency: true,\n lineBreakStrategyIOS: true,\n },\n directEventTypes: {\n topTextLayout: {\n registrationName: 'onTextLayout',\n },\n topInlineViewLayout: {\n registrationName: 'onInlineViewLayout',\n },\n },\n uiViewClassName: 'RCTText',\n};\n\nconst virtualTextViewConfig = {\n validAttributes: {\n isHighlighted: true,\n isPressable: true,\n maxFontSizeMultiplier: true,\n },\n uiViewClassName: 'RCTVirtualText',\n};\n\nexport const NativeText: HostComponent =\n (createReactNativeComponentClass('RCTText', () =>\n createViewConfig(textViewConfig),\n ): any);\n\nexport const NativeVirtualText: HostComponent =\n !global.RN$Bridgeless && !UIManager.hasViewManagerConfig('RCTVirtualText')\n ? NativeText\n : (createReactNativeComponentClass('RCTVirtualText', () =>\n createViewConfig(virtualTextViewConfig),\n ): any);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nmodule.exports = {\n get ColorPropType() {\n return require('./DeprecatedColorPropType');\n },\n get EdgeInsetsPropType() {\n return require('./DeprecatedEdgeInsetsPropType');\n },\n get ImagePropTypes() {\n return require('./DeprecatedImagePropType');\n },\n get PointPropType() {\n return require('./DeprecatedPointPropType');\n },\n get TextInputPropTypes() {\n return require('./DeprecatedTextInputPropTypes');\n },\n get TextPropTypes() {\n return require('./DeprecatedTextPropTypes');\n },\n get ViewPropTypes() {\n return require('./DeprecatedViewPropTypes');\n },\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst normalizeColor = require('@react-native/normalize-colors');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst colorPropType = function(\n isRequired,\n props,\n propName,\n componentName,\n location,\n propFullName,\n) {\n const color = props[propName];\n\n if (color == null) {\n if (isRequired) {\n return new Error(\n 'Required ' +\n location +\n ' `' +\n (propFullName || propName) +\n '` was not specified in `' +\n componentName +\n '`.',\n );\n }\n return;\n }\n\n if (typeof color === 'number') {\n // Developers should not use a number, but we are using the prop type\n // both for user provided colors and for transformed ones. This isn't ideal\n // and should be fixed but will do for now...\n return;\n }\n\n if (typeof color === 'string' && normalizeColor(color) === null) {\n return new Error(\n 'Invalid ' +\n location +\n ' `' +\n (propFullName || propName) +\n '` supplied to `' +\n componentName +\n '`: ' +\n color +\n '\\n' +\n `Valid color formats are\n - '#f0f' (#rgb)\n - '#f0fc' (#rgba)\n - '#ff00ff' (#rrggbb)\n - '#ff00ff00' (#rrggbbaa)\n - 'rgb(255, 255, 255)'\n - 'rgba(255, 255, 255, 1.0)'\n - 'hsl(360, 100%, 100%)'\n - 'hsla(360, 100%, 100%, 1.0)'\n - 'transparent'\n - 'red'\n - 0xff00ff00 (0xrrggbbaa)\n`,\n );\n }\n};\n\nconst ColorPropType = colorPropType.bind(null, false /* isRequired */);\nColorPropType.isRequired = colorPropType.bind(null, true /* isRequired */);\n\nmodule.exports = ColorPropType;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @noflow\n */\n\n/* eslint no-bitwise: 0 */\n\n'use strict';\n\nfunction normalizeColor(color) {\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color;\n }\n return null;\n }\n\n if (typeof color !== 'string') {\n return null;\n }\n\n const matchers = getMatchers();\n let match;\n\n // Ordered based on occurrences on Facebook codebase\n if ((match = matchers.hex6.exec(color))) {\n return parseInt(match[1] + 'ff', 16) >>> 0;\n }\n\n const colorFromKeyword = normalizeKeyword(color);\n if (colorFromKeyword != null) {\n return colorFromKeyword;\n }\n\n if ((match = matchers.rgb.exec(color))) {\n return (\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) | // b\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers.rgba.exec(color))) {\n // rgba(R G B / A) notation\n if (match[6] !== undefined) {\n return (\n ((parse255(match[6]) << 24) | // r\n (parse255(match[7]) << 16) | // g\n (parse255(match[8]) << 8) | // b\n parse1(match[9])) >>> // a\n 0\n );\n }\n\n // rgba(R, G, B, A) notation\n return (\n ((parse255(match[2]) << 24) | // r\n (parse255(match[3]) << 16) | // g\n (parse255(match[4]) << 8) | // b\n parse1(match[5])) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hex3.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n 'ff', // a\n 16,\n ) >>> 0\n );\n }\n\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = matchers.hex8.exec(color))) {\n return parseInt(match[1], 16) >>> 0;\n }\n\n if ((match = matchers.hex4.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n match[4] +\n match[4], // a\n 16,\n ) >>> 0\n );\n }\n\n if ((match = matchers.hsl.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]), // l\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hsla.exec(color))) {\n // hsla(H S L / A) notation\n if (match[6] !== undefined) {\n return (\n (hslToRgb(\n parse360(match[6]), // h\n parsePercentage(match[7]), // s\n parsePercentage(match[8]), // l\n ) |\n parse1(match[9])) >>> // a\n 0\n );\n }\n\n // hsla(H, S, L, A) notation\n return (\n (hslToRgb(\n parse360(match[2]), // h\n parsePercentage(match[3]), // s\n parsePercentage(match[4]), // l\n ) |\n parse1(match[5])) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hwb.exec(color))) {\n return (\n (hwbToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // w\n parsePercentage(match[3]), // b\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n return null;\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n\nfunction hslToRgb(h, s, l) {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n\n return (\n (Math.round(r * 255) << 24) |\n (Math.round(g * 255) << 16) |\n (Math.round(b * 255) << 8)\n );\n}\n\nfunction hwbToRgb(h, w, b) {\n if (w + b >= 1) {\n const gray = Math.round((w * 255) / (w + b));\n\n return (gray << 24) | (gray << 16) | (gray << 8);\n }\n\n const red = hue2rgb(0, 1, h + 1 / 3) * (1 - w - b) + w;\n const green = hue2rgb(0, 1, h) * (1 - w - b) + w;\n const blue = hue2rgb(0, 1, h - 1 / 3) * (1 - w - b) + w;\n\n return (\n (Math.round(red * 255) << 24) |\n (Math.round(green * 255) << 16) |\n (Math.round(blue * 255) << 8)\n );\n}\n\nconst NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nconst PERCENTAGE = NUMBER + '%';\n\nfunction call(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,?\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nfunction callWithSlashSeparator(...args) {\n return (\n '\\\\(\\\\s*(' +\n args.slice(0, args.length - 1).join(')\\\\s*,?\\\\s*(') +\n ')\\\\s*/\\\\s*(' +\n args[args.length - 1] +\n ')\\\\s*\\\\)'\n );\n}\n\nfunction commaSeparatedCall(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nlet cachedMatchers;\n\nfunction getMatchers() {\n if (cachedMatchers === undefined) {\n cachedMatchers = {\n rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)),\n rgba: new RegExp(\n 'rgba(' +\n commaSeparatedCall(NUMBER, NUMBER, NUMBER, NUMBER) +\n '|' +\n callWithSlashSeparator(NUMBER, NUMBER, NUMBER, NUMBER) +\n ')',\n ),\n hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hsla: new RegExp(\n 'hsla(' +\n commaSeparatedCall(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +\n '|' +\n callWithSlashSeparator(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +\n ')',\n ),\n hwb: new RegExp('hwb' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#([0-9a-fA-F]{6})$/,\n hex8: /^#([0-9a-fA-F]{8})$/,\n };\n }\n return cachedMatchers;\n}\n\nfunction parse255(str) {\n const int = parseInt(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 255) {\n return 255;\n }\n return int;\n}\n\nfunction parse360(str) {\n const int = parseFloat(str);\n return (((int % 360) + 360) % 360) / 360;\n}\n\nfunction parse1(str) {\n const num = parseFloat(str);\n if (num < 0) {\n return 0;\n }\n if (num > 1) {\n return 255;\n }\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n // parseFloat conveniently ignores the final %\n const int = parseFloat(str);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\n\nfunction normalizeKeyword(name) {\n // prettier-ignore\n switch (name) {\n case 'transparent': return 0x00000000;\n // http://www.w3.org/TR/css3-color/#svg-color\n case 'aliceblue': return 0xf0f8ffff;\n case 'antiquewhite': return 0xfaebd7ff;\n case 'aqua': return 0x00ffffff;\n case 'aquamarine': return 0x7fffd4ff;\n case 'azure': return 0xf0ffffff;\n case 'beige': return 0xf5f5dcff;\n case 'bisque': return 0xffe4c4ff;\n case 'black': return 0x000000ff;\n case 'blanchedalmond': return 0xffebcdff;\n case 'blue': return 0x0000ffff;\n case 'blueviolet': return 0x8a2be2ff;\n case 'brown': return 0xa52a2aff;\n case 'burlywood': return 0xdeb887ff;\n case 'burntsienna': return 0xea7e5dff;\n case 'cadetblue': return 0x5f9ea0ff;\n case 'chartreuse': return 0x7fff00ff;\n case 'chocolate': return 0xd2691eff;\n case 'coral': return 0xff7f50ff;\n case 'cornflowerblue': return 0x6495edff;\n case 'cornsilk': return 0xfff8dcff;\n case 'crimson': return 0xdc143cff;\n case 'cyan': return 0x00ffffff;\n case 'darkblue': return 0x00008bff;\n case 'darkcyan': return 0x008b8bff;\n case 'darkgoldenrod': return 0xb8860bff;\n case 'darkgray': return 0xa9a9a9ff;\n case 'darkgreen': return 0x006400ff;\n case 'darkgrey': return 0xa9a9a9ff;\n case 'darkkhaki': return 0xbdb76bff;\n case 'darkmagenta': return 0x8b008bff;\n case 'darkolivegreen': return 0x556b2fff;\n case 'darkorange': return 0xff8c00ff;\n case 'darkorchid': return 0x9932ccff;\n case 'darkred': return 0x8b0000ff;\n case 'darksalmon': return 0xe9967aff;\n case 'darkseagreen': return 0x8fbc8fff;\n case 'darkslateblue': return 0x483d8bff;\n case 'darkslategray': return 0x2f4f4fff;\n case 'darkslategrey': return 0x2f4f4fff;\n case 'darkturquoise': return 0x00ced1ff;\n case 'darkviolet': return 0x9400d3ff;\n case 'deeppink': return 0xff1493ff;\n case 'deepskyblue': return 0x00bfffff;\n case 'dimgray': return 0x696969ff;\n case 'dimgrey': return 0x696969ff;\n case 'dodgerblue': return 0x1e90ffff;\n case 'firebrick': return 0xb22222ff;\n case 'floralwhite': return 0xfffaf0ff;\n case 'forestgreen': return 0x228b22ff;\n case 'fuchsia': return 0xff00ffff;\n case 'gainsboro': return 0xdcdcdcff;\n case 'ghostwhite': return 0xf8f8ffff;\n case 'gold': return 0xffd700ff;\n case 'goldenrod': return 0xdaa520ff;\n case 'gray': return 0x808080ff;\n case 'green': return 0x008000ff;\n case 'greenyellow': return 0xadff2fff;\n case 'grey': return 0x808080ff;\n case 'honeydew': return 0xf0fff0ff;\n case 'hotpink': return 0xff69b4ff;\n case 'indianred': return 0xcd5c5cff;\n case 'indigo': return 0x4b0082ff;\n case 'ivory': return 0xfffff0ff;\n case 'khaki': return 0xf0e68cff;\n case 'lavender': return 0xe6e6faff;\n case 'lavenderblush': return 0xfff0f5ff;\n case 'lawngreen': return 0x7cfc00ff;\n case 'lemonchiffon': return 0xfffacdff;\n case 'lightblue': return 0xadd8e6ff;\n case 'lightcoral': return 0xf08080ff;\n case 'lightcyan': return 0xe0ffffff;\n case 'lightgoldenrodyellow': return 0xfafad2ff;\n case 'lightgray': return 0xd3d3d3ff;\n case 'lightgreen': return 0x90ee90ff;\n case 'lightgrey': return 0xd3d3d3ff;\n case 'lightpink': return 0xffb6c1ff;\n case 'lightsalmon': return 0xffa07aff;\n case 'lightseagreen': return 0x20b2aaff;\n case 'lightskyblue': return 0x87cefaff;\n case 'lightslategray': return 0x778899ff;\n case 'lightslategrey': return 0x778899ff;\n case 'lightsteelblue': return 0xb0c4deff;\n case 'lightyellow': return 0xffffe0ff;\n case 'lime': return 0x00ff00ff;\n case 'limegreen': return 0x32cd32ff;\n case 'linen': return 0xfaf0e6ff;\n case 'magenta': return 0xff00ffff;\n case 'maroon': return 0x800000ff;\n case 'mediumaquamarine': return 0x66cdaaff;\n case 'mediumblue': return 0x0000cdff;\n case 'mediumorchid': return 0xba55d3ff;\n case 'mediumpurple': return 0x9370dbff;\n case 'mediumseagreen': return 0x3cb371ff;\n case 'mediumslateblue': return 0x7b68eeff;\n case 'mediumspringgreen': return 0x00fa9aff;\n case 'mediumturquoise': return 0x48d1ccff;\n case 'mediumvioletred': return 0xc71585ff;\n case 'midnightblue': return 0x191970ff;\n case 'mintcream': return 0xf5fffaff;\n case 'mistyrose': return 0xffe4e1ff;\n case 'moccasin': return 0xffe4b5ff;\n case 'navajowhite': return 0xffdeadff;\n case 'navy': return 0x000080ff;\n case 'oldlace': return 0xfdf5e6ff;\n case 'olive': return 0x808000ff;\n case 'olivedrab': return 0x6b8e23ff;\n case 'orange': return 0xffa500ff;\n case 'orangered': return 0xff4500ff;\n case 'orchid': return 0xda70d6ff;\n case 'palegoldenrod': return 0xeee8aaff;\n case 'palegreen': return 0x98fb98ff;\n case 'paleturquoise': return 0xafeeeeff;\n case 'palevioletred': return 0xdb7093ff;\n case 'papayawhip': return 0xffefd5ff;\n case 'peachpuff': return 0xffdab9ff;\n case 'peru': return 0xcd853fff;\n case 'pink': return 0xffc0cbff;\n case 'plum': return 0xdda0ddff;\n case 'powderblue': return 0xb0e0e6ff;\n case 'purple': return 0x800080ff;\n case 'rebeccapurple': return 0x663399ff;\n case 'red': return 0xff0000ff;\n case 'rosybrown': return 0xbc8f8fff;\n case 'royalblue': return 0x4169e1ff;\n case 'saddlebrown': return 0x8b4513ff;\n case 'salmon': return 0xfa8072ff;\n case 'sandybrown': return 0xf4a460ff;\n case 'seagreen': return 0x2e8b57ff;\n case 'seashell': return 0xfff5eeff;\n case 'sienna': return 0xa0522dff;\n case 'silver': return 0xc0c0c0ff;\n case 'skyblue': return 0x87ceebff;\n case 'slateblue': return 0x6a5acdff;\n case 'slategray': return 0x708090ff;\n case 'slategrey': return 0x708090ff;\n case 'snow': return 0xfffafaff;\n case 'springgreen': return 0x00ff7fff;\n case 'steelblue': return 0x4682b4ff;\n case 'tan': return 0xd2b48cff;\n case 'teal': return 0x008080ff;\n case 'thistle': return 0xd8bfd8ff;\n case 'tomato': return 0xff6347ff;\n case 'turquoise': return 0x40e0d0ff;\n case 'violet': return 0xee82eeff;\n case 'wheat': return 0xf5deb3ff;\n case 'white': return 0xffffffff;\n case 'whitesmoke': return 0xf5f5f5ff;\n case 'yellow': return 0xffff00ff;\n case 'yellowgreen': return 0x9acd32ff;\n }\n return null;\n}\n\nmodule.exports = normalizeColor;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/Rect.js\n */\nconst DeprecatedEdgeInsetsPropType = PropTypes.shape({\n bottom: PropTypes.number,\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n});\n\nmodule.exports = DeprecatedEdgeInsetsPropType;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst DeprecatedEdgeInsetsPropType = require('./DeprecatedEdgeInsetsPropType');\nconst DeprecatedImageSourcePropType = require('./DeprecatedImageSourcePropType');\nconst DeprecatedImageStylePropTypes = require('./DeprecatedImageStylePropTypes');\nconst DeprecatedStyleSheetPropType = require('./DeprecatedStyleSheetPropType');\nconst DeprecatedViewPropTypes = require('./DeprecatedViewPropTypes');\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/Image/ImageProps.js\n */\nconst DeprecatedImagePropType = {\n ...DeprecatedViewPropTypes,\n alt: PropTypes.string,\n blurRadius: PropTypes.number,\n capInsets: DeprecatedEdgeInsetsPropType,\n crossOrigin: PropTypes.oneOf(['anonymous', 'use-credentials']),\n defaultSource: DeprecatedImageSourcePropType,\n fadeDuration: PropTypes.number,\n height: PropTypes.number,\n internal_analyticTag: PropTypes.string,\n loadingIndicatorSource: PropTypes.oneOfType([\n PropTypes.shape({\n uri: PropTypes.string,\n }),\n PropTypes.number,\n ]),\n onError: PropTypes.func,\n onLoad: PropTypes.func,\n onLoadEnd: PropTypes.func,\n onLoadStart: PropTypes.func,\n onPartialLoad: PropTypes.func,\n onProgress: PropTypes.func,\n progressiveRenderingEnabled: PropTypes.bool,\n referrerPolicy: PropTypes.oneOf([\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'origin',\n 'origin-when-cross-origin',\n 'same-origin',\n 'strict-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url',\n ]),\n resizeMethod: PropTypes.oneOf(['auto', 'resize', 'scale']),\n resizeMode: PropTypes.oneOf([\n 'cover',\n 'contain',\n 'stretch',\n 'repeat',\n 'center',\n ]),\n source: DeprecatedImageSourcePropType,\n src: PropTypes.string,\n srcSet: PropTypes.string,\n style: DeprecatedStyleSheetPropType(DeprecatedImageStylePropTypes),\n testID: PropTypes.string,\n tintColor: DeprecatedColorPropType,\n width: PropTypes.number,\n};\n\nmodule.exports = DeprecatedImagePropType;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst DeprecatedEdgeInsetsPropType = require('./DeprecatedEdgeInsetsPropType');\nconst DeprecatedStyleSheetPropType = require('./DeprecatedStyleSheetPropType');\nconst {\n AccessibilityActionInfoPropType,\n AccessibilityRolePropType,\n AccessibilityStatePropType,\n AccessibilityValuePropType,\n RolePropType,\n} = require('./DeprecatedViewAccessibility');\nconst DeprecatedViewStylePropTypes = require('./DeprecatedViewStylePropTypes');\nconst PropTypes = require('prop-types');\n\nconst MouseEventPropTypes = {\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n};\n\n// Experimental/Work in Progress Pointer Event Callbacks (not yet ready for use)\nconst PointerEventPropTypes = {\n onPointerEnter: PropTypes.func,\n onPointerEnterCapture: PropTypes.func,\n onPointerLeave: PropTypes.func,\n onPointerLeaveCapture: PropTypes.func,\n onPointerMove: PropTypes.func,\n onPointerMoveCapture: PropTypes.func,\n onPointerCancel: PropTypes.func,\n onPointerCancelCapture: PropTypes.func,\n onPointerDown: PropTypes.func,\n onPointerDownCapture: PropTypes.func,\n onPointerUp: PropTypes.func,\n onPointerUpCapture: PropTypes.func,\n onPointerOver: PropTypes.func,\n onPointerOverCapture: PropTypes.func,\n onPointerOut: PropTypes.func,\n onPointerOutCapture: PropTypes.func,\n};\n\nconst FocusEventPropTypes = {\n onBlur: PropTypes.func,\n onBlurCapture: PropTypes.func,\n onFocus: PropTypes.func,\n onFocusCapture: PropTypes.func,\n};\n\nconst TouchEventPropTypes = {\n onTouchCancel: PropTypes.func,\n onTouchCancelCapture: PropTypes.func,\n onTouchEnd: PropTypes.func,\n onTouchEndCapture: PropTypes.func,\n onTouchMove: PropTypes.func,\n onTouchMoveCapture: PropTypes.func,\n onTouchStart: PropTypes.func,\n onTouchStartCapture: PropTypes.func,\n};\n\nconst GestureResponderEventPropTypes = {\n onMoveShouldSetResponder: PropTypes.func,\n onMoveShouldSetResponderCapture: PropTypes.func,\n onResponderEnd: PropTypes.func,\n onResponderGrant: PropTypes.func,\n onResponderMove: PropTypes.func,\n onResponderReject: PropTypes.func,\n onResponderRelease: PropTypes.func,\n onResponderStart: PropTypes.func,\n onResponderTerminate: PropTypes.func,\n onResponderTerminationRequest: PropTypes.func,\n onStartShouldSetResponder: PropTypes.func,\n onStartShouldSetResponderCapture: PropTypes.func,\n};\n\n/**\n * @see facebook/react-native/Libraries/Components/View/ViewPropTypes.js\n */\nconst DeprecatedViewPropTypes = {\n ...MouseEventPropTypes,\n ...PointerEventPropTypes,\n ...FocusEventPropTypes,\n ...TouchEventPropTypes,\n ...GestureResponderEventPropTypes,\n 'aria-busy': PropTypes.bool,\n 'aria-checked': PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.oneOf(['mixed']),\n ]),\n 'aria-disabled': PropTypes.bool,\n 'aria-expanded': PropTypes.bool,\n 'aria-hidden': PropTypes.bool,\n 'aria-label': PropTypes.string,\n 'aria-labelledby': PropTypes.string,\n 'aria-live': PropTypes.oneOf(['polite', 'assertive', 'off']),\n 'aria-modal': PropTypes.bool,\n 'aria-selected': PropTypes.bool,\n 'aria-valuemax': PropTypes.number,\n 'aria-valuemin': PropTypes.number,\n 'aria-valuenow': PropTypes.number,\n 'aria-valuetext': PropTypes.string,\n accessibilityActions: PropTypes.arrayOf(AccessibilityActionInfoPropType),\n accessibilityElementsHidden: PropTypes.bool,\n accessibilityHint: PropTypes.string,\n accessibilityIgnoresInvertColors: PropTypes.bool,\n accessibilityLabel: PropTypes.node,\n accessibilityLabelledBy: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n accessibilityLanguage: PropTypes.string,\n accessibilityLiveRegion: PropTypes.oneOf(['assertive', 'none', 'polite']),\n accessibilityRole: AccessibilityRolePropType,\n accessibilityState: AccessibilityStatePropType,\n accessibilityValue: AccessibilityValuePropType,\n accessibilityViewIsModal: PropTypes.bool,\n accessible: PropTypes.bool,\n collapsable: PropTypes.bool,\n focusable: PropTypes.bool,\n hitSlop: PropTypes.oneOfType([\n DeprecatedEdgeInsetsPropType,\n PropTypes.number,\n ]),\n importantForAccessibility: PropTypes.oneOf([\n 'auto',\n 'no',\n 'no-hide-descendants',\n 'yes',\n ]),\n nativeBackgroundAndroid: PropTypes.object,\n nativeForegroundAndroid: PropTypes.object,\n nativeID: PropTypes.string,\n needsOffscreenAlphaCompositing: PropTypes.bool,\n onAccessibilityAction: PropTypes.func,\n onAccessibilityEscape: PropTypes.func,\n onAccessibilityTap: PropTypes.func,\n onClick: PropTypes.func,\n onLayout: PropTypes.func,\n onMagicTap: PropTypes.func,\n pointerEvents: PropTypes.oneOf(['auto', 'box-none', 'box-only', 'none']),\n removeClippedSubviews: PropTypes.bool,\n renderToHardwareTextureAndroid: PropTypes.bool,\n role: RolePropType,\n shouldRasterizeIOS: PropTypes.bool,\n style: DeprecatedStyleSheetPropType(DeprecatedViewStylePropTypes),\n tabIndex: PropTypes.oneOf([0, -1]),\n testID: PropTypes.string,\n};\n\nmodule.exports = DeprecatedViewPropTypes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/Components/View/ViewAccessibility.js\n */\nconst DeprecatedViewAccessibility = {\n AccessibilityRolePropType: PropTypes.oneOf([\n 'adjustable',\n 'alert',\n 'button',\n 'checkbox',\n 'combobox',\n 'drawerlayout',\n 'dropdownlist',\n 'grid',\n 'header',\n 'horizontalscrollview',\n 'iconmenu',\n 'image',\n 'imagebutton',\n 'keyboardkey',\n 'link',\n 'list',\n 'menu',\n 'menubar',\n 'menuitem',\n 'none',\n 'pager',\n 'progressbar',\n 'radio',\n 'radiogroup',\n 'scrollbar',\n 'scrollview',\n 'search',\n 'slidingdrawer',\n 'spinbutton',\n 'summary',\n 'switch',\n 'tab',\n 'tabbar',\n 'tablist',\n 'text',\n 'timer',\n 'togglebutton',\n 'toolbar',\n 'viewgroup',\n 'webview',\n ]),\n AccessibilityStatePropType: PropTypes.object,\n AccessibilityActionInfoPropType: PropTypes.object,\n AccessibilityValuePropType: PropTypes.object,\n RolePropType: PropTypes.oneOf([\n 'alert',\n 'alertdialog',\n 'application',\n 'article',\n 'banner',\n 'button',\n 'cell',\n 'checkbox',\n 'columnheader',\n 'combobox',\n 'complementary',\n 'contentinfo',\n 'definition',\n 'dialog',\n 'directory',\n 'document',\n 'feed',\n 'figure',\n 'form',\n 'grid',\n 'group',\n 'heading',\n 'img',\n 'link',\n 'list',\n 'listitem',\n 'log',\n 'main',\n 'marquee',\n 'math',\n 'menu',\n 'menubar',\n 'menuitem',\n 'meter',\n 'navigation',\n 'none',\n 'note',\n 'option',\n 'presentation',\n 'progressbar',\n 'radio',\n 'radiogroup',\n 'region',\n 'row',\n 'rowgroup',\n 'rowheader',\n 'scrollbar',\n 'searchbox',\n 'separator',\n 'slider',\n 'spinbutton',\n 'status',\n 'summary',\n 'switch',\n 'tab',\n 'table',\n 'tablist',\n 'tabpanel',\n 'term',\n 'timer',\n 'toolbar',\n 'tooltip',\n 'tree',\n 'treegrid',\n 'treeitem',\n ]),\n};\n\nmodule.exports = DeprecatedViewAccessibility;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst deprecatedCreateStrictShapeTypeChecker = require('./deprecatedCreateStrictShapeTypeChecker');\n\nfunction DeprecatedStyleSheetPropType(shape) {\n const shapePropType = deprecatedCreateStrictShapeTypeChecker(shape);\n return function(props, propName, componentName, location, ...rest) {\n let newProps = props;\n if (props[propName]) {\n // Just make a dummy prop object with only the flattened style\n newProps = {};\n newProps[propName] = flattenStyle(props[propName]);\n }\n return shapePropType(newProps, propName, componentName, location, ...rest);\n };\n}\n\nfunction flattenStyle(style) {\n if (style === null || typeof style !== 'object') {\n return undefined;\n }\n\n if (!Array.isArray(style)) {\n return style;\n }\n\n const result = {};\n for (let i = 0, styleLength = style.length; i < styleLength; ++i) {\n const computedStyle = flattenStyle(style[i]);\n if (computedStyle) {\n for (const key in computedStyle) {\n result[key] = computedStyle[key];\n }\n }\n }\n return result;\n}\n\nmodule.exports = DeprecatedStyleSheetPropType;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst invariant = require('invariant');\n\nfunction deprecatedCreateStrictShapeTypeChecker(shapeTypes) {\n function checkType(\n isRequired,\n props,\n propName,\n componentName,\n location,\n ...rest\n ) {\n if (!props[propName]) {\n if (isRequired) {\n invariant(\n false,\n `Required object \\`${propName}\\` was not specified in ` +\n `\\`${componentName}\\`.`,\n );\n }\n return;\n }\n const propValue = props[propName];\n const propType = typeof propValue;\n const locationName = location || '(unknown)';\n if (propType !== 'object') {\n invariant(\n false,\n `Invalid ${locationName} \\`${propName}\\` of type \\`${propType}\\` ` +\n `supplied to \\`${componentName}\\`, expected \\`object\\`.`,\n );\n }\n // We need to check all keys in case some are required but missing from\n // props.\n const allKeys = {...props[propName], ...shapeTypes};\n for (const key in allKeys) {\n const checker = shapeTypes[key];\n if (!checker) {\n invariant(\n false,\n `Invalid props.${propName} key \\`${key}\\` supplied to \\`${componentName}\\`.` +\n '\\nBad object: ' +\n JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' +\n JSON.stringify(Object.keys(shapeTypes), null, ' '),\n );\n }\n const error = checker(propValue, key, componentName, location, ...rest);\n if (error) {\n invariant(\n false,\n error.message +\n '\\nBad object: ' +\n JSON.stringify(props[propName], null, ' '),\n );\n }\n }\n }\n function chainedCheckType(props, propName, componentName, location, ...rest) {\n return checkType(false, props, propName, componentName, location, ...rest);\n }\n chainedCheckType.isRequired = checkType.bind(null, true);\n return chainedCheckType;\n}\n\nmodule.exports = deprecatedCreateStrictShapeTypeChecker;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst DeprecatedLayoutPropTypes = require('./DeprecatedLayoutPropTypes');\nconst DeprecatedShadowPropTypesIOS = require('./DeprecatedShadowPropTypesIOS');\nconst DeprecatedTransformPropTypes = require('./DeprecatedTransformPropTypes');\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst DeprecatedViewStylePropTypes = {\n ...DeprecatedLayoutPropTypes,\n ...DeprecatedShadowPropTypesIOS,\n ...DeprecatedTransformPropTypes,\n backfaceVisibility: PropTypes.oneOf(['hidden', 'visible']),\n backgroundColor: DeprecatedColorPropType,\n borderBottomColor: DeprecatedColorPropType,\n borderBottomEndRadius: PropTypes.number,\n borderBottomLeftRadius: PropTypes.number,\n borderBottomRightRadius: PropTypes.number,\n borderBottomStartRadius: PropTypes.number,\n borderBottomWidth: PropTypes.number,\n borderColor: DeprecatedColorPropType,\n borderCurve: PropTypes.oneOf(['circular', 'continuous']),\n borderEndColor: DeprecatedColorPropType,\n borderEndEndRadius: PropTypes.number,\n borderEndStartRadius: PropTypes.number,\n borderLeftColor: DeprecatedColorPropType,\n borderLeftWidth: PropTypes.number,\n borderRadius: PropTypes.number,\n borderRightColor: DeprecatedColorPropType,\n borderRightWidth: PropTypes.number,\n borderStartColor: DeprecatedColorPropType,\n borderStartEndRadius: PropTypes.number,\n borderStartStartRadius: PropTypes.number,\n borderStyle: PropTypes.oneOf(['dashed', 'dotted', 'solid']),\n borderTopColor: DeprecatedColorPropType,\n borderTopEndRadius: PropTypes.number,\n borderTopLeftRadius: PropTypes.number,\n borderTopRightRadius: PropTypes.number,\n borderTopStartRadius: PropTypes.number,\n borderTopWidth: PropTypes.number,\n borderWidth: PropTypes.number,\n elevation: PropTypes.number,\n opacity: PropTypes.number,\n pointerEvents: PropTypes.oneOf(['auto', 'box-none', 'box-only', 'none']),\n};\n\nmodule.exports = DeprecatedViewStylePropTypes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst PropTypes = require('prop-types');\n\nconst DimensionValuePropType = PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n]);\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst DeprecatedLayoutPropTypes = {\n alignContent: PropTypes.oneOf([\n 'center',\n 'flex-end',\n 'flex-start',\n 'space-around',\n 'space-between',\n 'stretch',\n ]),\n alignItems: PropTypes.oneOf([\n 'baseline',\n 'center',\n 'flex-end',\n 'flex-start',\n 'stretch',\n ]),\n alignSelf: PropTypes.oneOf([\n 'auto',\n 'baseline',\n 'center',\n 'flex-end',\n 'flex-start',\n 'stretch',\n ]),\n aspectRatio: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n borderBottomWidth: PropTypes.number,\n borderEndWidth: PropTypes.number,\n borderLeftWidth: PropTypes.number,\n borderRightWidth: PropTypes.number,\n borderStartWidth: PropTypes.number,\n borderTopWidth: PropTypes.number,\n borderWidth: PropTypes.number,\n bottom: DimensionValuePropType,\n columnGap: PropTypes.number,\n direction: PropTypes.oneOf(['inherit', 'ltr', 'rtl']),\n display: PropTypes.oneOf(['flex', 'none']),\n end: DimensionValuePropType,\n flex: PropTypes.number,\n flexBasis: DimensionValuePropType,\n flexDirection: PropTypes.oneOf([\n 'column',\n 'column-reverse',\n 'row',\n 'row-reverse',\n ]),\n flexGrow: PropTypes.number,\n flexShrink: PropTypes.number,\n flexWrap: PropTypes.oneOf(['nowrap', 'wrap', 'wrap-reverse']),\n gap: PropTypes.number,\n height: DimensionValuePropType,\n inset: DimensionValuePropType,\n insetBlock: DimensionValuePropType,\n insetBlockEnd: DimensionValuePropType,\n insetBlockStart: DimensionValuePropType,\n insetInline: DimensionValuePropType,\n insetInlineEnd: DimensionValuePropType,\n insetInlineStart: DimensionValuePropType,\n justifyContent: PropTypes.oneOf([\n 'center',\n 'flex-end',\n 'flex-start',\n 'space-around',\n 'space-between',\n 'space-evenly',\n ]),\n left: DimensionValuePropType,\n margin: DimensionValuePropType,\n marginBlock: DimensionValuePropType,\n marginBlockEnd: DimensionValuePropType,\n marginBlockStart: DimensionValuePropType,\n marginBottom: DimensionValuePropType,\n marginEnd: DimensionValuePropType,\n marginHorizontal: DimensionValuePropType,\n marginInline: DimensionValuePropType,\n marginInlineEnd: DimensionValuePropType,\n marginInlineStart: DimensionValuePropType,\n marginLeft: DimensionValuePropType,\n marginRight: DimensionValuePropType,\n marginStart: DimensionValuePropType,\n marginTop: DimensionValuePropType,\n marginVertical: DimensionValuePropType,\n maxHeight: DimensionValuePropType,\n maxWidth: DimensionValuePropType,\n minHeight: DimensionValuePropType,\n minWidth: DimensionValuePropType,\n overflow: PropTypes.oneOf(['hidden', 'scroll', 'visible']),\n padding: DimensionValuePropType,\n paddingBlock: DimensionValuePropType,\n paddingBlockEnd: DimensionValuePropType,\n paddingBlockStart: DimensionValuePropType,\n paddingBottom: DimensionValuePropType,\n paddingEnd: DimensionValuePropType,\n paddingHorizontal: DimensionValuePropType,\n paddingInline: DimensionValuePropType,\n paddingInlineEnd: DimensionValuePropType,\n paddingInlineStart: DimensionValuePropType,\n paddingLeft: DimensionValuePropType,\n paddingRight: DimensionValuePropType,\n paddingStart: DimensionValuePropType,\n paddingTop: DimensionValuePropType,\n paddingVertical: DimensionValuePropType,\n position: PropTypes.oneOf(['absolute', 'relative']),\n right: DimensionValuePropType,\n rowGap: PropTypes.number,\n start: DimensionValuePropType,\n top: DimensionValuePropType,\n width: DimensionValuePropType,\n zIndex: PropTypes.number,\n};\n\nmodule.exports = DeprecatedLayoutPropTypes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst DeprecatedShadowPropTypesIOS = {\n shadowColor: DeprecatedColorPropType,\n shadowOffset: PropTypes.shape({\n height: PropTypes.number,\n width: PropTypes.number,\n }),\n shadowOpacity: PropTypes.number,\n shadowRadius: PropTypes.number,\n};\n\nmodule.exports = DeprecatedShadowPropTypesIOS;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/private/_TransformStyle.js\n */\nconst DeprecatedTransformPropTypes = {\n transform: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.shape({perspective: PropTypes.number}),\n PropTypes.shape({rotate: PropTypes.string}),\n PropTypes.shape({rotateX: PropTypes.string}),\n PropTypes.shape({rotateY: PropTypes.string}),\n PropTypes.shape({rotateZ: PropTypes.string}),\n PropTypes.shape({scale: PropTypes.number}),\n PropTypes.shape({scaleX: PropTypes.number}),\n PropTypes.shape({scaleY: PropTypes.number}),\n PropTypes.shape({skewX: PropTypes.string}),\n PropTypes.shape({skewY: PropTypes.string}),\n PropTypes.shape({translateX: PropTypes.number}),\n PropTypes.shape({translateY: PropTypes.number}),\n ]),\n ),\n};\n\nmodule.exports = DeprecatedTransformPropTypes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/Image/ImageSource.js\n */\nconst ImageURISourcePropType = PropTypes.shape({\n body: PropTypes.string,\n bundle: PropTypes.string,\n cache: PropTypes.oneOf([\n 'default',\n 'force-cache',\n 'only-if-cached',\n 'reload',\n ]),\n headers: PropTypes.objectOf(PropTypes.string),\n height: PropTypes.number,\n method: PropTypes.string,\n scale: PropTypes.number,\n uri: PropTypes.string,\n width: PropTypes.number,\n});\n\nconst ImageSourcePropType = PropTypes.oneOfType([\n ImageURISourcePropType,\n PropTypes.number,\n PropTypes.arrayOf(ImageURISourcePropType),\n]);\n\nmodule.exports = ImageSourcePropType;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst DeprecatedLayoutPropTypes = require('./DeprecatedLayoutPropTypes');\nconst DeprecatedShadowPropTypesIOS = require('./DeprecatedShadowPropTypesIOS');\nconst DeprecatedTransformPropTypes = require('./DeprecatedTransformPropTypes');\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst DeprecatedImageStylePropTypes = {\n ...DeprecatedLayoutPropTypes,\n ...DeprecatedShadowPropTypesIOS,\n ...DeprecatedTransformPropTypes,\n backfaceVisibility: PropTypes.oneOf(['hidden', 'visible']),\n backgroundColor: DeprecatedColorPropType,\n borderBottomLeftRadius: PropTypes.number,\n borderBottomRightRadius: PropTypes.number,\n borderColor: DeprecatedColorPropType,\n borderRadius: PropTypes.number,\n borderTopLeftRadius: PropTypes.number,\n borderTopRightRadius: PropTypes.number,\n borderWidth: PropTypes.number,\n objectFit: PropTypes.oneOf(['contain', 'cover', 'fill', 'scale-down']),\n opacity: PropTypes.number,\n overflow: PropTypes.oneOf(['hidden', 'visible']),\n overlayColor: PropTypes.string,\n tintColor: DeprecatedColorPropType,\n resizeMode: PropTypes.oneOf([\n 'center',\n 'contain',\n 'cover',\n 'repeat',\n 'stretch',\n ]),\n};\n\nmodule.exports = DeprecatedImageStylePropTypes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst PointPropType = PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n});\n\nmodule.exports = PointPropType;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst DeprecatedTextPropTypes = require('./DeprecatedTextPropTypes');\nconst DeprecatedViewPropTypes = require('./DeprecatedViewPropTypes');\nconst PropTypes = require('prop-types');\n\nconst DataDetectorTypes = [\n 'address',\n 'all',\n 'calendarEvent',\n 'link',\n 'none',\n 'phoneNumber',\n];\n\n/**\n * @see facebook/react-native/Libraries/TextInput/TextInput.js\n */\nconst DeprecatedTextInputPropTypes = {\n ...DeprecatedViewPropTypes,\n allowFontScaling: PropTypes.bool,\n autoCapitalize: PropTypes.oneOf(['none', 'sentences', 'words', 'characters']),\n autoComplete: PropTypes.oneOf([\n 'additional-name',\n 'address-line1',\n 'address-line2',\n 'bday',\n 'bday-day',\n 'bday-month',\n 'bday-year',\n 'birthdate-day',\n 'birthdate-full',\n 'birthdate-month',\n 'birthdate-year',\n 'cc-csc',\n 'cc-exp',\n 'cc-exp-day',\n 'cc-exp-month',\n 'cc-exp-year',\n 'cc-number',\n 'country',\n 'current-password',\n 'email',\n 'family-name',\n 'gender',\n 'given-name',\n 'honorific-prefix',\n 'honorific-suffix',\n 'name',\n 'name-family',\n 'name-given',\n 'name-middle',\n 'name-middle-initial',\n 'name-prefix',\n 'name-suffix',\n 'new-password',\n 'nickname',\n 'off',\n 'one-time-code',\n 'organization',\n 'organization-title',\n 'password',\n 'password-new',\n 'postal-address',\n 'postal-address-country',\n 'postal-address-extended',\n 'postal-address-extended-postal-code',\n 'postal-address-locality',\n 'postal-address-region',\n 'postal-code',\n 'sex',\n 'sms-otp',\n 'street-address',\n 'tel',\n 'tel-country-code',\n 'tel-device',\n 'tel-national',\n 'url',\n 'username',\n 'username-new',\n ]),\n autoCorrect: PropTypes.bool,\n autoFocus: PropTypes.bool,\n blurOnSubmit: PropTypes.bool,\n caretHidden: PropTypes.bool,\n clearButtonMode: PropTypes.oneOf([\n 'always',\n 'never',\n 'unless-editing',\n 'while-editing',\n ]),\n clearTextOnFocus: PropTypes.bool,\n cursorColor: DeprecatedColorPropType,\n contextMenuHidden: PropTypes.bool,\n dataDetectorTypes: PropTypes.oneOfType([\n PropTypes.oneOf(DataDetectorTypes),\n PropTypes.arrayOf(PropTypes.oneOf(DataDetectorTypes)),\n ]),\n defaultValue: PropTypes.string,\n disableFullscreenUI: PropTypes.bool,\n editable: PropTypes.bool,\n enablesReturnKeyAutomatically: PropTypes.bool,\n enterKeyHint: PropTypes.oneOf([\n 'done',\n 'enter',\n 'go',\n 'next',\n 'previous',\n 'search',\n 'send',\n ]),\n inlineImageLeft: PropTypes.string,\n inlineImagePadding: PropTypes.number,\n inputAccessoryViewID: PropTypes.string,\n inputMode: PropTypes.oneOf([\n 'decimal',\n 'email',\n 'none',\n 'numeric',\n 'search',\n 'tel',\n 'text',\n 'url',\n ]),\n keyboardAppearance: PropTypes.oneOf(['default', 'dark', 'light']),\n keyboardType: PropTypes.oneOf([\n 'ascii-capable',\n 'ascii-capable-number-pad',\n 'decimal-pad',\n 'default',\n 'email-address',\n 'name-phone-pad',\n 'number-pad',\n 'numbers-and-punctuation',\n 'numeric',\n 'phone-pad',\n 'twitter',\n 'url',\n 'visible-password',\n 'web-search',\n ]),\n lineBreakStrategyIOS: PropTypes.oneOf([\n 'hangul-word',\n 'none',\n 'push-out',\n 'standard',\n ]),\n maxFontSizeMultiplier: PropTypes.number,\n maxLength: PropTypes.number,\n multiline: PropTypes.bool,\n numberOfLines: PropTypes.number,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onChangeText: PropTypes.func,\n onContentSizeChange: PropTypes.func,\n onEndEditing: PropTypes.func,\n onFocus: PropTypes.func,\n onKeyPress: PropTypes.func,\n onLayout: PropTypes.func,\n onScroll: PropTypes.func,\n onSelectionChange: PropTypes.func,\n onSubmitEditing: PropTypes.func,\n onTextInput: PropTypes.func,\n placeholder: PropTypes.string,\n placeholderTextColor: DeprecatedColorPropType,\n readOnly: PropTypes.bool,\n rejectResponderTermination: PropTypes.bool,\n returnKeyLabel: PropTypes.string,\n returnKeyType: PropTypes.oneOf([\n 'default',\n 'done',\n 'emergency-call',\n 'go',\n 'google',\n 'join',\n 'next',\n 'none',\n 'previous',\n 'route',\n 'search',\n 'send',\n 'yahoo',\n ]),\n rows: PropTypes.number,\n scrollEnabled: PropTypes.bool,\n secureTextEntry: PropTypes.bool,\n selection: PropTypes.shape({\n end: PropTypes.number,\n start: PropTypes.number.isRequired,\n }),\n selectionColor: DeprecatedColorPropType,\n selectTextOnFocus: PropTypes.bool,\n showSoftInputOnFocus: PropTypes.bool,\n spellCheck: PropTypes.bool,\n style: DeprecatedTextPropTypes.style,\n submitBehavior: PropTypes.oneOf(['blurAndSubmit', 'newline', 'submit']),\n textBreakStrategy: PropTypes.oneOf(['balanced', 'highQuality', 'simple']),\n textContentType: PropTypes.oneOf([\n 'addressCity',\n 'addressCityAndState',\n 'addressState',\n 'countryName',\n 'creditCardNumber',\n 'emailAddress',\n 'familyName',\n 'fullStreetAddress',\n 'givenName',\n 'jobTitle',\n 'location',\n 'middleName',\n 'name',\n 'namePrefix',\n 'nameSuffix',\n 'newPassword',\n 'nickname',\n 'none',\n 'oneTimeCode',\n 'organizationName',\n 'password',\n 'postalCode',\n 'streetAddressLine1',\n 'streetAddressLine2',\n 'sublocality',\n 'telephoneNumber',\n 'URL',\n 'username',\n ]),\n underlineColorAndroid: DeprecatedColorPropType,\n value: PropTypes.string,\n};\n\nmodule.exports = DeprecatedTextInputPropTypes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst DeprecatedEdgeInsetsPropType = require('./DeprecatedEdgeInsetsPropType');\nconst DeprecatedStyleSheetPropType = require('./DeprecatedStyleSheetPropType');\nconst DeprecatedTextStylePropTypes = require('./DeprecatedTextStylePropTypes');\nconst {\n AccessibilityActionInfoPropType,\n AccessibilityRolePropType,\n AccessibilityStatePropType,\n AccessibilityValuePropType,\n RolePropType,\n} = require('./DeprecatedViewAccessibility');\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/Text/TextProps.js\n */\nconst DeprecatedTextPropTypes = {\n 'aria-busy': PropTypes.bool,\n 'aria-checked': PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.oneOf(['mixed']),\n ]),\n 'aria-disabled': PropTypes.bool,\n 'aria-expanded': PropTypes.bool,\n 'aria-label': PropTypes.string,\n 'aria-labelledby': PropTypes.string,\n 'aria-selected': PropTypes.bool,\n accessibilityActions: PropTypes.arrayOf(AccessibilityActionInfoPropType),\n accessibilityHint: PropTypes.string,\n accessibilityLabel: PropTypes.string,\n accessibilityLanguage: PropTypes.string,\n accessibilityRole: AccessibilityRolePropType,\n accessibilityState: AccessibilityStatePropType,\n accessible: PropTypes.bool,\n adjustsFontSizeToFit: PropTypes.bool,\n allowFontScaling: PropTypes.bool,\n dataDetectorType: PropTypes.oneOf([\n 'all',\n 'email',\n 'link',\n 'none',\n 'phoneNumber',\n ]),\n disabled: PropTypes.bool,\n dynamicTypeRamp: PropTypes.oneOf([\n 'body',\n 'callout',\n 'caption1',\n 'caption2',\n 'footnote',\n 'headline',\n 'largeTitle',\n 'subheadline',\n 'title1',\n 'title2',\n 'title3',\n ]),\n ellipsizeMode: PropTypes.oneOf(['clip', 'head', 'middle', 'tail']),\n id: PropTypes.string,\n lineBreakStrategyIOS: PropTypes.oneOf([\n 'hangul-word',\n 'none',\n 'push-out',\n 'standard',\n ]),\n maxFontSizeMultiplier: PropTypes.number,\n minimumFontScale: PropTypes.number,\n nativeID: PropTypes.string,\n numberOfLines: PropTypes.number,\n onAccessibilityAction: PropTypes.func,\n onLayout: PropTypes.func,\n onLongPress: PropTypes.func,\n onMoveShouldSetResponder: PropTypes.func,\n onPress: PropTypes.func,\n onPressIn: PropTypes.func,\n onPressOut: PropTypes.func,\n onResponderGrant: PropTypes.func,\n onResponderMove: PropTypes.func,\n onResponderRelease: PropTypes.func,\n onResponderTerminate: PropTypes.func,\n onResponderTerminationRequest: PropTypes.func,\n onStartShouldSetResponder: PropTypes.func,\n onTextLayout: PropTypes.func,\n pressRetentionOffset: DeprecatedEdgeInsetsPropType,\n role: RolePropType,\n selectable: PropTypes.bool,\n selectionColor: DeprecatedColorPropType,\n style: DeprecatedStyleSheetPropType(DeprecatedTextStylePropTypes),\n suppressHighlighting: PropTypes.bool,\n testID: PropTypes.string,\n textBreakStrategy: PropTypes.oneOf(['balanced', 'highQuality', 'simple']),\n};\n\nmodule.exports = DeprecatedTextPropTypes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst DeprecatedViewStylePropTypes = require('./DeprecatedViewStylePropTypes');\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst DeprecatedTextStylePropTypes = {\n ...DeprecatedViewStylePropTypes,\n color: DeprecatedColorPropType,\n fontFamily: PropTypes.string,\n fontSize: PropTypes.number,\n fontStyle: PropTypes.oneOf(['italic', 'normal']),\n fontVariant: PropTypes.oneOfType([\n PropTypes.arrayOf(\n PropTypes.oneOf([\n 'lining-nums',\n 'oldstyle-nums',\n 'proportional-nums',\n 'small-caps',\n 'stylistic-eight',\n 'stylistic-eighteen',\n 'stylistic-eleven',\n 'stylistic-fifteen',\n 'stylistic-five',\n 'stylistic-four',\n 'stylistic-fourteen',\n 'stylistic-nine',\n 'stylistic-nineteen',\n 'stylistic-one',\n 'stylistic-seven',\n 'stylistic-seventeen',\n 'stylistic-six',\n 'stylistic-sixteen',\n 'stylistic-ten',\n 'stylistic-thirteen',\n 'stylistic-three',\n 'stylistic-twelve',\n 'stylistic-twenty',\n 'stylistic-two',\n 'tabular-nums',\n ]),\n ),\n PropTypes.string,\n ]),\n fontWeight: PropTypes.oneOf([\n '100',\n '200',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900',\n 'black',\n 'bold',\n 'condensed',\n 'condensedBold',\n 'heavy',\n 'light',\n 'medium',\n 'normal',\n 'regular',\n 'semibold',\n 'thin',\n 'ultralight',\n 100,\n 200,\n 300,\n 400,\n 500,\n 600,\n 700,\n 800,\n 900,\n ]),\n includeFontPadding: PropTypes.bool,\n letterSpacing: PropTypes.number,\n lineHeight: PropTypes.number,\n textAlign: PropTypes.oneOf(['auto', 'center', 'justify', 'left', 'right']),\n textAlignVertical: PropTypes.oneOf(['auto', 'bottom', 'center', 'top']),\n textDecorationColor: DeprecatedColorPropType,\n textDecorationLine: PropTypes.oneOf([\n 'line-through',\n 'none',\n 'underline line-through',\n 'underline',\n ]),\n textDecorationStyle: PropTypes.oneOf(['dashed', 'dotted', 'double', 'solid']),\n textShadowColor: DeprecatedColorPropType,\n textShadowOffset: PropTypes.shape({\n height: PropTypes.number,\n width: PropTypes.number,\n }),\n textShadowRadius: PropTypes.number,\n textTransform: PropTypes.oneOf([\n 'capitalize',\n 'lowercase',\n 'none',\n 'uppercase',\n ]),\n userSelect: PropTypes.oneOf(['all', 'auto', 'contain', 'none', 'text']),\n verticalAlign: PropTypes.oneOf(['auto', 'bottom', 'middle', 'top']),\n writingDirection: PropTypes.oneOf(['auto', 'ltr', 'rtl']),\n};\n\nmodule.exports = DeprecatedTextStylePropTypes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {PressEvent} from '../../Types/CoreEventTypes';\nimport typeof TouchableWithoutFeedback from './TouchableWithoutFeedback';\n\nimport View from '../../Components/View/View';\nimport Pressability, {\n type PressabilityConfig,\n} from '../../Pressability/Pressability';\nimport {PressabilityDebugView} from '../../Pressability/PressabilityDebug';\nimport {findHostInstance_DEPRECATED} from '../../ReactNative/RendererProxy';\nimport processColor from '../../StyleSheet/processColor';\nimport Platform from '../../Utilities/Platform';\nimport {Commands} from '../View/ViewNativeComponent';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\ntype Props = $ReadOnly<{|\n ...React.ElementConfig,\n\n /**\n * Determines the type of background drawable that's going to be used to\n * display feedback. It takes an object with `type` property and extra data\n * depending on the `type`. It's recommended to use one of the static\n * methods to generate that dictionary.\n */\n background?: ?(\n | $ReadOnly<{|\n type: 'ThemeAttrAndroid',\n attribute:\n | 'selectableItemBackground'\n | 'selectableItemBackgroundBorderless',\n rippleRadius: ?number,\n |}>\n | $ReadOnly<{|\n type: 'RippleAndroid',\n color: ?number,\n borderless: boolean,\n rippleRadius: ?number,\n |}>\n ),\n\n /**\n * TV preferred focus (see documentation for the View component).\n */\n hasTVPreferredFocus?: ?boolean,\n\n /**\n * TV next focus down (see documentation for the View component).\n */\n nextFocusDown?: ?number,\n\n /**\n * TV next focus forward (see documentation for the View component).\n */\n nextFocusForward?: ?number,\n\n /**\n * TV next focus left (see documentation for the View component).\n */\n nextFocusLeft?: ?number,\n\n /**\n * TV next focus right (see documentation for the View component).\n */\n nextFocusRight?: ?number,\n\n /**\n * TV next focus up (see documentation for the View component).\n */\n nextFocusUp?: ?number,\n\n /**\n * Set to true to add the ripple effect to the foreground of the view, instead\n * of the background. This is useful if one of your child views has a\n * background of its own, or you're e.g. displaying images, and you don't want\n * the ripple to be covered by them.\n *\n * Check TouchableNativeFeedback.canUseNativeForeground() first, as this is\n * only available on Android 6.0 and above. If you try to use this on older\n * versions, this will fallback to background.\n */\n useForeground?: ?boolean,\n|}>;\n\ntype State = $ReadOnly<{|\n pressability: Pressability,\n|}>;\n\nclass TouchableNativeFeedback extends React.Component {\n /**\n * Creates a value for the `background` prop that uses the Android theme's\n * default background for selectable elements.\n */\n static SelectableBackground: (rippleRadius: ?number) => $ReadOnly<{|\n attribute: 'selectableItemBackground',\n type: 'ThemeAttrAndroid',\n rippleRadius: ?number,\n |}> = (rippleRadius: ?number) => ({\n type: 'ThemeAttrAndroid',\n attribute: 'selectableItemBackground',\n rippleRadius,\n });\n\n /**\n * Creates a value for the `background` prop that uses the Android theme's\n * default background for borderless selectable elements. Requires API 21+.\n */\n static SelectableBackgroundBorderless: (rippleRadius: ?number) => $ReadOnly<{|\n attribute: 'selectableItemBackgroundBorderless',\n type: 'ThemeAttrAndroid',\n rippleRadius: ?number,\n |}> = (rippleRadius: ?number) => ({\n type: 'ThemeAttrAndroid',\n attribute: 'selectableItemBackgroundBorderless',\n rippleRadius,\n });\n\n /**\n * Creates a value for the `background` prop that uses the Android ripple with\n * the supplied color. If `borderless` is true, the ripple will render outside\n * of the view bounds. Requires API 21+.\n */\n static Ripple: (\n color: string,\n borderless: boolean,\n rippleRadius: ?number,\n ) => $ReadOnly<{|\n borderless: boolean,\n color: ?number,\n rippleRadius: ?number,\n type: 'RippleAndroid',\n |}> = (color: string, borderless: boolean, rippleRadius: ?number) => {\n const processedColor = processColor(color);\n invariant(\n processedColor == null || typeof processedColor === 'number',\n 'Unexpected color given for Ripple color',\n );\n return {\n type: 'RippleAndroid',\n color: processedColor,\n borderless,\n rippleRadius,\n };\n };\n\n /**\n * Whether `useForeground` is supported.\n */\n static canUseNativeForeground: () => boolean = () =>\n Platform.OS === 'android' && Platform.Version >= 23;\n\n state: State = {\n pressability: new Pressability(this._createPressabilityConfig()),\n };\n\n _createPressabilityConfig(): PressabilityConfig {\n const accessibilityStateDisabled =\n this.props['aria-disabled'] ?? this.props.accessibilityState?.disabled;\n return {\n cancelable: !this.props.rejectResponderTermination,\n disabled:\n this.props.disabled != null\n ? this.props.disabled\n : accessibilityStateDisabled,\n hitSlop: this.props.hitSlop,\n delayLongPress: this.props.delayLongPress,\n delayPressIn: this.props.delayPressIn,\n delayPressOut: this.props.delayPressOut,\n minPressDuration: 0,\n pressRectOffset: this.props.pressRetentionOffset,\n android_disableSound: this.props.touchSoundDisabled,\n onLongPress: this.props.onLongPress,\n onPress: this.props.onPress,\n onPressIn: event => {\n if (Platform.OS === 'android') {\n this._dispatchHotspotUpdate(event);\n this._dispatchPressedStateChange(true);\n }\n if (this.props.onPressIn != null) {\n this.props.onPressIn(event);\n }\n },\n onPressMove: event => {\n if (Platform.OS === 'android') {\n this._dispatchHotspotUpdate(event);\n }\n },\n onPressOut: event => {\n if (Platform.OS === 'android') {\n this._dispatchPressedStateChange(false);\n }\n if (this.props.onPressOut != null) {\n this.props.onPressOut(event);\n }\n },\n };\n }\n\n _dispatchPressedStateChange(pressed: boolean): void {\n if (Platform.OS === 'android') {\n const hostComponentRef = findHostInstance_DEPRECATED(this);\n if (hostComponentRef == null) {\n console.warn(\n 'Touchable: Unable to find HostComponent instance. ' +\n 'Has your Touchable component been unmounted?',\n );\n } else {\n Commands.setPressed(hostComponentRef, pressed);\n }\n }\n }\n\n _dispatchHotspotUpdate(event: PressEvent): void {\n if (Platform.OS === 'android') {\n const {locationX, locationY} = event.nativeEvent;\n const hostComponentRef = findHostInstance_DEPRECATED(this);\n if (hostComponentRef == null) {\n console.warn(\n 'Touchable: Unable to find HostComponent instance. ' +\n 'Has your Touchable component been unmounted?',\n );\n } else {\n Commands.hotspotUpdate(\n hostComponentRef,\n locationX ?? 0,\n locationY ?? 0,\n );\n }\n }\n }\n\n render(): React.Node {\n const element = React.Children.only<$FlowFixMe>(this.props.children);\n const children: Array = [element.props.children];\n if (__DEV__) {\n if (element.type === View) {\n children.push(\n ,\n );\n }\n }\n\n // BACKWARD-COMPATIBILITY: Focus and blur events were never supported before\n // adopting `Pressability`, so preserve that behavior.\n const {onBlur, onFocus, ...eventHandlersWithoutBlurAndFocus} =\n this.state.pressability.getEventHandlers();\n\n let _accessibilityState = {\n busy: this.props['aria-busy'] ?? this.props.accessibilityState?.busy,\n checked:\n this.props['aria-checked'] ?? this.props.accessibilityState?.checked,\n disabled:\n this.props['aria-disabled'] ?? this.props.accessibilityState?.disabled,\n expanded:\n this.props['aria-expanded'] ?? this.props.accessibilityState?.expanded,\n selected:\n this.props['aria-selected'] ?? this.props.accessibilityState?.selected,\n };\n\n _accessibilityState =\n this.props.disabled != null\n ? {\n ..._accessibilityState,\n disabled: this.props.disabled,\n }\n : _accessibilityState;\n\n const accessibilityValue = {\n max: this.props['aria-valuemax'] ?? this.props.accessibilityValue?.max,\n min: this.props['aria-valuemin'] ?? this.props.accessibilityValue?.min,\n now: this.props['aria-valuenow'] ?? this.props.accessibilityValue?.now,\n text: this.props['aria-valuetext'] ?? this.props.accessibilityValue?.text,\n };\n\n const accessibilityLiveRegion =\n this.props['aria-live'] === 'off'\n ? 'none'\n : this.props['aria-live'] ?? this.props.accessibilityLiveRegion;\n\n const accessibilityLabel =\n this.props['aria-label'] ?? this.props.accessibilityLabel;\n return React.cloneElement(\n element,\n {\n ...eventHandlersWithoutBlurAndFocus,\n ...getBackgroundProp(\n this.props.background === undefined\n ? TouchableNativeFeedback.SelectableBackground()\n : this.props.background,\n this.props.useForeground === true,\n ),\n accessible: this.props.accessible !== false,\n accessibilityHint: this.props.accessibilityHint,\n accessibilityLanguage: this.props.accessibilityLanguage,\n accessibilityLabel: accessibilityLabel,\n accessibilityRole: this.props.accessibilityRole,\n accessibilityState: _accessibilityState,\n accessibilityActions: this.props.accessibilityActions,\n onAccessibilityAction: this.props.onAccessibilityAction,\n accessibilityValue: accessibilityValue,\n importantForAccessibility:\n this.props['aria-hidden'] === true\n ? 'no-hide-descendants'\n : this.props.importantForAccessibility,\n accessibilityViewIsModal:\n this.props['aria-modal'] ?? this.props.accessibilityViewIsModal,\n accessibilityLiveRegion: accessibilityLiveRegion,\n accessibilityElementsHidden:\n this.props['aria-hidden'] ?? this.props.accessibilityElementsHidden,\n hasTVPreferredFocus: this.props.hasTVPreferredFocus,\n hitSlop: this.props.hitSlop,\n focusable:\n this.props.focusable !== false &&\n this.props.onPress !== undefined &&\n !this.props.disabled,\n nativeID: this.props.nativeID,\n nextFocusDown: this.props.nextFocusDown,\n nextFocusForward: this.props.nextFocusForward,\n nextFocusLeft: this.props.nextFocusLeft,\n nextFocusRight: this.props.nextFocusRight,\n nextFocusUp: this.props.nextFocusUp,\n onLayout: this.props.onLayout,\n testID: this.props.testID,\n },\n ...children,\n );\n }\n\n componentDidUpdate(prevProps: Props, prevState: State) {\n this.state.pressability.configure(this._createPressabilityConfig());\n }\n\n componentWillUnmount(): void {\n this.state.pressability.reset();\n }\n}\n\nconst getBackgroundProp =\n Platform.OS === 'android'\n ? /* $FlowFixMe[missing-local-annot] The type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n (background, useForeground: boolean) =>\n useForeground && TouchableNativeFeedback.canUseNativeForeground()\n ? {nativeForegroundAndroid: background}\n : {nativeBackgroundAndroid: background}\n : /* $FlowFixMe[missing-local-annot] The type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n (background, useForeground: boolean) => null;\n\nTouchableNativeFeedback.displayName = 'TouchableNativeFeedback';\n\nmodule.exports = TouchableNativeFeedback;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {ViewStyleProp} from '../../StyleSheet/StyleSheet';\nimport typeof TouchableWithoutFeedback from './TouchableWithoutFeedback';\n\nimport Animated from '../../Animated/Animated';\nimport Easing from '../../Animated/Easing';\nimport Pressability, {\n type PressabilityConfig,\n} from '../../Pressability/Pressability';\nimport {PressabilityDebugView} from '../../Pressability/PressabilityDebug';\nimport flattenStyle from '../../StyleSheet/flattenStyle';\nimport Platform from '../../Utilities/Platform';\nimport * as React from 'react';\n\ntype TVProps = $ReadOnly<{|\n hasTVPreferredFocus?: ?boolean,\n nextFocusDown?: ?number,\n nextFocusForward?: ?number,\n nextFocusLeft?: ?number,\n nextFocusRight?: ?number,\n nextFocusUp?: ?number,\n|}>;\n\ntype Props = $ReadOnly<{|\n ...React.ElementConfig,\n ...TVProps,\n\n activeOpacity?: ?number,\n style?: ?ViewStyleProp,\n\n hostRef?: ?React.Ref,\n|}>;\n\ntype State = $ReadOnly<{|\n anim: Animated.Value,\n pressability: Pressability,\n|}>;\n\n/**\n * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, dimming it.\n *\n * Opacity is controlled by wrapping the children in an Animated.View, which is\n * added to the view hierarchy. Be aware that this can affect layout.\n *\n * Example:\n *\n * ```\n * renderButton: function() {\n * return (\n * \n * \n * \n * );\n * },\n * ```\n * ### Example\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react'\n * import {\n * AppRegistry,\n * StyleSheet,\n * TouchableOpacity,\n * Text,\n * View,\n * } from 'react-native'\n *\n * class App extends Component {\n * state = { count: 0 }\n *\n * onPress = () => {\n * this.setState(state => ({\n * count: state.count + 1\n * }));\n * };\n *\n * render() {\n * return (\n * \n * \n * Touch Here \n * \n * \n * \n * { this.state.count !== 0 ? this.state.count: null}\n * \n * \n * \n * )\n * }\n * }\n *\n * const styles = StyleSheet.create({\n * container: {\n * flex: 1,\n * justifyContent: 'center',\n * paddingHorizontal: 10\n * },\n * button: {\n * alignItems: 'center',\n * backgroundColor: '#DDDDDD',\n * padding: 10\n * },\n * countContainer: {\n * alignItems: 'center',\n * padding: 10\n * },\n * countText: {\n * color: '#FF00FF'\n * }\n * })\n *\n * AppRegistry.registerComponent('App', () => App)\n * ```\n *\n */\nclass TouchableOpacity extends React.Component {\n state: State = {\n anim: new Animated.Value(this._getChildStyleOpacityWithDefault()),\n pressability: new Pressability(this._createPressabilityConfig()),\n };\n\n _createPressabilityConfig(): PressabilityConfig {\n return {\n cancelable: !this.props.rejectResponderTermination,\n disabled:\n this.props.disabled ??\n this.props['aria-disabled'] ??\n this.props.accessibilityState?.disabled,\n hitSlop: this.props.hitSlop,\n delayLongPress: this.props.delayLongPress,\n delayPressIn: this.props.delayPressIn,\n delayPressOut: this.props.delayPressOut,\n minPressDuration: 0,\n pressRectOffset: this.props.pressRetentionOffset,\n onBlur: event => {\n if (Platform.isTV) {\n this._opacityInactive(250);\n }\n if (this.props.onBlur != null) {\n this.props.onBlur(event);\n }\n },\n onFocus: event => {\n if (Platform.isTV) {\n this._opacityActive(150);\n }\n if (this.props.onFocus != null) {\n this.props.onFocus(event);\n }\n },\n onLongPress: this.props.onLongPress,\n onPress: this.props.onPress,\n onPressIn: event => {\n this._opacityActive(\n event.dispatchConfig.registrationName === 'onResponderGrant'\n ? 0\n : 150,\n );\n if (this.props.onPressIn != null) {\n this.props.onPressIn(event);\n }\n },\n onPressOut: event => {\n this._opacityInactive(250);\n if (this.props.onPressOut != null) {\n this.props.onPressOut(event);\n }\n },\n };\n }\n\n /**\n * Animate the touchable to a new opacity.\n */\n _setOpacityTo(toValue: number, duration: number): void {\n Animated.timing(this.state.anim, {\n toValue,\n duration,\n easing: Easing.inOut(Easing.quad),\n useNativeDriver: true,\n }).start();\n }\n\n _opacityActive(duration: number): void {\n this._setOpacityTo(this.props.activeOpacity ?? 0.2, duration);\n }\n\n _opacityInactive(duration: number): void {\n this._setOpacityTo(this._getChildStyleOpacityWithDefault(), duration);\n }\n\n _getChildStyleOpacityWithDefault(): number {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n const opacity = flattenStyle(this.props.style)?.opacity;\n return typeof opacity === 'number' ? opacity : 1;\n }\n\n render(): React.Node {\n // BACKWARD-COMPATIBILITY: Focus and blur events were never supported before\n // adopting `Pressability`, so preserve that behavior.\n const {onBlur, onFocus, ...eventHandlersWithoutBlurAndFocus} =\n this.state.pressability.getEventHandlers();\n\n let _accessibilityState = {\n busy: this.props['aria-busy'] ?? this.props.accessibilityState?.busy,\n checked:\n this.props['aria-checked'] ?? this.props.accessibilityState?.checked,\n disabled:\n this.props['aria-disabled'] ?? this.props.accessibilityState?.disabled,\n expanded:\n this.props['aria-expanded'] ?? this.props.accessibilityState?.expanded,\n selected:\n this.props['aria-selected'] ?? this.props.accessibilityState?.selected,\n };\n\n _accessibilityState =\n this.props.disabled != null\n ? {\n ..._accessibilityState,\n disabled: this.props.disabled,\n }\n : _accessibilityState;\n\n const accessibilityValue = {\n max: this.props['aria-valuemax'] ?? this.props.accessibilityValue?.max,\n min: this.props['aria-valuemin'] ?? this.props.accessibilityValue?.min,\n now: this.props['aria-valuenow'] ?? this.props.accessibilityValue?.now,\n text: this.props['aria-valuetext'] ?? this.props.accessibilityValue?.text,\n };\n\n const accessibilityLiveRegion =\n this.props['aria-live'] === 'off'\n ? 'none'\n : this.props['aria-live'] ?? this.props.accessibilityLiveRegion;\n\n const accessibilityLabel =\n this.props['aria-label'] ?? this.props.accessibilityLabel;\n return (\n \n {this.props.children}\n {__DEV__ ? (\n \n ) : null}\n \n );\n }\n\n componentDidUpdate(prevProps: Props, prevState: State) {\n this.state.pressability.configure(this._createPressabilityConfig());\n if (\n this.props.disabled !== prevProps.disabled ||\n // $FlowFixMe[underconstrained-implicit-instantiation]\n flattenStyle(prevProps.style)?.opacity !==\n // $FlowFixMe[underconstrained-implicit-instantiation]\n flattenStyle(this.props.style)?.opacity\n ) {\n this._opacityInactive(250);\n }\n }\n\n componentWillUnmount(): void {\n this.state.pressability.reset();\n }\n}\n\nconst Touchable = (React.forwardRef((props, ref) => (\n \n)): React.AbstractComponent>);\n\nTouchable.displayName = 'TouchableOpacity';\n\nmodule.exports = Touchable;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nexport type {CompositeAnimation, Numeric} from './AnimatedImplementation';\n\nimport typeof AnimatedFlatList from './components/AnimatedFlatList';\nimport typeof AnimatedImage from './components/AnimatedImage';\nimport typeof AnimatedScrollView from './components/AnimatedScrollView';\nimport typeof AnimatedSectionList from './components/AnimatedSectionList';\nimport typeof AnimatedText from './components/AnimatedText';\nimport typeof AnimatedView from './components/AnimatedView';\n\nimport Platform from '../Utilities/Platform';\nimport AnimatedImplementation from './AnimatedImplementation';\nimport AnimatedMock from './AnimatedMock';\n\nconst Animated = ((Platform.isTesting\n ? AnimatedMock\n : AnimatedImplementation): typeof AnimatedImplementation);\n\nexport default {\n get FlatList(): AnimatedFlatList {\n return require('./components/AnimatedFlatList').default;\n },\n get Image(): AnimatedImage {\n return require('./components/AnimatedImage').default;\n },\n get ScrollView(): AnimatedScrollView {\n return require('./components/AnimatedScrollView').default;\n },\n get SectionList(): AnimatedSectionList {\n return require('./components/AnimatedSectionList').default;\n },\n get Text(): AnimatedText {\n return require('./components/AnimatedText').default;\n },\n get View(): AnimatedView {\n return require('./components/AnimatedView').default;\n },\n ...Animated,\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {EventConfig, Mapping} from './AnimatedEvent';\nimport type {\n AnimationConfig,\n EndCallback,\n EndResult,\n} from './animations/Animation';\nimport type {DecayAnimationConfig} from './animations/DecayAnimation';\nimport type {SpringAnimationConfig} from './animations/SpringAnimation';\nimport type {TimingAnimationConfig} from './animations/TimingAnimation';\n\nimport {AnimatedEvent, attachNativeEvent} from './AnimatedEvent';\nimport DecayAnimation from './animations/DecayAnimation';\nimport SpringAnimation from './animations/SpringAnimation';\nimport TimingAnimation from './animations/TimingAnimation';\nimport createAnimatedComponent from './createAnimatedComponent';\nimport AnimatedAddition from './nodes/AnimatedAddition';\nimport AnimatedColor from './nodes/AnimatedColor';\nimport AnimatedDiffClamp from './nodes/AnimatedDiffClamp';\nimport AnimatedDivision from './nodes/AnimatedDivision';\nimport AnimatedInterpolation from './nodes/AnimatedInterpolation';\nimport AnimatedModulo from './nodes/AnimatedModulo';\nimport AnimatedMultiplication from './nodes/AnimatedMultiplication';\nimport AnimatedNode from './nodes/AnimatedNode';\nimport AnimatedSubtraction from './nodes/AnimatedSubtraction';\nimport AnimatedTracking from './nodes/AnimatedTracking';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\n\nexport type CompositeAnimation = {\n start: (callback?: ?EndCallback) => void,\n stop: () => void,\n reset: () => void,\n _startNativeLoop: (iterations?: number) => void,\n _isUsingNativeDriver: () => boolean,\n ...\n};\n\nconst add = function (\n a: AnimatedNode | number,\n b: AnimatedNode | number,\n): AnimatedAddition {\n return new AnimatedAddition(a, b);\n};\n\nconst subtract = function (\n a: AnimatedNode | number,\n b: AnimatedNode | number,\n): AnimatedSubtraction {\n return new AnimatedSubtraction(a, b);\n};\n\nconst divide = function (\n a: AnimatedNode | number,\n b: AnimatedNode | number,\n): AnimatedDivision {\n return new AnimatedDivision(a, b);\n};\n\nconst multiply = function (\n a: AnimatedNode | number,\n b: AnimatedNode | number,\n): AnimatedMultiplication {\n return new AnimatedMultiplication(a, b);\n};\n\nconst modulo = function (a: AnimatedNode, modulus: number): AnimatedModulo {\n return new AnimatedModulo(a, modulus);\n};\n\nconst diffClamp = function (\n a: AnimatedNode,\n min: number,\n max: number,\n): AnimatedDiffClamp {\n return new AnimatedDiffClamp(a, min, max);\n};\n\nconst _combineCallbacks = function (\n callback: ?EndCallback,\n config: $ReadOnly<{...AnimationConfig, ...}>,\n) {\n if (callback && config.onComplete) {\n return (...args: Array) => {\n config.onComplete && config.onComplete(...args);\n callback && callback(...args);\n };\n } else {\n return callback || config.onComplete;\n }\n};\n\nconst maybeVectorAnim = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: Object,\n anim: (value: AnimatedValue, config: Object) => CompositeAnimation,\n): ?CompositeAnimation {\n if (value instanceof AnimatedValueXY) {\n const configX = {...config};\n const configY = {...config};\n for (const key in config) {\n const {x, y} = config[key];\n if (x !== undefined && y !== undefined) {\n configX[key] = x;\n configY[key] = y;\n }\n }\n const aX = anim((value: AnimatedValueXY).x, configX);\n const aY = anim((value: AnimatedValueXY).y, configY);\n // We use `stopTogether: false` here because otherwise tracking will break\n // because the second animation will get stopped before it can update.\n return parallel([aX, aY], {stopTogether: false});\n } else if (value instanceof AnimatedColor) {\n const configR = {...config};\n const configG = {...config};\n const configB = {...config};\n const configA = {...config};\n for (const key in config) {\n const {r, g, b, a} = config[key];\n if (\n r !== undefined &&\n g !== undefined &&\n b !== undefined &&\n a !== undefined\n ) {\n configR[key] = r;\n configG[key] = g;\n configB[key] = b;\n configA[key] = a;\n }\n }\n const aR = anim((value: AnimatedColor).r, configR);\n const aG = anim((value: AnimatedColor).g, configG);\n const aB = anim((value: AnimatedColor).b, configB);\n const aA = anim((value: AnimatedColor).a, configA);\n // We use `stopTogether: false` here because otherwise tracking will break\n // because the second animation will get stopped before it can update.\n return parallel([aR, aG, aB, aA], {stopTogether: false});\n }\n return null;\n};\n\nconst spring = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: SpringAnimationConfig,\n): CompositeAnimation {\n const start = function (\n animatedValue: AnimatedValue | AnimatedValueXY | AnimatedColor,\n configuration: SpringAnimationConfig,\n callback?: ?EndCallback,\n ): void {\n callback = _combineCallbacks(callback, configuration);\n const singleValue: any = animatedValue;\n const singleConfig: any = configuration;\n singleValue.stopTracking();\n if (configuration.toValue instanceof AnimatedNode) {\n singleValue.track(\n new AnimatedTracking(\n singleValue,\n configuration.toValue,\n SpringAnimation,\n singleConfig,\n callback,\n ),\n );\n } else {\n singleValue.animate(new SpringAnimation(singleConfig), callback);\n }\n };\n return (\n maybeVectorAnim(value, config, spring) || {\n start: function (callback?: ?EndCallback): void {\n start(value, config, callback);\n },\n\n stop: function (): void {\n value.stopAnimation();\n },\n\n reset: function (): void {\n value.resetAnimation();\n },\n\n _startNativeLoop: function (iterations?: number): void {\n const singleConfig = {...config, iterations};\n start(value, singleConfig);\n },\n\n _isUsingNativeDriver: function (): boolean {\n return config.useNativeDriver || false;\n },\n }\n );\n};\n\nconst timing = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: TimingAnimationConfig,\n): CompositeAnimation {\n const start = function (\n animatedValue: AnimatedValue | AnimatedValueXY | AnimatedColor,\n configuration: TimingAnimationConfig,\n callback?: ?EndCallback,\n ): void {\n callback = _combineCallbacks(callback, configuration);\n const singleValue: any = animatedValue;\n const singleConfig: any = configuration;\n singleValue.stopTracking();\n if (configuration.toValue instanceof AnimatedNode) {\n singleValue.track(\n new AnimatedTracking(\n singleValue,\n configuration.toValue,\n TimingAnimation,\n singleConfig,\n callback,\n ),\n );\n } else {\n singleValue.animate(new TimingAnimation(singleConfig), callback);\n }\n };\n\n return (\n maybeVectorAnim(value, config, timing) || {\n start: function (callback?: ?EndCallback): void {\n start(value, config, callback);\n },\n\n stop: function (): void {\n value.stopAnimation();\n },\n\n reset: function (): void {\n value.resetAnimation();\n },\n\n _startNativeLoop: function (iterations?: number): void {\n const singleConfig = {...config, iterations};\n start(value, singleConfig);\n },\n\n _isUsingNativeDriver: function (): boolean {\n return config.useNativeDriver || false;\n },\n }\n );\n};\n\nconst decay = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: DecayAnimationConfig,\n): CompositeAnimation {\n const start = function (\n animatedValue: AnimatedValue | AnimatedValueXY | AnimatedColor,\n configuration: DecayAnimationConfig,\n callback?: ?EndCallback,\n ): void {\n callback = _combineCallbacks(callback, configuration);\n const singleValue: any = animatedValue;\n const singleConfig: any = configuration;\n singleValue.stopTracking();\n singleValue.animate(new DecayAnimation(singleConfig), callback);\n };\n\n return (\n maybeVectorAnim(value, config, decay) || {\n start: function (callback?: ?EndCallback): void {\n start(value, config, callback);\n },\n\n stop: function (): void {\n value.stopAnimation();\n },\n\n reset: function (): void {\n value.resetAnimation();\n },\n\n _startNativeLoop: function (iterations?: number): void {\n const singleConfig = {...config, iterations};\n start(value, singleConfig);\n },\n\n _isUsingNativeDriver: function (): boolean {\n return config.useNativeDriver || false;\n },\n }\n );\n};\n\nconst sequence = function (\n animations: Array,\n): CompositeAnimation {\n let current = 0;\n return {\n start: function (callback?: ?EndCallback) {\n const onComplete = function (result: EndResult) {\n if (!result.finished) {\n callback && callback(result);\n return;\n }\n\n current++;\n\n if (current === animations.length) {\n callback && callback(result);\n return;\n }\n\n animations[current].start(onComplete);\n };\n\n if (animations.length === 0) {\n callback && callback({finished: true});\n } else {\n animations[current].start(onComplete);\n }\n },\n\n stop: function () {\n if (current < animations.length) {\n animations[current].stop();\n }\n },\n\n reset: function () {\n animations.forEach((animation, idx) => {\n if (idx <= current) {\n animation.reset();\n }\n });\n current = 0;\n },\n\n _startNativeLoop: function () {\n throw new Error(\n 'Loops run using the native driver cannot contain Animated.sequence animations',\n );\n },\n\n _isUsingNativeDriver: function (): boolean {\n return false;\n },\n };\n};\n\ntype ParallelConfig = {\n // If one is stopped, stop all. default: true\n stopTogether?: boolean,\n ...\n};\nconst parallel = function (\n animations: Array,\n config?: ?ParallelConfig,\n): CompositeAnimation {\n let doneCount = 0;\n // Make sure we only call stop() at most once for each animation\n const hasEnded: {[number]: boolean} = {};\n const stopTogether = !(config && config.stopTogether === false);\n\n const result = {\n start: function (callback?: ?EndCallback) {\n if (doneCount === animations.length) {\n callback && callback({finished: true});\n return;\n }\n\n animations.forEach((animation, idx) => {\n const cb = function (endResult: EndResult | {finished: boolean}) {\n hasEnded[idx] = true;\n doneCount++;\n if (doneCount === animations.length) {\n doneCount = 0;\n callback && callback(endResult);\n return;\n }\n\n if (!endResult.finished && stopTogether) {\n result.stop();\n }\n };\n\n if (!animation) {\n cb({finished: true});\n } else {\n animation.start(cb);\n }\n });\n },\n\n stop: function (): void {\n animations.forEach((animation, idx) => {\n !hasEnded[idx] && animation.stop();\n hasEnded[idx] = true;\n });\n },\n\n reset: function (): void {\n animations.forEach((animation, idx) => {\n animation.reset();\n hasEnded[idx] = false;\n doneCount = 0;\n });\n },\n\n _startNativeLoop: function (): empty {\n throw new Error(\n 'Loops run using the native driver cannot contain Animated.parallel animations',\n );\n },\n\n _isUsingNativeDriver: function (): boolean {\n return false;\n },\n };\n\n return result;\n};\n\nconst delay = function (time: number): CompositeAnimation {\n // Would be nice to make a specialized implementation\n return timing(new AnimatedValue(0), {\n toValue: 0,\n delay: time,\n duration: 0,\n useNativeDriver: false,\n });\n};\n\nconst stagger = function (\n time: number,\n animations: Array,\n): CompositeAnimation {\n return parallel(\n animations.map((animation, i) => {\n return sequence([delay(time * i), animation]);\n }),\n );\n};\n\ntype LoopAnimationConfig = {\n iterations: number,\n resetBeforeIteration?: boolean,\n ...\n};\n\nconst loop = function (\n animation: CompositeAnimation,\n // $FlowFixMe[prop-missing]\n {iterations = -1, resetBeforeIteration = true}: LoopAnimationConfig = {},\n): CompositeAnimation {\n let isFinished = false;\n let iterationsSoFar = 0;\n return {\n start: function (callback?: ?EndCallback) {\n const restart = function (result: EndResult = {finished: true}): void {\n if (\n isFinished ||\n iterationsSoFar === iterations ||\n result.finished === false\n ) {\n callback && callback(result);\n } else {\n iterationsSoFar++;\n resetBeforeIteration && animation.reset();\n animation.start(restart);\n }\n };\n if (!animation || iterations === 0) {\n callback && callback({finished: true});\n } else {\n if (animation._isUsingNativeDriver()) {\n animation._startNativeLoop(iterations);\n } else {\n restart(); // Start looping recursively on the js thread\n }\n }\n },\n\n stop: function (): void {\n isFinished = true;\n animation.stop();\n },\n\n reset: function (): void {\n iterationsSoFar = 0;\n isFinished = false;\n animation.reset();\n },\n\n _startNativeLoop: function () {\n throw new Error(\n 'Loops run using the native driver cannot contain Animated.loop animations',\n );\n },\n\n _isUsingNativeDriver: function (): boolean {\n return animation._isUsingNativeDriver();\n },\n };\n};\n\nfunction forkEvent(\n event: ?AnimatedEvent | ?Function,\n listener: Function,\n): AnimatedEvent | Function {\n if (!event) {\n return listener;\n } else if (event instanceof AnimatedEvent) {\n event.__addListener(listener);\n return event;\n } else {\n return (...args) => {\n typeof event === 'function' && event(...args);\n listener(...args);\n };\n }\n}\n\nfunction unforkEvent(\n event: ?AnimatedEvent | ?Function,\n listener: Function,\n): void {\n if (event && event instanceof AnimatedEvent) {\n event.__removeListener(listener);\n }\n}\n\nconst event = function (\n argMapping: $ReadOnlyArray,\n config: EventConfig,\n): any {\n const animatedEvent = new AnimatedEvent(argMapping, config);\n if (animatedEvent.__isNative) {\n return animatedEvent;\n } else {\n return animatedEvent.__getHandler();\n }\n};\n\n// All types of animated nodes that represent scalar numbers and can be interpolated (etc)\ntype AnimatedNumeric =\n | AnimatedAddition\n | AnimatedDiffClamp\n | AnimatedDivision\n | AnimatedInterpolation\n | AnimatedModulo\n | AnimatedMultiplication\n | AnimatedSubtraction\n | AnimatedValue;\n\nexport type {AnimatedNumeric as Numeric};\n\n/**\n * The `Animated` library is designed to make animations fluid, powerful, and\n * easy to build and maintain. `Animated` focuses on declarative relationships\n * between inputs and outputs, with configurable transforms in between, and\n * simple `start`/`stop` methods to control time-based animation execution.\n * If additional transforms are added, be sure to include them in\n * AnimatedMock.js as well.\n *\n * See https://reactnative.dev/docs/animated\n */\nexport default {\n /**\n * Standard value class for driving animations. Typically initialized with\n * `new Animated.Value(0);`\n *\n * See https://reactnative.dev/docs/animated#value\n */\n Value: AnimatedValue,\n /**\n * 2D value class for driving 2D animations, such as pan gestures.\n *\n * See https://reactnative.dev/docs/animatedvaluexy\n */\n ValueXY: AnimatedValueXY,\n /**\n * Value class for driving color animations.\n */\n Color: AnimatedColor,\n /**\n * Exported to use the Interpolation type in flow.\n *\n * See https://reactnative.dev/docs/animated#interpolation\n */\n Interpolation: AnimatedInterpolation,\n /**\n * Exported for ease of type checking. All animated values derive from this\n * class.\n *\n * See https://reactnative.dev/docs/animated#node\n */\n Node: AnimatedNode,\n\n /**\n * Animates a value from an initial velocity to zero based on a decay\n * coefficient.\n *\n * See https://reactnative.dev/docs/animated#decay\n */\n decay,\n /**\n * Animates a value along a timed easing curve. The Easing module has tons of\n * predefined curves, or you can use your own function.\n *\n * See https://reactnative.dev/docs/animated#timing\n */\n timing,\n /**\n * Animates a value according to an analytical spring model based on\n * damped harmonic oscillation.\n *\n * See https://reactnative.dev/docs/animated#spring\n */\n spring,\n\n /**\n * Creates a new Animated value composed from two Animated values added\n * together.\n *\n * See https://reactnative.dev/docs/animated#add\n */\n add,\n\n /**\n * Creates a new Animated value composed by subtracting the second Animated\n * value from the first Animated value.\n *\n * See https://reactnative.dev/docs/animated#subtract\n */\n subtract,\n\n /**\n * Creates a new Animated value composed by dividing the first Animated value\n * by the second Animated value.\n *\n * See https://reactnative.dev/docs/animated#divide\n */\n divide,\n\n /**\n * Creates a new Animated value composed from two Animated values multiplied\n * together.\n *\n * See https://reactnative.dev/docs/animated#multiply\n */\n multiply,\n\n /**\n * Creates a new Animated value that is the (non-negative) modulo of the\n * provided Animated value.\n *\n * See https://reactnative.dev/docs/animated#modulo\n */\n modulo,\n\n /**\n * Create a new Animated value that is limited between 2 values. It uses the\n * difference between the last value so even if the value is far from the\n * bounds it will start changing when the value starts getting closer again.\n *\n * See https://reactnative.dev/docs/animated#diffclamp\n */\n diffClamp,\n\n /**\n * Starts an animation after the given delay.\n *\n * See https://reactnative.dev/docs/animated#delay\n */\n delay,\n /**\n * Starts an array of animations in order, waiting for each to complete\n * before starting the next. If the current running animation is stopped, no\n * following animations will be started.\n *\n * See https://reactnative.dev/docs/animated#sequence\n */\n sequence,\n /**\n * Starts an array of animations all at the same time. By default, if one\n * of the animations is stopped, they will all be stopped. You can override\n * this with the `stopTogether` flag.\n *\n * See https://reactnative.dev/docs/animated#parallel\n */\n parallel,\n /**\n * Array of animations may run in parallel (overlap), but are started in\n * sequence with successive delays. Nice for doing trailing effects.\n *\n * See https://reactnative.dev/docs/animated#stagger\n */\n stagger,\n /**\n * Loops a given animation continuously, so that each time it reaches the\n * end, it resets and begins again from the start.\n *\n * See https://reactnative.dev/docs/animated#loop\n */\n loop,\n\n /**\n * Takes an array of mappings and extracts values from each arg accordingly,\n * then calls `setValue` on the mapped outputs.\n *\n * See https://reactnative.dev/docs/animated#event\n */\n event,\n\n /**\n * Make any React component Animatable. Used to create `Animated.View`, etc.\n *\n * See https://reactnative.dev/docs/animated#createanimatedcomponent\n */\n createAnimatedComponent,\n\n /**\n * Imperative API to attach an animated value to an event on a view. Prefer\n * using `Animated.event` with `useNativeDrive: true` if possible.\n *\n * See https://reactnative.dev/docs/animated#attachnativeevent\n */\n attachNativeEvent,\n\n /**\n * Advanced imperative API for snooping on animated events that are passed in\n * through props. Use values directly where possible.\n *\n * See https://reactnative.dev/docs/animated#forkevent\n */\n forkEvent,\n unforkEvent,\n\n /**\n * Expose Event class, so it can be used as a type for type checkers.\n */\n Event: AnimatedEvent,\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type AnimatedValue from '../nodes/AnimatedValue';\nimport type {AnimationConfig, EndCallback} from './Animation';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport Animation from './Animation';\n\nexport type DecayAnimationConfig = {\n ...AnimationConfig,\n velocity:\n | number\n | {\n x: number,\n y: number,\n ...\n },\n deceleration?: number,\n};\n\nexport type DecayAnimationConfigSingle = {\n ...AnimationConfig,\n velocity: number,\n deceleration?: number,\n};\n\nexport default class DecayAnimation extends Animation {\n _startTime: number;\n _lastValue: number;\n _fromValue: number;\n _deceleration: number;\n _velocity: number;\n _onUpdate: (value: number) => void;\n _animationFrame: any;\n _useNativeDriver: boolean;\n _platformConfig: ?PlatformConfig;\n\n constructor(config: DecayAnimationConfigSingle) {\n super();\n this._deceleration = config.deceleration ?? 0.998;\n this._velocity = config.velocity;\n this._useNativeDriver = NativeAnimatedHelper.shouldUseNativeDriver(config);\n this._platformConfig = config.platformConfig;\n this.__isInteraction = config.isInteraction ?? !this._useNativeDriver;\n this.__iterations = config.iterations ?? 1;\n }\n\n __getNativeAnimationConfig(): {|\n deceleration: number,\n iterations: number,\n platformConfig: ?PlatformConfig,\n type: $TEMPORARY$string<'decay'>,\n velocity: number,\n |} {\n return {\n type: 'decay',\n deceleration: this._deceleration,\n velocity: this._velocity,\n iterations: this.__iterations,\n platformConfig: this._platformConfig,\n };\n }\n\n start(\n fromValue: number,\n onUpdate: (value: number) => void,\n onEnd: ?EndCallback,\n previousAnimation: ?Animation,\n animatedValue: AnimatedValue,\n ): void {\n this.__active = true;\n this._lastValue = fromValue;\n this._fromValue = fromValue;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n this._startTime = Date.now();\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n }\n\n onUpdate(): void {\n const now = Date.now();\n\n const value =\n this._fromValue +\n (this._velocity / (1 - this._deceleration)) *\n (1 - Math.exp(-(1 - this._deceleration) * (now - this._startTime)));\n\n this._onUpdate(value);\n\n if (Math.abs(this._lastValue - value) < 0.1) {\n this.__debouncedOnEnd({finished: true});\n return;\n }\n\n this._lastValue = value;\n if (this.__active) {\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n }\n\n stop(): void {\n super.stop();\n this.__active = false;\n global.cancelAnimationFrame(this._animationFrame);\n this.__debouncedOnEnd({finished: false});\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {EventSubscription} from '../vendor/emitter/EventEmitter';\nimport type {EventConfig} from './AnimatedEvent';\nimport type {AnimationConfig, EndCallback} from './animations/Animation';\nimport type {\n AnimatedNodeConfig,\n AnimatingNodeConfig,\n EventMapping,\n} from './NativeAnimatedModule';\nimport type {InterpolationConfigType} from './nodes/AnimatedInterpolation';\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter';\nimport ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';\nimport Platform from '../Utilities/Platform';\nimport NativeAnimatedNonTurboModule from './NativeAnimatedModule';\nimport NativeAnimatedTurboModule from './NativeAnimatedTurboModule';\nimport invariant from 'invariant';\n\n// TODO T69437152 @petetheheat - Delete this fork when Fabric ships to 100%.\nconst NativeAnimatedModule =\n Platform.OS === 'ios' && global.RN$Bridgeless === true\n ? NativeAnimatedTurboModule\n : NativeAnimatedNonTurboModule;\n\nlet __nativeAnimatedNodeTagCount = 1; /* used for animated nodes */\nlet __nativeAnimationIdCount = 1; /* used for started animations */\n\nlet nativeEventEmitter;\n\nlet waitingForQueuedOperations = new Set();\nlet queueOperations = false;\nlet queue: Array<() => void> = [];\n// $FlowFixMe\nlet singleOpQueue: Array = [];\n\nconst useSingleOpBatching =\n Platform.OS === 'android' &&\n !!NativeAnimatedModule?.queueAndExecuteBatchedOperations &&\n ReactNativeFeatureFlags.animatedShouldUseSingleOp();\nlet flushQueueTimeout = null;\n\nconst eventListenerGetValueCallbacks: {\n [$FlowFixMe | number]: ((value: number) => void) | void,\n} = {};\nconst eventListenerAnimationFinishedCallbacks: {\n [$FlowFixMe | number]: EndCallback | void,\n} = {};\nlet globalEventEmitterGetValueListener: ?EventSubscription = null;\nlet globalEventEmitterAnimationFinishedListener: ?EventSubscription = null;\n\nconst nativeOps: ?typeof NativeAnimatedModule = useSingleOpBatching\n ? ((function () {\n const apis = [\n 'createAnimatedNode', // 1\n 'updateAnimatedNodeConfig', // 2\n 'getValue', // 3\n 'startListeningToAnimatedNodeValue', // 4\n 'stopListeningToAnimatedNodeValue', // 5\n 'connectAnimatedNodes', // 6\n 'disconnectAnimatedNodes', // 7\n 'startAnimatingNode', // 8\n 'stopAnimation', // 9\n 'setAnimatedNodeValue', // 10\n 'setAnimatedNodeOffset', // 11\n 'flattenAnimatedNodeOffset', // 12\n 'extractAnimatedNodeOffset', // 13\n 'connectAnimatedNodeToView', // 14\n 'disconnectAnimatedNodeFromView', // 15\n 'restoreDefaultValues', // 16\n 'dropAnimatedNode', // 17\n 'addAnimatedEventToView', // 18\n 'removeAnimatedEventFromView', // 19\n 'addListener', // 20\n 'removeListener', // 21\n ];\n return apis.reduce<{[string]: number}>((acc, functionName, i) => {\n // These indices need to be kept in sync with the indices in native (see NativeAnimatedModule in Java, or the equivalent for any other native platform).\n // $FlowFixMe[prop-missing]\n acc[functionName] = i + 1;\n return acc;\n }, {});\n })(): $FlowFixMe)\n : NativeAnimatedModule;\n\n/**\n * Wrappers around NativeAnimatedModule to provide flow and autocomplete support for\n * the native module methods, and automatic queue management on Android\n */\nconst API = {\n getValue: function (\n tag: number,\n saveValueCallback: (value: number) => void,\n ): void {\n invariant(nativeOps, 'Native animated module is not available');\n if (useSingleOpBatching) {\n if (saveValueCallback) {\n eventListenerGetValueCallbacks[tag] = saveValueCallback;\n }\n // $FlowFixMe\n API.queueOperation(nativeOps.getValue, tag);\n } else {\n API.queueOperation(nativeOps.getValue, tag, saveValueCallback);\n }\n },\n setWaitingForIdentifier: function (id: string): void {\n waitingForQueuedOperations.add(id);\n queueOperations = true;\n if (\n ReactNativeFeatureFlags.animatedShouldDebounceQueueFlush() &&\n flushQueueTimeout\n ) {\n clearTimeout(flushQueueTimeout);\n }\n },\n unsetWaitingForIdentifier: function (id: string): void {\n waitingForQueuedOperations.delete(id);\n\n if (waitingForQueuedOperations.size === 0) {\n queueOperations = false;\n API.disableQueue();\n }\n },\n disableQueue: function (): void {\n invariant(nativeOps, 'Native animated module is not available');\n\n if (ReactNativeFeatureFlags.animatedShouldDebounceQueueFlush()) {\n const prevTimeout = flushQueueTimeout;\n clearImmediate(prevTimeout);\n flushQueueTimeout = setImmediate(API.flushQueue);\n } else {\n API.flushQueue();\n }\n },\n flushQueue: function (): void {\n // TODO: (T136971132)\n invariant(\n NativeAnimatedModule || process.env.NODE_ENV === 'test',\n 'Native animated module is not available',\n );\n flushQueueTimeout = null;\n\n // Early returns before calling any APIs\n if (useSingleOpBatching && singleOpQueue.length === 0) {\n return;\n }\n if (!useSingleOpBatching && queue.length === 0) {\n return;\n }\n\n if (useSingleOpBatching) {\n // Set up event listener for callbacks if it's not set up\n if (\n !globalEventEmitterGetValueListener ||\n !globalEventEmitterAnimationFinishedListener\n ) {\n setupGlobalEventEmitterListeners();\n }\n // Single op batching doesn't use callback functions, instead we\n // use RCTDeviceEventEmitter. This reduces overhead of sending lots of\n // JSI functions across to native code; but also, TM infrastructure currently\n // does not support packing a function into native arrays.\n NativeAnimatedModule?.queueAndExecuteBatchedOperations?.(singleOpQueue);\n singleOpQueue.length = 0;\n } else {\n Platform.OS === 'android' &&\n NativeAnimatedModule?.startOperationBatch?.();\n\n for (let q = 0, l = queue.length; q < l; q++) {\n queue[q]();\n }\n queue.length = 0;\n Platform.OS === 'android' &&\n NativeAnimatedModule?.finishOperationBatch?.();\n }\n },\n queueOperation: , Fn: (...Args) => void>(\n fn: Fn,\n ...args: Args\n ): void => {\n if (useSingleOpBatching) {\n // Get the command ID from the queued function, and push that ID and any arguments needed to execute the operation\n // $FlowFixMe: surprise, fn is actually a number\n singleOpQueue.push(fn, ...args);\n return;\n }\n\n // If queueing is explicitly on, *or* the queue has not yet\n // been flushed, use the queue. This is to prevent operations\n // from being executed out of order.\n if (queueOperations || queue.length !== 0) {\n queue.push(() => fn(...args));\n } else {\n fn(...args);\n }\n },\n createAnimatedNode: function (tag: number, config: AnimatedNodeConfig): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.createAnimatedNode, tag, config);\n },\n updateAnimatedNodeConfig: function (\n tag: number,\n config: AnimatedNodeConfig,\n ): void {\n invariant(nativeOps, 'Native animated module is not available');\n if (nativeOps.updateAnimatedNodeConfig) {\n API.queueOperation(nativeOps.updateAnimatedNodeConfig, tag, config);\n }\n },\n startListeningToAnimatedNodeValue: function (tag: number) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.startListeningToAnimatedNodeValue, tag);\n },\n stopListeningToAnimatedNodeValue: function (tag: number) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.stopListeningToAnimatedNodeValue, tag);\n },\n connectAnimatedNodes: function (parentTag: number, childTag: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.connectAnimatedNodes, parentTag, childTag);\n },\n disconnectAnimatedNodes: function (\n parentTag: number,\n childTag: number,\n ): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.disconnectAnimatedNodes, parentTag, childTag);\n },\n startAnimatingNode: function (\n animationId: number,\n nodeTag: number,\n config: AnimatingNodeConfig,\n endCallback: EndCallback,\n ): void {\n invariant(nativeOps, 'Native animated module is not available');\n if (useSingleOpBatching) {\n if (endCallback) {\n eventListenerAnimationFinishedCallbacks[animationId] = endCallback;\n }\n // $FlowFixMe\n API.queueOperation(\n // $FlowFixMe[incompatible-call]\n nativeOps.startAnimatingNode,\n animationId,\n nodeTag,\n config,\n );\n } else {\n API.queueOperation(\n nativeOps.startAnimatingNode,\n animationId,\n nodeTag,\n config,\n endCallback,\n );\n }\n },\n stopAnimation: function (animationId: number) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.stopAnimation, animationId);\n },\n setAnimatedNodeValue: function (nodeTag: number, value: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.setAnimatedNodeValue, nodeTag, value);\n },\n setAnimatedNodeOffset: function (nodeTag: number, offset: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.setAnimatedNodeOffset, nodeTag, offset);\n },\n flattenAnimatedNodeOffset: function (nodeTag: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.flattenAnimatedNodeOffset, nodeTag);\n },\n extractAnimatedNodeOffset: function (nodeTag: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.extractAnimatedNodeOffset, nodeTag);\n },\n connectAnimatedNodeToView: function (nodeTag: number, viewTag: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.connectAnimatedNodeToView, nodeTag, viewTag);\n },\n disconnectAnimatedNodeFromView: function (\n nodeTag: number,\n viewTag: number,\n ): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(\n nativeOps.disconnectAnimatedNodeFromView,\n nodeTag,\n viewTag,\n );\n },\n restoreDefaultValues: function (nodeTag: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n // Backwards compat with older native runtimes, can be removed later.\n if (nativeOps.restoreDefaultValues != null) {\n API.queueOperation(nativeOps.restoreDefaultValues, nodeTag);\n }\n },\n dropAnimatedNode: function (tag: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.dropAnimatedNode, tag);\n },\n addAnimatedEventToView: function (\n viewTag: number,\n eventName: string,\n eventMapping: EventMapping,\n ) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(\n nativeOps.addAnimatedEventToView,\n viewTag,\n eventName,\n eventMapping,\n );\n },\n removeAnimatedEventFromView(\n viewTag: number,\n eventName: string,\n animatedNodeTag: number,\n ) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(\n nativeOps.removeAnimatedEventFromView,\n viewTag,\n eventName,\n animatedNodeTag,\n );\n },\n};\n\nfunction setupGlobalEventEmitterListeners() {\n globalEventEmitterGetValueListener = RCTDeviceEventEmitter.addListener(\n 'onNativeAnimatedModuleGetValue',\n function (params) {\n const {tag} = params;\n const callback = eventListenerGetValueCallbacks[tag];\n if (!callback) {\n return;\n }\n callback(params.value);\n delete eventListenerGetValueCallbacks[tag];\n },\n );\n globalEventEmitterAnimationFinishedListener =\n RCTDeviceEventEmitter.addListener(\n 'onNativeAnimatedModuleAnimationFinished',\n function (params) {\n const {animationId} = params;\n const callback = eventListenerAnimationFinishedCallbacks[animationId];\n if (!callback) {\n return;\n }\n callback(params);\n delete eventListenerAnimationFinishedCallbacks[animationId];\n },\n );\n}\n\n/**\n * Styles allowed by the native animated implementation.\n *\n * In general native animated implementation should support any numeric or color property that\n * doesn't need to be updated through the shadow view hierarchy (all non-layout properties).\n */\nconst SUPPORTED_COLOR_STYLES = {\n backgroundColor: true,\n borderBottomColor: true,\n borderColor: true,\n borderEndColor: true,\n borderLeftColor: true,\n borderRightColor: true,\n borderStartColor: true,\n borderTopColor: true,\n color: true,\n tintColor: true,\n};\n\nconst SUPPORTED_STYLES = {\n ...SUPPORTED_COLOR_STYLES,\n borderBottomEndRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderBottomStartRadius: true,\n borderEndEndRadius: true,\n borderEndStartRadius: true,\n borderRadius: true,\n borderTopEndRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderTopStartRadius: true,\n borderStartEndRadius: true,\n borderStartStartRadius: true,\n elevation: true,\n opacity: true,\n transform: true,\n zIndex: true,\n /* ios styles */\n shadowOpacity: true,\n shadowRadius: true,\n /* legacy android transform properties */\n scaleX: true,\n scaleY: true,\n translateX: true,\n translateY: true,\n};\n\nconst SUPPORTED_TRANSFORMS = {\n translateX: true,\n translateY: true,\n scale: true,\n scaleX: true,\n scaleY: true,\n rotate: true,\n rotateX: true,\n rotateY: true,\n rotateZ: true,\n perspective: true,\n};\n\nconst SUPPORTED_INTERPOLATION_PARAMS = {\n inputRange: true,\n outputRange: true,\n extrapolate: true,\n extrapolateRight: true,\n extrapolateLeft: true,\n};\n\nfunction addWhitelistedStyleProp(prop: string): void {\n // $FlowFixMe[prop-missing]\n SUPPORTED_STYLES[prop] = true;\n}\n\nfunction addWhitelistedTransformProp(prop: string): void {\n // $FlowFixMe[prop-missing]\n SUPPORTED_TRANSFORMS[prop] = true;\n}\n\nfunction addWhitelistedInterpolationParam(param: string): void {\n // $FlowFixMe[prop-missing]\n SUPPORTED_INTERPOLATION_PARAMS[param] = true;\n}\n\nfunction isSupportedColorStyleProp(prop: string): boolean {\n return SUPPORTED_COLOR_STYLES.hasOwnProperty(prop);\n}\n\nfunction isSupportedStyleProp(prop: string): boolean {\n return SUPPORTED_STYLES.hasOwnProperty(prop);\n}\n\nfunction isSupportedTransformProp(prop: string): boolean {\n return SUPPORTED_TRANSFORMS.hasOwnProperty(prop);\n}\n\nfunction isSupportedInterpolationParam(param: string): boolean {\n return SUPPORTED_INTERPOLATION_PARAMS.hasOwnProperty(param);\n}\n\nfunction validateTransform(\n configs: Array<\n | {\n type: 'animated',\n property: string,\n nodeTag: ?number,\n ...\n }\n | {\n type: 'static',\n property: string,\n value: number | string,\n ...\n },\n >,\n): void {\n configs.forEach(config => {\n if (!isSupportedTransformProp(config.property)) {\n throw new Error(\n `Property '${config.property}' is not supported by native animated module`,\n );\n }\n });\n}\n\nfunction validateStyles(styles: {[key: string]: ?number, ...}): void {\n for (const key in styles) {\n if (!isSupportedStyleProp(key)) {\n throw new Error(\n `Style property '${key}' is not supported by native animated module`,\n );\n }\n }\n}\n\nfunction validateInterpolation(\n config: InterpolationConfigType,\n): void {\n for (const key in config) {\n if (!isSupportedInterpolationParam(key)) {\n throw new Error(\n `Interpolation property '${key}' is not supported by native animated module`,\n );\n }\n }\n}\n\nfunction generateNewNodeTag(): number {\n return __nativeAnimatedNodeTagCount++;\n}\n\nfunction generateNewAnimationId(): number {\n return __nativeAnimationIdCount++;\n}\n\nfunction assertNativeAnimatedModule(): void {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n}\n\nlet _warnedMissingNativeAnimated = false;\n\nfunction shouldUseNativeDriver(\n config: $ReadOnly<{...AnimationConfig, ...}> | EventConfig,\n): boolean {\n if (config.useNativeDriver == null) {\n console.warn(\n 'Animated: `useNativeDriver` was not specified. This is a required ' +\n 'option and must be explicitly set to `true` or `false`',\n );\n }\n\n if (config.useNativeDriver === true && !NativeAnimatedModule) {\n if (process.env.NODE_ENV !== 'test') {\n if (!_warnedMissingNativeAnimated) {\n console.warn(\n 'Animated: `useNativeDriver` is not supported because the native ' +\n 'animated module is missing. Falling back to JS-based animation. To ' +\n 'resolve this, add `RCTAnimation` module to this app, or remove ' +\n '`useNativeDriver`. ' +\n 'Make sure to run `bundle exec pod install` first. Read more about autolinking: https://github.com/react-native-community/cli/blob/master/docs/autolinking.md',\n );\n _warnedMissingNativeAnimated = true;\n }\n }\n return false;\n }\n\n return config.useNativeDriver || false;\n}\n\nfunction transformDataType(value: number | string): number | string {\n // Change the string type to number type so we can reuse the same logic in\n // iOS and Android platform\n if (typeof value !== 'string') {\n return value;\n }\n if (/deg$/.test(value)) {\n const degrees = parseFloat(value) || 0;\n const radians = (degrees * Math.PI) / 180.0;\n return radians;\n } else {\n return value;\n }\n}\n\nexport default {\n API,\n isSupportedColorStyleProp,\n isSupportedStyleProp,\n isSupportedTransformProp,\n isSupportedInterpolationParam,\n addWhitelistedStyleProp,\n addWhitelistedTransformProp,\n addWhitelistedInterpolationParam,\n validateStyles,\n validateTransform,\n validateInterpolation,\n generateNewNodeTag,\n generateNewAnimationId,\n assertNativeAnimatedModule,\n shouldUseNativeDriver,\n transformDataType,\n // $FlowExpectedError[unsafe-getters-setters] - unsafe getter lint suppression\n // $FlowExpectedError[missing-type-arg] - unsafe getter lint suppression\n get nativeEventEmitter(): NativeEventEmitter {\n if (!nativeEventEmitter) {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n nativeEventEmitter = new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeAnimatedModule,\n );\n }\n return nativeEventEmitter;\n },\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\ntype EndResult = {finished: boolean, ...};\ntype EndCallback = (result: EndResult) => void;\ntype SaveValueCallback = (value: number) => void;\n\nexport type EventMapping = {|\n nativeEventPath: Array,\n animatedValueTag: ?number,\n|};\n\n// The config has different keys depending on the type of the Node\n// TODO(T54896888): Make these types strict\nexport type AnimatedNodeConfig = Object;\nexport type AnimatingNodeConfig = Object;\n\nexport interface Spec extends TurboModule {\n +startOperationBatch: () => void;\n +finishOperationBatch: () => void;\n +createAnimatedNode: (tag: number, config: AnimatedNodeConfig) => void;\n +updateAnimatedNodeConfig?: (tag: number, config: AnimatedNodeConfig) => void;\n +getValue: (tag: number, saveValueCallback: SaveValueCallback) => void;\n +startListeningToAnimatedNodeValue: (tag: number) => void;\n +stopListeningToAnimatedNodeValue: (tag: number) => void;\n +connectAnimatedNodes: (parentTag: number, childTag: number) => void;\n +disconnectAnimatedNodes: (parentTag: number, childTag: number) => void;\n +startAnimatingNode: (\n animationId: number,\n nodeTag: number,\n config: AnimatingNodeConfig,\n endCallback: EndCallback,\n ) => void;\n +stopAnimation: (animationId: number) => void;\n +setAnimatedNodeValue: (nodeTag: number, value: number) => void;\n +setAnimatedNodeOffset: (nodeTag: number, offset: number) => void;\n +flattenAnimatedNodeOffset: (nodeTag: number) => void;\n +extractAnimatedNodeOffset: (nodeTag: number) => void;\n +connectAnimatedNodeToView: (nodeTag: number, viewTag: number) => void;\n +disconnectAnimatedNodeFromView: (nodeTag: number, viewTag: number) => void;\n +restoreDefaultValues: (nodeTag: number) => void;\n +dropAnimatedNode: (tag: number) => void;\n +addAnimatedEventToView: (\n viewTag: number,\n eventName: string,\n eventMapping: EventMapping,\n ) => void;\n +removeAnimatedEventFromView: (\n viewTag: number,\n eventName: string,\n animatedNodeTag: number,\n ) => void;\n\n // Events\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n\n // All of the above in a batched mode\n +queueAndExecuteBatchedOperations?: (operationsAndArgs: Array) => void;\n}\n\nexport default (TurboModuleRegistry.get('NativeAnimatedModule'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\ntype EndResult = {finished: boolean, ...};\ntype EndCallback = (result: EndResult) => void;\ntype SaveValueCallback = (value: number) => void;\n\nexport type EventMapping = {|\n nativeEventPath: Array,\n animatedValueTag: ?number,\n|};\n\n// The config has different keys depending on the type of the Node\n// TODO(T54896888): Make these types strict\nexport type AnimatedNodeConfig = Object;\nexport type AnimatingNodeConfig = Object;\n\nexport interface Spec extends TurboModule {\n +startOperationBatch: () => void;\n +finishOperationBatch: () => void;\n +createAnimatedNode: (tag: number, config: AnimatedNodeConfig) => void;\n +updateAnimatedNodeConfig?: (tag: number, config: AnimatedNodeConfig) => void;\n +getValue: (tag: number, saveValueCallback: SaveValueCallback) => void;\n +startListeningToAnimatedNodeValue: (tag: number) => void;\n +stopListeningToAnimatedNodeValue: (tag: number) => void;\n +connectAnimatedNodes: (parentTag: number, childTag: number) => void;\n +disconnectAnimatedNodes: (parentTag: number, childTag: number) => void;\n +startAnimatingNode: (\n animationId: number,\n nodeTag: number,\n config: AnimatingNodeConfig,\n endCallback: EndCallback,\n ) => void;\n +stopAnimation: (animationId: number) => void;\n +setAnimatedNodeValue: (nodeTag: number, value: number) => void;\n +setAnimatedNodeOffset: (nodeTag: number, offset: number) => void;\n +flattenAnimatedNodeOffset: (nodeTag: number) => void;\n +extractAnimatedNodeOffset: (nodeTag: number) => void;\n +connectAnimatedNodeToView: (nodeTag: number, viewTag: number) => void;\n +disconnectAnimatedNodeFromView: (nodeTag: number, viewTag: number) => void;\n +restoreDefaultValues: (nodeTag: number) => void;\n +dropAnimatedNode: (tag: number) => void;\n +addAnimatedEventToView: (\n viewTag: number,\n eventName: string,\n eventMapping: EventMapping,\n ) => void;\n +removeAnimatedEventFromView: (\n viewTag: number,\n eventName: string,\n animatedNodeTag: number,\n ) => void;\n\n // Events\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n\n // All of the above in a batched mode\n +queueAndExecuteBatchedOperations?: (operationsAndArgs: Array) => void;\n}\n\nexport default (TurboModuleRegistry.get(\n 'NativeAnimatedTurboModule',\n): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type AnimatedValue from '../nodes/AnimatedValue';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\n\nexport type EndResult = {finished: boolean, ...};\nexport type EndCallback = (result: EndResult) => void;\n\nexport type AnimationConfig = {\n isInteraction?: boolean,\n useNativeDriver: boolean,\n platformConfig?: PlatformConfig,\n onComplete?: ?EndCallback,\n iterations?: number,\n};\n\nlet startNativeAnimationNextId = 1;\n\n// Important note: start() and stop() will only be called at most once.\n// Once an animation has been stopped or finished its course, it will\n// not be reused.\nexport default class Animation {\n __active: boolean;\n __isInteraction: boolean;\n __nativeId: number;\n __onEnd: ?EndCallback;\n __iterations: number;\n start(\n fromValue: number,\n onUpdate: (value: number) => void,\n onEnd: ?EndCallback,\n previousAnimation: ?Animation,\n animatedValue: AnimatedValue,\n ): void {}\n stop(): void {\n if (this.__nativeId) {\n NativeAnimatedHelper.API.stopAnimation(this.__nativeId);\n }\n }\n __getNativeAnimationConfig(): any {\n // Subclasses that have corresponding animation implementation done in native\n // should override this method\n throw new Error('This animation type cannot be offloaded to native');\n }\n // Helper function for subclasses to make sure onEnd is only called once.\n __debouncedOnEnd(result: EndResult): void {\n const onEnd = this.__onEnd;\n this.__onEnd = null;\n onEnd && onEnd(result);\n }\n __startNativeAnimation(animatedValue: AnimatedValue): void {\n const startNativeAnimationWaitId = `${startNativeAnimationNextId}:startAnimation`;\n startNativeAnimationNextId += 1;\n NativeAnimatedHelper.API.setWaitingForIdentifier(\n startNativeAnimationWaitId,\n );\n try {\n const config = this.__getNativeAnimationConfig();\n animatedValue.__makeNative(config.platformConfig);\n this.__nativeId = NativeAnimatedHelper.generateNewAnimationId();\n NativeAnimatedHelper.API.startAnimatingNode(\n this.__nativeId,\n animatedValue.__getNativeTag(),\n config,\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.__debouncedOnEnd.bind(this),\n );\n } catch (e) {\n throw e;\n } finally {\n NativeAnimatedHelper.API.unsetWaitingForIdentifier(\n startNativeAnimationWaitId,\n );\n }\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type AnimatedInterpolation from '../nodes/AnimatedInterpolation';\nimport type AnimatedValue from '../nodes/AnimatedValue';\nimport type AnimatedValueXY from '../nodes/AnimatedValueXY';\nimport type {AnimationConfig, EndCallback} from './Animation';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedColor from '../nodes/AnimatedColor';\nimport * as SpringConfig from '../SpringConfig';\nimport Animation from './Animation';\nimport invariant from 'invariant';\n\nexport type SpringAnimationConfig = {\n ...AnimationConfig,\n toValue:\n | number\n | AnimatedValue\n | {\n x: number,\n y: number,\n ...\n }\n | AnimatedValueXY\n | {\n r: number,\n g: number,\n b: number,\n a: number,\n ...\n }\n | AnimatedColor\n | AnimatedInterpolation,\n overshootClamping?: boolean,\n restDisplacementThreshold?: number,\n restSpeedThreshold?: number,\n velocity?:\n | number\n | {\n x: number,\n y: number,\n ...\n },\n bounciness?: number,\n speed?: number,\n tension?: number,\n friction?: number,\n stiffness?: number,\n damping?: number,\n mass?: number,\n delay?: number,\n};\n\nexport type SpringAnimationConfigSingle = {\n ...AnimationConfig,\n toValue: number,\n overshootClamping?: boolean,\n restDisplacementThreshold?: number,\n restSpeedThreshold?: number,\n velocity?: number,\n bounciness?: number,\n speed?: number,\n tension?: number,\n friction?: number,\n stiffness?: number,\n damping?: number,\n mass?: number,\n delay?: number,\n};\n\nexport default class SpringAnimation extends Animation {\n _overshootClamping: boolean;\n _restDisplacementThreshold: number;\n _restSpeedThreshold: number;\n _lastVelocity: number;\n _startPosition: number;\n _lastPosition: number;\n _fromValue: number;\n _toValue: number;\n _stiffness: number;\n _damping: number;\n _mass: number;\n _initialVelocity: number;\n _delay: number;\n _timeout: any;\n _startTime: number;\n _lastTime: number;\n _frameTime: number;\n _onUpdate: (value: number) => void;\n _animationFrame: any;\n _useNativeDriver: boolean;\n _platformConfig: ?PlatformConfig;\n\n constructor(config: SpringAnimationConfigSingle) {\n super();\n\n this._overshootClamping = config.overshootClamping ?? false;\n this._restDisplacementThreshold = config.restDisplacementThreshold ?? 0.001;\n this._restSpeedThreshold = config.restSpeedThreshold ?? 0.001;\n this._initialVelocity = config.velocity ?? 0;\n this._lastVelocity = config.velocity ?? 0;\n this._toValue = config.toValue;\n this._delay = config.delay ?? 0;\n this._useNativeDriver = NativeAnimatedHelper.shouldUseNativeDriver(config);\n this._platformConfig = config.platformConfig;\n this.__isInteraction = config.isInteraction ?? !this._useNativeDriver;\n this.__iterations = config.iterations ?? 1;\n\n if (\n config.stiffness !== undefined ||\n config.damping !== undefined ||\n config.mass !== undefined\n ) {\n invariant(\n config.bounciness === undefined &&\n config.speed === undefined &&\n config.tension === undefined &&\n config.friction === undefined,\n 'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one',\n );\n this._stiffness = config.stiffness ?? 100;\n this._damping = config.damping ?? 10;\n this._mass = config.mass ?? 1;\n } else if (config.bounciness !== undefined || config.speed !== undefined) {\n // Convert the origami bounciness/speed values to stiffness/damping\n // We assume mass is 1.\n invariant(\n config.tension === undefined &&\n config.friction === undefined &&\n config.stiffness === undefined &&\n config.damping === undefined &&\n config.mass === undefined,\n 'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one',\n );\n const springConfig = SpringConfig.fromBouncinessAndSpeed(\n config.bounciness ?? 8,\n config.speed ?? 12,\n );\n this._stiffness = springConfig.stiffness;\n this._damping = springConfig.damping;\n this._mass = 1;\n } else {\n // Convert the origami tension/friction values to stiffness/damping\n // We assume mass is 1.\n const springConfig = SpringConfig.fromOrigamiTensionAndFriction(\n config.tension ?? 40,\n config.friction ?? 7,\n );\n this._stiffness = springConfig.stiffness;\n this._damping = springConfig.damping;\n this._mass = 1;\n }\n\n invariant(this._stiffness > 0, 'Stiffness value must be greater than 0');\n invariant(this._damping > 0, 'Damping value must be greater than 0');\n invariant(this._mass > 0, 'Mass value must be greater than 0');\n }\n\n __getNativeAnimationConfig(): {|\n damping: number,\n initialVelocity: number,\n iterations: number,\n mass: number,\n platformConfig: ?PlatformConfig,\n overshootClamping: boolean,\n restDisplacementThreshold: number,\n restSpeedThreshold: number,\n stiffness: number,\n toValue: any,\n type: $TEMPORARY$string<'spring'>,\n |} {\n return {\n type: 'spring',\n overshootClamping: this._overshootClamping,\n restDisplacementThreshold: this._restDisplacementThreshold,\n restSpeedThreshold: this._restSpeedThreshold,\n stiffness: this._stiffness,\n damping: this._damping,\n mass: this._mass,\n initialVelocity: this._initialVelocity ?? this._lastVelocity,\n toValue: this._toValue,\n iterations: this.__iterations,\n platformConfig: this._platformConfig,\n };\n }\n\n start(\n fromValue: number,\n onUpdate: (value: number) => void,\n onEnd: ?EndCallback,\n previousAnimation: ?Animation,\n animatedValue: AnimatedValue,\n ): void {\n this.__active = true;\n this._startPosition = fromValue;\n this._lastPosition = this._startPosition;\n\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n this._lastTime = Date.now();\n this._frameTime = 0.0;\n\n if (previousAnimation instanceof SpringAnimation) {\n const internalState = previousAnimation.getInternalState();\n this._lastPosition = internalState.lastPosition;\n this._lastVelocity = internalState.lastVelocity;\n // Set the initial velocity to the last velocity\n this._initialVelocity = this._lastVelocity;\n this._lastTime = internalState.lastTime;\n }\n\n const start = () => {\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n this.onUpdate();\n }\n };\n\n // If this._delay is more than 0, we start after the timeout.\n if (this._delay) {\n this._timeout = setTimeout(start, this._delay);\n } else {\n start();\n }\n }\n\n getInternalState(): Object {\n return {\n lastPosition: this._lastPosition,\n lastVelocity: this._lastVelocity,\n lastTime: this._lastTime,\n };\n }\n\n /**\n * This spring model is based off of a damped harmonic oscillator\n * (https://en.wikipedia.org/wiki/Harmonic_oscillator#Damped_harmonic_oscillator).\n *\n * We use the closed form of the second order differential equation:\n *\n * x'' + (2΢⍡_0)x' + ⍡^2x = 0\n *\n * where\n * ⍡_0 = √(k / m) (undamped angular frequency of the oscillator),\n * ΞΆ = c / 2√mk (damping ratio),\n * c = damping constant\n * k = stiffness\n * m = mass\n *\n * The derivation of the closed form is described in detail here:\n * http://planetmath.org/sites/default/files/texpdf/39745.pdf\n *\n * This algorithm happens to match the algorithm used by CASpringAnimation,\n * a QuartzCore (iOS) API that creates spring animations.\n */\n onUpdate(): void {\n // If for some reason we lost a lot of frames (e.g. process large payload or\n // stopped in the debugger), we only advance by 4 frames worth of\n // computation and will continue on the next frame. It's better to have it\n // running at faster speed than jumping to the end.\n const MAX_STEPS = 64;\n let now = Date.now();\n if (now > this._lastTime + MAX_STEPS) {\n now = this._lastTime + MAX_STEPS;\n }\n\n const deltaTime = (now - this._lastTime) / 1000;\n this._frameTime += deltaTime;\n\n const c: number = this._damping;\n const m: number = this._mass;\n const k: number = this._stiffness;\n const v0: number = -this._initialVelocity;\n\n const zeta = c / (2 * Math.sqrt(k * m)); // damping ratio\n const omega0 = Math.sqrt(k / m); // undamped angular frequency of the oscillator (rad/ms)\n const omega1 = omega0 * Math.sqrt(1.0 - zeta * zeta); // exponential decay\n const x0 = this._toValue - this._startPosition; // calculate the oscillation from x0 = 1 to x = 0\n\n let position = 0.0;\n let velocity = 0.0;\n const t = this._frameTime;\n if (zeta < 1) {\n // Under damped\n const envelope = Math.exp(-zeta * omega0 * t);\n position =\n this._toValue -\n envelope *\n (((v0 + zeta * omega0 * x0) / omega1) * Math.sin(omega1 * t) +\n x0 * Math.cos(omega1 * t));\n // This looks crazy -- it's actually just the derivative of the\n // oscillation function\n velocity =\n zeta *\n omega0 *\n envelope *\n ((Math.sin(omega1 * t) * (v0 + zeta * omega0 * x0)) / omega1 +\n x0 * Math.cos(omega1 * t)) -\n envelope *\n (Math.cos(omega1 * t) * (v0 + zeta * omega0 * x0) -\n omega1 * x0 * Math.sin(omega1 * t));\n } else {\n // Critically damped\n const envelope = Math.exp(-omega0 * t);\n position = this._toValue - envelope * (x0 + (v0 + omega0 * x0) * t);\n velocity =\n envelope * (v0 * (t * omega0 - 1) + t * x0 * (omega0 * omega0));\n }\n\n this._lastTime = now;\n this._lastPosition = position;\n this._lastVelocity = velocity;\n\n this._onUpdate(position);\n if (!this.__active) {\n // a listener might have stopped us in _onUpdate\n return;\n }\n\n // Conditions for stopping the spring animation\n let isOvershooting = false;\n if (this._overshootClamping && this._stiffness !== 0) {\n if (this._startPosition < this._toValue) {\n isOvershooting = position > this._toValue;\n } else {\n isOvershooting = position < this._toValue;\n }\n }\n const isVelocity = Math.abs(velocity) <= this._restSpeedThreshold;\n let isDisplacement = true;\n if (this._stiffness !== 0) {\n isDisplacement =\n Math.abs(this._toValue - position) <= this._restDisplacementThreshold;\n }\n\n if (isOvershooting || (isVelocity && isDisplacement)) {\n if (this._stiffness !== 0) {\n // Ensure that we end up with a round value\n this._lastPosition = this._toValue;\n this._lastVelocity = 0;\n this._onUpdate(this._toValue);\n }\n\n this.__debouncedOnEnd({finished: true});\n return;\n }\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n\n stop(): void {\n super.stop();\n this.__active = false;\n clearTimeout(this._timeout);\n global.cancelAnimationFrame(this._animationFrame);\n this.__debouncedOnEnd({finished: false});\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {NativeColorValue} from '../../StyleSheet/PlatformColorValueTypes';\nimport type {ProcessedColorValue} from '../../StyleSheet/processColor';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport normalizeColor from '../../StyleSheet/normalizeColor';\nimport {processColorObject} from '../../StyleSheet/PlatformColorValueTypes';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedValue, {flushValue} from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport type AnimatedColorConfig = $ReadOnly<{\n useNativeDriver: boolean,\n}>;\n\ntype ColorListenerCallback = (value: ColorValue) => mixed;\n\nexport type RgbaValue = {\n +r: number,\n +g: number,\n +b: number,\n +a: number,\n ...\n};\n\ntype RgbaAnimatedValue = {\n +r: AnimatedValue,\n +g: AnimatedValue,\n +b: AnimatedValue,\n +a: AnimatedValue,\n ...\n};\n\nexport type InputValue = ?(RgbaValue | RgbaAnimatedValue | ColorValue);\n\nconst NativeAnimatedAPI = NativeAnimatedHelper.API;\n\nconst defaultColor: RgbaValue = {r: 0, g: 0, b: 0, a: 1.0};\n\n/* eslint no-bitwise: 0 */\nfunction processColor(\n color?: ?(ColorValue | RgbaValue),\n): ?(RgbaValue | NativeColorValue) {\n if (color === undefined || color === null) {\n return null;\n }\n\n if (isRgbaValue(color)) {\n // $FlowIgnore[incompatible-cast] - Type is verified above\n return (color: RgbaValue);\n }\n\n let normalizedColor: ?ProcessedColorValue = normalizeColor(\n // $FlowIgnore[incompatible-cast] - Type is verified above\n (color: ColorValue),\n );\n if (normalizedColor === undefined || normalizedColor === null) {\n return null;\n }\n\n if (typeof normalizedColor === 'object') {\n const processedColorObj: ?NativeColorValue =\n processColorObject(normalizedColor);\n if (processedColorObj != null) {\n return processedColorObj;\n }\n } else if (typeof normalizedColor === 'number') {\n const r: number = (normalizedColor & 0xff000000) >>> 24;\n const g: number = (normalizedColor & 0x00ff0000) >>> 16;\n const b: number = (normalizedColor & 0x0000ff00) >>> 8;\n const a: number = (normalizedColor & 0x000000ff) / 255;\n\n return {r, g, b, a};\n }\n\n return null;\n}\n\nfunction isRgbaValue(value: any): boolean {\n return (\n value &&\n typeof value.r === 'number' &&\n typeof value.g === 'number' &&\n typeof value.b === 'number' &&\n typeof value.a === 'number'\n );\n}\n\nfunction isRgbaAnimatedValue(value: any): boolean {\n return (\n value &&\n value.r instanceof AnimatedValue &&\n value.g instanceof AnimatedValue &&\n value.b instanceof AnimatedValue &&\n value.a instanceof AnimatedValue\n );\n}\n\nexport default class AnimatedColor extends AnimatedWithChildren {\n r: AnimatedValue;\n g: AnimatedValue;\n b: AnimatedValue;\n a: AnimatedValue;\n nativeColor: ?NativeColorValue;\n\n _suspendCallbacks: number = 0;\n\n constructor(valueIn?: InputValue, config?: ?AnimatedColorConfig) {\n super();\n\n let value: RgbaValue | RgbaAnimatedValue | ColorValue =\n valueIn ?? defaultColor;\n if (isRgbaAnimatedValue(value)) {\n // $FlowIgnore[incompatible-cast] - Type is verified above\n const rgbaAnimatedValue: RgbaAnimatedValue = (value: RgbaAnimatedValue);\n this.r = rgbaAnimatedValue.r;\n this.g = rgbaAnimatedValue.g;\n this.b = rgbaAnimatedValue.b;\n this.a = rgbaAnimatedValue.a;\n } else {\n const processedColor: RgbaValue | NativeColorValue =\n // $FlowIgnore[incompatible-cast] - Type is verified above\n processColor((value: ColorValue | RgbaValue)) ?? defaultColor;\n let initColor: RgbaValue = defaultColor;\n if (isRgbaValue(processedColor)) {\n // $FlowIgnore[incompatible-cast] - Type is verified above\n initColor = (processedColor: RgbaValue);\n } else {\n // $FlowIgnore[incompatible-cast] - Type is verified above\n this.nativeColor = (processedColor: NativeColorValue);\n }\n\n this.r = new AnimatedValue(initColor.r);\n this.g = new AnimatedValue(initColor.g);\n this.b = new AnimatedValue(initColor.b);\n this.a = new AnimatedValue(initColor.a);\n }\n\n if (config?.useNativeDriver) {\n this.__makeNative();\n }\n }\n\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n */\n setValue(value: RgbaValue | ColorValue): void {\n let shouldUpdateNodeConfig = false;\n if (this.__isNative) {\n const nativeTag = this.__getNativeTag();\n NativeAnimatedAPI.setWaitingForIdentifier(nativeTag.toString());\n }\n\n const processedColor: RgbaValue | NativeColorValue =\n processColor(value) ?? defaultColor;\n this._withSuspendedCallbacks(() => {\n if (isRgbaValue(processedColor)) {\n // $FlowIgnore[incompatible-type] - Type is verified above\n const rgbaValue: RgbaValue = processedColor;\n this.r.setValue(rgbaValue.r);\n this.g.setValue(rgbaValue.g);\n this.b.setValue(rgbaValue.b);\n this.a.setValue(rgbaValue.a);\n if (this.nativeColor != null) {\n this.nativeColor = null;\n shouldUpdateNodeConfig = true;\n }\n } else {\n // $FlowIgnore[incompatible-type] - Type is verified above\n const nativeColor: NativeColorValue = processedColor;\n if (this.nativeColor !== nativeColor) {\n this.nativeColor = nativeColor;\n shouldUpdateNodeConfig = true;\n }\n }\n });\n\n if (this.__isNative) {\n const nativeTag = this.__getNativeTag();\n if (shouldUpdateNodeConfig) {\n NativeAnimatedAPI.updateAnimatedNodeConfig(\n nativeTag,\n this.__getNativeConfig(),\n );\n }\n NativeAnimatedAPI.unsetWaitingForIdentifier(nativeTag.toString());\n } else {\n flushValue(this);\n }\n\n // $FlowFixMe[incompatible-call]\n this.__callListeners(this.__getValue());\n }\n\n /**\n * Sets an offset that is applied on top of whatever value is set, whether\n * via `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n */\n setOffset(offset: RgbaValue): void {\n this.r.setOffset(offset.r);\n this.g.setOffset(offset.g);\n this.b.setOffset(offset.b);\n this.a.setOffset(offset.a);\n }\n\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n */\n flattenOffset(): void {\n this.r.flattenOffset();\n this.g.flattenOffset();\n this.b.flattenOffset();\n this.a.flattenOffset();\n }\n\n /**\n * Sets the offset value to the base value, and resets the base value to\n * zero. The final output of the value is unchanged.\n */\n extractOffset(): void {\n this.r.extractOffset();\n this.g.extractOffset();\n this.b.extractOffset();\n this.a.extractOffset();\n }\n\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n */\n stopAnimation(callback?: ColorListenerCallback): void {\n this.r.stopAnimation();\n this.g.stopAnimation();\n this.b.stopAnimation();\n this.a.stopAnimation();\n callback && callback(this.__getValue());\n }\n\n /**\n * Stops any animation and resets the value to its original.\n */\n resetAnimation(callback?: ColorListenerCallback): void {\n this.r.resetAnimation();\n this.g.resetAnimation();\n this.b.resetAnimation();\n this.a.resetAnimation();\n callback && callback(this.__getValue());\n }\n\n __getValue(): ColorValue {\n if (this.nativeColor != null) {\n return this.nativeColor;\n } else {\n return `rgba(${this.r.__getValue()}, ${this.g.__getValue()}, ${this.b.__getValue()}, ${this.a.__getValue()})`;\n }\n }\n\n __attach(): void {\n this.r.__addChild(this);\n this.g.__addChild(this);\n this.b.__addChild(this);\n this.a.__addChild(this);\n super.__attach();\n }\n\n __detach(): void {\n this.r.__removeChild(this);\n this.g.__removeChild(this);\n this.b.__removeChild(this);\n this.a.__removeChild(this);\n super.__detach();\n }\n\n _withSuspendedCallbacks(callback: () => void) {\n this._suspendCallbacks++;\n callback();\n this._suspendCallbacks--;\n }\n\n __callListeners(value: number): void {\n if (this._suspendCallbacks === 0) {\n super.__callListeners(value);\n }\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this.r.__makeNative(platformConfig);\n this.g.__makeNative(platformConfig);\n this.b.__makeNative(platformConfig);\n this.a.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getNativeConfig(): {...} {\n return {\n type: 'color',\n r: this.r.__getNativeTag(),\n g: this.g.__getNativeTag(),\n b: this.b.__getNativeTag(),\n a: this.a.__getNativeTag(),\n nativeColor: this.nativeColor,\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type Animation, {EndCallback} from '../animations/Animation';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\nimport type AnimatedNode from './AnimatedNode';\nimport type AnimatedTracking from './AnimatedTracking';\n\nimport InteractionManager from '../../Interaction/InteractionManager';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport type AnimatedValueConfig = $ReadOnly<{\n useNativeDriver: boolean,\n}>;\n\nconst NativeAnimatedAPI = NativeAnimatedHelper.API;\n\n/**\n * Animated works by building a directed acyclic graph of dependencies\n * transparently when you render your Animated components.\n *\n * new Animated.Value(0)\n * .interpolate() .interpolate() new Animated.Value(1)\n * opacity translateY scale\n * style transform\n * View#234 style\n * View#123\n *\n * A) Top Down phase\n * When an Animated.Value is updated, we recursively go down through this\n * graph in order to find leaf nodes: the views that we flag as needing\n * an update.\n *\n * B) Bottom Up phase\n * When a view is flagged as needing an update, we recursively go back up\n * in order to build the new value that it needs. The reason why we need\n * this two-phases process is to deal with composite props such as\n * transform which can receive values from multiple parents.\n */\nexport function flushValue(rootNode: AnimatedNode): void {\n const leaves = new Set<{update: () => void, ...}>();\n function findAnimatedStyles(node: AnimatedNode) {\n // $FlowFixMe[prop-missing]\n if (typeof node.update === 'function') {\n leaves.add((node: any));\n } else {\n node.__getChildren().forEach(findAnimatedStyles);\n }\n }\n findAnimatedStyles(rootNode);\n leaves.forEach(leaf => leaf.update());\n}\n\n/**\n * Some operations are executed only on batch end, which is _mostly_ scheduled when\n * Animated component props change. For some of the changes which require immediate execution\n * (e.g. setValue), we create a separate batch in case none is scheduled.\n */\nfunction _executeAsAnimatedBatch(id: string, operation: () => void) {\n NativeAnimatedAPI.setWaitingForIdentifier(id);\n operation();\n NativeAnimatedAPI.unsetWaitingForIdentifier(id);\n}\n\n/**\n * Standard value for driving animations. One `Animated.Value` can drive\n * multiple properties in a synchronized fashion, but can only be driven by one\n * mechanism at a time. Using a new mechanism (e.g. starting a new animation,\n * or calling `setValue`) will stop any previous ones.\n *\n * See https://reactnative.dev/docs/animatedvalue\n */\nexport default class AnimatedValue extends AnimatedWithChildren {\n _value: number;\n _startingValue: number;\n _offset: number;\n _animation: ?Animation;\n _tracking: ?AnimatedTracking;\n\n constructor(value: number, config?: ?AnimatedValueConfig) {\n super();\n if (typeof value !== 'number') {\n throw new Error('AnimatedValue: Attempting to set value to undefined');\n }\n this._startingValue = this._value = value;\n this._offset = 0;\n this._animation = null;\n if (config && config.useNativeDriver) {\n this.__makeNative();\n }\n }\n\n __detach() {\n if (this.__isNative) {\n NativeAnimatedAPI.getValue(this.__getNativeTag(), value => {\n this._value = value - this._offset;\n });\n }\n this.stopAnimation();\n super.__detach();\n }\n\n __getValue(): number {\n return this._value + this._offset;\n }\n\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n *\n * See https://reactnative.dev/docs/animatedvalue#setvalue\n */\n setValue(value: number): void {\n if (this._animation) {\n this._animation.stop();\n this._animation = null;\n }\n this._updateValue(\n value,\n !this.__isNative /* don't perform a flush for natively driven values */,\n );\n if (this.__isNative) {\n _executeAsAnimatedBatch(this.__getNativeTag().toString(), () =>\n NativeAnimatedAPI.setAnimatedNodeValue(this.__getNativeTag(), value),\n );\n }\n }\n\n /**\n * Sets an offset that is applied on top of whatever value is set, whether via\n * `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n *\n * See https://reactnative.dev/docs/animatedvalue#setoffset\n */\n setOffset(offset: number): void {\n this._offset = offset;\n if (this.__isNative) {\n NativeAnimatedAPI.setAnimatedNodeOffset(this.__getNativeTag(), offset);\n }\n }\n\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvalue#flattenoffset\n */\n flattenOffset(): void {\n this._value += this._offset;\n this._offset = 0;\n if (this.__isNative) {\n NativeAnimatedAPI.flattenAnimatedNodeOffset(this.__getNativeTag());\n }\n }\n\n /**\n * Sets the offset value to the base value, and resets the base value to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvalue#extractoffset\n */\n extractOffset(): void {\n this._offset += this._value;\n this._value = 0;\n if (this.__isNative) {\n NativeAnimatedAPI.extractAnimatedNodeOffset(this.__getNativeTag());\n }\n }\n\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n *\n * See https://reactnative.dev/docs/animatedvalue#stopanimation\n */\n stopAnimation(callback?: ?(value: number) => void): void {\n this.stopTracking();\n this._animation && this._animation.stop();\n this._animation = null;\n if (callback) {\n if (this.__isNative) {\n NativeAnimatedAPI.getValue(this.__getNativeTag(), callback);\n } else {\n callback(this.__getValue());\n }\n }\n }\n\n /**\n * Stops any animation and resets the value to its original.\n *\n * See https://reactnative.dev/docs/animatedvalue#resetanimation\n */\n resetAnimation(callback?: ?(value: number) => void): void {\n this.stopAnimation(callback);\n this._value = this._startingValue;\n if (this.__isNative) {\n NativeAnimatedAPI.setAnimatedNodeValue(\n this.__getNativeTag(),\n this._startingValue,\n );\n }\n }\n\n __onAnimatedValueUpdateReceived(value: number): void {\n this._updateValue(value, false /*flush*/);\n }\n\n /**\n * Interpolates the value before updating the property, e.g. mapping 0-1 to\n * 0-10.\n */\n interpolate(\n config: InterpolationConfigType,\n ): AnimatedInterpolation {\n return new AnimatedInterpolation(this, config);\n }\n\n /**\n * Typically only used internally, but could be used by a custom Animation\n * class.\n *\n * See https://reactnative.dev/docs/animatedvalue#animate\n */\n animate(animation: Animation, callback: ?EndCallback): void {\n let handle = null;\n if (animation.__isInteraction) {\n handle = InteractionManager.createInteractionHandle();\n }\n const previousAnimation = this._animation;\n this._animation && this._animation.stop();\n this._animation = animation;\n animation.start(\n this._value,\n value => {\n // Natively driven animations will never call into that callback, therefore we can always\n // pass flush = true to allow the updated value to propagate to native with setNativeProps\n this._updateValue(value, true /* flush */);\n },\n result => {\n this._animation = null;\n if (handle !== null) {\n InteractionManager.clearInteractionHandle(handle);\n }\n callback && callback(result);\n },\n previousAnimation,\n this,\n );\n }\n\n /**\n * Typically only used internally.\n */\n stopTracking(): void {\n this._tracking && this._tracking.__detach();\n this._tracking = null;\n }\n\n /**\n * Typically only used internally.\n */\n track(tracking: AnimatedTracking): void {\n this.stopTracking();\n this._tracking = tracking;\n // Make sure that the tracking animation starts executing\n this._tracking && this._tracking.update();\n }\n\n _updateValue(value: number, flush: boolean): void {\n if (value === undefined) {\n throw new Error('AnimatedValue: Attempting to set value to undefined');\n }\n\n this._value = value;\n if (flush) {\n flushValue(this);\n }\n this.__callListeners(this.__getValue());\n }\n\n __getNativeConfig(): Object {\n return {\n type: 'value',\n value: this._value,\n offset: this._offset,\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {Task} from './TaskQueue';\n\nimport EventEmitter from '../vendor/emitter/EventEmitter';\n\nconst BatchedBridge = require('../BatchedBridge/BatchedBridge');\nconst infoLog = require('../Utilities/infoLog');\nconst TaskQueue = require('./TaskQueue');\nconst invariant = require('invariant');\n\nexport type Handle = number;\n\nconst _emitter = new EventEmitter<{\n interactionComplete: [],\n interactionStart: [],\n}>();\n\nconst DEBUG_DELAY: 0 = 0;\nconst DEBUG: false = false;\n\n/**\n * InteractionManager allows long-running work to be scheduled after any\n * interactions/animations have completed. In particular, this allows JavaScript\n * animations to run smoothly.\n *\n * Applications can schedule tasks to run after interactions with the following:\n *\n * ```\n * InteractionManager.runAfterInteractions(() => {\n * // ...long-running synchronous task...\n * });\n * ```\n *\n * Compare this to other scheduling alternatives:\n *\n * - requestAnimationFrame(): for code that animates a view over time.\n * - setImmediate/setTimeout(): run code later, note this may delay animations.\n * - runAfterInteractions(): run code later, without delaying active animations.\n *\n * The touch handling system considers one or more active touches to be an\n * 'interaction' and will delay `runAfterInteractions()` callbacks until all\n * touches have ended or been cancelled.\n *\n * InteractionManager also allows applications to register animations by\n * creating an interaction 'handle' on animation start, and clearing it upon\n * completion:\n *\n * ```\n * var handle = InteractionManager.createInteractionHandle();\n * // run animation... (`runAfterInteractions` tasks are queued)\n * // later, on animation completion:\n * InteractionManager.clearInteractionHandle(handle);\n * // queued tasks run if all handles were cleared\n * ```\n *\n * `runAfterInteractions` takes either a plain callback function, or a\n * `PromiseTask` object with a `gen` method that returns a `Promise`. If a\n * `PromiseTask` is supplied, then it is fully resolved (including asynchronous\n * dependencies that also schedule more tasks via `runAfterInteractions`) before\n * starting on the next task that might have been queued up synchronously\n * earlier.\n *\n * By default, queued tasks are executed together in a loop in one\n * `setImmediate` batch. If `setDeadline` is called with a positive number, then\n * tasks will only be executed until the deadline (in terms of js event loop run\n * time) approaches, at which point execution will yield via setTimeout,\n * allowing events such as touches to start interactions and block queued tasks\n * from executing, making apps more responsive.\n */\nconst InteractionManager = {\n Events: {\n interactionStart: 'interactionStart',\n interactionComplete: 'interactionComplete',\n },\n\n /**\n * Schedule a function to run after all interactions have completed. Returns a cancellable\n * \"promise\".\n */\n runAfterInteractions(task: ?Task): {\n then: (\n onFulfill?: ?(void) => ?(Promise | U),\n onReject?: ?(error: mixed) => ?(Promise | U),\n ) => Promise,\n cancel: () => void,\n ...\n } {\n const tasks: Array = [];\n const promise = new Promise((resolve: () => void) => {\n _scheduleUpdate();\n if (task) {\n tasks.push(task);\n }\n tasks.push({\n run: resolve,\n name: 'resolve ' + ((task && task.name) || '?'),\n });\n _taskQueue.enqueueTasks(tasks);\n });\n return {\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n then: promise.then.bind(promise),\n cancel: function () {\n _taskQueue.cancelTasks(tasks);\n },\n };\n },\n\n /**\n * Notify manager that an interaction has started.\n */\n createInteractionHandle(): Handle {\n DEBUG && infoLog('InteractionManager: create interaction handle');\n _scheduleUpdate();\n const handle = ++_inc;\n _addInteractionSet.add(handle);\n return handle;\n },\n\n /**\n * Notify manager that an interaction has completed.\n */\n clearInteractionHandle(handle: Handle) {\n DEBUG && infoLog('InteractionManager: clear interaction handle');\n invariant(!!handle, 'InteractionManager: Must provide a handle to clear.');\n _scheduleUpdate();\n _addInteractionSet.delete(handle);\n _deleteInteractionSet.add(handle);\n },\n\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n addListener: (_emitter.addListener.bind(_emitter): $FlowFixMe),\n\n /**\n * A positive number will use setTimeout to schedule any tasks after the\n * eventLoopRunningTime hits the deadline value, otherwise all tasks will be\n * executed in one setImmediate batch (default).\n */\n setDeadline(deadline: number) {\n _deadline = deadline;\n },\n};\n\nconst _interactionSet = new Set();\nconst _addInteractionSet = new Set();\nconst _deleteInteractionSet = new Set();\nconst _taskQueue = new TaskQueue({onMoreTasks: _scheduleUpdate});\nlet _nextUpdateHandle: $FlowFixMe | TimeoutID = 0;\nlet _inc = 0;\nlet _deadline = -1;\n\n/**\n * Schedule an asynchronous update to the interaction state.\n */\nfunction _scheduleUpdate() {\n if (!_nextUpdateHandle) {\n if (_deadline > 0) {\n _nextUpdateHandle = setTimeout(_processUpdate, 0 + DEBUG_DELAY);\n } else {\n _nextUpdateHandle = setImmediate(_processUpdate);\n }\n }\n}\n\n/**\n * Notify listeners, process queue, etc\n */\nfunction _processUpdate() {\n _nextUpdateHandle = 0;\n\n const interactionCount = _interactionSet.size;\n _addInteractionSet.forEach(handle => _interactionSet.add(handle));\n _deleteInteractionSet.forEach(handle => _interactionSet.delete(handle));\n const nextInteractionCount = _interactionSet.size;\n\n if (interactionCount !== 0 && nextInteractionCount === 0) {\n // transition from 1+ --> 0 interactions\n _emitter.emit(InteractionManager.Events.interactionComplete);\n } else if (interactionCount === 0 && nextInteractionCount !== 0) {\n // transition from 0 --> 1+ interactions\n _emitter.emit(InteractionManager.Events.interactionStart);\n }\n\n // process the queue regardless of a transition\n if (nextInteractionCount === 0) {\n while (_taskQueue.hasTasksToProcess()) {\n _taskQueue.processNext();\n if (\n _deadline > 0 &&\n BatchedBridge.getEventLoopRunningTime() >= _deadline\n ) {\n // Hit deadline before processing all tasks, so process more later.\n _scheduleUpdate();\n break;\n }\n }\n }\n _addInteractionSet.clear();\n _deleteInteractionSet.clear();\n}\n\nmodule.exports = InteractionManager;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nconst infoLog = require('../Utilities/infoLog');\nconst invariant = require('invariant');\n\ntype SimpleTask = {\n name: string,\n run: () => void,\n};\ntype PromiseTask = {\n name: string,\n gen: () => Promise,\n};\nexport type Task = SimpleTask | PromiseTask | (() => void);\n\nconst DEBUG: false = false;\n\n/**\n * TaskQueue - A system for queueing and executing a mix of simple callbacks and\n * trees of dependent tasks based on Promises. No tasks are executed unless\n * `processNext` is called.\n *\n * `enqueue` takes a Task object with either a simple `run` callback, or a\n * `gen` function that returns a `Promise` and puts it in the queue. If a gen\n * function is supplied, then the promise it returns will block execution of\n * tasks already in the queue until it resolves. This can be used to make sure\n * the first task is fully resolved (including asynchronous dependencies that\n * also schedule more tasks via `enqueue`) before starting on the next task.\n * The `onMoreTasks` constructor argument is used to inform the owner that an\n * async task has resolved and that the queue should be processed again.\n *\n * Note: Tasks are only actually executed with explicit calls to `processNext`.\n */\nclass TaskQueue {\n /**\n * TaskQueue instances are self contained and independent, so multiple tasks\n * of varying semantics and priority can operate together.\n *\n * `onMoreTasks` is invoked when `PromiseTask`s resolve if there are more\n * tasks to process.\n */\n constructor({onMoreTasks}: {onMoreTasks: () => void, ...}) {\n this._onMoreTasks = onMoreTasks;\n this._queueStack = [{tasks: [], popable: false}];\n }\n\n /**\n * Add a task to the queue. It is recommended to name your tasks for easier\n * async debugging. Tasks will not be executed until `processNext` is called\n * explicitly.\n */\n enqueue(task: Task): void {\n this._getCurrentQueue().push(task);\n }\n\n enqueueTasks(tasks: Array): void {\n tasks.forEach(task => this.enqueue(task));\n }\n\n cancelTasks(tasksToCancel: Array): void {\n // search through all tasks and remove them.\n this._queueStack = this._queueStack\n .map(queue => ({\n ...queue,\n tasks: queue.tasks.filter(task => tasksToCancel.indexOf(task) === -1),\n }))\n .filter((queue, idx) => queue.tasks.length > 0 || idx === 0);\n }\n\n /**\n * Check to see if `processNext` should be called.\n *\n * @returns {boolean} Returns true if there are tasks that are ready to be\n * processed with `processNext`, or returns false if there are no more tasks\n * to be processed right now, although there may be tasks in the queue that\n * are blocked by earlier `PromiseTask`s that haven't resolved yet.\n * `onMoreTasks` will be called after each `PromiseTask` resolves if there are\n * tasks ready to run at that point.\n */\n hasTasksToProcess(): boolean {\n return this._getCurrentQueue().length > 0;\n }\n\n /**\n * Executes the next task in the queue.\n */\n processNext(): void {\n const queue = this._getCurrentQueue();\n if (queue.length) {\n const task = queue.shift();\n try {\n if (typeof task === 'object' && task.gen) {\n DEBUG && infoLog('TaskQueue: genPromise for task ' + task.name);\n this._genPromise(task);\n } else if (typeof task === 'object' && task.run) {\n DEBUG && infoLog('TaskQueue: run task ' + task.name);\n task.run();\n } else {\n invariant(\n typeof task === 'function',\n 'Expected Function, SimpleTask, or PromiseTask, but got:\\n' +\n JSON.stringify(task, null, 2),\n );\n DEBUG && infoLog('TaskQueue: run anonymous task');\n task();\n }\n } catch (e) {\n e.message =\n 'TaskQueue: Error with task ' + (task.name || '') + ': ' + e.message;\n throw e;\n }\n }\n }\n\n _queueStack: Array<{\n tasks: Array,\n popable: boolean,\n ...\n }>;\n _onMoreTasks: () => void;\n\n _getCurrentQueue(): Array {\n const stackIdx = this._queueStack.length - 1;\n const queue = this._queueStack[stackIdx];\n if (\n queue.popable &&\n queue.tasks.length === 0 &&\n this._queueStack.length > 1\n ) {\n this._queueStack.pop();\n DEBUG &&\n infoLog('TaskQueue: popped queue: ', {\n stackIdx,\n queueStackSize: this._queueStack.length,\n });\n return this._getCurrentQueue();\n } else {\n return queue.tasks;\n }\n }\n\n _genPromise(task: PromiseTask) {\n // Each async task pushes it's own queue onto the queue stack. This\n // effectively defers execution of previously queued tasks until the promise\n // resolves, at which point we allow the new queue to be popped, which\n // happens once it is fully processed.\n this._queueStack.push({tasks: [], popable: false});\n const stackIdx = this._queueStack.length - 1;\n const stackItem = this._queueStack[stackIdx];\n DEBUG && infoLog('TaskQueue: push new queue: ', {stackIdx});\n DEBUG && infoLog('TaskQueue: exec gen task ' + task.name);\n task\n .gen()\n .then(() => {\n DEBUG &&\n infoLog('TaskQueue: onThen for gen task ' + task.name, {\n stackIdx,\n queueStackSize: this._queueStack.length,\n });\n stackItem.popable = true;\n this.hasTasksToProcess() && this._onMoreTasks();\n })\n .catch(ex => {\n setTimeout(() => {\n ex.message = `TaskQueue: Error resolving Promise in task ${task.name}: ${ex.message}`;\n throw ex;\n }, 0);\n });\n }\n}\n\nmodule.exports = TaskQueue;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n/* eslint no-bitwise: 0 */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type AnimatedNode from './AnimatedNode';\n\nimport normalizeColor from '../../StyleSheet/normalizeColor';\nimport processColor from '../../StyleSheet/processColor';\nimport Easing from '../Easing';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport invariant from 'invariant';\n\ntype ExtrapolateType = 'extend' | 'identity' | 'clamp';\n\nexport type InterpolationConfigType = $ReadOnly<{\n inputRange: $ReadOnlyArray,\n outputRange: $ReadOnlyArray,\n easing?: (input: number) => number,\n extrapolate?: ExtrapolateType,\n extrapolateLeft?: ExtrapolateType,\n extrapolateRight?: ExtrapolateType,\n}>;\n\n/**\n * Very handy helper to map input ranges to output ranges with an easing\n * function and custom behavior outside of the ranges.\n */\nfunction createNumericInterpolation(\n config: InterpolationConfigType,\n): (input: number) => number {\n const outputRange: $ReadOnlyArray = (config.outputRange: any);\n const inputRange = config.inputRange;\n\n const easing = config.easing || Easing.linear;\n\n let extrapolateLeft: ExtrapolateType = 'extend';\n if (config.extrapolateLeft !== undefined) {\n extrapolateLeft = config.extrapolateLeft;\n } else if (config.extrapolate !== undefined) {\n extrapolateLeft = config.extrapolate;\n }\n\n let extrapolateRight: ExtrapolateType = 'extend';\n if (config.extrapolateRight !== undefined) {\n extrapolateRight = config.extrapolateRight;\n } else if (config.extrapolate !== undefined) {\n extrapolateRight = config.extrapolate;\n }\n\n return input => {\n invariant(\n typeof input === 'number',\n 'Cannot interpolation an input which is not a number',\n );\n\n const range = findRange(input, inputRange);\n return (interpolate(\n input,\n inputRange[range],\n inputRange[range + 1],\n outputRange[range],\n outputRange[range + 1],\n easing,\n extrapolateLeft,\n extrapolateRight,\n ): any);\n };\n}\n\nfunction interpolate(\n input: number,\n inputMin: number,\n inputMax: number,\n outputMin: number,\n outputMax: number,\n easing: (input: number) => number,\n extrapolateLeft: ExtrapolateType,\n extrapolateRight: ExtrapolateType,\n) {\n let result = input;\n\n // Extrapolate\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') {\n return result;\n } else if (extrapolateLeft === 'clamp') {\n result = inputMin;\n } else if (extrapolateLeft === 'extend') {\n // noop\n }\n }\n\n if (result > inputMax) {\n if (extrapolateRight === 'identity') {\n return result;\n } else if (extrapolateRight === 'clamp') {\n result = inputMax;\n } else if (extrapolateRight === 'extend') {\n // noop\n }\n }\n\n if (outputMin === outputMax) {\n return outputMin;\n }\n\n if (inputMin === inputMax) {\n if (input <= inputMin) {\n return outputMin;\n }\n return outputMax;\n }\n\n // Input Range\n if (inputMin === -Infinity) {\n result = -result;\n } else if (inputMax === Infinity) {\n result = result - inputMin;\n } else {\n result = (result - inputMin) / (inputMax - inputMin);\n }\n\n // Easing\n result = easing(result);\n\n // Output Range\n if (outputMin === -Infinity) {\n result = -result;\n } else if (outputMax === Infinity) {\n result = result + outputMin;\n } else {\n result = result * (outputMax - outputMin) + outputMin;\n }\n\n return result;\n}\n\nconst numericComponentRegex = /[+-]?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][+-]?\\d+)?/g;\n\n// Maps string inputs an RGBA color or an array of numeric components\nfunction mapStringToNumericComponents(\n input: string,\n):\n | {isColor: true, components: [number, number, number, number]}\n | {isColor: false, components: $ReadOnlyArray} {\n let normalizedColor = normalizeColor(input);\n invariant(\n normalizedColor == null || typeof normalizedColor !== 'object',\n 'PlatformColors are not supported',\n );\n\n if (typeof normalizedColor === 'number') {\n normalizedColor = normalizedColor || 0;\n const r = (normalizedColor & 0xff000000) >>> 24;\n const g = (normalizedColor & 0x00ff0000) >>> 16;\n const b = (normalizedColor & 0x0000ff00) >>> 8;\n const a = (normalizedColor & 0x000000ff) / 255;\n return {isColor: true, components: [r, g, b, a]};\n } else {\n const components: Array = [];\n let lastMatchEnd = 0;\n let match: RegExp$matchResult;\n while ((match = (numericComponentRegex.exec(input): any)) != null) {\n if (match.index > lastMatchEnd) {\n components.push(input.substring(lastMatchEnd, match.index));\n }\n components.push(parseFloat(match[0]));\n lastMatchEnd = match.index + match[0].length;\n }\n invariant(\n components.length > 0,\n 'outputRange must contain color or value with numeric component',\n );\n if (lastMatchEnd < input.length) {\n components.push(input.substring(lastMatchEnd, input.length));\n }\n return {isColor: false, components};\n }\n}\n\n/**\n * Supports string shapes by extracting numbers so new values can be computed,\n * and recombines those values into new strings of the same shape. Supports\n * things like:\n *\n * rgba(123, 42, 99, 0.36) // colors\n * -45deg // values with units\n */\nfunction createStringInterpolation(\n config: InterpolationConfigType,\n): (input: number) => string {\n invariant(config.outputRange.length >= 2, 'Bad output range');\n const outputRange = config.outputRange.map(mapStringToNumericComponents);\n\n const isColor = outputRange[0].isColor;\n if (__DEV__) {\n invariant(\n outputRange.every(output => output.isColor === isColor),\n 'All elements of output range should either be a color or a string with numeric components',\n );\n const firstOutput = outputRange[0].components;\n invariant(\n outputRange.every(\n output => output.components.length === firstOutput.length,\n ),\n 'All elements of output range should have the same number of components',\n );\n invariant(\n outputRange.every(output =>\n output.components.every(\n (component, i) =>\n // $FlowIgnoreMe[invalid-compare]\n typeof component === 'number' || component === firstOutput[i],\n ),\n ),\n 'All elements of output range should have the same non-numeric components',\n );\n }\n\n const numericComponents: $ReadOnlyArray<$ReadOnlyArray> =\n outputRange.map(output =>\n isColor\n ? // $FlowIgnoreMe[incompatible-call]\n output.components\n : // $FlowIgnoreMe[incompatible-call]\n output.components.filter(c => typeof c === 'number'),\n );\n const interpolations = numericComponents[0].map((_, i) =>\n createNumericInterpolation({\n ...config,\n outputRange: numericComponents.map(components => components[i]),\n }),\n );\n if (!isColor) {\n return input => {\n const values = interpolations.map(interpolation => interpolation(input));\n let i = 0;\n return outputRange[0].components\n .map(c => (typeof c === 'number' ? values[i++] : c))\n .join('');\n };\n } else {\n return input => {\n const result = interpolations.map((interpolation, i) => {\n const value = interpolation(input);\n // rgba requires that the r,g,b are integers.... so we want to round them, but we *dont* want to\n // round the opacity (4th column).\n return i < 3 ? Math.round(value) : Math.round(value * 1000) / 1000;\n });\n return `rgba(${result[0]}, ${result[1]}, ${result[2]}, ${result[3]})`;\n };\n }\n}\n\nfunction findRange(input: number, inputRange: $ReadOnlyArray) {\n let i;\n for (i = 1; i < inputRange.length - 1; ++i) {\n if (inputRange[i] >= input) {\n break;\n }\n }\n return i - 1;\n}\n\nfunction checkValidRanges(\n inputRange: $ReadOnlyArray,\n outputRange: $ReadOnlyArray,\n) {\n checkInfiniteRange('outputRange', outputRange);\n checkInfiniteRange('inputRange', inputRange);\n checkValidInputRange(inputRange);\n\n invariant(\n inputRange.length === outputRange.length,\n 'inputRange (' +\n inputRange.length +\n ') and outputRange (' +\n outputRange.length +\n ') must have the same length',\n );\n}\n\nfunction checkValidInputRange(arr: $ReadOnlyArray) {\n invariant(arr.length >= 2, 'inputRange must have at least 2 elements');\n const message =\n 'inputRange must be monotonically non-decreasing ' + String(arr);\n for (let i = 1; i < arr.length; ++i) {\n invariant(arr[i] >= arr[i - 1], message);\n }\n}\n\nfunction checkInfiniteRange(\n name: string,\n arr: $ReadOnlyArray,\n) {\n invariant(arr.length >= 2, name + ' must have at least 2 elements');\n invariant(\n arr.length !== 2 || arr[0] !== -Infinity || arr[1] !== Infinity,\n /* $FlowFixMe[incompatible-type] (>=0.13.0) - In the addition expression\n * below this comment, one or both of the operands may be something that\n * doesn't cleanly convert to a string, like undefined, null, and object,\n * etc. If you really mean this implicit string conversion, you can do\n * something like String(myThing) */\n // $FlowFixMe[unsafe-addition]\n name + 'cannot be ]-infinity;+infinity[ ' + arr,\n );\n}\n\nexport default class AnimatedInterpolation<\n OutputT: number | string,\n> extends AnimatedWithChildren {\n _parent: AnimatedNode;\n _config: InterpolationConfigType;\n _interpolation: ?(input: number) => OutputT;\n\n constructor(parent: AnimatedNode, config: InterpolationConfigType) {\n super();\n this._parent = parent;\n this._config = config;\n\n if (__DEV__) {\n checkValidRanges(config.inputRange, config.outputRange);\n\n // Create interpolation eagerly in dev, so we can signal errors faster\n // even when using the native driver\n this._getInterpolation();\n }\n }\n\n _getInterpolation(): number => OutputT {\n if (!this._interpolation) {\n const config = this._config;\n if (config.outputRange && typeof config.outputRange[0] === 'string') {\n this._interpolation = (createStringInterpolation((config: any)): any);\n } else {\n this._interpolation = (createNumericInterpolation((config: any)): any);\n }\n }\n return this._interpolation;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._parent.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getValue(): OutputT {\n const parentValue: number = this._parent.__getValue();\n invariant(\n typeof parentValue === 'number',\n 'Cannot interpolate an input which is not a number.',\n );\n return this._getInterpolation()(parentValue);\n }\n\n interpolate(\n config: InterpolationConfigType,\n ): AnimatedInterpolation {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach(): void {\n this._parent.__addChild(this);\n }\n\n __detach(): void {\n this._parent.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n if (__DEV__) {\n NativeAnimatedHelper.validateInterpolation(this._config);\n }\n\n // Only the `outputRange` can contain strings so we don't need to transform `inputRange` here\n let outputRange = this._config.outputRange;\n let outputType = null;\n if (typeof outputRange[0] === 'string') {\n // $FlowIgnoreMe[incompatible-cast]\n outputRange = ((outputRange: $ReadOnlyArray).map(value => {\n const processedColor = processColor(value);\n if (typeof processedColor === 'number') {\n outputType = 'color';\n return processedColor;\n } else {\n return NativeAnimatedHelper.transformDataType(value);\n }\n }): any);\n }\n\n return {\n inputRange: this._config.inputRange,\n outputRange,\n outputType,\n extrapolateLeft:\n this._config.extrapolateLeft || this._config.extrapolate || 'extend',\n extrapolateRight:\n this._config.extrapolateRight || this._config.extrapolate || 'extend',\n type: 'interpolation',\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nlet ease;\n\n/**\n * The `Easing` module implements common easing functions. This module is used\n * by [Animate.timing()](docs/animate.html#timing) to convey physically\n * believable motion in animations.\n *\n * You can find a visualization of some common easing functions at\n * http://easings.net/\n *\n * ### Predefined animations\n *\n * The `Easing` module provides several predefined animations through the\n * following methods:\n *\n * - [`back`](docs/easing.html#back) provides a simple animation where the\n * object goes slightly back before moving forward\n * - [`bounce`](docs/easing.html#bounce) provides a bouncing animation\n * - [`ease`](docs/easing.html#ease) provides a simple inertial animation\n * - [`elastic`](docs/easing.html#elastic) provides a simple spring interaction\n *\n * ### Standard functions\n *\n * Three standard easing functions are provided:\n *\n * - [`linear`](docs/easing.html#linear)\n * - [`quad`](docs/easing.html#quad)\n * - [`cubic`](docs/easing.html#cubic)\n *\n * The [`poly`](docs/easing.html#poly) function can be used to implement\n * quartic, quintic, and other higher power functions.\n *\n * ### Additional functions\n *\n * Additional mathematical functions are provided by the following methods:\n *\n * - [`bezier`](docs/easing.html#bezier) provides a cubic bezier curve\n * - [`circle`](docs/easing.html#circle) provides a circular function\n * - [`sin`](docs/easing.html#sin) provides a sinusoidal function\n * - [`exp`](docs/easing.html#exp) provides an exponential function\n *\n * The following helpers are used to modify other easing functions.\n *\n * - [`in`](docs/easing.html#in) runs an easing function forwards\n * - [`inOut`](docs/easing.html#inout) makes any easing function symmetrical\n * - [`out`](docs/easing.html#out) runs an easing function backwards\n */\nconst Easing = {\n /**\n * A stepping function, returns 1 for any positive value of `n`.\n */\n step0(n: number): number {\n return n > 0 ? 1 : 0;\n },\n\n /**\n * A stepping function, returns 1 if `n` is greater than or equal to 1.\n */\n step1(n: number): number {\n return n >= 1 ? 1 : 0;\n },\n\n /**\n * A linear function, `f(t) = t`. Position correlates to elapsed time one to\n * one.\n *\n * http://cubic-bezier.com/#0,0,1,1\n */\n linear(t: number): number {\n return t;\n },\n\n /**\n * A simple inertial interaction, similar to an object slowly accelerating to\n * speed.\n *\n * http://cubic-bezier.com/#.42,0,1,1\n */\n ease(t: number): number {\n if (!ease) {\n ease = Easing.bezier(0.42, 0, 1, 1);\n }\n return ease(t);\n },\n\n /**\n * A quadratic function, `f(t) = t * t`. Position equals the square of elapsed\n * time.\n *\n * http://easings.net/#easeInQuad\n */\n quad(t: number): number {\n return t * t;\n },\n\n /**\n * A cubic function, `f(t) = t * t * t`. Position equals the cube of elapsed\n * time.\n *\n * http://easings.net/#easeInCubic\n */\n cubic(t: number): number {\n return t * t * t;\n },\n\n /**\n * A power function. Position is equal to the Nth power of elapsed time.\n *\n * n = 4: http://easings.net/#easeInQuart\n * n = 5: http://easings.net/#easeInQuint\n */\n poly(n: number): (t: number) => number {\n return (t: number) => Math.pow(t, n);\n },\n\n /**\n * A sinusoidal function.\n *\n * http://easings.net/#easeInSine\n */\n sin(t: number): number {\n return 1 - Math.cos((t * Math.PI) / 2);\n },\n\n /**\n * A circular function.\n *\n * http://easings.net/#easeInCirc\n */\n circle(t: number): number {\n return 1 - Math.sqrt(1 - t * t);\n },\n\n /**\n * An exponential function.\n *\n * http://easings.net/#easeInExpo\n */\n exp(t: number): number {\n return Math.pow(2, 10 * (t - 1));\n },\n\n /**\n * A simple elastic interaction, similar to a spring oscillating back and\n * forth.\n *\n * Default bounciness is 1, which overshoots a little bit once. 0 bounciness\n * doesn't overshoot at all, and bounciness of N > 1 will overshoot about N\n * times.\n *\n * http://easings.net/#easeInElastic\n */\n elastic(bounciness: number = 1): (t: number) => number {\n const p = bounciness * Math.PI;\n return t => 1 - Math.pow(Math.cos((t * Math.PI) / 2), 3) * Math.cos(t * p);\n },\n\n /**\n * Use with `Animated.parallel()` to create a simple effect where the object\n * animates back slightly as the animation starts.\n *\n * https://easings.net/#easeInBack\n */\n back(s: number = 1.70158): (t: number) => number {\n return t => t * t * ((s + 1) * t - s);\n },\n\n /**\n * Provides a simple bouncing effect.\n *\n * http://easings.net/#easeInBounce\n */\n bounce(t: number): number {\n if (t < 1 / 2.75) {\n return 7.5625 * t * t;\n }\n\n if (t < 2 / 2.75) {\n const t2 = t - 1.5 / 2.75;\n return 7.5625 * t2 * t2 + 0.75;\n }\n\n if (t < 2.5 / 2.75) {\n const t2 = t - 2.25 / 2.75;\n return 7.5625 * t2 * t2 + 0.9375;\n }\n\n const t2 = t - 2.625 / 2.75;\n return 7.5625 * t2 * t2 + 0.984375;\n },\n\n /**\n * Provides a cubic bezier curve, equivalent to CSS Transitions'\n * `transition-timing-function`.\n *\n * A useful tool to visualize cubic bezier curves can be found at\n * http://cubic-bezier.com/\n */\n bezier(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n ): (t: number) => number {\n const _bezier = require('./bezier').default;\n return _bezier(x1, y1, x2, y2);\n },\n\n /**\n * Runs an easing function forwards.\n */\n in(easing: (t: number) => number): (t: number) => number {\n return easing;\n },\n\n /**\n * Runs an easing function backwards.\n */\n out(easing: (t: number) => number): (t: number) => number {\n return t => 1 - easing(1 - t);\n },\n\n /**\n * Makes any easing function symmetrical. The easing function will run\n * forwards for half of the duration, then backwards for the rest of the\n * duration.\n */\n inOut(easing: (t: number) => number): (t: number) => number {\n return t => {\n if (t < 0.5) {\n return easing(t * 2) / 2;\n }\n return 1 - easing((1 - t) * 2) / 2;\n };\n },\n};\n\nexport default Easing;\n","/**\n * Portions Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n/**\n * BezierEasing - use bezier curve for transition easing function\n * https://github.com/gre/bezier-easing\n * @copyright 2014-2015 GaΓ«tan Renaudeau. MIT License.\n */\n\n'use strict';\n\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\nconst NEWTON_ITERATIONS = 4;\nconst NEWTON_MIN_SLOPE = 0.001;\nconst SUBDIVISION_PRECISION = 0.0000001;\nconst SUBDIVISION_MAX_ITERATIONS = 10;\n\nconst kSplineTableSize = 11;\nconst kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\nconst float32ArraySupported = typeof Float32Array === 'function';\n\nfunction A(aA1: number, aA2: number) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n}\nfunction B(aA1: number, aA2: number) {\n return 3.0 * aA2 - 6.0 * aA1;\n}\nfunction C(aA1: number) {\n return 3.0 * aA1;\n}\n\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nfunction calcBezier(aT: number, aA1: number, aA2: number) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n}\n\n// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\nfunction getSlope(aT: number, aA1: number, aA2: number) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n}\n\nfunction binarySubdivide(\n aX: number,\n _aA: number,\n _aB: number,\n mX1: number,\n mX2: number,\n) {\n let currentX,\n currentT,\n i = 0,\n aA = _aA,\n aB = _aB;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (\n Math.abs(currentX) > SUBDIVISION_PRECISION &&\n ++i < SUBDIVISION_MAX_ITERATIONS\n );\n return currentT;\n}\n\nfunction newtonRaphsonIterate(\n aX: number,\n _aGuessT: number,\n mX1: number,\n mX2: number,\n) {\n let aGuessT = _aGuessT;\n for (let i = 0; i < NEWTON_ITERATIONS; ++i) {\n const currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n const currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\n\nexport default function bezier(\n mX1: number,\n mY1: number,\n mX2: number,\n mY2: number,\n): (x: number) => number {\n if (!(mX1 >= 0 && mX1 <= 1 && mX2 >= 0 && mX2 <= 1)) {\n throw new Error('bezier x values must be in [0, 1] range');\n }\n\n // Precompute samples table\n const sampleValues = float32ArraySupported\n ? new Float32Array(kSplineTableSize)\n : new Array(kSplineTableSize);\n if (mX1 !== mY1 || mX2 !== mY2) {\n for (let i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n }\n\n function getTForX(aX: number) {\n let intervalStart = 0.0;\n let currentSample = 1;\n const lastSample = kSplineTableSize - 1;\n\n for (\n ;\n currentSample !== lastSample && sampleValues[currentSample] <= aX;\n ++currentSample\n ) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n\n // Interpolate to provide an initial guess for t\n const dist =\n (aX - sampleValues[currentSample]) /\n (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n const guessForT = intervalStart + dist * kSampleStepSize;\n\n const initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(\n aX,\n intervalStart,\n intervalStart + kSampleStepSize,\n mX1,\n mX2,\n );\n }\n }\n\n return function BezierEasing(x: number): number {\n if (mX1 === mY1 && mX2 === mY2) {\n return x; // linear\n }\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n if (x === 0) {\n return 0;\n }\n if (x === 1) {\n return 1;\n }\n return calcBezier(getTForX(x), mY1, mY2);\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedNode from './AnimatedNode';\n\nexport default class AnimatedWithChildren extends AnimatedNode {\n _children: Array;\n\n constructor() {\n super();\n this._children = [];\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n if (!this.__isNative) {\n this.__isNative = true;\n for (const child of this._children) {\n child.__makeNative(platformConfig);\n NativeAnimatedHelper.API.connectAnimatedNodes(\n this.__getNativeTag(),\n child.__getNativeTag(),\n );\n }\n }\n super.__makeNative(platformConfig);\n }\n\n __addChild(child: AnimatedNode): void {\n if (this._children.length === 0) {\n this.__attach();\n }\n this._children.push(child);\n if (this.__isNative) {\n // Only accept \"native\" animated nodes as children\n child.__makeNative(this.__getPlatformConfig());\n NativeAnimatedHelper.API.connectAnimatedNodes(\n this.__getNativeTag(),\n child.__getNativeTag(),\n );\n }\n }\n\n __removeChild(child: AnimatedNode): void {\n const index = this._children.indexOf(child);\n if (index === -1) {\n console.warn(\"Trying to remove a child that doesn't exist\");\n return;\n }\n if (this.__isNative && child.__isNative) {\n NativeAnimatedHelper.API.disconnectAnimatedNodes(\n this.__getNativeTag(),\n child.__getNativeTag(),\n );\n }\n this._children.splice(index, 1);\n if (this._children.length === 0) {\n this.__detach();\n }\n }\n\n __getChildren(): $ReadOnlyArray {\n return this._children;\n }\n\n __callListeners(value: number): void {\n super.__callListeners(value);\n if (!this.__isNative) {\n for (const child of this._children) {\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n if (child.__getValue) {\n child.__callListeners(child.__getValue());\n }\n }\n }\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport invariant from 'invariant';\n\nconst NativeAnimatedAPI = NativeAnimatedHelper.API;\n\ntype ValueListenerCallback = (state: {value: number, ...}) => mixed;\n\nlet _uniqueId = 1;\n\n// Note(vjeux): this would be better as an interface but flow doesn't\n// support them yet\nexport default class AnimatedNode {\n _listeners: {[key: string]: ValueListenerCallback, ...};\n _platformConfig: ?PlatformConfig;\n __nativeAnimatedValueListener: ?any;\n __attach(): void {}\n __detach(): void {\n this.removeAllListeners();\n if (this.__isNative && this.__nativeTag != null) {\n NativeAnimatedHelper.API.dropAnimatedNode(this.__nativeTag);\n this.__nativeTag = undefined;\n }\n }\n __getValue(): any {}\n __getAnimatedValue(): any {\n return this.__getValue();\n }\n __addChild(child: AnimatedNode) {}\n __removeChild(child: AnimatedNode) {}\n __getChildren(): $ReadOnlyArray {\n return [];\n }\n\n /* Methods and props used by native Animated impl */\n __isNative: boolean;\n __nativeTag: ?number;\n __shouldUpdateListenersForNewNativeTag: boolean;\n\n constructor() {\n this._listeners = {};\n }\n\n __makeNative(platformConfig: ?PlatformConfig): void {\n if (!this.__isNative) {\n throw new Error('This node cannot be made a \"native\" animated node');\n }\n\n this._platformConfig = platformConfig;\n if (this.hasListeners()) {\n this._startListeningToNativeValueUpdates();\n }\n }\n\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to\n * synchronously read the value because it might be driven natively.\n *\n * See https://reactnative.dev/docs/animatedvalue#addlistener\n */\n addListener(callback: (value: any) => mixed): string {\n const id = String(_uniqueId++);\n this._listeners[id] = callback;\n if (this.__isNative) {\n this._startListeningToNativeValueUpdates();\n }\n return id;\n }\n\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n *\n * See https://reactnative.dev/docs/animatedvalue#removelistener\n */\n removeListener(id: string): void {\n delete this._listeners[id];\n if (this.__isNative && !this.hasListeners()) {\n this._stopListeningForNativeValueUpdates();\n }\n }\n\n /**\n * Remove all registered listeners.\n *\n * See https://reactnative.dev/docs/animatedvalue#removealllisteners\n */\n removeAllListeners(): void {\n this._listeners = {};\n if (this.__isNative) {\n this._stopListeningForNativeValueUpdates();\n }\n }\n\n hasListeners(): boolean {\n return !!Object.keys(this._listeners).length;\n }\n\n _startListeningToNativeValueUpdates() {\n if (\n this.__nativeAnimatedValueListener &&\n !this.__shouldUpdateListenersForNewNativeTag\n ) {\n return;\n }\n\n if (this.__shouldUpdateListenersForNewNativeTag) {\n this.__shouldUpdateListenersForNewNativeTag = false;\n this._stopListeningForNativeValueUpdates();\n }\n\n NativeAnimatedAPI.startListeningToAnimatedNodeValue(this.__getNativeTag());\n this.__nativeAnimatedValueListener =\n NativeAnimatedHelper.nativeEventEmitter.addListener(\n 'onAnimatedValueUpdate',\n data => {\n if (data.tag !== this.__getNativeTag()) {\n return;\n }\n this.__onAnimatedValueUpdateReceived(data.value);\n },\n );\n }\n\n __onAnimatedValueUpdateReceived(value: number) {\n this.__callListeners(value);\n }\n\n __callListeners(value: number): void {\n for (const key in this._listeners) {\n this._listeners[key]({value});\n }\n }\n\n _stopListeningForNativeValueUpdates() {\n if (!this.__nativeAnimatedValueListener) {\n return;\n }\n\n this.__nativeAnimatedValueListener.remove();\n this.__nativeAnimatedValueListener = null;\n NativeAnimatedAPI.stopListeningToAnimatedNodeValue(this.__getNativeTag());\n }\n\n __getNativeTag(): number {\n NativeAnimatedHelper.assertNativeAnimatedModule();\n invariant(\n this.__isNative,\n 'Attempt to get native tag from node not marked as \"native\"',\n );\n\n const nativeTag =\n this.__nativeTag ?? NativeAnimatedHelper.generateNewNodeTag();\n\n if (this.__nativeTag == null) {\n this.__nativeTag = nativeTag;\n const config = this.__getNativeConfig();\n if (this._platformConfig) {\n config.platformConfig = this._platformConfig;\n }\n NativeAnimatedHelper.API.createAnimatedNode(nativeTag, config);\n this.__shouldUpdateListenersForNewNativeTag = true;\n }\n\n return nativeTag;\n }\n __getNativeConfig(): Object {\n throw new Error(\n 'This JS animated node type cannot be used as native animated node',\n );\n }\n\n toJSON(): any {\n return this.__getValue();\n }\n\n __getPlatformConfig(): ?PlatformConfig {\n return this._platformConfig;\n }\n __setPlatformConfig(platformConfig: ?PlatformConfig) {\n this._platformConfig = platformConfig;\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\ntype SpringConfigType = {\n stiffness: number,\n damping: number,\n ...\n};\n\nfunction stiffnessFromOrigamiValue(oValue: number) {\n return (oValue - 30) * 3.62 + 194;\n}\n\nfunction dampingFromOrigamiValue(oValue: number) {\n return (oValue - 8) * 3 + 25;\n}\n\nexport function fromOrigamiTensionAndFriction(\n tension: number,\n friction: number,\n): SpringConfigType {\n return {\n stiffness: stiffnessFromOrigamiValue(tension),\n damping: dampingFromOrigamiValue(friction),\n };\n}\n\nexport function fromBouncinessAndSpeed(\n bounciness: number,\n speed: number,\n): SpringConfigType {\n function normalize(value: number, startValue: number, endValue: number) {\n return (value - startValue) / (endValue - startValue);\n }\n\n function projectNormal(n: number, start: number, end: number) {\n return start + n * (end - start);\n }\n\n function linearInterpolation(t: number, start: number, end: number) {\n return t * end + (1 - t) * start;\n }\n\n function quadraticOutInterpolation(t: number, start: number, end: number) {\n return linearInterpolation(2 * t - t * t, start, end);\n }\n\n function b3Friction1(x: number) {\n return 0.0007 * Math.pow(x, 3) - 0.031 * Math.pow(x, 2) + 0.64 * x + 1.28;\n }\n\n function b3Friction2(x: number) {\n return 0.000044 * Math.pow(x, 3) - 0.006 * Math.pow(x, 2) + 0.36 * x + 2;\n }\n\n function b3Friction3(x: number) {\n return (\n 0.00000045 * Math.pow(x, 3) -\n 0.000332 * Math.pow(x, 2) +\n 0.1078 * x +\n 5.84\n );\n }\n\n function b3Nobounce(tension: number) {\n if (tension <= 18) {\n return b3Friction1(tension);\n } else if (tension > 18 && tension <= 44) {\n return b3Friction2(tension);\n } else {\n return b3Friction3(tension);\n }\n }\n\n let b = normalize(bounciness / 1.7, 0, 20);\n b = projectNormal(b, 0, 0.8);\n const s = normalize(speed / 1.7, 0, 20);\n const bouncyTension = projectNormal(s, 0.5, 200);\n const bouncyFriction = quadraticOutInterpolation(\n b,\n b3Nobounce(bouncyTension),\n 0.01,\n );\n\n return {\n stiffness: stiffnessFromOrigamiValue(bouncyTension),\n damping: dampingFromOrigamiValue(bouncyFriction),\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {RgbaValue} from '../nodes/AnimatedColor';\nimport type AnimatedInterpolation from '../nodes/AnimatedInterpolation';\nimport type AnimatedValue from '../nodes/AnimatedValue';\nimport type AnimatedValueXY from '../nodes/AnimatedValueXY';\nimport type {AnimationConfig, EndCallback} from './Animation';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedColor from '../nodes/AnimatedColor';\nimport Animation from './Animation';\n\nexport type TimingAnimationConfig = $ReadOnly<{\n ...AnimationConfig,\n toValue:\n | number\n | AnimatedValue\n | {\n x: number,\n y: number,\n ...\n }\n | AnimatedValueXY\n | RgbaValue\n | AnimatedColor\n | AnimatedInterpolation,\n easing?: (value: number) => number,\n duration?: number,\n delay?: number,\n}>;\n\nexport type TimingAnimationConfigSingle = $ReadOnly<{\n ...AnimationConfig,\n toValue: number,\n easing?: (value: number) => number,\n duration?: number,\n delay?: number,\n}>;\n\nlet _easeInOut;\nfunction easeInOut() {\n if (!_easeInOut) {\n const Easing = require('../Easing').default;\n _easeInOut = Easing.inOut(Easing.ease);\n }\n return _easeInOut;\n}\n\nexport default class TimingAnimation extends Animation {\n _startTime: number;\n _fromValue: number;\n _toValue: number;\n _duration: number;\n _delay: number;\n _easing: (value: number) => number;\n _onUpdate: (value: number) => void;\n _animationFrame: any;\n _timeout: any;\n _useNativeDriver: boolean;\n _platformConfig: ?PlatformConfig;\n\n constructor(config: TimingAnimationConfigSingle) {\n super();\n this._toValue = config.toValue;\n this._easing = config.easing ?? easeInOut();\n this._duration = config.duration ?? 500;\n this._delay = config.delay ?? 0;\n this.__iterations = config.iterations ?? 1;\n this._useNativeDriver = NativeAnimatedHelper.shouldUseNativeDriver(config);\n this._platformConfig = config.platformConfig;\n this.__isInteraction = config.isInteraction ?? !this._useNativeDriver;\n }\n\n __getNativeAnimationConfig(): any {\n const frameDuration = 1000.0 / 60.0;\n const frames = [];\n const numFrames = Math.round(this._duration / frameDuration);\n for (let frame = 0; frame < numFrames; frame++) {\n frames.push(this._easing(frame / numFrames));\n }\n frames.push(this._easing(1));\n return {\n type: 'frames',\n frames,\n toValue: this._toValue,\n iterations: this.__iterations,\n platformConfig: this._platformConfig,\n };\n }\n\n start(\n fromValue: number,\n onUpdate: (value: number) => void,\n onEnd: ?EndCallback,\n previousAnimation: ?Animation,\n animatedValue: AnimatedValue,\n ): void {\n this.__active = true;\n this._fromValue = fromValue;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n\n const start = () => {\n // Animations that sometimes have 0 duration and sometimes do not\n // still need to use the native driver when duration is 0 so as to\n // not cause intermixed JS and native animations.\n if (this._duration === 0 && !this._useNativeDriver) {\n this._onUpdate(this._toValue);\n this.__debouncedOnEnd({finished: true});\n } else {\n this._startTime = Date.now();\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n this._animationFrame = requestAnimationFrame(\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.onUpdate.bind(this),\n );\n }\n }\n };\n if (this._delay) {\n this._timeout = setTimeout(start, this._delay);\n } else {\n start();\n }\n }\n\n onUpdate(): void {\n const now = Date.now();\n if (now >= this._startTime + this._duration) {\n if (this._duration === 0) {\n this._onUpdate(this._toValue);\n } else {\n this._onUpdate(\n this._fromValue + this._easing(1) * (this._toValue - this._fromValue),\n );\n }\n this.__debouncedOnEnd({finished: true});\n return;\n }\n\n this._onUpdate(\n this._fromValue +\n this._easing((now - this._startTime) / this._duration) *\n (this._toValue - this._fromValue),\n );\n if (this.__active) {\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n }\n\n stop(): void {\n super.stop();\n this.__active = false;\n clearTimeout(this._timeout);\n global.cancelAnimationFrame(this._animationFrame);\n this.__debouncedOnEnd({finished: false});\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport View from '../Components/View/View';\nimport useMergeRefs from '../Utilities/useMergeRefs';\nimport useAnimatedProps from './useAnimatedProps';\nimport * as React from 'react';\n\nexport type AnimatedComponentType<\n -Props: {+[string]: mixed, ...},\n +Instance = mixed,\n> = React.AbstractComponent<\n $ObjMap<\n Props &\n $ReadOnly<{\n passthroughAnimatedPropExplicitValues?: React.ElementConfig<\n typeof View,\n >,\n }>,\n () => any,\n >,\n Instance,\n>;\n\nexport default function createAnimatedComponent(\n Component: React.AbstractComponent,\n): AnimatedComponentType {\n return React.forwardRef((props, forwardedRef) => {\n const [reducedProps, callbackRef] = useAnimatedProps(\n // $FlowFixMe[incompatible-call]\n props,\n );\n const ref = useMergeRefs(callbackRef, forwardedRef);\n\n // Some components require explicit passthrough values for animation\n // to work properly. For example, if an animated component is\n // transformed and Pressable, onPress will not work after transform\n // without these passthrough values.\n // $FlowFixMe[prop-missing]\n const {passthroughAnimatedPropExplicitValues, style} = reducedProps;\n const {style: passthroughStyle, ...passthroughProps} =\n passthroughAnimatedPropExplicitValues ?? {};\n const mergedStyle = {...style, ...passthroughStyle};\n\n return (\n \n );\n });\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport {useCallback} from 'react';\n\ntype CallbackRef = T => mixed;\ntype ObjectRef = {current: T, ...};\n\ntype Ref = CallbackRef | ObjectRef;\n\n/**\n * Constructs a new ref that forwards new values to each of the given refs. The\n * given refs will always be invoked in the order that they are supplied.\n *\n * WARNING: A known problem of merging refs using this approach is that if any\n * of the given refs change, the returned callback ref will also be changed. If\n * the returned callback ref is supplied as a `ref` to a React element, this may\n * lead to problems with the given refs being invoked more times than desired.\n */\nexport default function useMergeRefs(\n ...refs: $ReadOnlyArray>\n): CallbackRef {\n return useCallback(\n (current: T) => {\n for (const ref of refs) {\n if (ref != null) {\n if (typeof ref === 'function') {\n ref(current);\n } else {\n ref.current = current;\n }\n }\n }\n },\n [...refs], // eslint-disable-line react-hooks/exhaustive-deps\n );\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nimport {isPublicInstance as isFabricPublicInstance} from '../Renderer/public/ReactFabricPublicInstanceUtils';\nimport useRefEffect from '../Utilities/useRefEffect';\nimport {AnimatedEvent} from './AnimatedEvent';\nimport NativeAnimatedHelper from './NativeAnimatedHelper';\nimport AnimatedProps from './nodes/AnimatedProps';\nimport {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react';\n\ntype ReducedProps = {\n ...TProps,\n collapsable: boolean,\n ...\n};\ntype CallbackRef = T => mixed;\n\nexport default function useAnimatedProps(\n props: TProps,\n): [ReducedProps, CallbackRef] {\n const [, scheduleUpdate] = useReducer(count => count + 1, 0);\n const onUpdateRef = useRef void>(null);\n\n // TODO: Only invalidate `node` if animated props or `style` change. In the\n // previous implementation, we permitted `style` to override props with the\n // same name property name as styles, so we can probably continue doing that.\n // The ordering of other props *should* not matter.\n const node = useMemo(\n () => new AnimatedProps(props, () => onUpdateRef.current?.()),\n [props],\n );\n useAnimatedPropsLifecycle(node);\n\n // TODO: This \"effect\" does three things:\n //\n // 1) Call `setNativeView`.\n // 2) Update `onUpdateRef`.\n // 3) Update listeners for `AnimatedEvent` props.\n //\n // Ideally, each of these would be separate \"effects\" so that they are not\n // unnecessarily re-run when irrelevant dependencies change. For example, we\n // should be able to hoist all `AnimatedEvent` props and only do #3 if either\n // the `AnimatedEvent` props change or `instance` changes.\n //\n // But there is no way to transparently compose three separate callback refs,\n // so we just combine them all into one for now.\n const refEffect = useCallback(\n (instance: TInstance) => {\n // NOTE: This may be called more often than necessary (e.g. when `props`\n // changes), but `setNativeView` already optimizes for that.\n node.setNativeView(instance);\n\n // NOTE: This callback is only used by the JavaScript animation driver.\n onUpdateRef.current = () => {\n if (\n process.env.NODE_ENV === 'test' ||\n typeof instance !== 'object' ||\n typeof instance?.setNativeProps !== 'function' ||\n isFabricInstance(instance)\n ) {\n // Schedule an update for this component to update `reducedProps`,\n // but do not compute it immediately. If a parent also updated, we\n // need to merge those new props in before updating.\n scheduleUpdate();\n } else if (!node.__isNative) {\n // $FlowIgnore[not-a-function] - Assume it's still a function.\n // $FlowFixMe[incompatible-use]\n instance.setNativeProps(node.__getAnimatedValue());\n } else {\n throw new Error(\n 'Attempting to run JS driven animation on animated node ' +\n 'that has been moved to \"native\" earlier by starting an ' +\n 'animation with `useNativeDriver: true`',\n );\n }\n };\n\n const target = getEventTarget(instance);\n const events = [];\n\n for (const propName in props) {\n const propValue = props[propName];\n if (propValue instanceof AnimatedEvent && propValue.__isNative) {\n propValue.__attach(target, propName);\n events.push([propName, propValue]);\n }\n }\n\n return () => {\n onUpdateRef.current = null;\n\n for (const [propName, propValue] of events) {\n propValue.__detach(target, propName);\n }\n };\n },\n [props, node],\n );\n const callbackRef = useRefEffect(refEffect);\n\n return [reduceAnimatedProps(node), callbackRef];\n}\n\nfunction reduceAnimatedProps(\n node: AnimatedProps,\n): ReducedProps {\n // Force `collapsable` to be false so that the native view is not flattened.\n // Flattened views cannot be accurately referenced by the native driver.\n return {\n ...node.__getValue(),\n collapsable: false,\n };\n}\n\n/**\n * Manages the lifecycle of the supplied `AnimatedProps` by invoking `__attach`\n * and `__detach`. However, this is more complicated because `AnimatedProps`\n * uses reference counting to determine when to recursively detach its children\n * nodes. So in order to optimize this, we avoid detaching until the next attach\n * unless we are unmounting.\n */\nfunction useAnimatedPropsLifecycle(node: AnimatedProps): void {\n const prevNodeRef = useRef(null);\n const isUnmountingRef = useRef(false);\n\n useEffect(() => {\n // It is ok for multiple components to call `flushQueue` because it noops\n // if the queue is empty. When multiple animated components are mounted at\n // the same time. Only first component flushes the queue and the others will noop.\n NativeAnimatedHelper.API.flushQueue();\n });\n\n useLayoutEffect(() => {\n isUnmountingRef.current = false;\n return () => {\n isUnmountingRef.current = true;\n };\n }, []);\n\n useLayoutEffect(() => {\n node.__attach();\n if (prevNodeRef.current != null) {\n const prevNode = prevNodeRef.current;\n // TODO: Stop restoring default values (unless `reset` is called).\n prevNode.__restoreDefaultValues();\n prevNode.__detach();\n prevNodeRef.current = null;\n }\n return () => {\n if (isUnmountingRef.current) {\n // NOTE: Do not restore default values on unmount, see D18197735.\n node.__detach();\n } else {\n prevNodeRef.current = node;\n }\n };\n }, [node]);\n}\n\nfunction getEventTarget(instance: TInstance): TInstance {\n return typeof instance === 'object' &&\n typeof instance?.getScrollableNode === 'function'\n ? // $FlowFixMe[incompatible-use] - Legacy instance assumptions.\n instance.getScrollableNode()\n : instance;\n}\n\n// $FlowFixMe[unclear-type] - Legacy instance assumptions.\nfunction isFabricInstance(instance: any): boolean {\n return (\n isFabricPublicInstance(instance) ||\n // Some components have a setNativeProps function but aren't a host component\n // such as lists like FlatList and SectionList. These should also use\n // forceUpdate in Fabric since setNativeProps doesn't exist on the underlying\n // host component. This crazy hack is essentially special casing those lists and\n // ScrollView itself to use forceUpdate in Fabric.\n // If these components end up using forwardRef then these hacks can go away\n // as instance would actually be the underlying host component and the above check\n // would be sufficient.\n isFabricPublicInstance(instance?.getNativeScrollRef?.()) ||\n isFabricPublicInstance(\n instance?.getScrollResponder?.()?.getNativeScrollRef?.(),\n )\n );\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport {useCallback, useRef} from 'react';\n\ntype CallbackRef = T => mixed;\n\n/**\n * Constructs a callback ref that provides similar semantics as `useEffect`. The\n * supplied `effect` callback will be called with non-null component instances.\n * The `effect` callback can also optionally return a cleanup function.\n *\n * When a component is updated or unmounted, the cleanup function is called. The\n * `effect` callback will then be called again, if applicable.\n *\n * When a new `effect` callback is supplied, the previously returned cleanup\n * function will be called before the new `effect` callback is called with the\n * same instance.\n *\n * WARNING: The `effect` callback should be stable (e.g. using `useCallback`).\n */\nexport default function useRefEffect(\n effect: TInstance => (() => void) | void,\n): CallbackRef {\n const cleanupRef = useRef<(() => void) | void>(undefined);\n return useCallback(\n (instance: null | TInstance) => {\n if (cleanupRef.current) {\n cleanupRef.current();\n cleanupRef.current = undefined;\n }\n if (instance != null) {\n cleanupRef.current = effect(instance);\n }\n },\n [effect],\n );\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport {findNodeHandle} from '../../ReactNative/RendererProxy';\nimport {AnimatedEvent} from '../AnimatedEvent';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedStyle from './AnimatedStyle';\nimport invariant from 'invariant';\n\nexport default class AnimatedProps extends AnimatedNode {\n _props: Object;\n _animatedView: any;\n _callback: () => void;\n\n constructor(props: Object, callback: () => void) {\n super();\n if (props.style) {\n props = {\n ...props,\n style: new AnimatedStyle(props.style),\n };\n }\n this._props = props;\n this._callback = callback;\n }\n\n __getValue(): Object {\n const props: {[string]: any | ((...args: any) => void)} = {};\n for (const key in this._props) {\n const value = this._props[key];\n if (value instanceof AnimatedNode) {\n props[key] = value.__getValue();\n } else if (value instanceof AnimatedEvent) {\n props[key] = value.__getHandler();\n } else {\n props[key] = value;\n }\n }\n\n return props;\n }\n\n __getAnimatedValue(): Object {\n const props: {[string]: any} = {};\n for (const key in this._props) {\n const value = this._props[key];\n if (value instanceof AnimatedNode) {\n props[key] = value.__getAnimatedValue();\n }\n }\n return props;\n }\n\n __attach(): void {\n for (const key in this._props) {\n const value = this._props[key];\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n }\n\n __detach(): void {\n if (this.__isNative && this._animatedView) {\n this.__disconnectAnimatedView();\n }\n for (const key in this._props) {\n const value = this._props[key];\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n super.__detach();\n }\n\n update(): void {\n this._callback();\n }\n\n __makeNative(platformConfig: ?PlatformConfig): void {\n for (const key in this._props) {\n const value = this._props[key];\n if (value instanceof AnimatedNode) {\n value.__makeNative(platformConfig);\n }\n }\n\n if (!this.__isNative) {\n this.__isNative = true;\n\n // Since this does not call the super.__makeNative, we need to store the\n // supplied platformConfig here, before calling __connectAnimatedView\n // where it will be needed to traverse the graph of attached values.\n super.__setPlatformConfig(platformConfig);\n\n if (this._animatedView) {\n this.__connectAnimatedView();\n }\n }\n }\n\n setNativeView(animatedView: any): void {\n if (this._animatedView === animatedView) {\n return;\n }\n this._animatedView = animatedView;\n if (this.__isNative) {\n this.__connectAnimatedView();\n }\n }\n\n __connectAnimatedView(): void {\n invariant(this.__isNative, 'Expected node to be marked as \"native\"');\n const nativeViewTag: ?number = findNodeHandle(this._animatedView);\n invariant(\n nativeViewTag != null,\n 'Unable to locate attached view in the native tree',\n );\n NativeAnimatedHelper.API.connectAnimatedNodeToView(\n this.__getNativeTag(),\n nativeViewTag,\n );\n }\n\n __disconnectAnimatedView(): void {\n invariant(this.__isNative, 'Expected node to be marked as \"native\"');\n const nativeViewTag: ?number = findNodeHandle(this._animatedView);\n invariant(\n nativeViewTag != null,\n 'Unable to locate attached view in the native tree',\n );\n NativeAnimatedHelper.API.disconnectAnimatedNodeFromView(\n this.__getNativeTag(),\n nativeViewTag,\n );\n }\n\n __restoreDefaultValues(): void {\n // When using the native driver, view properties need to be restored to\n // their default values manually since react no longer tracks them. This\n // is needed to handle cases where a prop driven by native animated is removed\n // after having been changed natively by an animation.\n if (this.__isNative) {\n NativeAnimatedHelper.API.restoreDefaultValues(this.__getNativeTag());\n }\n }\n\n __getNativeConfig(): Object {\n const propsConfig: {[string]: number} = {};\n for (const propKey in this._props) {\n const value = this._props[propKey];\n if (value instanceof AnimatedNode) {\n value.__makeNative(this.__getPlatformConfig());\n propsConfig[propKey] = value.__getNativeTag();\n }\n }\n return {\n type: 'props',\n props: propsConfig,\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport flattenStyle from '../../StyleSheet/flattenStyle';\nimport Platform from '../../Utilities/Platform';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedTransform from './AnimatedTransform';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nfunction createAnimatedStyle(inputStyle: any): Object {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n const style = flattenStyle(inputStyle);\n const animatedStyles: any = {};\n for (const key in style) {\n const value = style[key];\n if (key === 'transform') {\n animatedStyles[key] = new AnimatedTransform(value);\n } else if (value instanceof AnimatedNode) {\n animatedStyles[key] = value;\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n animatedStyles[key] = createAnimatedStyle(value);\n }\n }\n return animatedStyles;\n}\n\nfunction createStyleWithAnimatedTransform(inputStyle: any): Object {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n let style = flattenStyle(inputStyle) || ({}: {[string]: any});\n\n if (style.transform) {\n style = {\n ...style,\n transform: new AnimatedTransform(style.transform),\n };\n }\n return style;\n}\n\nexport default class AnimatedStyle extends AnimatedWithChildren {\n _inputStyle: any;\n _style: Object;\n\n constructor(style: any) {\n super();\n if (Platform.OS === 'web') {\n this._inputStyle = style;\n this._style = createAnimatedStyle(style);\n } else {\n this._style = createStyleWithAnimatedTransform(style);\n }\n }\n\n // Recursively get values for nested styles (like iOS's shadowOffset)\n _walkStyleAndGetValues(style: any): {[string]: any | {...}} {\n const updatedStyle: {[string]: any | {...}} = {};\n for (const key in style) {\n const value = style[key];\n if (value instanceof AnimatedNode) {\n updatedStyle[key] = value.__getValue();\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n // Support animating nested values (for example: shadowOffset.height)\n updatedStyle[key] = this._walkStyleAndGetValues(value);\n } else {\n updatedStyle[key] = value;\n }\n }\n return updatedStyle;\n }\n\n __getValue(): Object | Array {\n if (Platform.OS === 'web') {\n return [this._inputStyle, this._walkStyleAndGetValues(this._style)];\n }\n\n return this._walkStyleAndGetValues(this._style);\n }\n\n // Recursively get animated values for nested styles (like iOS's shadowOffset)\n _walkStyleAndGetAnimatedValues(style: any): {[string]: any | {...}} {\n const updatedStyle: {[string]: any | {...}} = {};\n for (const key in style) {\n const value = style[key];\n if (value instanceof AnimatedNode) {\n updatedStyle[key] = value.__getAnimatedValue();\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n // Support animating nested values (for example: shadowOffset.height)\n updatedStyle[key] = this._walkStyleAndGetAnimatedValues(value);\n }\n }\n return updatedStyle;\n }\n\n __getAnimatedValue(): Object {\n return this._walkStyleAndGetAnimatedValues(this._style);\n }\n\n __attach(): void {\n for (const key in this._style) {\n const value = this._style[key];\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n }\n\n __detach(): void {\n for (const key in this._style) {\n const value = this._style[key];\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n super.__detach();\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n for (const key in this._style) {\n const value = this._style[key];\n if (value instanceof AnimatedNode) {\n value.__makeNative(platformConfig);\n }\n }\n super.__makeNative(platformConfig);\n }\n\n __getNativeConfig(): Object {\n const styleConfig: {[string]: ?number} = {};\n for (const styleKey in this._style) {\n if (this._style[styleKey] instanceof AnimatedNode) {\n const style = this._style[styleKey];\n style.__makeNative(this.__getPlatformConfig());\n styleConfig[styleKey] = style.__getNativeTag();\n }\n // Non-animated styles are set using `setNativeProps`, no need\n // to pass those as a part of the node config\n }\n NativeAnimatedHelper.validateStyles(styleConfig);\n return {\n type: 'style',\n style: styleConfig,\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedTransform extends AnimatedWithChildren {\n _transforms: $ReadOnlyArray;\n\n constructor(transforms: $ReadOnlyArray) {\n super();\n this._transforms = transforms;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._transforms.forEach(transform => {\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n value.__makeNative(platformConfig);\n }\n }\n });\n super.__makeNative(platformConfig);\n }\n\n __getValue(): $ReadOnlyArray {\n return this._get(animatedNode => animatedNode.__getValue());\n }\n\n __getAnimatedValue(): $ReadOnlyArray {\n return this._get(animatedNode => animatedNode.__getAnimatedValue());\n }\n\n __attach(): void {\n this._transforms.forEach(transform => {\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n });\n }\n\n __detach(): void {\n this._transforms.forEach(transform => {\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n });\n super.__detach();\n }\n\n __getNativeConfig(): any {\n const transConfigs: Array = [];\n\n this._transforms.forEach(transform => {\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n transConfigs.push({\n type: 'animated',\n property: key,\n nodeTag: value.__getNativeTag(),\n });\n } else {\n transConfigs.push({\n type: 'static',\n property: key,\n value: NativeAnimatedHelper.transformDataType(value),\n });\n }\n }\n });\n\n NativeAnimatedHelper.validateTransform(transConfigs);\n return {\n type: 'transform',\n transforms: transConfigs,\n };\n }\n\n _get(getter: AnimatedNode => any): $ReadOnlyArray {\n return this._transforms.map(transform => {\n const result: {[string]: any} = {};\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n result[key] = getter(value);\n } else if (Array.isArray(value)) {\n result[key] = value.map(element => {\n if (element instanceof AnimatedNode) {\n return getter(element);\n } else {\n return element;\n }\n });\n } else if (typeof value === 'object') {\n result[key] = {};\n for (const [nestedKey, nestedValue] of Object.entries(value)) {\n if (nestedValue instanceof AnimatedNode) {\n result[key][nestedKey] = getter(nestedValue);\n } else {\n result[key][nestedKey] = nestedValue;\n }\n }\n } else {\n result[key] = value;\n }\n }\n return result;\n });\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from './AnimatedPlatformConfig';\n\nimport {findNodeHandle} from '../ReactNative/RendererProxy';\nimport NativeAnimatedHelper from './NativeAnimatedHelper';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\nimport invariant from 'invariant';\n\nexport type Mapping =\n | {[key: string]: Mapping, ...}\n | AnimatedValue\n | AnimatedValueXY;\nexport type EventConfig = {\n listener?: ?Function,\n useNativeDriver: boolean,\n platformConfig?: PlatformConfig,\n};\n\nexport function attachNativeEvent(\n viewRef: any,\n eventName: string,\n argMapping: $ReadOnlyArray,\n platformConfig: ?PlatformConfig,\n): {detach: () => void} {\n // Find animated values in `argMapping` and create an array representing their\n // key path inside the `nativeEvent` object. Ex.: ['contentOffset', 'x'].\n const eventMappings = [];\n\n const traverse = (value: mixed, path: Array) => {\n if (value instanceof AnimatedValue) {\n value.__makeNative(platformConfig);\n\n eventMappings.push({\n nativeEventPath: path,\n animatedValueTag: value.__getNativeTag(),\n });\n } else if (value instanceof AnimatedValueXY) {\n traverse(value.x, path.concat('x'));\n traverse(value.y, path.concat('y'));\n } else if (typeof value === 'object') {\n for (const key in value) {\n traverse(value[key], path.concat(key));\n }\n }\n };\n\n invariant(\n argMapping[0] && argMapping[0].nativeEvent,\n 'Native driven events only support animated values contained inside `nativeEvent`.',\n );\n\n // Assume that the event containing `nativeEvent` is always the first argument.\n traverse(argMapping[0].nativeEvent, []);\n\n const viewTag = findNodeHandle(viewRef);\n if (viewTag != null) {\n eventMappings.forEach(mapping => {\n NativeAnimatedHelper.API.addAnimatedEventToView(\n viewTag,\n eventName,\n mapping,\n );\n });\n }\n\n return {\n detach() {\n if (viewTag != null) {\n eventMappings.forEach(mapping => {\n NativeAnimatedHelper.API.removeAnimatedEventFromView(\n viewTag,\n eventName,\n // $FlowFixMe[incompatible-call]\n mapping.animatedValueTag,\n );\n });\n }\n },\n };\n}\n\nfunction validateMapping(argMapping: $ReadOnlyArray, args: any) {\n const validate = (recMapping: ?Mapping, recEvt: any, key: string) => {\n if (recMapping instanceof AnimatedValue) {\n invariant(\n typeof recEvt === 'number',\n 'Bad mapping of event key ' +\n key +\n ', should be number but got ' +\n typeof recEvt,\n );\n return;\n }\n if (recMapping instanceof AnimatedValueXY) {\n invariant(\n typeof recEvt.x === 'number' && typeof recEvt.y === 'number',\n 'Bad mapping of event key ' + key + ', should be XY but got ' + recEvt,\n );\n return;\n }\n if (typeof recEvt === 'number') {\n invariant(\n recMapping instanceof AnimatedValue,\n 'Bad mapping of type ' +\n typeof recMapping +\n ' for key ' +\n key +\n ', event value must map to AnimatedValue',\n );\n return;\n }\n invariant(\n typeof recMapping === 'object',\n 'Bad mapping of type ' + typeof recMapping + ' for key ' + key,\n );\n invariant(\n typeof recEvt === 'object',\n 'Bad event of type ' + typeof recEvt + ' for key ' + key,\n );\n for (const mappingKey in recMapping) {\n validate(recMapping[mappingKey], recEvt[mappingKey], mappingKey);\n }\n };\n\n invariant(\n args.length >= argMapping.length,\n 'Event has less arguments than mapping',\n );\n argMapping.forEach((mapping, idx) => {\n validate(mapping, args[idx], 'arg' + idx);\n });\n}\n\nexport class AnimatedEvent {\n _argMapping: $ReadOnlyArray;\n _listeners: Array = [];\n _attachedEvent: ?{detach: () => void, ...};\n __isNative: boolean;\n __platformConfig: ?PlatformConfig;\n\n constructor(argMapping: $ReadOnlyArray, config: EventConfig) {\n this._argMapping = argMapping;\n\n if (config == null) {\n console.warn('Animated.event now requires a second argument for options');\n config = {useNativeDriver: false};\n }\n\n if (config.listener) {\n this.__addListener(config.listener);\n }\n this._attachedEvent = null;\n this.__isNative = NativeAnimatedHelper.shouldUseNativeDriver(config);\n this.__platformConfig = config.platformConfig;\n }\n\n __addListener(callback: Function): void {\n this._listeners.push(callback);\n }\n\n __removeListener(callback: Function): void {\n this._listeners = this._listeners.filter(listener => listener !== callback);\n }\n\n __attach(viewRef: any, eventName: string): void {\n invariant(\n this.__isNative,\n 'Only native driven events need to be attached.',\n );\n\n this._attachedEvent = attachNativeEvent(\n viewRef,\n eventName,\n this._argMapping,\n this.__platformConfig,\n );\n }\n\n __detach(viewTag: any, eventName: string): void {\n invariant(\n this.__isNative,\n 'Only native driven events need to be detached.',\n );\n\n this._attachedEvent && this._attachedEvent.detach();\n }\n\n __getHandler(): any | ((...args: any) => void) {\n if (this.__isNative) {\n if (__DEV__) {\n let validatedMapping = false;\n return (...args: any) => {\n if (!validatedMapping) {\n validateMapping(this._argMapping, args);\n validatedMapping = true;\n }\n this._callListeners(...args);\n };\n } else {\n return this._callListeners;\n }\n }\n\n let validatedMapping = false;\n return (...args: any) => {\n if (__DEV__ && !validatedMapping) {\n validateMapping(this._argMapping, args);\n validatedMapping = true;\n }\n\n const traverse = (\n recMapping: ?(Mapping | AnimatedValue),\n recEvt: any,\n ) => {\n if (recMapping instanceof AnimatedValue) {\n if (typeof recEvt === 'number') {\n recMapping.setValue(recEvt);\n }\n } else if (recMapping instanceof AnimatedValueXY) {\n if (typeof recEvt === 'object') {\n traverse(recMapping.x, recEvt.x);\n traverse(recMapping.y, recEvt.y);\n }\n } else if (typeof recMapping === 'object') {\n for (const mappingKey in recMapping) {\n /* $FlowFixMe[prop-missing] (>=0.120.0) This comment suppresses an\n * error found when Flow v0.120 was deployed. To see the error,\n * delete this comment and run Flow. */\n traverse(recMapping[mappingKey], recEvt[mappingKey]);\n }\n }\n };\n this._argMapping.forEach((mapping, idx) => {\n traverse(mapping, args[idx]);\n });\n\n this._callListeners(...args);\n };\n }\n\n _callListeners = (...args: any) => {\n this._listeners.forEach(listener => listener(...args));\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport invariant from 'invariant';\n\nexport type AnimatedValueXYConfig = $ReadOnly<{\n useNativeDriver: boolean,\n}>;\ntype ValueXYListenerCallback = (value: {\n x: number,\n y: number,\n ...\n}) => mixed;\n\nlet _uniqueId = 1;\n\n/**\n * 2D Value for driving 2D animations, such as pan gestures. Almost identical\n * API to normal `Animated.Value`, but multiplexed.\n *\n * See https://reactnative.dev/docs/animatedvaluexy\n */\nexport default class AnimatedValueXY extends AnimatedWithChildren {\n x: AnimatedValue;\n y: AnimatedValue;\n _listeners: {\n [key: string]: {\n x: string,\n y: string,\n ...\n },\n ...\n };\n\n constructor(\n valueIn?: ?{\n +x: number | AnimatedValue,\n +y: number | AnimatedValue,\n ...\n },\n config?: ?AnimatedValueXYConfig,\n ) {\n super();\n const value: any = valueIn || {x: 0, y: 0}; // @flowfixme: shouldn't need `: any`\n if (typeof value.x === 'number' && typeof value.y === 'number') {\n this.x = new AnimatedValue(value.x);\n this.y = new AnimatedValue(value.y);\n } else {\n invariant(\n value.x instanceof AnimatedValue && value.y instanceof AnimatedValue,\n 'AnimatedValueXY must be initialized with an object of numbers or ' +\n 'AnimatedValues.',\n );\n this.x = value.x;\n this.y = value.y;\n }\n this._listeners = {};\n if (config && config.useNativeDriver) {\n this.__makeNative();\n }\n }\n\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#setvalue\n */\n setValue(value: {x: number, y: number, ...}) {\n this.x.setValue(value.x);\n this.y.setValue(value.y);\n }\n\n /**\n * Sets an offset that is applied on top of whatever value is set, whether\n * via `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#setoffset\n */\n setOffset(offset: {x: number, y: number, ...}) {\n this.x.setOffset(offset.x);\n this.y.setOffset(offset.y);\n }\n\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#flattenoffset\n */\n flattenOffset(): void {\n this.x.flattenOffset();\n this.y.flattenOffset();\n }\n\n /**\n * Sets the offset value to the base value, and resets the base value to\n * zero. The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#extractoffset\n */\n extractOffset(): void {\n this.x.extractOffset();\n this.y.extractOffset();\n }\n\n __getValue(): {\n x: number,\n y: number,\n ...\n } {\n return {\n x: this.x.__getValue(),\n y: this.y.__getValue(),\n };\n }\n\n /**\n * Stops any animation and resets the value to its original.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#resetanimation\n */\n resetAnimation(\n callback?: (value: {\n x: number,\n y: number,\n ...\n }) => void,\n ): void {\n this.x.resetAnimation();\n this.y.resetAnimation();\n callback && callback(this.__getValue());\n }\n\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#stopanimation\n */\n stopAnimation(\n callback?: (value: {\n x: number,\n y: number,\n ...\n }) => void,\n ): void {\n this.x.stopAnimation();\n this.y.stopAnimation();\n callback && callback(this.__getValue());\n }\n\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to synchronously read\n * the value because it might be driven natively.\n *\n * Returns a string that serves as an identifier for the listener.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#addlistener\n */\n addListener(callback: ValueXYListenerCallback): string {\n const id = String(_uniqueId++);\n const jointCallback = ({value: number}: any) => {\n callback(this.__getValue());\n };\n this._listeners[id] = {\n x: this.x.addListener(jointCallback),\n y: this.y.addListener(jointCallback),\n };\n return id;\n }\n\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#removelistener\n */\n removeListener(id: string): void {\n this.x.removeListener(this._listeners[id].x);\n this.y.removeListener(this._listeners[id].y);\n delete this._listeners[id];\n }\n\n /**\n * Remove all registered listeners.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#removealllisteners\n */\n removeAllListeners(): void {\n this.x.removeAllListeners();\n this.y.removeAllListeners();\n this._listeners = {};\n }\n\n /**\n * Converts `{x, y}` into `{left, top}` for use in style.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#getlayout\n */\n getLayout(): {[key: string]: AnimatedValue, ...} {\n return {\n left: this.x,\n top: this.y,\n };\n }\n\n /**\n * Converts `{x, y}` into a useable translation transform.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#gettranslatetransform\n */\n getTranslateTransform(): Array<{[key: string]: AnimatedValue, ...}> {\n return [{translateX: this.x}, {translateY: this.y}];\n }\n\n __attach(): void {\n this.x.__addChild(this);\n this.y.__addChild(this);\n super.__attach();\n }\n\n __detach(): void {\n this.x.__removeChild(this);\n this.y.__removeChild(this);\n super.__detach();\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this.x.__makeNative(platformConfig);\n this.y.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n/**\n * IMPORTANT!!\n *\n * This module cannot import `ReactFabric` (directly or indirectly)\n * because it can be used by apps only using the legacy renderer.\n * In that case `nativeFabricUIManager` isn't defined and `ReactFabric` throws.\n */\n\nexport function isPublicInstance(maybeInstance: mixed): boolean {\n return (\n maybeInstance != null &&\n // TODO: implement a better check when the instance is defined in the React Native repository.\n (maybeInstance.__nativeTag != null ||\n // TODO: remove this check when syncing the new version of the renderer from React to React Native.\n isLegacyFabricInstance(maybeInstance))\n );\n}\n\nfunction isLegacyFabricInstance(maybeInstance: mixed): boolean {\n /* eslint-disable dot-notation */\n return (\n maybeInstance != null &&\n // $FlowExpectedError[incompatible-use]\n maybeInstance['_internalInstanceHandle'] != null &&\n maybeInstance['_internalInstanceHandle'].stateNode != null &&\n maybeInstance['_internalInstanceHandle'].stateNode.canonical != null\n );\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\nimport type AnimatedNode from './AnimatedNode';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedAddition extends AnimatedWithChildren {\n _a: AnimatedNode;\n _b: AnimatedNode;\n\n constructor(a: AnimatedNode | number, b: AnimatedNode | number) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._a.__makeNative(platformConfig);\n this._b.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getValue(): number {\n return this._a.__getValue() + this._b.__getValue();\n }\n\n interpolate(\n config: InterpolationConfigType,\n ): AnimatedInterpolation {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach(): void {\n this._a.__addChild(this);\n this._b.__addChild(this);\n }\n\n __detach(): void {\n this._a.__removeChild(this);\n this._b.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n return {\n type: 'addition',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()],\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\nimport type AnimatedNode from './AnimatedNode';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedDiffClamp extends AnimatedWithChildren {\n _a: AnimatedNode;\n _min: number;\n _max: number;\n _value: number;\n _lastValue: number;\n\n constructor(a: AnimatedNode, min: number, max: number) {\n super();\n\n this._a = a;\n this._min = min;\n this._max = max;\n this._value = this._lastValue = this._a.__getValue();\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._a.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n interpolate(\n config: InterpolationConfigType,\n ): AnimatedInterpolation {\n return new AnimatedInterpolation(this, config);\n }\n\n __getValue(): number {\n const value = this._a.__getValue();\n const diff = value - this._lastValue;\n this._lastValue = value;\n this._value = Math.min(Math.max(this._value + diff, this._min), this._max);\n return this._value;\n }\n\n __attach(): void {\n this._a.__addChild(this);\n }\n\n __detach(): void {\n this._a.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n return {\n type: 'diffclamp',\n input: this._a.__getNativeTag(),\n min: this._min,\n max: this._max,\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedDivision extends AnimatedWithChildren {\n _a: AnimatedNode;\n _b: AnimatedNode;\n _warnedAboutDivideByZero: boolean = false;\n\n constructor(a: AnimatedNode | number, b: AnimatedNode | number) {\n super();\n if (b === 0 || (b instanceof AnimatedNode && b.__getValue() === 0)) {\n console.error('Detected potential division by zero in AnimatedDivision');\n }\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._a.__makeNative(platformConfig);\n this._b.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getValue(): number {\n const a = this._a.__getValue();\n const b = this._b.__getValue();\n if (b === 0) {\n // Prevent spamming the console/LogBox\n if (!this._warnedAboutDivideByZero) {\n console.error('Detected division by zero in AnimatedDivision');\n this._warnedAboutDivideByZero = true;\n }\n // Passing infinity/NaN to Fabric will cause a native crash\n return 0;\n }\n this._warnedAboutDivideByZero = false;\n return a / b;\n }\n\n interpolate(\n config: InterpolationConfigType,\n ): AnimatedInterpolation {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach(): void {\n this._a.__addChild(this);\n this._b.__addChild(this);\n }\n\n __detach(): void {\n this._a.__removeChild(this);\n this._b.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n return {\n type: 'division',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()],\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\nimport type AnimatedNode from './AnimatedNode';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedModulo extends AnimatedWithChildren {\n _a: AnimatedNode;\n _modulus: number;\n\n constructor(a: AnimatedNode, modulus: number) {\n super();\n this._a = a;\n this._modulus = modulus;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._a.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getValue(): number {\n return (\n ((this._a.__getValue() % this._modulus) + this._modulus) % this._modulus\n );\n }\n\n interpolate(\n config: InterpolationConfigType,\n ): AnimatedInterpolation {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach(): void {\n this._a.__addChild(this);\n }\n\n __detach(): void {\n this._a.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n return {\n type: 'modulus',\n input: this._a.__getNativeTag(),\n modulus: this._modulus,\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\nimport type AnimatedNode from './AnimatedNode';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedMultiplication extends AnimatedWithChildren {\n _a: AnimatedNode;\n _b: AnimatedNode;\n\n constructor(a: AnimatedNode | number, b: AnimatedNode | number) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._a.__makeNative(platformConfig);\n this._b.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getValue(): number {\n return this._a.__getValue() * this._b.__getValue();\n }\n\n interpolate(\n config: InterpolationConfigType,\n ): AnimatedInterpolation {\n return new AnimatedInterpolation(this, config);\n }\n __attach(): void {\n this._a.__addChild(this);\n this._b.__addChild(this);\n }\n\n __detach(): void {\n this._a.__removeChild(this);\n this._b.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n return {\n type: 'multiplication',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()],\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\nimport type AnimatedNode from './AnimatedNode';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedSubtraction extends AnimatedWithChildren {\n _a: AnimatedNode;\n _b: AnimatedNode;\n\n constructor(a: AnimatedNode | number, b: AnimatedNode | number) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._a.__makeNative(platformConfig);\n this._b.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getValue(): number {\n return this._a.__getValue() - this._b.__getValue();\n }\n\n interpolate(\n config: InterpolationConfigType,\n ): AnimatedInterpolation {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach(): void {\n this._a.__addChild(this);\n this._b.__addChild(this);\n }\n\n __detach(): void {\n this._a.__removeChild(this);\n this._b.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n return {\n type: 'subtraction',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()],\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {EndCallback} from '../animations/Animation';\nimport type AnimatedValue from './AnimatedValue';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedNode from './AnimatedNode';\n\nexport default class AnimatedTracking extends AnimatedNode {\n _value: AnimatedValue;\n _parent: AnimatedNode;\n _callback: ?EndCallback;\n _animationConfig: Object;\n _animationClass: any;\n _useNativeDriver: boolean;\n\n constructor(\n value: AnimatedValue,\n parent: AnimatedNode,\n animationClass: any,\n animationConfig: Object,\n callback?: ?EndCallback,\n ) {\n super();\n this._value = value;\n this._parent = parent;\n this._animationClass = animationClass;\n this._animationConfig = animationConfig;\n this._useNativeDriver =\n NativeAnimatedHelper.shouldUseNativeDriver(animationConfig);\n this._callback = callback;\n this.__attach();\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this.__isNative = true;\n this._parent.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n this._value.__makeNative(platformConfig);\n }\n\n __getValue(): Object {\n return this._parent.__getValue();\n }\n\n __attach(): void {\n this._parent.__addChild(this);\n if (this._useNativeDriver) {\n // when the tracking starts we need to convert this node to a \"native node\"\n // so that the parent node will be made \"native\" too. This is necessary as\n // if we don't do this `update` method will get called. At that point it\n // may be too late as it would mean the JS driver has already started\n // updating node values\n let {platformConfig} = this._animationConfig;\n this.__makeNative(platformConfig);\n }\n }\n\n __detach(): void {\n this._parent.__removeChild(this);\n super.__detach();\n }\n\n update(): void {\n this._value.animate(\n new this._animationClass({\n ...this._animationConfig,\n toValue: (this._animationConfig.toValue: any).__getValue(),\n }),\n this._callback,\n );\n }\n\n __getNativeConfig(): any {\n const animation = new this._animationClass({\n ...this._animationConfig,\n // remove toValue from the config as it's a ref to Animated.Value\n toValue: undefined,\n });\n const animationConfig = animation.__getNativeAnimationConfig();\n return {\n type: 'tracking',\n animationId: NativeAnimatedHelper.generateNewAnimationId(),\n animationConfig,\n toValue: this._parent.__getNativeTag(),\n value: this._value.__getNativeTag(),\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {Numeric as AnimatedNumeric} from './AnimatedImplementation';\nimport type {EndResult} from './animations/Animation';\nimport type {EndCallback} from './animations/Animation';\nimport type {DecayAnimationConfig} from './animations/DecayAnimation';\nimport type {SpringAnimationConfig} from './animations/SpringAnimation';\nimport type {TimingAnimationConfig} from './animations/TimingAnimation';\n\nimport {AnimatedEvent, attachNativeEvent} from './AnimatedEvent';\nimport AnimatedImplementation from './AnimatedImplementation';\nimport createAnimatedComponent from './createAnimatedComponent';\nimport AnimatedColor from './nodes/AnimatedColor';\nimport AnimatedInterpolation from './nodes/AnimatedInterpolation';\nimport AnimatedNode from './nodes/AnimatedNode';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\n\n/**\n * Animations are a source of flakiness in snapshot testing. This mock replaces\n * animation functions from AnimatedImplementation with empty animations for\n * predictability in tests. When possible the animation will run immediately\n * to the final state.\n */\n\n// Prevent any callback invocation from recursively triggering another\n// callback, which may trigger another animation\nlet inAnimationCallback = false;\nfunction mockAnimationStart(\n start: (callback?: ?EndCallback) => void,\n): (callback?: ?EndCallback) => void {\n return callback => {\n const guardedCallback =\n callback == null\n ? callback\n : (...args: Array) => {\n if (inAnimationCallback) {\n console.warn(\n 'Ignoring recursive animation callback when running mock animations',\n );\n return;\n }\n inAnimationCallback = true;\n try {\n callback(...args);\n } finally {\n inAnimationCallback = false;\n }\n };\n start(guardedCallback);\n };\n}\n\nexport type CompositeAnimation = {\n start: (callback?: ?EndCallback) => void,\n stop: () => void,\n reset: () => void,\n _startNativeLoop: (iterations?: number) => void,\n _isUsingNativeDriver: () => boolean,\n ...\n};\n\nconst emptyAnimation = {\n start: () => {},\n stop: () => {},\n reset: () => {},\n _startNativeLoop: () => {},\n _isUsingNativeDriver: () => {\n return false;\n },\n};\n\nconst mockCompositeAnimation = (\n animations: Array,\n): CompositeAnimation => ({\n ...emptyAnimation,\n start: mockAnimationStart((callback?: ?EndCallback): void => {\n animations.forEach(animation => animation.start());\n callback?.({finished: true});\n }),\n});\n\nconst spring = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: SpringAnimationConfig,\n): CompositeAnimation {\n const anyValue: any = value;\n return {\n ...emptyAnimation,\n start: mockAnimationStart((callback?: ?EndCallback): void => {\n anyValue.setValue(config.toValue);\n callback?.({finished: true});\n }),\n };\n};\n\nconst timing = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: TimingAnimationConfig,\n): CompositeAnimation {\n const anyValue: any = value;\n return {\n ...emptyAnimation,\n start: mockAnimationStart((callback?: ?EndCallback): void => {\n anyValue.setValue(config.toValue);\n callback?.({finished: true});\n }),\n };\n};\n\nconst decay = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: DecayAnimationConfig,\n): CompositeAnimation {\n return emptyAnimation;\n};\n\nconst sequence = function (\n animations: Array,\n): CompositeAnimation {\n return mockCompositeAnimation(animations);\n};\n\ntype ParallelConfig = {stopTogether?: boolean, ...};\nconst parallel = function (\n animations: Array,\n config?: ?ParallelConfig,\n): CompositeAnimation {\n return mockCompositeAnimation(animations);\n};\n\nconst delay = function (time: number): CompositeAnimation {\n return emptyAnimation;\n};\n\nconst stagger = function (\n time: number,\n animations: Array,\n): CompositeAnimation {\n return mockCompositeAnimation(animations);\n};\n\ntype LoopAnimationConfig = {\n iterations: number,\n resetBeforeIteration?: boolean,\n ...\n};\n\nconst loop = function (\n animation: CompositeAnimation,\n // $FlowFixMe[prop-missing]\n {iterations = -1}: LoopAnimationConfig = {},\n): CompositeAnimation {\n return emptyAnimation;\n};\n\nexport type {AnimatedNumeric as Numeric};\n\nexport default {\n Value: AnimatedValue,\n ValueXY: AnimatedValueXY,\n Color: AnimatedColor,\n Interpolation: AnimatedInterpolation,\n Node: AnimatedNode,\n decay,\n timing,\n spring,\n add: AnimatedImplementation.add,\n subtract: AnimatedImplementation.subtract,\n divide: AnimatedImplementation.divide,\n multiply: AnimatedImplementation.multiply,\n modulo: AnimatedImplementation.modulo,\n diffClamp: AnimatedImplementation.diffClamp,\n delay,\n sequence,\n parallel,\n stagger,\n loop,\n event: AnimatedImplementation.event,\n createAnimatedComponent,\n attachNativeEvent,\n forkEvent: AnimatedImplementation.forkEvent,\n unforkEvent: AnimatedImplementation.unforkEvent,\n Event: AnimatedEvent,\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {AnimatedComponentType} from '../createAnimatedComponent';\n\nimport FlatList from '../../Lists/FlatList';\nimport createAnimatedComponent from '../createAnimatedComponent';\nimport * as React from 'react';\n\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nconst FlatListWithEventThrottle = React.forwardRef(\n (\n props: React.ElementConfig,\n ref:\n | ((null | FlatList) => mixed)\n | {current: null | FlatList, ...},\n ) => ,\n);\n\nexport default (createAnimatedComponent(\n FlatListWithEventThrottle,\n): AnimatedComponentType<\n React.ElementConfig,\n React.ElementRef,\n>);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport typeof ScrollViewNativeComponent from '../Components/ScrollView/ScrollViewNativeComponent';\nimport type {ViewStyleProp} from '../StyleSheet/StyleSheet';\nimport type {\n RenderItemProps,\n RenderItemType,\n ViewabilityConfigCallbackPair,\n ViewToken,\n} from '@react-native/virtualized-lists';\n\nimport {type ScrollResponderType} from '../Components/ScrollView/ScrollView';\nimport {\n VirtualizedList,\n keyExtractor as defaultKeyExtractor,\n} from '@react-native/virtualized-lists';\nimport memoizeOne from 'memoize-one';\n\nconst View = require('../Components/View/View');\nconst StyleSheet = require('../StyleSheet/StyleSheet');\nconst deepDiffer = require('../Utilities/differ/deepDiffer');\nconst Platform = require('../Utilities/Platform');\nconst invariant = require('invariant');\nconst React = require('react');\n\ntype RequiredProps = {|\n /**\n * An array (or array-like list) of items to render. Other data types can be\n * used by targeting VirtualizedList directly.\n */\n data: ?$ArrayLike,\n|};\ntype OptionalProps = {|\n /**\n * Takes an item from `data` and renders it into the list. Example usage:\n *\n * (\n * \n * )}\n * data={[{title: 'Title Text', key: 'item1'}]}\n * renderItem={({item, separators}) => (\n * this._onPress(item)}\n * onShowUnderlay={separators.highlight}\n * onHideUnderlay={separators.unhighlight}>\n * \n * {item.title}\n * \n * \n * )}\n * />\n *\n * Provides additional metadata like `index` if you need it, as well as a more generic\n * `separators.updateProps` function which let's you set whatever props you want to change the\n * rendering of either the leading separator or trailing separator in case the more common\n * `highlight` and `unhighlight` (which set the `highlighted: boolean` prop) are insufficient for\n * your use-case.\n */\n renderItem?: ?RenderItemType,\n\n /**\n * Optional custom style for multi-item rows generated when numColumns > 1.\n */\n columnWrapperStyle?: ViewStyleProp,\n /**\n * A marker property for telling the list to re-render (since it implements `PureComponent`). If\n * any of your `renderItem`, Header, Footer, etc. functions depend on anything outside of the\n * `data` prop, stick it here and treat it immutably.\n */\n extraData?: any,\n /**\n * `getItemLayout` is an optional optimizations that let us skip measurement of dynamic content if\n * you know the height of items a priori. `getItemLayout` is the most efficient, and is easy to\n * use if you have fixed height items, for example:\n *\n * getItemLayout={(data, index) => (\n * {length: ITEM_HEIGHT, offset: ITEM_HEIGHT * index, index}\n * )}\n *\n * Adding `getItemLayout` can be a great performance boost for lists of several hundred items.\n * Remember to include separator length (height or width) in your offset calculation if you\n * specify `ItemSeparatorComponent`.\n */\n getItemLayout?: (\n data: ?$ArrayLike,\n index: number,\n ) => {\n length: number,\n offset: number,\n index: number,\n ...\n },\n /**\n * If true, renders items next to each other horizontally instead of stacked vertically.\n */\n horizontal?: ?boolean,\n /**\n * How many items to render in the initial batch. This should be enough to fill the screen but not\n * much more. Note these items will never be unmounted as part of the windowed rendering in order\n * to improve perceived performance of scroll-to-top actions.\n */\n initialNumToRender?: ?number,\n /**\n * Instead of starting at the top with the first item, start at `initialScrollIndex`. This\n * disables the \"scroll to top\" optimization that keeps the first `initialNumToRender` items\n * always rendered and immediately renders the items starting at this initial index. Requires\n * `getItemLayout` to be implemented.\n */\n initialScrollIndex?: ?number,\n /**\n * Reverses the direction of scroll. Uses scale transforms of -1.\n */\n inverted?: ?boolean,\n /**\n * Used to extract a unique key for a given item at the specified index. Key is used for caching\n * and as the react key to track item re-ordering. The default extractor checks `item.key`, then\n * falls back to using the index, like React does.\n */\n keyExtractor?: ?(item: ItemT, index: number) => string,\n /**\n * Multiple columns can only be rendered with `horizontal={false}` and will zig-zag like a\n * `flexWrap` layout. Items should all be the same height - masonry layouts are not supported.\n *\n * The default value is 1.\n */\n numColumns?: number,\n /**\n * Note: may have bugs (missing content) in some circumstances - use at your own risk.\n *\n * This may improve scroll performance for large lists.\n *\n * The default value is true for Android.\n */\n removeClippedSubviews?: boolean,\n /**\n * See `ScrollView` for flow type and further documentation.\n */\n fadingEdgeLength?: ?number,\n /**\n * Enable an optimization to memoize the item renderer to prevent unnecessary rerenders.\n */\n strictMode?: boolean,\n|};\n\n/**\n * Default Props Helper Functions\n * Use the following helper functions for default values\n */\n\n// removeClippedSubviewsOrDefault(this.props.removeClippedSubviews)\nfunction removeClippedSubviewsOrDefault(removeClippedSubviews: ?boolean) {\n return removeClippedSubviews ?? Platform.OS === 'android';\n}\n\n// numColumnsOrDefault(this.props.numColumns)\nfunction numColumnsOrDefault(numColumns: ?number) {\n return numColumns ?? 1;\n}\n\nfunction isArrayLike(data: mixed): boolean {\n // $FlowExpectedError[incompatible-use]\n return typeof Object(data).length === 'number';\n}\n\ntype FlatListProps = {|\n ...RequiredProps,\n ...OptionalProps,\n|};\n\ntype VirtualizedListProps = React.ElementConfig;\n\nexport type Props = {\n ...$Diff<\n VirtualizedListProps,\n {\n getItem: $PropertyType,\n getItemCount: $PropertyType,\n getItemLayout: $PropertyType,\n renderItem: $PropertyType,\n keyExtractor: $PropertyType,\n ...\n },\n >,\n ...FlatListProps,\n ...\n};\n\n/**\n * A performant interface for rendering simple, flat lists, supporting the most handy features:\n *\n * - Fully cross-platform.\n * - Optional horizontal mode.\n * - Configurable viewability callbacks.\n * - Header support.\n * - Footer support.\n * - Separator support.\n * - Pull to Refresh.\n * - Scroll loading.\n * - ScrollToIndex support.\n *\n * If you need section support, use [``](docs/sectionlist.html).\n *\n * Minimal Example:\n *\n * {item.key}}\n * />\n *\n * More complex, multi-select example demonstrating `PureComponent` usage for perf optimization and avoiding bugs.\n *\n * - By binding the `onPressItem` handler, the props will remain `===` and `PureComponent` will\n * prevent wasteful re-renders unless the actual `id`, `selected`, or `title` props change, even\n * if the components rendered in `MyListItem` did not have such optimizations.\n * - By passing `extraData={this.state}` to `FlatList` we make sure `FlatList` itself will re-render\n * when the `state.selected` changes. Without setting this prop, `FlatList` would not know it\n * needs to re-render any items because it is also a `PureComponent` and the prop comparison will\n * not show any changes.\n * - `keyExtractor` tells the list to use the `id`s for the react keys instead of the default `key` property.\n *\n *\n * class MyListItem extends React.PureComponent {\n * _onPress = () => {\n * this.props.onPressItem(this.props.id);\n * };\n *\n * render() {\n * const textColor = this.props.selected ? \"red\" : \"black\";\n * return (\n * \n * \n * \n * {this.props.title}\n * \n * \n * \n * );\n * }\n * }\n *\n * class MultiSelectList extends React.PureComponent {\n * state = {selected: (new Map(): Map)};\n *\n * _keyExtractor = (item, index) => item.id;\n *\n * _onPressItem = (id: string) => {\n * // updater functions are preferred for transactional updates\n * this.setState((state) => {\n * // copy the map rather than modifying state.\n * const selected = new Map(state.selected);\n * selected.set(id, !selected.get(id)); // toggle\n * return {selected};\n * });\n * };\n *\n * _renderItem = ({item}) => (\n * \n * );\n *\n * render() {\n * return (\n * \n * );\n * }\n * }\n *\n * This is a convenience wrapper around [``](docs/virtualizedlist.html),\n * and thus inherits its props (as well as those of `ScrollView`) that aren't explicitly listed\n * here, along with the following caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n * Also inherits [ScrollView Props](docs/scrollview.html#props), unless it is nested in another FlatList of same orientation.\n */\nclass FlatList extends React.PureComponent, void> {\n props: Props;\n /**\n * Scrolls to the end of the content. May be janky without `getItemLayout` prop.\n */\n scrollToEnd(params?: ?{animated?: ?boolean, ...}) {\n if (this._listRef) {\n this._listRef.scrollToEnd(params);\n }\n }\n\n /**\n * Scrolls to the item at the specified index such that it is positioned in the viewable area\n * such that `viewPosition` 0 places it at the top, 1 at the bottom, and 0.5 centered in the\n * middle. `viewOffset` is a fixed number of pixels to offset the final target position.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n scrollToIndex(params: {\n animated?: ?boolean,\n index: number,\n viewOffset?: number,\n viewPosition?: number,\n ...\n }) {\n if (this._listRef) {\n this._listRef.scrollToIndex(params);\n }\n }\n\n /**\n * Requires linear scan through data - use `scrollToIndex` instead if possible.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n scrollToItem(params: {\n animated?: ?boolean,\n item: ItemT,\n viewOffset?: number,\n viewPosition?: number,\n ...\n }) {\n if (this._listRef) {\n this._listRef.scrollToItem(params);\n }\n }\n\n /**\n * Scroll to a specific content pixel offset in the list.\n *\n * Check out [scrollToOffset](docs/virtualizedlist.html#scrolltooffset) of VirtualizedList\n */\n scrollToOffset(params: {animated?: ?boolean, offset: number, ...}) {\n if (this._listRef) {\n this._listRef.scrollToOffset(params);\n }\n }\n\n /**\n * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n * taps on items or by navigation actions.\n */\n recordInteraction() {\n if (this._listRef) {\n this._listRef.recordInteraction();\n }\n }\n\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n flashScrollIndicators() {\n if (this._listRef) {\n this._listRef.flashScrollIndicators();\n }\n }\n\n /**\n * Provides a handle to the underlying scroll responder.\n */\n getScrollResponder(): ?ScrollResponderType {\n if (this._listRef) {\n return this._listRef.getScrollResponder();\n }\n }\n\n /**\n * Provides a reference to the underlying host component\n */\n getNativeScrollRef():\n | ?React.ElementRef\n | ?React.ElementRef {\n if (this._listRef) {\n /* $FlowFixMe[incompatible-return] Suppresses errors found when fixing\n * TextInput typing */\n return this._listRef.getScrollRef();\n }\n }\n\n getScrollableNode(): any {\n if (this._listRef) {\n return this._listRef.getScrollableNode();\n }\n }\n\n setNativeProps(props: {[string]: mixed, ...}) {\n if (this._listRef) {\n this._listRef.setNativeProps(props);\n }\n }\n\n constructor(props: Props) {\n super(props);\n this._checkProps(this.props);\n if (this.props.viewabilityConfigCallbackPairs) {\n this._virtualizedListPairs =\n this.props.viewabilityConfigCallbackPairs.map(pair => ({\n viewabilityConfig: pair.viewabilityConfig,\n onViewableItemsChanged: this._createOnViewableItemsChanged(\n pair.onViewableItemsChanged,\n ),\n }));\n } else if (this.props.onViewableItemsChanged) {\n this._virtualizedListPairs.push({\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To\n * see the error delete this comment and run Flow. */\n viewabilityConfig: this.props.viewabilityConfig,\n onViewableItemsChanged: this._createOnViewableItemsChanged(\n this.props.onViewableItemsChanged,\n ),\n });\n }\n }\n\n // $FlowFixMe[missing-local-annot]\n componentDidUpdate(prevProps: Props) {\n invariant(\n prevProps.numColumns === this.props.numColumns,\n 'Changing numColumns on the fly is not supported. Change the key prop on FlatList when ' +\n 'changing the number of columns to force a fresh render of the component.',\n );\n invariant(\n prevProps.onViewableItemsChanged === this.props.onViewableItemsChanged,\n 'Changing onViewableItemsChanged on the fly is not supported',\n );\n invariant(\n !deepDiffer(prevProps.viewabilityConfig, this.props.viewabilityConfig),\n 'Changing viewabilityConfig on the fly is not supported',\n );\n invariant(\n prevProps.viewabilityConfigCallbackPairs ===\n this.props.viewabilityConfigCallbackPairs,\n 'Changing viewabilityConfigCallbackPairs on the fly is not supported',\n );\n\n this._checkProps(this.props);\n }\n\n _listRef: ?React.ElementRef;\n _virtualizedListPairs: Array = [];\n\n _captureRef = (ref: ?React.ElementRef) => {\n this._listRef = ref;\n };\n\n // $FlowFixMe[missing-local-annot]\n _checkProps(props: Props) {\n const {\n // $FlowFixMe[prop-missing] this prop doesn't exist, is only used for an invariant\n getItem,\n // $FlowFixMe[prop-missing] this prop doesn't exist, is only used for an invariant\n getItemCount,\n horizontal,\n columnWrapperStyle,\n onViewableItemsChanged,\n viewabilityConfigCallbackPairs,\n } = props;\n const numColumns = numColumnsOrDefault(this.props.numColumns);\n invariant(\n !getItem && !getItemCount,\n 'FlatList does not support custom data formats.',\n );\n if (numColumns > 1) {\n invariant(!horizontal, 'numColumns does not support horizontal.');\n } else {\n invariant(\n !columnWrapperStyle,\n 'columnWrapperStyle not supported for single column lists',\n );\n }\n invariant(\n !(onViewableItemsChanged && viewabilityConfigCallbackPairs),\n 'FlatList does not support setting both onViewableItemsChanged and ' +\n 'viewabilityConfigCallbackPairs.',\n );\n }\n\n _getItem = (\n data: $ArrayLike,\n index: number,\n ): ?(ItemT | $ReadOnlyArray) => {\n const numColumns = numColumnsOrDefault(this.props.numColumns);\n if (numColumns > 1) {\n const ret = [];\n for (let kk = 0; kk < numColumns; kk++) {\n const itemIndex = index * numColumns + kk;\n if (itemIndex < data.length) {\n const item = data[itemIndex];\n ret.push(item);\n }\n }\n return ret;\n } else {\n return data[index];\n }\n };\n\n _getItemCount = (data: ?$ArrayLike): number => {\n // Legacy behavior of FlatList was to forward \"undefined\" length if invalid\n // data like a non-arraylike object is passed. VirtualizedList would then\n // coerce this, and the math would work out to no-op. For compatibility, if\n // invalid data is passed, we tell VirtualizedList there are zero items\n // available to prevent it from trying to read from the invalid data\n // (without propagating invalidly typed data).\n if (data != null && isArrayLike(data)) {\n const numColumns = numColumnsOrDefault(this.props.numColumns);\n return numColumns > 1 ? Math.ceil(data.length / numColumns) : data.length;\n } else {\n return 0;\n }\n };\n\n _keyExtractor = (items: ItemT | Array, index: number): string => {\n const numColumns = numColumnsOrDefault(this.props.numColumns);\n const keyExtractor = this.props.keyExtractor ?? defaultKeyExtractor;\n\n if (numColumns > 1) {\n invariant(\n Array.isArray(items),\n 'FlatList: Encountered internal consistency error, expected each item to consist of an ' +\n 'array with 1-%s columns; instead, received a single item.',\n numColumns,\n );\n return items\n .map((item, kk) =>\n keyExtractor(((item: $FlowFixMe): ItemT), index * numColumns + kk),\n )\n .join(':');\n }\n\n // $FlowFixMe[incompatible-call] Can't call keyExtractor with an array\n return keyExtractor(items, index);\n };\n\n _pushMultiColumnViewable(arr: Array, v: ViewToken): void {\n const numColumns = numColumnsOrDefault(this.props.numColumns);\n const keyExtractor = this.props.keyExtractor ?? defaultKeyExtractor;\n v.item.forEach((item, ii) => {\n invariant(v.index != null, 'Missing index!');\n const index = v.index * numColumns + ii;\n arr.push({...v, item, key: keyExtractor(item, index), index});\n });\n }\n\n _createOnViewableItemsChanged(\n onViewableItemsChanged: ?(info: {\n viewableItems: Array,\n changed: Array,\n ...\n }) => void,\n // $FlowFixMe[missing-local-annot]\n ) {\n return (info: {\n viewableItems: Array,\n changed: Array,\n ...\n }) => {\n const numColumns = numColumnsOrDefault(this.props.numColumns);\n if (onViewableItemsChanged) {\n if (numColumns > 1) {\n const changed: Array = [];\n const viewableItems: Array = [];\n info.viewableItems.forEach(v =>\n this._pushMultiColumnViewable(viewableItems, v),\n );\n info.changed.forEach(v => this._pushMultiColumnViewable(changed, v));\n onViewableItemsChanged({viewableItems, changed});\n } else {\n onViewableItemsChanged(info);\n }\n }\n };\n }\n\n _renderer = (\n ListItemComponent: ?(React.ComponentType | React.Element),\n renderItem: ?RenderItemType,\n columnWrapperStyle: ?ViewStyleProp,\n numColumns: ?number,\n extraData: ?any,\n // $FlowFixMe[missing-local-annot]\n ) => {\n const cols = numColumnsOrDefault(numColumns);\n\n const render = (props: RenderItemProps): React.Node => {\n if (ListItemComponent) {\n // $FlowFixMe[not-a-component] Component isn't valid\n // $FlowFixMe[incompatible-type-arg] Component isn't valid\n // $FlowFixMe[incompatible-return] Component isn't valid\n return ;\n } else if (renderItem) {\n // $FlowFixMe[incompatible-call]\n return renderItem(props);\n } else {\n return null;\n }\n };\n\n const renderProp = (info: RenderItemProps) => {\n if (cols > 1) {\n const {item, index} = info;\n invariant(\n Array.isArray(item),\n 'Expected array of items with numColumns > 1',\n );\n return (\n \n {item.map((it, kk) => {\n const element = render({\n // $FlowFixMe[incompatible-call]\n item: it,\n index: index * cols + kk,\n separators: info.separators,\n });\n return element != null ? (\n {element}\n ) : null;\n })}\n \n );\n } else {\n return render(info);\n }\n };\n\n return ListItemComponent\n ? {ListItemComponent: renderProp}\n : {renderItem: renderProp};\n };\n\n // $FlowFixMe[missing-local-annot]\n _memoizedRenderer = memoizeOne(this._renderer);\n\n render(): React.Node {\n const {\n numColumns,\n columnWrapperStyle,\n removeClippedSubviews: _removeClippedSubviews,\n strictMode = false,\n ...restProps\n } = this.props;\n\n const renderer = strictMode ? this._memoizedRenderer : this._renderer;\n\n return (\n // $FlowFixMe[incompatible-exact] - `restProps` (`Props`) is inexact.\n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n row: {flexDirection: 'row'},\n});\n\nmodule.exports = FlatList;\n","'use strict';\n\nvar safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nmodule.exports = memoizeOne;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nimport {keyExtractor} from './Lists/VirtualizeUtils';\n\nimport typeof VirtualizedList from './Lists/VirtualizedList';\nimport typeof VirtualizedSectionList from './Lists/VirtualizedSectionList';\nimport {typeof VirtualizedListContextResetter} from './Lists/VirtualizedListContext';\nimport typeof ViewabilityHelper from './Lists/ViewabilityHelper';\nimport typeof FillRateHelper from './Lists/FillRateHelper';\n\nexport type {\n ViewToken,\n ViewabilityConfig,\n ViewabilityConfigCallbackPair,\n} from './Lists/ViewabilityHelper';\nexport type {\n CellRendererProps,\n RenderItemProps,\n RenderItemType,\n Separators,\n} from './Lists/VirtualizedListProps';\nexport type {\n Props as VirtualizedSectionListProps,\n ScrollToLocationParamsType,\n SectionBase,\n} from './Lists/VirtualizedSectionList';\nexport type {FillRateInfo} from './Lists/FillRateHelper';\n\nmodule.exports = {\n keyExtractor,\n\n get VirtualizedList(): VirtualizedList {\n return require('./Lists/VirtualizedList');\n },\n get VirtualizedSectionList(): VirtualizedSectionList {\n return require('./Lists/VirtualizedSectionList');\n },\n get VirtualizedListContextResetter(): VirtualizedListContextResetter {\n const VirtualizedListContext = require('./Lists/VirtualizedListContext');\n return VirtualizedListContext.VirtualizedListContextResetter;\n },\n get ViewabilityHelper(): ViewabilityHelper {\n return require('./Lists/ViewabilityHelper');\n },\n get FillRateHelper(): FillRateHelper {\n return require('./Lists/FillRateHelper');\n },\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {FrameMetricProps} from './VirtualizedListProps';\n\n/**\n * Used to find the indices of the frames that overlap the given offsets. Useful for finding the\n * items that bound different windows of content, such as the visible area or the buffered overscan\n * area.\n */\nexport function elementsThatOverlapOffsets(\n offsets: Array,\n props: FrameMetricProps,\n getFrameMetrics: (\n index: number,\n props: FrameMetricProps,\n ) => {\n length: number,\n offset: number,\n ...\n },\n zoomScale: number = 1,\n): Array {\n const itemCount = props.getItemCount(props.data);\n const result = [];\n for (let offsetIndex = 0; offsetIndex < offsets.length; offsetIndex++) {\n const currentOffset = offsets[offsetIndex];\n let left = 0;\n let right = itemCount - 1;\n\n while (left <= right) {\n // eslint-disable-next-line no-bitwise\n const mid = left + ((right - left) >>> 1);\n const frame = getFrameMetrics(mid, props);\n const scaledOffsetStart = frame.offset * zoomScale;\n const scaledOffsetEnd = (frame.offset + frame.length) * zoomScale;\n\n // We want the first frame that contains the offset, with inclusive bounds. Thus, for the\n // first frame the scaledOffsetStart is inclusive, while for other frames it is exclusive.\n if (\n (mid === 0 && currentOffset < scaledOffsetStart) ||\n (mid !== 0 && currentOffset <= scaledOffsetStart)\n ) {\n right = mid - 1;\n } else if (currentOffset > scaledOffsetEnd) {\n left = mid + 1;\n } else {\n result[offsetIndex] = mid;\n break;\n }\n }\n }\n\n return result;\n}\n\n/**\n * Computes the number of elements in the `next` range that are new compared to the `prev` range.\n * Handy for calculating how many new items will be rendered when the render window changes so we\n * can restrict the number of new items render at once so that content can appear on the screen\n * faster.\n */\nexport function newRangeCount(\n prev: {\n first: number,\n last: number,\n ...\n },\n next: {\n first: number,\n last: number,\n ...\n },\n): number {\n return (\n next.last -\n next.first +\n 1 -\n Math.max(\n 0,\n 1 + Math.min(next.last, prev.last) - Math.max(next.first, prev.first),\n )\n );\n}\n\n/**\n * Custom logic for determining which items should be rendered given the current frame and scroll\n * metrics, as well as the previous render state. The algorithm may evolve over time, but generally\n * prioritizes the visible area first, then expands that with overscan regions ahead and behind,\n * biased in the direction of scroll.\n */\nexport function computeWindowedRenderLimits(\n props: FrameMetricProps,\n maxToRenderPerBatch: number,\n windowSize: number,\n prev: {\n first: number,\n last: number,\n },\n getFrameMetricsApprox: (\n index: number,\n props: FrameMetricProps,\n ) => {\n length: number,\n offset: number,\n ...\n },\n scrollMetrics: {\n dt: number,\n offset: number,\n velocity: number,\n visibleLength: number,\n zoomScale: number,\n ...\n },\n): {\n first: number,\n last: number,\n} {\n const itemCount = props.getItemCount(props.data);\n if (itemCount === 0) {\n return {first: 0, last: -1};\n }\n const {offset, velocity, visibleLength, zoomScale = 1} = scrollMetrics;\n\n // Start with visible area, then compute maximum overscan region by expanding from there, biased\n // in the direction of scroll. Total overscan area is capped, which should cap memory consumption\n // too.\n const visibleBegin = Math.max(0, offset);\n const visibleEnd = visibleBegin + visibleLength;\n const overscanLength = (windowSize - 1) * visibleLength;\n\n // Considering velocity seems to introduce more churn than it's worth.\n const leadFactor = 0.5; // Math.max(0, Math.min(1, velocity / 25 + 0.5));\n\n const fillPreference =\n velocity > 1 ? 'after' : velocity < -1 ? 'before' : 'none';\n\n const overscanBegin = Math.max(\n 0,\n visibleBegin - (1 - leadFactor) * overscanLength,\n );\n const overscanEnd = Math.max(0, visibleEnd + leadFactor * overscanLength);\n\n const lastItemOffset =\n getFrameMetricsApprox(itemCount - 1, props).offset * zoomScale;\n if (lastItemOffset < overscanBegin) {\n // Entire list is before our overscan window\n return {\n first: Math.max(0, itemCount - 1 - maxToRenderPerBatch),\n last: itemCount - 1,\n };\n }\n\n // Find the indices that correspond to the items at the render boundaries we're targeting.\n let [overscanFirst, first, last, overscanLast] = elementsThatOverlapOffsets(\n [overscanBegin, visibleBegin, visibleEnd, overscanEnd],\n props,\n getFrameMetricsApprox,\n zoomScale,\n );\n overscanFirst = overscanFirst == null ? 0 : overscanFirst;\n first = first == null ? Math.max(0, overscanFirst) : first;\n overscanLast = overscanLast == null ? itemCount - 1 : overscanLast;\n last =\n last == null\n ? Math.min(overscanLast, first + maxToRenderPerBatch - 1)\n : last;\n const visible = {first, last};\n\n // We want to limit the number of new cells we're rendering per batch so that we can fill the\n // content on the screen quickly. If we rendered the entire overscan window at once, the user\n // could be staring at white space for a long time waiting for a bunch of offscreen content to\n // render.\n let newCellCount = newRangeCount(prev, visible);\n\n while (true) {\n if (first <= overscanFirst && last >= overscanLast) {\n // If we fill the entire overscan range, we're done.\n break;\n }\n const maxNewCells = newCellCount >= maxToRenderPerBatch;\n const firstWillAddMore = first <= prev.first || first > prev.last;\n const firstShouldIncrement =\n first > overscanFirst && (!maxNewCells || !firstWillAddMore);\n const lastWillAddMore = last >= prev.last || last < prev.first;\n const lastShouldIncrement =\n last < overscanLast && (!maxNewCells || !lastWillAddMore);\n if (maxNewCells && !firstShouldIncrement && !lastShouldIncrement) {\n // We only want to stop if we've hit maxNewCells AND we cannot increment first or last\n // without rendering new items. This let's us preserve as many already rendered items as\n // possible, reducing render churn and keeping the rendered overscan range as large as\n // possible.\n break;\n }\n if (\n firstShouldIncrement &&\n !(fillPreference === 'after' && lastShouldIncrement && lastWillAddMore)\n ) {\n if (firstWillAddMore) {\n newCellCount++;\n }\n first--;\n }\n if (\n lastShouldIncrement &&\n !(fillPreference === 'before' && firstShouldIncrement && firstWillAddMore)\n ) {\n if (lastWillAddMore) {\n newCellCount++;\n }\n last++;\n }\n }\n if (\n !(\n last >= first &&\n first >= 0 &&\n last < itemCount &&\n first >= overscanFirst &&\n last <= overscanLast &&\n first <= visible.first &&\n last >= visible.last\n )\n ) {\n throw new Error(\n 'Bad window calculation ' +\n JSON.stringify({\n first,\n last,\n itemCount,\n overscanFirst,\n overscanLast,\n visible,\n }),\n );\n }\n return {first, last};\n}\n\nexport function keyExtractor(item: any, index: number): string {\n if (typeof item === 'object' && item?.key != null) {\n return item.key;\n }\n if (typeof item === 'object' && item?.id != null) {\n return item.id;\n }\n return String(index);\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {ScrollResponderType} from 'react-native/Libraries/Components/ScrollView/ScrollView';\nimport type {ViewStyleProp} from 'react-native/Libraries/StyleSheet/StyleSheet';\nimport type {\n LayoutEvent,\n ScrollEvent,\n} from 'react-native/Libraries/Types/CoreEventTypes';\nimport type {ViewToken} from './ViewabilityHelper';\nimport type {\n FrameMetricProps,\n Item,\n Props,\n RenderItemProps,\n RenderItemType,\n Separators,\n} from './VirtualizedListProps';\n\nimport {\n RefreshControl,\n ScrollView,\n View,\n StyleSheet,\n findNodeHandle,\n} from 'react-native';\nimport Batchinator from '../Interaction/Batchinator';\nimport clamp from '../Utilities/clamp';\nimport infoLog from '../Utilities/infoLog';\nimport {CellRenderMask} from './CellRenderMask';\nimport ChildListCollection from './ChildListCollection';\nimport FillRateHelper from './FillRateHelper';\nimport StateSafePureComponent from './StateSafePureComponent';\nimport ViewabilityHelper from './ViewabilityHelper';\nimport CellRenderer from './VirtualizedListCellRenderer';\nimport {\n VirtualizedListCellContextProvider,\n VirtualizedListContext,\n VirtualizedListContextProvider,\n} from './VirtualizedListContext.js';\nimport {\n computeWindowedRenderLimits,\n keyExtractor as defaultKeyExtractor,\n} from './VirtualizeUtils';\nimport invariant from 'invariant';\nimport nullthrows from 'nullthrows';\nimport * as React from 'react';\n\nexport type {RenderItemProps, RenderItemType, Separators};\n\nconst ON_EDGE_REACHED_EPSILON = 0.001;\n\nlet _usedIndexForKey = false;\nlet _keylessItemComponentName: string = '';\n\ntype ViewabilityHelperCallbackTuple = {\n viewabilityHelper: ViewabilityHelper,\n onViewableItemsChanged: (info: {\n viewableItems: Array,\n changed: Array,\n ...\n }) => void,\n ...\n};\n\ntype State = {\n renderMask: CellRenderMask,\n cellsAroundViewport: {first: number, last: number},\n // Used to track items added at the start of the list for maintainVisibleContentPosition.\n firstVisibleItemKey: ?string,\n // When > 0 the scroll position available in JS is considered stale and should not be used.\n pendingScrollUpdateCount: number,\n};\n\n/**\n * Default Props Helper Functions\n * Use the following helper functions for default values\n */\n\n// horizontalOrDefault(this.props.horizontal)\nfunction horizontalOrDefault(horizontal: ?boolean) {\n return horizontal ?? false;\n}\n\n// initialNumToRenderOrDefault(this.props.initialNumToRender)\nfunction initialNumToRenderOrDefault(initialNumToRender: ?number) {\n return initialNumToRender ?? 10;\n}\n\n// maxToRenderPerBatchOrDefault(this.props.maxToRenderPerBatch)\nfunction maxToRenderPerBatchOrDefault(maxToRenderPerBatch: ?number) {\n return maxToRenderPerBatch ?? 10;\n}\n\n// onStartReachedThresholdOrDefault(this.props.onStartReachedThreshold)\nfunction onStartReachedThresholdOrDefault(onStartReachedThreshold: ?number) {\n return onStartReachedThreshold ?? 2;\n}\n\n// onEndReachedThresholdOrDefault(this.props.onEndReachedThreshold)\nfunction onEndReachedThresholdOrDefault(onEndReachedThreshold: ?number) {\n return onEndReachedThreshold ?? 2;\n}\n\n// getScrollingThreshold(visibleLength, onEndReachedThreshold)\nfunction getScrollingThreshold(threshold: number, visibleLength: number) {\n return (threshold * visibleLength) / 2;\n}\n\n// scrollEventThrottleOrDefault(this.props.scrollEventThrottle)\nfunction scrollEventThrottleOrDefault(scrollEventThrottle: ?number) {\n return scrollEventThrottle ?? 50;\n}\n\n// windowSizeOrDefault(this.props.windowSize)\nfunction windowSizeOrDefault(windowSize: ?number) {\n return windowSize ?? 21;\n}\n\nfunction findLastWhere(\n arr: $ReadOnlyArray,\n predicate: (element: T) => boolean,\n): T | null {\n for (let i = arr.length - 1; i >= 0; i--) {\n if (predicate(arr[i])) {\n return arr[i];\n }\n }\n\n return null;\n}\n\n/**\n * Base implementation for the more convenient [``](https://reactnative.dev/docs/flatlist)\n * and [``](https://reactnative.dev/docs/sectionlist) components, which are also better\n * documented. In general, this should only really be used if you need more flexibility than\n * `FlatList` provides, e.g. for use with immutable data instead of plain arrays.\n *\n * Virtualization massively improves memory consumption and performance of large lists by\n * maintaining a finite render window of active items and replacing all items outside of the render\n * window with appropriately sized blank space. The window adapts to scrolling behavior, and items\n * are rendered incrementally with low-pri (after any running interactions) if they are far from the\n * visible area, or with hi-pri otherwise to minimize the potential of seeing blank space.\n *\n * Some caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` or `id` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n * - As an effort to remove defaultProps, use helper functions when referencing certain props\n *\n */\nclass VirtualizedList extends StateSafePureComponent {\n static contextType: typeof VirtualizedListContext = VirtualizedListContext;\n\n // scrollToEnd may be janky without getItemLayout prop\n scrollToEnd(params?: ?{animated?: ?boolean, ...}) {\n const animated = params ? params.animated : true;\n const veryLast = this.props.getItemCount(this.props.data) - 1;\n if (veryLast < 0) {\n return;\n }\n const frame = this.__getFrameMetricsApprox(veryLast, this.props);\n const offset = Math.max(\n 0,\n frame.offset +\n frame.length +\n this._footerLength -\n this._scrollMetrics.visibleLength,\n );\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn(\n 'No scrollTo method provided. This may be because you have two nested ' +\n 'VirtualizedLists with the same orientation, or because you are ' +\n 'using a custom component that does not implement scrollTo.',\n );\n return;\n }\n\n this._scrollRef.scrollTo(\n horizontalOrDefault(this.props.horizontal)\n ? {x: offset, animated}\n : {y: offset, animated},\n );\n }\n\n // scrollToIndex may be janky without getItemLayout prop\n scrollToIndex(params: {\n animated?: ?boolean,\n index: number,\n viewOffset?: number,\n viewPosition?: number,\n ...\n }): $FlowFixMe {\n const {\n data,\n horizontal,\n getItemCount,\n getItemLayout,\n onScrollToIndexFailed,\n } = this.props;\n const {animated, index, viewOffset, viewPosition} = params;\n invariant(\n index >= 0,\n `scrollToIndex out of range: requested index ${index} but minimum is 0`,\n );\n invariant(\n getItemCount(data) >= 1,\n `scrollToIndex out of range: item length ${getItemCount(\n data,\n )} but minimum is 1`,\n );\n invariant(\n index < getItemCount(data),\n `scrollToIndex out of range: requested index ${index} is out of 0 to ${\n getItemCount(data) - 1\n }`,\n );\n if (!getItemLayout && index > this._highestMeasuredFrameIndex) {\n invariant(\n !!onScrollToIndexFailed,\n 'scrollToIndex should be used in conjunction with getItemLayout or onScrollToIndexFailed, ' +\n 'otherwise there is no way to know the location of offscreen indices or handle failures.',\n );\n onScrollToIndexFailed({\n averageItemLength: this._averageCellLength,\n highestMeasuredFrameIndex: this._highestMeasuredFrameIndex,\n index,\n });\n return;\n }\n const frame = this.__getFrameMetricsApprox(Math.floor(index), this.props);\n const offset =\n Math.max(\n 0,\n this._getOffsetApprox(index, this.props) -\n (viewPosition || 0) *\n (this._scrollMetrics.visibleLength - frame.length),\n ) - (viewOffset || 0);\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn(\n 'No scrollTo method provided. This may be because you have two nested ' +\n 'VirtualizedLists with the same orientation, or because you are ' +\n 'using a custom component that does not implement scrollTo.',\n );\n return;\n }\n\n this._scrollRef.scrollTo(\n horizontal ? {x: offset, animated} : {y: offset, animated},\n );\n }\n\n // scrollToItem may be janky without getItemLayout prop. Required linear scan through items -\n // use scrollToIndex instead if possible.\n scrollToItem(params: {\n animated?: ?boolean,\n item: Item,\n viewOffset?: number,\n viewPosition?: number,\n ...\n }) {\n const {item} = params;\n const {data, getItem, getItemCount} = this.props;\n const itemCount = getItemCount(data);\n for (let index = 0; index < itemCount; index++) {\n if (getItem(data, index) === item) {\n this.scrollToIndex({...params, index});\n break;\n }\n }\n }\n\n /**\n * Scroll to a specific content pixel offset in the list.\n *\n * Param `offset` expects the offset to scroll to.\n * In case of `horizontal` is true, the offset is the x-value,\n * in any other case the offset is the y-value.\n *\n * Param `animated` (`true` by default) defines whether the list\n * should do an animation while scrolling.\n */\n scrollToOffset(params: {animated?: ?boolean, offset: number, ...}) {\n const {animated, offset} = params;\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn(\n 'No scrollTo method provided. This may be because you have two nested ' +\n 'VirtualizedLists with the same orientation, or because you are ' +\n 'using a custom component that does not implement scrollTo.',\n );\n return;\n }\n\n this._scrollRef.scrollTo(\n horizontalOrDefault(this.props.horizontal)\n ? {x: offset, animated}\n : {y: offset, animated},\n );\n }\n\n recordInteraction() {\n this._nestedChildLists.forEach(childList => {\n childList.recordInteraction();\n });\n this._viewabilityTuples.forEach(t => {\n t.viewabilityHelper.recordInteraction();\n });\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n }\n\n flashScrollIndicators() {\n if (this._scrollRef == null) {\n return;\n }\n\n this._scrollRef.flashScrollIndicators();\n }\n\n /**\n * Provides a handle to the underlying scroll responder.\n * Note that `this._scrollRef` might not be a `ScrollView`, so we\n * need to check that it responds to `getScrollResponder` before calling it.\n */\n getScrollResponder(): ?ScrollResponderType {\n if (this._scrollRef && this._scrollRef.getScrollResponder) {\n return this._scrollRef.getScrollResponder();\n }\n }\n\n getScrollableNode(): ?number {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n return this._scrollRef.getScrollableNode();\n } else {\n return findNodeHandle(this._scrollRef);\n }\n }\n\n getScrollRef():\n | ?React.ElementRef\n | ?React.ElementRef {\n if (this._scrollRef && this._scrollRef.getScrollRef) {\n return this._scrollRef.getScrollRef();\n } else {\n return this._scrollRef;\n }\n }\n\n setNativeProps(props: Object) {\n if (this._scrollRef) {\n this._scrollRef.setNativeProps(props);\n }\n }\n\n _getCellKey(): string {\n return this.context?.cellKey || 'rootList';\n }\n\n // $FlowFixMe[missing-local-annot]\n _getScrollMetrics = () => {\n return this._scrollMetrics;\n };\n\n hasMore(): boolean {\n return this._hasMore;\n }\n\n // $FlowFixMe[missing-local-annot]\n _getOutermostParentListRef = () => {\n if (this._isNestedWithSameOrientation()) {\n return this.context.getOutermostParentListRef();\n } else {\n return this;\n }\n };\n\n _registerAsNestedChild = (childList: {\n cellKey: string,\n ref: React.ElementRef,\n }): void => {\n this._nestedChildLists.add(childList.ref, childList.cellKey);\n if (this._hasInteracted) {\n childList.ref.recordInteraction();\n }\n };\n\n _unregisterAsNestedChild = (childList: {\n ref: React.ElementRef,\n }): void => {\n this._nestedChildLists.remove(childList.ref);\n };\n\n state: State;\n\n constructor(props: Props) {\n super(props);\n this._checkProps(props);\n\n this._fillRateHelper = new FillRateHelper(this._getFrameMetrics);\n this._updateCellsToRenderBatcher = new Batchinator(\n this._updateCellsToRender,\n this.props.updateCellsBatchingPeriod ?? 50,\n );\n\n if (this.props.viewabilityConfigCallbackPairs) {\n this._viewabilityTuples = this.props.viewabilityConfigCallbackPairs.map(\n pair => ({\n viewabilityHelper: new ViewabilityHelper(pair.viewabilityConfig),\n onViewableItemsChanged: pair.onViewableItemsChanged,\n }),\n );\n } else {\n const {onViewableItemsChanged, viewabilityConfig} = this.props;\n if (onViewableItemsChanged) {\n this._viewabilityTuples.push({\n viewabilityHelper: new ViewabilityHelper(viewabilityConfig),\n onViewableItemsChanged: onViewableItemsChanged,\n });\n }\n }\n\n const initialRenderRegion = VirtualizedList._initialRenderRegion(props);\n\n const minIndexForVisible =\n this.props.maintainVisibleContentPosition?.minIndexForVisible ?? 0;\n\n this.state = {\n cellsAroundViewport: initialRenderRegion,\n renderMask: VirtualizedList._createRenderMask(props, initialRenderRegion),\n firstVisibleItemKey:\n this.props.getItemCount(this.props.data) > minIndexForVisible\n ? VirtualizedList._getItemKey(this.props, minIndexForVisible)\n : null,\n // When we have a non-zero initialScrollIndex, we will receive a\n // scroll event later so this will prevent the window from updating\n // until we get a valid offset.\n pendingScrollUpdateCount:\n this.props.initialScrollIndex != null &&\n this.props.initialScrollIndex > 0\n ? 1\n : 0,\n };\n }\n\n _checkProps(props: Props) {\n const {onScroll, windowSize, getItemCount, data, initialScrollIndex} =\n props;\n\n invariant(\n // $FlowFixMe[prop-missing]\n !onScroll || !onScroll.__isNative,\n 'Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent ' +\n 'to support native onScroll events with useNativeDriver',\n );\n invariant(\n windowSizeOrDefault(windowSize) > 0,\n 'VirtualizedList: The windowSize prop must be present and set to a value greater than 0.',\n );\n\n invariant(\n getItemCount,\n 'VirtualizedList: The \"getItemCount\" prop must be provided',\n );\n\n const itemCount = getItemCount(data);\n\n if (\n initialScrollIndex != null &&\n !this._hasTriggeredInitialScrollToIndex &&\n (initialScrollIndex < 0 ||\n (itemCount > 0 && initialScrollIndex >= itemCount)) &&\n !this._hasWarned.initialScrollIndex\n ) {\n console.warn(\n `initialScrollIndex \"${initialScrollIndex}\" is not valid (list has ${itemCount} items)`,\n );\n this._hasWarned.initialScrollIndex = true;\n }\n\n if (__DEV__ && !this._hasWarned.flexWrap) {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n const flatStyles = StyleSheet.flatten(this.props.contentContainerStyle);\n if (flatStyles != null && flatStyles.flexWrap === 'wrap') {\n console.warn(\n '`flexWrap: `wrap`` is not supported with the `VirtualizedList` components.' +\n 'Consider using `numColumns` with `FlatList` instead.',\n );\n this._hasWarned.flexWrap = true;\n }\n }\n }\n\n static _findItemIndexWithKey(\n props: Props,\n key: string,\n hint: ?number,\n ): ?number {\n const itemCount = props.getItemCount(props.data);\n if (hint != null && hint >= 0 && hint < itemCount) {\n const curKey = VirtualizedList._getItemKey(props, hint);\n if (curKey === key) {\n return hint;\n }\n }\n for (let ii = 0; ii < itemCount; ii++) {\n const curKey = VirtualizedList._getItemKey(props, ii);\n if (curKey === key) {\n return ii;\n }\n }\n return null;\n }\n\n static _getItemKey(\n props: {\n data: Props['data'],\n getItem: Props['getItem'],\n keyExtractor: Props['keyExtractor'],\n ...\n },\n index: number,\n ): string {\n const item = props.getItem(props.data, index);\n return VirtualizedList._keyExtractor(item, index, props);\n }\n\n static _createRenderMask(\n props: Props,\n cellsAroundViewport: {first: number, last: number},\n additionalRegions?: ?$ReadOnlyArray<{first: number, last: number}>,\n ): CellRenderMask {\n const itemCount = props.getItemCount(props.data);\n\n invariant(\n cellsAroundViewport.first >= 0 &&\n cellsAroundViewport.last >= cellsAroundViewport.first - 1 &&\n cellsAroundViewport.last < itemCount,\n `Invalid cells around viewport \"[${cellsAroundViewport.first}, ${cellsAroundViewport.last}]\" was passed to VirtualizedList._createRenderMask`,\n );\n\n const renderMask = new CellRenderMask(itemCount);\n\n if (itemCount > 0) {\n const allRegions = [cellsAroundViewport, ...(additionalRegions ?? [])];\n for (const region of allRegions) {\n renderMask.addCells(region);\n }\n\n // The initially rendered cells are retained as part of the\n // \"scroll-to-top\" optimization\n if (props.initialScrollIndex == null || props.initialScrollIndex <= 0) {\n const initialRegion = VirtualizedList._initialRenderRegion(props);\n renderMask.addCells(initialRegion);\n }\n\n // The layout coordinates of sticker headers may be off-screen while the\n // actual header is on-screen. Keep the most recent before the viewport\n // rendered, even if its layout coordinates are not in viewport.\n const stickyIndicesSet = new Set(props.stickyHeaderIndices);\n VirtualizedList._ensureClosestStickyHeader(\n props,\n stickyIndicesSet,\n renderMask,\n cellsAroundViewport.first,\n );\n }\n\n return renderMask;\n }\n\n static _initialRenderRegion(props: Props): {first: number, last: number} {\n const itemCount = props.getItemCount(props.data);\n\n const firstCellIndex = Math.max(\n 0,\n Math.min(itemCount - 1, Math.floor(props.initialScrollIndex ?? 0)),\n );\n\n const lastCellIndex =\n Math.min(\n itemCount,\n firstCellIndex + initialNumToRenderOrDefault(props.initialNumToRender),\n ) - 1;\n\n return {\n first: firstCellIndex,\n last: lastCellIndex,\n };\n }\n\n static _ensureClosestStickyHeader(\n props: Props,\n stickyIndicesSet: Set,\n renderMask: CellRenderMask,\n cellIdx: number,\n ) {\n const stickyOffset = props.ListHeaderComponent ? 1 : 0;\n\n for (let itemIdx = cellIdx - 1; itemIdx >= 0; itemIdx--) {\n if (stickyIndicesSet.has(itemIdx + stickyOffset)) {\n renderMask.addCells({first: itemIdx, last: itemIdx});\n break;\n }\n }\n }\n\n _adjustCellsAroundViewport(\n props: Props,\n cellsAroundViewport: {first: number, last: number},\n pendingScrollUpdateCount: number,\n ): {first: number, last: number} {\n const {data, getItemCount} = props;\n const onEndReachedThreshold = onEndReachedThresholdOrDefault(\n props.onEndReachedThreshold,\n );\n const {contentLength, offset, visibleLength} = this._scrollMetrics;\n const distanceFromEnd = contentLength - visibleLength - offset;\n\n // Wait until the scroll view metrics have been set up. And until then,\n // we will trust the initialNumToRender suggestion\n if (visibleLength <= 0 || contentLength <= 0) {\n return cellsAroundViewport.last >= getItemCount(data)\n ? VirtualizedList._constrainToItemCount(cellsAroundViewport, props)\n : cellsAroundViewport;\n }\n\n let newCellsAroundViewport: {first: number, last: number};\n if (props.disableVirtualization) {\n const renderAhead =\n distanceFromEnd < onEndReachedThreshold * visibleLength\n ? maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch)\n : 0;\n\n newCellsAroundViewport = {\n first: 0,\n last: Math.min(\n cellsAroundViewport.last + renderAhead,\n getItemCount(data) - 1,\n ),\n };\n } else {\n // If we have a pending scroll update, we should not adjust the render window as it\n // might override the correct window.\n if (pendingScrollUpdateCount > 0) {\n return cellsAroundViewport.last >= getItemCount(data)\n ? VirtualizedList._constrainToItemCount(cellsAroundViewport, props)\n : cellsAroundViewport;\n }\n\n newCellsAroundViewport = computeWindowedRenderLimits(\n props,\n maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch),\n windowSizeOrDefault(props.windowSize),\n cellsAroundViewport,\n this.__getFrameMetricsApprox,\n this._scrollMetrics,\n );\n invariant(\n newCellsAroundViewport.last < getItemCount(data),\n 'computeWindowedRenderLimits() should return range in-bounds',\n );\n }\n\n if (this._nestedChildLists.size() > 0) {\n // If some cell in the new state has a child list in it, we should only render\n // up through that item, so that we give that list a chance to render.\n // Otherwise there's churn from multiple child lists mounting and un-mounting\n // their items.\n\n // Will this prevent rendering if the nested list doesn't realize the end?\n const childIdx = this._findFirstChildWithMore(\n newCellsAroundViewport.first,\n newCellsAroundViewport.last,\n );\n\n newCellsAroundViewport.last = childIdx ?? newCellsAroundViewport.last;\n }\n\n return newCellsAroundViewport;\n }\n\n _findFirstChildWithMore(first: number, last: number): number | null {\n for (let ii = first; ii <= last; ii++) {\n const cellKeyForIndex = this._indicesToKeys.get(ii);\n if (\n cellKeyForIndex != null &&\n this._nestedChildLists.anyInCell(cellKeyForIndex, childList =>\n childList.hasMore(),\n )\n ) {\n return ii;\n }\n }\n\n return null;\n }\n\n componentDidMount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.registerAsNestedChild({\n ref: this,\n cellKey: this.context.cellKey,\n });\n }\n }\n\n componentWillUnmount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.unregisterAsNestedChild({ref: this});\n }\n this._updateCellsToRenderBatcher.dispose({abort: true});\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.dispose();\n });\n this._fillRateHelper.deactivateAndFlush();\n }\n\n static getDerivedStateFromProps(newProps: Props, prevState: State): State {\n // first and last could be stale (e.g. if a new, shorter items props is passed in), so we make\n // sure we're rendering a reasonable range here.\n const itemCount = newProps.getItemCount(newProps.data);\n if (itemCount === prevState.renderMask.numCells()) {\n return prevState;\n }\n\n let maintainVisibleContentPositionAdjustment: ?number = null;\n const prevFirstVisibleItemKey = prevState.firstVisibleItemKey;\n const minIndexForVisible =\n newProps.maintainVisibleContentPosition?.minIndexForVisible ?? 0;\n const newFirstVisibleItemKey =\n newProps.getItemCount(newProps.data) > minIndexForVisible\n ? VirtualizedList._getItemKey(newProps, minIndexForVisible)\n : null;\n if (\n newProps.maintainVisibleContentPosition != null &&\n prevFirstVisibleItemKey != null &&\n newFirstVisibleItemKey != null\n ) {\n if (newFirstVisibleItemKey !== prevFirstVisibleItemKey) {\n // Fast path if items were added at the start of the list.\n const hint =\n itemCount - prevState.renderMask.numCells() + minIndexForVisible;\n const firstVisibleItemIndex = VirtualizedList._findItemIndexWithKey(\n newProps,\n prevFirstVisibleItemKey,\n hint,\n );\n maintainVisibleContentPositionAdjustment =\n firstVisibleItemIndex != null\n ? firstVisibleItemIndex - minIndexForVisible\n : null;\n } else {\n maintainVisibleContentPositionAdjustment = null;\n }\n }\n\n const constrainedCells = VirtualizedList._constrainToItemCount(\n maintainVisibleContentPositionAdjustment != null\n ? {\n first:\n prevState.cellsAroundViewport.first +\n maintainVisibleContentPositionAdjustment,\n last:\n prevState.cellsAroundViewport.last +\n maintainVisibleContentPositionAdjustment,\n }\n : prevState.cellsAroundViewport,\n newProps,\n );\n\n return {\n cellsAroundViewport: constrainedCells,\n renderMask: VirtualizedList._createRenderMask(newProps, constrainedCells),\n firstVisibleItemKey: newFirstVisibleItemKey,\n pendingScrollUpdateCount:\n maintainVisibleContentPositionAdjustment != null\n ? prevState.pendingScrollUpdateCount + 1\n : prevState.pendingScrollUpdateCount,\n };\n }\n\n _pushCells(\n cells: Array,\n stickyHeaderIndices: Array,\n stickyIndicesFromProps: Set,\n first: number,\n last: number,\n inversionStyle: ViewStyleProp,\n ) {\n const {\n CellRendererComponent,\n ItemSeparatorComponent,\n ListHeaderComponent,\n ListItemComponent,\n data,\n debug,\n getItem,\n getItemCount,\n getItemLayout,\n horizontal,\n renderItem,\n } = this.props;\n const stickyOffset = ListHeaderComponent ? 1 : 0;\n const end = getItemCount(data) - 1;\n let prevCellKey;\n last = Math.min(end, last);\n\n for (let ii = first; ii <= last; ii++) {\n const item = getItem(data, ii);\n const key = VirtualizedList._keyExtractor(item, ii, this.props);\n\n this._indicesToKeys.set(ii, key);\n if (stickyIndicesFromProps.has(ii + stickyOffset)) {\n stickyHeaderIndices.push(cells.length);\n }\n\n const shouldListenForLayout =\n getItemLayout == null || debug || this._fillRateHelper.enabled();\n\n cells.push(\n this._onCellFocusCapture(key)}\n onUnmount={this._onCellUnmount}\n ref={ref => {\n this._cellRefs[key] = ref;\n }}\n renderItem={renderItem}\n {...(shouldListenForLayout && {\n onCellLayout: this._onCellLayout,\n })}\n />,\n );\n prevCellKey = key;\n }\n }\n\n static _constrainToItemCount(\n cells: {first: number, last: number},\n props: Props,\n ): {first: number, last: number} {\n const itemCount = props.getItemCount(props.data);\n const last = Math.min(itemCount - 1, cells.last);\n\n const maxToRenderPerBatch = maxToRenderPerBatchOrDefault(\n props.maxToRenderPerBatch,\n );\n\n return {\n first: clamp(0, itemCount - 1 - maxToRenderPerBatch, cells.first),\n last,\n };\n }\n\n _onUpdateSeparators = (keys: Array, newProps: Object) => {\n keys.forEach(key => {\n const ref = key != null && this._cellRefs[key];\n ref && ref.updateSeparatorProps(newProps);\n });\n };\n\n _isNestedWithSameOrientation(): boolean {\n const nestedContext = this.context;\n return !!(\n nestedContext &&\n !!nestedContext.horizontal === horizontalOrDefault(this.props.horizontal)\n );\n }\n\n _getSpacerKey = (isVertical: boolean): string =>\n isVertical ? 'height' : 'width';\n\n static _keyExtractor(\n item: Item,\n index: number,\n props: {\n keyExtractor?: ?(item: Item, index: number) => string,\n ...\n },\n ): string {\n if (props.keyExtractor != null) {\n return props.keyExtractor(item, index);\n }\n\n const key = defaultKeyExtractor(item, index);\n if (key === String(index)) {\n _usedIndexForKey = true;\n if (item.type && item.type.displayName) {\n _keylessItemComponentName = item.type.displayName;\n }\n }\n return key;\n }\n\n render(): React.Node {\n this._checkProps(this.props);\n const {ListEmptyComponent, ListFooterComponent, ListHeaderComponent} =\n this.props;\n const {data, horizontal} = this.props;\n const inversionStyle = this.props.inverted\n ? horizontalOrDefault(this.props.horizontal)\n ? styles.horizontallyInverted\n : styles.verticallyInverted\n : null;\n const cells: Array = [];\n const stickyIndicesFromProps = new Set(this.props.stickyHeaderIndices);\n const stickyHeaderIndices = [];\n\n // 1. Add cell for ListHeaderComponent\n if (ListHeaderComponent) {\n if (stickyIndicesFromProps.has(0)) {\n stickyHeaderIndices.push(0);\n }\n const element = React.isValidElement(ListHeaderComponent) ? (\n ListHeaderComponent\n ) : (\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n \n );\n cells.push(\n \n \n {\n // $FlowFixMe[incompatible-type] - Typing ReactNativeComponent revealed errors\n element\n }\n \n ,\n );\n }\n\n // 2a. Add a cell for ListEmptyComponent if applicable\n const itemCount = this.props.getItemCount(data);\n if (itemCount === 0 && ListEmptyComponent) {\n const element: React.Element = ((React.isValidElement(\n ListEmptyComponent,\n ) ? (\n ListEmptyComponent\n ) : (\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n \n )): any);\n cells.push(\n \n {React.cloneElement(element, {\n onLayout: (event: LayoutEvent) => {\n this._onLayoutEmpty(event);\n if (element.props.onLayout) {\n element.props.onLayout(event);\n }\n },\n style: StyleSheet.compose(inversionStyle, element.props.style),\n })}\n ,\n );\n }\n\n // 2b. Add cells and spacers for each item\n if (itemCount > 0) {\n _usedIndexForKey = false;\n _keylessItemComponentName = '';\n const spacerKey = this._getSpacerKey(!horizontal);\n\n const renderRegions = this.state.renderMask.enumerateRegions();\n const lastSpacer = findLastWhere(renderRegions, r => r.isSpacer);\n\n for (const section of renderRegions) {\n if (section.isSpacer) {\n // Legacy behavior is to avoid spacers when virtualization is\n // disabled (including head spacers on initial render).\n if (this.props.disableVirtualization) {\n continue;\n }\n\n // Without getItemLayout, we limit our tail spacer to the _highestMeasuredFrameIndex to\n // prevent the user for hyperscrolling into un-measured area because otherwise content will\n // likely jump around as it renders in above the viewport.\n const isLastSpacer = section === lastSpacer;\n const constrainToMeasured = isLastSpacer && !this.props.getItemLayout;\n const last = constrainToMeasured\n ? clamp(\n section.first - 1,\n section.last,\n this._highestMeasuredFrameIndex,\n )\n : section.last;\n\n const firstMetrics = this.__getFrameMetricsApprox(\n section.first,\n this.props,\n );\n const lastMetrics = this.__getFrameMetricsApprox(last, this.props);\n const spacerSize =\n lastMetrics.offset + lastMetrics.length - firstMetrics.offset;\n cells.push(\n ,\n );\n } else {\n this._pushCells(\n cells,\n stickyHeaderIndices,\n stickyIndicesFromProps,\n section.first,\n section.last,\n inversionStyle,\n );\n }\n }\n\n if (!this._hasWarned.keys && _usedIndexForKey) {\n console.warn(\n 'VirtualizedList: missing keys for items, make sure to specify a key or id property on each ' +\n 'item or provide a custom keyExtractor.',\n _keylessItemComponentName,\n );\n this._hasWarned.keys = true;\n }\n }\n\n // 3. Add cell for ListFooterComponent\n if (ListFooterComponent) {\n const element = React.isValidElement(ListFooterComponent) ? (\n ListFooterComponent\n ) : (\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n \n );\n cells.push(\n \n \n {\n // $FlowFixMe[incompatible-type] - Typing ReactNativeComponent revealed errors\n element\n }\n \n ,\n );\n }\n\n // 4. Render the ScrollView\n const scrollProps = {\n ...this.props,\n onContentSizeChange: this._onContentSizeChange,\n onLayout: this._onLayout,\n onScroll: this._onScroll,\n onScrollBeginDrag: this._onScrollBeginDrag,\n onScrollEndDrag: this._onScrollEndDrag,\n onMomentumScrollBegin: this._onMomentumScrollBegin,\n onMomentumScrollEnd: this._onMomentumScrollEnd,\n scrollEventThrottle: scrollEventThrottleOrDefault(\n this.props.scrollEventThrottle,\n ), // TODO: Android support\n invertStickyHeaders:\n this.props.invertStickyHeaders !== undefined\n ? this.props.invertStickyHeaders\n : this.props.inverted,\n stickyHeaderIndices,\n style: inversionStyle\n ? [inversionStyle, this.props.style]\n : this.props.style,\n maintainVisibleContentPosition:\n this.props.maintainVisibleContentPosition != null\n ? {\n ...this.props.maintainVisibleContentPosition,\n // Adjust index to account for ListHeaderComponent.\n minIndexForVisible:\n this.props.maintainVisibleContentPosition.minIndexForVisible +\n (this.props.ListHeaderComponent ? 1 : 0),\n }\n : undefined,\n };\n\n this._hasMore = this.state.cellsAroundViewport.last < itemCount - 1;\n\n const innerRet = (\n \n {React.cloneElement(\n (\n this.props.renderScrollComponent ||\n this._defaultRenderScrollComponent\n )(scrollProps),\n {\n ref: this._captureScrollRef,\n },\n cells,\n )}\n \n );\n let ret: React.Node = innerRet;\n if (__DEV__) {\n ret = (\n \n {scrollContext => {\n if (\n scrollContext != null &&\n !scrollContext.horizontal ===\n !horizontalOrDefault(this.props.horizontal) &&\n !this._hasWarned.nesting &&\n this.context == null &&\n this.props.scrollEnabled !== false\n ) {\n // TODO (T46547044): use React.warn once 16.9 is sync'd: https://github.com/facebook/react/pull/15170\n console.error(\n 'VirtualizedLists should never be nested inside plain ScrollViews with the same ' +\n 'orientation because it can break windowing and other functionality - use another ' +\n 'VirtualizedList-backed container instead.',\n );\n this._hasWarned.nesting = true;\n }\n return innerRet;\n }}\n \n );\n }\n if (this.props.debug) {\n return (\n \n {ret}\n {this._renderDebugOverlay()}\n \n );\n } else {\n return ret;\n }\n }\n\n componentDidUpdate(prevProps: Props) {\n const {data, extraData} = this.props;\n if (data !== prevProps.data || extraData !== prevProps.extraData) {\n // clear the viewableIndices cache to also trigger\n // the onViewableItemsChanged callback with the new data\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.resetViewableIndices();\n });\n }\n // The `this._hiPriInProgress` is guaranteeing a hiPri cell update will only happen\n // once per fiber update. The `_scheduleCellsToRenderUpdate` will set it to true\n // if a hiPri update needs to perform. If `componentDidUpdate` is triggered with\n // `this._hiPriInProgress=true`, means it's triggered by the hiPri update. The\n // `_scheduleCellsToRenderUpdate` will check this condition and not perform\n // another hiPri update.\n const hiPriInProgress = this._hiPriInProgress;\n this._scheduleCellsToRenderUpdate();\n // Make sure setting `this._hiPriInProgress` back to false after `componentDidUpdate`\n // is triggered with `this._hiPriInProgress = true`\n if (hiPriInProgress) {\n this._hiPriInProgress = false;\n }\n }\n\n _averageCellLength = 0;\n _cellRefs: {[string]: null | CellRenderer} = {};\n _fillRateHelper: FillRateHelper;\n _frames: {\n [string]: {\n inLayout?: boolean,\n index: number,\n length: number,\n offset: number,\n },\n } = {};\n _footerLength = 0;\n // Used for preventing scrollToIndex from being called multiple times for initialScrollIndex\n _hasTriggeredInitialScrollToIndex = false;\n _hasInteracted = false;\n _hasMore = false;\n _hasWarned: {[string]: boolean} = {};\n _headerLength = 0;\n _hiPriInProgress: boolean = false; // flag to prevent infinite hiPri cell limit update\n _highestMeasuredFrameIndex = 0;\n _indicesToKeys: Map = new Map();\n _lastFocusedCellKey: ?string = null;\n _nestedChildLists: ChildListCollection =\n new ChildListCollection();\n _offsetFromParentVirtualizedList: number = 0;\n _prevParentOffset: number = 0;\n // $FlowFixMe[missing-local-annot]\n _scrollMetrics = {\n contentLength: 0,\n dOffset: 0,\n dt: 10,\n offset: 0,\n timestamp: 0,\n velocity: 0,\n visibleLength: 0,\n zoomScale: 1,\n };\n _scrollRef: ?React.ElementRef = null;\n _sentStartForContentLength = 0;\n _sentEndForContentLength = 0;\n _totalCellLength = 0;\n _totalCellsMeasured = 0;\n _updateCellsToRenderBatcher: Batchinator;\n _viewabilityTuples: Array = [];\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n _captureScrollRef = ref => {\n this._scrollRef = ref;\n };\n\n _computeBlankness() {\n this._fillRateHelper.computeBlankness(\n this.props,\n this.state.cellsAroundViewport,\n this._scrollMetrics,\n );\n }\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n _defaultRenderScrollComponent = props => {\n const onRefresh = props.onRefresh;\n if (this._isNestedWithSameOrientation()) {\n // $FlowFixMe[prop-missing] - Typing ReactNativeComponent revealed errors\n return ;\n } else if (onRefresh) {\n invariant(\n typeof props.refreshing === 'boolean',\n '`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `' +\n JSON.stringify(props.refreshing ?? 'undefined') +\n '`',\n );\n return (\n // $FlowFixMe[prop-missing] Invalid prop usage\n // $FlowFixMe[incompatible-use]\n \n ) : (\n props.refreshControl\n )\n }\n />\n );\n } else {\n // $FlowFixMe[prop-missing] Invalid prop usage\n // $FlowFixMe[incompatible-use]\n return ;\n }\n };\n\n _onCellLayout = (e: LayoutEvent, cellKey: string, index: number): void => {\n const layout = e.nativeEvent.layout;\n const next = {\n offset: this._selectOffset(layout),\n length: this._selectLength(layout),\n index,\n inLayout: true,\n };\n const curr = this._frames[cellKey];\n if (\n !curr ||\n next.offset !== curr.offset ||\n next.length !== curr.length ||\n index !== curr.index\n ) {\n this._totalCellLength += next.length - (curr ? curr.length : 0);\n this._totalCellsMeasured += curr ? 0 : 1;\n this._averageCellLength =\n this._totalCellLength / this._totalCellsMeasured;\n this._frames[cellKey] = next;\n this._highestMeasuredFrameIndex = Math.max(\n this._highestMeasuredFrameIndex,\n index,\n );\n this._scheduleCellsToRenderUpdate();\n } else {\n this._frames[cellKey].inLayout = true;\n }\n\n this._triggerRemeasureForChildListsInCell(cellKey);\n\n this._computeBlankness();\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n };\n\n _onCellFocusCapture(cellKey: string) {\n this._lastFocusedCellKey = cellKey;\n this._updateCellsToRender();\n }\n\n _onCellUnmount = (cellKey: string) => {\n delete this._cellRefs[cellKey];\n const curr = this._frames[cellKey];\n if (curr) {\n this._frames[cellKey] = {...curr, inLayout: false};\n }\n };\n\n _triggerRemeasureForChildListsInCell(cellKey: string): void {\n this._nestedChildLists.forEachInCell(cellKey, childList => {\n childList.measureLayoutRelativeToContainingList();\n });\n }\n\n measureLayoutRelativeToContainingList(): void {\n // TODO (T35574538): findNodeHandle sometimes crashes with \"Unable to find\n // node on an unmounted component\" during scrolling\n try {\n if (!this._scrollRef) {\n return;\n }\n // We are assuming that getOutermostParentListRef().getScrollRef()\n // is a non-null reference to a ScrollView\n this._scrollRef.measureLayout(\n this.context.getOutermostParentListRef().getScrollRef(),\n (x, y, width, height) => {\n this._offsetFromParentVirtualizedList = this._selectOffset({x, y});\n this._scrollMetrics.contentLength = this._selectLength({\n width,\n height,\n });\n const scrollMetrics = this._convertParentScrollMetrics(\n this.context.getScrollMetrics(),\n );\n\n const metricsChanged =\n this._scrollMetrics.visibleLength !== scrollMetrics.visibleLength ||\n this._scrollMetrics.offset !== scrollMetrics.offset;\n\n if (metricsChanged) {\n this._scrollMetrics.visibleLength = scrollMetrics.visibleLength;\n this._scrollMetrics.offset = scrollMetrics.offset;\n\n // If metrics of the scrollView changed, then we triggered remeasure for child list\n // to ensure VirtualizedList has the right information.\n this._nestedChildLists.forEach(childList => {\n childList.measureLayoutRelativeToContainingList();\n });\n }\n },\n error => {\n console.warn(\n \"VirtualizedList: Encountered an error while measuring a list's\" +\n ' offset from its containing VirtualizedList.',\n );\n },\n );\n } catch (error) {\n console.warn(\n 'measureLayoutRelativeToContainingList threw an error',\n error.stack,\n );\n }\n }\n\n _onLayout = (e: LayoutEvent) => {\n if (this._isNestedWithSameOrientation()) {\n // Need to adjust our scroll metrics to be relative to our containing\n // VirtualizedList before we can make claims about list item viewability\n this.measureLayoutRelativeToContainingList();\n } else {\n this._scrollMetrics.visibleLength = this._selectLength(\n e.nativeEvent.layout,\n );\n }\n this.props.onLayout && this.props.onLayout(e);\n this._scheduleCellsToRenderUpdate();\n this._maybeCallOnEdgeReached();\n };\n\n _onLayoutEmpty = (e: LayoutEvent) => {\n this.props.onLayout && this.props.onLayout(e);\n };\n\n _getFooterCellKey(): string {\n return this._getCellKey() + '-footer';\n }\n\n _onLayoutFooter = (e: LayoutEvent) => {\n this._triggerRemeasureForChildListsInCell(this._getFooterCellKey());\n this._footerLength = this._selectLength(e.nativeEvent.layout);\n };\n\n _onLayoutHeader = (e: LayoutEvent) => {\n this._headerLength = this._selectLength(e.nativeEvent.layout);\n };\n\n // $FlowFixMe[missing-local-annot]\n _renderDebugOverlay() {\n const normalize =\n this._scrollMetrics.visibleLength /\n (this._scrollMetrics.contentLength || 1);\n const framesInLayout = [];\n const itemCount = this.props.getItemCount(this.props.data);\n for (let ii = 0; ii < itemCount; ii++) {\n const frame = this.__getFrameMetricsApprox(ii, this.props);\n /* $FlowFixMe[prop-missing] (>=0.68.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.68 was deployed. To see the\n * error delete this comment and run Flow. */\n if (frame.inLayout) {\n framesInLayout.push(frame);\n }\n }\n const windowTop = this.__getFrameMetricsApprox(\n this.state.cellsAroundViewport.first,\n this.props,\n ).offset;\n const frameLast = this.__getFrameMetricsApprox(\n this.state.cellsAroundViewport.last,\n this.props,\n );\n const windowLen = frameLast.offset + frameLast.length - windowTop;\n const visTop = this._scrollMetrics.offset;\n const visLen = this._scrollMetrics.visibleLength;\n\n return (\n \n {framesInLayout.map((f, ii) => (\n \n ))}\n \n \n \n );\n }\n\n _selectLength(\n metrics: $ReadOnly<{\n height: number,\n width: number,\n ...\n }>,\n ): number {\n return !horizontalOrDefault(this.props.horizontal)\n ? metrics.height\n : metrics.width;\n }\n\n _selectOffset(\n metrics: $ReadOnly<{\n x: number,\n y: number,\n ...\n }>,\n ): number {\n return !horizontalOrDefault(this.props.horizontal) ? metrics.y : metrics.x;\n }\n\n _maybeCallOnEdgeReached() {\n const {\n data,\n getItemCount,\n onStartReached,\n onStartReachedThreshold,\n onEndReached,\n onEndReachedThreshold,\n } = this.props;\n // If we have any pending scroll updates it means that the scroll metrics\n // are out of date and we should not call any of the edge reached callbacks.\n if (this.state.pendingScrollUpdateCount > 0) {\n return;\n }\n\n const {contentLength, visibleLength, offset} = this._scrollMetrics;\n let distanceFromStart = offset;\n let distanceFromEnd = contentLength - visibleLength - offset;\n\n // Especially when oERT is zero it's necessary to 'floor' very small distance values to be 0\n // since debouncing causes us to not fire this event for every single \"pixel\" we scroll and can thus\n // be at the edge of the list with a distance approximating 0 but not quite there.\n if (distanceFromStart < ON_EDGE_REACHED_EPSILON) {\n distanceFromStart = 0;\n }\n if (distanceFromEnd < ON_EDGE_REACHED_EPSILON) {\n distanceFromEnd = 0;\n }\n\n // TODO: T121172172 Look into why we're \"defaulting\" to a threshold of 2px\n // when oERT is not present (different from 2 viewports used elsewhere)\n const DEFAULT_THRESHOLD_PX = 2;\n\n const startThreshold =\n onStartReachedThreshold != null\n ? onStartReachedThreshold * visibleLength\n : DEFAULT_THRESHOLD_PX;\n const endThreshold =\n onEndReachedThreshold != null\n ? onEndReachedThreshold * visibleLength\n : DEFAULT_THRESHOLD_PX;\n const isWithinStartThreshold = distanceFromStart <= startThreshold;\n const isWithinEndThreshold = distanceFromEnd <= endThreshold;\n\n // First check if the user just scrolled within the end threshold\n // and call onEndReached only once for a given content length,\n // and only if onStartReached is not being executed\n if (\n onEndReached &&\n this.state.cellsAroundViewport.last === getItemCount(data) - 1 &&\n isWithinEndThreshold &&\n this._scrollMetrics.contentLength !== this._sentEndForContentLength\n ) {\n this._sentEndForContentLength = this._scrollMetrics.contentLength;\n onEndReached({distanceFromEnd});\n }\n\n // Next check if the user just scrolled within the start threshold\n // and call onStartReached only once for a given content length,\n // and only if onEndReached is not being executed\n else if (\n onStartReached != null &&\n this.state.cellsAroundViewport.first === 0 &&\n isWithinStartThreshold &&\n this._scrollMetrics.contentLength !== this._sentStartForContentLength\n ) {\n this._sentStartForContentLength = this._scrollMetrics.contentLength;\n onStartReached({distanceFromStart});\n }\n\n // If the user scrolls away from the start or end and back again,\n // cause onStartReached or onEndReached to be triggered again\n else {\n this._sentStartForContentLength = isWithinStartThreshold\n ? this._sentStartForContentLength\n : 0;\n this._sentEndForContentLength = isWithinEndThreshold\n ? this._sentEndForContentLength\n : 0;\n }\n }\n\n _onContentSizeChange = (width: number, height: number) => {\n if (\n width > 0 &&\n height > 0 &&\n this.props.initialScrollIndex != null &&\n this.props.initialScrollIndex > 0 &&\n !this._hasTriggeredInitialScrollToIndex\n ) {\n if (this.props.contentOffset == null) {\n if (\n this.props.initialScrollIndex <\n this.props.getItemCount(this.props.data)\n ) {\n this.scrollToIndex({\n animated: false,\n index: nullthrows(this.props.initialScrollIndex),\n });\n } else {\n this.scrollToEnd({animated: false});\n }\n }\n this._hasTriggeredInitialScrollToIndex = true;\n }\n if (this.props.onContentSizeChange) {\n this.props.onContentSizeChange(width, height);\n }\n this._scrollMetrics.contentLength = this._selectLength({height, width});\n this._scheduleCellsToRenderUpdate();\n this._maybeCallOnEdgeReached();\n };\n\n /* Translates metrics from a scroll event in a parent VirtualizedList into\n * coordinates relative to the child list.\n */\n _convertParentScrollMetrics = (metrics: {\n visibleLength: number,\n offset: number,\n ...\n }): $FlowFixMe => {\n // Offset of the top of the nested list relative to the top of its parent's viewport\n const offset = metrics.offset - this._offsetFromParentVirtualizedList;\n // Child's visible length is the same as its parent's\n const visibleLength = metrics.visibleLength;\n const dOffset = offset - this._scrollMetrics.offset;\n const contentLength = this._scrollMetrics.contentLength;\n\n return {\n visibleLength,\n contentLength,\n offset,\n dOffset,\n };\n };\n\n _onScroll = (e: Object) => {\n this._nestedChildLists.forEach(childList => {\n childList._onScroll(e);\n });\n if (this.props.onScroll) {\n this.props.onScroll(e);\n }\n const timestamp = e.timeStamp;\n let visibleLength = this._selectLength(e.nativeEvent.layoutMeasurement);\n let contentLength = this._selectLength(e.nativeEvent.contentSize);\n let offset = this._selectOffset(e.nativeEvent.contentOffset);\n let dOffset = offset - this._scrollMetrics.offset;\n\n if (this._isNestedWithSameOrientation()) {\n if (this._scrollMetrics.contentLength === 0) {\n // Ignore scroll events until onLayout has been called and we\n // know our offset from our offset from our parent\n return;\n }\n ({visibleLength, contentLength, offset, dOffset} =\n this._convertParentScrollMetrics({\n visibleLength,\n offset,\n }));\n }\n\n const dt = this._scrollMetrics.timestamp\n ? Math.max(1, timestamp - this._scrollMetrics.timestamp)\n : 1;\n const velocity = dOffset / dt;\n\n if (\n dt > 500 &&\n this._scrollMetrics.dt > 500 &&\n contentLength > 5 * visibleLength &&\n !this._hasWarned.perf\n ) {\n infoLog(\n 'VirtualizedList: You have a large list that is slow to update - make sure your ' +\n 'renderItem function renders components that follow React performance best practices ' +\n 'like PureComponent, shouldComponentUpdate, etc.',\n {dt, prevDt: this._scrollMetrics.dt, contentLength},\n );\n this._hasWarned.perf = true;\n }\n\n // For invalid negative values (w/ RTL), set this to 1.\n const zoomScale = e.nativeEvent.zoomScale < 0 ? 1 : e.nativeEvent.zoomScale;\n this._scrollMetrics = {\n contentLength,\n dt,\n dOffset,\n offset,\n timestamp,\n velocity,\n visibleLength,\n zoomScale,\n };\n if (this.state.pendingScrollUpdateCount > 0) {\n this.setState(state => ({\n pendingScrollUpdateCount: state.pendingScrollUpdateCount - 1,\n }));\n }\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n if (!this.props) {\n return;\n }\n this._maybeCallOnEdgeReached();\n if (velocity !== 0) {\n this._fillRateHelper.activate();\n }\n this._computeBlankness();\n this._scheduleCellsToRenderUpdate();\n };\n\n _scheduleCellsToRenderUpdate() {\n const {first, last} = this.state.cellsAroundViewport;\n const {offset, visibleLength, velocity} = this._scrollMetrics;\n const itemCount = this.props.getItemCount(this.props.data);\n let hiPri = false;\n const onStartReachedThreshold = onStartReachedThresholdOrDefault(\n this.props.onStartReachedThreshold,\n );\n const onEndReachedThreshold = onEndReachedThresholdOrDefault(\n this.props.onEndReachedThreshold,\n );\n // Mark as high priority if we're close to the start of the first item\n // But only if there are items before the first rendered item\n if (first > 0) {\n const distTop =\n offset - this.__getFrameMetricsApprox(first, this.props).offset;\n hiPri =\n distTop < 0 ||\n (velocity < -2 &&\n distTop <\n getScrollingThreshold(onStartReachedThreshold, visibleLength));\n }\n // Mark as high priority if we're close to the end of the last item\n // But only if there are items after the last rendered item\n if (!hiPri && last >= 0 && last < itemCount - 1) {\n const distBottom =\n this.__getFrameMetricsApprox(last, this.props).offset -\n (offset + visibleLength);\n hiPri =\n distBottom < 0 ||\n (velocity > 2 &&\n distBottom <\n getScrollingThreshold(onEndReachedThreshold, visibleLength));\n }\n // Only trigger high-priority updates if we've actually rendered cells,\n // and with that size estimate, accurately compute how many cells we should render.\n // Otherwise, it would just render as many cells as it can (of zero dimension),\n // each time through attempting to render more (limited by maxToRenderPerBatch),\n // starving the renderer from actually laying out the objects and computing _averageCellLength.\n // If this is triggered in an `componentDidUpdate` followed by a hiPri cellToRenderUpdate\n // We shouldn't do another hipri cellToRenderUpdate\n if (\n hiPri &&\n (this._averageCellLength || this.props.getItemLayout) &&\n !this._hiPriInProgress\n ) {\n this._hiPriInProgress = true;\n // Don't worry about interactions when scrolling quickly; focus on filling content as fast\n // as possible.\n this._updateCellsToRenderBatcher.dispose({abort: true});\n this._updateCellsToRender();\n return;\n } else {\n this._updateCellsToRenderBatcher.schedule();\n }\n }\n\n _onScrollBeginDrag = (e: ScrollEvent): void => {\n this._nestedChildLists.forEach(childList => {\n childList._onScrollBeginDrag(e);\n });\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.recordInteraction();\n });\n this._hasInteracted = true;\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n };\n\n _onScrollEndDrag = (e: ScrollEvent): void => {\n this._nestedChildLists.forEach(childList => {\n childList._onScrollEndDrag(e);\n });\n const {velocity} = e.nativeEvent;\n if (velocity) {\n this._scrollMetrics.velocity = this._selectOffset(velocity);\n }\n this._computeBlankness();\n this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n };\n\n _onMomentumScrollBegin = (e: ScrollEvent): void => {\n this._nestedChildLists.forEach(childList => {\n childList._onMomentumScrollBegin(e);\n });\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n };\n\n _onMomentumScrollEnd = (e: ScrollEvent): void => {\n this._nestedChildLists.forEach(childList => {\n childList._onMomentumScrollEnd(e);\n });\n this._scrollMetrics.velocity = 0;\n this._computeBlankness();\n this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n };\n\n _updateCellsToRender = () => {\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n\n this.setState((state, props) => {\n const cellsAroundViewport = this._adjustCellsAroundViewport(\n props,\n state.cellsAroundViewport,\n state.pendingScrollUpdateCount,\n );\n const renderMask = VirtualizedList._createRenderMask(\n props,\n cellsAroundViewport,\n this._getNonViewportRenderRegions(props),\n );\n\n if (\n cellsAroundViewport.first === state.cellsAroundViewport.first &&\n cellsAroundViewport.last === state.cellsAroundViewport.last &&\n renderMask.equals(state.renderMask)\n ) {\n return null;\n }\n\n return {cellsAroundViewport, renderMask};\n });\n };\n\n _createViewToken = (\n index: number,\n isViewable: boolean,\n props: FrameMetricProps,\n // $FlowFixMe[missing-local-annot]\n ) => {\n const {data, getItem} = props;\n const item = getItem(data, index);\n return {\n index,\n item,\n key: VirtualizedList._keyExtractor(item, index, props),\n isViewable,\n };\n };\n\n /**\n * Gets an approximate offset to an item at a given index. Supports\n * fractional indices.\n */\n _getOffsetApprox = (index: number, props: FrameMetricProps): number => {\n if (Number.isInteger(index)) {\n return this.__getFrameMetricsApprox(index, props).offset;\n } else {\n const frameMetrics = this.__getFrameMetricsApprox(\n Math.floor(index),\n props,\n );\n const remainder = index - Math.floor(index);\n return frameMetrics.offset + remainder * frameMetrics.length;\n }\n };\n\n __getFrameMetricsApprox: (\n index: number,\n props: FrameMetricProps,\n ) => {\n length: number,\n offset: number,\n ...\n } = (index, props) => {\n const frame = this._getFrameMetrics(index, props);\n if (frame && frame.index === index) {\n // check for invalid frames due to row re-ordering\n return frame;\n } else {\n const {data, getItemCount, getItemLayout} = props;\n invariant(\n index >= 0 && index < getItemCount(data),\n 'Tried to get frame for out of range index ' + index,\n );\n invariant(\n !getItemLayout,\n 'Should not have to estimate frames when a measurement metrics function is provided',\n );\n return {\n length: this._averageCellLength,\n offset: this._averageCellLength * index,\n };\n }\n };\n\n _getFrameMetrics = (\n index: number,\n props: FrameMetricProps,\n ): ?{\n length: number,\n offset: number,\n index: number,\n inLayout?: boolean,\n ...\n } => {\n const {data, getItemCount, getItemLayout} = props;\n invariant(\n index >= 0 && index < getItemCount(data),\n 'Tried to get frame for out of range index ' + index,\n );\n const frame = this._frames[VirtualizedList._getItemKey(props, index)];\n if (!frame || frame.index !== index) {\n if (getItemLayout) {\n /* $FlowFixMe[prop-missing] (>=0.63.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.63 was deployed. To see the error\n * delete this comment and run Flow. */\n return getItemLayout(data, index);\n }\n }\n return frame;\n };\n\n _getNonViewportRenderRegions = (\n props: FrameMetricProps,\n ): $ReadOnlyArray<{\n first: number,\n last: number,\n }> => {\n // Keep a viewport's worth of content around the last focused cell to allow\n // random navigation around it without any blanking. E.g. tabbing from one\n // focused item out of viewport to another.\n if (\n !(this._lastFocusedCellKey && this._cellRefs[this._lastFocusedCellKey])\n ) {\n return [];\n }\n\n const lastFocusedCellRenderer = this._cellRefs[this._lastFocusedCellKey];\n const focusedCellIndex = lastFocusedCellRenderer.props.index;\n const itemCount = props.getItemCount(props.data);\n\n // The last cell we rendered may be at a new index. Bail if we don't know\n // where it is.\n if (\n focusedCellIndex >= itemCount ||\n VirtualizedList._getItemKey(props, focusedCellIndex) !==\n this._lastFocusedCellKey\n ) {\n return [];\n }\n\n let first = focusedCellIndex;\n let heightOfCellsBeforeFocused = 0;\n for (\n let i = first - 1;\n i >= 0 && heightOfCellsBeforeFocused < this._scrollMetrics.visibleLength;\n i--\n ) {\n first--;\n heightOfCellsBeforeFocused += this.__getFrameMetricsApprox(\n i,\n props,\n ).length;\n }\n\n let last = focusedCellIndex;\n let heightOfCellsAfterFocused = 0;\n for (\n let i = last + 1;\n i < itemCount &&\n heightOfCellsAfterFocused < this._scrollMetrics.visibleLength;\n i++\n ) {\n last++;\n heightOfCellsAfterFocused += this.__getFrameMetricsApprox(\n i,\n props,\n ).length;\n }\n\n return [{first, last}];\n };\n\n _updateViewableItems(\n props: FrameMetricProps,\n cellsAroundViewport: {first: number, last: number},\n ) {\n // If we have any pending scroll updates it means that the scroll metrics\n // are out of date and we should not call any of the visibility callbacks.\n if (this.state.pendingScrollUpdateCount > 0) {\n return;\n }\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.onUpdate(\n props,\n this._scrollMetrics.offset,\n this._scrollMetrics.visibleLength,\n this._getFrameMetrics,\n this._createViewToken,\n tuple.onViewableItemsChanged,\n cellsAroundViewport,\n );\n });\n }\n}\n\nconst styles = StyleSheet.create({\n verticallyInverted: {\n transform: [{scaleY: -1}],\n },\n horizontallyInverted: {\n transform: [{scaleX: -1}],\n },\n debug: {\n flex: 1,\n },\n debugOverlayBase: {\n position: 'absolute',\n top: 0,\n right: 0,\n },\n debugOverlay: {\n bottom: 0,\n width: 20,\n borderColor: 'blue',\n borderWidth: 1,\n },\n debugOverlayFrame: {\n left: 0,\n backgroundColor: 'orange',\n },\n debugOverlayFrameLast: {\n left: 0,\n borderColor: 'green',\n borderWidth: 2,\n },\n debugOverlayFrameVis: {\n left: 0,\n borderColor: 'red',\n borderWidth: 2,\n },\n});\n\nmodule.exports = VirtualizedList;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n'use strict';\n\nconst {InteractionManager} = require('react-native');\n\n/**\n * A simple class for batching up invocations of a low-pri callback. A timeout is set to run the\n * callback once after a delay, no matter how many times it's scheduled. Once the delay is reached,\n * InteractionManager.runAfterInteractions is used to invoke the callback after any hi-pri\n * interactions are done running.\n *\n * Make sure to cleanup with dispose(). Example:\n *\n * class Widget extends React.Component {\n * _batchedSave: new Batchinator(() => this._saveState, 1000);\n * _saveSate() {\n * // save this.state to disk\n * }\n * componentDidUpdate() {\n * this._batchedSave.schedule();\n * }\n * componentWillUnmount() {\n * this._batchedSave.dispose();\n * }\n * ...\n * }\n */\nclass Batchinator {\n _callback: () => void;\n _delay: number;\n _taskHandle: ?{cancel: () => void, ...};\n constructor(callback: () => void, delayMS: number) {\n this._delay = delayMS;\n this._callback = callback;\n }\n /*\n * Cleanup any pending tasks.\n *\n * By default, if there is a pending task the callback is run immediately. Set the option abort to\n * true to not call the callback if it was pending.\n */\n dispose(options: {abort: boolean, ...} = {abort: false}) {\n if (this._taskHandle) {\n this._taskHandle.cancel();\n if (!options.abort) {\n this._callback();\n }\n this._taskHandle = null;\n }\n }\n schedule() {\n if (this._taskHandle) {\n return;\n }\n const timeoutHandle = setTimeout(() => {\n this._taskHandle = InteractionManager.runAfterInteractions(() => {\n // Note that we clear the handle before invoking the callback so that if the callback calls\n // schedule again, it will actually schedule another task.\n this._taskHandle = null;\n this._callback();\n });\n }, this._delay);\n this._taskHandle = {cancel: () => clearTimeout(timeoutHandle)};\n }\n}\n\nmodule.exports = Batchinator;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nfunction clamp(min: number, value: number, max: number): number {\n if (value < min) {\n return min;\n }\n if (value > max) {\n return max;\n }\n return value;\n}\n\nmodule.exports = clamp;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\n/**\n * Intentional info-level logging for clear separation from ad-hoc console debug logging.\n */\nfunction infoLog(...args: Array): void {\n return console.log(...args);\n}\n\nmodule.exports = infoLog;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport invariant from 'invariant';\n\nexport default class ChildListCollection {\n _cellKeyToChildren: Map> = new Map();\n _childrenToCellKey: Map = new Map();\n\n add(list: TList, cellKey: string): void {\n invariant(\n !this._childrenToCellKey.has(list),\n 'Trying to add already present child list',\n );\n\n const cellLists = this._cellKeyToChildren.get(cellKey) ?? new Set();\n cellLists.add(list);\n this._cellKeyToChildren.set(cellKey, cellLists);\n\n this._childrenToCellKey.set(list, cellKey);\n }\n\n remove(list: TList): void {\n const cellKey = this._childrenToCellKey.get(list);\n invariant(cellKey != null, 'Trying to remove non-present child list');\n this._childrenToCellKey.delete(list);\n\n const cellLists = this._cellKeyToChildren.get(cellKey);\n invariant(cellLists, '_cellKeyToChildren should contain cellKey');\n cellLists.delete(list);\n\n if (cellLists.size === 0) {\n this._cellKeyToChildren.delete(cellKey);\n }\n }\n\n forEach(fn: TList => void): void {\n for (const listSet of this._cellKeyToChildren.values()) {\n for (const list of listSet) {\n fn(list);\n }\n }\n }\n\n forEachInCell(cellKey: string, fn: TList => void): void {\n const listSet = this._cellKeyToChildren.get(cellKey) ?? [];\n for (const list of listSet) {\n fn(list);\n }\n }\n\n anyInCell(cellKey: string, fn: TList => boolean): boolean {\n const listSet = this._cellKeyToChildren.get(cellKey) ?? [];\n for (const list of listSet) {\n if (fn(list)) {\n return true;\n }\n }\n return false;\n }\n\n size(): number {\n return this._childrenToCellKey.size;\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {FrameMetricProps} from './VirtualizedListProps';\n\nexport type FillRateInfo = Info;\n\nclass Info {\n any_blank_count: number = 0;\n any_blank_ms: number = 0;\n any_blank_speed_sum: number = 0;\n mostly_blank_count: number = 0;\n mostly_blank_ms: number = 0;\n pixels_blank: number = 0;\n pixels_sampled: number = 0;\n pixels_scrolled: number = 0;\n total_time_spent: number = 0;\n sample_count: number = 0;\n}\n\ntype FrameMetrics = {\n inLayout?: boolean,\n length: number,\n offset: number,\n ...\n};\n\nconst DEBUG = false;\n\nlet _listeners: Array<(Info) => void> = [];\nlet _minSampleCount = 10;\nlet _sampleRate = DEBUG ? 1 : null;\n\n/**\n * A helper class for detecting when the maximem fill rate of `VirtualizedList` is exceeded.\n * By default the sampling rate is set to zero and this will do nothing. If you want to collect\n * samples (e.g. to log them), make sure to call `FillRateHelper.setSampleRate(0.0-1.0)`.\n *\n * Listeners and sample rate are global for all `VirtualizedList`s - typical usage will combine with\n * `SceneTracker.getActiveScene` to determine the context of the events.\n */\nclass FillRateHelper {\n _anyBlankStartTime: ?number = null;\n _enabled = false;\n _getFrameMetrics: (index: number, props: FrameMetricProps) => ?FrameMetrics;\n _info: Info = new Info();\n _mostlyBlankStartTime: ?number = null;\n _samplesStartTime: ?number = null;\n\n static addListener(callback: FillRateInfo => void): {\n remove: () => void,\n ...\n } {\n if (_sampleRate === null) {\n console.warn('Call `FillRateHelper.setSampleRate` before `addListener`.');\n }\n _listeners.push(callback);\n return {\n remove: () => {\n _listeners = _listeners.filter(listener => callback !== listener);\n },\n };\n }\n\n static setSampleRate(sampleRate: number) {\n _sampleRate = sampleRate;\n }\n\n static setMinSampleCount(minSampleCount: number) {\n _minSampleCount = minSampleCount;\n }\n\n constructor(\n getFrameMetrics: (index: number, props: FrameMetricProps) => ?FrameMetrics,\n ) {\n this._getFrameMetrics = getFrameMetrics;\n this._enabled = (_sampleRate || 0) > Math.random();\n this._resetData();\n }\n\n activate() {\n if (this._enabled && this._samplesStartTime == null) {\n DEBUG && console.debug('FillRateHelper: activate');\n this._samplesStartTime = global.performance.now();\n }\n }\n\n deactivateAndFlush() {\n if (!this._enabled) {\n return;\n }\n const start = this._samplesStartTime; // const for flow\n if (start == null) {\n DEBUG &&\n console.debug('FillRateHelper: bail on deactivate with no start time');\n return;\n }\n if (this._info.sample_count < _minSampleCount) {\n // Don't bother with under-sampled events.\n this._resetData();\n return;\n }\n const total_time_spent = global.performance.now() - start;\n const info: any = {\n ...this._info,\n total_time_spent,\n };\n if (DEBUG) {\n const derived = {\n avg_blankness: this._info.pixels_blank / this._info.pixels_sampled,\n avg_speed: this._info.pixels_scrolled / (total_time_spent / 1000),\n avg_speed_when_any_blank:\n this._info.any_blank_speed_sum / this._info.any_blank_count,\n any_blank_per_min:\n this._info.any_blank_count / (total_time_spent / 1000 / 60),\n any_blank_time_frac: this._info.any_blank_ms / total_time_spent,\n mostly_blank_per_min:\n this._info.mostly_blank_count / (total_time_spent / 1000 / 60),\n mostly_blank_time_frac: this._info.mostly_blank_ms / total_time_spent,\n };\n for (const key in derived) {\n // $FlowFixMe[prop-missing]\n derived[key] = Math.round(1000 * derived[key]) / 1000;\n }\n console.debug('FillRateHelper deactivateAndFlush: ', {derived, info});\n }\n _listeners.forEach(listener => listener(info));\n this._resetData();\n }\n\n computeBlankness(\n props: {\n ...FrameMetricProps,\n initialNumToRender?: ?number,\n ...\n },\n cellsAroundViewport: {\n first: number,\n last: number,\n ...\n },\n scrollMetrics: {\n dOffset: number,\n offset: number,\n velocity: number,\n visibleLength: number,\n ...\n },\n ): number {\n if (\n !this._enabled ||\n props.getItemCount(props.data) === 0 ||\n cellsAroundViewport.last < cellsAroundViewport.first ||\n this._samplesStartTime == null\n ) {\n return 0;\n }\n const {dOffset, offset, velocity, visibleLength} = scrollMetrics;\n\n // Denominator metrics that we track for all events - most of the time there is no blankness and\n // we want to capture that.\n this._info.sample_count++;\n this._info.pixels_sampled += Math.round(visibleLength);\n this._info.pixels_scrolled += Math.round(Math.abs(dOffset));\n const scrollSpeed = Math.round(Math.abs(velocity) * 1000); // px / sec\n\n // Whether blank now or not, record the elapsed time blank if we were blank last time.\n const now = global.performance.now();\n if (this._anyBlankStartTime != null) {\n this._info.any_blank_ms += now - this._anyBlankStartTime;\n }\n this._anyBlankStartTime = null;\n if (this._mostlyBlankStartTime != null) {\n this._info.mostly_blank_ms += now - this._mostlyBlankStartTime;\n }\n this._mostlyBlankStartTime = null;\n\n let blankTop = 0;\n let first = cellsAroundViewport.first;\n let firstFrame = this._getFrameMetrics(first, props);\n while (\n first <= cellsAroundViewport.last &&\n (!firstFrame || !firstFrame.inLayout)\n ) {\n firstFrame = this._getFrameMetrics(first, props);\n first++;\n }\n // Only count blankTop if we aren't rendering the first item, otherwise we will count the header\n // as blank.\n if (firstFrame && first > 0) {\n blankTop = Math.min(\n visibleLength,\n Math.max(0, firstFrame.offset - offset),\n );\n }\n let blankBottom = 0;\n let last = cellsAroundViewport.last;\n let lastFrame = this._getFrameMetrics(last, props);\n while (\n last >= cellsAroundViewport.first &&\n (!lastFrame || !lastFrame.inLayout)\n ) {\n lastFrame = this._getFrameMetrics(last, props);\n last--;\n }\n // Only count blankBottom if we aren't rendering the last item, otherwise we will count the\n // footer as blank.\n if (lastFrame && last < props.getItemCount(props.data) - 1) {\n const bottomEdge = lastFrame.offset + lastFrame.length;\n blankBottom = Math.min(\n visibleLength,\n Math.max(0, offset + visibleLength - bottomEdge),\n );\n }\n const pixels_blank = Math.round(blankTop + blankBottom);\n const blankness = pixels_blank / visibleLength;\n if (blankness > 0) {\n this._anyBlankStartTime = now;\n this._info.any_blank_speed_sum += scrollSpeed;\n this._info.any_blank_count++;\n this._info.pixels_blank += pixels_blank;\n if (blankness > 0.5) {\n this._mostlyBlankStartTime = now;\n this._info.mostly_blank_count++;\n }\n } else if (scrollSpeed < 0.01 || Math.abs(dOffset) < 1) {\n this.deactivateAndFlush();\n }\n return blankness;\n }\n\n enabled(): boolean {\n return this._enabled;\n }\n\n _resetData() {\n this._anyBlankStartTime = null;\n this._info = new Info();\n this._mostlyBlankStartTime = null;\n this._samplesStartTime = null;\n }\n}\n\nmodule.exports = FillRateHelper;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport invariant from 'invariant';\nimport * as React from 'react';\n\n/**\n * `setState` is called asynchronously, and should not rely on the value of\n * `this.props` or `this.state`:\n * https://reactjs.org/docs/state-and-lifecycle.html#state-updates-may-be-asynchronous\n *\n * SafePureComponent adds runtime enforcement, to catch cases where these\n * variables are read in a state updater function, instead of the ones passed\n * in.\n */\nexport default class StateSafePureComponent<\n Props,\n State: interface {},\n> extends React.PureComponent {\n _inAsyncStateUpdate = false;\n\n constructor(props: Props) {\n super(props);\n this._installSetStateHooks();\n }\n\n setState(\n partialState: ?($Shape | ((State, Props) => ?$Shape)),\n callback?: () => mixed,\n ): void {\n if (typeof partialState === 'function') {\n super.setState((state, props) => {\n this._inAsyncStateUpdate = true;\n let ret;\n try {\n ret = partialState(state, props);\n } catch (err) {\n throw err;\n } finally {\n this._inAsyncStateUpdate = false;\n }\n return ret;\n }, callback);\n } else {\n super.setState(partialState, callback);\n }\n }\n\n _installSetStateHooks() {\n const that = this;\n let {props, state} = this;\n\n Object.defineProperty(this, 'props', {\n get() {\n invariant(\n !that._inAsyncStateUpdate,\n '\"this.props\" should not be accessed during state updates',\n );\n return props;\n },\n set(newProps: Props) {\n props = newProps;\n },\n });\n Object.defineProperty(this, 'state', {\n get() {\n invariant(\n !that._inAsyncStateUpdate,\n '\"this.state\" should not be acceessed during state updates',\n );\n return state;\n },\n set(newState: State) {\n state = newState;\n },\n });\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {FrameMetricProps} from './VirtualizedListProps';\n\nconst invariant = require('invariant');\n\nexport type ViewToken = {\n item: any,\n key: string,\n index: ?number,\n isViewable: boolean,\n section?: any,\n ...\n};\n\nexport type ViewabilityConfigCallbackPair = {\n viewabilityConfig: ViewabilityConfig,\n onViewableItemsChanged: (info: {\n viewableItems: Array,\n changed: Array,\n ...\n }) => void,\n ...\n};\n\nexport type ViewabilityConfig = {|\n /**\n * Minimum amount of time (in milliseconds) that an item must be physically viewable before the\n * viewability callback will be fired. A high number means that scrolling through content without\n * stopping will not mark the content as viewable.\n */\n minimumViewTime?: number,\n\n /**\n * Percent of viewport that must be covered for a partially occluded item to count as\n * \"viewable\", 0-100. Fully visible items are always considered viewable. A value of 0 means\n * that a single pixel in the viewport makes the item viewable, and a value of 100 means that\n * an item must be either entirely visible or cover the entire viewport to count as viewable.\n */\n viewAreaCoveragePercentThreshold?: number,\n\n /**\n * Similar to `viewAreaPercentThreshold`, but considers the percent of the item that is visible,\n * rather than the fraction of the viewable area it covers.\n */\n itemVisiblePercentThreshold?: number,\n\n /**\n * Nothing is considered viewable until the user scrolls or `recordInteraction` is called after\n * render.\n */\n waitForInteraction?: boolean,\n|};\n\n/**\n * A Utility class for calculating viewable items based on current metrics like scroll position and\n * layout.\n *\n * An item is said to be in a \"viewable\" state when any of the following\n * is true for longer than `minimumViewTime` milliseconds (after an interaction if `waitForInteraction`\n * is true):\n *\n * - Occupying >= `viewAreaCoveragePercentThreshold` of the view area XOR fraction of the item\n * visible in the view area >= `itemVisiblePercentThreshold`.\n * - Entirely visible on screen\n */\nclass ViewabilityHelper {\n _config: ViewabilityConfig;\n _hasInteracted: boolean = false;\n _timers: Set = new Set();\n _viewableIndices: Array = [];\n _viewableItems: Map = new Map();\n\n constructor(\n config: ViewabilityConfig = {viewAreaCoveragePercentThreshold: 0},\n ) {\n this._config = config;\n }\n\n /**\n * Cleanup, e.g. on unmount. Clears any pending timers.\n */\n dispose() {\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To see\n * the error delete this comment and run Flow. */\n this._timers.forEach(clearTimeout);\n }\n\n /**\n * Determines which items are viewable based on the current metrics and config.\n */\n computeViewableItems(\n props: FrameMetricProps,\n scrollOffset: number,\n viewportHeight: number,\n getFrameMetrics: (\n index: number,\n props: FrameMetricProps,\n ) => ?{\n length: number,\n offset: number,\n ...\n },\n // Optional optimization to reduce the scan size\n renderRange?: {\n first: number,\n last: number,\n ...\n },\n ): Array {\n const itemCount = props.getItemCount(props.data);\n const {itemVisiblePercentThreshold, viewAreaCoveragePercentThreshold} =\n this._config;\n const viewAreaMode = viewAreaCoveragePercentThreshold != null;\n const viewablePercentThreshold = viewAreaMode\n ? viewAreaCoveragePercentThreshold\n : itemVisiblePercentThreshold;\n invariant(\n viewablePercentThreshold != null &&\n (itemVisiblePercentThreshold != null) !==\n (viewAreaCoveragePercentThreshold != null),\n 'Must set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold',\n );\n const viewableIndices = [];\n if (itemCount === 0) {\n return viewableIndices;\n }\n let firstVisible = -1;\n const {first, last} = renderRange || {first: 0, last: itemCount - 1};\n if (last >= itemCount) {\n console.warn(\n 'Invalid render range computing viewability ' +\n JSON.stringify({renderRange, itemCount}),\n );\n return [];\n }\n for (let idx = first; idx <= last; idx++) {\n const metrics = getFrameMetrics(idx, props);\n if (!metrics) {\n continue;\n }\n const top = metrics.offset - scrollOffset;\n const bottom = top + metrics.length;\n if (top < viewportHeight && bottom > 0) {\n firstVisible = idx;\n if (\n _isViewable(\n viewAreaMode,\n viewablePercentThreshold,\n top,\n bottom,\n viewportHeight,\n metrics.length,\n )\n ) {\n viewableIndices.push(idx);\n }\n } else if (firstVisible >= 0) {\n break;\n }\n }\n return viewableIndices;\n }\n\n /**\n * Figures out which items are viewable and how that has changed from before and calls\n * `onViewableItemsChanged` as appropriate.\n */\n onUpdate(\n props: FrameMetricProps,\n scrollOffset: number,\n viewportHeight: number,\n getFrameMetrics: (\n index: number,\n props: FrameMetricProps,\n ) => ?{\n length: number,\n offset: number,\n ...\n },\n createViewToken: (\n index: number,\n isViewable: boolean,\n props: FrameMetricProps,\n ) => ViewToken,\n onViewableItemsChanged: ({\n viewableItems: Array,\n changed: Array,\n ...\n }) => void,\n // Optional optimization to reduce the scan size\n renderRange?: {\n first: number,\n last: number,\n ...\n },\n ): void {\n const itemCount = props.getItemCount(props.data);\n if (\n (this._config.waitForInteraction && !this._hasInteracted) ||\n itemCount === 0 ||\n !getFrameMetrics(0, props)\n ) {\n return;\n }\n let viewableIndices: Array = [];\n if (itemCount) {\n viewableIndices = this.computeViewableItems(\n props,\n scrollOffset,\n viewportHeight,\n getFrameMetrics,\n renderRange,\n );\n }\n if (\n this._viewableIndices.length === viewableIndices.length &&\n this._viewableIndices.every((v, ii) => v === viewableIndices[ii])\n ) {\n // We might get a lot of scroll events where visibility doesn't change and we don't want to do\n // extra work in those cases.\n return;\n }\n this._viewableIndices = viewableIndices;\n if (this._config.minimumViewTime) {\n const handle: TimeoutID = setTimeout(() => {\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To\n * see the error delete this comment and run Flow. */\n this._timers.delete(handle);\n this._onUpdateSync(\n props,\n viewableIndices,\n onViewableItemsChanged,\n createViewToken,\n );\n }, this._config.minimumViewTime);\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To see\n * the error delete this comment and run Flow. */\n this._timers.add(handle);\n } else {\n this._onUpdateSync(\n props,\n viewableIndices,\n onViewableItemsChanged,\n createViewToken,\n );\n }\n }\n\n /**\n * clean-up cached _viewableIndices to evaluate changed items on next update\n */\n resetViewableIndices() {\n this._viewableIndices = [];\n }\n\n /**\n * Records that an interaction has happened even if there has been no scroll.\n */\n recordInteraction() {\n this._hasInteracted = true;\n }\n\n _onUpdateSync(\n props: FrameMetricProps,\n viewableIndicesToCheck: Array,\n onViewableItemsChanged: ({\n changed: Array,\n viewableItems: Array,\n ...\n }) => void,\n createViewToken: (\n index: number,\n isViewable: boolean,\n props: FrameMetricProps,\n ) => ViewToken,\n ) {\n // Filter out indices that have gone out of view since this call was scheduled.\n viewableIndicesToCheck = viewableIndicesToCheck.filter(ii =>\n this._viewableIndices.includes(ii),\n );\n const prevItems = this._viewableItems;\n const nextItems = new Map(\n viewableIndicesToCheck.map(ii => {\n const viewable = createViewToken(ii, true, props);\n return [viewable.key, viewable];\n }),\n );\n\n const changed = [];\n for (const [key, viewable] of nextItems) {\n if (!prevItems.has(key)) {\n changed.push(viewable);\n }\n }\n for (const [key, viewable] of prevItems) {\n if (!nextItems.has(key)) {\n changed.push({...viewable, isViewable: false});\n }\n }\n if (changed.length > 0) {\n this._viewableItems = nextItems;\n onViewableItemsChanged({\n viewableItems: Array.from(nextItems.values()),\n changed,\n viewabilityConfig: this._config,\n });\n }\n }\n}\n\nfunction _isViewable(\n viewAreaMode: boolean,\n viewablePercentThreshold: number,\n top: number,\n bottom: number,\n viewportHeight: number,\n itemLength: number,\n): boolean {\n if (_isEntirelyVisible(top, bottom, viewportHeight)) {\n return true;\n } else {\n const pixels = _getPixelsVisible(top, bottom, viewportHeight);\n const percent =\n 100 * (viewAreaMode ? pixels / viewportHeight : pixels / itemLength);\n return percent >= viewablePercentThreshold;\n }\n}\n\nfunction _getPixelsVisible(\n top: number,\n bottom: number,\n viewportHeight: number,\n): number {\n const visibleHeight = Math.min(bottom, viewportHeight) - Math.max(top, 0);\n return Math.max(0, visibleHeight);\n}\n\nfunction _isEntirelyVisible(\n top: number,\n bottom: number,\n viewportHeight: number,\n): boolean {\n return top >= 0 && bottom <= viewportHeight && bottom > top;\n}\n\nmodule.exports = ViewabilityHelper;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {ViewStyleProp} from 'react-native/Libraries/StyleSheet/StyleSheet';\nimport type {\n FocusEvent,\n LayoutEvent,\n} from 'react-native/Libraries/Types/CoreEventTypes';\nimport type {CellRendererProps, RenderItemType} from './VirtualizedListProps';\n\nimport {View, StyleSheet} from 'react-native';\nimport {VirtualizedListCellContextProvider} from './VirtualizedListContext.js';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\nexport type Props = {\n CellRendererComponent?: ?React.ComponentType>,\n ItemSeparatorComponent: ?React.ComponentType<\n any | {highlighted: boolean, leadingItem: ?ItemT},\n >,\n ListItemComponent?: ?(React.ComponentType | React.Element),\n cellKey: string,\n horizontal: ?boolean,\n index: number,\n inversionStyle: ViewStyleProp,\n item: ItemT,\n onCellLayout?: (event: LayoutEvent, cellKey: string, index: number) => void,\n onCellFocusCapture?: (event: FocusEvent) => void,\n onUnmount: (cellKey: string) => void,\n onUpdateSeparators: (\n cellKeys: Array,\n props: $Shape>,\n ) => void,\n prevCellKey: ?string,\n renderItem?: ?RenderItemType,\n ...\n};\n\ntype SeparatorProps = $ReadOnly<{|\n highlighted: boolean,\n leadingItem: ?ItemT,\n|}>;\n\ntype State = {\n separatorProps: SeparatorProps,\n ...\n};\n\nexport default class CellRenderer extends React.Component<\n Props,\n State,\n> {\n state: State = {\n separatorProps: {\n highlighted: false,\n leadingItem: this.props.item,\n },\n };\n\n static getDerivedStateFromProps(\n props: Props,\n prevState: State,\n ): ?State {\n return {\n separatorProps: {\n ...prevState.separatorProps,\n leadingItem: props.item,\n },\n };\n }\n\n // TODO: consider factoring separator stuff out of VirtualizedList into FlatList since it's not\n // reused by SectionList and we can keep VirtualizedList simpler.\n // $FlowFixMe[missing-local-annot]\n _separators = {\n highlight: () => {\n const {cellKey, prevCellKey} = this.props;\n this.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: true,\n });\n },\n unhighlight: () => {\n const {cellKey, prevCellKey} = this.props;\n this.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: false,\n });\n },\n updateProps: (\n select: 'leading' | 'trailing',\n newProps: SeparatorProps,\n ) => {\n const {cellKey, prevCellKey} = this.props;\n this.props.onUpdateSeparators(\n [select === 'leading' ? prevCellKey : cellKey],\n newProps,\n );\n },\n };\n\n updateSeparatorProps(newProps: SeparatorProps) {\n this.setState(state => ({\n separatorProps: {...state.separatorProps, ...newProps},\n }));\n }\n\n componentWillUnmount() {\n this.props.onUnmount(this.props.cellKey);\n }\n\n _onLayout = (nativeEvent: LayoutEvent): void => {\n this.props.onCellLayout &&\n this.props.onCellLayout(\n nativeEvent,\n this.props.cellKey,\n this.props.index,\n );\n };\n\n _renderElement(\n renderItem: ?RenderItemType,\n ListItemComponent: any,\n item: ItemT,\n index: number,\n ): React.Node {\n if (renderItem && ListItemComponent) {\n console.warn(\n 'VirtualizedList: Both ListItemComponent and renderItem props are present. ListItemComponent will take' +\n ' precedence over renderItem.',\n );\n }\n\n if (ListItemComponent) {\n /* $FlowFixMe[not-a-component] (>=0.108.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.108 was deployed. To\n * see the error, delete this comment and run Flow. */\n /* $FlowFixMe[incompatible-type-arg] (>=0.108.0 site=react_native_fb)\n * This comment suppresses an error found when Flow v0.108 was deployed.\n * To see the error, delete this comment and run Flow. */\n return React.createElement(ListItemComponent, {\n item,\n index,\n separators: this._separators,\n });\n }\n\n if (renderItem) {\n return renderItem({\n item,\n index,\n separators: this._separators,\n });\n }\n\n invariant(\n false,\n 'VirtualizedList: Either ListItemComponent or renderItem props are required but none were found.',\n );\n }\n\n render(): React.Node {\n const {\n CellRendererComponent,\n ItemSeparatorComponent,\n ListItemComponent,\n cellKey,\n horizontal,\n item,\n index,\n inversionStyle,\n onCellFocusCapture,\n onCellLayout,\n renderItem,\n } = this.props;\n const element = this._renderElement(\n renderItem,\n ListItemComponent,\n item,\n index,\n );\n\n // NOTE: that when this is a sticky header, `onLayout` will get automatically extracted and\n // called explicitly by `ScrollViewStickyHeader`.\n const itemSeparator: React.Node = React.isValidElement(\n ItemSeparatorComponent,\n )\n ? // $FlowFixMe[incompatible-type]\n ItemSeparatorComponent\n : // $FlowFixMe[incompatible-type]\n ItemSeparatorComponent && (\n \n );\n const cellStyle = inversionStyle\n ? horizontal\n ? [styles.rowReverse, inversionStyle]\n : [styles.columnReverse, inversionStyle]\n : horizontal\n ? [styles.row, inversionStyle]\n : inversionStyle;\n const result = !CellRendererComponent ? (\n \n {element}\n {itemSeparator}\n \n ) : (\n \n {element}\n {itemSeparator}\n \n );\n\n return (\n \n {result}\n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n row: {\n flexDirection: 'row',\n },\n rowReverse: {\n flexDirection: 'row-reverse',\n },\n columnReverse: {\n flexDirection: 'column-reverse',\n },\n});\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport typeof VirtualizedList from './VirtualizedList';\n\nimport * as React from 'react';\nimport {useContext, useMemo} from 'react';\n\ntype Context = $ReadOnly<{\n cellKey: ?string,\n getScrollMetrics: () => {\n contentLength: number,\n dOffset: number,\n dt: number,\n offset: number,\n timestamp: number,\n velocity: number,\n visibleLength: number,\n zoomScale: number,\n },\n horizontal: ?boolean,\n getOutermostParentListRef: () => React.ElementRef,\n registerAsNestedChild: ({\n cellKey: string,\n ref: React.ElementRef,\n }) => void,\n unregisterAsNestedChild: ({\n ref: React.ElementRef,\n }) => void,\n}>;\n\nexport const VirtualizedListContext: React.Context =\n React.createContext(null);\nif (__DEV__) {\n VirtualizedListContext.displayName = 'VirtualizedListContext';\n}\n\n/**\n * Resets the context. Intended for use by portal-like components (e.g. Modal).\n */\nexport function VirtualizedListContextResetter({\n children,\n}: {\n children: React.Node,\n}): React.Node {\n return (\n \n {children}\n \n );\n}\n\n/**\n * Sets the context with memoization. Intended to be used by `VirtualizedList`.\n */\nexport function VirtualizedListContextProvider({\n children,\n value,\n}: {\n children: React.Node,\n value: Context,\n}): React.Node {\n // Avoid setting a newly created context object if the values are identical.\n const context = useMemo(\n () => ({\n cellKey: null,\n getScrollMetrics: value.getScrollMetrics,\n horizontal: value.horizontal,\n getOutermostParentListRef: value.getOutermostParentListRef,\n registerAsNestedChild: value.registerAsNestedChild,\n unregisterAsNestedChild: value.unregisterAsNestedChild,\n }),\n [\n value.getScrollMetrics,\n value.horizontal,\n value.getOutermostParentListRef,\n value.registerAsNestedChild,\n value.unregisterAsNestedChild,\n ],\n );\n return (\n \n {children}\n \n );\n}\n\n/**\n * Sets the `cellKey`. Intended to be used by `VirtualizedList` for each cell.\n */\nexport function VirtualizedListCellContextProvider({\n cellKey,\n children,\n}: {\n cellKey: string,\n children: React.Node,\n}): React.Node {\n // Avoid setting a newly created context object if the values are identical.\n const currContext = useContext(VirtualizedListContext);\n const context = useMemo(\n () => (currContext == null ? null : {...currContext, cellKey}),\n [currContext, cellKey],\n );\n return (\n \n {children}\n \n );\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport invariant from 'invariant';\n\nexport type CellRegion = {\n first: number,\n last: number,\n isSpacer: boolean,\n};\n\nexport class CellRenderMask {\n _numCells: number;\n _regions: Array;\n\n constructor(numCells: number) {\n invariant(\n numCells >= 0,\n 'CellRenderMask must contain a non-negative number os cells',\n );\n\n this._numCells = numCells;\n\n if (numCells === 0) {\n this._regions = [];\n } else {\n this._regions = [\n {\n first: 0,\n last: numCells - 1,\n isSpacer: true,\n },\n ];\n }\n }\n\n enumerateRegions(): $ReadOnlyArray {\n return this._regions;\n }\n\n addCells(cells: {first: number, last: number}): void {\n invariant(\n cells.first >= 0 &&\n cells.first < this._numCells &&\n cells.last >= -1 &&\n cells.last < this._numCells &&\n cells.last >= cells.first - 1,\n 'CellRenderMask.addCells called with invalid cell range',\n );\n\n // VirtualizedList uses inclusive ranges, where zero-count states are\n // possible. E.g. [0, -1] for no cells, starting at 0.\n if (cells.last < cells.first) {\n return;\n }\n\n const [firstIntersect, firstIntersectIdx] = this._findRegion(cells.first);\n const [lastIntersect, lastIntersectIdx] = this._findRegion(cells.last);\n\n // Fast-path if the cells to add are already all present in the mask. We\n // will otherwise need to do some mutation.\n if (firstIntersectIdx === lastIntersectIdx && !firstIntersect.isSpacer) {\n return;\n }\n\n // We need to replace the existing covered regions with 1-3 new regions\n // depending whether we need to split spacers out of overlapping regions.\n const newLeadRegion: Array = [];\n const newTailRegion: Array = [];\n const newMainRegion: CellRegion = {\n ...cells,\n isSpacer: false,\n };\n\n if (firstIntersect.first < newMainRegion.first) {\n if (firstIntersect.isSpacer) {\n newLeadRegion.push({\n first: firstIntersect.first,\n last: newMainRegion.first - 1,\n isSpacer: true,\n });\n } else {\n newMainRegion.first = firstIntersect.first;\n }\n }\n\n if (lastIntersect.last > newMainRegion.last) {\n if (lastIntersect.isSpacer) {\n newTailRegion.push({\n first: newMainRegion.last + 1,\n last: lastIntersect.last,\n isSpacer: true,\n });\n } else {\n newMainRegion.last = lastIntersect.last;\n }\n }\n\n const replacementRegions: Array = [\n ...newLeadRegion,\n newMainRegion,\n ...newTailRegion,\n ];\n const numRegionsToDelete = lastIntersectIdx - firstIntersectIdx + 1;\n this._regions.splice(\n firstIntersectIdx,\n numRegionsToDelete,\n ...replacementRegions,\n );\n }\n\n numCells(): number {\n return this._numCells;\n }\n\n equals(other: CellRenderMask): boolean {\n return (\n this._numCells === other._numCells &&\n this._regions.length === other._regions.length &&\n this._regions.every(\n (region, i) =>\n region.first === other._regions[i].first &&\n region.last === other._regions[i].last &&\n region.isSpacer === other._regions[i].isSpacer,\n )\n );\n }\n\n _findRegion(cellIdx: number): [CellRegion, number] {\n let firstIdx = 0;\n let lastIdx = this._regions.length - 1;\n\n while (firstIdx <= lastIdx) {\n const middleIdx = Math.floor((firstIdx + lastIdx) / 2);\n const middleRegion = this._regions[middleIdx];\n\n if (cellIdx >= middleRegion.first && cellIdx <= middleRegion.last) {\n return [middleRegion, middleIdx];\n } else if (cellIdx < middleRegion.first) {\n lastIdx = middleIdx - 1;\n } else if (cellIdx > middleRegion.last) {\n firstIdx = middleIdx + 1;\n }\n }\n\n invariant(false, `A region was not found containing cellIdx ${cellIdx}`);\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {ViewToken} from './ViewabilityHelper';\n\nimport {View} from 'react-native';\nimport VirtualizedList from './VirtualizedList';\nimport {keyExtractor as defaultKeyExtractor} from './VirtualizeUtils';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\ntype Item = any;\n\nexport type SectionBase = {\n /**\n * The data for rendering items in this section.\n */\n data: $ReadOnlyArray,\n /**\n * Optional key to keep track of section re-ordering. If you don't plan on re-ordering sections,\n * the array index will be used by default.\n */\n key?: string,\n // Optional props will override list-wide props just for this section.\n renderItem?: ?(info: {\n item: SectionItemT,\n index: number,\n section: SectionBase,\n separators: {\n highlight: () => void,\n unhighlight: () => void,\n updateProps: (select: 'leading' | 'trailing', newProps: Object) => void,\n ...\n },\n ...\n }) => null | React.Element,\n ItemSeparatorComponent?: ?React.ComponentType,\n keyExtractor?: (item: SectionItemT, index?: ?number) => string,\n ...\n};\n\ntype RequiredProps> = {|\n sections: $ReadOnlyArray,\n|};\n\ntype OptionalProps> = {|\n /**\n * Default renderer for every item in every section.\n */\n renderItem?: (info: {\n item: Item,\n index: number,\n section: SectionT,\n separators: {\n highlight: () => void,\n unhighlight: () => void,\n updateProps: (select: 'leading' | 'trailing', newProps: Object) => void,\n ...\n },\n ...\n }) => null | React.Element,\n /**\n * Rendered at the top of each section. These stick to the top of the `ScrollView` by default on\n * iOS. See `stickySectionHeadersEnabled`.\n */\n renderSectionHeader?: ?(info: {\n section: SectionT,\n ...\n }) => null | React.Element,\n /**\n * Rendered at the bottom of each section.\n */\n renderSectionFooter?: ?(info: {\n section: SectionT,\n ...\n }) => null | React.Element,\n /**\n * Rendered at the top and bottom of each section (note this is different from\n * `ItemSeparatorComponent` which is only rendered between items). These are intended to separate\n * sections from the headers above and below and typically have the same highlight response as\n * `ItemSeparatorComponent`. Also receives `highlighted`, `[leading/trailing][Item/Separator]`,\n * and any custom props from `separators.updateProps`.\n */\n SectionSeparatorComponent?: ?React.ComponentType,\n /**\n * Makes section headers stick to the top of the screen until the next one pushes it off. Only\n * enabled by default on iOS because that is the platform standard there.\n */\n stickySectionHeadersEnabled?: boolean,\n onEndReached?: ?({distanceFromEnd: number, ...}) => void,\n|};\n\ntype VirtualizedListProps = React.ElementConfig;\n\nexport type Props = {|\n ...RequiredProps,\n ...OptionalProps,\n ...$Diff<\n VirtualizedListProps,\n {\n renderItem: $PropertyType,\n data: $PropertyType,\n ...\n },\n >,\n|};\nexport type ScrollToLocationParamsType = {|\n animated?: ?boolean,\n itemIndex: number,\n sectionIndex: number,\n viewOffset?: number,\n viewPosition?: number,\n|};\n\ntype State = {childProps: VirtualizedListProps, ...};\n\n/**\n * Right now this just flattens everything into one list and uses VirtualizedList under the\n * hood. The only operation that might not scale well is concatting the data arrays of all the\n * sections when new props are received, which should be plenty fast for up to ~10,000 items.\n */\nclass VirtualizedSectionList<\n SectionT: SectionBase,\n> extends React.PureComponent, State> {\n scrollToLocation(params: ScrollToLocationParamsType) {\n let index = params.itemIndex;\n for (let i = 0; i < params.sectionIndex; i++) {\n index += this.props.getItemCount(this.props.sections[i].data) + 2;\n }\n let viewOffset = params.viewOffset || 0;\n if (this._listRef == null) {\n return;\n }\n if (params.itemIndex > 0 && this.props.stickySectionHeadersEnabled) {\n const frame = this._listRef.__getFrameMetricsApprox(\n index - params.itemIndex,\n this._listRef.props,\n );\n viewOffset += frame.length;\n }\n const toIndexParams = {\n ...params,\n viewOffset,\n index,\n };\n // $FlowFixMe[incompatible-use]\n this._listRef.scrollToIndex(toIndexParams);\n }\n\n getListRef(): ?React.ElementRef {\n return this._listRef;\n }\n\n render(): React.Node {\n const {\n ItemSeparatorComponent, // don't pass through, rendered with renderItem\n SectionSeparatorComponent,\n renderItem: _renderItem,\n renderSectionFooter,\n renderSectionHeader,\n sections: _sections,\n stickySectionHeadersEnabled,\n ...passThroughProps\n } = this.props;\n\n const listHeaderOffset = this.props.ListHeaderComponent ? 1 : 0;\n\n const stickyHeaderIndices = this.props.stickySectionHeadersEnabled\n ? ([]: Array)\n : undefined;\n\n let itemCount = 0;\n for (const section of this.props.sections) {\n // Track the section header indices\n if (stickyHeaderIndices != null) {\n stickyHeaderIndices.push(itemCount + listHeaderOffset);\n }\n\n // Add two for the section header and footer.\n itemCount += 2;\n itemCount += this.props.getItemCount(section.data);\n }\n const renderItem = this._renderItem(itemCount);\n\n return (\n \n this._getItem(this.props, sections, index)\n }\n getItemCount={() => itemCount}\n onViewableItemsChanged={\n this.props.onViewableItemsChanged\n ? this._onViewableItemsChanged\n : undefined\n }\n ref={this._captureRef}\n />\n );\n }\n\n _getItem(\n props: Props,\n sections: ?$ReadOnlyArray,\n index: number,\n ): ?Item {\n if (!sections) {\n return null;\n }\n let itemIdx = index - 1;\n for (let i = 0; i < sections.length; i++) {\n const section = sections[i];\n const sectionData = section.data;\n const itemCount = props.getItemCount(sectionData);\n if (itemIdx === -1 || itemIdx === itemCount) {\n // We intend for there to be overflow by one on both ends of the list.\n // This will be for headers and footers. When returning a header or footer\n // item the section itself is the item.\n return section;\n } else if (itemIdx < itemCount) {\n // If we are in the bounds of the list's data then return the item.\n return props.getItem(sectionData, itemIdx);\n } else {\n itemIdx -= itemCount + 2; // Add two for the header and footer\n }\n }\n return null;\n }\n\n // $FlowFixMe[missing-local-annot]\n _keyExtractor = (item: Item, index: number) => {\n const info = this._subExtractor(index);\n return (info && info.key) || String(index);\n };\n\n _subExtractor(index: number): ?{\n section: SectionT,\n // Key of the section or combined key for section + item\n key: string,\n // Relative index within the section\n index: ?number,\n // True if this is the section header\n header?: ?boolean,\n leadingItem?: ?Item,\n leadingSection?: ?SectionT,\n trailingItem?: ?Item,\n trailingSection?: ?SectionT,\n ...\n } {\n let itemIndex = index;\n const {getItem, getItemCount, keyExtractor, sections} = this.props;\n for (let i = 0; i < sections.length; i++) {\n const section = sections[i];\n const sectionData = section.data;\n const key = section.key || String(i);\n itemIndex -= 1; // The section adds an item for the header\n if (itemIndex >= getItemCount(sectionData) + 1) {\n itemIndex -= getItemCount(sectionData) + 1; // The section adds an item for the footer.\n } else if (itemIndex === -1) {\n return {\n section,\n key: key + ':header',\n index: null,\n header: true,\n trailingSection: sections[i + 1],\n };\n } else if (itemIndex === getItemCount(sectionData)) {\n return {\n section,\n key: key + ':footer',\n index: null,\n header: false,\n trailingSection: sections[i + 1],\n };\n } else {\n const extractor =\n section.keyExtractor || keyExtractor || defaultKeyExtractor;\n return {\n section,\n key:\n key + ':' + extractor(getItem(sectionData, itemIndex), itemIndex),\n index: itemIndex,\n leadingItem: getItem(sectionData, itemIndex - 1),\n leadingSection: sections[i - 1],\n trailingItem: getItem(sectionData, itemIndex + 1),\n trailingSection: sections[i + 1],\n };\n }\n }\n }\n\n _convertViewable = (viewable: ViewToken): ?ViewToken => {\n invariant(viewable.index != null, 'Received a broken ViewToken');\n const info = this._subExtractor(viewable.index);\n if (!info) {\n return null;\n }\n const keyExtractorWithNullableIndex = info.section.keyExtractor;\n const keyExtractorWithNonNullableIndex =\n this.props.keyExtractor || defaultKeyExtractor;\n const key =\n keyExtractorWithNullableIndex != null\n ? keyExtractorWithNullableIndex(viewable.item, info.index)\n : keyExtractorWithNonNullableIndex(viewable.item, info.index ?? 0);\n\n return {\n ...viewable,\n index: info.index,\n key,\n section: info.section,\n };\n };\n\n _onViewableItemsChanged = ({\n viewableItems,\n changed,\n }: {\n viewableItems: Array,\n changed: Array,\n ...\n }) => {\n const onViewableItemsChanged = this.props.onViewableItemsChanged;\n if (onViewableItemsChanged != null) {\n onViewableItemsChanged({\n viewableItems: viewableItems\n .map(this._convertViewable, this)\n .filter(Boolean),\n changed: changed.map(this._convertViewable, this).filter(Boolean),\n });\n }\n };\n\n _renderItem =\n (listItemCount: number): $FlowFixMe =>\n // eslint-disable-next-line react/no-unstable-nested-components\n ({item, index}: {item: Item, index: number, ...}) => {\n const info = this._subExtractor(index);\n if (!info) {\n return null;\n }\n const infoIndex = info.index;\n if (infoIndex == null) {\n const {section} = info;\n if (info.header === true) {\n const {renderSectionHeader} = this.props;\n return renderSectionHeader ? renderSectionHeader({section}) : null;\n } else {\n const {renderSectionFooter} = this.props;\n return renderSectionFooter ? renderSectionFooter({section}) : null;\n }\n } else {\n const renderItem = info.section.renderItem || this.props.renderItem;\n const SeparatorComponent = this._getSeparatorComponent(\n index,\n info,\n listItemCount,\n );\n invariant(renderItem, 'no renderItem!');\n return (\n \n );\n }\n };\n\n _updatePropsFor = (cellKey: string, value: any) => {\n const updateProps = this._updatePropsMap[cellKey];\n if (updateProps != null) {\n updateProps(value);\n }\n };\n\n _updateHighlightFor = (cellKey: string, value: boolean) => {\n const updateHighlight = this._updateHighlightMap[cellKey];\n if (updateHighlight != null) {\n updateHighlight(value);\n }\n };\n\n _setUpdateHighlightFor = (\n cellKey: string,\n updateHighlightFn: ?(boolean) => void,\n ) => {\n if (updateHighlightFn != null) {\n this._updateHighlightMap[cellKey] = updateHighlightFn;\n } else {\n // $FlowFixMe[prop-missing]\n delete this._updateHighlightFor[cellKey];\n }\n };\n\n _setUpdatePropsFor = (cellKey: string, updatePropsFn: ?(boolean) => void) => {\n if (updatePropsFn != null) {\n this._updatePropsMap[cellKey] = updatePropsFn;\n } else {\n delete this._updatePropsMap[cellKey];\n }\n };\n\n _getSeparatorComponent(\n index: number,\n info?: ?Object,\n listItemCount: number,\n ): ?React.ComponentType {\n info = info || this._subExtractor(index);\n if (!info) {\n return null;\n }\n const ItemSeparatorComponent =\n info.section.ItemSeparatorComponent || this.props.ItemSeparatorComponent;\n const {SectionSeparatorComponent} = this.props;\n const isLastItemInList = index === listItemCount - 1;\n const isLastItemInSection =\n info.index === this.props.getItemCount(info.section.data) - 1;\n if (SectionSeparatorComponent && isLastItemInSection) {\n return SectionSeparatorComponent;\n }\n if (ItemSeparatorComponent && !isLastItemInSection && !isLastItemInList) {\n return ItemSeparatorComponent;\n }\n return null;\n }\n\n _updateHighlightMap: {[string]: (boolean) => void} = {};\n _updatePropsMap: {[string]: void | (boolean => void)} = {};\n _listRef: ?React.ElementRef;\n _captureRef = (ref: null | React$ElementRef>) => {\n this._listRef = ref;\n };\n}\n\ntype ItemWithSeparatorCommonProps = $ReadOnly<{|\n leadingItem: ?Item,\n leadingSection: ?Object,\n section: Object,\n trailingItem: ?Item,\n trailingSection: ?Object,\n|}>;\n\ntype ItemWithSeparatorProps = $ReadOnly<{|\n ...ItemWithSeparatorCommonProps,\n LeadingSeparatorComponent: ?React.ComponentType,\n SeparatorComponent: ?React.ComponentType,\n cellKey: string,\n index: number,\n item: Item,\n setSelfHighlightCallback: (\n cellKey: string,\n updateFn: ?(boolean) => void,\n ) => void,\n setSelfUpdatePropsCallback: (\n cellKey: string,\n updateFn: ?(boolean) => void,\n ) => void,\n prevCellKey?: ?string,\n updateHighlightFor: (prevCellKey: string, value: boolean) => void,\n updatePropsFor: (prevCellKey: string, value: Object) => void,\n renderItem: Function,\n inverted: boolean,\n|}>;\n\nfunction ItemWithSeparator(props: ItemWithSeparatorProps): React.Node {\n const {\n LeadingSeparatorComponent,\n // this is the trailing separator and is associated with this item\n SeparatorComponent,\n cellKey,\n prevCellKey,\n setSelfHighlightCallback,\n updateHighlightFor,\n setSelfUpdatePropsCallback,\n updatePropsFor,\n item,\n index,\n section,\n inverted,\n } = props;\n\n const [leadingSeparatorHiglighted, setLeadingSeparatorHighlighted] =\n React.useState(false);\n\n const [separatorHighlighted, setSeparatorHighlighted] = React.useState(false);\n\n const [leadingSeparatorProps, setLeadingSeparatorProps] = React.useState({\n leadingItem: props.leadingItem,\n leadingSection: props.leadingSection,\n section: props.section,\n trailingItem: props.item,\n trailingSection: props.trailingSection,\n });\n const [separatorProps, setSeparatorProps] = React.useState({\n leadingItem: props.item,\n leadingSection: props.leadingSection,\n section: props.section,\n trailingItem: props.trailingItem,\n trailingSection: props.trailingSection,\n });\n\n React.useEffect(() => {\n setSelfHighlightCallback(cellKey, setSeparatorHighlighted);\n // $FlowFixMe[incompatible-call]\n setSelfUpdatePropsCallback(cellKey, setSeparatorProps);\n\n return () => {\n setSelfUpdatePropsCallback(cellKey, null);\n setSelfHighlightCallback(cellKey, null);\n };\n }, [\n cellKey,\n setSelfHighlightCallback,\n setSeparatorProps,\n setSelfUpdatePropsCallback,\n ]);\n\n const separators = {\n highlight: () => {\n setLeadingSeparatorHighlighted(true);\n setSeparatorHighlighted(true);\n if (prevCellKey != null) {\n updateHighlightFor(prevCellKey, true);\n }\n },\n unhighlight: () => {\n setLeadingSeparatorHighlighted(false);\n setSeparatorHighlighted(false);\n if (prevCellKey != null) {\n updateHighlightFor(prevCellKey, false);\n }\n },\n updateProps: (\n select: 'leading' | 'trailing',\n newProps: $Shape,\n ) => {\n if (select === 'leading') {\n if (LeadingSeparatorComponent != null) {\n setLeadingSeparatorProps({...leadingSeparatorProps, ...newProps});\n } else if (prevCellKey != null) {\n // update the previous item's separator\n updatePropsFor(prevCellKey, {...leadingSeparatorProps, ...newProps});\n }\n } else if (select === 'trailing' && SeparatorComponent != null) {\n setSeparatorProps({...separatorProps, ...newProps});\n }\n },\n };\n const element = props.renderItem({\n item,\n index,\n section,\n separators,\n });\n const leadingSeparator = LeadingSeparatorComponent != null && (\n \n );\n const separator = SeparatorComponent != null && (\n \n );\n return leadingSeparator || separator ? (\n \n {inverted === false ? leadingSeparator : separator}\n {element}\n {inverted === false ? separator : leadingSeparator}\n \n ) : (\n element\n );\n}\n\n/* $FlowFixMe[class-object-subtyping] added when improving typing for this\n * parameters */\n// $FlowFixMe[method-unbinding]\nmodule.exports = (VirtualizedSectionList: React.AbstractComponent<\n React.ElementConfig,\n $ReadOnly<{\n getListRef: () => ?React.ElementRef,\n scrollToLocation: (params: ScrollToLocationParamsType) => void,\n ...\n }>,\n>);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {AnimatedComponentType} from '../createAnimatedComponent';\n\nimport Image from '../../Image/Image';\nimport createAnimatedComponent from '../createAnimatedComponent';\nimport * as React from 'react';\n\nexport default (createAnimatedComponent(\n (Image: $FlowFixMe),\n): AnimatedComponentType<\n React.ElementConfig,\n React.ElementRef,\n>);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {RootTag} from '../Types/RootTagTypes';\nimport type {ImageAndroid} from './Image.flow';\nimport type {ImageProps as ImagePropsType} from './ImageProps';\n\nimport flattenStyle from '../StyleSheet/flattenStyle';\nimport StyleSheet from '../StyleSheet/StyleSheet';\nimport TextAncestor from '../Text/TextAncestor';\nimport ImageAnalyticsTagContext from './ImageAnalyticsTagContext';\nimport ImageInjection from './ImageInjection';\nimport {getImageSourcesFromImageProps} from './ImageSourceUtils';\nimport {convertObjectFitToResizeMode} from './ImageUtils';\nimport ImageViewNativeComponent from './ImageViewNativeComponent';\nimport NativeImageLoaderAndroid from './NativeImageLoaderAndroid';\nimport resolveAssetSource from './resolveAssetSource';\nimport TextInlineImageNativeComponent from './TextInlineImageNativeComponent';\nimport * as React from 'react';\n\nlet _requestId = 1;\nfunction generateRequestId() {\n return _requestId++;\n}\n\n/**\n * Retrieve the width and height (in pixels) of an image prior to displaying it\n *\n * See https://reactnative.dev/docs/image#getsize\n */\nfunction getSize(\n url: string,\n success: (width: number, height: number) => void,\n failure?: (error: any) => void,\n): any {\n return NativeImageLoaderAndroid.getSize(url)\n .then(function (sizes) {\n success(sizes.width, sizes.height);\n })\n .catch(\n failure ||\n function () {\n console.warn('Failed to get size for image: ' + url);\n },\n );\n}\n\n/**\n * Retrieve the width and height (in pixels) of an image prior to displaying it\n * with the ability to provide the headers for the request\n *\n * See https://reactnative.dev/docs/image#getsizewithheaders\n */\nfunction getSizeWithHeaders(\n url: string,\n headers: {[string]: string, ...},\n success: (width: number, height: number) => void,\n failure?: (error: any) => void,\n): any {\n return NativeImageLoaderAndroid.getSizeWithHeaders(url, headers)\n .then(function (sizes) {\n success(sizes.width, sizes.height);\n })\n .catch(\n failure ||\n function () {\n console.warn('Failed to get size for image: ' + url);\n },\n );\n}\n\nfunction prefetchWithMetadata(\n url: string,\n queryRootName: string,\n rootTag?: ?RootTag,\n callback: ?Function,\n): any {\n // TODO: T79192300 Log queryRootName and rootTag\n prefetch(url, callback);\n}\n\nfunction prefetch(url: string, callback: ?Function): any {\n const requestId = generateRequestId();\n callback && callback(requestId);\n return NativeImageLoaderAndroid.prefetchImage(url, requestId);\n}\n\nfunction abortPrefetch(requestId: number) {\n NativeImageLoaderAndroid.abortRequest(requestId);\n}\n\n/**\n * Perform cache interrogation.\n *\n * See https://reactnative.dev/docs/image#querycache\n */\nasync function queryCache(\n urls: Array,\n): Promise<{[string]: 'memory' | 'disk' | 'disk/memory', ...}> {\n return await NativeImageLoaderAndroid.queryCache(urls);\n}\n\nexport type ImageComponentStatics = $ReadOnly<{|\n getSize: typeof getSize,\n getSizeWithHeaders: typeof getSizeWithHeaders,\n prefetch: typeof prefetch,\n prefetchWithMetadata: typeof prefetchWithMetadata,\n abortPrefetch: typeof abortPrefetch,\n queryCache: typeof queryCache,\n resolveAssetSource: typeof resolveAssetSource,\n|}>;\n\n/**\n * A React component for displaying different types of images,\n * including network images, static resources, temporary local images, and\n * images from local disk, such as the camera roll.\n *\n * See https://reactnative.dev/docs/image\n */\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\nconst BaseImage = (props: ImagePropsType, forwardedRef) => {\n let source = getImageSourcesFromImageProps(props) || {\n uri: undefined,\n width: undefined,\n height: undefined,\n };\n const defaultSource = resolveAssetSource(props.defaultSource);\n const loadingIndicatorSource = resolveAssetSource(\n props.loadingIndicatorSource,\n );\n\n if (props.children) {\n throw new Error(\n 'The component cannot contain children. If you want to render content on top of the image, consider using the component or absolute positioning.',\n );\n }\n\n if (props.defaultSource && props.loadingIndicatorSource) {\n throw new Error(\n 'The component cannot have defaultSource and loadingIndicatorSource at the same time. Please use either defaultSource or loadingIndicatorSource.',\n );\n }\n\n let style;\n let sources;\n if (Array.isArray(source)) {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n style = flattenStyle([styles.base, props.style]);\n sources = source;\n } else {\n // $FlowFixMe[incompatible-type]\n const {width = props.width, height = props.height, uri} = source;\n // $FlowFixMe[underconstrained-implicit-instantiation]\n style = flattenStyle([{width, height}, styles.base, props.style]);\n sources = [source];\n if (uri === '') {\n console.warn('source.uri should not be an empty string');\n }\n }\n\n const {height, width, ...restProps} = props;\n\n const {onLoadStart, onLoad, onLoadEnd, onError} = props;\n const nativeProps = {\n ...restProps,\n style,\n shouldNotifyLoadEvents: !!(onLoadStart || onLoad || onLoadEnd || onError),\n src: sources,\n /* $FlowFixMe(>=0.78.0 site=react_native_android_fb) This issue was found\n * when making Flow check .android.js files. */\n headers: (source?.[0]?.headers || source?.headers: ?{[string]: string}),\n defaultSrc: defaultSource ? defaultSource.uri : null,\n loadingIndicatorSrc: loadingIndicatorSource\n ? loadingIndicatorSource.uri\n : null,\n ref: forwardedRef,\n accessibilityLabel:\n props['aria-label'] ?? props.accessibilityLabel ?? props.alt,\n accessibilityLabelledBy:\n props?.['aria-labelledby'] ?? props?.accessibilityLabelledBy,\n accessible: props.alt !== undefined ? true : props.accessible,\n accessibilityState: {\n busy: props['aria-busy'] ?? props.accessibilityState?.busy,\n checked: props['aria-checked'] ?? props.accessibilityState?.checked,\n disabled: props['aria-disabled'] ?? props.accessibilityState?.disabled,\n expanded: props['aria-expanded'] ?? props.accessibilityState?.expanded,\n selected: props['aria-selected'] ?? props.accessibilityState?.selected,\n },\n };\n\n const objectFit =\n style && style.objectFit\n ? convertObjectFitToResizeMode(style.objectFit)\n : null;\n // $FlowFixMe[prop-missing]\n const resizeMode =\n objectFit || props.resizeMode || (style && style.resizeMode) || 'cover';\n\n return (\n \n {analyticTag => {\n const nativePropsWithAnalytics =\n analyticTag !== null\n ? {\n ...nativeProps,\n internal_analyticTag: analyticTag,\n }\n : nativeProps;\n return (\n \n {hasTextAncestor => {\n if (hasTextAncestor) {\n return (\n \n );\n }\n\n return (\n \n );\n }}\n \n );\n }}\n \n );\n};\n\nlet Image = React.forwardRef<\n ImagePropsType,\n | React.ElementRef\n | React.ElementRef,\n>(BaseImage);\n\nif (ImageInjection.unstable_createImageComponent != null) {\n Image = ImageInjection.unstable_createImageComponent(Image);\n}\n\nImage.displayName = 'Image';\n\n/**\n * Retrieve the width and height (in pixels) of an image prior to displaying it\n *\n * See https://reactnative.dev/docs/image#getsize\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.getSize = getSize;\n\n/**\n * Retrieve the width and height (in pixels) of an image prior to displaying it\n * with the ability to provide the headers for the request\n *\n * See https://reactnative.dev/docs/image#getsizewithheaders\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.getSizeWithHeaders = getSizeWithHeaders;\n\n/**\n * Prefetches a remote image for later use by downloading it to the disk\n * cache\n *\n * See https://reactnative.dev/docs/image#prefetch\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.prefetch = prefetch;\n\n/**\n * Prefetches a remote image for later use by downloading it to the disk\n * cache, and adds metadata for queryRootName and rootTag.\n *\n * See https://reactnative.dev/docs/image#prefetch\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.prefetchWithMetadata = prefetchWithMetadata;\n\n/**\n * Abort prefetch request.\n *\n * See https://reactnative.dev/docs/image#abortprefetch\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.abortPrefetch = abortPrefetch;\n\n/**\n * Perform cache interrogation.\n *\n * See https://reactnative.dev/docs/image#querycache\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.queryCache = queryCache;\n\n/**\n * Resolves an asset reference into an object.\n *\n * See https://reactnative.dev/docs/image#resolveassetsource\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.resolveAssetSource = resolveAssetSource;\n\n/**\n * Switch to `deprecated-react-native-prop-types` for compatibility with future\n * releases. This is deprecated and will be removed in the future.\n */\nImage.propTypes = require('deprecated-react-native-prop-types').ImagePropTypes;\n\nconst styles = StyleSheet.create({\n base: {\n overflow: 'hidden',\n },\n});\n\nmodule.exports = ((Image: any): ImageAndroid);\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport * as React from 'react';\n\ntype ContextType = ?string;\n\nconst Context: React.Context =\n React.createContext(null);\n\nif (__DEV__) {\n Context.displayName = 'ImageAnalyticsTagContext';\n}\n\nexport default Context;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format strict-local\n * @flow\n */\n\nimport type {ImageProps as ImagePropsType} from './ImageProps';\n\nimport ImageViewNativeComponent from './ImageViewNativeComponent';\nimport TextInlineImageNativeComponent from './TextInlineImageNativeComponent';\nimport * as React from 'react';\n\nexport default {\n unstable_createImageComponent: (null: ?(\n Image: React.AbstractComponent<\n ImagePropsType,\n | React.ElementRef\n | React.ElementRef,\n >,\n ) => React.AbstractComponent<\n ImagePropsType,\n | React.ElementRef\n | React.ElementRef,\n >),\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {ViewProps} from '../Components/View/ViewPropTypes';\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../Renderer/shims/ReactNativeTypes';\nimport type {\n ColorValue,\n DangerouslyImpreciseStyle,\n ImageStyleProp,\n} from '../StyleSheet/StyleSheet';\nimport type {ResolvedAssetSource} from './AssetSourceResolver';\nimport type {ImageProps} from './ImageProps';\n\nimport * as NativeComponentRegistry from '../NativeComponent/NativeComponentRegistry';\nimport {ConditionallyIgnoredEventHandlers} from '../NativeComponent/ViewConfigIgnore';\nimport Platform from '../Utilities/Platform';\n\ntype Props = $ReadOnly<{\n ...ImageProps,\n ...ViewProps,\n\n style?: ImageStyleProp | DangerouslyImpreciseStyle,\n\n // iOS native props\n tintColor?: ColorValue,\n\n // Android native props\n shouldNotifyLoadEvents?: boolean,\n src?:\n | ?ResolvedAssetSource\n | ?$ReadOnlyArray>,\n headers?: ?{[string]: string},\n defaultSrc?: ?string,\n loadingIndicatorSrc?: ?string,\n}>;\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig =\n Platform.OS === 'android'\n ? {\n uiViewClassName: 'RCTImageView',\n bubblingEventTypes: {},\n directEventTypes: {\n topLoadStart: {\n registrationName: 'onLoadStart',\n },\n topProgress: {\n registrationName: 'onProgress',\n },\n topError: {\n registrationName: 'onError',\n },\n topLoad: {\n registrationName: 'onLoad',\n },\n topLoadEnd: {\n registrationName: 'onLoadEnd',\n },\n },\n validAttributes: {\n blurRadius: true,\n internal_analyticTag: true,\n resizeMode: true,\n tintColor: {\n process: require('../StyleSheet/processColor').default,\n },\n borderBottomLeftRadius: true,\n borderTopLeftRadius: true,\n resizeMethod: true,\n src: true,\n borderRadius: true,\n headers: true,\n shouldNotifyLoadEvents: true,\n defaultSrc: true,\n overlayColor: {\n process: require('../StyleSheet/processColor').default,\n },\n borderColor: {\n process: require('../StyleSheet/processColor').default,\n },\n accessible: true,\n progressiveRenderingEnabled: true,\n fadeDuration: true,\n borderBottomRightRadius: true,\n borderTopRightRadius: true,\n loadingIndicatorSrc: true,\n },\n }\n : {\n uiViewClassName: 'RCTImageView',\n bubblingEventTypes: {},\n directEventTypes: {\n topLoadStart: {\n registrationName: 'onLoadStart',\n },\n topProgress: {\n registrationName: 'onProgress',\n },\n topError: {\n registrationName: 'onError',\n },\n topPartialLoad: {\n registrationName: 'onPartialLoad',\n },\n topLoad: {\n registrationName: 'onLoad',\n },\n topLoadEnd: {\n registrationName: 'onLoadEnd',\n },\n },\n validAttributes: {\n blurRadius: true,\n capInsets: {\n diff: require('../Utilities/differ/insetsDiffer'),\n },\n defaultSource: {\n process: require('./resolveAssetSource'),\n },\n internal_analyticTag: true,\n resizeMode: true,\n source: true,\n tintColor: {\n process: require('../StyleSheet/processColor').default,\n },\n ...ConditionallyIgnoredEventHandlers({\n onLoadStart: true,\n onLoad: true,\n onLoadEnd: true,\n onProgress: true,\n onError: true,\n onPartialLoad: true,\n }),\n },\n };\n\nconst ImageViewNativeComponent: HostComponent =\n NativeComponentRegistry.get(\n 'RCTImageView',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\nexport default ImageViewNativeComponent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n'use strict';\n\nimport type {ViewProps} from '../Components/View/ViewPropTypes';\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../StyleSheet/StyleSheet';\nimport type {ImageResizeMode} from './ImageResizeMode';\n\nimport * as NativeComponentRegistry from '../NativeComponent/NativeComponentRegistry';\n\ntype NativeProps = $ReadOnly<{\n ...ViewProps,\n resizeMode?: ?ImageResizeMode,\n src?: ?$ReadOnlyArray>,\n tintColor?: ?ColorValue,\n headers?: ?{[string]: string},\n}>;\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {\n uiViewClassName: 'RCTTextInlineImage',\n bubblingEventTypes: {},\n directEventTypes: {},\n validAttributes: {\n resizeMode: true,\n src: true,\n tintColor: {\n process: require('../StyleSheet/processColor').default,\n },\n headers: true,\n },\n};\n\nconst TextInlineImage: HostComponent =\n NativeComponentRegistry.get(\n 'RCTTextInlineImage',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\nexport default TextInlineImage;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +abortRequest: (requestId: number) => void;\n +getConstants: () => {||};\n +getSize: (uri: string) => Promise<\n $ReadOnly<{\n width: number,\n height: number,\n ...\n }>,\n >;\n +getSizeWithHeaders: (\n uri: string,\n headers: Object,\n ) => Promise<{\n width: number,\n height: number,\n ...\n }>;\n +prefetchImage: (uri: string, requestId: number) => Promise;\n +queryCache: (uris: Array) => Promise;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('ImageLoader'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nimport type {ResolvedAssetSource} from './AssetSourceResolver';\nimport type {ImageProps} from './ImageProps';\n\nimport resolveAssetSource from './resolveAssetSource';\n\n/**\n * A function which returns the appropriate value for image source\n * by resolving the `source`, `src` and `srcSet` props.\n */\nexport function getImageSourcesFromImageProps(\n imageProps: ImageProps,\n): ?ResolvedAssetSource | $ReadOnlyArray<{uri: string, ...}> {\n let source = resolveAssetSource(imageProps.source);\n\n let sources;\n\n const {crossOrigin, referrerPolicy, src, srcSet, width, height} = imageProps;\n\n const headers: {[string]: string} = {};\n if (crossOrigin === 'use-credentials') {\n headers['Access-Control-Allow-Credentials'] = 'true';\n }\n if (referrerPolicy != null) {\n headers['Referrer-Policy'] = referrerPolicy;\n }\n if (srcSet != null) {\n const sourceList = [];\n const srcSetList = srcSet.split(', ');\n // `src` prop should be used with default scale if `srcSet` does not have 1x scale.\n let shouldUseSrcForDefaultScale = true;\n srcSetList.forEach(imageSrc => {\n const [uri, xScale = '1x'] = imageSrc.split(' ');\n if (!xScale.endsWith('x')) {\n console.warn(\n 'The provided format for scale is not supported yet. Please use scales like 1x, 2x, etc.',\n );\n } else {\n const scale = parseInt(xScale.split('x')[0], 10);\n if (!isNaN(scale)) {\n // 1x scale is provided in `srcSet` prop so ignore the `src` prop if provided.\n shouldUseSrcForDefaultScale =\n scale === 1 ? false : shouldUseSrcForDefaultScale;\n sourceList.push({headers: headers, scale, uri, width, height});\n }\n }\n });\n\n if (shouldUseSrcForDefaultScale && src != null) {\n sourceList.push({\n headers: headers,\n scale: 1,\n uri: src,\n width,\n height,\n });\n }\n if (sourceList.length === 0) {\n console.warn('The provided value for srcSet is not valid.');\n }\n\n sources = sourceList;\n } else if (src != null) {\n sources = [{uri: src, headers: headers, width, height}];\n } else {\n sources = source;\n }\n return sources;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\ntype ResizeMode = 'cover' | 'contain' | 'stretch' | 'repeat' | 'center';\n\nexport function convertObjectFitToResizeMode(objectFit: string): ResizeMode {\n const objectFitMap = {\n contain: 'contain',\n cover: 'cover',\n fill: 'stretch',\n 'scale-down': 'contain',\n };\n return objectFitMap[objectFit];\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {____ViewStyle_Internal} from '../../StyleSheet/StyleSheetTypes';\nimport type {AnimatedComponentType} from '../createAnimatedComponent';\n\nimport RefreshControl from '../../Components/RefreshControl/RefreshControl';\nimport ScrollView from '../../Components/ScrollView/ScrollView';\nimport flattenStyle from '../../StyleSheet/flattenStyle';\nimport splitLayoutProps from '../../StyleSheet/splitLayoutProps';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport useMergeRefs from '../../Utilities/useMergeRefs';\nimport createAnimatedComponent from '../createAnimatedComponent';\nimport useAnimatedProps from '../useAnimatedProps';\nimport * as React from 'react';\nimport {useMemo} from 'react';\n\ntype Props = React.ElementConfig;\ntype Instance = React.ElementRef;\n\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nconst AnimatedScrollView: AnimatedComponentType =\n React.forwardRef((props, forwardedRef) => {\n // (Android only) When a ScrollView has a RefreshControl and\n // any `style` property set with an Animated.Value, the CSS\n // gets incorrectly applied twice. This is because ScrollView\n // swaps the parent/child relationship of itself and the\n // RefreshControl component (see ScrollView.js for more details).\n if (\n Platform.OS === 'android' &&\n props.refreshControl != null &&\n props.style != null\n ) {\n return (\n \n );\n } else {\n return (\n \n );\n }\n });\n\nconst AnimatedScrollViewWithInvertedRefreshControl = React.forwardRef(\n (\n props: {\n ...React.ElementConfig,\n // $FlowFixMe[unclear-type] Same Flow type as `refreshControl` in ScrollView\n refreshControl: React.Element,\n },\n forwardedRef:\n | {current: Instance | null, ...}\n | ((Instance | null) => mixed),\n ) => {\n // Split `props` into the animate-able props for the parent (RefreshControl)\n // and child (ScrollView).\n const {intermediatePropsForRefreshControl, intermediatePropsForScrollView} =\n useMemo(() => {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n const {outer, inner} = splitLayoutProps(flattenStyle(props.style));\n return {\n intermediatePropsForRefreshControl: {style: outer},\n intermediatePropsForScrollView: {...props, style: inner},\n };\n }, [props]);\n\n // Handle animated props on `refreshControl`.\n const [refreshControlAnimatedProps, refreshControlRef] = useAnimatedProps<\n {style: ?____ViewStyle_Internal},\n $FlowFixMe,\n >(intermediatePropsForRefreshControl);\n // NOTE: Assumes that refreshControl.ref` and `refreshControl.style` can be\n // safely clobbered.\n const refreshControl: React.Element =\n React.cloneElement(props.refreshControl, {\n ...refreshControlAnimatedProps,\n ref: refreshControlRef,\n });\n\n // Handle animated props on `NativeDirectionalScrollView`.\n const [scrollViewAnimatedProps, scrollViewRef] = useAnimatedProps<\n Props,\n Instance,\n >(intermediatePropsForScrollView);\n const ref = useMergeRefs(scrollViewRef, forwardedRef);\n\n return (\n // $FlowFixMe[incompatible-use] Investigate useAnimatedProps return value\n \n );\n },\n);\n\nconst AnimatedScrollViewWithoutInvertedRefreshControl =\n createAnimatedComponent(ScrollView);\n\nexport default AnimatedScrollView;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport AndroidSwipeRefreshLayoutNativeComponent, {\n Commands as AndroidSwipeRefreshLayoutCommands,\n} from './AndroidSwipeRefreshLayoutNativeComponent';\nimport PullToRefreshViewNativeComponent, {\n Commands as PullToRefreshCommands,\n} from './PullToRefreshViewNativeComponent';\n\nconst Platform = require('../../Utilities/Platform');\nconst React = require('react');\n\ntype IOSProps = $ReadOnly<{|\n /**\n * The color of the refresh indicator.\n */\n tintColor?: ?ColorValue,\n /**\n * Title color.\n */\n titleColor?: ?ColorValue,\n /**\n * The title displayed under the refresh indicator.\n */\n title?: ?string,\n|}>;\n\ntype AndroidProps = $ReadOnly<{|\n /**\n * Whether the pull to refresh functionality is enabled.\n */\n enabled?: ?boolean,\n /**\n * The colors (at least one) that will be used to draw the refresh indicator.\n */\n colors?: ?$ReadOnlyArray,\n /**\n * The background color of the refresh indicator.\n */\n progressBackgroundColor?: ?ColorValue,\n /**\n * Size of the refresh indicator.\n */\n size?: ?('default' | 'large'),\n|}>;\n\nexport type RefreshControlProps = $ReadOnly<{|\n ...ViewProps,\n ...IOSProps,\n ...AndroidProps,\n\n /**\n * Called when the view starts refreshing.\n */\n onRefresh?: ?() => void | Promise,\n\n /**\n * Whether the view should be indicating an active refresh.\n */\n refreshing: boolean,\n\n /**\n * Progress view top offset\n */\n progressViewOffset?: ?number,\n|}>;\n\n/**\n * This component is used inside a ScrollView or ListView to add pull to refresh\n * functionality. When the ScrollView is at `scrollY: 0`, swiping down\n * triggers an `onRefresh` event.\n *\n * ### Usage example\n *\n * ``` js\n * class RefreshableList extends Component {\n * constructor(props) {\n * super(props);\n * this.state = {\n * refreshing: false,\n * };\n * }\n *\n * _onRefresh() {\n * this.setState({refreshing: true});\n * fetchData().then(() => {\n * this.setState({refreshing: false});\n * });\n * }\n *\n * render() {\n * return (\n * \n * }\n * ...\n * >\n * ...\n * \n * );\n * }\n * ...\n * }\n * ```\n *\n * __Note:__ `refreshing` is a controlled prop, this is why it needs to be set to true\n * in the `onRefresh` function otherwise the refresh indicator will stop immediately.\n */\nclass RefreshControl extends React.Component {\n _nativeRef: ?React.ElementRef<\n | typeof PullToRefreshViewNativeComponent\n | typeof AndroidSwipeRefreshLayoutNativeComponent,\n >;\n _lastNativeRefreshing = false;\n\n componentDidMount() {\n this._lastNativeRefreshing = this.props.refreshing;\n }\n\n componentDidUpdate(prevProps: RefreshControlProps) {\n // RefreshControl is a controlled component so if the native refreshing\n // value doesn't match the current js refreshing prop update it to\n // the js value.\n if (this.props.refreshing !== prevProps.refreshing) {\n this._lastNativeRefreshing = this.props.refreshing;\n } else if (\n this.props.refreshing !== this._lastNativeRefreshing &&\n this._nativeRef\n ) {\n if (Platform.OS === 'android') {\n AndroidSwipeRefreshLayoutCommands.setNativeRefreshing(\n this._nativeRef,\n this.props.refreshing,\n );\n } else {\n PullToRefreshCommands.setNativeRefreshing(\n this._nativeRef,\n this.props.refreshing,\n );\n }\n this._lastNativeRefreshing = this.props.refreshing;\n }\n }\n\n render(): React.Node {\n if (Platform.OS === 'ios') {\n const {enabled, colors, progressBackgroundColor, size, ...props} =\n this.props;\n return (\n \n );\n } else {\n const {tintColor, titleColor, title, ...props} = this.props;\n return (\n \n );\n }\n }\n\n _onRefresh = () => {\n this._lastNativeRefreshing = true;\n\n // $FlowFixMe[unused-promise]\n this.props.onRefresh && this.props.onRefresh();\n\n // The native component will start refreshing so force an update to\n // make sure it stays in sync with the js component.\n this.forceUpdate();\n };\n\n _setNativeRef = (\n ref: ?React.ElementRef<\n | typeof PullToRefreshViewNativeComponent\n | typeof AndroidSwipeRefreshLayoutNativeComponent,\n >,\n ) => {\n this._nativeRef = ref;\n };\n}\n\nmodule.exports = RefreshControl;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n DirectEventHandler,\n Float,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\nimport * as React from 'react';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * Whether the pull to refresh functionality is enabled.\n */\n enabled?: WithDefault,\n /**\n * The colors (at least one) that will be used to draw the refresh indicator.\n */\n colors?: ?$ReadOnlyArray,\n /**\n * The background color of the refresh indicator.\n */\n progressBackgroundColor?: ?ColorValue,\n /**\n * Size of the refresh indicator.\n */\n size?: WithDefault<'default' | 'large', 'default'>,\n /**\n * Progress view top offset\n */\n progressViewOffset?: WithDefault,\n\n /**\n * Called when the view starts refreshing.\n */\n onRefresh?: ?DirectEventHandler,\n\n /**\n * Whether the view should be indicating an active refresh.\n */\n refreshing: boolean,\n|}>;\n\ntype NativeType = HostComponent;\n\ninterface NativeCommands {\n +setNativeRefreshing: (\n viewRef: React.ElementRef,\n value: boolean,\n ) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['setNativeRefreshing'],\n});\n\nexport default (codegenNativeComponent(\n 'AndroidSwipeRefreshLayout',\n): NativeType);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n DirectEventHandler,\n Float,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\nimport * as React from 'react';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * The color of the refresh indicator.\n */\n tintColor?: ?ColorValue,\n /**\n * Title color.\n */\n titleColor?: ?ColorValue,\n /**\n * The title displayed under the refresh indicator.\n */\n title?: WithDefault,\n /**\n * Progress view top offset\n */\n progressViewOffset?: WithDefault,\n\n /**\n * Called when the view starts refreshing.\n */\n onRefresh?: ?DirectEventHandler,\n\n /**\n * Whether the view should be indicating an active refresh.\n */\n refreshing: boolean,\n|}>;\n\ntype ComponentType = HostComponent;\n\ninterface NativeCommands {\n +setNativeRefreshing: (\n viewRef: React.ElementRef,\n refreshing: boolean,\n ) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['setNativeRefreshing'],\n});\n\nexport default (codegenNativeComponent('PullToRefreshView', {\n paperComponentName: 'RCTRefreshControl',\n excludedPlatforms: ['android'],\n}): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {EdgeInsetsProp} from '../../StyleSheet/EdgeInsetsPropType';\nimport type {PointProp} from '../../StyleSheet/PointPropType';\nimport type {ViewStyleProp} from '../../StyleSheet/StyleSheet';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n LayoutEvent,\n PressEvent,\n ScrollEvent,\n} from '../../Types/CoreEventTypes';\nimport type {EventSubscription} from '../../vendor/emitter/EventEmitter';\nimport type {KeyboardEvent, KeyboardMetrics} from '../Keyboard/Keyboard';\nimport type {ViewProps} from '../View/ViewPropTypes';\nimport type {Props as ScrollViewStickyHeaderProps} from './ScrollViewStickyHeader';\n\nimport AnimatedImplementation from '../../Animated/AnimatedImplementation';\nimport FrameRateLogger from '../../Interaction/FrameRateLogger';\nimport {findNodeHandle} from '../../ReactNative/RendererProxy';\nimport UIManager from '../../ReactNative/UIManager';\nimport flattenStyle from '../../StyleSheet/flattenStyle';\nimport splitLayoutProps from '../../StyleSheet/splitLayoutProps';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Dimensions from '../../Utilities/Dimensions';\nimport dismissKeyboard from '../../Utilities/dismissKeyboard';\nimport Platform from '../../Utilities/Platform';\nimport Keyboard from '../Keyboard/Keyboard';\nimport TextInputState from '../TextInput/TextInputState';\nimport View from '../View/View';\nimport AndroidHorizontalScrollContentViewNativeComponent from './AndroidHorizontalScrollContentViewNativeComponent';\nimport AndroidHorizontalScrollViewNativeComponent from './AndroidHorizontalScrollViewNativeComponent';\nimport processDecelerationRate from './processDecelerationRate';\nimport ScrollContentViewNativeComponent from './ScrollContentViewNativeComponent';\nimport Commands from './ScrollViewCommands';\nimport ScrollViewContext, {HORIZONTAL, VERTICAL} from './ScrollViewContext';\nimport ScrollViewNativeComponent from './ScrollViewNativeComponent';\nimport ScrollViewStickyHeader from './ScrollViewStickyHeader';\nimport invariant from 'invariant';\nimport memoize from 'memoize-one';\nimport nullthrows from 'nullthrows';\nimport * as React from 'react';\n\nif (Platform.OS === 'ios') {\n require('../../Renderer/shims/ReactNative'); // Force side effects to prevent T55744311\n}\n\nconst {NativeHorizontalScrollViewTuple, NativeVerticalScrollViewTuple} =\n Platform.OS === 'android'\n ? {\n NativeHorizontalScrollViewTuple: [\n AndroidHorizontalScrollViewNativeComponent,\n AndroidHorizontalScrollContentViewNativeComponent,\n ],\n NativeVerticalScrollViewTuple: [ScrollViewNativeComponent, View],\n }\n : {\n NativeHorizontalScrollViewTuple: [\n ScrollViewNativeComponent,\n ScrollContentViewNativeComponent,\n ],\n NativeVerticalScrollViewTuple: [\n ScrollViewNativeComponent,\n ScrollContentViewNativeComponent,\n ],\n };\n\n/*\n * iOS scroll event timing nuances:\n * ===============================\n *\n *\n * Scrolling without bouncing, if you touch down:\n * -------------------------------\n *\n * 1. `onMomentumScrollBegin` (when animation begins after letting up)\n * ... physical touch starts ...\n * 2. `onTouchStartCapture` (when you press down to stop the scroll)\n * 3. `onTouchStart` (same, but bubble phase)\n * 4. `onResponderRelease` (when lifting up - you could pause forever before * lifting)\n * 5. `onMomentumScrollEnd`\n *\n *\n * Scrolling with bouncing, if you touch down:\n * -------------------------------\n *\n * 1. `onMomentumScrollBegin` (when animation begins after letting up)\n * ... bounce begins ...\n * ... some time elapses ...\n * ... physical touch during bounce ...\n * 2. `onMomentumScrollEnd` (Makes no sense why this occurs first during bounce)\n * 3. `onTouchStartCapture` (immediately after `onMomentumScrollEnd`)\n * 4. `onTouchStart` (same, but bubble phase)\n * 5. `onTouchEnd` (You could hold the touch start for a long time)\n * 6. `onMomentumScrollBegin` (When releasing the view starts bouncing back)\n *\n * So when we receive an `onTouchStart`, how can we tell if we are touching\n * *during* an animation (which then causes the animation to stop)? The only way\n * to tell is if the `touchStart` occurred immediately after the\n * `onMomentumScrollEnd`.\n *\n * This is abstracted out for you, so you can just call this.scrollResponderIsAnimating() if\n * necessary\n *\n * `ScrollView` also includes logic for blurring a currently focused input\n * if one is focused while scrolling. This is a natural place\n * to put this logic since it can support not dismissing the keyboard while\n * scrolling, unless a recognized \"tap\"-like gesture has occurred.\n *\n * The public lifecycle API includes events for keyboard interaction, responder\n * interaction, and scrolling (among others). The keyboard callbacks\n * `onKeyboardWill/Did/*` are *global* events, but are invoked on scroll\n * responder's props so that you can guarantee that the scroll responder's\n * internal state has been updated accordingly (and deterministically) by\n * the time the props callbacks are invoke. Otherwise, you would always wonder\n * if the scroll responder is currently in a state where it recognizes new\n * keyboard positions etc. If coordinating scrolling with keyboard movement,\n * *always* use these hooks instead of listening to your own global keyboard\n * events.\n *\n * Public keyboard lifecycle API: (props callbacks)\n *\n * Standard Keyboard Appearance Sequence:\n *\n * this.props.onKeyboardWillShow\n * this.props.onKeyboardDidShow\n *\n * `onScrollResponderKeyboardDismissed` will be invoked if an appropriate\n * tap inside the scroll responder's scrollable region was responsible\n * for the dismissal of the keyboard. There are other reasons why the\n * keyboard could be dismissed.\n *\n * this.props.onScrollResponderKeyboardDismissed\n *\n * Standard Keyboard Hide Sequence:\n *\n * this.props.onKeyboardWillHide\n * this.props.onKeyboardDidHide\n */\n\n// Public methods for ScrollView\nexport type ScrollViewImperativeMethods = $ReadOnly<{|\n getScrollResponder: $PropertyType,\n getScrollableNode: $PropertyType,\n getInnerViewNode: $PropertyType,\n getInnerViewRef: $PropertyType,\n getNativeScrollRef: $PropertyType,\n scrollTo: $PropertyType,\n scrollToEnd: $PropertyType,\n flashScrollIndicators: $PropertyType,\n scrollResponderZoomTo: $PropertyType,\n scrollResponderScrollNativeHandleToKeyboard: $PropertyType<\n ScrollView,\n 'scrollResponderScrollNativeHandleToKeyboard',\n >,\n|}>;\n\nexport type DecelerationRateType = 'fast' | 'normal' | number;\nexport type ScrollResponderType = ScrollViewImperativeMethods;\n\ntype NativeScrollViewInstance = React.ElementRef>;\ntype PublicScrollViewInstance = $ReadOnly<{|\n ...$Exact,\n ...ScrollViewImperativeMethods,\n|}>;\n\ntype InnerViewInstance = React.ElementRef;\n\ntype IOSProps = $ReadOnly<{|\n /**\n * Controls whether iOS should automatically adjust the content inset\n * for scroll views that are placed behind a navigation bar or\n * tab bar/ toolbar. The default value is true.\n * @platform ios\n */\n automaticallyAdjustContentInsets?: ?boolean,\n /**\n * Controls whether the ScrollView should automatically adjust its `contentInset`\n * and `scrollViewInsets` when the Keyboard changes its size. The default value is false.\n * @platform ios\n */\n automaticallyAdjustKeyboardInsets?: ?boolean,\n /**\n * Controls whether iOS should automatically adjust the scroll indicator\n * insets. The default value is true. Available on iOS 13 and later.\n * @platform ios\n */\n automaticallyAdjustsScrollIndicatorInsets?: ?boolean,\n /**\n * The amount by which the scroll view content is inset from the edges\n * of the scroll view. Defaults to `{top: 0, left: 0, bottom: 0, right: 0}`.\n * @platform ios\n */\n contentInset?: ?EdgeInsetsProp,\n /**\n * When true, the scroll view bounces when it reaches the end of the\n * content if the content is larger then the scroll view along the axis of\n * the scroll direction. When false, it disables all bouncing even if\n * the `alwaysBounce*` props are true. The default value is true.\n * @platform ios\n */\n bounces?: ?boolean,\n /**\n * By default, ScrollView has an active pan responder that hijacks panresponders\n * deeper in the render tree in order to prevent accidental touches while scrolling.\n * However, in certain occasions (such as when using snapToInterval) in a vertical scrollview\n * You may want to disable this behavior in order to prevent the ScrollView from blocking touches\n */\n disableScrollViewPanResponder?: ?boolean,\n /**\n * When true, gestures can drive zoom past min/max and the zoom will animate\n * to the min/max value at gesture end, otherwise the zoom will not exceed\n * the limits.\n * @platform ios\n */\n bouncesZoom?: ?boolean,\n /**\n * When true, the scroll view bounces horizontally when it reaches the end\n * even if the content is smaller than the scroll view itself. The default\n * value is true when `horizontal={true}` and false otherwise.\n * @platform ios\n */\n alwaysBounceHorizontal?: ?boolean,\n /**\n * When true, the scroll view bounces vertically when it reaches the end\n * even if the content is smaller than the scroll view itself. The default\n * value is false when `horizontal={true}` and true otherwise.\n * @platform ios\n */\n alwaysBounceVertical?: ?boolean,\n /**\n * When true, the scroll view automatically centers the content when the\n * content is smaller than the scroll view bounds; when the content is\n * larger than the scroll view, this property has no effect. The default\n * value is false.\n * @platform ios\n */\n centerContent?: ?boolean,\n /**\n * The style of the scroll indicators.\n *\n * - `'default'` (the default), same as `black`.\n * - `'black'`, scroll indicator is black. This style is good against a light background.\n * - `'white'`, scroll indicator is white. This style is good against a dark background.\n *\n * @platform ios\n */\n indicatorStyle?: ?('default' | 'black' | 'white'),\n /**\n * When true, the ScrollView will try to lock to only vertical or horizontal\n * scrolling while dragging. The default value is false.\n * @platform ios\n */\n directionalLockEnabled?: ?boolean,\n /**\n * When false, once tracking starts, won't try to drag if the touch moves.\n * The default value is true.\n * @platform ios\n */\n canCancelContentTouches?: ?boolean,\n /**\n * When set, the scroll view will adjust the scroll position so that the first child that is\n * currently visible and at or beyond `minIndexForVisible` will not change position. This is\n * useful for lists that are loading content in both directions, e.g. a chat thread, where new\n * messages coming in might otherwise cause the scroll position to jump. A value of 0 is common,\n * but other values such as 1 can be used to skip loading spinners or other content that should\n * not maintain position.\n *\n * The optional `autoscrollToTopThreshold` can be used to make the content automatically scroll\n * to the top after making the adjustment if the user was within the threshold of the top before\n * the adjustment was made. This is also useful for chat-like applications where you want to see\n * new messages scroll into place, but not if the user has scrolled up a ways and it would be\n * disruptive to scroll a bunch.\n *\n * Caveat 1: Reordering elements in the scrollview with this enabled will probably cause\n * jumpiness and jank. It can be fixed, but there are currently no plans to do so. For now,\n * don't re-order the content of any ScrollViews or Lists that use this feature.\n *\n * Caveat 2: This simply uses `contentOffset` and `frame.origin` in native code to compute\n * visibility. Occlusion, transforms, and other complexity won't be taken into account as to\n * whether content is \"visible\" or not.\n *\n */\n maintainVisibleContentPosition?: ?$ReadOnly<{|\n minIndexForVisible: number,\n autoscrollToTopThreshold?: ?number,\n |}>,\n /**\n * The maximum allowed zoom scale. The default value is 1.0.\n * @platform ios\n */\n maximumZoomScale?: ?number,\n /**\n * The minimum allowed zoom scale. The default value is 1.0.\n * @platform ios\n */\n minimumZoomScale?: ?number,\n /**\n * When true, ScrollView allows use of pinch gestures to zoom in and out.\n * The default value is true.\n * @platform ios\n */\n pinchGestureEnabled?: ?boolean,\n /**\n * The amount by which the scroll view indicators are inset from the edges\n * of the scroll view. This should normally be set to the same value as\n * the `contentInset`. Defaults to `{0, 0, 0, 0}`.\n * @platform ios\n */\n scrollIndicatorInsets?: ?EdgeInsetsProp,\n /**\n * When true, the scroll view can be programmatically scrolled beyond its\n * content size. The default value is false.\n * @platform ios\n */\n scrollToOverflowEnabled?: ?boolean,\n /**\n * When true, the scroll view scrolls to top when the status bar is tapped.\n * The default value is true.\n * @platform ios\n */\n scrollsToTop?: ?boolean,\n /**\n * Fires when the scroll view scrolls to top after the status bar has been tapped\n * @platform ios\n */\n onScrollToTop?: (event: ScrollEvent) => void,\n /**\n * When true, shows a horizontal scroll indicator.\n * The default value is true.\n */\n showsHorizontalScrollIndicator?: ?boolean,\n /**\n * The current scale of the scroll view content. The default value is 1.0.\n * @platform ios\n */\n zoomScale?: ?number,\n /**\n * This property specifies how the safe area insets are used to modify the\n * content area of the scroll view. The default value of this property is\n * \"never\". Available on iOS 11 and later.\n * @platform ios\n */\n contentInsetAdjustmentBehavior?: ?(\n | 'automatic'\n | 'scrollableAxes'\n | 'never'\n | 'always'\n ),\n|}>;\n\ntype AndroidProps = $ReadOnly<{|\n /**\n * Enables nested scrolling for Android API level 21+.\n * Nested scrolling is supported by default on iOS\n * @platform android\n */\n nestedScrollEnabled?: ?boolean,\n /**\n * Sometimes a scrollview takes up more space than its content fills. When this is\n * the case, this prop will fill the rest of the scrollview with a color to avoid setting\n * a background and creating unnecessary overdraw. This is an advanced optimization\n * that is not needed in the general case.\n * @platform android\n */\n endFillColor?: ?ColorValue,\n /**\n * Tag used to log scroll performance on this scroll view. Will force\n * momentum events to be turned on (see sendMomentumEvents). This doesn't do\n * anything out of the box and you need to implement a custom native\n * FpsListener for it to be useful.\n * @platform android\n */\n scrollPerfTag?: ?string,\n /**\n * Used to override default value of overScroll mode.\n *\n * Possible values:\n *\n * - `'auto'` - Default value, allow a user to over-scroll\n * this view only if the content is large enough to meaningfully scroll.\n * - `'always'` - Always allow a user to over-scroll this view.\n * - `'never'` - Never allow a user to over-scroll this view.\n *\n * @platform android\n */\n overScrollMode?: ?('auto' | 'always' | 'never'),\n /**\n * Causes the scrollbars not to turn transparent when they are not in use.\n * The default value is false.\n *\n * @platform android\n */\n persistentScrollbar?: ?boolean,\n /**\n * Fades out the edges of the scroll content.\n *\n * If the value is greater than 0, the fading edges will be set accordingly\n * to the current scroll direction and position,\n * indicating if there is more content to show.\n *\n * The default value is 0.\n *\n * @platform android\n */\n fadingEdgeLength?: ?number,\n|}>;\n\ntype StickyHeaderComponentType = React.AbstractComponent<\n ScrollViewStickyHeaderProps,\n $ReadOnly void}>,\n>;\n\nexport type Props = $ReadOnly<{|\n ...ViewProps,\n ...IOSProps,\n ...AndroidProps,\n\n /**\n * These styles will be applied to the scroll view content container which\n * wraps all of the child views. Example:\n *\n * ```\n * return (\n * \n * \n * );\n * ...\n * const styles = StyleSheet.create({\n * contentContainer: {\n * paddingVertical: 20\n * }\n * });\n * ```\n */\n contentContainerStyle?: ?ViewStyleProp,\n /**\n * Used to manually set the starting scroll offset.\n * The default value is `{x: 0, y: 0}`.\n */\n contentOffset?: ?PointProp,\n /**\n * When true, the scroll view stops on the next index (in relation to scroll\n * position at release) regardless of how fast the gesture is. This can be\n * used for pagination when the page is less than the width of the\n * horizontal ScrollView or the height of the vertical ScrollView. The default value is false.\n */\n disableIntervalMomentum?: ?boolean,\n /**\n * A floating-point number that determines how quickly the scroll view\n * decelerates after the user lifts their finger. You may also use string\n * shortcuts `\"normal\"` and `\"fast\"` which match the underlying iOS settings\n * for `UIScrollViewDecelerationRateNormal` and\n * `UIScrollViewDecelerationRateFast` respectively.\n *\n * - `'normal'`: 0.998 on iOS, 0.985 on Android (the default)\n * - `'fast'`: 0.99 on iOS, 0.9 on Android\n */\n decelerationRate?: ?DecelerationRateType,\n /**\n * When true, the scroll view's children are arranged horizontally in a row\n * instead of vertically in a column. The default value is false.\n */\n horizontal?: ?boolean,\n /**\n * If sticky headers should stick at the bottom instead of the top of the\n * ScrollView. This is usually used with inverted ScrollViews.\n */\n invertStickyHeaders?: ?boolean,\n /**\n * Determines whether the keyboard gets dismissed in response to a drag.\n *\n * *Cross platform*\n *\n * - `'none'` (the default), drags do not dismiss the keyboard.\n * - `'on-drag'`, the keyboard is dismissed when a drag begins.\n *\n * *iOS Only*\n *\n * - `'interactive'`, the keyboard is dismissed interactively with the drag and moves in\n * synchrony with the touch; dragging upwards cancels the dismissal.\n * On android this is not supported and it will have the same behavior as 'none'.\n */\n keyboardDismissMode?: ?// default\n // cross-platform\n ('none' | 'on-drag' | 'interactive'), // ios only\n /**\n * Determines when the keyboard should stay visible after a tap.\n *\n * - `'never'` (the default), tapping outside of the focused text input when the keyboard\n * is up dismisses the keyboard. When this happens, children won't receive the tap.\n * - `'always'`, the keyboard will not dismiss automatically, and the scroll view will not\n * catch taps, but children of the scroll view can catch taps.\n * - `'handled'`, the keyboard will not dismiss automatically when the tap was handled by\n * a children, (or captured by an ancestor).\n * - `false`, deprecated, use 'never' instead\n * - `true`, deprecated, use 'always' instead\n */\n keyboardShouldPersistTaps?: ?('always' | 'never' | 'handled' | true | false),\n /**\n * Called when the momentum scroll starts (scroll which occurs as the ScrollView glides to a stop).\n */\n onMomentumScrollBegin?: ?(event: ScrollEvent) => void,\n /**\n * Called when the momentum scroll ends (scroll which occurs as the ScrollView glides to a stop).\n */\n onMomentumScrollEnd?: ?(event: ScrollEvent) => void,\n\n /**\n * Fires at most once per frame during scrolling. The frequency of the\n * events can be controlled using the `scrollEventThrottle` prop.\n */\n onScroll?: ?(event: ScrollEvent) => void,\n /**\n * Called when the user begins to drag the scroll view.\n */\n onScrollBeginDrag?: ?(event: ScrollEvent) => void,\n /**\n * Called when the user stops dragging the scroll view and it either stops\n * or begins to glide.\n */\n onScrollEndDrag?: ?(event: ScrollEvent) => void,\n /**\n * Called when scrollable content view of the ScrollView changes.\n *\n * Handler function is passed the content width and content height as parameters:\n * `(contentWidth, contentHeight)`\n *\n * It's implemented using onLayout handler attached to the content container\n * which this ScrollView renders.\n */\n onContentSizeChange?: (contentWidth: number, contentHeight: number) => void,\n onKeyboardDidShow?: (event: KeyboardEvent) => void,\n onKeyboardDidHide?: (event: KeyboardEvent) => void,\n onKeyboardWillShow?: (event: KeyboardEvent) => void,\n onKeyboardWillHide?: (event: KeyboardEvent) => void,\n /**\n * When true, the scroll view stops on multiples of the scroll view's size\n * when scrolling. This can be used for horizontal pagination. The default\n * value is false.\n *\n * Note: Vertical pagination is not supported on Android.\n */\n pagingEnabled?: ?boolean,\n /**\n * When false, the view cannot be scrolled via touch interaction.\n * The default value is true.\n *\n * Note that the view can always be scrolled by calling `scrollTo`.\n */\n scrollEnabled?: ?boolean,\n /**\n * This controls how often the scroll event will be fired while scrolling\n * (as a time interval in ms). A lower number yields better accuracy for code\n * that is tracking the scroll position, but can lead to scroll performance\n * problems due to the volume of information being send over the bridge.\n *\n * Values between 0 and 17ms indicate 60fps updates are needed and throttling\n * will be disabled.\n *\n * If you do not need precise scroll position tracking, set this value higher\n * to limit the information being sent across the bridge.\n *\n * The default value is zero, which results in the scroll event being sent only\n * once each time the view is scrolled.\n */\n scrollEventThrottle?: ?number,\n /**\n * When true, shows a vertical scroll indicator.\n * The default value is true.\n */\n showsVerticalScrollIndicator?: ?boolean,\n /**\n * When true, Sticky header is hidden when scrolling down, and dock at the top\n * when scrolling up\n */\n stickyHeaderHiddenOnScroll?: ?boolean,\n /**\n * An array of child indices determining which children get docked to the\n * top of the screen when scrolling. For example, passing\n * `stickyHeaderIndices={[0]}` will cause the first child to be fixed to the\n * top of the scroll view. This property is not supported in conjunction\n * with `horizontal={true}`.\n */\n stickyHeaderIndices?: ?$ReadOnlyArray,\n /**\n * A React Component that will be used to render sticky headers.\n * To be used together with `stickyHeaderIndices` or with `SectionList`, defaults to `ScrollViewStickyHeader`.\n * You may need to set this if your sticky header uses custom transforms (eg. translation),\n * for example when you want your list to have an animated hidable header.\n */\n StickyHeaderComponent?: StickyHeaderComponentType,\n /**\n * When `snapToInterval` is set, `snapToAlignment` will define the relationship\n * of the snapping to the scroll view.\n *\n * - `'start'` (the default) will align the snap at the left (horizontal) or top (vertical)\n * - `'center'` will align the snap in the center\n * - `'end'` will align the snap at the right (horizontal) or bottom (vertical)\n */\n snapToAlignment?: ?('start' | 'center' | 'end'),\n /**\n * When set, causes the scroll view to stop at multiples of the value of\n * `snapToInterval`. This can be used for paginating through children\n * that have lengths smaller than the scroll view. Typically used in\n * combination with `snapToAlignment` and `decelerationRate=\"fast\"`.\n *\n * Overrides less configurable `pagingEnabled` prop.\n */\n snapToInterval?: ?number,\n /**\n * When set, causes the scroll view to stop at the defined offsets.\n * This can be used for paginating through variously sized children\n * that have lengths smaller than the scroll view. Typically used in\n * combination with `decelerationRate=\"fast\"`.\n *\n * Overrides less configurable `pagingEnabled` and `snapToInterval` props.\n */\n snapToOffsets?: ?$ReadOnlyArray,\n /**\n * Use in conjunction with `snapToOffsets`. By default, the beginning\n * of the list counts as a snap offset. Set `snapToStart` to false to disable\n * this behavior and allow the list to scroll freely between its start and\n * the first `snapToOffsets` offset.\n * The default value is true.\n */\n snapToStart?: ?boolean,\n /**\n * Use in conjunction with `snapToOffsets`. By default, the end\n * of the list counts as a snap offset. Set `snapToEnd` to false to disable\n * this behavior and allow the list to scroll freely between its end and\n * the last `snapToOffsets` offset.\n * The default value is true.\n */\n snapToEnd?: ?boolean,\n /**\n * Experimental: When true, offscreen child views (whose `overflow` value is\n * `hidden`) are removed from their native backing superview when offscreen.\n * This can improve scrolling performance on long lists. The default value is\n * true.\n */\n removeClippedSubviews?: ?boolean,\n /**\n * A RefreshControl component, used to provide pull-to-refresh\n * functionality for the ScrollView. Only works for vertical ScrollViews\n * (`horizontal` prop must be `false`).\n *\n * See [RefreshControl](docs/refreshcontrol.html).\n */\n /* $FlowFixMe[unclear-type] - how to handle generic type without existential\n * operator? */\n refreshControl?: ?React.Element,\n children?: React.Node,\n /**\n * A ref to the inner View element of the ScrollView. This should be used\n * instead of calling `getInnerViewRef`.\n */\n innerViewRef?: ForwardedRef,\n /**\n * A ref to the Native ScrollView component. This ref can be used to call\n * all of ScrollView's public methods, in addition to native methods like\n * measure, measureLayout, etc.\n */\n scrollViewRef?: ForwardedRef,\n|}>;\n\ntype State = {|\n layoutHeight: ?number,\n|};\n\nconst IS_ANIMATING_TOUCH_START_THRESHOLD_MS = 16;\n\nexport type ScrollViewComponentStatics = $ReadOnly<{|\n Context: typeof ScrollViewContext,\n|}>;\n\n/**\n * Component that wraps platform ScrollView while providing\n * integration with touch locking \"responder\" system.\n *\n * Keep in mind that ScrollViews must have a bounded height in order to work,\n * since they contain unbounded-height children into a bounded container (via\n * a scroll interaction). In order to bound the height of a ScrollView, either\n * set the height of the view directly (discouraged) or make sure all parent\n * views have bounded height. Forgetting to transfer `{flex: 1}` down the\n * view stack can lead to errors here, which the element inspector makes\n * easy to debug.\n *\n * Doesn't yet support other contained responders from blocking this scroll\n * view from becoming the responder.\n *\n *\n * `` vs [``](https://reactnative.dev/docs/flatlist) - which one to use?\n *\n * `ScrollView` simply renders all its react child components at once. That\n * makes it very easy to understand and use.\n *\n * On the other hand, this has a performance downside. Imagine you have a very\n * long list of items you want to display, maybe several screens worth of\n * content. Creating JS components and native views for everything all at once,\n * much of which may not even be shown, will contribute to slow rendering and\n * increased memory usage.\n *\n * This is where `FlatList` comes into play. `FlatList` renders items lazily,\n * just when they are about to appear, and removes items that scroll way off\n * screen to save memory and processing time.\n *\n * `FlatList` is also handy if you want to render separators between your items,\n * multiple columns, infinite scroll loading, or any number of other features it\n * supports out of the box.\n */\nclass ScrollView extends React.Component {\n static Context: typeof ScrollViewContext = ScrollViewContext;\n\n constructor(props: Props) {\n super(props);\n\n this._scrollAnimatedValue = new AnimatedImplementation.Value(\n this.props.contentOffset?.y ?? 0,\n );\n this._scrollAnimatedValue.setOffset(this.props.contentInset?.top ?? 0);\n }\n\n _scrollAnimatedValue: AnimatedImplementation.Value;\n _scrollAnimatedValueAttachment: ?{detach: () => void, ...} = null;\n _stickyHeaderRefs: Map> =\n new Map();\n _headerLayoutYs: Map = new Map();\n\n _keyboardMetrics: ?KeyboardMetrics = null;\n _additionalScrollOffset: number = 0;\n _isTouching: boolean = false;\n _lastMomentumScrollBeginTime: number = 0;\n _lastMomentumScrollEndTime: number = 0;\n\n // Reset to false every time becomes responder. This is used to:\n // - Determine if the scroll view has been scrolled and therefore should\n // refuse to give up its responder lock.\n // - Determine if releasing should dismiss the keyboard when we are in\n // tap-to-dismiss mode (this.props.keyboardShouldPersistTaps !== 'always').\n _observedScrollSinceBecomingResponder: boolean = false;\n _becameResponderWhileAnimating: boolean = false;\n _preventNegativeScrollOffset: ?boolean = null;\n\n _animated: ?boolean = null;\n\n _subscriptionKeyboardWillShow: ?EventSubscription = null;\n _subscriptionKeyboardWillHide: ?EventSubscription = null;\n _subscriptionKeyboardDidShow: ?EventSubscription = null;\n _subscriptionKeyboardDidHide: ?EventSubscription = null;\n\n state: State = {\n layoutHeight: null,\n };\n\n componentDidMount() {\n if (typeof this.props.keyboardShouldPersistTaps === 'boolean') {\n console.warn(\n `'keyboardShouldPersistTaps={${\n this.props.keyboardShouldPersistTaps === true ? 'true' : 'false'\n }}' is deprecated. ` +\n `Use 'keyboardShouldPersistTaps=\"${\n this.props.keyboardShouldPersistTaps ? 'always' : 'never'\n }\"' instead`,\n );\n }\n\n this._keyboardMetrics = Keyboard.metrics();\n this._additionalScrollOffset = 0;\n\n this._subscriptionKeyboardWillShow = Keyboard.addListener(\n 'keyboardWillShow',\n this.scrollResponderKeyboardWillShow,\n );\n this._subscriptionKeyboardWillHide = Keyboard.addListener(\n 'keyboardWillHide',\n this.scrollResponderKeyboardWillHide,\n );\n this._subscriptionKeyboardDidShow = Keyboard.addListener(\n 'keyboardDidShow',\n this.scrollResponderKeyboardDidShow,\n );\n this._subscriptionKeyboardDidHide = Keyboard.addListener(\n 'keyboardDidHide',\n this.scrollResponderKeyboardDidHide,\n );\n\n this._updateAnimatedNodeAttachment();\n }\n\n componentDidUpdate(prevProps: Props) {\n const prevContentInsetTop = prevProps.contentInset\n ? prevProps.contentInset.top\n : 0;\n const newContentInsetTop = this.props.contentInset\n ? this.props.contentInset.top\n : 0;\n if (prevContentInsetTop !== newContentInsetTop) {\n this._scrollAnimatedValue.setOffset(newContentInsetTop || 0);\n }\n\n this._updateAnimatedNodeAttachment();\n }\n\n componentWillUnmount() {\n if (this._subscriptionKeyboardWillShow != null) {\n this._subscriptionKeyboardWillShow.remove();\n }\n if (this._subscriptionKeyboardWillHide != null) {\n this._subscriptionKeyboardWillHide.remove();\n }\n if (this._subscriptionKeyboardDidShow != null) {\n this._subscriptionKeyboardDidShow.remove();\n }\n if (this._subscriptionKeyboardDidHide != null) {\n this._subscriptionKeyboardDidHide.remove();\n }\n\n if (this._scrollAnimatedValueAttachment) {\n this._scrollAnimatedValueAttachment.detach();\n }\n }\n\n /**\n * Returns a reference to the underlying scroll responder, which supports\n * operations like `scrollTo`. All ScrollView-like components should\n * implement this method so that they can be composed while providing access\n * to the underlying scroll responder's methods.\n */\n getScrollResponder: () => ScrollResponderType = () => {\n // $FlowFixMe[unclear-type]\n return ((this: any): ScrollResponderType);\n };\n\n getScrollableNode: () => ?number = () => {\n return findNodeHandle(this._scrollView.nativeInstance);\n };\n\n getInnerViewNode: () => ?number = () => {\n return findNodeHandle(this._innerView.nativeInstance);\n };\n\n getInnerViewRef: () => InnerViewInstance | null = () => {\n return this._innerView.nativeInstance;\n };\n\n getNativeScrollRef: () => NativeScrollViewInstance | null = () => {\n return this._scrollView.nativeInstance;\n };\n\n /**\n * Scrolls to a given x, y offset, either immediately or with a smooth animation.\n *\n * Example:\n *\n * `scrollTo({x: 0, y: 0, animated: true})`\n *\n * Note: The weird function signature is due to the fact that, for historical reasons,\n * the function also accepts separate arguments as an alternative to the options object.\n * This is deprecated due to ambiguity (y before x), and SHOULD NOT BE USED.\n */\n scrollTo: (\n options?:\n | {\n x?: number,\n y?: number,\n animated?: boolean,\n ...\n }\n | number,\n deprecatedX?: number,\n deprecatedAnimated?: boolean,\n ) => void = (\n options?:\n | {\n x?: number,\n y?: number,\n animated?: boolean,\n ...\n }\n | number,\n deprecatedX?: number,\n deprecatedAnimated?: boolean,\n ) => {\n let x, y, animated;\n if (typeof options === 'number') {\n console.warn(\n '`scrollTo(y, x, animated)` is deprecated. Use `scrollTo({x: 5, y: 5, ' +\n 'animated: true})` instead.',\n );\n y = options;\n x = deprecatedX;\n animated = deprecatedAnimated;\n } else if (options) {\n y = options.y;\n x = options.x;\n animated = options.animated;\n }\n if (this._scrollView.nativeInstance == null) {\n return;\n }\n Commands.scrollTo(\n this._scrollView.nativeInstance,\n x || 0,\n y || 0,\n animated !== false,\n );\n };\n\n /**\n * If this is a vertical ScrollView scrolls to the bottom.\n * If this is a horizontal ScrollView scrolls to the right.\n *\n * Use `scrollToEnd({animated: true})` for smooth animated scrolling,\n * `scrollToEnd({animated: false})` for immediate scrolling.\n * If no options are passed, `animated` defaults to true.\n */\n scrollToEnd: (options?: ?{animated?: boolean, ...}) => void = (\n options?: ?{animated?: boolean, ...},\n ) => {\n // Default to true\n const animated = (options && options.animated) !== false;\n if (this._scrollView.nativeInstance == null) {\n return;\n }\n Commands.scrollToEnd(this._scrollView.nativeInstance, animated);\n };\n\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n flashScrollIndicators: () => void = () => {\n if (this._scrollView.nativeInstance == null) {\n return;\n }\n Commands.flashScrollIndicators(this._scrollView.nativeInstance);\n };\n\n /**\n * This method should be used as the callback to onFocus in a TextInputs'\n * parent view. Note that any module using this mixin needs to return\n * the parent view's ref in getScrollViewRef() in order to use this method.\n * @param {number} nodeHandle The TextInput node handle\n * @param {number} additionalOffset The scroll view's bottom \"contentInset\".\n * Default is 0.\n * @param {bool} preventNegativeScrolling Whether to allow pulling the content\n * down to make it meet the keyboard's top. Default is false.\n */\n scrollResponderScrollNativeHandleToKeyboard: (\n nodeHandle: number | React.ElementRef>,\n additionalOffset?: number,\n preventNegativeScrollOffset?: boolean,\n ) => void = (\n nodeHandle: number | React.ElementRef>,\n additionalOffset?: number,\n preventNegativeScrollOffset?: boolean,\n ) => {\n this._additionalScrollOffset = additionalOffset || 0;\n this._preventNegativeScrollOffset = !!preventNegativeScrollOffset;\n\n if (this._innerView.nativeInstance == null) {\n return;\n }\n\n if (typeof nodeHandle === 'number') {\n UIManager.measureLayout(\n nodeHandle,\n nullthrows(findNodeHandle(this)),\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._textInputFocusError,\n this._inputMeasureAndScrollToKeyboard,\n );\n } else {\n nodeHandle.measureLayout(\n this._innerView.nativeInstance,\n this._inputMeasureAndScrollToKeyboard,\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._textInputFocusError,\n );\n }\n };\n\n /**\n * A helper function to zoom to a specific rect in the scrollview. The argument has the shape\n * {x: number; y: number; width: number; height: number; animated: boolean = true}\n *\n * @platform ios\n */\n scrollResponderZoomTo: (\n rect: {|\n x: number,\n y: number,\n width: number,\n height: number,\n animated?: boolean,\n |},\n animated?: boolean, // deprecated, put this inside the rect argument instead\n ) => void = (\n rect: {|\n x: number,\n y: number,\n width: number,\n height: number,\n animated?: boolean,\n |},\n animated?: boolean, // deprecated, put this inside the rect argument instead\n ) => {\n invariant(Platform.OS === 'ios', 'zoomToRect is not implemented');\n if ('animated' in rect) {\n this._animated = rect.animated;\n delete rect.animated;\n } else if (typeof animated !== 'undefined') {\n console.warn(\n '`scrollResponderZoomTo` `animated` argument is deprecated. Use `options.animated` instead',\n );\n }\n\n if (this._scrollView.nativeInstance == null) {\n return;\n }\n Commands.zoomToRect(\n this._scrollView.nativeInstance,\n rect,\n animated !== false,\n );\n };\n\n _textInputFocusError() {\n console.warn('Error measuring text field.');\n }\n\n /**\n * The calculations performed here assume the scroll view takes up the entire\n * screen - even if has some content inset. We then measure the offsets of the\n * keyboard, and compensate both for the scroll view's \"contentInset\".\n *\n * @param {number} left Position of input w.r.t. table view.\n * @param {number} top Position of input w.r.t. table view.\n * @param {number} width Width of the text input.\n * @param {number} height Height of the text input.\n */\n _inputMeasureAndScrollToKeyboard: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void = (left: number, top: number, width: number, height: number) => {\n let keyboardScreenY = Dimensions.get('window').height;\n\n const scrollTextInputIntoVisibleRect = () => {\n if (this._keyboardMetrics != null) {\n keyboardScreenY = this._keyboardMetrics.screenY;\n }\n let scrollOffsetY =\n top - keyboardScreenY + height + this._additionalScrollOffset;\n\n // By default, this can scroll with negative offset, pulling the content\n // down so that the target component's bottom meets the keyboard's top.\n // If requested otherwise, cap the offset at 0 minimum to avoid content\n // shifting down.\n if (this._preventNegativeScrollOffset === true) {\n scrollOffsetY = Math.max(0, scrollOffsetY);\n }\n this.scrollTo({x: 0, y: scrollOffsetY, animated: true});\n\n this._additionalScrollOffset = 0;\n this._preventNegativeScrollOffset = false;\n };\n\n if (this._keyboardMetrics == null) {\n // `_keyboardMetrics` is set inside `scrollResponderKeyboardWillShow` which\n // is not guaranteed to be called before `_inputMeasureAndScrollToKeyboard` but native has already scheduled it.\n // In case it was not called before `_inputMeasureAndScrollToKeyboard`, we postpone scrolling to\n // text input.\n setTimeout(() => {\n scrollTextInputIntoVisibleRect();\n }, 0);\n } else {\n scrollTextInputIntoVisibleRect();\n }\n };\n\n _getKeyForIndex(index: $FlowFixMe, childArray: $FlowFixMe): $FlowFixMe {\n const child = childArray[index];\n return child && child.key;\n }\n\n _updateAnimatedNodeAttachment() {\n if (this._scrollAnimatedValueAttachment) {\n this._scrollAnimatedValueAttachment.detach();\n }\n if (\n this.props.stickyHeaderIndices &&\n this.props.stickyHeaderIndices.length > 0\n ) {\n this._scrollAnimatedValueAttachment =\n AnimatedImplementation.attachNativeEvent(\n this._scrollView.nativeInstance,\n 'onScroll',\n [{nativeEvent: {contentOffset: {y: this._scrollAnimatedValue}}}],\n );\n }\n }\n\n _setStickyHeaderRef(\n key: string,\n ref: ?React.ElementRef,\n ) {\n if (ref) {\n this._stickyHeaderRefs.set(key, ref);\n } else {\n this._stickyHeaderRefs.delete(key);\n }\n }\n\n _onStickyHeaderLayout(index: $FlowFixMe, event: $FlowFixMe, key: $FlowFixMe) {\n const {stickyHeaderIndices} = this.props;\n if (!stickyHeaderIndices) {\n return;\n }\n const childArray = React.Children.toArray<$FlowFixMe>(this.props.children);\n if (key !== this._getKeyForIndex(index, childArray)) {\n // ignore stale layout update\n return;\n }\n\n const layoutY = event.nativeEvent.layout.y;\n this._headerLayoutYs.set(key, layoutY);\n\n const indexOfIndex = stickyHeaderIndices.indexOf(index);\n const previousHeaderIndex = stickyHeaderIndices[indexOfIndex - 1];\n if (previousHeaderIndex != null) {\n const previousHeader = this._stickyHeaderRefs.get(\n this._getKeyForIndex(previousHeaderIndex, childArray),\n );\n previousHeader &&\n previousHeader.setNextHeaderY &&\n previousHeader.setNextHeaderY(layoutY);\n }\n }\n\n _handleScroll = (e: ScrollEvent) => {\n if (__DEV__) {\n if (\n this.props.onScroll &&\n this.props.scrollEventThrottle == null &&\n Platform.OS === 'ios'\n ) {\n console.log(\n 'You specified `onScroll` on a but not ' +\n '`scrollEventThrottle`. You will only receive one event. ' +\n 'Using `16` you get all the events but be aware that it may ' +\n \"cause frame drops, use a bigger number if you don't need as \" +\n 'much precision.',\n );\n }\n }\n this._observedScrollSinceBecomingResponder = true;\n this.props.onScroll && this.props.onScroll(e);\n };\n\n _handleLayout = (e: LayoutEvent) => {\n if (this.props.invertStickyHeaders === true) {\n this.setState({layoutHeight: e.nativeEvent.layout.height});\n }\n if (this.props.onLayout) {\n this.props.onLayout(e);\n }\n };\n\n _handleContentOnLayout = (e: LayoutEvent) => {\n const {width, height} = e.nativeEvent.layout;\n this.props.onContentSizeChange &&\n this.props.onContentSizeChange(width, height);\n };\n\n _innerView: RefForwarder =\n createRefForwarder(\n (instance: InnerViewInstance): InnerViewInstance => instance,\n );\n\n _scrollView: RefForwarder<\n NativeScrollViewInstance,\n PublicScrollViewInstance,\n > = createRefForwarder(\n (nativeInstance: NativeScrollViewInstance): PublicScrollViewInstance => {\n // This is a hack. Ideally we would forwardRef to the underlying\n // host component. However, since ScrollView has it's own methods that can be\n // called as well, if we used the standard forwardRef then these\n // methods wouldn't be accessible and thus be a breaking change.\n //\n // Therefore we edit ref to include ScrollView's public methods so that\n // they are callable from the ref.\n\n // $FlowFixMe[prop-missing] - Known issue with appending custom methods.\n const publicInstance: PublicScrollViewInstance = Object.assign(\n nativeInstance,\n {\n getScrollResponder: this.getScrollResponder,\n getScrollableNode: this.getScrollableNode,\n getInnerViewNode: this.getInnerViewNode,\n getInnerViewRef: this.getInnerViewRef,\n getNativeScrollRef: this.getNativeScrollRef,\n scrollTo: this.scrollTo,\n scrollToEnd: this.scrollToEnd,\n flashScrollIndicators: this.flashScrollIndicators,\n scrollResponderZoomTo: this.scrollResponderZoomTo,\n scrollResponderScrollNativeHandleToKeyboard:\n this.scrollResponderScrollNativeHandleToKeyboard,\n },\n );\n\n return publicInstance;\n },\n );\n\n /**\n * Warning, this may be called several times for a single keyboard opening.\n * It's best to store the information in this method and then take any action\n * at a later point (either in `keyboardDidShow` or other).\n *\n * Here's the order that events occur in:\n * - focus\n * - willShow {startCoordinates, endCoordinates} several times\n * - didShow several times\n * - blur\n * - willHide {startCoordinates, endCoordinates} several times\n * - didHide several times\n *\n * The `ScrollResponder` module callbacks for each of these events.\n * Even though any user could have easily listened to keyboard events\n * themselves, using these `props` callbacks ensures that ordering of events\n * is consistent - and not dependent on the order that the keyboard events are\n * subscribed to. This matters when telling the scroll view to scroll to where\n * the keyboard is headed - the scroll responder better have been notified of\n * the keyboard destination before being instructed to scroll to where the\n * keyboard will be. Stick to the `ScrollResponder` callbacks, and everything\n * will work.\n *\n * WARNING: These callbacks will fire even if a keyboard is displayed in a\n * different navigation pane. Filter out the events to determine if they are\n * relevant to you. (For example, only if you receive these callbacks after\n * you had explicitly focused a node etc).\n */\n\n scrollResponderKeyboardWillShow: (e: KeyboardEvent) => void = (\n e: KeyboardEvent,\n ) => {\n this._keyboardMetrics = e.endCoordinates;\n this.props.onKeyboardWillShow && this.props.onKeyboardWillShow(e);\n };\n\n scrollResponderKeyboardWillHide: (e: KeyboardEvent) => void = (\n e: KeyboardEvent,\n ) => {\n this._keyboardMetrics = null;\n this.props.onKeyboardWillHide && this.props.onKeyboardWillHide(e);\n };\n\n scrollResponderKeyboardDidShow: (e: KeyboardEvent) => void = (\n e: KeyboardEvent,\n ) => {\n this._keyboardMetrics = e.endCoordinates;\n this.props.onKeyboardDidShow && this.props.onKeyboardDidShow(e);\n };\n\n scrollResponderKeyboardDidHide: (e: KeyboardEvent) => void = (\n e: KeyboardEvent,\n ) => {\n this._keyboardMetrics = null;\n this.props.onKeyboardDidHide && this.props.onKeyboardDidHide(e);\n };\n\n /**\n * Invoke this from an `onMomentumScrollBegin` event.\n */\n _handleMomentumScrollBegin: (e: ScrollEvent) => void = (e: ScrollEvent) => {\n this._lastMomentumScrollBeginTime = global.performance.now();\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n };\n\n /**\n * Invoke this from an `onMomentumScrollEnd` event.\n */\n _handleMomentumScrollEnd: (e: ScrollEvent) => void = (e: ScrollEvent) => {\n FrameRateLogger.endScroll();\n this._lastMomentumScrollEndTime = global.performance.now();\n this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n };\n\n /**\n * Unfortunately, `onScrollBeginDrag` also fires when *stopping* the scroll\n * animation, and there's not an easy way to distinguish a drag vs. stopping\n * momentum.\n *\n * Invoke this from an `onScrollBeginDrag` event.\n */\n _handleScrollBeginDrag: (e: ScrollEvent) => void = (e: ScrollEvent) => {\n FrameRateLogger.beginScroll(); // TODO: track all scrolls after implementing onScrollEndAnimation\n\n if (\n Platform.OS === 'android' &&\n this.props.keyboardDismissMode === 'on-drag'\n ) {\n dismissKeyboard();\n }\n\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n };\n\n /**\n * Invoke this from an `onScrollEndDrag` event.\n */\n _handleScrollEndDrag: (e: ScrollEvent) => void = (e: ScrollEvent) => {\n const {velocity} = e.nativeEvent;\n // - If we are animating, then this is a \"drag\" that is stopping the scrollview and momentum end\n // will fire.\n // - If velocity is non-zero, then the interaction will stop when momentum scroll ends or\n // another drag starts and ends.\n // - If we don't get velocity, better to stop the interaction twice than not stop it.\n if (\n !this._isAnimating() &&\n (!velocity || (velocity.x === 0 && velocity.y === 0))\n ) {\n FrameRateLogger.endScroll();\n }\n this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n };\n\n /**\n * A helper function for this class that lets us quickly determine if the\n * view is currently animating. This is particularly useful to know when\n * a touch has just started or ended.\n */\n _isAnimating: () => boolean = () => {\n const now = global.performance.now();\n const timeSinceLastMomentumScrollEnd =\n now - this._lastMomentumScrollEndTime;\n const isAnimating =\n timeSinceLastMomentumScrollEnd < IS_ANIMATING_TOUCH_START_THRESHOLD_MS ||\n this._lastMomentumScrollEndTime < this._lastMomentumScrollBeginTime;\n return isAnimating;\n };\n\n /**\n * Invoke this from an `onResponderGrant` event.\n */\n _handleResponderGrant: (e: PressEvent) => void = (e: PressEvent) => {\n this._observedScrollSinceBecomingResponder = false;\n this.props.onResponderGrant && this.props.onResponderGrant(e);\n this._becameResponderWhileAnimating = this._isAnimating();\n };\n\n /**\n * Invoke this from an `onResponderReject` event.\n *\n * Some other element is not yielding its role as responder. Normally, we'd\n * just disable the `UIScrollView`, but a touch has already began on it, the\n * `UIScrollView` will not accept being disabled after that. The easiest\n * solution for now is to accept the limitation of disallowing this\n * altogether. To improve this, find a way to disable the `UIScrollView` after\n * a touch has already started.\n */\n _handleResponderReject: () => void = () => {};\n\n /**\n * Invoke this from an `onResponderRelease` event.\n */\n _handleResponderRelease: (e: PressEvent) => void = (e: PressEvent) => {\n this._isTouching = e.nativeEvent.touches.length !== 0;\n this.props.onResponderRelease && this.props.onResponderRelease(e);\n\n if (typeof e.target === 'number') {\n if (__DEV__) {\n console.error(\n 'Did not expect event target to be a number. Should have been a native component',\n );\n }\n\n return;\n }\n\n // By default scroll views will unfocus a textField\n // if another touch occurs outside of it\n const currentlyFocusedTextInput = TextInputState.currentlyFocusedInput();\n if (\n currentlyFocusedTextInput != null &&\n this.props.keyboardShouldPersistTaps !== true &&\n this.props.keyboardShouldPersistTaps !== 'always' &&\n this._keyboardIsDismissible() &&\n e.target !== currentlyFocusedTextInput &&\n !this._observedScrollSinceBecomingResponder &&\n !this._becameResponderWhileAnimating\n ) {\n TextInputState.blurTextInput(currentlyFocusedTextInput);\n }\n };\n\n /**\n * We will allow the scroll view to give up its lock iff it acquired the lock\n * during an animation. This is a very useful default that happens to satisfy\n * many common user experiences.\n *\n * - Stop a scroll on the left edge, then turn that into an outer view's\n * backswipe.\n * - Stop a scroll mid-bounce at the top, continue pulling to have the outer\n * view dismiss.\n * - However, without catching the scroll view mid-bounce (while it is\n * motionless), if you drag far enough for the scroll view to become\n * responder (and therefore drag the scroll view a bit), any backswipe\n * navigation of a swipe gesture higher in the view hierarchy, should be\n * rejected.\n */\n _handleResponderTerminationRequest: () => boolean = () => {\n return !this._observedScrollSinceBecomingResponder;\n };\n\n /**\n * Invoke this from an `onScroll` event.\n */\n _handleScrollShouldSetResponder: () => boolean = () => {\n // Allow any event touch pass through if the default pan responder is disabled\n if (this.props.disableScrollViewPanResponder === true) {\n return false;\n }\n return this._isTouching;\n };\n\n /**\n * Merely touch starting is not sufficient for a scroll view to become the\n * responder. Being the \"responder\" means that the very next touch move/end\n * event will result in an action/movement.\n *\n * Invoke this from an `onStartShouldSetResponder` event.\n *\n * `onStartShouldSetResponder` is used when the next move/end will trigger\n * some UI movement/action, but when you want to yield priority to views\n * nested inside of the view.\n *\n * There may be some cases where scroll views actually should return `true`\n * from `onStartShouldSetResponder`: Any time we are detecting a standard tap\n * that gives priority to nested views.\n *\n * - If a single tap on the scroll view triggers an action such as\n * recentering a map style view yet wants to give priority to interaction\n * views inside (such as dropped pins or labels), then we would return true\n * from this method when there is a single touch.\n *\n * - Similar to the previous case, if a two finger \"tap\" should trigger a\n * zoom, we would check the `touches` count, and if `>= 2`, we would return\n * true.\n *\n */\n _handleStartShouldSetResponder: (e: PressEvent) => boolean = (\n e: PressEvent,\n ) => {\n // Allow any event touch pass through if the default pan responder is disabled\n if (this.props.disableScrollViewPanResponder === true) {\n return false;\n }\n\n const currentlyFocusedInput = TextInputState.currentlyFocusedInput();\n if (\n this.props.keyboardShouldPersistTaps === 'handled' &&\n this._keyboardIsDismissible() &&\n e.target !== currentlyFocusedInput\n ) {\n return true;\n }\n return false;\n };\n\n /**\n * There are times when the scroll view wants to become the responder\n * (meaning respond to the next immediate `touchStart/touchEnd`), in a way\n * that *doesn't* give priority to nested views (hence the capture phase):\n *\n * - Currently animating.\n * - Tapping anywhere that is not a text input, while the keyboard is\n * up (which should dismiss the keyboard).\n *\n * Invoke this from an `onStartShouldSetResponderCapture` event.\n */\n _handleStartShouldSetResponderCapture: (e: PressEvent) => boolean = (\n e: PressEvent,\n ) => {\n // The scroll view should receive taps instead of its descendants if:\n // * it is already animating/decelerating\n if (this._isAnimating()) {\n return true;\n }\n\n // Allow any event touch pass through if the default pan responder is disabled\n if (this.props.disableScrollViewPanResponder === true) {\n return false;\n }\n\n // * the keyboard is up, keyboardShouldPersistTaps is 'never' (the default),\n // and a new touch starts with a non-textinput target (in which case the\n // first tap should be sent to the scroll view and dismiss the keyboard,\n // then the second tap goes to the actual interior view)\n const {keyboardShouldPersistTaps} = this.props;\n const keyboardNeverPersistTaps =\n !keyboardShouldPersistTaps || keyboardShouldPersistTaps === 'never';\n\n if (typeof e.target === 'number') {\n if (__DEV__) {\n console.error(\n 'Did not expect event target to be a number. Should have been a native component',\n );\n }\n\n return false;\n }\n\n // Let presses through if the soft keyboard is detached from the viewport\n if (this._softKeyboardIsDetached()) {\n return false;\n }\n\n if (\n keyboardNeverPersistTaps &&\n this._keyboardIsDismissible() &&\n e.target != null &&\n // $FlowFixMe[incompatible-call]\n !TextInputState.isTextInput(e.target)\n ) {\n return true;\n }\n\n return false;\n };\n\n /**\n * Do we consider there to be a dismissible soft-keyboard open?\n */\n _keyboardIsDismissible: () => boolean = () => {\n const currentlyFocusedInput = TextInputState.currentlyFocusedInput();\n\n // We cannot dismiss the keyboard without an input to blur, even if a soft\n // keyboard is open (e.g. when keyboard is open due to a native component\n // not participating in TextInputState). It's also possible that the\n // currently focused input isn't a TextInput (such as by calling ref.focus\n // on a non-TextInput).\n const hasFocusedTextInput =\n currentlyFocusedInput != null &&\n TextInputState.isTextInput(currentlyFocusedInput);\n\n // Even if an input is focused, we may not have a keyboard to dismiss. E.g\n // when using a physical keyboard. Ensure we have an event for an opened\n // keyboard.\n const softKeyboardMayBeOpen =\n this._keyboardMetrics != null || this._keyboardEventsAreUnreliable();\n\n return hasFocusedTextInput && softKeyboardMayBeOpen;\n };\n\n /**\n * Whether an open soft keyboard is present which does not overlap the\n * viewport. E.g. for a VR soft-keyboard which is detached from the app\n * viewport.\n */\n _softKeyboardIsDetached: () => boolean = () => {\n return this._keyboardMetrics != null && this._keyboardMetrics.height === 0;\n };\n\n _keyboardEventsAreUnreliable: () => boolean = () => {\n // Android versions prior to API 30 rely on observing layout changes when\n // `android:windowSoftInputMode` is set to `adjustResize` or `adjustPan`.\n return Platform.OS === 'android' && Platform.Version < 30;\n };\n\n /**\n * Invoke this from an `onTouchEnd` event.\n *\n * @param {PressEvent} e Event.\n */\n _handleTouchEnd: (e: PressEvent) => void = (e: PressEvent) => {\n const nativeEvent = e.nativeEvent;\n this._isTouching = nativeEvent.touches.length !== 0;\n\n const {keyboardShouldPersistTaps} = this.props;\n const keyboardNeverPersistsTaps =\n !keyboardShouldPersistTaps || keyboardShouldPersistTaps === 'never';\n\n // Dismiss the keyboard now if we didn't become responder in capture phase\n // to eat presses, but still want to dismiss on interaction.\n // Don't do anything if the target of the touch event is the current input.\n const currentlyFocusedTextInput = TextInputState.currentlyFocusedInput();\n if (\n currentlyFocusedTextInput != null &&\n e.target !== currentlyFocusedTextInput &&\n this._softKeyboardIsDetached() &&\n this._keyboardIsDismissible() &&\n keyboardNeverPersistsTaps\n ) {\n TextInputState.blurTextInput(currentlyFocusedTextInput);\n }\n\n this.props.onTouchEnd && this.props.onTouchEnd(e);\n };\n\n /**\n * Invoke this from an `onTouchCancel` event.\n *\n * @param {PressEvent} e Event.\n */\n _handleTouchCancel: (e: PressEvent) => void = (e: PressEvent) => {\n this._isTouching = false;\n this.props.onTouchCancel && this.props.onTouchCancel(e);\n };\n\n /**\n * Invoke this from an `onTouchStart` event.\n *\n * Since we know that the `SimpleEventPlugin` occurs later in the plugin\n * order, after `ResponderEventPlugin`, we can detect that we were *not*\n * permitted to be the responder (presumably because a contained view became\n * responder). The `onResponderReject` won't fire in that case - it only\n * fires when a *current* responder rejects our request.\n *\n * @param {PressEvent} e Touch Start event.\n */\n _handleTouchStart: (e: PressEvent) => void = (e: PressEvent) => {\n this._isTouching = true;\n this.props.onTouchStart && this.props.onTouchStart(e);\n };\n\n /**\n * Invoke this from an `onTouchMove` event.\n *\n * Since we know that the `SimpleEventPlugin` occurs later in the plugin\n * order, after `ResponderEventPlugin`, we can detect that we were *not*\n * permitted to be the responder (presumably because a contained view became\n * responder). The `onResponderReject` won't fire in that case - it only\n * fires when a *current* responder rejects our request.\n *\n * @param {PressEvent} e Touch Start event.\n */\n _handleTouchMove: (e: PressEvent) => void = (e: PressEvent) => {\n this.props.onTouchMove && this.props.onTouchMove(e);\n };\n\n render(): React.Node | React.Element {\n const [NativeDirectionalScrollView, NativeDirectionalScrollContentView] =\n this.props.horizontal === true\n ? NativeHorizontalScrollViewTuple\n : NativeVerticalScrollViewTuple;\n\n const contentContainerStyle = [\n this.props.horizontal === true && styles.contentContainerHorizontal,\n this.props.contentContainerStyle,\n ];\n if (__DEV__ && this.props.style !== undefined) {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n const style = flattenStyle(this.props.style);\n const childLayoutProps = ['alignItems', 'justifyContent'].filter(\n prop => style && style[prop] !== undefined,\n );\n invariant(\n childLayoutProps.length === 0,\n 'ScrollView child layout (' +\n JSON.stringify(childLayoutProps) +\n ') must be applied through the contentContainerStyle prop.',\n );\n }\n\n const contentSizeChangeProps =\n this.props.onContentSizeChange == null\n ? null\n : {\n onLayout: this._handleContentOnLayout,\n };\n\n const {stickyHeaderIndices} = this.props;\n let children = this.props.children;\n\n if (stickyHeaderIndices != null && stickyHeaderIndices.length > 0) {\n const childArray = React.Children.toArray<$FlowFixMe>(\n this.props.children,\n );\n\n children = childArray.map((child, index) => {\n const indexOfIndex = child ? stickyHeaderIndices.indexOf(index) : -1;\n if (indexOfIndex > -1) {\n const key = child.key;\n const nextIndex = stickyHeaderIndices[indexOfIndex + 1];\n const StickyHeaderComponent =\n this.props.StickyHeaderComponent || ScrollViewStickyHeader;\n return (\n this._setStickyHeaderRef(key, ref)}\n nextHeaderLayoutY={this._headerLayoutYs.get(\n this._getKeyForIndex(nextIndex, childArray),\n )}\n onLayout={event => this._onStickyHeaderLayout(index, event, key)}\n scrollAnimatedValue={this._scrollAnimatedValue}\n inverted={this.props.invertStickyHeaders}\n hiddenOnScroll={this.props.stickyHeaderHiddenOnScroll}\n scrollViewHeight={this.state.layoutHeight}>\n {child}\n \n );\n } else {\n return child;\n }\n });\n }\n children = (\n \n {children}\n \n );\n\n const hasStickyHeaders =\n Array.isArray(stickyHeaderIndices) && stickyHeaderIndices.length > 0;\n\n const contentContainer = (\n \n {children}\n \n );\n\n const alwaysBounceHorizontal =\n this.props.alwaysBounceHorizontal !== undefined\n ? this.props.alwaysBounceHorizontal\n : this.props.horizontal;\n\n const alwaysBounceVertical =\n this.props.alwaysBounceVertical !== undefined\n ? this.props.alwaysBounceVertical\n : !this.props.horizontal;\n\n const baseStyle =\n this.props.horizontal === true\n ? styles.baseHorizontal\n : styles.baseVertical;\n const props = {\n ...this.props,\n alwaysBounceHorizontal,\n alwaysBounceVertical,\n style: StyleSheet.compose(baseStyle, this.props.style),\n // Override the onContentSizeChange from props, since this event can\n // bubble up from TextInputs\n onContentSizeChange: null,\n onLayout: this._handleLayout,\n onMomentumScrollBegin: this._handleMomentumScrollBegin,\n onMomentumScrollEnd: this._handleMomentumScrollEnd,\n onResponderGrant: this._handleResponderGrant,\n onResponderReject: this._handleResponderReject,\n onResponderRelease: this._handleResponderRelease,\n onResponderTerminationRequest: this._handleResponderTerminationRequest,\n onScrollBeginDrag: this._handleScrollBeginDrag,\n onScrollEndDrag: this._handleScrollEndDrag,\n onScrollShouldSetResponder: this._handleScrollShouldSetResponder,\n onStartShouldSetResponder: this._handleStartShouldSetResponder,\n onStartShouldSetResponderCapture:\n this._handleStartShouldSetResponderCapture,\n onTouchEnd: this._handleTouchEnd,\n onTouchMove: this._handleTouchMove,\n onTouchStart: this._handleTouchStart,\n onTouchCancel: this._handleTouchCancel,\n onScroll: this._handleScroll,\n scrollEventThrottle: hasStickyHeaders\n ? 1\n : this.props.scrollEventThrottle,\n sendMomentumEvents:\n this.props.onMomentumScrollBegin || this.props.onMomentumScrollEnd\n ? true\n : false,\n // default to true\n snapToStart: this.props.snapToStart !== false,\n // default to true\n snapToEnd: this.props.snapToEnd !== false,\n // pagingEnabled is overridden by snapToInterval / snapToOffsets\n pagingEnabled: Platform.select({\n // on iOS, pagingEnabled must be set to false to have snapToInterval / snapToOffsets work\n ios:\n this.props.pagingEnabled === true &&\n this.props.snapToInterval == null &&\n this.props.snapToOffsets == null,\n // on Android, pagingEnabled must be set to true to have snapToInterval / snapToOffsets work\n android:\n this.props.pagingEnabled === true ||\n this.props.snapToInterval != null ||\n this.props.snapToOffsets != null,\n }),\n };\n\n const {decelerationRate} = this.props;\n if (decelerationRate != null) {\n props.decelerationRate = processDecelerationRate(decelerationRate);\n }\n\n const refreshControl = this.props.refreshControl;\n const scrollViewRef = this._scrollView.getForwardingRef(\n this.props.scrollViewRef,\n );\n\n if (refreshControl) {\n if (Platform.OS === 'ios') {\n // On iOS the RefreshControl is a child of the ScrollView.\n return (\n \n {refreshControl}\n {contentContainer}\n \n );\n } else if (Platform.OS === 'android') {\n // On Android wrap the ScrollView with a AndroidSwipeRefreshLayout.\n // Since the ScrollView is wrapped add the style props to the\n // AndroidSwipeRefreshLayout and use flex: 1 for the ScrollView.\n // Note: we should split props.style on the inner and outer props\n // however, the ScrollView still needs the baseStyle to be scrollable\n // $FlowFixMe[underconstrained-implicit-instantiation]\n const {outer, inner} = splitLayoutProps(flattenStyle(props.style));\n return React.cloneElement(\n refreshControl,\n {style: StyleSheet.compose(baseStyle, outer)},\n \n {contentContainer}\n ,\n );\n }\n }\n return (\n \n {contentContainer}\n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n baseVertical: {\n flexGrow: 1,\n flexShrink: 1,\n flexDirection: 'column',\n overflow: 'scroll',\n },\n baseHorizontal: {\n flexGrow: 1,\n flexShrink: 1,\n flexDirection: 'row',\n overflow: 'scroll',\n },\n contentContainerHorizontal: {\n flexDirection: 'row',\n },\n});\n\ntype ForwardedRef = {current: null | T, ...} | ((null | T) => mixed);\n\ntype RefForwarder = {\n getForwardingRef: (\n ?ForwardedRef,\n ) => (TNativeInstance | null) => void,\n nativeInstance: TNativeInstance | null,\n publicInstance: TPublicInstance | null,\n};\n\n/**\n * Helper function that should be replaced with `useCallback` and `useMergeRefs`\n * once `ScrollView` is reimplemented as a functional component.\n */\nfunction createRefForwarder(\n mutator: TNativeInstance => TPublicInstance,\n): RefForwarder {\n const state: RefForwarder = {\n getForwardingRef: memoize(forwardedRef => {\n return (nativeInstance: TNativeInstance | null): void => {\n const publicInstance =\n nativeInstance == null ? null : mutator(nativeInstance);\n\n state.nativeInstance = nativeInstance;\n state.publicInstance = publicInstance;\n\n if (forwardedRef != null) {\n if (typeof forwardedRef === 'function') {\n forwardedRef(publicInstance);\n } else {\n forwardedRef.current = publicInstance;\n }\n }\n };\n }),\n nativeInstance: null,\n publicInstance: null,\n };\n\n return state;\n}\n\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\nfunction Wrapper(props, ref: (mixed => mixed) | {current: mixed, ...}) {\n return ;\n}\nWrapper.displayName = 'ScrollView';\nconst ForwardedScrollView = React.forwardRef(Wrapper);\n\n// $FlowFixMe[prop-missing] Add static context to ForwardedScrollView\nForwardedScrollView.Context = ScrollViewContext;\n\nForwardedScrollView.displayName = 'ScrollView';\n\nmodule.exports = ((ForwardedScrollView: $FlowFixMe): React.AbstractComponent<\n React.ElementConfig,\n PublicScrollViewInstance,\n> &\n ScrollViewComponentStatics);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport NativeFrameRateLogger from './NativeFrameRateLogger';\n\nconst invariant = require('invariant');\n\n/**\n * Flow API for native FrameRateLogger module. If the native module is not installed, function calls\n * are just no-ops.\n *\n * Typical behavior is that `setContext` is called when a new screen is loaded (e.g. via a\n * navigation integration), and then `beginScroll` is called by `ScrollResponder` at which point the\n * native module then begins tracking frame drops. When `ScrollResponder` calls `endScroll`, the\n * native module gathers up all it's frame drop data and reports it via an analytics pipeline for\n * analysis.\n *\n * Note that `beginScroll` may be called multiple times by `ScrollResponder` - unclear if that's a\n * bug, but the native module should be robust to that.\n *\n * In the future we may add support for tracking frame drops in other types of interactions beyond\n * scrolling.\n */\nconst FrameRateLogger = {\n /**\n * Enable `debug` to see local logs of what's going on. `reportStackTraces` will grab stack traces\n * during UI thread stalls and upload them if the native module supports it.\n */\n setGlobalOptions: function (options: {\n debug?: boolean,\n reportStackTraces?: boolean,\n ...\n }) {\n if (options.debug !== undefined) {\n invariant(\n NativeFrameRateLogger,\n 'Trying to debug FrameRateLogger without the native module!',\n );\n }\n if (NativeFrameRateLogger) {\n // Needs to clone the object first to avoid modifying the argument.\n const optionsClone = {\n debug: !!options.debug,\n reportStackTraces: !!options.reportStackTraces,\n };\n NativeFrameRateLogger.setGlobalOptions(optionsClone);\n }\n },\n\n /**\n * Must call `setContext` before any events can be properly tracked, which is done automatically\n * in `AppRegistry`, but navigation is also a common place to hook in.\n */\n setContext: function (context: string) {\n NativeFrameRateLogger && NativeFrameRateLogger.setContext(context);\n },\n\n /**\n * Called in `ScrollResponder` so any component that uses that module will handle this\n * automatically.\n */\n beginScroll() {\n NativeFrameRateLogger && NativeFrameRateLogger.beginScroll();\n },\n\n /**\n * Called in `ScrollResponder` so any component that uses that module will handle this\n * automatically.\n */\n endScroll() {\n NativeFrameRateLogger && NativeFrameRateLogger.endScroll();\n },\n};\n\nmodule.exports = FrameRateLogger;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +setGlobalOptions: (options: {|\n +debug?: ?boolean,\n +reportStackTraces?: ?boolean,\n |}) => void;\n +setContext: (context: string) => void;\n +beginScroll: () => void;\n +endScroll: () => void;\n}\n\nexport default (TurboModuleRegistry.get('FrameRateLogger'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {____ViewStyle_Internal} from './StyleSheetTypes';\n\nexport default function splitLayoutProps(props: ?____ViewStyle_Internal): {\n outer: ?____ViewStyle_Internal,\n inner: ?____ViewStyle_Internal,\n} {\n let outer: ?____ViewStyle_Internal = null;\n let inner: ?____ViewStyle_Internal = null;\n\n if (props != null) {\n // $FlowIgnore[incompatible-exact] Will contain a subset of keys from `props`.\n outer = {};\n // $FlowIgnore[incompatible-exact] Will contain a subset of keys from `props`.\n inner = {};\n\n for (const prop of Object.keys(props)) {\n switch (prop) {\n case 'margin':\n case 'marginHorizontal':\n case 'marginVertical':\n case 'marginBottom':\n case 'marginTop':\n case 'marginLeft':\n case 'marginRight':\n case 'flex':\n case 'flexGrow':\n case 'flexShrink':\n case 'flexBasis':\n case 'alignSelf':\n case 'height':\n case 'minHeight':\n case 'maxHeight':\n case 'width':\n case 'minWidth':\n case 'maxWidth':\n case 'position':\n case 'left':\n case 'right':\n case 'bottom':\n case 'top':\n case 'transform':\n case 'rowGap':\n case 'columnGap':\n case 'gap':\n // $FlowFixMe[cannot-write]\n // $FlowFixMe[incompatible-use]\n // $FlowFixMe[prop-missing]\n outer[prop] = props[prop];\n break;\n default:\n // $FlowFixMe[cannot-write]\n // $FlowFixMe[incompatible-use]\n // $FlowFixMe[prop-missing]\n inner[prop] = props[prop];\n break;\n }\n }\n }\n\n return {outer, inner};\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n// This function dismisses the currently-open keyboard, if any.\n\n'use strict';\n\nconst TextInputState = require('../Components/TextInput/TextInputState');\n\nfunction dismissKeyboard() {\n TextInputState.blurTextInput(TextInputState.currentlyFocusedInput());\n}\n\nmodule.exports = dismissKeyboard;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {EventSubscription} from '../../vendor/emitter/EventEmitter';\n\nimport NativeEventEmitter from '../../EventEmitter/NativeEventEmitter';\nimport LayoutAnimation from '../../LayoutAnimation/LayoutAnimation';\nimport dismissKeyboard from '../../Utilities/dismissKeyboard';\nimport Platform from '../../Utilities/Platform';\nimport NativeKeyboardObserver from './NativeKeyboardObserver';\n\nexport type KeyboardEventName = $Keys;\n\nexport type KeyboardEventEasing =\n | 'easeIn'\n | 'easeInEaseOut'\n | 'easeOut'\n | 'linear'\n | 'keyboard';\n\nexport type KeyboardMetrics = $ReadOnly<{|\n screenX: number,\n screenY: number,\n width: number,\n height: number,\n|}>;\n\nexport type KeyboardEvent = AndroidKeyboardEvent | IOSKeyboardEvent;\n\ntype BaseKeyboardEvent = {|\n duration: number,\n easing: KeyboardEventEasing,\n endCoordinates: KeyboardMetrics,\n|};\n\nexport type AndroidKeyboardEvent = $ReadOnly<{|\n ...BaseKeyboardEvent,\n duration: 0,\n easing: 'keyboard',\n|}>;\n\nexport type IOSKeyboardEvent = $ReadOnly<{|\n ...BaseKeyboardEvent,\n startCoordinates: KeyboardMetrics,\n isEventFromThisApp: boolean,\n|}>;\n\ntype KeyboardEventDefinitions = {\n keyboardWillShow: [KeyboardEvent],\n keyboardDidShow: [KeyboardEvent],\n keyboardWillHide: [KeyboardEvent],\n keyboardDidHide: [KeyboardEvent],\n keyboardWillChangeFrame: [KeyboardEvent],\n keyboardDidChangeFrame: [KeyboardEvent],\n};\n\n/**\n * `Keyboard` module to control keyboard events.\n *\n * ### Usage\n *\n * The Keyboard module allows you to listen for native events and react to them, as\n * well as make changes to the keyboard, like dismissing it.\n *\n *```\n * import React, { Component } from 'react';\n * import { Keyboard, TextInput } from 'react-native';\n *\n * class Example extends Component {\n * componentWillMount () {\n * this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this._keyboardDidShow);\n * this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this._keyboardDidHide);\n * }\n *\n * componentWillUnmount () {\n * this.keyboardDidShowListener.remove();\n * this.keyboardDidHideListener.remove();\n * }\n *\n * _keyboardDidShow () {\n * alert('Keyboard Shown');\n * }\n *\n * _keyboardDidHide () {\n * alert('Keyboard Hidden');\n * }\n *\n * render() {\n * return (\n * \n * );\n * }\n * }\n *```\n */\n\nclass Keyboard {\n _currentlyShowing: ?KeyboardEvent;\n\n _emitter: NativeEventEmitter =\n new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeKeyboardObserver,\n );\n\n constructor() {\n this.addListener('keyboardDidShow', ev => {\n this._currentlyShowing = ev;\n });\n this.addListener('keyboardDidHide', _ev => {\n this._currentlyShowing = null;\n });\n }\n\n /**\n * The `addListener` function connects a JavaScript function to an identified native\n * keyboard notification event.\n *\n * This function then returns the reference to the listener.\n *\n * @param {string} eventName The `nativeEvent` is the string that identifies the event you're listening for. This\n *can be any of the following:\n *\n * - `keyboardWillShow`\n * - `keyboardDidShow`\n * - `keyboardWillHide`\n * - `keyboardDidHide`\n * - `keyboardWillChangeFrame`\n * - `keyboardDidChangeFrame`\n *\n * Android versions prior to API 30 rely on observing layout changes when\n * `android:windowSoftInputMode` is set to `adjustResize` or `adjustPan`.\n *\n * `keyboardWillShow` as well as `keyboardWillHide` are not available on Android since there is\n * no native corresponding event.\n *\n * @param {function} callback function to be called when the event fires.\n */\n addListener>(\n eventType: K,\n listener: (...$ElementType) => mixed,\n context?: mixed,\n ): EventSubscription {\n return this._emitter.addListener(eventType, listener);\n }\n\n /**\n * Removes all listeners for a specific event type.\n *\n * @param {string} eventType The native event string listeners are watching which will be removed.\n */\n removeAllListeners>(eventType: ?K): void {\n this._emitter.removeAllListeners(eventType);\n }\n\n /**\n * Dismisses the active keyboard and removes focus.\n */\n dismiss(): void {\n dismissKeyboard();\n }\n\n /**\n * Whether the keyboard is last known to be visible.\n */\n isVisible(): boolean {\n return !!this._currentlyShowing;\n }\n\n /**\n * Return the metrics of the soft-keyboard if visible.\n */\n metrics(): ?KeyboardMetrics {\n return this._currentlyShowing?.endCoordinates;\n }\n\n /**\n * Useful for syncing TextInput (or other keyboard accessory view) size of\n * position changes with keyboard movements.\n */\n scheduleLayoutAnimation(event: KeyboardEvent): void {\n const {duration, easing} = event;\n if (duration != null && duration !== 0) {\n LayoutAnimation.configureNext({\n duration: duration,\n update: {\n duration: duration,\n type: (easing != null && LayoutAnimation.Types[easing]) || 'keyboard',\n },\n });\n }\n }\n}\n\nmodule.exports = (new Keyboard(): Keyboard);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nimport type {Spec as FabricUIManagerSpec} from '../ReactNative/FabricUIManager';\nimport type {\n LayoutAnimationConfig as LayoutAnimationConfig_,\n LayoutAnimationProperty,\n LayoutAnimationType,\n} from '../Renderer/shims/ReactNativeTypes';\n\nimport {getFabricUIManager} from '../ReactNative/FabricUIManager';\nimport ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';\nimport Platform from '../Utilities/Platform';\n\nconst UIManager = require('../ReactNative/UIManager');\n\n// Reexport type\nexport type LayoutAnimationConfig = LayoutAnimationConfig_;\n\ntype OnAnimationDidEndCallback = () => void;\ntype OnAnimationDidFailCallback = () => void;\n\nlet isLayoutAnimationEnabled: boolean =\n ReactNativeFeatureFlags.isLayoutAnimationEnabled();\n\nfunction setEnabled(value: boolean) {\n isLayoutAnimationEnabled = isLayoutAnimationEnabled;\n}\n\n/**\n * Configures the next commit to be animated.\n *\n * onAnimationDidEnd is guaranteed to be called when the animation completes.\n * onAnimationDidFail is *never* called in the classic, pre-Fabric renderer,\n * and never has been. In the new renderer (Fabric) it is called only if configuration\n * parsing fails.\n */\nfunction configureNext(\n config: LayoutAnimationConfig,\n onAnimationDidEnd?: OnAnimationDidEndCallback,\n onAnimationDidFail?: OnAnimationDidFailCallback,\n) {\n if (Platform.isTesting) {\n return;\n }\n\n if (!isLayoutAnimationEnabled) {\n return;\n }\n\n // Since LayoutAnimations may possibly be disabled for now on iOS (Fabric),\n // or Android (non-Fabric) we race a setTimeout with animation completion,\n // in case onComplete is never called\n // from native. Once LayoutAnimations+Fabric unconditionally ship everywhere, we can\n // delete this mechanism at least in the Fabric branch.\n let animationCompletionHasRun = false;\n const onAnimationComplete = () => {\n if (animationCompletionHasRun) {\n return;\n }\n animationCompletionHasRun = true;\n clearTimeout(raceWithAnimationId);\n onAnimationDidEnd?.();\n };\n const raceWithAnimationId = setTimeout(\n onAnimationComplete,\n (config.duration ?? 0) + 17 /* one frame + 1ms */,\n );\n\n // In Fabric, LayoutAnimations are unconditionally enabled for Android, and\n // conditionally enabled on iOS (pending fully shipping; this is a temporary state).\n const FabricUIManager = getFabricUIManager();\n if (FabricUIManager?.configureNextLayoutAnimation) {\n global?.nativeFabricUIManager?.configureNextLayoutAnimation(\n config,\n onAnimationComplete,\n onAnimationDidFail ??\n function () {} /* this will only be called if configuration parsing fails */,\n );\n return;\n }\n\n // This will only run if Fabric is *not* installed.\n // If you have Fabric + non-Fabric running in the same VM, non-Fabric LayoutAnimations\n // will not work.\n if (UIManager?.configureNextLayoutAnimation) {\n UIManager.configureNextLayoutAnimation(\n config,\n onAnimationComplete ?? function () {},\n onAnimationDidFail ??\n function () {} /* this should never be called in Non-Fabric */,\n );\n }\n}\n\nfunction create(\n duration: number,\n type: LayoutAnimationType,\n property: LayoutAnimationProperty,\n): LayoutAnimationConfig {\n return {\n duration,\n create: {type, property},\n update: {type},\n delete: {type, property},\n };\n}\n\nconst Presets = {\n easeInEaseOut: (create(\n 300,\n 'easeInEaseOut',\n 'opacity',\n ): LayoutAnimationConfig),\n linear: (create(500, 'linear', 'opacity'): LayoutAnimationConfig),\n spring: {\n duration: 700,\n create: {\n type: 'linear',\n property: 'opacity',\n },\n update: {\n type: 'spring',\n springDamping: 0.4,\n },\n delete: {\n type: 'linear',\n property: 'opacity',\n },\n },\n};\n\n/**\n * Automatically animates views to their new positions when the\n * next layout happens.\n *\n * A common way to use this API is to call it before calling `setState`.\n *\n * Note that in order to get this to work on **Android** you need to set the following flags via `UIManager`:\n *\n * UIManager.setLayoutAnimationEnabledExperimental && UIManager.setLayoutAnimationEnabledExperimental(true);\n */\nconst LayoutAnimation = {\n /**\n * Schedules an animation to happen on the next layout.\n *\n * @param config Specifies animation properties:\n *\n * - `duration` in milliseconds\n * - `create`, `AnimationConfig` for animating in new views\n * - `update`, `AnimationConfig` for animating views that have been updated\n *\n * @param onAnimationDidEnd Called when the animation finished.\n * Only supported on iOS.\n * @param onError Called on error. Only supported on iOS.\n */\n configureNext,\n /**\n * Helper for creating a config for `configureNext`.\n */\n create,\n Types: Object.freeze({\n spring: 'spring',\n linear: 'linear',\n easeInEaseOut: 'easeInEaseOut',\n easeIn: 'easeIn',\n easeOut: 'easeOut',\n keyboard: 'keyboard',\n }),\n Properties: Object.freeze({\n opacity: 'opacity',\n scaleX: 'scaleX',\n scaleY: 'scaleY',\n scaleXY: 'scaleXY',\n }),\n checkConfig(...args: Array) {\n console.error('LayoutAnimation.checkConfig(...) has been disabled.');\n },\n Presets,\n easeInEaseOut: (configureNext.bind(null, Presets.easeInEaseOut): (\n onAnimationDidEnd?: OnAnimationDidEndCallback,\n ) => void),\n linear: (configureNext.bind(null, Presets.linear): (\n onAnimationDidEnd?: OnAnimationDidEndCallback,\n ) => void),\n spring: (configureNext.bind(null, Presets.spring): (\n onAnimationDidEnd?: OnAnimationDidEndCallback,\n ) => void),\n setEnabled,\n};\n\nmodule.exports = LayoutAnimation;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.get('KeyboardObserver'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n removeClippedSubviews?: ?boolean,\n|}>;\n\ntype NativeType = HostComponent;\n\nexport default (codegenNativeComponent(\n 'AndroidHorizontalScrollContentView',\n): NativeType);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ScrollViewNativeProps as Props} from './ScrollViewNativeComponentType';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {\n uiViewClassName: 'AndroidHorizontalScrollView',\n bubblingEventTypes: {},\n directEventTypes: {},\n validAttributes: {\n decelerationRate: true,\n disableIntervalMomentum: true,\n endFillColor: {process: require('../../StyleSheet/processColor').default},\n fadingEdgeLength: true,\n nestedScrollEnabled: true,\n overScrollMode: true,\n pagingEnabled: true,\n persistentScrollbar: true,\n scrollEnabled: true,\n scrollPerfTag: true,\n sendMomentumEvents: true,\n showsHorizontalScrollIndicator: true,\n snapToAlignment: true,\n snapToEnd: true,\n snapToInterval: true,\n snapToStart: true,\n snapToOffsets: true,\n contentOffset: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderRadius: true,\n borderStyle: true,\n borderRightColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderColor: {process: require('../../StyleSheet/processColor').default},\n borderBottomColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderTopLeftRadius: true,\n borderTopColor: {process: require('../../StyleSheet/processColor').default},\n removeClippedSubviews: true,\n borderTopRightRadius: true,\n borderLeftColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n pointerEvents: true,\n },\n};\n\nconst AndroidHorizontalScrollViewNativeComponent: HostComponent =\n NativeComponentRegistry.get(\n 'AndroidHorizontalScrollView',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\nexport default AndroidHorizontalScrollViewNativeComponent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport Platform from '../../Utilities/Platform';\n\nfunction processDecelerationRate(\n decelerationRate: number | 'normal' | 'fast',\n): number {\n if (decelerationRate === 'normal') {\n return Platform.select({\n ios: 0.998,\n android: 0.985,\n });\n } else if (decelerationRate === 'fast') {\n return Platform.select({\n ios: 0.99,\n android: 0.9,\n });\n }\n return decelerationRate;\n}\n\nmodule.exports = processDecelerationRate;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ViewProps as Props} from '../View/ViewPropTypes';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {\n uiViewClassName: 'RCTScrollContentView',\n bubblingEventTypes: {},\n directEventTypes: {},\n validAttributes: {},\n};\n\nconst ScrollContentViewNativeComponent: HostComponent =\n NativeComponentRegistry.get(\n 'RCTScrollContentView',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\nexport default ScrollContentViewNativeComponent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {Double} from '../../Types/CodegenTypes';\n\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport * as React from 'react';\n\ntype ScrollViewNativeComponentType = HostComponent;\ninterface NativeCommands {\n +flashScrollIndicators: (\n viewRef: React.ElementRef,\n ) => void;\n +scrollTo: (\n viewRef: React.ElementRef,\n x: Double,\n y: Double,\n animated: boolean,\n ) => void;\n +scrollToEnd: (\n viewRef: React.ElementRef,\n animated: boolean,\n ) => void;\n +zoomToRect: (\n viewRef: React.ElementRef,\n rect: {|\n x: Double,\n y: Double,\n width: Double,\n height: Double,\n animated?: boolean,\n |},\n animated?: boolean,\n ) => void;\n}\n\nexport default (codegenNativeCommands({\n supportedCommands: [\n 'flashScrollIndicators',\n 'scrollTo',\n 'scrollToEnd',\n 'zoomToRect',\n ],\n}): NativeCommands);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport * as React from 'react';\n\ntype Value = {horizontal: boolean} | null;\n\nconst ScrollViewContext: React.Context = React.createContext(null);\nif (__DEV__) {\n ScrollViewContext.displayName = 'ScrollViewContext';\n}\nexport default ScrollViewContext;\n\nexport const HORIZONTAL: Value = Object.freeze({horizontal: true});\nexport const VERTICAL: Value = Object.freeze({horizontal: false});\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ScrollViewNativeProps as Props} from './ScrollViewNativeComponentType';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\nimport {ConditionallyIgnoredEventHandlers} from '../../NativeComponent/ViewConfigIgnore';\nimport Platform from '../../Utilities/Platform';\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig =\n Platform.OS === 'android'\n ? {\n uiViewClassName: 'RCTScrollView',\n bubblingEventTypes: {},\n directEventTypes: {\n topMomentumScrollBegin: {\n registrationName: 'onMomentumScrollBegin',\n },\n topMomentumScrollEnd: {\n registrationName: 'onMomentumScrollEnd',\n },\n topScroll: {\n registrationName: 'onScroll',\n },\n topScrollBeginDrag: {\n registrationName: 'onScrollBeginDrag',\n },\n topScrollEndDrag: {\n registrationName: 'onScrollEndDrag',\n },\n },\n validAttributes: {\n contentOffset: {\n diff: require('../../Utilities/differ/pointsDiffer'),\n },\n decelerationRate: true,\n disableIntervalMomentum: true,\n pagingEnabled: true,\n scrollEnabled: true,\n showsVerticalScrollIndicator: true,\n snapToAlignment: true,\n snapToEnd: true,\n snapToInterval: true,\n snapToOffsets: true,\n snapToStart: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n sendMomentumEvents: true,\n borderRadius: true,\n nestedScrollEnabled: true,\n borderStyle: true,\n borderRightColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderBottomColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n persistentScrollbar: true,\n endFillColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n fadingEdgeLength: true,\n overScrollMode: true,\n borderTopLeftRadius: true,\n scrollPerfTag: true,\n borderTopColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n removeClippedSubviews: true,\n borderTopRightRadius: true,\n borderLeftColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n pointerEvents: true,\n },\n }\n : {\n uiViewClassName: 'RCTScrollView',\n bubblingEventTypes: {},\n directEventTypes: {\n topMomentumScrollBegin: {\n registrationName: 'onMomentumScrollBegin',\n },\n topMomentumScrollEnd: {\n registrationName: 'onMomentumScrollEnd',\n },\n topScroll: {\n registrationName: 'onScroll',\n },\n topScrollBeginDrag: {\n registrationName: 'onScrollBeginDrag',\n },\n topScrollEndDrag: {\n registrationName: 'onScrollEndDrag',\n },\n topScrollToTop: {\n registrationName: 'onScrollToTop',\n },\n },\n validAttributes: {\n alwaysBounceHorizontal: true,\n alwaysBounceVertical: true,\n automaticallyAdjustContentInsets: true,\n automaticallyAdjustKeyboardInsets: true,\n automaticallyAdjustsScrollIndicatorInsets: true,\n bounces: true,\n bouncesZoom: true,\n canCancelContentTouches: true,\n centerContent: true,\n contentInset: {\n diff: require('../../Utilities/differ/insetsDiffer'),\n },\n contentOffset: {\n diff: require('../../Utilities/differ/pointsDiffer'),\n },\n contentInsetAdjustmentBehavior: true,\n decelerationRate: true,\n directionalLockEnabled: true,\n disableIntervalMomentum: true,\n indicatorStyle: true,\n inverted: true,\n keyboardDismissMode: true,\n maintainVisibleContentPosition: true,\n maximumZoomScale: true,\n minimumZoomScale: true,\n pagingEnabled: true,\n pinchGestureEnabled: true,\n scrollEnabled: true,\n scrollEventThrottle: true,\n scrollIndicatorInsets: {\n diff: require('../../Utilities/differ/insetsDiffer'),\n },\n scrollToOverflowEnabled: true,\n scrollsToTop: true,\n showsHorizontalScrollIndicator: true,\n showsVerticalScrollIndicator: true,\n snapToAlignment: true,\n snapToEnd: true,\n snapToInterval: true,\n snapToOffsets: true,\n snapToStart: true,\n zoomScale: true,\n ...ConditionallyIgnoredEventHandlers({\n onScrollBeginDrag: true,\n onMomentumScrollEnd: true,\n onScrollEndDrag: true,\n onMomentumScrollBegin: true,\n onScrollToTop: true,\n onScroll: true,\n }),\n },\n };\n\nconst ScrollViewNativeComponent: HostComponent =\n NativeComponentRegistry.get(\n 'RCTScrollView',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\nexport default ScrollViewNativeComponent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {LayoutEvent} from '../../Types/CoreEventTypes';\n\nimport Animated from '../../Animated/Animated';\nimport {isPublicInstance as isFabricPublicInstance} from '../../Renderer/public/ReactFabricPublicInstanceUtils';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport useMergeRefs from '../../Utilities/useMergeRefs';\nimport * as React from 'react';\nimport {useCallback, useEffect, useMemo, useRef, useState} from 'react';\n\nexport type Props = $ReadOnly<{\n children?: React.Element<$FlowFixMe>,\n nextHeaderLayoutY: ?number,\n onLayout: (event: LayoutEvent) => void,\n scrollAnimatedValue: Animated.Value,\n // Will cause sticky headers to stick at the bottom of the ScrollView instead\n // of the top.\n inverted: ?boolean,\n // The height of the parent ScrollView. Currently only set when inverted.\n scrollViewHeight: ?number,\n nativeID?: ?string,\n hiddenOnScroll?: ?boolean,\n}>;\n\ntype Instance = {\n ...React.ElementRef,\n setNextHeaderY: number => void,\n ...\n};\n\nconst ScrollViewStickyHeaderWithForwardedRef: React.AbstractComponent<\n Props,\n Instance,\n> = React.forwardRef(function ScrollViewStickyHeader(props, forwardedRef) {\n const {\n inverted,\n scrollViewHeight,\n hiddenOnScroll,\n scrollAnimatedValue,\n nextHeaderLayoutY: _nextHeaderLayoutY,\n } = props;\n\n const [measured, setMeasured] = useState(false);\n const [layoutY, setLayoutY] = useState(0);\n const [layoutHeight, setLayoutHeight] = useState(0);\n const [translateY, setTranslateY] = useState(null);\n const [nextHeaderLayoutY, setNextHeaderLayoutY] =\n useState(_nextHeaderLayoutY);\n const [isFabric, setIsFabric] = useState(false);\n\n const callbackRef = (ref: Instance | null): void => {\n if (ref == null) {\n return;\n }\n ref.setNextHeaderY = value => {\n setNextHeaderLayoutY(value);\n };\n setIsFabric(isFabricPublicInstance(ref));\n };\n const ref: (React.ElementRef | null) => void =\n // $FlowFixMe[incompatible-type] - Ref is mutated by `callbackRef`.\n useMergeRefs(callbackRef, forwardedRef);\n\n const offset = useMemo(\n () =>\n hiddenOnScroll === true\n ? Animated.diffClamp(\n scrollAnimatedValue\n .interpolate({\n extrapolateLeft: 'clamp',\n inputRange: [layoutY, layoutY + 1],\n outputRange: ([0, 1]: Array),\n })\n .interpolate({\n inputRange: [0, 1],\n outputRange: ([0, -1]: Array),\n }),\n -layoutHeight,\n 0,\n )\n : null,\n [scrollAnimatedValue, layoutHeight, layoutY, hiddenOnScroll],\n );\n\n const [animatedTranslateY, setAnimatedTranslateY] = useState(\n () => {\n const inputRange: Array = [-1, 0];\n const outputRange: Array = [0, 0];\n const initialTranslateY = scrollAnimatedValue.interpolate({\n inputRange,\n outputRange,\n });\n\n if (offset != null) {\n return Animated.add(initialTranslateY, offset);\n }\n return initialTranslateY;\n },\n );\n\n const _haveReceivedInitialZeroTranslateY = useRef(true);\n const _timer = useRef(null);\n\n useEffect(() => {\n if (translateY !== 0 && translateY != null) {\n _haveReceivedInitialZeroTranslateY.current = false;\n }\n }, [translateY]);\n\n // This is called whenever the (Interpolated) Animated Value\n // updates, which is several times per frame during scrolling.\n // To ensure that the Fabric ShadowTree has the most recent\n // translate style of this node, we debounce the value and then\n // pass it through to the underlying node during render.\n // This is:\n // 1. Only an issue in Fabric.\n // 2. Worse in Android than iOS. In Android, but not iOS, you\n // can touch and move your finger slightly and still trigger\n // a \"tap\" event. In iOS, moving will cancel the tap in\n // both Fabric and non-Fabric. On Android when you move\n // your finger, the hit-detection moves from the Android\n // platform to JS, so we need the ShadowTree to have knowledge\n // of the current position.\n const animatedValueListener = useCallback(\n ({value}: $FlowFixMe) => {\n const _debounceTimeout: number = Platform.OS === 'android' ? 15 : 64;\n // When the AnimatedInterpolation is recreated, it always initializes\n // to a value of zero and emits a value change of 0 to its listeners.\n if (value === 0 && !_haveReceivedInitialZeroTranslateY.current) {\n _haveReceivedInitialZeroTranslateY.current = true;\n return;\n }\n if (_timer.current != null) {\n clearTimeout(_timer.current);\n }\n _timer.current = setTimeout(() => {\n if (value !== translateY) {\n setTranslateY(value);\n }\n }, _debounceTimeout);\n },\n [translateY],\n );\n\n useEffect(() => {\n const inputRange: Array = [-1, 0];\n const outputRange: Array = [0, 0];\n\n if (measured) {\n if (inverted === true) {\n // The interpolation looks like:\n // - Negative scroll: no translation\n // - `stickStartPoint` is the point at which the header will start sticking.\n // It is calculated using the ScrollView viewport height so it is a the bottom.\n // - Headers that are in the initial viewport will never stick, `stickStartPoint`\n // will be negative.\n // - From 0 to `stickStartPoint` no translation. This will cause the header\n // to scroll normally until it reaches the top of the scroll view.\n // - From `stickStartPoint` to when the next header y hits the bottom edge of the header: translate\n // equally to scroll. This will cause the header to stay at the top of the scroll view.\n // - Past the collision with the next header y: no more translation. This will cause the\n // header to continue scrolling up and make room for the next sticky header.\n // In the case that there is no next header just translate equally to\n // scroll indefinitely.\n if (scrollViewHeight != null) {\n const stickStartPoint = layoutY + layoutHeight - scrollViewHeight;\n if (stickStartPoint > 0) {\n inputRange.push(stickStartPoint);\n outputRange.push(0);\n inputRange.push(stickStartPoint + 1);\n outputRange.push(1);\n // If the next sticky header has not loaded yet (probably windowing) or is the last\n // we can just keep it sticked forever.\n const collisionPoint =\n (nextHeaderLayoutY || 0) - layoutHeight - scrollViewHeight;\n if (collisionPoint > stickStartPoint) {\n inputRange.push(collisionPoint, collisionPoint + 1);\n outputRange.push(\n collisionPoint - stickStartPoint,\n collisionPoint - stickStartPoint,\n );\n }\n }\n }\n } else {\n // The interpolation looks like:\n // - Negative scroll: no translation\n // - From 0 to the y of the header: no translation. This will cause the header\n // to scroll normally until it reaches the top of the scroll view.\n // - From header y to when the next header y hits the bottom edge of the header: translate\n // equally to scroll. This will cause the header to stay at the top of the scroll view.\n // - Past the collision with the next header y: no more translation. This will cause the\n // header to continue scrolling up and make room for the next sticky header.\n // In the case that there is no next header just translate equally to\n // scroll indefinitely.\n inputRange.push(layoutY);\n outputRange.push(0);\n // If the next sticky header has not loaded yet (probably windowing) or is the last\n // we can just keep it sticked forever.\n const collisionPoint = (nextHeaderLayoutY || 0) - layoutHeight;\n if (collisionPoint >= layoutY) {\n inputRange.push(collisionPoint, collisionPoint + 1);\n outputRange.push(collisionPoint - layoutY, collisionPoint - layoutY);\n } else {\n inputRange.push(layoutY + 1);\n outputRange.push(1);\n }\n }\n }\n\n let newAnimatedTranslateY: Animated.Node = scrollAnimatedValue.interpolate({\n inputRange,\n outputRange,\n });\n\n if (offset != null) {\n newAnimatedTranslateY = Animated.add(newAnimatedTranslateY, offset);\n }\n\n // add the event listener\n let animatedListenerId;\n if (isFabric) {\n animatedListenerId = newAnimatedTranslateY.addListener(\n animatedValueListener,\n );\n }\n\n setAnimatedTranslateY(newAnimatedTranslateY);\n\n // clean up the event listener and timer\n return () => {\n if (animatedListenerId) {\n newAnimatedTranslateY.removeListener(animatedListenerId);\n }\n if (_timer.current != null) {\n clearTimeout(_timer.current);\n }\n };\n }, [nextHeaderLayoutY, measured, layoutHeight, layoutY, scrollViewHeight, scrollAnimatedValue, inverted, offset, animatedValueListener, isFabric]);\n\n const _onLayout = (event: LayoutEvent) => {\n setLayoutY(event.nativeEvent.layout.y);\n setLayoutHeight(event.nativeEvent.layout.height);\n setMeasured(true);\n\n props.onLayout(event);\n const child = React.Children.only<$FlowFixMe>(props.children);\n if (child.props.onLayout) {\n child.props.onLayout(event);\n }\n };\n\n const child = React.Children.only<$FlowFixMe>(props.children);\n\n // TODO T68319535: remove this if NativeAnimated is rewritten for Fabric\n const passthroughAnimatedPropExplicitValues =\n isFabric && translateY != null\n ? {\n style: {transform: [{translateY: translateY}]},\n }\n : null;\n\n return (\n /* $FlowFixMe[prop-missing] passthroughAnimatedPropExplicitValues isn't properly\n included in the Animated.View flow type. */\n \n {React.cloneElement(child, {\n style: styles.fill, // We transfer the child style to the wrapper.\n onLayout: undefined, // we call this manually through our this._onLayout\n })}\n \n );\n});\n\nconst styles = StyleSheet.create({\n header: {\n zIndex: 10,\n position: 'relative',\n },\n fill: {\n flex: 1,\n },\n});\n\nexport default ScrollViewStickyHeaderWithForwardedRef;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {SectionBase} from '../../Lists/SectionList';\nimport type {AnimatedComponentType} from '../createAnimatedComponent';\n\nimport SectionList from '../../Lists/SectionList';\nimport createAnimatedComponent from '../createAnimatedComponent';\nimport * as React from 'react';\n\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nconst SectionListWithEventThrottle = React.forwardRef(\n (\n props: React.ElementConfig,\n ref:\n | ((null | SectionList>) => mixed)\n | {\n current: null | SectionList>,\n ...\n },\n ) => ,\n);\n\nexport default (createAnimatedComponent(\n SectionListWithEventThrottle,\n): AnimatedComponentType<\n React.ElementConfig,\n React.ElementRef,\n>);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {ScrollResponderType} from '../Components/ScrollView/ScrollView';\nimport type {\n ScrollToLocationParamsType,\n SectionBase as _SectionBase,\n VirtualizedSectionListProps,\n} from '@react-native/virtualized-lists';\n\nimport Platform from '../Utilities/Platform';\nimport {VirtualizedSectionList} from '@react-native/virtualized-lists';\nimport * as React from 'react';\n\ntype Item = any;\n\nexport type SectionBase = _SectionBase;\n\ntype RequiredProps> = {|\n /**\n * The actual data to render, akin to the `data` prop in [``](https://reactnative.dev/docs/flatlist).\n *\n * General shape:\n *\n * sections: $ReadOnlyArray<{\n * data: $ReadOnlyArray,\n * renderItem?: ({item: SectionItem, ...}) => ?React.Element<*>,\n * ItemSeparatorComponent?: ?ReactClass<{highlighted: boolean, ...}>,\n * }>\n */\n sections: $ReadOnlyArray,\n|};\n\ntype OptionalProps> = {|\n /**\n * Default renderer for every item in every section. Can be over-ridden on a per-section basis.\n */\n renderItem?: (info: {\n item: Item,\n index: number,\n section: SectionT,\n separators: {\n highlight: () => void,\n unhighlight: () => void,\n updateProps: (select: 'leading' | 'trailing', newProps: Object) => void,\n ...\n },\n ...\n }) => null | React.Element,\n /**\n * A marker property for telling the list to re-render (since it implements `PureComponent`). If\n * any of your `renderItem`, Header, Footer, etc. functions depend on anything outside of the\n * `data` prop, stick it here and treat it immutably.\n */\n extraData?: any,\n /**\n * How many items to render in the initial batch. This should be enough to fill the screen but not\n * much more. Note these items will never be unmounted as part of the windowed rendering in order\n * to improve perceived performance of scroll-to-top actions.\n */\n initialNumToRender?: ?number,\n /**\n * Reverses the direction of scroll. Uses scale transforms of -1.\n */\n inverted?: ?boolean,\n /**\n * Used to extract a unique key for a given item at the specified index. Key is used for caching\n * and as the react key to track item re-ordering. The default extractor checks item.key, then\n * falls back to using the index, like react does. Note that this sets keys for each item, but\n * each overall section still needs its own key.\n */\n keyExtractor?: ?(item: Item, index: number) => string,\n /**\n * Called once when the scroll position gets within `onEndReachedThreshold` of the rendered\n * content.\n */\n onEndReached?: ?(info: {distanceFromEnd: number, ...}) => void,\n /**\n * Note: may have bugs (missing content) in some circumstances - use at your own risk.\n *\n * This may improve scroll performance for large lists.\n */\n removeClippedSubviews?: boolean,\n|};\n\nexport type Props = {|\n ...$Diff<\n VirtualizedSectionListProps,\n {\n getItem: $PropertyType, 'getItem'>,\n getItemCount: $PropertyType<\n VirtualizedSectionListProps,\n 'getItemCount',\n >,\n renderItem: $PropertyType<\n VirtualizedSectionListProps,\n 'renderItem',\n >,\n keyExtractor: $PropertyType<\n VirtualizedSectionListProps,\n 'keyExtractor',\n >,\n ...\n },\n >,\n ...RequiredProps,\n ...OptionalProps,\n|};\n\n/**\n * A performant interface for rendering sectioned lists, supporting the most handy features:\n *\n * - Fully cross-platform.\n * - Configurable viewability callbacks.\n * - List header support.\n * - List footer support.\n * - Item separator support.\n * - Section header support.\n * - Section separator support.\n * - Heterogeneous data and item rendering support.\n * - Pull to Refresh.\n * - Scroll loading.\n *\n * If you don't need section support and want a simpler interface, use\n * [``](https://reactnative.dev/docs/flatlist).\n *\n * Simple Examples:\n *\n * }\n * renderSectionHeader={({section}) =>
}\n * sections={[ // homogeneous rendering between sections\n * {data: [...], title: ...},\n * {data: [...], title: ...},\n * {data: [...], title: ...},\n * ]}\n * />\n *\n * \n *\n * This is a convenience wrapper around [``](docs/virtualizedlist),\n * and thus inherits its props (as well as those of `ScrollView`) that aren't explicitly listed\n * here, along with the following caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate and momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n */\nexport default class SectionList<\n SectionT: SectionBase,\n> extends React.PureComponent, void> {\n props: Props;\n\n /**\n * Scrolls to the item at the specified `sectionIndex` and `itemIndex` (within the section)\n * positioned in the viewable area such that `viewPosition` 0 places it at the top (and may be\n * covered by a sticky header), 1 at the bottom, and 0.5 centered in the middle. `viewOffset` is a\n * fixed number of pixels to offset the final target position, e.g. to compensate for sticky\n * headers.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n scrollToLocation(params: ScrollToLocationParamsType) {\n if (this._wrapperListRef != null) {\n this._wrapperListRef.scrollToLocation(params);\n }\n }\n\n /**\n * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n * taps on items or by navigation actions.\n */\n recordInteraction() {\n const listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n listRef && listRef.recordInteraction();\n }\n\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n flashScrollIndicators() {\n const listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n listRef && listRef.flashScrollIndicators();\n }\n\n /**\n * Provides a handle to the underlying scroll responder.\n */\n getScrollResponder(): ?ScrollResponderType {\n const listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n if (listRef) {\n return listRef.getScrollResponder();\n }\n }\n\n getScrollableNode(): any {\n const listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n if (listRef) {\n return listRef.getScrollableNode();\n }\n }\n\n setNativeProps(props: Object) {\n const listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n if (listRef) {\n listRef.setNativeProps(props);\n }\n }\n\n render(): React.Node {\n const {\n stickySectionHeadersEnabled: _stickySectionHeadersEnabled,\n ...restProps\n } = this.props;\n const stickySectionHeadersEnabled =\n _stickySectionHeadersEnabled ?? Platform.OS === 'ios';\n return (\n items.length}\n // $FlowFixMe[missing-local-annot]\n getItem={(items, index) => items[index]}\n />\n );\n }\n\n _wrapperListRef: ?React.ElementRef;\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n _captureRef = ref => {\n this._wrapperListRef = ref;\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {AnimatedComponentType} from '../createAnimatedComponent';\n\nimport Text from '../../Text/Text';\nimport createAnimatedComponent from '../createAnimatedComponent';\nimport * as React from 'react';\n\nexport default (createAnimatedComponent(\n (Text: $FlowFixMe),\n): AnimatedComponentType<\n React.ElementConfig,\n React.ElementRef,\n>);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {AnimatedComponentType} from '../createAnimatedComponent';\n\nimport View from '../../Components/View/View';\nimport createAnimatedComponent from '../createAnimatedComponent';\nimport * as React from 'react';\n\nexport default (createAnimatedComponent(View): AnimatedComponentType<\n React.ElementConfig,\n React.ElementRef,\n>);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {AccessibilityRole} from '../../Components/View/ViewAccessibility';\nimport type {\n MeasureInWindowOnSuccessCallback,\n MeasureLayoutOnSuccessCallback,\n MeasureOnSuccessCallback,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue, ViewStyleProp} from '../../StyleSheet/StyleSheet';\nimport type {DirectEventHandler} from '../../Types/CodegenTypes';\n\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport dismissKeyboard from '../../Utilities/dismissKeyboard';\nimport Platform from '../../Utilities/Platform';\nimport StatusBar from '../StatusBar/StatusBar';\nimport View from '../View/View';\nimport AndroidDrawerLayoutNativeComponent, {\n Commands,\n} from './AndroidDrawerLayoutNativeComponent';\nimport nullthrows from 'nullthrows';\nimport * as React from 'react';\n\nconst DRAWER_STATES = ['Idle', 'Dragging', 'Settling'];\n\ntype DrawerStates = 'Idle' | 'Dragging' | 'Settling';\n\ntype DrawerSlideEvent = $ReadOnly<{|\n offset: number,\n|}>;\n\ntype Props = $ReadOnly<{|\n accessibilityRole?: ?AccessibilityRole,\n\n /**\n * Determines whether the keyboard gets dismissed in response to a drag.\n * - 'none' (the default), drags do not dismiss the keyboard.\n * - 'on-drag', the keyboard is dismissed when a drag begins.\n */\n keyboardDismissMode?: ?('none' | 'on-drag'),\n\n /**\n * Specifies the background color of the drawer. The default value is white.\n * If you want to set the opacity of the drawer, use rgba. Example:\n *\n * ```\n * return (\n * \n * \n * );\n * ```\n */\n drawerBackgroundColor?: ?ColorValue,\n\n /**\n * Specifies the side of the screen from which the drawer will slide in.\n */\n drawerPosition: ?('left' | 'right'),\n\n /**\n * Specifies the width of the drawer, more precisely the width of the view that be pulled in\n * from the edge of the window.\n */\n drawerWidth?: ?number,\n\n /**\n * Specifies the lock mode of the drawer. The drawer can be locked in 3 states:\n * - unlocked (default), meaning that the drawer will respond (open/close) to touch gestures.\n * - locked-closed, meaning that the drawer will stay closed and not respond to gestures.\n * - locked-open, meaning that the drawer will stay opened and not respond to gestures.\n * The drawer may still be opened and closed programmatically (`openDrawer`/`closeDrawer`).\n */\n drawerLockMode?: ?('unlocked' | 'locked-closed' | 'locked-open'),\n\n /**\n * Function called whenever there is an interaction with the navigation view.\n */\n onDrawerSlide?: ?DirectEventHandler,\n\n /**\n * Function called when the drawer state has changed. The drawer can be in 3 states:\n * - Idle, meaning there is no interaction with the navigation view happening at the time\n * - Dragging, meaning there is currently an interaction with the navigation view\n * - Settling, meaning that there was an interaction with the navigation view, and the\n * navigation view is now finishing its closing or opening animation\n */\n onDrawerStateChanged?: ?(state: DrawerStates) => mixed,\n\n /**\n * Function called whenever the navigation view has been opened.\n */\n onDrawerOpen?: ?() => mixed,\n\n /**\n * Function called whenever the navigation view has been closed.\n */\n onDrawerClose?: ?() => mixed,\n\n /**\n * The navigation view that will be rendered to the side of the screen and can be pulled in.\n */\n renderNavigationView: () => React.Element,\n\n /**\n * Make the drawer take the entire screen and draw the background of the\n * status bar to allow it to open over the status bar. It will only have an\n * effect on API 21+.\n */\n statusBarBackgroundColor?: ?ColorValue,\n\n children?: React.Node,\n style?: ?ViewStyleProp,\n|}>;\n\ntype State = {|\n statusBarBackgroundColor: ColorValue,\n|};\n\n/**\n * React component that wraps the platform `DrawerLayout` (Android only). The\n * Drawer (typically used for navigation) is rendered with `renderNavigationView`\n * and direct children are the main view (where your content goes). The navigation\n * view is initially not visible on the screen, but can be pulled in from the\n * side of the window specified by the `drawerPosition` prop and its width can\n * be set by the `drawerWidth` prop.\n *\n * Example:\n *\n * ```\n * render: function() {\n * var navigationView = (\n * \n * I'm in the Drawer!\n * \n * );\n * return (\n * navigationView}>\n * \n * Hello\n * World!\n * \n * \n * );\n * },\n * ```\n */\nclass DrawerLayoutAndroid extends React.Component {\n static get positions(): mixed {\n console.warn(\n 'Setting DrawerLayoutAndroid drawerPosition using `DrawerLayoutAndroid.positions` is deprecated. Instead pass the string value \"left\" or \"right\"',\n );\n\n return {Left: 'left', Right: 'right'};\n }\n\n // $FlowFixMe[missing-local-annot]\n _nativeRef =\n React.createRef<\n React.ElementRef,\n >();\n\n state: State = {statusBarBackgroundColor: null};\n\n render(): React.Node {\n const {\n drawerBackgroundColor = 'white',\n onDrawerStateChanged,\n renderNavigationView,\n onDrawerOpen,\n onDrawerClose,\n ...props\n } = this.props;\n const drawStatusBar =\n Platform.Version >= 21 && this.props.statusBarBackgroundColor != null;\n const drawerViewWrapper = (\n \n {renderNavigationView()}\n {drawStatusBar && }\n \n );\n const childrenWrapper = (\n \n {drawStatusBar && (\n \n )}\n {drawStatusBar && (\n \n )}\n {this.props.children}\n \n );\n return (\n \n {childrenWrapper}\n {drawerViewWrapper}\n \n );\n }\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n _onDrawerSlide = event => {\n if (this.props.onDrawerSlide) {\n // $FlowFixMe[unused-promise]\n this.props.onDrawerSlide(event);\n }\n if (this.props.keyboardDismissMode === 'on-drag') {\n dismissKeyboard();\n }\n };\n\n _onDrawerOpen = () => {\n if (this.props.onDrawerOpen) {\n this.props.onDrawerOpen();\n }\n };\n\n _onDrawerClose = () => {\n if (this.props.onDrawerClose) {\n this.props.onDrawerClose();\n }\n };\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n _onDrawerStateChanged = event => {\n if (this.props.onDrawerStateChanged) {\n this.props.onDrawerStateChanged(\n DRAWER_STATES[event.nativeEvent.drawerState],\n );\n }\n };\n\n /**\n * Opens the drawer.\n */\n openDrawer() {\n Commands.openDrawer(nullthrows(this._nativeRef.current));\n }\n\n /**\n * Closes the drawer.\n */\n closeDrawer() {\n Commands.closeDrawer(nullthrows(this._nativeRef.current));\n }\n\n /**\n * Closing and opening example\n * Note: To access the drawer you have to give it a ref\n *\n * Class component:\n *\n * render () {\n * this.openDrawer = () => {\n * this.refs.DRAWER.openDrawer()\n * }\n * this.closeDrawer = () => {\n * this.refs.DRAWER.closeDrawer()\n * }\n * return (\n * \n * {children}\n * \n * )\n * }\n *\n * Function component:\n *\n * const drawerRef = useRef()\n * const openDrawer = () => {\n * drawerRef.current.openDrawer()\n * }\n * const closeDrawer = () => {\n * drawerRef.current.closeDrawer()\n * }\n * return (\n * \n * {children}\n * \n * )\n */\n\n /**\n * Native methods\n */\n blur() {\n nullthrows(this._nativeRef.current).blur();\n }\n\n focus() {\n nullthrows(this._nativeRef.current).focus();\n }\n\n measure(callback: MeasureOnSuccessCallback) {\n nullthrows(this._nativeRef.current).measure(callback);\n }\n\n measureInWindow(callback: MeasureInWindowOnSuccessCallback) {\n nullthrows(this._nativeRef.current).measureInWindow(callback);\n }\n\n measureLayout(\n relativeToNativeNode: number,\n onSuccess: MeasureLayoutOnSuccessCallback,\n onFail?: () => void,\n ) {\n nullthrows(this._nativeRef.current).measureLayout(\n relativeToNativeNode,\n onSuccess,\n onFail,\n );\n }\n\n setNativeProps(nativeProps: Object) {\n nullthrows(this._nativeRef.current).setNativeProps(nativeProps);\n }\n}\n\nconst styles = StyleSheet.create({\n base: {\n flex: 1,\n elevation: 16,\n },\n mainSubview: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n drawerSubview: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n },\n statusBar: {\n height: StatusBar.currentHeight,\n },\n drawerStatusBar: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n height: StatusBar.currentHeight,\n backgroundColor: 'rgba(0, 0, 0, 0.251)',\n },\n});\n\nmodule.exports = DrawerLayoutAndroid;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\n\nimport processColor from '../../StyleSheet/processColor';\nimport Platform from '../../Utilities/Platform';\nimport NativeStatusBarManagerAndroid from './NativeStatusBarManagerAndroid';\nimport NativeStatusBarManagerIOS from './NativeStatusBarManagerIOS';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\n/**\n * Status bar style\n */\nexport type StatusBarStyle = $Keys<{\n /**\n * Default status bar style (dark for iOS, light for Android)\n */\n default: string,\n /**\n * Dark background, white texts and icons\n */\n 'light-content': string,\n /**\n * Light background, dark texts and icons\n */\n 'dark-content': string,\n ...\n}>;\n\n/**\n * Status bar animation\n */\nexport type StatusBarAnimation = $Keys<{\n /**\n * No animation\n */\n none: string,\n /**\n * Fade animation\n */\n fade: string,\n /**\n * Slide animation\n */\n slide: string,\n ...\n}>;\n\ntype AndroidProps = $ReadOnly<{|\n /**\n * The background color of the status bar.\n * @platform android\n */\n backgroundColor?: ?ColorValue,\n /**\n * If the status bar is translucent.\n * When translucent is set to true, the app will draw under the status bar.\n * This is useful when using a semi transparent status bar color.\n *\n * @platform android\n */\n translucent?: ?boolean,\n|}>;\n\ntype IOSProps = $ReadOnly<{|\n /**\n * If the network activity indicator should be visible.\n *\n * @platform ios\n */\n networkActivityIndicatorVisible?: ?boolean,\n /**\n * The transition effect when showing and hiding the status bar using the `hidden`\n * prop. Defaults to 'fade'.\n *\n * @platform ios\n */\n showHideTransition?: ?('fade' | 'slide' | 'none'),\n|}>;\n\ntype Props = $ReadOnly<{|\n ...AndroidProps,\n ...IOSProps,\n /**\n * If the status bar is hidden.\n */\n hidden?: ?boolean,\n /**\n * If the transition between status bar property changes should be animated.\n * Supported for backgroundColor, barStyle and hidden.\n */\n animated?: ?boolean,\n /**\n * Sets the color of the status bar text.\n */\n barStyle?: ?('default' | 'light-content' | 'dark-content'),\n|}>;\n\n/**\n * Merges the prop stack with the default values.\n */\nfunction mergePropsStack(\n propsStack: Array,\n defaultValues: Object,\n): Object {\n return propsStack.reduce(\n (prev, cur) => {\n for (const prop in cur) {\n if (cur[prop] != null) {\n prev[prop] = cur[prop];\n }\n }\n return prev;\n },\n {...defaultValues},\n );\n}\n\n/**\n * Returns an object to insert in the props stack from the props\n * and the transition/animation info.\n */\nfunction createStackEntry(props: any): any {\n const animated = props.animated ?? false;\n const showHideTransition = props.showHideTransition ?? 'fade';\n return {\n backgroundColor:\n props.backgroundColor != null\n ? {\n value: props.backgroundColor,\n animated,\n }\n : null,\n barStyle:\n props.barStyle != null\n ? {\n value: props.barStyle,\n animated,\n }\n : null,\n translucent: props.translucent,\n hidden:\n props.hidden != null\n ? {\n value: props.hidden,\n animated,\n transition: showHideTransition,\n }\n : null,\n networkActivityIndicatorVisible: props.networkActivityIndicatorVisible,\n };\n}\n\n/**\n * Component to control the app status bar.\n *\n * ### Usage with Navigator\n *\n * It is possible to have multiple `StatusBar` components mounted at the same\n * time. The props will be merged in the order the `StatusBar` components were\n * mounted. One use case is to specify status bar styles per route using `Navigator`.\n *\n * ```\n * \n * \n * \n * \n * \n * }\n * />\n * \n * ```\n *\n * ### Imperative API\n *\n * For cases where using a component is not ideal, there are static methods\n * to manipulate the `StatusBar` display stack. These methods have the same\n * behavior as mounting and unmounting a `StatusBar` component.\n *\n * For example, you can call `StatusBar.pushStackEntry` to update the status bar\n * before launching a third-party native UI component, and then call\n * `StatusBar.popStackEntry` when completed.\n *\n * ```\n * const openThirdPartyBugReporter = async () => {\n * // The bug reporter has a dark background, so we push a new status bar style.\n * const stackEntry = StatusBar.pushStackEntry({barStyle: 'light-content'});\n *\n * // `open` returns a promise that resolves when the UI is dismissed.\n * await BugReporter.open();\n *\n * // Don't forget to call `popStackEntry` when you're done.\n * StatusBar.popStackEntry(stackEntry);\n * };\n * ```\n *\n * There is a legacy imperative API that enables you to manually update the\n * status bar styles. However, the legacy API does not update the internal\n * `StatusBar` display stack, which means that any changes will be overridden\n * whenever a `StatusBar` component is mounted or unmounted.\n *\n * It is strongly advised that you use `pushStackEntry`, `popStackEntry`, or\n * `replaceStackEntry` instead of the static methods beginning with `set`.\n *\n * ### Constants\n *\n * `currentHeight` (Android only) The height of the status bar.\n */\nclass StatusBar extends React.Component {\n static _propsStack: Array = [];\n\n static _defaultProps: any = createStackEntry({\n backgroundColor:\n Platform.OS === 'android'\n ? NativeStatusBarManagerAndroid.getConstants()\n .DEFAULT_BACKGROUND_COLOR ?? 'black'\n : 'black',\n barStyle: 'default',\n translucent: false,\n hidden: false,\n networkActivityIndicatorVisible: false,\n });\n\n // Timer for updating the native module values at the end of the frame.\n // $FlowFixMe[missing-local-annot]\n static _updateImmediate = null;\n\n // The current merged values from the props stack.\n // $FlowFixMe[missing-local-annot]\n static _currentValues = null;\n\n // TODO(janic): Provide a real API to deal with status bar height. See the\n // discussion in #6195.\n /**\n * The current height of the status bar on the device.\n *\n * @platform android\n */\n static currentHeight: ?number =\n Platform.OS === 'android'\n ? NativeStatusBarManagerAndroid.getConstants().HEIGHT\n : null;\n\n // Provide an imperative API as static functions of the component.\n // See the corresponding prop for more detail.\n\n /**\n * Show or hide the status bar\n * @param hidden Hide the status bar.\n * @param animation Optional animation when\n * changing the status bar hidden property.\n */\n static setHidden(hidden: boolean, animation?: StatusBarAnimation) {\n animation = animation || 'none';\n StatusBar._defaultProps.hidden.value = hidden;\n if (Platform.OS === 'ios') {\n NativeStatusBarManagerIOS.setHidden(hidden, animation);\n } else if (Platform.OS === 'android') {\n NativeStatusBarManagerAndroid.setHidden(hidden);\n }\n }\n\n /**\n * Set the status bar style\n * @param style Status bar style to set\n * @param animated Animate the style change.\n */\n static setBarStyle(style: StatusBarStyle, animated?: boolean) {\n animated = animated || false;\n StatusBar._defaultProps.barStyle.value = style;\n if (Platform.OS === 'ios') {\n NativeStatusBarManagerIOS.setStyle(style, animated);\n } else if (Platform.OS === 'android') {\n NativeStatusBarManagerAndroid.setStyle(style);\n }\n }\n\n /**\n * Control the visibility of the network activity indicator\n * @param visible Show the indicator.\n */\n static setNetworkActivityIndicatorVisible(visible: boolean) {\n if (Platform.OS !== 'ios') {\n console.warn(\n '`setNetworkActivityIndicatorVisible` is only available on iOS',\n );\n return;\n }\n StatusBar._defaultProps.networkActivityIndicatorVisible = visible;\n NativeStatusBarManagerIOS.setNetworkActivityIndicatorVisible(visible);\n }\n\n /**\n * Set the background color for the status bar\n * @param color Background color.\n * @param animated Animate the style change.\n */\n static setBackgroundColor(color: string, animated?: boolean): void {\n if (Platform.OS !== 'android') {\n console.warn('`setBackgroundColor` is only available on Android');\n return;\n }\n animated = animated || false;\n StatusBar._defaultProps.backgroundColor.value = color;\n\n const processedColor = processColor(color);\n if (processedColor == null) {\n console.warn(\n `\\`StatusBar.setBackgroundColor\\`: Color ${color} parsed to null or undefined`,\n );\n return;\n }\n invariant(\n typeof processedColor === 'number',\n 'Unexpected color given for StatusBar.setBackgroundColor',\n );\n\n NativeStatusBarManagerAndroid.setColor(processedColor, animated);\n }\n\n /**\n * Control the translucency of the status bar\n * @param translucent Set as translucent.\n */\n static setTranslucent(translucent: boolean) {\n if (Platform.OS !== 'android') {\n console.warn('`setTranslucent` is only available on Android');\n return;\n }\n StatusBar._defaultProps.translucent = translucent;\n NativeStatusBarManagerAndroid.setTranslucent(translucent);\n }\n\n /**\n * Push a StatusBar entry onto the stack.\n * The return value should be passed to `popStackEntry` when complete.\n *\n * @param props Object containing the StatusBar props to use in the stack entry.\n */\n static pushStackEntry(props: any): any {\n const entry = createStackEntry(props);\n StatusBar._propsStack.push(entry);\n StatusBar._updatePropsStack();\n return entry;\n }\n\n /**\n * Pop a StatusBar entry from the stack.\n *\n * @param entry Entry returned from `pushStackEntry`.\n */\n static popStackEntry(entry: any) {\n const index = StatusBar._propsStack.indexOf(entry);\n if (index !== -1) {\n StatusBar._propsStack.splice(index, 1);\n }\n StatusBar._updatePropsStack();\n }\n\n /**\n * Replace an existing StatusBar stack entry with new props.\n *\n * @param entry Entry returned from `pushStackEntry` to replace.\n * @param props Object containing the StatusBar props to use in the replacement stack entry.\n */\n static replaceStackEntry(entry: any, props: any): any {\n const newEntry = createStackEntry(props);\n const index = StatusBar._propsStack.indexOf(entry);\n if (index !== -1) {\n StatusBar._propsStack[index] = newEntry;\n }\n StatusBar._updatePropsStack();\n return newEntry;\n }\n\n // $FlowFixMe[missing-local-annot]\n _stackEntry = null;\n\n componentDidMount() {\n // Every time a StatusBar component is mounted, we push it's prop to a stack\n // and always update the native status bar with the props from the top of then\n // stack. This allows having multiple StatusBar components and the one that is\n // added last or is deeper in the view hierarchy will have priority.\n this._stackEntry = StatusBar.pushStackEntry(this.props);\n }\n\n componentWillUnmount() {\n // When a StatusBar is unmounted, remove itself from the stack and update\n // the native bar with the next props.\n StatusBar.popStackEntry(this._stackEntry);\n }\n\n componentDidUpdate() {\n this._stackEntry = StatusBar.replaceStackEntry(\n this._stackEntry,\n this.props,\n );\n }\n\n /**\n * Updates the native status bar with the props from the stack.\n */\n static _updatePropsStack = () => {\n // Send the update to the native module only once at the end of the frame.\n clearImmediate(StatusBar._updateImmediate);\n StatusBar._updateImmediate = setImmediate(() => {\n const oldProps = StatusBar._currentValues;\n const mergedProps = mergePropsStack(\n StatusBar._propsStack,\n StatusBar._defaultProps,\n );\n\n // Update the props that have changed using the merged values from the props stack.\n if (Platform.OS === 'ios') {\n if (\n !oldProps ||\n oldProps.barStyle.value !== mergedProps.barStyle.value\n ) {\n NativeStatusBarManagerIOS.setStyle(\n mergedProps.barStyle.value,\n mergedProps.barStyle.animated || false,\n );\n }\n if (!oldProps || oldProps.hidden.value !== mergedProps.hidden.value) {\n NativeStatusBarManagerIOS.setHidden(\n mergedProps.hidden.value,\n mergedProps.hidden.animated\n ? mergedProps.hidden.transition\n : 'none',\n );\n }\n\n if (\n !oldProps ||\n oldProps.networkActivityIndicatorVisible !==\n mergedProps.networkActivityIndicatorVisible\n ) {\n NativeStatusBarManagerIOS.setNetworkActivityIndicatorVisible(\n mergedProps.networkActivityIndicatorVisible,\n );\n }\n } else if (Platform.OS === 'android') {\n //todo(T60684787): Add back optimization to only update bar style and\n //background color if the new value is different from the old value.\n NativeStatusBarManagerAndroid.setStyle(mergedProps.barStyle.value);\n const processedColor = processColor(mergedProps.backgroundColor.value);\n if (processedColor == null) {\n console.warn(\n `\\`StatusBar._updatePropsStack\\`: Color ${mergedProps.backgroundColor.value} parsed to null or undefined`,\n );\n } else {\n invariant(\n typeof processedColor === 'number',\n 'Unexpected color given in StatusBar._updatePropsStack',\n );\n NativeStatusBarManagerAndroid.setColor(\n processedColor,\n mergedProps.backgroundColor.animated,\n );\n }\n if (!oldProps || oldProps.hidden.value !== mergedProps.hidden.value) {\n NativeStatusBarManagerAndroid.setHidden(mergedProps.hidden.value);\n }\n // Activities are not translucent by default, so always set if true.\n if (\n !oldProps ||\n oldProps.translucent !== mergedProps.translucent ||\n mergedProps.translucent\n ) {\n NativeStatusBarManagerAndroid.setTranslucent(mergedProps.translucent);\n }\n }\n // Update the current prop values.\n StatusBar._currentValues = mergedProps;\n });\n };\n\n render(): React.Node {\n return null;\n }\n}\n\nmodule.exports = StatusBar;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n +HEIGHT: number,\n +DEFAULT_BACKGROUND_COLOR: number,\n |};\n +setColor: (color: number, animated: boolean) => void;\n +setTranslucent: (translucent: boolean) => void;\n\n /**\n * - statusBarStyles can be:\n * - 'default'\n * - 'dark-content'\n */\n +setStyle: (statusBarStyle?: ?string) => void;\n +setHidden: (hidden: boolean) => void;\n}\n\nconst NativeModule = TurboModuleRegistry.getEnforcing('StatusBarManager');\nlet constants = null;\n\nconst NativeStatusBarManager = {\n getConstants(): {|\n +HEIGHT: number,\n +DEFAULT_BACKGROUND_COLOR?: number,\n |} {\n if (constants == null) {\n constants = NativeModule.getConstants();\n }\n return constants;\n },\n\n setColor(color: number, animated: boolean): void {\n NativeModule.setColor(color, animated);\n },\n\n setTranslucent(translucent: boolean): void {\n NativeModule.setTranslucent(translucent);\n },\n\n /**\n * - statusBarStyles can be:\n * - 'default'\n * - 'dark-content'\n */\n setStyle(statusBarStyle?: ?string): void {\n NativeModule.setStyle(statusBarStyle);\n },\n\n setHidden(hidden: boolean): void {\n NativeModule.setHidden(hidden);\n },\n};\n\nexport default NativeStatusBarManager;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n +HEIGHT: number,\n +DEFAULT_BACKGROUND_COLOR?: number,\n |};\n\n // TODO(T47754272) Can we remove this method?\n +getHeight: (callback: (result: {|height: number|}) => void) => void;\n +setNetworkActivityIndicatorVisible: (visible: boolean) => void;\n +addListener: (eventType: string) => void;\n +removeListeners: (count: number) => void;\n\n /**\n * - statusBarStyles can be:\n * - 'default'\n * - 'dark-content'\n * - 'light-content'\n */\n +setStyle: (statusBarStyle?: ?string, animated: boolean) => void;\n /**\n * - withAnimation can be: 'none' | 'fade' | 'slide'\n */\n +setHidden: (hidden: boolean, withAnimation: string) => void;\n}\n\nconst NativeModule = TurboModuleRegistry.getEnforcing('StatusBarManager');\nlet constants = null;\n\nconst NativeStatusBarManager = {\n getConstants(): {|\n +HEIGHT: number,\n +DEFAULT_BACKGROUND_COLOR?: number,\n |} {\n if (constants == null) {\n constants = NativeModule.getConstants();\n }\n return constants;\n },\n\n // TODO(T47754272) Can we remove this method?\n getHeight(callback: (result: {|height: number|}) => void): void {\n NativeModule.getHeight(callback);\n },\n\n setNetworkActivityIndicatorVisible(visible: boolean): void {\n NativeModule.setNetworkActivityIndicatorVisible(visible);\n },\n\n addListener(eventType: string): void {\n NativeModule.addListener(eventType);\n },\n\n removeListeners(count: number): void {\n NativeModule.removeListeners(count);\n },\n\n /**\n * - statusBarStyles can be:\n * - 'default'\n * - 'dark-content'\n * - 'light-content'\n */\n setStyle(statusBarStyle?: ?string, animated: boolean): void {\n NativeModule.setStyle(statusBarStyle, animated);\n },\n\n /**\n * - withAnimation can be: 'none' | 'fade' | 'slide'\n */\n setHidden(hidden: boolean, withAnimation: string): void {\n NativeModule.setHidden(hidden, withAnimation);\n },\n};\n\nexport default NativeStatusBarManager;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n DirectEventHandler,\n Float,\n Int32,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\nimport * as React from 'react';\n\ntype DrawerStateEvent = $ReadOnly<{|\n drawerState: Int32,\n|}>;\n\ntype DrawerSlideEvent = $ReadOnly<{|\n offset: Float,\n|}>;\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n /**\n * Determines whether the keyboard gets dismissed in response to a drag.\n * - 'none' (the default), drags do not dismiss the keyboard.\n * - 'on-drag', the keyboard is dismissed when a drag begins.\n */\n keyboardDismissMode?: WithDefault<'none' | 'on-drag', 'none'>,\n\n /**\n * Specifies the background color of the drawer. The default value is white.\n * If you want to set the opacity of the drawer, use rgba. Example:\n *\n * ```\n * return (\n * \n * \n * );\n * ```\n */\n drawerBackgroundColor: ColorValue,\n\n /**\n * Specifies the side of the screen from which the drawer will slide in.\n */\n drawerPosition?: WithDefault<'left' | 'right', 'left'>,\n\n /**\n * Specifies the width of the drawer, more precisely the width of the view that be pulled in\n * from the edge of the window.\n */\n\n drawerWidth?: WithDefault,\n\n /**\n * Specifies the lock mode of the drawer. The drawer can be locked in 3 states:\n * - unlocked (default), meaning that the drawer will respond (open/close) to touch gestures.\n * - locked-closed, meaning that the drawer will stay closed and not respond to gestures.\n * - locked-open, meaning that the drawer will stay opened and not respond to gestures.\n * The drawer may still be opened and closed programmatically (`openDrawer`/`closeDrawer`).\n */\n drawerLockMode?: WithDefault<\n 'unlocked' | 'locked-closed' | 'locked-open',\n 'unlocked',\n >,\n\n /**\n * Function called whenever there is an interaction with the navigation view.\n */\n onDrawerSlide?: ?DirectEventHandler,\n\n /**\n * Function called when the drawer state has changed. The drawer can be in 3 states:\n * - Idle, meaning there is no interaction with the navigation view happening at the time\n * - Dragging, meaning there is currently an interaction with the navigation view\n * - Settling, meaning that there was an interaction with the navigation view, and the\n * navigation view is now finishing its closing or opening animation\n */\n onDrawerStateChanged?: ?DirectEventHandler,\n\n /**\n * Function called whenever the navigation view has been opened.\n */\n onDrawerOpen?: ?DirectEventHandler,\n\n /**\n * Function called whenever the navigation view has been closed.\n */\n onDrawerClose?: ?DirectEventHandler,\n\n /**\n * Make the drawer take the entire screen and draw the background of the\n * status bar to allow it to open over the status bar. It will only have an\n * effect on API 21+.\n */\n statusBarBackgroundColor?: ?ColorValue,\n|}>;\n\ntype NativeType = HostComponent;\n\ninterface NativeCommands {\n +openDrawer: (viewRef: React.ElementRef) => void;\n +closeDrawer: (viewRef: React.ElementRef) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['openDrawer', 'closeDrawer'],\n});\n\nexport default (codegenNativeComponent(\n 'AndroidDrawerLayout',\n): NativeType);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {ViewProps} from '../Components/View/ViewPropTypes';\nimport type {HostComponent} from '../Renderer/shims/ReactNativeTypes';\nimport type {ImageBackgroundProps} from './ImageProps';\n\nimport View from '../Components/View/View';\nimport flattenStyle from '../StyleSheet/flattenStyle';\nimport StyleSheet from '../StyleSheet/StyleSheet';\nimport Image from './Image';\nimport * as React from 'react';\n\n/**\n * Very simple drop-in replacement for which supports nesting views.\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react';\n * import { AppRegistry, View, ImageBackground, Text } from 'react-native';\n *\n * class DisplayAnImageBackground extends Component {\n * render() {\n * return (\n * \n * React\n * \n * );\n * }\n * }\n *\n * // App registration and rendering\n * AppRegistry.registerComponent('DisplayAnImageBackground', () => DisplayAnImageBackground);\n * ```\n */\nclass ImageBackground extends React.Component {\n setNativeProps(props: Object) {\n // Work-around flow\n const viewRef = this._viewRef;\n if (viewRef) {\n viewRef.setNativeProps(props);\n }\n }\n\n _viewRef: ?React.ElementRef = null;\n\n _captureRef = (\n ref: null | React$ElementRef<\n React$AbstractComponent<\n ViewProps,\n React.ElementRef>,\n >,\n >,\n ) => {\n this._viewRef = ref;\n };\n\n render(): React.Node {\n const {\n children,\n style,\n imageStyle,\n imageRef,\n importantForAccessibility,\n ...props\n } = this.props;\n\n // $FlowFixMe[underconstrained-implicit-instantiation]\n const flattenedStyle = flattenStyle(style);\n return (\n \n overwrites width and height styles\n // (which is not quite correct), and these styles conflict with explicitly set styles\n // of and with our internal layout model here.\n // So, we have to proxy/reapply these styles explicitly for actual component.\n // This workaround should be removed after implementing proper support of\n // intrinsic content size of the .\n width: flattenedStyle?.width,\n height: flattenedStyle?.height,\n },\n imageStyle,\n ]}\n ref={imageRef}\n />\n {children}\n \n );\n }\n}\n\nmodule.exports = ImageBackground;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport StyleSheet, {\n type ColorValue,\n type ViewStyleProp,\n} from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport RCTInputAccessoryViewNativeComponent from './RCTInputAccessoryViewNativeComponent';\nimport * as React from 'react';\n\n/**\n * Note: iOS only\n *\n * A component which enables customization of the keyboard input accessory view.\n * The input accessory view is displayed above the keyboard whenever a TextInput\n * has focus. This component can be used to create custom toolbars.\n *\n * To use this component wrap your custom toolbar with the\n * InputAccessoryView component, and set a nativeID. Then, pass that nativeID\n * as the inputAccessoryViewID of whatever TextInput you desire. A simple\n * example:\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react';\n * import { AppRegistry, TextInput, InputAccessoryView, Button } from 'react-native';\n *\n * export default class UselessTextInput extends Component {\n * constructor(props) {\n * super(props);\n * this.state = {text: 'Placeholder Text'};\n * }\n *\n * render() {\n * const inputAccessoryViewID = \"uniqueID\";\n * return (\n * \n * \n * this.setState({text})}\n * value={this.state.text}\n * />\n * \n * \n * this.setState({text: 'Placeholder Text'})}\n * title=\"Reset Text\"\n * />\n * \n * \n * );\n * }\n * }\n *\n * // skip this line if using Create React Native App\n * AppRegistry.registerComponent('AwesomeProject', () => UselessTextInput);\n * ```\n *\n * This component can also be used to create sticky text inputs (text inputs\n * which are anchored to the top of the keyboard). To do this, wrap a\n * TextInput with the InputAccessoryView component, and don't set a nativeID.\n * For an example, look at InputAccessoryViewExample.js in RNTester.\n */\n\ntype Props = $ReadOnly<{|\n +children: React.Node,\n /**\n * An ID which is used to associate this `InputAccessoryView` to\n * specified TextInput(s).\n */\n nativeID?: ?string,\n style?: ?ViewStyleProp,\n backgroundColor?: ?ColorValue,\n|}>;\n\nclass InputAccessoryView extends React.Component {\n render(): React.Node {\n if (Platform.OS === 'ios') {\n if (React.Children.count(this.props.children) === 0) {\n return null;\n }\n\n return (\n \n {this.props.children}\n \n );\n } else {\n console.warn(' is only supported on iOS.');\n return null;\n }\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n position: 'absolute',\n },\n});\n\nmodule.exports = InputAccessoryView;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n backgroundColor?: ?ColorValue,\n|}>;\n\nexport default (codegenNativeComponent('InputAccessory', {\n interfaceOnly: true,\n paperComponentName: 'RCTInputAccessoryView',\n excludedPlatforms: ['android'],\n}): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {ViewStyleProp} from '../../StyleSheet/StyleSheet';\nimport type {\n ViewLayout,\n ViewLayoutEvent,\n ViewProps,\n} from '../View/ViewPropTypes';\nimport type {KeyboardEvent, KeyboardMetrics} from './Keyboard';\n\nimport LayoutAnimation from '../../LayoutAnimation/LayoutAnimation';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport {type EventSubscription} from '../../vendor/emitter/EventEmitter';\nimport AccessibilityInfo from '../AccessibilityInfo/AccessibilityInfo';\nimport View from '../View/View';\nimport Keyboard from './Keyboard';\nimport * as React from 'react';\n\ntype Props = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * Specify how to react to the presence of the keyboard.\n */\n behavior?: ?('height' | 'position' | 'padding'),\n\n /**\n * Style of the content container when `behavior` is 'position'.\n */\n contentContainerStyle?: ?ViewStyleProp,\n\n /**\n * Controls whether this `KeyboardAvoidingView` instance should take effect.\n * This is useful when more than one is on the screen. Defaults to true.\n */\n enabled?: ?boolean,\n\n /**\n * Distance between the top of the user screen and the React Native view. This\n * may be non-zero in some cases. Defaults to 0.\n */\n keyboardVerticalOffset?: number,\n|}>;\n\ntype State = {|\n bottom: number,\n|};\n\n/**\n * View that moves out of the way when the keyboard appears by automatically\n * adjusting its height, position, or bottom padding.\n */\nclass KeyboardAvoidingView extends React.Component {\n _frame: ?ViewLayout = null;\n _keyboardEvent: ?KeyboardEvent = null;\n _subscriptions: Array = [];\n viewRef: {current: React.ElementRef | null, ...};\n _initialFrameHeight: number = 0;\n\n constructor(props: Props) {\n super(props);\n this.state = {bottom: 0};\n this.viewRef = React.createRef();\n }\n\n async _relativeKeyboardHeight(\n keyboardFrame: KeyboardMetrics,\n ): Promise {\n const frame = this._frame;\n if (!frame || !keyboardFrame) {\n return 0;\n }\n\n // On iOS when Prefer Cross-Fade Transitions is enabled, the keyboard position\n // & height is reported differently (0 instead of Y position value matching height of frame)\n if (\n Platform.OS === 'ios' &&\n keyboardFrame.screenY === 0 &&\n (await AccessibilityInfo.prefersCrossFadeTransitions())\n ) {\n return 0;\n }\n\n const keyboardY =\n keyboardFrame.screenY - (this.props.keyboardVerticalOffset ?? 0);\n\n if (this.props.behavior === 'height') {\n return Math.max(\n this.state.bottom + frame.y + frame.height - keyboardY,\n 0,\n );\n }\n\n // Calculate the displacement needed for the view such that it\n // no longer overlaps with the keyboard\n return Math.max(frame.y + frame.height - keyboardY, 0);\n }\n\n _onKeyboardChange = (event: ?KeyboardEvent) => {\n this._keyboardEvent = event;\n // $FlowFixMe[unused-promise]\n this._updateBottomIfNecessary();\n };\n\n _onLayout = async (event: ViewLayoutEvent) => {\n const wasFrameNull = this._frame == null;\n this._frame = event.nativeEvent.layout;\n if (!this._initialFrameHeight) {\n // save the initial frame height, before the keyboard is visible\n this._initialFrameHeight = this._frame.height;\n }\n\n if (wasFrameNull) {\n await this._updateBottomIfNecessary();\n }\n\n if (this.props.onLayout) {\n this.props.onLayout(event);\n }\n };\n\n _updateBottomIfNecessary = async () => {\n if (this._keyboardEvent == null) {\n this.setState({bottom: 0});\n return;\n }\n\n const {duration, easing, endCoordinates} = this._keyboardEvent;\n const height = await this._relativeKeyboardHeight(endCoordinates);\n\n if (this.state.bottom === height) {\n return;\n }\n\n if (duration && easing) {\n LayoutAnimation.configureNext({\n // We have to pass the duration equal to minimal accepted duration defined here: RCTLayoutAnimation.m\n duration: duration > 10 ? duration : 10,\n update: {\n duration: duration > 10 ? duration : 10,\n type: LayoutAnimation.Types[easing] || 'keyboard',\n },\n });\n }\n this.setState({bottom: height});\n };\n\n componentDidMount(): void {\n if (Platform.OS === 'ios') {\n this._subscriptions = [\n Keyboard.addListener('keyboardWillChangeFrame', this._onKeyboardChange),\n ];\n } else {\n this._subscriptions = [\n Keyboard.addListener('keyboardDidHide', this._onKeyboardChange),\n Keyboard.addListener('keyboardDidShow', this._onKeyboardChange),\n ];\n }\n }\n\n componentWillUnmount(): void {\n this._subscriptions.forEach(subscription => {\n subscription.remove();\n });\n }\n\n render(): React.Node {\n const {\n behavior,\n children,\n contentContainerStyle,\n enabled = true,\n // eslint-disable-next-line no-unused-vars\n keyboardVerticalOffset = 0,\n style,\n onLayout,\n ...props\n } = this.props;\n const bottomHeight = enabled === true ? this.state.bottom : 0;\n switch (behavior) {\n case 'height':\n let heightStyle;\n if (this._frame != null && this.state.bottom > 0) {\n // Note that we only apply a height change when there is keyboard present,\n // i.e. this.state.bottom is greater than 0. If we remove that condition,\n // this.frame.height will never go back to its original value.\n // When height changes, we need to disable flex.\n heightStyle = {\n height: this._initialFrameHeight - bottomHeight,\n flex: 0,\n };\n }\n return (\n \n {children}\n \n );\n\n case 'position':\n return (\n \n \n {children}\n \n \n );\n\n case 'padding':\n return (\n \n {children}\n \n );\n\n default:\n return (\n \n {children}\n \n );\n }\n }\n}\n\nexport default KeyboardAvoidingView;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {ViewProps} from '../Components/View/ViewPropTypes';\nimport type {RootTag} from '../ReactNative/RootTag';\nimport type {DirectEventHandler} from '../Types/CodegenTypes';\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport {type EventSubscription} from '../vendor/emitter/EventEmitter';\nimport ModalInjection from './ModalInjection';\nimport NativeModalManager from './NativeModalManager';\nimport RCTModalHostView from './RCTModalHostViewNativeComponent';\nimport {VirtualizedListContextResetter} from '@react-native/virtualized-lists';\n\nconst ScrollView = require('../Components/ScrollView/ScrollView');\nconst View = require('../Components/View/View');\nconst AppContainer = require('../ReactNative/AppContainer');\nconst I18nManager = require('../ReactNative/I18nManager');\nconst {RootTagContext} = require('../ReactNative/RootTag');\nconst StyleSheet = require('../StyleSheet/StyleSheet');\nconst Platform = require('../Utilities/Platform');\nconst React = require('react');\n\ntype ModalEventDefinitions = {\n modalDismissed: [{modalID: number}],\n};\n\nconst ModalEventEmitter =\n Platform.OS === 'ios' && NativeModalManager != null\n ? new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeModalManager,\n )\n : null;\n\n/**\n * The Modal component is a simple way to present content above an enclosing view.\n *\n * See https://reactnative.dev/docs/modal\n */\n\n// In order to route onDismiss callbacks, we need to uniquely identifier each\n// on screen. There can be different ones, either nested or as siblings.\n// We cannot pass the onDismiss callback to native as the view will be\n// destroyed before the callback is fired.\nlet uniqueModalIdentifier = 0;\n\ntype OrientationChangeEvent = $ReadOnly<{|\n orientation: 'portrait' | 'landscape',\n|}>;\n\nexport type Props = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * The `animationType` prop controls how the modal animates.\n *\n * See https://reactnative.dev/docs/modal#animationtype\n */\n animationType?: ?('none' | 'slide' | 'fade'),\n\n /**\n * The `presentationStyle` prop controls how the modal appears.\n *\n * See https://reactnative.dev/docs/modal#presentationstyle\n */\n presentationStyle?: ?(\n | 'fullScreen'\n | 'pageSheet'\n | 'formSheet'\n | 'overFullScreen'\n ),\n\n /**\n * The `transparent` prop determines whether your modal will fill the\n * entire view.\n *\n * See https://reactnative.dev/docs/modal#transparent\n */\n transparent?: ?boolean,\n\n /**\n * The `statusBarTranslucent` prop determines whether your modal should go under\n * the system statusbar.\n *\n * See https://reactnative.dev/docs/modal.html#statusbartranslucent-android\n */\n statusBarTranslucent?: ?boolean,\n\n /**\n * The `hardwareAccelerated` prop controls whether to force hardware\n * acceleration for the underlying window.\n *\n * This prop works only on Android.\n *\n * See https://reactnative.dev/docs/modal#hardwareaccelerated\n */\n hardwareAccelerated?: ?boolean,\n\n /**\n * The `visible` prop determines whether your modal is visible.\n *\n * See https://reactnative.dev/docs/modal#visible\n */\n visible?: ?boolean,\n\n /**\n * The `onRequestClose` callback is called when the user taps the hardware\n * back button on Android or the menu button on Apple TV.\n *\n * This is required on Apple TV and Android.\n *\n * See https://reactnative.dev/docs/modal#onrequestclose\n */\n onRequestClose?: ?DirectEventHandler,\n\n /**\n * The `onShow` prop allows passing a function that will be called once the\n * modal has been shown.\n *\n * See https://reactnative.dev/docs/modal#onshow\n */\n onShow?: ?DirectEventHandler,\n\n /**\n * The `onDismiss` prop allows passing a function that will be called once\n * the modal has been dismissed.\n *\n * See https://reactnative.dev/docs/modal#ondismiss\n */\n onDismiss?: ?() => mixed,\n\n /**\n * The `supportedOrientations` prop allows the modal to be rotated to any of the specified orientations.\n *\n * See https://reactnative.dev/docs/modal#supportedorientations\n */\n supportedOrientations?: ?$ReadOnlyArray<\n | 'portrait'\n | 'portrait-upside-down'\n | 'landscape'\n | 'landscape-left'\n | 'landscape-right',\n >,\n\n /**\n * The `onOrientationChange` callback is called when the orientation changes while the modal is being displayed.\n *\n * See https://reactnative.dev/docs/modal#onorientationchange\n */\n onOrientationChange?: ?DirectEventHandler,\n|}>;\n\nfunction confirmProps(props: Props) {\n if (__DEV__) {\n if (\n props.presentationStyle &&\n props.presentationStyle !== 'overFullScreen' &&\n props.transparent === true\n ) {\n console.warn(\n `Modal with '${props.presentationStyle}' presentation style and 'transparent' value is not supported.`,\n );\n }\n }\n}\n\nclass Modal extends React.Component {\n static defaultProps: {|hardwareAccelerated: boolean, visible: boolean|} = {\n visible: true,\n hardwareAccelerated: false,\n };\n\n static contextType: React.Context = RootTagContext;\n\n _identifier: number;\n _eventSubscription: ?EventSubscription;\n\n constructor(props: Props) {\n super(props);\n if (__DEV__) {\n confirmProps(props);\n }\n this._identifier = uniqueModalIdentifier++;\n }\n\n componentDidMount() {\n // 'modalDismissed' is for the old renderer in iOS only\n if (ModalEventEmitter) {\n this._eventSubscription = ModalEventEmitter.addListener(\n 'modalDismissed',\n event => {\n if (event.modalID === this._identifier && this.props.onDismiss) {\n this.props.onDismiss();\n }\n },\n );\n }\n }\n\n componentWillUnmount() {\n if (this._eventSubscription) {\n this._eventSubscription.remove();\n }\n }\n\n componentDidUpdate() {\n if (__DEV__) {\n confirmProps(this.props);\n }\n }\n\n render(): React.Node {\n if (this.props.visible !== true) {\n return null;\n }\n\n const containerStyles = {\n backgroundColor:\n this.props.transparent === true ? 'transparent' : 'white',\n };\n\n let animationType = this.props.animationType || 'none';\n\n let presentationStyle = this.props.presentationStyle;\n if (!presentationStyle) {\n presentationStyle = 'fullScreen';\n if (this.props.transparent === true) {\n presentationStyle = 'overFullScreen';\n }\n }\n\n const innerChildren = __DEV__ ? (\n {this.props.children}\n ) : (\n this.props.children\n );\n\n return (\n {\n if (this.props.onDismiss) {\n this.props.onDismiss();\n }\n }}\n visible={this.props.visible}\n statusBarTranslucent={this.props.statusBarTranslucent}\n identifier={this._identifier}\n style={styles.modal}\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n onStartShouldSetResponder={this._shouldSetResponder}\n supportedOrientations={this.props.supportedOrientations}\n onOrientationChange={this.props.onOrientationChange}\n testID={this.props.testID}>\n \n \n \n {innerChildren}\n \n \n \n \n );\n }\n\n // We don't want any responder events bubbling out of the modal.\n _shouldSetResponder(): boolean {\n return true;\n }\n}\n\nconst side = I18nManager.getConstants().isRTL ? 'right' : 'left';\nconst styles = StyleSheet.create({\n modal: {\n position: 'absolute',\n },\n container: {\n /* $FlowFixMe[invalid-computed-prop] (>=0.111.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.111 was deployed. To see\n * the error, delete this comment and run Flow. */\n [side]: 0,\n top: 0,\n flex: 1,\n },\n});\n\nconst ExportedModal: React.AbstractComponent<\n React.ElementConfig,\n> = ModalInjection.unstable_Modal ?? Modal;\n\nmodule.exports = ExportedModal;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport typeof Modal from './Modal';\n\nexport default {\n unstable_Modal: (null: ?Modal),\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n // RCTEventEmitter\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.get('ModalManager'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {ViewProps} from '../Components/View/ViewPropTypes';\nimport type {HostComponent} from '../Renderer/shims/ReactNativeTypes';\nimport type {\n DirectEventHandler,\n Int32,\n WithDefault,\n} from '../Types/CodegenTypes';\n\nimport codegenNativeComponent from '../Utilities/codegenNativeComponent';\n\ntype OrientationChangeEvent = $ReadOnly<{|\n orientation: 'portrait' | 'landscape',\n|}>;\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * The `animationType` prop controls how the modal animates.\n *\n * See https://reactnative.dev/docs/modal#animationtype\n */\n animationType?: WithDefault<'none' | 'slide' | 'fade', 'none'>,\n\n /**\n * The `presentationStyle` prop controls how the modal appears.\n *\n * See https://reactnative.dev/docs/modal#presentationstyle\n */\n presentationStyle?: WithDefault<\n 'fullScreen' | 'pageSheet' | 'formSheet' | 'overFullScreen',\n 'fullScreen',\n >,\n\n /**\n * The `transparent` prop determines whether your modal will fill the\n * entire view.\n *\n * See https://reactnative.dev/docs/modal#transparent\n */\n transparent?: WithDefault,\n\n /**\n * The `statusBarTranslucent` prop determines whether your modal should go under\n * the system statusbar.\n *\n * See https://reactnative.dev/docs/modal#statusBarTranslucent\n */\n statusBarTranslucent?: WithDefault,\n\n /**\n * The `hardwareAccelerated` prop controls whether to force hardware\n * acceleration for the underlying window.\n *\n * See https://reactnative.dev/docs/modal#hardwareaccelerated\n */\n hardwareAccelerated?: WithDefault,\n\n /**\n * The `onRequestClose` callback is called when the user taps the hardware\n * back button on Android or the menu button on Apple TV.\n *\n * This is required on Apple TV and Android.\n *\n * See https://reactnative.dev/docs/modal#onrequestclose\n */\n onRequestClose?: ?DirectEventHandler,\n\n /**\n * The `onShow` prop allows passing a function that will be called once the\n * modal has been shown.\n *\n * See https://reactnative.dev/docs/modal#onshow\n */\n onShow?: ?DirectEventHandler,\n\n /**\n * The `onDismiss` prop allows passing a function that will be called once\n * the modal has been dismissed.\n *\n * See https://reactnative.dev/docs/modal#ondismiss\n */\n onDismiss?: ?DirectEventHandler,\n\n /**\n * The `visible` prop determines whether your modal is visible.\n *\n * See https://reactnative.dev/docs/modal#visible\n */\n visible?: WithDefault,\n\n /**\n * Deprecated. Use the `animationType` prop instead.\n */\n animated?: WithDefault,\n\n /**\n * The `supportedOrientations` prop allows the modal to be rotated to any of the specified orientations.\n *\n * See https://reactnative.dev/docs/modal#supportedorientations\n */\n supportedOrientations?: WithDefault<\n $ReadOnlyArray<\n | 'portrait'\n | 'portrait-upside-down'\n | 'landscape'\n | 'landscape-left'\n | 'landscape-right',\n >,\n 'portrait',\n >,\n\n /**\n * The `onOrientationChange` callback is called when the orientation changes while the modal is being displayed.\n *\n * See https://reactnative.dev/docs/modal#onorientationchange\n */\n onOrientationChange?: ?DirectEventHandler,\n\n /**\n * The `identifier` is the unique number for identifying Modal components.\n */\n identifier?: WithDefault,\n|}>;\n\nexport default (codegenNativeComponent('ModalHostView', {\n interfaceOnly: true,\n paperComponentName: 'RCTModalHostView',\n}): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport NativeI18nManager from './NativeI18nManager';\n\nconst i18nConstants: {|\n doLeftAndRightSwapInRTL: boolean,\n isRTL: boolean,\n localeIdentifier?: ?string,\n|} = getI18nManagerConstants();\n\nfunction getI18nManagerConstants() {\n if (NativeI18nManager) {\n const {isRTL, doLeftAndRightSwapInRTL, localeIdentifier} =\n NativeI18nManager.getConstants();\n return {isRTL, doLeftAndRightSwapInRTL, localeIdentifier};\n }\n\n return {\n isRTL: false,\n doLeftAndRightSwapInRTL: true,\n };\n}\n\nmodule.exports = {\n getConstants: (): {|\n doLeftAndRightSwapInRTL: boolean,\n isRTL: boolean,\n localeIdentifier: ?string,\n |} => {\n return i18nConstants;\n },\n\n allowRTL: (shouldAllow: boolean) => {\n if (!NativeI18nManager) {\n return;\n }\n\n NativeI18nManager.allowRTL(shouldAllow);\n },\n\n forceRTL: (shouldForce: boolean) => {\n if (!NativeI18nManager) {\n return;\n }\n\n NativeI18nManager.forceRTL(shouldForce);\n },\n\n swapLeftAndRightInRTL: (flipStyles: boolean) => {\n if (!NativeI18nManager) {\n return;\n }\n\n NativeI18nManager.swapLeftAndRightInRTL(flipStyles);\n },\n\n isRTL: i18nConstants.isRTL,\n doLeftAndRightSwapInRTL: i18nConstants.doLeftAndRightSwapInRTL,\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n isRTL: boolean,\n doLeftAndRightSwapInRTL: boolean,\n localeIdentifier: ?string,\n |};\n allowRTL: (allowRTL: boolean) => void;\n forceRTL: (forceRTL: boolean) => void;\n swapLeftAndRightInRTL: (flipStyles: boolean) => void;\n}\n\nexport default (TurboModuleRegistry.get('I18nManager'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n LayoutEvent,\n MouseEvent,\n PressEvent,\n} from '../../Types/CoreEventTypes';\nimport type {\n AccessibilityActionEvent,\n AccessibilityActionInfo,\n AccessibilityRole,\n AccessibilityState,\n AccessibilityValue,\n} from '../View/ViewAccessibility';\n\nimport {PressabilityDebugView} from '../../Pressability/PressabilityDebug';\nimport usePressability from '../../Pressability/usePressability';\nimport {type RectOrSize} from '../../StyleSheet/Rect';\nimport View from '../View/View';\nimport useAndroidRippleForView, {\n type RippleConfig,\n} from './useAndroidRippleForView';\nimport * as React from 'react';\nimport {useImperativeHandle, useMemo, useRef, useState} from 'react';\n\ntype ViewStyleProp = $ElementType, 'style'>;\n\nexport type StateCallbackType = $ReadOnly<{|\n pressed: boolean,\n|}>;\n\ntype Props = $ReadOnly<{|\n /**\n * Accessibility.\n */\n accessibilityActions?: ?$ReadOnlyArray,\n accessibilityElementsHidden?: ?boolean,\n accessibilityHint?: ?Stringish,\n accessibilityLanguage?: ?Stringish,\n accessibilityIgnoresInvertColors?: ?boolean,\n accessibilityLabel?: ?Stringish,\n accessibilityLiveRegion?: ?('none' | 'polite' | 'assertive'),\n accessibilityRole?: ?AccessibilityRole,\n accessibilityState?: ?AccessibilityState,\n accessibilityValue?: ?AccessibilityValue,\n 'aria-valuemax'?: AccessibilityValue['max'],\n 'aria-valuemin'?: AccessibilityValue['min'],\n 'aria-valuenow'?: AccessibilityValue['now'],\n 'aria-valuetext'?: AccessibilityValue['text'],\n accessibilityViewIsModal?: ?boolean,\n 'aria-modal'?: ?boolean,\n accessible?: ?boolean,\n\n /**\n * alias for accessibilityState\n *\n * see https://reactnative.dev/docs/accessibility#accessibilitystate\n */\n 'aria-busy'?: ?boolean,\n 'aria-checked'?: ?boolean | 'mixed',\n 'aria-disabled'?: ?boolean,\n 'aria-expanded'?: ?boolean,\n 'aria-selected'?: ?boolean,\n /**\n * A value indicating whether the accessibility elements contained within\n * this accessibility element are hidden.\n */\n 'aria-hidden'?: ?boolean,\n 'aria-live'?: ?('polite' | 'assertive' | 'off'),\n focusable?: ?boolean,\n importantForAccessibility?: ?('auto' | 'yes' | 'no' | 'no-hide-descendants'),\n onAccessibilityAction?: ?(event: AccessibilityActionEvent) => mixed,\n\n /**\n * Whether a press gesture can be interrupted by a parent gesture such as a\n * scroll event. Defaults to true.\n */\n cancelable?: ?boolean,\n\n /**\n * Either children or a render prop that receives a boolean reflecting whether\n * the component is currently pressed.\n */\n children: React.Node | ((state: StateCallbackType) => React.Node),\n\n /**\n * Duration to wait after hover in before calling `onHoverIn`.\n */\n delayHoverIn?: ?number,\n\n /**\n * Duration to wait after hover out before calling `onHoverOut`.\n */\n delayHoverOut?: ?number,\n\n /**\n * Duration (in milliseconds) from `onPressIn` before `onLongPress` is called.\n */\n delayLongPress?: ?number,\n\n /**\n * Whether the press behavior is disabled.\n */\n disabled?: ?boolean,\n\n /**\n * Additional distance outside of this view in which a press is detected.\n */\n hitSlop?: ?RectOrSize,\n\n /**\n * Additional distance outside of this view in which a touch is considered a\n * press before `onPressOut` is triggered.\n */\n pressRetentionOffset?: ?RectOrSize,\n\n /**\n * Called when this view's layout changes.\n */\n onLayout?: ?(event: LayoutEvent) => mixed,\n\n /**\n * Called when the hover is activated to provide visual feedback.\n */\n onHoverIn?: ?(event: MouseEvent) => mixed,\n\n /**\n * Called when the hover is deactivated to undo visual feedback.\n */\n onHoverOut?: ?(event: MouseEvent) => mixed,\n\n /**\n * Called when a long-tap gesture is detected.\n */\n onLongPress?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when a single tap gesture is detected.\n */\n onPress?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when a touch is engaged before `onPress`.\n */\n onPressIn?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when a touch is released before `onPress`.\n */\n onPressOut?: ?(event: PressEvent) => mixed,\n\n /**\n * Either view styles or a function that receives a boolean reflecting whether\n * the component is currently pressed and returns view styles.\n */\n style?: ViewStyleProp | ((state: StateCallbackType) => ViewStyleProp),\n\n /**\n * Identifier used to find this view in tests.\n */\n testID?: ?string,\n\n /**\n * If true, doesn't play system sound on touch.\n */\n android_disableSound?: ?boolean,\n\n /**\n * Enables the Android ripple effect and configures its color.\n */\n android_ripple?: ?RippleConfig,\n\n /**\n * Used only for documentation or testing (e.g. snapshot testing).\n */\n testOnly_pressed?: ?boolean,\n\n /**\n * Duration to wait after press down before calling `onPressIn`.\n */\n unstable_pressDelay?: ?number,\n /**\n * Web to Native Accessibility props\n * https://github.com/facebook/react-native/issues/34424\n */\n 'aria-label'?: ?string,\n|}>;\n\n/**\n * Component used to build display components that should respond to whether the\n * component is currently pressed or not.\n */\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\nfunction Pressable(props: Props, forwardedRef): React.Node {\n const {\n accessible,\n accessibilityState,\n 'aria-live': ariaLive,\n android_disableSound,\n android_ripple,\n 'aria-busy': ariaBusy,\n 'aria-checked': ariaChecked,\n 'aria-disabled': ariaDisabled,\n 'aria-expanded': ariaExpanded,\n 'aria-label': ariaLabel,\n 'aria-selected': ariaSelected,\n cancelable,\n children,\n delayHoverIn,\n delayHoverOut,\n delayLongPress,\n disabled,\n focusable,\n hitSlop,\n onHoverIn,\n onHoverOut,\n onLongPress,\n onPress,\n onPressIn,\n onPressOut,\n pressRetentionOffset,\n style,\n testOnly_pressed,\n unstable_pressDelay,\n ...restProps\n } = props;\n\n const viewRef = useRef | null>(null);\n useImperativeHandle(forwardedRef, () => viewRef.current);\n\n const android_rippleConfig = useAndroidRippleForView(android_ripple, viewRef);\n\n const [pressed, setPressed] = usePressState(testOnly_pressed === true);\n\n let _accessibilityState = {\n busy: ariaBusy ?? accessibilityState?.busy,\n checked: ariaChecked ?? accessibilityState?.checked,\n disabled: ariaDisabled ?? accessibilityState?.disabled,\n expanded: ariaExpanded ?? accessibilityState?.expanded,\n selected: ariaSelected ?? accessibilityState?.selected,\n };\n\n _accessibilityState =\n disabled != null ? {..._accessibilityState, disabled} : _accessibilityState;\n\n const accessibilityValue = {\n max: props['aria-valuemax'] ?? props.accessibilityValue?.max,\n min: props['aria-valuemin'] ?? props.accessibilityValue?.min,\n now: props['aria-valuenow'] ?? props.accessibilityValue?.now,\n text: props['aria-valuetext'] ?? props.accessibilityValue?.text,\n };\n\n const accessibilityLiveRegion =\n ariaLive === 'off' ? 'none' : ariaLive ?? props.accessibilityLiveRegion;\n\n const accessibilityLabel = ariaLabel ?? props.accessibilityLabel;\n const restPropsWithDefaults: React.ElementConfig = {\n ...restProps,\n ...android_rippleConfig?.viewProps,\n accessible: accessible !== false,\n accessibilityViewIsModal:\n restProps['aria-modal'] ?? restProps.accessibilityViewIsModal,\n accessibilityLiveRegion,\n accessibilityLabel,\n accessibilityState: _accessibilityState,\n focusable: focusable !== false,\n accessibilityValue,\n hitSlop,\n };\n\n const config = useMemo(\n () => ({\n cancelable,\n disabled,\n hitSlop,\n pressRectOffset: pressRetentionOffset,\n android_disableSound,\n delayHoverIn,\n delayHoverOut,\n delayLongPress,\n delayPressIn: unstable_pressDelay,\n onHoverIn,\n onHoverOut,\n onLongPress,\n onPress,\n onPressIn(event: PressEvent): void {\n if (android_rippleConfig != null) {\n android_rippleConfig.onPressIn(event);\n }\n setPressed(true);\n if (onPressIn != null) {\n onPressIn(event);\n }\n },\n onPressMove: android_rippleConfig?.onPressMove,\n onPressOut(event: PressEvent): void {\n if (android_rippleConfig != null) {\n android_rippleConfig.onPressOut(event);\n }\n setPressed(false);\n if (onPressOut != null) {\n onPressOut(event);\n }\n },\n }),\n [\n android_disableSound,\n android_rippleConfig,\n cancelable,\n delayHoverIn,\n delayHoverOut,\n delayLongPress,\n disabled,\n hitSlop,\n onHoverIn,\n onHoverOut,\n onLongPress,\n onPress,\n onPressIn,\n onPressOut,\n pressRetentionOffset,\n setPressed,\n unstable_pressDelay,\n ],\n );\n const eventHandlers = usePressability(config);\n\n return (\n \n {typeof children === 'function' ? children({pressed}) : children}\n {__DEV__ ? : null}\n \n );\n}\n\nfunction usePressState(forcePressed: boolean): [boolean, (boolean) => void] {\n const [pressed, setPressed] = useState(false);\n return [pressed || forcePressed, setPressed];\n}\n\nconst MemoedPressable = React.memo(React.forwardRef(Pressable));\nMemoedPressable.displayName = 'Pressable';\n\nexport default (MemoedPressable: React.AbstractComponent<\n Props,\n React.ElementRef,\n>);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {PressEvent} from '../../Types/CoreEventTypes';\n\nimport processColor from '../../StyleSheet/processColor';\nimport Platform from '../../Utilities/Platform';\nimport View from '../View/View';\nimport {Commands} from '../View/ViewNativeComponent';\nimport invariant from 'invariant';\nimport * as React from 'react';\nimport {useMemo} from 'react';\n\ntype NativeBackgroundProp = $ReadOnly<{|\n type: 'RippleAndroid',\n color: ?number,\n borderless: boolean,\n rippleRadius: ?number,\n|}>;\n\nexport type RippleConfig = {|\n color?: ColorValue,\n borderless?: boolean,\n radius?: number,\n foreground?: boolean,\n|};\n\n/**\n * Provides the event handlers and props for configuring the ripple effect on\n * supported versions of Android.\n */\nexport default function useAndroidRippleForView(\n rippleConfig: ?RippleConfig,\n viewRef: {|current: null | React.ElementRef|},\n): ?$ReadOnly<{|\n onPressIn: (event: PressEvent) => void,\n onPressMove: (event: PressEvent) => void,\n onPressOut: (event: PressEvent) => void,\n viewProps:\n | $ReadOnly<{|nativeBackgroundAndroid: NativeBackgroundProp|}>\n | $ReadOnly<{|nativeForegroundAndroid: NativeBackgroundProp|}>,\n|}> {\n const {color, borderless, radius, foreground} = rippleConfig ?? {};\n\n return useMemo(() => {\n if (\n Platform.OS === 'android' &&\n Platform.Version >= 21 &&\n (color != null || borderless != null || radius != null)\n ) {\n const processedColor = processColor(color);\n invariant(\n processedColor == null || typeof processedColor === 'number',\n 'Unexpected color given for Ripple color',\n );\n\n const nativeRippleValue = {\n type: 'RippleAndroid',\n color: processedColor,\n borderless: borderless === true,\n rippleRadius: radius,\n };\n\n return {\n viewProps:\n foreground === true\n ? {nativeForegroundAndroid: nativeRippleValue}\n : {nativeBackgroundAndroid: nativeRippleValue},\n onPressIn(event: PressEvent): void {\n const view = viewRef.current;\n if (view != null) {\n Commands.hotspotUpdate(\n view,\n event.nativeEvent.locationX ?? 0,\n event.nativeEvent.locationY ?? 0,\n );\n Commands.setPressed(view, true);\n }\n },\n onPressMove(event: PressEvent): void {\n const view = viewRef.current;\n if (view != null) {\n Commands.hotspotUpdate(\n view,\n event.nativeEvent.locationX ?? 0,\n event.nativeEvent.locationY ?? 0,\n );\n }\n },\n onPressOut(event: PressEvent): void {\n const view = viewRef.current;\n if (view != null) {\n Commands.setPressed(view, false);\n }\n },\n };\n }\n return null;\n }, [borderless, color, foreground, radius, viewRef]);\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport Platform from '../../Utilities/Platform';\nimport View from '../View/View';\nimport * as React from 'react';\n\nlet exported: React.AbstractComponent>;\n\n/**\n * Renders nested content and automatically applies paddings reflect the portion\n * of the view that is not covered by navigation bars, tab bars, toolbars, and\n * other ancestor views.\n *\n * Moreover, and most importantly, Safe Area's paddings reflect physical\n * limitation of the screen, such as rounded corners or camera notches (aka\n * sensor housing area on iPhone X).\n */\nif (Platform.OS === 'android') {\n exported = View;\n} else {\n exported = require('./RCTSafeAreaViewNativeComponent').default;\n}\n\nexport default exported;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n // No props\n|}>;\n\nexport default (codegenNativeComponent('SafeAreaView', {\n paperComponentName: 'RCTSafeAreaView',\n interfaceOnly: true,\n}): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n * @generate-docs\n */\n\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {SyntheticEvent} from '../../Types/CoreEventTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport useMergeRefs from '../../Utilities/useMergeRefs';\nimport AndroidSwitchNativeComponent, {\n Commands as AndroidSwitchCommands,\n} from './AndroidSwitchNativeComponent';\nimport SwitchNativeComponent, {\n Commands as SwitchCommands,\n} from './SwitchNativeComponent';\nimport * as React from 'react';\n\ntype SwitchChangeEvent = SyntheticEvent<\n $ReadOnly<{|\n value: boolean,\n target: number,\n |}>,\n>;\n\nexport type Props = $ReadOnly<{|\n ...ViewProps,\n\n /**\n If true the user won't be able to toggle the switch.\n\n @default false\n */\n disabled?: ?boolean,\n\n /**\n The value of the switch. If true the switch will be turned on.\n\n @default false\n */\n value?: ?boolean,\n\n /**\n Color of the foreground switch grip. If this is set on iOS, the switch grip will lose its drop shadow.\n */\n thumbColor?: ?ColorValue,\n\n /**\n Custom colors for the switch track.\n\n _iOS_: When the switch value is false, the track shrinks into the border. If you want to change the\n color of the background exposed by the shrunken track, use\n [`ios_backgroundColor`](https://reactnative.dev/docs/switch#ios_backgroundColor).\n */\n trackColor?: ?$ReadOnly<{|\n false?: ?ColorValue,\n true?: ?ColorValue,\n |}>,\n\n /**\n On iOS, custom color for the background. This background color can be\n seen either when the switch value is false or when the switch is\n disabled (and the switch is translucent).\n */\n ios_backgroundColor?: ?ColorValue,\n\n /**\n Invoked when the user tries to change the value of the switch. Receives\n the change event as an argument. If you want to only receive the new\n value, use `onValueChange` instead.\n */\n onChange?: ?(event: SwitchChangeEvent) => Promise | void,\n\n /**\n Invoked when the user tries to change the value of the switch. Receives\n the new value as an argument. If you want to instead receive an event,\n use `onChange`.\n */\n onValueChange?: ?(value: boolean) => Promise | void,\n|}>;\nconst returnsFalse = () => false;\nconst returnsTrue = () => true;\n\n/**\n Renders a boolean input.\n\n This is a controlled component that requires an `onValueChange`\n callback that updates the `value` prop in order for the component to\n reflect user actions. If the `value` prop is not updated, the\n component will continue to render the supplied `value` prop instead of\n the expected result of any user actions.\n\n ```SnackPlayer name=Switch\n import React, { useState } from \"react\";\n import { View, Switch, StyleSheet } from \"react-native\";\n\n const App = () => {\n const [isEnabled, setIsEnabled] = useState(false);\n const toggleSwitch = () => setIsEnabled(previousState => !previousState);\n\n return (\n \n \n \n );\n }\n\n const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\"\n }\n });\n\n export default App;\n ```\n */\n\nconst SwitchWithForwardedRef: React.AbstractComponent<\n Props,\n React.ElementRef<\n typeof SwitchNativeComponent | typeof AndroidSwitchNativeComponent,\n >,\n> = React.forwardRef(function Switch(props, forwardedRef): React.Node {\n const {\n disabled,\n ios_backgroundColor,\n onChange,\n onValueChange,\n style,\n thumbColor,\n trackColor,\n value,\n ...restProps\n } = props;\n const trackColorForFalse = trackColor?.false;\n const trackColorForTrue = trackColor?.true;\n\n const nativeSwitchRef = React.useRef | null>(null);\n\n const ref = useMergeRefs(nativeSwitchRef, forwardedRef);\n\n const [native, setNative] = React.useState({value: (null: ?boolean)});\n\n const handleChange = (event: SwitchChangeEvent) => {\n // $FlowFixMe[unused-promise]\n onChange?.(event);\n // $FlowFixMe[unused-promise]\n onValueChange?.(event.nativeEvent.value);\n setNative({value: event.nativeEvent.value});\n };\n\n React.useLayoutEffect(() => {\n // This is necessary in case native updates the switch and JS decides\n // that the update should be ignored and we should stick with the value\n // that we have in JS.\n const jsValue = value === true;\n const shouldUpdateNativeSwitch =\n native.value != null && native.value !== jsValue;\n if (\n shouldUpdateNativeSwitch &&\n nativeSwitchRef.current?.setNativeProps != null\n ) {\n if (Platform.OS === 'android') {\n AndroidSwitchCommands.setNativeValue(nativeSwitchRef.current, jsValue);\n } else {\n SwitchCommands.setValue(nativeSwitchRef.current, jsValue);\n }\n }\n }, [value, native]);\n\n if (Platform.OS === 'android') {\n const {accessibilityState} = restProps;\n const _disabled =\n disabled != null ? disabled : accessibilityState?.disabled;\n\n const _accessibilityState =\n _disabled !== accessibilityState?.disabled\n ? {...accessibilityState, disabled: _disabled}\n : accessibilityState;\n\n const platformProps = {\n accessibilityState: _accessibilityState,\n enabled: _disabled !== true,\n on: value === true,\n style,\n thumbTintColor: thumbColor,\n trackColorForFalse: trackColorForFalse,\n trackColorForTrue: trackColorForTrue,\n trackTintColor: value === true ? trackColorForTrue : trackColorForFalse,\n };\n\n return (\n \n );\n } else {\n const platformProps = {\n disabled,\n onTintColor: trackColorForTrue,\n style: StyleSheet.compose(\n {height: 31, width: 51},\n StyleSheet.compose(\n style,\n ios_backgroundColor == null\n ? null\n : {\n backgroundColor: ios_backgroundColor,\n borderRadius: 16,\n },\n ),\n ),\n thumbTintColor: thumbColor,\n tintColor: trackColorForFalse,\n value: value === true,\n };\n\n return (\n \n );\n }\n});\n\nexport default SwitchWithForwardedRef;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n BubblingEventHandler,\n Int32,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\nimport * as React from 'react';\n\ntype SwitchChangeEvent = $ReadOnly<{|\n value: boolean,\n target: Int32,\n|}>;\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n // Props\n disabled?: WithDefault,\n enabled?: WithDefault,\n thumbColor?: ?ColorValue,\n trackColorForFalse?: ?ColorValue,\n trackColorForTrue?: ?ColorValue,\n value?: WithDefault,\n on?: WithDefault,\n thumbTintColor?: ?ColorValue,\n trackTintColor?: ?ColorValue,\n\n // Events\n onChange?: BubblingEventHandler,\n|}>;\n\ntype NativeType = HostComponent;\n\ninterface NativeCommands {\n +setNativeValue: (\n viewRef: React.ElementRef,\n value: boolean,\n ) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['setNativeValue'],\n});\n\nexport default (codegenNativeComponent('AndroidSwitch', {\n interfaceOnly: true,\n}): NativeType);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n BubblingEventHandler,\n Int32,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\nimport * as React from 'react';\n\ntype SwitchChangeEvent = $ReadOnly<{|\n value: boolean,\n target: Int32,\n|}>;\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n // Props\n disabled?: WithDefault,\n value?: WithDefault,\n tintColor?: ?ColorValue,\n onTintColor?: ?ColorValue,\n thumbTintColor?: ?ColorValue,\n\n // Deprecated props\n thumbColor?: ?ColorValue,\n trackColorForFalse?: ?ColorValue,\n trackColorForTrue?: ?ColorValue,\n\n // Events\n onChange?: ?BubblingEventHandler,\n|}>;\n\ntype ComponentType = HostComponent;\n\ninterface NativeCommands {\n +setValue: (viewRef: React.ElementRef, value: boolean) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['setValue'],\n});\n\nexport default (codegenNativeComponent('Switch', {\n paperComponentName: 'RCTSwitch',\n excludedPlatforms: ['android'],\n}): ComponentType);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {\n PressEvent,\n ScrollEvent,\n SyntheticEvent,\n} from '../../Types/CoreEventTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\nimport type {TextInputType} from './TextInput.flow';\n\nimport usePressability from '../../Pressability/usePressability';\nimport flattenStyle from '../../StyleSheet/flattenStyle';\nimport StyleSheet, {\n type ColorValue,\n type TextStyleProp,\n type ViewStyleProp,\n} from '../../StyleSheet/StyleSheet';\nimport Text from '../../Text/Text';\nimport TextAncestor from '../../Text/TextAncestor';\nimport Platform from '../../Utilities/Platform';\nimport useMergeRefs from '../../Utilities/useMergeRefs';\nimport TextInputState from './TextInputState';\nimport invariant from 'invariant';\nimport nullthrows from 'nullthrows';\nimport * as React from 'react';\nimport {useCallback, useLayoutEffect, useRef, useState} from 'react';\n\ntype ReactRefSetter = {current: null | T, ...} | ((ref: null | T) => mixed);\ntype TextInputInstance = React.ElementRef> & {\n +clear: () => void,\n +isFocused: () => boolean,\n +getNativeRef: () => ?React.ElementRef>,\n +setSelection: (start: number, end: number) => void,\n};\n\nlet AndroidTextInput;\nlet AndroidTextInputCommands;\nlet RCTSinglelineTextInputView;\nlet RCTSinglelineTextInputNativeCommands;\nlet RCTMultilineTextInputView;\nlet RCTMultilineTextInputNativeCommands;\n\nif (Platform.OS === 'android') {\n AndroidTextInput = require('./AndroidTextInputNativeComponent').default;\n AndroidTextInputCommands =\n require('./AndroidTextInputNativeComponent').Commands;\n} else if (Platform.OS === 'ios') {\n RCTSinglelineTextInputView =\n require('./RCTSingelineTextInputNativeComponent').default;\n RCTSinglelineTextInputNativeCommands =\n require('./RCTSingelineTextInputNativeComponent').Commands;\n RCTMultilineTextInputView =\n require('./RCTMultilineTextInputNativeComponent').default;\n RCTMultilineTextInputNativeCommands =\n require('./RCTMultilineTextInputNativeComponent').Commands;\n}\n\nexport type ChangeEvent = SyntheticEvent<\n $ReadOnly<{|\n eventCount: number,\n target: number,\n text: string,\n |}>,\n>;\n\nexport type TextInputEvent = SyntheticEvent<\n $ReadOnly<{|\n eventCount: number,\n previousText: string,\n range: $ReadOnly<{|\n start: number,\n end: number,\n |}>,\n target: number,\n text: string,\n |}>,\n>;\n\nexport type ContentSizeChangeEvent = SyntheticEvent<\n $ReadOnly<{|\n target: number,\n contentSize: $ReadOnly<{|\n width: number,\n height: number,\n |}>,\n |}>,\n>;\n\ntype TargetEvent = SyntheticEvent<\n $ReadOnly<{|\n target: number,\n |}>,\n>;\n\nexport type BlurEvent = TargetEvent;\nexport type FocusEvent = TargetEvent;\n\ntype Selection = $ReadOnly<{|\n start: number,\n end: number,\n|}>;\n\nexport type SelectionChangeEvent = SyntheticEvent<\n $ReadOnly<{|\n selection: Selection,\n target: number,\n |}>,\n>;\n\nexport type KeyPressEvent = SyntheticEvent<\n $ReadOnly<{|\n key: string,\n target?: ?number,\n eventCount?: ?number,\n |}>,\n>;\n\nexport type EditingEvent = SyntheticEvent<\n $ReadOnly<{|\n eventCount: number,\n text: string,\n target: number,\n |}>,\n>;\n\ntype DataDetectorTypesType =\n | 'phoneNumber'\n | 'link'\n | 'address'\n | 'calendarEvent'\n | 'none'\n | 'all';\n\nexport type KeyboardType =\n // Cross Platform\n | 'default'\n | 'email-address'\n | 'numeric'\n | 'phone-pad'\n | 'number-pad'\n | 'decimal-pad'\n | 'url'\n // iOS-only\n | 'ascii-capable'\n | 'numbers-and-punctuation'\n | 'name-phone-pad'\n | 'twitter'\n | 'web-search'\n // iOS 10+ only\n | 'ascii-capable-number-pad'\n // Android-only\n | 'visible-password';\n\nexport type InputMode =\n | 'none'\n | 'text'\n | 'decimal'\n | 'numeric'\n | 'tel'\n | 'search'\n | 'email'\n | 'url';\n\nexport type ReturnKeyType =\n // Cross Platform\n | 'done'\n | 'go'\n | 'next'\n | 'search'\n | 'send'\n // Android-only\n | 'none'\n | 'previous'\n // iOS-only\n | 'default'\n | 'emergency-call'\n | 'google'\n | 'join'\n | 'route'\n | 'yahoo';\n\nexport type SubmitBehavior = 'submit' | 'blurAndSubmit' | 'newline';\n\nexport type AutoCapitalize = 'none' | 'sentences' | 'words' | 'characters';\n\nexport type TextContentType =\n | 'none'\n | 'URL'\n | 'addressCity'\n | 'addressCityAndState'\n | 'addressState'\n | 'countryName'\n | 'creditCardNumber'\n | 'emailAddress'\n | 'familyName'\n | 'fullStreetAddress'\n | 'givenName'\n | 'jobTitle'\n | 'location'\n | 'middleName'\n | 'name'\n | 'namePrefix'\n | 'nameSuffix'\n | 'nickname'\n | 'organizationName'\n | 'postalCode'\n | 'streetAddressLine1'\n | 'streetAddressLine2'\n | 'sublocality'\n | 'telephoneNumber'\n | 'username'\n | 'password'\n | 'newPassword'\n | 'oneTimeCode';\n\nexport type enterKeyHintType =\n | 'enter'\n | 'done'\n | 'go'\n | 'next'\n | 'previous'\n | 'search'\n | 'send';\n\ntype PasswordRules = string;\n\ntype IOSProps = $ReadOnly<{|\n /**\n * When the clear button should appear on the right side of the text view.\n * This property is supported only for single-line TextInput component.\n * @platform ios\n */\n clearButtonMode?: ?('never' | 'while-editing' | 'unless-editing' | 'always'),\n\n /**\n * If `true`, clears the text field automatically when editing begins.\n * @platform ios\n */\n clearTextOnFocus?: ?boolean,\n\n /**\n * Determines the types of data converted to clickable URLs in the text input.\n * Only valid if `multiline={true}` and `editable={false}`.\n * By default no data types are detected.\n *\n * You can provide one type or an array of many types.\n *\n * Possible values for `dataDetectorTypes` are:\n *\n * - `'phoneNumber'`\n * - `'link'`\n * - `'address'`\n * - `'calendarEvent'`\n * - `'none'`\n * - `'all'`\n *\n * @platform ios\n */\n dataDetectorTypes?:\n | ?DataDetectorTypesType\n | $ReadOnlyArray,\n\n /**\n * If `true`, the keyboard disables the return key when there is no text and\n * automatically enables it when there is text. The default value is `false`.\n * @platform ios\n */\n enablesReturnKeyAutomatically?: ?boolean,\n\n /**\n * An optional identifier which links a custom InputAccessoryView to\n * this text input. The InputAccessoryView is rendered above the\n * keyboard when this text input is focused.\n * @platform ios\n */\n inputAccessoryViewID?: ?string,\n\n /**\n * Determines the color of the keyboard.\n * @platform ios\n */\n keyboardAppearance?: ?('default' | 'light' | 'dark'),\n\n /**\n * Provide rules for your password.\n * For example, say you want to require a password with at least eight characters consisting of a mix of uppercase and lowercase letters, at least one number, and at most two consecutive characters.\n * \"required: upper; required: lower; required: digit; max-consecutive: 2; minlength: 8;\"\n * @platform ios\n */\n passwordRules?: ?PasswordRules,\n\n /*\n * If `true`, allows TextInput to pass touch events to the parent component.\n * This allows components to be swipeable from the TextInput on iOS,\n * as is the case on Android by default.\n * If `false`, TextInput always asks to handle the input (except when disabled).\n * @platform ios\n */\n rejectResponderTermination?: ?boolean,\n\n /**\n * If `false`, scrolling of the text view will be disabled.\n * The default value is `true`. Does only work with 'multiline={true}'.\n * @platform ios\n */\n scrollEnabled?: ?boolean,\n\n /**\n * If `false`, disables spell-check style (i.e. red underlines).\n * The default value is inherited from `autoCorrect`.\n * @platform ios\n */\n spellCheck?: ?boolean,\n\n /**\n * Give the keyboard and the system information about the\n * expected semantic meaning for the content that users enter.\n * `autoComplete` property accomplishes same behavior and is recommended as its supported by both platforms.\n * Avoid using both `autoComplete` and `textContentType`, you can use `Platform.select` for differing platform behaviors.\n * For backwards compatibility, when both set, `textContentType` takes precedence on iOS.\n * @platform ios\n */\n textContentType?: ?TextContentType,\n\n /**\n * Set line break strategy on iOS.\n * @platform ios\n */\n lineBreakStrategyIOS?: ?('none' | 'standard' | 'hangul-word' | 'push-out'),\n|}>;\n\ntype AndroidProps = $ReadOnly<{|\n /**\n * When provided it will set the color of the cursor (or \"caret\") in the component.\n * Unlike the behavior of `selectionColor` the cursor color will be set independently\n * from the color of the text selection box.\n * @platform android\n */\n cursorColor?: ?ColorValue,\n\n /**\n * When `false`, if there is a small amount of space available around a text input\n * (e.g. landscape orientation on a phone), the OS may choose to have the user edit\n * the text inside of a full screen text input mode. When `true`, this feature is\n * disabled and users will always edit the text directly inside of the text input.\n * Defaults to `false`.\n * @platform android\n */\n disableFullscreenUI?: ?boolean,\n\n importantForAutofill?: ?(\n | 'auto'\n | 'no'\n | 'noExcludeDescendants'\n | 'yes'\n | 'yesExcludeDescendants'\n ),\n\n /**\n * If defined, the provided image resource will be rendered on the left.\n * The image resource must be inside `/android/app/src/main/res/drawable` and referenced\n * like\n * ```\n * \n * ```\n * @platform android\n */\n inlineImageLeft?: ?string,\n\n /**\n * Padding between the inline image, if any, and the text input itself.\n * @platform android\n */\n inlineImagePadding?: ?number,\n\n /**\n * Sets the number of lines for a `TextInput`. Use it with multiline set to\n * `true` to be able to fill the lines.\n * @platform android\n */\n numberOfLines?: ?number,\n\n /**\n * Sets the return key to the label. Use it instead of `returnKeyType`.\n * @platform android\n */\n returnKeyLabel?: ?string,\n\n /**\n * Sets the number of rows for a `TextInput`. Use it with multiline set to\n * `true` to be able to fill the lines.\n * @platform android\n */\n rows?: ?number,\n\n /**\n * When `false`, it will prevent the soft keyboard from showing when the field is focused.\n * Defaults to `true`.\n */\n showSoftInputOnFocus?: ?boolean,\n\n /**\n * Set text break strategy on Android API Level 23+, possible values are `simple`, `highQuality`, `balanced`\n * The default value is `simple`.\n * @platform android\n */\n textBreakStrategy?: ?('simple' | 'highQuality' | 'balanced'),\n\n /**\n * The color of the `TextInput` underline.\n * @platform android\n */\n underlineColorAndroid?: ?ColorValue,\n|}>;\n\nexport type Props = $ReadOnly<{|\n ...$Diff>,\n ...IOSProps,\n ...AndroidProps,\n\n /**\n * Can tell `TextInput` to automatically capitalize certain characters.\n *\n * - `characters`: all characters.\n * - `words`: first letter of each word.\n * - `sentences`: first letter of each sentence (*default*).\n * - `none`: don't auto capitalize anything.\n */\n autoCapitalize?: ?AutoCapitalize,\n\n /**\n * Specifies autocomplete hints for the system, so it can provide autofill.\n * On Android, the system will always attempt to offer autofill by using heuristics to identify the type of content.\n * To disable autocomplete, set autoComplete to off.\n *\n * The following values work across platforms:\n *\n * - `additional-name`\n * - `address-line1`\n * - `address-line2`\n * - `cc-number`\n * - `country`\n * - `current-password`\n * - `email`\n * - `family-name`\n * - `given-name`\n * - `honorific-prefix`\n * - `honorific-suffix`\n * - `name`\n * - `new-password`\n * - `off`\n * - `one-time-code`\n * - `postal-code`\n * - `street-address`\n * - `tel`\n * - `username`\n *\n * The following values work on iOS only:\n *\n * - `nickname`\n * - `organization`\n * - `organization-title`\n * - `url`\n *\n * The following values work on Android only:\n *\n * - `birthdate-day`\n * - `birthdate-full`\n * - `birthdate-month`\n * - `birthdate-year`\n * - `cc-csc`\n * - `cc-exp`\n * - `cc-exp-day`\n * - `cc-exp-month`\n * - `cc-exp-year`\n * - `gender`\n * - `name-family`\n * - `name-given`\n * - `name-middle`\n * - `name-middle-initial`\n * - `name-prefix`\n * - `name-suffix`\n * - `password`\n * - `password-new`\n * - `postal-address`\n * - `postal-address-country`\n * - `postal-address-extended`\n * - `postal-address-extended-postal-code`\n * - `postal-address-locality`\n * - `postal-address-region`\n * - `sms-otp`\n * - `tel-country-code`\n * - `tel-national`\n * - `tel-device`\n * - `username-new`\n */\n autoComplete?: ?(\n | 'additional-name'\n | 'address-line1'\n | 'address-line2'\n | 'birthdate-day'\n | 'birthdate-full'\n | 'birthdate-month'\n | 'birthdate-year'\n | 'cc-csc'\n | 'cc-exp'\n | 'cc-exp-day'\n | 'cc-exp-month'\n | 'cc-exp-year'\n | 'cc-number'\n | 'country'\n | 'current-password'\n | 'email'\n | 'family-name'\n | 'gender'\n | 'given-name'\n | 'honorific-prefix'\n | 'honorific-suffix'\n | 'name'\n | 'name-family'\n | 'name-given'\n | 'name-middle'\n | 'name-middle-initial'\n | 'name-prefix'\n | 'name-suffix'\n | 'new-password'\n | 'nickname'\n | 'one-time-code'\n | 'organization'\n | 'organization-title'\n | 'password'\n | 'password-new'\n | 'postal-address'\n | 'postal-address-country'\n | 'postal-address-extended'\n | 'postal-address-extended-postal-code'\n | 'postal-address-locality'\n | 'postal-address-region'\n | 'postal-code'\n | 'street-address'\n | 'sms-otp'\n | 'tel'\n | 'tel-country-code'\n | 'tel-national'\n | 'tel-device'\n | 'url'\n | 'username'\n | 'username-new'\n | 'off'\n ),\n\n /**\n * If `false`, disables auto-correct. The default value is `true`.\n */\n autoCorrect?: ?boolean,\n\n /**\n * If `true`, focuses the input on `componentDidMount`.\n * The default value is `false`.\n */\n autoFocus?: ?boolean,\n\n /**\n * Specifies whether fonts should scale to respect Text Size accessibility settings. The\n * default is `true`.\n */\n allowFontScaling?: ?boolean,\n\n /**\n * If `true`, caret is hidden. The default value is `false`.\n *\n * On Android devices manufactured by Xiaomi with Android Q,\n * when keyboardType equals 'email-address'this will be set\n * in native to 'true' to prevent a system related crash. This\n * will cause cursor to be disabled as a side-effect.\n *\n */\n caretHidden?: ?boolean,\n\n /*\n * If `true`, contextMenuHidden is hidden. The default value is `false`.\n */\n contextMenuHidden?: ?boolean,\n\n /**\n * Provides an initial value that will change when the user starts typing.\n * Useful for simple use-cases where you do not want to deal with listening\n * to events and updating the value prop to keep the controlled state in sync.\n */\n defaultValue?: ?Stringish,\n\n /**\n * If `false`, text is not editable. The default value is `true`.\n */\n editable?: ?boolean,\n\n forwardedRef?: ?ReactRefSetter,\n\n /**\n * `enterKeyHint` defines what action label (or icon) to present for the enter key on virtual keyboards.\n *\n * The following values is supported:\n *\n * - `enter`\n * - `done`\n * - `go`\n * - `next`\n * - `previous`\n * - `search`\n * - `send`\n */\n enterKeyHint?: ?enterKeyHintType,\n\n /**\n * `inputMode` works like the `inputmode` attribute in HTML, it determines which\n * keyboard to open, e.g.`numeric` and has precedence over keyboardType\n *\n * Support the following values:\n *\n * - `none`\n * - `text`\n * - `decimal`\n * - `numeric`\n * - `tel`\n * - `search`\n * - `email`\n * - `url`\n */\n inputMode?: ?InputMode,\n\n /**\n * Determines which keyboard to open, e.g.`numeric`.\n *\n * The following values work across platforms:\n *\n * - `default`\n * - `numeric`\n * - `number-pad`\n * - `decimal-pad`\n * - `email-address`\n * - `phone-pad`\n * - `url`\n *\n * *iOS Only*\n *\n * The following values work on iOS only:\n *\n * - `ascii-capable`\n * - `numbers-and-punctuation`\n * - `name-phone-pad`\n * - `twitter`\n * - `web-search`\n *\n * *Android Only*\n *\n * The following values work on Android only:\n *\n * - `visible-password`\n *\n */\n keyboardType?: ?KeyboardType,\n\n /**\n * Specifies largest possible scale a font can reach when `allowFontScaling` is enabled.\n * Possible values:\n * `null/undefined` (default): inherit from the parent node or the global default (0)\n * `0`: no max, ignore parent/global default\n * `>= 1`: sets the maxFontSizeMultiplier of this node to this value\n */\n maxFontSizeMultiplier?: ?number,\n\n /**\n * Limits the maximum number of characters that can be entered. Use this\n * instead of implementing the logic in JS to avoid flicker.\n */\n maxLength?: ?number,\n\n /**\n * If `true`, the text input can be multiple lines.\n * The default value is `false`.\n */\n multiline?: ?boolean,\n\n /**\n * Callback that is called when the text input is blurred.\n */\n onBlur?: ?(e: BlurEvent) => mixed,\n\n /**\n * Callback that is called when the text input's text changes.\n */\n onChange?: ?(e: ChangeEvent) => mixed,\n\n /**\n * DANGER: this API is not stable and will change in the future.\n *\n * Callback will be called on the main thread and may result in dropped frames.\n * Callback that is called when the text input's text changes.\n *\n * @platform ios\n */\n unstable_onChangeSync?: ?(e: ChangeEvent) => mixed,\n\n /**\n * Callback that is called when the text input's text changes.\n * Changed text is passed as an argument to the callback handler.\n */\n onChangeText?: ?(text: string) => mixed,\n\n /**\n * DANGER: this API is not stable and will change in the future.\n *\n * Callback will be called on the main thread and may result in dropped frames.\n * Callback that is called when the text input's text changes.\n * Changed text is passed as an argument to the callback handler.\n *\n * @platform ios\n */\n unstable_onChangeTextSync?: ?(text: string) => mixed,\n\n /**\n * Callback that is called when the text input's content size changes.\n * This will be called with\n * `{ nativeEvent: { contentSize: { width, height } } }`.\n *\n * Only called for multiline text inputs.\n */\n onContentSizeChange?: ?(e: ContentSizeChangeEvent) => mixed,\n\n /**\n * Callback that is called when text input ends.\n */\n onEndEditing?: ?(e: EditingEvent) => mixed,\n\n /**\n * Callback that is called when the text input is focused.\n */\n onFocus?: ?(e: FocusEvent) => mixed,\n\n /**\n * Callback that is called when a key is pressed.\n * This will be called with `{ nativeEvent: { key: keyValue } }`\n * where `keyValue` is `'Enter'` or `'Backspace'` for respective keys and\n * the typed-in character otherwise including `' '` for space.\n * Fires before `onChange` callbacks.\n */\n onKeyPress?: ?(e: KeyPressEvent) => mixed,\n\n /**\n * DANGER: this API is not stable and will change in the future.\n *\n * Callback will be called on the main thread and may result in dropped frames.\n *\n * Callback that is called when a key is pressed.\n * This will be called with `{ nativeEvent: { key: keyValue } }`\n * where `keyValue` is `'Enter'` or `'Backspace'` for respective keys and\n * the typed-in character otherwise including `' '` for space.\n * Fires before `onChange` callbacks.\n *\n * @platform ios\n */\n unstable_onKeyPressSync?: ?(e: KeyPressEvent) => mixed,\n\n /**\n * Called when a touch is engaged.\n */\n onPressIn?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when a touch is released.\n */\n onPressOut?: ?(event: PressEvent) => mixed,\n\n /**\n * Callback that is called when the text input selection is changed.\n * This will be called with\n * `{ nativeEvent: { selection: { start, end } } }`.\n */\n onSelectionChange?: ?(e: SelectionChangeEvent) => mixed,\n\n /**\n * Callback that is called when the text input's submit button is pressed.\n * Invalid if `multiline={true}` is specified.\n */\n onSubmitEditing?: ?(e: EditingEvent) => mixed,\n\n /**\n * Invoked on content scroll with `{ nativeEvent: { contentOffset: { x, y } } }`.\n * May also contain other properties from ScrollEvent but on Android contentSize\n * is not provided for performance reasons.\n */\n onScroll?: ?(e: ScrollEvent) => mixed,\n\n /**\n * The string that will be rendered before text input has been entered.\n */\n placeholder?: ?Stringish,\n\n /**\n * The text color of the placeholder string.\n */\n placeholderTextColor?: ?ColorValue,\n\n /** `readOnly` works like the `readonly` attribute in HTML.\n * If `true`, text is not editable. The default value is `false`.\n * See https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/readonly\n * for more details.\n */\n readOnly?: ?boolean,\n\n /**\n * Determines how the return key should look. On Android you can also use\n * `returnKeyLabel`.\n *\n * *Cross platform*\n *\n * The following values work across platforms:\n *\n * - `done`\n * - `go`\n * - `next`\n * - `search`\n * - `send`\n *\n * *Android Only*\n *\n * The following values work on Android only:\n *\n * - `none`\n * - `previous`\n *\n * *iOS Only*\n *\n * The following values work on iOS only:\n *\n * - `default`\n * - `emergency-call`\n * - `google`\n * - `join`\n * - `route`\n * - `yahoo`\n */\n returnKeyType?: ?ReturnKeyType,\n\n /**\n * If `true`, the text input obscures the text entered so that sensitive text\n * like passwords stay secure. The default value is `false`. Does not work with 'multiline={true}'.\n */\n secureTextEntry?: ?boolean,\n\n /**\n * The start and end of the text input's selection. Set start and end to\n * the same value to position the cursor.\n */\n selection?: ?$ReadOnly<{|\n start: number,\n end?: ?number,\n |}>,\n\n /**\n * The highlight and cursor color of the text input.\n */\n selectionColor?: ?ColorValue,\n\n /**\n * If `true`, all text will automatically be selected on focus.\n */\n selectTextOnFocus?: ?boolean,\n\n /**\n * If `true`, the text field will blur when submitted.\n * The default value is true for single-line fields and false for\n * multiline fields. Note that for multiline fields, setting `blurOnSubmit`\n * to `true` means that pressing return will blur the field and trigger the\n * `onSubmitEditing` event instead of inserting a newline into the field.\n *\n * @deprecated\n * Note that `submitBehavior` now takes the place of `blurOnSubmit` and will\n * override any behavior defined by `blurOnSubmit`.\n * @see submitBehavior\n */\n blurOnSubmit?: ?boolean,\n\n /**\n * When the return key is pressed,\n *\n * For single line inputs:\n *\n * - `'newline`' defaults to `'blurAndSubmit'`\n * - `undefined` defaults to `'blurAndSubmit'`\n *\n * For multiline inputs:\n *\n * - `'newline'` adds a newline\n * - `undefined` defaults to `'newline'`\n *\n * For both single line and multiline inputs:\n *\n * - `'submit'` will only send a submit event and not blur the input\n * - `'blurAndSubmit`' will both blur the input and send a submit event\n */\n submitBehavior?: ?SubmitBehavior,\n\n /**\n * Note that not all Text styles are supported, an incomplete list of what is not supported includes:\n *\n * - `borderLeftWidth`\n * - `borderTopWidth`\n * - `borderRightWidth`\n * - `borderBottomWidth`\n * - `borderTopLeftRadius`\n * - `borderTopRightRadius`\n * - `borderBottomRightRadius`\n * - `borderBottomLeftRadius`\n *\n * see [Issue#7070](https://github.com/facebook/react-native/issues/7070)\n * for more detail.\n *\n * [Styles](docs/style.html)\n */\n style?: ?TextStyleProp,\n\n /**\n * The value to show for the text input. `TextInput` is a controlled\n * component, which means the native value will be forced to match this\n * value prop if provided. For most uses, this works great, but in some\n * cases this may cause flickering - one common cause is preventing edits\n * by keeping value the same. In addition to simply setting the same value,\n * either set `editable={false}`, or set/update `maxLength` to prevent\n * unwanted edits without flicker.\n */\n value?: ?Stringish,\n|}>;\n\nconst emptyFunctionThatReturnsTrue = () => true;\n\n/**\n * A foundational component for inputting text into the app via a\n * keyboard. Props provide configurability for several features, such as\n * auto-correction, auto-capitalization, placeholder text, and different keyboard\n * types, such as a numeric keypad.\n *\n * The simplest use case is to plop down a `TextInput` and subscribe to the\n * `onChangeText` events to read the user input. There are also other events,\n * such as `onSubmitEditing` and `onFocus` that can be subscribed to. A simple\n * example:\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react';\n * import { AppRegistry, TextInput } from 'react-native';\n *\n * export default class UselessTextInput extends Component {\n * constructor(props) {\n * super(props);\n * this.state = { text: 'Useless Placeholder' };\n * }\n *\n * render() {\n * return (\n * this.setState({text})}\n * value={this.state.text}\n * />\n * );\n * }\n * }\n *\n * // skip this line if using Create React Native App\n * AppRegistry.registerComponent('AwesomeProject', () => UselessTextInput);\n * ```\n *\n * Two methods exposed via the native element are .focus() and .blur() that\n * will focus or blur the TextInput programmatically.\n *\n * Note that some props are only available with `multiline={true/false}`.\n * Additionally, border styles that apply to only one side of the element\n * (e.g., `borderBottomColor`, `borderLeftWidth`, etc.) will not be applied if\n * `multiline=false`. To achieve the same effect, you can wrap your `TextInput`\n * in a `View`:\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react';\n * import { AppRegistry, View, TextInput } from 'react-native';\n *\n * class UselessTextInput extends Component {\n * render() {\n * return (\n * \n * );\n * }\n * }\n *\n * export default class UselessTextInputMultiline extends Component {\n * constructor(props) {\n * super(props);\n * this.state = {\n * text: 'Useless Multiline Placeholder',\n * };\n * }\n *\n * // If you type something in the text box that is a color, the background will change to that\n * // color.\n * render() {\n * return (\n * \n * this.setState({text})}\n * value={this.state.text}\n * />\n * \n * );\n * }\n * }\n *\n * // skip these lines if using Create React Native App\n * AppRegistry.registerComponent(\n * 'AwesomeProject',\n * () => UselessTextInputMultiline\n * );\n * ```\n *\n * `TextInput` has by default a border at the bottom of its view. This border\n * has its padding set by the background image provided by the system, and it\n * cannot be changed. Solutions to avoid this is to either not set height\n * explicitly, case in which the system will take care of displaying the border\n * in the correct position, or to not display the border by setting\n * `underlineColorAndroid` to transparent.\n *\n * Note that on Android performing text selection in input can change\n * app's activity `windowSoftInputMode` param to `adjustResize`.\n * This may cause issues with components that have position: 'absolute'\n * while keyboard is active. To avoid this behavior either specify `windowSoftInputMode`\n * in AndroidManifest.xml ( https://developer.android.com/guide/topics/manifest/activity-element.html )\n * or control this param programmatically with native code.\n *\n */\nfunction InternalTextInput(props: Props): React.Node {\n const {\n 'aria-busy': ariaBusy,\n 'aria-checked': ariaChecked,\n 'aria-disabled': ariaDisabled,\n 'aria-expanded': ariaExpanded,\n 'aria-selected': ariaSelected,\n accessibilityState,\n id,\n tabIndex,\n selection: propsSelection,\n ...otherProps\n } = props;\n\n const inputRef = useRef>>(null);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const selection: ?Selection =\n propsSelection == null\n ? null\n : {\n start: propsSelection.start,\n end: propsSelection.end ?? propsSelection.start,\n };\n\n const [mostRecentEventCount, setMostRecentEventCount] = useState(0);\n\n const [lastNativeText, setLastNativeText] = useState(props.value);\n const [lastNativeSelectionState, setLastNativeSelection] = useState<{|\n selection: ?Selection,\n mostRecentEventCount: number,\n |}>({selection, mostRecentEventCount});\n\n const lastNativeSelection = lastNativeSelectionState.selection;\n\n let viewCommands;\n if (AndroidTextInputCommands) {\n viewCommands = AndroidTextInputCommands;\n } else {\n viewCommands =\n props.multiline === true\n ? RCTMultilineTextInputNativeCommands\n : RCTSinglelineTextInputNativeCommands;\n }\n\n const text =\n typeof props.value === 'string'\n ? props.value\n : typeof props.defaultValue === 'string'\n ? props.defaultValue\n : '';\n\n // This is necessary in case native updates the text and JS decides\n // that the update should be ignored and we should stick with the value\n // that we have in JS.\n useLayoutEffect(() => {\n const nativeUpdate: {text?: string, selection?: Selection} = {};\n\n if (lastNativeText !== props.value && typeof props.value === 'string') {\n nativeUpdate.text = props.value;\n setLastNativeText(props.value);\n }\n\n if (\n selection &&\n lastNativeSelection &&\n (lastNativeSelection.start !== selection.start ||\n lastNativeSelection.end !== selection.end)\n ) {\n nativeUpdate.selection = selection;\n setLastNativeSelection({selection, mostRecentEventCount});\n }\n\n if (Object.keys(nativeUpdate).length === 0) {\n return;\n }\n\n if (inputRef.current != null) {\n viewCommands.setTextAndSelection(\n inputRef.current,\n mostRecentEventCount,\n text,\n selection?.start ?? -1,\n selection?.end ?? -1,\n );\n }\n }, [\n mostRecentEventCount,\n inputRef,\n props.value,\n props.defaultValue,\n lastNativeText,\n selection,\n lastNativeSelection,\n text,\n viewCommands,\n ]);\n\n useLayoutEffect(() => {\n const inputRefValue = inputRef.current;\n\n if (inputRefValue != null) {\n TextInputState.registerInput(inputRefValue);\n\n return () => {\n TextInputState.unregisterInput(inputRefValue);\n\n if (TextInputState.currentlyFocusedInput() === inputRefValue) {\n nullthrows(inputRefValue).blur();\n }\n };\n }\n }, [inputRef]);\n\n const setLocalRef = useCallback(\n (instance: TextInputInstance | null) => {\n inputRef.current = instance;\n\n /*\n Hi reader from the future. I'm sorry for this.\n\n This is a hack. Ideally we would forwardRef to the underlying\n host component. However, since TextInput has it's own methods that can be\n called as well, if we used the standard forwardRef then these\n methods wouldn't be accessible and thus be a breaking change.\n\n We have a couple of options of how to handle this:\n - Return a new ref with everything we methods from both. This is problematic\n because we need React to also know it is a host component which requires\n internals of the class implementation of the ref.\n - Break the API and have some other way to call one set of the methods or\n the other. This is our long term approach as we want to eventually\n get the methods on host components off the ref. So instead of calling\n ref.measure() you might call ReactNative.measure(ref). This would hopefully\n let the ref for TextInput then have the methods like `.clear`. Or we do it\n the other way and make it TextInput.clear(textInputRef) which would be fine\n too. Either way though is a breaking change that is longer term.\n - Mutate this ref. :( Gross, but accomplishes what we need in the meantime\n before we can get to the long term breaking change.\n */\n if (instance != null) {\n // $FlowFixMe[incompatible-use] - See the explanation above.\n Object.assign(instance, {\n clear(): void {\n if (inputRef.current != null) {\n viewCommands.setTextAndSelection(\n inputRef.current,\n mostRecentEventCount,\n '',\n 0,\n 0,\n );\n }\n },\n // TODO: Fix this returning true on null === null, when no input is focused\n isFocused(): boolean {\n return TextInputState.currentlyFocusedInput() === inputRef.current;\n },\n getNativeRef(): ?React.ElementRef> {\n return inputRef.current;\n },\n setSelection(start: number, end: number): void {\n if (inputRef.current != null) {\n viewCommands.setTextAndSelection(\n inputRef.current,\n mostRecentEventCount,\n null,\n start,\n end,\n );\n }\n },\n });\n }\n },\n [mostRecentEventCount, viewCommands],\n );\n\n const ref = useMergeRefs(\n setLocalRef,\n props.forwardedRef,\n );\n\n const _onChange = (event: ChangeEvent) => {\n const currentText = event.nativeEvent.text;\n props.onChange && props.onChange(event);\n props.onChangeText && props.onChangeText(currentText);\n\n if (inputRef.current == null) {\n // calling `props.onChange` or `props.onChangeText`\n // may clean up the input itself. Exits here.\n return;\n }\n\n setLastNativeText(currentText);\n // This must happen last, after we call setLastNativeText.\n // Different ordering can cause bugs when editing AndroidTextInputs\n // with multiple Fragments.\n // We must update this so that controlled input updates work.\n setMostRecentEventCount(event.nativeEvent.eventCount);\n };\n\n const _onChangeSync = (event: ChangeEvent) => {\n const currentText = event.nativeEvent.text;\n props.unstable_onChangeSync && props.unstable_onChangeSync(event);\n props.unstable_onChangeTextSync &&\n props.unstable_onChangeTextSync(currentText);\n\n if (inputRef.current == null) {\n // calling `props.onChange` or `props.onChangeText`\n // may clean up the input itself. Exits here.\n return;\n }\n\n setLastNativeText(currentText);\n // This must happen last, after we call setLastNativeText.\n // Different ordering can cause bugs when editing AndroidTextInputs\n // with multiple Fragments.\n // We must update this so that controlled input updates work.\n setMostRecentEventCount(event.nativeEvent.eventCount);\n };\n\n const _onSelectionChange = (event: SelectionChangeEvent) => {\n props.onSelectionChange && props.onSelectionChange(event);\n\n if (inputRef.current == null) {\n // calling `props.onSelectionChange`\n // may clean up the input itself. Exits here.\n return;\n }\n\n setLastNativeSelection({\n selection: event.nativeEvent.selection,\n mostRecentEventCount,\n });\n };\n\n const _onFocus = (event: FocusEvent) => {\n TextInputState.focusInput(inputRef.current);\n if (props.onFocus) {\n props.onFocus(event);\n }\n };\n\n const _onBlur = (event: BlurEvent) => {\n TextInputState.blurInput(inputRef.current);\n if (props.onBlur) {\n props.onBlur(event);\n }\n };\n\n const _onScroll = (event: ScrollEvent) => {\n props.onScroll && props.onScroll(event);\n };\n\n let textInput = null;\n\n const multiline = props.multiline ?? false;\n\n let submitBehavior: SubmitBehavior;\n if (props.submitBehavior != null) {\n // `submitBehavior` is set explicitly\n if (!multiline && props.submitBehavior === 'newline') {\n // For single line text inputs, `'newline'` is not a valid option\n submitBehavior = 'blurAndSubmit';\n } else {\n submitBehavior = props.submitBehavior;\n }\n } else if (multiline) {\n if (props.blurOnSubmit === true) {\n submitBehavior = 'blurAndSubmit';\n } else {\n submitBehavior = 'newline';\n }\n } else {\n // Single line\n if (props.blurOnSubmit !== false) {\n submitBehavior = 'blurAndSubmit';\n } else {\n submitBehavior = 'submit';\n }\n }\n\n const accessible = props.accessible !== false;\n const focusable = props.focusable !== false;\n\n const config = React.useMemo(\n () => ({\n onPress: (event: PressEvent) => {\n if (props.editable !== false) {\n if (inputRef.current != null) {\n inputRef.current.focus();\n }\n }\n },\n onPressIn: props.onPressIn,\n onPressOut: props.onPressOut,\n cancelable:\n Platform.OS === 'ios' ? !props.rejectResponderTermination : null,\n }),\n [\n props.editable,\n props.onPressIn,\n props.onPressOut,\n props.rejectResponderTermination,\n ],\n );\n\n // Hide caret during test runs due to a flashing caret\n // makes screenshot tests flakey\n let caretHidden = props.caretHidden;\n if (Platform.isTesting) {\n caretHidden = true;\n }\n\n // TextInput handles onBlur and onFocus events\n // so omitting onBlur and onFocus pressability handlers here.\n const {onBlur, onFocus, ...eventHandlers} = usePressability(config) || {};\n\n let _accessibilityState;\n if (\n accessibilityState != null ||\n ariaBusy != null ||\n ariaChecked != null ||\n ariaDisabled != null ||\n ariaExpanded != null ||\n ariaSelected != null\n ) {\n _accessibilityState = {\n busy: ariaBusy ?? accessibilityState?.busy,\n checked: ariaChecked ?? accessibilityState?.checked,\n disabled: ariaDisabled ?? accessibilityState?.disabled,\n expanded: ariaExpanded ?? accessibilityState?.expanded,\n selected: ariaSelected ?? accessibilityState?.selected,\n };\n }\n\n // $FlowFixMe[underconstrained-implicit-instantiation]\n let style = flattenStyle(props.style);\n\n if (Platform.OS === 'ios') {\n const RCTTextInputView =\n props.multiline === true\n ? RCTMultilineTextInputView\n : RCTSinglelineTextInputView;\n\n style = props.multiline === true ? [styles.multilineInput, style] : style;\n\n const useOnChangeSync =\n (props.unstable_onChangeSync || props.unstable_onChangeTextSync) &&\n !(props.onChange || props.onChangeText);\n\n textInput = (\n \n );\n } else if (Platform.OS === 'android') {\n const autoCapitalize = props.autoCapitalize || 'sentences';\n const _accessibilityLabelledBy =\n props?.['aria-labelledby'] ?? props?.accessibilityLabelledBy;\n const placeholder = props.placeholder ?? '';\n let children = props.children;\n const childCount = React.Children.count(children);\n invariant(\n !(props.value != null && childCount),\n 'Cannot specify both value and children.',\n );\n if (childCount > 1) {\n children = {children};\n }\n\n textInput = (\n /* $FlowFixMe[prop-missing] the types for AndroidTextInput don't match up\n * exactly with the props for TextInput. This will need to get fixed */\n /* $FlowFixMe[incompatible-type] the types for AndroidTextInput don't\n * match up exactly with the props for TextInput. This will need to get\n * fixed */\n /* $FlowFixMe[incompatible-type-arg] the types for AndroidTextInput don't\n * match up exactly with the props for TextInput. This will need to get\n * fixed */\n \n );\n }\n return (\n {textInput}\n );\n}\n\nconst enterKeyHintToReturnTypeMap = {\n enter: 'default',\n done: 'done',\n go: 'go',\n next: 'next',\n previous: 'previous',\n search: 'search',\n send: 'send',\n};\n\nconst inputModeToKeyboardTypeMap = {\n none: 'default',\n text: 'default',\n decimal: 'decimal-pad',\n numeric: 'number-pad',\n tel: 'phone-pad',\n search: Platform.OS === 'ios' ? 'web-search' : 'default',\n email: 'email-address',\n url: 'url',\n};\n\n// Map HTML autocomplete values to Android autoComplete values\nconst autoCompleteWebToAutoCompleteAndroidMap = {\n 'address-line1': 'postal-address-region',\n 'address-line2': 'postal-address-locality',\n bday: 'birthdate-full',\n 'bday-day': 'birthdate-day',\n 'bday-month': 'birthdate-month',\n 'bday-year': 'birthdate-year',\n 'cc-csc': 'cc-csc',\n 'cc-exp': 'cc-exp',\n 'cc-exp-month': 'cc-exp-month',\n 'cc-exp-year': 'cc-exp-year',\n 'cc-number': 'cc-number',\n country: 'postal-address-country',\n 'current-password': 'password',\n email: 'email',\n 'honorific-prefix': 'name-prefix',\n 'honorific-suffix': 'name-suffix',\n name: 'name',\n 'additional-name': 'name-middle',\n 'family-name': 'name-family',\n 'given-name': 'name-given',\n 'new-password': 'password-new',\n off: 'off',\n 'one-time-code': 'sms-otp',\n 'postal-code': 'postal-code',\n sex: 'gender',\n 'street-address': 'street-address',\n tel: 'tel',\n 'tel-country-code': 'tel-country-code',\n 'tel-national': 'tel-national',\n username: 'username',\n};\n\n// Map HTML autocomplete values to iOS textContentType values\nconst autoCompleteWebToTextContentTypeMap = {\n 'address-line1': 'streetAddressLine1',\n 'address-line2': 'streetAddressLine2',\n 'cc-number': 'creditCardNumber',\n 'current-password': 'password',\n country: 'countryName',\n email: 'emailAddress',\n name: 'name',\n 'additional-name': 'middleName',\n 'family-name': 'familyName',\n 'given-name': 'givenName',\n nickname: 'nickname',\n 'honorific-prefix': 'namePrefix',\n 'honorific-suffix': 'nameSuffix',\n 'new-password': 'newPassword',\n off: 'none',\n 'one-time-code': 'oneTimeCode',\n organization: 'organizationName',\n 'organization-title': 'jobTitle',\n 'postal-code': 'postalCode',\n 'street-address': 'fullStreetAddress',\n tel: 'telephoneNumber',\n url: 'URL',\n username: 'username',\n};\n\nconst ExportedForwardRef: React.AbstractComponent<\n React.ElementConfig,\n TextInputInstance,\n> = React.forwardRef(function TextInput(\n {\n allowFontScaling = true,\n rejectResponderTermination = true,\n underlineColorAndroid = 'transparent',\n autoComplete,\n textContentType,\n readOnly,\n editable,\n enterKeyHint,\n returnKeyType,\n inputMode,\n showSoftInputOnFocus,\n keyboardType,\n ...restProps\n },\n forwardedRef: ReactRefSetter,\n) {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n let style = flattenStyle(restProps.style);\n\n if (style?.verticalAlign != null) {\n style.textAlignVertical =\n verticalAlignToTextAlignVerticalMap[style.verticalAlign];\n delete style.verticalAlign;\n }\n\n return (\n \n );\n});\n\nExportedForwardRef.displayName = 'TextInput';\n\n/**\n * Switch to `deprecated-react-native-prop-types` for compatibility with future\n * releases. This is deprecated and will be removed in the future.\n */\nExportedForwardRef.propTypes =\n require('deprecated-react-native-prop-types').TextInputPropTypes;\n\n// $FlowFixMe[prop-missing]\nExportedForwardRef.State = {\n currentlyFocusedInput: TextInputState.currentlyFocusedInput,\n\n currentlyFocusedField: TextInputState.currentlyFocusedField,\n focusTextInput: TextInputState.focusTextInput,\n blurTextInput: TextInputState.blurTextInput,\n};\n\nexport type TextInputComponentStatics = $ReadOnly<{|\n State: $ReadOnly<{|\n currentlyFocusedInput: typeof TextInputState.currentlyFocusedInput,\n currentlyFocusedField: typeof TextInputState.currentlyFocusedField,\n focusTextInput: typeof TextInputState.focusTextInput,\n blurTextInput: typeof TextInputState.blurTextInput,\n |}>,\n|}>;\n\nconst styles = StyleSheet.create({\n multilineInput: {\n // This default top inset makes RCTMultilineTextInputView seem as close as possible\n // to single-line RCTSinglelineTextInputView defaults, using the system defaults\n // of font size 17 and a height of 31 points.\n paddingTop: 5,\n },\n});\n\nconst verticalAlignToTextAlignVerticalMap = {\n auto: 'auto',\n top: 'top',\n bottom: 'bottom',\n middle: 'center',\n};\n\n// $FlowFixMe[unclear-type] Unclear type. Using `any` type is not safe.\nmodule.exports = ((ExportedForwardRef: any): TextInputType);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {TextInputNativeCommands} from './TextInputNativeCommands';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport RCTTextInputViewConfig from './RCTTextInputViewConfig';\n\ntype NativeType = HostComponent;\n\ntype NativeCommands = TextInputNativeCommands;\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['focus', 'blur', 'setTextAndSelection'],\n});\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {\n uiViewClassName: 'RCTSinglelineTextInputView',\n ...RCTTextInputViewConfig,\n};\n\nconst SinglelineTextInputNativeComponent: HostComponent =\n NativeComponentRegistry.get(\n 'RCTSinglelineTextInputView',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\n// flowlint-next-line unclear-type:off\nexport default ((SinglelineTextInputNativeComponent: any): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {PartialViewConfig} from '../../Renderer/shims/ReactNativeTypes';\n\nimport {ConditionallyIgnoredEventHandlers} from '../../NativeComponent/ViewConfigIgnore';\n\ntype PartialViewConfigWithoutName = $Rest<\n PartialViewConfig,\n {uiViewClassName: string},\n>;\n\nconst RCTTextInputViewConfig = {\n bubblingEventTypes: {\n topBlur: {\n phasedRegistrationNames: {\n bubbled: 'onBlur',\n captured: 'onBlurCapture',\n },\n },\n topChange: {\n phasedRegistrationNames: {\n bubbled: 'onChange',\n captured: 'onChangeCapture',\n },\n },\n topContentSizeChange: {\n phasedRegistrationNames: {\n captured: 'onContentSizeChangeCapture',\n bubbled: 'onContentSizeChange',\n },\n },\n topEndEditing: {\n phasedRegistrationNames: {\n bubbled: 'onEndEditing',\n captured: 'onEndEditingCapture',\n },\n },\n topFocus: {\n phasedRegistrationNames: {\n bubbled: 'onFocus',\n captured: 'onFocusCapture',\n },\n },\n topKeyPress: {\n phasedRegistrationNames: {\n bubbled: 'onKeyPress',\n captured: 'onKeyPressCapture',\n },\n },\n topSubmitEditing: {\n phasedRegistrationNames: {\n bubbled: 'onSubmitEditing',\n captured: 'onSubmitEditingCapture',\n },\n },\n topTouchCancel: {\n phasedRegistrationNames: {\n bubbled: 'onTouchCancel',\n captured: 'onTouchCancelCapture',\n },\n },\n topTouchEnd: {\n phasedRegistrationNames: {\n bubbled: 'onTouchEnd',\n captured: 'onTouchEndCapture',\n },\n },\n\n topTouchMove: {\n phasedRegistrationNames: {\n bubbled: 'onTouchMove',\n captured: 'onTouchMoveCapture',\n },\n },\n },\n directEventTypes: {\n topTextInput: {\n registrationName: 'onTextInput',\n },\n topKeyPressSync: {\n registrationName: 'onKeyPressSync',\n },\n topScroll: {\n registrationName: 'onScroll',\n },\n topSelectionChange: {\n registrationName: 'onSelectionChange',\n },\n topChangeSync: {\n registrationName: 'onChangeSync',\n },\n },\n validAttributes: {\n fontSize: true,\n fontWeight: true,\n fontVariant: true,\n // flowlint-next-line untyped-import:off\n textShadowOffset: {diff: require('../../Utilities/differ/sizesDiffer')},\n allowFontScaling: true,\n fontStyle: true,\n textTransform: true,\n textAlign: true,\n fontFamily: true,\n lineHeight: true,\n isHighlighted: true,\n writingDirection: true,\n textDecorationLine: true,\n textShadowRadius: true,\n letterSpacing: true,\n textDecorationStyle: true,\n textDecorationColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n color: {process: require('../../StyleSheet/processColor').default},\n maxFontSizeMultiplier: true,\n textShadowColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n editable: true,\n inputAccessoryViewID: true,\n caretHidden: true,\n enablesReturnKeyAutomatically: true,\n placeholderTextColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n clearButtonMode: true,\n keyboardType: true,\n selection: true,\n returnKeyType: true,\n submitBehavior: true,\n mostRecentEventCount: true,\n scrollEnabled: true,\n selectionColor: {process: require('../../StyleSheet/processColor').default},\n contextMenuHidden: true,\n secureTextEntry: true,\n placeholder: true,\n autoCorrect: true,\n multiline: true,\n textContentType: true,\n maxLength: true,\n autoCapitalize: true,\n keyboardAppearance: true,\n passwordRules: true,\n spellCheck: true,\n selectTextOnFocus: true,\n text: true,\n clearTextOnFocus: true,\n showSoftInputOnFocus: true,\n autoFocus: true,\n lineBreakStrategyIOS: true,\n ...ConditionallyIgnoredEventHandlers({\n onChange: true,\n onSelectionChange: true,\n onContentSizeChange: true,\n onScroll: true,\n onChangeSync: true,\n onKeyPressSync: true,\n onTextInput: true,\n }),\n },\n};\n\nmodule.exports = (RCTTextInputViewConfig: PartialViewConfigWithoutName);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {TextInputNativeCommands} from './TextInputNativeCommands';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport RCTTextInputViewConfig from './RCTTextInputViewConfig';\n\ntype NativeType = HostComponent;\n\ntype NativeCommands = TextInputNativeCommands;\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['focus', 'blur', 'setTextAndSelection'],\n});\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {\n uiViewClassName: 'RCTMultilineTextInputView',\n ...RCTTextInputViewConfig,\n validAttributes: {\n ...RCTTextInputViewConfig.validAttributes,\n dataDetectorTypes: true,\n },\n};\n\nconst MultilineTextInputNativeComponent: HostComponent =\n NativeComponentRegistry.get(\n 'RCTMultilineTextInputView',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\n// flowlint-next-line unclear-type:off\nexport default ((MultilineTextInputNativeComponent: any): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {EdgeInsetsProp} from '../../StyleSheet/EdgeInsetsPropType';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {PressEvent} from '../../Types/CoreEventTypes';\nimport type {TouchableType} from './Touchable.flow';\n\nimport {PressabilityDebugView} from '../../Pressability/PressabilityDebug';\nimport UIManager from '../../ReactNative/UIManager';\nimport Platform from '../../Utilities/Platform';\nimport SoundManager from '../Sound/SoundManager';\nimport BoundingDimensions from './BoundingDimensions';\nimport Position from './Position';\nimport * as React from 'react';\n\nconst extractSingleTouch = (nativeEvent: {\n +changedTouches: $ReadOnlyArray,\n +force?: number,\n +identifier: number,\n +locationX: number,\n +locationY: number,\n +pageX: number,\n +pageY: number,\n +target: ?number,\n +timestamp: number,\n +touches: $ReadOnlyArray,\n}) => {\n const touches = nativeEvent.touches;\n const changedTouches = nativeEvent.changedTouches;\n const hasTouches = touches && touches.length > 0;\n const hasChangedTouches = changedTouches && changedTouches.length > 0;\n\n return !hasTouches && hasChangedTouches\n ? changedTouches[0]\n : hasTouches\n ? touches[0]\n : nativeEvent;\n};\n\n/**\n * `Touchable`: Taps done right.\n *\n * You hook your `ResponderEventPlugin` events into `Touchable`. `Touchable`\n * will measure time/geometry and tells you when to give feedback to the user.\n *\n * ====================== Touchable Tutorial ===============================\n * The `Touchable` mixin helps you handle the \"press\" interaction. It analyzes\n * the geometry of elements, and observes when another responder (scroll view\n * etc) has stolen the touch lock. It notifies your component when it should\n * give feedback to the user. (bouncing/highlighting/unhighlighting).\n *\n * - When a touch was activated (typically you highlight)\n * - When a touch was deactivated (typically you unhighlight)\n * - When a touch was \"pressed\" - a touch ended while still within the geometry\n * of the element, and no other element (like scroller) has \"stolen\" touch\n * lock (\"responder\") (Typically you bounce the element).\n *\n * A good tap interaction isn't as simple as you might think. There should be a\n * slight delay before showing a highlight when starting a touch. If a\n * subsequent touch move exceeds the boundary of the element, it should\n * unhighlight, but if that same touch is brought back within the boundary, it\n * should rehighlight again. A touch can move in and out of that boundary\n * several times, each time toggling highlighting, but a \"press\" is only\n * triggered if that touch ends while within the element's boundary and no\n * scroller (or anything else) has stolen the lock on touches.\n *\n * To create a new type of component that handles interaction using the\n * `Touchable` mixin, do the following:\n *\n * - Initialize the `Touchable` state.\n *\n * getInitialState: function() {\n * return merge(this.touchableGetInitialState(), yourComponentState);\n * }\n *\n * - Choose the rendered component who's touches should start the interactive\n * sequence. On that rendered node, forward all `Touchable` responder\n * handlers. You can choose any rendered node you like. Choose a node whose\n * hit target you'd like to instigate the interaction sequence:\n *\n * // In render function:\n * return (\n * \n * \n * Even though the hit detection/interactions are triggered by the\n * wrapping (typically larger) node, we usually end up implementing\n * custom logic that highlights this inner one.\n * \n * \n * );\n *\n * - You may set up your own handlers for each of these events, so long as you\n * also invoke the `touchable*` handlers inside of your custom handler.\n *\n * - Implement the handlers on your component class in order to provide\n * feedback to the user. See documentation for each of these class methods\n * that you should implement.\n *\n * touchableHandlePress: function() {\n * this.performBounceAnimation(); // or whatever you want to do.\n * },\n * touchableHandleActivePressIn: function() {\n * this.beginHighlighting(...); // Whatever you like to convey activation\n * },\n * touchableHandleActivePressOut: function() {\n * this.endHighlighting(...); // Whatever you like to convey deactivation\n * },\n *\n * - There are more advanced methods you can implement (see documentation below):\n * touchableGetHighlightDelayMS: function() {\n * return 20;\n * }\n * // In practice, *always* use a predeclared constant (conserve memory).\n * touchableGetPressRectOffset: function() {\n * return {top: 20, left: 20, right: 20, bottom: 100};\n * }\n */\n\n/**\n * Touchable states.\n */\n\nconst States = {\n NOT_RESPONDER: 'NOT_RESPONDER', // Not the responder\n RESPONDER_INACTIVE_PRESS_IN: 'RESPONDER_INACTIVE_PRESS_IN', // Responder, inactive, in the `PressRect`\n RESPONDER_INACTIVE_PRESS_OUT: 'RESPONDER_INACTIVE_PRESS_OUT', // Responder, inactive, out of `PressRect`\n RESPONDER_ACTIVE_PRESS_IN: 'RESPONDER_ACTIVE_PRESS_IN', // Responder, active, in the `PressRect`\n RESPONDER_ACTIVE_PRESS_OUT: 'RESPONDER_ACTIVE_PRESS_OUT', // Responder, active, out of `PressRect`\n RESPONDER_ACTIVE_LONG_PRESS_IN: 'RESPONDER_ACTIVE_LONG_PRESS_IN', // Responder, active, in the `PressRect`, after long press threshold\n RESPONDER_ACTIVE_LONG_PRESS_OUT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT', // Responder, active, out of `PressRect`, after long press threshold\n ERROR: 'ERROR',\n};\n\ntype State =\n | typeof States.NOT_RESPONDER\n | typeof States.RESPONDER_INACTIVE_PRESS_IN\n | typeof States.RESPONDER_INACTIVE_PRESS_OUT\n | typeof States.RESPONDER_ACTIVE_PRESS_IN\n | typeof States.RESPONDER_ACTIVE_PRESS_OUT\n | typeof States.RESPONDER_ACTIVE_LONG_PRESS_IN\n | typeof States.RESPONDER_ACTIVE_LONG_PRESS_OUT\n | typeof States.ERROR;\n\n/*\n * Quick lookup map for states that are considered to be \"active\"\n */\n\nconst baseStatesConditions = {\n NOT_RESPONDER: false,\n RESPONDER_INACTIVE_PRESS_IN: false,\n RESPONDER_INACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_PRESS_IN: false,\n RESPONDER_ACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_LONG_PRESS_IN: false,\n RESPONDER_ACTIVE_LONG_PRESS_OUT: false,\n ERROR: false,\n};\n\nconst IsActive = {\n ...baseStatesConditions,\n RESPONDER_ACTIVE_PRESS_OUT: true,\n RESPONDER_ACTIVE_PRESS_IN: true,\n};\n\n/**\n * Quick lookup for states that are considered to be \"pressing\" and are\n * therefore eligible to result in a \"selection\" if the press stops.\n */\nconst IsPressingIn = {\n ...baseStatesConditions,\n RESPONDER_INACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_LONG_PRESS_IN: true,\n};\n\nconst IsLongPressingIn = {\n ...baseStatesConditions,\n RESPONDER_ACTIVE_LONG_PRESS_IN: true,\n};\n\n/**\n * Inputs to the state machine.\n */\nconst Signals = {\n DELAY: 'DELAY',\n RESPONDER_GRANT: 'RESPONDER_GRANT',\n RESPONDER_RELEASE: 'RESPONDER_RELEASE',\n RESPONDER_TERMINATED: 'RESPONDER_TERMINATED',\n ENTER_PRESS_RECT: 'ENTER_PRESS_RECT',\n LEAVE_PRESS_RECT: 'LEAVE_PRESS_RECT',\n LONG_PRESS_DETECTED: 'LONG_PRESS_DETECTED',\n};\n\ntype Signal =\n | typeof Signals.DELAY\n | typeof Signals.RESPONDER_GRANT\n | typeof Signals.RESPONDER_RELEASE\n | typeof Signals.RESPONDER_TERMINATED\n | typeof Signals.ENTER_PRESS_RECT\n | typeof Signals.LEAVE_PRESS_RECT\n | typeof Signals.LONG_PRESS_DETECTED;\n\n/**\n * Mapping from States x Signals => States\n */\nconst Transitions = {\n NOT_RESPONDER: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,\n RESPONDER_RELEASE: States.ERROR,\n RESPONDER_TERMINATED: States.ERROR,\n ENTER_PRESS_RECT: States.ERROR,\n LEAVE_PRESS_RECT: States.ERROR,\n LONG_PRESS_DETECTED: States.ERROR,\n },\n RESPONDER_INACTIVE_PRESS_IN: {\n DELAY: States.RESPONDER_ACTIVE_PRESS_IN,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR,\n },\n RESPONDER_INACTIVE_PRESS_OUT: {\n DELAY: States.RESPONDER_ACTIVE_PRESS_OUT,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR,\n },\n RESPONDER_ACTIVE_PRESS_IN: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n },\n RESPONDER_ACTIVE_PRESS_OUT: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR,\n },\n RESPONDER_ACTIVE_LONG_PRESS_IN: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,\n LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n },\n RESPONDER_ACTIVE_LONG_PRESS_OUT: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR,\n },\n error: {\n DELAY: States.NOT_RESPONDER,\n RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.NOT_RESPONDER,\n LEAVE_PRESS_RECT: States.NOT_RESPONDER,\n LONG_PRESS_DETECTED: States.NOT_RESPONDER,\n },\n};\n\n// ==== Typical Constants for integrating into UI components ====\n// var HIT_EXPAND_PX = 20;\n// var HIT_VERT_OFFSET_PX = 10;\nconst HIGHLIGHT_DELAY_MS = 130;\n\nconst PRESS_EXPAND_PX = 20;\n\nconst LONG_PRESS_THRESHOLD = 500;\n\nconst LONG_PRESS_DELAY_MS = LONG_PRESS_THRESHOLD - HIGHLIGHT_DELAY_MS;\n\nconst LONG_PRESS_ALLOWED_MOVEMENT = 10;\n\n// Default amount \"active\" region protrudes beyond box\n\n/**\n * By convention, methods prefixed with underscores are meant to be @private,\n * and not @protected. Mixers shouldn't access them - not even to provide them\n * as callback handlers.\n *\n *\n * ========== Geometry =========\n * `Touchable` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * +--------------------------+\n * | | - \"Start\" events in `HitRect` cause `HitRect`\n * | +--------------------+ | to become the responder.\n * | | +--------------+ | | - `HitRect` is typically expanded around\n * | | | | | | the `VisualRect`, but shifted downward.\n * | | | VisualRect | | | - After pressing down, after some delay,\n * | | | | | | and before letting up, the Visual React\n * | | +--------------+ | | will become \"active\". This makes it eligible\n * | | HitRect | | for being highlighted (so long as the\n * | +--------------------+ | press remains in the `PressRect`).\n * | PressRect o |\n * +----------------------|---+\n * Out Region |\n * +-----+ This gap between the `HitRect` and\n * `PressRect` allows a touch to move far away\n * from the original hit rect, and remain\n * highlighted, and eligible for a \"Press\".\n * Customize this via\n * `touchableGetPressRectOffset()`.\n *\n *\n *\n * ======= State Machine =======\n *\n * +-------------+ <---+ RESPONDER_RELEASE\n * |NOT_RESPONDER|\n * +-------------+ <---+ RESPONDER_TERMINATED\n * +\n * | RESPONDER_GRANT (HitRect)\n * v\n * +---------------------------+ DELAY +-------------------------+ T + DELAY +------------------------------+\n * |RESPONDER_INACTIVE_PRESS_IN|+-------->|RESPONDER_ACTIVE_PRESS_IN| +------------> |RESPONDER_ACTIVE_LONG_PRESS_IN|\n * +---------------------------+ +-------------------------+ +------------------------------+\n * + ^ + ^ + ^\n * |LEAVE_ |ENTER_ |LEAVE_ |ENTER_ |LEAVE_ |ENTER_\n * |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT\n * | | | | | |\n * v + v + v +\n * +----------------------------+ DELAY +--------------------------+ +-------------------------------+\n * |RESPONDER_INACTIVE_PRESS_OUT|+------->|RESPONDER_ACTIVE_PRESS_OUT| |RESPONDER_ACTIVE_LONG_PRESS_OUT|\n * +----------------------------+ +--------------------------+ +-------------------------------+\n *\n * T + DELAY => LONG_PRESS_DELAY_MS + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the `touchableHandlePress` abstract method invocation that occurs\n * when a responder is released while in either of the \"Press\" states.\n *\n * The other important side effects are the highlight abstract method\n * invocations (internal callbacks) to be implemented by the mixer.\n *\n *\n * @lends Touchable.prototype\n */\nconst TouchableMixin = {\n componentDidMount: function () {\n if (!Platform.isTV) {\n return;\n }\n },\n\n /**\n * Clear all timeouts on unmount\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n componentWillUnmount: function () {\n this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout);\n },\n\n /**\n * It's prefer that mixins determine state in this way, having the class\n * explicitly mix the state in the one and only `getInitialState` method.\n *\n * @return {object} State object to be placed inside of\n * `this.state.touchable`.\n */\n touchableGetInitialState: function (): {\n touchable: {\n touchState: ?State,\n responderID: ?PressEvent['currentTarget'],\n },\n } {\n return {\n touchable: {touchState: undefined, responderID: null},\n };\n },\n\n // ==== Hooks to Gesture Responder system ====\n /**\n * Must return true if embedded in a native platform scroll view.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleResponderTerminationRequest: function (): any {\n return !this.props.rejectResponderTermination;\n },\n\n /**\n * Must return true to start the process of `Touchable`.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleStartShouldSetResponder: function (): any {\n return !this.props.disabled;\n },\n\n /**\n * Return true to cancel press on long press.\n */\n touchableLongPressCancelsPress: function (): boolean {\n return true;\n },\n\n /**\n * Place as callback for a DOM element's `onResponderGrant` event.\n * @param {SyntheticEvent} e Synthetic event from event system.\n *\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleResponderGrant: function (e: PressEvent) {\n const dispatchID = e.currentTarget;\n // Since e is used in a callback invoked on another event loop\n // (as in setTimeout etc), we need to call e.persist() on the\n // event to make sure it doesn't get reused in the event object pool.\n e.persist();\n\n this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout);\n this.pressOutDelayTimeout = null;\n\n this.state.touchable.touchState = States.NOT_RESPONDER;\n this.state.touchable.responderID = dispatchID;\n this._receiveSignal(Signals.RESPONDER_GRANT, e);\n let delayMS =\n this.touchableGetHighlightDelayMS !== undefined\n ? Math.max(this.touchableGetHighlightDelayMS(), 0)\n : HIGHLIGHT_DELAY_MS;\n delayMS = isNaN(delayMS) ? HIGHLIGHT_DELAY_MS : delayMS;\n if (delayMS !== 0) {\n this.touchableDelayTimeout = setTimeout(\n this._handleDelay.bind(this, e),\n delayMS,\n );\n } else {\n this._handleDelay(e);\n }\n\n let longDelayMS =\n this.touchableGetLongPressDelayMS !== undefined\n ? Math.max(this.touchableGetLongPressDelayMS(), 10)\n : LONG_PRESS_DELAY_MS;\n longDelayMS = isNaN(longDelayMS) ? LONG_PRESS_DELAY_MS : longDelayMS;\n this.longPressDelayTimeout = setTimeout(\n this._handleLongDelay.bind(this, e),\n longDelayMS + delayMS,\n );\n },\n\n /**\n * Place as callback for a DOM element's `onResponderRelease` event.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleResponderRelease: function (e: PressEvent) {\n this.pressInLocation = null;\n this._receiveSignal(Signals.RESPONDER_RELEASE, e);\n },\n\n /**\n * Place as callback for a DOM element's `onResponderTerminate` event.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleResponderTerminate: function (e: PressEvent) {\n this.pressInLocation = null;\n this._receiveSignal(Signals.RESPONDER_TERMINATED, e);\n },\n\n /**\n * Place as callback for a DOM element's `onResponderMove` event.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleResponderMove: function (e: PressEvent) {\n // Measurement may not have returned yet.\n if (!this.state.touchable.positionOnActivate) {\n return;\n }\n\n const positionOnActivate = this.state.touchable.positionOnActivate;\n const dimensionsOnActivate = this.state.touchable.dimensionsOnActivate;\n const pressRectOffset = this.touchableGetPressRectOffset\n ? this.touchableGetPressRectOffset()\n : {\n left: PRESS_EXPAND_PX,\n right: PRESS_EXPAND_PX,\n top: PRESS_EXPAND_PX,\n bottom: PRESS_EXPAND_PX,\n };\n\n let pressExpandLeft = pressRectOffset.left;\n let pressExpandTop = pressRectOffset.top;\n let pressExpandRight = pressRectOffset.right;\n let pressExpandBottom = pressRectOffset.bottom;\n\n const hitSlop = this.touchableGetHitSlop\n ? this.touchableGetHitSlop()\n : null;\n\n if (hitSlop) {\n pressExpandLeft += hitSlop.left || 0;\n pressExpandTop += hitSlop.top || 0;\n pressExpandRight += hitSlop.right || 0;\n pressExpandBottom += hitSlop.bottom || 0;\n }\n\n const touch = extractSingleTouch(e.nativeEvent);\n const pageX = touch && touch.pageX;\n const pageY = touch && touch.pageY;\n\n if (this.pressInLocation) {\n const movedDistance = this._getDistanceBetweenPoints(\n pageX,\n pageY,\n this.pressInLocation.pageX,\n this.pressInLocation.pageY,\n );\n if (movedDistance > LONG_PRESS_ALLOWED_MOVEMENT) {\n this._cancelLongPressDelayTimeout();\n }\n }\n\n const isTouchWithinActive =\n pageX > positionOnActivate.left - pressExpandLeft &&\n pageY > positionOnActivate.top - pressExpandTop &&\n pageX <\n positionOnActivate.left +\n dimensionsOnActivate.width +\n pressExpandRight &&\n pageY <\n positionOnActivate.top +\n dimensionsOnActivate.height +\n pressExpandBottom;\n if (isTouchWithinActive) {\n const prevState = this.state.touchable.touchState;\n this._receiveSignal(Signals.ENTER_PRESS_RECT, e);\n const curState = this.state.touchable.touchState;\n if (\n curState === States.RESPONDER_INACTIVE_PRESS_IN &&\n prevState !== States.RESPONDER_INACTIVE_PRESS_IN\n ) {\n // fix for t7967420\n this._cancelLongPressDelayTimeout();\n }\n } else {\n this._cancelLongPressDelayTimeout();\n this._receiveSignal(Signals.LEAVE_PRESS_RECT, e);\n }\n },\n\n /**\n * Invoked when the item receives focus. Mixers might override this to\n * visually distinguish the `VisualRect` so that the user knows that it\n * currently has the focus. Most platforms only support a single element being\n * focused at a time, in which case there may have been a previously focused\n * element that was blurred just prior to this. This can be overridden when\n * using `Touchable.Mixin.withoutDefaultFocusAndBlur`.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleFocus: function (e: Event) {\n this.props.onFocus && this.props.onFocus(e);\n },\n\n /**\n * Invoked when the item loses focus. Mixers might override this to\n * visually distinguish the `VisualRect` so that the user knows that it\n * no longer has focus. Most platforms only support a single element being\n * focused at a time, in which case the focus may have moved to another.\n * This can be overridden when using\n * `Touchable.Mixin.withoutDefaultFocusAndBlur`.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleBlur: function (e: Event) {\n this.props.onBlur && this.props.onBlur(e);\n },\n\n // ==== Abstract Application Callbacks ====\n\n /**\n * Invoked when the item should be highlighted. Mixers should implement this\n * to visually distinguish the `VisualRect` so that the user knows that\n * releasing a touch will result in a \"selection\" (analog to click).\n *\n * @abstract\n * touchableHandleActivePressIn: function,\n */\n\n /**\n * Invoked when the item is \"active\" (in that it is still eligible to become\n * a \"select\") but the touch has left the `PressRect`. Usually the mixer will\n * want to unhighlight the `VisualRect`. If the user (while pressing) moves\n * back into the `PressRect` `touchableHandleActivePressIn` will be invoked\n * again and the mixer should probably highlight the `VisualRect` again. This\n * event will not fire on an `touchEnd/mouseUp` event, only move events while\n * the user is depressing the mouse/touch.\n *\n * @abstract\n * touchableHandleActivePressOut: function\n */\n\n /**\n * Invoked when the item is \"selected\" - meaning the interaction ended by\n * letting up while the item was either in the state\n * `RESPONDER_ACTIVE_PRESS_IN` or `RESPONDER_INACTIVE_PRESS_IN`.\n *\n * @abstract\n * touchableHandlePress: function\n */\n\n /**\n * Invoked when the item is long pressed - meaning the interaction ended by\n * letting up while the item was in `RESPONDER_ACTIVE_LONG_PRESS_IN`. If\n * `touchableHandleLongPress` is *not* provided, `touchableHandlePress` will\n * be called as it normally is. If `touchableHandleLongPress` is provided, by\n * default any `touchableHandlePress` callback will not be invoked. To\n * override this default behavior, override `touchableLongPressCancelsPress`\n * to return false. As a result, `touchableHandlePress` will be called when\n * lifting up, even if `touchableHandleLongPress` has also been called.\n *\n * @abstract\n * touchableHandleLongPress: function\n */\n\n /**\n * Returns the number of millis to wait before triggering a highlight.\n *\n * @abstract\n * touchableGetHighlightDelayMS: function\n */\n\n /**\n * Returns the amount to extend the `HitRect` into the `PressRect`. Positive\n * numbers mean the size expands outwards.\n *\n * @abstract\n * touchableGetPressRectOffset: function\n */\n\n // ==== Internal Logic ====\n\n /**\n * Measures the `HitRect` node on activation. The Bounding rectangle is with\n * respect to viewport - not page, so adding the `pageXOffset/pageYOffset`\n * should result in points that are in the same coordinate system as an\n * event's `globalX/globalY` data values.\n *\n * - Consider caching this for the lifetime of the component, or possibly\n * being able to share this cache between any `ScrollMap` view.\n *\n * @sideeffects\n * @private\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _remeasureMetricsOnActivation: function () {\n const responderID = this.state.touchable.responderID;\n if (responderID == null) {\n return;\n }\n\n if (typeof responderID === 'number') {\n UIManager.measure(responderID, this._handleQueryLayout);\n } else {\n responderID.measure(this._handleQueryLayout);\n }\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _handleQueryLayout: function (\n l: number,\n t: number,\n w: number,\n h: number,\n globalX: number,\n globalY: number,\n ) {\n //don't do anything UIManager failed to measure node\n if (!l && !t && !w && !h && !globalX && !globalY) {\n return;\n }\n this.state.touchable.positionOnActivate &&\n Position.release(this.state.touchable.positionOnActivate);\n this.state.touchable.dimensionsOnActivate &&\n BoundingDimensions.release(this.state.touchable.dimensionsOnActivate);\n this.state.touchable.positionOnActivate = Position.getPooled(\n globalX,\n globalY,\n );\n this.state.touchable.dimensionsOnActivate = BoundingDimensions.getPooled(\n w,\n h,\n );\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _handleDelay: function (e: PressEvent) {\n this.touchableDelayTimeout = null;\n this._receiveSignal(Signals.DELAY, e);\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _handleLongDelay: function (e: PressEvent) {\n this.longPressDelayTimeout = null;\n const curState = this.state.touchable.touchState;\n if (\n curState === States.RESPONDER_ACTIVE_PRESS_IN ||\n curState === States.RESPONDER_ACTIVE_LONG_PRESS_IN\n ) {\n this._receiveSignal(Signals.LONG_PRESS_DETECTED, e);\n }\n },\n\n /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n *\n * @param {Signals} signal State machine signal.\n * @throws Error if invalid state transition or unrecognized signal.\n * @sideeffects\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _receiveSignal: function (signal: Signal, e: PressEvent) {\n const responderID = this.state.touchable.responderID;\n const curState = this.state.touchable.touchState;\n const nextState = Transitions[curState] && Transitions[curState][signal];\n if (!responderID && signal === Signals.RESPONDER_RELEASE) {\n return;\n }\n if (!nextState) {\n throw new Error(\n 'Unrecognized signal `' +\n signal +\n '` or state `' +\n curState +\n '` for Touchable responder `' +\n typeof this.state.touchable.responderID ===\n 'number'\n ? this.state.touchable.responderID\n : 'host component' + '`',\n );\n }\n if (nextState === States.ERROR) {\n throw new Error(\n 'Touchable cannot transition from `' +\n curState +\n '` to `' +\n signal +\n '` for responder `' +\n typeof this.state.touchable.responderID ===\n 'number'\n ? this.state.touchable.responderID\n : '<>' + '`',\n );\n }\n if (curState !== nextState) {\n this._performSideEffectsForTransition(curState, nextState, signal, e);\n this.state.touchable.touchState = nextState;\n }\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _cancelLongPressDelayTimeout: function () {\n this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n this.longPressDelayTimeout = null;\n },\n\n _isHighlight: function (state: State): boolean {\n return (\n state === States.RESPONDER_ACTIVE_PRESS_IN ||\n state === States.RESPONDER_ACTIVE_LONG_PRESS_IN\n );\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _savePressInLocation: function (e: PressEvent) {\n const touch = extractSingleTouch(e.nativeEvent);\n const pageX = touch && touch.pageX;\n const pageY = touch && touch.pageY;\n const locationX = touch && touch.locationX;\n const locationY = touch && touch.locationY;\n this.pressInLocation = {pageX, pageY, locationX, locationY};\n },\n\n _getDistanceBetweenPoints: function (\n aX: number,\n aY: number,\n bX: number,\n bY: number,\n ): number {\n const deltaX = aX - bX;\n const deltaY = aY - bY;\n return Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n },\n\n /**\n * Will perform a transition between touchable states, and identify any\n * highlighting or unhighlighting that must be performed for this particular\n * transition.\n *\n * @param {States} curState Current Touchable state.\n * @param {States} nextState Next Touchable state.\n * @param {Signal} signal Signal that triggered the transition.\n * @param {Event} e Native event.\n * @sideeffects\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _performSideEffectsForTransition: function (\n curState: State,\n nextState: State,\n signal: Signal,\n e: PressEvent,\n ) {\n const curIsHighlight = this._isHighlight(curState);\n const newIsHighlight = this._isHighlight(nextState);\n\n const isFinalSignal =\n signal === Signals.RESPONDER_TERMINATED ||\n signal === Signals.RESPONDER_RELEASE;\n\n if (isFinalSignal) {\n this._cancelLongPressDelayTimeout();\n }\n\n const isInitialTransition =\n curState === States.NOT_RESPONDER &&\n nextState === States.RESPONDER_INACTIVE_PRESS_IN;\n\n const isActiveTransition = !IsActive[curState] && IsActive[nextState];\n if (isInitialTransition || isActiveTransition) {\n this._remeasureMetricsOnActivation();\n }\n\n if (IsPressingIn[curState] && signal === Signals.LONG_PRESS_DETECTED) {\n this.touchableHandleLongPress && this.touchableHandleLongPress(e);\n }\n\n if (newIsHighlight && !curIsHighlight) {\n this._startHighlight(e);\n } else if (!newIsHighlight && curIsHighlight) {\n this._endHighlight(e);\n }\n\n if (IsPressingIn[curState] && signal === Signals.RESPONDER_RELEASE) {\n const hasLongPressHandler = !!this.props.onLongPress;\n const pressIsLongButStillCallOnPress =\n IsLongPressingIn[curState] && // We *are* long pressing.. // But either has no long handler\n (!hasLongPressHandler || !this.touchableLongPressCancelsPress()); // or we're told to ignore it.\n\n const shouldInvokePress =\n !IsLongPressingIn[curState] || pressIsLongButStillCallOnPress;\n if (shouldInvokePress && this.touchableHandlePress) {\n if (!newIsHighlight && !curIsHighlight) {\n // we never highlighted because of delay, but we should highlight now\n this._startHighlight(e);\n this._endHighlight(e);\n }\n if (Platform.OS === 'android' && !this.props.touchSoundDisabled) {\n SoundManager.playTouchSound();\n }\n this.touchableHandlePress(e);\n }\n }\n\n this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n this.touchableDelayTimeout = null;\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _startHighlight: function (e: PressEvent) {\n this._savePressInLocation(e);\n this.touchableHandleActivePressIn && this.touchableHandleActivePressIn(e);\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _endHighlight: function (e: PressEvent) {\n if (this.touchableHandleActivePressOut) {\n if (\n this.touchableGetPressOutDelayMS &&\n this.touchableGetPressOutDelayMS()\n ) {\n this.pressOutDelayTimeout = setTimeout(() => {\n this.touchableHandleActivePressOut(e);\n }, this.touchableGetPressOutDelayMS());\n } else {\n this.touchableHandleActivePressOut(e);\n }\n }\n },\n\n withoutDefaultFocusAndBlur: ({}: {...}),\n};\n\n/**\n * Provide an optional version of the mixin where `touchableHandleFocus` and\n * `touchableHandleBlur` can be overridden. This allows appropriate defaults to\n * be set on TV platforms, without breaking existing implementations of\n * `Touchable`.\n */\nconst {\n touchableHandleFocus,\n touchableHandleBlur,\n ...TouchableMixinWithoutDefaultFocusAndBlur\n} = TouchableMixin;\nTouchableMixin.withoutDefaultFocusAndBlur =\n TouchableMixinWithoutDefaultFocusAndBlur;\n\nconst Touchable: TouchableType = {\n Mixin: TouchableMixin,\n /**\n * Renders a debugging overlay to visualize touch target with hitSlop (might not work on Android).\n */\n renderDebugView: ({\n color,\n hitSlop,\n }: {\n color: ColorValue,\n hitSlop: EdgeInsetsProp,\n ...\n }): null | React.Node => {\n if (__DEV__) {\n return ;\n }\n return null;\n },\n};\n\nmodule.exports = Touchable;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\nimport PooledClass from './PooledClass';\n\nconst twoArgumentPooler = PooledClass.twoArgumentPooler;\n\n/**\n * PooledClass representing the bounding rectangle of a region.\n *\n * @param {number} width Width of bounding rectangle.\n * @param {number} height Height of bounding rectangle.\n * @constructor BoundingDimensions\n */\nfunction BoundingDimensions(width, height) {\n this.width = width;\n this.height = height;\n}\n\nBoundingDimensions.prototype.destructor = function () {\n this.width = null;\n this.height = null;\n};\n\n/**\n * @param {HTMLElement} element Element to return `BoundingDimensions` for.\n * @return {BoundingDimensions} Bounding dimensions of `element`.\n */\nBoundingDimensions.getPooledFromElement = function (element) {\n return BoundingDimensions.getPooled(\n element.offsetWidth,\n element.offsetHeight,\n );\n};\n\nPooledClass.addPoolingTo(BoundingDimensions, twoArgumentPooler);\n\nmodule.exports = BoundingDimensions;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\nimport invariant from 'invariant';\n\n/**\n * Static poolers. Several custom versions for each potential number of\n * arguments. A completely generic pooler is easy to implement, but would\n * require accessing the `arguments` object. In each of these, `this` refers to\n * the Class itself, not an instance. If any others are needed, simply add them\n * here, or in their own files.\n */\n/* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\nconst oneArgumentPooler = function (copyFieldsFrom: any) {\n const Klass = this; // eslint-disable-line consistent-this\n if (Klass.instancePool.length) {\n const instance = Klass.instancePool.pop();\n Klass.call(instance, copyFieldsFrom);\n return instance;\n } else {\n return new Klass(copyFieldsFrom);\n }\n};\n\n/* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\nconst twoArgumentPooler = function (a1: any, a2: any) {\n const Klass = this; // eslint-disable-line consistent-this\n if (Klass.instancePool.length) {\n const instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2);\n return instance;\n } else {\n return new Klass(a1, a2);\n }\n};\n\n/* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\nconst threeArgumentPooler = function (a1: any, a2: any, a3: any) {\n const Klass = this; // eslint-disable-line consistent-this\n if (Klass.instancePool.length) {\n const instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3);\n return instance;\n } else {\n return new Klass(a1, a2, a3);\n }\n};\n\n/* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\nconst fourArgumentPooler = function (a1: any, a2: any, a3: any, a4: any) {\n const Klass = this; // eslint-disable-line consistent-this\n if (Klass.instancePool.length) {\n const instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3, a4);\n return instance;\n } else {\n return new Klass(a1, a2, a3, a4);\n }\n};\n\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n/* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\nconst standardReleaser = function (instance) {\n const Klass = this; // eslint-disable-line consistent-this\n invariant(\n instance instanceof Klass,\n 'Trying to release an instance into a pool of a different type.',\n );\n instance.destructor();\n if (Klass.instancePool.length < Klass.poolSize) {\n Klass.instancePool.push(instance);\n }\n};\n\nconst DEFAULT_POOL_SIZE = 10;\nconst DEFAULT_POOLER = oneArgumentPooler;\n\ntype Pooler = any;\n\n/**\n * Augments `CopyConstructor` to be a poolable class, augmenting only the class\n * itself (statically) not adding any prototypical fields. Any CopyConstructor\n * you give this may have a `poolSize` property, and will look for a\n * prototypical `destructor` on instances.\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\nconst addPoolingTo = function (\n CopyConstructor: Class,\n pooler: Pooler,\n): Class & {\n getPooled(\n ...args: $ReadOnlyArray\n ): /* arguments of the constructor */ T,\n release(instance: mixed): void,\n ...\n} {\n // Casting as any so that flow ignores the actual implementation and trusts\n // it to match the type we declared\n const NewKlass = (CopyConstructor: any);\n NewKlass.instancePool = [];\n NewKlass.getPooled = pooler || DEFAULT_POOLER;\n if (!NewKlass.poolSize) {\n NewKlass.poolSize = DEFAULT_POOL_SIZE;\n }\n NewKlass.release = standardReleaser;\n return NewKlass;\n};\n\nconst PooledClass = {\n addPoolingTo: addPoolingTo,\n oneArgumentPooler: (oneArgumentPooler: Pooler),\n twoArgumentPooler: (twoArgumentPooler: Pooler),\n threeArgumentPooler: (threeArgumentPooler: Pooler),\n fourArgumentPooler: (fourArgumentPooler: Pooler),\n};\n\nmodule.exports = PooledClass;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\nimport PooledClass from './PooledClass';\n\nconst twoArgumentPooler = PooledClass.twoArgumentPooler;\n\n/**\n * Position does not expose methods for construction via an `HTMLDOMElement`,\n * because it isn't meaningful to construct such a thing without first defining\n * a frame of reference.\n *\n * @param {number} windowStartKey Key that window starts at.\n * @param {number} windowEndKey Key that window ends at.\n */\nfunction Position(left, top) {\n this.left = left;\n this.top = top;\n}\n\nPosition.prototype.destructor = function () {\n this.left = null;\n this.top = null;\n};\n\nPooledClass.addPoolingTo(Position, twoArgumentPooler);\n\nmodule.exports = Position;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport typeof TouchableWithoutFeedback from './TouchableWithoutFeedback';\n\nimport View from '../../Components/View/View';\nimport Pressability, {\n type PressabilityConfig,\n} from '../../Pressability/Pressability';\nimport {PressabilityDebugView} from '../../Pressability/PressabilityDebug';\nimport StyleSheet, {type ViewStyleProp} from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport * as React from 'react';\n\ntype AndroidProps = $ReadOnly<{|\n nextFocusDown?: ?number,\n nextFocusForward?: ?number,\n nextFocusLeft?: ?number,\n nextFocusRight?: ?number,\n nextFocusUp?: ?number,\n|}>;\n\ntype IOSProps = $ReadOnly<{|\n hasTVPreferredFocus?: ?boolean,\n|}>;\n\ntype Props = $ReadOnly<{|\n ...React.ElementConfig,\n ...AndroidProps,\n ...IOSProps,\n\n activeOpacity?: ?number,\n underlayColor?: ?ColorValue,\n style?: ?ViewStyleProp,\n onShowUnderlay?: ?() => void,\n onHideUnderlay?: ?() => void,\n testOnly_pressed?: ?boolean,\n\n hostRef: React.Ref,\n|}>;\n\ntype ExtraStyles = $ReadOnly<{|\n child: ViewStyleProp,\n underlay: ViewStyleProp,\n|}>;\n\ntype State = $ReadOnly<{|\n pressability: Pressability,\n extraStyles: ?ExtraStyles,\n|}>;\n\n/**\n * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, which allows\n * the underlay color to show through, darkening or tinting the view.\n *\n * The underlay comes from wrapping the child in a new View, which can affect\n * layout, and sometimes cause unwanted visual artifacts if not used correctly,\n * for example if the backgroundColor of the wrapped view isn't explicitly set\n * to an opaque color.\n *\n * TouchableHighlight must have one child (not zero or more than one).\n * If you wish to have several child components, wrap them in a View.\n *\n * Example:\n *\n * ```\n * renderButton: function() {\n * return (\n * \n * \n * \n * );\n * },\n * ```\n *\n *\n * ### Example\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react'\n * import {\n * AppRegistry,\n * StyleSheet,\n * TouchableHighlight,\n * Text,\n * View,\n * } from 'react-native'\n *\n * class App extends Component {\n * constructor(props) {\n * super(props)\n * this.state = { count: 0 }\n * }\n *\n * onPress = () => {\n * this.setState({\n * count: this.state.count+1\n * })\n * }\n *\n * render() {\n * return (\n * \n * \n * Touch Here \n * \n * \n * \n * { this.state.count !== 0 ? this.state.count: null}\n * \n * \n * \n * )\n * }\n * }\n *\n * const styles = StyleSheet.create({\n * container: {\n * flex: 1,\n * justifyContent: 'center',\n * paddingHorizontal: 10\n * },\n * button: {\n * alignItems: 'center',\n * backgroundColor: '#DDDDDD',\n * padding: 10\n * },\n * countContainer: {\n * alignItems: 'center',\n * padding: 10\n * },\n * countText: {\n * color: '#FF00FF'\n * }\n * })\n *\n * AppRegistry.registerComponent('App', () => App)\n * ```\n *\n */\nclass TouchableHighlight extends React.Component {\n _hideTimeout: ?TimeoutID;\n _isMounted: boolean = false;\n\n state: State = {\n pressability: new Pressability(this._createPressabilityConfig()),\n extraStyles:\n this.props.testOnly_pressed === true ? this._createExtraStyles() : null,\n };\n\n _createPressabilityConfig(): PressabilityConfig {\n return {\n cancelable: !this.props.rejectResponderTermination,\n disabled:\n this.props.disabled != null\n ? this.props.disabled\n : this.props.accessibilityState?.disabled,\n hitSlop: this.props.hitSlop,\n delayLongPress: this.props.delayLongPress,\n delayPressIn: this.props.delayPressIn,\n delayPressOut: this.props.delayPressOut,\n minPressDuration: 0,\n pressRectOffset: this.props.pressRetentionOffset,\n android_disableSound: this.props.touchSoundDisabled,\n onBlur: event => {\n if (Platform.isTV) {\n this._hideUnderlay();\n }\n if (this.props.onBlur != null) {\n this.props.onBlur(event);\n }\n },\n onFocus: event => {\n if (Platform.isTV) {\n this._showUnderlay();\n }\n if (this.props.onFocus != null) {\n this.props.onFocus(event);\n }\n },\n onLongPress: this.props.onLongPress,\n onPress: event => {\n if (this._hideTimeout != null) {\n clearTimeout(this._hideTimeout);\n }\n if (!Platform.isTV) {\n this._showUnderlay();\n this._hideTimeout = setTimeout(() => {\n this._hideUnderlay();\n }, this.props.delayPressOut ?? 0);\n }\n if (this.props.onPress != null) {\n this.props.onPress(event);\n }\n },\n onPressIn: event => {\n if (this._hideTimeout != null) {\n clearTimeout(this._hideTimeout);\n this._hideTimeout = null;\n }\n this._showUnderlay();\n if (this.props.onPressIn != null) {\n this.props.onPressIn(event);\n }\n },\n onPressOut: event => {\n if (this._hideTimeout == null) {\n this._hideUnderlay();\n }\n if (this.props.onPressOut != null) {\n this.props.onPressOut(event);\n }\n },\n };\n }\n\n _createExtraStyles(): ExtraStyles {\n return {\n child: {opacity: this.props.activeOpacity ?? 0.85},\n underlay: {\n backgroundColor:\n this.props.underlayColor === undefined\n ? 'black'\n : this.props.underlayColor,\n },\n };\n }\n\n _showUnderlay(): void {\n if (!this._isMounted || !this._hasPressHandler()) {\n return;\n }\n this.setState({extraStyles: this._createExtraStyles()});\n if (this.props.onShowUnderlay != null) {\n this.props.onShowUnderlay();\n }\n }\n\n _hideUnderlay(): void {\n if (this._hideTimeout != null) {\n clearTimeout(this._hideTimeout);\n this._hideTimeout = null;\n }\n if (this.props.testOnly_pressed === true) {\n return;\n }\n if (this._hasPressHandler()) {\n this.setState({extraStyles: null});\n if (this.props.onHideUnderlay != null) {\n this.props.onHideUnderlay();\n }\n }\n }\n\n _hasPressHandler(): boolean {\n return (\n this.props.onPress != null ||\n this.props.onPressIn != null ||\n this.props.onPressOut != null ||\n this.props.onLongPress != null\n );\n }\n\n render(): React.Node {\n const child = React.Children.only<$FlowFixMe>(this.props.children);\n\n // BACKWARD-COMPATIBILITY: Focus and blur events were never supported before\n // adopting `Pressability`, so preserve that behavior.\n const {onBlur, onFocus, ...eventHandlersWithoutBlurAndFocus} =\n this.state.pressability.getEventHandlers();\n\n const accessibilityState =\n this.props.disabled != null\n ? {\n ...this.props.accessibilityState,\n disabled: this.props.disabled,\n }\n : this.props.accessibilityState;\n\n const accessibilityValue = {\n max: this.props['aria-valuemax'] ?? this.props.accessibilityValue?.max,\n min: this.props['aria-valuemin'] ?? this.props.accessibilityValue?.min,\n now: this.props['aria-valuenow'] ?? this.props.accessibilityValue?.now,\n text: this.props['aria-valuetext'] ?? this.props.accessibilityValue?.text,\n };\n\n const accessibilityLiveRegion =\n this.props['aria-live'] === 'off'\n ? 'none'\n : this.props['aria-live'] ?? this.props.accessibilityLiveRegion;\n\n const accessibilityLabel =\n this.props['aria-label'] ?? this.props.accessibilityLabel;\n return (\n \n {React.cloneElement(child, {\n style: StyleSheet.compose(\n child.props.style,\n this.state.extraStyles?.child,\n ),\n })}\n {__DEV__ ? (\n \n ) : null}\n \n );\n }\n\n componentDidMount(): void {\n this._isMounted = true;\n }\n\n componentDidUpdate(prevProps: Props, prevState: State) {\n this.state.pressability.configure(this._createPressabilityConfig());\n }\n\n componentWillUnmount(): void {\n this._isMounted = false;\n if (this._hideTimeout != null) {\n clearTimeout(this._hideTimeout);\n }\n this.state.pressability.reset();\n }\n}\n\nconst Touchable = (React.forwardRef((props, hostRef) => (\n \n)): React.AbstractComponent<\n $ReadOnly<$Diff|}>>,\n React.ElementRef,\n>);\n\nTouchable.displayName = 'TouchableHighlight';\n\nmodule.exports = Touchable;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n AccessibilityActionEvent,\n AccessibilityActionInfo,\n AccessibilityRole,\n AccessibilityState,\n AccessibilityValue,\n} from '../../Components/View/ViewAccessibility';\nimport type {EdgeInsetsOrSizeProp} from '../../StyleSheet/EdgeInsetsPropType';\nimport type {\n BlurEvent,\n FocusEvent,\n LayoutEvent,\n PressEvent,\n} from '../../Types/CoreEventTypes';\n\nimport View from '../../Components/View/View';\nimport Pressability, {\n type PressabilityConfig,\n} from '../../Pressability/Pressability';\nimport {PressabilityDebugView} from '../../Pressability/PressabilityDebug';\nimport * as React from 'react';\n\ntype Props = $ReadOnly<{|\n accessibilityActions?: ?$ReadOnlyArray,\n accessibilityElementsHidden?: ?boolean,\n accessibilityHint?: ?Stringish,\n accessibilityLanguage?: ?Stringish,\n accessibilityIgnoresInvertColors?: ?boolean,\n accessibilityLabel?: ?Stringish,\n accessibilityLiveRegion?: ?('none' | 'polite' | 'assertive'),\n accessibilityRole?: ?AccessibilityRole,\n accessibilityState?: ?AccessibilityState,\n accessibilityValue?: ?AccessibilityValue,\n 'aria-valuemax'?: AccessibilityValue['max'],\n 'aria-valuemin'?: AccessibilityValue['min'],\n 'aria-valuenow'?: AccessibilityValue['now'],\n 'aria-valuetext'?: AccessibilityValue['text'],\n accessibilityViewIsModal?: ?boolean,\n 'aria-modal'?: ?boolean,\n accessible?: ?boolean,\n /**\n * alias for accessibilityState\n *\n * see https://reactnative.dev/docs/accessibility#accessibilitystate\n */\n 'aria-busy'?: ?boolean,\n 'aria-checked'?: ?boolean | 'mixed',\n 'aria-disabled'?: ?boolean,\n 'aria-expanded'?: ?boolean,\n 'aria-selected'?: ?boolean,\n 'aria-hidden'?: ?boolean,\n 'aria-live'?: ?('polite' | 'assertive' | 'off'),\n 'aria-label'?: ?Stringish,\n children?: ?React.Node,\n delayLongPress?: ?number,\n delayPressIn?: ?number,\n delayPressOut?: ?number,\n disabled?: ?boolean,\n focusable?: ?boolean,\n hitSlop?: ?EdgeInsetsOrSizeProp,\n id?: string,\n importantForAccessibility?: ?('auto' | 'yes' | 'no' | 'no-hide-descendants'),\n nativeID?: ?string,\n onAccessibilityAction?: ?(event: AccessibilityActionEvent) => mixed,\n onBlur?: ?(event: BlurEvent) => mixed,\n onFocus?: ?(event: FocusEvent) => mixed,\n onLayout?: ?(event: LayoutEvent) => mixed,\n onLongPress?: ?(event: PressEvent) => mixed,\n onPress?: ?(event: PressEvent) => mixed,\n onPressIn?: ?(event: PressEvent) => mixed,\n onPressOut?: ?(event: PressEvent) => mixed,\n pressRetentionOffset?: ?EdgeInsetsOrSizeProp,\n rejectResponderTermination?: ?boolean,\n testID?: ?string,\n touchSoundDisabled?: ?boolean,\n|}>;\n\ntype State = $ReadOnly<{|\n pressability: Pressability,\n|}>;\n\nconst PASSTHROUGH_PROPS = [\n 'accessibilityActions',\n 'accessibilityElementsHidden',\n 'accessibilityHint',\n 'accessibilityLanguage',\n 'accessibilityIgnoresInvertColors',\n 'accessibilityLabel',\n 'accessibilityLiveRegion',\n 'accessibilityRole',\n 'accessibilityValue',\n 'aria-valuemax',\n 'aria-valuemin',\n 'aria-valuenow',\n 'aria-valuetext',\n 'accessibilityViewIsModal',\n 'aria-modal',\n 'hitSlop',\n 'importantForAccessibility',\n 'nativeID',\n 'onAccessibilityAction',\n 'onBlur',\n 'onFocus',\n 'onLayout',\n 'testID',\n];\n\nclass TouchableWithoutFeedback extends React.Component {\n state: State = {\n pressability: new Pressability(createPressabilityConfig(this.props)),\n };\n\n render(): React.Node {\n const element = React.Children.only<$FlowFixMe>(this.props.children);\n const children: Array = [element.props.children];\n const ariaLive = this.props['aria-live'];\n\n if (__DEV__) {\n if (element.type === View) {\n children.push(\n ,\n );\n }\n }\n\n let _accessibilityState = {\n busy: this.props['aria-busy'] ?? this.props.accessibilityState?.busy,\n checked:\n this.props['aria-checked'] ?? this.props.accessibilityState?.checked,\n disabled:\n this.props['aria-disabled'] ?? this.props.accessibilityState?.disabled,\n expanded:\n this.props['aria-expanded'] ?? this.props.accessibilityState?.expanded,\n selected:\n this.props['aria-selected'] ?? this.props.accessibilityState?.selected,\n };\n\n // BACKWARD-COMPATIBILITY: Focus and blur events were never supported before\n // adopting `Pressability`, so preserve that behavior.\n const {onBlur, onFocus, ...eventHandlersWithoutBlurAndFocus} =\n this.state.pressability.getEventHandlers();\n\n const elementProps: {[string]: mixed, ...} = {\n ...eventHandlersWithoutBlurAndFocus,\n accessible: this.props.accessible !== false,\n accessibilityState:\n this.props.disabled != null\n ? {\n ..._accessibilityState,\n disabled: this.props.disabled,\n }\n : _accessibilityState,\n focusable:\n this.props.focusable !== false && this.props.onPress !== undefined,\n\n accessibilityElementsHidden:\n this.props['aria-hidden'] ?? this.props.accessibilityElementsHidden,\n importantForAccessibility:\n this.props['aria-hidden'] === true\n ? 'no-hide-descendants'\n : this.props.importantForAccessibility,\n accessibilityLiveRegion:\n ariaLive === 'off'\n ? 'none'\n : ariaLive ?? this.props.accessibilityLiveRegion,\n nativeID: this.props.id ?? this.props.nativeID,\n };\n for (const prop of PASSTHROUGH_PROPS) {\n if (this.props[prop] !== undefined) {\n elementProps[prop] = this.props[prop];\n }\n }\n\n return React.cloneElement(element, elementProps, ...children);\n }\n\n componentDidUpdate(): void {\n this.state.pressability.configure(createPressabilityConfig(this.props));\n }\n\n componentWillUnmount(): void {\n this.state.pressability.reset();\n }\n}\n\nfunction createPressabilityConfig({\n 'aria-disabled': ariaDisabled,\n ...props\n}: Props): PressabilityConfig {\n const accessibilityStateDisabled =\n ariaDisabled ?? props.accessibilityState?.disabled;\n return {\n cancelable: !props.rejectResponderTermination,\n disabled:\n props.disabled !== null ? props.disabled : accessibilityStateDisabled,\n hitSlop: props.hitSlop,\n delayLongPress: props.delayLongPress,\n delayPressIn: props.delayPressIn,\n delayPressOut: props.delayPressOut,\n minPressDuration: 0,\n pressRectOffset: props.pressRetentionOffset,\n android_disableSound: props.touchSoundDisabled,\n onBlur: props.onBlur,\n onFocus: props.onFocus,\n onLongPress: props.onLongPress,\n onPress: props.onPress,\n onPressIn: props.onPressIn,\n onPressOut: props.onPressOut,\n };\n}\n\nTouchableWithoutFeedback.displayName = 'TouchableWithoutFeedback';\n\nmodule.exports = TouchableWithoutFeedback;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport {typeof VirtualizedList as VirtualizedListType} from '@react-native/virtualized-lists';\n\nconst VirtualizedList: VirtualizedListType =\n require('@react-native/virtualized-lists').VirtualizedList;\n\nexport type {\n RenderItemProps,\n RenderItemType,\n Separators,\n} from '@react-native/virtualized-lists';\nmodule.exports = VirtualizedList;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport {typeof VirtualizedSectionList as VirtualizedSectionListType} from '@react-native/virtualized-lists';\n\nconst VirtualizedSectionList: VirtualizedSectionListType =\n require('@react-native/virtualized-lists').VirtualizedSectionList;\n\nexport type {\n SectionBase,\n ScrollToLocationParamsType,\n} from '@react-native/virtualized-lists';\nmodule.exports = VirtualizedSectionList;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {ProcessedColorValue} from '../StyleSheet/processColor';\nimport type {ColorValue} from '../StyleSheet/StyleSheet';\n\nimport RCTActionSheetManager from './NativeActionSheetManager';\n\nconst processColor = require('../StyleSheet/processColor').default;\nconst invariant = require('invariant');\n\n/**\n * Display action sheets and share sheets on iOS.\n *\n * See https://reactnative.dev/docs/actionsheetios\n */\nconst ActionSheetIOS = {\n /**\n * Display an iOS action sheet.\n *\n * The `options` object must contain one or more of:\n *\n * - `options` (array of strings) - a list of button titles (required)\n * - `cancelButtonIndex` (int) - index of cancel button in `options`\n * - `destructiveButtonIndex` (int or array of ints) - index or indices of destructive buttons in `options`\n * - `title` (string) - a title to show above the action sheet\n * - `message` (string) - a message to show below the title\n * - `disabledButtonIndices` (array of numbers) - a list of button indices which should be disabled\n *\n * The 'callback' function takes one parameter, the zero-based index\n * of the selected item.\n *\n * See https://reactnative.dev/docs/actionsheetios#showactionsheetwithoptions\n */\n showActionSheetWithOptions(\n options: {|\n +title?: ?string,\n +message?: ?string,\n +options: Array,\n +destructiveButtonIndex?: ?number | ?Array,\n +cancelButtonIndex?: ?number,\n +anchor?: ?number,\n +tintColor?: ColorValue | ProcessedColorValue,\n +cancelButtonTintColor?: ColorValue | ProcessedColorValue,\n +userInterfaceStyle?: string,\n +disabledButtonIndices?: Array,\n |},\n callback: (buttonIndex: number) => void,\n ) {\n invariant(\n typeof options === 'object' && options !== null,\n 'Options must be a valid object',\n );\n invariant(typeof callback === 'function', 'Must provide a valid callback');\n invariant(RCTActionSheetManager, \"ActionSheetManager doesn't exist\");\n\n const {\n tintColor,\n cancelButtonTintColor,\n destructiveButtonIndex,\n ...remainingOptions\n } = options;\n let destructiveButtonIndices = null;\n\n if (Array.isArray(destructiveButtonIndex)) {\n destructiveButtonIndices = destructiveButtonIndex;\n } else if (typeof destructiveButtonIndex === 'number') {\n destructiveButtonIndices = [destructiveButtonIndex];\n }\n\n const processedTintColor = processColor(tintColor);\n const processedCancelButtonTintColor = processColor(cancelButtonTintColor);\n invariant(\n processedTintColor == null || typeof processedTintColor === 'number',\n 'Unexpected color given for ActionSheetIOS.showActionSheetWithOptions tintColor',\n );\n invariant(\n processedCancelButtonTintColor == null ||\n typeof processedCancelButtonTintColor === 'number',\n 'Unexpected color given for ActionSheetIOS.showActionSheetWithOptions cancelButtonTintColor',\n );\n RCTActionSheetManager.showActionSheetWithOptions(\n {\n ...remainingOptions,\n tintColor: processedTintColor,\n cancelButtonTintColor: processedCancelButtonTintColor,\n destructiveButtonIndices,\n },\n callback,\n );\n },\n\n /**\n * Display the iOS share sheet. The `options` object should contain\n * one or both of `message` and `url` and can additionally have\n * a `subject` or `excludedActivityTypes`:\n *\n * - `url` (string) - a URL to share\n * - `message` (string) - a message to share\n * - `subject` (string) - a subject for the message\n * - `excludedActivityTypes` (array) - the activities to exclude from\n * the ActionSheet\n * - `tintColor` (color) - tint color of the buttons\n *\n * The 'failureCallback' function takes one parameter, an error object.\n * The only property defined on this object is an optional `stack` property\n * of type `string`.\n *\n * The 'successCallback' function takes two parameters:\n *\n * - a boolean value signifying success or failure\n * - a string that, in the case of success, indicates the method of sharing\n *\n * See https://reactnative.dev/docs/actionsheetios#showshareactionsheetwithoptions\n */\n showShareActionSheetWithOptions(\n options: Object,\n failureCallback: Function,\n successCallback: Function,\n ) {\n invariant(\n typeof options === 'object' && options !== null,\n 'Options must be a valid object',\n );\n invariant(\n typeof failureCallback === 'function',\n 'Must provide a valid failureCallback',\n );\n invariant(\n typeof successCallback === 'function',\n 'Must provide a valid successCallback',\n );\n invariant(RCTActionSheetManager, \"ActionSheetManager doesn't exist\");\n RCTActionSheetManager.showShareActionSheetWithOptions(\n {...options, tintColor: processColor(options.tintColor)},\n failureCallback,\n successCallback,\n );\n },\n\n dismissActionSheet: () => {\n invariant(RCTActionSheetManager, \"ActionSheetManager doesn't exist\");\n if (typeof RCTActionSheetManager.dismissActionSheet === 'function') {\n RCTActionSheetManager.dismissActionSheet();\n }\n },\n};\n\nmodule.exports = ActionSheetIOS;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {||};\n +showActionSheetWithOptions: (\n options: {|\n +title?: ?string,\n +message?: ?string,\n +options: ?Array,\n +destructiveButtonIndices?: ?Array,\n +cancelButtonIndex?: ?number,\n +anchor?: ?number,\n +tintColor?: ?number,\n +cancelButtonTintColor?: ?number,\n +userInterfaceStyle?: ?string,\n +disabledButtonIndices?: Array,\n |},\n callback: (buttonIndex: number) => void,\n ) => void;\n +showShareActionSheetWithOptions: (\n options: {|\n +message?: ?string,\n +url?: ?string,\n +subject?: ?string,\n +anchor?: ?number,\n +tintColor?: ?number,\n +cancelButtonTintColor?: ?number,\n +excludedActivityTypes?: ?Array,\n +userInterfaceStyle?: ?string,\n |},\n failureCallback: (error: {|\n +domain: string,\n +code: string,\n +userInfo?: ?Object,\n +message: string,\n |}) => void,\n successCallback: (completed: boolean, activityType: ?string) => void,\n ) => void;\n +dismissActionSheet?: () => void;\n}\n\nexport default (TurboModuleRegistry.get('ActionSheetManager'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport Platform from '../Utilities/Platform';\nimport EventEmitter, {\n type EventSubscription,\n} from '../vendor/emitter/EventEmitter';\nimport {isAsyncDebugging} from './DebugEnvironment';\nimport NativeAppearance, {\n type AppearancePreferences,\n type ColorSchemeName,\n} from './NativeAppearance';\nimport invariant from 'invariant';\n\ntype AppearanceListener = (preferences: AppearancePreferences) => void;\nconst eventEmitter = new EventEmitter<{\n change: [AppearancePreferences],\n}>();\n\ntype NativeAppearanceEventDefinitions = {\n appearanceChanged: [AppearancePreferences],\n};\n\nif (NativeAppearance) {\n const nativeEventEmitter =\n new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeAppearance,\n );\n nativeEventEmitter.addListener(\n 'appearanceChanged',\n (newAppearance: AppearancePreferences) => {\n const {colorScheme} = newAppearance;\n invariant(\n colorScheme === 'dark' ||\n colorScheme === 'light' ||\n colorScheme == null,\n \"Unrecognized color scheme. Did you mean 'dark' or 'light'?\",\n );\n eventEmitter.emit('change', {colorScheme});\n },\n );\n}\n\nmodule.exports = {\n /**\n * Note: Although color scheme is available immediately, it may change at any\n * time. Any rendering logic or styles that depend on this should try to call\n * this function on every render, rather than caching the value (for example,\n * using inline styles rather than setting a value in a `StyleSheet`).\n *\n * Example: `const colorScheme = Appearance.getColorScheme();`\n *\n * @returns {?ColorSchemeName} Value for the color scheme preference.\n */\n getColorScheme(): ?ColorSchemeName {\n if (__DEV__) {\n if (isAsyncDebugging) {\n // Hard code light theme when using the async debugger as\n // sync calls aren't supported\n return 'light';\n }\n }\n\n // TODO: (hramos) T52919652 Use ?ColorSchemeName once codegen supports union\n const nativeColorScheme: ?string =\n NativeAppearance == null\n ? null\n : NativeAppearance.getColorScheme() || null;\n invariant(\n nativeColorScheme === 'dark' ||\n nativeColorScheme === 'light' ||\n nativeColorScheme == null,\n \"Unrecognized color scheme. Did you mean 'dark' or 'light'?\",\n );\n return nativeColorScheme;\n },\n\n setColorScheme(colorScheme: ?ColorSchemeName): void {\n const nativeColorScheme = colorScheme == null ? 'unspecified' : colorScheme;\n\n invariant(\n colorScheme === 'dark' || colorScheme === 'light' || colorScheme == null,\n \"Unrecognized color scheme. Did you mean 'dark', 'light' or null?\",\n );\n\n if (NativeAppearance != null && NativeAppearance.setColorScheme != null) {\n NativeAppearance.setColorScheme(nativeColorScheme);\n }\n },\n\n /**\n * Add an event handler that is fired when appearance preferences change.\n */\n addChangeListener(listener: AppearanceListener): EventSubscription {\n return eventEmitter.addListener('change', listener);\n },\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport type ColorSchemeName = 'light' | 'dark';\n\nexport type AppearancePreferences = {|\n // TODO: (hramos) T52919652 Use ?ColorSchemeName once codegen supports union\n // types.\n /* 'light' | 'dark' */\n colorScheme?: ?string,\n|};\n\nexport interface Spec extends TurboModule {\n // TODO: (hramos) T52919652 Use ?ColorSchemeName once codegen supports union\n // types.\n /* 'light' | 'dark' */\n +getColorScheme: () => ?string;\n +setColorScheme?: (colorScheme: string) => void;\n\n // RCTEventEmitter\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.get('Appearance'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport logError from '../Utilities/logError';\nimport Platform from '../Utilities/Platform';\nimport {type EventSubscription} from '../vendor/emitter/EventEmitter';\nimport NativeAppState from './NativeAppState';\n\nexport type AppStateValues = 'inactive' | 'background' | 'active';\n\ntype AppStateEventDefinitions = {\n change: [AppStateValues],\n memoryWarning: [],\n blur: [],\n focus: [],\n};\n\ntype NativeAppStateEventDefinitions = {\n appStateDidChange: [{app_state: AppStateValues}],\n appStateFocusChange: [boolean],\n memoryWarning: [],\n};\n\n/**\n * `AppState` can tell you if the app is in the foreground or background,\n * and notify you when the state changes.\n *\n * See https://reactnative.dev/docs/appstate\n */\nclass AppState {\n currentState: ?string = null;\n isAvailable: boolean;\n\n _emitter: ?NativeEventEmitter;\n\n constructor() {\n if (NativeAppState == null) {\n this.isAvailable = false;\n } else {\n this.isAvailable = true;\n\n const emitter: NativeEventEmitter =\n new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeAppState,\n );\n this._emitter = emitter;\n\n this.currentState = NativeAppState.getConstants().initialAppState;\n\n let eventUpdated = false;\n\n // TODO: this is a terrible solution - in order to ensure `currentState`\n // prop is up to date, we have to register an observer that updates it\n // whenever the state changes, even if nobody cares. We should just\n // deprecate the `currentState` property and get rid of this.\n emitter.addListener('appStateDidChange', appStateData => {\n eventUpdated = true;\n this.currentState = appStateData.app_state;\n });\n\n // TODO: see above - this request just populates the value of `currentState`\n // when the module is first initialized. Would be better to get rid of the\n // prop and expose `getCurrentAppState` method directly.\n // $FlowExpectedError[incompatible-call]\n NativeAppState.getCurrentAppState(appStateData => {\n // It's possible that the state will have changed here & listeners need to be notified\n if (!eventUpdated && this.currentState !== appStateData.app_state) {\n this.currentState = appStateData.app_state;\n // $FlowFixMe[incompatible-call]\n emitter.emit('appStateDidChange', appStateData);\n }\n }, logError);\n }\n }\n\n /**\n * Add a handler to AppState changes by listening to the `change` event type\n * and providing the handler.\n *\n * See https://reactnative.dev/docs/appstate#addeventlistener\n */\n addEventListener>(\n type: K,\n handler: (...$ElementType) => void,\n ): EventSubscription {\n const emitter = this._emitter;\n if (emitter == null) {\n throw new Error('Cannot use AppState when `isAvailable` is false.');\n }\n switch (type) {\n case 'change':\n // $FlowIssue[invalid-tuple-arity] Flow cannot refine handler based on the event type\n const changeHandler: AppStateValues => void = handler;\n return emitter.addListener('appStateDidChange', appStateData => {\n changeHandler(appStateData.app_state);\n });\n case 'memoryWarning':\n // $FlowIssue[invalid-tuple-arity] Flow cannot refine handler based on the event type\n const memoryWarningHandler: () => void = handler;\n return emitter.addListener('memoryWarning', memoryWarningHandler);\n case 'blur':\n case 'focus':\n // $FlowIssue[invalid-tuple-arity] Flow cannot refine handler based on the event type\n const focusOrBlurHandler: () => void = handler;\n return emitter.addListener('appStateFocusChange', hasFocus => {\n if (type === 'blur' && !hasFocus) {\n focusOrBlurHandler();\n }\n if (type === 'focus' && hasFocus) {\n focusOrBlurHandler();\n }\n });\n }\n throw new Error('Trying to subscribe to unknown event: ' + type);\n }\n}\n\nmodule.exports = (new AppState(): AppState);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\n/**\n * Small utility that can be used as an error handler. You cannot just pass\n * `console.error` as a failure callback - it's not properly bound. If passes an\n * `Error` object, it will print the message and stack.\n */\nconst logError = function (...args: $ReadOnlyArray) {\n if (args.length === 1 && args[0] instanceof Error) {\n const err = args[0];\n console.error('Error: \"' + err.message + '\". Stack:\\n' + err.stack);\n } else {\n console.error.apply(console, args);\n }\n};\n\nmodule.exports = logError;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n initialAppState: string,\n |};\n +getCurrentAppState: (\n success: (appState: {|app_state: string|}) => void,\n error: (error: Object) => void,\n ) => void;\n\n // Events\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('AppState'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport NativeClipboard from './NativeClipboard';\n\n/**\n * `Clipboard` gives you an interface for setting and getting content from Clipboard on both iOS and Android\n */\nmodule.exports = {\n /**\n * Get content of string type, this method returns a `Promise`, so you can use following code to get clipboard content\n * ```javascript\n * async _getContent() {\n * var content = await Clipboard.getString();\n * }\n * ```\n */\n getString(): Promise {\n return NativeClipboard.getString();\n },\n /**\n * Set content of string type. You can use following code to set clipboard content\n * ```javascript\n * _setContent() {\n * Clipboard.setString('hello world');\n * }\n * ```\n * @param {string} content the content to be stored in the clipboard.\n */\n setString(content: string) {\n NativeClipboard.setString(content);\n },\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {||};\n +getString: () => Promise;\n +setString: (content: string) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('Clipboard'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport NativeDeviceInfo from './NativeDeviceInfo';\n\nmodule.exports = NativeDeviceInfo;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {EventSubscription} from '../vendor/emitter/EventEmitter';\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport NativeDevSettings from '../NativeModules/specs/NativeDevSettings';\nimport Platform from '../Utilities/Platform';\n\nlet DevSettings: {\n addMenuItem(title: string, handler: () => mixed): void,\n reload(reason?: string): void,\n onFastRefresh(): void,\n} = {\n addMenuItem(title: string, handler: () => mixed): void {},\n reload(reason?: string): void {},\n onFastRefresh(): void {},\n};\n\ntype DevSettingsEventDefinitions = {\n didPressMenuItem: [{title: string}],\n};\n\nif (__DEV__) {\n const emitter = new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeDevSettings,\n );\n const subscriptions = new Map();\n\n DevSettings = {\n addMenuItem(title: string, handler: () => mixed): void {\n // Make sure items are not added multiple times. This can\n // happen when hot reloading the module that registers the\n // menu items. The title is used as the id which means we\n // don't support multiple items with the same name.\n let subscription = subscriptions.get(title);\n if (subscription != null) {\n subscription.remove();\n } else {\n NativeDevSettings.addMenuItem(title);\n }\n\n subscription = emitter.addListener('didPressMenuItem', event => {\n if (event.title === title) {\n handler();\n }\n });\n subscriptions.set(title, subscription);\n },\n reload(reason?: string): void {\n if (NativeDevSettings.reloadWithReason != null) {\n NativeDevSettings.reloadWithReason(reason ?? 'Uncategorized from JS');\n } else {\n NativeDevSettings.reload();\n }\n },\n onFastRefresh(): void {\n NativeDevSettings.onFastRefresh?.();\n },\n };\n}\n\nmodule.exports = DevSettings;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +reload: () => void;\n +reloadWithReason?: (reason: string) => void;\n +onFastRefresh?: () => void;\n +setHotLoadingEnabled: (isHotLoadingEnabled: boolean) => void;\n +setIsDebuggingRemotely: (isDebuggingRemotelyEnabled: boolean) => void;\n +setProfilingEnabled: (isProfilingEnabled: boolean) => void;\n +toggleElementInspector: () => void;\n +addMenuItem: (title: string) => void;\n\n // Events\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n\n // iOS only.\n +setIsShakeToShowDevMenuEnabled: (enabled: boolean) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('DevSettings'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {EventSubscription} from '../vendor/emitter/EventEmitter';\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport Platform from '../Utilities/Platform';\nimport NativeIntentAndroid from './NativeIntentAndroid';\nimport NativeLinkingManager from './NativeLinkingManager';\nimport invariant from 'invariant';\nimport nullthrows from 'nullthrows';\n\ntype LinkingEventDefinitions = {\n url: [{url: string}],\n};\n\n/**\n * `Linking` gives you a general interface to interact with both incoming\n * and outgoing app links.\n *\n * See https://reactnative.dev/docs/linking\n */\nclass Linking extends NativeEventEmitter {\n constructor() {\n super(Platform.OS === 'ios' ? nullthrows(NativeLinkingManager) : undefined);\n }\n\n /**\n * Add a handler to Linking changes by listening to the `url` event type\n * and providing the handler\n *\n * See https://reactnative.dev/docs/linking#addeventlistener\n */\n addEventListener>(\n eventType: K,\n listener: (...$ElementType) => mixed,\n context: $FlowFixMe,\n ): EventSubscription {\n return this.addListener(eventType, listener);\n }\n\n /**\n * Try to open the given `url` with any of the installed apps.\n *\n * See https://reactnative.dev/docs/linking#openurl\n */\n openURL(url: string): Promise {\n this._validateURL(url);\n if (Platform.OS === 'android') {\n return nullthrows(NativeIntentAndroid).openURL(url);\n } else {\n return nullthrows(NativeLinkingManager).openURL(url);\n }\n }\n\n /**\n * Determine whether or not an installed app can handle a given URL.\n *\n * See https://reactnative.dev/docs/linking#canopenurl\n */\n canOpenURL(url: string): Promise {\n this._validateURL(url);\n if (Platform.OS === 'android') {\n return nullthrows(NativeIntentAndroid).canOpenURL(url);\n } else {\n return nullthrows(NativeLinkingManager).canOpenURL(url);\n }\n }\n\n /**\n * Open app settings.\n *\n * See https://reactnative.dev/docs/linking#opensettings\n */\n openSettings(): Promise {\n if (Platform.OS === 'android') {\n return nullthrows(NativeIntentAndroid).openSettings();\n } else {\n return nullthrows(NativeLinkingManager).openSettings();\n }\n }\n\n /**\n * If the app launch was triggered by an app link,\n * it will give the link url, otherwise it will give `null`\n *\n * See https://reactnative.dev/docs/linking#getinitialurl\n */\n getInitialURL(): Promise {\n return Platform.OS === 'android'\n ? nullthrows(NativeIntentAndroid).getInitialURL()\n : nullthrows(NativeLinkingManager).getInitialURL();\n }\n\n /*\n * Launch an Android intent with extras (optional)\n *\n * @platform android\n *\n * See https://reactnative.dev/docs/linking#sendintent\n */\n sendIntent(\n action: string,\n extras?: Array<{\n key: string,\n value: string | number | boolean,\n ...\n }>,\n ): Promise {\n if (Platform.OS === 'android') {\n return nullthrows(NativeIntentAndroid).sendIntent(action, extras);\n } else {\n return new Promise((resolve, reject) => reject(new Error('Unsupported')));\n }\n }\n\n _validateURL(url: string): void {\n invariant(\n typeof url === 'string',\n 'Invalid URL: should be a string. Was: ' + url,\n );\n invariant(url, 'Invalid URL: cannot be empty');\n }\n}\n\nmodule.exports = (new Linking(): Linking);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getInitialURL: () => Promise;\n +canOpenURL: (url: string) => Promise;\n +openURL: (url: string) => Promise;\n +openSettings: () => Promise;\n +sendIntent: (\n action: string,\n extras: ?Array<{\n key: string,\n value: string | number | boolean, // TODO(T67672788): Union types are not type safe\n ...\n }>,\n ) => Promise;\n}\n\nexport default (TurboModuleRegistry.get('IntentAndroid'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n // Common interface\n +getInitialURL: () => Promise;\n +canOpenURL: (url: string) => Promise;\n +openURL: (url: string) => Promise;\n +openSettings: () => Promise;\n\n // Events\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.get('LinkingManager'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {IgnorePattern, LogData} from './Data/LogBoxData';\nimport type {ExtendedExceptionData} from './Data/parseLogBoxLog';\n\nimport Platform from '../Utilities/Platform';\nimport RCTLog from '../Utilities/RCTLog';\n\nexport type {LogData, ExtendedExceptionData, IgnorePattern};\n\nlet LogBox;\n\ninterface ILogBox {\n install(): void;\n uninstall(): void;\n isInstalled(): boolean;\n ignoreLogs($ReadOnlyArray): void;\n ignoreAllLogs(?boolean): void;\n clearAllLogs(): void;\n addLog(log: LogData): void;\n addException(error: ExtendedExceptionData): void;\n}\n\n/**\n * LogBox displays logs in the app.\n */\nif (__DEV__) {\n const LogBoxData = require('./Data/LogBoxData');\n const {parseLogBoxLog, parseInterpolation} = require('./Data/parseLogBoxLog');\n\n let originalConsoleError;\n let originalConsoleWarn;\n let consoleErrorImpl;\n let consoleWarnImpl: (...args: Array) => void;\n\n let isLogBoxInstalled: boolean = false;\n\n LogBox = {\n install(): void {\n if (isLogBoxInstalled) {\n return;\n }\n\n isLogBoxInstalled = true;\n\n // Trigger lazy initialization of module.\n require('../NativeModules/specs/NativeLogBox');\n\n // IMPORTANT: we only overwrite `console.error` and `console.warn` once.\n // When we uninstall we keep the same reference and only change its\n // internal implementation\n const isFirstInstall = originalConsoleError == null;\n if (isFirstInstall) {\n originalConsoleError = console.error.bind(console);\n originalConsoleWarn = console.warn.bind(console);\n\n // $FlowExpectedError[cannot-write]\n console.error = (...args) => {\n consoleErrorImpl(...args);\n };\n // $FlowExpectedError[cannot-write]\n console.warn = (...args) => {\n consoleWarnImpl(...args);\n };\n }\n\n consoleErrorImpl = registerError;\n consoleWarnImpl = registerWarning;\n\n if (Platform.isTesting) {\n LogBoxData.setDisabled(true);\n }\n\n RCTLog.setWarningHandler((...args) => {\n registerWarning(...args);\n });\n },\n\n uninstall(): void {\n if (!isLogBoxInstalled) {\n return;\n }\n\n isLogBoxInstalled = false;\n\n // IMPORTANT: we don't re-assign to `console` in case the method has been\n // decorated again after installing LogBox. E.g.:\n // Before uninstalling: original > LogBox > OtherErrorHandler\n // After uninstalling: original > LogBox (noop) > OtherErrorHandler\n consoleErrorImpl = originalConsoleError;\n consoleWarnImpl = originalConsoleWarn;\n },\n\n isInstalled(): boolean {\n return isLogBoxInstalled;\n },\n\n ignoreLogs(patterns: $ReadOnlyArray): void {\n LogBoxData.addIgnorePatterns(patterns);\n },\n\n ignoreAllLogs(value?: ?boolean): void {\n LogBoxData.setDisabled(value == null ? true : value);\n },\n\n clearAllLogs(): void {\n LogBoxData.clear();\n },\n\n addLog(log: LogData): void {\n if (isLogBoxInstalled) {\n LogBoxData.addLog(log);\n }\n },\n\n addException(error: ExtendedExceptionData): void {\n if (isLogBoxInstalled) {\n LogBoxData.addException(error);\n }\n },\n };\n\n const isRCTLogAdviceWarning = (...args: Array) => {\n // RCTLogAdvice is a native logging function designed to show users\n // a message in the console, but not show it to them in Logbox.\n return typeof args[0] === 'string' && args[0].startsWith('(ADVICE)');\n };\n\n const isWarningModuleWarning = (...args: Array) => {\n return typeof args[0] === 'string' && args[0].startsWith('Warning: ');\n };\n\n const registerWarning = (...args: Array): void => {\n // Let warnings within LogBox itself fall through.\n if (LogBoxData.isLogBoxErrorMessage(String(args[0]))) {\n originalConsoleError(...args);\n return;\n } else {\n // Be sure to pass LogBox warnings through.\n originalConsoleWarn(...args);\n }\n\n try {\n if (!isRCTLogAdviceWarning(...args)) {\n const {category, message, componentStack} = parseLogBoxLog(args);\n\n if (!LogBoxData.isMessageIgnored(message.content)) {\n LogBoxData.addLog({\n level: 'warn',\n category,\n message,\n componentStack,\n });\n }\n }\n } catch (err) {\n LogBoxData.reportLogBoxError(err);\n }\n };\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n const registerError = (...args): void => {\n // Let errors within LogBox itself fall through.\n if (LogBoxData.isLogBoxErrorMessage(args[0])) {\n originalConsoleError(...args);\n return;\n }\n\n try {\n if (!isWarningModuleWarning(...args)) {\n // Only show LogBox for the 'warning' module, otherwise pass through.\n // By passing through, this will get picked up by the React console override,\n // potentially adding the component stack. React then passes it back to the\n // React Native ExceptionsManager, which reports it to LogBox as an error.\n //\n // The 'warning' module needs to be handled here because React internally calls\n // `console.error('Warning: ')` with the component stack already included.\n originalConsoleError(...args);\n return;\n }\n\n const format = args[0].replace('Warning: ', '');\n const filterResult = LogBoxData.checkWarningFilter(format);\n if (filterResult.suppressCompletely) {\n return;\n }\n\n let level = 'error';\n if (filterResult.suppressDialog_LEGACY === true) {\n level = 'warn';\n } else if (filterResult.forceDialogImmediately === true) {\n level = 'fatal'; // Do not downgrade. These are real bugs with same severity as throws.\n }\n\n // Unfortunately, we need to add the Warning: prefix back for downstream dependencies.\n args[0] = `Warning: ${filterResult.finalFormat}`;\n const {category, message, componentStack} = parseLogBoxLog(args);\n\n // Interpolate the message so they are formatted for adb and other CLIs.\n // This is different than the message.content above because it includes component stacks.\n const interpolated = parseInterpolation(args);\n originalConsoleError(interpolated.message.content);\n\n if (!LogBoxData.isMessageIgnored(message.content)) {\n LogBoxData.addLog({\n level,\n category,\n message,\n componentStack,\n });\n }\n } catch (err) {\n LogBoxData.reportLogBoxError(err);\n }\n };\n} else {\n LogBox = {\n install(): void {\n // Do nothing.\n },\n\n uninstall(): void {\n // Do nothing.\n },\n\n isInstalled(): boolean {\n return false;\n },\n\n ignoreLogs(patterns: $ReadOnlyArray): void {\n // Do nothing.\n },\n\n ignoreAllLogs(value?: ?boolean): void {\n // Do nothing.\n },\n\n clearAllLogs(): void {\n // Do nothing.\n },\n\n addLog(log: LogData): void {\n // Do nothing.\n },\n\n addException(error: ExtendedExceptionData): void {\n // Do nothing.\n },\n };\n}\n\nexport default (LogBox: ILogBox);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PressEvent} from '../Types/CoreEventTypes';\n\nconst InteractionManager = require('./InteractionManager');\nconst TouchHistoryMath = require('./TouchHistoryMath');\n\nconst currentCentroidXOfTouchesChangedAfter =\n TouchHistoryMath.currentCentroidXOfTouchesChangedAfter;\nconst currentCentroidYOfTouchesChangedAfter =\n TouchHistoryMath.currentCentroidYOfTouchesChangedAfter;\nconst previousCentroidXOfTouchesChangedAfter =\n TouchHistoryMath.previousCentroidXOfTouchesChangedAfter;\nconst previousCentroidYOfTouchesChangedAfter =\n TouchHistoryMath.previousCentroidYOfTouchesChangedAfter;\nconst currentCentroidX = TouchHistoryMath.currentCentroidX;\nconst currentCentroidY = TouchHistoryMath.currentCentroidY;\n\n/**\n * `PanResponder` reconciles several touches into a single gesture. It makes\n * single-touch gestures resilient to extra touches, and can be used to\n * recognize simple multi-touch gestures.\n *\n * By default, `PanResponder` holds an `InteractionManager` handle to block\n * long-running JS events from interrupting active gestures.\n *\n * It provides a predictable wrapper of the responder handlers provided by the\n * [gesture responder system](docs/gesture-responder-system.html).\n * For each handler, it provides a new `gestureState` object alongside the\n * native event object:\n *\n * ```\n * onPanResponderMove: (event, gestureState) => {}\n * ```\n *\n * A native event is a synthetic touch event with the following form:\n *\n * - `nativeEvent`\n * + `changedTouches` - Array of all touch events that have changed since the last event\n * + `identifier` - The ID of the touch\n * + `locationX` - The X position of the touch, relative to the element\n * + `locationY` - The Y position of the touch, relative to the element\n * + `pageX` - The X position of the touch, relative to the root element\n * + `pageY` - The Y position of the touch, relative to the root element\n * + `target` - The node id of the element receiving the touch event\n * + `timestamp` - A time identifier for the touch, useful for velocity calculation\n * + `touches` - Array of all current touches on the screen\n *\n * A `gestureState` object has the following:\n *\n * - `stateID` - ID of the gestureState- persisted as long as there at least\n * one touch on screen\n * - `moveX` - the latest screen coordinates of the recently-moved touch\n * - `moveY` - the latest screen coordinates of the recently-moved touch\n * - `x0` - the screen coordinates of the responder grant\n * - `y0` - the screen coordinates of the responder grant\n * - `dx` - accumulated distance of the gesture since the touch started\n * - `dy` - accumulated distance of the gesture since the touch started\n * - `vx` - current velocity of the gesture\n * - `vy` - current velocity of the gesture\n * - `numberActiveTouches` - Number of touches currently on screen\n *\n * ### Basic Usage\n *\n * ```\n * componentWillMount: function() {\n * this._panResponder = PanResponder.create({\n * // Ask to be the responder:\n * onStartShouldSetPanResponder: (evt, gestureState) => true,\n * onStartShouldSetPanResponderCapture: (evt, gestureState) => true,\n * onMoveShouldSetPanResponder: (evt, gestureState) => true,\n * onMoveShouldSetPanResponderCapture: (evt, gestureState) => true,\n *\n * onPanResponderGrant: (evt, gestureState) => {\n * // The gesture has started. Show visual feedback so the user knows\n * // what is happening!\n *\n * // gestureState.d{x,y} will be set to zero now\n * },\n * onPanResponderMove: (evt, gestureState) => {\n * // The most recent move distance is gestureState.move{X,Y}\n *\n * // The accumulated gesture distance since becoming responder is\n * // gestureState.d{x,y}\n * },\n * onPanResponderTerminationRequest: (evt, gestureState) => true,\n * onPanResponderRelease: (evt, gestureState) => {\n * // The user has released all touches while this view is the\n * // responder. This typically means a gesture has succeeded\n * },\n * onPanResponderTerminate: (evt, gestureState) => {\n * // Another component has become the responder, so this gesture\n * // should be cancelled\n * },\n * onShouldBlockNativeResponder: (evt, gestureState) => {\n * // Returns whether this component should block native components from becoming the JS\n * // responder. Returns true by default. Is currently only supported on android.\n * return true;\n * },\n * });\n * },\n *\n * render: function() {\n * return (\n * \n * );\n * },\n *\n * ```\n *\n * ### Working Example\n *\n * To see it in action, try the\n * [PanResponder example in RNTester](https://github.com/facebook/react-native/blob/HEAD/packages/rn-tester/js/examples/PanResponder/PanResponderExample.js)\n */\n\nexport type GestureState = {|\n /**\n * ID of the gestureState - persisted as long as there at least one touch on screen\n */\n stateID: number,\n\n /**\n * The latest screen coordinates of the recently-moved touch\n */\n moveX: number,\n\n /**\n * The latest screen coordinates of the recently-moved touch\n */\n moveY: number,\n\n /**\n * The screen coordinates of the responder grant\n */\n x0: number,\n\n /**\n * The screen coordinates of the responder grant\n */\n y0: number,\n\n /**\n * Accumulated distance of the gesture since the touch started\n */\n dx: number,\n\n /**\n * Accumulated distance of the gesture since the touch started\n */\n dy: number,\n\n /**\n * Current velocity of the gesture\n */\n vx: number,\n\n /**\n * Current velocity of the gesture\n */\n vy: number,\n\n /**\n * Number of touches currently on screen\n */\n numberActiveTouches: number,\n\n /**\n * All `gestureState` accounts for timeStamps up until this value\n *\n * @private\n */\n _accountsForMovesUpTo: number,\n|};\n\ntype ActiveCallback = (\n event: PressEvent,\n gestureState: GestureState,\n) => boolean;\n\ntype PassiveCallback = (event: PressEvent, gestureState: GestureState) => mixed;\n\nexport type PanHandlers = {|\n onMoveShouldSetResponder: (event: PressEvent) => boolean,\n onMoveShouldSetResponderCapture: (event: PressEvent) => boolean,\n onResponderEnd: (event: PressEvent) => void,\n onResponderGrant: (event: PressEvent) => boolean,\n onResponderMove: (event: PressEvent) => void,\n onResponderReject: (event: PressEvent) => void,\n onResponderRelease: (event: PressEvent) => void,\n onResponderStart: (event: PressEvent) => void,\n onResponderTerminate: (event: PressEvent) => void,\n onResponderTerminationRequest: (event: PressEvent) => boolean,\n onStartShouldSetResponder: (event: PressEvent) => boolean,\n onStartShouldSetResponderCapture: (event: PressEvent) => boolean,\n|};\n\ntype PanResponderConfig = $ReadOnly<{|\n onMoveShouldSetPanResponder?: ?ActiveCallback,\n onMoveShouldSetPanResponderCapture?: ?ActiveCallback,\n onStartShouldSetPanResponder?: ?ActiveCallback,\n onStartShouldSetPanResponderCapture?: ?ActiveCallback,\n /**\n * The body of `onResponderGrant` returns a bool, but the vast majority of\n * callsites return void and this TODO notice is found in it:\n * TODO: t7467124 investigate if this can be removed\n */\n onPanResponderGrant?: ?(PassiveCallback | ActiveCallback),\n onPanResponderReject?: ?PassiveCallback,\n onPanResponderStart?: ?PassiveCallback,\n onPanResponderEnd?: ?PassiveCallback,\n onPanResponderRelease?: ?PassiveCallback,\n onPanResponderMove?: ?PassiveCallback,\n onPanResponderTerminate?: ?PassiveCallback,\n onPanResponderTerminationRequest?: ?ActiveCallback,\n onShouldBlockNativeResponder?: ?ActiveCallback,\n|}>;\n\nconst PanResponder = {\n /**\n *\n * A graphical explanation of the touch data flow:\n *\n * +----------------------------+ +--------------------------------+\n * | ResponderTouchHistoryStore | |TouchHistoryMath |\n * +----------------------------+ +----------+---------------------+\n * |Global store of touchHistory| |Allocation-less math util |\n * |including activeness, start | |on touch history (centroids |\n * |position, prev/cur position.| |and multitouch movement etc) |\n * | | | |\n * +----^-----------------------+ +----^---------------------------+\n * | |\n * | (records relevant history |\n * | of touches relevant for |\n * | implementing higher level |\n * | gestures) |\n * | |\n * +----+-----------------------+ +----|---------------------------+\n * | ResponderEventPlugin | | | Your App/Component |\n * +----------------------------+ +----|---------------------------+\n * |Negotiates which view gets | Low level | | High level |\n * |onResponderMove events. | events w/ | +-+-------+ events w/ |\n * |Also records history into | touchHistory| | Pan | multitouch + |\n * |ResponderTouchHistoryStore. +---------------->Responder+-----> accumulative|\n * +----------------------------+ attached to | | | distance and |\n * each event | +---------+ velocity. |\n * | |\n * | |\n * +--------------------------------+\n *\n *\n *\n * Gesture that calculates cumulative movement over time in a way that just\n * \"does the right thing\" for multiple touches. The \"right thing\" is very\n * nuanced. When moving two touches in opposite directions, the cumulative\n * distance is zero in each dimension. When two touches move in parallel five\n * pixels in the same direction, the cumulative distance is five, not ten. If\n * two touches start, one moves five in a direction, then stops and the other\n * touch moves fives in the same direction, the cumulative distance is ten.\n *\n * This logic requires a kind of processing of time \"clusters\" of touch events\n * so that two touch moves that essentially occur in parallel but move every\n * other frame respectively, are considered part of the same movement.\n *\n * Explanation of some of the non-obvious fields:\n *\n * - moveX/moveY: If no move event has been observed, then `(moveX, moveY)` is\n * invalid. If a move event has been observed, `(moveX, moveY)` is the\n * centroid of the most recently moved \"cluster\" of active touches.\n * (Currently all move have the same timeStamp, but later we should add some\n * threshold for what is considered to be \"moving\"). If a palm is\n * accidentally counted as a touch, but a finger is moving greatly, the palm\n * will move slightly, but we only want to count the single moving touch.\n * - x0/y0: Centroid location (non-cumulative) at the time of becoming\n * responder.\n * - dx/dy: Cumulative touch distance - not the same thing as sum of each touch\n * distance. Accounts for touch moves that are clustered together in time,\n * moving the same direction. Only valid when currently responder (otherwise,\n * it only represents the drag distance below the threshold).\n * - vx/vy: Velocity.\n */\n\n _initializeGestureState(gestureState: GestureState) {\n gestureState.moveX = 0;\n gestureState.moveY = 0;\n gestureState.x0 = 0;\n gestureState.y0 = 0;\n gestureState.dx = 0;\n gestureState.dy = 0;\n gestureState.vx = 0;\n gestureState.vy = 0;\n gestureState.numberActiveTouches = 0;\n // All `gestureState` accounts for timeStamps up until:\n gestureState._accountsForMovesUpTo = 0;\n },\n\n /**\n * This is nuanced and is necessary. It is incorrect to continuously take all\n * active *and* recently moved touches, find the centroid, and track how that\n * result changes over time. Instead, we must take all recently moved\n * touches, and calculate how the centroid has changed just for those\n * recently moved touches, and append that change to an accumulator. This is\n * to (at least) handle the case where the user is moving three fingers, and\n * then one of the fingers stops but the other two continue.\n *\n * This is very different than taking all of the recently moved touches and\n * storing their centroid as `dx/dy`. For correctness, we must *accumulate\n * changes* in the centroid of recently moved touches.\n *\n * There is also some nuance with how we handle multiple moved touches in a\n * single event. With the way `ReactNativeEventEmitter` dispatches touches as\n * individual events, multiple touches generate two 'move' events, each of\n * them triggering `onResponderMove`. But with the way `PanResponder` works,\n * all of the gesture inference is performed on the first dispatch, since it\n * looks at all of the touches (even the ones for which there hasn't been a\n * native dispatch yet). Therefore, `PanResponder` does not call\n * `onResponderMove` passed the first dispatch. This diverges from the\n * typical responder callback pattern (without using `PanResponder`), but\n * avoids more dispatches than necessary.\n */\n _updateGestureStateOnMove(\n gestureState: GestureState,\n touchHistory: $PropertyType,\n ) {\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n gestureState.moveX = currentCentroidXOfTouchesChangedAfter(\n touchHistory,\n gestureState._accountsForMovesUpTo,\n );\n gestureState.moveY = currentCentroidYOfTouchesChangedAfter(\n touchHistory,\n gestureState._accountsForMovesUpTo,\n );\n const movedAfter = gestureState._accountsForMovesUpTo;\n const prevX = previousCentroidXOfTouchesChangedAfter(\n touchHistory,\n movedAfter,\n );\n const x = currentCentroidXOfTouchesChangedAfter(touchHistory, movedAfter);\n const prevY = previousCentroidYOfTouchesChangedAfter(\n touchHistory,\n movedAfter,\n );\n const y = currentCentroidYOfTouchesChangedAfter(touchHistory, movedAfter);\n const nextDX = gestureState.dx + (x - prevX);\n const nextDY = gestureState.dy + (y - prevY);\n\n // TODO: This must be filtered intelligently.\n const dt =\n touchHistory.mostRecentTimeStamp - gestureState._accountsForMovesUpTo;\n gestureState.vx = (nextDX - gestureState.dx) / dt;\n gestureState.vy = (nextDY - gestureState.dy) / dt;\n\n gestureState.dx = nextDX;\n gestureState.dy = nextDY;\n gestureState._accountsForMovesUpTo = touchHistory.mostRecentTimeStamp;\n },\n\n /**\n * @param {object} config Enhanced versions of all of the responder callbacks\n * that provide not only the typical `ResponderSyntheticEvent`, but also the\n * `PanResponder` gesture state. Simply replace the word `Responder` with\n * `PanResponder` in each of the typical `onResponder*` callbacks. For\n * example, the `config` object would look like:\n *\n * - `onMoveShouldSetPanResponder: (e, gestureState) => {...}`\n * - `onMoveShouldSetPanResponderCapture: (e, gestureState) => {...}`\n * - `onStartShouldSetPanResponder: (e, gestureState) => {...}`\n * - `onStartShouldSetPanResponderCapture: (e, gestureState) => {...}`\n * - `onPanResponderReject: (e, gestureState) => {...}`\n * - `onPanResponderGrant: (e, gestureState) => {...}`\n * - `onPanResponderStart: (e, gestureState) => {...}`\n * - `onPanResponderEnd: (e, gestureState) => {...}`\n * - `onPanResponderRelease: (e, gestureState) => {...}`\n * - `onPanResponderMove: (e, gestureState) => {...}`\n * - `onPanResponderTerminate: (e, gestureState) => {...}`\n * - `onPanResponderTerminationRequest: (e, gestureState) => {...}`\n * - `onShouldBlockNativeResponder: (e, gestureState) => {...}`\n *\n * In general, for events that have capture equivalents, we update the\n * gestureState once in the capture phase and can use it in the bubble phase\n * as well.\n *\n * Be careful with onStartShould* callbacks. They only reflect updated\n * `gestureState` for start/end events that bubble/capture to the Node.\n * Once the node is the responder, you can rely on every start/end event\n * being processed by the gesture and `gestureState` being updated\n * accordingly. (numberActiveTouches) may not be totally accurate unless you\n * are the responder.\n */\n create(config: PanResponderConfig): {\n getInteractionHandle: () => ?number,\n panHandlers: PanHandlers,\n } {\n const interactionState = {\n handle: (null: ?number),\n };\n const gestureState: GestureState = {\n // Useful for debugging\n stateID: Math.random(),\n moveX: 0,\n moveY: 0,\n x0: 0,\n y0: 0,\n dx: 0,\n dy: 0,\n vx: 0,\n vy: 0,\n numberActiveTouches: 0,\n _accountsForMovesUpTo: 0,\n };\n const panHandlers = {\n onStartShouldSetResponder(event: PressEvent): boolean {\n return config.onStartShouldSetPanResponder == null\n ? false\n : config.onStartShouldSetPanResponder(event, gestureState);\n },\n onMoveShouldSetResponder(event: PressEvent): boolean {\n return config.onMoveShouldSetPanResponder == null\n ? false\n : config.onMoveShouldSetPanResponder(event, gestureState);\n },\n onStartShouldSetResponderCapture(event: PressEvent): boolean {\n // TODO: Actually, we should reinitialize the state any time\n // touches.length increases from 0 active to > 0 active.\n if (event.nativeEvent.touches.length === 1) {\n PanResponder._initializeGestureState(gestureState);\n }\n gestureState.numberActiveTouches =\n event.touchHistory.numberActiveTouches;\n return config.onStartShouldSetPanResponderCapture != null\n ? config.onStartShouldSetPanResponderCapture(event, gestureState)\n : false;\n },\n\n onMoveShouldSetResponderCapture(event: PressEvent): boolean {\n const touchHistory = event.touchHistory;\n // Responder system incorrectly dispatches should* to current responder\n // Filter out any touch moves past the first one - we would have\n // already processed multi-touch geometry during the first event.\n if (\n gestureState._accountsForMovesUpTo ===\n touchHistory.mostRecentTimeStamp\n ) {\n return false;\n }\n PanResponder._updateGestureStateOnMove(gestureState, touchHistory);\n return config.onMoveShouldSetPanResponderCapture\n ? config.onMoveShouldSetPanResponderCapture(event, gestureState)\n : false;\n },\n\n onResponderGrant(event: PressEvent): boolean {\n if (!interactionState.handle) {\n interactionState.handle =\n InteractionManager.createInteractionHandle();\n }\n gestureState.x0 = currentCentroidX(event.touchHistory);\n gestureState.y0 = currentCentroidY(event.touchHistory);\n gestureState.dx = 0;\n gestureState.dy = 0;\n if (config.onPanResponderGrant) {\n config.onPanResponderGrant(event, gestureState);\n }\n // TODO: t7467124 investigate if this can be removed\n return config.onShouldBlockNativeResponder == null\n ? true\n : config.onShouldBlockNativeResponder(event, gestureState);\n },\n\n onResponderReject(event: PressEvent): void {\n clearInteractionHandle(\n interactionState,\n config.onPanResponderReject,\n event,\n gestureState,\n );\n },\n\n onResponderRelease(event: PressEvent): void {\n clearInteractionHandle(\n interactionState,\n config.onPanResponderRelease,\n event,\n gestureState,\n );\n PanResponder._initializeGestureState(gestureState);\n },\n\n onResponderStart(event: PressEvent): void {\n const touchHistory = event.touchHistory;\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n if (config.onPanResponderStart) {\n config.onPanResponderStart(event, gestureState);\n }\n },\n\n onResponderMove(event: PressEvent): void {\n const touchHistory = event.touchHistory;\n // Guard against the dispatch of two touch moves when there are two\n // simultaneously changed touches.\n if (\n gestureState._accountsForMovesUpTo ===\n touchHistory.mostRecentTimeStamp\n ) {\n return;\n }\n // Filter out any touch moves past the first one - we would have\n // already processed multi-touch geometry during the first event.\n PanResponder._updateGestureStateOnMove(gestureState, touchHistory);\n if (config.onPanResponderMove) {\n config.onPanResponderMove(event, gestureState);\n }\n },\n\n onResponderEnd(event: PressEvent): void {\n const touchHistory = event.touchHistory;\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n clearInteractionHandle(\n interactionState,\n config.onPanResponderEnd,\n event,\n gestureState,\n );\n },\n\n onResponderTerminate(event: PressEvent): void {\n clearInteractionHandle(\n interactionState,\n config.onPanResponderTerminate,\n event,\n gestureState,\n );\n PanResponder._initializeGestureState(gestureState);\n },\n\n onResponderTerminationRequest(event: PressEvent): boolean {\n return config.onPanResponderTerminationRequest == null\n ? true\n : config.onPanResponderTerminationRequest(event, gestureState);\n },\n };\n return {\n panHandlers,\n getInteractionHandle(): ?number {\n return interactionState.handle;\n },\n };\n },\n};\n\nfunction clearInteractionHandle(\n interactionState: {handle: ?number, ...},\n callback: ?(ActiveCallback | PassiveCallback),\n event: PressEvent,\n gestureState: GestureState,\n) {\n if (interactionState.handle) {\n InteractionManager.clearInteractionHandle(interactionState.handle);\n interactionState.handle = null;\n }\n if (callback) {\n callback(event, gestureState);\n }\n}\n\nexport type PanResponderInstance = $Call<\n $PropertyType,\n PanResponderConfig,\n>;\n\nexport default PanResponder;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nconst TouchHistoryMath = {\n /**\n * This code is optimized and not intended to look beautiful. This allows\n * computing of touch centroids that have moved after `touchesChangedAfter`\n * timeStamp. You can compute the current centroid involving all touches\n * moves after `touchesChangedAfter`, or you can compute the previous\n * centroid of all touches that were moved after `touchesChangedAfter`.\n *\n * @param {TouchHistoryMath} touchHistory Standard Responder touch track\n * data.\n * @param {number} touchesChangedAfter timeStamp after which moved touches\n * are considered \"actively moving\" - not just \"active\".\n * @param {boolean} isXAxis Consider `x` dimension vs. `y` dimension.\n * @param {boolean} ofCurrent Compute current centroid for actively moving\n * touches vs. previous centroid of now actively moving touches.\n * @return {number} value of centroid in specified dimension.\n */\n centroidDimension: function (\n touchHistory,\n touchesChangedAfter,\n isXAxis,\n ofCurrent,\n ) {\n const touchBank = touchHistory.touchBank;\n let total = 0;\n let count = 0;\n\n const oneTouchData =\n touchHistory.numberActiveTouches === 1\n ? touchHistory.touchBank[touchHistory.indexOfSingleActiveTouch]\n : null;\n\n if (oneTouchData !== null) {\n if (\n oneTouchData.touchActive &&\n oneTouchData.currentTimeStamp > touchesChangedAfter\n ) {\n total +=\n ofCurrent && isXAxis\n ? oneTouchData.currentPageX\n : ofCurrent && !isXAxis\n ? oneTouchData.currentPageY\n : !ofCurrent && isXAxis\n ? oneTouchData.previousPageX\n : oneTouchData.previousPageY;\n count = 1;\n }\n } else {\n for (let i = 0; i < touchBank.length; i++) {\n const touchTrack = touchBank[i];\n if (\n touchTrack !== null &&\n touchTrack !== undefined &&\n touchTrack.touchActive &&\n touchTrack.currentTimeStamp >= touchesChangedAfter\n ) {\n let toAdd; // Yuck, program temporarily in invalid state.\n if (ofCurrent && isXAxis) {\n toAdd = touchTrack.currentPageX;\n } else if (ofCurrent && !isXAxis) {\n toAdd = touchTrack.currentPageY;\n } else if (!ofCurrent && isXAxis) {\n toAdd = touchTrack.previousPageX;\n } else {\n toAdd = touchTrack.previousPageY;\n }\n total += toAdd;\n count++;\n }\n }\n }\n return count > 0 ? total / count : TouchHistoryMath.noCentroid;\n },\n\n currentCentroidXOfTouchesChangedAfter: function (\n touchHistory,\n touchesChangedAfter,\n ) {\n return TouchHistoryMath.centroidDimension(\n touchHistory,\n touchesChangedAfter,\n true, // isXAxis\n true, // ofCurrent\n );\n },\n\n currentCentroidYOfTouchesChangedAfter: function (\n touchHistory,\n touchesChangedAfter,\n ) {\n return TouchHistoryMath.centroidDimension(\n touchHistory,\n touchesChangedAfter,\n false, // isXAxis\n true, // ofCurrent\n );\n },\n\n previousCentroidXOfTouchesChangedAfter: function (\n touchHistory,\n touchesChangedAfter,\n ) {\n return TouchHistoryMath.centroidDimension(\n touchHistory,\n touchesChangedAfter,\n true, // isXAxis\n false, // ofCurrent\n );\n },\n\n previousCentroidYOfTouchesChangedAfter: function (\n touchHistory,\n touchesChangedAfter,\n ) {\n return TouchHistoryMath.centroidDimension(\n touchHistory,\n touchesChangedAfter,\n false, // isXAxis\n false, // ofCurrent\n );\n },\n\n currentCentroidX: function (touchHistory) {\n return TouchHistoryMath.centroidDimension(\n touchHistory,\n 0, // touchesChangedAfter\n true, // isXAxis\n true, // ofCurrent\n );\n },\n\n currentCentroidY: function (touchHistory) {\n return TouchHistoryMath.centroidDimension(\n touchHistory,\n 0, // touchesChangedAfter\n false, // isXAxis\n true, // ofCurrent\n );\n },\n\n noCentroid: -1,\n};\n\nmodule.exports = TouchHistoryMath;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport type {\n PermissionStatus,\n PermissionType,\n} from './NativePermissionsAndroid';\n\nimport NativeDialogManagerAndroid from '../NativeModules/specs/NativeDialogManagerAndroid';\nimport NativePermissionsAndroid from './NativePermissionsAndroid';\nimport invariant from 'invariant';\n\nconst Platform = require('../Utilities/Platform');\n\nexport type Rationale = {\n title: string,\n message: string,\n buttonPositive?: string,\n buttonNegative?: string,\n buttonNeutral?: string,\n ...\n};\n\nconst PERMISSION_REQUEST_RESULT = Object.freeze({\n GRANTED: 'granted',\n DENIED: 'denied',\n NEVER_ASK_AGAIN: 'never_ask_again',\n});\n\nconst PERMISSIONS = Object.freeze({\n READ_CALENDAR: 'android.permission.READ_CALENDAR',\n WRITE_CALENDAR: 'android.permission.WRITE_CALENDAR',\n CAMERA: 'android.permission.CAMERA',\n READ_CONTACTS: 'android.permission.READ_CONTACTS',\n WRITE_CONTACTS: 'android.permission.WRITE_CONTACTS',\n GET_ACCOUNTS: 'android.permission.GET_ACCOUNTS',\n ACCESS_FINE_LOCATION: 'android.permission.ACCESS_FINE_LOCATION',\n ACCESS_COARSE_LOCATION: 'android.permission.ACCESS_COARSE_LOCATION',\n ACCESS_BACKGROUND_LOCATION: 'android.permission.ACCESS_BACKGROUND_LOCATION',\n RECORD_AUDIO: 'android.permission.RECORD_AUDIO',\n READ_PHONE_STATE: 'android.permission.READ_PHONE_STATE',\n CALL_PHONE: 'android.permission.CALL_PHONE',\n READ_CALL_LOG: 'android.permission.READ_CALL_LOG',\n WRITE_CALL_LOG: 'android.permission.WRITE_CALL_LOG',\n ADD_VOICEMAIL: 'com.android.voicemail.permission.ADD_VOICEMAIL',\n READ_VOICEMAIL: 'com.android.voicemail.permission.READ_VOICEMAIL',\n WRITE_VOICEMAIL: 'com.android.voicemail.permission.WRITE_VOICEMAIL',\n USE_SIP: 'android.permission.USE_SIP',\n PROCESS_OUTGOING_CALLS: 'android.permission.PROCESS_OUTGOING_CALLS',\n BODY_SENSORS: 'android.permission.BODY_SENSORS',\n BODY_SENSORS_BACKGROUND: 'android.permission.BODY_SENSORS_BACKGROUND',\n SEND_SMS: 'android.permission.SEND_SMS',\n RECEIVE_SMS: 'android.permission.RECEIVE_SMS',\n READ_SMS: 'android.permission.READ_SMS',\n RECEIVE_WAP_PUSH: 'android.permission.RECEIVE_WAP_PUSH',\n RECEIVE_MMS: 'android.permission.RECEIVE_MMS',\n READ_EXTERNAL_STORAGE: 'android.permission.READ_EXTERNAL_STORAGE',\n READ_MEDIA_IMAGES: 'android.permission.READ_MEDIA_IMAGES',\n READ_MEDIA_VIDEO: 'android.permission.READ_MEDIA_VIDEO',\n READ_MEDIA_AUDIO: 'android.permission.READ_MEDIA_AUDIO',\n WRITE_EXTERNAL_STORAGE: 'android.permission.WRITE_EXTERNAL_STORAGE',\n BLUETOOTH_CONNECT: 'android.permission.BLUETOOTH_CONNECT',\n BLUETOOTH_SCAN: 'android.permission.BLUETOOTH_SCAN',\n BLUETOOTH_ADVERTISE: 'android.permission.BLUETOOTH_ADVERTISE',\n ACCESS_MEDIA_LOCATION: 'android.permission.ACCESS_MEDIA_LOCATION',\n ACCEPT_HANDOVER: 'android.permission.ACCEPT_HANDOVER',\n ACTIVITY_RECOGNITION: 'android.permission.ACTIVITY_RECOGNITION',\n ANSWER_PHONE_CALLS: 'android.permission.ANSWER_PHONE_CALLS',\n READ_PHONE_NUMBERS: 'android.permission.READ_PHONE_NUMBERS',\n UWB_RANGING: 'android.permission.UWB_RANGING',\n POST_NOTIFICATIONS: 'android.permission.POST_NOTIFICATIONS',\n NEARBY_WIFI_DEVICES: 'android.permission.NEARBY_WIFI_DEVICES',\n});\n\n/**\n * `PermissionsAndroid` provides access to Android M's new permissions model.\n *\n * See https://reactnative.dev/docs/permissionsandroid\n */\n\nclass PermissionsAndroid {\n PERMISSIONS: {|\n ACCEPT_HANDOVER: string,\n ACCESS_BACKGROUND_LOCATION: string,\n ACCESS_COARSE_LOCATION: string,\n ACCESS_FINE_LOCATION: string,\n ACCESS_MEDIA_LOCATION: string,\n ACTIVITY_RECOGNITION: string,\n ADD_VOICEMAIL: string,\n READ_VOICEMAIL: string,\n WRITE_VOICEMAIL: string,\n ANSWER_PHONE_CALLS: string,\n BLUETOOTH_ADVERTISE: string,\n BLUETOOTH_CONNECT: string,\n BLUETOOTH_SCAN: string,\n BODY_SENSORS: string,\n BODY_SENSORS_BACKGROUND: string,\n CALL_PHONE: string,\n CAMERA: string,\n GET_ACCOUNTS: string,\n NEARBY_WIFI_DEVICES: string,\n POST_NOTIFICATIONS: string,\n PROCESS_OUTGOING_CALLS: string,\n READ_CALENDAR: string,\n READ_CALL_LOG: string,\n READ_CONTACTS: string,\n READ_EXTERNAL_STORAGE: string,\n READ_MEDIA_IMAGES: string,\n READ_MEDIA_VIDEO: string,\n READ_MEDIA_AUDIO: string,\n READ_PHONE_NUMBERS: string,\n READ_PHONE_STATE: string,\n READ_SMS: string,\n RECEIVE_MMS: string,\n RECEIVE_SMS: string,\n RECEIVE_WAP_PUSH: string,\n RECORD_AUDIO: string,\n SEND_SMS: string,\n USE_SIP: string,\n UWB_RANGING: string,\n WRITE_CALENDAR: string,\n WRITE_CALL_LOG: string,\n WRITE_CONTACTS: string,\n WRITE_EXTERNAL_STORAGE: string,\n |} = PERMISSIONS;\n RESULTS: {|\n DENIED: $TEMPORARY$string<'denied'>,\n GRANTED: $TEMPORARY$string<'granted'>,\n NEVER_ASK_AGAIN: $TEMPORARY$string<'never_ask_again'>,\n |} = PERMISSION_REQUEST_RESULT;\n\n /**\n * DEPRECATED - use check\n *\n * Returns a promise resolving to a boolean value as to whether the specified\n * permissions has been granted\n *\n * @deprecated\n */\n checkPermission(permission: PermissionType): Promise {\n console.warn(\n '\"PermissionsAndroid.checkPermission\" is deprecated. Use \"PermissionsAndroid.check\" instead',\n );\n if (Platform.OS !== 'android') {\n console.warn(\n '\"PermissionsAndroid\" module works only for Android platform.',\n );\n return Promise.resolve(false);\n }\n\n invariant(\n NativePermissionsAndroid,\n 'PermissionsAndroid is not installed correctly.',\n );\n\n return NativePermissionsAndroid.checkPermission(permission);\n }\n\n /**\n * Returns a promise resolving to a boolean value as to whether the specified\n * permissions has been granted\n *\n * See https://reactnative.dev/docs/permissionsandroid#check\n */\n check(permission: PermissionType): Promise {\n if (Platform.OS !== 'android') {\n console.warn(\n '\"PermissionsAndroid\" module works only for Android platform.',\n );\n return Promise.resolve(false);\n }\n\n invariant(\n NativePermissionsAndroid,\n 'PermissionsAndroid is not installed correctly.',\n );\n\n return NativePermissionsAndroid.checkPermission(permission);\n }\n\n /**\n * DEPRECATED - use request\n *\n * Prompts the user to enable a permission and returns a promise resolving to a\n * boolean value indicating whether the user allowed or denied the request\n *\n * If the optional rationale argument is included (which is an object with a\n * `title` and `message`), this function checks with the OS whether it is\n * necessary to show a dialog explaining why the permission is needed\n * (https://developer.android.com/training/permissions/requesting#explain)\n * and then shows the system permission dialog\n *\n * @deprecated\n */\n async requestPermission(\n permission: PermissionType,\n rationale?: Rationale,\n ): Promise {\n console.warn(\n '\"PermissionsAndroid.requestPermission\" is deprecated. Use \"PermissionsAndroid.request\" instead',\n );\n if (Platform.OS !== 'android') {\n console.warn(\n '\"PermissionsAndroid\" module works only for Android platform.',\n );\n return Promise.resolve(false);\n }\n\n const response = await this.request(permission, rationale);\n return response === this.RESULTS.GRANTED;\n }\n\n /**\n * Prompts the user to enable a permission and returns a promise resolving to a\n * string value indicating whether the user allowed or denied the request\n *\n * See https://reactnative.dev/docs/permissionsandroid#request\n */\n async request(\n permission: PermissionType,\n rationale?: Rationale,\n ): Promise {\n if (Platform.OS !== 'android') {\n console.warn(\n '\"PermissionsAndroid\" module works only for Android platform.',\n );\n return Promise.resolve(this.RESULTS.DENIED);\n }\n\n invariant(\n NativePermissionsAndroid,\n 'PermissionsAndroid is not installed correctly.',\n );\n\n if (rationale) {\n const shouldShowRationale =\n await NativePermissionsAndroid.shouldShowRequestPermissionRationale(\n permission,\n );\n\n if (shouldShowRationale && !!NativeDialogManagerAndroid) {\n return new Promise((resolve, reject) => {\n const options = {\n ...rationale,\n };\n NativeDialogManagerAndroid.showAlert(\n /* $FlowFixMe[incompatible-exact] (>=0.111.0 site=react_native_fb)\n * This comment suppresses an error found when Flow v0.111 was\n * deployed. To see the error, delete this comment and run Flow.\n */\n options,\n () => reject(new Error('Error showing rationale')),\n () =>\n resolve(NativePermissionsAndroid.requestPermission(permission)),\n );\n });\n }\n }\n return NativePermissionsAndroid.requestPermission(permission);\n }\n\n /**\n * Prompts the user to enable multiple permissions in the same dialog and\n * returns an object with the permissions as keys and strings as values\n * indicating whether the user allowed or denied the request\n *\n * See https://reactnative.dev/docs/permissionsandroid#requestmultiple\n */\n requestMultiple(\n permissions: Array,\n ): Promise<{[permission: PermissionType]: PermissionStatus, ...}> {\n if (Platform.OS !== 'android') {\n console.warn(\n '\"PermissionsAndroid\" module works only for Android platform.',\n );\n return Promise.resolve({});\n }\n\n invariant(\n NativePermissionsAndroid,\n 'PermissionsAndroid is not installed correctly.',\n );\n\n return NativePermissionsAndroid.requestMultiplePermissions(permissions);\n }\n}\n\nconst PermissionsAndroidInstance: PermissionsAndroid = new PermissionsAndroid();\n\nmodule.exports = PermissionsAndroidInstance;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\n// TODO: Use proper enum types.\nexport type PermissionStatus = string;\nexport type PermissionType = string;\n/*\nexport type PermissionStatus = 'granted' | 'denied' | 'never_ask_again';\nexport type PermissionType =\n | 'android.permission.READ_CALENDAR'\n | 'android.permission.WRITE_CALENDAR'\n | 'android.permission.CAMERA'\n | 'android.permission.READ_CONTACTS'\n | 'android.permission.WRITE_CONTACTS'\n | 'android.permission.GET_ACCOUNTS'\n | 'android.permission.ACCESS_BACKGROUND_LOCATION'\n | 'android.permission.ACCESS_FINE_LOCATION'\n | 'android.permission.ACCESS_COARSE_LOCATION'\n | 'android.permission.RECORD_AUDIO'\n | 'android.permission.READ_PHONE_STATE'\n | 'android.permission.CALL_PHONE'\n | 'android.permission.READ_CALL_LOG'\n | 'android.permission.WRITE_CALL_LOG'\n | 'com.android.voicemail.permission.ADD_VOICEMAIL'\n | 'com.android.voicemail.permission.READ_VOICEMAIL'\n | 'com.android.voicemail.permission.WRITE_VOICEMAIL'\n | 'android.permission.USE_SIP'\n | 'android.permission.PROCESS_OUTGOING_CALLS'\n | 'android.permission.BODY_SENSORS'\n | 'android.permission.BODY_SENSORS_BACKGROUND'\n | 'android.permission.SEND_SMS'\n | 'android.permission.RECEIVE_SMS'\n | 'android.permission.READ_SMS'\n | 'android.permission.RECEIVE_WAP_PUSH'\n | 'android.permission.RECEIVE_MMS'\n | 'android.permission.READ_EXTERNAL_STORAGE'\n | 'android.permission.READ_MEDIA_IMAGES',\n | 'android.permission.READ_MEDIA_VIDEO',\n | 'android.permission.READ_MEDIA_AUDIO',\n | 'android.permission.WRITE_EXTERNAL_STORAGE'\n | 'android.permission.BLUETOOTH_CONNECT'\n | 'android.permission.BLUETOOTH_SCAN'\n | 'android.permission.BLUETOOTH_ADVERTISE'\n | 'android.permission.ACCESS_MEDIA_LOCATION'\n | 'android.permission.ACCEPT_HANDOVER'\n | 'android.permission.ACTIVITY_RECOGNITION'\n | 'android.permission.ANSWER_PHONE_CALLS'\n | 'android.permission.READ_PHONE_NUMBERS'\n | 'android.permission.UWB_RANGING'\n | 'android.permission.POST_NOTIFICATIONS'\n | 'android.permission.NEARBY_WIFI_DEVICES';\n*/\n\nexport interface Spec extends TurboModule {\n +checkPermission: (permission: PermissionType) => Promise;\n +requestPermission: (permission: PermissionType) => Promise;\n +shouldShowRequestPermissionRationale: (\n permission: string,\n ) => Promise;\n +requestMultiplePermissions: (\n permissions: Array,\n ) => Promise<{[permission: PermissionType]: PermissionStatus, ...}>;\n}\n\nexport default (TurboModuleRegistry.get('PermissionsAndroid'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {EventSubscription} from '../vendor/emitter/EventEmitter';\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport Platform from '../Utilities/Platform';\nimport NativePushNotificationManagerIOS from './NativePushNotificationManagerIOS';\nimport invariant from 'invariant';\n\ntype NativePushNotificationIOSEventDefinitions = {\n remoteNotificationReceived: [\n {\n notificationId: string,\n remote: boolean,\n ...\n },\n ],\n remoteNotificationsRegistered: [\n {\n deviceToken?: ?string,\n ...\n },\n ],\n remoteNotificationRegistrationError: [\n {\n message: string,\n code: number,\n details: {...},\n },\n ],\n localNotificationReceived: [{...}],\n};\n\nconst PushNotificationEmitter =\n new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativePushNotificationManagerIOS,\n );\n\nconst _notifHandlers = new Map();\n\nconst DEVICE_NOTIF_EVENT = 'remoteNotificationReceived';\nconst NOTIF_REGISTER_EVENT = 'remoteNotificationsRegistered';\nconst NOTIF_REGISTRATION_ERROR_EVENT = 'remoteNotificationRegistrationError';\nconst DEVICE_LOCAL_NOTIF_EVENT = 'localNotificationReceived';\n\nexport type ContentAvailable = 1 | null | void;\n\nexport type FetchResult = {\n NewData: string,\n NoData: string,\n ResultFailed: string,\n ...\n};\n\n/**\n * An event emitted by PushNotificationIOS.\n */\nexport type PushNotificationEventName = $Keys<{\n /**\n * Fired when a remote notification is received. The handler will be invoked\n * with an instance of `PushNotificationIOS`.\n */\n notification: string,\n /**\n * Fired when a local notification is received. The handler will be invoked\n * with an instance of `PushNotificationIOS`.\n */\n localNotification: string,\n /**\n * Fired when the user registers for remote notifications. The handler will be\n * invoked with a hex string representing the deviceToken.\n */\n register: string,\n /**\n * Fired when the user fails to register for remote notifications. Typically\n * occurs when APNS is having issues, or the device is a simulator. The\n * handler will be invoked with {message: string, code: number, details: any}.\n */\n registrationError: string,\n ...\n}>;\n\n/**\n *\n * Handle push notifications for your app, including permission handling and\n * icon badge number.\n *\n * See https://reactnative.dev/docs/pushnotificationios\n */\nclass PushNotificationIOS {\n _data: Object;\n _alert: string | Object;\n _sound: string;\n _category: string;\n _contentAvailable: ContentAvailable;\n _badgeCount: number;\n _notificationId: string;\n _isRemote: boolean;\n _remoteNotificationCompleteCallbackCalled: boolean;\n _threadID: string;\n\n static FetchResult: FetchResult = {\n NewData: 'UIBackgroundFetchResultNewData',\n NoData: 'UIBackgroundFetchResultNoData',\n ResultFailed: 'UIBackgroundFetchResultFailed',\n };\n\n /**\n * Schedules the localNotification for immediate presentation.\n *\n * See https://reactnative.dev/docs/pushnotificationios#presentlocalnotification\n */\n static presentLocalNotification(details: Object): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.presentLocalNotification(details);\n }\n\n /**\n * Schedules the localNotification for future presentation.\n *\n * See https://reactnative.dev/docs/pushnotificationios#schedulelocalnotification\n */\n static scheduleLocalNotification(details: Object): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.scheduleLocalNotification(details);\n }\n\n /**\n * Cancels all scheduled localNotifications.\n *\n * See https://reactnative.dev/docs/pushnotificationios#cancelalllocalnotifications\n */\n static cancelAllLocalNotifications(): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.cancelAllLocalNotifications();\n }\n\n /**\n * Remove all delivered notifications from Notification Center.\n *\n * See https://reactnative.dev/docs/pushnotificationios#removealldeliverednotifications\n */\n static removeAllDeliveredNotifications(): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.removeAllDeliveredNotifications();\n }\n\n /**\n * Provides you with a list of the app’s notifications that are still displayed in Notification Center.\n *\n * See https://reactnative.dev/docs/pushnotificationios#getdeliverednotifications\n */\n static getDeliveredNotifications(\n callback: (notifications: Array) => void,\n ): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.getDeliveredNotifications(callback);\n }\n\n /**\n * Removes the specified notifications from Notification Center\n *\n * See https://reactnative.dev/docs/pushnotificationios#removedeliverednotifications\n */\n static removeDeliveredNotifications(identifiers: Array): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.removeDeliveredNotifications(identifiers);\n }\n\n /**\n * Sets the badge number for the app icon on the home screen.\n *\n * See https://reactnative.dev/docs/pushnotificationios#setapplicationiconbadgenumber\n */\n static setApplicationIconBadgeNumber(number: number): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.setApplicationIconBadgeNumber(number);\n }\n\n /**\n * Gets the current badge number for the app icon on the home screen.\n *\n * See https://reactnative.dev/docs/pushnotificationios#getapplicationiconbadgenumber\n */\n static getApplicationIconBadgeNumber(callback: Function): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.getApplicationIconBadgeNumber(callback);\n }\n\n /**\n * Cancel local notifications.\n *\n * See https://reactnative.dev/docs/pushnotificationios#cancellocalnotification\n */\n static cancelLocalNotifications(userInfo: Object): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.cancelLocalNotifications(userInfo);\n }\n\n /**\n * Gets the local notifications that are currently scheduled.\n *\n * See https://reactnative.dev/docs/pushnotificationios#getscheduledlocalnotifications\n */\n static getScheduledLocalNotifications(callback: Function): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.getScheduledLocalNotifications(callback);\n }\n\n /**\n * Attaches a listener to remote or local notification events while the app\n * is running in the foreground or the background.\n *\n * See https://reactnative.dev/docs/pushnotificationios#addeventlistener\n */\n static addEventListener(\n type: PushNotificationEventName,\n handler: Function,\n ): void {\n invariant(\n type === 'notification' ||\n type === 'register' ||\n type === 'registrationError' ||\n type === 'localNotification',\n 'PushNotificationIOS only supports `notification`, `register`, `registrationError`, and `localNotification` events',\n );\n let listener;\n if (type === 'notification') {\n listener = PushNotificationEmitter.addListener(\n DEVICE_NOTIF_EVENT,\n notifData => {\n handler(new PushNotificationIOS(notifData));\n },\n );\n } else if (type === 'localNotification') {\n listener = PushNotificationEmitter.addListener(\n DEVICE_LOCAL_NOTIF_EVENT,\n notifData => {\n handler(new PushNotificationIOS(notifData));\n },\n );\n } else if (type === 'register') {\n listener = PushNotificationEmitter.addListener(\n NOTIF_REGISTER_EVENT,\n registrationInfo => {\n handler(registrationInfo.deviceToken);\n },\n );\n } else if (type === 'registrationError') {\n listener = PushNotificationEmitter.addListener(\n NOTIF_REGISTRATION_ERROR_EVENT,\n errorInfo => {\n handler(errorInfo);\n },\n );\n }\n _notifHandlers.set(type, listener);\n }\n\n /**\n * Removes the event listener. Do this in `componentWillUnmount` to prevent\n * memory leaks.\n *\n * See https://reactnative.dev/docs/pushnotificationios#removeeventlistener\n */\n static removeEventListener(\n type: PushNotificationEventName,\n handler: Function,\n ): void {\n invariant(\n type === 'notification' ||\n type === 'register' ||\n type === 'registrationError' ||\n type === 'localNotification',\n 'PushNotificationIOS only supports `notification`, `register`, `registrationError`, and `localNotification` events',\n );\n const listener = _notifHandlers.get(type);\n if (!listener) {\n return;\n }\n listener.remove();\n _notifHandlers.delete(type);\n }\n\n /**\n * Requests notification permissions from iOS, prompting the user's\n * dialog box. By default, it will request all notification permissions, but\n * a subset of these can be requested by passing a map of requested\n * permissions.\n *\n * See https://reactnative.dev/docs/pushnotificationios#requestpermissions\n */\n static requestPermissions(permissions?: {\n alert?: boolean,\n badge?: boolean,\n sound?: boolean,\n ...\n }): Promise<{\n alert: boolean,\n badge: boolean,\n sound: boolean,\n ...\n }> {\n let requestedPermissions = {\n alert: true,\n badge: true,\n sound: true,\n };\n if (permissions) {\n requestedPermissions = {\n alert: !!permissions.alert,\n badge: !!permissions.badge,\n sound: !!permissions.sound,\n };\n }\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n return NativePushNotificationManagerIOS.requestPermissions(\n requestedPermissions,\n );\n }\n\n /**\n * Unregister for all remote notifications received via Apple Push Notification service.\n *\n * See https://reactnative.dev/docs/pushnotificationios#abandonpermissions\n */\n static abandonPermissions(): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.abandonPermissions();\n }\n\n /**\n * See what push permissions are currently enabled. `callback` will be\n * invoked with a `permissions` object.\n *\n * See https://reactnative.dev/docs/pushnotificationios#checkpermissions\n */\n static checkPermissions(callback: Function): void {\n invariant(typeof callback === 'function', 'Must provide a valid callback');\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.checkPermissions(callback);\n }\n\n /**\n * This method returns a promise that resolves to either the notification\n * object if the app was launched by a push notification, or `null` otherwise.\n *\n * See https://reactnative.dev/docs/pushnotificationios#getinitialnotification\n */\n static getInitialNotification(): Promise {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n return NativePushNotificationManagerIOS.getInitialNotification().then(\n notification => {\n return notification && new PushNotificationIOS(notification);\n },\n );\n }\n\n /**\n * This method returns a promise that resolves to notification authorization status.\n */\n static getAuthorizationStatus(\n callback: (authorizationStatus: number) => void,\n ): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n\n NativePushNotificationManagerIOS.getAuthorizationStatus(callback);\n }\n\n /**\n * You will never need to instantiate `PushNotificationIOS` yourself.\n * Listening to the `notification` event and invoking\n * `getInitialNotification` is sufficient\n *\n */\n constructor(nativeNotif: Object) {\n this._data = {};\n this._remoteNotificationCompleteCallbackCalled = false;\n this._isRemote = nativeNotif.remote;\n if (this._isRemote) {\n this._notificationId = nativeNotif.notificationId;\n }\n\n if (nativeNotif.remote) {\n // Extract data from Apple's `aps` dict as defined:\n // https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService\n Object.keys(nativeNotif).forEach(notifKey => {\n const notifVal = nativeNotif[notifKey];\n if (notifKey === 'aps') {\n this._alert = notifVal.alert;\n this._sound = notifVal.sound;\n this._badgeCount = notifVal.badge;\n this._category = notifVal.category;\n this._contentAvailable = notifVal['content-available'];\n this._threadID = notifVal['thread-id'];\n } else {\n this._data[notifKey] = notifVal;\n }\n });\n } else {\n // Local notifications aren't being sent down with `aps` dict.\n this._badgeCount = nativeNotif.applicationIconBadgeNumber;\n this._sound = nativeNotif.soundName;\n this._alert = nativeNotif.alertBody;\n this._data = nativeNotif.userInfo;\n this._category = nativeNotif.category;\n }\n }\n\n /**\n * This method is available for remote notifications that have been received via:\n * `application:didReceiveRemoteNotification:fetchCompletionHandler:`\n *\n * See https://reactnative.dev/docs/pushnotificationios#finish\n */\n finish(fetchResult: string): void {\n if (\n !this._isRemote ||\n !this._notificationId ||\n this._remoteNotificationCompleteCallbackCalled\n ) {\n return;\n }\n this._remoteNotificationCompleteCallbackCalled = true;\n\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.onFinishRemoteNotification(\n this._notificationId,\n fetchResult,\n );\n }\n\n /**\n * An alias for `getAlert` to get the notification's main message string\n */\n getMessage(): ?string | ?Object {\n // alias because \"alert\" is an ambiguous name\n return this._alert;\n }\n\n /**\n * Gets the sound string from the `aps` object\n *\n * See https://reactnative.dev/docs/pushnotificationios#getsound\n */\n getSound(): ?string {\n return this._sound;\n }\n\n /**\n * Gets the category string from the `aps` object\n *\n * See https://reactnative.dev/docs/pushnotificationios#getcategory\n */\n getCategory(): ?string {\n return this._category;\n }\n\n /**\n * Gets the notification's main message from the `aps` object\n *\n * See https://reactnative.dev/docs/pushnotificationios#getalert\n */\n getAlert(): ?string | ?Object {\n return this._alert;\n }\n\n /**\n * Gets the content-available number from the `aps` object\n *\n * See https://reactnative.dev/docs/pushnotificationios#getcontentavailable\n */\n getContentAvailable(): ContentAvailable {\n return this._contentAvailable;\n }\n\n /**\n * Gets the badge count number from the `aps` object\n *\n * See https://reactnative.dev/docs/pushnotificationios#getbadgecount\n */\n getBadgeCount(): ?number {\n return this._badgeCount;\n }\n\n /**\n * Gets the data object on the notif\n *\n * See https://reactnative.dev/docs/pushnotificationios#getdata\n */\n getData(): ?Object {\n return this._data;\n }\n\n /**\n * Gets the thread ID on the notif\n *\n * See https://reactnative.dev/docs/pushnotificationios#getthreadid\n */\n getThreadID(): ?string {\n return this._threadID;\n }\n}\n\nmodule.exports = PushNotificationIOS;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\ntype Permissions = {|\n alert: boolean,\n badge: boolean,\n sound: boolean,\n|};\n\ntype Notification = {|\n +alertTitle?: ?string,\n // Actual type: string | number\n +fireDate?: ?number,\n +alertBody?: ?string,\n +alertAction?: ?string,\n +userInfo?: ?Object,\n +category?: ?string,\n // Actual type: 'year' | 'month' | 'week' | 'day' | 'hour' | 'minute'\n +repeatInterval?: ?string,\n +applicationIconBadgeNumber?: ?number,\n +isSilent?: ?boolean,\n +soundName?: ?string,\n|};\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {||};\n +onFinishRemoteNotification: (\n notificationId: string,\n /**\n * Type:\n * 'UIBackgroundFetchResultNewData' |\n * 'UIBackgroundFetchResultNoData' |\n * 'UIBackgroundFetchResultFailed'\n */\n fetchResult: string,\n ) => void;\n +setApplicationIconBadgeNumber: (num: number) => void;\n +getApplicationIconBadgeNumber: (callback: (num: number) => void) => void;\n +requestPermissions: (permission: {|\n +alert: boolean,\n +badge: boolean,\n +sound: boolean,\n |}) => Promise;\n +abandonPermissions: () => void;\n +checkPermissions: (callback: (permissions: Permissions) => void) => void;\n +presentLocalNotification: (notification: Notification) => void;\n +scheduleLocalNotification: (notification: Notification) => void;\n +cancelAllLocalNotifications: () => void;\n +cancelLocalNotifications: (userInfo: Object) => void;\n +getInitialNotification: () => Promise;\n +getScheduledLocalNotifications: (\n callback: (notification: Notification) => void,\n ) => void;\n +removeAllDeliveredNotifications: () => void;\n +removeDeliveredNotifications: (identifiers: Array) => void;\n +getDeliveredNotifications: (\n callback: (notification: Array) => void,\n ) => void;\n +getAuthorizationStatus: (\n callback: (authorizationStatus: number) => void,\n ) => void;\n +addListener: (eventType: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.get(\n 'PushNotificationManager',\n): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nconst Settings = {\n get(key: string): mixed {\n console.warn('Settings is not yet supported on Android');\n return null;\n },\n\n set(settings: Object) {\n console.warn('Settings is not yet supported on Android');\n },\n\n watchKeys(keys: string | Array, callback: Function): number {\n console.warn('Settings is not yet supported on Android');\n return -1;\n },\n\n clearWatch(watchId: number) {\n console.warn('Settings is not yet supported on Android');\n },\n};\n\nmodule.exports = Settings;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport NativeActionSheetManager from '../ActionSheetIOS/NativeActionSheetManager';\nimport NativeShareModule from './NativeShareModule';\n\nconst processColor = require('../StyleSheet/processColor').default;\nconst Platform = require('../Utilities/Platform');\nconst invariant = require('invariant');\n\ntype Content =\n | {\n title?: string,\n message: string,\n ...\n }\n | {\n title?: string,\n url: string,\n ...\n };\ntype Options = {\n dialogTitle?: string,\n excludedActivityTypes?: Array,\n tintColor?: string,\n subject?: string,\n anchor?: number,\n ...\n};\n\nclass Share {\n /**\n * Open a dialog to share text content.\n *\n * In iOS, Returns a Promise which will be invoked an object containing `action`, `activityType`.\n * If the user dismissed the dialog, the Promise will still be resolved with action being `Share.dismissedAction`\n * and all the other keys being undefined.\n *\n * In Android, Returns a Promise which always be resolved with action being `Share.sharedAction`.\n *\n * ### Content\n *\n * - `message` - a message to share\n *\n * #### iOS\n *\n * - `url` - a URL to share\n *\n * At least one of URL and message is required.\n *\n * #### Android\n *\n * - `title` - title of the message\n *\n * ### Options\n *\n * #### iOS\n *\n * - `subject` - a subject to share via email\n * - `excludedActivityTypes`\n * - `tintColor`\n *\n * #### Android\n *\n * - `dialogTitle`\n *\n */\n static share(\n content: Content,\n options: Options = {},\n ): Promise<{action: string, activityType: ?string}> {\n invariant(\n typeof content === 'object' && content !== null,\n 'Content to share must be a valid object',\n );\n invariant(\n typeof content.url === 'string' || typeof content.message === 'string',\n 'At least one of URL and message is required',\n );\n invariant(\n typeof options === 'object' && options !== null,\n 'Options must be a valid object',\n );\n\n if (Platform.OS === 'android') {\n invariant(\n NativeShareModule,\n 'ShareModule should be registered on Android.',\n );\n invariant(\n content.title == null || typeof content.title === 'string',\n 'Invalid title: title should be a string.',\n );\n\n const newContent = {\n title: content.title,\n message:\n typeof content.message === 'string' ? content.message : undefined,\n };\n\n return NativeShareModule.share(newContent, options.dialogTitle).then(\n result => ({\n activityType: null,\n ...result,\n }),\n );\n } else if (Platform.OS === 'ios') {\n return new Promise((resolve, reject) => {\n const tintColor = processColor(options.tintColor);\n\n invariant(\n tintColor == null || typeof tintColor === 'number',\n 'Unexpected color given for options.tintColor',\n );\n\n invariant(\n NativeActionSheetManager,\n 'NativeActionSheetManager is not registered on iOS, but it should be.',\n );\n\n NativeActionSheetManager.showShareActionSheetWithOptions(\n {\n message:\n typeof content.message === 'string' ? content.message : undefined,\n url: typeof content.url === 'string' ? content.url : undefined,\n subject: options.subject,\n tintColor: typeof tintColor === 'number' ? tintColor : undefined,\n anchor:\n typeof options.anchor === 'number' ? options.anchor : undefined,\n excludedActivityTypes: options.excludedActivityTypes,\n },\n error => reject(error),\n (success, activityType) => {\n if (success) {\n resolve({\n action: 'sharedAction',\n activityType: activityType,\n });\n } else {\n resolve({\n action: 'dismissedAction',\n activityType: null,\n });\n }\n },\n );\n });\n } else {\n return Promise.reject(new Error('Unsupported platform'));\n }\n }\n\n /**\n * The content was successfully shared.\n */\n static sharedAction: 'sharedAction' = 'sharedAction';\n\n /**\n * The dialog has been dismissed.\n * @platform ios\n */\n static dismissedAction: 'dismissedAction' = 'dismissedAction';\n}\n\nmodule.exports = Share;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {||};\n +share: (\n content: {|title?: string, message?: string|},\n dialogTitle?: string,\n ) => Promise<{|action: string|}>;\n}\n\nexport default (TurboModuleRegistry.get('ShareModule'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport NativeToastAndroid from './NativeToastAndroid';\n\n/**\n * This exposes the native ToastAndroid module as a JS module. This has a function 'show'\n * which takes the following parameters:\n *\n * 1. String message: A string with the text to toast\n * 2. int duration: The duration of the toast. May be ToastAndroid.SHORT or ToastAndroid.LONG\n *\n * There is also a function `showWithGravity` to specify the layout gravity. May be\n * ToastAndroid.TOP, ToastAndroid.BOTTOM, ToastAndroid.CENTER.\n *\n * The 'showWithGravityAndOffset' function adds on the ability to specify offset\n * These offset values will translate to pixels.\n *\n * Basic usage:\n * ```javascript\n * ToastAndroid.show('A pikachu appeared nearby !', ToastAndroid.SHORT);\n * ToastAndroid.showWithGravity('All Your Base Are Belong To Us', ToastAndroid.SHORT, ToastAndroid.CENTER);\n * ToastAndroid.showWithGravityAndOffset('A wild toast appeared!', ToastAndroid.LONG, ToastAndroid.BOTTOM, 25, 50);\n * ```\n */\n\nconst ToastAndroidConstants = NativeToastAndroid.getConstants();\n\nconst ToastAndroid = {\n // Toast duration constants\n SHORT: (ToastAndroidConstants.SHORT: number),\n LONG: (ToastAndroidConstants.LONG: number),\n // Toast gravity constants\n TOP: (ToastAndroidConstants.TOP: number),\n BOTTOM: (ToastAndroidConstants.BOTTOM: number),\n CENTER: (ToastAndroidConstants.CENTER: number),\n\n show: function (message: string, duration: number): void {\n NativeToastAndroid.show(message, duration);\n },\n\n showWithGravity: function (\n message: string,\n duration: number,\n gravity: number,\n ): void {\n NativeToastAndroid.showWithGravity(message, duration, gravity);\n },\n\n showWithGravityAndOffset: function (\n message: string,\n duration: number,\n gravity: number,\n xOffset: number,\n yOffset: number,\n ): void {\n NativeToastAndroid.showWithGravityAndOffset(\n message,\n duration,\n gravity,\n xOffset,\n yOffset,\n );\n },\n};\n\nmodule.exports = ToastAndroid;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n SHORT: number,\n LONG: number,\n TOP: number,\n BOTTOM: number,\n CENTER: number,\n |};\n +show: (message: string, duration: number) => void;\n +showWithGravity: (\n message: string,\n duration: number,\n gravity: number,\n ) => void;\n +showWithGravityAndOffset: (\n message: string,\n duration: number,\n gravity: number,\n xOffset: number,\n yOffset: number,\n ) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('ToastAndroid'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {AnimatedValueConfig} from './nodes/AnimatedValue';\n\nimport Animated from './Animated';\nimport {useRef} from 'react';\n\nexport default function useAnimatedValue(\n initialValue: number,\n config?: ?AnimatedValueConfig,\n): Animated.Value {\n const ref = useRef(null);\n if (ref.current == null) {\n ref.current = new Animated.Value(initialValue, config);\n }\n return ref.current;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n'use strict';\n\nimport type {ColorSchemeName} from './NativeAppearance';\n\nimport Appearance from './Appearance';\nimport {useSyncExternalStore} from 'use-sync-external-store/shim';\n\nexport default function useColorScheme(): ?ColorSchemeName {\n return useSyncExternalStore(\n callback => {\n const appearanceSubscription = Appearance.addChangeListener(callback);\n return () => appearanceSubscription.remove();\n },\n () => Appearance.getColorScheme(),\n );\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.native.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.native.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim.native.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:q;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport Dimensions from './Dimensions';\nimport {\n type DisplayMetrics,\n type DisplayMetricsAndroid,\n} from './NativeDeviceInfo';\nimport {useEffect, useState} from 'react';\n\nexport default function useWindowDimensions():\n | DisplayMetrics\n | DisplayMetricsAndroid {\n const [dimensions, setDimensions] = useState(() => Dimensions.get('window'));\n useEffect(() => {\n function handleChange({\n window,\n }: {\n window: DisplayMetrics | DisplayMetricsAndroid,\n }) {\n if (\n dimensions.width !== window.width ||\n dimensions.height !== window.height ||\n dimensions.scale !== window.scale ||\n dimensions.fontScale !== window.fontScale\n ) {\n setDimensions(window);\n }\n }\n const subscription = Dimensions.addEventListener('change', handleChange);\n // We might have missed an update between calling `get` in render and\n // `addEventListener` in this handler, so we set it here. If there was\n // no change, React will filter out this update as a no-op.\n handleChange({window: Dimensions.get('window')});\n return () => {\n subscription.remove();\n };\n }, [dimensions]);\n return dimensions;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nconst deepFreezeAndThrowOnMutationInDev = require('./Utilities/deepFreezeAndThrowOnMutationInDev');\n\n/**\n * A collection of Unicode sequences for various characters and emoji.\n *\n * - More explicit than using the sequences directly in code.\n * - Source code should be limited to ASCII.\n * - Less chance of typos.\n */\nconst UTFSequence: {|\n BOM: string,\n BULLET: string,\n BULLET_SP: string,\n MDASH: string,\n MDASH_SP: string,\n MIDDOT: string,\n MIDDOT_KATAKANA: string,\n MIDDOT_SP: string,\n NBSP: string,\n NDASH: string,\n NDASH_SP: string,\n NEWLINE: string,\n PIZZA: string,\n TRIANGLE_LEFT: string,\n TRIANGLE_RIGHT: string,\n|} = deepFreezeAndThrowOnMutationInDev({\n BOM: '\\ufeff', // byte order mark\n BULLET: '\\u2022', // bullet: •\n BULLET_SP: '\\u00A0\\u2022\\u00A0', //  • \n MIDDOT: '\\u00B7', // normal middle dot: ·\n MIDDOT_SP: '\\u00A0\\u00B7\\u00A0', //  · \n MIDDOT_KATAKANA: '\\u30FB', // katakana middle dot\n MDASH: '\\u2014', // em dash: —\n MDASH_SP: '\\u00A0\\u2014\\u00A0', //  — \n NDASH: '\\u2013', // en dash: –\n NDASH_SP: '\\u00A0\\u2013\\u00A0', //  – \n NEWLINE: '\\u000A',\n NBSP: '\\u00A0', // non-breaking space:  \n PIZZA: '\\uD83C\\uDF55',\n TRIANGLE_LEFT: '\\u25c0', // black left-pointing triangle\n TRIANGLE_RIGHT: '\\u25b6', // black right-pointing triangle\n});\n\nexport default UTFSequence;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n * @jsdoc\n */\n\nimport NativeVibration from './NativeVibration';\n\nconst Platform = require('../Utilities/Platform');\n\n/**\n * Vibration API\n *\n * See https://reactnative.dev/docs/vibration\n */\n\nlet _vibrating: boolean = false;\nlet _id: number = 0; // _id is necessary to prevent race condition.\nconst _default_vibration_length = 400;\n\nfunction vibrateByPattern(pattern: Array, repeat: boolean = false) {\n if (_vibrating) {\n return;\n }\n _vibrating = true;\n if (pattern[0] === 0) {\n NativeVibration.vibrate(_default_vibration_length);\n // $FlowFixMe[reassign-const]\n pattern = pattern.slice(1);\n }\n if (pattern.length === 0) {\n _vibrating = false;\n return;\n }\n setTimeout(() => vibrateScheduler(++_id, pattern, repeat, 1), pattern[0]);\n}\n\nfunction vibrateScheduler(\n id: number,\n pattern: Array,\n repeat: boolean,\n nextIndex: number,\n) {\n if (!_vibrating || id !== _id) {\n return;\n }\n NativeVibration.vibrate(_default_vibration_length);\n if (nextIndex >= pattern.length) {\n if (repeat) {\n // $FlowFixMe[reassign-const]\n nextIndex = 0;\n } else {\n _vibrating = false;\n return;\n }\n }\n setTimeout(\n () => vibrateScheduler(id, pattern, repeat, nextIndex + 1),\n pattern[nextIndex],\n );\n}\n\nconst Vibration = {\n /**\n * Trigger a vibration with specified `pattern`.\n *\n * See https://reactnative.dev/docs/vibration#vibrate\n */\n vibrate: function (\n pattern: number | Array = _default_vibration_length,\n repeat: boolean = false,\n ) {\n if (Platform.OS === 'android') {\n if (typeof pattern === 'number') {\n NativeVibration.vibrate(pattern);\n } else if (Array.isArray(pattern)) {\n NativeVibration.vibrateByPattern(pattern, repeat ? 0 : -1);\n } else {\n throw new Error('Vibration pattern should be a number or array');\n }\n } else {\n if (_vibrating) {\n return;\n }\n if (typeof pattern === 'number') {\n NativeVibration.vibrate(pattern);\n } else if (Array.isArray(pattern)) {\n vibrateByPattern(pattern, repeat);\n } else {\n throw new Error('Vibration pattern should be a number or array');\n }\n }\n },\n /**\n * Stop vibration\n *\n * See https://reactnative.dev/docs/vibration#cancel\n */\n cancel: function () {\n if (Platform.OS === 'ios') {\n _vibrating = false;\n } else {\n NativeVibration.cancel();\n }\n },\n};\n\nmodule.exports = Vibration;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {||};\n +vibrate: (pattern: number) => void;\n\n // Android only\n +vibrateByPattern: (pattern: Array, repeat: number) => void;\n +cancel: () => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('Vibration'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {IgnorePattern} from '../LogBox/Data/LogBoxData';\n\nconst LogBox = require('../LogBox/LogBox').default;\nconst React = require('react');\n\ntype Props = $ReadOnly<{||}>;\n\nlet YellowBox;\nif (__DEV__) {\n YellowBox = class extends React.Component {\n static ignoreWarnings(patterns: $ReadOnlyArray): void {\n console.warn(\n 'YellowBox has been replaced with LogBox. Please call LogBox.ignoreLogs() instead.',\n );\n\n LogBox.ignoreLogs(patterns);\n }\n\n static install(): void {\n console.warn(\n 'YellowBox has been replaced with LogBox. Please call LogBox.install() instead.',\n );\n LogBox.install();\n }\n\n static uninstall(): void {\n console.warn(\n 'YellowBox has been replaced with LogBox. Please call LogBox.uninstall() instead.',\n );\n LogBox.uninstall();\n }\n\n render(): React.Node {\n return null;\n }\n };\n} else {\n YellowBox = class extends React.Component {\n static ignoreWarnings(patterns: $ReadOnlyArray): void {\n // Do nothing.\n }\n\n static install(): void {\n // Do nothing.\n }\n\n static uninstall(): void {\n // Do nothing.\n }\n\n render(): React.Node {\n return null;\n }\n };\n}\n\n// $FlowFixMe[method-unbinding]\nmodule.exports = (YellowBox: Class> & {\n ignoreWarnings($ReadOnlyArray): void,\n install(): void,\n uninstall(): void,\n ...\n});\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {ColorValue} from './StyleSheet';\n\nexport type DynamicColorIOSTuple = {\n light: ColorValue,\n dark: ColorValue,\n highContrastLight?: ColorValue,\n highContrastDark?: ColorValue,\n};\n\nexport const DynamicColorIOS = (tuple: DynamicColorIOSTuple): ColorValue => {\n throw new Error('DynamicColorIOS is not available on this platform.');\n};\n","/**\n * Sample React Native App\n * https://github.com/facebook/react-native\n *\n * @format\n */\n\nimport React from 'react';\nimport type {PropsWithChildren} from 'react';\nimport {\n SafeAreaView,\n ScrollView,\n StatusBar,\n StyleSheet,\n Text,\n useColorScheme,\n View,\n} from 'react-native';\n\nimport {\n Colors,\n DebugInstructions,\n Header,\n LearnMoreLinks,\n ReloadInstructions,\n} from 'react-native/Libraries/NewAppScreen';\n\ntype SectionProps = PropsWithChildren<{\n title: string;\n}>;\n\nfunction Section({children, title}: SectionProps): JSX.Element {\n const isDarkMode = useColorScheme() === 'dark';\n return (\n \n \n {title}\n \n \n {children}\n \n \n );\n}\n\nfunction App(): JSX.Element {\n const isDarkMode = useColorScheme() === 'dark';\n\n const backgroundStyle = {\n backgroundColor: isDarkMode ? Colors.darker : Colors.lighter,\n };\n\n return (\n \n \n \n
\n \n
\n Edit App.tsx to change this\n screen and then come back to see your edits.\n
\n
\n \n
\n
\n \n
\n
\n Read the docs to discover what to do next:\n
\n \n \n \n \n );\n}\n\nconst styles = StyleSheet.create({\n sectionContainer: {\n marginTop: 32,\n paddingHorizontal: 24,\n },\n sectionTitle: {\n fontSize: 24,\n fontWeight: '600',\n },\n sectionDescription: {\n marginTop: 8,\n fontSize: 18,\n fontWeight: '400',\n },\n highlight: {\n fontWeight: '700',\n },\n});\n\nexport default App;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport Colors from './components/Colors';\nimport DebugInstructions from './components/DebugInstructions';\nimport Header from './components/Header';\nimport HermesBadge from './components/HermesBadge';\nimport LearnMoreLinks from './components/LearnMoreLinks';\nimport ReloadInstructions from './components/ReloadInstructions';\n\nexport {\n Colors,\n Header,\n HermesBadge,\n LearnMoreLinks,\n DebugInstructions,\n ReloadInstructions,\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nexport default {\n primary: '#1292B4',\n white: '#FFF',\n lighter: '#F3F3F3',\n light: '#DAE1E7',\n dark: '#444',\n darker: '#222',\n black: '#000',\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {Node} from 'react';\n\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Text from '../../Text/Text';\nimport Platform from '../../Utilities/Platform';\nimport React from 'react';\n\nconst styles = StyleSheet.create({\n highlight: {\n fontWeight: '700',\n },\n});\n\nconst DebugInstructions: () => Node = Platform.select({\n ios: () => (\n \n Press Cmd + D in the simulator or{' '}\n Shake your device to open the React\n Native debug menu.\n \n ),\n default: () => (\n \n Press Cmd or Ctrl + M or{' '}\n Shake your device to open the React\n Native debug menu.\n \n ),\n});\n\nexport default DebugInstructions;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {Node} from 'react';\n\nimport ImageBackground from '../../Image/ImageBackground';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Text from '../../Text/Text';\nimport useColorScheme from '../../Utilities/useColorScheme';\nimport Colors from './Colors';\nimport HermesBadge from './HermesBadge';\nimport React from 'react';\n\nconst Header = (): Node => {\n const isDarkMode = useColorScheme() === 'dark';\n return (\n \n \n \n Welcome to\n {'\\n'}\n React Native\n \n \n );\n};\n\nconst styles = StyleSheet.create({\n background: {\n paddingBottom: 40,\n paddingTop: 96,\n paddingHorizontal: 32,\n },\n logo: {\n opacity: 0.2,\n overflow: 'visible',\n resizeMode: 'cover',\n /*\n * These negative margins allow the image to be offset similarly across screen sizes and component sizes.\n *\n * The source logo.png image is 512x512px, so as such, these margins attempt to be relative to the\n * source image's size.\n */\n marginLeft: -128,\n marginBottom: -192,\n },\n text: {\n fontSize: 40,\n fontWeight: '700',\n textAlign: 'center',\n },\n});\n\nexport default Header;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {Node} from 'react';\n\nimport View from '../../Components/View/View';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Text from '../../Text/Text';\nimport useColorScheme from '../../Utilities/useColorScheme';\nimport Colors from './Colors';\nimport React from 'react';\n\nconst HermesBadge = (): Node => {\n const isDarkMode = useColorScheme() === 'dark';\n const version =\n global.HermesInternal?.getRuntimeProperties?.()['OSS Release Version'] ??\n '';\n return global.HermesInternal ? (\n \n \n {`Engine: Hermes ${version}`}\n \n \n ) : null;\n};\n\nconst styles = StyleSheet.create({\n badge: {\n position: 'absolute',\n top: 8,\n right: 12,\n },\n badgeText: {\n fontSize: 14,\n fontWeight: '600',\n textAlign: 'right',\n },\n});\n\nexport default HermesBadge;\n","","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nmodule.exports = require('@react-native/assets-registry/registry');\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {Node} from 'react';\n\nimport TouchableOpacity from '../../Components/Touchable/TouchableOpacity';\nimport View from '../../Components/View/View';\nimport openURLInBrowser from '../../Core/Devtools/openURLInBrowser';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Text from '../../Text/Text';\nimport useColorScheme from '../../Utilities/useColorScheme';\nimport Colors from './Colors';\nimport React, {Fragment} from 'react';\n\nconst links = [\n {\n id: 1,\n title: 'The Basics',\n link: 'https://reactnative.dev/docs/tutorial',\n description: 'Explains a Hello World for React Native.',\n },\n {\n id: 2,\n title: 'Style',\n link: 'https://reactnative.dev/docs/style',\n description:\n 'Covers how to use the prop named style which controls the visuals.',\n },\n {\n id: 3,\n title: 'Layout',\n link: 'https://reactnative.dev/docs/flexbox',\n description: 'React Native uses flexbox for layout, learn how it works.',\n },\n {\n id: 4,\n title: 'Components',\n link: 'https://reactnative.dev/docs/components-and-apis',\n description: 'The full list of components and APIs inside React Native.',\n },\n {\n id: 5,\n title: 'Navigation',\n link: 'https://reactnative.dev/docs/navigation',\n description:\n 'How to handle moving between screens inside your application.',\n },\n {\n id: 6,\n title: 'Networking',\n link: 'https://reactnative.dev/docs/network',\n description: 'How to use the Fetch API in React Native.',\n },\n {\n id: 7,\n title: 'Help',\n link: 'https://reactnative.dev/help',\n description:\n 'Need more help? There are many other React Native developers who may have the answer.',\n },\n {\n id: 8,\n title: 'Follow us on Twitter',\n link: 'https://twitter.com/reactnative',\n description:\n 'Stay in touch with the community, join in on Q&As and more by following React Native on Twitter.',\n },\n];\n\nconst LinkList = (): Node => {\n const isDarkMode = useColorScheme() === 'dark';\n return (\n \n {links.map(({id, title, link, description}) => (\n \n \n openURLInBrowser(link)}\n style={styles.linkContainer}>\n {title}\n \n {description}\n \n \n \n ))}\n \n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n marginTop: 32,\n paddingHorizontal: 24,\n },\n linkContainer: {\n flexWrap: 'wrap',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingVertical: 8,\n },\n link: {\n flex: 2,\n fontSize: 18,\n fontWeight: '400',\n color: Colors.primary,\n },\n description: {\n flex: 3,\n paddingVertical: 16,\n fontWeight: '400',\n fontSize: 18,\n },\n separator: {\n height: StyleSheet.hairlineWidth,\n },\n});\n\nexport default LinkList;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nconst getDevServer = require('./getDevServer');\n\nfunction openURLInBrowser(url: string) {\n // $FlowFixMe[unused-promise]\n fetch(getDevServer().url + 'open-url', {\n method: 'POST',\n body: JSON.stringify({url}),\n });\n}\n\nmodule.exports = openURLInBrowser;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport NativeSourceCode from '../../NativeModules/specs/NativeSourceCode';\n\nlet _cachedDevServerURL: ?string;\nlet _cachedFullBundleURL: ?string;\nconst FALLBACK = 'http://localhost:8081/';\n\ntype DevServerInfo = {\n url: string,\n fullBundleUrl: ?string,\n bundleLoadedFromServer: boolean,\n ...\n};\n\n/**\n * Many RN development tools rely on the development server (packager) running\n * @return URL to packager with trailing slash\n */\nfunction getDevServer(): DevServerInfo {\n if (_cachedDevServerURL === undefined) {\n const scriptUrl = NativeSourceCode.getConstants().scriptURL;\n const match = scriptUrl.match(/^https?:\\/\\/.*?\\//);\n _cachedDevServerURL = match ? match[0] : null;\n _cachedFullBundleURL = match ? scriptUrl : null;\n }\n\n return {\n url: _cachedDevServerURL ?? FALLBACK,\n fullBundleUrl: _cachedFullBundleURL,\n bundleLoadedFromServer: _cachedDevServerURL !== null,\n };\n}\n\nmodule.exports = getDevServer;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {Node} from 'react';\n\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Text from '../../Text/Text';\nimport Platform from '../../Utilities/Platform';\nimport React from 'react';\n\nconst styles = StyleSheet.create({\n highlight: {\n fontWeight: '700',\n },\n});\n\nconst ReloadInstructions: () => Node = Platform.select({\n ios: () => (\n \n Press Cmd + R in the simulator to\n reload your app's code.\n \n ),\n default: () => (\n \n Double tap R on your keyboard to\n reload your app's code.\n \n ),\n});\n\nexport default ReloadInstructions;\n"],"x_facebook_sources":[[{"names":["","global.$RefreshReg$","global.$RefreshSig$","","clear","define","metroRequire","initializingModuleIds.slice.map$argument_0","shouldPrintRequireCycle","isIgnored","regExps.some$argument_0","modules.every$argument_0","metroImportDefault","metroImportAll","fallbackRequireContext","fallbackRequireResolveWeak","guardedLoadModule","unpackModuleId","packModuleId","registerSegment","moduleIds.forEach$argument_0","loadModuleImplementation","unknownModuleError","metroRequire.Systrace.beginEvent","metroRequire.Systrace.endEvent","metroRequire.getModules","createHotReloadingObject","hot.accept","hot.dispose","metroHotUpdateModule","topologicalSort$argument_1","topologicalSort$argument_2","setTimeout$argument_0","topologicalSort","traverseDependentNodes","dependentNodes.forEach$argument_0","roots.forEach$argument_0","runUpdatedModule","performFullRefresh","isReactRefreshBoundary","shouldInvalidateReactRefreshBoundary","getRefreshBoundarySignature","registerExportsForReactRefresh","requireSystrace","requireRefresh"],"mappings":"AAA;wBC8B,QD;wBEC,MC,cH;AIE;CJO;AKK;CL2C;AMC;aCuB,6DD;CNe;AQI;oBCM;mCCC,+BD,CD;uBGG,8BH;CRC;AYC;CZoB;AaE;CbkC;uBcM;CdS;2BeG;CfO;AgBE;ChBe;AiBG;CjBO;AkBE;ClBE;AmBI;sBCgB;KDI;CnBE;AqBC;8BpB+C;SoBE;CrBmD;AsBC;CtBQ;gBuBI,QvB;cwBC,QxB;4ByBG;GzBE;iC0BG;cCK;ODG;eEC;OFE;G1BG;+B6BE;QC+C;SD6C;QEC,gBF;yCG0G;SHI;G7BG;0BiCC;ICI;6BCc;ODE;KDG;kBGC;KHE;GjCE;2BqCC;GrC8D;6BsCC;GtCoB;+BuCG;GvC0B;6CwCC;GxCgB;oCyCG;GzCqB;uC0CC;G1CiB;wB2CU;G3CK;uB4CC;G5CK"}],[{"names":["","","inspect","stylizeNoColor","arrayToHash","array.forEach$argument_0","formatValue","keys.map$argument_0","formatPrimitive","formatError","formatArray","keys.forEach$argument_0","formatProperty","str.split.map$argument_0","reduceToSingleString","output.reduce$argument_0","isArray","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isRegExp","isObject","isDate","isError","isFunction","objectToString","hasOwnProperty","getNativeLogFunction","Array.prototype.map.call$argument_1","repeat","Array.apply.map$argument_0","consoleTablePolyfill","columns.forEach$argument_0","joinRow","row.map$argument_0","columnWidths.map$argument_0","groupFormat","consoleGroupPolyfill","consoleGroupCollapsedPolyfill","consoleGroupEndPolyfill","consoleAssertPolyfill","Object.keys.forEach$argument_0","methodName","forEach$argument_0","stub","global.console.assert"],"mappings":"AAA;iBCiB;ECwB;GDO;EEE;GFE;EGE;kBCG;KDE;GHG;EKE;wBC2F;ODS;GLM;EOE;GPgB;EQE;GRE;ESE;iBCkB;KDM;GTE;EWE;mBC4B;eDE;qBCQ;iBDE;GX0B;EaE;+BCE;KDI;Gbc;EeI;GfE;EgBE;GhBE;EiBE;GjBE;EkBE;GlBE;EmBE;GnBE;EoBE;GpBE;EqBE;GrBE;EsBE;GtBE;EuBE;GvBE;EwBE;GxBE;EyBE;GzBE;E0BE;G1BK;E2BE;G3BE;E4BE;G5BE;E6BE;G7BE;CDG;A+BmB;S9BC;yB+BM;S/BE;G8BmC;C/BC;AiCE;yCCC;GDE;CjCC;AmCE;kBCwB;GDQ;EEI;wBCC;KDG;GFG;oCIE;GJE;CnCc;AwCQ;CxCG;AyCE;CzCG;A0CE;C1CG;A2CE;C3CG;A4CE;C5CI;iC6CmC;8BCG;SDG;K7CE;gE+CK;8BDE;SCE;K/CE;EgDG,kBhD;IiDU;KjDI"}],[{"names":["","onError","ErrorUtils.setGlobalHandler","ErrorUtils.getGlobalHandler","ErrorUtils.reportError","ErrorUtils.reportFatalError","ErrorUtils.applyWithGuard","ErrorUtils.applyWithGuardIfNeeded","ErrorUtils.inGuard","ErrorUtils.guard","guarded"],"mappings":"AAA;mCCqB;CDK;EEW;GFE;EGC;GHE;EIC;GJE;EKC;GLG;EMC;GNsB;EOC;GPe;EQC;GRE;ESC;ICc;KDQ;GTG"}],[{"names":["","","entries","values"],"mappings":"AAA;CCW;qBCU;KDa;oBEQ;KFa;CDE"}],[{"names":["","AppRegistry.registerComponent$argument_1"],"mappings":"AAA;uCCQ,SD"}],[{"names":["","module.exports.get__AccessibilityInfo","module.exports.get__ActivityIndicator","module.exports.get__Button","module.exports.get__DrawerLayoutAndroid","module.exports.get__FlatList","module.exports.get__Image","module.exports.get__ImageBackground","module.exports.get__InputAccessoryView","module.exports.get__KeyboardAvoidingView","module.exports.get__Modal","module.exports.get__Pressable","module.exports.get__ProgressBarAndroid","module.exports.get__RefreshControl","module.exports.get__SafeAreaView","module.exports.get__ScrollView","module.exports.get__SectionList","module.exports.get__StatusBar","module.exports.get__Switch","module.exports.get__Text","module.exports.get__TextInput","module.exports.get__Touchable","module.exports.get__TouchableHighlight","module.exports.get__TouchableNativeFeedback","module.exports.get__TouchableOpacity","module.exports.get__TouchableWithoutFeedback","module.exports.get__View","module.exports.get__VirtualizedList","module.exports.get__VirtualizedSectionList","module.exports.get__ActionSheetIOS","module.exports.get__Alert","module.exports.get__Animated","module.exports.get__Appearance","module.exports.get__AppRegistry","module.exports.get__AppState","module.exports.get__BackHandler","module.exports.get__Clipboard","module.exports.get__DeviceInfo","module.exports.get__DevSettings","module.exports.get__Dimensions","module.exports.get__Easing","module.exports.get__findNodeHandle","module.exports.get__I18nManager","module.exports.get__InteractionManager","module.exports.get__Keyboard","module.exports.get__LayoutAnimation","module.exports.get__Linking","module.exports.get__LogBox","module.exports.get__NativeDialogManagerAndroid","module.exports.get__NativeEventEmitter","module.exports.get__Networking","module.exports.get__PanResponder","module.exports.get__PermissionsAndroid","module.exports.get__PixelRatio","module.exports.get__PushNotificationIOS","module.exports.get__Settings","module.exports.get__Share","module.exports.get__StyleSheet","module.exports.get__Systrace","module.exports.get__ToastAndroid","module.exports.get__TurboModuleRegistry","module.exports.get__UIManager","module.exports.get__unstable_batchedUpdates","module.exports.get__useAnimatedValue","module.exports.get__useColorScheme","module.exports.get__useWindowDimensions","module.exports.get__UTFSequence","module.exports.get__Vibration","module.exports.get__YellowBox","module.exports.get__DeviceEventEmitter","module.exports.get__DynamicColorIOS","module.exports.get__NativeAppEventEmitter","module.exports.get__NativeModules","module.exports.get__Platform","module.exports.get__PlatformColor","module.exports.get__processColor","module.exports.get__requireNativeComponent","module.exports.get__RootTagContext","module.exports.get__unstable_enableLogBox","","module.exports.get__ColorPropType","module.exports.get__EdgeInsetsPropType","module.exports.get__PointPropType","module.exports.get__ViewPropTypes","Object.defineProperty$argument_2.get"],"mappings":"AAA;ECuG;GDG;EEC;GFG;EGC;GHE;EIE;GJE;EKC;GLE;EMC;GNE;EOC;GPE;EQC;GRE;ESC;GTG;EUC;GVE;EWC;GXE;EYE;GZQ;EaC;GbE;EcC;GdE;EeC;GfE;EgBC;GhBE;EiBC;GjBE;EkBC;GlBE;EmBC;GnBE;EoBC;GpBE;EqBC;GrBE;EsBC;GtBE;EuBC;GvBE;EwBC;GxBE;EyBC;GzBE;E0BC;G1BE;E2BC;G3BE;E4BC;G5BE;E6BG;G7BE;E8BC;G9BE;E+BG;G/BG;EgCC;GhCE;EiCC;GjCE;EkCC;GlCE;EmCC;GnCE;EoCC;GpCQ;EqCC;GrCE;EsCC;GtCE;EuCC;GvCE;EwCC;GxCE;EyCC;GzCE;E0CC;G1CE;E2CC;G3CE;E4CC;G5CE;E6CC;G7CE;E8CC;G9CE;E+CC;G/CE;EgDC;GhDG;EiDC;GjDE;EkDC;GlDE;EmDC;GnDE;EoDC;GpDE;EqDC;GrDE;EsDC;GtDQ;EuDC;GvDE;EwDC;GxDE;EyDC;GzDE;E0DC;G1DE;E2DE;G3DE;E4DC;G5DE;E6DC;G7DE;E8DC;G9DM;E+DC;G/DE;EgEC;GhEE;EiEC;GjEE;EkEC;GlEE;EmEC;GnEE;EoEC;GpEE;EqEG;GrEE;EsEC;GtEG;EuEC;GvEE;EwEC;GxEE;EyEC;GzEE;E0EC;G1EG;E2EC;G3EE;E4EC;G5EI;E6EC;G7EE;E8EC;WCC;ODG;G9EC;EgFE;GhFS;EiFC;GjFS;EkFC;GlFS;EmFC;GnFS;IoFU;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFQ;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFQ;KpFO;IoFQ;KpFO;IoFQ;KpFO;IoFQ;KpFQ;IoFQ;KpFO;IoFQ;KpFO;IoFQ;KpFO"}],[{"names":["","isBoldTextEnabled","Promise$argument_0","isGrayscaleEnabled","isInvertColorsEnabled","isReduceMotionEnabled","prefersCrossFadeTransitions","isReduceTransparencyEnabled","isScreenReaderEnabled","isAccessibilityServiceEnabled","addEventListener","remove","setAccessibilityFocus","sendAccessibilityEvent","announceForAccessibility","announceForAccessibilityWithOptions","getRecommendedTimeoutMillis"],"mappings":"AAA;ECqF;yBCI;ODS;GDE;EGU;yBDI;OCS;GHE;EIU;yBFI;OES;GJE;EKU;uBHC;KGiB;GLC;EMU;uBJC;KIgB;GNC;EOU;yBLI;OKS;GPE;EQU;uBNC;KMiB;GRC;ESY;uBPC;KOa;GTC;EUoC;SCO,iBD;GVG;EYO;GZE;EaK;GbU;EcO;GdM;EeQ;GfgB;EgBO;yBdE;OcS;GhBI"}],[{"names":["_interopRequireDefault",""],"mappings":"AAA;CCI"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","EventEmitter","addListener","registration.remove","emit","removeAllListeners","listenerCount","allocate"],"mappings":"AAA;eC8D;ECS;MCiB;ODE;GDI;EGS;GHY;EIK;GJQ;EKK;GLG;CDC;AOE;CPc"}],[{"names":["","_toConsumableArray"],"mappings":"AAA;ACI;CDE"}],[{"names":["","_arrayWithoutHoles"],"mappings":"AAA;ACC;CDE"}],[{"names":["_arrayLikeToArray",""],"mappings":"AAA;CCI"}],[{"names":["_iterableToArray",""],"mappings":"AAA;CCE"}],[{"names":["","_unsupportedIterableToArray"],"mappings":"AAA;ACC;CDO"}],[{"names":["_nonIterableSpread",""],"mappings":"AAA;CCE"}],[{"names":["_classCallCheck",""],"mappings":"AAA;CCI"}],[{"names":["","_defineProperties","_createClass"],"mappings":"AAA;ACC;CDQ;AEC;CFO"}],[{"names":["","_toPropertyKey"],"mappings":"AAA;ACE;CDG"}],[{"names":["","_toPrimitive"],"mappings":"AAA;ACC;CDS"}],[{"names":["_typeof","",""],"mappings":"AAA;yGCG;GDE,GC;GDE;CEC"}],[{"names":["","get__Version","get__constants","get__isTesting","get__isTV","select"],"mappings":"AAA;ECuB;GDG;EEE;GFyB;EGE;GHM;EIE;GJG;UKC;oBLQ"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","requireModule","get","getEnforcing"],"mappings":"AAA;ACkB;CDgB;OEE;CFE;OGE;CHQ"}],[{"names":["","invariant","format.replace$argument_1"],"mappings":"AAA;gBCoB;8BCkB,uCD;CDQ"}],[{"names":["","genModule","methods.forEach$argument_0","module.getConstants","loadModule","genMethod","promiseMethodWrapper","Promise$argument_0","BatchedBridge.enqueueNativeCall$argument_3","BatchedBridge.enqueueNativeCall$argument_4","nonPromiseMethodWrapper","arrayContains","updateErrorWithErrorData","forEach$argument_0","defineLazyObjectProperty$argument_2.get"],"mappings":"AAA;AC2B;oBC2B;KDW;0BEK,oCF;CDY;AIK;CJQ;AKE;SCG;yBCK;UCK,qBD;UEC;aFM;ODE;KDC;SKE;KLkC;CLK;AWE;CXE;AYE;CZO;Iac;eCc,qCD;KbG"}],[{"names":["","_slicedToArray"],"mappings":"AAA;ACI;CDE"}],[{"names":["_arrayWithHoles",""],"mappings":"AAA;CCE"}],[{"names":["_iterableToArrayLimit",""],"mappings":"AAA;CC0B"}],[{"names":["_nonIterableRest",""],"mappings":"AAA;CCE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","MessageQueue","constructor","spy","prototype.__spy","callFunctionReturnFlushedQueue","__guard$argument_0","invokeCallbackAndReturnFlushedQueue","flushedQueue","getEventLoopRunningTime","registerCallableModule","_lazyCallableModules.name","registerLazyCallableModule","getCallableModule","callNativeSyncHook","processCallbacks","_successCallbacks.forEach$argument_0","enqueueNativeCall","isValidArgument","replacer","createDebugLookup","setReactNativeMicrotasksCallback","__guard","__shouldPauseOnThrow","__callReactNativeMicrotasks","__callFunction","__invokeCallback"],"mappings":"AAA;ACwC;ECgB;GD4B;EEM;qCCE;ODM;GFM;EIE;iBCK;KDE;GJG;EME;iBDI;KCE;GNG;EOE;iBFC;KEE;GPK;EQE;GRE;ESE;sCCC,YD;GTC;EWE;sCDG;KCQ;GXC;EYE;GZG;EaE;GbkB;EcE;yCCe;WDK;Gd6B;EgBE;8BCiB;OD6B;uBEK;OFS;GhByC;EmBE;GnBS;EoBK;GpBE;EqBM;GrBU;EsBO;GtBO;EuBE;GvBM;EwBE;GxBiC;EyBE;GzB+C;CDC"}],[{"names":["","isEnabled","setEnabled","beginEvent","endEvent","beginAsyncEvent","endAsyncEvent","counterEvent"],"mappings":"AAA;OCgC;CDI;OEQ,gDF;OGM;CHM;OIK;CJI;OKO;CLiB;OMM;CNe;OOK;CPO"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","createStringifySafeWithLimits","replacer","stringifySafe"],"mappings":"AAA;OCgB;ECe;GD6C;SEE;GFgC;CDC"}],[{"names":["","defineLazyObjectProperty","getValue","setValue"],"mappings":"AAA;ACe;ECgB;GDc;EEC;GFS;CDQ"}],[{"names":["","legacySendAccessibilityEvent"],"mappings":"AAA;ACgB;CDgB"}],[{"names":["","isFabricReactTag","measure","measureInWindow","measureLayout","measureLayoutRelativeToParent","FabricUIManager.measure$argument_1","dispatchViewManagerCommand"],"mappings":"AAA;ACoC;CDG;EEU;GF0B;EGE;GHwB;EIE;GJqC;EKE;UCoB;WDE;GLW;EOE;GPyB"}],[{"names":["","nullthrows"],"mappings":"AAA;ACE;CDO"}],[{"names":["","errorMessageForMethod","module.exports.getViewManagerConfig","module.exports.hasViewManagerConfig","module.exports.getConstants","module.exports.getConstantsForViewManager","module.exports.getDefaultEventTypes","module.exports.lazilyLoadView","module.exports.createView","module.exports.updateView","module.exports.focus","module.exports.blur","module.exports.findSubviewIn","module.exports.dispatchViewManagerCommand","module.exports.measure","module.exports.measureInWindow","module.exports.viewIsDescendantOf","module.exports.measureLayout","module.exports.measureLayoutRelativeToParent","module.exports.setJSResponder","module.exports.clearJSResponder","module.exports.configureNextLayoutAnimation","module.exports.removeSubviewsFromContainerWithID","module.exports.replaceExistingNonRootView","module.exports.setChildren","module.exports.manageChildren","module.exports.setLayoutAnimationEnabledExperimental","module.exports.sendAccessibilityEvent","module.exports.showPopupMenu","module.exports.dismissPopupMenu"],"mappings":"AAA;8BCgB;4DDG;wBEG;GFO;wBGC;GHE;gBIC;GJG;8BKC;GLG;wBMC;GNG;kBOC;GPG;cQC;+DRK;cSC;sDTC;SUC;iDVC;QWC;gDXC;iBYC;kEZU;8BaC;+EbI;WcC;4DdU;mBeC;oEfG;sBgBC;uEhBI;iBiBC;kEjBU;iCkBC;yElBU;kBmBC;0DnBC;oBoBC,cpB;gCqBC;wErBK;qCsBC;6EtBC;8BuBC;sEvBC;ewBC;uDxBC;kByBC;mEzBO;yC0BG;G1BI;0B2BG;kE3BC;iB4BC;kE5BK;oB6BC;4D7BC"}],[{"names":["","unstable_hasComponent"],"mappings":"AAA;OCkB;CDW"}],[{"names":["","getConstants","getViewManagerConfig","UIManagerJS.createView","UIManagerJS.getConstants","UIManagerJS.getViewManagerConfig","UIManagerJS.hasViewManagerConfig","lazifyViewManagerConfig","defineLazyObjectProperty$argument_2.get","Object.keys.forEach$argument_0","NativeUIManager.getConstants.ViewManagerNames.forEach$argument_0"],"mappings":"AAA;ACyB;CDM;AEE;CF4C;EGO;GHa;EIC;GJE;EKC;GLE;EMC;GNE;AOU;WCK;2CCI;WDK;ODE;WCG;2CCK;WDK;ODE;CPG;sCSQ;GTE;0DUE;WFE,iEE;GVE;sCSI;aDM;SCO;GTG"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","getFabricUIManager"],"mappings":"AAA;OC8E;CDE"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","renderElement","findHostInstance_DEPRECATED","findNodeHandle","dispatchCommand","sendAccessibilityEvent","unmountComponentAtNodeAndRemoveContainer","unstable_batchedUpdates","isProfilingRenderer"],"mappings":"AAA;OCe;CDqB;OEE;CFM;OGE;CHM;OIE;CJoB;OKE;CLQ;OMM;CNM;OOE;CPS;OQE;CRE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","invokeGuardedCallbackImpl","reporter.onError","invokeGuardedCallback","invokeGuardedCallbackAndCatchFirstError","executeDispatch","executeDirectDispatch","functionThatReturnsTrue","functionThatReturnsFalse","SyntheticEvent","assign$argument_1.preventDefault","assign$argument_1.stopPropagation","assign$argument_1.persist","assign$argument_1.destructor","SyntheticEvent.Interface.currentTarget","SyntheticEvent.Interface.timeStamp","SyntheticEvent.extend","E","Class","createOrGetPooledEvent","releasePooledEvent","addEventPoolingTo","SyntheticEvent.extend$argument_0.touchHistory","isStartish","isMoveish","timestampForTouch","getTouchIdentifier","recordTouchStart","recordTouchMove","recordTouchEnd","ResponderTouchHistoryStore.instrument","ResponderTouchHistoryStore.recordTouchTrack","accumulate","accumulateInto","forEachAccumulated","changeResponder","getParent","traverseTwoPhase","getListener","accumulateDirectionalDispatches","accumulateDirectDispatchesSingle","accumulateTwoPhaseDispatchesSingleSkipTarget","accumulateTwoPhaseDispatchesSingle","ResponderEventPlugin._getResponder","ResponderEventPlugin.extractEvents","ResponderEventPlugin.injection.injectGlobalResponderHandler","recomputePluginOrdering","publishRegistrationName","getListeners","stateNode.canonical._eventListeners.mangledImperativeRegistrationName.forEach$argument_0","listenerFnWrapper","listeners.push$argument_0","accumulateListenersAndInstances","accumulateDirectionalDispatches$1","traverseTwoPhase$1","accumulateTwoPhaseDispatchesSingle$1","accumulateDirectDispatchesSingle$1","injectedNamesToPlugins$jscomp$inline_223.ReactNativeBridgeEventPlugin.extractEvents","getInstanceFromInstance","getFiberCurrentPropsFromNode","getNodeFromInstance","ResponderEventPlugin.injection.injectGlobalResponderHandler$argument_0.onChange","getIteratorFn","getComponentNameFromType","getComponentNameFromFiber","getNearestMountedFiber","assertIsMounted","findCurrentFiberUsingSlowPath","findCurrentHostFiber","findCurrentHostFiberImpl","mountSafeCallback_NOT_REALLY_SAFE","","defaultDiffer","restoreDeletedValuesInNestedArray","diffNestedProperty","addNestedProperty","clearNestedProperty","diffProperties","batchedUpdatesImpl","batchedUpdates","executeDispatchesAndReleaseTopLevel","dispatchEvent","batchedUpdates$argument_0","onCommitRoot","clz32Fallback","getHighestPriorityLanes","getNextLanes","computeExpirationTime","getLanesToRetrySynchronouslyOnError","claimNextTransitionLane","createLaneMap","markRootUpdated","markRootFinished","markRootEntangled","lanesToEventPriority","shim$1","ReactFabricHostComponent","_proto.blur","_proto.focus","_proto.measure","_proto.measureInWindow","_proto.measureLayout","_proto.setNativeProps","_proto.addEventListener_unstable","_proto.removeEventListener_unstable","optionsObj.filter$argument_0","createTextInstance","cloneHiddenInstance","describeComponentFrame","describeFunctionComponentFrame","createCursor","pop","push","getMaskedContext","isContextProvider","popContext","pushTopLevelContextObject","processChildContext","pushContextProvider","invalidateContextProvider","is","flushSyncCallbacks","popTreeContext","shallowEqual","describeFiber","resolveDefaultProps","resetContextDependencies","popProvider","scheduleContextWorkOnParentPath","prepareToReadContext","readContext","pushConcurrentUpdateQueue","enqueueConcurrentHookUpdate","markUpdateLaneFromFiberToRoot","initializeUpdateQueue","cloneUpdateQueue","createUpdate","enqueueUpdate","entangleTransitions","enqueueCapturedUpdate","processUpdateQueue","commitUpdateQueue","applyDerivedStateFromProps","classComponentUpdater.isMounted","classComponentUpdater.enqueueSetState","classComponentUpdater.enqueueReplaceState","classComponentUpdater.enqueueForceUpdate","checkShouldComponentUpdate","constructClassInstance","callComponentWillReceiveProps","mountClassInstance","coerceRef","current","throwOnInvalidObjectType","resolveLazy","ChildReconciler","deleteChild","deleteRemainingChildren","mapRemainingChildren","useFiber","placeChild","placeSingleChild","updateTextNode","updateElement","updatePortal","updateFragment","createChild","updateSlot","updateFromMap","reconcileChildrenArray","oldFiber.forEach$argument_0","reconcileChildrenIterator","reconcileChildFibers","requiredContext","pushHostContainer","popHostContainer","pushHostContext","popHostContext","findFirstSuspended","resetWorkInProgressVersions","throwInvalidHookError","areHookInputsEqual","renderWithHooks","mountWorkInProgressHook","updateWorkInProgressHook","basicStateReducer","updateReducer","rerenderReducer","updateMutableSource","updateSyncExternalStore","pushStoreConsistencyCheck","updateStoreInstance","subscribeToStore","subscribe$argument_0","checkIfSnapshotChanged","forceStoreRerender","mountState","pushEffect","updateRef","mountEffectImpl","updateEffectImpl","mountEffect","updateEffect","updateInsertionEffect","updateLayoutEffect","imperativeHandleEffect","updateImperativeHandle","mountDebugValue","updateCallback","updateMemo","updateDeferredValueImpl","startTransition","updateId","dispatchReducerAction","dispatchSetState","isRenderPhaseUpdate","enqueueRenderPhaseUpdate","entangleTransitionUpdate","HooksDispatcherOnMount.useCallback","HooksDispatcherOnMount.useImperativeHandle","HooksDispatcherOnMount.useLayoutEffect","HooksDispatcherOnMount.useInsertionEffect","HooksDispatcherOnMount.useMemo","HooksDispatcherOnMount.useReducer","HooksDispatcherOnMount.useRef","HooksDispatcherOnMount.useDeferredValue","HooksDispatcherOnMount.useTransition","HooksDispatcherOnMount.useMutableSource","HooksDispatcherOnMount.useSyncExternalStore","HooksDispatcherOnMount.useId","HooksDispatcherOnUpdate.useState","HooksDispatcherOnUpdate.useDeferredValue","HooksDispatcherOnUpdate.useTransition","HooksDispatcherOnRerender.useState","HooksDispatcherOnRerender.useDeferredValue","HooksDispatcherOnRerender.useTransition","createCapturedValueAtFiber","createCapturedValue","logCapturedError","setTimeout$argument_0","createRootErrorUpdate","lane.callback","createClassErrorUpdate","lane.payload","attachPingListener","reconcileChildren","updateForwardRef","updateMemoComponent","updateSimpleMemoComponent","updateOffscreenComponent","markRef","updateFunctionComponent","updateClassComponent","finishClassComponent","pushHostRootContext","mountSuspenseOffscreenState","updateSuspenseComponent","mountSuspensePrimaryChildren","retrySuspenseComponentWithoutHydrating","updateDehydratedSuspenseComponent","scheduleSuspenseWorkOnFiber","initSuspenseListRenderState","updateSuspenseListComponent","resetSuspendedCurrentOnMountInLegacyMode","bailoutOnAlreadyFinishedWork","attemptEarlyBailoutIfNoScheduledUpdate","hadNoMutationsEffects","appendAllChildren","appendAllChildrenToContainer","updateHostContainer","updateHostComponent$1","updateHostText$1","cutOffTailIfNeeded","bubbleProperties","completeWork","unwindWork","safelyDetachRef","safelyCallDestroy","commitBeforeMutationEffects","commitHookEffectListUnmount","commitHookEffectListMount","detachFiberAfterEffects","recursivelyTraverseDeletionEffects","commitDeletionEffectsOnFiber","attachSuspenseRetryListeners","wakeables.forEach$argument_0","recursivelyTraverseMutationEffects","commitMutationEffectsOnFiber","commitReconciliationEffects","commitLayoutEffects","requestEventTime","requestUpdateLane","scheduleUpdateOnFiber","ensureRootIsScheduled","performConcurrentWorkOnRoot","recoverFromConcurrentError","queueRecoverableErrors","isRenderConsistentWithExternalStores","markRootSuspended$1","performSyncWorkOnRoot","popRenderLanes","prepareFreshStack","handleError","pushDispatcher","renderDidSuspendDelayIfPossible","renderRootSync","workLoopSync","workLoopConcurrent","performUnitOfWork","completeUnitOfWork","commitRoot","commitRootImpl","scheduleCallback$1$argument_1","flushPassiveEffects","captureCommitPhaseErrorOnRoot","captureCommitPhaseError","pingSuspendedRoot","retryTimedOutBoundary","retryDehydratedSuspenseBoundary","resolveRetryWakeable","beginWork$1","scheduleCallback$1","FiberNode","createFiber","shouldConstruct","resolveLazyComponentTag","createWorkInProgress","createFiberFromTypeAndProps","createFiberFromFragment","createFiberFromOffscreen","createFiberFromText","createFiberFromPortal","FiberRootNode","createPortal","findHostInstance","updateContainer","emptyFindFiberByHostInstance","findNodeHandle","onRecoverableError","devToolsConfig$jscomp$inline_938.rendererConfig.getInspectorDataForViewTag","internals$jscomp$inline_1180.findHostInstanceByFiber","exports.createPortal","exports.dispatchCommand","exports.findHostInstance_DEPRECATED","exports.render","exports.sendAccessibilityEvent","exports.stopSurface","updateContainer$argument_3","exports.unmountComponentAtNode"],"mappings":"AAA;ACkB;CDO;aEM;KFG;AGE;CHI;AIC;CJuB;AKK;CLK;AMC;CNa;AOE;CPE;AQC;CRE;ASC;CTyB;kBUE;GVQ;mBWC;GXO;WYC;GZE;caE;GbO;iBcK;GdE;aeI;GfE;wBgBI;ECC,eD;EEC;GFE;ChBW;AmBE;CnBY;AoBC;CpBO;AqBC;CrBI;gBsBE;GtBE;AuBE;CvBE;AwBC;CxBE;AyBW;CzBE;A0BC;C1BI;A2BC;C3B4B;A4BC;C5BW;A6BC;C7BW;gB8BG;K9BE;sB+BC;K/BgC;AgCG;ChCY;AiCC;CjCY;AkCC;ClCE;AmCG;CnCS;AoCyD;CpCI;AqCC;CrCI;AsCC;CtCc;AuCC;CvCe;AwCC;CxCgB;AyCC;CzCM;A0CC;C1CI;mB2CE;K3CE;mB4CE;K5C0Q;oC6CG;O7CE;A8CK;C9C4D;A+CC;C/CO;AgDI;cCsC;gCCK;SDgB;2BEE;aFS;KDG;ChDM;AoDO;CpDyB;AqDC;CrDQ;AsDC;CtDW;AuDC;CvDS;AwDC;CxDa;qByDc;OzDuC;A0D8B;C1DE;+B2DC;C3DE;sB4DE;C5DI;Y6DE;G7DsB;A8DuB;C9DM;A+DC;C/D8C;AgEC;ChEuD;AiEC;CjEa;AkEC;ClEG;AmEC;CnE2E;AoEC;CpEG;AqEC;CrEQ;AsEC;SCC;GDM;CtEC;AwEK;CxEQ;AyEC;CzEqC;A0EC;C1EqD;A2EC;C3EgB;A4EC;C5EgB;A6EC;C7EoF;A8EC;C9EE;A+EE;C/EQ;AgFE;ChFkB;AiFC;iBCM;GDoC;CjFC;AmFY;CnFU;AoFI;CpFG;AqFG;CrFgD;AsFC;CtFwC;AuFC;CvFwC;AwFC;CxFG;AyFC;CzFK;A0FC;C1FG;A2FC;C3FO;A4FC;C5FkB;A6FC;C7FS;A8FE;C9FS;A+FC;C/FI;gCuEwB;EyBC;GzBU;gB0BE;G1BE;iB2BC;G3BE;mB4BC;G5BO;2B6BC;G7BO;yB8BC;G9BiB;0B+BC;G/BW;qCgCC;GhC0B;wCiCC;8CCO;ODK;GjCC;CvEE;A0GC;C1GiB;A2GG;C3GY;A4GC;C5GI;A6GC;C7GI;A8GI;C9GE;A+GC;C/GG;AgHC;ChHI;AiHK;CjHiB;AkHC;ClHG;AmHC;CnHG;AoHC;CpHO;AqHC;CrHc;AsHC;CtHS;AuHC;CvHkB;AwHC;CxHE;AyHK;CzHwB;A0HO;C1Ha;A2HG;C3HqB;A4HC;C5HqB;A6HC;C7HU;A8HK;C9HE;A+HC;C/HI;AgIC;ChIY;AiIC;CjIQ;AkIC;ClIkB;AmIE;CnII;AoIC;CpIO;AqIC;CrIY;AsIE;CtIQ;AuIC;CvIU;AwIC;CxIS;AyIC;CzIkB;A0IC;C1IS;A2IC;C3I4C;A4IC;C5I+H;A6IC;C7IqB;A8IE;C9Ie;a+IE;G/II;mBgJC;GhJW;uBiJC;GjJY;sBkJC;GlJW;AmJE;CnJe;AoJC;CpJyB;AqJC;CrJa;AsJC;CtJiC;AuJC;gBC+B;ODI;CvJgB;AyJC;CzJS;A0JC;C1JG;A2JC;ECC;GDO;EEC;GFM;EGC;GHO;EIC;GJK;EKC;GLc;EMC;GNK;EOC;GPU;EQC;GRmC;ESC;GTe;EUC;GVe;EWC;GX0D;EYC;GZgC;EaC;GbmD;EcC;uBCsF;ODE;GdE;EgBC;uBDuE;OCE;GhBE;EiBC;GjBqK;C3JE;A6KO;C7KM;A8KC;C9KM;A+KC;C/KI;AgLC;ChLiB;AiLC;CjLG;AkLE;ClLsB;AmLE;CnLI;AoLU;CpLI;AqLC;CrLK;AsLC;CtL2C;AuLC;CvLY;AwLC;CxL6B;AyLC;CzLE;A0LC;C1L6E;A2LC;C3LsB;A4LC,iC5L;A6LC;C7L+B;A8LC;C9LY;A+LC;C/LI;AgMC;mBCC;GDE;ChMC;AkMC;ClMS;AmMC;CnMG;AoMC;CpMmB;AqMC;CrMe;AsMC;CtME;AuMC;CvMS;AwMC;CxMc;AyMC;CzME;A0MC;C1ME;A2MC;C3ME;A4MC;C5ME;A6MC;MtIK;OsIE;MtIM;OsIE;C7ME;A8MC;C9MQ;A+MC,6B/M;AgNC;ChNY;AiNC;CjNa;AkNC;ClNY;AmNC;CnNa;AoNC;CpNE;AqNC;CrNkB;AsNC;CtNuC;AuNC;CvNM;AwNC;CxNO;AyNC;CzNQ;iB0NuB;K1NM;yB2NG;K3NQ;qB4NC;K5NE;wB6NC;K7NE;a8NC;K9NM;gB+NC;K/NmB;YgOC;KhOI;sBiOG;KjOE;mBkOC;KlOM;sBmOC,anO;0BoOC;KpOwB;WqOC;KrOO;csOc;KtOE;sBuOE;KvOG;mBwOC;KxOI;cyOiB;KzOE;sB0OE;K1OK;mB2OC;K3OI;A4OM;C5OiB;A6OC;C7OO;A8OQ;eCU;KDE;C9OE;AgPE;kBCK;GDG;ChPE;AkPC;mBCM;KDE;oBDC;KCE;qBDK;KCU;ClPE;AoPC;CpPc;AqPG;CrPU;AsPC;CtP4B;AuPC;CvPoD;AwPC;CxPgC;AyPC;CzPiD;A0PC;C1PO;A2PC;C3P8B;A4PC;C5PsM;A6PC;C7PuC;A8PC;C9PW;A+PE;C/PE;AgQC;ChQmI;AiQC;CjQS;AkQC;ClQkB;AmQC;CnQ4J;AoQC;CpQK;AqQC;CrQuB;AsQC;CtQsF;AuQC;CvQM;AwQC;CxQoB;AyQC;CzQyE;A0QC;C1QS;oB2QK;C3QoC;A4QC;C5QoC;sB6QC;C7QU;wB8QC;C9QwC;mB+QC;C/QY;AgRC;ChRuB;AiRC;CjRuB;AkRC;ClRoU;AmRC;CnRqD;AoRG;CpRU;AqRC;CrRM;AsRE;CtR2D;AuRC;CvRmB;AwRC;CxRa;AyRC;CzRe;A0RC;C1RQ;A2RC;C3RmG;A4RC;sBCO;KDI;C5RE;A8RC;C9RkB;A+RC;C/R+E;AgSC;ChSI;AiSC;CjSoH;AkS+B;ClSM;AmSC;CnSyB;AoSC;CpSoB;AqSC;CrSsE;AsSC;CtSoL;AuSC;CvSU;AwSC;CxSO;AySC;CzSiC;A0SC;C1SW;A2SC;C3S8B;A4SC;C5SG;A6SC;C7SuE;A8SC;C9SiL;A+SC;C/SI;AgTC;ChTW;AiTC;CjTwB;AkTC;ClTE;AmTC;CnTG;AoTC;CpTK;AqTC;CrTsC;AsTC;CtTiB;AuTC;uCC8B;KDG;CvTsD;AyTC;CzTgJ;A0TC;C1TQ;A2TC;C3T6C;A4TC;C5Te;A6TC;C7TY;A8TC;C9TK;A+TC;C/TkB;cgUE;ChUob;AiUC;CjUE;AkUC;ClUa;AmUC;CnUE;AoUC;CpUG;AqUC;CrUS;AsUC;CtUmC;AuUC;CvUyE;AwUC;CxUI;AyUC;CzUM;A0UC;C1UI;A2UC;C3Uc;A4UC;C5UmB;A6UC;C7UU;A8UC;C9UY;A+UC;C/U4D;AgVC;ChVE;AiVC;CjVY;AkVC;ClVE;qB8EC;C9EW;kCmVQ;OnVI;sCuEC;OvEI;2BoVkB;GpVG;uBqVwB;CrVO;0BsVC;CtVW;sCuVC;CvVW;iBwVG;CxVmC;iCyVC;CzVU;sB0VC;sCCG;KDE;C1VC;iC4VC;C5VE"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","DOMRect","get__x","set__x","get__y","set__y","get__width","set__width","get__height","set__height","fromRect"],"mappings":"AAA;eC0B;ECI;GDE;EEE;GFE;EGK;GHE;EIE;GJE;EKK;GLE;EME;GNE;EOK;GPE;EQE;GRE;ESK;GTM;CDC"}],[{"names":["","_inherits"],"mappings":"AAA;ACC;CDe"}],[{"names":["_setPrototypeOf",""],"mappings":"AAA;CCM"}],[{"names":["","_possibleConstructorReturn"],"mappings":"AAA;ACE;CDO"}],[{"names":["_assertThisInitialized",""],"mappings":"AAA;CCK"}],[{"names":["_getPrototypeOf",""],"mappings":"AAA;CCK"}],[{"names":["","castToNumber","DOMRectReadOnly","constructor","get__x","get__y","get__width","get__height","get__top","get__right","get__bottom","get__left","toJSON","fromRect","__getInternalX","__getInternalY","__getInternalWidth","__getInternalHeight","__setInternalX","__setInternalY","__setInternalWidth","__setInternalHeight"],"mappings":"AAA;ACyB;CDE;eEO;ECM;GDK;EEK;GFE;EGK;GHE;EIK;GJE;EKK;GLE;EMK;GNS;EOK;GPS;EQK;GRS;ESK;GTS;EUE;GVY;EWK;GXM;EYE;GZE;EaE;GbE;EcE;GdE;EeE;GfE;EgBE;GhBE;EiBE;GjBE;EkBE;GlBE;EmBE;GnBE;CFC"}],[{"names":["","global.performance.now"],"mappings":"AAA;6BC8B;KDG"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","","PerformanceMark","PerformanceMark#constructor","PerformanceMeasure","PerformanceMeasure#constructor","warnNoNativePerformance","Performance","get__memory","get__reactNativeStartupTiming","mark","clearMarks","measure","clearMeasures","now","getEntries","getEntriesByType","getEntriesByName"],"mappings":"AAA;IC2C,gBD;OEE;ECG;GDW;CFC;OIW;ECG;GDW;CJC;AME;CNK;eOO;ECI;GDyB;EEG;GFO;EGE;GHa;EIE;GJU;EKE;GLmE;EME;GNU;EOM;GPE;EQO;GRM;ESE;GTe;EUE;GVuB;CPC"}],[{"names":["","warnOnce"],"mappings":"AAA;ACqB;CDQ"}],[{"names":["","getCachedEventCounts","global.queueMicrotask$argument_0","EventCounts","get__size","entries","forEach","get","has","keys","values"],"mappings":"AAA;ACqB;wBCa;GDM;CDE;eGM;ECE;GDE;EEE;GFE;EGE;GHE;EIE;GJE;EKE;GLE;EME;GNE;EOE;GPE;CHC"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","PerformanceObserverEntryList","PerformanceObserverEntryList#constructor","PerformanceObserverEntryList#getEntries","PerformanceObserverEntryList#getEntriesByType","_entries.filter$argument_0","PerformanceObserverEntryList#getEntriesByName","onPerformanceEntry","entries.filter$argument_0","warnNoNativePerformanceObserver","applyDurationThresholds","Array.from.map$argument_0","Array.from.map.reduce$argument_0","PerformanceObserver","constructor","observe","options.entryTypes.map$argument_0","disconnect","_validateObserveOptions","union","difference","filter$argument_0"],"mappings":"AAA;OCsB;ECG;GDE;EEE;GFE;EGE;gCCC,iCD;GHC;EKE;kCDK,4BC;QDG,wDC;GLG;CDC;2BO8B;oECY;KDM;CPO;OSE;CTK;AUE;SCI,2BD;MEE,+DF;CVU;easB;ECI;GDE;EEE;+BCa,mBD;GFoD;EIE;GJiC;EKE;GLgC;CbI;AmBG;CnBa;AoBE;+BCC,cD;CpBC"}],[{"names":["","rawToPerformanceEntry","rawToPerformanceEntryType","performanceEntryTypeToRaw"],"mappings":"AAA;OC0B;CDoB;OEE;CFmB;OGE;CHiB"}],[{"names":["","PerformanceEventTiming","constructor"],"mappings":"AAA;OCc;ECK;GDiB;CDC"}],[{"names":["","PerformanceEntry","constructor","toJSON"],"mappings":"AAA;OCa;ECM;GDU;EEE;GFY;CDC"}],[{"names":["","MemoryInfo","constructor","get__jsHeapSizeLimit","get__totalJSHeapSize","get__usedJSHeapSize"],"mappings":"AAA;eCoB;ECK;GDM;EEK;GFE;EGK;GHE;EIK;GJE;CDC"}],[{"names":["","ReactNativeStartupTiming","constructor","get__startTime","get__endTime","get__executeJavaScriptBundleEntryPointStart","get__executeJavaScriptBundleEntryPointEnd"],"mappings":"AAA;eCiB;ECS;GDS;EEK;GFE;EGK;GHE;EIK;GJE;EKK;GLE;CDC"}],[{"names":["","handleError"],"mappings":"AAA;sBCqB;GDO"}],[{"names":["","SyntheticError","unstable_setExceptionDecorator","preprocessException","reportException","handleException","reactConsoleErrorHandler","args.map$argument_0","installConsoleErrorReporter"],"mappings":"AAA;ACe;CDE;AEiB;CFI;AGE;CHY;AIM;CJ2D;AKe;CLmB;AMI;WCqD,2DD;CNc;AQM;CRa"}],[{"names":["","_wrapNativeSuper","Wrapper"],"mappings":"AAA;ACI;ICW;KDE;CDY"}],[{"names":["_isNativeFunction",""],"mappings":"AAA;CCE"}],[{"names":["","_construct"],"mappings":"AAA;ACE;CDc"}],[{"names":["_isNativeReflectConstruct","Reflect.construct$argument_2",""],"mappings":"AAA;kECK,cD;CEK"}],[{"names":["","convertHermesStack","parseErrorStack","stacktraceParser.parse.map$argument_0"],"mappings":"AAA;ACiB;CDqB;AEE;6CCU;QDG;CFG"}],[{"names":["","parse","lines.reduce$argument_0","parseChrome","parseWinjs","parseGecko","parseJSC","parseNode"],"mappings":"AAA;ACU;sBCE;GDQ;CDC;AGI;CH6B;AII;CJc;AKK;CLwB;AMI;CNc;AOI;CPc"}],[{"names":["","isInternalBytecodeSourceUrl","parseLine","parseHermesStack"],"mappings":"AAA;AC2E;CDG;AEE;CFsC;iBGE;CHoB"}],[{"names":["","ExceptionsManager.reportFatalException","ExceptionsManager.reportSoftException","ExceptionsManager.updateExceptionMessage","ExceptionsManager.dismissRedbox","ExceptionsManager.reportException"],"mappings":"AAA;EC8D;GDM;EEC;GFM;EGC;GHM;EIC;GJK;EKC;GLU"}],[{"names":["","polyfillGlobal$argument_1"],"mappings":"AAA;4BCoC,2BD"}],[{"names":["","polyfillObjectProperty","polyfillGlobal"],"mappings":"AAA;AC2B;CDsB;AEE;CFE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","Promise.prototype._finally","then$argument_0","Promise.resolve.then$argument_0","then$argument_1"],"mappings":"AAA;4BCK;mBCC;qCCC;KDE;GDC,EG;qCDC;KCE;GHC;CDC"}],[{"names":["","noop","getThen","tryCallOne","tryCallTwo","Promise","Promise.prototype.then","safeThen","self.constructor$argument_0","handle","handleResolved","setImmediate$argument_0","resolve","reject","finale","Handler","doResolve","tryCallTwo$argument_1","tryCallTwo$argument_2"],"mappings":"AAA;ACI,kBD;AEqB;CFO;AGE;CHO;AIC;CJO;AKI;CLa;yBMK;CNO;AOE;8BCC;GDI;CPC;ASC;CTsB;AUE;eCC;GDgB;CVC;AYC;CZgC;AaE;CbO;AcC;CdW;AeE;CfI;AgBQ;2BCE;GDI,EE;GFI;ChBK"}],[{"names":["","valuePromise","Promise.resolve","Promise$argument_0","iterableToArray","Promise.all","res","val.then$argument_0","p.then$argument_0","onSettledFulfill","onSettledReject","mapAllSettled","Promise.allSettled","Promise.reject","Promise.race","iterableToArray.forEach$argument_0","Promise.prototype._catch","getAggregateError","promiseAny","resolveOnce","rejectionCheck","promises.forEach$argument_0"],"mappings":"AAA;ACiB;CDK;kBEC;yBCiB;ODE;CFI;sBIE;CJU;cKE;qBFG;IGG;mBCQ;WDE;mBEM;aFE;KHS;GEI;CLC;ASE;CTE;AUC;CVE;AWC;CXY;qBYC;CZE;iBaE;qBVC;GUE;CbC;ecE;qBXC;oCYC;KZE;GWC;CdC;6BgBI;ChBE;AiBE;CjBW;ckBE;qBfC;IgBK;KhBK;IiBE;KjBM;uBkBK;OlBE;GeE;ClBC"}],[{"names":["","hasNativeConstructor$argument_0","polyfillGlobal$argument_1"],"mappings":"AAA;4CCwB,eD;uCEU;GFQ"}],[{"names":["","isNativeFunction","hasNativeConstructor"],"mappings":"AAA;ACiB;CDE;AEM;CFG"}],[{"names":["","","define","wrap","tryCatch","Generator","GeneratorFunction","GeneratorFunctionPrototype","define$argument_2","defineIteratorMethods","forEach$argument_0","exports.isGeneratorFunction","exports.mark","exports.awrap","AsyncIterator","invoke","PromiseImpl.resolve.then$argument_0","PromiseImpl.resolve.then$argument_1","enqueue","callInvokeWithMethodAndArg","PromiseImpl$argument_0","exports.async","iter.next.then$argument_0","makeInvokeMethod","maybeInvokeDelegate","pushTryEntry","resetTryEntry","Context","exports.keys","next","values","doneResult","Context.prototype.reset","Context.prototype.stop","Context.prototype.dispatchException","handle","Context.prototype.abrupt","Context.prototype.complete","Context.prototype.finish","Context.prototype._catch","Context.prototype.delegateYield"],"mappings":"AAA;eCO;ECY;GDQ;aCK;KDE;EEG;GFW;EGa;GHM;EIe,uBJ;EKC,+BL;EMC,wCN;4COK;GPE;EQ6B;wCCC;gCFC;OEE;KDC;GRC;gCUE;GVQ;iBWE;GXS;kBYM;GZE;EaE;ICC;yDCU;WDE,EE;WFE;+CCG;SDM,EE;SFI;KDE;III;MCC;+BCC;SDE;ODC;KJqB;GbK;uDOG;GPE;kBoBM;yBCU;SDE;GpBC;EsBE;WRG;KQwE;GtBC;EuBM;GvB8E;6BOa;GPE;yBOE;GPE;EwBE;GxBa;EyBE;GzBK;E0BE;G1BO;iB2BE;WCU;KDe;G3BC;E6BE;2BDY;SCa;G7BQ;E8BG;G9BE;W+BK;K/BwB;UgCE;KhCU;uBiCE;MCM;ODa;KjCuC;YmCE;KnCgC;coCE;KpCiB;YqCE;KrCS;asCE;KtCgB;mBuCE;KvCc;CDS"}],[{"names":["","defineLazyTimer","polyfillGlobal$argument_1"],"mappings":"AAA;0BCmC;yBCW,wCD;GDC;IEoB,oDF;IEI,sDF;MES,4DF;MEI,4DF;mCEW,uCF;IEK,mDF"}],[{"names":["","_getFreeIndex","_allocateCallback","_callTimer","callback$argument_0.timeRemaining","_callReactNativeMicrotasksPass","_clearIndex","_freeCallback","setTimeout","_allocateCallback$argument_0","setInterval","queueReactNativeMicrotask","requestAnimationFrame","requestIdleCallback","","setTimeout$argument_0","cancelIdleCallback","clearTimeout","clearInterval","clearReactNativeMicrotask","cancelAnimationFrame","callTimers","callIdleCallbacks","errors.forEach$argument_0","callReactNativeMicrotasks","emitTimeDriftWarning","createTimer","deleteTimer","setSendIdleEvents"],"mappings":"AAA;ACgD;CDM;AEE;CFO;AGO;uBC6C;SDQ;CHc;AKM;CLwB;AME;CNI;AOE;CPmB;cQY;MCM,iCD;GRK;eUM;MDM,iCC;GVK;6BWU;MFE,iCE;GXK;yBYK;GZI;uBaO;UCW;WDO;oDEO;OFU;GbI;sBgBE;GhBgB;gBiBE;GjBE;iBkBE;GlBE;6BmBE;GnBM;wBoBE;GpBE;cqBM;aPkB;aOE;GrBO;qBsBE;mBCsB;0BRC;OQE,ID;GtBE;EwBM;mBDG;0BRC;OQE,IC;GxBE;EyBK;GzBM;A0BG;C1BQ;A2BE;C3BG;A4BE;C5BG"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","setImmediate","global.queueMicrotask$argument_0","clearImmediate"],"mappings":"AAA;ACuB;wBCoB;GDO;CDG;AGK;CHE"}],[{"names":["","queueMicrotask","then._catch$argument_0","setTimeout$argument_0"],"mappings":"AAA;eCqB;WCa;iBCE;ODE,ID;CDE"}],[{"names":["","polyfillGlobal$argument_1"],"mappings":"AAA;iCCoB,0CD;2BCC,oCD;wBCE,uCD;0BCC,yCD;0BCC,yCD;2BCC,0CD;4BCC,uCD;uBCC,6BD;uBCC,6BD;6BCC,mCD;sBCC,gCD;kCCC,4CD;ECG,uED;ECI,mED"}],[{"names":["","XMLHttpRequestEventTarget","XMLHttpRequest","setInterceptor","constructor","_reset","get__responseType","set__responseType","get__responseText","get__response","__didCreateRequest","__didUploadProgress","__didReceiveResponse","__didReceiveData","__didReceiveIncrementalData","__didReceiveDataProgress","__didCompleteResponse","_clearSubscriptions","forEach$argument_0","getAllResponseHeaders","sort$argument_0","sortedHeaders.map$argument_0","getResponseHeader","setRequestHeader","setTrackingName","setPerformanceLogger","open","send","RCTNetworking.addListener$argument_1","doSend","abort","setResponseHeaders","Object.keys.reduce$argument_0","setReadyState","addEventListener"],"mappings":"AAA;ACgF;CDQ;AEK;ECqD;GDE;EEE;GFG;EGE;GHkB;EIE;GJE;EKE;GL2B;EME;GNW;EOE;GP8C;EQG;GRU;ESG;GTa;EUE;GV0B;EWE;GXU;EYE;GZoB;EaE;Gbc;EcG;Gd8B;EeE;wCCC;KDI;GfE;EiBE;6DC8B;KDQ;aEK;SFE;GjBG;EoBE;GpBG;EqBE;GrBK;EsBK;GtBG;EuBK;GvBG;EwBE;GxBgB;EyBE;sDCY;yCDC;6DCI;0CDC;yDCI;sCDC;oECI;iDDC;iECI;8CDC;8DCI;2CDC;mBEY;KF8B;GzBM;E4BE;G5BmB;E6BE;OCK;KDG;G7BC;E+BE;G/BiB;EgCG;GhCS;CFC"}],[{"names":["","_get"],"mappings":"AAA;ACC;CDe"}],[{"names":["","_superPropBase"],"mappings":"AAA;ACC;CDM"}],[{"names":["","uuidv4","xxxxxxxxXxxx4xxxYxxxXxxxxxxxxxxx.replace$argument_1","createBlobCollector","BlobManager","createFromParts","parts.map$argument_0","items.reduce$argument_0","createFromOptions","release","addNetworkingHandler","addWebSocketHandler","removeWebSocketHandler","sendOverSocket"],"mappings":"AAA;ACyB;iECC;GDI;CDC;AGS;CHM;AIK;ECS;4BCO;KDoB;8BEC;KFM;GDW;EIM;GJe;EKK;GLQ;EMM;GNI;EOM;GPI;EQM;GRI;ESK;GTI;CJC"}],[{"names":["","getConstants","addNetworkingHandler","addWebSocketHandler","removeWebSocketHandler","sendOverSocket","createFromParts","release"],"mappings":"AAA;IC+B;KDK;IEC;KFE;IGC;KHE;IIC;KJE;IKC;KLE;IMC;KNE;IOC;KPE"}],[{"names":["","Blob","constructor","set__data","get__data","slice","close","get__size","get__type"],"mappings":"AAA;ACmD;ECQ;GDG;EEQ;GFE;EGG;GHM;EIE;GJmC;EKc;GLI;EMM;GNE;EOO;GPE;CDC"}],[{"names":["","register","unregister","has"],"mappings":"AAA;iBCY;CDM;mBEE;CFO;YGE;CHE"}],[{"names":["","pd","setCancelFlag","Event","Event.prototype.get__type","Event.prototype.get__target","Event.prototype.get__currentTarget","Event.prototype.composedPath","Event.prototype.get__NONE","Event.prototype.get__CAPTURING_PHASE","Event.prototype.get__AT_TARGET","Event.prototype.get__BUBBLING_PHASE","Event.prototype.get__eventPhase","Event.prototype.stopPropagation","Event.prototype.stopImmediatePropagation","Event.prototype.get__bubbles","Event.prototype.get__cancelable","Event.prototype.preventDefault","Event.prototype.get__defaultPrevented","Event.prototype.get__composed","Event.prototype.get__timeStamp","Event.prototype.get__srcElement","Event.prototype.get__cancelBubble","Event.prototype.set__cancelBubble","Event.prototype.get__returnValue","Event.prototype.set__returnValue","Event.prototype.initEvent","defineRedirectDescriptor","get","set","defineCallDescriptor","value","defineWrapper","CustomEvent","getWrapper","wrapEvent","isStopped","setEventPhase","setCurrentTarget","setPassiveListener","isObject","getListeners","defineEventAttributeDescriptor","defineEventAttribute","defineCustomEventTarget","CustomEventTarget","EventTarget","EventTarget.prototype.addEventListener","EventTarget.prototype.removeEventListener","EventTarget.prototype.dispatchEvent"],"mappings":"AAA;AC2C;CDQ;AEM;CFqB;AGY;CHwB;IIQ;KJE;IKM;KLE;IMM;KNE;IOK;KPM;IQM;KRE;ISM;KTE;IUM;KVE;IWM;KXE;IYM;KZE;IaM;KbO;IcM;KdQ;IeM;KfE;IgBM;KhBE;IiBM;KjBE;IkBM;KlBE;ImBM;KnBE;IoBM;KpBE;IqBO;KrBE;IsBO;KtBE;IuBC;KvBU;IwBO;KxBE;IyBC;KzBI;I0BS;K1BE;A2BwB;QCE;SDE;QEC;SFE;C3BI;A8BQ;QCE;SDG;C9BI;AgCS;ICO;KDE;ChCuB;AkCQ;ClCW;AmCS;CnCG;AoCQ;CpCE;AqCS;CrCE;AsCS;CtCE;AuCS;CvCE;AwC4B;CxCE;AyCQ;CzCQ;A0CQ;QdE;ScU;QbE;SayC;C1CI;A2CQ;C3CM;A4CQ;ICE;KDE;C5Ce;A8Ce;C9CkB;I+CW;K/C6C;IgDS;KhD+B;IiDO;KjDoE"}],[{"names":["","isLoggingForWebPerformance"],"mappings":"AAA;ACgB;CDK"}],[{"names":["","isLayoutAnimationEnabled","shouldEmitW3CPointerEvents","shouldPressibilityUseW3CPointerEventsForHover","animatedShouldDebounceQueueFlush","animatedShouldUseSingleOp","isGlobalWebPerformanceLoggerEnabled","enableAccessToHostTreeInFabric"],"mappings":"AAA;4BCkD,UD;8BEC,WF;iDGC,WH;oCIC,WJ;6BKC,WL;uCMC,WN;kCOC,WP"}],[{"names":["","PerformanceLogger","PerformanceLogger#constructor","PerformanceLogger#addTimespan","PerformanceLogger#append","PerformanceLogger#clear","PerformanceLogger#clearCompleted","PerformanceLogger#close","PerformanceLogger#currentTimestamp","PerformanceLogger#getExtras","PerformanceLogger#getPoints","PerformanceLogger#getPointExtras","PerformanceLogger#getTimespans","PerformanceLogger#hasTimespan","PerformanceLogger#isClosed","PerformanceLogger#logEverything","PerformanceLogger#markPoint","PerformanceLogger#removeExtra","PerformanceLogger#setExtra","PerformanceLogger#startTimespan","PerformanceLogger#stopTimespan","createPerformanceLogger"],"mappings":"AAA;ACmC;ECQ;GDE;EEE;GFqC;EGE;GHW;EIE;GJO;EKE;GLW;EME;GNE;EOE;GPE;EQE;GRE;ESE;GTE;EUE;GVE;EWE;GXE;EYE;GZE;EaE;GbE;EcE;GdmB;EeE;Gf8B;EgBE;GhBI;EiBE;GjBkB;EkBE;GlBuC;EmBE;GnBkD;CDC;eqBW;CrBI"}],[{"names":["","infoLog"],"mappings":"AAA;ACe;CDE"}],[{"names":["","getLens","byteLength","_byteLength","toByteArray","tripletToBase64","encodeChunk","fromByteArray"],"mappings":"AAA;ACqB;CDiB;AEG;CFK;AGE;CHE;AIE;CJ4C;AKE;CLK;AME;CNW;AOE;CP+B"}],[{"names":["","convertHeadersMapToArray","generateRequestId","RCTNetworking","constructor","sendRequest","body.formData.map$argument_0","abortRequest","clearCookies"],"mappings":"AAA;ACuB;CDM;AEG;CFE;AGO;ECC;GDM;EEE;wCCc;QDG;GFe;EIE;GJE;EKE;GLE;CHC"}],[{"names":["","NativeEventEmitter","constructor","addListener","remove","emit","removeAllListeners","listenerCount"],"mappings":"AAA;eCsC;ECK;GD6B;EEE;cCa;ODO;GFE;EIE;GJO;EKE;GLS;EME;GNE;CDC"}],[{"names":["","convertRequestBody"],"mappings":"AAA;ACwB;CDgB"}],[{"names":["","FormData","constructor","append","getAll","_parts.filter$argument_0","_parts.filter.map$argument_0","getParts","_parts.map$argument_0"],"mappings":"AAA;ACkD;ECG;GDE;EEE;GFO;EGE;cCE,wBD;WEC,oBF;GHC;EME;2BCC;KDoB;GNC;CDC"}],[{"names":["","binaryToBase64"],"mappings":"AAA;ACc;CDc"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","","isDataView","normalizeName","normalizeValue","iteratorFor","iterator.next","iterator.@@iterator","Headers","headers.forEach$argument_0","Object.getOwnPropertyNames.forEach$argument_0","Headers.prototype.append","Headers.prototype._delete","Headers.prototype.get","Headers.prototype.has","Headers.prototype.set","Headers.prototype.forEach","Headers.prototype.keys","forEach$argument_0","Headers.prototype.values","Headers.prototype.entries","consumed","fileReaderReady","Promise$argument_0","reader.onload","reader.onerror","readBlobAsArrayBuffer","readBlobAsText","readArrayBufferAsText","bufferClone","Body","_initBody","blob","arrayBuffer","text","formData","json","normalizeMethod","Request","Request.prototype.clone","decode","body.trim.split.forEach$argument_0","parseHeaders","preProcessedHeaders.split.map$argument_0","preProcessedHeaders.split.map.forEach$argument_0","Response","Response.prototype.clone","Response.error","Response.redirect","exports.DOMException","fetch","abortXhr","xhr.onload","setTimeout$argument_0","xhr.onerror","xhr.ontimeout","xhr.onabort","fixUrl","request.headers.forEach$argument_0","xhr.onreadystatechange"],"mappings":"AAA,CC;CDI,QC;ECyB;GDE;EEsB;GFQ;EGE;GHK;EIG;YCE;ODG;kCEI;OFE;GJI;EOE;sBCI;ODE;sBCE;ODE;kDEE;OFE;GPE;6BUE;GVK;gCWE;GXE;0BYE;GZG;0BaE;GbE;0BcE;GdE;8BeE;GfM;2BgBE;iBCE;KDE;GhBE;6BkBE;iBDE;KCE;GlBE;8BmBE;iBFE;KEE;GnBE;EoBM;GpBK;EqBE;uBCC;sBCC;ODE;uBEC;OFE;KDC;GrBC;EyBE;GzBK;E0BE;G1BK;E2BE;G3BQ;E4BE;G5BQ;E6BE;qBCG;KD0C;kBEG;OFe;yBGE;OHmB;gBIG;KJe;sBKG;OLE;gBMG;KNE;G7BG;EoCK;GpCG;EqCE;GrCwD;4BsCE;GtCE;EuCE;eCK;ODO;GvCE;EyCE;WCU;ODE;eEC;OFO;GzCE;E4CI;G5Ce;6B6CI;G7CO;mB8CE;G9CI;sB+CI;G/CM;2BgDM;KhDK;EiDK;uB3BC;M4BS;O5BE;mB6BE;mBCQ;SDE;O7BC;oB+BE;mBDC;SCE;O/BC;sBgCE;mBFC;SEE;OhCC;oBiCE;mBHC;SGE;OjCC;MkCE;OlCM;yDbuB;SaE;gCmCE;SnCE;iCoCM;SpCK;K2BI;GjDC;CDkB"}],[{"names":["","WebSocket","constructor","get__binaryType","set__binaryType","close","send","ping","_close","_unregisterEvents","_subscriptions.forEach$argument_0","_registerEvents","_eventEmitter.addListener$argument_1"],"mappings":"AAA;ACsE;EC2B;GDmD;EEE;GFE;EGE;GHgB;EIE;GJO;EKE;GLyB;EME;GNM;EOE;GPS;EQE;gCCC,eD;GRE;EUE;yDCE;ODc;sDCC;ODO;wDCC;ODc;wDCC;ODmB;GVE;CDC"}],[{"names":["","_objectWithoutProperties"],"mappings":"AAA;ACC;CDc"}],[{"names":["_objectWithoutPropertiesLoose",""],"mappings":"AAA;CCW"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","WebSocketEvent","constructor"],"mappings":"AAA;ACmB;ECC;GDG;CDC"}],[{"names":["","File","constructor","get__name","get__lastModified"],"mappings":"AAA;ACoB;ECI;GDY;EEK;GFG;EGK;GHE;CDC"}],[{"names":["","FileReader","constructor","_reset","_setReadyState","readAsArrayBuffer","NativeFileReaderModule.readAsDataURL.then$argument_0","NativeFileReaderModule.readAsDataURL.then$argument_1","readAsDataURL","readAsText","NativeFileReaderModule.readAsText.then$argument_0","NativeFileReaderModule.readAsText.then$argument_1","abort","get__readyState","get__error","get__result"],"mappings":"AAA;ACqC;ECc;GDG;EEE;GFI;EGE;GHa;EIE;MCU;ODU;MEC;OFM;GJE;EOE;MFU;OEM;MDC;OCM;GPE;EQE;MCU;ODM;MEC;OFM;GRE;EWE;GXS;EYE;GZE;EaE;GbE;EcE;GdE;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","URLSearchParams","URLSearchParams#constructor","Object.keys.forEach$argument_0","URLSearchParams#append","URLSearchParams#_delete","URLSearchParams#get","URLSearchParams#getAll","URLSearchParams#has","URLSearchParams#set","URLSearchParams#sort","URLSearchParams#@@iterator","URLSearchParams#toString","_searchParams.reduce$argument_0","validateBaseUrl","URL","createObjectURL","revokeObjectURL","constructor","get__hash","get__host","get__hostname","get__href","get__origin","get__password","get__pathname","get__port","get__protocol","get__search","get__searchParams","toJSON","toString","get__username"],"mappings":"AAA;OCwD;ECG;kCCE,oCD;GDE;EGE;GHE;EIE;GJE;EKE;GLE;EME;GNE;EOE;GPE;EQE;GRE;ESE;GTE;EUI;GVE;EWE;qCCK;KDQ;GXC;CDC;AcE;CdK;OeE;ECI;GDK;EEE;GFE;EGG;GH2B;EIE;GJE;EKE;GLE;EME;GNE;EOE;GPE;EQE;GRE;ESE;GTE;EUE;GVE;EWE;GXE;EYE;GZE;EaE;GbE;EcE;GdK;EeE;GfE;EgBE;GhBQ;EiBE;GjBE;CfC"}],[{"names":["","AbortSignal","AbortSignal#constructor","AbortSignal#get__aborted","createAbortSignal","abortSignal","AbortController","AbortController#constructor","AbortController#get__signal","AbortController#abort","getSignal"],"mappings":"AAA;ACc;ICI;KDG;IEI;KFM;CDC;AIK;CJK;AKI;CLM;AMqB;ICI;KDE;IEI;KFE;IGI;KHE;CNC;AUQ;CVM"}],[{"names":["","global.alert"],"mappings":"AAA;iBCiB;GDI"}],[{"names":["","Alert","alert","onAction","onError","prompt","callbackOrButtons.forEach$argument_0","RCTAlertManager.alertWithArgs$argument_1"],"mappings":"AAA;ACyC;ECC;uBCuD;ODY;sBEC,oDF;GDG;EIE;kCCkB;SDe;QEgB;SFG;GJG;CDC"}],[{"names":["","emptyCallback","module.exports.alertWithArgs"],"mappings":"AAA;ACW,2BD;iBEG;GFW"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","polyfillObjectProperty$argument_2"],"mappings":"AAA;+CCoB,mBD"}],[{"names":["","registerModule","registerModule$argument_1"],"mappings":"AAA;mBCiB;oEDc;2BEG,wCF;6BEE,kCF;8BEE,2CF;mCEC;4CFC;yBEE,oCF;EEG,8DF;2CEE;qDFC;0CEE;iDFC;8BEI,uCF;8BEE,+CF"}],[{"names":["","captureHeap"],"mappings":"AAA;eCa;GDY"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","poke"],"mappings":"AAA;QCa;GDsB"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","logIfNoNativeHook","logToConsole","setWarningHandler"],"mappings":"AAA;EC0B;GDU;EEG;GFQ;EGE;GHE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","setup","enable","disable","registerBundle","log"],"mappings":"AAA;ECiB,UD;EEC;GFK;EGC,YH;EIC,mBJ;EKC,QL"}],[{"names":["","__fetchSegment","SegmentFetcher.fetchSegment$argument_2"],"mappings":"AAA;ACmB;ICc;KDc;CDE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","componentProviderInstrumentationHook","setWrapperComponentProvider","enableArchitectureIndicator","registerConfig","config.forEach$argument_0","registerComponent","runnables.appKey.run","registerRunnable","registerSection","getAppKeys","getSectionKeys","getSections","getRunnable","getRegistry","setComponentProviderInstrumentationHook","runApplication","BugReporting.addSource$argument_1","setSurfaceProps","unmountApplicationComponentAtRootTag","registerHeadlessTask","registerCancellableHeadlessTask$argument_2","","registerCancellableHeadlessTask","startHeadlessTask","taskProvider.then$argument_0","taskProvider.then._catch$argument_0","NativeHeadlessJsTaskSupport.notifyTaskRetry.then$argument_0","cancelHeadlessTask","registerComponent$argument_1","NoOp"],"mappings":"AAA;EC+D,6CD;EEW;GFE;EGE;GHE;EIE;mBCC;KDgB;GJC;EMO;WCQ;ODoB;GNM;EQE;GRG;ESE;GTE;EUE;GVE;EWE;GXE;EYE;GZI;EaE;GbE;EcE;GdK;EeE;GfI;EgBO;QCa,SD;GhBa;EkBK;QDc,SC;GlBY;EmBO;GnBE;EoBO;gECE,MC;KFE;GpBC;EuBO;GvBY;EwBO;YCU;ODI;aEC;YCS;aDI;OFG;GxBC;E4BO;G5BM;0C6BM;aCI;ODE;G7BE"}],[{"names":["","defaultExtras","addFileSource$argument_1","BugReporting","_maybeInit","addSource","addFileSource","_addSource","remove","collectExtraData"],"mappings":"AAA;ACuB;oDCC;gCDC;CDE;AGQ;ECM;GDmB;EEU;GFK;EGU;GHK;EIE;cCa;ODE;GJE;EMQ;GNmB;CHC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","dumpReactTree","getReactTree"],"mappings":"AAA;ACyB;CDM;AEE;CFiB"}],[{"names":["","setActiveScene","_listeners.forEach$argument_0","getActiveScene","addActiveSceneChangedListener","remove","_listeners.filter$argument_0"],"mappings":"AAA;ECmB;uBCE,kCD;GDC;EGE;GHE;EIE;cCM;uCCC,iCD;ODC;GJE"}],[{"names":["","HeadlessJsTaskError"],"mappings":"AAA;eCU,0CD"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","renderApplication"],"mappings":"AAA;eC6B;CDyE"}],[{"names":["","usePerformanceLogger"],"mappings":"AAA;OC4B;CDE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","A","B.isMounted","B.enqueueForceUpdate","B.enqueueReplaceState","B.enqueueSetState","E","E.prototype.setState","E.prototype.forceUpdate","F","G","M","N","O","escape","a.replace$argument_1","Q","R","R$argument_4","S","T","b.then$argument_0","b.then$argument_1","exports.Children.forEach","S$argument_1","exports.Children.count","exports.Children.toArray","exports.Children.only","exports.cloneElement","exports.createContext","exports.createFactory","exports.createRef","exports.forwardRef","exports.lazy","exports.memo","exports.startTransition","exports.unstable_act","exports.useCallback","exports.useContext","exports.useDebugValue","exports.useDeferredValue","exports.useEffect","exports.useId","exports.useImperativeHandle","exports.useInsertionEffect","exports.useLayoutEffect","exports.useMemo","exports.useReducer","exports.useRef","exports.useState","exports.useSyncExternalStore","exports.useTransition"],"mappings":"AAA;kXCS,yHD;iBEC,oBF,oBG,YH,qBI,YJ,iBK,YL,uBM,4EN;qBOC,4PP,yBQ,kER,CS,cT,wBU,4EV;AWE,8aX;AYC,6FC,kEC,yEC,wBD,Ed,agB,iGhB;AiBC,0TC,qBD;0ZjBC;AmBC,+DD,mCC,WC,8DC,qED,CE,qEF,uGpB;oJuBC,oBC,mCD,IvB,OyB,wBD,eC,WzB,S0B,uBF,qBE,M1B,M2B,mH3B;qB4BE;iH5BC,uB6B,kM7B,+C8B,mD9B,mB+B,gC/B;mBgCC,wChC,uCiC,uEjC,ckC,kElC,yBmC,+EnC,sBoC,oFpC;oBqCC,gDrC,oBsC,2CtC,uBuC,YvC,0BwC,iDxC,mByC,8CzC,e0C,oC1C,6B2C,4D3C;2B4CC,uD5C,yB6C,oD7C,iB8C,4C9C,oB+C,mD/C,gBgD,uChD,kBiD,yCjD,8BkD,6DlD;sBmDC,4CnD"}],[{"names":["","AppContainer","componentDidMount","RCTDeviceEventEmitter.addListener$argument_1","Inspector.props.onRequestRerenderApp","setState$argument_0","setState$argument_1","componentWillUnmount","render","View.props.ref"],"mappings":"AAA;ACuC;ECa;UCK;sCCK;oBCE,+BD;oBEC,wCF;iBDE;WDI;GDe;EME;GNI;EOE;aCgB;SDE;GP6B;CDC"}],[{"names":["","React.forwardRef$argument_0"],"mappings":"AAA;EC+B;GDwG"}],[{"names":["","flattenStyle"],"mappings":"AAA;ACe;CDuB"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;gDC2G,4BD"}],[{"names":["","setRuntimeConfigProvider","get","ReactNativeViewConfigRegistry.register$argument_1","getWithFallback_DEPRECATED","FallbackNativeComponent","hasNativeViewConfig","unstable_hasStaticViewConfig"],"mappings":"AAA;OCiC;CDY;OEQ;+CCI;GDwC;CFI;OIW;kCCiB;GDE;CJG;AME;CNG;OOQ;CPK"}],[{"names":["","getNativeComponentAttributes","attachDefaultEventTypes","merge","getDifferForType","getProcessorForType"],"mappings":"AAA;ACuB;CD2E;AEE;CFkB;AGG;CH0B;AIE;CJoB;AKE;CLsB"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","processAspectRatio","aspectRatio.split.map$argument_0","matches.some$argument_0"],"mappings":"AAA;ACc;6CCe,aD;2CEa,4BF;CDkB"}],[{"names":["","processColor"],"mappings":"AAA;ACqB;CDoC"}],[{"names":["","normalizeColor"],"mappings":"AAA;ACiB;CDc"}],[{"names":["","normalizeColor","hue2rgb","hslToRgb","hwbToRgb","call","callWithSlashSeparator","commaSeparatedCall","getMatchers","parse255","parse360","parse1","parsePercentage","normalizeKeyword"],"mappings":"AAA;ACc;CDgJ;AEE;CFiB;AGE;CHY;AIE;CJgB;AKK;CLE;AME;CNQ;AOE;CPE;AQI;CR2B;ASE;CTS;AUE;CVG;AWE;CXS;AYE;CZU;AaE;Cb4J"}],[{"names":["","PlatformColor","normalizeColorObject","processColorObject"],"mappings":"AAA;6BCiB;CDE;oCEE;CFO;kCGE;CHI"}],[{"names":["","processFontVariant"],"mappings":"AAA;ACc;CDa"}],[{"names":["","processTransform","_getKeyAndValueFromCSSTransform","_validateTransforms","transform.forEach$argument_0","_validateTransform"],"mappings":"AAA;ACuB;CD0B;yDEqB;CF6E;AGE;oBCC;GDU;CHC;AKE;CLiH"}],[{"names":["","_defineProperty"],"mappings":"AAA;ACC;CDa"}],[{"names":["","sizesDiffer"],"mappings":"AAA;oBCe;CDQ"}],[{"names":["","matricesDiffer"],"mappings":"AAA;uBCqB;CD2B"}],[{"names":["","pointsDiffer"],"mappings":"AAA;qBCoB;CDI"}],[{"names":["","insetsDiffer"],"mappings":"AAA;qBC2B;CDU"}],[{"names":["","processColorArray","processColorElement"],"mappings":"AAA;ACkB;CDI;AEE;CFQ"}],[{"names":["","getSourceCodeScriptURL","getDevServerURL","_coerceLocalScriptURL","getScriptURL","setCustomSourceTransformer","resolveAssetSource"],"mappings":"AAA;ACuB;CDY;AEE;CFc;AGE;CHc;AIE;CJK;AKE;CLI;AMM;CNmB"}],[{"names":["","getConstants"],"mappings":"AAA;ECwB;GDQ"}],[{"names":["","registerAsset","getAssetByID"],"mappings":"AAA;AC2B;CDI;AEE;CFE"}],[{"names":["","getScaledAssetPath","getAssetPathInDrawableFolder","AssetSourceResolver","constructor","isLoadedFromServer","isLoadedFromFileSystem","defaultAsset","assetServerURL","scaledAssetPath","scaledAssetURLNearBundle","resourceIdentifierWithoutScale","drawableFolderInBundle","fromSource"],"mappings":"AAA;ACmC;CDK;AEK;CFK;AGE;ECO;GDI;EEE;GFE;EGE;GHE;EIE;GJY;EKM;GLU;EMM;GNE;EOM;GPQ;EQQ;GRM;ESO;GTG;EUE;GVQ;CHI"}],[{"names":["","pickScale","setUrlCacheBreaker","getUrlCacheBreaker"],"mappings":"AAA;OCe;CDe;OEE;CFE;OGE;CHW"}],[{"names":["","PixelRatio","get","getFontScale","getPixelSizeForLayoutSize","roundToNearestPixel","startDetecting"],"mappings":"AAA;AC0D;ECyB;GDE;EEa;GFE;EGO;GHE;EIQ;GJG;EKG,0BL;CDC"}],[{"names":["","Dimensions","get","set","addEventListener","RCTDeviceEventEmitter.addListener$argument_1"],"mappings":"AAA;AC2B;ECkB;GDG;EEQ;GFiC;EGU;GHU;CDC;IKU;KLE"}],[{"names":["","getConstants"],"mappings":"AAA;EC+C;GDQ"}],[{"names":["","getAndroidAssetSuffix","getAndroidResourceFolderName","getAndroidResourceIdentifier","getBasePath"],"mappings":"AAA;AC6B;CDU;AEc;CFmB;AGE;CHM;AIE;CJG"}],[{"names":["","processEventTypes","exports.register","exports.get"],"mappings":"AAA;AC0C;CD+B;mBEO;CFc;cGO;CH2B"}],[{"names":["","verifyComponentAttributeEquivalence","lefthandObjectDiff","compare","getConfigWithoutViewProps","Object.keys.filter$argument_0","Object.keys.filter.reduce$argument_0","stringifyViewConfig","JSON.stringify$argument_1"],"mappings":"AAA;eCsC;CDsB;AEI;ECG;GDkB;CFe;OIE;YCS,+CD;6BEC;KFG;CJC;OOE;ICG;KDK;CPG"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","DynamicallyInjectedByGestureHandler","ConditionallyIgnoredEventHandlers","isIgnored"],"mappings":"AAA;OCkB;CDG;OEe;CFO;OGE;CHK"}],[{"names":["","validate","stringifyValidationResult","differences.map$argument_0","accumulateDifferences","ifObject"],"mappings":"AAA;OC4C;CD+B;OEE;uBCQ;KDU;CFG;AIE;CJ0D;AKE;CLE"}],[{"names":["","createViewConfig","composeIndexers"],"mappings":"AAA;OCoB;CDsB;AEE;CFO"}],[{"names":["","codegenNativeCommands","options.supportedCommands.forEach$argument_0","commandObj.command"],"mappings":"AAA;ACgB;oCCG;0BCE;KDG;GDC;CDG"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","q"],"mappings":"AAA;ACU,4TD"}],[{"names":["","getAccessibilityRoleFromRole"],"mappings":"AAA;OCkB;CDuI"}],[{"names":["","module.exports.compose","module.exports.setStyleAttributePreprocessor","module.exports.create"],"mappings":"AAA;ECgR;GDS;EEoD;GFyB;EGK;GHY"}],[{"names":["","createRootTag"],"mappings":"AAA;OCwB;CDE"}],[{"names":["","coerceDisplayMode"],"mappings":"AAA;OCoB;CDS"}],[{"names":["","getCachedComponentWithDisplayName","ComponentWithDisplayName"],"mappings":"AAA;eCqB;+BCM,gDD;CDO"}],[{"names":["","RCTDeviceEventEmitter.addListener$argument_1","exitApp","addEventListener","remove","removeEventListener"],"mappings":"AAA;qDCmB;CDQ;WEwC;GFM;oBGO;cCQ,+DD;GHE;uBKK;GLQ"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","module.exports.get__BatchedBridge","module.exports.get__ExceptionsManager","module.exports.get__Platform","module.exports.get__RCTEventEmitter","module.exports.get__ReactNativeViewConfigRegistry","module.exports.get__TextInputState","module.exports.get__UIManager","module.exports.get__deepDiffer","module.exports.get__deepFreezeAndThrowOnMutationInDev","module.exports.get__flattenStyle","module.exports.get__ReactFiberErrorDialog","module.exports.get__legacySendAccessibilityEvent","module.exports.get__RawEventEmitter","module.exports.get__CustomEvent"],"mappings":"AAA;EC6B;GDE;EEC;GFE;EGC;GHE;EIC;GJE;EKC;GLE;EMC;GNE;EOC;GPE;EQC;GRE;ESC;GTI;EUC;GVG;EWC;GXE;EYC;GZE;EaC;GbE;EcC;GdE"}],[{"names":["","register","global.RN$registerCallableModule$argument_1"],"mappings":"AAA;ECe;0DCE,kBD;GDI"}],[{"names":["","currentlyFocusedInput","currentlyFocusedField","focusInput","blurInput","focusField","blurField","focusTextInput","blurTextInput","registerInput","unregisterInput","isTextInput"],"mappings":"AAA;AC2C;CDE;AEM;CFQ;AGE;CHI;AIE;CJI;AKE;CLM;AME;CNM;AOO;CPgC;AQO;CRwB;ASE;CTY;AUE;CVW;AWE;CXY"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;ECivB,4BD"}],[{"names":["","unstable_setLogListeners","deepDiffer"],"mappings":"AAA;ACoB;CDE;mBEK;CFsE"}],[{"names":["","deepFreezeAndThrowOnMutationInDev","throwOnImmutableMutation","identity"],"mappings":"AAA;AC6B;CDyC;AEI;CFS;AGE;CHE"}],[{"names":["","showErrorDialog"],"mappings":"AAA;EC0B;GDgC"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","CustomEvent","constructor"],"mappings":"AAA;ACoB;ECG;GDK;CDC"}],[{"names":["","EventPolyfill","constructor","composedPath","preventDefault","initEvent","stopImmediatePropagation","stopPropagation","setSyntheticEvent"],"mappings":"AAA;ACkI;EC+B;GD8B;EEE;GFE;EGE;GHO;EIE;GJI;EKE;GLE;EME;GNK;EOE;GPE;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","f","h","k","g","l","H","I","K","Q","R","S","P","U","V","M","N","D$argument_0","Z"],"mappings":"AAA;aCS,uHC,4CC,4RH;AIC,uEJ,iGK,0BL,6BK,4BL;gLMC,qJC,kHP;AQC,ubR;ASC,8bC,8BC,sBX;0BYC,kCC,cC,sGd,iCe,gBf,uGe,+Bf,Qe,kBf,CgB,oBC,kBD,IhB;AkBG,8ClB"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","invokeGuardedCallbackImpl","reporter.onError","invokeGuardedCallback","invokeGuardedCallbackAndCatchFirstError","executeDispatch","executeDirectDispatch","functionThatReturnsTrue","functionThatReturnsFalse","SyntheticEvent","assign$argument_1.preventDefault","assign$argument_1.stopPropagation","assign$argument_1.persist","assign$argument_1.destructor","SyntheticEvent.Interface.currentTarget","SyntheticEvent.Interface.timeStamp","SyntheticEvent.extend","E","Class","createOrGetPooledEvent","releasePooledEvent","addEventPoolingTo","SyntheticEvent.extend$argument_0.touchHistory","isStartish","isMoveish","timestampForTouch","getTouchIdentifier","recordTouchStart","recordTouchMove","recordTouchEnd","ResponderTouchHistoryStore.instrument","ResponderTouchHistoryStore.recordTouchTrack","accumulate","accumulateInto","forEachAccumulated","changeResponder","getParent","traverseTwoPhase","getListener","accumulateDirectionalDispatches","accumulateDirectDispatchesSingle","accumulateTwoPhaseDispatchesSingleSkipTarget","accumulateTwoPhaseDispatchesSingle","ResponderEventPlugin._getResponder","ResponderEventPlugin.extractEvents","ResponderEventPlugin.injection.injectGlobalResponderHandler","recomputePluginOrdering","publishRegistrationName","getListeners","stateNode.canonical._eventListeners.mangledImperativeRegistrationName.forEach$argument_0","listenerFnWrapper","listeners.push$argument_0","accumulateListenersAndInstances","accumulateDirectionalDispatches$1","traverseTwoPhase$1","accumulateTwoPhaseDispatchesSingle$1","accumulateDirectDispatchesSingle$1","injectedNamesToPlugins$jscomp$inline_229.ReactNativeBridgeEventPlugin.extractEvents","getInstanceFromTag","batchedUpdatesImpl","batchedUpdates","executeDispatchesAndReleaseTopLevel","_receiveRootNodeIDEvent","batchedUpdates$argument_0","ReactNativePrivateInterface.RCTEventEmitter.register$argument_0.receiveEvent","ReactNativePrivateInterface.RCTEventEmitter.register$argument_0.receiveTouches","getFiberCurrentPropsFromNode","getNodeFromInstance","ResponderEventPlugin.injection.injectGlobalResponderHandler$argument_0.onChange","getIteratorFn","getComponentNameFromType","getComponentNameFromFiber","getNearestMountedFiber","assertIsMounted","findCurrentFiberUsingSlowPath","findCurrentHostFiber","findCurrentHostFiberImpl","defaultDiffer","restoreDeletedValuesInNestedArray","diffNestedProperty","addNestedProperty","clearNestedProperty","diffProperties","mountSafeCallback_NOT_REALLY_SAFE","","ReactNativeFiberHostComponent","_proto.blur","_proto.focus","_proto.measure","_proto.measureInWindow","_proto.measureLayout","_proto.setNativeProps","onCommitRoot","clz32Fallback","getHighestPriorityLanes","getNextLanes","computeExpirationTime","getLanesToRetrySynchronouslyOnError","claimNextTransitionLane","createLaneMap","markRootUpdated","markRootFinished","markRootEntangled","lanesToEventPriority","shim","allocateTag","recursivelyUncacheFiberNode","finalizeInitialChildren","parentInstance._children.map$argument_0","describeComponentFrame","describeFunctionComponentFrame","createCursor","pop","push","getMaskedContext","isContextProvider","popContext","pushTopLevelContextObject","processChildContext","pushContextProvider","invalidateContextProvider","is","flushSyncCallbacks","popTreeContext","shallowEqual","describeFiber","getStackByFiberInDevAndProd","resolveDefaultProps","resetContextDependencies","popProvider","scheduleContextWorkOnParentPath","prepareToReadContext","readContext","pushConcurrentUpdateQueue","enqueueConcurrentHookUpdate","markUpdateLaneFromFiberToRoot","initializeUpdateQueue","cloneUpdateQueue","createUpdate","enqueueUpdate","entangleTransitions","enqueueCapturedUpdate","processUpdateQueue","commitUpdateQueue","applyDerivedStateFromProps","classComponentUpdater.isMounted","classComponentUpdater.enqueueSetState","classComponentUpdater.enqueueReplaceState","classComponentUpdater.enqueueForceUpdate","checkShouldComponentUpdate","constructClassInstance","callComponentWillReceiveProps","mountClassInstance","coerceRef","current","throwOnInvalidObjectType","resolveLazy","ChildReconciler","deleteChild","deleteRemainingChildren","mapRemainingChildren","useFiber","placeChild","placeSingleChild","updateTextNode","updateElement","updatePortal","updateFragment","createChild","updateSlot","updateFromMap","reconcileChildrenArray","oldFiber.forEach$argument_0","reconcileChildrenIterator","reconcileChildFibers","requiredContext","pushHostContainer","popHostContainer","pushHostContext","popHostContext","findFirstSuspended","resetWorkInProgressVersions","throwInvalidHookError","areHookInputsEqual","renderWithHooks","mountWorkInProgressHook","updateWorkInProgressHook","basicStateReducer","updateReducer","rerenderReducer","updateMutableSource","updateSyncExternalStore","pushStoreConsistencyCheck","updateStoreInstance","subscribeToStore","subscribe$argument_0","checkIfSnapshotChanged","forceStoreRerender","mountState","pushEffect","updateRef","mountEffectImpl","updateEffectImpl","mountEffect","updateEffect","updateInsertionEffect","updateLayoutEffect","imperativeHandleEffect","updateImperativeHandle","mountDebugValue","updateCallback","updateMemo","updateDeferredValueImpl","startTransition","updateId","dispatchReducerAction","dispatchSetState","isRenderPhaseUpdate","enqueueRenderPhaseUpdate","entangleTransitionUpdate","HooksDispatcherOnMount.useCallback","HooksDispatcherOnMount.useImperativeHandle","HooksDispatcherOnMount.useLayoutEffect","HooksDispatcherOnMount.useInsertionEffect","HooksDispatcherOnMount.useMemo","HooksDispatcherOnMount.useReducer","HooksDispatcherOnMount.useRef","HooksDispatcherOnMount.useDeferredValue","HooksDispatcherOnMount.useTransition","HooksDispatcherOnMount.useMutableSource","HooksDispatcherOnMount.useSyncExternalStore","HooksDispatcherOnMount.useId","HooksDispatcherOnUpdate.useState","HooksDispatcherOnUpdate.useDeferredValue","HooksDispatcherOnUpdate.useTransition","HooksDispatcherOnRerender.useState","HooksDispatcherOnRerender.useDeferredValue","HooksDispatcherOnRerender.useTransition","createCapturedValueAtFiber","createCapturedValue","logCapturedError","setTimeout$argument_0","createRootErrorUpdate","lane.callback","createClassErrorUpdate","lane.payload","attachPingListener","reconcileChildren","updateForwardRef","updateMemoComponent","updateSimpleMemoComponent","updateOffscreenComponent","markRef","updateFunctionComponent","updateClassComponent","finishClassComponent","pushHostRootContext","mountSuspenseOffscreenState","updateSuspenseComponent","mountSuspensePrimaryChildren","retrySuspenseComponentWithoutHydrating","updateDehydratedSuspenseComponent","scheduleSuspenseWorkOnFiber","initSuspenseListRenderState","updateSuspenseListComponent","resetSuspendedCurrentOnMountInLegacyMode","bailoutOnAlreadyFinishedWork","attemptEarlyBailoutIfNoScheduledUpdate","appendAllChildren","updateHostContainer","updateHostComponent$1","updateHostText$1","cutOffTailIfNeeded","bubbleProperties","completeWork","unwindWork","safelyDetachRef","safelyCallDestroy","commitBeforeMutationEffects","commitHookEffectListUnmount","commitHookEffectListMount","detachFiberAfterEffects","isHostParent","getHostSibling","insertOrAppendPlacementNodeIntoContainer","insertOrAppendPlacementNode","recursivelyTraverseDeletionEffects","commitDeletionEffectsOnFiber","attachSuspenseRetryListeners","wakeables.forEach$argument_0","recursivelyTraverseMutationEffects","commitMutationEffectsOnFiber","commitReconciliationEffects","commitLayoutEffects","requestEventTime","requestUpdateLane","scheduleUpdateOnFiber","ensureRootIsScheduled","performConcurrentWorkOnRoot","recoverFromConcurrentError","queueRecoverableErrors","isRenderConsistentWithExternalStores","markRootSuspended$1","performSyncWorkOnRoot","popRenderLanes","prepareFreshStack","handleError","pushDispatcher","renderDidSuspendDelayIfPossible","renderRootSync","workLoopSync","workLoopConcurrent","performUnitOfWork","completeUnitOfWork","commitRoot","commitRootImpl","scheduleCallback$1$argument_1","flushPassiveEffects","captureCommitPhaseErrorOnRoot","captureCommitPhaseError","pingSuspendedRoot","retryTimedOutBoundary","retryDehydratedSuspenseBoundary","resolveRetryWakeable","beginWork$1","scheduleCallback$1","FiberNode","createFiber","shouldConstruct","resolveLazyComponentTag","createWorkInProgress","createFiberFromTypeAndProps","createFiberFromFragment","createFiberFromOffscreen","createFiberFromText","createFiberFromPortal","FiberRootNode","createPortal","findHostInstance","updateContainer","emptyFindFiberByHostInstance","findNodeHandle","onRecoverableError","unmountComponentAtNode","updateContainer$argument_3","devToolsConfig$jscomp$inline_979.rendererConfig.getInspectorDataForViewTag","internals$jscomp$inline_1247.findHostInstanceByFiber","exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.computeComponentStackForErrorReporting","exports.createPortal","exports.dispatchCommand","exports.findHostInstance_DEPRECATED","exports.render","exports.sendAccessibilityEvent","exports.unmountComponentAtNodeAndRemoveContainer"],"mappings":"AAA;ACkB;CDO;aEM;KFG;AGE;CHI;AIC;CJuB;AKK;CLK;AMC;CNa;AOE;CPE;AQC;CRE;ASC;CTyB;kBUE;GVQ;mBWC;GXO;WYC;GZE;caE;GbO;iBcK;GdE;aeI;GfE;wBgBI;ECC,eD;EEC;GFE;ChBW;AmBE;CnBY;AoBC;CpBO;AqBC;CrBI;gBsBE;GtBE;AuBE;CvBE;AwBC;CxBE;AyBW;CzBE;A0BC;C1BI;A2BC;C3B4B;A4BC;C5BW;A6BC;C7BW;gB8BG;K9BE;sB+BC;K/BgC;AgCG;ChCY;AiCC;CjCY;AkCC;ClCE;AmCG;CnCS;AoCyD;CpCI;AqCC;CrCI;AsCC;CtCc;AuCC;CvCe;AwCC;CxCgB;AyCC;CzCM;A0CC;C1CI;mB2CE;K3CE;mB4CE;K5C0Q;oC6CG;O7CE;A8CK;C9C4D;A+CC;C/CO;AgDI;cCsC;gCCK;SDgB;2BEE;aFS;KDG;ChDM;AoDO;CpDyB;AqDC;CrDQ;AsDC;CtDW;AuDC;CvDS;AwDC;CxDa;qByDc;OzDuC;A0DgC;C1DE;A2DC;C3DE;A4DE;C5DQ;A6DE;C7DkB;A8DE;iBCK;GDqC;C9DC;gBgEE;GhEE;kBiEC;GjE+B;+BkEE;ClEE;sBmEE;CnEM;YoEE;GpEO;AqEuB;CrEM;AsEC;CtE8C;AuEC;CvEuD;AwEC;CxEa;AyEC;CzEG;A0EC;C1E2E;A2EC;C3EG;A4EC;C5EQ;A6EK;C7EQ;A8EC;C9EqC;A+EC;C/EqD;AgFC;ChFgB;AiFC;CjFgB;AkFC;ClFoF;AmFC;SCC;GDM;CnFC;qCoFC;ICC;KDI;kBEE;KFE;mBGC;KHE;qBIC;KJK;6BKC;KLK;2BMC;KNa;4BOC;KPa;GpFE;A4FY;C5FU;A6FI;C7FG;A8FG;C9FgD;A+FC;C/FwC;AgGC;ChGwC;AiGC;CjGG;AkGC;ClGK;AmGC;CnGG;AoGC;CpGO;AqGC;CrGkB;AsGC;CtGS;AuGE;CvGS;AwGC;CxGI;AyGK;CzGK;A0GC;C1GS;A2GC;gDCE;GDE;C3GM;A6GG;C7GI;A8GC;C9GI;A+GI;C/GE;AgHC;ChHG;AiHC;CjHI;AkHK;ClHiB;AmHC;CnHG;AoHC;CpHG;AqHC;CrHO;AsHC;CtHc;AuHC;CvHS;AwHC;CxHkB;AyHC;CzHE;A0HK;C1HwB;A2HO;C3Ha;A4HG;C5HqB;A6HC;C7HqB;A8HC;C9HW;A+HC;C/HU;AgIK;ChIE;AiIC;CjII;AkIC;ClIY;AmIC;CnIQ;AoIC;CpIkB;AqIE;CrII;AsIC;CtIO;AuIC;CvIY;AwIE;CxIQ;AyIC;CzIU;A0IC;C1IS;A2IC;C3IkB;A4IC;C5IS;A6IC;C7I4C;A8IC;C9I+H;A+IC;C/IqB;AgJE;ChJe;aiJE;GjJI;mBkJC;GlJW;uBmJC;GnJY;sBoJC;GpJW;AqJE;CrJe;AsJC;CtJyB;AuJC;CvJa;AwJC;CxJiC;AyJC;gBC+B;ODI;CzJgB;A2JC;C3JS;A4JC;C5JG;A6JC;ECC;GDO;EEC;GFM;EGC;GHO;EIC;GJK;EKC;GLc;EMC;GNK;EOC;GPU;EQC;GRmC;ESC;GTe;EUC;GVe;EWC;GX0D;EYC;GZgC;EaC;GbmD;EcC;uBCsF;ODE;GdE;EgBC;uBDuE;OCE;GhBE;EiBC;GjBqK;C7JE;A+KO;C/KM;AgLC;ChLM;AiLC;CjLI;AkLC;ClLiB;AmLC;CnLG;AoLE;CpLsB;AqLE;CrLI;AsLU;CtLI;AuLC;CvLK;AwLC;CxL2C;AyLC;CzLY;A0LC;C1L6B;A2LC;C3LE;A4LC;C5L6E;A6LC;C7LsB;A8LC,iC9L;A+LC;C/L+B;AgMC;ChMY;AiMC;CjMI;AkMC;mBCC;GDE;ClMC;AoMC;CpMS;AqMC;CrMG;AsMC;CtMmB;AuMC;CvMe;AwMC;CxME;AyMC;CzMS;A0MC;C1Mc;A2MC;C3ME;A4MC;C5ME;A6MC;C7ME;A8MC;C9ME;A+MC;M3HK;O2HE;M3HM;O2HE;C/ME;AgNC;ChNQ;AiNC,6BjN;AkNC;ClNY;AmNC;CnNa;AoNC;CpNY;AqNC;CrNa;AsNC;CtNE;AuNC;CvNkB;AwNC;CxNuC;AyNC;CzNM;A0NC;C1NO;A2NC;C3NQ;iB4NuB;K5NM;yB6NG;K7NQ;qB8NC;K9NE;wB+NC;K/NE;agOC;KhOM;gBiOC;KjOmB;YkOC;KlOI;sBmOG;KnOE;mBoOC;KpOM;sBqOC,arO;0BsOC;KtOwB;WuOC;KvOO;cwOc;KxOE;sByOE;KzOG;mB0OC;K1OI;c2OiB;K3OE;sB4OE;K5OK;mB6OC;K7OI;A8OM;C9OO;A+OC;C/OO;AgPQ;eCU;KDE;ChPE;AkPE;kBCK;GDG;ClPE;AoPC;mBCM;KDE;oBDC;KCE;qBDK;KCU;CpPE;AsPC;CtPc;AuPG;CvPU;AwPC;CxP4B;AyPC;CzPoD;A0PC;C1PgC;A2PC;C3PiD;A4PC;C5PO;A6PC;C7P8B;A8PC;C9PsM;A+PC;C/PuC;AgQC;ChQW;AiQE;CjQE;AkQC;ClQmI;AmQC;CnQS;AoQC;CpQkB;AqQC;CrQ4J;AsQC;CtQK;AuQC;CvQuB;AwQC;CxQsF;AyQC;CzQM;A0QC;C1QoB;A2QC;C3QyE;oB4QK;C5QgB;sB6QC,a7Q;wB8QC;C9QK;mB+QC;C/QE;AgRC;ChRuB;AiRC;CjRuB;AkRC;ClR0U;AmRC;CnRqD;AoRG;CpRU;AqRC;CrRM;AsRE;CtR2D;AuRC;CvRmB;AwRC;CxRa;AyRC;CzRe;A0RC;C1RE;A2RC;C3RkB;A4RC;C5RmB;A6RC;C7R2D;A8RG;C9RQ;A+RC;C/R0I;AgSC;sBCO;KDI;ChSE;AkSC;ClS4C;AmSC;CnSqN;AoSC;CpS6C;AqSC;CrSgH;AsS+B;CtSM;AuSC;CvSY;AwSC;CxSoB;AySC;CzSsE;A0SC;C1SoL;A2SC;C3SU;A4SC;C5SO;A6SC;C7SiC;A8SC;C9SW;A+SC;C/S8B;AgTC;ChTG;AiTC;CjTuE;AkTC;ClTiL;AmTC;CnTI;AoTC;CpTW;AqTC;CrTwB;AsTC;CtTE;AuTC;CvTG;AwTC;CxTK;AyTC;CzTsC;A0TC;C1TiB;A2TC;uCC8B;KDG;C3TsD;A6TC;C7TgJ;A8TC;C9TQ;A+TC;C/T6C;AgUC;ChUe;AiUC;CjUY;AkUC;ClUK;AmUC;CnUkB;coUE;CpUob;AqUC;CrUE;AsUC;CtUa;AuUC;CvUE;AwUC;CxUG;AyUC;CzUS;A0UC;C1UmC;A2UC;C3UyE;A4UC;C5UI;A6UC;C7UM;A8UC;C9UI;A+UC;C/Uc;AgVC;ChVmB;AiVC;CjVU;AkVC;ClVY;AmVC;CnV4D;AoVC;CpVE;AqVC;CrVY;AsVC;CtVE;AuVC;sCCG;KDE;CvVC;qB2DC;C3DW;kCyVQ;OzVI;sCoFC;OpFI;2B0VkB;G1VG;0C2VyB;G3VI;uB4VE;C5VO;0B6VC;C7VW;sC8VC;C9VW;iB+VG;C/V4B;iCgWC;ChWU;mDiWE;CjWG"}],[{"names":["","ActivityIndicator"],"mappings":"AAA;0BC+D;CD2D"}],[{"names":["","ProgressBarAndroid"],"mappings":"AAA;2BCgF;CDkB"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","codegenNativeComponent"],"mappings":"AAA;ACiC;CDuC"}],[{"names":["","requireNativeComponent","createReactNativeComponentClass$argument_1"],"mappings":"AAA;+BC0B;qDCC;iDDC;4BDC"}],[{"names":["","createReactNativeComponentClass"],"mappings":"AAA;wCC4B;CDK"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","Button","render"],"mappings":"AAA;AC4R;ECC;GDwG;CDC"}],[{"names":["","React.forwardRef$argument_0","useMemo$argument_0","onPressIn","onPressOut","onResponderGrant","onResponderMove","onResponderRelease","onResponderTerminate","useLazyInitialization"],"mappings":"AAA;qBCgC;ICsE;YCO;aDG;YEC;aFG;cDK;ICiB;YGI;aHK;YIC;aJK;YKC;aLK;YMC;aNK;WDK;CD2G;ASe;CTM"}],[{"names":["","PressabilityDebugView","isEnabled","setEnabled"],"mappings":"AAA;OCqC;CDgC;OEI;CFK;OGE;CHI"}],[{"names":["","usePressability","useEffect$argument_0",""],"mappings":"AAA;eCqB;YCW;GDI;YCI;aCE;ODE;GDE;CDG"}],[{"names":["","isActiveSignal","isActivationSignal","isPressInSignal","isTerminalSignal","Pressability","constructor","configure","reset","getEventHandlers","setLongPressDeactivationDistance","_createEventHandlers","focusEventHandlers.onBlur","focusEventHandlers.onFocus","responderEventHandlers.onStartShouldSetResponder","responderEventHandlers.onResponderGrant","setTimeout$argument_0","responderEventHandlers.onResponderMove","responderEventHandlers.onResponderRelease","responderEventHandlers.onResponderTerminate","responderEventHandlers.onResponderTerminationRequest","responderEventHandlers.onClick","responderEventHandlers.onStartShouldSetResponder.testOnly_pressabilityConfig","hoverPointerEvents.onPointerEnter","hoverPointerEvents.onPointerLeave","onMouseEnter","onMouseLeave","_receiveSignal","PressabilityPerformanceEventEmitter.emitEvent$argument_0","_performTransitionSideEffects","_activate","_deactivate","_measureResponderRegion","_measureCallback","_isTouchWithinResponderRegion","_handleLongPress","_shouldLongPressCancelPress","_cancelHoverInDelayTimeout","_cancelHoverOutDelayTimeout","_cancelLongPressDelayTimeout","_cancelPressDelayTimeout","_cancelPressOutDelayTimeout","normalizeDelay","getTouchFromPressEvent","convertPointerEventToMouseEvent"],"mappings":"AAA;uBCkQ;6CDE;2BEE;wCFE;wBGE;6CHG;yBIE;qEJC;eK0G;ECuB;GDE;EEE;GFE;EGK;GHU;EIK;GJK;EKE;GLE;EME;cCE;ODK;eEC;OFK;iCGI;OHS;wBIE;+CCW;WDE;iDCU;SDE;OJC;uBME;ONiC;0BOE;OPE;4BQE;ORE;qCSE;OTS;eUE;OVK;QWO,kBX;4CYY;qDPO;eOE;SZK;4CaG;wDRQ;iBQE;SbM;4BcY;6DTW;uBSE;edM;4BeE;6DVW;uBUE;efM;GNQ;EsBM;oDCM;ODK;GtBqB;EwBM;GxB4D;EyBE;GzBQ;E0BE;gDfe;SeE;G1BM;E2BE;G3BU;qB4BE;G5BiB;E6BE;G7B4C;E8BE;G9BO;E+BE;G/BK;EgCE;GhCK;EiCE;GjCK;EkCE;GlCK;EmCE;GnCK;EoCE;GpCK;CLC;A0CE;C1CM;+B2CE;C3CU;A4CE;C5CY"}],[{"names":["","playTouchSound"],"mappings":"AAA;kBCa;GDI"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","PressabilityPerformanceEventEmitter","constructor","addListener","removeListener","emitEvent","_listeners.forEach$argument_0"],"mappings":"AAA;ACmB;ECG,gBD;EEE;GFE;EGE;GHK;EIE;4BCM,2BD;GJC;CDC"}],[{"names":["","enableHover","disableHover","isHoverEnabled"],"mappings":"AAA;wBCiC;KDK;yBEE;KFK;OGQ;CHE"}],[{"names":["","createSquare","normalizeRect"],"mappings":"AAA;OCmB;CDE;OEE;CFE"}],[{"names":["","createReactNativeComponentClass$argument_1"],"mappings":"AAA;8CCuE;oCDC;yDCM;+CDC"}],[{"names":["","module.exports.get__ColorPropType","module.exports.get__EdgeInsetsPropType","module.exports.get__ImagePropTypes","module.exports.get__PointPropType","module.exports.get__TextInputPropTypes","module.exports.get__TextPropTypes","module.exports.get__ViewPropTypes"],"mappings":"AAA;ECa;GDE;EEC;GFE;EGC;GHE;EIC;GJE;EKC;GLE;EMC;GNE;EOC;GPE"}],[{"names":["","colorPropType"],"mappings":"AAA;sBCgB;CD0D"}],[{"names":["","normalizeColor","hue2rgb","hslToRgb","hwbToRgb","call","callWithSlashSeparator","commaSeparatedCall","getMatchers","parse255","parse360","parse1","parsePercentage","normalizeKeyword"],"mappings":"AAA;ACc;CDgJ;AEE;CFiB;AGE;CHY;AIE;CJgB;AKK;CLE;AME;CNQ;AOE;CPE;AQI;CR2B;ASE;CTS;AUE;CVG;AWE;CXS;AYE;CZU;AaE;Cb4J"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","emptyFunction","emptyFunctionWithReset","module.exports","shim","getShim"],"mappings":"AAA;ACW,2BD;AEC,oCF;iBGG;ECC;GDY;EEE;GFE;CHgC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","DeprecatedStyleSheetPropType","","flattenStyle"],"mappings":"AAA;ACa;SCE;GDQ;CDC;AGE;CHmB"}],[{"names":["","deprecatedCreateStrictShapeTypeChecker","checkType","chainedCheckType"],"mappings":"AAA;ACa;ECC;GDqD;EEC;GFE;CDG"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","TouchableNativeFeedback","SelectableBackground","SelectableBackgroundBorderless","Ripple","canUseNativeForeground","_createPressabilityConfig","onPressIn","onPressMove","onPressOut","_dispatchPressedStateChange","_dispatchHotspotUpdate","render","componentDidUpdate","componentWillUnmount",""],"mappings":"AAA;ACiG;QCS;IDI;QEU;IFI;QGgB;GHY;iDIK;uDJC;EKM;iBCkB;ODQ;mBEC;OFI;kBGC;OHO;GLE;ESE;GTY;EUE;GViB;EWE;GX+F;EYE;GZE;EaE;GbE;CDC;MeM;iDfG;MeG,4Cf"}],[{"names":["","TouchableOpacity","_createPressabilityConfig","onBlur","onFocus","onPressIn","onPressOut","_setOpacityTo","_opacityActive","_opacityInactive","_getChildStyleOpacityWithDefault","render","componentDidUpdate","componentWillUnmount","React.forwardRef$argument_0"],"mappings":"AAA;ACmI;ECM;cCa;ODO;eEC;OFO;iBGG;OHS;kBIC;OJK;GDE;EMK;GNO;EOE;GPE;EQE;GRE;ESE;GTI;EUE;GVqF;EWE;GXW;EYE;GZE;CDC;oCcE;CdE"}],[{"names":["","default.get__FlatList","default.get__Image","default.get__ScrollView","default.get__SectionList","default.get__Text","default.get__View"],"mappings":"AAA;EC4B;GDE;EEC;GFE;EGC;GHE;EIC;GJE;EKC;GLE;EMC;GNE"}],[{"names":["","add","subtract","divide","multiply","modulo","diffClamp","_combineCallbacks","","maybeVectorAnim","spring","start","stop","reset","_startNativeLoop","_isUsingNativeDriver","timing","decay","sequence","onComplete","animations.forEach$argument_0","parallel","result.start","cb","result.stop","result.reset","result._startNativeLoop","result._isUsingNativeDriver","delay","stagger","animations.map$argument_0","loop","restart","forkEvent","unforkEvent","event"],"mappings":"AAA;YCiD;CDK;iBEE;CFK;eGE;CHK;iBIE;CJK;eKE;CLE;kBME;CNM;0BOE;WCK;KDG;CPI;wBSE;CTgD;eUE;gBCI;GDsB;aCG;ODE;YEE;OFE;aGE;OHE;wBIE;OJG;4BKE;OLE;CVG;egBE;gBLI;GKsB;aLI;OKE;YJE;OIE;aHE;OGE;wBFE;OEG;4BDE;OCE;ChBG;ciBE;gBNI;GMU;aNI;OME;YLE;OKE;aJE;OIE;wBHE;OGG;4BFE;OEE;CjBG;iBkBE;WPK;yBQC;ORc;KOO;UNE;KMI;WLE;yBOC;OPI;KKE;sBJE;KII;0BHE;KGE;ClBE;iBqBO;WCU;yBFM;mBGC;SHY;OEO;KDC;UGE;yBJC;OIG;KHC;WIE;yBLC;OKI;KJC;sBKE;KLI;0BME;KNE;CrBI;c4BE;C5BQ;gB6BE;mBCK;KDE;C7BE;a+BQ;WpBQ;sBqBC;OrBY;KoBU;UnBE;KmBG;WlBE;KkBI;sBjBE;KiBI;0BhBE;KgBE;C/BE;AiCE;WzBU;KyBG;CjCE;AkCE;ClCO;cmCE;CnCU"}],[{"names":["","DecayAnimation","constructor","__getNativeAnimationConfig","start","onUpdate","stop"],"mappings":"AAA;eCqC;ECW;GDQ;EEE;GFc;EGE;GHmB;EIE;GJoB;EKE;GLK;CDC"}],[{"names":["","","apis.reduce$argument_0","API.getValue","API.setWaitingForIdentifier","API.unsetWaitingForIdentifier","API.disableQueue","API.flushQueue","API.queueOperation","queue.push$argument_0","API.createAnimatedNode","API.updateAnimatedNodeConfig","API.startListeningToAnimatedNodeValue","API.stopListeningToAnimatedNodeValue","API.connectAnimatedNodes","API.disconnectAnimatedNodes","API.startAnimatingNode","API.stopAnimation","API.setAnimatedNodeValue","API.setAnimatedNodeOffset","API.flattenAnimatedNodeOffset","API.extractAnimatedNodeOffset","API.connectAnimatedNodeToView","API.disconnectAnimatedNodeFromView","API.restoreDefaultValues","API.dropAnimatedNode","API.addAnimatedEventToView","API.removeAnimatedEventFromView","setupGlobalEventEmitterListeners","RCTDeviceEventEmitter.addListener$argument_1","addWhitelistedStyleProp","addWhitelistedTransformProp","addWhitelistedInterpolationParam","isSupportedColorStyleProp","isSupportedStyleProp","isSupportedTransformProp","isSupportedInterpolationParam","validateTransform","configs.forEach$argument_0","validateStyles","validateInterpolation","generateNewNodeTag","generateNewAnimationId","assertNativeAnimatedModule","shouldUseNativeDriver","transformDataType","default.get__nativeEventEmitter"],"mappings":"AAA;MC6D;6CCwB;ODK;KDC;YGQ;GHc;2BIC;GJS;6BKC;GLO;gBMC;GNU;cOC;GPyC;kBQC;iBCe,iBD;GRI;sBUC;GVG;4BWC;GXQ;qCYC;GZG;oCaC;GbG;wBcC;GdG;2BeC;GfM;sBgBC;GhB4B;iBiBC;GjBG;wBkBC;GlBG;yBmBC;GnBG;6BoBC;GpBG;6BqBC;GrBG;6BsBC;GtBG;kCuBC;GvBU;wBwBC;GxBM;oByBC;GzBG;0B0BC;G1BY;E2BC;G3BY;A4BG;ICG;KDQ;MCK;ODQ;C5BE;A8BuE;C9BG;A+BE;C/BG;AgCE;ChCG;AiCE;CjCE;AkCE;ClCE;AmCE;CnCE;AoCE;CpCE;AqCE;kBCgB;GDM;CrCC;AuCE;CvCQ;AwCE;CxCU;AyCE;CzCE;A0CE;C1CE;A2CE;C3CE;A4CI;C5C2B;A6CE;C7Ca;E8CqB;G9CU"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","Animation","start","stop","__getNativeAnimationConfig","__debouncedOnEnd","__startNativeAnimation"],"mappings":"AAA;eCiC;ECM;YDM;EEC;GFI;EGC;GHI;EIE;GJI;EKC;GLwB;CDC"}],[{"names":["","SpringAnimation","constructor","__getNativeAnimationConfig","start","getInternalState","onUpdate","stop"],"mappings":"AAA;eCiF;ECuB;GD+D;EEE;GF0B;EGE;GHuC;EIE;GJM;EKuB;GL6F;EME;GNM;CDC"}],[{"names":["","processColor","isRgbaValue","isRgbaAnimatedValue","AnimatedColor","constructor","setValue","_withSuspendedCallbacks$argument_0","setOffset","flattenOffset","extractOffset","stopAnimation","resetAnimation","__getValue","__attach","__detach","_withSuspendedCallbacks","__callListeners","__makeNative","__getNativeConfig"],"mappings":"AAA;ACoD;CDoC;AEE;CFQ;AGE;CHQ;eIE;ECS;GDkC;EEM;iCCS;KDoB;GFiB;EIO;GJK;EKM;GLK;EMM;GNK;EOO;GPM;EQK;GRM;ESE;GTM;EUE;GVM;EWE;GXM;EYE;GZI;EaE;GbI;EcE;GdM;EeE;GfS;CJC"}],[{"names":["","flushValue","findAnimatedStyles","leaves.forEach$argument_0","_executeAsAnimatedBatch","AnimatedValue","constructor","__detach","NativeAnimatedAPI.getValue$argument_1","__getValue","setValue","_executeAsAnimatedBatch$argument_1","setOffset","flattenOffset","extractOffset","stopAnimation","resetAnimation","__onAnimatedValueUpdateReceived","interpolate","animate","animation.start$argument_1","animation.start$argument_2","stopTracking","track","_updateValue","__getNativeConfig"],"mappings":"AAA;OCkD;ECE;GDO;iBEE,qBF;CDC;AIO;CJI;eKU;ECO;GDW;EEE;wDCE;ODE;GFI;EIE;GJE;EKQ;gECU;4EDC;GLG;EOS;GPK;EQQ;GRM;ESQ;GTM;EUS;GVW;EWO;GXS;EYE;GZE;EaM;GbI;EcQ;MCU;ODI;MEC;OFM;GdI;EiBK;GjBG;EkBK;GlBK;EmBE;GnBU;EoBE;GpBM;CLC"}],[{"names":["","runAfterInteractions","Promise$argument_0","cancel","createInteractionHandle","clearInteractionHandle","setDeadline","_scheduleUpdate","_processUpdate","_addInteractionSet.forEach$argument_0","_deleteInteractionSet.forEach$argument_0"],"mappings":"AAA;ECwF;gCCS;KDU;cEI;OFE;GDE;EIK;GJM;EKK;GLM;EMU;GNE;AOc;CPQ;AQK;6BCI,qCD;gCEC,wCF;CR2B"}],[{"names":["","TaskQueue","constructor","enqueue","enqueueTasks","tasks.forEach$argument_0","cancelTasks","_queueStack.map$argument_0","queue.tasks.filter$argument_0","_queueStack.map.filter$argument_0","hasTasksToProcess","processNext","_getCurrentQueue","_genPromise","task.gen.then$argument_0","task.gen.then._catch$argument_0","setTimeout$argument_0"],"mappings":"AAA;AC2C;ECQ;GDG;EEO;GFE;EGE;kBCC,0BD;GHC;EKE;WCG;kCCE,0CD;QDC;cGC,mDH;GLC;ESY;GTE;EUK;GV0B;EWS;GXkB;EYE;YCY;ODQ;aEC;mBCC;SDG;OFC;GZC;CDC"}],[{"names":["","createNumericInterpolation","","interpolate","mapStringToNumericComponents","createStringInterpolation","outputRange.every$argument_0","output.components.every$argument_0","outputRange.map$argument_0","output.components.filter$argument_0","numericComponents._.map$argument_0","numericComponents.map$argument_0","interpolations.map$argument_0","outputRange._.components.map$argument_0","findRange","checkValidRanges","checkValidInputRange","checkInfiniteRange","AnimatedInterpolation","constructor","_getInterpolation","__makeNative","__getValue","__attach","__detach","__getNativeConfig"],"mappings":"AAA;ACuC;SCsB;GDiB;CDC;AGE;CHkE;AIK;CJsC;AKU;wBCS,oCD;QCM,yDD;wBCK;UCE;yEDE;SDC;oBGO;mCCK,0BD,CH;kDKE;yCCG,2BD;MLC;WHG;wCUC,qCV;aWG,8CX;KGE;WHE;wCUC;OVK;KGE;CLE;AcE;CdQ;AeE;CfgB;AgBE;ChBO;AiBE;CjBe;ekBE;ECO;GDY;EEE;GFU;EGE;GHG;EIE;GJO;EfE;GeI;EKE;GLE;EME;GNG;EOE;+DjBU;OiBQ;GPa;ClBC"}],[{"names":["","step0","step1","linear","ease","quad","cubic","poly","","sin","circle","exp","elastic","back","bounce","bezier","_in","out","inOut"],"mappings":"AAA;EC+D;GDE;EEK;GFE;EGQ;GHE;EIQ;GJK;EKQ;GLE;EMQ;GNE;EOQ;WCC,6BD;GPC;ESO;GTE;EUO;GVE;EWO;GXE;EYY;WJE,mEI;GZC;EaQ;WLC,8BK;GbC;EcO;GdiB;EeS;GfQ;EgBK;GhBE;EiBK;WTC,sBS;GjBC;EkBO;WVC;KUK;GlBC"}],[{"names":["","A","B","C","calcBezier","getSlope","binarySubdivide","newtonRaphsonIterate","bezier","getTForX","BezierEasing"],"mappings":"AAA;AC6B;CDE;AEC;CFE;AGC;CHE;AIG;CJE;AKG;CLE;AME;CNyB;AOE;CPgB;eQE;ECoB;GDkC;SEE;GFY;CRC"}],[{"names":["","AnimatedWithChildren","constructor","__makeNative","__addChild","__removeChild","__getChildren","__callListeners"],"mappings":"AAA;eCiB;ECG;GDG;EEE;GFY;EGE;GHa;EIE;GJgB;EKE;GLE;EME;GNU;CDC"}],[{"names":["","AnimatedNode","__attach","__detach","__getValue","__getAnimatedValue","__addChild","__removeChild","__getChildren","constructor","__makeNative","addListener","removeListener","removeAllListeners","hasListeners","_startListeningToNativeValueUpdates","NativeAnimatedHelper.nativeEventEmitter.addListener$argument_1","__onAnimatedValueUpdateReceived","__callListeners","_stopListeningForNativeValueUpdates","__getNativeTag","__getNativeConfig","toJSON","__getPlatformConfig","__setPlatformConfig"],"mappings":"AAA;eCyB;ECI,mBD;EEC;GFM;EGC,oBH;EIC;GJE;EKC,kCL;EMC,qCN;EOC;GPE;EQO;GRE;ESE;GTS;EUS;GVO;EWQ;GXK;EYO;GZK;EaE;GbE;EcE;QCiB;SDK;GdE;EgBE;GhBE;EiBE;GjBI;EkBE;GlBQ;EmBE;GnBqB;EoBC;GpBI;EqBE;GrBE;EsBE;GtBE;EuBC;GvBE;CDC"}],[{"names":["","stiffnessFromOrigamiValue","dampingFromOrigamiValue","fromOrigamiTensionAndFriction","fromBouncinessAndSpeed","normalize","projectNormal","linearInterpolation","quadraticOutInterpolation","b3Friction1","b3Friction2","b3Friction3","b3Nobounce"],"mappings":"AAA;ACkB;CDE;AEE;CFE;OGE;CHQ;OIE;ECI;GDE;EEE;GFE;EGE;GHE;EIE;GJE;EKE;GLE;EME;GNE;EOE;GPO;EQE;GRQ;CJgB"}],[{"names":["","easeInOut","TimingAnimation","constructor","__getNativeAnimationConfig","start","onUpdate","stop"],"mappings":"AAA;ACmD;CDM;eEE;ECa;GDU;EEE;GFe;EGE;GHoC;EIE;GJuB;EKE;GLM;CFC"}],[{"names":["","createAnimatedComponent","React.forwardRef$argument_0"],"mappings":"AAA;eC+B;0BCG;GDyB;CDC"}],[{"names":["","useMergeRefs",""],"mappings":"AAA;eC0B;ICI;KDU;CDG"}],[{"names":["","useAnimatedProps","useReducer$argument_0","useMemo$argument_0","AnimatedProps$argument_1","refEffect","onUpdateRef.current","","reduceAnimatedProps","useAnimatedPropsLifecycle","useEffect$argument_0","useLayoutEffect$argument_0","getEventTarget","isFabricInstance"],"mappings":"AAA;eCiC;sDCG,kBD;IEQ,+BC,6BD,CF;IImB;4BCM;ODsB;aEa;OFM;KJC;CDM;AQE;CRS;ASS;YCI;GDK;kBEE;WJE;KIE;GFC;kBEE;WJS;KIO;GFC;CTC;AYE;CZM;AaG;CbgB"}],[{"names":["","useRefEffect",""],"mappings":"AAA;eC4B;ICK;KDQ;CDG"}],[{"names":["","AnimatedProps","constructor","__getValue","__getAnimatedValue","__attach","__detach","update","__makeNative","setNativeView","__connectAnimatedView","__disconnectAnimatedView","__restoreDefaultValues","__getNativeConfig"],"mappings":"AAA;eCqB;ECK;GDU;EEE;GFc;EGE;GHS;EIE;GJO;EKE;GLW;EME;GNE;EOE;GPoB;EQE;GRQ;ESE;GTW;EUE;GVW;EWE;GXQ;EYE;GZa;CDC"}],[{"names":["","createAnimatedStyle","createStyleWithAnimatedTransform","AnimatedStyle","constructor","_walkStyleAndGetValues","__getValue","_walkStyleAndGetAnimatedValues","__getAnimatedValue","__attach","__detach","__makeNative","__getNativeConfig"],"mappings":"AAA;ACqB;CDe;AEE;CFW;eGE;ECI;GDQ;EEG;GFc;EGE;GHM;EIG;GJY;EKE;GLE;EME;GNO;EOE;GPQ;EQE;GRQ;ESE;GTgB;CHC"}],[{"names":["","AnimatedTransform","constructor","__makeNative","_transforms.forEach$argument_0","__getValue","_get$argument_0","__getAnimatedValue","__attach","__detach","__getNativeConfig","_get","_transforms.map$argument_0","value.map$argument_0"],"mappings":"AAA;eCkB;ECG;GDG;EEE;6BCC;KDO;GFE;EIE;qBCC,yCD;GJC;EME;qBDC,iDC;GNC;EOE;6BJC;KIO;GPC;EQE;6BLC;KKO;GRE;ESE;6BNG;KMiB;GTO;EUE;gCCC;kCCO;WDM;KDe;GVC;CDC"}],[{"names":["","attachNativeEvent","traverse","eventMappings.forEach$argument_0","detach","validateMapping","validate","argMapping.forEach$argument_0","AnimatedEvent","constructor","__addListener","__removeListener","_listeners.filter$argument_0","__attach","__detach","__getHandler","","_argMapping.forEach$argument_0","_callListeners","_listeners.forEach$argument_0"],"mappings":"AAA;OC8B;mBCU;GDgB;0BEY;KFM;IGI;8BDE;SCO;KHE;CDE;AKE;mBCC;GDwC;qBEM;GFE;CLC;OQE;ECO;GDc;EEE;GFE;EGE;6CCC,iCD;GHC;EKE;GLY;EME;GNO;EOE;eCI;SDM;WCO;uBdM;OcqB;+BCC;ODE;KDG;GPC;mBUE;4BCC,6BD;GVC;CRC"}],[{"names":["","AnimatedValueXY","constructor","setValue","setOffset","flattenOffset","extractOffset","__getValue","resetAnimation","stopAnimation","addListener","jointCallback","removeListener","removeAllListeners","getLayout","getTranslateTransform","__attach","__detach","__makeNative"],"mappings":"AAA;eCmC;ECY;GD0B;EEQ;GFG;EGS;GHG;EIQ;GJG;EKQ;GLG;EME;GNS;EOO;GPU;EQS;GRU;ESW;0BCE;KDE;GTM;EWQ;GXI;EYO;GZI;EaO;GbK;EcO;GdE;EeE;GfI;EgBE;GhBI;EiBE;GjBI;CDC"}],[{"names":["","isPublicInstance","isLegacyFabricInstance"],"mappings":"AAA;OCkB;CDQ;AEE;CFS"}],[{"names":["","AnimatedAddition","constructor","__makeNative","__getValue","interpolate","__attach","__detach","__getNativeConfig"],"mappings":"AAA;eCoB;ECI;GDI;EEE;GFI;EGE;GHE;EIE;GJI;EKE;GLG;EME;GNI;EOE;GPK;CDC"}],[{"names":["","AnimatedDiffClamp","constructor","__makeNative","interpolate","__getValue","__attach","__detach","__getNativeConfig"],"mappings":"AAA;eCmB;ECO;GDO;EEE;GFG;EGE;GHI;EIE;GJM;EKE;GLE;EME;GNG;EOE;GPO;CDC"}],[{"names":["","AnimatedDivision","constructor","__makeNative","__getValue","interpolate","__attach","__detach","__getNativeConfig"],"mappings":"AAA;eCoB;ECK;GDO;EEE;GFI;EGE;GHc;EIE;GJI;EKE;GLG;EME;GNI;EOE;GPK;CDC"}],[{"names":["","AnimatedModulo","constructor","__makeNative","__getValue","interpolate","__attach","__detach","__getNativeConfig"],"mappings":"AAA;eCmB;ECI;GDI;EEE;GFG;EGE;GHI;EIE;GJI;EKE;GLE;EME;GNG;EOE;GPM;CDC"}],[{"names":["","AnimatedMultiplication","constructor","__makeNative","__getValue","interpolate","__attach","__detach","__getNativeConfig"],"mappings":"AAA;eCoB;ECI;GDI;EEE;GFI;EGE;GHE;EIE;GJI;EKC;GLG;EME;GNI;EOE;GPK;CDC"}],[{"names":["","AnimatedSubtraction","constructor","__makeNative","__getValue","interpolate","__attach","__detach","__getNativeConfig"],"mappings":"AAA;eCoB;ECI;GDI;EEE;GFI;EGE;GHE;EIE;GJI;EKE;GLG;EME;GNI;EOE;GPK;CDC"}],[{"names":["","AnimatedTracking","constructor","__makeNative","__getValue","__attach","__detach","update","__getNativeConfig"],"mappings":"AAA;eCmB;ECQ;GDgB;EEE;GFK;EGE;GHE;EIE;GJW;EKE;GLG;EME;GNQ;EOE;GPc;CDC"}],[{"names":["","mockAnimationStart","","emptyAnimation.start","emptyAnimation.stop","emptyAnimation.reset","emptyAnimation._startNativeLoop","emptyAnimation._isUsingNativeDriver","mockCompositeAnimation","mockAnimationStart$argument_0","animations.forEach$argument_0","spring","timing","decay","sequence","parallel","delay","stagger","loop"],"mappings":"AAA;ACsC;SCG;GDmB;CDC;SGY,QH;QIC,QJ;SKC,QL;oBMC,QN;wBOC;GPE;+BQG;4BCI;uBCC,8BD;GDE;ERC;eWE;8BFO;KEG;CXE;eYE;8BHO;KGG;CZE;caE;CbK;iBcE;CdI;iBeG;CfK;cgBE;ChBE;gBiBE;CjBK;akBQ;ClBM"}],[{"names":["","React.forwardRef$argument_0"],"mappings":"AAA;ECoB;qEDK"}],[{"names":["","removeClippedSubviewsOrDefault","numColumnsOrDefault","isArrayLike","FlatList","scrollToEnd","scrollToIndex","scrollToItem","scrollToOffset","recordInteraction","flashScrollIndicators","getScrollResponder","getNativeScrollRef","getScrollableNode","setNativeProps","constructor","props.viewabilityConfigCallbackPairs.map$argument_0","componentDidUpdate","_captureRef","_checkProps","_getItem","_getItemCount","_keyExtractor","items.map$argument_0","_pushMultiColumnViewable","v.item.forEach$argument_0","_createOnViewableItemsChanged","","info.viewableItems.forEach$argument_0","info.changed.forEach$argument_0","_renderer","render","renderProp","item.map$argument_0"],"mappings":"AAA;AC+J;CDE;AEG;CFE;AGE;CHG;AIqI;ECK;GDI;EEU;GFU;EGQ;GHU;EIO;GJI;EKO;GLI;EMO;GNI;EOK;GPI;EQK;GRQ;ESE;GTI;EUE;GVI;EWE;sDCK;UDK;GXY;EaG;GbqB;gBcK;GdE;EeG;Gf6B;agBE;GhBkB;kBiBE;GjBa;kBkBE;aCY;4EDC;GlBO;EoBE;mBCG;KDI;GpBC;EsBE;WCQ;qCCU;2DDC;+BEE,8CF;KDM;GtBC;c0BE;mBCU;KDY;uBEE;sBCS;aDU;KFM;G1BK;E2BK;G3BgC;CJC"}],[{"names":["","ponyfill","isEqual","areInputsEqual","memoizeOne","memoized"],"mappings":"AAA;ICG;KDE;AEC;CFQ;AGC;CHU;AIE;ICM;KDa;CJE"}],[{"names":["","module.exports.get__VirtualizedList","module.exports.get__VirtualizedSectionList","module.exports.get__VirtualizedListContextResetter","module.exports.get__ViewabilityHelper","module.exports.get__FillRateHelper"],"mappings":"AAA;ECyC;GDE;EEC;GFE;EGC;GHG;EIC;GJE;EKC;GLE"}],[{"names":["","elementsThatOverlapOffsets","newRangeCount","computeWindowedRenderLimits","keyExtractor"],"mappings":"AAA;OCmB;CD4C;OEQ;CFqB;OGQ;CHmJ;OIE;CJQ"}],[{"names":["","horizontalOrDefault","initialNumToRenderOrDefault","maxToRenderPerBatchOrDefault","onStartReachedThresholdOrDefault","onEndReachedThresholdOrDefault","getScrollingThreshold","scrollEventThrottleOrDefault","windowSizeOrDefault","findLastWhere","VirtualizedList","scrollToEnd","scrollToIndex","scrollToItem","scrollToOffset","recordInteraction","_nestedChildLists.forEach$argument_0","_viewabilityTuples.forEach$argument_0","flashScrollIndicators","getScrollResponder","getScrollableNode","getScrollRef","setNativeProps","_getCellKey","_getScrollMetrics","hasMore","_getOutermostParentListRef","_registerAsNestedChild","_unregisterAsNestedChild","constructor","props.viewabilityConfigCallbackPairs.map$argument_0","_checkProps","_findItemIndexWithKey","_getItemKey","_createRenderMask","_initialRenderRegion","_ensureClosestStickyHeader","_adjustCellsAroundViewport","_findFirstChildWithMore","_nestedChildLists.anyInCell$argument_1","componentDidMount","componentWillUnmount","getDerivedStateFromProps","_pushCells","CellRenderer.props.onCellFocusCapture","CellRenderer.props.ref","_constrainToItemCount","_onUpdateSeparators","keys.forEach$argument_0","_isNestedWithSameOrientation","_getSpacerKey","_keyExtractor","render","React.cloneElement$argument_1.onLayout","findLastWhere$argument_1","ScrollView.Context.Consumer.props.children","componentDidUpdate","_captureScrollRef","_computeBlankness","_defaultRenderScrollComponent","_onCellLayout","_onCellFocusCapture","_onCellUnmount","_triggerRemeasureForChildListsInCell","_nestedChildLists.forEachInCell$argument_1","measureLayoutRelativeToContainingList","_scrollRef.measureLayout$argument_1","_scrollRef.measureLayout$argument_2","_onLayout","_onLayoutEmpty","_getFooterCellKey","_onLayoutFooter","_onLayoutHeader","_renderDebugOverlay","framesInLayout.map$argument_0","_selectLength","_selectOffset","_maybeCallOnEdgeReached","_onContentSizeChange","_convertParentScrollMetrics","_onScroll","setState$argument_0","_scheduleCellsToRenderUpdate","_onScrollBeginDrag","_onScrollEndDrag","_onMomentumScrollBegin","_onMomentumScrollEnd","_updateCellsToRender","_createViewToken","_getOffsetApprox","__getFrameMetricsApprox","_getFrameMetrics","_getNonViewportRenderRegions","_updateViewableItems"],"mappings":"AAA;ACuF;CDE;AEG;CFE;AGG;CHE;AIG;CJE;AKG;CLE;AMG;CNE;AOG;CPE;AQG;CRE;ASE;CTW;AU+B;ECI;GDiC;EEG;GFqE;EGI;GHgB;EIY;GJqB;EKE;mCCC;KDE;oCEC;KFE;GLE;EQE;GRM;ESO;GTI;EUE;GVM;EWE;GXQ;EYE;GZI;EaE;GbE;sBcG;GdE;EeE;GfE;+BgBG;GhBM;2BiBE;GjBQ;6BkBE;GlBI;EmBI;QCY;UDG;GnBiC;EqBE;GrB8C;EsBE;GtBmB;EuBE;GvBW;EwBE;GxB0C;EyBE;GzBkB;E0BE;G1Bc;E2BE;G3ByE;E4BE;0DCK;6BDC;G5BQ;E8BE;G9BO;E+BE;oCxBK;KwBE;G/BE;EgCE;GhC8D;EiCE;8BCmD,kCD;eEE;WFE;GjCS;EoCE;GpCe;wBqCE;iBCC;KDG;GrCC;EuCE;GvCM;kBwCE;mCxCC;EyCE;GzCoB;E0CE;sBCkE;aDK;sDEc,eF;WGmJ;WHkB;G1Cc;E8CE;sCvCK;OuCE;G9Ce;sB+CiD;G/CE;EgDE;GhDM;kCiDI;GjDoC;kBkDE;GlDiC;EmDE;GnDG;mBoDE;GpDM;EqDE;kDCC;KDE;GrDC;EuDE;QCW;2ClDoB;akDE;SDE;QEC;SFK;GvDQ;c0DE;G1Da;mB2DE;G3DE;E4DE;G5DE;oB6DE;G7DG;oB8DE;G9DE;E+DG;4BC6B;SDY;G/DuB;EiEE;GjEU;EkEE;GlEQ;EmEE;GnEgF;yBoEE;GpE6B;gCqEK;GrEkB;csEE;mChEC;KgEE;oBCwD;QDE;GtEY;EwEE;GxEuD;uByEE;mCnEC;KmEE;oClEC;KkEE;GzEG;qB0EE;mCpEC;KoEE;G1EO;2B2EE;mCrEC;KqEE;G3EE;yB4EE;mCtEC;KsEE;G5EI;yB6EE;kBNG;KMqB;G7EC;qB8EE;G9Ec;qB+EM;G/EW;MgFS;GhFoB;qBiFE;GjFyB;iCkFE;GlF2D;EmFE;oC5ES;K4EU;GnFC;CVC"}],[{"names":["","Batchinator","constructor","dispose","schedule","setTimeout$argument_0","InteractionManager.runAfterInteractions$argument_0","_taskHandle.cancel"],"mappings":"AAA;ACoC;ECI;GDG;EEO;GFQ;EGC;qCCI;iECC;ODK;KDC;gCGC,iCH;GHC;CDC"}],[{"names":["","clamp"],"mappings":"AAA;ACY;CDQ"}],[{"names":["","infoLog"],"mappings":"AAA;ACe;CDE"}],[{"names":["","ChildListCollection","add","remove","forEach","forEachInCell","anyInCell","size"],"mappings":"AAA;eCY;ECI;GDW;EEE;GFY;EGE;GHM;EIE;GJK;EKE;GLQ;EME;GNE;CDC"}],[{"names":["","Info","FillRateHelper","addListener","remove","_listeners.filter$argument_0","setSampleRate","setMinSampleCount","constructor","activate","deactivateAndFlush","_listeners.forEach$argument_0","computeBlankness","enabled","_resetData"],"mappings":"AAA;ACgB;CDW;AEuB;ECQ;cCS;uCCC,iCD;ODC;GDE;EIE;GJE;EKE;GLE;EME;GNM;EOE;GPK;EQE;uBCuC,0BD;GRE;EUE;GVmG;EWE;GXE;EYE;GZK;CFC"}],[{"names":["","StateSafePureComponent","constructor","setState","setState$argument_0","_installSetStateHooks","Object.defineProperty$argument_2.get","Object.defineProperty$argument_2.set"],"mappings":"AAA;eCsB;ECM;GDG;EEE;qBCK;ODW;GFI;EIE;MCK;ODM;MEC;OFE;MCG;ODM;MEC;OFE;GJE;CDC"}],[{"names":["","ViewabilityHelper","constructor","dispose","computeViewableItems","onUpdate","_viewableIndices.every$argument_0","setTimeout$argument_0","resetViewableIndices","recordInteraction","_onUpdateSync","viewableIndicesToCheck.filter$argument_0","viewableIndicesToCheck.map$argument_0","_isViewable","_getPixelsVisible","_isEntirelyVisible"],"mappings":"AAA;AC4E;ECO;GDI;EEK;GFK;EGK;GHuE;EIM;kCCiD,oCD;2CEQ;OFW;GJa;EOK;GPE;EQK;GRE;ESE;2DCe;wCDC;iCEI;OFG;GTsB;CDC;AaE;CbgB;AcE;CdO;AeE;CfM"}],[{"names":["","CellRenderer","CellRenderer.getDerivedStateFromProps","CellRenderer#_separators.highlight","CellRenderer#_separators.unhighlight","CellRenderer#_separators.updateProps","CellRenderer#updateSeparatorProps","setState$argument_0","CellRenderer#componentWillUnmount","CellRenderer#_onLayout","CellRenderer#_renderElement","CellRenderer#render"],"mappings":"AAA;eCuD;ECW;GDU;eEM;KFK;iBGC;KHK;iBIC;KJS;EKG;kBCC;MDE;GLC;EOE;GPE;cQE;GRO;ESE;GTuC;EUE;GViE;CDC"}],[{"names":["","VirtualizedListContextResetter","VirtualizedListContextProvider","useMemo$argument_0","VirtualizedListCellContextProvider"],"mappings":"AAA;OC+C;CDU;OEK;ICS;MDO;CFc;OIK;IDU,8DC;CJQ"}],[{"names":["","CellRenderMask","constructor","enumerateRegions","addCells","numCells","equals","_regions.every$argument_0","_findRegion"],"mappings":"AAA;OCkB;ECI;GDmB;EEE;GFE;EGE;GHqE;EIE;GJE;EKE;QCK;wDDG;GLG;EOE;GPkB;CDC"}],[{"names":["","VirtualizedSectionList","scrollToLocation","getListRef","render","VirtualizedList.props.getItem","VirtualizedList.props.getItemCount","_getItem","_keyExtractor","_subExtractor","_convertViewable","_onViewableItemsChanged","_renderItem","","_updatePropsFor","_updateHighlightFor","_setUpdateHighlightFor","_setUpdatePropsFor","_getSeparatorComponent","_captureRef","ItemWithSeparator","React.useEffect$argument_0","separators.highlight","separators.unhighlight","separators.updateProps"],"mappings":"AAA;ACgI;ECG;GDuB;EEE;GFE;EGE;iBCsC;oDDC;sBEE,eF;GHS;EME;GN0B;kBOG;GPG;EQE;GRsD;qBSE;GToB;4BUE;GViB;IWG;ICE;KZiD;oBaE;GbK;wBcE;GdK;2BeE;GfU;uBgBE;GhBM;EiBE;GjBsB;gBkBK;GlBE;CDC;AoBgC;kBCqC;WRK;KQG;GDC;eEQ;KFM;iBGC;KHM;iBIC;KJc;CpB6B"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","generateRequestId","getSize","NativeImageLoaderAndroid.getSize.then$argument_0","","getSizeWithHeaders","NativeImageLoaderAndroid.getSizeWithHeaders.then$argument_0","prefetchWithMetadata","prefetch","abortPrefetch","queryCache","BaseImage","ImageAnalyticsTagContext.Consumer.props.children","TextAncestor.Consumer.props.children"],"mappings":"AAA;AC4B;CDE;AEO;UCM;KDE;QEG;SFE;CFE;AKQ;UCO;KDE;QDG;SCE;CLE;AOE;CPQ;AQE;CRI;ASE;CTE;AUO;CVI;kBWqB;OCgF;aCU;aDmB;ODG;CXG"}],[{"names":["asyncGeneratorStep","","_asyncToGenerator","","Promise$argument_0","_next","_throw"],"mappings":"AAA;CCa;ACC;SCC;uBCG;MCE;ODE;MEC;OFE;KDE;GDC;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;ICoJ,4BD"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;IC+C,4BD"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","getImageSourcesFromImageProps","srcSetList.forEach$argument_0"],"mappings":"AAA;OCqB;uBCqB;KDe;CDsB"}],[{"names":["","convertObjectFitToResizeMode"],"mappings":"AAA;OCY;CDQ"}],[{"names":["","React.forwardRef$argument_0","useMemo$argument_0"],"mappings":"AAA;mBCgC;GD4B;ECG;cCa;ODO;GDuC"}],[{"names":["","RefreshControl","componentDidMount","componentDidUpdate","render","_onRefresh","_setNativeRef"],"mappings":"AAA;AC2H;ECO;GDE;EEE;GFuB;EGE;GHqB;eIE;GJS;kBKE;GLO;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","ScrollView","constructor","componentDidMount","componentDidUpdate","componentWillUnmount","getScrollResponder","getScrollableNode","getInnerViewNode","getInnerViewRef","getNativeScrollRef","scrollTo","scrollToEnd","flashScrollIndicators","scrollResponderScrollNativeHandleToKeyboard","scrollResponderZoomTo","_textInputFocusError","_inputMeasureAndScrollToKeyboard","scrollTextInputIntoVisibleRect","setTimeout$argument_0","_getKeyForIndex","_updateAnimatedNodeAttachment","_setStickyHeaderRef","_onStickyHeaderLayout","_handleScroll","_handleLayout","_handleContentOnLayout","createRefForwarder$argument_0","scrollResponderKeyboardWillShow","scrollResponderKeyboardWillHide","scrollResponderKeyboardDidShow","scrollResponderKeyboardDidHide","_handleMomentumScrollBegin","_handleMomentumScrollEnd","_handleScrollBeginDrag","_handleScrollEndDrag","_isAnimating","_handleResponderGrant","_handleResponderReject","_handleResponderRelease","_handleResponderTerminationRequest","_handleScrollShouldSetResponder","_handleStartShouldSetResponder","_handleStartShouldSetResponderCapture","_keyboardIsDismissible","_softKeyboardIsDetached","_keyboardEventsAreUnreliable","_handleTouchEnd","_handleTouchCancel","_handleTouchStart","_handleTouchMove","render","filter$argument_0","childArray.map$argument_0","StickyHeaderComponent.props.ref","StickyHeaderComponent.props.onLayout","createRefForwarder","memoize$argument_0","","Wrapper"],"mappings":"AAA;AC+sB;ECG;GDO;EEkC;GFiC;EGE;GHY;EIE;GJiB;kDKQ;GLG;qCME;GNE;oCOE;GPE;oDQE;GRE;8DSE;GTE;cUwB;GVmC;gEWU;GXS;sCYO;GZK;cagB;Gb4B;cciB;Gd4B;EeE;GfE;cgBiB;2CCG;KDkB;iBEO;OFE;GhBI;EmBE;GnBG;EoBE;GpBe;EqBE;GrBS;EsBE;GtBwB;kBuBE;GvBkB;kBwBE;GxBO;2ByBE;GzBI;M0BI,4D1B;I0BO;K1B4B;gE2BgC;G3BK;gE4BE;G5BK;+D6BE;G7BK;+D8BE;G9BK;yD+BK;G/BG;uDgCK;GhCI;qDiCS;GjCW;mDkCK;GlCc;gCmCO;GnCQ;mDoCK;GpCI;uCqCY,QrC;qDsCK;GtC4B;sDuCiB;GvCE;mDwCK;GxCM;+DyC2B;GzCiB;sE0Ca;G1CgD;0C2CK;G3CmB;2C4CO;G5CE;gD6CE;G7CI;6C8CO;G9CuB;gD+CO;G/CG;+CgDa;GhDG;8CiDa;GjDE;EkDE;QCc,0CD;gCEyB;mBCW,yCD;wBEI,sDF;OFW;GlD2I;CDC;AwDkC;8BCI;aCC;ODc;KDC;CxDM;A2DI;C3DE"}],[{"names":["","setGlobalOptions","setContext","beginScroll","endScroll"],"mappings":"AAA;oBCmC;GDmB;cEM;GFE;EGM;GHE;EIM;GJE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","splitLayoutProps"],"mappings":"AAA;eCY;CD0D"}],[{"names":["","dismissKeyboard"],"mappings":"AAA;ACgB;CDE"}],[{"names":["","Keyboard","constructor","addListener$argument_1","addListener","removeAllListeners","dismiss","isVisible","metrics","scheduleLayoutAnimation"],"mappings":"AAA;ACyG;ECU;wCCC;KDE;wCCC;KDE;GDC;EG0B;GHM;EIO;GJE;EKK;GLE;EMK;GNE;EOK;GPE;EQM;GRW;CDC"}],[{"names":["","setEnabled","configureNext","onAnimationComplete","","create","checkConfig"],"mappings":"AAA;ACkC;CDE;AEU;8BCmB;GDO;QEc,cF;6BEW,cF;QEE,cF;CFG;AKE;CLW;EMqE;GNE"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;ICkE,4BD"}],[{"names":["","processDecelerationRate"],"mappings":"AAA;ACY;CDe"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;IC4B,4BD"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;IC0K,4BD"}],[{"names":["","ScrollViewStickyHeader","callbackRef","ref.setNextHeaderY","useMemo$argument_0","useState$argument_0","useEffect$argument_0","animatedValueListener","setTimeout$argument_0","","_onLayout"],"mappings":"AAA;qBC2C;sBCiB;yBCI;KDE;GDE;IGM;cHgB;IIK;KJY;YKM;GLI;IMiB;kCCW;ODI;KNC;YKI;WGsF;KHO;GLC;oBSE;GTU;CDkC"}],[{"names":["","React.forwardRef$argument_0"],"mappings":"AAA;ECqB;wEDQ"}],[{"names":["","SectionList","scrollToLocation","recordInteraction","flashScrollIndicators","getScrollResponder","getScrollableNode","setNativeProps","render","VirtualizedSectionList.props.getItemCount","VirtualizedSectionList.props.getItem","_captureRef"],"mappings":"AAA;eC6K;ECe;GDI;EEO;GFG;EGO;GHG;EIK;GJK;EKE;GLK;EME;GNK;EOE;sBCa,qBD;iBEE,8BF;GPG;gBUK;GVE;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","DrawerLayoutAndroid","get__positions","render","_onDrawerSlide","_onDrawerOpen","_onDrawerClose","_onDrawerStateChanged","openDrawer","closeDrawer","blur","focus","measure","measureInWindow","measureLayout","setNativeProps"],"mappings":"AAA;AC4J;ECC;GDM;EEU;GF6D;mBGI;GHQ;kBIE;GJI;mBKE;GLI;0BMI;GNM;EOK;GPE;EQK;GRE;ESyC;GTE;EUE;GVE;EWE;GXE;EYE;GZE;EaE;GbU;EcE;GdE;CDC"}],[{"names":["","mergePropsStack","propsStack.reduce$argument_0","createStackEntry","StatusBar","setHidden","setBarStyle","setNetworkActivityIndicatorVisible","setBackgroundColor","setTranslucent","pushStackEntry","popStackEntry","replaceStackEntry","componentDidMount","componentWillUnmount","componentDidUpdate","_updatePropsStack","setImmediate$argument_0","render"],"mappings":"AAA;AC8G;ICK;KDO;CDG;AGM;CH6B;AIgE;EC4C;GDQ;EEO;GFQ;EGM;GHS;EIO;GJqB;EKM;GLO;EMQ;GNK;EOO;GPM;EQQ;GRQ;ESK;GTM;EUE;GVI;EWE;GXK;6BYK;8CCG;KDqE;GZC;EcE;GdE;CJC"}],[{"names":["","NativeStatusBarManager.getConstants","NativeStatusBarManager.setColor","NativeStatusBarManager.setTranslucent","NativeStatusBarManager.setStyle","NativeStatusBarManager.setHidden"],"mappings":"AAA;ECmC;GDQ;EEE;GFE;EGE;GHE;EIO;GJE;EKE;GLE"}],[{"names":["","NativeStatusBarManager.getConstants","NativeStatusBarManager.getHeight","NativeStatusBarManager.setNetworkActivityIndicatorVisible","NativeStatusBarManager.addListener","NativeStatusBarManager.removeListeners","NativeStatusBarManager.setStyle","NativeStatusBarManager.setHidden"],"mappings":"AAA;EC2C;GDQ;EEG;GFE;EGE;GHE;EIE;GJE;EKE;GLE;EMQ;GNE;EOK;GPE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","ImageBackground","setNativeProps","_captureRef","render"],"mappings":"AAA;AC8C;ECC;GDM;gBEI;GFS;EGE;GHyC;CDC"}],[{"names":["","InputAccessoryView","render"],"mappings":"AAA;ACuF;ECC;GDkB;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","KeyboardAvoidingView","constructor","_relativeKeyboardHeight","_onKeyboardChange","_onLayout","_updateBottomIfNecessary","componentDidMount","componentWillUnmount","_subscriptions.forEach$argument_0","render"],"mappings":"AAA;AC6D;ECO;GDI;EEE;GF+B;sBGE;GHI;cIE;GJe;6BKE;GLwB;EME;GNW;EOE;gCCC;KDE;GPC;ESE;GT0E;CDC"}],[{"names":["","confirmProps","Modal","constructor","componentDidMount","ModalEventEmitter.addListener$argument_1","componentWillUnmount","componentDidUpdate","render","RCTModalHostView.props.onDismiss","_shouldSetResponder"],"mappings":"AAA;ACiK;CDY;AEE;ECW;GDM;EEE;QCK;SDI;GFG;EIE;GJI;EKE;GLI;EME;mBCkC;SDI;GNqB;EQG;GRE;CFC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","getI18nManagerConstants","module.exports.getConstants","module.exports.allowRTL","module.exports.forceRTL","module.exports.swapLeftAndRightInRTL"],"mappings":"AAA;ACkB;CDW;gBEG;GFM;YGE;GHM;YIE;GJM;yBKE;GLM"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","Pressable","useImperativeHandle$argument_1","useMemo$argument_0","onPressIn","onPressOut","usePressState"],"mappings":"AAA;AC0M;oCCmC,qBD;IE2C;MCc;ODQ;MEE;OFQ;MFC;CDkC;AME;CNG"}],[{"names":["","useAndroidRippleForView","useMemo$argument_0","onPressIn","onPressMove","onPressOut"],"mappings":"AAA;eCuC;iBCa;QCwB;SDU;QEC;SFS;QGC;SHK;GDI;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","returnsFalse","returnsTrue","Switch","handleChange","React.useLayoutEffect$argument_0"],"mappings":"AAA;qBCwF,WD;oBEC,UF;qBGiD;uBCuB;GDM;wBEE;GFiB;CHmE"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","emptyFunctionThatReturnsTrue","InternalTextInput","useLayoutEffect$argument_0","","setLocalRef","Object.assign$argument_1.clear","Object.assign$argument_1.isFocused","Object.assign$argument_1.getNativeRef","Object.assign$argument_1.setSelection","_onChange","_onChangeSync","_onSelectionChange","_onFocus","_onBlur","_onScroll","React.useMemo$argument_0","onPress","TextInput"],"mappings":"AAA;qCCi7B,UD;AEiH;kBCuD;GD+B;kBCY;aCM;ODM;GDE;IGG;UC4B;WDU;UEE;WFE;UGC;WHE;UIC;WJU;KHG;oBQS;GRiB;wBSE;GTkB;6BUE;GVa;mBWE;GXK;kBYE;GZK;oBaE;GbE;IckC;eCC;ODM;MdK;CF+I;qBkBuF;ClBkE"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;ICoC,4BD"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;ICwC,4BD"}],[{"names":["","extractSingleTouch","TouchableMixin.componentDidMount","TouchableMixin.componentWillUnmount","TouchableMixin.touchableGetInitialState","TouchableMixin.touchableHandleResponderTerminationRequest","TouchableMixin.touchableHandleStartShouldSetResponder","TouchableMixin.touchableLongPressCancelsPress","TouchableMixin.touchableHandleResponderGrant","TouchableMixin.touchableHandleResponderRelease","TouchableMixin.touchableHandleResponderTerminate","TouchableMixin.touchableHandleResponderMove","TouchableMixin.touchableHandleFocus","TouchableMixin.touchableHandleBlur","TouchableMixin._remeasureMetricsOnActivation","TouchableMixin._handleQueryLayout","TouchableMixin._handleDelay","TouchableMixin._handleLongDelay","TouchableMixin._receiveSignal","TouchableMixin._cancelLongPressDelayTimeout","TouchableMixin._isHighlight","TouchableMixin._savePressInLocation","TouchableMixin._getDistanceBetweenPoints","TouchableMixin._performSideEffectsForTransition","TouchableMixin._startHighlight","TouchableMixin._endHighlight","setTimeout$argument_0","renderDebugView"],"mappings":"AAA;2BCuB;CDsB;qBEyU;GFI;wBGO;GHI;4BIS;GJS;8CKQ;GLE;0CMO;GNE;kCOK;GPE;iCQS;GRoC;mCSO;GTG;qCUO;GVG;gCWO;GX2E;wBYY;GZE;uBaY;GbE;iCcgF;GdW;sBeI;GfwB;gBgBI;GhBG;oBiBI;GjBS;kBkBY;GlBqC;gCmBI;GnBG;gBoBE;GpBK;wBqBI;GrBO;6BsBE;GtBS;oCuBe;GvB2D;mBwBI;GxBG;iByBI;+CCM;SDE;GzBK;mB2BwB;G3BY"}],[{"names":["","BoundingDimensions","prototype.destructor","getPooledFromElement"],"mappings":"AAA;ACqB;CDG;0CEE;CFG;0CGM;CHK"}],[{"names":["","oneArgumentPooler","twoArgumentPooler","threeArgumentPooler","fourArgumentPooler","standardReleaser","addPoolingTo"],"mappings":"AAA;0BCsB;CDS;0BEI;CFS;4BGI;CHS;2BII;CJS;yBKM;CLU;qBMgB;CNoB"}],[{"names":["","Position","prototype.destructor"],"mappings":"AAA;ACsB;CDG;gCEE;CFG"}],[{"names":["","TouchableHighlight","_createPressabilityConfig","onBlur","onFocus","onPress","setTimeout$argument_0","onPressIn","onPressOut","_createExtraStyles","_showUnderlay","_hideUnderlay","_hasPressHandler","render","componentDidMount","componentDidUpdate","componentWillUnmount","React.forwardRef$argument_0"],"mappings":"AAA;AC2J;ECU;cCc;ODO;eEC;OFO;eGE;yCCM;WDE;OHK;iBKC;OLS;kBMC;ONO;GDE;EQE;GRU;ESE;GTQ;EUE;GVc;EWE;GXO;EYE;GZmF;EaE;GbE;EcE;GdE;EeE;GfM;CDC;oCiBE;CjBE"}],[{"names":["","TouchableWithoutFeedback","render","componentDidUpdate","componentWillUnmount","createPressabilityConfig"],"mappings":"AAA;ACqH;ECK;GD8D;EEE;GFE;EGE;GHE;CDC;AKE;CLwB"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","showActionSheetWithOptions","showShareActionSheetWithOptions","dismissActionSheet"],"mappings":"AAA;ECyC;GDwD;EEyB;GFuB;sBGE;GHK"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","nativeEventEmitter.addListener$argument_1","module.exports.getColorScheme","module.exports.setColorScheme","module.exports.addChangeListener"],"mappings":"AAA;ICwC;KDS;EEe;GFqB;EGE;GHW;EIK;GJE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","AppState","constructor","emitter.addListener$argument_1","NativeAppState.getCurrentAppState$argument_0","addEventListener"],"mappings":"AAA;ACqC;ECM;+CCsB;ODG;wCEM;OFO;GDE;EIQ;wDFY;SEE;0DFS;SEO;GJG;CDC"}],[{"names":["","logError"],"mappings":"AAA;iBCiB;CDO"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","module.exports.getString","module.exports.setString"],"mappings":"AAA;ECwB;GDE;EEU;GFE"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","addMenuItem","reload","onFastRefresh","emitter.addListener$argument_1"],"mappings":"AAA;ECqB,yDD;EEC,gCF;EGC,wBH;ICgB;6DGY;OHI;KDE;IEC;KFM;IGC;KHE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","Linking","constructor","addEventListener","openURL","canOpenURL","openSettings","getInitialURL","sendIntent","Promise$argument_0","_validateURL"],"mappings":"AAA;AC6B;ECC;GDE;EEQ;GFM;EGO;GHO;EIO;GJO;EKO;GLM;EMQ;GNI;EOS;yBCW,qDD;GPE;ESE;GTM;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","install","console.error","console.warn","RCTLog.setWarningHandler$argument_0","uninstall","isInstalled","ignoreLogs","ignoreAllLogs","clearAllLogs","addLog","addException","isRCTLogAdviceWarning","isWarningModuleWarning","registerWarning","registerError"],"mappings":"AAA;IC8C;wBCmB;SDE;uBEE;SFE;+BGU;OHE;KDC;IKE;KLa;IME;KNE;IOE;KPE;IQE;KRE;ISE;KTE;IUE;KVI;IWE;KXI;gCYG;GZI;iCaE;GbE;0BcE;Gd0B;wBeI;GfqD;ICG;KDE;IKE;KLE;IME;KNE;IOE;KPE;IQE;KRE;ISE;KTE;IUE;KVE;IWE;KXE"}],[{"names":["","_initializeGestureState","_updateGestureStateOnMove","create","panHandlers.onStartShouldSetResponder","panHandlers.onMoveShouldSetResponder","panHandlers.onStartShouldSetResponderCapture","panHandlers.onMoveShouldSetResponderCapture","panHandlers.onResponderGrant","panHandlers.onResponderReject","panHandlers.onResponderRelease","panHandlers.onResponderStart","panHandlers.onResponderMove","panHandlers.onResponderEnd","panHandlers.onResponderTerminate","panHandlers.onResponderTerminationRequest","getInteractionHandle","clearInteractionHandle"],"mappings":"AAA;ECoS;GDY;EE0B;GFoC;EGkC;MCsB;ODI;MEC;OFI;MGC;OHW;MIE;OJe;MKE;OLgB;MME;ONO;MOE;OPQ;MQE;ORM;MSE;OTgB;MUE;OVS;MWE;OXQ;MYE;OZI;MaI;ObE;GHE;AiBG;CjBa"}],[{"names":["","centroidDimension","currentCentroidXOfTouchesChangedAfter","currentCentroidYOfTouchesChangedAfter","previousCentroidXOfTouchesChangedAfter","previousCentroidYOfTouchesChangedAfter","currentCentroidX","currentCentroidY"],"mappings":"AAA;qBC0B;GDuD;yCEE;GFU;yCGE;GHU;0CIE;GJU;0CKE;GLU;oBME;GNO;oBOE;GPO"}],[{"names":["","PermissionsAndroid","checkPermission","check","requestPermission","request","Promise$argument_0","NativeDialogManagerAndroid.showAlert$argument_1","NativeDialogManagerAndroid.showAlert$argument_2","requestMultiple"],"mappings":"AAA;ACuF;EC2D;GDiB;EEQ;GFc;EGgB;GHgB;EIQ;2BCuB;YCU,kDD;YEC;6EFC;SDE;GJI;EQS;GRgB;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","PushNotificationIOS","presentLocalNotification","scheduleLocalNotification","cancelAllLocalNotifications","removeAllDeliveredNotifications","getDeliveredNotifications","removeDeliveredNotifications","setApplicationIconBadgeNumber","getApplicationIconBadgeNumber","cancelLocalNotifications","getScheduledLocalNotifications","addEventListener","PushNotificationEmitter.addListener$argument_1","removeEventListener","requestPermissions","abandonPermissions","checkPermissions","getInitialNotification","NativePushNotificationManagerIOS.getInitialNotification.then$argument_0","getAuthorizationStatus","constructor","Object.keys.forEach$argument_0","finish","getMessage","getSound","getCategory","getAlert","getContentAvailable","getBadgeCount","getData","getThreadID"],"mappings":"AAA;ACmG;ECuB;GDM;EEO;GFM;EGO;GHM;EIO;GJM;EKO;GLQ;EMO;GNM;EOO;GPM;EQO;GRM;ESO;GTM;EUO;GVM;EWQ;QCe;SDE;QCK;SDE;QCK;SDE;QCK;SDE;GXI;EaQ;GbiB;EcU;Gd8B;EeO;GfM;EgBQ;GhBO;EiBQ;MCM;ODE;GjBE;EmBK;GnBS;EoBQ;uCCW;ODY;GpBS;EsBQ;GtBkB;EuBK;GvBG;EwBO;GxBE;EyBO;GzBE;E0BO;G1BE;E2BO;G3BE;E4BO;G5BE;E6BO;G7BE;E8BO;G9BE;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","get","set","watchKeys","clearWatch"],"mappings":"AAA;ECa;GDG;EEE;GFE;EGE;GHG;EIE;GJE"}],[{"names":["","Share","share","NativeShareModule.share.then$argument_0","Promise$argument_0","NativeActionSheetManager.showShareActionSheetWithOptions$argument_1","NativeActionSheetManager.showShareActionSheetWithOptions$argument_2"],"mappings":"AAA;ACqC;ECqC;QCkC;UDG;yBEG;UCwB,sBD;UEC;WFY;OFE;GDI;CDY"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","show","showWithGravity","showWithGravityAndOffset"],"mappings":"AAA;QC4C;GDE;mBEE;GFM;4BGE;GHc"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","useAnimatedValue"],"mappings":"AAA;eCe;CDS"}],[{"names":["","useColorScheme","useSyncExternalStore$argument_0","","useSyncExternalStore$argument_1"],"mappings":"AAA;eCiB;ICE;aCE,qCD;KDC;IGC,iCH;CDE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","h","q","n$argument_0","m$argument_0","a$argument_0","r"],"mappings":"AAA;oCCS,+DD,iHE,mFC,uDD,YE,sCC,6BD,EF,oBF;AMC,2FN"}],[{"names":["","useWindowDimensions","useState$argument_0","useEffect$argument_0","handleChange",""],"mappings":"AAA;eCiB;+CCG,8BD;YEC;ICC;KDa;WEM;KFE;GFC;CDE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","vibrateByPattern","setTimeout$argument_0","vibrateScheduler","vibrate","cancel"],"mappings":"AAA;ACyB;aCc,iDD;CDC;AGE;IDoB,0DC;CHG;WIQ;GJwB;UKM;GLM"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","YellowBox","YellowBox.ignoreWarnings","YellowBox.install","YellowBox.uninstall","YellowBox#render"],"mappings":"AAA;cCqB;ICC;KDM;IEE;KFK;IGE;KHK;IIE;KJE;GDC;cCE;ICC;KDE;IEE;KFE;IGE;KHE;IIE;KJE;GDC"}],[{"names":["","DynamicColorIOS"],"mappings":"AAA;+BCmB;CDE"}],[{"names":["","Section","App"],"mappings":"AAA;AC+B;CDwB;AEE;CFuC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","Platform.select$argument_0.ios","Platform.select$argument_0._default"],"mappings":"AAA;OCwB;GDM;WEC;GFM"}],[{"names":["","Header"],"mappings":"AAA;eCoB;CD4B"}],[{"names":["","HermesBadge"],"mappings":"AAA;oBCmB;CDkB"}],null,[{"names":[""],"mappings":"AAA"}],[{"names":["","LinkList","links.map$argument_0","TouchableOpacity.props.onPress"],"mappings":"AAA;iBC4E;iBCI;qBCY,4BD;ODc;CDG"}],[{"names":["","openURLInBrowser"],"mappings":"AAA;ACc;CDM"}],[{"names":["","getDevServer"],"mappings":"AAA;AC2B;CDa"}],[{"names":["","Platform.select$argument_0.ios","Platform.select$argument_0._default"],"mappings":"AAA;OCwB;GDK;WEC;GFK"}]],"x_hermes_function_offsets":{"0":[0,13114,13397,13426,13519,13572,13676,13837,13931,13967,13999,14049,14109,14438,14474,14508,14542,15214,15230,15521,15551,15614,15623,16007,16064,16129,16288,16326,16377,16445,16513,16573,16622,16820,16877,16882,16910,16930,17819,17860,18150,18199,18369,18455,19106,19119,19132,19291,19389,19412,19428,19439,19455,19471,19482,19521,19546,19585,19642,19658,19691,19728,19732,19767,19883,19888,19902,19911,19942,19973,20073,20136,20151,20241,20358,20373,20483,20604,20713,20809,20823,22084,22115,22147,22174,22201,22228,22255,22282,22309,22341,22368,22400,22453,22480,22512,22539,22571,22598,22630,22657,22684,22711,22738,22765,22792,22819,22846,22873,22900,22927,22954,22986,23013,23040,23067,23094,23147,23174,23201,23233,23265,23298,23325,23352,23379,23406,23433,23465,23497,23529,23561,23593,23620,23652,23705,23732,23759,23786,23813,23840,23867,23894,23927,23959,23991,24023,24055,24082,24109,24141,24174,24201,24228,24255,24288,24320,24352,24385,24394,24418,24473,24528,24583,24638,25236,25320,25378,25462,25520,25604,25662,25699,25825,25862,25983,26067,26125,26162,26288,26325,26434,26503,26507,26536,26615,26719,26893,26982,27069,27118,27146,27291,27460,27513,27642,27681,27815,27840,28015,28050,28080,28143,28260,28323,28382,28431,28511,28560,28638,28701,28947,28996,29030,29079,29130,29202,29332,29417,29480,29565,29628,29827,29884,30005,30013,30076,30209,30225,30274,30278,30302,30350,30738,30854,30875,31010,31091,31110,31185,31205,31415,31442,31679,32002,32166,32199,32285,32354,32486,32570,32589,32628,32962,32990,33022,33129,33162,33225,33347,33396,33426,33475,34008,34057,34091,34180,34225,34692,34953,35011,35047,35098,35129,35225,35246,35278,35312,35321,35355,35391,35420,35482,35621,35945,35949,35965,36042,36084,36178,36719,36893,36979,37159,37304,37368,37372,37435,37476,37560,37629,37705,37727,37844,37987,38509,38713,38733,38852,38893,38968,39026,39160,39348,39366,39521,39678,39839,39994,40023,40163,40231,40301,40619,40640,40695,40735,40775,40815,40857,40897,40935,40973,41011,41049,41087,41125,41163,41201,41239,41277,41315,41353,41357,41395,41433,41471,41509,41547,41585,41623,41661,41699,41788,41891,42229,42273,42554,42682,42784,42821,42933,42984,43025,43040,43059,43084,43147,43179,43313,43420,43808,43924,43945,43966,44025,44040,44428,44544,44565,44953,45069,45090,45191,45318,45355,45505,45613,45654,45695,45796,45841,45882,45927,45946,46036,51897,51980,52022,52120,52192,52293,52297,52301,52514,52622,52704,52744,52757,52770,52790,52828,53101,53227,53353,53471,53606,53668,53728,53764,53889,53991,54072,54186,54254,54306,54814,54879,55249,55358,55557,55665,55854,55913,56079,56133,56226,56231,56298,56793,57103,57223,57265,57778,57812,57886,57909,57982,58053,58360,58787,58892,58997,59852,59867,59928,60095,60167,60464,60553,60606,61011,61328,61728,61778,61821,61852,61933,62100,62205,62265,62286,62347,62439,62470,62518,62529,62592,62635,62747,62773,62802,62877,63035,63116,63254,63313,63565,63736,63937,64196,64282,64303,64341,64465,64544,64663,64711,64798,64929,64979,65056,65086,65258,65342,65569,66447,66562,66646,66769,66996,67104,67522,67792,67862,67978,68002,68157,68232,68279,68370,68410,68521,68568,68651,68895,69030,69116,69439,69773,70162,70824,70851,71662,71689,72686,72723,72806,72844,72995,73042,73300,73366,73387,73480,73746,73805,74026,74055,74615,74800,74804,75095,75230,75284,75317,75358,75407,75463,75589,75725,75746,75834,76011,76044,76077,76107,76140,76218,76236,76255,76345,76349,76442,76539,76662,76790,76811,76955,77299,77343,77408,77476,77594,77639,77816,77825,77912,77965,78137,78157,78186,78352,78577,78658,78843,79177,79358,79745,79804,80019,81622,81896,82006,82027,82951,83011,83140,84080,84153,84258,84919,84991,85225,85836,85946,86316,86490,86717,89245,89643,89715,89752,90200,90301,90378,90483,90531,90963,91067,91145,91362,92092,92169,92918,93028,93189,93458,94147,95618,95730,95780,96073,96197,96576,96609,97140,98599,98637,98756,98926,98965,99067,99140,99341,99439,100189,100207,101332,101423,101677,101900,102034,102153,102198,102353,102395,102423,102516,102816,103386,103423,103485,103521,103618,103808,103888,104016,104179,104183,104307,104332,104352,104434,104508,104528,104626,104630,104661,104799,104803,104833,104837,104851,105174,105183,106869,106889,107128,107144,107188,107432,107538,107581,107628,107675,107731,107787,107911,107992,108243,108353,108400,108434,108567,108709,108842,108891,108981,109014,109044,109097,109218,109249,109274,109351,109355,109586,109669,109691,109731,109785,109807,109868,109922,110301,110402,110679,110795,113308,113492,113513,113534,113564,113621,113744,113836,114089,114202,114260,114288,114309,114330,114606,114728,114817,115087,115120,115233,115386,115390,115614,115664,115678,115698,115712,115732,115746,115766,115780,115800,115877,115940,116126,116183,116300,116314,116377,116511,116560,116605,116662,116775,116808,116947,116972,117428,117515,117525,117534,117544,117554,117581,117609,117636,117664,117742,117752,117761,117771,117781,117808,117835,117862,117889,117966,118143,118180,118568,118684,118705,119262,119295,119408,119561,119565,119595,119614,119677,119794,119857,119964,120231,120297,120494,120611,120726,120871,121305,121450,121465,121598,121819,122063,122089,122145,122329,122533,122546,122744,122775,122795,122820,122848,122876,122904,122928,122953,123341,123457,123478,123909,123939,124182,124193,124216,124425,124501,124526,124632,124672,124682,124716,124738,124812,124833,124871,125103,125185,125272,125378,125418,126031,126050,126359,126613,126731,126973,127140,127262,127519,127552,127665,127818,127822,127885,128055,128185,128245,128324,128368,128498,128604,128680,128690,128700,128710,128840,128969,129082,129092,129102,129112,129122,129205,129282,129472,129505,129648,129801,129805,129819,129886,130367,130471,130757,130790,130903,130980,131132,131203,131322,131582,131651,131700,131752,131823,131993,132111,132160,132313,132317,132367,132591,132738,132797,133028,133071,133154,133418,133528,133770,133880,133990,134064,134077,134529,134718,135166,135282,135303,135336,135369,135402,135436,135549,135656,135683,135744,135903,135931,135973,136038,136073,136144,136153,136224,136233,136411,136415,136440,136470,136504,136657,136712,136816,137016,137054,137271,137503,137569,137695,137757,137838,137882,137926,138041,138344,138423,138443,138464,138677,138782,139064,139083,139191,139224,139293,139405,139778,139805,139832,139895,139955,139974,140034,140088,140149,140170,140230,140377,140411,140484,140545,140706,140715,140730,140766,140807,140859,140917,141033,141910,141961,142098,142152,142156,142160,142164,142200,142239,142266,142327,142542,142577,142612,142641,142674,142734,142770,142804,142845,143338,143733,143825,143864,143930,144051,144185,144201,144223,144238,144243,144310,144416,144428,144433,144560,144596,144601,144607,144695,144781,144973,145030,145454,145538,145774,145921,146026,146159,146233,146693,146745,146783,146816,146849,146882,146915,146943,146975,147447,147487,147546,147940,148003,148091,148127,148215,148295,148364,148433,148588,148614,148769,148795,148923,148949,149008,149161,149224,149358,149479,149498,149517,149579,149598,149780,149785,149952,149988,149997,150059,150095,150104,150149,150537,150653,150674,150757,151008,151080,151104,151156,151316,151350,151359,151787,151814,151841,151874,151907,151940,151973,152000,152027,152054,152081,152114,152147,152180,152213,152720,152753,152867,153020,153024,153087,153138,153772,154020,154134,154145,154399,154521,154987,155089,155152,155348,155442,155576,155648,155845,155892,155911,156250,156305,156334,156373,156468,156482,156496,156689,157432,157480,157528,157576,157624,157672,157720,157882,157960,157993,158173,158271,158291,158362,158544,158654,158717,158837,159039,159077,159145,159186,159387,159418,159602,159762,159846,160008,160121,160171,160225,160279,160342,160828,160944,160965,161001,161022,161047,161072,161101,161130,161155,161193,161365,161482,161536,161552,161737,161797,161812,161837,161889,161934,161988,162021,163057,163110,163262,163461,163502,163537,163575,163607,163657,163880,163912,164026,164090,164115,164142,164169,164197,164222,164284,164325,164400,164645,164707,164822,164846,165077,165106,165131,165155,165199,165203,165208,165213,165218,165243,165307,165377,165420,165462,165490,165515,165558,165583,165608,165633,165703,165731,165767,165771,166083,166292,166794,166932,167019,167023,167027,167031,167035,167039,167043,167047,167641,167757,167778,167810,168261,168353,168528,168707,168737,168825,168839,168854,168864,168874,168884,168894,168917,168927,168931,169111,169138,169196,169397,169690,169710,169741,169979,170089,170143,170173,170668,170760,170903,171193,171595,171628,171741,171894,171898,171958,171977,172114,172193,172361,172413,172443,172473,172693,172822,173028,173115,173177,173311,173401,173429,173463,173650,173688,173805,173857,173898,173948,174004,174047,174075,174318,174352,174591,174979,175095,175116,175194,175317,176411,176446,176572,176606,176677,176712,176721,176862,176887,176922,176955,177030,177074,177123,177152,177180,177238,177296,177422,177528,177638,178295,178536,178729,178893,178924,178962,179007,179807,179886,180033,180145,180193,180277,180511,180562,181304,181325,181520,181574,181601,181649,181676,181724,181751,181808,181862,181891,181944,182010,182080,182111,182157,182194,182237,182325,182369,182393,182437,182461,182505,182544,182595,182705,182756,182872,182921,183512,183545,183658,183811,183815,184053,184534,184544,184723,184793,185087,185171,185310,185349,185363,185505,185691,185799,185942,186141,186204,186369,186418,186507,186895,187011,187032,187086,187166,187235,187268,187411,187564,187568,187696,187810,187876,187897,188185,188218,188331,188484,188488,188763,188852,188880,189021,189133,189246,189297,189409,189460,189511,189658,189709,189760,189830,189840,189850,189860,190248,190364,190385,190725,190755,190999,191107,191139,191179,191213,191247,191281,191315,191349,191383,191415,191499,191591,192001,192332,192366,192400,192434,192447,192481,192515,192549,192583,192617,192651,192706,192719,192809,192843,192954,192958,193508,193541,193684,193837,193841,193928,194000,194089,194194,194283,194379,194473,194539,194558,194586,194631,194679,194839,194925,194956,195382,195586,195609,196017,196207,196238,196312,196316,196378,196766,196882,196903,196980,196986,197205,197232,197259,197286,197313,197340,197367,197399,197426,197453,197480,197552,197691,198079,198195,198216,198264,198455,198843,198959,198980,199072,199249,199431,199445,199497,199564,199568,199594,199598,199602,199606,199640,199704,199787,200175,200291,200312,200967,200978,200992,201006,201030,201153,201240,201421,201447,201479,201506,201533,201563,201579,201635,201649,201903,201912,202171,202180,202221,202253,202262,202266,202372,202525,202571,202671,202711,202801,202810,202814,203127,203161,203192,203347,203378,203513,203549,203585,203701,203726,204029,204417,204533,204554,204942,205058,205079,205108,205139,205145,205214,205249,205268,205277,205316,205348,205364,205645,205678,205791,205944,205948,206011,206061,206449,206565,206586,206898,207014,207035,207332,207874,208312,208428,208449,208475,208505,209545,209612,209666,209670,209724,210048,210111,210155,210214,210230,210301,211001,211006,211079,211121,211243,211312,211381,211385,211389,211393,211397,211485,211518,211556,211588,211625,211643,211677,211682,211723,212130,212197,212228,212238,212260,212310,212351,212411,212432,212464,212492,212496,212524,212555,212579,212615,212647,212679,212710,212746,212773,212800,212836,212860,213517,213633,213654,213687,213800,213953,213957,214094,214248,214252,214285,214772,214792,215299,215415,215436,216234,216258,216379,216422,216984,217100,217121,217418,217427,217743,217859,217880,218177,218220,218267,218578,218692,218696,218759,218815,218885,219347,219492,219637,219860,220137,220646,220666,220857,220872,220909,220981,221126,221192,221295,221423,222568,222699,222902,223183,223272,223411,223500,223915,223956,223998,224061,224105,227341,227433,227499,227519,227524,227544,227603,227646,227827,228200,228263,228352,228386,228455,228475,228790,228824,228893,228935,229038,229109,229137,229196,229308,229403,229482,229580,229620,229634,229785,230192,230308,230329,230365,230410,230432,230455,230534,230700,230846,231101,231171,231188,231229,231294,231422,231458,231543,231625,231681,231812,231924,232021,232035,232060,232198,232353,232385,232437,232508,232551,232598,232602,232995,233104,233135,233184,233418,233474,233498,233905,234021,234042,234078,234192,234343,234514,234643,234689,234853,234984,235094,235341,235474,235694,235886,235971,236006,236037,236073,236118,236208,236992,237134,237156,237190,237233,237360,237512,237638,237809,238304,238348,238447,238565,238623,238695,238729,238758,238882,238912,239057,239287,239339,240250,240423,240465,240669,240674,241070,241186,241207,241212,241307,241377,241760,241876,241897,241953,241963,242111,242180,242222,242292,242324,242377,242765,242881,242902,243143,243169,243196,243223,243250,243277,243304,243331,243358,243385,243412,243444,243471,243503,243535,243583,243678,243687,243885,243894,243936,243964,243992,243996,244000,244114,244200,244239,244278,244315,245432,245548,245569,245578,245613,245627,246103,246123,246128,246207,246425,246535,246805,246838,246951,247104,247108,247171,247269,247408,247583,247849,247883,247925,247959,247993,248027,248042,248072,249085,249163,249185,249377,249421,249539,249665,250138,250535,250550,250559,250593,250597,250708,250746,250773,250794,250812,250838,250858,250882,250905,250935,256835,256918,256960,257058,257130,257231,257235,257239,257452,257560,257642,257682,257695,257708,257728,257766,258039,258165,258291,258409,258544,258606,258666,258702,258827,258929,259010,259124,259192,259244,259752,259817,260187,260296,260495,260603,260792,260851,261017,261071,261164,261191,261206,261267,261434,261512,261721,261788,262283,262593,262713,262755,263268,263302,263376,263447,263754,264181,264286,264391,265246,265269,265342,265431,265484,265889,266206,266606,266656,266699,266730,266811,266978,267083,267143,267164,267208,267315,267413,267437,267468,267516,267527,267590,267633,267745,267771,267800,267875,268033,268114,268252,268311,268563,268734,268935,269194,269274,269360,269381,269419,269543,269622,269741,269789,269874,270005,270055,270132,270162,270331,270415,270642,271520,271635,271719,271842,272069,272177,272594,272864,272934,273050,273074,273229,273304,273351,273442,273482,273593,273640,273723,273967,274102,274188,274511,274845,275234,275896,275923,276734,276761,277758,277795,277878,277916,278067,278114,278372,278438,278459,278552,278818,278877,279098,279127,279687,279872,279876,280167,280302,280356,280389,280430,280479,280534,280660,280796,280817,280905,281082,281115,281148,281178,281211,281289,281307,281326,281416,281420,281513,281610,281733,281861,281882,282025,282367,282411,282476,282544,282588,282633,282810,282819,282906,282959,283131,283151,283180,283346,283571,283652,283837,284171,284352,284739,284798,285013,286615,286889,286999,287020,287944,288004,288133,289072,289145,289250,289911,289983,290217,290828,291002,291229,293932,294330,294402,294439,294887,294988,295065,295170,295217,295503,295713,296370,296418,297203,297307,297385,297783,299434,299765,300457,300567,300688,300957,301646,303117,303229,303279,303572,303696,304075,304108,304639,306098,306136,306255,306425,306464,306566,306639,306840,306938,307688,307706,308831,308922,309176,309399,309532,309651,309696,309851,309893,309921,310014,310314,310884,310921,310983,311019,311116,311303,311383,311511,311874,311878,312002,312027,312085,312113,312133,312215,312289,312309,312407,312411,312442,312580,312584,312614,312618,312632,312955,312964,314650,314670,314909,314936,315225,315257,315316,315426,315506,315541,315588,315635,315699,315764,315883,315983,316017,316150,316292,316425,316474,316564,316597,316627,316680,316801,316832,316857,316934,316938,317169,317252,317274,317314,317368,317390,317451,317505,317707,317711,317794,317829,320340,320524,320545,320566,320596,320631,320688,320811,320903,321122,321235,321291,321961,322077,322098,322561,322692,322854,322961,323094,323370,323442,323488,323527,323580,323603,323714,324699,324815,324836,324869,324983,325136,325140,325231,325282,326127,326519,326635,326656,326953,327019,328579,328673,328718,328758,328865,328911,328957,329003,329049,329479,329595,329616,329620,329624,329628,329734,329922,329966,329992,330013,330856,330972,330993,331082,331163,331187,331211,331246,331270,331726,331856,331939,331954,332037,332075,332422,332459,332496,332553,332782,332816,332845,333122,333152,333182,333236,333284,333434,333469,333641,333676,333878,333898,334080,334100,334332,334368,334745,334836,335049,335069,335167,335551,335604,335643,335688,335733,335778,335823,335868,335882,335953,336018,336056,336444,336560,336581,336731,336837,336878,336902,336956,337019,337038,337330,337339,337396,337437,337504,337527,337560,337854,337896,337938,338074,338100,338127,338154,338181,338208,338235,338262,338330,338606,338734,339879,340010,340213,340494,340583,340722,340811,341226,341267,341309,341372,341416,344652,344766,344800,344858,344862,344866,345006,345083,345092,345109,345785,347865,348012,348055,348100,348274,348395,348429,348475,349139,349282,349988,350965,351105,351705,352017,352425,352503,353971,355056,355751,356575,356691,356712,356745,356858,357011,357015,357221,357403,357661,357766,357816,357910,358044,358217,359425,359463,359490,359510,359530,359623,359675,359725,359729,360483,360599,360620,360653,360766,360919,360923,361175,361407,361647,361738,361829,361916,361979,362089,362140,362171,362233,363385,363535,363562,363639,363921,363953,363985,364017,364049,364081,364113,364973,365052,365113,365175,365215,365255,365295,365335,365375,365418,365467,365539,365986,366092,366260,366289,366310,366331,366388,366408,366514,366682,366711,366732,366753,366810,366830,366936,367016,367045,367066,367087,367144,367164,367232,367315,367437,367483,367517,367548,367582,367586,367702,367777,367829,367941,367969,368016,368044,368083,368117,368121,368188,368231,368285,368431,368538,368684,368711,368744,368778,368797,368876,369213,369246,369360,369513,369517,369677,369854,369913,370044,370279,370392,371402,371473,371521,371565,371585,371605,371625,371647,371669,371691,371713,371737,371826,371923,372020,372039,372058,372088,372197,372288,372319,372341,372448,372526,372581,372691,373022,373226,373252,373310,373381,373435,373489,373547,373605,373740,373794,373852,373910,373964,374018,374076,374134,374204,374258,374319,374380,374460,374848,374964,374985,375373,375489,375510,375674,375826,375858,375862,375912,375946,375980,376241,376954,377070,377091,377124,377238,377391,377395,377578,378382,378519,378740,378791,378831,379716,379848,380587,380703,380724,380757,380871,381024,381028,381250,381334,381438,381805,382166,382385,382562,382656,382723,382790,382879,382968,383087,383213,383339,383383,383467,383597,383695,384119,384152,384266,384419,384423,384493,384563,384578,384625,385038,385184,385309,385339,385359,385478,385519,385571,385642,385713,385823,385898,385922,385962,386092,386120,386195,386235,386286,386378,386412,386752,386825,387112,387134,387156,387239,387363,387392,387432,387514,387528,387566,387775,387864,387894,387925,387948,388006,388063,388095,388127,388153,388416,388524,388651,388701,388735,388795,389308,389341,389455,389608,389612,389760,389869,390076,390468,390622,390665,390681,390761,390777,390863,390882,390923,391021,391102,391166,391395,391459,391558,391644,391714,391749,391772,391854,392035,392103,392346,392363,392380,392385,392453,392462,392475,392491,392523,392577,392616,392658,392727,392834,392888,392923,393135,393184,393189,393205,393235,393251,393333,393532,393562,393588,393600,393665,393744,393854,393945,394180,394406,394490,394820,394853,394967,395120,395124,395307,395363,395538,395666,395839,395850,395996,396204,396724,396764,396768,396847,396851,396865,396869,396873,396879,396960,397027,397077,397110,397149,397279,397335,397356,397413,397483,397648,397682,397696,397707,397723,397804,397837,397863,397906,398124,398146,398169,398199,398312,398415,398528,398908,398941,399055,399208,399212,399276,399436,399653,399810,399915,400086,400356,400488,401034,401150,401171,401205,401420,401493,401602,401686,401926,402123,402135,402183,402218,402402,402570,402672,402717,402846,402877,402901,402920,402996,403045,403102,403305,403378,403441,403511,403913,403946,404060,404213,404217,404538,404675,404809,404887,404961,405118,405135,405306,405354,405481,405608,405660,405771,406239,406272,406386,406539,406543,406717,406822,407074,407183,407312,407396,407520,407542,407616,407746,407880,408021,408411,408444,408558,408711,408715,408944,408999,409096,409168,409191,409205,409228,409243,409277,409349,409442,409514,409588,409735,409770,410092,410132,410405,410589,410820,410868,410906,410960,411112,411291,411385,411410,411435,411477,411493,411561,411620,411652,411781,411960,411991,412355,412388,412502,412655,412659,413072,413352,413404,413456,413493,413530,413573,413632,413691,413795,413832,413911,413956,413981,414022,414118,414214,414314,414375,414419,414481,414841,414874,414988,415141,415145,415351,415503,415603,415640,415680,415717,415813,415873,416203,416236,416350,416503,416507,416713,416812,416897,416937,417040,417062,417143,417197,417587,417620,417734,417887,417891,418097,418314,418414,418506,418546,418583,418679,418739,419069,419102,419216,419369,419373,419579,419643,419728,419777,419817,419839,419920,419965,420325,420358,420472,420625,420629,420835,420987,421087,421124,421164,421201,421297,421357,421717,421750,421864,422017,422021,422227,422379,422479,422516,422556,422593,422689,422749,423079,423112,423226,423379,423383,423589,423716,423825,423845,423899,423981,424093,424251,424898,424914,424953,425035,425039,425043,425047,425051,425055,425117,425170,425184,425253,425310,425379,425436,425445,425464,425483,425492,425511,425556,426023,426139,426160,426256,426630,426663,426776,426929,426933,426949,426966,427002,427415,427719,427739,427840,427941,428135,428174,428257,428357,428564,428687,428734,428767,428800,428833,428866,428895,428924,428955,428986,429017,429050,429266,429476,429592,429730,429752,429921,429952,429983,430257,430321,430372,430453,430511,430625,430648,430776,430803,430830,430863,430890,430917,431048,431273,431389,432183,432271,433501,433617,433638,433671,433784,433937,433941,433957,433974,433991,434008,434025,434044,434061,434078,434136,435129,436171,436185,436251,436316,436351,436382,436436,436455,436475,436888,437233,437315,437451,437497,437560,437602,437951,438028,438700,438725,438750,438854,438879,438902,439031,439056,439131,439156,439254,439279,439335,439478,439547,439665,439822,439953,440318,440379,440638,441133,441240,441382,441459,441476,441499,441535,441580,441648,441696,441729,441761,441771,442005,442435,442511,442526,442581,442687,442710,443017,443445,443472,443503,443563,445668,445729,445740,445834,445857,445902,445927,445961,445978,446105,446348,446365,446391,446413,446952,447092,447138,447184,447541,447919,447987,448066,448174,448219,448606,448760,448853,449193,449308,449440,449499,449593,449654,449747,449824,449866,449895,449919,449939,449962,449982,450013,450173,450348,450445,450592,450729,450811,450880,450961,450976,451071,451173,451409,451566,451621,451793,451812,452750,452761,452821,452892,452924,452940,452954,452968,453589,453705,453726,453759,453872,454025,454029,454143,454210,454380,454449,454565,454611,454625,454671,454685,454750,454828,454898,454929,455115,455277,455308,455692,456018,456041,456105,456122,456137,456553,456582,456626,457318,457434,457455,457488,457601,457754,457758,457946,458184,458253,458322,458395,458473,458504,458551,458583,458731,459299,459354,459788,459904,459925,459993,460143,460213,460345,460396,460616,460768,460886,460896,461414,461424,461509,461612,461807,462531,462647,462668,462701,462814,462967,462971,463716,463762,463795,463846,463897,464083,464289,464588,464640,464856,465032,465048,465531,465571,465611,465663,465715,465735,465983,465992,466420,466453,466462,466579,466968,467105,467529,467645,467666,468581,468697,468718,468737,468826,468856,468893,468986,469016,469053,469076,469126,469156,469185,469237,469246,469298,470338,470462,470646,470704,470809,470825,470876,470952,470999,471046,471431,471547,471568,471984,472100,472121,473033,473149,473170,473179,473650,473766,473787,473796,474184,474300,474321,474441,474792,475020,475072,475091,475835,475951,475972,476199,476499,476604,476924,477040,477061,477358,477391,477504,477657,477661,477798,477980,478050,478070,478093,478230,478365,478825,478941,478962,479447,479563,479584,480924,481040,481061,481358,481391,481504,481657,481661,481716,481732,481833,481910,482185,482987,483015,483072,483129,483150,483171,483345,483438,483510,483741,483935,484061,484227,484242,484298,484403,484473,484478,484621,484681,484737,484797,484853,484928,485022,485155,485276,485347,485423,485427,485672,485690,485730,485839,486038,486131,486176,486228,486428,486484,486540,486588,486915,487014,487147,487173,487196,487343,487387,487591,489185,489492,489523,489559,489662,489792,489834,489872,489910,490298,490414,490435,490487,490830,490864,490920,491182,491357,491505,491525,491544,491571,491597,491617,491633,491657,491767,492170,492185,492488,492547,492551,492555,492559,492617,492643,493031,493147,493168,493267,493883,493999,494020,494029,494087,494178,494612,494728,494749,494758,495166,495282,495303,495760,495876,495897,496938,497054,497075,497084,497687,497803,497824,498626,498702,498721,498891,498990,499029,499189,499226,499672,499747,499889,500356,500472,500493,500589,501230,501346,501367,501400,501514,501667,501671,501900,502056,502076,502115,502160,502205,502252,502299,502348,502525,502535,502547,502971,503087,503108,503532,503648,503669,504289,504405,504426,504723,504756,504869,505022,505026,505329,505572,505661,505705,505749,505819,506570,506624,506678,506722,506766,506813,506861,506917,506965,506999,507872,507988,508009,508042,508155,508308,508312,508360,508411,508582,508931,509069,509104,509134,509176,509180,509315,509445,509542,509751,509848,509900,509979,510062,510116,510726,511173,511289,511310,511346,511375,511400,511425,511450,511916,512032,512053,512089,512114,512139,512163,512188,512217,512246,512706,512822,512843,513537,513653,513674,513707,513821,513974,513978,514092,514260,514280,514310,514601,515264,515380,515401,515434,515547,515700,515704,515795,515845,516066,516189,517013,517129,517150,517183,517296,517449,517453,517617,517787,517817,517854,517863,518016,518045,518054,518319,518356,518385,518394,518653,518804,518833,518849,519519,520079,520112,520225,520378,520382,520565,520634,520638,520668,520672,521234,521278,521282,521342,521730,521846,521867,521977,522169,522178,522224,522270,522316,522704,522820,522841,523438,523554,523575,524698,524712,524879,524941,525003,525078,525582,525698,525719,525861,526102,526246,526354,526420,526871,526987,527008,527118,527460,527576,527597,527894,527898,527902,528681,528766,528929,529397,529513,529534,530019,530135,530156,531362,531478,531499,533371,533701,533763,533846,533935,533995,534035,534049,534109,534233,534357,534450,534518,534586,534624,534708,534765,534769,535226,535756,535872,535893,535902,536580,537154,537270,537291,537300,538862,538978,538999,539076,539105,539201,539225,539243,539260,539264,539617,539658,539699,540229,540266,540303,540393,540630,540672,540757,541129,541173,541212,541310,541363,541837,541877,541993,542019,542036,542149,542174,542195,542230,542348,542422,542503,542602,542710,542793,542858,542956,542981,543002,543730,543846,543867,543900,544013,544166,544170,544445,544669,544914,545001,545088,545260,545281,545385,545462,545552,545644,545771,545843,546893,546907,546945,547013,547090,547759,547875,547896,547929,548042,548195,548199,548419,548556,548742,549469,549514,549541,549577,549613,549748,550151,550384,550471,550859,550975,550996,551309,551399,551495,551615,551642,552030,552146,552167,552399,552459,552724,552756,552829,553027,553052,553112,553132,553304,553692,553808,553829,553904,553928,553958,554346,554462,554483,554535,554668,554672,554676,554680,555068,555184,555205,555607,555640,555753,555906,555910,556139,556232,556253,556370,556487,556586,556685,556792,556836,556895,557283,557399,557420,557808,557924,557945,558140,558144,558148,558152,558156,558160,558164,558168,558172,558283,558369,558438,558736,558937,558983,559029,559143,559238,559468,559509,559568,559631,559726,559789,559848,559894,559909,560011,560363,560395,560427,560459,560491,560522,560553,560849,561009,561060,561136,561190,561227,561256,561265,561349,561386,561415,561424,561596,561679,561727,561773,561827,562215,562331,562352,562717,563357,563562,563700,563802,563812,563822,563832,563842,563852,563862,563872,563882,563936,563990,564040,564090,564144,564198,564252,564306,564360,564414,564663,564709,564755,564780,564799,564911,565034,565084,565164,565231,565272,565326,565714,565830,565851,565906,565932,565958,565988,566014,566190,566253,566284,566632,566665,567053,567169,567190,567344,567378,567416,567460,567848,567964,567985,568091,568175,568273,568324,568363,568381,568405,568435,568581,568640,568788,568854,568916,568962,569011,569147,569242,569270,569352,569454,569474,569557,569661,569788,569831,570017,570043,570431,570547,570568,570642,570675,570818,570971,570975,571154,571216,571220,571224,571228,571232,571290,571324,571532,571913,572695,573146,573160,573174,573188,573202,573216,573230,573291,573542,573729,573916,574257,574580,574884,575169,575234,575264,576106,576222,576243,576356,576778,576806,576840,576938,577004,577137,577388,577510,577632]},"x_google_ignoreList":[0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,420,421,422,423,424,425,426,427,428,429,430]} diff --git a/features/react-native-android/fixtures/rn0_69/android/app/build/intermediates/merged_manifests/release/AndroidManifest.xml b/features/react-native-android/fixtures/rn0_69/android/app/build/intermediates/merged_manifests/release/AndroidManifest.xml deleted file mode 100644 index 7db3d59c..00000000 --- a/features/react-native-android/fixtures/rn0_69/android/app/build/intermediates/merged_manifests/release/AndroidManifest.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/features/react-native-android/fixtures/rn0_70/android/app/build/ASSETS/createBundleReleaseJsAndAssets/index.android.bundle b/features/react-native-android/fixtures/rn0_70/android/app/build/ASSETS/createBundleReleaseJsAndAssets/index.android.bundle deleted file mode 100644 index e7461a3a..00000000 Binary files a/features/react-native-android/fixtures/rn0_70/android/app/build/ASSETS/createBundleReleaseJsAndAssets/index.android.bundle and /dev/null differ diff --git a/features/react-native-android/fixtures/rn0_70/android/app/build/generated/sourcemaps/react/release/index.android.bundle.map b/features/react-native-android/fixtures/rn0_70/android/app/build/generated/sourcemaps/react/release/index.android.bundle.map deleted file mode 100644 index 97e7b312..00000000 --- a/features/react-native-android/fixtures/rn0_70/android/app/build/generated/sourcemaps/react/release/index.android.bundle.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["/rn0_72/node_modules/metro-runtime/src/polyfills/require.js","/rn0_72/node_modules/@react-native/js-polyfills/console.js","/rn0_72/node_modules/@react-native/js-polyfills/error-guard.js","/rn0_72/node_modules/@react-native/js-polyfills/Object.es8.js","/rn0_72/index.js","/rn0_72/node_modules/react-native/index.js","/rn0_72/node_modules/react-native/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js","/rn0_72/node_modules/@babel/runtime/helpers/interopRequireDefault.js","/rn0_72/node_modules/react-native/Libraries/EventEmitter/RCTDeviceEventEmitter.js","/rn0_72/node_modules/react-native/Libraries/vendor/emitter/EventEmitter.js","/rn0_72/node_modules/@babel/runtime/helpers/toConsumableArray.js","/rn0_72/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","/rn0_72/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","/rn0_72/node_modules/@babel/runtime/helpers/iterableToArray.js","/rn0_72/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","/rn0_72/node_modules/@babel/runtime/helpers/nonIterableSpread.js","/rn0_72/node_modules/@babel/runtime/helpers/classCallCheck.js","/rn0_72/node_modules/@babel/runtime/helpers/createClass.js","/rn0_72/node_modules/@babel/runtime/helpers/toPropertyKey.js","/rn0_72/node_modules/@babel/runtime/helpers/toPrimitive.js","/rn0_72/node_modules/@babel/runtime/helpers/typeof.js","/rn0_72/node_modules/react-native/Libraries/Utilities/Platform.android.js","/rn0_72/node_modules/react-native/Libraries/Utilities/NativePlatformConstantsAndroid.js","/rn0_72/node_modules/react-native/Libraries/TurboModule/TurboModuleRegistry.js","/rn0_72/node_modules/invariant/browser.js","/rn0_72/node_modules/react-native/Libraries/BatchedBridge/NativeModules.js","/rn0_72/node_modules/@babel/runtime/helpers/slicedToArray.js","/rn0_72/node_modules/@babel/runtime/helpers/arrayWithHoles.js","/rn0_72/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","/rn0_72/node_modules/@babel/runtime/helpers/nonIterableRest.js","/rn0_72/node_modules/react-native/Libraries/BatchedBridge/BatchedBridge.js","/rn0_72/node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js","/rn0_72/node_modules/react-native/Libraries/Performance/Systrace.js","/rn0_72/node_modules/react-native/Libraries/vendor/core/ErrorUtils.js","/rn0_72/node_modules/react-native/Libraries/Utilities/stringifySafe.js","/rn0_72/node_modules/react-native/Libraries/Utilities/defineLazyObjectProperty.js","/rn0_72/node_modules/react-native/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/UIManager.js","/rn0_72/node_modules/nullthrows/nullthrows.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/BridgelessUIManager.js","/rn0_72/node_modules/react-native/Libraries/NativeComponent/NativeComponentRegistryUnstable.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/PaperUIManager.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/NativeUIManager.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/UIManagerProperties.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/FabricUIManager.js","/rn0_72/node_modules/react-native/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js","/rn0_72/node_modules/react-native/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/RendererProxy.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/RendererImplementation.js","/rn0_72/node_modules/react-native/Libraries/Renderer/shims/ReactFabric.js","/rn0_72/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-prod.js","/rn0_72/node_modules/react-native/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js","/rn0_72/node_modules/react-native/Libraries/Core/InitializeCore.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpGlobals.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpDOM.js","/rn0_72/node_modules/react-native/Libraries/DOM/Geometry/DOMRect.js","/rn0_72/node_modules/@babel/runtime/helpers/inherits.js","/rn0_72/node_modules/@babel/runtime/helpers/setPrototypeOf.js","/rn0_72/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","/rn0_72/node_modules/@babel/runtime/helpers/assertThisInitialized.js","/rn0_72/node_modules/@babel/runtime/helpers/getPrototypeOf.js","/rn0_72/node_modules/react-native/Libraries/DOM/Geometry/DOMRectReadOnly.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpPerformance.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/NativePerformance.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/Performance.js","/rn0_72/node_modules/react-native/Libraries/Utilities/warnOnce.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/EventCounts.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/NativePerformanceObserver.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/PerformanceObserver.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/RawPerformanceEntry.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/PerformanceEventTiming.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/PerformanceEntry.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/MemoryInfo.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/ReactNativeStartupTiming.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpErrorHandling.js","/rn0_72/node_modules/react-native/Libraries/Core/ExceptionsManager.js","/rn0_72/node_modules/@babel/runtime/helpers/wrapNativeSuper.js","/rn0_72/node_modules/@babel/runtime/helpers/isNativeFunction.js","/rn0_72/node_modules/@babel/runtime/helpers/construct.js","/rn0_72/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","/rn0_72/node_modules/react-native/Libraries/Core/Devtools/parseErrorStack.js","/rn0_72/node_modules/stacktrace-parser/dist/stack-trace-parser.cjs.js","/rn0_72/node_modules/react-native/Libraries/Core/Devtools/parseHermesStack.js","/rn0_72/node_modules/react-native/Libraries/Core/NativeExceptionsManager.js","/rn0_72/node_modules/react-native/Libraries/Core/polyfillPromise.js","/rn0_72/node_modules/react-native/Libraries/Utilities/PolyfillFunctions.js","/rn0_72/node_modules/react-native/Libraries/Promise.js","/rn0_72/node_modules/promise/setimmediate/finally.js","/rn0_72/node_modules/promise/setimmediate/core.js","/rn0_72/node_modules/promise/setimmediate/es6-extensions.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpRegeneratorRuntime.js","/rn0_72/node_modules/react-native/Libraries/Utilities/FeatureDetection.js","/rn0_72/node_modules/regenerator-runtime/runtime.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpTimers.js","/rn0_72/node_modules/react-native/Libraries/Core/Timers/JSTimers.js","/rn0_72/node_modules/react-native/Libraries/Core/Timers/NativeTiming.js","/rn0_72/node_modules/react-native/Libraries/Core/Timers/immediateShim.js","/rn0_72/node_modules/react-native/Libraries/Core/Timers/queueMicrotask.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpXHR.js","/rn0_72/node_modules/react-native/Libraries/Network/XMLHttpRequest.js","/rn0_72/node_modules/@babel/runtime/helpers/get.js","/rn0_72/node_modules/@babel/runtime/helpers/superPropBase.js","/rn0_72/node_modules/react-native/Libraries/Blob/BlobManager.js","/rn0_72/node_modules/react-native/Libraries/Blob/NativeBlobModule.js","/rn0_72/node_modules/react-native/Libraries/Blob/Blob.js","/rn0_72/node_modules/react-native/Libraries/Blob/BlobRegistry.js","/rn0_72/node_modules/event-target-shim/dist/event-target-shim.js","/rn0_72/node_modules/react-native/Libraries/Utilities/GlobalPerformanceLogger.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/ReactNativeFeatureFlags.js","/rn0_72/node_modules/react-native/Libraries/Utilities/createPerformanceLogger.js","/rn0_72/node_modules/react-native/Libraries/Utilities/infoLog.js","/rn0_72/node_modules/base64-js/index.js","/rn0_72/node_modules/react-native/Libraries/Network/RCTNetworking.android.js","/rn0_72/node_modules/react-native/Libraries/EventEmitter/NativeEventEmitter.js","/rn0_72/node_modules/react-native/Libraries/Network/convertRequestBody.js","/rn0_72/node_modules/react-native/Libraries/Network/FormData.js","/rn0_72/node_modules/react-native/Libraries/Utilities/binaryToBase64.js","/rn0_72/node_modules/react-native/Libraries/Network/NativeNetworkingAndroid.js","/rn0_72/node_modules/react-native/Libraries/Network/fetch.js","/rn0_72/node_modules/whatwg-fetch/dist/fetch.umd.js","/rn0_72/node_modules/react-native/Libraries/WebSocket/WebSocket.js","/rn0_72/node_modules/@babel/runtime/helpers/objectWithoutProperties.js","/rn0_72/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","/rn0_72/node_modules/react-native/Libraries/WebSocket/NativeWebSocketModule.js","/rn0_72/node_modules/react-native/Libraries/WebSocket/WebSocketEvent.js","/rn0_72/node_modules/react-native/Libraries/Blob/File.js","/rn0_72/node_modules/react-native/Libraries/Blob/FileReader.js","/rn0_72/node_modules/react-native/Libraries/Blob/NativeFileReaderModule.js","/rn0_72/node_modules/react-native/Libraries/Blob/URL.js","/rn0_72/node_modules/abort-controller/dist/abort-controller.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpAlert.js","/rn0_72/node_modules/react-native/Libraries/Alert/Alert.js","/rn0_72/node_modules/react-native/Libraries/Alert/RCTAlertManager.android.js","/rn0_72/node_modules/react-native/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpNavigator.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpBatchedBridge.js","/rn0_72/node_modules/react-native/Libraries/HeapCapture/HeapCapture.js","/rn0_72/node_modules/react-native/Libraries/HeapCapture/NativeJSCHeapCapture.js","/rn0_72/node_modules/react-native/Libraries/Performance/SamplingProfiler.js","/rn0_72/node_modules/react-native/Libraries/Performance/NativeJSCSamplingProfiler.js","/rn0_72/node_modules/react-native/Libraries/Utilities/RCTLog.js","/rn0_72/node_modules/react-native/Libraries/EventEmitter/RCTNativeAppEventEmitter.js","/rn0_72/node_modules/react-native/Libraries/Utilities/HMRClientProdShim.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpSegmentFetcher.js","/rn0_72/node_modules/react-native/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/AppRegistry.js","/rn0_72/node_modules/react-native/Libraries/BugReporting/BugReporting.js","/rn0_72/node_modules/react-native/Libraries/NativeModules/specs/NativeRedBox.js","/rn0_72/node_modules/react-native/Libraries/BugReporting/NativeBugReporting.js","/rn0_72/node_modules/react-native/Libraries/BugReporting/dumpReactTree.js","/rn0_72/node_modules/react-native/Libraries/Utilities/SceneTracker.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/HeadlessJsTaskError.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/renderApplication.js","/rn0_72/node_modules/react-native/Libraries/Utilities/PerformanceLoggerContext.js","/rn0_72/node_modules/react/index.js","/rn0_72/node_modules/react/cjs/react.production.min.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/AppContainer.js","/rn0_72/node_modules/react-native/Libraries/Components/View/View.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/flattenStyle.js","/rn0_72/node_modules/react-native/Libraries/Text/TextAncestor.js","/rn0_72/node_modules/react-native/Libraries/Components/View/ViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/NativeComponent/NativeComponentRegistry.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/getNativeComponentAttributes.js","/rn0_72/node_modules/react-native/Libraries/Components/View/ReactNativeStyleAttributes.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/processAspectRatio.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/processColor.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/normalizeColor.js","/rn0_72/node_modules/@react-native/normalize-colors/index.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/PlatformColorValueTypes.android.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/processFontVariant.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/processTransform.js","/rn0_72/node_modules/@babel/runtime/helpers/defineProperty.js","/rn0_72/node_modules/react-native/Libraries/Utilities/differ/sizesDiffer.js","/rn0_72/node_modules/react-native/Libraries/Utilities/differ/matricesDiffer.js","/rn0_72/node_modules/react-native/Libraries/Utilities/differ/pointsDiffer.js","/rn0_72/node_modules/react-native/Libraries/Utilities/differ/insetsDiffer.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/processColorArray.js","/rn0_72/node_modules/react-native/Libraries/Image/resolveAssetSource.js","/rn0_72/node_modules/react-native/Libraries/NativeModules/specs/NativeSourceCode.js","/rn0_72/node_modules/@react-native/assets-registry/registry.js","/rn0_72/node_modules/react-native/Libraries/Image/AssetSourceResolver.js","/rn0_72/node_modules/react-native/Libraries/Image/AssetUtils.js","/rn0_72/node_modules/react-native/Libraries/Utilities/PixelRatio.js","/rn0_72/node_modules/react-native/Libraries/Utilities/Dimensions.js","/rn0_72/node_modules/react-native/Libraries/Utilities/NativeDeviceInfo.js","/rn0_72/node_modules/@react-native/assets-registry/path-support.js","/rn0_72/node_modules/react-native/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js","/rn0_72/node_modules/react-native/Libraries/Utilities/verifyComponentAttributeEquivalence.js","/rn0_72/node_modules/react-native/Libraries/NativeComponent/PlatformBaseViewConfig.js","/rn0_72/node_modules/react-native/Libraries/NativeComponent/BaseViewConfig.android.js","/rn0_72/node_modules/react-native/Libraries/NativeComponent/ViewConfigIgnore.js","/rn0_72/node_modules/react-native/Libraries/NativeComponent/StaticViewConfigValidator.js","/rn0_72/node_modules/react-native/Libraries/NativeComponent/ViewConfig.js","/rn0_72/node_modules/react-native/Libraries/Utilities/codegenNativeCommands.js","/rn0_72/node_modules/react/jsx-runtime.js","/rn0_72/node_modules/react/cjs/react-jsx-runtime.production.min.js","/rn0_72/node_modules/react-native/Libraries/Utilities/AcessibilityMapping.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/StyleSheet.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/RootTag.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/DisplayMode.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/getCachedComponentWithDebugName.js","/rn0_72/node_modules/react-native/Libraries/Utilities/BackHandler.android.js","/rn0_72/node_modules/react-native/Libraries/NativeModules/specs/NativeDeviceEventManager.js","/rn0_72/node_modules/react-native/Libraries/ReactPrivate/ReactNativePrivateInterface.js","/rn0_72/node_modules/react-native/Libraries/EventEmitter/RCTEventEmitter.js","/rn0_72/node_modules/react-native/Libraries/Components/TextInput/TextInputState.js","/rn0_72/node_modules/react-native/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Utilities/differ/deepDiffer.js","/rn0_72/node_modules/react-native/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js","/rn0_72/node_modules/react-native/Libraries/Core/ReactFiberErrorDialog.js","/rn0_72/node_modules/react-native/Libraries/Core/RawEventEmitter.js","/rn0_72/node_modules/react-native/Libraries/Events/CustomEvent.js","/rn0_72/node_modules/react-native/Libraries/Events/EventPolyfill.js","/rn0_72/node_modules/scheduler/index.native.js","/rn0_72/node_modules/scheduler/cjs/scheduler.native.production.min.js","/rn0_72/node_modules/react-native/Libraries/Renderer/shims/ReactNative.js","/rn0_72/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js","/rn0_72/node_modules/react-native/Libraries/Components/ActivityIndicator/ActivityIndicator.js","/rn0_72/node_modules/react-native/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js","/rn0_72/node_modules/react-native/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Utilities/codegenNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/requireNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Renderer/shims/createReactNativeComponentClass.js","/rn0_72/node_modules/react-native/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/Button.js","/rn0_72/node_modules/react-native/Libraries/Text/Text.js","/rn0_72/node_modules/react-native/Libraries/Pressability/PressabilityDebug.js","/rn0_72/node_modules/react-native/Libraries/Pressability/usePressability.js","/rn0_72/node_modules/react-native/Libraries/Pressability/Pressability.js","/rn0_72/node_modules/react-native/Libraries/Components/Sound/SoundManager.js","/rn0_72/node_modules/react-native/Libraries/Components/Sound/NativeSoundManager.js","/rn0_72/node_modules/react-native/Libraries/Pressability/PressabilityPerformanceEventEmitter.js","/rn0_72/node_modules/react-native/Libraries/Pressability/HoverState.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/Rect.js","/rn0_72/node_modules/react-native/Libraries/Text/TextNativeComponent.js","/rn0_72/node_modules/deprecated-react-native-prop-types/index.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedColorPropType.js","/rn0_72/node_modules/deprecated-react-native-prop-types/node_modules/@react-native/normalize-colors/index.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedEdgeInsetsPropType.js","/rn0_72/node_modules/prop-types/index.js","/rn0_72/node_modules/prop-types/factoryWithThrowingShims.js","/rn0_72/node_modules/prop-types/lib/ReactPropTypesSecret.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedImagePropType.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedViewPropTypes.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedViewAccessibility.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedStyleSheetPropType.js","/rn0_72/node_modules/deprecated-react-native-prop-types/deprecatedCreateStrictShapeTypeChecker.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedViewStylePropTypes.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedLayoutPropTypes.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedShadowPropTypesIOS.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedTransformPropTypes.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedImageSourcePropType.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedImageStylePropTypes.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedPointPropType.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedTextInputPropTypes.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedTextPropTypes.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedTextStylePropTypes.js","/rn0_72/node_modules/react-native/Libraries/Components/Touchable/TouchableNativeFeedback.js","/rn0_72/node_modules/react-native/Libraries/Components/Touchable/TouchableOpacity.js","/rn0_72/node_modules/react-native/Libraries/Animated/Animated.js","/rn0_72/node_modules/react-native/Libraries/Animated/AnimatedImplementation.js","/rn0_72/node_modules/react-native/Libraries/Animated/animations/DecayAnimation.js","/rn0_72/node_modules/react-native/Libraries/Animated/NativeAnimatedHelper.js","/rn0_72/node_modules/react-native/Libraries/Animated/NativeAnimatedModule.js","/rn0_72/node_modules/react-native/Libraries/Animated/NativeAnimatedTurboModule.js","/rn0_72/node_modules/react-native/Libraries/Animated/animations/Animation.js","/rn0_72/node_modules/react-native/Libraries/Animated/animations/SpringAnimation.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedColor.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedValue.js","/rn0_72/node_modules/react-native/Libraries/Interaction/InteractionManager.js","/rn0_72/node_modules/react-native/Libraries/Interaction/TaskQueue.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedInterpolation.js","/rn0_72/node_modules/react-native/Libraries/Animated/Easing.js","/rn0_72/node_modules/react-native/Libraries/Animated/bezier.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedWithChildren.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedNode.js","/rn0_72/node_modules/react-native/Libraries/Animated/SpringConfig.js","/rn0_72/node_modules/react-native/Libraries/Animated/animations/TimingAnimation.js","/rn0_72/node_modules/react-native/Libraries/Animated/createAnimatedComponent.js","/rn0_72/node_modules/react-native/Libraries/Utilities/useMergeRefs.js","/rn0_72/node_modules/react-native/Libraries/Animated/useAnimatedProps.js","/rn0_72/node_modules/react-native/Libraries/Utilities/useRefEffect.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedProps.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedStyle.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedTransform.js","/rn0_72/node_modules/react-native/Libraries/Animated/AnimatedEvent.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedValueXY.js","/rn0_72/node_modules/react-native/Libraries/Renderer/public/ReactFabricPublicInstanceUtils.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedAddition.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedDiffClamp.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedDivision.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedModulo.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedMultiplication.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedSubtraction.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedTracking.js","/rn0_72/node_modules/react-native/Libraries/Animated/AnimatedMock.js","/rn0_72/node_modules/react-native/Libraries/Animated/components/AnimatedFlatList.js","/rn0_72/node_modules/react-native/Libraries/Lists/FlatList.js","/rn0_72/node_modules/memoize-one/dist/memoize-one.cjs.js","/rn0_72/node_modules/@react-native/virtualized-lists/index.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/VirtualizeUtils.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/VirtualizedList.js","/rn0_72/node_modules/@react-native/virtualized-lists/Interaction/Batchinator.js","/rn0_72/node_modules/@react-native/virtualized-lists/Utilities/clamp.js","/rn0_72/node_modules/@react-native/virtualized-lists/Utilities/infoLog.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/ChildListCollection.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/FillRateHelper.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/StateSafePureComponent.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/ViewabilityHelper.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/VirtualizedListCellRenderer.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/VirtualizedListContext.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/CellRenderMask.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/VirtualizedSectionList.js","/rn0_72/node_modules/react-native/Libraries/Animated/components/AnimatedImage.js","/rn0_72/node_modules/react-native/Libraries/Image/Image.android.js","/rn0_72/node_modules/@babel/runtime/helpers/asyncToGenerator.js","/rn0_72/node_modules/react-native/Libraries/Image/ImageAnalyticsTagContext.js","/rn0_72/node_modules/react-native/Libraries/Image/ImageInjection.js","/rn0_72/node_modules/react-native/Libraries/Image/ImageViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Image/TextInlineImageNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Image/NativeImageLoaderAndroid.js","/rn0_72/node_modules/react-native/Libraries/Image/ImageSourceUtils.js","/rn0_72/node_modules/react-native/Libraries/Image/ImageUtils.js","/rn0_72/node_modules/react-native/Libraries/Animated/components/AnimatedScrollView.js","/rn0_72/node_modules/react-native/Libraries/Components/RefreshControl/RefreshControl.js","/rn0_72/node_modules/react-native/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/ScrollView.js","/rn0_72/node_modules/react-native/Libraries/Interaction/FrameRateLogger.js","/rn0_72/node_modules/react-native/Libraries/Interaction/NativeFrameRateLogger.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/splitLayoutProps.js","/rn0_72/node_modules/react-native/Libraries/Utilities/dismissKeyboard.js","/rn0_72/node_modules/react-native/Libraries/Components/Keyboard/Keyboard.js","/rn0_72/node_modules/react-native/Libraries/LayoutAnimation/LayoutAnimation.js","/rn0_72/node_modules/react-native/Libraries/Components/Keyboard/NativeKeyboardObserver.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/processDecelerationRate.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/ScrollViewCommands.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/ScrollViewContext.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/ScrollViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/ScrollViewStickyHeader.js","/rn0_72/node_modules/react-native/Libraries/Animated/components/AnimatedSectionList.js","/rn0_72/node_modules/react-native/Libraries/Lists/SectionList.js","/rn0_72/node_modules/react-native/Libraries/Animated/components/AnimatedText.js","/rn0_72/node_modules/react-native/Libraries/Animated/components/AnimatedView.js","/rn0_72/node_modules/react-native/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js","/rn0_72/node_modules/react-native/Libraries/Components/StatusBar/StatusBar.js","/rn0_72/node_modules/react-native/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js","/rn0_72/node_modules/react-native/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js","/rn0_72/node_modules/react-native/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Image/ImageBackground.js","/rn0_72/node_modules/react-native/Libraries/Components/TextInput/InputAccessoryView.js","/rn0_72/node_modules/react-native/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/Keyboard/KeyboardAvoidingView.js","/rn0_72/node_modules/react-native/Libraries/Modal/Modal.js","/rn0_72/node_modules/react-native/Libraries/Modal/ModalInjection.js","/rn0_72/node_modules/react-native/Libraries/Modal/NativeModalManager.js","/rn0_72/node_modules/react-native/Libraries/Modal/RCTModalHostViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/I18nManager.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/NativeI18nManager.js","/rn0_72/node_modules/react-native/Libraries/Components/Pressable/Pressable.js","/rn0_72/node_modules/react-native/Libraries/Components/Pressable/useAndroidRippleForView.js","/rn0_72/node_modules/react-native/Libraries/Components/SafeAreaView/SafeAreaView.js","/rn0_72/node_modules/react-native/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/Switch/Switch.js","/rn0_72/node_modules/react-native/Libraries/Components/Switch/AndroidSwitchNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/Switch/SwitchNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/TextInput/TextInput.js","/rn0_72/node_modules/react-native/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/TextInput/RCTTextInputViewConfig.js","/rn0_72/node_modules/react-native/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/Touchable/Touchable.js","/rn0_72/node_modules/react-native/Libraries/Components/Touchable/BoundingDimensions.js","/rn0_72/node_modules/react-native/Libraries/Components/Touchable/PooledClass.js","/rn0_72/node_modules/react-native/Libraries/Components/Touchable/Position.js","/rn0_72/node_modules/react-native/Libraries/Components/Touchable/TouchableHighlight.js","/rn0_72/node_modules/react-native/Libraries/Components/Touchable/TouchableWithoutFeedback.js","/rn0_72/node_modules/react-native/Libraries/Lists/VirtualizedList.js","/rn0_72/node_modules/react-native/Libraries/Lists/VirtualizedSectionList.js","/rn0_72/node_modules/react-native/Libraries/ActionSheetIOS/ActionSheetIOS.js","/rn0_72/node_modules/react-native/Libraries/ActionSheetIOS/NativeActionSheetManager.js","/rn0_72/node_modules/react-native/Libraries/Utilities/Appearance.js","/rn0_72/node_modules/react-native/Libraries/Utilities/NativeAppearance.js","/rn0_72/node_modules/react-native/Libraries/AppState/AppState.js","/rn0_72/node_modules/react-native/Libraries/Utilities/logError.js","/rn0_72/node_modules/react-native/Libraries/AppState/NativeAppState.js","/rn0_72/node_modules/react-native/Libraries/Components/Clipboard/Clipboard.js","/rn0_72/node_modules/react-native/Libraries/Components/Clipboard/NativeClipboard.js","/rn0_72/node_modules/react-native/Libraries/Utilities/DeviceInfo.js","/rn0_72/node_modules/react-native/Libraries/Utilities/DevSettings.js","/rn0_72/node_modules/react-native/Libraries/NativeModules/specs/NativeDevSettings.js","/rn0_72/node_modules/react-native/Libraries/Linking/Linking.js","/rn0_72/node_modules/react-native/Libraries/Linking/NativeIntentAndroid.js","/rn0_72/node_modules/react-native/Libraries/Linking/NativeLinkingManager.js","/rn0_72/node_modules/react-native/Libraries/LogBox/LogBox.js","/rn0_72/node_modules/react-native/Libraries/Interaction/PanResponder.js","/rn0_72/node_modules/react-native/Libraries/Interaction/TouchHistoryMath.js","/rn0_72/node_modules/react-native/Libraries/PermissionsAndroid/PermissionsAndroid.js","/rn0_72/node_modules/react-native/Libraries/PermissionsAndroid/NativePermissionsAndroid.js","/rn0_72/node_modules/react-native/Libraries/PushNotificationIOS/PushNotificationIOS.js","/rn0_72/node_modules/react-native/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js","/rn0_72/node_modules/react-native/Libraries/Settings/Settings.android.js","/rn0_72/node_modules/react-native/Libraries/Share/Share.js","/rn0_72/node_modules/react-native/Libraries/Share/NativeShareModule.js","/rn0_72/node_modules/react-native/Libraries/Components/ToastAndroid/ToastAndroid.android.js","/rn0_72/node_modules/react-native/Libraries/Components/ToastAndroid/NativeToastAndroid.js","/rn0_72/node_modules/react-native/Libraries/Animated/useAnimatedValue.js","/rn0_72/node_modules/react-native/Libraries/Utilities/useColorScheme.js","/rn0_72/node_modules/use-sync-external-store/shim/index.native.js","/rn0_72/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.native.production.min.js","/rn0_72/node_modules/react-native/Libraries/Utilities/useWindowDimensions.js","/rn0_72/node_modules/react-native/Libraries/UTFSequence.js","/rn0_72/node_modules/react-native/Libraries/Vibration/Vibration.js","/rn0_72/node_modules/react-native/Libraries/Vibration/NativeVibration.js","/rn0_72/node_modules/react-native/Libraries/YellowBox/YellowBoxDeprecated.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/PlatformColorValueTypesIOS.js","/rn0_72/App.tsx","/rn0_72/node_modules/react-native/Libraries/NewAppScreen/index.js","/rn0_72/node_modules/react-native/Libraries/NewAppScreen/components/Colors.js","/rn0_72/node_modules/react-native/Libraries/NewAppScreen/components/DebugInstructions.js","/rn0_72/node_modules/react-native/Libraries/NewAppScreen/components/Header.js","/rn0_72/node_modules/react-native/Libraries/NewAppScreen/components/HermesBadge.js","/rn0_72/node_modules/react-native/Libraries/NewAppScreen/components/logo.png","/rn0_72/node_modules/react-native/Libraries/Image/AssetRegistry.js","/rn0_72/node_modules/react-native/Libraries/NewAppScreen/components/LearnMoreLinks.js","/rn0_72/node_modules/react-native/Libraries/Core/Devtools/openURLInBrowser.js","/rn0_72/node_modules/react-native/Libraries/Core/Devtools/getDevServer.js","/rn0_72/node_modules/react-native/Libraries/NewAppScreen/components/ReloadInstructions.js"],"names":["window","global","globalThis","__METRO_GLOBAL_PREFIX__","Map","Object","modules","EMPTY","module","guardedLoadModule","metroRequire","exports","hasOwnProperty","inGuard","loadModuleImplementation","ID_MASK_SHIFT","moduleId","LOCAL_ID_MASK","value","moduleDefinersBySegmentID","definingSegmentByModuleID","segmentId","unpackModuleId","unknownModuleError","metroImportDefault","metroImportAll","Error","console","LOG_LEVELS","Array","level","INSPECTOR_LEVELS","INSPECTOR_FRAMES_TO_SKIP","groupStack","groupFormat","inspect","element","OBJECT_COLUMN_NAME","rows","columnWidths","stringRows","space","repeat","cell","Math","msg","GROUP_OPEN","GROUP_PAD","GROUP_CLOSE","stylizeNoColor","formatValue","hash","formatPrimitive","arrayToHash","isError","isFunction","isRegExp","isDate","isArray","RegExp","Date","formatError","formatArray","reduceToSingleString","braces","formatProperty","ctx","recurseTimes","visibleKeys","array","isUndefined","isString","isNumber","isBoolean","isNull","JSON","String","output","name","base","numLinesEst","prev","arg","isObject","objectToString","e","log","_globalHandler","_inGuard","ErrorUtils","fun","context","guardName","TypeError","AppRegistry","appName","App","require","_dependencyMap","_$$_REQUIRE","Platform","Promise","NativeAccessibilityManagerIOS","NativeAccessibilityInfoAndroid","EventNames","deviceEventName","RCTDeviceEventEmitter","legacySendAccessibilityEvent","sendAccessibilityEvent","originalTimeout","obj","EventEmitter","Set","_createClass2","_classCallCheck2","allocate","registration","registrations","_len","_key","_toConsumableArray2","Symbol","instance","descriptor","_defineProperties","hint","Number","_typeof","NativePlatformConstantsAndroid","_getRequireWildcardCache","hasPropertyDescriptor","WeakMap","cacheNodeInterop","nodeInterop","cacheBabelInterop","turboModuleProxy","requireModule","invariant","args","argIndex","bridgeConfig","NativeModules","methods","promiseMethods","arrayContains","syncMethods","isPromise","isSync","genMethod","moduleID","constants","genModule","info","methodID","resolve","reject","updateErrorWithErrorData","enqueueingFrameError","hasErrorCallback","hasSuccessCallback","type","errorData","defineLazyObjectProperty","loadModule","MessageQueue","_this","method","_this2","cbID","queue","_this3","getValue","onFail","onSucc","now","DebuggerInternal","isSuccess","Boolean","TRACE_TAG_REACT_APPS","isEnabled","_asyncCookie","_limits$maxDepth","_limits$maxStringLimi","_limits$maxArrayLimit","_limits$maxObjectKeys","stack","maxDepth","maxObjectKeysLimit","keys","maxArrayLimit","maxStringLimit","replacer","valueSet","setValue","get","object","enumerable","writable","UIManager","reactTag","isFabricReactTag","UIManagerImpl","nullthrows","getFabricUIManager","callback","message","errorMessageForMethod","unstable_hasComponent","componentNameToExists","NativeUIManager","getConstants","UIManagerJS","isNativeUIManagerConstantsSet","NativeUIManagerConstants","viewManagerConfigs","triedLoadingConfig","lazifyViewManagerConfig","viewConfig","viewManager","commands","index","getViewManagerConfig","viewManagerName","key","BatchedBridge","namesToPlugins","pluginName$jscomp$inline_225","isOrderingDirty$jscomp$inline_224","ResponderEventPlugin","nativeFabricUIManager","registerEventHandler","setTimeout","clearTimeout","emptyContextObject","NO_CONTEXT","readContext","mountEffect","mountState","updateReducer","rerenderReducer","WeakSet","Infinity","devToolsConfig$jscomp$inline_938","__REACT_DEVTOOLS_GLOBAL_HOOK__","invokeGuardedCallbackImpl","reporter","invokeGuardedCallback","hasError","caughtError","hasRethrowError","event","getNodeFromInstance","invokeGuardedCallbackAndCatchFirstError","isArrayImpl","dispatchListener","dispatchConfig","functionThatReturnsTrue","functionThatReturnsFalse","createOrGetPooledEvent","releasePooledEvent","touch","getTouchIdentifier","touchBank","touchRecord","timestampForTouch","touchHistory","arr","responderInst","inst","getParent","getFiberCurrentPropsFromNode","getListener","accumulateInto","listener","targetInst","traverseTwoPhase","accumulateDirectionalDispatches","eventPluginOrder","plugins","pluginName","eventNameDispatchConfigs","publishRegistrationName","phasedRegistrationNames","eventName$jscomp$0","registrationNameModules","registrationName","requestedPhaseIsCapture","stateNode","mangledImperativeRegistrationName","listeners","listenerObj","getListeners","accumulateListenersAndInstances","traverseTwoPhase$1","accumulateDirectionalDispatches$1","MAYBE_ITERATOR_SYMBOL","REACT_FRAGMENT_TYPE","REACT_PORTAL_TYPE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_CONTEXT_TYPE","REACT_PROVIDER_TYPE","REACT_FORWARD_REF_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","getComponentNameFromType","innerType","fiber","node","getNearestMountedFiber","alternate","assertIsMounted","a","findCurrentFiberUsingSlowPath","findCurrentHostFiberImpl","deepDifferOptions","removedKeyCount","removedKeys","restoreDeletedValuesInNestedArray","nextProp","prevProp","clearNestedProperty","addNestedProperty","diffProperties","diffNestedProperty","emptyObject","defaultDiffer","updatePayload","undefined","isInsideEventHandler","batchedUpdatesImpl","dispatchListeners","executeDispatch","batchedUpdates","topLevelType","nativeEvent","eventTarget","possiblePlugin","target","eventQueue","forEachAccumulated","executeDispatchesAndReleaseTopLevel","rethrowError","injectedHook","rendererID","root","LN2","lanes","pendingLanes","getHighestPriorityLanes","nonIdlePendingLanes","wipLanes","nextLanes","pingedLanes","clz32","currentTime","nextTransitionLane","lane","nextReactTag","createNode","cloneNodeWithNewProps","fn","describeComponentFrame","valueStack","pop","didPerformWorkStackCursor","contextStackCursor","push","contextKey","getComponentNameFromFiber","assign","processChildContext","didChange","previousContext","x","y","isFlushingSyncQueue","syncQueue","currentUpdatePriority","i","flushSyncCallbacks","treeForkProvider","forkStack","forkStackIndex","treeContextProvider","idStack","idStackIndex","objectIs","describeFunctionComponentFrame","valueCursor","parent","workInProgress","lastFullyObservedContext","lastContextDependency","currentlyRenderingFiber","concurrentQueues","pushConcurrentUpdateQueue","markUpdateLaneFromFiberToRoot","executionContext","markRootEntangled","pendingQueue","renderLanes","workInProgressRootSkippedLanes","ctor","shallowEqual","isContextProvider","getMaskedContext","classComponentUpdater","isLegacyContextConsumer","emptyRefsObject","initializeUpdateQueue","applyDerivedStateFromProps","processUpdateQueue","resolvedInst","refs","stringRef","shouldTrackSideEffects","deleteChild","createWorkInProgress","newIndex","useFiber","createFiberFromText","resolveLazy","createFiberFromTypeAndProps","coerceRef","updateFragment","portal","createFiberFromPortal","createFiberFromFragment","REACT_ELEMENT_TYPE","getIteratorFn","throwOnInvalidObjectType","createChild","updateSlot","newChild","updatePortal","updateElement","updateTextNode","existingChildren","updateFromMap","placeChild","oldFiber","mapRemainingChildren","deleteRemainingChildren","returnFiber","placeSingleChild","reconcileChildrenIterator","reconcileChildrenArray","reconcileChildFibers","rootInstanceStackCursor","contextFiberStackCursor","contextStackCursor$1","requiredContext","shim$1","workInProgressSources","ReactCurrentDispatcher$1","HooksDispatcherOnUpdate","HooksDispatcherOnMount","didScheduleRenderPhaseUpdateDuringThisPass","HooksDispatcherOnRerender","ContextOnlyDispatcher","currentHook","workInProgressHook","currentlyRenderingFiber$1","updateWorkInProgressHook","update","snapshotChanged","updateEffect","subscribeToStore","pushEffect","updateStoreInstance","workInProgressRoot","pushStoreConsistencyCheck","checkIfSnapshotChanged","forceStoreRerender","scheduleUpdateOnFiber","mountWorkInProgressHook","basicStateReducer","dispatchSetState","areHookInputsEqual","mountEffectImpl","updateEffectImpl","ref","imperativeHandleEffect","claimNextTransitionLane","hook","ReactCurrentBatchConfig$1","requestUpdateLane","isRenderPhaseUpdate","enqueueConcurrentHookUpdate","requestEventTime","entangleTransitionUpdate","enqueueRenderPhaseUpdate","describeFiber","createUpdate","hasUncaughtError","error","logCapturedError","errorInfo","getDerivedStateFromError","legacyErrorBoundariesThatAlreadyFailed","PossiblyWeakMap","threadIDs","pingSuspendedRoot","mountChildFibers","prepareToReadContext","renderWithHooks","didReceiveUpdate","bailoutOnAlreadyFinishedWork","reconcileChildren","current","shouldConstruct","updateSimpleMemoComponent","updateFunctionComponent","prevState","subtreeRenderLanesCursor","subtreeRenderLanes","pushContextProvider","cloneUpdateQueue","resolveDefaultProps","oldProps","oldState","callComponentWillReceiveProps","hasForceUpdate","checkShouldComponentUpdate","getDerivedStateFromProps","hasNewLifecycles","oldContext","resetSuspendedCurrentOnMountInLegacyMode","constructClassInstance","mountClassInstance","finishClassComponent","markRef","hasContext","invalidateContextProvider","ReactCurrentOwner$1","didCaptureError","pushTopLevelContextObject","pushHostContainer","suspenseStackCursor","suspenseContext","didSuspend","mountSuspenseOffscreenState","SUSPENDED_MARKER","updateDehydratedSuspenseComponent","showFallback","mountSuspensePrimaryChildren","nextProps","createFiberFromOffscreen","hydrationErrors","renderDidSuspendDelayIfPossible","createCapturedValue","retrySuspenseComponentWithoutHydrating","scheduleContextWorkOnParentPath","scheduleSuspenseWorkOnFiber","initSuspenseListRenderState","findFirstSuspended","updateOffscreenComponent","updateSuspenseListComponent","updateSuspenseComponent","pushHostContext","pushHostRootContext","completedWork","appendChildNodeToSet","appendAllChildrenToContainer","needsVisibilityToggle","cloneHiddenInstance","hasRenderedATailFallback","child$63","popTreeContext","popRenderLanes","bubbleProperties","workInProgressRootRenderTargetTime","cutOffTailIfNeeded","workInProgressRootExitStatus","newProps","popContext","popProvider","popHostContainer","updateHostContainer","queueRecoverableErrors","createTextInstance","updateHostText$1","popHostContext","getViewConfigForType","ReactFabricHostComponent","appendAllChildren","updateHostComponent$1","resetWorkInProgressVersions","captureCommitPhaseError","nextEffect","shouldFireAfterActiveInstanceBlur","safelyCallDestroy","effect","detachFiberAfterEffects","commitDeletionEffectsOnFiber","recursivelyTraverseDeletionEffects","safelyDetachRef","_effect","createChildNodeSet","PossiblyWeakSet","resolveRetryWakeable","finishedWork","retryCache","parentFiber","commitMutationEffectsOnFiber","recursivelyTraverseMutationEffects","commitReconciliationEffects","flags","attachSuspenseRetryListeners","commitHookEffectListUnmount","commitHookEffectListMount","firstChild","commitUpdateQueue","currentEventTime","workInProgressRootRenderLanes","ReactCurrentBatchConfig","fabricGetCurrentEventPriority","FabricDiscretePriority","currentEventTransitionLane","nestedUpdateCount","markRootUpdated","workInProgressRootInterleavedUpdatedLanes","markRootSuspended$1","ensureRootIsScheduled","includesLegacySyncCallbacks","computeExpirationTime","expirationTime","getNextLanes","suspendedLanes","lanesToEventPriority","scheduleCallback$1","performConcurrentWorkOnRoot","performSyncWorkOnRoot","flushPassiveEffects","pushDispatcher","prepareFreshStack","workLoopConcurrent","resetContextDependencies","ReactCurrentDispatcher$2","handleError","renderRootSync","getLanesToRetrySynchronouslyOnError","recoverFromConcurrentError","isRenderConsistentWithExternalStores","workInProgressRootFatalError","commitRoot","workInProgressRootRecoverableErrors","workInProgressTransitions","index$4","ceil","scheduleTimeout","globalMostRecentFallbackTime","prevExecutionContext","workInProgressRootConcurrentErrors","workInProgressRootPingedLanes","cancelTimeout","didScheduleRenderPhaseUpdate","ReactCurrentOwner$2","sourceFiber$jscomp$0","currentSource","b","thrownValue","createCapturedValueAtFiber","createClassErrorUpdate","enqueueCapturedUpdate","createRootErrorUpdate","attachPingListener","enqueueUpdate","suspenseBoundary","completeUnitOfWork","workLoopSync","performUnitOfWork","beginWork$1","unwindWork","completeWork","ReactCurrentBatchConfig$2","commitRootImpl","rootWithPendingPassiveEffects","transitions","markRootFinished","rootDoesHavePassiveEffects","commitBeforeMutationEffects","commitLayoutEffects","onCommitRoot","pendingPassiveEffectsLanes","remainingLanes","rootWithNestedUpdates","firstUncaughtError","child","deletions","captureCommitPhaseErrorOnRoot","boundaryFiber","nextRetryLane","retryTimedOutBoundary","FiberNode","createFiber","REACT_OFFSCREEN_TYPE","mode","createLaneMap","findCurrentHostFiber","entangleTransitions","findHostInstance","componentOrHandle","addEventPoolingTo","Super","instrumentationCallback","isMoveish","isStartish","recordTouchEnd","recordTouchStart","recordTouchMove","trackedTouchCount","ResponderTouchHistoryStore","eventTypes","depthA","tempA","ResponderSyntheticEvent","JSCompiler_temp","accumulateTwoPhaseDispatchesSingle","accumulateTwoPhaseDispatchesSingleSkipTarget","shouldSetEventType","accumulateDirectDispatchesSingle","executeDirectDispatch","accumulate","changeResponder","getInstanceFromNode","customBubblingEventTypes","customDirectEventTypes","SyntheticEvent","bubbleDispatchConfig","accumulateDirectDispatchesSingle$1","accumulateTwoPhaseDispatchesSingle$1","from","fromOrTo","blockNativeResponder","to","fabricMeasure","mountSafeCallback_NOT_REALLY_SAFE","fabricMeasureInWindow","relativeToNativeNode","fabricMeasureLayout","_setNativeProps","optionsObj","eventListeners","capture","dispatchReducerAction","startTransition","globalClientIdCounter","updateDeferredValueImpl","appendChildNode","hadNoMutationsEffects","completeRoot","cloneNodeWithNewChildren","cloneNodeWithNewChildrenAndProps","cloneNode","oldText","attemptEarlyBailoutIfNoScheduledUpdate","updateMemoComponent","updateForwardRef","updateClassComponent","resolveLazyComponentTag","createPortal","roots","concurrentRoot","FiberRootNode","onRecoverableError","updateContainer","containerTag","DOMRect","DOMRectReadOnly","_isNativeReflectConstruct","_getPrototypeOf2","Derived","hasNativeReflectConstruct","Reflect","_possibleConstructorReturn2","_inherits2","_createSuper","_super","superClass","_setPrototypeOf","ReferenceError","_getPrototypeOf","o","castToNumber","NativePerformance","Performance","PerformanceEntry","warnOnce","PerformanceMark","markOptions","getCurrentTimeStamp","PerformanceMeasure","_super2","measureOptions","EventCounts","MemoryInfo","ReactNativeStartupTiming","warnNoNativePerformance","NativePerformanceObserver","warnNoNativePerformanceObserver","RawPerformanceEntryTypeValues","rawToPerformanceEntry","performanceEntryTypeToRaw","entryType","warnedKeys","cachedEventCounts","getCachedEventCounts","registeredObservers","_slicedToArray2","durationThreshold","union","v","PerformanceObserverEntryList","entry","entryResult","entries","observer","droppedEntriesCount","observerConfig","PerformanceObserver","currentEntryTypes","isOnPerformanceEntryCallbackSet","onPerformanceEntry","difference","observerCountPerEntryType","applyDurationThresholds","numberOfObserversForThisType","rawToPerformanceEntryType","PerformanceEventTiming","userExceptionDecorator","inUserExceptionDecorator","exceptionID","namePrefix","preprocessException","decoratedExtraDataKey","SyntheticError","reportException","inExceptionHandler","stringifySafe","reactConsoleErrorHandler","_wrapNativeSuper","_cache","Class","Function","_construct","location","convertHermesStack","frame","parseChrome","parseWinjs","parseGecko","parseNode","parseJSC","chromeRe","parts","chromeEvalRe","UNKNOWN_FUNCTION","isNative","winjsRe","geckoRe","geckoEvalRe","javaScriptCoreRe","nodeRe","sourceUrl","RE_FRAME","RE_SKIPPED","asFrame","isInternalBytecodeSourceUrl","parseLine","lastMessageLine","NativeModule","ExceptionsManager","_ref$configurable","polyfillObjectProperty","f","err","IS_ERROR","noop","doResolve","handle","self","Handler","onFulfilled","onRejected","handleResolved","setImmediate","deferred","tryCallOne","LAST_ERROR","getThen","newValue","finale","tryCallTwo","done","promise","safeThen","item","onSettledFulfill","onSettledReject","AggregateError","valuePromise","EMPTYSTRING","ZERO","FALSE","TRUE","UNDEFINED","NULL","ex","iterableToArray","res","val","remaining","mapAllSettled","values","getAggregateError","hasResolved","rejectionReasons","promises","resolveOnce","rejectionCheck","con","isNativeFunction","$Symbol","define","iteratorSymbol","getProto","hasOwn","Generator","defineProperty","Gp","Context","outerFn","tryLocsList","makeInvokeMethod","prototype","tryCatch","generator","PromiseImpl","invoke","result","previousPromise","GenStateSuspendedStart","state","GenStateExecuting","GenStateCompleted","maybeInvokeDelegate","innerFn","GenStateSuspendedYield","ContinueSentinel","doneResult","pushTryEntry","isNaN","iterable","next","GeneratorFunction","GeneratorFunctionPrototype","toStringTagSymbol","AsyncIterator","wrap","iter","resetTryEntry","record","exception","finallyEntry","_global$HermesInterna","_global$HermesInterna2","hasNativePromise","NativeTiming","JSTimers","timerIDs","GUID","_getFreeIndex","callbacks","types","_clearIndex","errors","FRAME_DURATION","frameTime","reactNativeMicrotasks","_callTimer","deleteTimer","_allocateCallback","createTimer","duration","func","_len2","_key2","_len3","_key3","requestIdleCallbacks","setSendIdleEvents","options","timeout","id","requestIdleCallbackTimeouts","_freeCallback","timersToCall","_callReactNativeMicrotasksPass","hasEmittedTimeDriftWarning","GUIID","clearedImmediates","resolvedPromise","XMLHttpRequestEventTarget","XMLHttpRequest","SUPPORTED_RESPONSE_TYPES","responseType","responseURL","responseHeaders","total","sortedHeaders","header","headers","_get2","_get","arguments","NativeBlobModule","c","r","BlobManager","uuidv4","ArrayBuffer","part","acc","encodeURI","createBlobCollector","Blob","end","registry","Event","wrappers","EventTarget","defineEventAttribute","privateData","retv","defineRedirectDescriptor","pd","defineCallDescriptor","isFunc","BaseEvent","defineWrapper","getWrapper","listenersMap","eventName","ATTRIBUTE","defineEventAttributeDescriptor","defineCustomEventTarget","setCancelFlag","optionsIsObj","BUBBLE","CAPTURE","wrapEvent","setPassiveListener","isStopped","setEventPhase","setCurrentTarget","createPerformanceLogger","ReactNativeFeatureFlags","PerformanceLogger","isLoggingForWebPerformance","startTime","endTime","performance","getCurrentTimestamp","_cookies","Systrace","timespan","Uint8Array","lookup","revLookup","len","validLen","getLens","Arr","_byteLength","placeHoldersLen","tmp","num","tripletToBase64","uint8","encodeChunk","NativeEventEmitter","_requestId","RCTNetworking","NativeNetworkingAndroid","convertRequestBody","generateRequestId","convertHeadersMapToArray","nativeModule","subscription","eventType","body","FormData","data","fetch","Headers","Request","Response","support","DataView","iterator","items","reader","FileReader","fileReaderReady","URLSearchParams","isDataView","isArrayBufferView","bufferClone","consumed","readBlobAsArrayBuffer","readArrayBufferAsText","readBlobAsText","decode","input","normalizeMethod","reQueryString","form","decodeURIComponent","init","xhr","url","abortXhr","request","parseHeaders","normalizeValue","viewClasses","normalizeName","oldValue","iteratorFor","redirectStatuses","RangeError","WebSocket","_ref2$headers","_objectWithoutProperties2","_excluded","NativeWebSocketModule","nextWebSocketId","binaryToBase64","base64","WebSocketEvent","File","NativeFileReaderModule","toByteArray","_this4","_Symbol$iterator","params","encodeURIComponent","last","URL","validateBaseUrl","baseUrl","BLOB_URL_PREFIX","AbortSignal","abortedFlags","signals","controller","AbortController","createAbortSignal","getSignal","abortSignal","Alert","title","buttons","buttonNeutral","buttonNegative","buttonPositive","RCTAlertManager","cancelButtonKey","destructiveButtonKey","preferredButtonKey","callbackOrButtons","btn","cb","NativeDialogManagerAndroid","emptyCallback","NativeJSCHeapCapture","warningHandler","RCTLog","levelsMap","appConfig","runnables","sections","renderApplication","componentProviderInstrumentationHook","componentProvider","scopedPerformanceLogger","wrapperComponentProvider","showArchitectureIndicator","appKey","coerceDisplayMode","infoLog","BugReporting","runCount","SceneTracker","unmountComponentAtNodeAndRemoveContainer","taskProviders","taskCancelProviders","NativeHeadlessJsTaskSupport","taskId","HeadlessJsTaskError","reason","defaultExtras","source","NativeBugReporting","NativeRedBox","getReactTree","_listeners","_activeScene","GlobalPerformanceLogger","_PerformanceLoggerContext","_AppContainer","initialProps","React","DisplayMode","displayMode","useConcurrentRoot","fabric","Renderer","useContext","PerformanceLoggerContext","z","D","B","L","J","m","l","K","escape","n","d","I","A","Q","R","O","N","P","S","C","u","t","M","T","V","U","StyleSheet","AppContainer","_View","styles","createRootTag","ariaLabelledBy","ariaBusy","accessibilityState","ariaChecked","ariaDisabled","ariaExpanded","ariaSelected","ariaValueMax","accessibilityValue","ariaValueMin","ariaValueNow","ariaValueText","flattenStyle","style","_TextAncestor","_ViewNativeComponent","ariaLive","ariaLabel","tabIndex","role","getAccessibilityRoleFromRole","ariaHidden","codegenNativeCommands","__INTERNAL_VIEW_CONFIG","getRuntimeConfig","ReactNativeViewConfigRegistry","native","createViewConfig","viewConfigProvider","getNativeComponentAttributes","verifyComponentAttributeEquivalence","StaticViewConfigValidator","hasNativeViewConfig","getDifferForType","getProcessorForType","diff","process","attachDefaultEventTypes","merge","processColor","processAspectRatio","sizesDiffer","processTransform","processFontVariant","normalizedColor","_normalizeColor","getMatchers","normalizeKeyword","hwbToRgb","parse360","parsePercentage","hslToRgb","parse1","parseInt","match","parse255","color","q","p","hue2rgb","h","g","w","red","green","blue","gray","cachedMatchers","call","commaSeparatedCall","callWithSlashSeparator","parseFloat","int","_getKeyAndValueFromCSSTransform","one","dummySize","two","defaultedOne","dummyPoint","dummyInsets","colors","processColorElement","TRANSPARENT","_sourceCodeScriptURL","_serverURL","getSourceCodeScriptURL","sourceCodeScriptURL","scriptURL","_scriptURL","_coerceLocalScriptURL","getDevServerURL","getScriptURL","_customSourceTransformer","assets","assetId","scale","assetDir","drawableFolder","AssetSourceResolver","getScaledAssetPath","path","getAssetPathInDrawableFolder","PixelRatio","scales","cacheBreaker","layoutSize","NativeDeviceInfo","Dimensions","dimensions","windowPhysicalPixels","screenPhysicalPixels","dimensionsInitialized","eventEmitter","androidScaleSuffix","drawableFileTypes","getAndroidAssetSuffix","getBasePath","basePath","viewConfigCallbacks","viewConfigs","processEventTypes","lefthandObjectDiff","IGNORED_KEYS","PlatformBaseViewConfig","propName","BaseViewConfig","DynamicallyInjectedByGestureHandler","ReactNativeStyleAttributes","ignoredViewConfigProps","accumulateDifferences","ifObject","isIgnored","composeIndexers","maybeA","commandObj","command","k","style1","cache","_backPressSubscriptions","BackHandler","NativeDeviceEventManager","handler","currentlyFocusedInputRef","focusInput","AndroidTextInputCommands","blurInput","inputs","deepDiffer","logListeners","errorValue","handleException","EventPolyfill","CustomEvent","eventInitDict","navigator","MessageChannel","nativeRuntimeScheduler","H","F","G","X","pluginName$jscomp$inline_231","isOrderingDirty$jscomp$inline_230","getInstanceFromTag","devToolsConfig$jscomp$inline_979","unmountComponentAtNode","instanceCache","nativeEventParam","EMPTY_NATIVE_EVENT","tag","instanceProps","recursivelyUncacheFiberNode","shim","getStackByFiberInDevAndProd","allocateTag","ReactNativeFiberHostComponent","finalizeInitialChildren","isHostParent","insertOrAppendPlacementNodeIntoContainer","insertOrAppendPlacementNode","hostParent","hostParentIsContainer","updatePayload$jscomp$0","getHostSibling","JSCompiler_inline_result","index$5","_receiveRootNodeIDEvent","UPDATE_SIGNAL","_ref$animating","_ref$color","_ref$hidesWhenStopped","_ref$size","PlatformActivityIndicator","_ref$styleAttr","_ref$indeterminate","_ProgressBarAndroidNativeComponent","codegenNativeComponent","requireNativeComponent","uiViewClassName","register","Button","disabled","TouchableOpacity","TouchableNativeFeedback","importantForAccessibility","_Text","useState","restProps","_disabled","onPress","onLongPress","onStartShouldSetResponder","useLazyInitialization","useMemo","initialized","pressRetentionOffset","onPressIn","onPressOut","onResponderTerminationRequest","suppressHighlighting","usePressability","eventHandlers","onResponderGrant","onResponderMove","onResponderRelease","onResponderTerminate","TextAncestor","accessible","userSelectToSelectableMap","verticalAlignToTextAlignVerticalMap","props","hasTextAncestor","ellipsizeMode","allowFontScaling","isPressable","setHighlighted","useRef","Pressability","useEffect","pressability","config","delay","signal","pageY","pageX","onStartShouldSetResponder_DEPRECATED","normalizeDelay","DEFAULT_LONG_PRESS_DELAY_MS","delayLongPress","getTouchFromPressEvent","longPressDeactivationDistance","onResponderTerminationRequest_DEPRECATED","onHoverIn","convertPointerEventToMouseEvent","onHoverOut","isHoverEnabled","PressabilityPerformanceEventEmitter","Transitions","nextState","isTerminalSignal","isActivationSignal","isPressInSignal","isActiveSignal","SoundManager","minPressDuration","normalizeRect","pressRectOffset","DEFAULT_PRESS_RECT_OFFSETS","NativeSoundManager","document","lastTouchTimestamp","HOVER_THRESHOLD_MS","createSquare","createReactNativeComponentClass","textViewConfig","virtualTextViewConfig","propFullName","emptyFunctionWithReset","emptyFunction","shapePropType","shapeTypes","checkType","findHostInstance_DEPRECATED","Commands","locationX","locationY","getBackgroundProp","processedColor","useForeground","Animated","Easing","_Animated","AnimatedImplementation","AnimatedMock","AnimatedValue","AnimatedValueXY","AnimatedColor","AnimatedInterpolation","AnimatedNode","createAnimatedComponent","attachNativeEvent","AnimatedEvent","AnimatedAddition","AnimatedSubtraction","AnimatedDivision","AnimatedMultiplication","AnimatedModulo","AnimatedDiffClamp","parallel","maybeVectorAnim","spring","_combineCallbacks","configuration","SpringAnimation","AnimatedTracking","start","timing","TimingAnimation","decay","DecayAnimation","animations","onComplete","doneCount","hasEnded","idx","stopTogether","sequence","time","_ref$iterations","_ref$resetBeforeItera","animation","iterations","isFinished","iterationsSoFar","resetBeforeIteration","restart","Animation","NativeAnimatedHelper","requestAnimationFrame","NativeAnimatedNonTurboModule","NativeAnimatedTurboModule","NativeAnimatedModule","useSingleOpBatching","SUPPORTED_COLOR_STYLES","eventListenerGetValueCallbacks","eventListenerAnimationFinishedCallbacks","SUPPORTED_STYLES","SUPPORTED_TRANSFORMS","SUPPORTED_INTERPOLATION_PARAMS","isSupportedTransformProp","isSupportedStyleProp","isSupportedInterpolationParam","__nativeAnimatedNodeTagCount","__nativeAnimationIdCount","_warnedMissingNativeAnimated","degrees","nativeOps","API","waitingForQueuedOperations","flushQueueTimeout","clearImmediate","singleOpQueue","globalEventEmitterGetValueListener","globalEventEmitterAnimationFinishedListener","setupGlobalEventEmitterListeners","queueOperations","nativeEventEmitter","onEnd","startNativeAnimationNextId","SpringConfig","previousAnimation","animatedValue","zeta","omega0","v0","x0","envelope","omega1","position","AnimatedWithChildren","isRgbaValue","normalizeColor","processColorObject","valueIn","defaultColor","isRgbaAnimatedValue","NativeAnimatedAPI","flushValue","shouldUpdateNodeConfig","findAnimatedStyles","leaves","_executeAsAnimatedBatch","InteractionManager","_nextUpdateHandle","_deadline","_processUpdate","_interactionSet","_addInteractionSet","_deleteInteractionSet","_emitter","_taskQueue","_scheduleUpdate","task","tasks","_inc","TaskQueue","tasksToCancel","stackItem","findRange","inputRange","interpolate","range","outputRange","easing","extrapolateLeft","extrapolateRight","inputMax","outputMax","numericComponentRegex","components","mapStringToNumericComponents","isColor","createNumericInterpolation","numericComponents","interpolations","createStringInterpolation","outputType","ease","bounciness","s","SUBDIVISION_MAX_ITERATIONS","aB","aA","calcBezier","SUBDIVISION_PRECISION","NEWTON_ITERATIONS","getSlope","currentX","float32ArraySupported","kSplineTableSize","Float32Array","kSampleStepSize","sampleValues","aX","currentSample","dist","intervalStart","mX1","mX2","NEWTON_MIN_SLOPE","binarySubdivide","newtonRaphsonIterate","mY1","mY2","getTForX","_uniqueId","oValue","stiffnessFromOrigamiValue","dampingFromOrigamiValue","speed","endValue","_easeInOut","easeInOut","useAnimatedProps","useMergeRefs","passthroughAnimatedPropExplicitValues","Component","useCallback","useReducer","useAnimatedPropsLifecycle","useRefEffect","reduceAnimatedProps","count","AnimatedProps","onUpdateRef","getEventTarget","propValue","isFabricInstance","scheduleUpdate","events","useLayoutEffect","isUnmountingRef","prevNodeRef","isFabricPublicInstance","_instance$getScrollRe","cleanupRef","AnimatedStyle","findNodeHandle","nativeViewTag","createAnimatedStyle","AnimatedTransform","createStyleWithAnimatedTransform","platformConfig","transConfigs","getter","nestedValue","argMapping","eventMappings","traverse","viewTag","recMapping","maybeInstance","isLegacyFabricInstance","inAnimationCallback","emptyAnimation","mockAnimationStart","anyValue","mockCompositeAnimation","_FlatList","removeClippedSubviews","numColumns","FlatList","memoizeOne","numColumnsOrDefault","isArrayLike","defaultKeyExtractor","keyExtractor","ListItemComponent","renderItem","cols","render","columnWrapperStyle","prevProps","onViewableItemsChanged","viewableItems","changed","_this$props$strictMod","strictMode","removeClippedSubviewsOrDefault","safeIsNaN","isEqual","areInputsEqual","calledOnce","lastThis","lastArgs","resultFn","lastResult","itemCount","right","left","mid","_scrollMetrics$zoomSc","visibleBegin","windowSize","velocity","visibleEnd","getFrameMetricsApprox","elementsThatOverlapOffsets","overscanFirst","first","overscanLast","newRangeCount","newCellCount","StateSafePureComponent","VirtualizedListContext","horizontal","initialNumToRender","maxToRenderPerBatch","onStartReachedThreshold","onEndReachedThreshold","threshold","scrollEventThrottle","VirtualizedList","ChildListCollection","FillRateHelper","Batchinator","ViewabilityHelper","_assertThisInitialized2","isVertical","_reactNative","curr","metrics","offset","timestamp","dOffset","remainder","frameMetrics","horizontalOrDefault","getItemCount","viewPosition","viewOffset","windowSizeOrDefault","onEndReachedThresholdOrDefault","contentLength","computeWindowedRenderLimits","maxToRenderPerBatchOrDefault","newCellsAroundViewport","cellsAroundViewport","distanceFromEnd","childIdx","ListHeaderComponent","ii","getItem","stickyIndicesFromProps","stickyOffset","stickyHeaderIndices","cells","getItemLayout","debug","_VirtualizedListCellRenderer","CellRendererComponent","ItemSeparatorComponent","inversionStyle","prevCellKey","shouldListenForLayout","nestedContext","findLastWhere","section","isLastSpacer","constrainToMeasured","clamp","lastMetrics","_defineProperty2","_usedIndexForKey","_keylessItemComponentName","scrollEventThrottleOrDefault","frameLast","normalize","windowTop","windowLen","visTop","visLen","distanceFromStart","isWithinStartThreshold","isWithinEndThreshold","onStartReachedThresholdOrDefault","distTop","getScrollingThreshold","distBottom","_this5","CellRenderMask","additionalRegions","initialNumToRenderOrDefault","firstCellIndex","cellIdx","itemIdx","firstVisibleItemIndex","maintainVisibleContentPositionAdjustment","timeoutHandle","cellKey","Info","_sampleRate","_minSampleCount","firstFrame","lastFrame","blankTop","pixels_blank","partialState","that","_isEntirelyVisible","_getPixelsVisible","viewAreaMode","pixels","percent","top","bottom","viewAreaCoveragePercentThreshold","viewablePercentThreshold","itemVisiblePercentThreshold","renderRange","_isViewable","viewableIndices","createViewToken","CellRenderer","select","onCellLayout","currContext","numCells","newMainRegion","lastIntersectIdx","other","region","firstIdx","middleIdx","LeadingSeparatorComponent","leadingSeparatorProps","SeparatorComponent","separatorProps","leadingSeparator","inverted","setSelfHighlightCallback","setSeparatorHighlighted","setSelfUpdatePropsCallback","setSeparatorProps","setLeadingSeparatorHighlighted","updateHighlightFor","updatePropsFor","setLeadingSeparatorProps","VirtualizedSectionList","viewable","keyExtractorWithNullableIndex","listItemCount","ItemWithSeparator","infoIndex","renderSectionFooter","renderSectionHeader","_VirtualizedList","itemIndex","Image","ImageInjection","resolveAssetSource","NativeImageLoaderAndroid","failure","success","prefetch","_queryCache","_asyncToGenerator2","getImageSourcesFromImageProps","_source$width","_source$height","onLoadStart","defaultSource","loadingIndicatorSource","convertObjectFitToResizeMode","objectFit","_ImageAnalyticsTagContext","analyticTag","nativeProps","_ImageViewNativeComponent","nativePropsWithAnalytics","resizeMode","_TextInlineImageNativeComponent","sources","forwardedRef","asyncGeneratorStep","gen","_next","_throw","ConditionallyIgnoredEventHandlers","shouldUseSrcForDefaultScale","sourceList","width","height","_imageSrc$split2$","ScrollView","AnimatedScrollViewWithoutInvertedRefreshControl","AnimatedScrollViewWithInvertedRefreshControl","_ScrollView","splitLayoutProps","RefreshControl","AndroidSwipeRefreshLayoutCommands","_excluded2","_AndroidSwipeRefreshLayoutNativeComponent","ScrollViewNativeComponent","ScrollContentViewNativeComponent","AndroidHorizontalScrollViewNativeComponent","AndroidHorizontalScrollContentViewNativeComponent","View","ScrollViewContext","memoize","nativeInstance","mutator","createRefForwarder","animated","additionalOffset","keyboardScreenY","scrollTextInputIntoVisibleRect","FrameRateLogger","dismissKeyboard","IS_ANIMATING_TOUCH_START_THRESHOLD_MS","timeSinceLastMomentumScrollEnd","TextInputState","keyboardShouldPersistTaps","currentlyFocusedInput","hasFocusedTextInput","Keyboard","newContentInsetTop","indexOfIndex","previousHeader","NativeVerticalScrollViewTuple","NativeHorizontalScrollViewTuple","_ScrollViewContext","VERTICAL","HORIZONTAL","hasStickyHeaders","processDecelerationRate","ScrollViewStickyHeader","childArray","NativeFrameRateLogger","NativeKeyboardObserver","LayoutAnimation","isLayoutAnimationEnabled","onAnimationComplete","onAnimationDidFail","animationCompletionHasRun","raceWithAnimationId","onAnimationDidEnd","isFabric","translateY","setIsFabric","setNextHeaderLayoutY","hiddenOnScroll","scrollAnimatedValue","layoutY","layoutHeight","_haveReceivedInitialZeroTranslateY","_timer","setTranslateY","measured","nextHeaderLayoutY","collisionPoint","scrollViewHeight","stickStartPoint","animatedValueListener","setAnimatedTranslateY","animatedListenerId","newAnimatedTranslateY","setLayoutY","setLayoutHeight","setMeasured","_SectionList","SectionList","listRef","_stickySectionHeadersEnabled","Text","StatusBar","DrawerLayoutAndroid","DRAWER_STATES","_this$props$drawerBac","drawStatusBar","_StatusBar","_AndroidDrawerLayoutNativeComponent","NativeStatusBarManagerAndroid","NativeStatusBarManagerIOS","createStackEntry","mergePropsStack","mergedProps","ImageBackground","_Image","flattenedStyle","InputAccessoryView","_RCTInputAccessoryViewNativeComponent","KeyboardAvoidingView","_ref","_relativeKeyboardHeight2","AccessibilityInfo","keyboardFrame","_this$props$enabled","enabled","ModalInjection","Modal","uniqueModalIdentifier","_RCTModalHostViewNativeComponent","NativeI18nManager","i18nConstants","useImperativeHandle","useAndroidRippleForView","usePressState","testOnly_pressed","android_rippleConfig","focusable","android_disableSound","cancelable","delayHoverIn","delayHoverOut","hitSlop","setPressed","unstable_pressDelay","viewRef","pressed","rippleConfig","borderless","foreground","radius","trackColor","nativeSwitchRef","ios_backgroundColor","_SwitchNativeComponent","returnsFalse","returnsTrue","_AndroidSwitchNativeComponent","onChange","onValueChange","setNative","SwitchCommands","AndroidSwitchCommands","propsSelection","RCTSinglelineTextInputNativeCommands","RCTMultilineTextInputNativeCommands","mostRecentEventCount","inputRef","lastNativeText","selection","lastNativeSelection","viewCommands","AndroidTextInput","text","RCTSinglelineTextInputView","RCTMultilineTextInputView","useOnChangeSync","emptyFunctionThatReturnsTrue","setLastNativeText","setLastNativeSelection","inputRefValue","setMostRecentEventCount","_ref2$allowFontScalin","_ref2$rejectResponder","_ref2$underlineColorA","_excluded3","InternalTextInput","readOnly","enterKeyHint","enterKeyHintToReturnTypeMap","inputMode","inputModeToKeyboardTypeMap","autoCompleteWebToAutoCompleteAndroidMap","textContentType","autoCompleteWebToTextContentTypeMap","autoComplete","RCTTextInputViewConfig","touches","changedTouches","hasTouches","States","Signals","longDelayMS","extractSingleTouch","positionOnActivate","Position","BoundingDimensions","aY","deltaX","deltaY","curState","IsActive","IsPressingIn","IsLongPressingIn","PooledClass","pooler","DEFAULT_POOLER","standardReleaser","TouchableHighlight","TouchableWithoutFeedback","createPressabilityConfig","PASSTHROUGH_PROPS","RCTActionSheetManager","processedTintColor","processedCancelButtonTintColor","NativeAppearance","colorScheme","nativeColorScheme","AppState","NativeAppState","emitter","logError","eventUpdated","changeHandler","focusOrBlurHandler","NativeClipboard","Linking","NativeLinkingManager","NativeIntentAndroid","gestureState","nextDX","nextDY","PanResponder","interactionState","clearInteractionHandle","ofCurrent","TouchHistoryMath","PermissionsAndroid","PERMISSIONS","PERMISSION_REQUEST_RESULT","NativePermissionsAndroid","_requestPermission","response","_request","rationale","permission","NativePushNotificationManagerIOS","PushNotificationIOS","nativeNotif","PushNotificationEmitter","NOTIF_REGISTRATION_ERROR_EVENT","NOTIF_REGISTER_EVENT","DEVICE_LOCAL_NOTIF_EVENT","DEVICE_NOTIF_EVENT","_notifHandlers","notification","Share","content","NativeShareModule","NativeToastAndroid","useSyncExternalStore","Appearance","appearanceSubscription","setDimensions","_vibrating","_id","NativeVibration","_default_vibration_length","vibrateScheduler","pattern","nextIndex","YellowBox","useColorScheme","Colors","isDarkMode","Section","_ImageBackground","_HermesBadge","links","_react","_TouchableOpacity","openURLInBrowser","link","_cachedDevServerURL","NativeSourceCode","FALLBACK","_cachedFullBundleURL"],"mappings":"A,4B,M,K,M,K,I,I,Q,I,E,Q,M,K,G,E,U,M,K,K,M,G,E,M,K,M,K,M,M,M,MAuYC,MAAA,OAAA,IAAA,MAAA,GAAA,IAAA,KAAA,MAAA,IAAAA,MAAA,EAAAC,MAAA,EAAAC,M,OAAA,KC+OA,MAAA,GAAA,IAAA,MAAA,GAAA,IAAA,KAAA,MAAA,IAAAF,MAAA,EAAAC,MAAA,EAAAC,M,KAAA,KC9f8B,MAAA,GAAA,IAAA,MAAA,GAAA,IAAA,KAAA,GAAA,IAAAF,MAAA,EAAAC,MAAA,EAAAC,M,KAAA,KC/D1B,MAAA,GAAA,IAAA,MAAA,GAAA,IAAA,KAAA,GAAA,IAAAF,MAAA,EAAAC,MAAA,EAAAC,M,KAAA,K,M,OCjD6C,Q,O,M,QC6ZhD,Q,O,M,QCD8B,Q,O,M,QC/ZsF,I,O,M,QC0BjF,Q,O,M,QC0HpC,Q,O,M,QClJiH,Q,O,M,QCHA,Q,O,M,QCCD,I,O,M,QCFD,I,O,M,QCMW,Q,O,M,QCNT,I,O,M,QCEH,I,O,M,QCaH,Q,O,M,QCZE,Q,O,M,QCKF,Q,O,M,QCFL,I,O,M,QCqE7E,Q,O,M,QCxCzB,Q,O,M,QCUA,Q,O,M,QCA0B,I,O,M,QCiKI,Q,O,M,QC1M+E,Q,O,M,QCJC,I,O,M,QCwBM,I,O,M,QCxBL,I,O,M,QCwBjF,Q,O,M,QCscD,Q,O,M,QCvW7B,I,O,M,QClGiD,I,O,M,QCgGtB,Q,O,M,QCvDc,I,O,M,QC/BI,Q,O,M,QC2KnB,Q,O,M,QC/LwC,I,O,M,QCmJjE,Q,O,M,QCpID,I,O,M,QCgK4B,Q,O,M,QCrEsC,Q,O,M,QCvDjE,I,O,M,QCeD,I,O,M,QChDiE,Q,O,M,QCiCG,Q,O,M,QCxC5B,Q,O,M,QCsFxC,Q,O,M,QC9E+C,Q,O,M,QC2tQ9C,Q,O,M,QClvQ8B,Q,O,M,QC8CwB,Q,O,M,QCtBvD,I,O,M,QCjBwC,Q,O,M,QCSW,Q,O,M,QCTqD,Q,O,M,QCVM,I,O,M,QCGW,Q,O,M,QCJJ,I,O,M,QCAP,I,O,M,QCoJ5G,Q,O,M,QCvHF,Q,O,M,QCEoE,Q,O,M,QCiRlE,Q,O,M,QCvRuB,I,O,M,QC6CvB,Q,O,M,QCrBF,Q,O,M,QCsQA,Q,O,M,QCvOA,Q,O,M,QCxE2D,Q,O,M,QC6BzD,Q,O,M,QCSA,Q,O,M,QCWA,Q,O,M,QC/BF,Q,O,M,QCyNC,Q,O,M,QC3N8G,Q,O,M,QC3BC,I,O,M,QCcP,Q,O,M,QCNe,I,O,M,QC+CxF,Q,O,M,QCiFX,I,O,M,QCCpB,I,O,M,QCtC8B,Q,O,M,QCjE/B,Q,O,M,QCkByD,Q,O,M,QCjCjC,Q,O,M,QCPvB,Q,O,M,QCqMD,I,O,M,QC3BC,Q,O,M,QC9ID,Q,O,M,QCbyD,I,O,M,QC0tBzD,I,O,M,QClpBA,Q,O,M,QCgYiC,Q,O,M,QC7cqB,Q,O,M,QC0CxB,I,O,M,QC3B9B,I,O,M,QCAC,Q,O,M,QCknB8B,Q,O,M,QCzoBoE,Q,O,M,QCTU,Q,O,M,QC6KjF,Q,O,M,QC3HG,Q,O,M,QCkGV,Q,O,M,QCvHpB,I,O,M,QCg0BwD,I,O,M,QCn0BjB,Q,O,M,QCyBA,I,O,M,QCwRxC,Q,O,M,QChUwB,I,O,M,QCkIxB,I,O,M,QCxDkC,Q,O,M,QC2BhC,Q,O,M,QC9EiC,Q,O,M,QCuDV,Q,O,M,QCnEM,Q,O,M,QCMoC,Q,O,M,QClBf,Q,O,M,QCylBhD,I,O,M,QCnUsB,Q,O,M,QCxR6F,Q,O,M,QCJK,I,O,M,QCqB5H,Q,O,M,QCP+B,Q,O,M,QC4BV,Q,O,M,QCoIM,Q,O,M,QCrK3B,Q,O,M,QCmHE,Q,O,M,QCXqC,Q,O,M,QCvGvC,Q,O,M,QCuJsB,Q,O,M,QCnJrB,Q,O,M,QCqBmE,Q,O,M,QC1BpE,Q,O,M,QCqCA,Q,O,M,QC9B4B,Q,O,M,QCVkC,Q,O,M,QCoB7B,Q,O,M,QCpBkC,Q,O,M,QCoC5C,Q,O,M,QCrCkB,Q,O,M,QCYP,I,O,M,QCsBI,Q,O,M,QCxBiC,Q,O,M,QCuU3C,Q,O,M,QCvNC,Q,O,M,QCxHyB,Q,O,M,QCCM,Q,O,M,QCkI9B,I,O,M,QC7GD,I,O,M,QC/BwB,Q,O,M,QCSgB,Q,O,M,QCmFrE,Q,O,M,QCtEsC,Q,O,M,QC5BtC,Q,O,M,QCqB2F,I,O,M,QC6H9D,Q,O,M,QCVR,Q,O,M,QCpGQ,I,O,M,QCjBO,Q,O,M,QCsGH,Q,O,M,QC2BjC,Q,O,M,QC2C6C,Q,O,M,QCrBF,Q,O,M,QChHR,I,O,M,QCHT,Q,O,M,QC1BK,Q,O,M,QC2aA,I,O,M,QC1a9B,I,O,M,QCLkC,I,O,M,QCyPF,Q,O,M,QCvQ6E,Q,O,M,QCUlF,I,O,M,QCyBG,I,O,M,QCxBF,I,O,M,QCaA,I,O,M,QCLK,Q,O,M,QC2EC,Q,O,M,QC1EL,Q,O,M,QCEgB,I,O,M,QC8HV,Q,O,M,QCpHpC,Q,O,M,QC+EwB,Q,O,M,QCGA,Q,O,M,QCvEM,Q,O,M,QCiC7B,I,O,M,QCqCA,Q,O,M,QCCD,Q,O,M,QCzGoC,Q,O,M,QC0SO,Q,O,M,QChR3C,Q,O,M,QCgHA,Q,O,M,QC/GA,Q,O,M,QCrBmC,Q,O,M,QC1BnC,Q,O,M,QCM2W,Q,O,M,QC+I3W,I,O,M,QC+NC,Q,O,M,QC9VD,Q,O,M,QCKyB,I,O,M,QCGzB,Q,O,M,QCwE4B,Q,O,M,QCxFsC,Q,O,M,QCwDjE,Q,O,M,QClD+B,Q,O,M,QC6L/B,Q,O,M,QCgiB8C,Q,O,M,QCjpBpB,I,O,M,QCXuB,I,O,M,QC5Bf,Q,O,M,QCvBN,Q,O,M,QCPJ,Q,O,M,QC+ME,Q,O,M,QC1O3B,Q,O,M,QCckS,I,O,M,QCOnP,Q,O,M,QC04QC,Q,O,M,QCptQV,Q,O,M,QCrGkC,Q,O,M,QC1EvE,Q,O,M,QC0CmC,Q,O,M,QC3CA,Q,O,M,QCIY,Q,O,M,QCiB/C,Q,O,M,QC8XoC,Q,O,M,QCvHhB,Q,O,M,QCvOrB,Q,O,M,QCnCA,Q,O,M,QCs5BA,Q,O,M,QCn7B6B,Q,O,M,QCC+B,Q,O,M,QC2BF,Q,O,M,QCO1D,Q,O,M,QC9BA,I,O,M,QCuDa,Q,O,M,QC9CZ,Q,O,M,QC6C6B,Q,O,M,QC6XC,I,O,M,QCrbc,Q,O,M,QCL7C,Q,O,M,QC8CC,Q,O,M,QCrDoC,I,O,M,QC6DG,Q,O,M,QCmFA,Q,O,M,QCxBI,Q,O,M,QCpFC,Q,O,M,QC4BU,Q,O,M,QCjBV,Q,O,M,QCyEH,Q,O,M,QCxGG,Q,O,M,QCQA,Q,O,M,QCIT,Q,O,M,QCQU,Q,O,M,QC1BhB,Q,O,M,QC4Ne,Q,O,M,QCzIL,Q,O,M,QCcK,Q,O,M,QCkPL,Q,O,M,QCpCd,Q,O,M,WCtRd,Q,O,M,WCisBZ,Q,O,M,WC1sBoD,Q,O,M,WCsjBpD,Q,O,M,WCnhBoE,Q,O,M,WCEpE,Q,O,M,WCYE,Q,O,M,WCLmD,Q,O,M,WC6BS,Q,O,M,WC3BA,Q,O,M,WC+H3B,Q,O,M,WC7BT,Q,O,M,WC6IG,Q,O,M,WCzET,Q,O,M,WCtFpB,I,O,M,WClJ6D,Q,O,M,WCkL3D,Q,O,M,WClGF,I,O,M,WCtCqD,Q,O,M,WCCrD,Q,O,M,WCjBA,Q,O,M,WC6JA,Q,O,M,WC5JA,Q,O,M,WCvBsD,Q,O,M,WC8BQ,Q,O,M,WCjCI,Q,O,M,WCwOhE,Q,O,M,WCvN8D,Q,O,M,WCEhE,I,O,M,WCjBiE,Q,O,M,WCDC,Q,O,M,WCCD,Q,O,M,WCDF,Q,O,M,WCCQ,Q,O,M,WCAH,Q,O,M,WCDX,Q,O,M,WC+KzD,Q,O,M,WCpKA,Q,O,M,WCgqByB,Q,O,M,WC5oBE,I,O,M,WCO1B,Q,O,M,WCwMD,Q,O,M,WC6yDgC,Q,O,M,WCn+DJ,Q,O,M,WCrDN,I,O,M,WCHE,I,O,M,WCmDtB,Q,O,M,WCsL6B,Q,O,M,WCnOH,Q,O,M,WC8UM,Q,O,M,WCnHhC,Q,O,M,WCjIF,Q,O,M,WCsCE,Q,O,M,WC+cA,Q,O,M,WCtlBF,Q,O,M,WCoU6C,Q,O,M,WCxTmE,I,O,M,WCT3F,Q,O,M,WCOrB,Q,O,M,WC2HsC,Q,O,M,WCrGT,Q,O,M,WCduC,Q,O,M,WC2CpE,Q,O,M,WC3DA,I,O,M,WC4GgC,Q,O,M,WC2ED,Q,O,M,WClI/B,Q,O,M,WCHC,Q,O,M,WC20D4B,Q,O,M,WCh0DG,Q,O,M,WCzD+B,Q,O,M,WC8C/D,I,O,M,WClDgC,Q,O,M,WCwLW,Q,O,M,WCJX,Q,O,M,WCrLgC,Q,O,M,WCMhE,Q,O,M,WC4CwD,Q,O,M,WCxChB,Q,O,M,WCEM,Q,O,M,WCoB7C,Q,O,M,WC9BgE,Q,O,M,WCwJ1B,Q,O,M,WCqIa,Q,O,M,WChRpD,Q,O,M,WC6I4B,Q,O,M,WC7J5B,Q,O,M,WCF4C,Q,O,M,WCkXR,Q,O,M,WCgHV,Q,O,M,WC/aU,Q,O,M,WCqBA,Q,O,M,WCmCpC,Q,O,M,WCXgC,Q,O,M,WCGG,Q,O,M,WC1FlC,Q,O,M,WCmOiC,Q,O,M,WCsDJ,Q,O,M,WCpS9B,I,O,M,WCM4D,Q,O,M,WCsH3D,Q,O,M,WCxEA,Q,O,M,WCzC0D,Q,O,M,WC4U7B,Q,O,M,WC1P9B,Q,O,M,WC1EsB,Q,O,M,WCTrB,Q,O,M,WCuOmC,Q,O,M,WClMnC,Q,O,M,WCDA,Q,O,M,WCumD0D,Q,O,M,WC3nDT,Q,O,M,WCkIqB,Q,O,M,WC9HtB,Q,O,M,WC65BvB,Q,O,M,WC75BS,Q,O,M,WCwFP,Q,O,M,WClGH,Q,O,M,WCmWC,Q,O,M,WCtKe,Q,O,M,WCzMT,Q,O,M,WCDO,Q,O,M,WCsIR,Q,O,M,WCtGmC,Q,O,M,WCqDjE,Q,O,M,WCvEyD,Q,O,M,WC4Ff,Q,O,M,WCrGlB,I,O,M,WCEwC,Q,O,M,WCWhE,Q,O,M,WCnBiE,Q,O,M,WCRjC,Q,O,M,WC2DL,Q,O,M,WCvCwC,Q,O,M,WCoG3B,Q,O,M,WCvGoB,Q,O,M,WCHC,Q,O,M,WC0OzC,Q,O,M,WCiUK,Q,O,M,WC7aO,I,O,M,WCgJU,Q,O,M,WC7NuB,Q,O,M,WCue9B,Q,O,M,WCpepC,Q,O,M,WC9CyB,I,O,M,WC2IH,Q,O,M,WCrJqC,Q,O,M,WCmD9B,Q,O,M,WCpCwC,Q,O,M,WCbrE,Q,O,M,WCCA,Q,O,M,WCrBA,Q,O,M,WCMgL,Q,O,M,WCoChL,Q,O,M,WCSyB,Q,O,M,WCyDC,Q,O,M,WCzFwC,Q,O,M,WCmDhE,Q,O,M,WCrDD,I,O,M,WCgGgB,Q,O,M,WCtG+C,Q,O,M,WCGhE,I,O,M,WCsB+B,Q,O,M,WCoCX,Q,O,M,WCxBK,Q,O,M,WCpDqM,Q,O,M,WCY5J,Q,O,M,WCgI5C,Q,O,M,WCtHW,Q,O,M,WCoBJ,Q,O,M,WCJG,Q,O,M,W,I,O,M,K,M,K,E,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I9apBvB,QACAC,MAAF,MAAA,aAAA,M,KAA+B,IAC7B,M,KACc,QACL,IAAR,IAIG,EAAH,IAEgB,EAAL,KAAA,IAwII,MAoCJ,MAKC,KAAH,MAYO,KAAH,QAQb,OAiBQ,UACA,IASQ,M,KAIF,MACS,IAAH,IACOC,MAAG,KAAA,OAAA,IAAA,IAAV,IAqI9B,EAtWD,EACYC,MAAa,OAAA,KAAhB,GAAA,IAKP,EAMF,GACMC,GAAAA,IAAO,MAAX,IAqBeC,IAGC,EAC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AAAD,EAAAD,IAAA,E,W,I,I,M,M,K,I,Q,OCa7E/H,MAAA,OAAA,MAAA,KAAA,KAAA,KAAA,KAAA,KAAyC,EAAzC,SAAA,QAAA,IAAAM,GAAAA,IAAAoN,IAAA,GAAApN,IAAA,IAAAwF,IAAAD,MAAA,MAAA,KAAA,IAAA,UAAA7F,MAAA,KAAAM,IAAA,IAAA,IAAA,KAAA,IAAA,SAAA,EAAA,IAAA,EAAAwF,GAAAA,IAAAD,MAAA,MAAA,KAAA6H,GAAAA,IAAA,IAAA,E,Q,O,O,M,M,K,I,Q,O,K,M,K,M,K,M,K,M,K,M,K,M,K,M,K,QCsFC,EAhGM,GACE,MACA,MACE,MACQ,MAQf9H,GAAAA,IAAOC,IADT,MAQS,MAAA,KAAwC,KAAA,MARjD,IACS,MAAA,KAAwC,mBAAA,IADjD,EAUF,EAKSD,GAAAA,IAAOC,OAAA,MAAA,KAA6D,SAAA,KAA3E,EAQOD,GAAAA,IAAOC,OAAA,MAAA,KAAgD,SAAA,KAA9D,EAKK,SAKDjG,GAAAA,IAAM,QAAV,IASSgG,IAAOC,OAAA,MAAA,KAAiD,MAAA,OAA/D,EANOD,IAAOC,MAAA,MAAA,KAAiD,MAAA,OAA/D,EAkBKD,GAAAA,IAAOC,OAAA,MAAA,KAAwD,YAAA,MAAtE,EAaAD,GAAAA,IAAOC,OAAA,MAAA,KAA0E,SAAA,KAGnF,EAOSD,GAAAA,IAAOC,OAAA,MAAA,KAAyD,YAAA,MAAvE,EAMK,EACE+E,UAAO,KAAd,E,WCtFqB,MAAA,KAGb,MAAV,MAGE+C,IAAAA,KAAAA,MAAoC,UAAA,MAHtC,EACqC,MAAd,MADvB,GAMc,MAAkC,E,mB,I,Q,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,OCnBzC,IAAA,QAEU,IAAA,KAUL,IACC,IACI,IACH,IACD,EACA,KADA,KAAH,MAmCQnM,MAAK,KAAR,IACe,IACT,IACA,IAqBRxB,MAAM,KAAT,IAiCW,KAAY,EACf,KADe,KAUd,KAVc,KAkBtB,KAlBsB,KAAA,KAsBnB,KAtBmB,KAA3B,MA+BqB,UAGV,KAHU,MASd,KATc,MAAH,MAeA,KAAH,MAgBJ,KA2BkC,MAAC,EACpC,KADoC,IAAD,KAAxB,IAWH,QACH,QACD,QACN,IAAH,IACM,UAAA,MAAH,IAoEiB,EACf,KADe,KAIT,KAJS,KAAA,IAAH,IAoEX,IACE,IAYQ,EACE,UADF,IAAA,IAOC,EACC,UADD,IAKV,QALU,IAOS,EACR,UADQ,IAKnB,QALmB,IAOX,EACG,UADH,IAAA,IAOR,MAAA,IAAA,IAID,MAAA,IAAA,IAID,MAAA,IAAA,IAII,MAAA,IAAA,IAIW,MAAA,IAEb,IAFa,IAIb,MAAA,IAAsD,IAAtD,IACC,MAAA,IAAuD,IAAvD,IACG,MAAA,IAEJ,IAFI,IAnDL,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAH,IA+YC,EACqB,KADrB,KAjRY,EACR,KADQ,KAAA,KAKR,KALQ,KAAA,KAAA,KAAH,IAgWI,EAAH,OAkFrB,IAAA,KAAA,MAAyD,MAGzD,IAA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DJ,YADI,YADP,YADG,YADH,QADG,YADJ,YADE,QADH,YADO,YADH,YADC,YADA,QADG,YADG,QADA,QADE,QADF,QADD,YADF,YADA,QADF,QADM,YADV,YADC,YADF,QADI,QADL,YADO,YADG,QADA,QADA,YADF,QADC,YADF,YADF,YADA,YADC,YADD,YADW,YADX,YADC,YADD,YADG,QADH,YADI,YADL,YADH,YADA,QADC,YADG,YADF,YADC,YADJ,YADO,QADN,YADD,YADK,YADL,YADM,YADD,YADF,QADI,YADA,YADF,QADC,QADH,QADA,QADI,YADH,YADE,QADG,QADA,QADA,QADA,YADD,YADF,YADH,YADG,YADA,QADI,YADH,YADF,YADD,QADC,YADD,YADK,QADL,QADA,QADJ,YADG,YADC,QADM,YADT,YADI,QADC,QADD,YADE,YADF,YADJ,YADK,QADN,YADU,KADT,YADC,YADD,YADA,QADK,QADN,YADQ,YADH,IAFE,E,O,M,K,I,Q,S,M,M,MChSK,KAE3B,MAEkC,KAOlC,MAEgC,KAIhC,MAAA,EAjB2B,EAAyC,KAAhClxC,MAAA,KAAA,UAAA,IAAA,MAAgC,IAAhC,IAAA,IAAA,GAAgC,IAC7D,EAAA,KAAP,EAGkC,OAG9B,IAAJ,KAGA,EAFE,EAK8B,GAGhC,E,E,QCJY,QAAsB,EAfpC,KAGMA,MAAa,KAAA,KAAjB,GAMQ,UAAA,KACC,KAACoJ,MAAD,KAET,EARE,E,K,O,ICoDqD,KAAH,I,QAgNxC,QAAoB,EA/PlC,aAGM,UAAJ,SACoBtH,MAAM,KAAA,IAAC,iBAAD,IAAA,IACY,IAGR,KAAA,KAOLwC,MAPvB,GACuB6sC,IACZ,IACA,IAF2C,MAA1C,KAAO,KAKjB,IACqB,KAAA7sC,IAAAD,IAAA,IAAA,KAAA,EAAA,OAAA,KAPK,KAAA,QAA5B,GAiBF,EAsBuD,gBACxBvC,MAAM,KAAA,IAAC,iBAAD,IAAA,IAErC,IAAA,WAAA,WAAA,WAAA,QAAA,QAAA,IAwEyBg4B,MAAK,QAAN,GAAe7zB,MAAM,KAAlC,EAAA,IAAA,IAAP,EApB0C,KAAA,OAE1C,IAAe,KA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,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,OCXzC,IAAA,QAEU,IAAA,KAUL,MACC,IACI,IACH,IACD,EACA,KADA,KAAH,MAmCQnsC,MAAK,KAAR,IACe,IACT,IACA,IAqBRxB,MAAM,KAAT,IAiCW,KAAY,EACf,KADe,KAUd,KAVc,KAkBtB,KAlBsB,KAAA,KAsBnB,KAtBmB,KAA3B,MA+BqB,UAGV,KAHU,MASd,KATc,MAAH,MAeA,KAAH,MAgBJ,KA2BkC,MAAC,EACpC,KADoC,IAAD,KAAxB,IAWH,QACH,QACD,QACN,IAAH,IACM,UAAA,MAAH,IAoEiB,EACf,KADe,KAIT,KAJS,KAAA,IAAH,IAoEX,IACE,IAYQ,EACE,UADF,IAAA,IAOC,EACC,UADD,IAKV,QALU,IAOS,EACR,UADQ,IAKnB,QALmB,IAOX,EACG,UADH,IAAA,IAOR,MAAA,IAAA,IAID,MAAA,IAAA,IAID,MAAA,IAAA,IAII,MAAA,IAAA,IAIW,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AAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,QAAA,QAAA,QAAA,QAAA,QAAA,MAyJA,YAFsB,YADL,YADI,YADL,YADA,YADC,QADG,YADH,YADC,QADH,YADD,QADM,QADE,YADP,QADK,QADA,QADA,YADF,YADD,YADA,YADE,QADA,YADE,YADJ,YADK,QADF,YADA,YADN,QADU,YADP,YADI,YADN,YADA,YADA,YADK,YADC,YADG,YADA,YADJ,YADI,YADP,YADG,YADH,QADG,YADJ,YADE,QADH,YADO,YADH,YADC,YADA,QADG,YADG,QADA,QADE,QADF,QADD,YADF,YADA,QADF,QADM,YADV,YADC,YADF,QADI,QADL,YADO,YADG,QADA,QADA,YADF,QADC,YADF,YADF,YADA,YADC,YADD,YADW,YADX,YADC,YADD,YADG,QADH,YADI,YADL,YADH,YADA,QADC,YADG,YADF,YADC,YADJ,YADO,QADN,YADD,YADK,YADL,YADM,YADD,YADF,QADI,YADA,YADF,QADC,QADH,QADA,QADI,YADH,YADE,QADG,QADA,QADA,QADA,YADD,YADF,YADH,YADG,YADA,QADI,YADH,YADF,YADD,QADC,YADD,YADK,QADL,QADA,QADJ,YADG,YADC,QADM,YADT,YADI,QADC,QADD,YADE,YADF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","sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n *\n * @format\n * @oncall react_native\n * @polyfill\n */\n\n\"use strict\";\n\n/* eslint-disable no-bitwise */\n// A simpler $ArrayLike. Not iterable and doesn't have a `length`.\n// This is compatible with actual arrays as well as with objects that look like\n// {0: 'value', 1: '...'}\nglobal.__r = metroRequire;\nglobal[`${__METRO_GLOBAL_PREFIX__}__d`] = define;\nglobal.__c = clear;\nglobal.__registerSegment = registerSegment;\nvar modules = clear();\n\n// Don't use a Symbol here, it would pull in an extra polyfill with all sorts of\n// additional stuff (e.g. Array.from).\nconst EMPTY = {};\nconst CYCLE_DETECTED = {};\nconst { hasOwnProperty } = {};\nif (__DEV__) {\n global.$RefreshReg$ = () => {};\n global.$RefreshSig$ = () => (type) => type;\n}\nfunction clear() {\n modules = Object.create(null);\n\n // We return modules here so that we can assign an initial value to modules\n // when defining it. Otherwise, we would have to do \"let modules = null\",\n // which will force us to add \"nullthrows\" everywhere.\n return modules;\n}\nif (__DEV__) {\n var verboseNamesToModuleIds = Object.create(null);\n var initializingModuleIds = [];\n}\nfunction define(factory, moduleId, dependencyMap) {\n if (modules[moduleId] != null) {\n if (__DEV__) {\n // (We take `inverseDependencies` from `arguments` to avoid an unused\n // named parameter in `define` in production.\n const inverseDependencies = arguments[4];\n\n // If the module has already been defined and the define method has been\n // called with inverseDependencies, we can hot reload it.\n if (inverseDependencies) {\n global.__accept(moduleId, factory, dependencyMap, inverseDependencies);\n }\n }\n\n // prevent repeated calls to `global.nativeRequire` to overwrite modules\n // that are already loaded\n return;\n }\n const mod = {\n dependencyMap,\n factory,\n hasError: false,\n importedAll: EMPTY,\n importedDefault: EMPTY,\n isInitialized: false,\n publicModule: {\n exports: {},\n },\n };\n modules[moduleId] = mod;\n if (__DEV__) {\n // HMR\n mod.hot = createHotReloadingObject();\n\n // DEBUGGABLE MODULES NAMES\n // we take `verboseName` from `arguments` to avoid an unused named parameter\n // in `define` in production.\n const verboseName = arguments[3];\n if (verboseName) {\n mod.verboseName = verboseName;\n verboseNamesToModuleIds[verboseName] = moduleId;\n }\n }\n}\nfunction metroRequire(moduleId) {\n if (__DEV__ && typeof moduleId === \"string\") {\n const verboseName = moduleId;\n moduleId = verboseNamesToModuleIds[verboseName];\n if (moduleId == null) {\n throw new Error(`Unknown named module: \"${verboseName}\"`);\n } else {\n console.warn(\n `Requiring module \"${verboseName}\" by name is only supported for ` +\n \"debugging purposes and will BREAK IN PRODUCTION!\"\n );\n }\n }\n\n //$FlowFixMe: at this point we know that moduleId is a number\n const moduleIdReallyIsNumber = moduleId;\n if (__DEV__) {\n const initializingIndex = initializingModuleIds.indexOf(\n moduleIdReallyIsNumber\n );\n if (initializingIndex !== -1) {\n const cycle = initializingModuleIds\n .slice(initializingIndex)\n .map((id) => (modules[id] ? modules[id].verboseName : \"[unknown]\"));\n if (shouldPrintRequireCycle(cycle)) {\n cycle.push(cycle[0]); // We want to print A -> B -> A:\n console.warn(\n `Require cycle: ${cycle.join(\" -> \")}\\n\\n` +\n \"Require cycles are allowed, but can result in uninitialized values. \" +\n \"Consider refactoring to remove the need for a cycle.\"\n );\n }\n }\n }\n const module = modules[moduleIdReallyIsNumber];\n return module && module.isInitialized\n ? module.publicModule.exports\n : guardedLoadModule(moduleIdReallyIsNumber, module);\n}\n\n// We print require cycles unless they match a pattern in the\n// `requireCycleIgnorePatterns` configuration.\nfunction shouldPrintRequireCycle(modules) {\n const regExps =\n global[__METRO_GLOBAL_PREFIX__ + \"__requireCycleIgnorePatterns\"];\n if (!Array.isArray(regExps)) {\n return true;\n }\n const isIgnored = (module) =>\n module != null && regExps.some((regExp) => regExp.test(module));\n\n // Print the cycle unless any part of it is ignored\n return modules.every((module) => !isIgnored(module));\n}\nfunction metroImportDefault(moduleId) {\n if (__DEV__ && typeof moduleId === \"string\") {\n const verboseName = moduleId;\n moduleId = verboseNamesToModuleIds[verboseName];\n }\n\n //$FlowFixMe: at this point we know that moduleId is a number\n const moduleIdReallyIsNumber = moduleId;\n if (\n modules[moduleIdReallyIsNumber] &&\n modules[moduleIdReallyIsNumber].importedDefault !== EMPTY\n ) {\n return modules[moduleIdReallyIsNumber].importedDefault;\n }\n const exports = metroRequire(moduleIdReallyIsNumber);\n const importedDefault =\n exports && exports.__esModule ? exports.default : exports;\n\n // $FlowFixMe The metroRequire call above will throw if modules[id] is null\n return (modules[moduleIdReallyIsNumber].importedDefault = importedDefault);\n}\nmetroRequire.importDefault = metroImportDefault;\nfunction metroImportAll(moduleId) {\n if (__DEV__ && typeof moduleId === \"string\") {\n const verboseName = moduleId;\n moduleId = verboseNamesToModuleIds[verboseName];\n }\n\n //$FlowFixMe: at this point we know that moduleId is a number\n const moduleIdReallyIsNumber = moduleId;\n if (\n modules[moduleIdReallyIsNumber] &&\n modules[moduleIdReallyIsNumber].importedAll !== EMPTY\n ) {\n return modules[moduleIdReallyIsNumber].importedAll;\n }\n const exports = metroRequire(moduleIdReallyIsNumber);\n let importedAll;\n if (exports && exports.__esModule) {\n importedAll = exports;\n } else {\n importedAll = {};\n\n // Refrain from using Object.assign, it has to work in ES3 environments.\n if (exports) {\n for (const key in exports) {\n if (hasOwnProperty.call(exports, key)) {\n importedAll[key] = exports[key];\n }\n }\n }\n importedAll.default = exports;\n }\n\n // $FlowFixMe The metroRequire call above will throw if modules[id] is null\n return (modules[moduleIdReallyIsNumber].importedAll = importedAll);\n}\nmetroRequire.importAll = metroImportAll;\n\n// The `require.context()` syntax is never executed in the runtime because it is converted\n// to `require()` in `metro/src/ModuleGraph/worker/collectDependencies.js` after collecting\n// dependencies. If the feature flag is not enabled then the conversion never takes place and this error is thrown (development only).\nmetroRequire.context = function fallbackRequireContext() {\n if (__DEV__) {\n throw new Error(\n \"The experimental Metro feature `require.context` is not enabled in your project.\\nThis can be enabled by setting the `transformer.unstable_allowRequireContext` property to `true` in your Metro configuration.\"\n );\n }\n throw new Error(\n \"The experimental Metro feature `require.context` is not enabled in your project.\"\n );\n};\n\n// `require.resolveWeak()` is a compile-time primitive (see collectDependencies.js)\nmetroRequire.resolveWeak = function fallbackRequireResolveWeak() {\n if (__DEV__) {\n throw new Error(\n \"require.resolveWeak cannot be called dynamically. Ensure you are using the same version of `metro` and `metro-runtime`.\"\n );\n }\n throw new Error(\"require.resolveWeak cannot be called dynamically.\");\n};\nlet inGuard = false;\nfunction guardedLoadModule(moduleId, module) {\n if (!inGuard && global.ErrorUtils) {\n inGuard = true;\n let returnValue;\n try {\n returnValue = loadModuleImplementation(moduleId, module);\n } catch (e) {\n // TODO: (moti) T48204692 Type this use of ErrorUtils.\n global.ErrorUtils.reportFatalError(e);\n }\n inGuard = false;\n return returnValue;\n } else {\n return loadModuleImplementation(moduleId, module);\n }\n}\nconst ID_MASK_SHIFT = 16;\nconst LOCAL_ID_MASK = ~0 >>> ID_MASK_SHIFT;\nfunction unpackModuleId(moduleId) {\n const segmentId = moduleId >>> ID_MASK_SHIFT;\n const localId = moduleId & LOCAL_ID_MASK;\n return {\n segmentId,\n localId,\n };\n}\nmetroRequire.unpackModuleId = unpackModuleId;\nfunction packModuleId(value) {\n return (value.segmentId << ID_MASK_SHIFT) + value.localId;\n}\nmetroRequire.packModuleId = packModuleId;\nconst moduleDefinersBySegmentID = [];\nconst definingSegmentByModuleID = new Map();\nfunction registerSegment(segmentId, moduleDefiner, moduleIds) {\n moduleDefinersBySegmentID[segmentId] = moduleDefiner;\n if (__DEV__) {\n if (segmentId === 0 && moduleIds) {\n throw new Error(\n \"registerSegment: Expected moduleIds to be null for main segment\"\n );\n }\n if (segmentId !== 0 && !moduleIds) {\n throw new Error(\n \"registerSegment: Expected moduleIds to be passed for segment #\" +\n segmentId\n );\n }\n }\n if (moduleIds) {\n moduleIds.forEach((moduleId) => {\n if (!modules[moduleId] && !definingSegmentByModuleID.has(moduleId)) {\n definingSegmentByModuleID.set(moduleId, segmentId);\n }\n });\n }\n}\nfunction loadModuleImplementation(moduleId, module) {\n if (!module && moduleDefinersBySegmentID.length > 0) {\n const segmentId = definingSegmentByModuleID.get(moduleId) ?? 0;\n const definer = moduleDefinersBySegmentID[segmentId];\n if (definer != null) {\n definer(moduleId);\n module = modules[moduleId];\n definingSegmentByModuleID.delete(moduleId);\n }\n }\n const nativeRequire = global.nativeRequire;\n if (!module && nativeRequire) {\n const { segmentId, localId } = unpackModuleId(moduleId);\n nativeRequire(localId, segmentId);\n module = modules[moduleId];\n }\n if (!module) {\n throw unknownModuleError(moduleId);\n }\n if (module.hasError) {\n throw module.error;\n }\n if (__DEV__) {\n var Systrace = requireSystrace();\n var Refresh = requireRefresh();\n }\n\n // We must optimistically mark module as initialized before running the\n // factory to keep any require cycles inside the factory from causing an\n // infinite require loop.\n module.isInitialized = true;\n const { factory, dependencyMap } = module;\n if (__DEV__) {\n initializingModuleIds.push(moduleId);\n }\n try {\n if (__DEV__) {\n // $FlowIgnore: we know that __DEV__ is const and `Systrace` exists\n Systrace.beginEvent(\"JS_require_\" + (module.verboseName || moduleId));\n }\n const moduleObject = module.publicModule;\n if (__DEV__) {\n moduleObject.hot = module.hot;\n var prevRefreshReg = global.$RefreshReg$;\n var prevRefreshSig = global.$RefreshSig$;\n if (Refresh != null) {\n const RefreshRuntime = Refresh;\n global.$RefreshReg$ = (type, id) => {\n RefreshRuntime.register(type, moduleId + \" \" + id);\n };\n global.$RefreshSig$ =\n RefreshRuntime.createSignatureFunctionForTransform;\n }\n }\n moduleObject.id = moduleId;\n\n // keep args in sync with with defineModuleCode in\n // metro/src/Resolver/index.js\n // and metro/src/ModuleGraph/worker.js\n factory(\n global,\n metroRequire,\n metroImportDefault,\n metroImportAll,\n moduleObject,\n moduleObject.exports,\n dependencyMap\n );\n\n // avoid removing factory in DEV mode as it breaks HMR\n if (!__DEV__) {\n // $FlowFixMe: This is only sound because we never access `factory` again\n module.factory = undefined;\n module.dependencyMap = undefined;\n }\n if (__DEV__) {\n // $FlowIgnore: we know that __DEV__ is const and `Systrace` exists\n Systrace.endEvent();\n if (Refresh != null) {\n registerExportsForReactRefresh(Refresh, moduleObject.exports, moduleId);\n }\n }\n return moduleObject.exports;\n } catch (e) {\n module.hasError = true;\n module.error = e;\n module.isInitialized = false;\n module.publicModule.exports = undefined;\n throw e;\n } finally {\n if (__DEV__) {\n if (initializingModuleIds.pop() !== moduleId) {\n throw new Error(\n \"initializingModuleIds is corrupt; something is terribly wrong\"\n );\n }\n global.$RefreshReg$ = prevRefreshReg;\n global.$RefreshSig$ = prevRefreshSig;\n }\n }\n}\nfunction unknownModuleError(id) {\n let message = 'Requiring unknown module \"' + id + '\".';\n if (__DEV__) {\n message +=\n \" If you are sure the module exists, try restarting Metro. \" +\n \"You may also want to run `yarn` or `npm install`.\";\n }\n return Error(message);\n}\nif (__DEV__) {\n // $FlowFixMe[prop-missing]\n metroRequire.Systrace = {\n beginEvent: () => {},\n endEvent: () => {},\n };\n // $FlowFixMe[prop-missing]\n metroRequire.getModules = () => {\n return modules;\n };\n\n // HOT MODULE RELOADING\n var createHotReloadingObject = function () {\n const hot = {\n _acceptCallback: null,\n _disposeCallback: null,\n _didAccept: false,\n accept: (callback) => {\n hot._didAccept = true;\n hot._acceptCallback = callback;\n },\n dispose: (callback) => {\n hot._disposeCallback = callback;\n },\n };\n return hot;\n };\n let reactRefreshTimeout = null;\n const metroHotUpdateModule = function (\n id,\n factory,\n dependencyMap,\n inverseDependencies\n ) {\n const mod = modules[id];\n if (!mod) {\n if (factory) {\n // New modules are going to be handled by the define() method.\n return;\n }\n throw unknownModuleError(id);\n }\n if (!mod.hasError && !mod.isInitialized) {\n // The module hasn't actually been executed yet,\n // so we can always safely replace it.\n mod.factory = factory;\n mod.dependencyMap = dependencyMap;\n return;\n }\n const Refresh = requireRefresh();\n const refreshBoundaryIDs = new Set();\n\n // In this loop, we will traverse the dependency tree upwards from the\n // changed module. Updates \"bubble\" up to the closest accepted parent.\n //\n // If we reach the module root and nothing along the way accepted the update,\n // we know hot reload is going to fail. In that case we return false.\n //\n // The main purpose of this loop is to figure out whether it's safe to apply\n // a hot update. It is only safe when the update was accepted somewhere\n // along the way upwards for each of its parent dependency module chains.\n //\n // We perform a topological sort because we may discover the same\n // module more than once in the list of things to re-execute, and\n // we want to execute modules before modules that depend on them.\n //\n // If we didn't have this check, we'd risk re-evaluating modules that\n // have side effects and lead to confusing and meaningless crashes.\n\n let didBailOut = false;\n let updatedModuleIDs;\n try {\n updatedModuleIDs = topologicalSort(\n [id],\n // Start with the changed module and go upwards\n (pendingID) => {\n const pendingModule = modules[pendingID];\n if (pendingModule == null) {\n // Nothing to do.\n return [];\n }\n const pendingHot = pendingModule.hot;\n if (pendingHot == null) {\n throw new Error(\n \"[Refresh] Expected module.hot to always exist in DEV.\"\n );\n }\n // A module can be accepted manually from within itself.\n let canAccept = pendingHot._didAccept;\n if (!canAccept && Refresh != null) {\n // Or React Refresh may mark it accepted based on exports.\n const isBoundary = isReactRefreshBoundary(\n Refresh,\n pendingModule.publicModule.exports\n );\n if (isBoundary) {\n canAccept = true;\n refreshBoundaryIDs.add(pendingID);\n }\n }\n if (canAccept) {\n // Don't look at parents.\n return [];\n }\n // If we bubble through the roof, there is no way to do a hot update.\n // Bail out altogether. This is the failure case.\n const parentIDs = inverseDependencies[pendingID];\n if (parentIDs.length === 0) {\n // Reload the app because the hot reload can't succeed.\n // This should work both on web and React Native.\n performFullRefresh(\"No root boundary\", {\n source: mod,\n failed: pendingModule,\n });\n didBailOut = true;\n return [];\n }\n // This module can't handle the update but maybe all its parents can?\n // Put them all in the queue to run the same set of checks.\n return parentIDs;\n },\n () => didBailOut // Should we stop?\n ).reverse();\n } catch (e) {\n if (e === CYCLE_DETECTED) {\n performFullRefresh(\"Dependency cycle\", {\n source: mod,\n });\n return;\n }\n throw e;\n }\n if (didBailOut) {\n return;\n }\n\n // If we reached here, it is likely that hot reload will be successful.\n // Run the actual factories.\n const seenModuleIDs = new Set();\n for (let i = 0; i < updatedModuleIDs.length; i++) {\n const updatedID = updatedModuleIDs[i];\n if (seenModuleIDs.has(updatedID)) {\n continue;\n }\n seenModuleIDs.add(updatedID);\n const updatedMod = modules[updatedID];\n if (updatedMod == null) {\n throw new Error(\"[Refresh] Expected to find the updated module.\");\n }\n const prevExports = updatedMod.publicModule.exports;\n const didError = runUpdatedModule(\n updatedID,\n updatedID === id ? factory : undefined,\n updatedID === id ? dependencyMap : undefined\n );\n const nextExports = updatedMod.publicModule.exports;\n if (didError) {\n // The user was shown a redbox about module initialization.\n // There's nothing for us to do here until it's fixed.\n return;\n }\n if (refreshBoundaryIDs.has(updatedID)) {\n // Since we just executed the code for it, it's possible\n // that the new exports make it ineligible for being a boundary.\n const isNoLongerABoundary = !isReactRefreshBoundary(\n Refresh,\n nextExports\n );\n // It can also become ineligible if its exports are incompatible\n // with the previous exports.\n // For example, if you add/remove/change exports, we'll want\n // to re-execute the importing modules, and force those components\n // to re-render. Similarly, if you convert a class component\n // to a function, we want to invalidate the boundary.\n const didInvalidate = shouldInvalidateReactRefreshBoundary(\n Refresh,\n prevExports,\n nextExports\n );\n if (isNoLongerABoundary || didInvalidate) {\n // We'll be conservative. The only case in which we won't do a full\n // reload is if all parent modules are also refresh boundaries.\n // In that case we'll add them to the current queue.\n const parentIDs = inverseDependencies[updatedID];\n if (parentIDs.length === 0) {\n // Looks like we bubbled to the root. Can't recover from that.\n performFullRefresh(\n isNoLongerABoundary\n ? \"No longer a boundary\"\n : \"Invalidated boundary\",\n {\n source: mod,\n failed: updatedMod,\n }\n );\n return;\n }\n // Schedule all parent refresh boundaries to re-run in this loop.\n for (let j = 0; j < parentIDs.length; j++) {\n const parentID = parentIDs[j];\n const parentMod = modules[parentID];\n if (parentMod == null) {\n throw new Error(\"[Refresh] Expected to find parent module.\");\n }\n const canAcceptParent = isReactRefreshBoundary(\n Refresh,\n parentMod.publicModule.exports\n );\n if (canAcceptParent) {\n // All parents will have to re-run too.\n refreshBoundaryIDs.add(parentID);\n updatedModuleIDs.push(parentID);\n } else {\n performFullRefresh(\"Invalidated boundary\", {\n source: mod,\n failed: parentMod,\n });\n return;\n }\n }\n }\n }\n }\n if (Refresh != null) {\n // Debounce a little in case there are multiple updates queued up.\n // This is also useful because __accept may be called multiple times.\n if (reactRefreshTimeout == null) {\n reactRefreshTimeout = setTimeout(() => {\n reactRefreshTimeout = null;\n // Update React components.\n Refresh.performReactRefresh();\n }, 30);\n }\n }\n };\n const topologicalSort = function (roots, getEdges, earlyStop) {\n const result = [];\n const visited = new Set();\n const stack = new Set();\n function traverseDependentNodes(node) {\n if (stack.has(node)) {\n throw CYCLE_DETECTED;\n }\n if (visited.has(node)) {\n return;\n }\n visited.add(node);\n stack.add(node);\n const dependentNodes = getEdges(node);\n if (earlyStop(node)) {\n stack.delete(node);\n return;\n }\n dependentNodes.forEach((dependent) => {\n traverseDependentNodes(dependent);\n });\n stack.delete(node);\n result.push(node);\n }\n roots.forEach((root) => {\n traverseDependentNodes(root);\n });\n return result;\n };\n const runUpdatedModule = function (id, factory, dependencyMap) {\n const mod = modules[id];\n if (mod == null) {\n throw new Error(\"[Refresh] Expected to find the module.\");\n }\n const { hot } = mod;\n if (!hot) {\n throw new Error(\"[Refresh] Expected module.hot to always exist in DEV.\");\n }\n if (hot._disposeCallback) {\n try {\n hot._disposeCallback();\n } catch (error) {\n console.error(\n `Error while calling dispose handler for module ${id}: `,\n error\n );\n }\n }\n if (factory) {\n mod.factory = factory;\n }\n if (dependencyMap) {\n mod.dependencyMap = dependencyMap;\n }\n mod.hasError = false;\n mod.error = undefined;\n mod.importedAll = EMPTY;\n mod.importedDefault = EMPTY;\n mod.isInitialized = false;\n const prevExports = mod.publicModule.exports;\n mod.publicModule.exports = {};\n hot._didAccept = false;\n hot._acceptCallback = null;\n hot._disposeCallback = null;\n metroRequire(id);\n if (mod.hasError) {\n // This error has already been reported via a redbox.\n // We know it's likely a typo or some mistake that was just introduced.\n // Our goal now is to keep the rest of the application working so that by\n // the time user fixes the error, the app isn't completely destroyed\n // underneath the redbox. So we'll revert the module object to the last\n // successful export and stop propagating this update.\n mod.hasError = false;\n mod.isInitialized = true;\n mod.error = null;\n mod.publicModule.exports = prevExports;\n // We errored. Stop the update.\n return true;\n }\n if (hot._acceptCallback) {\n try {\n hot._acceptCallback();\n } catch (error) {\n console.error(\n `Error while calling accept handler for module ${id}: `,\n error\n );\n }\n }\n // No error.\n return false;\n };\n const performFullRefresh = (reason, modules) => {\n /* global window */\n if (\n typeof window !== \"undefined\" &&\n window.location != null &&\n typeof window.location.reload === \"function\"\n ) {\n window.location.reload();\n } else {\n const Refresh = requireRefresh();\n if (Refresh != null) {\n const sourceName = modules.source?.verboseName ?? \"unknown\";\n const failedName = modules.failed?.verboseName ?? \"unknown\";\n Refresh.performFullRefresh(\n `Fast Refresh - ${reason} <${sourceName}> <${failedName}>`\n );\n } else {\n console.warn(\"Could not reload the application after an edit.\");\n }\n }\n };\n\n // Modules that only export components become React Refresh boundaries.\n var isReactRefreshBoundary = function (Refresh, moduleExports) {\n if (Refresh.isLikelyComponentType(moduleExports)) {\n return true;\n }\n if (moduleExports == null || typeof moduleExports !== \"object\") {\n // Exit if we can't iterate over exports.\n return false;\n }\n let hasExports = false;\n let areAllExportsComponents = true;\n for (const key in moduleExports) {\n hasExports = true;\n if (key === \"__esModule\") {\n continue;\n }\n const desc = Object.getOwnPropertyDescriptor(moduleExports, key);\n if (desc && desc.get) {\n // Don't invoke getters as they may have side effects.\n return false;\n }\n const exportValue = moduleExports[key];\n if (!Refresh.isLikelyComponentType(exportValue)) {\n areAllExportsComponents = false;\n }\n }\n return hasExports && areAllExportsComponents;\n };\n var shouldInvalidateReactRefreshBoundary = (\n Refresh,\n prevExports,\n nextExports\n ) => {\n const prevSignature = getRefreshBoundarySignature(Refresh, prevExports);\n const nextSignature = getRefreshBoundarySignature(Refresh, nextExports);\n if (prevSignature.length !== nextSignature.length) {\n return true;\n }\n for (let i = 0; i < nextSignature.length; i++) {\n if (prevSignature[i] !== nextSignature[i]) {\n return true;\n }\n }\n return false;\n };\n\n // When this signature changes, it's unsafe to stop at this refresh boundary.\n var getRefreshBoundarySignature = (Refresh, moduleExports) => {\n const signature = [];\n signature.push(Refresh.getFamilyByType(moduleExports));\n if (moduleExports == null || typeof moduleExports !== \"object\") {\n // Exit if we can't iterate over exports.\n // (This is important for legacy environments.)\n return signature;\n }\n for (const key in moduleExports) {\n if (key === \"__esModule\") {\n continue;\n }\n const desc = Object.getOwnPropertyDescriptor(moduleExports, key);\n if (desc && desc.get) {\n continue;\n }\n const exportValue = moduleExports[key];\n signature.push(key);\n signature.push(Refresh.getFamilyByType(exportValue));\n }\n return signature;\n };\n var registerExportsForReactRefresh = (Refresh, moduleExports, moduleID) => {\n Refresh.register(moduleExports, moduleID + \" %exports%\");\n if (moduleExports == null || typeof moduleExports !== \"object\") {\n // Exit if we can't iterate over exports.\n // (This is important for legacy environments.)\n return;\n }\n for (const key in moduleExports) {\n const desc = Object.getOwnPropertyDescriptor(moduleExports, key);\n if (desc && desc.get) {\n // Don't invoke getters as they may have side effects.\n continue;\n }\n const exportValue = moduleExports[key];\n const typeID = moduleID + \" %exports% \" + key;\n Refresh.register(exportValue, typeID);\n }\n };\n global.__accept = metroHotUpdateModule;\n}\nif (__DEV__) {\n // The metro require polyfill can not have module dependencies.\n // The Systrace and ReactRefresh dependencies are, therefore, made publicly\n // available. Ideally, the dependency would be inversed in a way that\n // Systrace / ReactRefresh could integrate into Metro rather than\n // having to make them publicly available.\n\n var requireSystrace = function requireSystrace() {\n return (\n // $FlowFixMe[prop-missing]\n global[__METRO_GLOBAL_PREFIX__ + \"__SYSTRACE\"] || metroRequire.Systrace\n );\n };\n var requireRefresh = function requireRefresh() {\n return (\n // $FlowFixMe[prop-missing]\n global[__METRO_GLOBAL_PREFIX__ + \"__ReactRefresh\"] || metroRequire.Refresh\n );\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @polyfill\n * @nolint\n * @format\n */\n\n/* eslint-disable no-shadow, eqeqeq, curly, no-unused-vars, no-void, no-control-regex */\n\n/**\n * This pipes all of our console logging functions to native logging so that\n * JavaScript errors in required modules show up in Xcode via NSLog.\n */\nconst inspect = (function () {\n // Copyright Joyent, Inc. and other Node contributors.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a\n // copy of this software and associated documentation files (the\n // \"Software\"), to deal in the Software without restriction, including\n // without limitation the rights to use, copy, modify, merge, publish,\n // distribute, sublicense, and/or sell copies of the Software, and to permit\n // persons to whom the Software is furnished to do so, subject to the\n // following conditions:\n //\n // The above copyright notice and this permission notice shall be included\n // in all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n // USE OR OTHER DEALINGS IN THE SOFTWARE.\n //\n // https://github.com/joyent/node/blob/master/lib/util.js\n\n function inspect(obj, opts) {\n var ctx = {\n seen: [],\n formatValueCalls: 0,\n stylize: stylizeNoColor,\n };\n return formatValue(ctx, obj, opts.depth);\n }\n\n function stylizeNoColor(str, styleType) {\n return str;\n }\n\n function arrayToHash(array) {\n var hash = {};\n\n array.forEach(function (val, idx) {\n hash[val] = true;\n });\n\n return hash;\n }\n\n function formatValue(ctx, value, recurseTimes) {\n ctx.formatValueCalls++;\n if (ctx.formatValueCalls > 200) {\n return `[TOO BIG formatValueCalls ${ctx.formatValueCalls} exceeded limit of 200]`;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (\n isError(value) &&\n (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)\n ) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '',\n array = false,\n braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function (key) {\n return formatProperty(\n ctx,\n value,\n recurseTimes,\n visibleKeys,\n key,\n array,\n );\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n }\n\n function formatPrimitive(ctx, value) {\n if (isUndefined(value)) return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple =\n \"'\" +\n JSON.stringify(value)\n .replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') +\n \"'\";\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value)) return ctx.stylize('' + value, 'number');\n if (isBoolean(value)) return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value)) return ctx.stylize('null', 'null');\n }\n\n function formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n }\n\n function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(\n formatProperty(\n ctx,\n value,\n recurseTimes,\n visibleKeys,\n String(i),\n true,\n ),\n );\n } else {\n output.push('');\n }\n }\n keys.forEach(function (key) {\n if (!key.match(/^\\d+$/)) {\n output.push(\n formatProperty(ctx, value, recurseTimes, visibleKeys, key, true),\n );\n }\n });\n return output;\n }\n\n function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || {value: value[key]};\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str\n .split('\\n')\n .map(function (line) {\n return ' ' + line;\n })\n .join('\\n')\n .substr(2);\n } else {\n str =\n '\\n' +\n str\n .split('\\n')\n .map(function (line) {\n return ' ' + line;\n })\n .join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n }\n\n function reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function (prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return (\n braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1]\n );\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n }\n\n // NOTE: These type checking functions intentionally don't use `instanceof`\n // because it is fragile and can be easily faked with `Object.create()`.\n function isArray(ar) {\n return Array.isArray(ar);\n }\n\n function isBoolean(arg) {\n return typeof arg === 'boolean';\n }\n\n function isNull(arg) {\n return arg === null;\n }\n\n function isNullOrUndefined(arg) {\n return arg == null;\n }\n\n function isNumber(arg) {\n return typeof arg === 'number';\n }\n\n function isString(arg) {\n return typeof arg === 'string';\n }\n\n function isSymbol(arg) {\n return typeof arg === 'symbol';\n }\n\n function isUndefined(arg) {\n return arg === void 0;\n }\n\n function isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n }\n\n function isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n }\n\n function isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n }\n\n function isError(e) {\n return (\n isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error)\n );\n }\n\n function isFunction(arg) {\n return typeof arg === 'function';\n }\n\n function objectToString(o) {\n return Object.prototype.toString.call(o);\n }\n\n function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n return inspect;\n})();\n\nconst OBJECT_COLUMN_NAME = '(index)';\nconst LOG_LEVELS = {\n trace: 0,\n info: 1,\n warn: 2,\n error: 3,\n};\nconst INSPECTOR_LEVELS = [];\nINSPECTOR_LEVELS[LOG_LEVELS.trace] = 'debug';\nINSPECTOR_LEVELS[LOG_LEVELS.info] = 'log';\nINSPECTOR_LEVELS[LOG_LEVELS.warn] = 'warning';\nINSPECTOR_LEVELS[LOG_LEVELS.error] = 'error';\n\n// Strip the inner function in getNativeLogFunction(), if in dev also\n// strip method printing to originalConsole.\nconst INSPECTOR_FRAMES_TO_SKIP = __DEV__ ? 2 : 1;\n\nfunction getNativeLogFunction(level) {\n return function () {\n let str;\n if (arguments.length === 1 && typeof arguments[0] === 'string') {\n str = arguments[0];\n } else {\n str = Array.prototype.map\n .call(arguments, function (arg) {\n return inspect(arg, {depth: 10});\n })\n .join(', ');\n }\n\n // TRICKY\n // If more than one argument is provided, the code above collapses them all\n // into a single formatted string. This transform wraps string arguments in\n // single quotes (e.g. \"foo\" -> \"'foo'\") which then breaks the \"Warning:\"\n // check below. So it's important that we look at the first argument, rather\n // than the formatted argument string.\n const firstArg = arguments[0];\n\n let logLevel = level;\n if (\n typeof firstArg === 'string' &&\n firstArg.slice(0, 9) === 'Warning: ' &&\n logLevel >= LOG_LEVELS.error\n ) {\n // React warnings use console.error so that a stack trace is shown,\n // but we don't (currently) want these to show a redbox\n // (Note: Logic duplicated in ExceptionsManager.js.)\n logLevel = LOG_LEVELS.warn;\n }\n if (global.__inspectorLog) {\n global.__inspectorLog(\n INSPECTOR_LEVELS[logLevel],\n str,\n [].slice.call(arguments),\n INSPECTOR_FRAMES_TO_SKIP,\n );\n }\n if (groupStack.length) {\n str = groupFormat('', str);\n }\n global.nativeLoggingHook(str, logLevel);\n };\n}\n\nfunction repeat(element, n) {\n return Array.apply(null, Array(n)).map(function () {\n return element;\n });\n}\n\nfunction consoleTablePolyfill(rows) {\n // convert object -> array\n if (!Array.isArray(rows)) {\n var data = rows;\n rows = [];\n for (var key in data) {\n if (data.hasOwnProperty(key)) {\n var row = data[key];\n row[OBJECT_COLUMN_NAME] = key;\n rows.push(row);\n }\n }\n }\n if (rows.length === 0) {\n global.nativeLoggingHook('', LOG_LEVELS.info);\n return;\n }\n\n var columns = Object.keys(rows[0]).sort();\n var stringRows = [];\n var columnWidths = [];\n\n // Convert each cell to a string. Also\n // figure out max cell width for each column\n columns.forEach(function (k, i) {\n columnWidths[i] = k.length;\n for (var j = 0; j < rows.length; j++) {\n var cellStr = (rows[j][k] || '?').toString();\n stringRows[j] = stringRows[j] || [];\n stringRows[j][i] = cellStr;\n columnWidths[i] = Math.max(columnWidths[i], cellStr.length);\n }\n });\n\n // Join all elements in the row into a single string with | separators\n // (appends extra spaces to each cell to make separators | aligned)\n function joinRow(row, space) {\n var cells = row.map(function (cell, i) {\n var extraSpaces = repeat(' ', columnWidths[i] - cell.length).join('');\n return cell + extraSpaces;\n });\n space = space || ' ';\n return cells.join(space + '|' + space);\n }\n\n var separators = columnWidths.map(function (columnWidth) {\n return repeat('-', columnWidth).join('');\n });\n var separatorRow = joinRow(separators, '-');\n var header = joinRow(columns);\n var table = [header, separatorRow];\n\n for (var i = 0; i < rows.length; i++) {\n table.push(joinRow(stringRows[i]));\n }\n\n // Notice extra empty line at the beginning.\n // Native logging hook adds \"RCTLog >\" at the front of every\n // logged string, which would shift the header and screw up\n // the table\n global.nativeLoggingHook('\\n' + table.join('\\n'), LOG_LEVELS.info);\n}\n\nconst GROUP_PAD = '\\u2502'; // Box light vertical\nconst GROUP_OPEN = '\\u2510'; // Box light down+left\nconst GROUP_CLOSE = '\\u2518'; // Box light up+left\n\nconst groupStack = [];\n\nfunction groupFormat(prefix, msg) {\n // Insert group formatting before the console message\n return groupStack.join('') + prefix + ' ' + (msg || '');\n}\n\nfunction consoleGroupPolyfill(label) {\n global.nativeLoggingHook(groupFormat(GROUP_OPEN, label), LOG_LEVELS.info);\n groupStack.push(GROUP_PAD);\n}\n\nfunction consoleGroupCollapsedPolyfill(label) {\n global.nativeLoggingHook(groupFormat(GROUP_CLOSE, label), LOG_LEVELS.info);\n groupStack.push(GROUP_PAD);\n}\n\nfunction consoleGroupEndPolyfill() {\n groupStack.pop();\n global.nativeLoggingHook(groupFormat(GROUP_CLOSE), LOG_LEVELS.info);\n}\n\nfunction consoleAssertPolyfill(expression, label) {\n if (!expression) {\n global.nativeLoggingHook('Assertion failed: ' + label, LOG_LEVELS.error);\n }\n}\n\nif (global.nativeLoggingHook) {\n const originalConsole = global.console;\n // Preserve the original `console` as `originalConsole`\n if (__DEV__ && originalConsole) {\n const descriptor = Object.getOwnPropertyDescriptor(global, 'console');\n if (descriptor) {\n Object.defineProperty(global, 'originalConsole', descriptor);\n }\n }\n\n global.console = {\n error: getNativeLogFunction(LOG_LEVELS.error),\n info: getNativeLogFunction(LOG_LEVELS.info),\n log: getNativeLogFunction(LOG_LEVELS.info),\n warn: getNativeLogFunction(LOG_LEVELS.warn),\n trace: getNativeLogFunction(LOG_LEVELS.trace),\n debug: getNativeLogFunction(LOG_LEVELS.trace),\n table: consoleTablePolyfill,\n group: consoleGroupPolyfill,\n groupEnd: consoleGroupEndPolyfill,\n groupCollapsed: consoleGroupCollapsedPolyfill,\n assert: consoleAssertPolyfill,\n };\n\n Object.defineProperty(console, '_isPolyfilled', {\n value: true,\n enumerable: false,\n });\n\n // If available, also call the original `console` method since that is\n // sometimes useful. Ex: on OS X, this will let you see rich output in\n // the Safari Web Inspector console.\n if (__DEV__ && originalConsole) {\n Object.keys(console).forEach(methodName => {\n const reactNativeMethod = console[methodName];\n if (originalConsole[methodName]) {\n console[methodName] = function () {\n originalConsole[methodName](...arguments);\n reactNativeMethod.apply(console, arguments);\n };\n }\n });\n\n // The following methods are not supported by this polyfill but\n // we still should pass them to original console if they are\n // supported by it.\n ['clear', 'dir', 'dirxml', 'profile', 'profileEnd'].forEach(methodName => {\n if (typeof originalConsole[methodName] === 'function') {\n console[methodName] = function () {\n originalConsole[methodName](...arguments);\n };\n }\n });\n }\n} else if (!global.console) {\n function stub() {}\n const log = global.print || stub;\n\n global.console = {\n debug: log,\n error: log,\n info: log,\n log: log,\n trace: log,\n warn: log,\n assert(expression, label) {\n if (!expression) {\n log('Assertion failed: ' + label);\n }\n },\n clear: stub,\n dir: stub,\n dirxml: stub,\n group: stub,\n groupCollapsed: stub,\n groupEnd: stub,\n profile: stub,\n profileEnd: stub,\n table: stub,\n };\n\n Object.defineProperty(console, '_isPolyfilled', {\n value: true,\n enumerable: false,\n });\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n * @polyfill\n */\n\nlet _inGuard = 0;\n\ntype ErrorHandler = (error: mixed, isFatal: boolean) => void;\ntype Fn = (...Args) => Return;\n\n/**\n * This is the error handler that is called when we encounter an exception\n * when loading a module. This will report any errors encountered before\n * ExceptionsManager is configured.\n */\nlet _globalHandler: ErrorHandler = function onError(\n e: mixed,\n isFatal: boolean,\n) {\n throw e;\n};\n\n/**\n * The particular require runtime that we are using looks for a global\n * `ErrorUtils` object and if it exists, then it requires modules with the\n * error handler specified via ErrorUtils.setGlobalHandler by calling the\n * require function with applyWithGuard. Since the require module is loaded\n * before any of the modules, this ErrorUtils must be defined (and the handler\n * set) globally before requiring anything.\n */\nconst ErrorUtils = {\n setGlobalHandler(fun: ErrorHandler): void {\n _globalHandler = fun;\n },\n getGlobalHandler(): ErrorHandler {\n return _globalHandler;\n },\n reportError(error: mixed): void {\n _globalHandler && _globalHandler(error, false);\n },\n reportFatalError(error: mixed): void {\n // NOTE: This has an untyped call site in Metro.\n _globalHandler && _globalHandler(error, true);\n },\n applyWithGuard, TOut>(\n fun: Fn,\n context?: ?mixed,\n args?: ?TArgs,\n // Unused, but some code synced from www sets it to null.\n unused_onError?: null,\n // Some callers pass a name here, which we ignore.\n unused_name?: ?string,\n ): ?TOut {\n try {\n _inGuard++;\n /* $FlowFixMe[incompatible-call] : TODO T48204745 (1) apply(context,\n * null) is fine. (2) array -> rest array should work */\n /* $FlowFixMe[incompatible-type] : TODO T48204745 (1) apply(context,\n * null) is fine. (2) array -> rest array should work */\n return fun.apply(context, args);\n } catch (e) {\n ErrorUtils.reportError(e);\n } finally {\n _inGuard--;\n }\n return null;\n },\n applyWithGuardIfNeeded, TOut>(\n fun: Fn,\n context?: ?mixed,\n args?: ?TArgs,\n ): ?TOut {\n if (ErrorUtils.inGuard()) {\n /* $FlowFixMe[incompatible-call] : TODO T48204745 (1) apply(context,\n * null) is fine. (2) array -> rest array should work */\n /* $FlowFixMe[incompatible-type] : TODO T48204745 (1) apply(context,\n * null) is fine. (2) array -> rest array should work */\n return fun.apply(context, args);\n } else {\n ErrorUtils.applyWithGuard(fun, context, args);\n }\n return null;\n },\n inGuard(): boolean {\n return !!_inGuard;\n },\n guard, TOut>(\n fun: Fn,\n name?: ?string,\n context?: ?mixed,\n ): ?(...TArgs) => ?TOut {\n // TODO: (moti) T48204753 Make sure this warning is never hit and remove it - types\n // should be sufficient.\n if (typeof fun !== 'function') {\n console.warn('A function must be passed to ErrorUtils.guard, got ', fun);\n return null;\n }\n const guardName = name ?? fun.name ?? '';\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n function guarded(...args: TArgs): ?TOut {\n return ErrorUtils.applyWithGuard(\n fun,\n context ?? this,\n args,\n null,\n guardName,\n );\n }\n\n return guarded;\n },\n};\n\nglobal.ErrorUtils = ErrorUtils;\n\nexport type ErrorUtilsT = typeof ErrorUtils;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @polyfill\n * @nolint\n */\n\n(function () {\n 'use strict';\n\n const hasOwnProperty = Object.prototype.hasOwnProperty;\n\n /**\n * Returns an array of the given object's own enumerable entries.\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries\n */\n if (typeof Object.entries !== 'function') {\n Object.entries = function (object) {\n // `null` and `undefined` values are not allowed.\n if (object == null) {\n throw new TypeError('Object.entries called on non-object');\n }\n\n const entries = [];\n for (const key in object) {\n if (hasOwnProperty.call(object, key)) {\n entries.push([key, object[key]]);\n }\n }\n return entries;\n };\n }\n\n /**\n * Returns an array of the given object's own enumerable entries.\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values\n */\n if (typeof Object.values !== 'function') {\n Object.values = function (object) {\n // `null` and `undefined` values are not allowed.\n if (object == null) {\n throw new TypeError('Object.values called on non-object');\n }\n\n const values = [];\n for (const key in object) {\n if (hasOwnProperty.call(object, key)) {\n values.push(object[key]);\n }\n }\n return values;\n };\n }\n})();\n","/**\n * @format\n */\n\nimport {AppRegistry} from 'react-native';\nimport App from './App';\nimport {name as appName} from './app.json';\n\nAppRegistry.registerComponent(appName, () => App);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\n// Components\nimport typeof AccessibilityInfo from './Libraries/Components/AccessibilityInfo/AccessibilityInfo';\nimport typeof ActivityIndicator from './Libraries/Components/ActivityIndicator/ActivityIndicator';\nimport typeof Button from './Libraries/Components/Button';\nimport typeof DrawerLayoutAndroid from './Libraries/Components/DrawerAndroid/DrawerLayoutAndroid';\nimport typeof FlatList from './Libraries/Lists/FlatList';\nimport typeof Image from './Libraries/Image/Image';\nimport typeof ImageBackground from './Libraries/Image/ImageBackground';\nimport typeof InputAccessoryView from './Libraries/Components/TextInput/InputAccessoryView';\nimport typeof KeyboardAvoidingView from './Libraries/Components/Keyboard/KeyboardAvoidingView';\nimport typeof Modal from './Libraries/Modal/Modal';\nimport typeof Pressable from './Libraries/Components/Pressable/Pressable';\nimport typeof ProgressBarAndroid from './Libraries/Components/ProgressBarAndroid/ProgressBarAndroid';\nimport typeof RefreshControl from './Libraries/Components/RefreshControl/RefreshControl';\nimport typeof SafeAreaView from './Libraries/Components/SafeAreaView/SafeAreaView';\nimport typeof ScrollView from './Libraries/Components/ScrollView/ScrollView';\nimport typeof SectionList from './Libraries/Lists/SectionList';\nimport typeof StatusBar from './Libraries/Components/StatusBar/StatusBar';\nimport typeof Switch from './Libraries/Components/Switch/Switch';\nimport typeof Text from './Libraries/Text/Text';\nimport typeof TextInput from './Libraries/Components/TextInput/TextInput';\nimport typeof Touchable from './Libraries/Components/Touchable/Touchable';\nimport typeof TouchableHighlight from './Libraries/Components/Touchable/TouchableHighlight';\nimport typeof TouchableNativeFeedback from './Libraries/Components/Touchable/TouchableNativeFeedback';\nimport typeof TouchableOpacity from './Libraries/Components/Touchable/TouchableOpacity';\nimport typeof TouchableWithoutFeedback from './Libraries/Components/Touchable/TouchableWithoutFeedback';\nimport typeof View from './Libraries/Components/View/View';\nimport typeof VirtualizedList from './Libraries/Lists/VirtualizedList';\nimport typeof VirtualizedSectionList from './Libraries/Lists/VirtualizedSectionList';\n\n// APIs\nimport typeof ActionSheetIOS from './Libraries/ActionSheetIOS/ActionSheetIOS';\nimport typeof Alert from './Libraries/Alert/Alert';\nimport typeof Animated from './Libraries/Animated/Animated';\nimport typeof * as AnimatedModule from './Libraries/Animated/Animated';\nimport typeof Appearance from './Libraries/Utilities/Appearance';\nimport typeof AppRegistry from './Libraries/ReactNative/AppRegistry';\nimport typeof AppState from './Libraries/AppState/AppState';\nimport typeof BackHandler from './Libraries/Utilities/BackHandler';\nimport typeof Clipboard from './Libraries/Components/Clipboard/Clipboard';\nimport typeof DeviceInfo from './Libraries/Utilities/DeviceInfo';\nimport typeof DevSettings from './Libraries/Utilities/DevSettings';\nimport typeof Dimensions from './Libraries/Utilities/Dimensions';\nimport typeof Easing from './Libraries/Animated/Easing';\nimport typeof ReactNative from './Libraries/Renderer/shims/ReactNative';\nimport typeof I18nManager from './Libraries/ReactNative/I18nManager';\nimport typeof InteractionManager from './Libraries/Interaction/InteractionManager';\nimport typeof Keyboard from './Libraries/Components/Keyboard/Keyboard';\nimport typeof LayoutAnimation from './Libraries/LayoutAnimation/LayoutAnimation';\nimport typeof Linking from './Libraries/Linking/Linking';\nimport typeof LogBox from './Libraries/LogBox/LogBox';\nimport typeof NativeDialogManagerAndroid from './Libraries/NativeModules/specs/NativeDialogManagerAndroid';\nimport typeof NativeEventEmitter from './Libraries/EventEmitter/NativeEventEmitter';\nimport typeof Networking from './Libraries/Network/RCTNetworking';\nimport typeof PanResponder from './Libraries/Interaction/PanResponder';\nimport typeof PermissionsAndroid from './Libraries/PermissionsAndroid/PermissionsAndroid';\nimport typeof PixelRatio from './Libraries/Utilities/PixelRatio';\nimport typeof PushNotificationIOS from './Libraries/PushNotificationIOS/PushNotificationIOS';\nimport typeof Settings from './Libraries/Settings/Settings';\nimport typeof Share from './Libraries/Share/Share';\nimport typeof StyleSheet from './Libraries/StyleSheet/StyleSheet';\nimport typeof * as Systrace from './Libraries/Performance/Systrace';\nimport typeof ToastAndroid from './Libraries/Components/ToastAndroid/ToastAndroid';\nimport typeof * as TurboModuleRegistry from './Libraries/TurboModule/TurboModuleRegistry';\nimport typeof UIManager from './Libraries/ReactNative/UIManager';\nimport typeof useAnimatedValue from './Libraries/Animated/useAnimatedValue';\nimport typeof useColorScheme from './Libraries/Utilities/useColorScheme';\nimport typeof useWindowDimensions from './Libraries/Utilities/useWindowDimensions';\nimport typeof UTFSequence from './Libraries/UTFSequence';\nimport typeof Vibration from './Libraries/Vibration/Vibration';\nimport typeof YellowBox from './Libraries/YellowBox/YellowBoxDeprecated';\n\n// Plugins\nimport typeof {DynamicColorIOS} from './Libraries/StyleSheet/PlatformColorValueTypesIOS';\nimport typeof NativeModules from './Libraries/BatchedBridge/NativeModules';\nimport typeof Platform from './Libraries/Utilities/Platform';\nimport typeof {PlatformColor} from './Libraries/StyleSheet/PlatformColorValueTypes';\nimport typeof processColor from './Libraries/StyleSheet/processColor';\nimport typeof RCTDeviceEventEmitter from './Libraries/EventEmitter/RCTDeviceEventEmitter';\nimport typeof RCTNativeAppEventEmitter from './Libraries/EventEmitter/RCTNativeAppEventEmitter';\nimport typeof {RootTagContext} from './Libraries/ReactNative/RootTag';\n\nimport type {HostComponent as _HostComponentInternal} from './Libraries/Renderer/shims/ReactNativeTypes';\n\nexport type HostComponent = _HostComponentInternal;\n\nconst invariant = require('invariant');\nconst warnOnce = require('./Libraries/Utilities/warnOnce');\n\nmodule.exports = {\n // Components\n get AccessibilityInfo(): AccessibilityInfo {\n return require('./Libraries/Components/AccessibilityInfo/AccessibilityInfo')\n .default;\n },\n get ActivityIndicator(): ActivityIndicator {\n return require('./Libraries/Components/ActivityIndicator/ActivityIndicator')\n .default;\n },\n get Button(): Button {\n return require('./Libraries/Components/Button');\n },\n // $FlowFixMe[value-as-type]\n get DrawerLayoutAndroid(): DrawerLayoutAndroid {\n return require('./Libraries/Components/DrawerAndroid/DrawerLayoutAndroid');\n },\n get FlatList(): FlatList {\n return require('./Libraries/Lists/FlatList');\n },\n get Image(): Image {\n return require('./Libraries/Image/Image');\n },\n get ImageBackground(): ImageBackground {\n return require('./Libraries/Image/ImageBackground');\n },\n get InputAccessoryView(): InputAccessoryView {\n return require('./Libraries/Components/TextInput/InputAccessoryView');\n },\n get KeyboardAvoidingView(): KeyboardAvoidingView {\n return require('./Libraries/Components/Keyboard/KeyboardAvoidingView')\n .default;\n },\n get Modal(): Modal {\n return require('./Libraries/Modal/Modal');\n },\n get Pressable(): Pressable {\n return require('./Libraries/Components/Pressable/Pressable').default;\n },\n // $FlowFixMe[value-as-type]\n get ProgressBarAndroid(): ProgressBarAndroid {\n warnOnce(\n 'progress-bar-android-moved',\n 'ProgressBarAndroid has been extracted from react-native core and will be removed in a future release. ' +\n \"It can now be installed and imported from '@react-native-community/progress-bar-android' instead of 'react-native'. \" +\n 'See https://github.com/react-native-progress-view/progress-bar-android',\n );\n return require('./Libraries/Components/ProgressBarAndroid/ProgressBarAndroid');\n },\n get RefreshControl(): RefreshControl {\n return require('./Libraries/Components/RefreshControl/RefreshControl');\n },\n get SafeAreaView(): SafeAreaView {\n return require('./Libraries/Components/SafeAreaView/SafeAreaView').default;\n },\n get ScrollView(): ScrollView {\n return require('./Libraries/Components/ScrollView/ScrollView');\n },\n get SectionList(): SectionList {\n return require('./Libraries/Lists/SectionList').default;\n },\n get StatusBar(): StatusBar {\n return require('./Libraries/Components/StatusBar/StatusBar');\n },\n get Switch(): Switch {\n return require('./Libraries/Components/Switch/Switch').default;\n },\n get Text(): Text {\n return require('./Libraries/Text/Text');\n },\n get TextInput(): TextInput {\n return require('./Libraries/Components/TextInput/TextInput');\n },\n get Touchable(): Touchable {\n return require('./Libraries/Components/Touchable/Touchable');\n },\n get TouchableHighlight(): TouchableHighlight {\n return require('./Libraries/Components/Touchable/TouchableHighlight');\n },\n get TouchableNativeFeedback(): TouchableNativeFeedback {\n return require('./Libraries/Components/Touchable/TouchableNativeFeedback');\n },\n get TouchableOpacity(): TouchableOpacity {\n return require('./Libraries/Components/Touchable/TouchableOpacity');\n },\n get TouchableWithoutFeedback(): TouchableWithoutFeedback {\n return require('./Libraries/Components/Touchable/TouchableWithoutFeedback');\n },\n get View(): View {\n return require('./Libraries/Components/View/View');\n },\n get VirtualizedList(): VirtualizedList {\n return require('./Libraries/Lists/VirtualizedList');\n },\n get VirtualizedSectionList(): VirtualizedSectionList {\n return require('./Libraries/Lists/VirtualizedSectionList');\n },\n\n // APIs\n get ActionSheetIOS(): ActionSheetIOS {\n return require('./Libraries/ActionSheetIOS/ActionSheetIOS');\n },\n get Alert(): Alert {\n return require('./Libraries/Alert/Alert');\n },\n // Include any types exported in the Animated module together with its default export, so\n // you can references types such as Animated.Numeric\n get Animated(): {...$Diff, ...Animated} {\n // $FlowExpectedError[prop-missing]: we only return the default export, all other exports are types\n return require('./Libraries/Animated/Animated').default;\n },\n get Appearance(): Appearance {\n return require('./Libraries/Utilities/Appearance');\n },\n get AppRegistry(): AppRegistry {\n return require('./Libraries/ReactNative/AppRegistry');\n },\n get AppState(): AppState {\n return require('./Libraries/AppState/AppState');\n },\n get BackHandler(): BackHandler {\n return require('./Libraries/Utilities/BackHandler');\n },\n get Clipboard(): Clipboard {\n warnOnce(\n 'clipboard-moved',\n 'Clipboard has been extracted from react-native core and will be removed in a future release. ' +\n \"It can now be installed and imported from '@react-native-clipboard/clipboard' instead of 'react-native'. \" +\n 'See https://github.com/react-native-clipboard/clipboard',\n );\n return require('./Libraries/Components/Clipboard/Clipboard');\n },\n get DeviceInfo(): DeviceInfo {\n return require('./Libraries/Utilities/DeviceInfo');\n },\n get DevSettings(): DevSettings {\n return require('./Libraries/Utilities/DevSettings');\n },\n get Dimensions(): Dimensions {\n return require('./Libraries/Utilities/Dimensions').default;\n },\n get Easing(): Easing {\n return require('./Libraries/Animated/Easing').default;\n },\n get findNodeHandle(): $PropertyType {\n return require('./Libraries/ReactNative/RendererProxy').findNodeHandle;\n },\n get I18nManager(): I18nManager {\n return require('./Libraries/ReactNative/I18nManager');\n },\n get InteractionManager(): InteractionManager {\n return require('./Libraries/Interaction/InteractionManager');\n },\n get Keyboard(): Keyboard {\n return require('./Libraries/Components/Keyboard/Keyboard');\n },\n get LayoutAnimation(): LayoutAnimation {\n return require('./Libraries/LayoutAnimation/LayoutAnimation');\n },\n get Linking(): Linking {\n return require('./Libraries/Linking/Linking');\n },\n get LogBox(): LogBox {\n return require('./Libraries/LogBox/LogBox').default;\n },\n get NativeDialogManagerAndroid(): NativeDialogManagerAndroid {\n return require('./Libraries/NativeModules/specs/NativeDialogManagerAndroid')\n .default;\n },\n get NativeEventEmitter(): NativeEventEmitter {\n return require('./Libraries/EventEmitter/NativeEventEmitter').default;\n },\n get Networking(): Networking {\n return require('./Libraries/Network/RCTNetworking').default;\n },\n get PanResponder(): PanResponder {\n return require('./Libraries/Interaction/PanResponder').default;\n },\n get PermissionsAndroid(): PermissionsAndroid {\n return require('./Libraries/PermissionsAndroid/PermissionsAndroid');\n },\n get PixelRatio(): PixelRatio {\n return require('./Libraries/Utilities/PixelRatio').default;\n },\n get PushNotificationIOS(): PushNotificationIOS {\n warnOnce(\n 'pushNotificationIOS-moved',\n 'PushNotificationIOS has been extracted from react-native core and will be removed in a future release. ' +\n \"It can now be installed and imported from '@react-native-community/push-notification-ios' instead of 'react-native'. \" +\n 'See https://github.com/react-native-push-notification-ios/push-notification-ios',\n );\n return require('./Libraries/PushNotificationIOS/PushNotificationIOS');\n },\n get Settings(): Settings {\n return require('./Libraries/Settings/Settings');\n },\n get Share(): Share {\n return require('./Libraries/Share/Share');\n },\n get StyleSheet(): StyleSheet {\n return require('./Libraries/StyleSheet/StyleSheet');\n },\n get Systrace(): Systrace {\n return require('./Libraries/Performance/Systrace');\n },\n // $FlowFixMe[value-as-type]\n get ToastAndroid(): ToastAndroid {\n return require('./Libraries/Components/ToastAndroid/ToastAndroid');\n },\n get TurboModuleRegistry(): TurboModuleRegistry {\n return require('./Libraries/TurboModule/TurboModuleRegistry');\n },\n get UIManager(): UIManager {\n return require('./Libraries/ReactNative/UIManager');\n },\n get unstable_batchedUpdates(): $PropertyType<\n ReactNative,\n 'unstable_batchedUpdates',\n > {\n return require('./Libraries/ReactNative/RendererProxy')\n .unstable_batchedUpdates;\n },\n get useAnimatedValue(): useAnimatedValue {\n return require('./Libraries/Animated/useAnimatedValue').default;\n },\n get useColorScheme(): useColorScheme {\n return require('./Libraries/Utilities/useColorScheme').default;\n },\n get useWindowDimensions(): useWindowDimensions {\n return require('./Libraries/Utilities/useWindowDimensions').default;\n },\n get UTFSequence(): UTFSequence {\n return require('./Libraries/UTFSequence').default;\n },\n get Vibration(): Vibration {\n return require('./Libraries/Vibration/Vibration');\n },\n get YellowBox(): YellowBox {\n return require('./Libraries/YellowBox/YellowBoxDeprecated');\n },\n\n // Plugins\n get DeviceEventEmitter(): RCTDeviceEventEmitter {\n return require('./Libraries/EventEmitter/RCTDeviceEventEmitter').default;\n },\n get DynamicColorIOS(): DynamicColorIOS {\n return require('./Libraries/StyleSheet/PlatformColorValueTypesIOS')\n .DynamicColorIOS;\n },\n get NativeAppEventEmitter(): RCTNativeAppEventEmitter {\n return require('./Libraries/EventEmitter/RCTNativeAppEventEmitter');\n },\n get NativeModules(): NativeModules {\n return require('./Libraries/BatchedBridge/NativeModules');\n },\n get Platform(): Platform {\n return require('./Libraries/Utilities/Platform');\n },\n get PlatformColor(): PlatformColor {\n return require('./Libraries/StyleSheet/PlatformColorValueTypes')\n .PlatformColor;\n },\n get processColor(): processColor {\n return require('./Libraries/StyleSheet/processColor').default;\n },\n get requireNativeComponent(): (\n uiViewClassName: string,\n ) => HostComponent {\n return require('./Libraries/ReactNative/requireNativeComponent').default;\n },\n get RootTagContext(): RootTagContext {\n return require('./Libraries/ReactNative/RootTag').RootTagContext;\n },\n get unstable_enableLogBox(): () => void {\n return () =>\n console.warn(\n 'LogBox is enabled by default so there is no need to call unstable_enableLogBox() anymore. This is a no op and will be removed in the next version.',\n );\n },\n // Deprecated Prop Types\n get ColorPropType(): $FlowFixMe {\n console.error(\n 'ColorPropType will be removed from React Native, along with all ' +\n 'other PropTypes. We recommend that you migrate away from PropTypes ' +\n 'and switch to a type system like TypeScript. If you need to ' +\n 'continue using ColorPropType, migrate to the ' +\n \"'deprecated-react-native-prop-types' package.\",\n );\n return require('deprecated-react-native-prop-types').ColorPropType;\n },\n get EdgeInsetsPropType(): $FlowFixMe {\n console.error(\n 'EdgeInsetsPropType will be removed from React Native, along with all ' +\n 'other PropTypes. We recommend that you migrate away from PropTypes ' +\n 'and switch to a type system like TypeScript. If you need to ' +\n 'continue using EdgeInsetsPropType, migrate to the ' +\n \"'deprecated-react-native-prop-types' package.\",\n );\n return require('deprecated-react-native-prop-types').EdgeInsetsPropType;\n },\n get PointPropType(): $FlowFixMe {\n console.error(\n 'PointPropType will be removed from React Native, along with all ' +\n 'other PropTypes. We recommend that you migrate away from PropTypes ' +\n 'and switch to a type system like TypeScript. If you need to ' +\n 'continue using PointPropType, migrate to the ' +\n \"'deprecated-react-native-prop-types' package.\",\n );\n return require('deprecated-react-native-prop-types').PointPropType;\n },\n get ViewPropTypes(): $FlowFixMe {\n console.error(\n 'ViewPropTypes will be removed from React Native, along with all ' +\n 'other PropTypes. We recommend that you migrate away from PropTypes ' +\n 'and switch to a type system like TypeScript. If you need to ' +\n 'continue using ViewPropTypes, migrate to the ' +\n \"'deprecated-react-native-prop-types' package.\",\n );\n return require('deprecated-react-native-prop-types').ViewPropTypes;\n },\n};\n\nif (__DEV__) {\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ART. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ART. */\n Object.defineProperty(module.exports, 'ART', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ART has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/art' instead of 'react-native'. \" +\n 'See https://github.com/react-native-art/art',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ListView. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ListView. */\n Object.defineProperty(module.exports, 'ListView', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ListView has been removed from React Native. ' +\n 'See https://fb.me/nolistview for more information or use ' +\n '`deprecated-react-native-listview`.',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access SwipeableListView. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access SwipeableListView. */\n Object.defineProperty(module.exports, 'SwipeableListView', {\n configurable: true,\n get() {\n invariant(\n false,\n 'SwipeableListView has been removed from React Native. ' +\n 'See https://fb.me/nolistview for more information or use ' +\n '`deprecated-react-native-swipeable-listview`.',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access WebView. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access WebView. */\n Object.defineProperty(module.exports, 'WebView', {\n configurable: true,\n get() {\n invariant(\n false,\n 'WebView has been removed from React Native. ' +\n \"It can now be installed and imported from 'react-native-webview' instead of 'react-native'. \" +\n 'See https://github.com/react-native-webview/react-native-webview',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access NetInfo. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access NetInfo. */\n Object.defineProperty(module.exports, 'NetInfo', {\n configurable: true,\n get() {\n invariant(\n false,\n 'NetInfo has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/netinfo' instead of 'react-native'. \" +\n 'See https://github.com/react-native-netinfo/react-native-netinfo',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access CameraRoll. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access CameraRoll. */\n Object.defineProperty(module.exports, 'CameraRoll', {\n configurable: true,\n get() {\n invariant(\n false,\n 'CameraRoll has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/cameraroll' instead of 'react-native'. \" +\n 'See https://github.com/react-native-cameraroll/react-native-cameraroll',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ImageStore. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ImageStore. */\n Object.defineProperty(module.exports, 'ImageStore', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ImageStore has been removed from React Native. ' +\n 'To get a base64-encoded string from a local image use either of the following third-party libraries:' +\n \"* expo-file-system: `readAsStringAsync(filepath, 'base64')`\" +\n \"* react-native-fs: `readFile(filepath, 'base64')`\",\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ImageEditor. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ImageEditor. */\n Object.defineProperty(module.exports, 'ImageEditor', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ImageEditor has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/image-editor' instead of 'react-native'. \" +\n 'See https://github.com/callstack/react-native-image-editor',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access TimePickerAndroid. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access TimePickerAndroid. */\n Object.defineProperty(module.exports, 'TimePickerAndroid', {\n configurable: true,\n get() {\n invariant(\n false,\n 'TimePickerAndroid has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/datetimepicker' instead of 'react-native'. \" +\n 'See https://github.com/react-native-datetimepicker/datetimepicker',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ToolbarAndroid. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ToolbarAndroid. */\n Object.defineProperty(module.exports, 'ToolbarAndroid', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ToolbarAndroid has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/toolbar-android' instead of 'react-native'. \" +\n 'See https://github.com/react-native-toolbar-android/toolbar-android',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ViewPagerAndroid. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ViewPagerAndroid. */\n Object.defineProperty(module.exports, 'ViewPagerAndroid', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ViewPagerAndroid has been removed from React Native. ' +\n \"It can now be installed and imported from 'react-native-pager-view' instead of 'react-native'. \" +\n 'See https://github.com/callstack/react-native-pager-view',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access CheckBox. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access CheckBox. */\n Object.defineProperty(module.exports, 'CheckBox', {\n configurable: true,\n get() {\n invariant(\n false,\n 'CheckBox has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/checkbox' instead of 'react-native'. \" +\n 'See https://github.com/react-native-checkbox/react-native-checkbox',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access SegmentedControlIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access SegmentedControlIOS. */\n Object.defineProperty(module.exports, 'SegmentedControlIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'SegmentedControlIOS has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/segmented-checkbox' instead of 'react-native'.\" +\n 'See https://github.com/react-native-segmented-control/segmented-control',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access StatusBarIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access StatusBarIOS. */\n Object.defineProperty(module.exports, 'StatusBarIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'StatusBarIOS has been removed from React Native. ' +\n 'Has been merged with StatusBar. ' +\n 'See https://reactnative.dev/docs/statusbar',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access PickerIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access PickerIOS. */\n Object.defineProperty(module.exports, 'PickerIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'PickerIOS has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-picker/picker' instead of 'react-native'. \" +\n 'See https://github.com/react-native-picker/picker',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access Picker. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access Picker. */\n Object.defineProperty(module.exports, 'Picker', {\n configurable: true,\n get() {\n invariant(\n false,\n 'Picker has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-picker/picker' instead of 'react-native'. \" +\n 'See https://github.com/react-native-picker/picker',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access DatePickerAndroid. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access DatePickerAndroid. */\n Object.defineProperty(module.exports, 'DatePickerAndroid', {\n configurable: true,\n get() {\n invariant(\n false,\n 'DatePickerAndroid has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/datetimepicker' instead of 'react-native'. \" +\n 'See https://github.com/react-native-datetimepicker/datetimepicker',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access MaskedViewIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access MaskedViewIOS. */\n Object.defineProperty(module.exports, 'MaskedViewIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'MaskedViewIOS has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/react-native-masked-view' instead of 'react-native'. \" +\n 'See https://github.com/react-native-masked-view/masked-view',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access AsyncStorage. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access AsyncStorage. */\n Object.defineProperty(module.exports, 'AsyncStorage', {\n configurable: true,\n get() {\n invariant(\n false,\n 'AsyncStorage has been removed from react-native core. ' +\n \"It can now be installed and imported from '@react-native-async-storage/async-storage' instead of 'react-native'. \" +\n 'See https://github.com/react-native-async-storage/async-storage',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ImagePickerIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ImagePickerIOS. */\n Object.defineProperty(module.exports, 'ImagePickerIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ImagePickerIOS has been removed from React Native. ' +\n \"Please upgrade to use either '@react-native-community/react-native-image-picker' or 'expo-image-picker'. \" +\n \"If you cannot upgrade to a different library, please install the deprecated '@react-native-community/image-picker-ios' package. \" +\n 'See https://github.com/rnc-archive/react-native-image-picker-ios',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ProgressViewIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ProgressViewIOS. */\n Object.defineProperty(module.exports, 'ProgressViewIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ProgressViewIOS has been removed from react-native core. ' +\n \"It can now be installed and imported from '@react-native-community/progress-view' instead of 'react-native'. \" +\n 'See https://github.com/react-native-progress-view/progress-view',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access DatePickerIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access DatePickerIOS. */\n Object.defineProperty(module.exports, 'DatePickerIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'DatePickerIOS has been removed from react-native core. ' +\n \"It can now be installed and imported from '@react-native-community/datetimepicker' instead of 'react-native'. \" +\n 'See https://github.com/react-native-datetimepicker/datetimepicker',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access Slider. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access Slider. */\n Object.defineProperty(module.exports, 'Slider', {\n configurable: true,\n get() {\n invariant(\n false,\n 'Slider has been removed from react-native core. ' +\n \"It can now be installed and imported from '@react-native-community/slider' instead of 'react-native'. \" +\n 'See https://github.com/callstack/react-native-slider',\n );\n },\n });\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {EventSubscription} from '../../vendor/emitter/EventEmitter';\nimport type {ElementRef} from 'react';\n\nimport RCTDeviceEventEmitter from '../../EventEmitter/RCTDeviceEventEmitter';\nimport {sendAccessibilityEvent} from '../../ReactNative/RendererProxy';\nimport Platform from '../../Utilities/Platform';\nimport legacySendAccessibilityEvent from './legacySendAccessibilityEvent';\nimport NativeAccessibilityInfoAndroid from './NativeAccessibilityInfo';\nimport NativeAccessibilityManagerIOS from './NativeAccessibilityManager';\n\n// Events that are only supported on Android.\ntype AccessibilityEventDefinitionsAndroid = {\n accessibilityServiceChanged: [boolean],\n};\n\n// Events that are only supported on iOS.\ntype AccessibilityEventDefinitionsIOS = {\n announcementFinished: [{announcement: string, success: boolean}],\n boldTextChanged: [boolean],\n grayscaleChanged: [boolean],\n invertColorsChanged: [boolean],\n reduceTransparencyChanged: [boolean],\n};\n\ntype AccessibilityEventDefinitions = {\n ...AccessibilityEventDefinitionsAndroid,\n ...AccessibilityEventDefinitionsIOS,\n change: [boolean], // screenReaderChanged\n reduceMotionChanged: [boolean],\n screenReaderChanged: [boolean],\n};\n\ntype AccessibilityEventTypes = 'click' | 'focus' | 'viewHoverEnter';\n\n// Mapping of public event names to platform-specific event names.\nconst EventNames: Map<\n $Keys,\n string,\n> = Platform.OS === 'android'\n ? new Map([\n ['change', 'touchExplorationDidChange'],\n ['reduceMotionChanged', 'reduceMotionDidChange'],\n ['screenReaderChanged', 'touchExplorationDidChange'],\n ['accessibilityServiceChanged', 'accessibilityServiceDidChange'],\n ])\n : new Map([\n ['announcementFinished', 'announcementFinished'],\n ['boldTextChanged', 'boldTextChanged'],\n ['change', 'screenReaderChanged'],\n ['grayscaleChanged', 'grayscaleChanged'],\n ['invertColorsChanged', 'invertColorsChanged'],\n ['reduceMotionChanged', 'reduceMotionChanged'],\n ['reduceTransparencyChanged', 'reduceTransparencyChanged'],\n ['screenReaderChanged', 'screenReaderChanged'],\n ]);\n\n/**\n * Sometimes it's useful to know whether or not the device has a screen reader\n * that is currently active. The `AccessibilityInfo` API is designed for this\n * purpose. You can use it to query the current state of the screen reader as\n * well as to register to be notified when the state of the screen reader\n * changes.\n *\n * See https://reactnative.dev/docs/accessibilityinfo\n */\nconst AccessibilityInfo = {\n /**\n * Query whether bold text is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when bold text is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#isBoldTextEnabled\n */\n isBoldTextEnabled(): Promise {\n if (Platform.OS === 'android') {\n return Promise.resolve(false);\n } else {\n return new Promise((resolve, reject) => {\n if (NativeAccessibilityManagerIOS != null) {\n NativeAccessibilityManagerIOS.getCurrentBoldTextState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n });\n }\n },\n\n /**\n * Query whether grayscale is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when grayscale is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#isGrayscaleEnabled\n */\n isGrayscaleEnabled(): Promise {\n if (Platform.OS === 'android') {\n return Promise.resolve(false);\n } else {\n return new Promise((resolve, reject) => {\n if (NativeAccessibilityManagerIOS != null) {\n NativeAccessibilityManagerIOS.getCurrentGrayscaleState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n });\n }\n },\n\n /**\n * Query whether inverted colors are currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when invert color is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#isInvertColorsEnabled\n */\n isInvertColorsEnabled(): Promise {\n if (Platform.OS === 'android') {\n return Promise.resolve(false);\n } else {\n return new Promise((resolve, reject) => {\n if (NativeAccessibilityManagerIOS != null) {\n NativeAccessibilityManagerIOS.getCurrentInvertColorsState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n });\n }\n },\n\n /**\n * Query whether reduced motion is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when a reduce motion is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#isReduceMotionEnabled\n */\n isReduceMotionEnabled(): Promise {\n return new Promise((resolve, reject) => {\n if (Platform.OS === 'android') {\n if (NativeAccessibilityInfoAndroid != null) {\n NativeAccessibilityInfoAndroid.isReduceMotionEnabled(resolve);\n } else {\n reject(null);\n }\n } else {\n if (NativeAccessibilityManagerIOS != null) {\n NativeAccessibilityManagerIOS.getCurrentReduceMotionState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n }\n });\n },\n\n /**\n * Query whether reduce motion and prefer cross-fade transitions settings are currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when prefer cross-fade transitions is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#prefersCrossFadeTransitions\n */\n prefersCrossFadeTransitions(): Promise {\n return new Promise((resolve, reject) => {\n if (Platform.OS === 'android') {\n return Promise.resolve(false);\n } else {\n if (\n NativeAccessibilityManagerIOS?.getCurrentPrefersCrossFadeTransitionsState !=\n null\n ) {\n NativeAccessibilityManagerIOS.getCurrentPrefersCrossFadeTransitionsState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n }\n });\n },\n\n /**\n * Query whether reduced transparency is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when a reduce transparency is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#isReduceTransparencyEnabled\n */\n isReduceTransparencyEnabled(): Promise {\n if (Platform.OS === 'android') {\n return Promise.resolve(false);\n } else {\n return new Promise((resolve, reject) => {\n if (NativeAccessibilityManagerIOS != null) {\n NativeAccessibilityManagerIOS.getCurrentReduceTransparencyState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n });\n }\n },\n\n /**\n * Query whether a screen reader is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when a screen reader is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#isScreenReaderEnabled\n */\n isScreenReaderEnabled(): Promise {\n return new Promise((resolve, reject) => {\n if (Platform.OS === 'android') {\n if (NativeAccessibilityInfoAndroid != null) {\n NativeAccessibilityInfoAndroid.isTouchExplorationEnabled(resolve);\n } else {\n reject(null);\n }\n } else {\n if (NativeAccessibilityManagerIOS != null) {\n NativeAccessibilityManagerIOS.getCurrentVoiceOverState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n }\n });\n },\n\n /**\n * Query whether Accessibility Service is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when any service is enabled and `false` otherwise.\n *\n * @platform android\n *\n * See https://reactnative.dev/docs/accessibilityinfo/#isaccessibilityserviceenabled-android\n */\n isAccessibilityServiceEnabled(): Promise {\n return new Promise((resolve, reject) => {\n if (Platform.OS === 'android') {\n if (\n NativeAccessibilityInfoAndroid != null &&\n NativeAccessibilityInfoAndroid.isAccessibilityServiceEnabled != null\n ) {\n NativeAccessibilityInfoAndroid.isAccessibilityServiceEnabled(resolve);\n } else {\n reject(null);\n }\n } else {\n reject(null);\n }\n });\n },\n\n /**\n * Add an event handler. Supported events:\n *\n * - `reduceMotionChanged`: Fires when the state of the reduce motion toggle changes.\n * The argument to the event handler is a boolean. The boolean is `true` when a reduce\n * motion is enabled (or when \"Transition Animation Scale\" in \"Developer options\" is\n * \"Animation off\") and `false` otherwise.\n * - `screenReaderChanged`: Fires when the state of the screen reader changes. The argument\n * to the event handler is a boolean. The boolean is `true` when a screen\n * reader is enabled and `false` otherwise.\n *\n * These events are only supported on iOS:\n *\n * - `boldTextChanged`: iOS-only event. Fires when the state of the bold text toggle changes.\n * The argument to the event handler is a boolean. The boolean is `true` when a bold text\n * is enabled and `false` otherwise.\n * - `grayscaleChanged`: iOS-only event. Fires when the state of the gray scale toggle changes.\n * The argument to the event handler is a boolean. The boolean is `true` when a gray scale\n * is enabled and `false` otherwise.\n * - `invertColorsChanged`: iOS-only event. Fires when the state of the invert colors toggle\n * changes. The argument to the event handler is a boolean. The boolean is `true` when a invert\n * colors is enabled and `false` otherwise.\n * - `reduceTransparencyChanged`: iOS-only event. Fires when the state of the reduce transparency\n * toggle changes. The argument to the event handler is a boolean. The boolean is `true`\n * when a reduce transparency is enabled and `false` otherwise.\n * - `announcementFinished`: iOS-only event. Fires when the screen reader has\n * finished making an announcement. The argument to the event handler is a\n * dictionary with these keys:\n * - `announcement`: The string announced by the screen reader.\n * - `success`: A boolean indicating whether the announcement was\n * successfully made.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#addeventlistener\n */\n addEventListener>(\n eventName: K,\n // $FlowIssue[incompatible-type] - Flow bug with unions and generics (T128099423)\n handler: (...$ElementType) => void,\n ): EventSubscription {\n const deviceEventName = EventNames.get(eventName);\n return deviceEventName == null\n ? {remove(): void {}}\n : // $FlowFixMe[incompatible-call]\n RCTDeviceEventEmitter.addListener(deviceEventName, handler);\n },\n\n /**\n * Set accessibility focus to a React component.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#setaccessibilityfocus\n */\n setAccessibilityFocus(reactTag: number): void {\n legacySendAccessibilityEvent(reactTag, 'focus');\n },\n\n /**\n * Send a named accessibility event to a HostComponent.\n */\n sendAccessibilityEvent(\n handle: ElementRef>,\n eventType: AccessibilityEventTypes,\n ) {\n // iOS only supports 'focus' event types\n if (Platform.OS === 'ios' && eventType === 'click') {\n return;\n }\n // route through React renderer to distinguish between Fabric and non-Fabric handles\n sendAccessibilityEvent(handle, eventType);\n },\n\n /**\n * Post a string to be announced by the screen reader.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#announceforaccessibility\n */\n announceForAccessibility(announcement: string): void {\n if (Platform.OS === 'android') {\n NativeAccessibilityInfoAndroid?.announceForAccessibility(announcement);\n } else {\n NativeAccessibilityManagerIOS?.announceForAccessibility(announcement);\n }\n },\n\n /**\n * Post a string to be announced by the screen reader.\n * - `announcement`: The string announced by the screen reader.\n * - `options`: An object that configures the reading options.\n * - `queue`: The announcement will be queued behind existing announcements. iOS only.\n */\n announceForAccessibilityWithOptions(\n announcement: string,\n options: {queue?: boolean},\n ): void {\n if (Platform.OS === 'android') {\n NativeAccessibilityInfoAndroid?.announceForAccessibility(announcement);\n } else {\n if (NativeAccessibilityManagerIOS?.announceForAccessibilityWithOptions) {\n NativeAccessibilityManagerIOS?.announceForAccessibilityWithOptions(\n announcement,\n options,\n );\n } else {\n NativeAccessibilityManagerIOS?.announceForAccessibility(announcement);\n }\n }\n },\n\n /**\n * Get the recommended timeout for changes to the UI needed by this user.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#getrecommendedtimeoutmillis\n */\n getRecommendedTimeoutMillis(originalTimeout: number): Promise {\n if (Platform.OS === 'android') {\n return new Promise((resolve, reject) => {\n if (NativeAccessibilityInfoAndroid?.getRecommendedTimeoutMillis) {\n NativeAccessibilityInfoAndroid.getRecommendedTimeoutMillis(\n originalTimeout,\n resolve,\n );\n } else {\n resolve(originalTimeout);\n }\n });\n } else {\n return Promise.resolve(originalTimeout);\n }\n },\n};\n\nexport default AccessibilityInfo;\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {IEventEmitter} from '../vendor/emitter/EventEmitter';\n\nimport EventEmitter from '../vendor/emitter/EventEmitter';\n\n// FIXME: use typed events\ntype RCTDeviceEventDefinitions = $FlowFixMe;\n\n/**\n * Global EventEmitter used by the native platform to emit events to JavaScript.\n * Events are identified by globally unique event names.\n *\n * NativeModules that emit events should instead subclass `NativeEventEmitter`.\n */\nconst RCTDeviceEventEmitter: IEventEmitter =\n new EventEmitter();\n\nObject.defineProperty(global, '__rctDeviceEventEmitter', {\n configurable: true,\n value: RCTDeviceEventEmitter,\n});\n\nexport default (RCTDeviceEventEmitter: IEventEmitter);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nexport interface EventSubscription {\n remove(): void;\n}\n\nexport interface IEventEmitter {\n addListener>(\n eventType: TEvent,\n listener: (...args: $ElementType) => mixed,\n context?: mixed,\n ): EventSubscription;\n\n emit>(\n eventType: TEvent,\n ...args: $ElementType\n ): void;\n\n removeAllListeners>(eventType?: ?TEvent): void;\n\n listenerCount>(eventType: TEvent): number;\n}\n\ninterface Registration {\n +context: mixed;\n +listener: (...args: TArgs) => mixed;\n +remove: () => void;\n}\n\ntype Registry = $ObjMap<\n TEventToArgsMap,\n (TArgs) => Set>,\n>;\n\n/**\n * EventEmitter manages listeners and publishes events to them.\n *\n * EventEmitter accepts a single type parameter that defines the valid events\n * and associated listener argument(s).\n *\n * @example\n *\n * const emitter = new EventEmitter<{\n * success: [number, string],\n * error: [Error],\n * }>();\n *\n * emitter.on('success', (statusCode, responseText) => {...});\n * emitter.emit('success', 200, '...');\n *\n * emitter.on('error', error => {...});\n * emitter.emit('error', new Error('Resource not found'));\n *\n */\nexport default class EventEmitter\n implements IEventEmitter\n{\n _registry: Registry = {};\n\n /**\n * Registers a listener that is called when the supplied event is emitted.\n * Returns a subscription that has a `remove` method to undo registration.\n */\n addListener>(\n eventType: TEvent,\n listener: (...args: $ElementType) => mixed,\n context: mixed,\n ): EventSubscription {\n if (typeof listener !== 'function') {\n throw new TypeError(\n 'EventEmitter.addListener(...): 2nd argument must be a function.',\n );\n }\n const registrations = allocate<_, _, TEventToArgsMap[TEvent]>(\n this._registry,\n eventType,\n );\n const registration: Registration<$ElementType> = {\n context,\n listener,\n remove(): void {\n registrations.delete(registration);\n },\n };\n registrations.add(registration);\n return registration;\n }\n\n /**\n * Emits the supplied event. Additional arguments supplied to `emit` will be\n * passed through to each of the registered listeners.\n *\n * If a listener modifies the listeners registered for the same event, those\n * changes will not be reflected in the current invocation of `emit`.\n */\n emit>(\n eventType: TEvent,\n ...args: $ElementType\n ): void {\n const registrations: ?Set<\n Registration<$ElementType>,\n > = this._registry[eventType];\n if (registrations != null) {\n for (const registration of [...registrations]) {\n registration.listener.apply(registration.context, args);\n }\n }\n }\n\n /**\n * Removes all registered listeners.\n */\n removeAllListeners>(\n eventType?: ?TEvent,\n ): void {\n if (eventType == null) {\n this._registry = {};\n } else {\n delete this._registry[eventType];\n }\n }\n\n /**\n * Returns the number of registered listeners for the supplied event.\n */\n listenerCount>(eventType: TEvent): number {\n const registrations: ?Set> = this._registry[eventType];\n return registrations == null ? 0 : registrations.size;\n }\n}\n\nfunction allocate<\n TEventToArgsMap: {...},\n TEvent: $Keys,\n TEventArgs: $ElementType,\n>(\n registry: Registry,\n eventType: TEvent,\n): Set> {\n let registrations: ?Set> = registry[eventType];\n if (registrations == null) {\n registrations = new Set();\n registry[eventType] = registrations;\n }\n return registrations;\n}\n","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport NativePlatformConstantsAndroid from './NativePlatformConstantsAndroid';\n\nexport type PlatformSelectSpec = {\n android?: T,\n native?: T,\n default?: T,\n ...\n};\n\nconst Platform = {\n __constants: null,\n OS: 'android',\n // $FlowFixMe[unsafe-getters-setters]\n get Version(): number {\n // $FlowFixMe[object-this-reference]\n return this.constants.Version;\n },\n // $FlowFixMe[unsafe-getters-setters]\n get constants(): {|\n isTesting: boolean,\n reactNativeVersion: {|\n major: number,\n minor: number,\n patch: number,\n prerelease: ?number,\n |},\n Version: number,\n Release: string,\n Serial: string,\n Fingerprint: string,\n Model: string,\n ServerHost?: string,\n uiMode: string,\n Brand: string,\n Manufacturer: string,\n |} {\n // $FlowFixMe[object-this-reference]\n if (this.__constants == null) {\n // $FlowFixMe[object-this-reference]\n this.__constants = NativePlatformConstantsAndroid.getConstants();\n }\n // $FlowFixMe[object-this-reference]\n return this.__constants;\n },\n // $FlowFixMe[unsafe-getters-setters]\n get isTesting(): boolean {\n if (__DEV__) {\n // $FlowFixMe[object-this-reference]\n return this.constants.isTesting;\n }\n return false;\n },\n // $FlowFixMe[unsafe-getters-setters]\n get isTV(): boolean {\n // $FlowFixMe[object-this-reference]\n return this.constants.uiMode === 'tv';\n },\n select: (spec: PlatformSelectSpec): T =>\n 'android' in spec\n ? // $FlowFixMe[incompatible-return]\n spec.android\n : 'native' in spec\n ? // $FlowFixMe[incompatible-return]\n spec.native\n : // $FlowFixMe[incompatible-return]\n spec.default,\n};\n\nmodule.exports = Platform;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n isTesting: boolean,\n reactNativeVersion: {|\n major: number,\n minor: number,\n patch: number,\n prerelease: ?number,\n |},\n Version: number,\n Release: string,\n Serial: string,\n Fingerprint: string,\n Model: string,\n ServerHost?: string,\n uiMode: string,\n Brand: string,\n Manufacturer: string,\n |};\n +getAndroidID: () => string;\n}\n\nexport default (TurboModuleRegistry.getEnforcing(\n 'PlatformConstants',\n): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from './RCTExport';\n\nimport invariant from 'invariant';\n\nconst NativeModules = require('../BatchedBridge/NativeModules');\n\nconst turboModuleProxy = global.__turboModuleProxy;\n\nfunction requireModule(name: string): ?T {\n // Bridgeless mode requires TurboModules\n if (global.RN$Bridgeless !== true) {\n // Backward compatibility layer during migration.\n const legacyModule = NativeModules[name];\n if (legacyModule != null) {\n return ((legacyModule: $FlowFixMe): T);\n }\n }\n\n if (turboModuleProxy != null) {\n const module: ?T = turboModuleProxy(name);\n return module;\n }\n\n return null;\n}\n\nexport function get(name: string): ?T {\n return requireModule(name);\n}\n\nexport function getEnforcing(name: string): T {\n const module = requireModule(name);\n invariant(\n module != null,\n `TurboModuleRegistry.getEnforcing(...): '${name}' could not be found. ` +\n 'Verify that a module by this name is registered in the native binary.',\n );\n return module;\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nimport type {ExtendedError} from '../Core/ExtendedError';\n\nconst BatchedBridge = require('./BatchedBridge');\nconst invariant = require('invariant');\n\nexport type ModuleConfig = [\n string /* name */,\n ?{...} /* constants */,\n ?$ReadOnlyArray /* functions */,\n ?$ReadOnlyArray /* promise method IDs */,\n ?$ReadOnlyArray /* sync method IDs */,\n];\n\nexport type MethodType = 'async' | 'promise' | 'sync';\n\nfunction genModule(\n config: ?ModuleConfig,\n moduleID: number,\n): ?{\n name: string,\n module?: {...},\n ...\n} {\n if (!config) {\n return null;\n }\n\n const [moduleName, constants, methods, promiseMethods, syncMethods] = config;\n invariant(\n !moduleName.startsWith('RCT') && !moduleName.startsWith('RK'),\n \"Module name prefixes should've been stripped by the native side \" +\n \"but wasn't for \" +\n moduleName,\n );\n\n if (!constants && !methods) {\n // Module contents will be filled in lazily later\n return {name: moduleName};\n }\n\n const module: {[string]: mixed} = {};\n methods &&\n methods.forEach((methodName, methodID) => {\n const isPromise =\n (promiseMethods && arrayContains(promiseMethods, methodID)) || false;\n const isSync =\n (syncMethods && arrayContains(syncMethods, methodID)) || false;\n invariant(\n !isPromise || !isSync,\n 'Cannot have a method that is both async and a sync hook',\n );\n const methodType = isPromise ? 'promise' : isSync ? 'sync' : 'async';\n module[methodName] = genMethod(moduleID, methodID, methodType);\n });\n\n Object.assign(module, constants);\n\n if (module.getConstants == null) {\n module.getConstants = () => constants || Object.freeze({});\n } else {\n console.warn(\n `Unable to define method 'getConstants()' on NativeModule '${moduleName}'. NativeModule '${moduleName}' already has a constant or method called 'getConstants'. Please remove it.`,\n );\n }\n\n if (__DEV__) {\n BatchedBridge.createDebugLookup(moduleID, moduleName, methods);\n }\n\n return {name: moduleName, module};\n}\n\n// export this method as a global so we can call it from native\nglobal.__fbGenNativeModule = genModule;\n\nfunction loadModule(name: string, moduleID: number): ?{...} {\n invariant(\n global.nativeRequireModuleConfig,\n \"Can't lazily create module without nativeRequireModuleConfig\",\n );\n const config = global.nativeRequireModuleConfig(name);\n const info = genModule(config, moduleID);\n return info && info.module;\n}\n\nfunction genMethod(moduleID: number, methodID: number, type: MethodType) {\n let fn = null;\n if (type === 'promise') {\n fn = function promiseMethodWrapper(...args: Array) {\n // In case we reject, capture a useful stack trace here.\n /* $FlowFixMe[class-object-subtyping] added when improving typing for\n * this parameters */\n const enqueueingFrameError: ExtendedError = new Error();\n return new Promise((resolve, reject) => {\n BatchedBridge.enqueueNativeCall(\n moduleID,\n methodID,\n args,\n data => resolve(data),\n errorData =>\n reject(\n updateErrorWithErrorData(\n (errorData: $FlowFixMe),\n enqueueingFrameError,\n ),\n ),\n );\n });\n };\n } else {\n fn = function nonPromiseMethodWrapper(...args: Array) {\n const lastArg = args.length > 0 ? args[args.length - 1] : null;\n const secondLastArg = args.length > 1 ? args[args.length - 2] : null;\n const hasSuccessCallback = typeof lastArg === 'function';\n const hasErrorCallback = typeof secondLastArg === 'function';\n hasErrorCallback &&\n invariant(\n hasSuccessCallback,\n 'Cannot have a non-function arg after a function arg.',\n );\n // $FlowFixMe[incompatible-type]\n const onSuccess: ?(mixed) => void = hasSuccessCallback ? lastArg : null;\n // $FlowFixMe[incompatible-type]\n const onFail: ?(mixed) => void = hasErrorCallback ? secondLastArg : null;\n // $FlowFixMe[unsafe-addition]\n const callbackCount = hasSuccessCallback + hasErrorCallback;\n const newArgs = args.slice(0, args.length - callbackCount);\n if (type === 'sync') {\n return BatchedBridge.callNativeSyncHook(\n moduleID,\n methodID,\n newArgs,\n onFail,\n onSuccess,\n );\n } else {\n BatchedBridge.enqueueNativeCall(\n moduleID,\n methodID,\n newArgs,\n onFail,\n onSuccess,\n );\n }\n };\n }\n // $FlowFixMe[prop-missing]\n fn.type = type;\n return fn;\n}\n\nfunction arrayContains(array: $ReadOnlyArray, value: T): boolean {\n return array.indexOf(value) !== -1;\n}\n\nfunction updateErrorWithErrorData(\n errorData: {message: string, ...},\n error: ExtendedError,\n): ExtendedError {\n /* $FlowFixMe[class-object-subtyping] added when improving typing for this\n * parameters */\n return Object.assign(error, errorData || {});\n}\n\nlet NativeModules: {[moduleName: string]: $FlowFixMe, ...} = {};\nif (global.nativeModuleProxy) {\n NativeModules = global.nativeModuleProxy;\n} else if (!global.nativeExtensions) {\n const bridgeConfig = global.__fbBatchedBridgeConfig;\n invariant(\n bridgeConfig,\n '__fbBatchedBridgeConfig is not set, cannot invoke native modules',\n );\n\n const defineLazyObjectProperty = require('../Utilities/defineLazyObjectProperty');\n (bridgeConfig.remoteModuleConfig || []).forEach(\n (config: ModuleConfig, moduleID: number) => {\n // Initially this config will only contain the module name when running in JSC. The actual\n // configuration of the module will be lazily loaded.\n const info = genModule(config, moduleID);\n if (!info) {\n return;\n }\n\n if (info.module) {\n NativeModules[info.name] = info.module;\n }\n // If there's no module config, define a lazy getter\n else {\n defineLazyObjectProperty(NativeModules, info.name, {\n get: () => loadModule(info.name, moduleID),\n });\n }\n },\n );\n}\n\nmodule.exports = NativeModules;\n","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nconst MessageQueue = require('./MessageQueue');\n\nconst BatchedBridge: MessageQueue = new MessageQueue();\n\n// Wire up the batched bridge on the global object so that we can call into it.\n// Ideally, this would be the inverse relationship. I.e. the native environment\n// provides this global directly with its script embedded. Then this module\n// would export it. A possible fix would be to trim the dependencies in\n// MessageQueue to its minimal features and embed that in the native runtime.\n\nObject.defineProperty(global, '__fbBatchedBridge', {\n configurable: true,\n value: BatchedBridge,\n});\n\nmodule.exports = BatchedBridge;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nconst Systrace = require('../Performance/Systrace');\nconst deepFreezeAndThrowOnMutationInDev = require('../Utilities/deepFreezeAndThrowOnMutationInDev');\nconst stringifySafe = require('../Utilities/stringifySafe').default;\nconst warnOnce = require('../Utilities/warnOnce');\nconst ErrorUtils = require('../vendor/core/ErrorUtils');\nconst invariant = require('invariant');\n\nexport type SpyData = {\n type: number,\n module: ?string,\n method: string | number,\n args: mixed[],\n ...\n};\n\nconst TO_JS = 0;\nconst TO_NATIVE = 1;\n\nconst MODULE_IDS = 0;\nconst METHOD_IDS = 1;\nconst PARAMS = 2;\nconst MIN_TIME_BETWEEN_FLUSHES_MS = 5;\n\n// eslint-disable-next-line no-bitwise\nconst TRACE_TAG_REACT_APPS = 1 << 17;\n\nconst DEBUG_INFO_LIMIT = 32;\n\nclass MessageQueue {\n _lazyCallableModules: {[key: string]: (void) => {...}, ...};\n _queue: [number[], number[], mixed[], number];\n _successCallbacks: Map void>;\n _failureCallbacks: Map void>;\n _callID: number;\n _lastFlush: number;\n _eventLoopStartTime: number;\n _reactNativeMicrotasksCallback: ?() => void;\n\n _debugInfo: {[number]: [number, number], ...};\n _remoteModuleTable: {[number]: string, ...};\n _remoteMethodTable: {[number]: $ReadOnlyArray, ...};\n\n __spy: ?(data: SpyData) => void;\n\n constructor() {\n this._lazyCallableModules = {};\n this._queue = [[], [], [], 0];\n this._successCallbacks = new Map();\n this._failureCallbacks = new Map();\n this._callID = 0;\n this._lastFlush = 0;\n this._eventLoopStartTime = Date.now();\n this._reactNativeMicrotasksCallback = null;\n\n if (__DEV__) {\n this._debugInfo = {};\n this._remoteModuleTable = {};\n this._remoteMethodTable = {};\n }\n\n // $FlowFixMe[cannot-write]\n this.callFunctionReturnFlushedQueue =\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.callFunctionReturnFlushedQueue.bind(this);\n // $FlowFixMe[cannot-write]\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.flushedQueue = this.flushedQueue.bind(this);\n\n // $FlowFixMe[cannot-write]\n this.invokeCallbackAndReturnFlushedQueue =\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.invokeCallbackAndReturnFlushedQueue.bind(this);\n }\n\n /**\n * Public APIs\n */\n\n static spy(spyOrToggle: boolean | ((data: SpyData) => void)) {\n if (spyOrToggle === true) {\n MessageQueue.prototype.__spy = info => {\n console.log(\n `${info.type === TO_JS ? 'N->JS' : 'JS->N'} : ` +\n `${info.module != null ? info.module + '.' : ''}${info.method}` +\n `(${JSON.stringify(info.args)})`,\n );\n };\n } else if (spyOrToggle === false) {\n MessageQueue.prototype.__spy = null;\n } else {\n MessageQueue.prototype.__spy = spyOrToggle;\n }\n }\n\n callFunctionReturnFlushedQueue(\n module: string,\n method: string,\n args: mixed[],\n ): null | [Array, Array, Array, number] {\n this.__guard(() => {\n this.__callFunction(module, method, args);\n });\n\n return this.flushedQueue();\n }\n\n invokeCallbackAndReturnFlushedQueue(\n cbID: number,\n args: mixed[],\n ): null | [Array, Array, Array, number] {\n this.__guard(() => {\n this.__invokeCallback(cbID, args);\n });\n\n return this.flushedQueue();\n }\n\n flushedQueue(): null | [Array, Array, Array, number] {\n this.__guard(() => {\n this.__callReactNativeMicrotasks();\n });\n\n const queue = this._queue;\n this._queue = [[], [], [], this._callID];\n return queue[0].length ? queue : null;\n }\n\n getEventLoopRunningTime(): number {\n return Date.now() - this._eventLoopStartTime;\n }\n\n registerCallableModule(name: string, module: {...}) {\n this._lazyCallableModules[name] = () => module;\n }\n\n registerLazyCallableModule(name: string, factory: void => interface {}) {\n let module: interface {};\n let getValue: ?(void) => interface {} = factory;\n this._lazyCallableModules[name] = () => {\n if (getValue) {\n module = getValue();\n getValue = null;\n }\n /* $FlowFixMe[class-object-subtyping] added when improving typing for\n * this parameters */\n return module;\n };\n }\n\n getCallableModule(name: string): {...} | null {\n const getValue = this._lazyCallableModules[name];\n return getValue ? getValue() : null;\n }\n\n callNativeSyncHook(\n moduleID: number,\n methodID: number,\n params: mixed[],\n onFail: ?(...mixed[]) => void,\n onSucc: ?(...mixed[]) => void,\n ): mixed {\n if (__DEV__) {\n invariant(\n global.nativeCallSyncHook,\n 'Calling synchronous methods on native ' +\n 'modules is not supported in Chrome.\\n\\n Consider providing alternative ' +\n 'methods to expose this method in debug mode, e.g. by exposing constants ' +\n 'ahead-of-time.',\n );\n }\n this.processCallbacks(moduleID, methodID, params, onFail, onSucc);\n return global.nativeCallSyncHook(moduleID, methodID, params);\n }\n\n processCallbacks(\n moduleID: number,\n methodID: number,\n params: mixed[],\n onFail: ?(...mixed[]) => void,\n onSucc: ?(...mixed[]) => void,\n ): void {\n if (onFail || onSucc) {\n if (__DEV__) {\n this._debugInfo[this._callID] = [moduleID, methodID];\n if (this._callID > DEBUG_INFO_LIMIT) {\n delete this._debugInfo[this._callID - DEBUG_INFO_LIMIT];\n }\n if (this._successCallbacks.size > 500) {\n const info: {[number]: {method: string, module: string}} = {};\n this._successCallbacks.forEach((_, callID) => {\n const debug = this._debugInfo[callID];\n const module = debug && this._remoteModuleTable[debug[0]];\n const method = debug && this._remoteMethodTable[debug[0]][debug[1]];\n info[callID] = {module, method};\n });\n warnOnce(\n 'excessive-number-of-pending-callbacks',\n `Excessive number of pending callbacks: ${\n this._successCallbacks.size\n }. Some pending callbacks that might have leaked by never being called from native code: ${stringifySafe(\n info,\n )}`,\n );\n }\n }\n // Encode callIDs into pairs of callback identifiers by shifting left and using the rightmost bit\n // to indicate fail (0) or success (1)\n // eslint-disable-next-line no-bitwise\n onFail && params.push(this._callID << 1);\n // eslint-disable-next-line no-bitwise\n onSucc && params.push((this._callID << 1) | 1);\n this._successCallbacks.set(this._callID, onSucc);\n this._failureCallbacks.set(this._callID, onFail);\n }\n if (__DEV__) {\n global.nativeTraceBeginAsyncFlow &&\n global.nativeTraceBeginAsyncFlow(\n TRACE_TAG_REACT_APPS,\n 'native',\n this._callID,\n );\n }\n this._callID++;\n }\n\n enqueueNativeCall(\n moduleID: number,\n methodID: number,\n params: mixed[],\n onFail: ?(...mixed[]) => void,\n onSucc: ?(...mixed[]) => void,\n ): void {\n this.processCallbacks(moduleID, methodID, params, onFail, onSucc);\n\n this._queue[MODULE_IDS].push(moduleID);\n this._queue[METHOD_IDS].push(methodID);\n\n if (__DEV__) {\n // Validate that parameters passed over the bridge are\n // folly-convertible. As a special case, if a prop value is a\n // function it is permitted here, and special-cased in the\n // conversion.\n const isValidArgument = (val: mixed): boolean => {\n switch (typeof val) {\n case 'undefined':\n case 'boolean':\n case 'string':\n return true;\n case 'number':\n return isFinite(val);\n case 'object':\n if (val == null) {\n return true;\n }\n\n if (Array.isArray(val)) {\n return val.every(isValidArgument);\n }\n\n for (const k in val) {\n if (typeof val[k] !== 'function' && !isValidArgument(val[k])) {\n return false;\n }\n }\n\n return true;\n case 'function':\n return false;\n default:\n return false;\n }\n };\n\n // Replacement allows normally non-JSON-convertible values to be\n // seen. There is ambiguity with string values, but in context,\n // it should at least be a strong hint.\n const replacer = (key: string, val: $FlowFixMe) => {\n const t = typeof val;\n if (t === 'function') {\n return '<>';\n } else if (t === 'number' && !isFinite(val)) {\n return '<<' + val.toString() + '>>';\n } else {\n return val;\n }\n };\n\n // Note that JSON.stringify\n invariant(\n isValidArgument(params),\n '%s is not usable as a native method argument',\n JSON.stringify(params, replacer),\n );\n\n // The params object should not be mutated after being queued\n deepFreezeAndThrowOnMutationInDev(params);\n }\n this._queue[PARAMS].push(params);\n\n const now = Date.now();\n if (\n global.nativeFlushQueueImmediate &&\n now - this._lastFlush >= MIN_TIME_BETWEEN_FLUSHES_MS\n ) {\n const queue = this._queue;\n this._queue = [[], [], [], this._callID];\n this._lastFlush = now;\n global.nativeFlushQueueImmediate(queue);\n }\n Systrace.counterEvent('pending_js_to_native_queue', this._queue[0].length);\n if (__DEV__ && this.__spy && isFinite(moduleID)) {\n // $FlowFixMe[not-a-function]\n this.__spy({\n type: TO_NATIVE,\n module: this._remoteModuleTable[moduleID],\n method: this._remoteMethodTable[moduleID][methodID],\n args: params,\n });\n } else if (this.__spy) {\n this.__spy({\n type: TO_NATIVE,\n module: moduleID + '',\n method: methodID,\n args: params,\n });\n }\n }\n\n createDebugLookup(\n moduleID: number,\n name: string,\n methods: ?$ReadOnlyArray,\n ) {\n if (__DEV__) {\n this._remoteModuleTable[moduleID] = name;\n this._remoteMethodTable[moduleID] = methods || [];\n }\n }\n\n // For JSTimers to register its callback. Otherwise a circular dependency\n // between modules is introduced. Note that only one callback may be\n // registered at a time.\n setReactNativeMicrotasksCallback(fn: () => void) {\n this._reactNativeMicrotasksCallback = fn;\n }\n\n /**\n * Private methods\n */\n\n __guard(fn: () => void) {\n if (this.__shouldPauseOnThrow()) {\n fn();\n } else {\n try {\n fn();\n } catch (error) {\n ErrorUtils.reportFatalError(error);\n }\n }\n }\n\n // MessageQueue installs a global handler to catch all exceptions where JS users can register their own behavior\n // This handler makes all exceptions to be propagated from inside MessageQueue rather than by the VM at their origin\n // This makes stacktraces to be placed at MessageQueue rather than at where they were launched\n // The parameter DebuggerInternal.shouldPauseOnThrow is used to check before catching all exceptions and\n // can be configured by the VM or any Inspector\n __shouldPauseOnThrow(): boolean {\n return (\n // $FlowFixMe[cannot-resolve-name]\n typeof DebuggerInternal !== 'undefined' &&\n // $FlowFixMe[cannot-resolve-name]\n DebuggerInternal.shouldPauseOnThrow === true\n );\n }\n\n __callReactNativeMicrotasks() {\n Systrace.beginEvent('JSTimers.callReactNativeMicrotasks()');\n if (this._reactNativeMicrotasksCallback != null) {\n this._reactNativeMicrotasksCallback();\n }\n Systrace.endEvent();\n }\n\n __callFunction(module: string, method: string, args: mixed[]): void {\n this._lastFlush = Date.now();\n this._eventLoopStartTime = this._lastFlush;\n if (__DEV__ || this.__spy) {\n Systrace.beginEvent(`${module}.${method}(${stringifySafe(args)})`);\n } else {\n Systrace.beginEvent(`${module}.${method}(...)`);\n }\n if (this.__spy) {\n this.__spy({type: TO_JS, module, method, args});\n }\n const moduleMethods = this.getCallableModule(module);\n if (!moduleMethods) {\n const callableModuleNames = Object.keys(this._lazyCallableModules);\n const n = callableModuleNames.length;\n const callableModuleNameList = callableModuleNames.join(', ');\n\n // TODO(T122225939): Remove after investigation: Why are we getting to this line in bridgeless mode?\n const isBridgelessMode = global.RN$Bridgeless === true ? 'true' : 'false';\n invariant(\n false,\n `Failed to call into JavaScript module method ${module}.${method}(). Module has not been registered as callable. Bridgeless Mode: ${isBridgelessMode}. Registered callable JavaScript modules (n = ${n}): ${callableModuleNameList}.\n A frequent cause of the error is that the application entry file path is incorrect. This can also happen when the JS bundle is corrupt or there is an early initialization error when loading React Native.`,\n );\n }\n if (!moduleMethods[method]) {\n invariant(\n false,\n `Failed to call into JavaScript module method ${module}.${method}(). Module exists, but the method is undefined.`,\n );\n }\n moduleMethods[method].apply(moduleMethods, args);\n Systrace.endEvent();\n }\n\n __invokeCallback(cbID: number, args: mixed[]): void {\n this._lastFlush = Date.now();\n this._eventLoopStartTime = this._lastFlush;\n\n // The rightmost bit of cbID indicates fail (0) or success (1), the other bits are the callID shifted left.\n // eslint-disable-next-line no-bitwise\n const callID = cbID >>> 1;\n // eslint-disable-next-line no-bitwise\n const isSuccess = cbID & 1;\n const callback = isSuccess\n ? this._successCallbacks.get(callID)\n : this._failureCallbacks.get(callID);\n\n if (__DEV__) {\n const debug = this._debugInfo[callID];\n const module = debug && this._remoteModuleTable[debug[0]];\n const method = debug && this._remoteMethodTable[debug[0]][debug[1]];\n invariant(\n callback,\n `No callback found with cbID ${cbID} and callID ${callID} for ` +\n (method\n ? ` ${module}.${method} - most likely the callback was already invoked`\n : `module ${module || ''}`) +\n `. Args: '${stringifySafe(args)}'`,\n );\n const profileName = debug\n ? ''\n : cbID;\n if (callback && this.__spy) {\n this.__spy({type: TO_JS, module: null, method: profileName, args});\n }\n Systrace.beginEvent(\n `MessageQueue.invokeCallback(${profileName}, ${stringifySafe(args)})`,\n );\n }\n\n if (!callback) {\n return;\n }\n\n this._successCallbacks.delete(callID);\n this._failureCallbacks.delete(callID);\n callback(...args);\n\n if (__DEV__) {\n Systrace.endEvent();\n }\n }\n}\n\nmodule.exports = MessageQueue;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport typeof * as SystraceModule from './Systrace';\n\nconst TRACE_TAG_REACT_APPS = 1 << 17; // eslint-disable-line no-bitwise\n\nlet _asyncCookie = 0;\n\ntype EventName = string | (() => string);\ntype EventArgs = ?{[string]: string};\n\n/**\n * Indicates if the application is currently being traced.\n *\n * Calling methods on this module when the application isn't being traced is\n * cheap, but this method can be used to avoid computing expensive values for\n * those functions.\n *\n * @example\n * if (Systrace.isEnabled()) {\n * const expensiveArgs = computeExpensiveArgs();\n * Systrace.beginEvent('myEvent', expensiveArgs);\n * }\n */\nexport function isEnabled(): boolean {\n return global.nativeTraceIsTracing\n ? global.nativeTraceIsTracing(TRACE_TAG_REACT_APPS)\n : Boolean(global.__RCTProfileIsProfiling);\n}\n\n/**\n * @deprecated This function is now a no-op but it's left for backwards\n * compatibility. `isEnabled` will now synchronously check if we're actively\n * profiling or not. This is necessary because we don't have callbacks to know\n * when profiling has started/stopped on Android APIs.\n */\nexport function setEnabled(_doEnable: boolean): void {}\n\n/**\n * Marks the start of a synchronous event that should end in the same stack\n * frame. The end of this event should be marked using the `endEvent` function.\n */\nexport function beginEvent(eventName: EventName, args?: EventArgs): void {\n if (isEnabled()) {\n const eventNameString =\n typeof eventName === 'function' ? eventName() : eventName;\n global.nativeTraceBeginSection(TRACE_TAG_REACT_APPS, eventNameString, args);\n }\n}\n\n/**\n * Marks the end of a synchronous event started in the same stack frame.\n */\nexport function endEvent(args?: EventArgs): void {\n if (isEnabled()) {\n global.nativeTraceEndSection(TRACE_TAG_REACT_APPS, args);\n }\n}\n\n/**\n * Marks the start of a potentially asynchronous event. The end of this event\n * should be marked calling the `endAsyncEvent` function with the cookie\n * returned by this function.\n */\nexport function beginAsyncEvent(\n eventName: EventName,\n args?: EventArgs,\n): number {\n const cookie = _asyncCookie;\n if (isEnabled()) {\n _asyncCookie++;\n const eventNameString =\n typeof eventName === 'function' ? eventName() : eventName;\n global.nativeTraceBeginAsyncSection(\n TRACE_TAG_REACT_APPS,\n eventNameString,\n cookie,\n args,\n );\n }\n return cookie;\n}\n\n/**\n * Marks the end of a potentially asynchronous event, which was started with\n * the given cookie.\n */\nexport function endAsyncEvent(\n eventName: EventName,\n cookie: number,\n args?: EventArgs,\n): void {\n if (isEnabled()) {\n const eventNameString =\n typeof eventName === 'function' ? eventName() : eventName;\n global.nativeTraceEndAsyncSection(\n TRACE_TAG_REACT_APPS,\n eventNameString,\n cookie,\n args,\n );\n }\n}\n\n/**\n * Registers a new value for a counter event.\n */\nexport function counterEvent(eventName: EventName, value: number): void {\n if (isEnabled()) {\n const eventNameString =\n typeof eventName === 'function' ? eventName() : eventName;\n global.nativeTraceCounter &&\n global.nativeTraceCounter(TRACE_TAG_REACT_APPS, eventNameString, value);\n }\n}\n\nif (__DEV__) {\n const Systrace: SystraceModule = {\n isEnabled,\n setEnabled,\n beginEvent,\n endEvent,\n beginAsyncEvent,\n endAsyncEvent,\n counterEvent,\n };\n\n // The metro require polyfill can not have dependencies (true for all polyfills).\n // Ensure that `Systrace` is available in polyfill by exposing it globally.\n global[(global.__METRO_GLOBAL_PREFIX__ || '') + '__SYSTRACE'] = Systrace;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport type {ErrorUtilsT} from '@react-native/js-polyfills/error-guard';\n\n/**\n * The particular require runtime that we are using looks for a global\n * `ErrorUtils` object and if it exists, then it requires modules with the\n * error handler specified via ErrorUtils.setGlobalHandler by calling the\n * require function with applyWithGuard. Since the require module is loaded\n * before any of the modules, this ErrorUtils must be defined (and the handler\n * set) globally before requiring anything.\n *\n * However, we still want to treat ErrorUtils as a module so that other modules\n * that use it aren't just using a global variable, so simply export the global\n * variable here. ErrorUtils is originally defined in a file named error-guard.js.\n */\nmodule.exports = (global.ErrorUtils: ErrorUtilsT);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport invariant from 'invariant';\n\n/**\n * Tries to stringify with JSON.stringify and toString, but catches exceptions\n * (e.g. from circular objects) and always returns a string and never throws.\n */\nexport function createStringifySafeWithLimits(limits: {|\n maxDepth?: number,\n maxStringLimit?: number,\n maxArrayLimit?: number,\n maxObjectKeysLimit?: number,\n|}): mixed => string {\n const {\n maxDepth = Number.POSITIVE_INFINITY,\n maxStringLimit = Number.POSITIVE_INFINITY,\n maxArrayLimit = Number.POSITIVE_INFINITY,\n maxObjectKeysLimit = Number.POSITIVE_INFINITY,\n } = limits;\n const stack: Array = [];\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n function replacer(key: string, value: mixed): mixed {\n while (stack.length && this !== stack[0]) {\n stack.shift();\n }\n\n if (typeof value === 'string') {\n const truncatedString = '...(truncated)...';\n if (value.length > maxStringLimit + truncatedString.length) {\n return value.substring(0, maxStringLimit) + truncatedString;\n }\n return value;\n }\n if (typeof value !== 'object' || value === null) {\n return value;\n }\n\n let retval: mixed = value;\n if (Array.isArray(value)) {\n if (stack.length >= maxDepth) {\n retval = `[ ... array with ${value.length} values ... ]`;\n } else if (value.length > maxArrayLimit) {\n retval = value\n .slice(0, maxArrayLimit)\n .concat([\n `... extra ${value.length - maxArrayLimit} values truncated ...`,\n ]);\n }\n } else {\n // Add refinement after Array.isArray call.\n invariant(typeof value === 'object', 'This was already found earlier');\n let keys = Object.keys(value);\n if (stack.length >= maxDepth) {\n retval = `{ ... object with ${keys.length} keys ... }`;\n } else if (keys.length > maxObjectKeysLimit) {\n // Return a sample of the keys.\n retval = ({}: {[string]: mixed});\n for (let k of keys.slice(0, maxObjectKeysLimit)) {\n retval[k] = value[k];\n }\n const truncatedKey = '...(truncated keys)...';\n retval[truncatedKey] = keys.length - maxObjectKeysLimit;\n }\n }\n stack.unshift(retval);\n return retval;\n }\n\n return function stringifySafe(arg: mixed): string {\n if (arg === undefined) {\n return 'undefined';\n } else if (arg === null) {\n return 'null';\n } else if (typeof arg === 'function') {\n try {\n return arg.toString();\n } catch (e) {\n return '[function unknown]';\n }\n } else if (arg instanceof Error) {\n return arg.name + ': ' + arg.message;\n } else {\n // Perform a try catch, just in case the object has a circular\n // reference or stringify throws for some other reason.\n try {\n const ret = JSON.stringify(arg, replacer);\n if (ret === undefined) {\n return '[\"' + typeof arg + '\" failed to stringify]';\n }\n return ret;\n } catch (e) {\n if (typeof arg.toString === 'function') {\n try {\n // $FlowFixMe[incompatible-use] : toString shouldn't take any arguments in general.\n return arg.toString();\n } catch (E) {}\n }\n }\n }\n return '[\"' + typeof arg + '\" failed to stringify]';\n };\n}\n\nconst stringifySafe: mixed => string = createStringifySafeWithLimits({\n maxDepth: 10,\n maxStringLimit: 100,\n maxArrayLimit: 50,\n maxObjectKeysLimit: 50,\n});\n\nexport default stringifySafe;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\n/**\n * Defines a lazily evaluated property on the supplied `object`.\n */\nfunction defineLazyObjectProperty(\n object: interface {},\n name: string,\n descriptor: {\n get: () => T,\n enumerable?: boolean,\n writable?: boolean,\n ...\n },\n): void {\n const {get} = descriptor;\n const enumerable = descriptor.enumerable !== false;\n const writable = descriptor.writable !== false;\n\n let value;\n let valueSet = false;\n function getValue(): T {\n // WORKAROUND: A weird infinite loop occurs where calling `getValue` calls\n // `setValue` which calls `Object.defineProperty` which somehow triggers\n // `getValue` again. Adding `valueSet` breaks this loop.\n if (!valueSet) {\n // Calling `get()` here can trigger an infinite loop if it fails to\n // remove the getter on the property, which can happen when executing\n // JS in a V8 context. `valueSet = true` will break this loop, and\n // sets the value of the property to undefined, until the code in `get()`\n // finishes, at which point the property is set to the correct value.\n valueSet = true;\n setValue(get());\n }\n return value;\n }\n function setValue(newValue: T): void {\n value = newValue;\n valueSet = true;\n Object.defineProperty(object, name, {\n value: newValue,\n configurable: true,\n enumerable,\n writable,\n });\n }\n\n Object.defineProperty(object, name, {\n get: getValue,\n set: setValue,\n configurable: true,\n enumerable,\n });\n}\n\nmodule.exports = defineLazyObjectProperty;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport UIManager from '../../ReactNative/UIManager';\n\n/**\n * This is a function exposed to the React Renderer that can be used by the\n * pre-Fabric renderer to emit accessibility events to pre-Fabric nodes.\n */\nfunction legacySendAccessibilityEvent(\n reactTag: number,\n eventType: string,\n): void {\n if (eventType === 'focus') {\n UIManager.sendAccessibilityEvent(\n reactTag,\n UIManager.getConstants().AccessibilityEventTypes.typeViewFocused,\n );\n }\n if (eventType === 'click') {\n UIManager.sendAccessibilityEvent(\n reactTag,\n UIManager.getConstants().AccessibilityEventTypes.typeViewClicked,\n );\n }\n}\n\nmodule.exports = legacySendAccessibilityEvent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {RootTag} from '../Types/RootTagTypes';\nimport type {Spec} from './NativeUIManager';\n\nimport {getFabricUIManager} from './FabricUIManager';\nimport nullthrows from 'nullthrows';\n\nexport interface UIManagerJSInterface extends Spec {\n +getViewManagerConfig: (viewManagerName: string) => Object;\n +hasViewManagerConfig: (viewManagerName: string) => boolean;\n +createView: (\n reactTag: ?number,\n viewName: string,\n rootTag: RootTag,\n props: Object,\n ) => void;\n +updateView: (reactTag: number, viewName: string, props: Object) => void;\n +manageChildren: (\n containerTag: ?number,\n moveFromIndices: Array,\n moveToIndices: Array,\n addChildReactTags: Array,\n addAtIndices: Array,\n removeAtIndices: Array,\n ) => void;\n}\n\nfunction isFabricReactTag(reactTag: number): boolean {\n // React reserves even numbers for Fabric.\n return reactTag % 2 === 0;\n}\n\nconst UIManagerImpl: UIManagerJSInterface =\n global.RN$Bridgeless === true\n ? require('./BridgelessUIManager')\n : require('./PaperUIManager');\n\n// $FlowFixMe[cannot-spread-interface]\nconst UIManager = {\n ...UIManagerImpl,\n measure(\n reactTag: number,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number,\n ) => void,\n ): void {\n if (isFabricReactTag(reactTag)) {\n const FabricUIManager = nullthrows(getFabricUIManager());\n const shadowNode =\n FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag);\n if (shadowNode) {\n FabricUIManager.measure(shadowNode, callback);\n } else {\n console.warn(`measure cannot find view with tag #${reactTag}`);\n // $FlowFixMe[incompatible-call]\n callback();\n }\n } else {\n // Paper\n UIManagerImpl.measure(reactTag, callback);\n }\n },\n\n measureInWindow(\n reactTag: number,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ): void {\n if (isFabricReactTag(reactTag)) {\n const FabricUIManager = nullthrows(getFabricUIManager());\n const shadowNode =\n FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag);\n if (shadowNode) {\n FabricUIManager.measureInWindow(shadowNode, callback);\n } else {\n console.warn(`measure cannot find view with tag #${reactTag}`);\n // $FlowFixMe[incompatible-call]\n callback();\n }\n } else {\n // Paper\n UIManagerImpl.measureInWindow(reactTag, callback);\n }\n },\n\n measureLayout(\n reactTag: number,\n ancestorReactTag: number,\n errorCallback: (error: Object) => void,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ): void {\n if (isFabricReactTag(reactTag)) {\n const FabricUIManager = nullthrows(getFabricUIManager());\n const shadowNode =\n FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag);\n const ancestorShadowNode =\n FabricUIManager.findShadowNodeByTag_DEPRECATED(ancestorReactTag);\n\n if (!shadowNode || !ancestorShadowNode) {\n return;\n }\n\n FabricUIManager.measureLayout(\n shadowNode,\n ancestorShadowNode,\n errorCallback,\n callback,\n );\n } else {\n // Paper\n UIManagerImpl.measureLayout(\n reactTag,\n ancestorReactTag,\n errorCallback,\n callback,\n );\n }\n },\n\n measureLayoutRelativeToParent(\n reactTag: number,\n errorCallback: (error: Object) => void,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ): void {\n if (isFabricReactTag(reactTag)) {\n console.warn(\n 'RCTUIManager.measureLayoutRelativeToParent method is deprecated and it will not be implemented in newer versions of RN (Fabric) - T47686450',\n );\n const FabricUIManager = nullthrows(getFabricUIManager());\n const shadowNode =\n FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag);\n if (shadowNode) {\n FabricUIManager.measure(\n shadowNode,\n (left, top, width, height, pageX, pageY) => {\n callback(left, top, width, height);\n },\n );\n }\n } else {\n // Paper\n UIManagerImpl.measureLayoutRelativeToParent(\n reactTag,\n errorCallback,\n callback,\n );\n }\n },\n\n dispatchViewManagerCommand(\n reactTag: number,\n commandName: number | string,\n commandArgs: any[],\n ) {\n if (isFabricReactTag(reactTag)) {\n const FabricUIManager = nullthrows(getFabricUIManager());\n const shadowNode =\n FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag);\n if (shadowNode) {\n // Transform the accidental CommandID into a CommandName which is the stringified number.\n // The interop layer knows how to convert this number into the right method name.\n // Stringify a string is a no-op, so it's safe.\n commandName = `${commandName}`;\n FabricUIManager.dispatchCommand(shadowNode, commandName, commandArgs);\n }\n } else {\n UIManagerImpl.dispatchViewManagerCommand(\n reactTag,\n // We have some legacy components that are actually already using strings. Β―\\_(ツ)_/Β―\n // $FlowFixMe[incompatible-call]\n commandName,\n commandArgs,\n );\n }\n },\n};\n\nmodule.exports = UIManager;\n","'use strict';\n\nfunction nullthrows(x, message) {\n if (x != null) {\n return x;\n }\n var error = new Error(message !== undefined ? message : 'Got unexpected ' + x);\n error.framesToPop = 1; // Skip nullthrows's own stack frame.\n throw error;\n}\n\nmodule.exports = nullthrows;\nmodule.exports.default = nullthrows;\n\nObject.defineProperty(module.exports, '__esModule', {value: true});\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {RootTag} from '../Types/RootTagTypes';\n\nimport {unstable_hasComponent} from '../NativeComponent/NativeComponentRegistryUnstable';\n\nconst errorMessageForMethod = (methodName: string): string =>\n \"[ReactNative Architecture][JS] '\" +\n methodName +\n \"' is not available in the new React Native architecture.\";\n\nmodule.exports = {\n getViewManagerConfig: (viewManagerName: string): mixed => {\n console.error(\n errorMessageForMethod('getViewManagerConfig') +\n 'Use hasViewManagerConfig instead. viewManagerName: ' +\n viewManagerName,\n );\n return null;\n },\n hasViewManagerConfig: (viewManagerName: string): boolean => {\n return unstable_hasComponent(viewManagerName);\n },\n getConstants: (): Object => {\n console.error(errorMessageForMethod('getConstants'));\n return {};\n },\n getConstantsForViewManager: (viewManagerName: string): Object => {\n console.error(errorMessageForMethod('getConstantsForViewManager'));\n return {};\n },\n getDefaultEventTypes: (): Array => {\n console.error(errorMessageForMethod('getDefaultEventTypes'));\n return [];\n },\n lazilyLoadView: (name: string): Object => {\n console.error(errorMessageForMethod('lazilyLoadView'));\n return {};\n },\n createView: (\n reactTag: ?number,\n viewName: string,\n rootTag: RootTag,\n props: Object,\n ): void => console.error(errorMessageForMethod('createView')),\n updateView: (reactTag: number, viewName: string, props: Object): void =>\n console.error(errorMessageForMethod('updateView')),\n focus: (reactTag: ?number): void =>\n console.error(errorMessageForMethod('focus')),\n blur: (reactTag: ?number): void =>\n console.error(errorMessageForMethod('blur')),\n findSubviewIn: (\n reactTag: ?number,\n point: Array,\n callback: (\n nativeViewTag: number,\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ): void => console.error(errorMessageForMethod('findSubviewIn')),\n dispatchViewManagerCommand: (\n reactTag: ?number,\n commandID: number,\n commandArgs: ?Array,\n ): void => console.error(errorMessageForMethod('dispatchViewManagerCommand')),\n measure: (\n reactTag: ?number,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number,\n ) => void,\n ): void => console.error(errorMessageForMethod('measure')),\n measureInWindow: (\n reactTag: ?number,\n callback: (x: number, y: number, width: number, height: number) => void,\n ): void => console.error(errorMessageForMethod('measureInWindow')),\n viewIsDescendantOf: (\n reactTag: ?number,\n ancestorReactTag: ?number,\n callback: (result: Array) => void,\n ): void => console.error(errorMessageForMethod('viewIsDescendantOf')),\n measureLayout: (\n reactTag: ?number,\n ancestorReactTag: ?number,\n errorCallback: (error: Object) => void,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ): void => console.error(errorMessageForMethod('measureLayout')),\n measureLayoutRelativeToParent: (\n reactTag: ?number,\n errorCallback: (error: Object) => void,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ): void =>\n console.error(errorMessageForMethod('measureLayoutRelativeToParent')),\n setJSResponder: (reactTag: ?number, blockNativeResponder: boolean): void =>\n console.error(errorMessageForMethod('setJSResponder')),\n clearJSResponder: (): void => {}, // Don't log error here because we're aware it gets called\n configureNextLayoutAnimation: (\n config: Object,\n callback: () => void,\n errorCallback: (error: Object) => void,\n ): void =>\n console.error(errorMessageForMethod('configureNextLayoutAnimation')),\n removeSubviewsFromContainerWithID: (containerID: number): void =>\n console.error(errorMessageForMethod('removeSubviewsFromContainerWithID')),\n replaceExistingNonRootView: (reactTag: ?number, newReactTag: ?number): void =>\n console.error(errorMessageForMethod('replaceExistingNonRootView')),\n setChildren: (containerTag: ?number, reactTags: Array): void =>\n console.error(errorMessageForMethod('setChildren')),\n manageChildren: (\n containerTag: ?number,\n moveFromIndices: Array,\n moveToIndices: Array,\n addChildReactTags: Array,\n addAtIndices: Array,\n removeAtIndices: Array,\n ): void => console.error(errorMessageForMethod('manageChildren')),\n\n // Android only\n setLayoutAnimationEnabledExperimental: (enabled: boolean): void => {\n console.error(\n errorMessageForMethod('setLayoutAnimationEnabledExperimental'),\n );\n },\n // Please use AccessibilityInfo.sendAccessibilityEvent instead.\n // See SetAccessibilityFocusExample in AccessibilityExample.js for a migration example.\n sendAccessibilityEvent: (reactTag: ?number, eventType: number): void =>\n console.error(errorMessageForMethod('sendAccessibilityEvent')),\n showPopupMenu: (\n reactTag: ?number,\n items: Array,\n error: (error: Object) => void,\n success: (event: string, selected?: number) => void,\n ): void => console.error(errorMessageForMethod('showPopupMenu')),\n dismissPopupMenu: (): void =>\n console.error(errorMessageForMethod('dismissPopupMenu')),\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nlet componentNameToExists: Map = new Map();\n\n/**\n * Unstable API. Do not use!\n *\n * This method returns if the component with name received as a parameter\n * is registered in the native platform.\n */\nexport function unstable_hasComponent(name: string): boolean {\n let hasNativeComponent = componentNameToExists.get(name);\n if (hasNativeComponent == null) {\n if (global.__nativeComponentRegistry__hasComponent) {\n hasNativeComponent = global.__nativeComponentRegistry__hasComponent(name);\n componentNameToExists.set(name, hasNativeComponent);\n } else {\n throw `unstable_hasComponent('${name}'): Global function is not registered`;\n }\n }\n return hasNativeComponent;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {RootTag} from '../Types/RootTagTypes';\n\nimport NativeUIManager from './NativeUIManager';\n\nconst NativeModules = require('../BatchedBridge/NativeModules');\nconst defineLazyObjectProperty = require('../Utilities/defineLazyObjectProperty');\nconst Platform = require('../Utilities/Platform');\nconst UIManagerProperties = require('./UIManagerProperties');\n\nconst viewManagerConfigs: {[string]: any | null} = {};\n\nconst triedLoadingConfig = new Set();\n\nlet NativeUIManagerConstants = {};\nlet isNativeUIManagerConstantsSet = false;\nfunction getConstants(): Object {\n if (!isNativeUIManagerConstantsSet) {\n NativeUIManagerConstants = NativeUIManager.getConstants();\n isNativeUIManagerConstantsSet = true;\n }\n return NativeUIManagerConstants;\n}\n\nfunction getViewManagerConfig(viewManagerName: string): any {\n if (\n viewManagerConfigs[viewManagerName] === undefined &&\n global.nativeCallSyncHook && // If we're in the Chrome Debugger, let's not even try calling the sync method\n NativeUIManager.getConstantsForViewManager\n ) {\n try {\n viewManagerConfigs[viewManagerName] =\n NativeUIManager.getConstantsForViewManager(viewManagerName);\n } catch (e) {\n console.error(\n \"NativeUIManager.getConstantsForViewManager('\" +\n viewManagerName +\n \"') threw an exception.\",\n e,\n );\n viewManagerConfigs[viewManagerName] = null;\n }\n }\n\n const config = viewManagerConfigs[viewManagerName];\n if (config) {\n return config;\n }\n\n // If we're in the Chrome Debugger, let's not even try calling the sync\n // method.\n if (!global.nativeCallSyncHook) {\n return config;\n }\n\n if (\n NativeUIManager.lazilyLoadView &&\n !triedLoadingConfig.has(viewManagerName)\n ) {\n const result = NativeUIManager.lazilyLoadView(viewManagerName);\n triedLoadingConfig.add(viewManagerName);\n if (result != null && result.viewConfig != null) {\n getConstants()[viewManagerName] = result.viewConfig;\n lazifyViewManagerConfig(viewManagerName);\n }\n }\n\n return viewManagerConfigs[viewManagerName];\n}\n\n/* $FlowFixMe[cannot-spread-interface] (>=0.123.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.123.0 was deployed. To see\n * the error, delete this comment and run Flow. */\nconst UIManagerJS = {\n ...NativeUIManager,\n createView(\n reactTag: ?number,\n viewName: string,\n rootTag: RootTag,\n props: Object,\n ): void {\n if (Platform.OS === 'ios' && viewManagerConfigs[viewName] === undefined) {\n // This is necessary to force the initialization of native viewManager\n // classes in iOS when using static ViewConfigs\n getViewManagerConfig(viewName);\n }\n\n NativeUIManager.createView(reactTag, viewName, rootTag, props);\n },\n getConstants(): Object {\n return getConstants();\n },\n getViewManagerConfig(viewManagerName: string): any {\n return getViewManagerConfig(viewManagerName);\n },\n hasViewManagerConfig(viewManagerName: string): boolean {\n return getViewManagerConfig(viewManagerName) != null;\n },\n};\n\n// TODO (T45220498): Remove this.\n// 3rd party libs may be calling `NativeModules.UIManager.getViewManagerConfig()`\n// instead of `UIManager.getViewManagerConfig()` off UIManager.js.\n// This is a workaround for now.\n// $FlowFixMe[prop-missing]\nNativeUIManager.getViewManagerConfig = UIManagerJS.getViewManagerConfig;\n\nfunction lazifyViewManagerConfig(viewName: string) {\n const viewConfig = getConstants()[viewName];\n viewManagerConfigs[viewName] = viewConfig;\n if (viewConfig.Manager) {\n defineLazyObjectProperty(viewConfig, 'Constants', {\n get: () => {\n const viewManager = NativeModules[viewConfig.Manager];\n const constants: {[string]: mixed} = {};\n viewManager &&\n Object.keys(viewManager).forEach(key => {\n const value = viewManager[key];\n if (typeof value !== 'function') {\n constants[key] = value;\n }\n });\n return constants;\n },\n });\n defineLazyObjectProperty(viewConfig, 'Commands', {\n get: () => {\n const viewManager = NativeModules[viewConfig.Manager];\n const commands: {[string]: number} = {};\n let index = 0;\n viewManager &&\n Object.keys(viewManager).forEach(key => {\n const value = viewManager[key];\n if (typeof value === 'function') {\n commands[key] = index++;\n }\n });\n return commands;\n },\n });\n }\n}\n\n/**\n * Copies the ViewManager constants and commands into UIManager. This is\n * only needed for iOS, which puts the constants in the ViewManager\n * namespace instead of UIManager, unlike Android.\n */\nif (Platform.OS === 'ios') {\n Object.keys(getConstants()).forEach(viewName => {\n lazifyViewManagerConfig(viewName);\n });\n} else if (getConstants().ViewManagerNames) {\n NativeUIManager.getConstants().ViewManagerNames.forEach(viewManagerName => {\n defineLazyObjectProperty(NativeUIManager, viewManagerName, {\n get: () => NativeUIManager.getConstantsForViewManager(viewManagerName),\n });\n });\n}\n\nif (!global.nativeCallSyncHook) {\n Object.keys(getConstants()).forEach(viewManagerName => {\n if (!UIManagerProperties.includes(viewManagerName)) {\n if (!viewManagerConfigs[viewManagerName]) {\n viewManagerConfigs[viewManagerName] = getConstants()[viewManagerName];\n }\n defineLazyObjectProperty(NativeUIManager, viewManagerName, {\n get: () => {\n console.warn(\n `Accessing view manager configs directly off UIManager via UIManager['${viewManagerName}'] ` +\n `is no longer supported. Use UIManager.getViewManagerConfig('${viewManagerName}') instead.`,\n );\n\n return UIManagerJS.getViewManagerConfig(viewManagerName);\n },\n });\n }\n });\n}\n\nmodule.exports = UIManagerJS;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {RootTag} from '../TurboModule/RCTExport';\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => Object;\n +getConstantsForViewManager: (viewManagerName: string) => Object;\n +getDefaultEventTypes: () => Array;\n +lazilyLoadView: (name: string) => Object; // revisit return\n +createView: (\n reactTag: ?number,\n viewName: string,\n rootTag: RootTag,\n props: Object,\n ) => void;\n +updateView: (reactTag: number, viewName: string, props: Object) => void;\n +focus: (reactTag: ?number) => void;\n +blur: (reactTag: ?number) => void;\n +findSubviewIn: (\n reactTag: ?number,\n point: Array,\n callback: (\n nativeViewTag: number,\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ) => void;\n +dispatchViewManagerCommand: (\n reactTag: ?number,\n commandID: number,\n commandArgs: ?Array,\n ) => void;\n +measure: (\n reactTag: number,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number,\n ) => void,\n ) => void;\n +measureInWindow: (\n reactTag: number,\n callback: (x: number, y: number, width: number, height: number) => void,\n ) => void;\n +viewIsDescendantOf: (\n reactTag: ?number,\n ancestorReactTag: ?number,\n callback: (result: Array) => void,\n ) => void;\n +measureLayout: (\n reactTag: number,\n ancestorReactTag: number,\n errorCallback: (error: Object) => void,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ) => void;\n +measureLayoutRelativeToParent: (\n reactTag: number,\n errorCallback: (error: Object) => void,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ) => void;\n +setJSResponder: (reactTag: ?number, blockNativeResponder: boolean) => void;\n +clearJSResponder: () => void;\n +configureNextLayoutAnimation: (\n config: Object,\n callback: () => void, // check what is returned here\n errorCallback: (error: Object) => void,\n ) => void;\n +removeSubviewsFromContainerWithID: (containerID: number) => void;\n +replaceExistingNonRootView: (\n reactTag: ?number,\n newReactTag: ?number,\n ) => void;\n +setChildren: (containerTag: ?number, reactTags: Array) => void;\n +manageChildren: (\n containerTag: ?number,\n moveFromIndices: Array,\n moveToIndices: Array,\n addChildReactTags: Array,\n addAtIndices: Array,\n removeAtIndices: Array,\n ) => void;\n\n // Android only\n +setLayoutAnimationEnabledExperimental: (enabled: boolean) => void;\n +sendAccessibilityEvent: (reactTag: ?number, eventType: number) => void;\n +showPopupMenu: (\n reactTag: ?number,\n items: Array,\n error: (error: Object) => void,\n success: (event: string, selected?: number) => void,\n ) => void;\n +dismissPopupMenu: () => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('UIManager'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\n/**\n * The list of non-ViewManager related UIManager properties.\n *\n * In an effort to improve startup performance by lazily loading view managers,\n * the interface to access view managers will change from\n * UIManager['viewManagerName'] to UIManager.getViewManagerConfig('viewManagerName').\n * By using a function call instead of a property access, the UIManager will\n * be able to initialize and load the required view manager from native\n * synchronously. All of React Native's core components have been updated to\n * use getViewManagerConfig(). For the next few releases, any usage of\n * UIManager['viewManagerName'] will result in a warning. Because React Native\n * does not support Proxy objects, a view manager access is implied if any of\n * UIManager's properties that are not one of the properties below is being\n * accessed. Once UIManager property accesses for view managers has been fully\n * deprecated, this file will also be removed.\n */\nmodule.exports = [\n 'clearJSResponder',\n 'configureNextLayoutAnimation',\n 'createView',\n 'dismissPopupMenu',\n 'dispatchViewManagerCommand',\n 'findSubviewIn',\n 'getConstantsForViewManager',\n 'getDefaultEventTypes',\n 'manageChildren',\n 'measure',\n 'measureInWindow',\n 'measureLayout',\n 'measureLayoutRelativeToParent',\n 'removeRootView',\n 'removeSubviewsFromContainerWithID',\n 'replaceExistingNonRootView',\n 'sendAccessibilityEvent',\n 'setChildren',\n 'setJSResponder',\n 'setLayoutAnimationEnabledExperimental',\n 'showPopupMenu',\n 'updateView',\n 'viewIsDescendantOf',\n 'PopupMenu',\n 'LazyViewManagersEnabled',\n 'ViewManagerNames',\n 'StyleConstants',\n 'AccessibilityEventTypes',\n 'UIView',\n 'getViewManagerConfig',\n 'hasViewManagerConfig',\n 'blur',\n 'focus',\n 'genericBubblingEventTypes',\n 'genericDirectEventTypes',\n 'lazilyLoadView',\n];\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nimport type {\n LayoutAnimationConfig,\n MeasureInWindowOnSuccessCallback,\n MeasureLayoutOnSuccessCallback,\n MeasureOnSuccessCallback,\n} from '../Renderer/shims/ReactNativeTypes';\nimport type {RootTag} from '../Types/RootTagTypes';\n\n// TODO: type these properly.\nexport opaque type Node = {...};\ntype NodeSet = Array;\ntype NodeProps = {...};\ntype InstanceHandle = {...};\nexport type Spec = {|\n +createNode: (\n reactTag: number,\n viewName: string,\n rootTag: RootTag,\n props: NodeProps,\n instanceHandle: InstanceHandle,\n ) => Node,\n +cloneNode: (node: Node) => Node,\n +cloneNodeWithNewChildren: (node: Node) => Node,\n +cloneNodeWithNewProps: (node: Node, newProps: NodeProps) => Node,\n +cloneNodeWithNewChildrenAndProps: (node: Node, newProps: NodeProps) => Node,\n +createChildSet: (rootTag: RootTag) => NodeSet,\n +appendChild: (parentNode: Node, child: Node) => Node,\n +appendChildToSet: (childSet: NodeSet, child: Node) => void,\n +completeRoot: (rootTag: RootTag, childSet: NodeSet) => void,\n +measure: (node: Node, callback: MeasureOnSuccessCallback) => void,\n +measureInWindow: (\n node: Node,\n callback: MeasureInWindowOnSuccessCallback,\n ) => void,\n +measureLayout: (\n node: Node,\n relativeNode: Node,\n onFail: () => void,\n onSuccess: MeasureLayoutOnSuccessCallback,\n ) => void,\n +configureNextLayoutAnimation: (\n config: LayoutAnimationConfig,\n callback: () => void, // check what is returned here\n errorCallback: () => void,\n ) => void,\n +sendAccessibilityEvent: (node: Node, eventType: string) => void,\n +findShadowNodeByTag_DEPRECATED: (reactTag: number) => ?Node,\n +getBoundingClientRect: (\n node: Node,\n ) => [\n /* x:*/ number,\n /* y:*/ number,\n /* width:*/ number,\n /* height:*/ number,\n ],\n +setNativeProps: (node: Node, newProps: NodeProps) => void,\n +dispatchCommand: (\n node: Node,\n commandName: string,\n args: Array,\n ) => void,\n|};\n\n// This is exposed as a getter because apps using the legacy renderer AND\n// Fabric can define the binding lazily. If we evaluated the global and cached\n// it in the module we might be caching an `undefined` value before it is set.\nexport function getFabricUIManager(): ?Spec {\n return global.nativeFabricUIManager;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +isReduceMotionEnabled: (\n onSuccess: (isReduceMotionEnabled: boolean) => void,\n ) => void;\n +isTouchExplorationEnabled: (\n onSuccess: (isScreenReaderEnabled: boolean) => void,\n ) => void;\n +isAccessibilityServiceEnabled?: ?(\n onSuccess: (isAccessibilityServiceEnabled: boolean) => void,\n ) => void;\n +setAccessibilityFocus: (reactTag: number) => void;\n +announceForAccessibility: (announcement: string) => void;\n +getRecommendedTimeoutMillis?: (\n mSec: number,\n onSuccess: (recommendedTimeoutMillis: number) => void,\n ) => void;\n}\n\nexport default (TurboModuleRegistry.get('AccessibilityInfo'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getCurrentBoldTextState: (\n onSuccess: (isBoldTextEnabled: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +getCurrentGrayscaleState: (\n onSuccess: (isGrayscaleEnabled: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +getCurrentInvertColorsState: (\n onSuccess: (isInvertColorsEnabled: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +getCurrentReduceMotionState: (\n onSuccess: (isReduceMotionEnabled: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +getCurrentPrefersCrossFadeTransitionsState?: (\n onSuccess: (prefersCrossFadeTransitions: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +getCurrentReduceTransparencyState: (\n onSuccess: (isReduceTransparencyEnabled: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +getCurrentVoiceOverState: (\n onSuccess: (isScreenReaderEnabled: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +setAccessibilityContentSizeMultipliers: (JSMultipliers: {|\n +extraSmall?: ?number,\n +small?: ?number,\n +medium?: ?number,\n +large?: ?number,\n +extraLarge?: ?number,\n +extraExtraLarge?: ?number,\n +extraExtraExtraLarge?: ?number,\n +accessibilityMedium?: ?number,\n +accessibilityLarge?: ?number,\n +accessibilityExtraLarge?: ?number,\n +accessibilityExtraExtraLarge?: ?number,\n +accessibilityExtraExtraExtraLarge?: ?number,\n |}) => void;\n +setAccessibilityFocus: (reactTag: number) => void;\n +announceForAccessibility: (announcement: string) => void;\n +announceForAccessibilityWithOptions?: (\n announcement: string,\n options: {queue?: boolean},\n ) => void;\n}\n\nexport default (TurboModuleRegistry.get('AccessibilityManager'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n/**\n * This module exists to allow apps to select their renderer implementation\n * (e.g.: Fabric-only, Paper-only) without having to pull all the renderer\n * implementations into their app bundle, which affects app size.\n *\n * By default, the setup will be:\n * -> RendererProxy\n * -> RendererImplementation (which uses Fabric or Paper depending on a flag at runtime)\n *\n * But this will allow a setup like this without duplicating logic:\n * -> RendererProxy (fork)\n * -> RendererImplementation (which uses Fabric or Paper depending on a flag at runtime)\n * or -> OtherImplementation (which uses Fabric only)\n */\n\nexport * from './RendererImplementation';\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../Renderer/shims/ReactNativeTypes';\nimport type {Element, ElementRef, ElementType} from 'react';\n\nimport {type RootTag} from './RootTag';\n\nexport function renderElement({\n element,\n rootTag,\n useFabric,\n useConcurrentRoot,\n}: {\n element: Element,\n rootTag: number,\n useFabric: boolean,\n useConcurrentRoot: boolean,\n}): void {\n if (useFabric) {\n require('../Renderer/shims/ReactFabric').render(\n element,\n rootTag,\n null,\n useConcurrentRoot,\n );\n } else {\n require('../Renderer/shims/ReactNative').render(element, rootTag);\n }\n}\n\nexport function findHostInstance_DEPRECATED(\n componentOrHandle: ?(ElementRef | number),\n): ?ElementRef> {\n return require('../Renderer/shims/ReactNative').findHostInstance_DEPRECATED(\n componentOrHandle,\n );\n}\n\nexport function findNodeHandle(\n componentOrHandle: ?(ElementRef | number),\n): ?number {\n return require('../Renderer/shims/ReactNative').findNodeHandle(\n componentOrHandle,\n );\n}\n\nexport function dispatchCommand(\n handle: ElementRef>,\n command: string,\n args: Array,\n): void {\n if (global.RN$Bridgeless === true) {\n // Note: this function has the same implementation in the legacy and new renderer.\n // However, evaluating the old renderer comes with some side effects.\n return require('../Renderer/shims/ReactFabric').dispatchCommand(\n handle,\n command,\n args,\n );\n } else {\n return require('../Renderer/shims/ReactNative').dispatchCommand(\n handle,\n command,\n args,\n );\n }\n}\n\nexport function sendAccessibilityEvent(\n handle: ElementRef>,\n eventType: string,\n): void {\n return require('../Renderer/shims/ReactNative').sendAccessibilityEvent(\n handle,\n eventType,\n );\n}\n\n/**\n * This method is used by AppRegistry to unmount a root when using the old\n * React Native renderer (Paper).\n */\nexport function unmountComponentAtNodeAndRemoveContainer(rootTag: RootTag) {\n // $FlowExpectedError[incompatible-type] rootTag is an opaque type so we can't really cast it as is.\n const rootTagAsNumber: number = rootTag;\n require('../Renderer/shims/ReactNative').unmountComponentAtNodeAndRemoveContainer(\n rootTagAsNumber,\n );\n}\n\nexport function unstable_batchedUpdates(\n fn: T => void,\n bookkeeping: T,\n): void {\n // This doesn't actually do anything when batching updates for a Fabric root.\n return require('../Renderer/shims/ReactNative').unstable_batchedUpdates(\n fn,\n bookkeeping,\n );\n}\n\nexport function isProfilingRenderer(): boolean {\n return Boolean(__DEV__);\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @noformat\n * @flow\n * @generated SignedSource<>\n *\n * This file was sync'd from the facebook/react repository.\n */\n\n'use strict';\n\nimport {BatchedBridge} from 'react-native/Libraries/ReactPrivate/ReactNativePrivateInterface';\n\nimport type {ReactFabricType} from './ReactNativeTypes';\n\nlet ReactFabric;\n\nif (__DEV__) {\n ReactFabric = require('../implementations/ReactFabric-dev');\n} else {\n ReactFabric = require('../implementations/ReactFabric-prod');\n}\n\nif (global.RN$Bridgeless) {\n global.RN$stopSurface = ReactFabric.stopSurface;\n} else {\n BatchedBridge.registerCallableModule('ReactFabric', ReactFabric);\n}\n\nmodule.exports = (ReactFabric: ReactFabricType);\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @noflow\n * @nolint\n * @providesModule ReactFabric-prod\n * @preventMunge\n * @generated SignedSource<>\n */\n\n\"use strict\";\nrequire(\"react-native/Libraries/ReactPrivate/ReactNativePrivateInitializeCore\");\nvar ReactNativePrivateInterface = require(\"react-native/Libraries/ReactPrivate/ReactNativePrivateInterface\"),\n React = require(\"react\"),\n Scheduler = require(\"scheduler\");\nfunction invokeGuardedCallbackImpl(name, func, context, a, b, c, d, e, f) {\n var funcArgs = Array.prototype.slice.call(arguments, 3);\n try {\n func.apply(context, funcArgs);\n } catch (error) {\n this.onError(error);\n }\n}\nvar hasError = !1,\n caughtError = null,\n hasRethrowError = !1,\n rethrowError = null,\n reporter = {\n onError: function(error) {\n hasError = !0;\n caughtError = error;\n }\n };\nfunction invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {\n hasError = !1;\n caughtError = null;\n invokeGuardedCallbackImpl.apply(reporter, arguments);\n}\nfunction invokeGuardedCallbackAndCatchFirstError(\n name,\n func,\n context,\n a,\n b,\n c,\n d,\n e,\n f\n) {\n invokeGuardedCallback.apply(this, arguments);\n if (hasError) {\n if (hasError) {\n var error = caughtError;\n hasError = !1;\n caughtError = null;\n } else\n throw Error(\n \"clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.\"\n );\n hasRethrowError || ((hasRethrowError = !0), (rethrowError = error));\n }\n}\nvar isArrayImpl = Array.isArray,\n getFiberCurrentPropsFromNode = null,\n getInstanceFromNode = null,\n getNodeFromInstance = null;\nfunction executeDispatch(event, listener, inst) {\n var type = event.type || \"unknown-event\";\n event.currentTarget = getNodeFromInstance(inst);\n invokeGuardedCallbackAndCatchFirstError(type, listener, void 0, event);\n event.currentTarget = null;\n}\nfunction executeDirectDispatch(event) {\n var dispatchListener = event._dispatchListeners,\n dispatchInstance = event._dispatchInstances;\n if (isArrayImpl(dispatchListener))\n throw Error(\"executeDirectDispatch(...): Invalid `event`.\");\n event.currentTarget = dispatchListener\n ? getNodeFromInstance(dispatchInstance)\n : null;\n dispatchListener = dispatchListener ? dispatchListener(event) : null;\n event.currentTarget = null;\n event._dispatchListeners = null;\n event._dispatchInstances = null;\n return dispatchListener;\n}\nvar assign = Object.assign;\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction SyntheticEvent(\n dispatchConfig,\n targetInst,\n nativeEvent,\n nativeEventTarget\n) {\n this.dispatchConfig = dispatchConfig;\n this._targetInst = targetInst;\n this.nativeEvent = nativeEvent;\n this._dispatchInstances = this._dispatchListeners = null;\n dispatchConfig = this.constructor.Interface;\n for (var propName in dispatchConfig)\n dispatchConfig.hasOwnProperty(propName) &&\n ((targetInst = dispatchConfig[propName])\n ? (this[propName] = targetInst(nativeEvent))\n : \"target\" === propName\n ? (this.target = nativeEventTarget)\n : (this[propName] = nativeEvent[propName]));\n this.isDefaultPrevented = (null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue)\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n}\nassign(SyntheticEvent.prototype, {\n preventDefault: function() {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function() {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble && (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function() {\n this.isPersistent = functionThatReturnsTrue;\n },\n isPersistent: functionThatReturnsFalse,\n destructor: function() {\n var Interface = this.constructor.Interface,\n propName;\n for (propName in Interface) this[propName] = null;\n this.nativeEvent = this._targetInst = this.dispatchConfig = null;\n this.isPropagationStopped = this.isDefaultPrevented = functionThatReturnsFalse;\n this._dispatchInstances = this._dispatchListeners = null;\n }\n});\nSyntheticEvent.Interface = {\n type: null,\n target: null,\n currentTarget: function() {\n return null;\n },\n eventPhase: null,\n bubbles: null,\n cancelable: null,\n timeStamp: function(event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: null,\n isTrusted: null\n};\nSyntheticEvent.extend = function(Interface) {\n function E() {}\n function Class() {\n return Super.apply(this, arguments);\n }\n var Super = this;\n E.prototype = Super.prototype;\n var prototype = new E();\n assign(prototype, Class.prototype);\n Class.prototype = prototype;\n Class.prototype.constructor = Class;\n Class.Interface = assign({}, Super.Interface, Interface);\n Class.extend = Super.extend;\n addEventPoolingTo(Class);\n return Class;\n};\naddEventPoolingTo(SyntheticEvent);\nfunction createOrGetPooledEvent(\n dispatchConfig,\n targetInst,\n nativeEvent,\n nativeInst\n) {\n if (this.eventPool.length) {\n var instance = this.eventPool.pop();\n this.call(instance, dispatchConfig, targetInst, nativeEvent, nativeInst);\n return instance;\n }\n return new this(dispatchConfig, targetInst, nativeEvent, nativeInst);\n}\nfunction releasePooledEvent(event) {\n if (!(event instanceof this))\n throw Error(\n \"Trying to release an event instance into a pool of a different type.\"\n );\n event.destructor();\n 10 > this.eventPool.length && this.eventPool.push(event);\n}\nfunction addEventPoolingTo(EventConstructor) {\n EventConstructor.getPooled = createOrGetPooledEvent;\n EventConstructor.eventPool = [];\n EventConstructor.release = releasePooledEvent;\n}\nvar ResponderSyntheticEvent = SyntheticEvent.extend({\n touchHistory: function() {\n return null;\n }\n});\nfunction isStartish(topLevelType) {\n return \"topTouchStart\" === topLevelType;\n}\nfunction isMoveish(topLevelType) {\n return \"topTouchMove\" === topLevelType;\n}\nvar startDependencies = [\"topTouchStart\"],\n moveDependencies = [\"topTouchMove\"],\n endDependencies = [\"topTouchCancel\", \"topTouchEnd\"],\n touchBank = [],\n touchHistory = {\n touchBank: touchBank,\n numberActiveTouches: 0,\n indexOfSingleActiveTouch: -1,\n mostRecentTimeStamp: 0\n };\nfunction timestampForTouch(touch) {\n return touch.timeStamp || touch.timestamp;\n}\nfunction getTouchIdentifier(_ref) {\n _ref = _ref.identifier;\n if (null == _ref) throw Error(\"Touch object is missing identifier.\");\n return _ref;\n}\nfunction recordTouchStart(touch) {\n var identifier = getTouchIdentifier(touch),\n touchRecord = touchBank[identifier];\n touchRecord\n ? ((touchRecord.touchActive = !0),\n (touchRecord.startPageX = touch.pageX),\n (touchRecord.startPageY = touch.pageY),\n (touchRecord.startTimeStamp = timestampForTouch(touch)),\n (touchRecord.currentPageX = touch.pageX),\n (touchRecord.currentPageY = touch.pageY),\n (touchRecord.currentTimeStamp = timestampForTouch(touch)),\n (touchRecord.previousPageX = touch.pageX),\n (touchRecord.previousPageY = touch.pageY),\n (touchRecord.previousTimeStamp = timestampForTouch(touch)))\n : ((touchRecord = {\n touchActive: !0,\n startPageX: touch.pageX,\n startPageY: touch.pageY,\n startTimeStamp: timestampForTouch(touch),\n currentPageX: touch.pageX,\n currentPageY: touch.pageY,\n currentTimeStamp: timestampForTouch(touch),\n previousPageX: touch.pageX,\n previousPageY: touch.pageY,\n previousTimeStamp: timestampForTouch(touch)\n }),\n (touchBank[identifier] = touchRecord));\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n}\nfunction recordTouchMove(touch) {\n var touchRecord = touchBank[getTouchIdentifier(touch)];\n touchRecord &&\n ((touchRecord.touchActive = !0),\n (touchRecord.previousPageX = touchRecord.currentPageX),\n (touchRecord.previousPageY = touchRecord.currentPageY),\n (touchRecord.previousTimeStamp = touchRecord.currentTimeStamp),\n (touchRecord.currentPageX = touch.pageX),\n (touchRecord.currentPageY = touch.pageY),\n (touchRecord.currentTimeStamp = timestampForTouch(touch)),\n (touchHistory.mostRecentTimeStamp = timestampForTouch(touch)));\n}\nfunction recordTouchEnd(touch) {\n var touchRecord = touchBank[getTouchIdentifier(touch)];\n touchRecord &&\n ((touchRecord.touchActive = !1),\n (touchRecord.previousPageX = touchRecord.currentPageX),\n (touchRecord.previousPageY = touchRecord.currentPageY),\n (touchRecord.previousTimeStamp = touchRecord.currentTimeStamp),\n (touchRecord.currentPageX = touch.pageX),\n (touchRecord.currentPageY = touch.pageY),\n (touchRecord.currentTimeStamp = timestampForTouch(touch)),\n (touchHistory.mostRecentTimeStamp = timestampForTouch(touch)));\n}\nvar instrumentationCallback,\n ResponderTouchHistoryStore = {\n instrument: function(callback) {\n instrumentationCallback = callback;\n },\n recordTouchTrack: function(topLevelType, nativeEvent) {\n null != instrumentationCallback &&\n instrumentationCallback(topLevelType, nativeEvent);\n if (isMoveish(topLevelType))\n nativeEvent.changedTouches.forEach(recordTouchMove);\n else if (isStartish(topLevelType))\n nativeEvent.changedTouches.forEach(recordTouchStart),\n (touchHistory.numberActiveTouches = nativeEvent.touches.length),\n 1 === touchHistory.numberActiveTouches &&\n (touchHistory.indexOfSingleActiveTouch =\n nativeEvent.touches[0].identifier);\n else if (\n \"topTouchEnd\" === topLevelType ||\n \"topTouchCancel\" === topLevelType\n )\n if (\n (nativeEvent.changedTouches.forEach(recordTouchEnd),\n (touchHistory.numberActiveTouches = nativeEvent.touches.length),\n 1 === touchHistory.numberActiveTouches)\n )\n for (\n topLevelType = 0;\n topLevelType < touchBank.length;\n topLevelType++\n )\n if (\n ((nativeEvent = touchBank[topLevelType]),\n null != nativeEvent && nativeEvent.touchActive)\n ) {\n touchHistory.indexOfSingleActiveTouch = topLevelType;\n break;\n }\n },\n touchHistory: touchHistory\n };\nfunction accumulate(current, next) {\n if (null == next)\n throw Error(\n \"accumulate(...): Accumulated items must not be null or undefined.\"\n );\n return null == current\n ? next\n : isArrayImpl(current)\n ? current.concat(next)\n : isArrayImpl(next)\n ? [current].concat(next)\n : [current, next];\n}\nfunction accumulateInto(current, next) {\n if (null == next)\n throw Error(\n \"accumulateInto(...): Accumulated items must not be null or undefined.\"\n );\n if (null == current) return next;\n if (isArrayImpl(current)) {\n if (isArrayImpl(next)) return current.push.apply(current, next), current;\n current.push(next);\n return current;\n }\n return isArrayImpl(next) ? [current].concat(next) : [current, next];\n}\nfunction forEachAccumulated(arr, cb, scope) {\n Array.isArray(arr) ? arr.forEach(cb, scope) : arr && cb.call(scope, arr);\n}\nvar responderInst = null,\n trackedTouchCount = 0;\nfunction changeResponder(nextResponderInst, blockHostResponder) {\n var oldResponderInst = responderInst;\n responderInst = nextResponderInst;\n if (null !== ResponderEventPlugin.GlobalResponderHandler)\n ResponderEventPlugin.GlobalResponderHandler.onChange(\n oldResponderInst,\n nextResponderInst,\n blockHostResponder\n );\n}\nvar eventTypes = {\n startShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onStartShouldSetResponder\",\n captured: \"onStartShouldSetResponderCapture\"\n },\n dependencies: startDependencies\n },\n scrollShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onScrollShouldSetResponder\",\n captured: \"onScrollShouldSetResponderCapture\"\n },\n dependencies: [\"topScroll\"]\n },\n selectionChangeShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onSelectionChangeShouldSetResponder\",\n captured: \"onSelectionChangeShouldSetResponderCapture\"\n },\n dependencies: [\"topSelectionChange\"]\n },\n moveShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onMoveShouldSetResponder\",\n captured: \"onMoveShouldSetResponderCapture\"\n },\n dependencies: moveDependencies\n },\n responderStart: {\n registrationName: \"onResponderStart\",\n dependencies: startDependencies\n },\n responderMove: {\n registrationName: \"onResponderMove\",\n dependencies: moveDependencies\n },\n responderEnd: {\n registrationName: \"onResponderEnd\",\n dependencies: endDependencies\n },\n responderRelease: {\n registrationName: \"onResponderRelease\",\n dependencies: endDependencies\n },\n responderTerminationRequest: {\n registrationName: \"onResponderTerminationRequest\",\n dependencies: []\n },\n responderGrant: { registrationName: \"onResponderGrant\", dependencies: [] },\n responderReject: { registrationName: \"onResponderReject\", dependencies: [] },\n responderTerminate: {\n registrationName: \"onResponderTerminate\",\n dependencies: []\n }\n};\nfunction getParent(inst) {\n do inst = inst.return;\n while (inst && 5 !== inst.tag);\n return inst ? inst : null;\n}\nfunction traverseTwoPhase(inst, fn, arg) {\n for (var path = []; inst; ) path.push(inst), (inst = getParent(inst));\n for (inst = path.length; 0 < inst--; ) fn(path[inst], \"captured\", arg);\n for (inst = 0; inst < path.length; inst++) fn(path[inst], \"bubbled\", arg);\n}\nfunction getListener(inst, registrationName) {\n inst = inst.stateNode;\n if (null === inst) return null;\n inst = getFiberCurrentPropsFromNode(inst);\n if (null === inst) return null;\n if ((inst = inst[registrationName]) && \"function\" !== typeof inst)\n throw Error(\n \"Expected `\" +\n registrationName +\n \"` listener to be a function, instead got a value of `\" +\n typeof inst +\n \"` type.\"\n );\n return inst;\n}\nfunction accumulateDirectionalDispatches(inst, phase, event) {\n if (\n (phase = getListener(\n inst,\n event.dispatchConfig.phasedRegistrationNames[phase]\n ))\n )\n (event._dispatchListeners = accumulateInto(\n event._dispatchListeners,\n phase\n )),\n (event._dispatchInstances = accumulateInto(\n event._dispatchInstances,\n inst\n ));\n}\nfunction accumulateDirectDispatchesSingle(event) {\n if (event && event.dispatchConfig.registrationName) {\n var inst = event._targetInst;\n if (inst && event && event.dispatchConfig.registrationName) {\n var listener = getListener(inst, event.dispatchConfig.registrationName);\n listener &&\n ((event._dispatchListeners = accumulateInto(\n event._dispatchListeners,\n listener\n )),\n (event._dispatchInstances = accumulateInto(\n event._dispatchInstances,\n inst\n )));\n }\n }\n}\nfunction accumulateTwoPhaseDispatchesSingleSkipTarget(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n var targetInst = event._targetInst;\n targetInst = targetInst ? getParent(targetInst) : null;\n traverseTwoPhase(targetInst, accumulateDirectionalDispatches, event);\n }\n}\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n event &&\n event.dispatchConfig.phasedRegistrationNames &&\n traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);\n}\nvar ResponderEventPlugin = {\n _getResponder: function() {\n return responderInst;\n },\n eventTypes: eventTypes,\n extractEvents: function(\n topLevelType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n if (isStartish(topLevelType)) trackedTouchCount += 1;\n else if (\n \"topTouchEnd\" === topLevelType ||\n \"topTouchCancel\" === topLevelType\n )\n if (0 <= trackedTouchCount) --trackedTouchCount;\n else return null;\n ResponderTouchHistoryStore.recordTouchTrack(topLevelType, nativeEvent);\n if (\n targetInst &&\n ((\"topScroll\" === topLevelType && !nativeEvent.responderIgnoreScroll) ||\n (0 < trackedTouchCount && \"topSelectionChange\" === topLevelType) ||\n isStartish(topLevelType) ||\n isMoveish(topLevelType))\n ) {\n var shouldSetEventType = isStartish(topLevelType)\n ? eventTypes.startShouldSetResponder\n : isMoveish(topLevelType)\n ? eventTypes.moveShouldSetResponder\n : \"topSelectionChange\" === topLevelType\n ? eventTypes.selectionChangeShouldSetResponder\n : eventTypes.scrollShouldSetResponder;\n if (responderInst)\n b: {\n var JSCompiler_temp = responderInst;\n for (\n var depthA = 0, tempA = JSCompiler_temp;\n tempA;\n tempA = getParent(tempA)\n )\n depthA++;\n tempA = 0;\n for (var tempB = targetInst; tempB; tempB = getParent(tempB))\n tempA++;\n for (; 0 < depthA - tempA; )\n (JSCompiler_temp = getParent(JSCompiler_temp)), depthA--;\n for (; 0 < tempA - depthA; )\n (targetInst = getParent(targetInst)), tempA--;\n for (; depthA--; ) {\n if (\n JSCompiler_temp === targetInst ||\n JSCompiler_temp === targetInst.alternate\n )\n break b;\n JSCompiler_temp = getParent(JSCompiler_temp);\n targetInst = getParent(targetInst);\n }\n JSCompiler_temp = null;\n }\n else JSCompiler_temp = targetInst;\n targetInst = JSCompiler_temp;\n JSCompiler_temp = targetInst === responderInst;\n shouldSetEventType = ResponderSyntheticEvent.getPooled(\n shouldSetEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory;\n JSCompiler_temp\n ? forEachAccumulated(\n shouldSetEventType,\n accumulateTwoPhaseDispatchesSingleSkipTarget\n )\n : forEachAccumulated(\n shouldSetEventType,\n accumulateTwoPhaseDispatchesSingle\n );\n b: {\n JSCompiler_temp = shouldSetEventType._dispatchListeners;\n targetInst = shouldSetEventType._dispatchInstances;\n if (isArrayImpl(JSCompiler_temp))\n for (\n depthA = 0;\n depthA < JSCompiler_temp.length &&\n !shouldSetEventType.isPropagationStopped();\n depthA++\n ) {\n if (\n JSCompiler_temp[depthA](shouldSetEventType, targetInst[depthA])\n ) {\n JSCompiler_temp = targetInst[depthA];\n break b;\n }\n }\n else if (\n JSCompiler_temp &&\n JSCompiler_temp(shouldSetEventType, targetInst)\n ) {\n JSCompiler_temp = targetInst;\n break b;\n }\n JSCompiler_temp = null;\n }\n shouldSetEventType._dispatchInstances = null;\n shouldSetEventType._dispatchListeners = null;\n shouldSetEventType.isPersistent() ||\n shouldSetEventType.constructor.release(shouldSetEventType);\n if (JSCompiler_temp && JSCompiler_temp !== responderInst)\n if (\n ((shouldSetEventType = ResponderSyntheticEvent.getPooled(\n eventTypes.responderGrant,\n JSCompiler_temp,\n nativeEvent,\n nativeEventTarget\n )),\n (shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(\n shouldSetEventType,\n accumulateDirectDispatchesSingle\n ),\n (targetInst = !0 === executeDirectDispatch(shouldSetEventType)),\n responderInst)\n )\n if (\n ((depthA = ResponderSyntheticEvent.getPooled(\n eventTypes.responderTerminationRequest,\n responderInst,\n nativeEvent,\n nativeEventTarget\n )),\n (depthA.touchHistory = ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(depthA, accumulateDirectDispatchesSingle),\n (tempA =\n !depthA._dispatchListeners || executeDirectDispatch(depthA)),\n depthA.isPersistent() || depthA.constructor.release(depthA),\n tempA)\n ) {\n depthA = ResponderSyntheticEvent.getPooled(\n eventTypes.responderTerminate,\n responderInst,\n nativeEvent,\n nativeEventTarget\n );\n depthA.touchHistory = ResponderTouchHistoryStore.touchHistory;\n forEachAccumulated(depthA, accumulateDirectDispatchesSingle);\n var JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n [shouldSetEventType, depthA]\n );\n changeResponder(JSCompiler_temp, targetInst);\n } else\n (shouldSetEventType = ResponderSyntheticEvent.getPooled(\n eventTypes.responderReject,\n JSCompiler_temp,\n nativeEvent,\n nativeEventTarget\n )),\n (shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(\n shouldSetEventType,\n accumulateDirectDispatchesSingle\n ),\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n shouldSetEventType\n ));\n else\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n shouldSetEventType\n )),\n changeResponder(JSCompiler_temp, targetInst);\n else JSCompiler_temp$jscomp$0 = null;\n } else JSCompiler_temp$jscomp$0 = null;\n shouldSetEventType = responderInst && isStartish(topLevelType);\n JSCompiler_temp = responderInst && isMoveish(topLevelType);\n targetInst =\n responderInst &&\n (\"topTouchEnd\" === topLevelType || \"topTouchCancel\" === topLevelType);\n if (\n (shouldSetEventType = shouldSetEventType\n ? eventTypes.responderStart\n : JSCompiler_temp\n ? eventTypes.responderMove\n : targetInst\n ? eventTypes.responderEnd\n : null)\n )\n (shouldSetEventType = ResponderSyntheticEvent.getPooled(\n shouldSetEventType,\n responderInst,\n nativeEvent,\n nativeEventTarget\n )),\n (shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(\n shouldSetEventType,\n accumulateDirectDispatchesSingle\n ),\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n shouldSetEventType\n ));\n shouldSetEventType = responderInst && \"topTouchCancel\" === topLevelType;\n if (\n (topLevelType =\n responderInst &&\n !shouldSetEventType &&\n (\"topTouchEnd\" === topLevelType || \"topTouchCancel\" === topLevelType))\n )\n a: {\n if ((topLevelType = nativeEvent.touches) && 0 !== topLevelType.length)\n for (\n JSCompiler_temp = 0;\n JSCompiler_temp < topLevelType.length;\n JSCompiler_temp++\n )\n if (\n ((targetInst = topLevelType[JSCompiler_temp].target),\n null !== targetInst &&\n void 0 !== targetInst &&\n 0 !== targetInst)\n ) {\n depthA = getInstanceFromNode(targetInst);\n b: {\n for (targetInst = responderInst; depthA; ) {\n if (\n targetInst === depthA ||\n targetInst === depthA.alternate\n ) {\n targetInst = !0;\n break b;\n }\n depthA = getParent(depthA);\n }\n targetInst = !1;\n }\n if (targetInst) {\n topLevelType = !1;\n break a;\n }\n }\n topLevelType = !0;\n }\n if (\n (topLevelType = shouldSetEventType\n ? eventTypes.responderTerminate\n : topLevelType\n ? eventTypes.responderRelease\n : null)\n )\n (nativeEvent = ResponderSyntheticEvent.getPooled(\n topLevelType,\n responderInst,\n nativeEvent,\n nativeEventTarget\n )),\n (nativeEvent.touchHistory = ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(nativeEvent, accumulateDirectDispatchesSingle),\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n nativeEvent\n )),\n changeResponder(null);\n return JSCompiler_temp$jscomp$0;\n },\n GlobalResponderHandler: null,\n injection: {\n injectGlobalResponderHandler: function(GlobalResponderHandler) {\n ResponderEventPlugin.GlobalResponderHandler = GlobalResponderHandler;\n }\n }\n },\n eventPluginOrder = null,\n namesToPlugins = {};\nfunction recomputePluginOrdering() {\n if (eventPluginOrder)\n for (var pluginName in namesToPlugins) {\n var pluginModule = namesToPlugins[pluginName],\n pluginIndex = eventPluginOrder.indexOf(pluginName);\n if (-1 >= pluginIndex)\n throw Error(\n \"EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `\" +\n (pluginName + \"`.\")\n );\n if (!plugins[pluginIndex]) {\n if (!pluginModule.extractEvents)\n throw Error(\n \"EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `\" +\n (pluginName + \"` does not.\")\n );\n plugins[pluginIndex] = pluginModule;\n pluginIndex = pluginModule.eventTypes;\n for (var eventName in pluginIndex) {\n var JSCompiler_inline_result = void 0;\n var dispatchConfig = pluginIndex[eventName],\n eventName$jscomp$0 = eventName;\n if (eventNameDispatchConfigs.hasOwnProperty(eventName$jscomp$0))\n throw Error(\n \"EventPluginRegistry: More than one plugin attempted to publish the same event name, `\" +\n (eventName$jscomp$0 + \"`.\")\n );\n eventNameDispatchConfigs[eventName$jscomp$0] = dispatchConfig;\n var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n if (phasedRegistrationNames) {\n for (JSCompiler_inline_result in phasedRegistrationNames)\n phasedRegistrationNames.hasOwnProperty(\n JSCompiler_inline_result\n ) &&\n publishRegistrationName(\n phasedRegistrationNames[JSCompiler_inline_result],\n pluginModule,\n eventName$jscomp$0\n );\n JSCompiler_inline_result = !0;\n } else\n dispatchConfig.registrationName\n ? (publishRegistrationName(\n dispatchConfig.registrationName,\n pluginModule,\n eventName$jscomp$0\n ),\n (JSCompiler_inline_result = !0))\n : (JSCompiler_inline_result = !1);\n if (!JSCompiler_inline_result)\n throw Error(\n \"EventPluginRegistry: Failed to publish event `\" +\n eventName +\n \"` for plugin `\" +\n pluginName +\n \"`.\"\n );\n }\n }\n }\n}\nfunction publishRegistrationName(registrationName, pluginModule) {\n if (registrationNameModules[registrationName])\n throw Error(\n \"EventPluginRegistry: More than one plugin attempted to publish the same registration name, `\" +\n (registrationName + \"`.\")\n );\n registrationNameModules[registrationName] = pluginModule;\n}\nvar plugins = [],\n eventNameDispatchConfigs = {},\n registrationNameModules = {};\nfunction getListeners(\n inst,\n registrationName,\n phase,\n dispatchToImperativeListeners\n) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n inst = getFiberCurrentPropsFromNode(stateNode);\n if (null === inst) return null;\n if ((inst = inst[registrationName]) && \"function\" !== typeof inst)\n throw Error(\n \"Expected `\" +\n registrationName +\n \"` listener to be a function, instead got a value of `\" +\n typeof inst +\n \"` type.\"\n );\n if (\n !(\n dispatchToImperativeListeners &&\n stateNode.canonical &&\n stateNode.canonical._eventListeners\n )\n )\n return inst;\n var listeners = [];\n inst && listeners.push(inst);\n var requestedPhaseIsCapture = \"captured\" === phase,\n mangledImperativeRegistrationName = requestedPhaseIsCapture\n ? \"rn:\" + registrationName.replace(/Capture$/, \"\")\n : \"rn:\" + registrationName;\n stateNode.canonical._eventListeners[mangledImperativeRegistrationName] &&\n 0 <\n stateNode.canonical._eventListeners[mangledImperativeRegistrationName]\n .length &&\n stateNode.canonical._eventListeners[\n mangledImperativeRegistrationName\n ].forEach(function(listenerObj) {\n if (\n (null != listenerObj.options.capture && listenerObj.options.capture) ===\n requestedPhaseIsCapture\n ) {\n var listenerFnWrapper = function(syntheticEvent) {\n var eventInst = new ReactNativePrivateInterface.CustomEvent(\n mangledImperativeRegistrationName,\n { detail: syntheticEvent.nativeEvent }\n );\n eventInst.isTrusted = !0;\n eventInst.setSyntheticEvent(syntheticEvent);\n for (\n var _len = arguments.length,\n args = Array(1 < _len ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n )\n args[_key - 1] = arguments[_key];\n listenerObj.listener.apply(listenerObj, [eventInst].concat(args));\n };\n listenerObj.options.once\n ? listeners.push(function() {\n stateNode.canonical.removeEventListener_unstable(\n mangledImperativeRegistrationName,\n listenerObj.listener,\n listenerObj.capture\n );\n listenerObj.invalidated ||\n ((listenerObj.invalidated = !0),\n listenerObj.listener.apply(listenerObj, arguments));\n })\n : listeners.push(listenerFnWrapper);\n }\n });\n return 0 === listeners.length\n ? null\n : 1 === listeners.length\n ? listeners[0]\n : listeners;\n}\nvar customBubblingEventTypes =\n ReactNativePrivateInterface.ReactNativeViewConfigRegistry\n .customBubblingEventTypes,\n customDirectEventTypes =\n ReactNativePrivateInterface.ReactNativeViewConfigRegistry\n .customDirectEventTypes;\nfunction accumulateListenersAndInstances(inst, event, listeners) {\n var listenersLength = listeners\n ? isArrayImpl(listeners)\n ? listeners.length\n : 1\n : 0;\n if (0 < listenersLength)\n if (\n ((event._dispatchListeners = accumulateInto(\n event._dispatchListeners,\n listeners\n )),\n null == event._dispatchInstances && 1 === listenersLength)\n )\n event._dispatchInstances = inst;\n else\n for (\n event._dispatchInstances = event._dispatchInstances || [],\n isArrayImpl(event._dispatchInstances) ||\n (event._dispatchInstances = [event._dispatchInstances]),\n listeners = 0;\n listeners < listenersLength;\n listeners++\n )\n event._dispatchInstances.push(inst);\n}\nfunction accumulateDirectionalDispatches$1(inst, phase, event) {\n phase = getListeners(\n inst,\n event.dispatchConfig.phasedRegistrationNames[phase],\n phase,\n !0\n );\n accumulateListenersAndInstances(inst, event, phase);\n}\nfunction traverseTwoPhase$1(inst, fn, arg, skipBubbling) {\n for (var path = []; inst; ) {\n path.push(inst);\n do inst = inst.return;\n while (inst && 5 !== inst.tag);\n inst = inst ? inst : null;\n }\n for (inst = path.length; 0 < inst--; ) fn(path[inst], \"captured\", arg);\n if (skipBubbling) fn(path[0], \"bubbled\", arg);\n else\n for (inst = 0; inst < path.length; inst++) fn(path[inst], \"bubbled\", arg);\n}\nfunction accumulateTwoPhaseDispatchesSingle$1(event) {\n event &&\n event.dispatchConfig.phasedRegistrationNames &&\n traverseTwoPhase$1(\n event._targetInst,\n accumulateDirectionalDispatches$1,\n event,\n !1\n );\n}\nfunction accumulateDirectDispatchesSingle$1(event) {\n if (event && event.dispatchConfig.registrationName) {\n var inst = event._targetInst;\n if (inst && event && event.dispatchConfig.registrationName) {\n var listeners = getListeners(\n inst,\n event.dispatchConfig.registrationName,\n \"bubbled\",\n !1\n );\n accumulateListenersAndInstances(inst, event, listeners);\n }\n }\n}\nif (eventPluginOrder)\n throw Error(\n \"EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.\"\n );\neventPluginOrder = Array.prototype.slice.call([\n \"ResponderEventPlugin\",\n \"ReactNativeBridgeEventPlugin\"\n]);\nrecomputePluginOrdering();\nvar injectedNamesToPlugins$jscomp$inline_223 = {\n ResponderEventPlugin: ResponderEventPlugin,\n ReactNativeBridgeEventPlugin: {\n eventTypes: {},\n extractEvents: function(\n topLevelType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n if (null == targetInst) return null;\n var bubbleDispatchConfig = customBubblingEventTypes[topLevelType],\n directDispatchConfig = customDirectEventTypes[topLevelType];\n if (!bubbleDispatchConfig && !directDispatchConfig)\n throw Error(\n 'Unsupported top level event type \"' + topLevelType + '\" dispatched'\n );\n topLevelType = SyntheticEvent.getPooled(\n bubbleDispatchConfig || directDispatchConfig,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n if (bubbleDispatchConfig)\n null != topLevelType &&\n null != topLevelType.dispatchConfig.phasedRegistrationNames &&\n topLevelType.dispatchConfig.phasedRegistrationNames.skipBubbling\n ? topLevelType &&\n topLevelType.dispatchConfig.phasedRegistrationNames &&\n traverseTwoPhase$1(\n topLevelType._targetInst,\n accumulateDirectionalDispatches$1,\n topLevelType,\n !0\n )\n : forEachAccumulated(\n topLevelType,\n accumulateTwoPhaseDispatchesSingle$1\n );\n else if (directDispatchConfig)\n forEachAccumulated(topLevelType, accumulateDirectDispatchesSingle$1);\n else return null;\n return topLevelType;\n }\n }\n },\n isOrderingDirty$jscomp$inline_224 = !1,\n pluginName$jscomp$inline_225;\nfor (pluginName$jscomp$inline_225 in injectedNamesToPlugins$jscomp$inline_223)\n if (\n injectedNamesToPlugins$jscomp$inline_223.hasOwnProperty(\n pluginName$jscomp$inline_225\n )\n ) {\n var pluginModule$jscomp$inline_226 =\n injectedNamesToPlugins$jscomp$inline_223[pluginName$jscomp$inline_225];\n if (\n !namesToPlugins.hasOwnProperty(pluginName$jscomp$inline_225) ||\n namesToPlugins[pluginName$jscomp$inline_225] !==\n pluginModule$jscomp$inline_226\n ) {\n if (namesToPlugins[pluginName$jscomp$inline_225])\n throw Error(\n \"EventPluginRegistry: Cannot inject two different event plugins using the same name, `\" +\n (pluginName$jscomp$inline_225 + \"`.\")\n );\n namesToPlugins[\n pluginName$jscomp$inline_225\n ] = pluginModule$jscomp$inline_226;\n isOrderingDirty$jscomp$inline_224 = !0;\n }\n }\nisOrderingDirty$jscomp$inline_224 && recomputePluginOrdering();\nfunction getInstanceFromInstance(instanceHandle) {\n return instanceHandle;\n}\ngetFiberCurrentPropsFromNode = function(inst) {\n return inst.canonical.currentProps;\n};\ngetInstanceFromNode = getInstanceFromInstance;\ngetNodeFromInstance = function(inst) {\n inst = inst.stateNode.canonical;\n if (!inst._nativeTag) throw Error(\"All native instances should have a tag.\");\n return inst;\n};\nResponderEventPlugin.injection.injectGlobalResponderHandler({\n onChange: function(from, to, blockNativeResponder) {\n var fromOrTo = from || to;\n (fromOrTo = fromOrTo && fromOrTo.stateNode) &&\n fromOrTo.canonical._internalInstanceHandle\n ? (from &&\n nativeFabricUIManager.setIsJSResponder(\n from.stateNode.node,\n !1,\n blockNativeResponder || !1\n ),\n to &&\n nativeFabricUIManager.setIsJSResponder(\n to.stateNode.node,\n !0,\n blockNativeResponder || !1\n ))\n : null !== to\n ? ReactNativePrivateInterface.UIManager.setJSResponder(\n to.stateNode.canonical._nativeTag,\n blockNativeResponder\n )\n : ReactNativePrivateInterface.UIManager.clearJSResponder();\n }\n});\nvar ReactSharedInternals =\n React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,\n REACT_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_PROVIDER_TYPE = Symbol.for(\"react.provider\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nSymbol.for(\"react.debug_trace_mode\");\nvar REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.cache\");\nSymbol.for(\"react.tracing_marker\");\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type) return type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Consumer\";\n case REACT_PROVIDER_TYPE:\n return (type._context.displayName || \"Context\") + \".Provider\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nfunction getComponentNameFromFiber(fiber) {\n var type = fiber.type;\n switch (fiber.tag) {\n case 24:\n return \"Cache\";\n case 9:\n return (type.displayName || \"Context\") + \".Consumer\";\n case 10:\n return (type._context.displayName || \"Context\") + \".Provider\";\n case 18:\n return \"DehydratedFragment\";\n case 11:\n return (\n (fiber = type.render),\n (fiber = fiber.displayName || fiber.name || \"\"),\n type.displayName ||\n (\"\" !== fiber ? \"ForwardRef(\" + fiber + \")\" : \"ForwardRef\")\n );\n case 7:\n return \"Fragment\";\n case 5:\n return type;\n case 4:\n return \"Portal\";\n case 3:\n return \"Root\";\n case 6:\n return \"Text\";\n case 16:\n return getComponentNameFromType(type);\n case 8:\n return type === REACT_STRICT_MODE_TYPE ? \"StrictMode\" : \"Mode\";\n case 22:\n return \"Offscreen\";\n case 12:\n return \"Profiler\";\n case 21:\n return \"Scope\";\n case 13:\n return \"Suspense\";\n case 19:\n return \"SuspenseList\";\n case 25:\n return \"TracingMarker\";\n case 1:\n case 0:\n case 17:\n case 2:\n case 14:\n case 15:\n if (\"function\" === typeof type)\n return type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n }\n return null;\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(\"Unable to find node on an unmounted component.\");\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate)\n throw Error(\"Unable to find node on an unmounted component.\");\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(\"Unable to find node on an unmounted component.\");\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$0 = parentA.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) {\n for (child$0 = parentB.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild)\n throw Error(\n \"Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.\"\n );\n }\n }\n if (a.alternate !== b)\n throw Error(\n \"Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (3 !== a.tag)\n throw Error(\"Unable to find node on an unmounted component.\");\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiber(parent) {\n parent = findCurrentFiberUsingSlowPath(parent);\n return null !== parent ? findCurrentHostFiberImpl(parent) : null;\n}\nfunction findCurrentHostFiberImpl(node) {\n if (5 === node.tag || 6 === node.tag) return node;\n for (node = node.child; null !== node; ) {\n var match = findCurrentHostFiberImpl(node);\n if (null !== match) return match;\n node = node.sibling;\n }\n return null;\n}\nfunction mountSafeCallback_NOT_REALLY_SAFE(context, callback) {\n return function() {\n if (\n callback &&\n (\"boolean\" !== typeof context.__isMounted || context.__isMounted)\n )\n return callback.apply(context, arguments);\n };\n}\nvar emptyObject = {},\n removedKeys = null,\n removedKeyCount = 0,\n deepDifferOptions = { unsafelyIgnoreFunctions: !0 };\nfunction defaultDiffer(prevProp, nextProp) {\n return \"object\" !== typeof nextProp || null === nextProp\n ? !0\n : ReactNativePrivateInterface.deepDiffer(\n prevProp,\n nextProp,\n deepDifferOptions\n );\n}\nfunction restoreDeletedValuesInNestedArray(\n updatePayload,\n node,\n validAttributes\n) {\n if (isArrayImpl(node))\n for (var i = node.length; i-- && 0 < removedKeyCount; )\n restoreDeletedValuesInNestedArray(\n updatePayload,\n node[i],\n validAttributes\n );\n else if (node && 0 < removedKeyCount)\n for (i in removedKeys)\n if (removedKeys[i]) {\n var nextProp = node[i];\n if (void 0 !== nextProp) {\n var attributeConfig = validAttributes[i];\n if (attributeConfig) {\n \"function\" === typeof nextProp && (nextProp = !0);\n \"undefined\" === typeof nextProp && (nextProp = null);\n if (\"object\" !== typeof attributeConfig)\n updatePayload[i] = nextProp;\n else if (\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n )\n (nextProp =\n \"function\" === typeof attributeConfig.process\n ? attributeConfig.process(nextProp)\n : nextProp),\n (updatePayload[i] = nextProp);\n removedKeys[i] = !1;\n removedKeyCount--;\n }\n }\n }\n}\nfunction diffNestedProperty(\n updatePayload,\n prevProp,\n nextProp,\n validAttributes\n) {\n if (!updatePayload && prevProp === nextProp) return updatePayload;\n if (!prevProp || !nextProp)\n return nextProp\n ? addNestedProperty(updatePayload, nextProp, validAttributes)\n : prevProp\n ? clearNestedProperty(updatePayload, prevProp, validAttributes)\n : updatePayload;\n if (!isArrayImpl(prevProp) && !isArrayImpl(nextProp))\n return diffProperties(updatePayload, prevProp, nextProp, validAttributes);\n if (isArrayImpl(prevProp) && isArrayImpl(nextProp)) {\n var minLength =\n prevProp.length < nextProp.length ? prevProp.length : nextProp.length,\n i;\n for (i = 0; i < minLength; i++)\n updatePayload = diffNestedProperty(\n updatePayload,\n prevProp[i],\n nextProp[i],\n validAttributes\n );\n for (; i < prevProp.length; i++)\n updatePayload = clearNestedProperty(\n updatePayload,\n prevProp[i],\n validAttributes\n );\n for (; i < nextProp.length; i++)\n updatePayload = addNestedProperty(\n updatePayload,\n nextProp[i],\n validAttributes\n );\n return updatePayload;\n }\n return isArrayImpl(prevProp)\n ? diffProperties(\n updatePayload,\n ReactNativePrivateInterface.flattenStyle(prevProp),\n nextProp,\n validAttributes\n )\n : diffProperties(\n updatePayload,\n prevProp,\n ReactNativePrivateInterface.flattenStyle(nextProp),\n validAttributes\n );\n}\nfunction addNestedProperty(updatePayload, nextProp, validAttributes) {\n if (!nextProp) return updatePayload;\n if (!isArrayImpl(nextProp))\n return diffProperties(\n updatePayload,\n emptyObject,\n nextProp,\n validAttributes\n );\n for (var i = 0; i < nextProp.length; i++)\n updatePayload = addNestedProperty(\n updatePayload,\n nextProp[i],\n validAttributes\n );\n return updatePayload;\n}\nfunction clearNestedProperty(updatePayload, prevProp, validAttributes) {\n if (!prevProp) return updatePayload;\n if (!isArrayImpl(prevProp))\n return diffProperties(\n updatePayload,\n prevProp,\n emptyObject,\n validAttributes\n );\n for (var i = 0; i < prevProp.length; i++)\n updatePayload = clearNestedProperty(\n updatePayload,\n prevProp[i],\n validAttributes\n );\n return updatePayload;\n}\nfunction diffProperties(updatePayload, prevProps, nextProps, validAttributes) {\n var attributeConfig, propKey;\n for (propKey in nextProps)\n if ((attributeConfig = validAttributes[propKey])) {\n var prevProp = prevProps[propKey];\n var nextProp = nextProps[propKey];\n \"function\" === typeof nextProp &&\n ((nextProp = !0), \"function\" === typeof prevProp && (prevProp = !0));\n \"undefined\" === typeof nextProp &&\n ((nextProp = null),\n \"undefined\" === typeof prevProp && (prevProp = null));\n removedKeys && (removedKeys[propKey] = !1);\n if (updatePayload && void 0 !== updatePayload[propKey])\n if (\"object\" !== typeof attributeConfig)\n updatePayload[propKey] = nextProp;\n else {\n if (\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n )\n (attributeConfig =\n \"function\" === typeof attributeConfig.process\n ? attributeConfig.process(nextProp)\n : nextProp),\n (updatePayload[propKey] = attributeConfig);\n }\n else if (prevProp !== nextProp)\n if (\"object\" !== typeof attributeConfig)\n defaultDiffer(prevProp, nextProp) &&\n ((updatePayload || (updatePayload = {}))[propKey] = nextProp);\n else if (\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n ) {\n if (\n void 0 === prevProp ||\n (\"function\" === typeof attributeConfig.diff\n ? attributeConfig.diff(prevProp, nextProp)\n : defaultDiffer(prevProp, nextProp))\n )\n (attributeConfig =\n \"function\" === typeof attributeConfig.process\n ? attributeConfig.process(nextProp)\n : nextProp),\n ((updatePayload || (updatePayload = {}))[\n propKey\n ] = attributeConfig);\n } else\n (removedKeys = null),\n (removedKeyCount = 0),\n (updatePayload = diffNestedProperty(\n updatePayload,\n prevProp,\n nextProp,\n attributeConfig\n )),\n 0 < removedKeyCount &&\n updatePayload &&\n (restoreDeletedValuesInNestedArray(\n updatePayload,\n nextProp,\n attributeConfig\n ),\n (removedKeys = null));\n }\n for (var propKey$2 in prevProps)\n void 0 === nextProps[propKey$2] &&\n (!(attributeConfig = validAttributes[propKey$2]) ||\n (updatePayload && void 0 !== updatePayload[propKey$2]) ||\n ((prevProp = prevProps[propKey$2]),\n void 0 !== prevProp &&\n (\"object\" !== typeof attributeConfig ||\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n ? (((updatePayload || (updatePayload = {}))[propKey$2] = null),\n removedKeys || (removedKeys = {}),\n removedKeys[propKey$2] ||\n ((removedKeys[propKey$2] = !0), removedKeyCount++))\n : (updatePayload = clearNestedProperty(\n updatePayload,\n prevProp,\n attributeConfig\n )))));\n return updatePayload;\n}\nfunction batchedUpdatesImpl(fn, bookkeeping) {\n return fn(bookkeeping);\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates(fn, bookkeeping) {\n if (isInsideEventHandler) return fn(bookkeeping);\n isInsideEventHandler = !0;\n try {\n return batchedUpdatesImpl(fn, bookkeeping);\n } finally {\n isInsideEventHandler = !1;\n }\n}\nvar eventQueue = null;\nfunction executeDispatchesAndReleaseTopLevel(e) {\n if (e) {\n var dispatchListeners = e._dispatchListeners,\n dispatchInstances = e._dispatchInstances;\n if (isArrayImpl(dispatchListeners))\n for (\n var i = 0;\n i < dispatchListeners.length && !e.isPropagationStopped();\n i++\n )\n executeDispatch(e, dispatchListeners[i], dispatchInstances[i]);\n else\n dispatchListeners &&\n executeDispatch(e, dispatchListeners, dispatchInstances);\n e._dispatchListeners = null;\n e._dispatchInstances = null;\n e.isPersistent() || e.constructor.release(e);\n }\n}\nfunction dispatchEvent(target, topLevelType, nativeEvent) {\n var eventTarget = null;\n if (null != target) {\n var stateNode = target.stateNode;\n null != stateNode && (eventTarget = stateNode.canonical);\n }\n batchedUpdates(function() {\n var event = { eventName: topLevelType, nativeEvent: nativeEvent };\n ReactNativePrivateInterface.RawEventEmitter.emit(topLevelType, event);\n ReactNativePrivateInterface.RawEventEmitter.emit(\"*\", event);\n event = eventTarget;\n for (\n var events = null, legacyPlugins = plugins, i = 0;\n i < legacyPlugins.length;\n i++\n ) {\n var possiblePlugin = legacyPlugins[i];\n possiblePlugin &&\n (possiblePlugin = possiblePlugin.extractEvents(\n topLevelType,\n target,\n nativeEvent,\n event\n )) &&\n (events = accumulateInto(events, possiblePlugin));\n }\n event = events;\n null !== event && (eventQueue = accumulateInto(eventQueue, event));\n event = eventQueue;\n eventQueue = null;\n if (event) {\n forEachAccumulated(event, executeDispatchesAndReleaseTopLevel);\n if (eventQueue)\n throw Error(\n \"processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.\"\n );\n if (hasRethrowError)\n throw ((event = rethrowError),\n (hasRethrowError = !1),\n (rethrowError = null),\n event);\n }\n });\n}\nvar scheduleCallback = Scheduler.unstable_scheduleCallback,\n cancelCallback = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority = Scheduler.unstable_NormalPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n rendererID = null,\n injectedHook = null;\nfunction onCommitRoot(root) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n root,\n void 0,\n 128 === (root.current.flags & 128)\n );\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionLane = 64,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 4194240;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n return lanes & 130023424;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 1073741824;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n nonIdlePendingLanes = pendingLanes & 268435455;\n if (0 !== nonIdlePendingLanes) {\n var nonIdleUnblockedLanes = nonIdlePendingLanes & ~suspendedLanes;\n 0 !== nonIdleUnblockedLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdleUnblockedLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes &&\n (nextLanes = getHighestPriorityLanes(pingedLanes)));\n } else\n (nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes &&\n (nextLanes = getHighestPriorityLanes(pingedLanes));\n if (0 === nextLanes) return 0;\n if (\n 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (pingedLanes = wipLanes & -wipLanes),\n suspendedLanes >= pingedLanes ||\n (16 === suspendedLanes && 0 !== (pingedLanes & 4194240)))\n )\n return wipLanes;\n 0 !== (nextLanes & 4) && (nextLanes |= pendingLanes & 16);\n wipLanes = root.entangledLanes;\n if (0 !== wipLanes)\n for (root = root.entanglements, wipLanes &= nextLanes; 0 < wipLanes; )\n (pendingLanes = 31 - clz32(wipLanes)),\n (suspendedLanes = 1 << pendingLanes),\n (nextLanes |= root[pendingLanes]),\n (wipLanes &= ~suspendedLanes);\n return nextLanes;\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n return currentTime + 250;\n case 8:\n case 16:\n case 32:\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n return -1;\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction getLanesToRetrySynchronouslyOnError(root) {\n root = root.pendingLanes & -1073741825;\n return 0 !== root ? root : root & 1073741824 ? 1073741824 : 0;\n}\nfunction claimNextTransitionLane() {\n var lane = nextTransitionLane;\n nextTransitionLane <<= 1;\n 0 === (nextTransitionLane & 4194240) && (nextTransitionLane = 64);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated(root, updateLane, eventTime) {\n root.pendingLanes |= updateLane;\n 536870912 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0));\n root = root.eventTimes;\n updateLane = 31 - clz32(updateLane);\n root[updateLane] = eventTime;\n}\nfunction markRootFinished(root, remainingLanes) {\n var noLongerPendingLanes = root.pendingLanes & ~remainingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.mutableReadLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n remainingLanes = root.entanglements;\n var eventTimes = root.eventTimes;\n for (root = root.expirationTimes; 0 < noLongerPendingLanes; ) {\n var index$7 = 31 - clz32(noLongerPendingLanes),\n lane = 1 << index$7;\n remainingLanes[index$7] = 0;\n eventTimes[index$7] = -1;\n root[index$7] = -1;\n noLongerPendingLanes &= ~lane;\n }\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$8 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$8;\n (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n (root[index$8] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nvar currentUpdatePriority = 0;\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 1 < lanes\n ? 4 < lanes\n ? 0 !== (lanes & 268435455)\n ? 16\n : 536870912\n : 4\n : 1;\n}\nfunction shim$1() {\n throw Error(\n \"The current renderer does not support hydration. This error is likely caused by a bug in React. Please file an issue.\"\n );\n}\nvar _nativeFabricUIManage = nativeFabricUIManager,\n createNode = _nativeFabricUIManage.createNode,\n cloneNode = _nativeFabricUIManage.cloneNode,\n cloneNodeWithNewChildren = _nativeFabricUIManage.cloneNodeWithNewChildren,\n cloneNodeWithNewChildrenAndProps =\n _nativeFabricUIManage.cloneNodeWithNewChildrenAndProps,\n cloneNodeWithNewProps = _nativeFabricUIManage.cloneNodeWithNewProps,\n createChildNodeSet = _nativeFabricUIManage.createChildSet,\n appendChildNode = _nativeFabricUIManage.appendChild,\n appendChildNodeToSet = _nativeFabricUIManage.appendChildToSet,\n completeRoot = _nativeFabricUIManage.completeRoot,\n registerEventHandler = _nativeFabricUIManage.registerEventHandler,\n fabricMeasure = _nativeFabricUIManage.measure,\n fabricMeasureInWindow = _nativeFabricUIManage.measureInWindow,\n fabricMeasureLayout = _nativeFabricUIManage.measureLayout,\n FabricDiscretePriority = _nativeFabricUIManage.unstable_DiscreteEventPriority,\n fabricGetCurrentEventPriority =\n _nativeFabricUIManage.unstable_getCurrentEventPriority,\n _setNativeProps = _nativeFabricUIManage.setNativeProps,\n getViewConfigForType =\n ReactNativePrivateInterface.ReactNativeViewConfigRegistry.get,\n nextReactTag = 2;\nregisterEventHandler && registerEventHandler(dispatchEvent);\nvar ReactFabricHostComponent = (function() {\n function ReactFabricHostComponent(\n tag,\n viewConfig,\n props,\n internalInstanceHandle\n ) {\n this._nativeTag = tag;\n this.viewConfig = viewConfig;\n this.currentProps = props;\n this._internalInstanceHandle = internalInstanceHandle;\n }\n var _proto = ReactFabricHostComponent.prototype;\n _proto.blur = function() {\n ReactNativePrivateInterface.TextInputState.blurTextInput(this);\n };\n _proto.focus = function() {\n ReactNativePrivateInterface.TextInputState.focusTextInput(this);\n };\n _proto.measure = function(callback) {\n var stateNode = this._internalInstanceHandle.stateNode;\n null != stateNode &&\n fabricMeasure(\n stateNode.node,\n mountSafeCallback_NOT_REALLY_SAFE(this, callback)\n );\n };\n _proto.measureInWindow = function(callback) {\n var stateNode = this._internalInstanceHandle.stateNode;\n null != stateNode &&\n fabricMeasureInWindow(\n stateNode.node,\n mountSafeCallback_NOT_REALLY_SAFE(this, callback)\n );\n };\n _proto.measureLayout = function(relativeToNativeNode, onSuccess, onFail) {\n if (\n \"number\" !== typeof relativeToNativeNode &&\n relativeToNativeNode instanceof ReactFabricHostComponent\n ) {\n var toStateNode = this._internalInstanceHandle.stateNode;\n relativeToNativeNode =\n relativeToNativeNode._internalInstanceHandle.stateNode;\n null != toStateNode &&\n null != relativeToNativeNode &&\n fabricMeasureLayout(\n toStateNode.node,\n relativeToNativeNode.node,\n mountSafeCallback_NOT_REALLY_SAFE(this, onFail),\n mountSafeCallback_NOT_REALLY_SAFE(this, onSuccess)\n );\n }\n };\n _proto.setNativeProps = function(nativeProps) {\n nativeProps = diffProperties(\n null,\n emptyObject,\n nativeProps,\n this.viewConfig.validAttributes\n );\n var stateNode = this._internalInstanceHandle.stateNode;\n null != stateNode &&\n null != nativeProps &&\n _setNativeProps(stateNode.node, nativeProps);\n };\n _proto.addEventListener_unstable = function(eventType, listener, options) {\n if (\"string\" !== typeof eventType)\n throw Error(\"addEventListener_unstable eventType must be a string\");\n if (\"function\" !== typeof listener)\n throw Error(\"addEventListener_unstable listener must be a function\");\n var optionsObj =\n \"object\" === typeof options && null !== options ? options : {};\n options =\n (\"boolean\" === typeof options ? options : optionsObj.capture) || !1;\n var once = optionsObj.once || !1;\n optionsObj = optionsObj.passive || !1;\n var eventListeners = this._eventListeners || {};\n null == this._eventListeners && (this._eventListeners = eventListeners);\n var namedEventListeners = eventListeners[eventType] || [];\n null == eventListeners[eventType] &&\n (eventListeners[eventType] = namedEventListeners);\n namedEventListeners.push({\n listener: listener,\n invalidated: !1,\n options: {\n capture: options,\n once: once,\n passive: optionsObj,\n signal: null\n }\n });\n };\n _proto.removeEventListener_unstable = function(eventType, listener, options) {\n var optionsObj =\n \"object\" === typeof options && null !== options ? options : {},\n capture =\n (\"boolean\" === typeof options ? options : optionsObj.capture) || !1;\n (options = this._eventListeners) &&\n (optionsObj = options[eventType]) &&\n (options[eventType] = optionsObj.filter(function(listenerObj) {\n return !(\n listenerObj.listener === listener &&\n listenerObj.options.capture === capture\n );\n }));\n };\n return ReactFabricHostComponent;\n})();\nfunction createTextInstance(\n text,\n rootContainerInstance,\n hostContext,\n internalInstanceHandle\n) {\n hostContext = nextReactTag;\n nextReactTag += 2;\n return {\n node: createNode(\n hostContext,\n \"RCTRawText\",\n rootContainerInstance,\n { text: text },\n internalInstanceHandle\n )\n };\n}\nvar scheduleTimeout = setTimeout,\n cancelTimeout = clearTimeout;\nfunction cloneHiddenInstance(instance) {\n var node = instance.node;\n var JSCompiler_inline_result = diffProperties(\n null,\n emptyObject,\n { style: { display: \"none\" } },\n instance.canonical.viewConfig.validAttributes\n );\n return {\n node: cloneNodeWithNewProps(node, JSCompiler_inline_result),\n canonical: instance.canonical\n };\n}\nfunction describeComponentFrame(name, source, ownerName) {\n source = \"\";\n ownerName && (source = \" (created by \" + ownerName + \")\");\n return \"\\n in \" + (name || \"Unknown\") + source;\n}\nfunction describeFunctionComponentFrame(fn, source) {\n return fn\n ? describeComponentFrame(fn.displayName || fn.name || null, source, null)\n : \"\";\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar emptyContextObject = {},\n contextStackCursor = createCursor(emptyContextObject),\n didPerformWorkStackCursor = createCursor(!1),\n previousContext = emptyContextObject;\nfunction getMaskedContext(workInProgress, unmaskedContext) {\n var contextTypes = workInProgress.type.contextTypes;\n if (!contextTypes) return emptyContextObject;\n var instance = workInProgress.stateNode;\n if (\n instance &&\n instance.__reactInternalMemoizedUnmaskedChildContext === unmaskedContext\n )\n return instance.__reactInternalMemoizedMaskedChildContext;\n var context = {},\n key;\n for (key in contextTypes) context[key] = unmaskedContext[key];\n instance &&\n ((workInProgress = workInProgress.stateNode),\n (workInProgress.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext),\n (workInProgress.__reactInternalMemoizedMaskedChildContext = context));\n return context;\n}\nfunction isContextProvider(type) {\n type = type.childContextTypes;\n return null !== type && void 0 !== type;\n}\nfunction popContext() {\n pop(didPerformWorkStackCursor);\n pop(contextStackCursor);\n}\nfunction pushTopLevelContextObject(fiber, context, didChange) {\n if (contextStackCursor.current !== emptyContextObject)\n throw Error(\n \"Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.\"\n );\n push(contextStackCursor, context);\n push(didPerformWorkStackCursor, didChange);\n}\nfunction processChildContext(fiber, type, parentContext) {\n var instance = fiber.stateNode;\n type = type.childContextTypes;\n if (\"function\" !== typeof instance.getChildContext) return parentContext;\n instance = instance.getChildContext();\n for (var contextKey in instance)\n if (!(contextKey in type))\n throw Error(\n (getComponentNameFromFiber(fiber) || \"Unknown\") +\n '.getChildContext(): key \"' +\n contextKey +\n '\" is not defined in childContextTypes.'\n );\n return assign({}, parentContext, instance);\n}\nfunction pushContextProvider(workInProgress) {\n workInProgress =\n ((workInProgress = workInProgress.stateNode) &&\n workInProgress.__reactInternalMemoizedMergedChildContext) ||\n emptyContextObject;\n previousContext = contextStackCursor.current;\n push(contextStackCursor, workInProgress);\n push(didPerformWorkStackCursor, didPerformWorkStackCursor.current);\n return !0;\n}\nfunction invalidateContextProvider(workInProgress, type, didChange) {\n var instance = workInProgress.stateNode;\n if (!instance)\n throw Error(\n \"Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.\"\n );\n didChange\n ? ((workInProgress = processChildContext(\n workInProgress,\n type,\n previousContext\n )),\n (instance.__reactInternalMemoizedMergedChildContext = workInProgress),\n pop(didPerformWorkStackCursor),\n pop(contextStackCursor),\n push(contextStackCursor, workInProgress))\n : pop(didPerformWorkStackCursor);\n push(didPerformWorkStackCursor, didChange);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n syncQueue = null,\n includesLegacySyncCallbacks = !1,\n isFlushingSyncQueue = !1;\nfunction flushSyncCallbacks() {\n if (!isFlushingSyncQueue && null !== syncQueue) {\n isFlushingSyncQueue = !0;\n var i = 0,\n previousUpdatePriority = currentUpdatePriority;\n try {\n var queue = syncQueue;\n for (currentUpdatePriority = 1; i < queue.length; i++) {\n var callback = queue[i];\n do callback = callback(!0);\n while (null !== callback);\n }\n syncQueue = null;\n includesLegacySyncCallbacks = !1;\n } catch (error) {\n throw (null !== syncQueue && (syncQueue = syncQueue.slice(i + 1)),\n scheduleCallback(ImmediatePriority, flushSyncCallbacks),\n error);\n } finally {\n (currentUpdatePriority = previousUpdatePriority),\n (isFlushingSyncQueue = !1);\n }\n }\n return null;\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null;\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n --forkStackIndex,\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n --idStackIndex,\n (idStack[idStackIndex] = null),\n --idStackIndex,\n (idStack[idStackIndex] = null);\n}\nvar hydrationErrors = null,\n ReactCurrentBatchConfig = ReactSharedInternals.ReactCurrentBatchConfig;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction describeFiber(fiber) {\n switch (fiber.tag) {\n case 5:\n return describeComponentFrame(fiber.type, null, null);\n case 16:\n return describeComponentFrame(\"Lazy\", null, null);\n case 13:\n return describeComponentFrame(\"Suspense\", null, null);\n case 19:\n return describeComponentFrame(\"SuspenseList\", null, null);\n case 0:\n case 2:\n case 15:\n return describeFunctionComponentFrame(fiber.type, null);\n case 11:\n return describeFunctionComponentFrame(fiber.type.render, null);\n case 1:\n return (fiber = describeFunctionComponentFrame(fiber.type, null)), fiber;\n default:\n return \"\";\n }\n}\nfunction resolveDefaultProps(Component, baseProps) {\n if (Component && Component.defaultProps) {\n baseProps = assign({}, baseProps);\n Component = Component.defaultProps;\n for (var propName in Component)\n void 0 === baseProps[propName] &&\n (baseProps[propName] = Component[propName]);\n return baseProps;\n }\n return baseProps;\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber = null,\n lastContextDependency = null,\n lastFullyObservedContext = null;\nfunction resetContextDependencies() {\n lastFullyObservedContext = lastContextDependency = currentlyRenderingFiber = null;\n}\nfunction popProvider(context) {\n var currentValue = valueCursor.current;\n pop(valueCursor);\n context._currentValue2 = currentValue;\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction prepareToReadContext(workInProgress, renderLanes) {\n currentlyRenderingFiber = workInProgress;\n lastFullyObservedContext = lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress &&\n null !== workInProgress.firstContext &&\n (0 !== (workInProgress.lanes & renderLanes) && (didReceiveUpdate = !0),\n (workInProgress.firstContext = null));\n}\nfunction readContext(context) {\n var value = context._currentValue2;\n if (lastFullyObservedContext !== context)\n if (\n ((context = { context: context, memoizedValue: value, next: null }),\n null === lastContextDependency)\n ) {\n if (null === currentlyRenderingFiber)\n throw Error(\n \"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\"\n );\n lastContextDependency = context;\n currentlyRenderingFiber.dependencies = {\n lanes: 0,\n firstContext: context\n };\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar concurrentQueues = null;\nfunction pushConcurrentUpdateQueue(queue) {\n null === concurrentQueues\n ? (concurrentQueues = [queue])\n : concurrentQueues.push(queue);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n var interleaved = queue.interleaved;\n null === interleaved\n ? ((update.next = update), pushConcurrentUpdateQueue(queue))\n : ((update.next = interleaved.next), (interleaved.next = update));\n queue.interleaved = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n alternate = sourceFiber;\n for (sourceFiber = sourceFiber.return; null !== sourceFiber; )\n (sourceFiber.childLanes |= lane),\n (alternate = sourceFiber.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n (alternate = sourceFiber),\n (sourceFiber = sourceFiber.return);\n return 3 === alternate.tag ? alternate.stateNode : null;\n}\nvar hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, interleaved: null, lanes: 0 },\n effects: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n effects: current.effects\n });\n}\nfunction createUpdate(eventTime, lane) {\n return {\n eventTime: eventTime,\n lane: lane,\n tag: 0,\n payload: null,\n callback: null,\n next: null\n };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n }\n pending = updateQueue.interleaved;\n null === pending\n ? ((update.next = update), pushConcurrentUpdateQueue(updateQueue))\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.interleaved = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194240))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n eventTime: queue.eventTime,\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: queue.callback,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n effects: current.effects\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance,\n renderLanes\n) {\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane,\n updateEventTime = pendingQueue.eventTime;\n if ((renderLanes & updateLane) === updateLane) {\n null !== current &&\n (current = current.next = {\n eventTime: updateEventTime,\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n updateEventTime = instance;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(\n updateEventTime,\n newState,\n updateLane\n );\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(updateEventTime, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n null !== pendingQueue.callback &&\n 0 !== pendingQueue.lane &&\n ((workInProgress$jscomp$0.flags |= 64),\n (updateLane = queue.effects),\n null === updateLane\n ? (queue.effects = [pendingQueue])\n : updateLane.push(pendingQueue));\n } else\n (updateEventTime = {\n eventTime: updateEventTime,\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = updateEventTime),\n (lastPendingUpdate = newState))\n : (current = current.next = updateEventTime),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (updateLane = pendingQueue),\n (pendingQueue = updateLane.next),\n (updateLane.next = null),\n (queue.lastBaseUpdate = updateLane),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n props = queue.shared.interleaved;\n if (null !== props) {\n queue = props;\n do (lastBaseUpdate |= queue.lane), (queue = queue.next);\n while (queue !== props);\n } else null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction commitUpdateQueue(finishedWork, finishedQueue, instance) {\n finishedWork = finishedQueue.effects;\n finishedQueue.effects = null;\n if (null !== finishedWork)\n for (\n finishedQueue = 0;\n finishedQueue < finishedWork.length;\n finishedQueue++\n ) {\n var effect = finishedWork[finishedQueue],\n callback = effect.callback;\n if (null !== callback) {\n effect.callback = null;\n if (\"function\" !== typeof callback)\n throw Error(\n \"Invalid argument passed as callback. Expected a function. Instead received: \" +\n callback\n );\n callback.call(instance);\n }\n }\n}\nvar emptyRefsObject = new React.Component().refs;\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n isMounted: function(component) {\n return (component = component._reactInternals)\n ? getNearestMountedFiber(component) === component\n : !1;\n },\n enqueueSetState: function(inst, payload, callback) {\n inst = inst._reactInternals;\n var eventTime = requestEventTime(),\n lane = requestUpdateLane(inst),\n update = createUpdate(eventTime, lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane, eventTime),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function(inst, payload, callback) {\n inst = inst._reactInternals;\n var eventTime = requestEventTime(),\n lane = requestUpdateLane(inst),\n update = createUpdate(eventTime, lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane, eventTime),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function(inst, callback) {\n inst = inst._reactInternals;\n var eventTime = requestEventTime(),\n lane = requestUpdateLane(inst),\n update = createUpdate(eventTime, lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane, eventTime),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction constructClassInstance(workInProgress, ctor, props) {\n var isLegacyContextConsumer = !1,\n unmaskedContext = emptyContextObject;\n var context = ctor.contextType;\n \"object\" === typeof context && null !== context\n ? (context = readContext(context))\n : ((unmaskedContext = isContextProvider(ctor)\n ? previousContext\n : contextStackCursor.current),\n (isLegacyContextConsumer = ctor.contextTypes),\n (context = (isLegacyContextConsumer =\n null !== isLegacyContextConsumer && void 0 !== isLegacyContextConsumer)\n ? getMaskedContext(workInProgress, unmaskedContext)\n : emptyContextObject));\n ctor = new ctor(props, context);\n workInProgress.memoizedState =\n null !== ctor.state && void 0 !== ctor.state ? ctor.state : null;\n ctor.updater = classComponentUpdater;\n workInProgress.stateNode = ctor;\n ctor._reactInternals = workInProgress;\n isLegacyContextConsumer &&\n ((workInProgress = workInProgress.stateNode),\n (workInProgress.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext),\n (workInProgress.__reactInternalMemoizedMaskedChildContext = context));\n return ctor;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction mountClassInstance(workInProgress, ctor, newProps, renderLanes) {\n var instance = workInProgress.stateNode;\n instance.props = newProps;\n instance.state = workInProgress.memoizedState;\n instance.refs = emptyRefsObject;\n initializeUpdateQueue(workInProgress);\n var contextType = ctor.contextType;\n \"object\" === typeof contextType && null !== contextType\n ? (instance.context = readContext(contextType))\n : ((contextType = isContextProvider(ctor)\n ? previousContext\n : contextStackCursor.current),\n (instance.context = getMaskedContext(workInProgress, contextType)));\n instance.state = workInProgress.memoizedState;\n contextType = ctor.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(workInProgress, ctor, contextType, newProps),\n (instance.state = workInProgress.memoizedState));\n \"function\" === typeof ctor.getDerivedStateFromProps ||\n \"function\" === typeof instance.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof instance.UNSAFE_componentWillMount &&\n \"function\" !== typeof instance.componentWillMount) ||\n ((ctor = instance.state),\n \"function\" === typeof instance.componentWillMount &&\n instance.componentWillMount(),\n \"function\" === typeof instance.UNSAFE_componentWillMount &&\n instance.UNSAFE_componentWillMount(),\n ctor !== instance.state &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null),\n processUpdateQueue(workInProgress, newProps, instance, renderLanes),\n (instance.state = workInProgress.memoizedState));\n \"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4);\n}\nfunction coerceRef(returnFiber, current, element) {\n returnFiber = element.ref;\n if (\n null !== returnFiber &&\n \"function\" !== typeof returnFiber &&\n \"object\" !== typeof returnFiber\n ) {\n if (element._owner) {\n element = element._owner;\n if (element) {\n if (1 !== element.tag)\n throw Error(\n \"Function components cannot have string refs. We recommend using useRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref\"\n );\n var inst = element.stateNode;\n }\n if (!inst)\n throw Error(\n \"Missing owner for string ref \" +\n returnFiber +\n \". This error is likely caused by a bug in React. Please file an issue.\"\n );\n var resolvedInst = inst,\n stringRef = \"\" + returnFiber;\n if (\n null !== current &&\n null !== current.ref &&\n \"function\" === typeof current.ref &&\n current.ref._stringRef === stringRef\n )\n return current.ref;\n current = function(value) {\n var refs = resolvedInst.refs;\n refs === emptyRefsObject && (refs = resolvedInst.refs = {});\n null === value ? delete refs[stringRef] : (refs[stringRef] = value);\n };\n current._stringRef = stringRef;\n return current;\n }\n if (\"string\" !== typeof returnFiber)\n throw Error(\n \"Expected ref to be a function, a string, an object returned by React.createRef(), or null.\"\n );\n if (!element._owner)\n throw Error(\n \"Element ref was specified as a string (\" +\n returnFiber +\n \") but no owner was set. This could happen for one of the following reasons:\\n1. You may be adding a ref to a function component\\n2. You may be adding a ref to a component that was not created inside a component's render method\\n3. You have multiple copies of React loaded\\nSee https://reactjs.org/link/refs-must-have-owner for more information.\"\n );\n }\n return returnFiber;\n}\nfunction throwOnInvalidObjectType(returnFiber, newChild) {\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n}\nfunction resolveLazy(lazyType) {\n var init = lazyType._init;\n return init(lazyType._payload);\n}\nfunction ChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(returnFiber, currentFirstChild) {\n for (returnFiber = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? returnFiber.set(currentFirstChild.key, currentFirstChild)\n : returnFiber.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return returnFiber;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 2), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 2;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 2);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (lanes = useFiber(current, element.props)),\n (lanes.ref = coerceRef(returnFiber, current, element)),\n (lanes.return = returnFiber),\n lanes\n );\n lanes = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n lanes.ref = coerceRef(returnFiber, current, element);\n lanes.return = returnFiber;\n return lanes;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n (lanes.ref = coerceRef(returnFiber, null, newChild)),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n return createChild(returnFiber, init(newChild._payload), lanes);\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (key = newChild._init),\n updateSlot(returnFiber, oldFiber, key(newChild._payload), lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n init(newChild._payload),\n lanes\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber), resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(returnFiber, oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function(child) {\n return deleteChild(returnFiber, child);\n });\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildrenIterable,\n lanes\n ) {\n var iteratorFn = getIteratorFn(newChildrenIterable);\n if (\"function\" !== typeof iteratorFn)\n throw Error(\n \"An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.\"\n );\n newChildrenIterable = iteratorFn.call(newChildrenIterable);\n if (null == newChildrenIterable)\n throw Error(\"An iterable object provided no iterator.\");\n for (\n var previousNewFiber = (iteratorFn = null),\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildrenIterable.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildrenIterable.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (iteratorFn = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return deleteRemainingChildren(returnFiber, oldFiber), iteratorFn;\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildrenIterable.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (iteratorFn = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n return iteratorFn;\n }\n for (\n oldFiber = mapRemainingChildren(returnFiber, oldFiber);\n !step.done;\n newIdx++, step = newChildrenIterable.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (iteratorFn = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function(child) {\n return deleteChild(returnFiber, child);\n });\n return iteratorFn;\n }\n function reconcileChildFibers(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (\n var key = newChild.key, child = currentFirstChild;\n null !== child;\n\n ) {\n if (child.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === child.tag) {\n deleteRemainingChildren(returnFiber, child.sibling);\n currentFirstChild = useFiber(\n child,\n newChild.props.children\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n break a;\n }\n } else if (\n child.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === child.type)\n ) {\n deleteRemainingChildren(returnFiber, child.sibling);\n currentFirstChild = useFiber(child, newChild.props);\n currentFirstChild.ref = coerceRef(\n returnFiber,\n child,\n newChild\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n break a;\n }\n deleteRemainingChildren(returnFiber, child);\n break;\n } else deleteChild(returnFiber, child);\n child = child.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((currentFirstChild = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (currentFirstChild.return = returnFiber),\n (returnFiber = currentFirstChild))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n (lanes.ref = coerceRef(\n returnFiber,\n currentFirstChild,\n newChild\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (child = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === child)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n currentFirstChild = useFiber(\n currentFirstChild,\n newChild.children || []\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n currentFirstChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (child = newChild._init),\n reconcileChildFibers(\n returnFiber,\n currentFirstChild,\n child(newChild._payload),\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild))\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (currentFirstChild = useFiber(currentFirstChild, newChild)),\n (currentFirstChild.return = returnFiber),\n (returnFiber = currentFirstChild))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (currentFirstChild = createFiberFromText(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (currentFirstChild.return = returnFiber),\n (returnFiber = currentFirstChild)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return reconcileChildFibers;\n}\nvar reconcileChildFibers = ChildReconciler(!0),\n mountChildFibers = ChildReconciler(!1),\n NO_CONTEXT = {},\n contextStackCursor$1 = createCursor(NO_CONTEXT),\n contextFiberStackCursor = createCursor(NO_CONTEXT),\n rootInstanceStackCursor = createCursor(NO_CONTEXT);\nfunction requiredContext(c) {\n if (c === NO_CONTEXT)\n throw Error(\n \"Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.\"\n );\n return c;\n}\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor$1, NO_CONTEXT);\n pop(contextStackCursor$1);\n push(contextStackCursor$1, { isInAParentText: !1 });\n}\nfunction popHostContainer() {\n pop(contextStackCursor$1);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n requiredContext(rootInstanceStackCursor.current);\n var context = requiredContext(contextStackCursor$1.current);\n var JSCompiler_inline_result = fiber.type;\n JSCompiler_inline_result =\n \"AndroidTextInput\" === JSCompiler_inline_result ||\n \"RCTMultilineTextInputView\" === JSCompiler_inline_result ||\n \"RCTSinglelineTextInputView\" === JSCompiler_inline_result ||\n \"RCTText\" === JSCompiler_inline_result ||\n \"RCTVirtualText\" === JSCompiler_inline_result;\n JSCompiler_inline_result =\n context.isInAParentText !== JSCompiler_inline_result\n ? { isInAParentText: JSCompiler_inline_result }\n : context;\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor$1, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor$1), pop(contextFiberStackCursor));\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (null !== state && (null === state.dehydrated || shim$1() || shim$1()))\n return node;\n } else if (19 === node.tag && void 0 !== node.memoizedProps.revealOrder) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar workInProgressSources = [];\nfunction resetWorkInProgressVersions() {\n for (var i = 0; i < workInProgressSources.length; i++)\n workInProgressSources[i]._workInProgressVersionSecondary = null;\n workInProgressSources.length = 0;\n}\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher,\n ReactCurrentBatchConfig$1 = ReactSharedInternals.ReactCurrentBatchConfig,\n renderLanes = 0,\n currentlyRenderingFiber$1 = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber$1 = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactCurrentDispatcher$1.current =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n current = Component(props, secondArg);\n if (didScheduleRenderPhaseUpdateDuringThisPass) {\n nextRenderLanes = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= nextRenderLanes)\n throw Error(\n \"Too many re-renders. React limits the number of renders to prevent an infinite loop.\"\n );\n nextRenderLanes += 1;\n workInProgressHook = currentHook = null;\n workInProgress.updateQueue = null;\n ReactCurrentDispatcher$1.current = HooksDispatcherOnRerender;\n current = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n }\n ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n workInProgress = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber$1 = null;\n didScheduleRenderPhaseUpdate = !1;\n if (workInProgress)\n throw Error(\n \"Rendered fewer hooks than expected. This may be caused by an accidental early return statement.\"\n );\n return current;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber$1.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber$1.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber$1.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook)\n throw Error(\"Rendered more hooks than during the previous render.\");\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber$1.memoizedState = workInProgressHook = nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue)\n throw Error(\n \"Should have a queue. This is likely a bug in React. Please file an issue.\"\n );\n queue.lastRenderedReducer = reducer;\n var current = currentHook,\n baseQueue = current.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n if (null !== baseQueue) {\n pendingQueue = baseQueue.next;\n current = current.baseState;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = pendingQueue;\n do {\n var updateLane = update.lane;\n if ((renderLanes & updateLane) === updateLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next = {\n lane: 0,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n (current = update.hasEagerState\n ? update.eagerState\n : reducer(current, update.action));\n else {\n var clone = {\n lane: updateLane,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n };\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = clone),\n (baseFirst = current))\n : (newBaseQueueLast = newBaseQueueLast.next = clone);\n currentlyRenderingFiber$1.lanes |= updateLane;\n workInProgressRootSkippedLanes |= updateLane;\n }\n update = update.next;\n } while (null !== update && update !== pendingQueue);\n null === newBaseQueueLast\n ? (baseFirst = current)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n objectIs(current, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = current;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = current;\n }\n reducer = queue.interleaved;\n if (null !== reducer) {\n baseQueue = reducer;\n do\n (pendingQueue = baseQueue.lane),\n (currentlyRenderingFiber$1.lanes |= pendingQueue),\n (workInProgressRootSkippedLanes |= pendingQueue),\n (baseQueue = baseQueue.next);\n while (baseQueue !== reducer);\n } else null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue)\n throw Error(\n \"Should have a queue. This is likely a bug in React. Please file an issue.\"\n );\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateMutableSource() {}\nfunction updateSyncExternalStore(subscribe, getSnapshot) {\n var fiber = currentlyRenderingFiber$1,\n hook = updateWorkInProgressHook(),\n nextSnapshot = getSnapshot(),\n snapshotChanged = !objectIs(hook.memoizedState, nextSnapshot);\n snapshotChanged &&\n ((hook.memoizedState = nextSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushEffect(\n 9,\n updateStoreInstance.bind(null, fiber, hook, nextSnapshot, getSnapshot),\n void 0,\n null\n );\n if (null === workInProgressRoot)\n throw Error(\n \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\"\n );\n 0 !== (renderLanes & 30) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot);\n }\n return nextSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber$1.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = { lastEffect: null, stores: null }),\n (currentlyRenderingFiber$1.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function() {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = markUpdateLaneFromFiberToRoot(fiber, 1);\n null !== root && scheduleUpdateOnFiber(root, fiber, 1, -1);\n}\nfunction mountState(initialState) {\n var hook = mountWorkInProgressHook();\n \"function\" === typeof initialState && (initialState = initialState());\n hook.memoizedState = hook.baseState = initialState;\n initialState = {\n pending: null,\n interleaved: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n hook.queue = initialState;\n initialState = initialState.dispatch = dispatchSetState.bind(\n null,\n currentlyRenderingFiber$1,\n initialState\n );\n return [hook.memoizedState, initialState];\n}\nfunction pushEffect(tag, create, destroy, deps) {\n tag = { tag: tag, create: create, destroy: destroy, deps: deps, next: null };\n create = currentlyRenderingFiber$1.updateQueue;\n null === create\n ? ((create = { lastEffect: null, stores: null }),\n (currentlyRenderingFiber$1.updateQueue = create),\n (create.lastEffect = tag.next = tag))\n : ((destroy = create.lastEffect),\n null === destroy\n ? (create.lastEffect = tag.next = tag)\n : ((deps = destroy.next),\n (destroy.next = tag),\n (tag.next = deps),\n (create.lastEffect = tag)));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(\n 1 | hookFlags,\n create,\n void 0,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var destroy = void 0;\n if (null !== currentHook) {\n var prevEffect = currentHook.memoizedState;\n destroy = prevEffect.destroy;\n if (null !== deps && areHookInputsEqual(deps, prevEffect.deps)) {\n hook.memoizedState = pushEffect(hookFlags, create, destroy, deps);\n return;\n }\n }\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(1 | hookFlags, create, destroy, deps);\n}\nfunction mountEffect(create, deps) {\n return mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n return updateEffectImpl(2048, 8, create, deps);\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref)\n return (\n (create = create()),\n ref(create),\n function() {\n ref(null);\n }\n );\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function() {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n return updateEffectImpl(\n 4,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (\n null !== prevState &&\n null !== deps &&\n areHookInputsEqual(deps, prevState[1])\n )\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (\n null !== prevState &&\n null !== deps &&\n areHookInputsEqual(deps, prevState[1])\n )\n return prevState[0];\n nextCreate = nextCreate();\n hook.memoizedState = [nextCreate, deps];\n return nextCreate;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value) {\n if (0 === (renderLanes & 21))\n return (\n hook.baseState && ((hook.baseState = !1), (didReceiveUpdate = !0)),\n (hook.memoizedState = value)\n );\n objectIs(value, prevValue) ||\n ((value = claimNextTransitionLane()),\n (currentlyRenderingFiber$1.lanes |= value),\n (workInProgressRootSkippedLanes |= value),\n (hook.baseState = !0));\n return prevValue;\n}\nfunction startTransition(setPending, callback) {\n var previousPriority = currentUpdatePriority;\n currentUpdatePriority =\n 0 !== previousPriority && 4 > previousPriority ? previousPriority : 4;\n setPending(!0);\n var prevTransition = ReactCurrentBatchConfig$1.transition;\n ReactCurrentBatchConfig$1.transition = {};\n try {\n setPending(!1), callback();\n } finally {\n (currentUpdatePriority = previousPriority),\n (ReactCurrentBatchConfig$1.transition = prevTransition);\n }\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane(fiber);\n action = {\n lane: lane,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, action);\n else if (\n ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action)\n ) {\n var eventTime = requestEventTime();\n scheduleUpdateOnFiber(action, fiber, lane, eventTime);\n entangleTransitionUpdate(action, queue, lane);\n }\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane(fiber),\n update = {\n lane: lane,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState)) {\n var interleaved = queue.interleaved;\n null === interleaved\n ? ((update.next = update), pushConcurrentUpdateQueue(queue))\n : ((update.next = interleaved.next), (interleaved.next = update));\n queue.interleaved = update;\n return;\n }\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n null !== action &&\n ((update = requestEventTime()),\n scheduleUpdateOnFiber(action, fiber, lane, update),\n entangleTransitionUpdate(action, queue, lane));\n }\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber$1 ||\n (null !== alternate && alternate === currentlyRenderingFiber$1)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate = !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194240)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useMutableSource: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n unstable_isNewReconciler: !1\n },\n HooksDispatcherOnMount = {\n readContext: readContext,\n useCallback: function(callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n return mountEffectImpl(\n 4,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function(create, deps) {\n return mountEffectImpl(4, 4, create, deps);\n },\n useInsertionEffect: function(create, deps) {\n return mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function(nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n nextCreate = nextCreate();\n hook.memoizedState = [nextCreate, deps];\n return nextCreate;\n },\n useReducer: function(reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n initialArg = void 0 !== init ? init(initialArg) : initialArg;\n hook.memoizedState = hook.baseState = initialArg;\n reducer = {\n pending: null,\n interleaved: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialArg\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber$1,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function(initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: mountState,\n useDebugValue: mountDebugValue,\n useDeferredValue: function(value) {\n return (mountWorkInProgressHook().memoizedState = value);\n },\n useTransition: function() {\n var _mountState = mountState(!1),\n isPending = _mountState[0];\n _mountState = startTransition.bind(null, _mountState[1]);\n mountWorkInProgressHook().memoizedState = _mountState;\n return [isPending, _mountState];\n },\n useMutableSource: function() {},\n useSyncExternalStore: function(subscribe, getSnapshot) {\n var fiber = currentlyRenderingFiber$1,\n hook = mountWorkInProgressHook();\n var nextSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(\n \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\"\n );\n 0 !== (renderLanes & 30) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot);\n hook.memoizedState = nextSnapshot;\n var inst = { value: nextSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushEffect(\n 9,\n updateStoreInstance.bind(null, fiber, inst, nextSnapshot, getSnapshot),\n void 0,\n null\n );\n return nextSnapshot;\n },\n useId: function() {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix,\n globalClientId = globalClientIdCounter++;\n identifierPrefix =\n \":\" + identifierPrefix + \"r\" + globalClientId.toString(32) + \":\";\n return (hook.memoizedState = identifierPrefix);\n },\n unstable_isNewReconciler: !1\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function() {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function(value) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(hook, currentHook.memoizedState, value);\n },\n useTransition: function() {\n var isPending = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [isPending, start];\n },\n useMutableSource: updateMutableSource,\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n unstable_isNewReconciler: !1\n },\n HooksDispatcherOnRerender = {\n readContext: readContext,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function() {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function(value) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? (hook.memoizedState = value)\n : updateDeferredValueImpl(hook, currentHook.memoizedState, value);\n },\n useTransition: function() {\n var isPending = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [isPending, start];\n },\n useMutableSource: updateMutableSource,\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n unstable_isNewReconciler: !1\n };\nfunction createCapturedValueAtFiber(value, source) {\n try {\n var info = \"\",\n node = source;\n do (info += describeFiber(node)), (node = node.return);\n while (node);\n var JSCompiler_inline_result = info;\n } catch (x) {\n JSCompiler_inline_result =\n \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n return {\n value: value,\n source: source,\n stack: JSCompiler_inline_result,\n digest: null\n };\n}\nfunction createCapturedValue(value, digest, stack) {\n return {\n value: value,\n source: null,\n stack: null != stack ? stack : null,\n digest: null != digest ? digest : null\n };\n}\nif (\n \"function\" !==\n typeof ReactNativePrivateInterface.ReactFiberErrorDialog.showErrorDialog\n)\n throw Error(\n \"Expected ReactFiberErrorDialog.showErrorDialog to be a function.\"\n );\nfunction logCapturedError(boundary, errorInfo) {\n try {\n !1 !==\n ReactNativePrivateInterface.ReactFiberErrorDialog.showErrorDialog({\n componentStack: null !== errorInfo.stack ? errorInfo.stack : \"\",\n error: errorInfo.value,\n errorBoundary:\n null !== boundary && 1 === boundary.tag ? boundary.stateNode : null\n }) && console.error(errorInfo.value);\n } catch (e) {\n setTimeout(function() {\n throw e;\n });\n }\n}\nvar PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map;\nfunction createRootErrorUpdate(fiber, errorInfo, lane) {\n lane = createUpdate(-1, lane);\n lane.tag = 3;\n lane.payload = { element: null };\n var error = errorInfo.value;\n lane.callback = function() {\n hasUncaughtError || ((hasUncaughtError = !0), (firstUncaughtError = error));\n logCapturedError(fiber, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(fiber, errorInfo, lane) {\n lane = createUpdate(-1, lane);\n lane.tag = 3;\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n lane.payload = function() {\n return getDerivedStateFromError(error);\n };\n lane.callback = function() {\n logCapturedError(fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (lane.callback = function() {\n logCapturedError(fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n return lane;\n}\nfunction attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n if (null === pingCache) {\n pingCache = root.pingCache = new PossiblyWeakMap();\n var threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else\n (threadIDs = pingCache.get(wakeable)),\n void 0 === threadIDs &&\n ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n threadIDs.has(lanes) ||\n (threadIDs.add(lanes),\n (root = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n wakeable.then(root, root));\n}\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner,\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n prepareToReadContext(workInProgress, renderLanes);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n ref,\n renderLanes\n );\n if (null !== current && !didReceiveUpdate)\n return (\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.flags &= -2053),\n (current.lanes &= ~renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare &&\n void 0 === Component.defaultProps\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (0 === (current.lanes & renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n 0 !== (current.lanes & renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n if (\"hidden\" === nextProps.mode)\n if (0 === (workInProgress.mode & 1))\n (workInProgress.memoizedState = {\n baseLanes: 0,\n cachePool: null,\n transitions: null\n }),\n push(subtreeRenderLanesCursor, subtreeRenderLanes),\n (subtreeRenderLanes |= renderLanes);\n else {\n if (0 === (renderLanes & 1073741824))\n return (\n (current =\n null !== prevState\n ? prevState.baseLanes | renderLanes\n : renderLanes),\n (workInProgress.lanes = workInProgress.childLanes = 1073741824),\n (workInProgress.memoizedState = {\n baseLanes: current,\n cachePool: null,\n transitions: null\n }),\n (workInProgress.updateQueue = null),\n push(subtreeRenderLanesCursor, subtreeRenderLanes),\n (subtreeRenderLanes |= current),\n null\n );\n workInProgress.memoizedState = {\n baseLanes: 0,\n cachePool: null,\n transitions: null\n };\n nextProps = null !== prevState ? prevState.baseLanes : renderLanes;\n push(subtreeRenderLanesCursor, subtreeRenderLanes);\n subtreeRenderLanes |= nextProps;\n }\n else\n null !== prevState\n ? ((nextProps = prevState.baseLanes | renderLanes),\n (workInProgress.memoizedState = null))\n : (nextProps = renderLanes),\n push(subtreeRenderLanesCursor, subtreeRenderLanes),\n (subtreeRenderLanes |= nextProps);\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (\n (null === current && null !== ref) ||\n (null !== current && current.ref !== ref)\n )\n workInProgress.flags |= 512;\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n var context = isContextProvider(Component)\n ? previousContext\n : contextStackCursor.current;\n context = getMaskedContext(workInProgress, context);\n prepareToReadContext(workInProgress, renderLanes);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n context,\n renderLanes\n );\n if (null !== current && !didReceiveUpdate)\n return (\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.flags &= -2053),\n (current.lanes &= ~renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (isContextProvider(Component)) {\n var hasContext = !0;\n pushContextProvider(workInProgress);\n } else hasContext = !1;\n prepareToReadContext(workInProgress, renderLanes);\n if (null === workInProgress.stateNode)\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress),\n constructClassInstance(workInProgress, Component, nextProps),\n mountClassInstance(workInProgress, Component, nextProps, renderLanes),\n (nextProps = !0);\n else if (null === current) {\n var instance = workInProgress.stateNode,\n oldProps = workInProgress.memoizedProps;\n instance.props = oldProps;\n var oldContext = instance.context,\n contextType = Component.contextType;\n \"object\" === typeof contextType && null !== contextType\n ? (contextType = readContext(contextType))\n : ((contextType = isContextProvider(Component)\n ? previousContext\n : contextStackCursor.current),\n (contextType = getMaskedContext(workInProgress, contextType)));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps,\n hasNewLifecycles =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof instance.getSnapshotBeforeUpdate;\n hasNewLifecycles ||\n (\"function\" !== typeof instance.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof instance.componentWillReceiveProps) ||\n ((oldProps !== nextProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n instance,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n instance.state = oldState;\n processUpdateQueue(workInProgress, nextProps, instance, renderLanes);\n oldContext = workInProgress.memoizedState;\n oldProps !== nextProps ||\n oldState !== oldContext ||\n didPerformWorkStackCursor.current ||\n hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (hasNewLifecycles ||\n (\"function\" !== typeof instance.UNSAFE_componentWillMount &&\n \"function\" !== typeof instance.componentWillMount) ||\n (\"function\" === typeof instance.componentWillMount &&\n instance.componentWillMount(),\n \"function\" === typeof instance.UNSAFE_componentWillMount &&\n instance.UNSAFE_componentWillMount()),\n \"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4))\n : (\"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (instance.props = nextProps),\n (instance.state = oldContext),\n (instance.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4),\n (nextProps = !1));\n } else {\n instance = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n oldProps = workInProgress.memoizedProps;\n contextType =\n workInProgress.type === workInProgress.elementType\n ? oldProps\n : resolveDefaultProps(workInProgress.type, oldProps);\n instance.props = contextType;\n hasNewLifecycles = workInProgress.pendingProps;\n oldState = instance.context;\n oldContext = Component.contextType;\n \"object\" === typeof oldContext && null !== oldContext\n ? (oldContext = readContext(oldContext))\n : ((oldContext = isContextProvider(Component)\n ? previousContext\n : contextStackCursor.current),\n (oldContext = getMaskedContext(workInProgress, oldContext)));\n var getDerivedStateFromProps$jscomp$0 = Component.getDerivedStateFromProps;\n (getDerivedStateFromProps =\n \"function\" === typeof getDerivedStateFromProps$jscomp$0 ||\n \"function\" === typeof instance.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof instance.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof instance.componentWillReceiveProps) ||\n ((oldProps !== hasNewLifecycles || oldState !== oldContext) &&\n callComponentWillReceiveProps(\n workInProgress,\n instance,\n nextProps,\n oldContext\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n instance.state = oldState;\n processUpdateQueue(workInProgress, nextProps, instance, renderLanes);\n var newState = workInProgress.memoizedState;\n oldProps !== hasNewLifecycles ||\n oldState !== newState ||\n didPerformWorkStackCursor.current ||\n hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps$jscomp$0 &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps$jscomp$0,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType,\n nextProps,\n oldState,\n newState,\n oldContext\n ) ||\n !1)\n ? (getDerivedStateFromProps ||\n (\"function\" !== typeof instance.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof instance.componentWillUpdate) ||\n (\"function\" === typeof instance.componentWillUpdate &&\n instance.componentWillUpdate(nextProps, newState, oldContext),\n \"function\" === typeof instance.UNSAFE_componentWillUpdate &&\n instance.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldContext\n )),\n \"function\" === typeof instance.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof instance.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof instance.componentDidUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof instance.getSnapshotBeforeUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (instance.props = nextProps),\n (instance.state = newState),\n (instance.context = oldContext),\n (nextProps = contextType))\n : (\"function\" !== typeof instance.componentDidUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof instance.getSnapshotBeforeUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n return finishClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n hasContext,\n renderLanes\n );\n}\nfunction finishClassComponent(\n current,\n workInProgress,\n Component,\n shouldUpdate,\n hasContext,\n renderLanes\n) {\n markRef(current, workInProgress);\n var didCaptureError = 0 !== (workInProgress.flags & 128);\n if (!shouldUpdate && !didCaptureError)\n return (\n hasContext && invalidateContextProvider(workInProgress, Component, !1),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n shouldUpdate = workInProgress.stateNode;\n ReactCurrentOwner$1.current = workInProgress;\n var nextChildren =\n didCaptureError && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : shouldUpdate.render();\n workInProgress.flags |= 1;\n null !== current && didCaptureError\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n nextChildren,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n workInProgress.memoizedState = shouldUpdate.state;\n hasContext && invalidateContextProvider(workInProgress, Component, !0);\n return workInProgress.child;\n}\nfunction pushHostRootContext(workInProgress) {\n var root = workInProgress.stateNode;\n root.pendingContext\n ? pushTopLevelContextObject(\n workInProgress,\n root.pendingContext,\n root.pendingContext !== root.context\n )\n : root.context &&\n pushTopLevelContextObject(workInProgress, root.context, !1);\n pushHostContainer(workInProgress, root.containerInfo);\n}\nvar SUSPENDED_MARKER = { dehydrated: null, treeContext: null, retryLane: 0 };\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: null, transitions: null };\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n suspenseContext = suspenseStackCursor.current,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseContext & 2));\n if (JSCompiler_temp) (showFallback = !0), (workInProgress.flags &= -129);\n else if (null === current || null !== current.memoizedState)\n suspenseContext |= 1;\n push(suspenseStackCursor, suspenseContext & 1);\n if (null === current) {\n current = workInProgress.memoizedState;\n if (null !== current && null !== current.dehydrated)\n return (\n 0 === (workInProgress.mode & 1)\n ? (workInProgress.lanes = 1)\n : shim$1()\n ? (workInProgress.lanes = 8)\n : (workInProgress.lanes = 1073741824),\n null\n );\n didSuspend = nextProps.children;\n current = nextProps.fallback;\n return showFallback\n ? ((nextProps = workInProgress.mode),\n (showFallback = workInProgress.child),\n (didSuspend = { mode: \"hidden\", children: didSuspend }),\n 0 === (nextProps & 1) && null !== showFallback\n ? ((showFallback.childLanes = 0),\n (showFallback.pendingProps = didSuspend))\n : (showFallback = createFiberFromOffscreen(\n didSuspend,\n nextProps,\n 0,\n null\n )),\n (current = createFiberFromFragment(\n current,\n nextProps,\n renderLanes,\n null\n )),\n (showFallback.return = workInProgress),\n (current.return = workInProgress),\n (showFallback.sibling = current),\n (workInProgress.child = showFallback),\n (workInProgress.child.memoizedState = mountSuspenseOffscreenState(\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n current)\n : mountSuspensePrimaryChildren(workInProgress, didSuspend);\n }\n suspenseContext = current.memoizedState;\n if (\n null !== suspenseContext &&\n ((JSCompiler_temp = suspenseContext.dehydrated), null !== JSCompiler_temp)\n )\n return updateDehydratedSuspenseComponent(\n current,\n workInProgress,\n didSuspend,\n nextProps,\n JSCompiler_temp,\n suspenseContext,\n renderLanes\n );\n if (showFallback) {\n showFallback = nextProps.fallback;\n didSuspend = workInProgress.mode;\n suspenseContext = current.child;\n JSCompiler_temp = suspenseContext.sibling;\n var primaryChildProps = { mode: \"hidden\", children: nextProps.children };\n 0 === (didSuspend & 1) && workInProgress.child !== suspenseContext\n ? ((nextProps = workInProgress.child),\n (nextProps.childLanes = 0),\n (nextProps.pendingProps = primaryChildProps),\n (workInProgress.deletions = null))\n : ((nextProps = createWorkInProgress(suspenseContext, primaryChildProps)),\n (nextProps.subtreeFlags = suspenseContext.subtreeFlags & 14680064));\n null !== JSCompiler_temp\n ? (showFallback = createWorkInProgress(JSCompiler_temp, showFallback))\n : ((showFallback = createFiberFromFragment(\n showFallback,\n didSuspend,\n renderLanes,\n null\n )),\n (showFallback.flags |= 2));\n showFallback.return = workInProgress;\n nextProps.return = workInProgress;\n nextProps.sibling = showFallback;\n workInProgress.child = nextProps;\n nextProps = showFallback;\n showFallback = workInProgress.child;\n didSuspend = current.child.memoizedState;\n didSuspend =\n null === didSuspend\n ? mountSuspenseOffscreenState(renderLanes)\n : {\n baseLanes: didSuspend.baseLanes | renderLanes,\n cachePool: null,\n transitions: didSuspend.transitions\n };\n showFallback.memoizedState = didSuspend;\n showFallback.childLanes = current.childLanes & ~renderLanes;\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return nextProps;\n }\n showFallback = current.child;\n current = showFallback.sibling;\n nextProps = createWorkInProgress(showFallback, {\n mode: \"visible\",\n children: nextProps.children\n });\n 0 === (workInProgress.mode & 1) && (nextProps.lanes = renderLanes);\n nextProps.return = workInProgress;\n nextProps.sibling = null;\n null !== current &&\n ((renderLanes = workInProgress.deletions),\n null === renderLanes\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : renderLanes.push(current));\n workInProgress.child = nextProps;\n workInProgress.memoizedState = null;\n return nextProps;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = createFiberFromOffscreen(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode,\n 0,\n null\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n recoverableError\n) {\n null !== recoverableError &&\n (null === hydrationErrors\n ? (hydrationErrors = [recoverableError])\n : hydrationErrors.push(recoverableError));\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction updateDehydratedSuspenseComponent(\n current,\n workInProgress,\n didSuspend,\n nextProps,\n suspenseInstance,\n suspenseState,\n renderLanes\n) {\n if (didSuspend) {\n if (workInProgress.flags & 256)\n return (\n (workInProgress.flags &= -257),\n (suspenseState = createCapturedValue(\n Error(\n \"There was an error while hydrating this Suspense boundary. Switched to client rendering.\"\n )\n )),\n retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n suspenseState\n )\n );\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n null\n );\n suspenseState = nextProps.fallback;\n didSuspend = workInProgress.mode;\n nextProps = createFiberFromOffscreen(\n { mode: \"visible\", children: nextProps.children },\n didSuspend,\n 0,\n null\n );\n suspenseState = createFiberFromFragment(\n suspenseState,\n didSuspend,\n renderLanes,\n null\n );\n suspenseState.flags |= 2;\n nextProps.return = workInProgress;\n suspenseState.return = workInProgress;\n nextProps.sibling = suspenseState;\n workInProgress.child = nextProps;\n 0 !== (workInProgress.mode & 1) &&\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n workInProgress.child.memoizedState = mountSuspenseOffscreenState(\n renderLanes\n );\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return suspenseState;\n }\n if (0 === (workInProgress.mode & 1))\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n null\n );\n if (shim$1())\n return (\n (suspenseState = shim$1().digest),\n (suspenseState = createCapturedValue(\n Error(\n \"The server could not finish this Suspense boundary, likely due to an error during server rendering. Switched to client rendering.\"\n ),\n suspenseState,\n void 0\n )),\n retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n suspenseState\n )\n );\n didSuspend = 0 !== (renderLanes & current.childLanes);\n if (didReceiveUpdate || didSuspend) {\n nextProps = workInProgressRoot;\n if (null !== nextProps) {\n switch (renderLanes & -renderLanes) {\n case 4:\n didSuspend = 2;\n break;\n case 16:\n didSuspend = 8;\n break;\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n didSuspend = 32;\n break;\n case 536870912:\n didSuspend = 268435456;\n break;\n default:\n didSuspend = 0;\n }\n didSuspend =\n 0 !== (didSuspend & (nextProps.suspendedLanes | renderLanes))\n ? 0\n : didSuspend;\n 0 !== didSuspend &&\n didSuspend !== suspenseState.retryLane &&\n ((suspenseState.retryLane = didSuspend),\n markUpdateLaneFromFiberToRoot(current, didSuspend),\n scheduleUpdateOnFiber(nextProps, current, didSuspend, -1));\n }\n renderDidSuspendDelayIfPossible();\n suspenseState = createCapturedValue(\n Error(\n \"This Suspense boundary received an update before it finished hydrating. This caused the boundary to switch to client rendering. The usual way to fix this is to wrap the original update in startTransition.\"\n )\n );\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n suspenseState\n );\n }\n if (shim$1())\n return (\n (workInProgress.flags |= 128),\n (workInProgress.child = current.child),\n retryDehydratedSuspenseBoundary.bind(null, current),\n shim$1(),\n null\n );\n current = mountSuspensePrimaryChildren(workInProgress, nextProps.children);\n current.flags |= 4096;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n reconcileChildren(current, workInProgress, nextProps.children, renderLanes);\n nextProps = suspenseStackCursor.current;\n if (0 !== (nextProps & 2))\n (nextProps = (nextProps & 1) | 2), (workInProgress.flags |= 128);\n else {\n if (null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n nextProps &= 1;\n }\n push(suspenseStackCursor, nextProps);\n if (0 === (workInProgress.mode & 1)) workInProgress.memoizedState = null;\n else\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child),\n (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode\n );\n break;\n case \"backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode\n );\n break;\n case \"together\":\n initSuspenseListRenderState(workInProgress, !1, null, null, void 0);\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress) {\n 0 === (workInProgress.mode & 1) &&\n null !== current &&\n ((current.alternate = null),\n (workInProgress.alternate = null),\n (workInProgress.flags |= 2));\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes)) return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(\"Resuming work not yet implemented.\");\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling = createWorkInProgress(\n current,\n current.pendingProps\n )),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostRootContext(workInProgress);\n break;\n case 5:\n pushHostContext(workInProgress);\n break;\n case 1:\n isContextProvider(workInProgress.type) &&\n pushContextProvider(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n var context = workInProgress.type._context,\n nextValue = workInProgress.memoizedProps.value;\n push(valueCursor, context._currentValue2);\n context._currentValue2 = nextValue;\n break;\n case 13:\n context = workInProgress.memoizedState;\n if (null !== context) {\n if (null !== context.dehydrated)\n return (\n push(suspenseStackCursor, suspenseStackCursor.current & 1),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n break;\n case 19:\n context = 0 !== (renderLanes & workInProgress.childLanes);\n if (0 !== (current.flags & 128)) {\n if (context)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n nextValue = workInProgress.memoizedState;\n null !== nextValue &&\n ((nextValue.rendering = null),\n (nextValue.tail = null),\n (nextValue.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (context) break;\n else return null;\n case 22:\n case 23:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(current, workInProgress, renderLanes)\n );\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction hadNoMutationsEffects(current, completedWork) {\n if (null !== current && current.child === completedWork.child) return !0;\n if (0 !== (completedWork.flags & 16)) return !1;\n for (current = completedWork.child; null !== current; ) {\n if (0 !== (current.flags & 12854) || 0 !== (current.subtreeFlags & 12854))\n return !1;\n current = current.sibling;\n }\n return !0;\n}\nvar appendAllChildren,\n updateHostContainer,\n updateHostComponent$1,\n updateHostText$1;\nappendAllChildren = function(\n parent,\n workInProgress,\n needsVisibilityToggle,\n isHidden\n) {\n for (var node = workInProgress.child; null !== node; ) {\n if (5 === node.tag) {\n var instance = node.stateNode;\n needsVisibilityToggle &&\n isHidden &&\n (instance = cloneHiddenInstance(instance));\n appendChildNode(parent.node, instance.node);\n } else if (6 === node.tag) {\n instance = node.stateNode;\n if (needsVisibilityToggle && isHidden)\n throw Error(\"Not yet implemented.\");\n appendChildNode(parent.node, instance.node);\n } else if (4 !== node.tag)\n if (22 === node.tag && null !== node.memoizedState)\n (instance = node.child),\n null !== instance && (instance.return = node),\n appendAllChildren(parent, node, !0, !0);\n else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === workInProgress) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === workInProgress) return;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n};\nfunction appendAllChildrenToContainer(\n containerChildSet,\n workInProgress,\n needsVisibilityToggle,\n isHidden\n) {\n for (var node = workInProgress.child; null !== node; ) {\n if (5 === node.tag) {\n var instance = node.stateNode;\n needsVisibilityToggle &&\n isHidden &&\n (instance = cloneHiddenInstance(instance));\n appendChildNodeToSet(containerChildSet, instance.node);\n } else if (6 === node.tag) {\n instance = node.stateNode;\n if (needsVisibilityToggle && isHidden)\n throw Error(\"Not yet implemented.\");\n appendChildNodeToSet(containerChildSet, instance.node);\n } else if (4 !== node.tag)\n if (22 === node.tag && null !== node.memoizedState)\n (instance = node.child),\n null !== instance && (instance.return = node),\n appendAllChildrenToContainer(containerChildSet, node, !0, !0);\n else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === workInProgress) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === workInProgress) return;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n}\nupdateHostContainer = function(current, workInProgress) {\n var portalOrRoot = workInProgress.stateNode;\n if (!hadNoMutationsEffects(current, workInProgress)) {\n current = portalOrRoot.containerInfo;\n var newChildSet = createChildNodeSet(current);\n appendAllChildrenToContainer(newChildSet, workInProgress, !1, !1);\n portalOrRoot.pendingChildren = newChildSet;\n workInProgress.flags |= 4;\n completeRoot(current, newChildSet);\n }\n};\nupdateHostComponent$1 = function(current, workInProgress, type, newProps) {\n type = current.stateNode;\n var oldProps = current.memoizedProps;\n if (\n (current = hadNoMutationsEffects(current, workInProgress)) &&\n oldProps === newProps\n )\n workInProgress.stateNode = type;\n else {\n var recyclableInstance = workInProgress.stateNode;\n requiredContext(contextStackCursor$1.current);\n var updatePayload = null;\n oldProps !== newProps &&\n ((oldProps = diffProperties(\n null,\n oldProps,\n newProps,\n recyclableInstance.canonical.viewConfig.validAttributes\n )),\n (recyclableInstance.canonical.currentProps = newProps),\n (updatePayload = oldProps));\n current && null === updatePayload\n ? (workInProgress.stateNode = type)\n : ((newProps = updatePayload),\n (oldProps = type.node),\n (type = {\n node: current\n ? null !== newProps\n ? cloneNodeWithNewProps(oldProps, newProps)\n : cloneNode(oldProps)\n : null !== newProps\n ? cloneNodeWithNewChildrenAndProps(oldProps, newProps)\n : cloneNodeWithNewChildren(oldProps),\n canonical: type.canonical\n }),\n (workInProgress.stateNode = type),\n current\n ? (workInProgress.flags |= 4)\n : appendAllChildren(type, workInProgress, !1, !1));\n }\n};\nupdateHostText$1 = function(current, workInProgress, oldText, newText) {\n oldText !== newText\n ? ((current = requiredContext(rootInstanceStackCursor.current)),\n (oldText = requiredContext(contextStackCursor$1.current)),\n (workInProgress.stateNode = createTextInstance(\n newText,\n current,\n oldText,\n workInProgress\n )),\n (workInProgress.flags |= 4))\n : (workInProgress.stateNode = current.stateNode);\n};\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$62 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$62 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$62\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$62.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$63 = completedWork.child; null !== child$63; )\n (newChildLanes |= child$63.lanes | child$63.childLanes),\n (subtreeFlags |= child$63.subtreeFlags & 14680064),\n (subtreeFlags |= child$63.flags & 14680064),\n (child$63.return = completedWork),\n (child$63 = child$63.sibling);\n else\n for (child$63 = completedWork.child; null !== child$63; )\n (newChildLanes |= child$63.lanes | child$63.childLanes),\n (subtreeFlags |= child$63.subtreeFlags),\n (subtreeFlags |= child$63.flags),\n (child$63.return = completedWork),\n (child$63 = child$63.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 2:\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return (\n isContextProvider(workInProgress.type) && popContext(),\n bubbleProperties(workInProgress),\n null\n );\n case 3:\n return (\n (renderLanes = workInProgress.stateNode),\n popHostContainer(),\n pop(didPerformWorkStackCursor),\n pop(contextStackCursor),\n resetWorkInProgressVersions(),\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null)),\n (null !== current && null !== current.child) ||\n null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n null !== hydrationErrors &&\n (queueRecoverableErrors(hydrationErrors),\n (hydrationErrors = null))),\n updateHostContainer(current, workInProgress),\n bubbleProperties(workInProgress),\n null\n );\n case 5:\n popHostContext(workInProgress);\n renderLanes = requiredContext(rootInstanceStackCursor.current);\n var type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n updateHostComponent$1(\n current,\n workInProgress,\n type,\n newProps,\n renderLanes\n ),\n current.ref !== workInProgress.ref && (workInProgress.flags |= 512);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(\n \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\"\n );\n bubbleProperties(workInProgress);\n return null;\n }\n requiredContext(contextStackCursor$1.current);\n current = nextReactTag;\n nextReactTag += 2;\n type = getViewConfigForType(type);\n var updatePayload = diffProperties(\n null,\n emptyObject,\n newProps,\n type.validAttributes\n );\n renderLanes = createNode(\n current,\n type.uiViewClassName,\n renderLanes,\n updatePayload,\n workInProgress\n );\n current = new ReactFabricHostComponent(\n current,\n type,\n newProps,\n workInProgress\n );\n current = { node: renderLanes, canonical: current };\n appendAllChildren(current, workInProgress, !1, !1);\n workInProgress.stateNode = current;\n null !== workInProgress.ref && (workInProgress.flags |= 512);\n }\n bubbleProperties(workInProgress);\n return null;\n case 6:\n if (current && null != workInProgress.stateNode)\n updateHostText$1(\n current,\n workInProgress,\n current.memoizedProps,\n newProps\n );\n else {\n if (\"string\" !== typeof newProps && null === workInProgress.stateNode)\n throw Error(\n \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\"\n );\n current = requiredContext(rootInstanceStackCursor.current);\n renderLanes = requiredContext(contextStackCursor$1.current);\n workInProgress.stateNode = createTextInstance(\n newProps,\n current,\n renderLanes,\n workInProgress\n );\n }\n bubbleProperties(workInProgress);\n return null;\n case 13:\n pop(suspenseStackCursor);\n newProps = workInProgress.memoizedState;\n if (\n null === current ||\n (null !== current.memoizedState &&\n null !== current.memoizedState.dehydrated)\n ) {\n if (null !== newProps && null !== newProps.dehydrated) {\n if (null === current) {\n throw Error(\n \"A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.\"\n );\n throw Error(\n \"Expected prepareToHydrateHostSuspenseInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null);\n workInProgress.flags |= 4;\n bubbleProperties(workInProgress);\n type = !1;\n } else\n null !== hydrationErrors &&\n (queueRecoverableErrors(hydrationErrors), (hydrationErrors = null)),\n (type = !0);\n if (!type) return workInProgress.flags & 65536 ? workInProgress : null;\n }\n if (0 !== (workInProgress.flags & 128))\n return (workInProgress.lanes = renderLanes), workInProgress;\n renderLanes = null !== newProps;\n renderLanes !== (null !== current && null !== current.memoizedState) &&\n renderLanes &&\n ((workInProgress.child.flags |= 8192),\n 0 !== (workInProgress.mode & 1) &&\n (null === current || 0 !== (suspenseStackCursor.current & 1)\n ? 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3)\n : renderDidSuspendDelayIfPossible()));\n null !== workInProgress.updateQueue && (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n return null;\n case 4:\n return (\n popHostContainer(),\n updateHostContainer(current, workInProgress),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type._context),\n bubbleProperties(workInProgress),\n null\n );\n case 17:\n return (\n isContextProvider(workInProgress.type) && popContext(),\n bubbleProperties(workInProgress),\n null\n );\n case 19:\n pop(suspenseStackCursor);\n type = workInProgress.memoizedState;\n if (null === type) return bubbleProperties(workInProgress), null;\n newProps = 0 !== (workInProgress.flags & 128);\n updatePayload = type.rendering;\n if (null === updatePayload)\n if (newProps) cutOffTailIfNeeded(type, !1);\n else {\n if (\n 0 !== workInProgressRootExitStatus ||\n (null !== current && 0 !== (current.flags & 128))\n )\n for (current = workInProgress.child; null !== current; ) {\n updatePayload = findFirstSuspended(current);\n if (null !== updatePayload) {\n workInProgress.flags |= 128;\n cutOffTailIfNeeded(type, !1);\n current = updatePayload.updateQueue;\n null !== current &&\n ((workInProgress.updateQueue = current),\n (workInProgress.flags |= 4));\n workInProgress.subtreeFlags = 0;\n current = renderLanes;\n for (renderLanes = workInProgress.child; null !== renderLanes; )\n (newProps = renderLanes),\n (type = current),\n (newProps.flags &= 14680066),\n (updatePayload = newProps.alternate),\n null === updatePayload\n ? ((newProps.childLanes = 0),\n (newProps.lanes = type),\n (newProps.child = null),\n (newProps.subtreeFlags = 0),\n (newProps.memoizedProps = null),\n (newProps.memoizedState = null),\n (newProps.updateQueue = null),\n (newProps.dependencies = null),\n (newProps.stateNode = null))\n : ((newProps.childLanes = updatePayload.childLanes),\n (newProps.lanes = updatePayload.lanes),\n (newProps.child = updatePayload.child),\n (newProps.subtreeFlags = 0),\n (newProps.deletions = null),\n (newProps.memoizedProps = updatePayload.memoizedProps),\n (newProps.memoizedState = updatePayload.memoizedState),\n (newProps.updateQueue = updatePayload.updateQueue),\n (newProps.type = updatePayload.type),\n (type = updatePayload.dependencies),\n (newProps.dependencies =\n null === type\n ? null\n : {\n lanes: type.lanes,\n firstContext: type.firstContext\n })),\n (renderLanes = renderLanes.sibling);\n push(\n suspenseStackCursor,\n (suspenseStackCursor.current & 1) | 2\n );\n return workInProgress.child;\n }\n current = current.sibling;\n }\n null !== type.tail &&\n now() > workInProgressRootRenderTargetTime &&\n ((workInProgress.flags |= 128),\n (newProps = !0),\n cutOffTailIfNeeded(type, !1),\n (workInProgress.lanes = 4194304));\n }\n else {\n if (!newProps)\n if (\n ((current = findFirstSuspended(updatePayload)), null !== current)\n ) {\n if (\n ((workInProgress.flags |= 128),\n (newProps = !0),\n (current = current.updateQueue),\n null !== current &&\n ((workInProgress.updateQueue = current),\n (workInProgress.flags |= 4)),\n cutOffTailIfNeeded(type, !0),\n null === type.tail &&\n \"hidden\" === type.tailMode &&\n !updatePayload.alternate)\n )\n return bubbleProperties(workInProgress), null;\n } else\n 2 * now() - type.renderingStartTime >\n workInProgressRootRenderTargetTime &&\n 1073741824 !== renderLanes &&\n ((workInProgress.flags |= 128),\n (newProps = !0),\n cutOffTailIfNeeded(type, !1),\n (workInProgress.lanes = 4194304));\n type.isBackwards\n ? ((updatePayload.sibling = workInProgress.child),\n (workInProgress.child = updatePayload))\n : ((current = type.last),\n null !== current\n ? (current.sibling = updatePayload)\n : (workInProgress.child = updatePayload),\n (type.last = updatePayload));\n }\n if (null !== type.tail)\n return (\n (workInProgress = type.tail),\n (type.rendering = workInProgress),\n (type.tail = workInProgress.sibling),\n (type.renderingStartTime = now()),\n (workInProgress.sibling = null),\n (current = suspenseStackCursor.current),\n push(suspenseStackCursor, newProps ? (current & 1) | 2 : current & 1),\n workInProgress\n );\n bubbleProperties(workInProgress);\n return null;\n case 22:\n case 23:\n return (\n popRenderLanes(),\n (renderLanes = null !== workInProgress.memoizedState),\n null !== current &&\n (null !== current.memoizedState) !== renderLanes &&\n (workInProgress.flags |= 8192),\n renderLanes && 0 !== (workInProgress.mode & 1)\n ? 0 !== (subtreeRenderLanes & 1073741824) &&\n bubbleProperties(workInProgress)\n : bubbleProperties(workInProgress),\n null\n );\n case 24:\n return null;\n case 25:\n return null;\n }\n throw Error(\n \"Unknown unit of work tag (\" +\n workInProgress.tag +\n \"). This error is likely caused by a bug in React. Please file an issue.\"\n );\n}\nfunction unwindWork(current, workInProgress) {\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 1:\n return (\n isContextProvider(workInProgress.type) && popContext(),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 3:\n return (\n popHostContainer(),\n pop(didPerformWorkStackCursor),\n pop(contextStackCursor),\n resetWorkInProgressVersions(),\n (current = workInProgress.flags),\n 0 !== (current & 65536) && 0 === (current & 128)\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 5:\n return popHostContext(workInProgress), null;\n case 13:\n pop(suspenseStackCursor);\n current = workInProgress.memoizedState;\n if (\n null !== current &&\n null !== current.dehydrated &&\n null === workInProgress.alternate\n )\n throw Error(\n \"Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.\"\n );\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 19:\n return pop(suspenseStackCursor), null;\n case 4:\n return popHostContainer(), null;\n case 10:\n return popProvider(workInProgress.type._context), null;\n case 22:\n case 23:\n return popRenderLanes(), null;\n case 24:\n return null;\n default:\n return null;\n }\n}\nvar PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null;\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref;\n if (null !== ref)\n if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n else ref.current = null;\n}\nfunction safelyCallDestroy(current, nearestMountedAncestor, destroy) {\n try {\n destroy();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nvar shouldFireAfterActiveInstanceBlur = !1;\nfunction commitBeforeMutationEffects(root, firstChild) {\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((root = nextEffect),\n (firstChild = root.child),\n 0 !== (root.subtreeFlags & 1028) && null !== firstChild)\n )\n (firstChild.return = root), (nextEffect = firstChild);\n else\n for (; null !== nextEffect; ) {\n root = nextEffect;\n try {\n var current = root.alternate;\n if (0 !== (root.flags & 1024))\n switch (root.tag) {\n case 0:\n case 11:\n case 15:\n break;\n case 1:\n if (null !== current) {\n var prevProps = current.memoizedProps,\n prevState = current.memoizedState,\n instance = root.stateNode,\n snapshot = instance.getSnapshotBeforeUpdate(\n root.elementType === root.type\n ? prevProps\n : resolveDefaultProps(root.type, prevProps),\n prevState\n );\n instance.__reactInternalSnapshotBeforeUpdate = snapshot;\n }\n break;\n case 3:\n break;\n case 5:\n case 6:\n case 4:\n case 17:\n break;\n default:\n throw Error(\n \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n } catch (error) {\n captureCommitPhaseError(root, root.return, error);\n }\n firstChild = root.sibling;\n if (null !== firstChild) {\n firstChild.return = root.return;\n nextEffect = firstChild;\n break;\n }\n nextEffect = root.return;\n }\n current = shouldFireAfterActiveInstanceBlur;\n shouldFireAfterActiveInstanceBlur = !1;\n return current;\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor\n) {\n var updateQueue = finishedWork.updateQueue;\n updateQueue = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== updateQueue) {\n var effect = (updateQueue = updateQueue.next);\n do {\n if ((effect.tag & flags) === flags) {\n var destroy = effect.destroy;\n effect.destroy = void 0;\n void 0 !== destroy &&\n safelyCallDestroy(finishedWork, nearestMountedAncestor, destroy);\n }\n effect = effect.next;\n } while (effect !== updateQueue);\n }\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n finishedWork = finishedWork.updateQueue;\n finishedWork = null !== finishedWork ? finishedWork.lastEffect : null;\n if (null !== finishedWork) {\n var effect = (finishedWork = finishedWork.next);\n do {\n if ((effect.tag & flags) === flags) {\n var create$75 = effect.create;\n effect.destroy = create$75();\n }\n effect = effect.next;\n } while (effect !== finishedWork);\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 5:\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 18:\n break;\n case 4:\n createChildNodeSet(deletedFiber.stateNode.containerInfo);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n var updateQueue = deletedFiber.updateQueue;\n if (\n null !== updateQueue &&\n ((updateQueue = updateQueue.lastEffect), null !== updateQueue)\n ) {\n var effect = (updateQueue = updateQueue.next);\n do {\n var _effect = effect,\n destroy = _effect.destroy;\n _effect = _effect.tag;\n void 0 !== destroy &&\n (0 !== (_effect & 2)\n ? safelyCallDestroy(deletedFiber, nearestMountedAncestor, destroy)\n : 0 !== (_effect & 4) &&\n safelyCallDestroy(\n deletedFiber,\n nearestMountedAncestor,\n destroy\n ));\n effect = effect.next;\n } while (effect !== updateQueue);\n }\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n updateQueue = deletedFiber.stateNode;\n if (\"function\" === typeof updateQueue.componentWillUnmount)\n try {\n (updateQueue.props = deletedFiber.memoizedProps),\n (updateQueue.state = deletedFiber.memoizedState),\n updateQueue.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(deletedFiber, nearestMountedAncestor, error);\n }\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork) {\n var wakeables = finishedWork.updateQueue;\n if (null !== wakeables) {\n finishedWork.updateQueue = null;\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n wakeables.forEach(function(wakeable) {\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n retryCache.has(wakeable) ||\n (retryCache.add(wakeable), wakeable.then(retry, retry));\n });\n }\n}\nfunction recursivelyTraverseMutationEffects(root, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n try {\n commitDeletionEffectsOnFiber(root, parentFiber, childToDelete);\n var alternate = childToDelete.alternate;\n null !== alternate && (alternate.return = null);\n childToDelete.return = null;\n } catch (error) {\n captureCommitPhaseError(childToDelete, parentFiber, error);\n }\n }\n if (parentFiber.subtreeFlags & 12854)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n try {\n commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n try {\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return);\n } catch (error$79) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error$79);\n }\n }\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n null !== current &&\n safelyDetachRef(current, current.return);\n break;\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n null !== current &&\n safelyDetachRef(current, current.return);\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 3:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 4:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n root = finishedWork.child;\n root.flags & 8192 &&\n ((current = null !== root.memoizedState),\n (root.stateNode.isHidden = current),\n !current ||\n (null !== root.alternate && null !== root.alternate.memoizedState) ||\n (globalMostRecentFallbackTime = now()));\n flags & 4 && attachSuspenseRetryListeners(finishedWork);\n break;\n case 22:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 8192 &&\n (finishedWork.stateNode.isHidden = null !== finishedWork.memoizedState);\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 && attachSuspenseRetryListeners(finishedWork);\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n flags & 2 && (finishedWork.flags &= -3);\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction commitLayoutEffects(finishedWork) {\n for (nextEffect = finishedWork; null !== nextEffect; ) {\n var fiber = nextEffect,\n firstChild = fiber.child;\n if (0 !== (fiber.subtreeFlags & 8772) && null !== firstChild)\n (firstChild.return = fiber), (nextEffect = firstChild);\n else\n for (fiber = finishedWork; null !== nextEffect; ) {\n firstChild = nextEffect;\n if (0 !== (firstChild.flags & 8772)) {\n var current = firstChild.alternate;\n try {\n if (0 !== (firstChild.flags & 8772))\n switch (firstChild.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListMount(5, firstChild);\n break;\n case 1:\n var instance = firstChild.stateNode;\n if (firstChild.flags & 4)\n if (null === current) instance.componentDidMount();\n else {\n var prevProps =\n firstChild.elementType === firstChild.type\n ? current.memoizedProps\n : resolveDefaultProps(\n firstChild.type,\n current.memoizedProps\n );\n instance.componentDidUpdate(\n prevProps,\n current.memoizedState,\n instance.__reactInternalSnapshotBeforeUpdate\n );\n }\n var updateQueue = firstChild.updateQueue;\n null !== updateQueue &&\n commitUpdateQueue(firstChild, updateQueue, instance);\n break;\n case 3:\n var updateQueue$76 = firstChild.updateQueue;\n if (null !== updateQueue$76) {\n current = null;\n if (null !== firstChild.child)\n switch (firstChild.child.tag) {\n case 5:\n current = firstChild.child.stateNode.canonical;\n break;\n case 1:\n current = firstChild.child.stateNode;\n }\n commitUpdateQueue(firstChild, updateQueue$76, current);\n }\n break;\n case 5:\n if (null === current && firstChild.flags & 4)\n throw Error(\n \"The current renderer does not support mutation. This error is likely caused by a bug in React. Please file an issue.\"\n );\n break;\n case 6:\n break;\n case 4:\n break;\n case 12:\n break;\n case 13:\n break;\n case 19:\n case 17:\n case 21:\n case 22:\n case 23:\n case 25:\n break;\n default:\n throw Error(\n \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (firstChild.flags & 512) {\n current = void 0;\n var ref = firstChild.ref;\n if (null !== ref) {\n var instance$jscomp$0 = firstChild.stateNode;\n switch (firstChild.tag) {\n case 5:\n current = instance$jscomp$0.canonical;\n break;\n default:\n current = instance$jscomp$0;\n }\n \"function\" === typeof ref\n ? ref(current)\n : (ref.current = current);\n }\n }\n } catch (error) {\n captureCommitPhaseError(firstChild, firstChild.return, error);\n }\n }\n if (firstChild === fiber) {\n nextEffect = null;\n break;\n }\n current = firstChild.sibling;\n if (null !== current) {\n current.return = firstChild.return;\n nextEffect = current;\n break;\n }\n nextEffect = firstChild.return;\n }\n }\n}\nvar ceil = Math.ceil,\n ReactCurrentDispatcher$2 = ReactSharedInternals.ReactCurrentDispatcher,\n ReactCurrentOwner$2 = ReactSharedInternals.ReactCurrentOwner,\n ReactCurrentBatchConfig$2 = ReactSharedInternals.ReactCurrentBatchConfig,\n executionContext = 0,\n workInProgressRoot = null,\n workInProgress = null,\n workInProgressRootRenderLanes = 0,\n subtreeRenderLanes = 0,\n subtreeRenderLanesCursor = createCursor(0),\n workInProgressRootExitStatus = 0,\n workInProgressRootFatalError = null,\n workInProgressRootSkippedLanes = 0,\n workInProgressRootInterleavedUpdatedLanes = 0,\n workInProgressRootPingedLanes = 0,\n workInProgressRootConcurrentErrors = null,\n workInProgressRootRecoverableErrors = null,\n globalMostRecentFallbackTime = 0,\n workInProgressRootRenderTargetTime = Infinity,\n workInProgressTransitions = null,\n hasUncaughtError = !1,\n firstUncaughtError = null,\n legacyErrorBoundariesThatAlreadyFailed = null,\n rootDoesHavePassiveEffects = !1,\n rootWithPendingPassiveEffects = null,\n pendingPassiveEffectsLanes = 0,\n nestedUpdateCount = 0,\n rootWithNestedUpdates = null,\n currentEventTime = -1,\n currentEventTransitionLane = 0;\nfunction requestEventTime() {\n return 0 !== (executionContext & 6)\n ? now()\n : -1 !== currentEventTime\n ? currentEventTime\n : (currentEventTime = now());\n}\nfunction requestUpdateLane(fiber) {\n if (0 === (fiber.mode & 1)) return 1;\n if (0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes)\n return workInProgressRootRenderLanes & -workInProgressRootRenderLanes;\n if (null !== ReactCurrentBatchConfig.transition)\n return (\n 0 === currentEventTransitionLane &&\n (currentEventTransitionLane = claimNextTransitionLane()),\n currentEventTransitionLane\n );\n fiber = currentUpdatePriority;\n if (0 === fiber)\n a: {\n fiber = fabricGetCurrentEventPriority\n ? fabricGetCurrentEventPriority()\n : null;\n if (null != fiber)\n switch (fiber) {\n case FabricDiscretePriority:\n fiber = 1;\n break a;\n }\n fiber = 16;\n }\n return fiber;\n}\nfunction scheduleUpdateOnFiber(root, fiber, lane, eventTime) {\n if (50 < nestedUpdateCount)\n throw ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(\n \"Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\"\n ));\n markRootUpdated(root, lane, eventTime);\n if (0 === (executionContext & 2) || root !== workInProgressRoot)\n root === workInProgressRoot &&\n (0 === (executionContext & 2) &&\n (workInProgressRootInterleavedUpdatedLanes |= lane),\n 4 === workInProgressRootExitStatus &&\n markRootSuspended$1(root, workInProgressRootRenderLanes)),\n ensureRootIsScheduled(root, eventTime),\n 1 === lane &&\n 0 === executionContext &&\n 0 === (fiber.mode & 1) &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n includesLegacySyncCallbacks && flushSyncCallbacks());\n}\nfunction ensureRootIsScheduled(root, currentTime) {\n for (\n var existingCallbackNode = root.callbackNode,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n expirationTimes = root.expirationTimes,\n lanes = root.pendingLanes;\n 0 < lanes;\n\n ) {\n var index$5 = 31 - clz32(lanes),\n lane = 1 << index$5,\n expirationTime = expirationTimes[index$5];\n if (-1 === expirationTime) {\n if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n expirationTimes[index$5] = computeExpirationTime(lane, currentTime);\n } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n lanes &= ~lane;\n }\n suspendedLanes = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes : 0\n );\n if (0 === suspendedLanes)\n null !== existingCallbackNode && cancelCallback(existingCallbackNode),\n (root.callbackNode = null),\n (root.callbackPriority = 0);\n else if (\n ((currentTime = suspendedLanes & -suspendedLanes),\n root.callbackPriority !== currentTime)\n ) {\n null != existingCallbackNode && cancelCallback(existingCallbackNode);\n if (1 === currentTime)\n 0 === root.tag\n ? ((existingCallbackNode = performSyncWorkOnRoot.bind(null, root)),\n (includesLegacySyncCallbacks = !0),\n null === syncQueue\n ? (syncQueue = [existingCallbackNode])\n : syncQueue.push(existingCallbackNode))\n : ((existingCallbackNode = performSyncWorkOnRoot.bind(null, root)),\n null === syncQueue\n ? (syncQueue = [existingCallbackNode])\n : syncQueue.push(existingCallbackNode)),\n scheduleCallback(ImmediatePriority, flushSyncCallbacks),\n (existingCallbackNode = null);\n else {\n switch (lanesToEventPriority(suspendedLanes)) {\n case 1:\n existingCallbackNode = ImmediatePriority;\n break;\n case 4:\n existingCallbackNode = UserBlockingPriority;\n break;\n case 16:\n existingCallbackNode = NormalPriority;\n break;\n case 536870912:\n existingCallbackNode = IdlePriority;\n break;\n default:\n existingCallbackNode = NormalPriority;\n }\n existingCallbackNode = scheduleCallback$1(\n existingCallbackNode,\n performConcurrentWorkOnRoot.bind(null, root)\n );\n }\n root.callbackPriority = currentTime;\n root.callbackNode = existingCallbackNode;\n }\n}\nfunction performConcurrentWorkOnRoot(root, didTimeout) {\n currentEventTime = -1;\n currentEventTransitionLane = 0;\n if (0 !== (executionContext & 6))\n throw Error(\"Should not already be working.\");\n var originalCallbackNode = root.callbackNode;\n if (flushPassiveEffects() && root.callbackNode !== originalCallbackNode)\n return null;\n var lanes = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes : 0\n );\n if (0 === lanes) return null;\n if (0 !== (lanes & 30) || 0 !== (lanes & root.expiredLanes) || didTimeout)\n didTimeout = renderRootSync(root, lanes);\n else {\n didTimeout = lanes;\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher();\n if (\n workInProgressRoot !== root ||\n workInProgressRootRenderLanes !== didTimeout\n )\n (workInProgressTransitions = null),\n (workInProgressRootRenderTargetTime = now() + 500),\n prepareFreshStack(root, didTimeout);\n do\n try {\n workLoopConcurrent();\n break;\n } catch (thrownValue) {\n handleError(root, thrownValue);\n }\n while (1);\n resetContextDependencies();\n ReactCurrentDispatcher$2.current = prevDispatcher;\n executionContext = prevExecutionContext;\n null !== workInProgress\n ? (didTimeout = 0)\n : ((workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0),\n (didTimeout = workInProgressRootExitStatus));\n }\n if (0 !== didTimeout) {\n 2 === didTimeout &&\n ((prevExecutionContext = getLanesToRetrySynchronouslyOnError(root)),\n 0 !== prevExecutionContext &&\n ((lanes = prevExecutionContext),\n (didTimeout = recoverFromConcurrentError(root, prevExecutionContext))));\n if (1 === didTimeout)\n throw ((originalCallbackNode = workInProgressRootFatalError),\n prepareFreshStack(root, 0),\n markRootSuspended$1(root, lanes),\n ensureRootIsScheduled(root, now()),\n originalCallbackNode);\n if (6 === didTimeout) markRootSuspended$1(root, lanes);\n else {\n prevExecutionContext = root.current.alternate;\n if (\n 0 === (lanes & 30) &&\n !isRenderConsistentWithExternalStores(prevExecutionContext) &&\n ((didTimeout = renderRootSync(root, lanes)),\n 2 === didTimeout &&\n ((prevDispatcher = getLanesToRetrySynchronouslyOnError(root)),\n 0 !== prevDispatcher &&\n ((lanes = prevDispatcher),\n (didTimeout = recoverFromConcurrentError(root, prevDispatcher)))),\n 1 === didTimeout)\n )\n throw ((originalCallbackNode = workInProgressRootFatalError),\n prepareFreshStack(root, 0),\n markRootSuspended$1(root, lanes),\n ensureRootIsScheduled(root, now()),\n originalCallbackNode);\n root.finishedWork = prevExecutionContext;\n root.finishedLanes = lanes;\n switch (didTimeout) {\n case 0:\n case 1:\n throw Error(\"Root did not complete. This is a bug in React.\");\n case 2:\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n case 3:\n markRootSuspended$1(root, lanes);\n if (\n (lanes & 130023424) === lanes &&\n ((didTimeout = globalMostRecentFallbackTime + 500 - now()),\n 10 < didTimeout)\n ) {\n if (0 !== getNextLanes(root, 0)) break;\n prevExecutionContext = root.suspendedLanes;\n if ((prevExecutionContext & lanes) !== lanes) {\n requestEventTime();\n root.pingedLanes |= root.suspendedLanes & prevExecutionContext;\n break;\n }\n root.timeoutHandle = scheduleTimeout(\n commitRoot.bind(\n null,\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n ),\n didTimeout\n );\n break;\n }\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n case 4:\n markRootSuspended$1(root, lanes);\n if ((lanes & 4194240) === lanes) break;\n didTimeout = root.eventTimes;\n for (prevExecutionContext = -1; 0 < lanes; ) {\n var index$4 = 31 - clz32(lanes);\n prevDispatcher = 1 << index$4;\n index$4 = didTimeout[index$4];\n index$4 > prevExecutionContext && (prevExecutionContext = index$4);\n lanes &= ~prevDispatcher;\n }\n lanes = prevExecutionContext;\n lanes = now() - lanes;\n lanes =\n (120 > lanes\n ? 120\n : 480 > lanes\n ? 480\n : 1080 > lanes\n ? 1080\n : 1920 > lanes\n ? 1920\n : 3e3 > lanes\n ? 3e3\n : 4320 > lanes\n ? 4320\n : 1960 * ceil(lanes / 1960)) - lanes;\n if (10 < lanes) {\n root.timeoutHandle = scheduleTimeout(\n commitRoot.bind(\n null,\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n ),\n lanes\n );\n break;\n }\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n case 5:\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n default:\n throw Error(\"Unknown root exit status.\");\n }\n }\n }\n ensureRootIsScheduled(root, now());\n return root.callbackNode === originalCallbackNode\n ? performConcurrentWorkOnRoot.bind(null, root)\n : null;\n}\nfunction recoverFromConcurrentError(root, errorRetryLanes) {\n var errorsFromFirstAttempt = workInProgressRootConcurrentErrors;\n root.current.memoizedState.isDehydrated &&\n (prepareFreshStack(root, errorRetryLanes).flags |= 256);\n root = renderRootSync(root, errorRetryLanes);\n 2 !== root &&\n ((errorRetryLanes = workInProgressRootRecoverableErrors),\n (workInProgressRootRecoverableErrors = errorsFromFirstAttempt),\n null !== errorRetryLanes && queueRecoverableErrors(errorRetryLanes));\n return root;\n}\nfunction queueRecoverableErrors(errors) {\n null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = errors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n errors\n );\n}\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n for (var node = finishedWork; ; ) {\n if (node.flags & 16384) {\n var updateQueue = node.updateQueue;\n if (\n null !== updateQueue &&\n ((updateQueue = updateQueue.stores), null !== updateQueue)\n )\n for (var i = 0; i < updateQueue.length; i++) {\n var check = updateQueue[i],\n getSnapshot = check.getSnapshot;\n check = check.value;\n try {\n if (!objectIs(getSnapshot(), check)) return !1;\n } catch (error) {\n return !1;\n }\n }\n }\n updateQueue = node.child;\n if (node.subtreeFlags & 16384 && null !== updateQueue)\n (updateQueue.return = node), (node = updateQueue);\n else {\n if (node === finishedWork) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === finishedWork) return !0;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n return !0;\n}\nfunction markRootSuspended$1(root, suspendedLanes) {\n suspendedLanes &= ~workInProgressRootPingedLanes;\n suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes;\n for (root = root.expirationTimes; 0 < suspendedLanes; ) {\n var index$6 = 31 - clz32(suspendedLanes),\n lane = 1 << index$6;\n root[index$6] = -1;\n suspendedLanes &= ~lane;\n }\n}\nfunction performSyncWorkOnRoot(root) {\n if (0 !== (executionContext & 6))\n throw Error(\"Should not already be working.\");\n flushPassiveEffects();\n var lanes = getNextLanes(root, 0);\n if (0 === (lanes & 1)) return ensureRootIsScheduled(root, now()), null;\n var exitStatus = renderRootSync(root, lanes);\n if (0 !== root.tag && 2 === exitStatus) {\n var errorRetryLanes = getLanesToRetrySynchronouslyOnError(root);\n 0 !== errorRetryLanes &&\n ((lanes = errorRetryLanes),\n (exitStatus = recoverFromConcurrentError(root, errorRetryLanes)));\n }\n if (1 === exitStatus)\n throw ((exitStatus = workInProgressRootFatalError),\n prepareFreshStack(root, 0),\n markRootSuspended$1(root, lanes),\n ensureRootIsScheduled(root, now()),\n exitStatus);\n if (6 === exitStatus)\n throw Error(\"Root did not complete. This is a bug in React.\");\n root.finishedWork = root.current.alternate;\n root.finishedLanes = lanes;\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n ensureRootIsScheduled(root, now());\n return null;\n}\nfunction popRenderLanes() {\n subtreeRenderLanes = subtreeRenderLanesCursor.current;\n pop(subtreeRenderLanesCursor);\n}\nfunction prepareFreshStack(root, lanes) {\n root.finishedWork = null;\n root.finishedLanes = 0;\n var timeoutHandle = root.timeoutHandle;\n -1 !== timeoutHandle &&\n ((root.timeoutHandle = -1), cancelTimeout(timeoutHandle));\n if (null !== workInProgress)\n for (timeoutHandle = workInProgress.return; null !== timeoutHandle; ) {\n var interruptedWork = timeoutHandle;\n popTreeContext(interruptedWork);\n switch (interruptedWork.tag) {\n case 1:\n interruptedWork = interruptedWork.type.childContextTypes;\n null !== interruptedWork &&\n void 0 !== interruptedWork &&\n popContext();\n break;\n case 3:\n popHostContainer();\n pop(didPerformWorkStackCursor);\n pop(contextStackCursor);\n resetWorkInProgressVersions();\n break;\n case 5:\n popHostContext(interruptedWork);\n break;\n case 4:\n popHostContainer();\n break;\n case 13:\n pop(suspenseStackCursor);\n break;\n case 19:\n pop(suspenseStackCursor);\n break;\n case 10:\n popProvider(interruptedWork.type._context);\n break;\n case 22:\n case 23:\n popRenderLanes();\n }\n timeoutHandle = timeoutHandle.return;\n }\n workInProgressRoot = root;\n workInProgress = root = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = subtreeRenderLanes = lanes;\n workInProgressRootExitStatus = 0;\n workInProgressRootFatalError = null;\n workInProgressRootPingedLanes = workInProgressRootInterleavedUpdatedLanes = workInProgressRootSkippedLanes = 0;\n workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors = null;\n if (null !== concurrentQueues) {\n for (lanes = 0; lanes < concurrentQueues.length; lanes++)\n if (\n ((timeoutHandle = concurrentQueues[lanes]),\n (interruptedWork = timeoutHandle.interleaved),\n null !== interruptedWork)\n ) {\n timeoutHandle.interleaved = null;\n var firstInterleavedUpdate = interruptedWork.next,\n lastPendingUpdate = timeoutHandle.pending;\n if (null !== lastPendingUpdate) {\n var firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = firstInterleavedUpdate;\n interruptedWork.next = firstPendingUpdate;\n }\n timeoutHandle.pending = interruptedWork;\n }\n concurrentQueues = null;\n }\n return root;\n}\nfunction handleError(root$jscomp$0, thrownValue) {\n do {\n var erroredWork = workInProgress;\n try {\n resetContextDependencies();\n ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n if (didScheduleRenderPhaseUpdate) {\n for (\n var hook = currentlyRenderingFiber$1.memoizedState;\n null !== hook;\n\n ) {\n var queue = hook.queue;\n null !== queue && (queue.pending = null);\n hook = hook.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber$1 = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n ReactCurrentOwner$2.current = null;\n if (null === erroredWork || null === erroredWork.return) {\n workInProgressRootExitStatus = 1;\n workInProgressRootFatalError = thrownValue;\n workInProgress = null;\n break;\n }\n a: {\n var root = root$jscomp$0,\n returnFiber = erroredWork.return,\n sourceFiber = erroredWork,\n value = thrownValue;\n thrownValue = workInProgressRootRenderLanes;\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n var wakeable = value,\n sourceFiber$jscomp$0 = sourceFiber,\n tag = sourceFiber$jscomp$0.tag;\n if (\n 0 === (sourceFiber$jscomp$0.mode & 1) &&\n (0 === tag || 11 === tag || 15 === tag)\n ) {\n var currentSource = sourceFiber$jscomp$0.alternate;\n currentSource\n ? ((sourceFiber$jscomp$0.updateQueue = currentSource.updateQueue),\n (sourceFiber$jscomp$0.memoizedState =\n currentSource.memoizedState),\n (sourceFiber$jscomp$0.lanes = currentSource.lanes))\n : ((sourceFiber$jscomp$0.updateQueue = null),\n (sourceFiber$jscomp$0.memoizedState = null));\n }\n b: {\n sourceFiber$jscomp$0 = returnFiber;\n do {\n var JSCompiler_temp;\n if ((JSCompiler_temp = 13 === sourceFiber$jscomp$0.tag)) {\n var nextState = sourceFiber$jscomp$0.memoizedState;\n JSCompiler_temp =\n null !== nextState\n ? null !== nextState.dehydrated\n ? !0\n : !1\n : !0;\n }\n if (JSCompiler_temp) {\n var suspenseBoundary = sourceFiber$jscomp$0;\n break b;\n }\n sourceFiber$jscomp$0 = sourceFiber$jscomp$0.return;\n } while (null !== sourceFiber$jscomp$0);\n suspenseBoundary = null;\n }\n if (null !== suspenseBoundary) {\n suspenseBoundary.flags &= -257;\n value = suspenseBoundary;\n sourceFiber$jscomp$0 = thrownValue;\n if (0 === (value.mode & 1))\n if (value === returnFiber) value.flags |= 65536;\n else {\n value.flags |= 128;\n sourceFiber.flags |= 131072;\n sourceFiber.flags &= -52805;\n if (1 === sourceFiber.tag)\n if (null === sourceFiber.alternate) sourceFiber.tag = 17;\n else {\n var update = createUpdate(-1, 1);\n update.tag = 2;\n enqueueUpdate(sourceFiber, update, 1);\n }\n sourceFiber.lanes |= 1;\n }\n else (value.flags |= 65536), (value.lanes = sourceFiber$jscomp$0);\n suspenseBoundary.mode & 1 &&\n attachPingListener(root, wakeable, thrownValue);\n thrownValue = suspenseBoundary;\n root = wakeable;\n var wakeables = thrownValue.updateQueue;\n if (null === wakeables) {\n var updateQueue = new Set();\n updateQueue.add(root);\n thrownValue.updateQueue = updateQueue;\n } else wakeables.add(root);\n break a;\n } else {\n if (0 === (thrownValue & 1)) {\n attachPingListener(root, wakeable, thrownValue);\n renderDidSuspendDelayIfPossible();\n break a;\n }\n value = Error(\n \"A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition.\"\n );\n }\n }\n root = value = createCapturedValueAtFiber(value, sourceFiber);\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [root])\n : workInProgressRootConcurrentErrors.push(root);\n root = returnFiber;\n do {\n switch (root.tag) {\n case 3:\n wakeable = value;\n root.flags |= 65536;\n thrownValue &= -thrownValue;\n root.lanes |= thrownValue;\n var update$jscomp$0 = createRootErrorUpdate(\n root,\n wakeable,\n thrownValue\n );\n enqueueCapturedUpdate(root, update$jscomp$0);\n break a;\n case 1:\n wakeable = value;\n var ctor = root.type,\n instance = root.stateNode;\n if (\n 0 === (root.flags & 128) &&\n (\"function\" === typeof ctor.getDerivedStateFromError ||\n (null !== instance &&\n \"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance))))\n ) {\n root.flags |= 65536;\n thrownValue &= -thrownValue;\n root.lanes |= thrownValue;\n var update$32 = createClassErrorUpdate(\n root,\n wakeable,\n thrownValue\n );\n enqueueCapturedUpdate(root, update$32);\n break a;\n }\n }\n root = root.return;\n } while (null !== root);\n }\n completeUnitOfWork(erroredWork);\n } catch (yetAnotherThrownValue) {\n thrownValue = yetAnotherThrownValue;\n workInProgress === erroredWork &&\n null !== erroredWork &&\n (workInProgress = erroredWork = erroredWork.return);\n continue;\n }\n break;\n } while (1);\n}\nfunction pushDispatcher() {\n var prevDispatcher = ReactCurrentDispatcher$2.current;\n ReactCurrentDispatcher$2.current = ContextOnlyDispatcher;\n return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n}\nfunction renderDidSuspendDelayIfPossible() {\n if (\n 0 === workInProgressRootExitStatus ||\n 3 === workInProgressRootExitStatus ||\n 2 === workInProgressRootExitStatus\n )\n workInProgressRootExitStatus = 4;\n null === workInProgressRoot ||\n (0 === (workInProgressRootSkippedLanes & 268435455) &&\n 0 === (workInProgressRootInterleavedUpdatedLanes & 268435455)) ||\n markRootSuspended$1(workInProgressRoot, workInProgressRootRenderLanes);\n}\nfunction renderRootSync(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher();\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes)\n (workInProgressTransitions = null), prepareFreshStack(root, lanes);\n do\n try {\n workLoopSync();\n break;\n } catch (thrownValue) {\n handleError(root, thrownValue);\n }\n while (1);\n resetContextDependencies();\n executionContext = prevExecutionContext;\n ReactCurrentDispatcher$2.current = prevDispatcher;\n if (null !== workInProgress)\n throw Error(\n \"Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue.\"\n );\n workInProgressRoot = null;\n workInProgressRootRenderLanes = 0;\n return workInProgressRootExitStatus;\n}\nfunction workLoopSync() {\n for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n}\nfunction workLoopConcurrent() {\n for (; null !== workInProgress && !shouldYield(); )\n performUnitOfWork(workInProgress);\n}\nfunction performUnitOfWork(unitOfWork) {\n var next = beginWork$1(unitOfWork.alternate, unitOfWork, subtreeRenderLanes);\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n ReactCurrentOwner$2.current = null;\n}\nfunction completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n do {\n var current = completedWork.alternate;\n unitOfWork = completedWork.return;\n if (0 === (completedWork.flags & 32768)) {\n if (\n ((current = completeWork(current, completedWork, subtreeRenderLanes)),\n null !== current)\n ) {\n workInProgress = current;\n return;\n }\n } else {\n current = unwindWork(current, completedWork);\n if (null !== current) {\n current.flags &= 32767;\n workInProgress = current;\n return;\n }\n if (null !== unitOfWork)\n (unitOfWork.flags |= 32768),\n (unitOfWork.subtreeFlags = 0),\n (unitOfWork.deletions = null);\n else {\n workInProgressRootExitStatus = 6;\n workInProgress = null;\n return;\n }\n }\n completedWork = completedWork.sibling;\n if (null !== completedWork) {\n workInProgress = completedWork;\n return;\n }\n workInProgress = completedWork = unitOfWork;\n } while (null !== completedWork);\n 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);\n}\nfunction commitRoot(root, recoverableErrors, transitions) {\n var previousUpdateLanePriority = currentUpdatePriority,\n prevTransition = ReactCurrentBatchConfig$2.transition;\n try {\n (ReactCurrentBatchConfig$2.transition = null),\n (currentUpdatePriority = 1),\n commitRootImpl(\n root,\n recoverableErrors,\n transitions,\n previousUpdateLanePriority\n );\n } finally {\n (ReactCurrentBatchConfig$2.transition = prevTransition),\n (currentUpdatePriority = previousUpdateLanePriority);\n }\n return null;\n}\nfunction commitRootImpl(\n root,\n recoverableErrors,\n transitions,\n renderPriorityLevel\n) {\n do flushPassiveEffects();\n while (null !== rootWithPendingPassiveEffects);\n if (0 !== (executionContext & 6))\n throw Error(\"Should not already be working.\");\n transitions = root.finishedWork;\n var lanes = root.finishedLanes;\n if (null === transitions) return null;\n root.finishedWork = null;\n root.finishedLanes = 0;\n if (transitions === root.current)\n throw Error(\n \"Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.\"\n );\n root.callbackNode = null;\n root.callbackPriority = 0;\n var remainingLanes = transitions.lanes | transitions.childLanes;\n markRootFinished(root, remainingLanes);\n root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n (0 === (transitions.subtreeFlags & 2064) &&\n 0 === (transitions.flags & 2064)) ||\n rootDoesHavePassiveEffects ||\n ((rootDoesHavePassiveEffects = !0),\n scheduleCallback$1(NormalPriority, function() {\n flushPassiveEffects();\n return null;\n }));\n remainingLanes = 0 !== (transitions.flags & 15990);\n if (0 !== (transitions.subtreeFlags & 15990) || remainingLanes) {\n remainingLanes = ReactCurrentBatchConfig$2.transition;\n ReactCurrentBatchConfig$2.transition = null;\n var previousPriority = currentUpdatePriority;\n currentUpdatePriority = 1;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n ReactCurrentOwner$2.current = null;\n commitBeforeMutationEffects(root, transitions);\n commitMutationEffectsOnFiber(transitions, root);\n root.current = transitions;\n commitLayoutEffects(transitions, root, lanes);\n requestPaint();\n executionContext = prevExecutionContext;\n currentUpdatePriority = previousPriority;\n ReactCurrentBatchConfig$2.transition = remainingLanes;\n } else root.current = transitions;\n rootDoesHavePassiveEffects &&\n ((rootDoesHavePassiveEffects = !1),\n (rootWithPendingPassiveEffects = root),\n (pendingPassiveEffectsLanes = lanes));\n remainingLanes = root.pendingLanes;\n 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);\n onCommitRoot(transitions.stateNode, renderPriorityLevel);\n ensureRootIsScheduled(root, now());\n if (null !== recoverableErrors)\n for (\n renderPriorityLevel = root.onRecoverableError, transitions = 0;\n transitions < recoverableErrors.length;\n transitions++\n )\n (lanes = recoverableErrors[transitions]),\n renderPriorityLevel(lanes.value, {\n componentStack: lanes.stack,\n digest: lanes.digest\n });\n if (hasUncaughtError)\n throw ((hasUncaughtError = !1),\n (root = firstUncaughtError),\n (firstUncaughtError = null),\n root);\n 0 !== (pendingPassiveEffectsLanes & 1) &&\n 0 !== root.tag &&\n flushPassiveEffects();\n remainingLanes = root.pendingLanes;\n 0 !== (remainingLanes & 1)\n ? root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n : (nestedUpdateCount = 0);\n flushSyncCallbacks();\n return null;\n}\nfunction flushPassiveEffects() {\n if (null !== rootWithPendingPassiveEffects) {\n var renderPriority = lanesToEventPriority(pendingPassiveEffectsLanes),\n prevTransition = ReactCurrentBatchConfig$2.transition,\n previousPriority = currentUpdatePriority;\n try {\n ReactCurrentBatchConfig$2.transition = null;\n currentUpdatePriority = 16 > renderPriority ? 16 : renderPriority;\n if (null === rootWithPendingPassiveEffects)\n var JSCompiler_inline_result = !1;\n else {\n renderPriority = rootWithPendingPassiveEffects;\n rootWithPendingPassiveEffects = null;\n pendingPassiveEffectsLanes = 0;\n if (0 !== (executionContext & 6))\n throw Error(\"Cannot flush passive effects while already rendering.\");\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n for (nextEffect = renderPriority.current; null !== nextEffect; ) {\n var fiber = nextEffect,\n child = fiber.child;\n if (0 !== (nextEffect.flags & 16)) {\n var deletions = fiber.deletions;\n if (null !== deletions) {\n for (var i = 0; i < deletions.length; i++) {\n var fiberToDelete = deletions[i];\n for (nextEffect = fiberToDelete; null !== nextEffect; ) {\n var fiber$jscomp$0 = nextEffect;\n switch (fiber$jscomp$0.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber$jscomp$0, fiber);\n }\n var child$jscomp$0 = fiber$jscomp$0.child;\n if (null !== child$jscomp$0)\n (child$jscomp$0.return = fiber$jscomp$0),\n (nextEffect = child$jscomp$0);\n else\n for (; null !== nextEffect; ) {\n fiber$jscomp$0 = nextEffect;\n var sibling = fiber$jscomp$0.sibling,\n returnFiber = fiber$jscomp$0.return;\n detachFiberAfterEffects(fiber$jscomp$0);\n if (fiber$jscomp$0 === fiberToDelete) {\n nextEffect = null;\n break;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break;\n }\n nextEffect = returnFiber;\n }\n }\n }\n var previousFiber = fiber.alternate;\n if (null !== previousFiber) {\n var detachedChild = previousFiber.child;\n if (null !== detachedChild) {\n previousFiber.child = null;\n do {\n var detachedSibling = detachedChild.sibling;\n detachedChild.sibling = null;\n detachedChild = detachedSibling;\n } while (null !== detachedChild);\n }\n }\n nextEffect = fiber;\n }\n }\n if (0 !== (fiber.subtreeFlags & 2064) && null !== child)\n (child.return = fiber), (nextEffect = child);\n else\n b: for (; null !== nextEffect; ) {\n fiber = nextEffect;\n if (0 !== (fiber.flags & 2048))\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(9, fiber, fiber.return);\n }\n var sibling$jscomp$0 = fiber.sibling;\n if (null !== sibling$jscomp$0) {\n sibling$jscomp$0.return = fiber.return;\n nextEffect = sibling$jscomp$0;\n break b;\n }\n nextEffect = fiber.return;\n }\n }\n var finishedWork = renderPriority.current;\n for (nextEffect = finishedWork; null !== nextEffect; ) {\n child = nextEffect;\n var firstChild = child.child;\n if (0 !== (child.subtreeFlags & 2064) && null !== firstChild)\n (firstChild.return = child), (nextEffect = firstChild);\n else\n b: for (child = finishedWork; null !== nextEffect; ) {\n deletions = nextEffect;\n if (0 !== (deletions.flags & 2048))\n try {\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListMount(9, deletions);\n }\n } catch (error) {\n captureCommitPhaseError(deletions, deletions.return, error);\n }\n if (deletions === child) {\n nextEffect = null;\n break b;\n }\n var sibling$jscomp$1 = deletions.sibling;\n if (null !== sibling$jscomp$1) {\n sibling$jscomp$1.return = deletions.return;\n nextEffect = sibling$jscomp$1;\n break b;\n }\n nextEffect = deletions.return;\n }\n }\n executionContext = prevExecutionContext;\n flushSyncCallbacks();\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onPostCommitFiberRoot\n )\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, renderPriority);\n } catch (err) {}\n JSCompiler_inline_result = !0;\n }\n return JSCompiler_inline_result;\n } finally {\n (currentUpdatePriority = previousPriority),\n (ReactCurrentBatchConfig$2.transition = prevTransition);\n }\n }\n return !1;\n}\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createRootErrorUpdate(rootFiber, sourceFiber, 1);\n rootFiber = enqueueUpdate(rootFiber, sourceFiber, 1);\n sourceFiber = requestEventTime();\n null !== rootFiber &&\n (markRootUpdated(rootFiber, 1, sourceFiber),\n ensureRootIsScheduled(rootFiber, sourceFiber));\n}\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {\n if (3 === sourceFiber.tag)\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n else\n for (\n nearestMountedAncestor = sourceFiber.return;\n null !== nearestMountedAncestor;\n\n ) {\n if (3 === nearestMountedAncestor.tag) {\n captureCommitPhaseErrorOnRoot(\n nearestMountedAncestor,\n sourceFiber,\n error\n );\n break;\n } else if (1 === nearestMountedAncestor.tag) {\n var instance = nearestMountedAncestor.stateNode;\n if (\n \"function\" ===\n typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n (\"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n ) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createClassErrorUpdate(\n nearestMountedAncestor,\n sourceFiber,\n 1\n );\n nearestMountedAncestor = enqueueUpdate(\n nearestMountedAncestor,\n sourceFiber,\n 1\n );\n sourceFiber = requestEventTime();\n null !== nearestMountedAncestor &&\n (markRootUpdated(nearestMountedAncestor, 1, sourceFiber),\n ensureRootIsScheduled(nearestMountedAncestor, sourceFiber));\n break;\n }\n }\n nearestMountedAncestor = nearestMountedAncestor.return;\n }\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n null !== pingCache && pingCache.delete(wakeable);\n wakeable = requestEventTime();\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n workInProgressRoot === root &&\n (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n (4 === workInProgressRootExitStatus ||\n (3 === workInProgressRootExitStatus &&\n (workInProgressRootRenderLanes & 130023424) ===\n workInProgressRootRenderLanes &&\n 500 > now() - globalMostRecentFallbackTime)\n ? prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes));\n ensureRootIsScheduled(root, wakeable);\n}\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n 0 === retryLane &&\n (0 === (boundaryFiber.mode & 1)\n ? (retryLane = 1)\n : ((retryLane = nextRetryLane),\n (nextRetryLane <<= 1),\n 0 === (nextRetryLane & 130023424) && (nextRetryLane = 4194304)));\n var eventTime = requestEventTime();\n boundaryFiber = markUpdateLaneFromFiberToRoot(boundaryFiber, retryLane);\n null !== boundaryFiber &&\n (markRootUpdated(boundaryFiber, retryLane, eventTime),\n ensureRootIsScheduled(boundaryFiber, eventTime));\n}\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState,\n retryLane = 0;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = 0;\n switch (boundaryFiber.tag) {\n case 13:\n var retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n break;\n case 19:\n retryCache = boundaryFiber.stateNode;\n break;\n default:\n throw Error(\n \"Pinged unknown suspense boundary type. This is probably a bug in React.\"\n );\n }\n null !== retryCache && retryCache.delete(wakeable);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nvar beginWork$1;\nbeginWork$1 = function(current, workInProgress, renderLanes) {\n if (null !== current)\n if (\n current.memoizedProps !== workInProgress.pendingProps ||\n didPerformWorkStackCursor.current\n )\n didReceiveUpdate = !0;\n else {\n if (\n 0 === (current.lanes & renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else didReceiveUpdate = !1;\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 2:\n var Component = workInProgress.type;\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress);\n current = workInProgress.pendingProps;\n var context = getMaskedContext(\n workInProgress,\n contextStackCursor.current\n );\n prepareToReadContext(workInProgress, renderLanes);\n context = renderWithHooks(\n null,\n workInProgress,\n Component,\n current,\n context,\n renderLanes\n );\n workInProgress.flags |= 1;\n if (\n \"object\" === typeof context &&\n null !== context &&\n \"function\" === typeof context.render &&\n void 0 === context.$$typeof\n ) {\n workInProgress.tag = 1;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n if (isContextProvider(Component)) {\n var hasContext = !0;\n pushContextProvider(workInProgress);\n } else hasContext = !1;\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state\n ? context.state\n : null;\n initializeUpdateQueue(workInProgress);\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n mountClassInstance(workInProgress, Component, current, renderLanes);\n workInProgress = finishClassComponent(\n null,\n workInProgress,\n Component,\n !0,\n hasContext,\n renderLanes\n );\n } else\n (workInProgress.tag = 0),\n reconcileChildren(null, workInProgress, context, renderLanes),\n (workInProgress = workInProgress.child);\n return workInProgress;\n case 16:\n Component = workInProgress.elementType;\n a: {\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress);\n current = workInProgress.pendingProps;\n context = Component._init;\n Component = context(Component._payload);\n workInProgress.type = Component;\n context = workInProgress.tag = resolveLazyComponentTag(Component);\n current = resolveDefaultProps(Component, current);\n switch (context) {\n case 0:\n workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n Component,\n current,\n renderLanes\n );\n break a;\n case 1:\n workInProgress = updateClassComponent(\n null,\n workInProgress,\n Component,\n current,\n renderLanes\n );\n break a;\n case 11:\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n Component,\n current,\n renderLanes\n );\n break a;\n case 14:\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n Component,\n resolveDefaultProps(Component.type, current),\n renderLanes\n );\n break a;\n }\n throw Error(\n \"Element type is invalid. Received a promise that resolves to: \" +\n Component +\n \". Lazy element type must resolve to a class or function.\"\n );\n }\n return workInProgress;\n case 0:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n updateFunctionComponent(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 1:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n updateClassComponent(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 3:\n pushHostRootContext(workInProgress);\n if (null === current)\n throw Error(\"Should have a current fiber. This is a bug in React.\");\n context = workInProgress.pendingProps;\n Component = workInProgress.memoizedState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, context, null, renderLanes);\n context = workInProgress.memoizedState.element;\n context === Component\n ? (workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ))\n : (reconcileChildren(current, workInProgress, context, renderLanes),\n (workInProgress = workInProgress.child));\n return workInProgress;\n case 5:\n return (\n pushHostContext(workInProgress),\n (Component = workInProgress.pendingProps.children),\n markRef(current, workInProgress),\n reconcileChildren(current, workInProgress, Component, renderLanes),\n workInProgress.child\n );\n case 6:\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (Component = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n ))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n workInProgress.child\n );\n case 11:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n updateForwardRef(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n a: {\n Component = workInProgress.type._context;\n context = workInProgress.pendingProps;\n hasContext = workInProgress.memoizedProps;\n var newValue = context.value;\n push(valueCursor, Component._currentValue2);\n Component._currentValue2 = newValue;\n if (null !== hasContext)\n if (objectIs(hasContext.value, newValue)) {\n if (\n hasContext.children === context.children &&\n !didPerformWorkStackCursor.current\n ) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n } else\n for (\n hasContext = workInProgress.child,\n null !== hasContext && (hasContext.return = workInProgress);\n null !== hasContext;\n\n ) {\n var list = hasContext.dependencies;\n if (null !== list) {\n newValue = hasContext.child;\n for (\n var dependency = list.firstContext;\n null !== dependency;\n\n ) {\n if (dependency.context === Component) {\n if (1 === hasContext.tag) {\n dependency = createUpdate(-1, renderLanes & -renderLanes);\n dependency.tag = 2;\n var updateQueue = hasContext.updateQueue;\n if (null !== updateQueue) {\n updateQueue = updateQueue.shared;\n var pending = updateQueue.pending;\n null === pending\n ? (dependency.next = dependency)\n : ((dependency.next = pending.next),\n (pending.next = dependency));\n updateQueue.pending = dependency;\n }\n }\n hasContext.lanes |= renderLanes;\n dependency = hasContext.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n hasContext.return,\n renderLanes,\n workInProgress\n );\n list.lanes |= renderLanes;\n break;\n }\n dependency = dependency.next;\n }\n } else if (10 === hasContext.tag)\n newValue =\n hasContext.type === workInProgress.type\n ? null\n : hasContext.child;\n else if (18 === hasContext.tag) {\n newValue = hasContext.return;\n if (null === newValue)\n throw Error(\n \"We just came from a parent so we must have had a parent. This is a bug in React.\"\n );\n newValue.lanes |= renderLanes;\n list = newValue.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n newValue,\n renderLanes,\n workInProgress\n );\n newValue = hasContext.sibling;\n } else newValue = hasContext.child;\n if (null !== newValue) newValue.return = hasContext;\n else\n for (newValue = hasContext; null !== newValue; ) {\n if (newValue === workInProgress) {\n newValue = null;\n break;\n }\n hasContext = newValue.sibling;\n if (null !== hasContext) {\n hasContext.return = newValue.return;\n newValue = hasContext;\n break;\n }\n newValue = newValue.return;\n }\n hasContext = newValue;\n }\n reconcileChildren(\n current,\n workInProgress,\n context.children,\n renderLanes\n );\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 9:\n return (\n (context = workInProgress.type),\n (Component = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress, renderLanes),\n (context = readContext(context)),\n (Component = Component(context)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, Component, renderLanes),\n workInProgress.child\n );\n case 14:\n return (\n (Component = workInProgress.type),\n (context = resolveDefaultProps(Component, workInProgress.pendingProps)),\n (context = resolveDefaultProps(Component.type, context)),\n updateMemoComponent(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 17:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress),\n (workInProgress.tag = 1),\n isContextProvider(Component)\n ? ((current = !0), pushContextProvider(workInProgress))\n : (current = !1),\n prepareToReadContext(workInProgress, renderLanes),\n constructClassInstance(workInProgress, Component, context),\n mountClassInstance(workInProgress, Component, context, renderLanes),\n finishClassComponent(\n null,\n workInProgress,\n Component,\n !0,\n current,\n renderLanes\n )\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(current, workInProgress, renderLanes);\n }\n throw Error(\n \"Unknown unit of work tag (\" +\n workInProgress.tag +\n \"). This error is likely caused by a bug in React. Please file an issue.\"\n );\n};\nfunction scheduleCallback$1(priorityLevel, callback) {\n return scheduleCallback(priorityLevel, callback);\n}\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null;\n this.index = 0;\n this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiber(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction resolveLazyComponentTag(Component) {\n if (\"function\" === typeof Component)\n return shouldConstruct(Component) ? 1 : 0;\n if (void 0 !== Component && null !== Component) {\n Component = Component.$$typeof;\n if (Component === REACT_FORWARD_REF_TYPE) return 11;\n if (Component === REACT_MEMO_TYPE) return 14;\n }\n return 2;\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiber(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 14680064;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 2;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type) fiberTag = 5;\n else\n a: switch (type) {\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 8;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiber(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiber(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiber(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_OFFSCREEN_TYPE:\n return createFiberFromOffscreen(pendingProps, mode, lanes, key);\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_PROVIDER_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONTEXT_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n throw Error(\n \"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: \" +\n ((null == type ? type : typeof type) + \".\")\n );\n }\n key = createFiber(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiber(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromOffscreen(pendingProps, mode, lanes, key) {\n pendingProps = createFiber(22, pendingProps, key, mode);\n pendingProps.elementType = REACT_OFFSCREEN_TYPE;\n pendingProps.lanes = lanes;\n pendingProps.stateNode = { isHidden: !1 };\n return pendingProps;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiber(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiber(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nfunction FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onRecoverableError\n) {\n this.tag = tag;\n this.containerInfo = containerInfo;\n this.finishedWork = this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = -1;\n this.callbackNode = this.pendingContext = this.context = null;\n this.callbackPriority = 0;\n this.eventTimes = createLaneMap(0);\n this.expirationTimes = createLaneMap(-1);\n this.entangledLanes = this.finishedLanes = this.mutableReadLanes = this.expiredLanes = this.pingedLanes = this.suspendedLanes = this.pendingLanes = 0;\n this.entanglements = createLaneMap(0);\n this.identifierPrefix = identifierPrefix;\n this.onRecoverableError = onRecoverableError;\n}\nfunction createPortal(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\nfunction findHostInstance(component) {\n var fiber = component._reactInternals;\n if (void 0 === fiber) {\n if (\"function\" === typeof component.render)\n throw Error(\"Unable to find node on an unmounted component.\");\n component = Object.keys(component).join(\",\");\n throw Error(\n \"Argument appears to not be a ReactComponent. Keys: \" + component\n );\n }\n component = findCurrentHostFiber(fiber);\n return null === component ? null : component.stateNode;\n}\nfunction updateContainer(element, container, parentComponent, callback) {\n var current = container.current,\n eventTime = requestEventTime(),\n lane = requestUpdateLane(current);\n a: if (parentComponent) {\n parentComponent = parentComponent._reactInternals;\n b: {\n if (\n getNearestMountedFiber(parentComponent) !== parentComponent ||\n 1 !== parentComponent.tag\n )\n throw Error(\n \"Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.\"\n );\n var JSCompiler_inline_result = parentComponent;\n do {\n switch (JSCompiler_inline_result.tag) {\n case 3:\n JSCompiler_inline_result =\n JSCompiler_inline_result.stateNode.context;\n break b;\n case 1:\n if (isContextProvider(JSCompiler_inline_result.type)) {\n JSCompiler_inline_result =\n JSCompiler_inline_result.stateNode\n .__reactInternalMemoizedMergedChildContext;\n break b;\n }\n }\n JSCompiler_inline_result = JSCompiler_inline_result.return;\n } while (null !== JSCompiler_inline_result);\n throw Error(\n \"Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (1 === parentComponent.tag) {\n var Component = parentComponent.type;\n if (isContextProvider(Component)) {\n parentComponent = processChildContext(\n parentComponent,\n Component,\n JSCompiler_inline_result\n );\n break a;\n }\n }\n parentComponent = JSCompiler_inline_result;\n } else parentComponent = emptyContextObject;\n null === container.context\n ? (container.context = parentComponent)\n : (container.pendingContext = parentComponent);\n container = createUpdate(eventTime, lane);\n container.payload = { element: element };\n callback = void 0 === callback ? null : callback;\n null !== callback && (container.callback = callback);\n element = enqueueUpdate(current, container, lane);\n null !== element &&\n (scheduleUpdateOnFiber(element, current, lane, eventTime),\n entangleTransitions(element, current, lane));\n return lane;\n}\nfunction emptyFindFiberByHostInstance() {\n return null;\n}\nfunction findNodeHandle(componentOrHandle) {\n if (null == componentOrHandle) return null;\n if (\"number\" === typeof componentOrHandle) return componentOrHandle;\n if (componentOrHandle._nativeTag) return componentOrHandle._nativeTag;\n if (componentOrHandle.canonical && componentOrHandle.canonical._nativeTag)\n return componentOrHandle.canonical._nativeTag;\n componentOrHandle = findHostInstance(componentOrHandle);\n return null == componentOrHandle\n ? componentOrHandle\n : componentOrHandle.canonical\n ? componentOrHandle.canonical._nativeTag\n : componentOrHandle._nativeTag;\n}\nfunction onRecoverableError(error) {\n console.error(error);\n}\nbatchedUpdatesImpl = function(fn, a) {\n var prevExecutionContext = executionContext;\n executionContext |= 1;\n try {\n return fn(a);\n } finally {\n (executionContext = prevExecutionContext),\n 0 === executionContext &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n includesLegacySyncCallbacks && flushSyncCallbacks());\n }\n};\nvar roots = new Map(),\n devToolsConfig$jscomp$inline_938 = {\n findFiberByHostInstance: getInstanceFromInstance,\n bundleType: 0,\n version: \"18.2.0-next-9e3b772b8-20220608\",\n rendererPackageName: \"react-native-renderer\",\n rendererConfig: {\n getInspectorDataForViewTag: function() {\n throw Error(\n \"getInspectorDataForViewTag() is not available in production\"\n );\n },\n getInspectorDataForViewAtPoint: function() {\n throw Error(\n \"getInspectorDataForViewAtPoint() is not available in production.\"\n );\n }.bind(null, findNodeHandle)\n }\n };\nvar internals$jscomp$inline_1180 = {\n bundleType: devToolsConfig$jscomp$inline_938.bundleType,\n version: devToolsConfig$jscomp$inline_938.version,\n rendererPackageName: devToolsConfig$jscomp$inline_938.rendererPackageName,\n rendererConfig: devToolsConfig$jscomp$inline_938.rendererConfig,\n overrideHookState: null,\n overrideHookStateDeletePath: null,\n overrideHookStateRenamePath: null,\n overrideProps: null,\n overridePropsDeletePath: null,\n overridePropsRenamePath: null,\n setErrorHandler: null,\n setSuspenseHandler: null,\n scheduleUpdate: null,\n currentDispatcherRef: ReactSharedInternals.ReactCurrentDispatcher,\n findHostInstanceByFiber: function(fiber) {\n fiber = findCurrentHostFiber(fiber);\n return null === fiber ? null : fiber.stateNode;\n },\n findFiberByHostInstance:\n devToolsConfig$jscomp$inline_938.findFiberByHostInstance ||\n emptyFindFiberByHostInstance,\n findHostInstancesForRefresh: null,\n scheduleRefresh: null,\n scheduleRoot: null,\n setRefreshHandler: null,\n getCurrentFiber: null,\n reconcilerVersion: \"18.2.0-next-9e3b772b8-20220608\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var hook$jscomp$inline_1181 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (\n !hook$jscomp$inline_1181.isDisabled &&\n hook$jscomp$inline_1181.supportsFiber\n )\n try {\n (rendererID = hook$jscomp$inline_1181.inject(\n internals$jscomp$inline_1180\n )),\n (injectedHook = hook$jscomp$inline_1181);\n } catch (err) {}\n}\nexports.createPortal = function(children, containerTag) {\n return createPortal(\n children,\n containerTag,\n null,\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null\n );\n};\nexports.dispatchCommand = function(handle, command, args) {\n null != handle._nativeTag &&\n (null != handle._internalInstanceHandle\n ? ((handle = handle._internalInstanceHandle.stateNode),\n null != handle &&\n nativeFabricUIManager.dispatchCommand(handle.node, command, args))\n : ReactNativePrivateInterface.UIManager.dispatchViewManagerCommand(\n handle._nativeTag,\n command,\n args\n ));\n};\nexports.findHostInstance_DEPRECATED = function(componentOrHandle) {\n if (null == componentOrHandle) return null;\n if (componentOrHandle._nativeTag) return componentOrHandle;\n if (componentOrHandle.canonical && componentOrHandle.canonical._nativeTag)\n return componentOrHandle.canonical;\n componentOrHandle = findHostInstance(componentOrHandle);\n return null == componentOrHandle\n ? componentOrHandle\n : componentOrHandle.canonical\n ? componentOrHandle.canonical\n : componentOrHandle;\n};\nexports.findNodeHandle = findNodeHandle;\nexports.getInspectorDataForInstance = void 0;\nexports.render = function(element, containerTag, callback, concurrentRoot) {\n var root = roots.get(containerTag);\n root ||\n ((root = concurrentRoot ? 1 : 0),\n (concurrentRoot = new FiberRootNode(\n containerTag,\n root,\n !1,\n \"\",\n onRecoverableError\n )),\n (root = createFiber(3, null, null, 1 === root ? 1 : 0)),\n (concurrentRoot.current = root),\n (root.stateNode = concurrentRoot),\n (root.memoizedState = {\n element: null,\n isDehydrated: !1,\n cache: null,\n transitions: null,\n pendingSuspenseBoundaries: null\n }),\n initializeUpdateQueue(root),\n (root = concurrentRoot),\n roots.set(containerTag, root));\n updateContainer(element, root, null, callback);\n a: if (((element = root.current), element.child))\n switch (element.child.tag) {\n case 5:\n element = element.child.stateNode.canonical;\n break a;\n default:\n element = element.child.stateNode;\n }\n else element = null;\n return element;\n};\nexports.sendAccessibilityEvent = function(handle, eventType) {\n null != handle._nativeTag &&\n (null != handle._internalInstanceHandle\n ? ((handle = handle._internalInstanceHandle.stateNode),\n null != handle &&\n nativeFabricUIManager.sendAccessibilityEvent(handle.node, eventType))\n : ReactNativePrivateInterface.legacySendAccessibilityEvent(\n handle._nativeTag,\n eventType\n ));\n};\nexports.stopSurface = function(containerTag) {\n var root = roots.get(containerTag);\n root &&\n updateContainer(null, root, null, function() {\n roots.delete(containerTag);\n });\n};\nexports.unmountComponentAtNode = function(containerTag) {\n this.stopSurface(containerTag);\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport '../Core/InitializeCore';\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n/**\n * Sets up global variables typical in most JavaScript environments.\n *\n * 1. Global timers (via `setTimeout` etc).\n * 2. Global console object.\n * 3. Hooks for printing stack traces with source maps.\n *\n * Leaves enough room in the environment for implementing your own:\n *\n * 1. Require system.\n * 2. Bridged modules.\n *\n */\n\n'use strict';\n\nconst start = Date.now();\n\nrequire('./setUpGlobals');\nrequire('./setUpDOM');\nrequire('./setUpPerformance');\nrequire('./setUpErrorHandling');\nrequire('./polyfillPromise');\nrequire('./setUpRegeneratorRuntime');\nrequire('./setUpTimers');\nrequire('./setUpXHR');\nrequire('./setUpAlert');\nrequire('./setUpNavigator');\nrequire('./setUpBatchedBridge');\nrequire('./setUpSegmentFetcher');\nif (__DEV__) {\n require('./checkNativeVersion');\n require('./setUpDeveloperTools');\n require('../LogBox/LogBox').default.install();\n}\n\nrequire('../ReactNative/AppRegistry');\n\nconst GlobalPerformanceLogger = require('../Utilities/GlobalPerformanceLogger');\n// We could just call GlobalPerformanceLogger.markPoint at the top of the file,\n// but then we'd be excluding the time it took to require the logger.\n// Instead, we just use Date.now and backdate the timestamp.\nGlobalPerformanceLogger.markPoint(\n 'initializeCore_start',\n GlobalPerformanceLogger.currentTimestamp() - (Date.now() - start),\n);\nGlobalPerformanceLogger.markPoint('initializeCore_end');\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\n/**\n * Sets up global variables for React Native.\n * You can use this module directly, or just require InitializeCore.\n */\nif (global.window === undefined) {\n // $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.\n global.window = global;\n}\n\nif (global.self === undefined) {\n // $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.\n global.self = global;\n}\n\n// Set up process\n// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.\nglobal.process = global.process || {};\n// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.\nglobal.process.env = global.process.env || {};\nif (!global.process.env.NODE_ENV) {\n // $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.\n global.process.env.NODE_ENV = __DEV__ ? 'development' : 'production';\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport DOMRect from '../DOM/Geometry/DOMRect';\nimport DOMRectReadOnly from '../DOM/Geometry/DOMRectReadOnly';\n\n// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it\nglobal.DOMRect = DOMRect;\n\n// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it\nglobal.DOMRectReadOnly = DOMRectReadOnly;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n/**\n * The JSDoc comments in this file have been extracted from [DOMRect](https://developer.mozilla.org/en-US/docs/Web/API/DOMRect).\n * Content by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/DOMRect/contributors.txt),\n * licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).\n */\n\nimport DOMRectReadOnly, {type DOMRectLike} from './DOMRectReadOnly';\n\n// flowlint unsafe-getters-setters:off\n\n/**\n * A `DOMRect` describes the size and position of a rectangle.\n * The type of box represented by the `DOMRect` is specified by the method or property that returned it.\n *\n * This is a (mostly) spec-compliant version of `DOMRect` (https://developer.mozilla.org/en-US/docs/Web/API/DOMRect).\n */\nexport default class DOMRect extends DOMRectReadOnly {\n /**\n * The x coordinate of the `DOMRect`'s origin.\n */\n get x(): number {\n return this.__getInternalX();\n }\n\n set x(x: ?number) {\n this.__setInternalX(x);\n }\n\n /**\n * The y coordinate of the `DOMRect`'s origin.\n */\n get y(): number {\n return this.__getInternalY();\n }\n\n set y(y: ?number) {\n this.__setInternalY(y);\n }\n\n /**\n * The width of the `DOMRect`.\n */\n get width(): number {\n return this.__getInternalWidth();\n }\n\n set width(width: ?number) {\n this.__setInternalWidth(width);\n }\n\n /**\n * The height of the `DOMRect`.\n */\n get height(): number {\n return this.__getInternalHeight();\n }\n\n set height(height: ?number) {\n this.__setInternalHeight(height);\n }\n\n /**\n * Creates a new `DOMRect` object with a given location and dimensions.\n */\n static fromRect(rect?: ?DOMRectLike): DOMRect {\n if (!rect) {\n return new DOMRect();\n }\n\n return new DOMRect(rect.x, rect.y, rect.width, rect.height);\n }\n}\n","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n/**\n * The JSDoc comments in this file have been extracted from [DOMRectReadOnly](https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly).\n * Content by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly/contributors.txt),\n * licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).\n */\n\n// flowlint sketchy-null:off, unsafe-getters-setters:off\n\nexport interface DOMRectLike {\n x?: ?number;\n y?: ?number;\n width?: ?number;\n height?: ?number;\n}\n\nfunction castToNumber(value: mixed): number {\n return value ? Number(value) : 0;\n}\n\n/**\n * The `DOMRectReadOnly` interface specifies the standard properties used by `DOMRect` to define a rectangle whose properties are immutable.\n *\n * This is a (mostly) spec-compliant version of `DOMRectReadOnly` (https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly).\n */\nexport default class DOMRectReadOnly {\n _x: number;\n _y: number;\n _width: number;\n _height: number;\n\n constructor(x: ?number, y: ?number, width: ?number, height: ?number) {\n this.__setInternalX(x);\n this.__setInternalY(y);\n this.__setInternalWidth(width);\n this.__setInternalHeight(height);\n }\n\n /**\n * The x coordinate of the `DOMRectReadOnly`'s origin.\n */\n get x(): number {\n return this._x;\n }\n\n /**\n * The y coordinate of the `DOMRectReadOnly`'s origin.\n */\n get y(): number {\n return this._y;\n }\n\n /**\n * The width of the `DOMRectReadOnly`.\n */\n get width(): number {\n return this._width;\n }\n\n /**\n * The height of the `DOMRectReadOnly`.\n */\n get height(): number {\n return this._height;\n }\n\n /**\n * Returns the top coordinate value of the `DOMRect` (has the same value as `y`, or `y + height` if `height` is negative).\n */\n get top(): number {\n const height = this._height;\n const y = this._y;\n\n if (height < 0) {\n return y + height;\n }\n\n return y;\n }\n\n /**\n * Returns the right coordinate value of the `DOMRect` (has the same value as ``x + width`, or `x` if `width` is negative).\n */\n get right(): number {\n const width = this._width;\n const x = this._x;\n\n if (width < 0) {\n return x;\n }\n\n return x + width;\n }\n\n /**\n * Returns the bottom coordinate value of the `DOMRect` (has the same value as `y + height`, or `y` if `height` is negative).\n */\n get bottom(): number {\n const height = this._height;\n const y = this._y;\n\n if (height < 0) {\n return y;\n }\n\n return y + height;\n }\n\n /**\n * Returns the left coordinate value of the `DOMRect` (has the same value as `x`, or `x + width` if `width` is negative).\n */\n get left(): number {\n const width = this._width;\n const x = this._x;\n\n if (width < 0) {\n return x + width;\n }\n\n return x;\n }\n\n toJSON(): {\n x: number,\n y: number,\n width: number,\n height: number,\n top: number,\n left: number,\n bottom: number,\n right: number,\n } {\n const {x, y, width, height, top, left, bottom, right} = this;\n return {x, y, width, height, top, left, bottom, right};\n }\n\n /**\n * Creates a new `DOMRectReadOnly` object with a given location and dimensions.\n */\n static fromRect(rect?: ?DOMRectLike): DOMRectReadOnly {\n if (!rect) {\n return new DOMRectReadOnly();\n }\n\n return new DOMRectReadOnly(rect.x, rect.y, rect.width, rect.height);\n }\n\n __getInternalX(): number {\n return this._x;\n }\n\n __getInternalY(): number {\n return this._y;\n }\n\n __getInternalWidth(): number {\n return this._width;\n }\n\n __getInternalHeight(): number {\n return this._height;\n }\n\n __setInternalX(x: ?number) {\n this._x = castToNumber(x);\n }\n\n __setInternalY(y: ?number) {\n this._y = castToNumber(y);\n }\n\n __setInternalWidth(width: ?number) {\n this._width = castToNumber(width);\n }\n\n __setInternalHeight(height: ?number) {\n this._height = castToNumber(height);\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport NativePerformance from '../WebPerformance/NativePerformance';\nimport Performance from '../WebPerformance/Performance';\n\n// In case if the native implementation of the Performance API is available, use it,\n// otherwise fall back to the legacy/default one, which only defines 'Performance.now()'\nif (NativePerformance) {\n // $FlowExpectedError[cannot-write]\n global.performance = new Performance();\n} else {\n if (!global.performance) {\n // $FlowExpectedError[cannot-write]\n global.performance = ({}: {now?: () => number});\n }\n\n /**\n * Returns a double, measured in milliseconds.\n * https://developer.mozilla.org/en-US/docs/Web/API/Performance/now\n */\n if (typeof global.performance.now !== 'function') {\n // $FlowExpectedError[cannot-write]\n global.performance.now = function () {\n const performanceNow = global.nativePerformanceNow || Date.now;\n return performanceNow();\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport type NativeMemoryInfo = {[key: string]: number};\n\nexport type ReactNativeStartupTiming = {|\n startTime: number,\n endTime: number,\n executeJavaScriptBundleEntryPointStart: number,\n executeJavaScriptBundleEntryPointEnd: number,\n|};\n\nexport interface Spec extends TurboModule {\n +mark: (name: string, startTime: number, duration: number) => void;\n +measure: (\n name: string,\n startTime: number,\n endTime: number,\n duration?: number,\n startMark?: string,\n endMark?: string,\n ) => void;\n +getSimpleMemoryInfo: () => NativeMemoryInfo;\n +getReactNativeStartupTiming: () => ReactNativeStartupTiming;\n}\n\nexport default (TurboModuleRegistry.get('NativePerformanceCxx'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n// flowlint unsafe-getters-setters:off\n\nimport type {HighResTimeStamp, PerformanceEntryType} from './PerformanceEntry';\nimport type {PerformanceEntryList} from './PerformanceObserver';\n\nimport warnOnce from '../Utilities/warnOnce';\nimport EventCounts from './EventCounts';\nimport MemoryInfo from './MemoryInfo';\nimport NativePerformance from './NativePerformance';\nimport NativePerformanceObserver from './NativePerformanceObserver';\nimport {PerformanceEntry} from './PerformanceEntry';\nimport {warnNoNativePerformanceObserver} from './PerformanceObserver';\nimport {\n performanceEntryTypeToRaw,\n rawToPerformanceEntry,\n} from './RawPerformanceEntry';\nimport {RawPerformanceEntryTypeValues} from './RawPerformanceEntry';\nimport ReactNativeStartupTiming from './ReactNativeStartupTiming';\n\ntype DetailType = mixed;\n\nexport type PerformanceMarkOptions = {\n detail?: DetailType,\n startTime?: HighResTimeStamp,\n};\n\ndeclare var global: {\n // This value is defined directly via JSI, if available.\n +nativePerformanceNow?: ?() => number,\n};\n\nconst getCurrentTimeStamp: () => HighResTimeStamp = global.nativePerformanceNow\n ? global.nativePerformanceNow\n : () => Date.now();\n\nexport class PerformanceMark extends PerformanceEntry {\n detail: DetailType;\n\n constructor(markName: string, markOptions?: PerformanceMarkOptions) {\n super({\n name: markName,\n entryType: 'mark',\n startTime: markOptions?.startTime ?? getCurrentTimeStamp(),\n duration: 0,\n });\n\n if (markOptions) {\n this.detail = markOptions.detail;\n }\n }\n}\n\nexport type TimeStampOrName = HighResTimeStamp | string;\n\nexport type PerformanceMeasureOptions = {\n detail?: DetailType,\n start?: TimeStampOrName,\n end?: TimeStampOrName,\n duration?: HighResTimeStamp,\n};\n\nexport class PerformanceMeasure extends PerformanceEntry {\n detail: DetailType;\n\n constructor(measureName: string, measureOptions?: PerformanceMeasureOptions) {\n super({\n name: measureName,\n entryType: 'measure',\n startTime: 0,\n duration: measureOptions?.duration ?? 0,\n });\n\n if (measureOptions) {\n this.detail = measureOptions.detail;\n }\n }\n}\n\nfunction warnNoNativePerformance() {\n warnOnce(\n 'missing-native-performance',\n 'Missing native implementation of Performance',\n );\n}\n\n/**\n * Partial implementation of the Performance interface for RN,\n * corresponding to the standard in\n * https://www.w3.org/TR/user-timing/#extensions-performance-interface\n */\nexport default class Performance {\n eventCounts: EventCounts = new EventCounts();\n\n // Get the current JS memory information.\n get memory(): MemoryInfo {\n if (NativePerformance?.getSimpleMemoryInfo) {\n // JSI API implementations may have different variants of names for the JS\n // heap information we need here. We will parse the result based on our\n // guess of the implementation for now.\n const memoryInfo = NativePerformance.getSimpleMemoryInfo();\n if (memoryInfo.hasOwnProperty('hermes_heapSize')) {\n // We got memory information from Hermes\n const {\n hermes_heapSize: totalJSHeapSize,\n hermes_allocatedBytes: usedJSHeapSize,\n } = memoryInfo;\n\n return new MemoryInfo({\n jsHeapSizeLimit: null, // We don't know the heap size limit from Hermes.\n totalJSHeapSize,\n usedJSHeapSize,\n });\n } else {\n // JSC and V8 has no native implementations for memory information in JSI::Instrumentation\n return new MemoryInfo();\n }\n }\n\n return new MemoryInfo();\n }\n\n // Startup metrics is not used in web, but only in React Native.\n get reactNativeStartupTiming(): ReactNativeStartupTiming {\n if (NativePerformance?.getReactNativeStartupTiming) {\n return new ReactNativeStartupTiming(\n NativePerformance.getReactNativeStartupTiming(),\n );\n }\n return new ReactNativeStartupTiming();\n }\n\n mark(\n markName: string,\n markOptions?: PerformanceMarkOptions,\n ): PerformanceMark {\n const mark = new PerformanceMark(markName, markOptions);\n\n if (NativePerformance?.mark) {\n NativePerformance.mark(markName, mark.startTime, mark.duration);\n } else {\n warnNoNativePerformance();\n }\n\n return mark;\n }\n\n clearMarks(markName?: string): void {\n if (!NativePerformanceObserver?.clearEntries) {\n warnNoNativePerformanceObserver();\n return;\n }\n\n NativePerformanceObserver?.clearEntries(\n RawPerformanceEntryTypeValues.MARK,\n markName,\n );\n }\n\n measure(\n measureName: string,\n startMarkOrOptions?: string | PerformanceMeasureOptions,\n endMark?: string,\n ): PerformanceMeasure {\n let options;\n let startMarkName,\n endMarkName = endMark,\n duration,\n startTime = 0,\n endTime = 0;\n\n if (typeof startMarkOrOptions === 'string') {\n startMarkName = startMarkOrOptions;\n } else if (startMarkOrOptions !== undefined) {\n options = startMarkOrOptions;\n if (endMark !== undefined) {\n throw new TypeError(\n \"Performance.measure: Can't have both options and endMark\",\n );\n }\n if (options.start === undefined && options.end === undefined) {\n throw new TypeError(\n 'Performance.measure: Must have at least one of start/end specified in options',\n );\n }\n if (\n options.start !== undefined &&\n options.end !== undefined &&\n options.duration !== undefined\n ) {\n throw new TypeError(\n \"Performance.measure: Can't have both start/end and duration explicitly in options\",\n );\n }\n\n if (typeof options.start === 'number') {\n startTime = options.start;\n } else {\n startMarkName = options.start;\n }\n\n if (typeof options.end === 'number') {\n endTime = options.end;\n } else {\n endMarkName = options.end;\n }\n\n duration = options.duration ?? duration;\n }\n\n const measure = new PerformanceMeasure(measureName, options);\n\n if (NativePerformance?.measure) {\n NativePerformance.measure(\n measureName,\n startTime,\n endTime,\n duration,\n startMarkName,\n endMarkName,\n );\n } else {\n warnNoNativePerformance();\n }\n\n return measure;\n }\n\n clearMeasures(measureName?: string): void {\n if (!NativePerformanceObserver?.clearEntries) {\n warnNoNativePerformanceObserver();\n return;\n }\n\n NativePerformanceObserver?.clearEntries(\n RawPerformanceEntryTypeValues.MEASURE,\n measureName,\n );\n }\n\n /**\n * Returns a double, measured in milliseconds.\n * https://developer.mozilla.org/en-US/docs/Web/API/Performance/now\n */\n now(): HighResTimeStamp {\n return getCurrentTimeStamp();\n }\n\n /**\n * An extension that allows to get back to JS all currently logged marks/measures\n * (in our case, be it from JS or native), see\n * https://www.w3.org/TR/performance-timeline/#extensions-to-the-performance-interface\n */\n getEntries(): PerformanceEntryList {\n if (!NativePerformanceObserver?.clearEntries) {\n warnNoNativePerformanceObserver();\n return [];\n }\n return NativePerformanceObserver.getEntries().map(rawToPerformanceEntry);\n }\n\n getEntriesByType(entryType: PerformanceEntryType): PerformanceEntryList {\n if (entryType !== 'mark' && entryType !== 'measure') {\n console.log(\n `Performance.getEntriesByType: Only valid for 'mark' and 'measure' entry types, got ${entryType}`,\n );\n return [];\n }\n\n if (!NativePerformanceObserver?.clearEntries) {\n warnNoNativePerformanceObserver();\n return [];\n }\n return NativePerformanceObserver.getEntries(\n performanceEntryTypeToRaw(entryType),\n ).map(rawToPerformanceEntry);\n }\n\n getEntriesByName(\n entryName: string,\n entryType?: PerformanceEntryType,\n ): PerformanceEntryList {\n if (\n entryType !== undefined &&\n entryType !== 'mark' &&\n entryType !== 'measure'\n ) {\n console.log(\n `Performance.getEntriesByName: Only valid for 'mark' and 'measure' entry types, got ${entryType}`,\n );\n return [];\n }\n\n if (!NativePerformanceObserver?.clearEntries) {\n warnNoNativePerformanceObserver();\n return [];\n }\n return NativePerformanceObserver.getEntries(\n entryType != null ? performanceEntryTypeToRaw(entryType) : undefined,\n entryName,\n ).map(rawToPerformanceEntry);\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nconst warnedKeys: {[string]: boolean, ...} = {};\n\n/**\n * A simple function that prints a warning message once per session.\n *\n * @param {string} key - The key used to ensure the message is printed once.\n * This should be unique to the callsite.\n * @param {string} message - The message to print\n */\nfunction warnOnce(key: string, message: string) {\n if (warnedKeys[key]) {\n return;\n }\n\n console.warn(message);\n\n warnedKeys[key] = true;\n}\n\nmodule.exports = warnOnce;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport NativePerformanceObserver from './NativePerformanceObserver';\nimport {warnNoNativePerformanceObserver} from './PerformanceObserver';\n\ntype EventCountsForEachCallbackType =\n | (() => void)\n | ((value: number) => void)\n | ((value: number, key: string) => void)\n | ((value: number, key: string, map: Map) => void);\n\nlet cachedEventCounts: ?Map;\n\nfunction getCachedEventCounts(): Map {\n if (cachedEventCounts) {\n return cachedEventCounts;\n }\n if (!NativePerformanceObserver) {\n warnNoNativePerformanceObserver();\n return new Map();\n }\n\n cachedEventCounts = new Map(\n NativePerformanceObserver.getEventCounts(),\n );\n // $FlowFixMe[incompatible-call]\n global.queueMicrotask(() => {\n // To be consistent with the calls to the API from the same task,\n // but also not to refetch the data from native too often,\n // schedule to invalidate the cache later,\n // after the current task is guaranteed to have finished.\n cachedEventCounts = null;\n });\n return cachedEventCounts ?? new Map();\n}\n/**\n * Implementation of the EventCounts Web Performance API\n * corresponding to the standard in\n * https://www.w3.org/TR/event-timing/#eventcounts\n */\nexport default class EventCounts {\n // flowlint unsafe-getters-setters:off\n get size(): number {\n return getCachedEventCounts().size;\n }\n\n entries(): Iterator<[string, number]> {\n return getCachedEventCounts().entries();\n }\n\n forEach(callback: EventCountsForEachCallbackType): void {\n return getCachedEventCounts().forEach(callback);\n }\n\n get(key: string): ?number {\n return getCachedEventCounts().get(key);\n }\n\n has(key: string): boolean {\n return getCachedEventCounts().has(key);\n }\n\n keys(): Iterator {\n return getCachedEventCounts().keys();\n }\n\n values(): Iterator {\n return getCachedEventCounts().values();\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport type RawPerformanceEntryType = number;\n\nexport type RawPerformanceEntry = {|\n name: string,\n entryType: RawPerformanceEntryType,\n startTime: number,\n duration: number,\n // For \"event\" entries only:\n processingStart?: number,\n processingEnd?: number,\n interactionId?: number,\n|};\n\nexport type GetPendingEntriesResult = {|\n entries: $ReadOnlyArray,\n droppedEntriesCount: number,\n|};\n\nexport interface Spec extends TurboModule {\n +startReporting: (entryType: RawPerformanceEntryType) => void;\n +stopReporting: (entryType: RawPerformanceEntryType) => void;\n +popPendingEntries: () => GetPendingEntriesResult;\n +setOnPerformanceEntryCallback: (callback?: () => void) => void;\n +logRawEntry: (entry: RawPerformanceEntry) => void;\n +getEventCounts: () => $ReadOnlyArray<[string, number]>;\n +setDurationThreshold: (\n entryType: RawPerformanceEntryType,\n durationThreshold: number,\n ) => void;\n +clearEntries: (\n entryType: RawPerformanceEntryType,\n entryName?: string,\n ) => void;\n +getEntries: (\n entryType?: RawPerformanceEntryType,\n entryName?: string,\n ) => $ReadOnlyArray;\n}\n\nexport default (TurboModuleRegistry.get(\n 'NativePerformanceObserverCxx',\n): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport type {HighResTimeStamp, PerformanceEntryType} from './PerformanceEntry';\n\nimport warnOnce from '../Utilities/warnOnce';\nimport NativePerformanceObserver from './NativePerformanceObserver';\nimport {PerformanceEntry} from './PerformanceEntry';\nimport {\n performanceEntryTypeToRaw,\n rawToPerformanceEntry,\n} from './RawPerformanceEntry';\n\nexport type PerformanceEntryList = $ReadOnlyArray;\n\nexport class PerformanceObserverEntryList {\n _entries: PerformanceEntryList;\n\n constructor(entries: PerformanceEntryList) {\n this._entries = entries;\n }\n\n getEntries(): PerformanceEntryList {\n return this._entries;\n }\n\n getEntriesByType(type: PerformanceEntryType): PerformanceEntryList {\n return this._entries.filter(entry => entry.entryType === type);\n }\n\n getEntriesByName(\n name: string,\n type?: PerformanceEntryType,\n ): PerformanceEntryList {\n if (type === undefined) {\n return this._entries.filter(entry => entry.name === name);\n } else {\n return this._entries.filter(\n entry => entry.name === name && entry.entryType === type,\n );\n }\n }\n}\n\nexport type PerformanceObserverCallback = (\n list: PerformanceObserverEntryList,\n observer: PerformanceObserver,\n // The number of buffered entries which got dropped from the buffer due to the buffer being full:\n droppedEntryCount?: number,\n) => void;\n\nexport type PerformanceObserverInit =\n | {\n entryTypes: Array,\n }\n | {\n type: PerformanceEntryType,\n durationThreshold?: HighResTimeStamp,\n };\n\ntype PerformanceObserverConfig = {|\n callback: PerformanceObserverCallback,\n // Map of {entryType: durationThreshold}\n entryTypes: $ReadOnlyMap,\n|};\n\nconst observerCountPerEntryType: Map = new Map();\nconst registeredObservers: Map =\n new Map();\nlet isOnPerformanceEntryCallbackSet: boolean = false;\n\n// This is a callback that gets scheduled and periodically called from the native side\nconst onPerformanceEntry = () => {\n if (!NativePerformanceObserver) {\n return;\n }\n const entryResult = NativePerformanceObserver.popPendingEntries();\n const rawEntries = entryResult?.entries ?? [];\n const droppedEntriesCount = entryResult?.droppedEntriesCount;\n if (rawEntries.length === 0) {\n return;\n }\n const entries = rawEntries.map(rawToPerformanceEntry);\n for (const [observer, observerConfig] of registeredObservers.entries()) {\n const entriesForObserver: PerformanceEntryList = entries.filter(entry => {\n if (!observerConfig.entryTypes.has(entry.entryType)) {\n return false;\n }\n const durationThreshold = observerConfig.entryTypes.get(entry.entryType);\n return entry.duration >= (durationThreshold ?? 0);\n });\n observerConfig.callback(\n new PerformanceObserverEntryList(entriesForObserver),\n observer,\n droppedEntriesCount,\n );\n }\n};\n\nexport function warnNoNativePerformanceObserver() {\n warnOnce(\n 'missing-native-performance-observer',\n 'Missing native implementation of PerformanceObserver',\n );\n}\n\nfunction applyDurationThresholds() {\n const durationThresholds: Map = Array.from(\n registeredObservers.values(),\n )\n .map(config => config.entryTypes)\n .reduce(\n (accumulator, currentValue) => union(accumulator, currentValue),\n new Map(),\n );\n\n for (const [entryType, durationThreshold] of durationThresholds) {\n NativePerformanceObserver?.setDurationThreshold(\n performanceEntryTypeToRaw(entryType),\n durationThreshold ?? 0,\n );\n }\n}\n\n/**\n * Implementation of the PerformanceObserver interface for RN,\n * corresponding to the standard in https://www.w3.org/TR/performance-timeline/\n *\n * @example\n * const observer = new PerformanceObserver((list, _observer) => {\n * const entries = list.getEntries();\n * entries.forEach(entry => {\n * reportEvent({\n * eventName: entry.name,\n * startTime: entry.startTime,\n * endTime: entry.startTime + entry.duration,\n * processingStart: entry.processingStart,\n * processingEnd: entry.processingEnd,\n * interactionId: entry.interactionId,\n * });\n * });\n * });\n * observer.observe({ type: \"event\" });\n */\nexport default class PerformanceObserver {\n _callback: PerformanceObserverCallback;\n _type: 'single' | 'multiple' | void;\n\n constructor(callback: PerformanceObserverCallback) {\n this._callback = callback;\n }\n\n observe(options: PerformanceObserverInit): void {\n if (!NativePerformanceObserver) {\n warnNoNativePerformanceObserver();\n return;\n }\n\n this._validateObserveOptions(options);\n\n let requestedEntryTypes;\n\n if (options.entryTypes) {\n this._type = 'multiple';\n requestedEntryTypes = new Map(\n options.entryTypes.map(t => [t, undefined]),\n );\n } else {\n this._type = 'single';\n requestedEntryTypes = new Map([\n [options.type, options.durationThreshold],\n ]);\n }\n\n // The same observer may receive multiple calls to \"observe\", so we need\n // to check what is new on this call vs. previous ones.\n const currentEntryTypes = registeredObservers.get(this)?.entryTypes;\n const nextEntryTypes = currentEntryTypes\n ? union(requestedEntryTypes, currentEntryTypes)\n : requestedEntryTypes;\n\n // This `observe` call is a no-op because there are no new things to observe.\n if (currentEntryTypes && currentEntryTypes.size === nextEntryTypes.size) {\n return;\n }\n\n registeredObservers.set(this, {\n callback: this._callback,\n entryTypes: nextEntryTypes,\n });\n\n if (!isOnPerformanceEntryCallbackSet) {\n NativePerformanceObserver.setOnPerformanceEntryCallback(\n onPerformanceEntry,\n );\n isOnPerformanceEntryCallbackSet = true;\n }\n\n // We only need to start listenening to new entry types being observed in\n // this observer.\n const newEntryTypes = currentEntryTypes\n ? difference(\n new Set(requestedEntryTypes.keys()),\n new Set(currentEntryTypes.keys()),\n )\n : new Set(requestedEntryTypes.keys());\n for (const type of newEntryTypes) {\n if (!observerCountPerEntryType.has(type)) {\n const rawType = performanceEntryTypeToRaw(type);\n NativePerformanceObserver.startReporting(rawType);\n }\n observerCountPerEntryType.set(\n type,\n (observerCountPerEntryType.get(type) ?? 0) + 1,\n );\n }\n applyDurationThresholds();\n }\n\n disconnect(): void {\n if (!NativePerformanceObserver) {\n warnNoNativePerformanceObserver();\n return;\n }\n\n const observerConfig = registeredObservers.get(this);\n if (!observerConfig) {\n return;\n }\n\n // Disconnect this observer\n for (const type of observerConfig.entryTypes.keys()) {\n const numberOfObserversForThisType =\n observerCountPerEntryType.get(type) ?? 0;\n if (numberOfObserversForThisType === 1) {\n observerCountPerEntryType.delete(type);\n NativePerformanceObserver.stopReporting(\n performanceEntryTypeToRaw(type),\n );\n } else if (numberOfObserversForThisType !== 0) {\n observerCountPerEntryType.set(type, numberOfObserversForThisType - 1);\n }\n }\n\n // Disconnect all observers if this was the last one\n registeredObservers.delete(this);\n if (registeredObservers.size === 0) {\n NativePerformanceObserver.setOnPerformanceEntryCallback(undefined);\n isOnPerformanceEntryCallbackSet = false;\n }\n\n applyDurationThresholds();\n }\n\n _validateObserveOptions(options: PerformanceObserverInit): void {\n const {type, entryTypes, durationThreshold} = options;\n\n if (!type && !entryTypes) {\n throw new TypeError(\n \"Failed to execute 'observe' on 'PerformanceObserver': An observe() call must not include both entryTypes and type arguments.\",\n );\n }\n\n if (entryTypes && type) {\n throw new TypeError(\n \"Failed to execute 'observe' on 'PerformanceObserver': An observe() call must include either entryTypes or type arguments.\",\n );\n }\n\n if (this._type === 'multiple' && type) {\n throw new Error(\n \"Failed to execute 'observe' on 'PerformanceObserver': This observer has performed observe({entryTypes:...}, therefore it cannot perform observe({type:...})\",\n );\n }\n\n if (this._type === 'single' && entryTypes) {\n throw new Error(\n \"Failed to execute 'observe' on 'PerformanceObserver': This PerformanceObserver has performed observe({type:...}, therefore it cannot perform observe({entryTypes:...})\",\n );\n }\n\n if (entryTypes && durationThreshold !== undefined) {\n throw new TypeError(\n \"Failed to execute 'observe' on 'PerformanceObserver': An observe() call must not include both entryTypes and durationThreshold arguments.\",\n );\n }\n }\n\n static supportedEntryTypes: $ReadOnlyArray =\n Object.freeze(['mark', 'measure', 'event']);\n}\n\n// As a Set union, except if value exists in both, we take minimum\nfunction union(\n a: $ReadOnlyMap,\n b: $ReadOnlyMap,\n): Map {\n const res = new Map();\n for (const [k, v] of a) {\n if (!b.has(k)) {\n res.set(k, v);\n } else {\n res.set(k, Math.min(v ?? 0, b.get(k) ?? 0));\n }\n }\n return res;\n}\n\nfunction difference(a: $ReadOnlySet, b: $ReadOnlySet): Set {\n return new Set([...a].filter(x => !b.has(x)));\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport type {\n RawPerformanceEntry,\n RawPerformanceEntryType,\n} from './NativePerformanceObserver';\nimport type {PerformanceEntryType} from './PerformanceEntry';\n\nimport {PerformanceEntry} from './PerformanceEntry';\nimport {PerformanceEventTiming} from './PerformanceEventTiming';\n\nexport const RawPerformanceEntryTypeValues = {\n UNDEFINED: 0,\n MARK: 1,\n MEASURE: 2,\n EVENT: 3,\n};\n\nexport function rawToPerformanceEntry(\n entry: RawPerformanceEntry,\n): PerformanceEntry {\n if (entry.entryType === RawPerformanceEntryTypeValues.EVENT) {\n return new PerformanceEventTiming({\n name: entry.name,\n startTime: entry.startTime,\n duration: entry.duration,\n processingStart: entry.processingStart,\n processingEnd: entry.processingEnd,\n interactionId: entry.interactionId,\n });\n } else {\n return new PerformanceEntry({\n name: entry.name,\n entryType: rawToPerformanceEntryType(entry.entryType),\n startTime: entry.startTime,\n duration: entry.duration,\n });\n }\n}\n\nexport function rawToPerformanceEntryType(\n type: RawPerformanceEntryType,\n): PerformanceEntryType {\n switch (type) {\n case RawPerformanceEntryTypeValues.MARK:\n return 'mark';\n case RawPerformanceEntryTypeValues.MEASURE:\n return 'measure';\n case RawPerformanceEntryTypeValues.EVENT:\n return 'event';\n case RawPerformanceEntryTypeValues.UNDEFINED:\n throw new TypeError(\n \"rawToPerformanceEntryType: UNDEFINED can't be cast to PerformanceEntryType\",\n );\n default:\n throw new TypeError(\n `rawToPerformanceEntryType: unexpected performance entry type received: ${type}`,\n );\n }\n}\n\nexport function performanceEntryTypeToRaw(\n type: PerformanceEntryType,\n): RawPerformanceEntryType {\n switch (type) {\n case 'mark':\n return RawPerformanceEntryTypeValues.MARK;\n case 'measure':\n return RawPerformanceEntryTypeValues.MEASURE;\n case 'event':\n return RawPerformanceEntryTypeValues.EVENT;\n default:\n // Verify exhaustive check with Flow\n (type: empty);\n throw new TypeError(\n `performanceEntryTypeToRaw: unexpected performance entry type received: ${type}`,\n );\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport type {HighResTimeStamp} from './PerformanceEntry';\n\nimport {PerformanceEntry} from './PerformanceEntry';\n\nexport class PerformanceEventTiming extends PerformanceEntry {\n processingStart: HighResTimeStamp;\n processingEnd: HighResTimeStamp;\n interactionId: number;\n\n constructor(init: {\n name: string,\n startTime?: HighResTimeStamp,\n duration?: HighResTimeStamp,\n processingStart?: HighResTimeStamp,\n processingEnd?: HighResTimeStamp,\n interactionId?: number,\n }) {\n super({\n name: init.name,\n entryType: 'event',\n startTime: init.startTime ?? 0,\n duration: init.duration ?? 0,\n });\n this.processingStart = init.processingStart ?? 0;\n this.processingEnd = init.processingEnd ?? 0;\n this.interactionId = init.interactionId ?? 0;\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nexport type HighResTimeStamp = number;\nexport type PerformanceEntryType = 'mark' | 'measure' | 'event';\n\nexport class PerformanceEntry {\n name: string;\n entryType: PerformanceEntryType;\n startTime: HighResTimeStamp;\n duration: HighResTimeStamp;\n\n constructor(init: {\n name: string,\n entryType: PerformanceEntryType,\n startTime: HighResTimeStamp,\n duration: HighResTimeStamp,\n }) {\n this.name = init.name;\n this.entryType = init.entryType;\n this.startTime = init.startTime;\n this.duration = init.duration;\n }\n\n toJSON(): {\n name: string,\n entryType: PerformanceEntryType,\n startTime: HighResTimeStamp,\n duration: HighResTimeStamp,\n } {\n return {\n name: this.name,\n entryType: this.entryType,\n startTime: this.startTime,\n duration: this.duration,\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n * @oncall react_native\n */\n\n// flowlint unsafe-getters-setters:off\n\nexport type MemoryInfoLike = {\n jsHeapSizeLimit: ?number,\n totalJSHeapSize: ?number,\n usedJSHeapSize: ?number,\n};\n\n// Read-only object with JS memory information. This is returned by the performance.memory API.\nexport default class MemoryInfo {\n _jsHeapSizeLimit: ?number;\n _totalJSHeapSize: ?number;\n _usedJSHeapSize: ?number;\n\n constructor(memoryInfo: ?MemoryInfoLike) {\n if (memoryInfo != null) {\n this._jsHeapSizeLimit = memoryInfo.jsHeapSizeLimit;\n this._totalJSHeapSize = memoryInfo.totalJSHeapSize;\n this._usedJSHeapSize = memoryInfo.usedJSHeapSize;\n }\n }\n\n /**\n * The maximum size of the heap, in bytes, that is available to the context\n */\n get jsHeapSizeLimit(): ?number {\n return this._jsHeapSizeLimit;\n }\n\n /**\n * The total allocated heap size, in bytes\n */\n get totalJSHeapSize(): ?number {\n return this._totalJSHeapSize;\n }\n\n /**\n * The currently active segment of JS heap, in bytes.\n */\n get usedJSHeapSize(): ?number {\n return this._usedJSHeapSize;\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n * @oncall react_native\n */\n\n// flowlint unsafe-getters-setters:off\n\nimport type {ReactNativeStartupTiming as ReactNativeStartupTimingType} from './NativePerformance';\n\n// Read-only object with RN startup timing information.\n// This is returned by the performance.reactNativeStartup API.\nexport default class ReactNativeStartupTiming {\n // All time information here are in ms. To match web spec,\n // the default value for timings are zero if not present.\n // See https://www.w3.org/TR/performance-timeline/#performancetiming-interface\n _startTime = 0;\n _endTime = 0;\n _executeJavaScriptBundleEntryPointStart = 0;\n _executeJavaScriptBundleEntryPointEnd = 0;\n\n constructor(startUpTiming: ?ReactNativeStartupTimingType) {\n if (startUpTiming != null) {\n this._startTime = startUpTiming.startTime;\n this._endTime = startUpTiming.endTime;\n this._executeJavaScriptBundleEntryPointStart =\n startUpTiming.executeJavaScriptBundleEntryPointStart;\n this._executeJavaScriptBundleEntryPointEnd =\n startUpTiming.executeJavaScriptBundleEntryPointEnd;\n }\n }\n\n /**\n * Start time of the RN app startup process. This is provided by the platform by implementing the `ReactMarker.setAppStartTime` API in the native platform code.\n */\n get startTime(): number {\n return this._startTime;\n }\n\n /**\n * End time of the RN app startup process. This is equal to `executeJavaScriptBundleEntryPointEnd`.\n */\n get endTime(): number {\n return this._endTime;\n }\n\n /**\n * Start time of JS bundle being executed. This indicates the RN JS bundle is loaded and start to be evaluated.\n */\n get executeJavaScriptBundleEntryPointStart(): number {\n return this._executeJavaScriptBundleEntryPointStart;\n }\n\n /**\n * End time of JS bundle being executed. This indicates all the synchronous entry point jobs are finished.\n */\n get executeJavaScriptBundleEntryPointEnd(): number {\n return this._executeJavaScriptBundleEntryPointEnd;\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\n/**\n * Sets up the console and exception handling (redbox) for React Native.\n * You can use this module directly, or just require InitializeCore.\n */\nconst ExceptionsManager = require('./ExceptionsManager');\nExceptionsManager.installConsoleErrorReporter();\n\n// Set up error handler\nif (!global.__fbDisableExceptionsManager) {\n const handleError = (e: mixed, isFatal: boolean) => {\n try {\n ExceptionsManager.handleException(e, isFatal);\n } catch (ee) {\n console.log('Failed to print error: ', ee.message);\n throw e;\n }\n };\n\n const ErrorUtils = require('../vendor/core/ErrorUtils');\n ErrorUtils.setGlobalHandler(handleError);\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nimport type {ExtendedError} from './ExtendedError';\nimport type {ExceptionData} from './NativeExceptionsManager';\n\nclass SyntheticError extends Error {\n name: string = '';\n}\n\ntype ExceptionDecorator = ExceptionData => ExceptionData;\n\nlet userExceptionDecorator: ?ExceptionDecorator;\nlet inUserExceptionDecorator = false;\n\n// This Symbol is used to decorate an ExtendedError with extra data in select usecases.\n// Note that data passed using this method should be strictly contained,\n// as data that's not serializable/too large may cause issues with passing the error to the native code.\nconst decoratedExtraDataKey: symbol = Symbol('decoratedExtraDataKey');\n\n/**\n * Allows the app to add information to the exception report before it is sent\n * to native. This API is not final.\n */\n\nfunction unstable_setExceptionDecorator(\n exceptionDecorator: ?ExceptionDecorator,\n) {\n userExceptionDecorator = exceptionDecorator;\n}\n\nfunction preprocessException(data: ExceptionData): ExceptionData {\n if (userExceptionDecorator && !inUserExceptionDecorator) {\n inUserExceptionDecorator = true;\n try {\n return userExceptionDecorator(data);\n } catch {\n // Fall through\n } finally {\n inUserExceptionDecorator = false;\n }\n }\n return data;\n}\n\n/**\n * Handles the developer-visible aspect of errors and exceptions\n */\nlet exceptionID = 0;\nfunction reportException(\n e: ExtendedError,\n isFatal: boolean,\n reportToConsole: boolean, // only true when coming from handleException; the error has not yet been logged\n) {\n const parseErrorStack = require('./Devtools/parseErrorStack');\n const stack = parseErrorStack(e?.stack);\n const currentExceptionID = ++exceptionID;\n const originalMessage = e.message || '';\n let message = originalMessage;\n if (e.componentStack != null) {\n message += `\\n\\nThis error is located at:${e.componentStack}`;\n }\n const namePrefix = e.name == null || e.name === '' ? '' : `${e.name}: `;\n\n if (!message.startsWith(namePrefix)) {\n message = namePrefix + message;\n }\n\n message =\n e.jsEngine == null ? message : `${message}, js engine: ${e.jsEngine}`;\n\n const data = preprocessException({\n message,\n originalMessage: message === originalMessage ? null : originalMessage,\n name: e.name == null || e.name === '' ? null : e.name,\n componentStack:\n typeof e.componentStack === 'string' ? e.componentStack : null,\n stack,\n id: currentExceptionID,\n isFatal,\n extraData: {\n // $FlowFixMe[incompatible-use] we can't define a type with a Symbol-keyed field in flow\n ...e[decoratedExtraDataKey],\n jsEngine: e.jsEngine,\n rawStack: e.stack,\n },\n });\n\n if (reportToConsole) {\n // we feed back into console.error, to make sure any methods that are\n // monkey patched on top of console.error are called when coming from\n // handleException\n console.error(data.message);\n }\n\n if (__DEV__) {\n const LogBox = require('../LogBox/LogBox').default;\n LogBox.addException({\n ...data,\n isComponentError: !!e.isComponentError,\n });\n } else if (isFatal || e.type !== 'warn') {\n const NativeExceptionsManager =\n require('./NativeExceptionsManager').default;\n if (NativeExceptionsManager) {\n NativeExceptionsManager.reportException(data);\n }\n }\n}\n\ndeclare var console: typeof console & {\n _errorOriginal: typeof console.error,\n reportErrorsAsExceptions: boolean,\n ...\n};\n\n// If we trigger console.error _from_ handleException,\n// we do want to make sure that console.error doesn't trigger error reporting again\nlet inExceptionHandler = false;\n\n/**\n * Logs exceptions to the (native) console and displays them\n */\nfunction handleException(e: mixed, isFatal: boolean) {\n let error: Error;\n if (e instanceof Error) {\n error = e;\n } else {\n // Workaround for reporting errors caused by `throw 'some string'`\n // Unfortunately there is no way to figure out the stacktrace in this\n // case, so if you ended up here trying to trace an error, look for\n // `throw ''` somewhere in your codebase.\n error = new SyntheticError(e);\n }\n try {\n inExceptionHandler = true;\n /* $FlowFixMe[class-object-subtyping] added when improving typing for this\n * parameters */\n reportException(error, isFatal, /*reportToConsole*/ true);\n } finally {\n inExceptionHandler = false;\n }\n}\n\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\nfunction reactConsoleErrorHandler(...args) {\n // bubble up to any original handlers\n console._errorOriginal(...args);\n if (!console.reportErrorsAsExceptions) {\n return;\n }\n if (inExceptionHandler) {\n // The fundamental trick here is that are multiple entry point to logging errors:\n // (see D19743075 for more background)\n //\n // 1. An uncaught exception being caught by the global handler\n // 2. An error being logged throw console.error\n //\n // However, console.error is monkey patched multiple times: by this module, and by the\n // DevTools setup that sends messages to Metro.\n // The patching order cannot be relied upon.\n //\n // So, some scenarios that are handled by this flag:\n //\n // Logging an error:\n // 1. console.error called from user code\n // 2. (possibly) arrives _first_ at DevTool handler, send to Metro\n // 3. Bubbles to here\n // 4. goes into report Exception.\n // 5. should not trigger console.error again, to avoid looping / logging twice\n // 6. should still bubble up to original console\n // (which might either be console.log, or the DevTools handler in case it patched _earlier_ and (2) didn't happen)\n //\n // Throwing an uncaught exception:\n // 1. exception thrown\n // 2. picked up by handleException\n // 3. should be sent to console.error (not console._errorOriginal, as DevTools might have patched _later_ and it needs to send it to Metro)\n // 4. that _might_ bubble again to the `reactConsoleErrorHandle` defined here\n // -> should not handle exception _again_, to avoid looping / showing twice (this code branch)\n // 5. should still bubble up to original console (which might either be console.log, or the DevTools handler in case that one patched _earlier_)\n return;\n }\n\n let error;\n\n const firstArg = args[0];\n if (firstArg?.stack) {\n // reportException will console.error this with high enough fidelity.\n error = firstArg;\n } else {\n const stringifySafe = require('../Utilities/stringifySafe').default;\n if (typeof firstArg === 'string' && firstArg.startsWith('Warning: ')) {\n // React warnings use console.error so that a stack trace is shown, but\n // we don't (currently) want these to show a redbox\n // (Note: Logic duplicated in polyfills/console.js.)\n return;\n }\n const message = args\n .map(arg => (typeof arg === 'string' ? arg : stringifySafe(arg)))\n .join(' ');\n\n error = new SyntheticError(message);\n error.name = 'console.error';\n }\n\n reportException(\n /* $FlowFixMe[class-object-subtyping] added when improving typing for this\n * parameters */\n error,\n false, // isFatal\n false, // reportToConsole\n );\n}\n\n/**\n * Shows a redbox with stacktrace for all console.error messages. Disable by\n * setting `console.reportErrorsAsExceptions = false;` in your app.\n */\nfunction installConsoleErrorReporter() {\n // Enable reportErrorsAsExceptions\n if (console._errorOriginal) {\n return; // already installed\n }\n // Flow doesn't like it when you set arbitrary values on a global object\n console._errorOriginal = console.error.bind(console);\n console.error = reactConsoleErrorHandler;\n if (console.reportErrorsAsExceptions === undefined) {\n // Individual apps can disable this\n // Flow doesn't like it when you set arbitrary values on a global object\n console.reportErrorsAsExceptions = true;\n }\n}\n\nmodule.exports = {\n decoratedExtraDataKey,\n handleException,\n installConsoleErrorReporter,\n SyntheticError,\n unstable_setExceptionDecorator,\n};\n","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nvar setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeFunction = require(\"./isNativeFunction.js\");\nvar construct = require(\"./construct.js\");\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _wrapNativeSuper(Class);\n}\nmodule.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nmodule.exports = _isNativeFunction, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct.bind(), module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n return _construct.apply(null, arguments);\n}\nmodule.exports = _construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nimport type {StackFrame} from '../NativeExceptionsManager';\nimport type {HermesParsedStack} from './parseHermesStack';\n\nconst parseHermesStack = require('./parseHermesStack');\n\nfunction convertHermesStack(stack: HermesParsedStack): Array {\n const frames: Array = [];\n for (const entry of stack.entries) {\n if (entry.type !== 'FRAME') {\n continue;\n }\n const {location, functionName} = entry;\n if (location.type === 'NATIVE' || location.type === 'INTERNAL_BYTECODE') {\n continue;\n }\n frames.push({\n methodName: functionName,\n file: location.sourceUrl,\n lineNumber: location.line1Based,\n column:\n location.type === 'SOURCE'\n ? location.column1Based - 1\n : location.virtualOffset0Based,\n });\n }\n return frames;\n}\n\nfunction parseErrorStack(errorStack?: string): Array {\n if (errorStack == null) {\n return [];\n }\n\n const stacktraceParser = require('stacktrace-parser');\n const parsedStack = Array.isArray(errorStack)\n ? errorStack\n : global.HermesInternal\n ? convertHermesStack(parseHermesStack(errorStack))\n : stacktraceParser.parse(errorStack).map((frame): StackFrame => ({\n ...frame,\n column: frame.column != null ? frame.column - 1 : null,\n }));\n\n return parsedStack;\n}\n\nmodule.exports = parseErrorStack;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar UNKNOWN_FUNCTION = '';\n/**\n * This parses the different stack traces and puts them into one format\n * This borrows heavily from TraceKit (https://github.com/csnover/TraceKit)\n */\n\nfunction parse(stackString) {\n var lines = stackString.split('\\n');\n return lines.reduce(function (stack, line) {\n var parseResult = parseChrome(line) || parseWinjs(line) || parseGecko(line) || parseNode(line) || parseJSC(line);\n\n if (parseResult) {\n stack.push(parseResult);\n }\n\n return stack;\n }, []);\n}\nvar chromeRe = /^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack||\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nvar chromeEvalRe = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nfunction parseChrome(line) {\n var parts = chromeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n var submatch = chromeEvalRe.exec(parts[2]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n\n parts[3] = submatch[2]; // line\n\n parts[4] = submatch[3]; // column\n }\n\n return {\n file: !isNative ? parts[2] : null,\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: isNative ? [parts[2]] : [],\n lineNumber: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null\n };\n}\n\nvar winjsRe = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseWinjs(line) {\n var parts = winjsRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n}\n\nvar geckoRe = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar geckoEvalRe = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nfunction parseGecko(line) {\n var parts = geckoRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n var submatch = geckoEvalRe.exec(parts[3]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = null; // no column when eval\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: parts[2] ? parts[2].split(',') : [],\n lineNumber: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null\n };\n}\n\nvar javaScriptCoreRe = /^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i;\n\nfunction parseJSC(line) {\n var parts = javaScriptCoreRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[4],\n column: parts[5] ? +parts[5] : null\n };\n}\n\nvar nodeRe = /^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseNode(line) {\n var parts = nodeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n}\n\nexports.parse = parse;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\ntype HermesStackLocationNative = $ReadOnly<{\n type: 'NATIVE',\n}>;\n\ntype HermesStackLocationSource = $ReadOnly<{\n type: 'SOURCE',\n sourceUrl: string,\n line1Based: number,\n column1Based: number,\n}>;\n\ntype HermesStackLocationInternalBytecode = $ReadOnly<{\n type: 'INTERNAL_BYTECODE',\n sourceUrl: string,\n line1Based: number,\n virtualOffset0Based: number,\n}>;\n\ntype HermesStackLocationBytecode = $ReadOnly<{\n type: 'BYTECODE',\n sourceUrl: string,\n line1Based: number,\n virtualOffset0Based: number,\n}>;\n\ntype HermesStackLocation =\n | HermesStackLocationNative\n | HermesStackLocationSource\n | HermesStackLocationInternalBytecode\n | HermesStackLocationBytecode;\n\ntype HermesStackEntryFrame = $ReadOnly<{\n type: 'FRAME',\n location: HermesStackLocation,\n functionName: string,\n}>;\n\ntype HermesStackEntrySkipped = $ReadOnly<{\n type: 'SKIPPED',\n count: number,\n}>;\n\ntype HermesStackEntry = HermesStackEntryFrame | HermesStackEntrySkipped;\n\nexport type HermesParsedStack = $ReadOnly<{\n message: string,\n entries: $ReadOnlyArray,\n}>;\n\n// Capturing groups:\n// 1. function name\n// 2. is this a native stack frame?\n// 3. is this a bytecode address or a source location?\n// 4. source URL (filename)\n// 5. line number (1 based)\n// 6. column number (1 based) or virtual offset (0 based)\nconst RE_FRAME =\n /^ {4}at (.+?)(?: \\((native)\\)?| \\((address at )?(.*?):(\\d+):(\\d+)\\))$/;\n\n// Capturing groups:\n// 1. count of skipped frames\nconst RE_SKIPPED = /^ {4}... skipping (\\d+) frames$/;\n\nfunction isInternalBytecodeSourceUrl(sourceUrl: string): boolean {\n // See https://github.com/facebook/hermes/blob/3332fa020cae0bab751f648db7c94e1d687eeec7/lib/VM/Runtime.cpp#L1100\n return sourceUrl === 'InternalBytecode.js';\n}\n\nfunction parseLine(line: string): ?HermesStackEntry {\n const asFrame = line.match(RE_FRAME);\n if (asFrame) {\n return {\n type: 'FRAME',\n functionName: asFrame[1],\n location:\n asFrame[2] === 'native'\n ? {type: 'NATIVE'}\n : asFrame[3] === 'address at '\n ? isInternalBytecodeSourceUrl(asFrame[4])\n ? {\n type: 'INTERNAL_BYTECODE',\n sourceUrl: asFrame[4],\n line1Based: Number.parseInt(asFrame[5], 10),\n virtualOffset0Based: Number.parseInt(asFrame[6], 10),\n }\n : {\n type: 'BYTECODE',\n sourceUrl: asFrame[4],\n line1Based: Number.parseInt(asFrame[5], 10),\n virtualOffset0Based: Number.parseInt(asFrame[6], 10),\n }\n : {\n type: 'SOURCE',\n sourceUrl: asFrame[4],\n line1Based: Number.parseInt(asFrame[5], 10),\n column1Based: Number.parseInt(asFrame[6], 10),\n },\n };\n }\n const asSkipped = line.match(RE_SKIPPED);\n if (asSkipped) {\n return {\n type: 'SKIPPED',\n count: Number.parseInt(asSkipped[1], 10),\n };\n }\n}\n\nmodule.exports = function parseHermesStack(stack: string): HermesParsedStack {\n const lines = stack.split(/\\n/);\n let entries: Array = [];\n let lastMessageLine = -1;\n for (let i = 0; i < lines.length; ++i) {\n const line = lines[i];\n if (!line) {\n continue;\n }\n const entry = parseLine(line);\n if (entry) {\n entries.push(entry);\n continue;\n }\n // No match - we're still in the message\n lastMessageLine = i;\n entries = [];\n }\n const message = lines.slice(0, lastMessageLine + 1).join('\\n');\n return {message, entries};\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nconst Platform = require('../Utilities/Platform');\n\nexport type StackFrame = {|\n column: ?number,\n file: ?string,\n lineNumber: ?number,\n methodName: string,\n collapse?: boolean,\n|};\nexport type ExceptionData = {\n message: string,\n originalMessage: ?string,\n name: ?string,\n componentStack: ?string,\n stack: Array,\n id: number,\n isFatal: boolean,\n // flowlint-next-line unclear-type:off\n extraData?: Object,\n ...\n};\nexport interface Spec extends TurboModule {\n // Deprecated: Use `reportException`\n +reportFatalException: (\n message: string,\n stack: Array,\n exceptionId: number,\n ) => void;\n // Deprecated: Use `reportException`\n +reportSoftException: (\n message: string,\n stack: Array,\n exceptionId: number,\n ) => void;\n +reportException?: (data: ExceptionData) => void;\n +updateExceptionMessage: (\n message: string,\n stack: Array,\n exceptionId: number,\n ) => void;\n // TODO(T53311281): This is a noop on iOS now. Implement it.\n +dismissRedbox?: () => void;\n}\n\nconst NativeModule =\n TurboModuleRegistry.getEnforcing('ExceptionsManager');\n\nconst ExceptionsManager = {\n reportFatalException(\n message: string,\n stack: Array,\n exceptionId: number,\n ) {\n NativeModule.reportFatalException(message, stack, exceptionId);\n },\n reportSoftException(\n message: string,\n stack: Array,\n exceptionId: number,\n ) {\n NativeModule.reportSoftException(message, stack, exceptionId);\n },\n updateExceptionMessage(\n message: string,\n stack: Array,\n exceptionId: number,\n ) {\n NativeModule.updateExceptionMessage(message, stack, exceptionId);\n },\n dismissRedbox(): void {\n if (Platform.OS !== 'ios' && NativeModule.dismissRedbox) {\n // TODO(T53311281): This is a noop on iOS now. Implement it.\n NativeModule.dismissRedbox();\n }\n },\n reportException(data: ExceptionData): void {\n if (NativeModule.reportException) {\n NativeModule.reportException(data);\n return;\n }\n if (data.isFatal) {\n ExceptionsManager.reportFatalException(data.message, data.stack, data.id);\n } else {\n ExceptionsManager.reportSoftException(data.message, data.stack, data.id);\n }\n },\n};\n\nexport default ExceptionsManager;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nconst {polyfillGlobal} = require('../Utilities/PolyfillFunctions');\n\n/**\n * Set up Promise. The native Promise implementation throws the following error:\n * ERROR: Event loop not supported.\n *\n * If you don't need these polyfills, don't use InitializeCore; just directly\n * require the modules you need from InitializeCore for setup.\n */\n\n// If global.Promise is provided by Hermes, we are confident that it can provide\n// all the methods needed by React Native, so we can directly use it.\nif (global?.HermesInternal?.hasPromise?.()) {\n const HermesPromise = global.Promise;\n\n if (__DEV__) {\n if (typeof HermesPromise !== 'function') {\n console.error('HermesPromise does not exist');\n }\n global.HermesInternal?.enablePromiseRejectionTracker?.(\n require('../promiseRejectionTrackingOptions').default,\n );\n }\n} else {\n polyfillGlobal('Promise', () => require('../Promise'));\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nconst defineLazyObjectProperty = require('./defineLazyObjectProperty');\n\n/**\n * Sets an object's property. If a property with the same name exists, this will\n * replace it but maintain its descriptor configuration. The property will be\n * replaced with a lazy getter.\n *\n * In DEV mode the original property value will be preserved as `original[PropertyName]`\n * so that, if necessary, it can be restored. For example, if you want to route\n * network requests through DevTools (to trace them):\n *\n * global.XMLHttpRequest = global.originalXMLHttpRequest;\n *\n * @see https://github.com/facebook/react-native/issues/934\n */\nfunction polyfillObjectProperty(\n object: {...},\n name: string,\n getValue: () => T,\n): void {\n const descriptor = Object.getOwnPropertyDescriptor<$FlowFixMe>(object, name);\n if (__DEV__ && descriptor) {\n const backupName = `original${name[0].toUpperCase()}${name.substr(1)}`;\n Object.defineProperty(object, backupName, descriptor);\n }\n\n const {enumerable, writable, configurable = false} = descriptor || {};\n if (descriptor && !configurable) {\n console.error('Failed to set polyfill. ' + name + ' is not configurable.');\n return;\n }\n\n defineLazyObjectProperty(object, name, {\n get: getValue,\n enumerable: enumerable !== false,\n writable: writable !== false,\n });\n}\n\nfunction polyfillGlobal(name: string, getValue: () => T): void {\n polyfillObjectProperty(global, name, getValue);\n}\n\nmodule.exports = {polyfillObjectProperty, polyfillGlobal};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nconst Promise = require('promise/setimmediate/es6-extensions');\n\nrequire('promise/setimmediate/finally');\n\nif (__DEV__) {\n require('promise/setimmediate/rejection-tracking').enable(\n require('./promiseRejectionTrackingOptions').default,\n );\n}\n\nmodule.exports = Promise;\n","'use strict';\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\nPromise.prototype.finally = function (f) {\n return this.then(function (value) {\n return Promise.resolve(f()).then(function () {\n return value;\n });\n }, function (err) {\n return Promise.resolve(f()).then(function () {\n throw err;\n });\n });\n};\n","'use strict';\n\n\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n try {\n return obj.then;\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nfunction tryCallOne(fn, a) {\n try {\n return fn(a);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\nfunction tryCallTwo(fn, a, b) {\n try {\n fn(a, b);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('Promise constructor\\'s argument is not a function');\n }\n this._x = 0;\n this._y = 0;\n this._z = null;\n this._A = null;\n if (fn === noop) return;\n doResolve(fn, this);\n}\nPromise._B = null;\nPromise._C = null;\nPromise._D = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n if (this.constructor !== Promise) {\n return safeThen(this, onFulfilled, onRejected);\n }\n var res = new Promise(noop);\n handle(this, new Handler(onFulfilled, onRejected, res));\n return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n return new self.constructor(function (resolve, reject) {\n var res = new Promise(noop);\n res.then(resolve, reject);\n handle(self, new Handler(onFulfilled, onRejected, res));\n });\n}\nfunction handle(self, deferred) {\n while (self._y === 3) {\n self = self._z;\n }\n if (Promise._B) {\n Promise._B(self);\n }\n if (self._y === 0) {\n if (self._x === 0) {\n self._x = 1;\n self._A = deferred;\n return;\n }\n if (self._x === 1) {\n self._x = 2;\n self._A = [self._A, deferred];\n return;\n }\n self._A.push(deferred);\n return;\n }\n handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n setImmediate(function() {\n var cb = self._y === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n if (self._y === 1) {\n resolve(deferred.promise, self._z);\n } else {\n reject(deferred.promise, self._z);\n }\n return;\n }\n var ret = tryCallOne(cb, self._z);\n if (ret === IS_ERROR) {\n reject(deferred.promise, LAST_ERROR);\n } else {\n resolve(deferred.promise, ret);\n }\n });\n}\nfunction resolve(self, newValue) {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self) {\n return reject(\n self,\n new TypeError('A promise cannot be resolved with itself.')\n );\n }\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = getThen(newValue);\n if (then === IS_ERROR) {\n return reject(self, LAST_ERROR);\n }\n if (\n then === self.then &&\n newValue instanceof Promise\n ) {\n self._y = 3;\n self._z = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(then.bind(newValue), self);\n return;\n }\n }\n self._y = 1;\n self._z = newValue;\n finale(self);\n}\n\nfunction reject(self, newValue) {\n self._y = 2;\n self._z = newValue;\n if (Promise._C) {\n Promise._C(self, newValue);\n }\n finale(self);\n}\nfunction finale(self) {\n if (self._x === 1) {\n handle(self, self._A);\n self._A = null;\n }\n if (self._x === 2) {\n for (var i = 0; i < self._A.length; i++) {\n handle(self, self._A[i]);\n }\n self._A = null;\n }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n var done = false;\n var res = tryCallTwo(fn, function (value) {\n if (done) return;\n done = true;\n resolve(promise, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(promise, reason);\n });\n if (!done && res === IS_ERROR) {\n done = true;\n reject(promise, LAST_ERROR);\n }\n}\n","'use strict';\n\n//This file contains the ES6 extensions to the core Promises/A+ API\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\n\n/* Static Functions */\n\nvar TRUE = valuePromise(true);\nvar FALSE = valuePromise(false);\nvar NULL = valuePromise(null);\nvar UNDEFINED = valuePromise(undefined);\nvar ZERO = valuePromise(0);\nvar EMPTYSTRING = valuePromise('');\n\nfunction valuePromise(value) {\n var p = new Promise(Promise._D);\n p._y = 1;\n p._z = value;\n return p;\n}\nPromise.resolve = function (value) {\n if (value instanceof Promise) return value;\n\n if (value === null) return NULL;\n if (value === undefined) return UNDEFINED;\n if (value === true) return TRUE;\n if (value === false) return FALSE;\n if (value === 0) return ZERO;\n if (value === '') return EMPTYSTRING;\n\n if (typeof value === 'object' || typeof value === 'function') {\n try {\n var then = value.then;\n if (typeof then === 'function') {\n return new Promise(then.bind(value));\n }\n } catch (ex) {\n return new Promise(function (resolve, reject) {\n reject(ex);\n });\n }\n }\n return valuePromise(value);\n};\n\nvar iterableToArray = function (iterable) {\n if (typeof Array.from === 'function') {\n // ES2015+, iterables exist\n iterableToArray = Array.from;\n return Array.from(iterable);\n }\n\n // ES5, only arrays and array-likes exist\n iterableToArray = function (x) { return Array.prototype.slice.call(x); };\n return Array.prototype.slice.call(iterable);\n}\n\nPromise.all = function (arr) {\n var args = iterableToArray(arr);\n\n return new Promise(function (resolve, reject) {\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n if (val instanceof Promise && val.then === Promise.prototype.then) {\n while (val._y === 3) {\n val = val._z;\n }\n if (val._y === 1) return res(i, val._z);\n if (val._y === 2) reject(val._z);\n val.then(function (val) {\n res(i, val);\n }, reject);\n return;\n } else {\n var then = val.then;\n if (typeof then === 'function') {\n var p = new Promise(then.bind(val));\n p.then(function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nfunction onSettledFulfill(value) {\n return { status: 'fulfilled', value: value };\n}\nfunction onSettledReject(reason) {\n return { status: 'rejected', reason: reason };\n}\nfunction mapAllSettled(item) {\n if(item && (typeof item === 'object' || typeof item === 'function')){\n if(item instanceof Promise && item.then === Promise.prototype.then){\n return item.then(onSettledFulfill, onSettledReject);\n }\n var then = item.then;\n if (typeof then === 'function') {\n return new Promise(then.bind(item)).then(onSettledFulfill, onSettledReject)\n }\n }\n\n return onSettledFulfill(item);\n}\nPromise.allSettled = function (iterable) {\n return Promise.all(iterableToArray(iterable).map(mapAllSettled));\n};\n\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n iterableToArray(values).forEach(function(value){\n Promise.resolve(value).then(resolve, reject);\n });\n });\n};\n\n/* Prototype Methods */\n\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\n\nfunction getAggregateError(errors){\n if(typeof AggregateError === 'function'){\n return new AggregateError(errors,'All promises were rejected');\n }\n\n var error = new Error('All promises were rejected');\n\n error.name = 'AggregateError';\n error.errors = errors;\n\n return error;\n}\n\nPromise.any = function promiseAny(values) {\n return new Promise(function(resolve, reject) {\n var promises = iterableToArray(values);\n var hasResolved = false;\n var rejectionReasons = [];\n\n function resolveOnce(value) {\n if (!hasResolved) {\n hasResolved = true;\n resolve(value);\n }\n }\n\n function rejectionCheck(reason) {\n rejectionReasons.push(reason);\n\n if (rejectionReasons.length === promises.length) {\n reject(getAggregateError(rejectionReasons));\n }\n }\n\n if(promises.length === 0){\n reject(getAggregateError(rejectionReasons));\n } else {\n promises.forEach(function(value){\n Promise.resolve(value).then(resolveOnce, rejectionCheck);\n });\n }\n });\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nconst {hasNativeConstructor} = require('../Utilities/FeatureDetection');\nconst {polyfillGlobal} = require('../Utilities/PolyfillFunctions');\n\n/**\n * Set up regenerator.\n * You can use this module directly, or just require InitializeCore.\n */\n\nlet hasNativeGenerator;\ntry {\n // If this function was lowered by regenerator-transform, it will try to\n // access `global.regeneratorRuntime` which doesn't exist yet and will throw.\n hasNativeGenerator = hasNativeConstructor(function* () {},\n 'GeneratorFunction');\n} catch {\n // In this case, we know generators are not provided natively.\n hasNativeGenerator = false;\n}\n\n// If generators are provided natively, which suggests that there was no\n// regenerator-transform, then there is no need to set up the runtime.\nif (!hasNativeGenerator) {\n polyfillGlobal('regeneratorRuntime', () => {\n // The require just sets up the global, so make sure when we first\n // invoke it the global does not exist\n delete global.regeneratorRuntime;\n\n // regenerator-runtime/runtime exports the regeneratorRuntime object, so we\n // can return it safely.\n return require('regenerator-runtime/runtime'); // flowlint-line untyped-import:off\n });\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n/**\n * @return whether or not a @param {function} f is provided natively by calling\n * `toString` and check if the result includes `[native code]` in it.\n *\n * Note that a polyfill can technically fake this behavior but few does it.\n * Therefore, this is usually good enough for our purpose.\n */\nfunction isNativeFunction(f: Function): boolean {\n return typeof f === 'function' && f.toString().indexOf('[native code]') > -1;\n}\n\n/**\n * @return whether or not the constructor of @param {object} o is an native\n * function named with @param {string} expectedName.\n */\nfunction hasNativeConstructor(o: Object, expectedName: string): boolean {\n const con = Object.getPrototypeOf(o).constructor;\n return con.name === expectedName && isNativeFunction(con);\n}\n\nmodule.exports = {isNativeFunction, hasNativeConstructor};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next mehtod, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nconst {isNativeFunction} = require('../Utilities/FeatureDetection');\nconst {polyfillGlobal} = require('../Utilities/PolyfillFunctions');\n\nif (__DEV__) {\n if (typeof global.Promise !== 'function') {\n console.error('Promise should exist before setting up timers.');\n }\n}\n\n// Currently, Hermes `Promise` is implemented via Internal Bytecode.\nconst hasHermesPromiseQueuedToJSVM =\n global.HermesInternal?.hasPromise?.() === true &&\n global.HermesInternal?.useEngineQueue?.() === true;\n\nconst hasNativePromise = isNativeFunction(Promise);\nconst hasPromiseQueuedToJSVM = hasNativePromise || hasHermesPromiseQueuedToJSVM;\n\n// In bridgeless mode, timers are host functions installed from cpp.\nif (global.RN$Bridgeless !== true) {\n /**\n * Set up timers.\n * You can use this module directly, or just require InitializeCore.\n */\n const defineLazyTimer = (\n name:\n | $TEMPORARY$string<'cancelAnimationFrame'>\n | $TEMPORARY$string<'cancelIdleCallback'>\n | $TEMPORARY$string<'clearInterval'>\n | $TEMPORARY$string<'clearTimeout'>\n | $TEMPORARY$string<'requestAnimationFrame'>\n | $TEMPORARY$string<'requestIdleCallback'>\n | $TEMPORARY$string<'setInterval'>\n | $TEMPORARY$string<'setTimeout'>,\n ) => {\n polyfillGlobal(name, () => require('./Timers/JSTimers')[name]);\n };\n defineLazyTimer('setTimeout');\n defineLazyTimer('clearTimeout');\n defineLazyTimer('setInterval');\n defineLazyTimer('clearInterval');\n defineLazyTimer('requestAnimationFrame');\n defineLazyTimer('cancelAnimationFrame');\n defineLazyTimer('requestIdleCallback');\n defineLazyTimer('cancelIdleCallback');\n}\n\n/**\n * Set up immediate APIs, which is required to use the same microtask queue\n * as the Promise.\n */\nif (hasPromiseQueuedToJSVM) {\n // When promise queues to the JSVM microtasks queue, we shim the immediate\n // APIs via `queueMicrotask` to maintain the backward compatibility.\n polyfillGlobal(\n 'setImmediate',\n () => require('./Timers/immediateShim').setImmediate,\n );\n polyfillGlobal(\n 'clearImmediate',\n () => require('./Timers/immediateShim').clearImmediate,\n );\n} else {\n // When promise was polyfilled hence is queued to the RN microtask queue,\n // we polyfill the immediate APIs as aliases to the ReactNativeMicrotask APIs.\n // Note that in bridgeless mode, immediate APIs are installed from cpp.\n if (global.RN$Bridgeless !== true) {\n polyfillGlobal(\n 'setImmediate',\n () => require('./Timers/JSTimers').queueReactNativeMicrotask,\n );\n polyfillGlobal(\n 'clearImmediate',\n () => require('./Timers/JSTimers').clearReactNativeMicrotask,\n );\n }\n}\n\n/**\n * Set up the microtask queueing API, which is required to use the same\n * microtask queue as the Promise.\n */\nif (hasHermesPromiseQueuedToJSVM) {\n // Fast path for Hermes.\n polyfillGlobal('queueMicrotask', () => global.HermesInternal?.enqueueJob);\n} else {\n // Polyfill it with promise (regardless it's polyfilled or native) otherwise.\n polyfillGlobal(\n 'queueMicrotask',\n () => require('./Timers/queueMicrotask.js').default,\n );\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport NativeTiming from './NativeTiming';\n\nconst BatchedBridge = require('../../BatchedBridge/BatchedBridge');\nconst Systrace = require('../../Performance/Systrace');\nconst invariant = require('invariant');\n\n/**\n * JS implementation of timer functions. Must be completely driven by an\n * external clock signal, all that's stored here is timerID, timer type, and\n * callback.\n */\n\nexport type JSTimerType =\n | 'setTimeout'\n | 'setInterval'\n | 'requestAnimationFrame'\n | 'queueReactNativeMicrotask'\n | 'requestIdleCallback';\n\n// These timing constants should be kept in sync with the ones in native ios and\n// android `RCTTiming` module.\nconst FRAME_DURATION = 1000 / 60;\nconst IDLE_CALLBACK_FRAME_DEADLINE = 1;\n\n// Parallel arrays\nconst callbacks: Array = [];\nconst types: Array = [];\nconst timerIDs: Array = [];\nlet reactNativeMicrotasks: Array = [];\nlet requestIdleCallbacks: Array = [];\nconst requestIdleCallbackTimeouts: {[number]: number, ...} = {};\n\nlet GUID = 1;\nconst errors: Array = [];\n\nlet hasEmittedTimeDriftWarning = false;\n\n// Returns a free index if one is available, and the next consecutive index otherwise.\nfunction _getFreeIndex(): number {\n let freeIndex = timerIDs.indexOf(null);\n if (freeIndex === -1) {\n freeIndex = timerIDs.length;\n }\n return freeIndex;\n}\n\nfunction _allocateCallback(func: Function, type: JSTimerType): number {\n const id = GUID++;\n const freeIndex = _getFreeIndex();\n timerIDs[freeIndex] = id;\n callbacks[freeIndex] = func;\n types[freeIndex] = type;\n return id;\n}\n\n/**\n * Calls the callback associated with the ID. Also unregister that callback\n * if it was a one time timer (setTimeout), and not unregister it if it was\n * recurring (setInterval).\n */\nfunction _callTimer(timerID: number, frameTime: number, didTimeout: ?boolean) {\n if (timerID > GUID) {\n console.warn(\n 'Tried to call timer with ID %s but no such timer exists.',\n timerID,\n );\n }\n\n // timerIndex of -1 means that no timer with that ID exists. There are\n // two situations when this happens, when a garbage timer ID was given\n // and when a previously existing timer was deleted before this callback\n // fired. In both cases we want to ignore the timer id, but in the former\n // case we warn as well.\n const timerIndex = timerIDs.indexOf(timerID);\n if (timerIndex === -1) {\n return;\n }\n\n const type = types[timerIndex];\n const callback = callbacks[timerIndex];\n if (!callback || !type) {\n console.error('No callback found for timerID ' + timerID);\n return;\n }\n\n if (__DEV__) {\n Systrace.beginEvent(type + ' [invoke]');\n }\n\n // Clear the metadata\n if (type !== 'setInterval') {\n _clearIndex(timerIndex);\n }\n\n try {\n if (\n type === 'setTimeout' ||\n type === 'setInterval' ||\n type === 'queueReactNativeMicrotask'\n ) {\n callback();\n } else if (type === 'requestAnimationFrame') {\n callback(global.performance.now());\n } else if (type === 'requestIdleCallback') {\n callback({\n timeRemaining: function () {\n // TODO: Optimisation: allow running for longer than one frame if\n // there are no pending JS calls on the bridge from native. This\n // would require a way to check the bridge queue synchronously.\n return Math.max(\n 0,\n FRAME_DURATION - (global.performance.now() - frameTime),\n );\n },\n didTimeout: !!didTimeout,\n });\n } else {\n console.error('Tried to call a callback with invalid type: ' + type);\n }\n } catch (e) {\n // Don't rethrow so that we can run all timers.\n errors.push(e);\n }\n\n if (__DEV__) {\n Systrace.endEvent();\n }\n}\n\n/**\n * Performs a single pass over the enqueued reactNativeMicrotasks. Returns whether\n * more reactNativeMicrotasks are queued up (can be used as a condition a while loop).\n */\nfunction _callReactNativeMicrotasksPass() {\n if (reactNativeMicrotasks.length === 0) {\n return false;\n }\n\n if (__DEV__) {\n Systrace.beginEvent('callReactNativeMicrotasksPass()');\n }\n\n // The main reason to extract a single pass is so that we can track\n // in the system trace\n const passReactNativeMicrotasks = reactNativeMicrotasks;\n reactNativeMicrotasks = [];\n\n // Use for loop rather than forEach as per @vjeux's advice\n // https://github.com/facebook/react-native/commit/c8fd9f7588ad02d2293cac7224715f4af7b0f352#commitcomment-14570051\n for (let i = 0; i < passReactNativeMicrotasks.length; ++i) {\n _callTimer(passReactNativeMicrotasks[i], 0);\n }\n\n if (__DEV__) {\n Systrace.endEvent();\n }\n return reactNativeMicrotasks.length > 0;\n}\n\nfunction _clearIndex(i: number) {\n timerIDs[i] = null;\n callbacks[i] = null;\n types[i] = null;\n}\n\nfunction _freeCallback(timerID: number) {\n // timerIDs contains nulls after timers have been removed;\n // ignore nulls upfront so indexOf doesn't find them\n if (timerID == null) {\n return;\n }\n\n const index = timerIDs.indexOf(timerID);\n // See corresponding comment in `callTimers` for reasoning behind this\n if (index !== -1) {\n const type = types[index];\n _clearIndex(index);\n if (\n type !== 'queueReactNativeMicrotask' &&\n type !== 'requestIdleCallback'\n ) {\n deleteTimer(timerID);\n }\n }\n}\n\n/**\n * JS implementation of timer functions. Must be completely driven by an\n * external clock signal, all that's stored here is timerID, timer type, and\n * callback.\n */\nconst JSTimers = {\n /**\n * @param {function} func Callback to be invoked after `duration` ms.\n * @param {number} duration Number of milliseconds.\n */\n setTimeout: function (\n func: Function,\n duration: number,\n ...args: any\n ): number {\n const id = _allocateCallback(\n () => func.apply(undefined, args),\n 'setTimeout',\n );\n createTimer(id, duration || 0, Date.now(), /* recurring */ false);\n return id;\n },\n\n /**\n * @param {function} func Callback to be invoked every `duration` ms.\n * @param {number} duration Number of milliseconds.\n */\n setInterval: function (\n func: Function,\n duration: number,\n ...args: any\n ): number {\n const id = _allocateCallback(\n () => func.apply(undefined, args),\n 'setInterval',\n );\n createTimer(id, duration || 0, Date.now(), /* recurring */ true);\n return id;\n },\n\n /**\n * The React Native microtask mechanism is used to back public APIs e.g.\n * `queueMicrotask`, `clearImmediate`, and `setImmediate` (which is used by\n * the Promise polyfill) when the JSVM microtask mechanism is not used.\n *\n * @param {function} func Callback to be invoked before the end of the\n * current JavaScript execution loop.\n */\n queueReactNativeMicrotask: function (func: Function, ...args: any): number {\n const id = _allocateCallback(\n () => func.apply(undefined, args),\n 'queueReactNativeMicrotask',\n );\n reactNativeMicrotasks.push(id);\n return id;\n },\n\n /**\n * @param {function} func Callback to be invoked every frame.\n */\n requestAnimationFrame: function (func: Function): any | number {\n const id = _allocateCallback(func, 'requestAnimationFrame');\n createTimer(id, 1, Date.now(), /* recurring */ false);\n return id;\n },\n\n /**\n * @param {function} func Callback to be invoked every frame and provided\n * with time remaining in frame.\n * @param {?object} options\n */\n requestIdleCallback: function (\n func: Function,\n options: ?Object,\n ): any | number {\n if (requestIdleCallbacks.length === 0) {\n setSendIdleEvents(true);\n }\n\n const timeout = options && options.timeout;\n const id: number = _allocateCallback(\n timeout != null\n ? (deadline: any) => {\n const timeoutId: number = requestIdleCallbackTimeouts[id];\n if (timeoutId) {\n JSTimers.clearTimeout(timeoutId);\n delete requestIdleCallbackTimeouts[id];\n }\n return func(deadline);\n }\n : func,\n 'requestIdleCallback',\n );\n requestIdleCallbacks.push(id);\n\n if (timeout != null) {\n const timeoutId: number = JSTimers.setTimeout(() => {\n const index: number = requestIdleCallbacks.indexOf(id);\n if (index > -1) {\n requestIdleCallbacks.splice(index, 1);\n _callTimer(id, global.performance.now(), true);\n }\n delete requestIdleCallbackTimeouts[id];\n if (requestIdleCallbacks.length === 0) {\n setSendIdleEvents(false);\n }\n }, timeout);\n requestIdleCallbackTimeouts[id] = timeoutId;\n }\n return id;\n },\n\n cancelIdleCallback: function (timerID: number) {\n _freeCallback(timerID);\n const index = requestIdleCallbacks.indexOf(timerID);\n if (index !== -1) {\n requestIdleCallbacks.splice(index, 1);\n }\n\n const timeoutId = requestIdleCallbackTimeouts[timerID];\n if (timeoutId) {\n JSTimers.clearTimeout(timeoutId);\n delete requestIdleCallbackTimeouts[timerID];\n }\n\n if (requestIdleCallbacks.length === 0) {\n setSendIdleEvents(false);\n }\n },\n\n clearTimeout: function (timerID: number) {\n _freeCallback(timerID);\n },\n\n clearInterval: function (timerID: number) {\n _freeCallback(timerID);\n },\n\n clearReactNativeMicrotask: function (timerID: number) {\n _freeCallback(timerID);\n const index = reactNativeMicrotasks.indexOf(timerID);\n if (index !== -1) {\n reactNativeMicrotasks.splice(index, 1);\n }\n },\n\n cancelAnimationFrame: function (timerID: number) {\n _freeCallback(timerID);\n },\n\n /**\n * This is called from the native side. We are passed an array of timerIDs,\n * and\n */\n callTimers: function (timersToCall: Array): any | void {\n invariant(\n timersToCall.length !== 0,\n 'Cannot call `callTimers` with an empty list of IDs.',\n );\n\n errors.length = 0;\n for (let i = 0; i < timersToCall.length; i++) {\n _callTimer(timersToCall[i], 0);\n }\n\n const errorCount = errors.length;\n if (errorCount > 0) {\n if (errorCount > 1) {\n // Throw all the other errors in a setTimeout, which will throw each\n // error one at a time\n for (let ii = 1; ii < errorCount; ii++) {\n JSTimers.setTimeout(\n ((error: Error) => {\n throw error;\n }).bind(null, errors[ii]),\n 0,\n );\n }\n }\n throw errors[0];\n }\n },\n\n callIdleCallbacks: function (frameTime: number) {\n if (\n FRAME_DURATION - (Date.now() - frameTime) <\n IDLE_CALLBACK_FRAME_DEADLINE\n ) {\n return;\n }\n\n errors.length = 0;\n if (requestIdleCallbacks.length > 0) {\n const passIdleCallbacks = requestIdleCallbacks;\n requestIdleCallbacks = [];\n\n for (let i = 0; i < passIdleCallbacks.length; ++i) {\n _callTimer(passIdleCallbacks[i], frameTime);\n }\n }\n\n if (requestIdleCallbacks.length === 0) {\n setSendIdleEvents(false);\n }\n\n errors.forEach(error =>\n JSTimers.setTimeout(() => {\n throw error;\n }, 0),\n );\n },\n\n /**\n * This is called after we execute any command we receive from native but\n * before we hand control back to native.\n */\n callReactNativeMicrotasks() {\n errors.length = 0;\n while (_callReactNativeMicrotasksPass()) {}\n errors.forEach(error =>\n JSTimers.setTimeout(() => {\n throw error;\n }, 0),\n );\n },\n\n /**\n * Called from native (in development) when environment times are out-of-sync.\n */\n emitTimeDriftWarning(warningMessage: string) {\n if (hasEmittedTimeDriftWarning) {\n return;\n }\n hasEmittedTimeDriftWarning = true;\n console.warn(warningMessage);\n },\n};\n\nfunction createTimer(\n callbackID: number,\n duration: number,\n jsSchedulingTime: number,\n repeats: boolean,\n): void {\n invariant(NativeTiming, 'NativeTiming is available');\n NativeTiming.createTimer(callbackID, duration, jsSchedulingTime, repeats);\n}\n\nfunction deleteTimer(timerID: number): void {\n invariant(NativeTiming, 'NativeTiming is available');\n NativeTiming.deleteTimer(timerID);\n}\n\nfunction setSendIdleEvents(sendIdleEvents: boolean): void {\n invariant(NativeTiming, 'NativeTiming is available');\n NativeTiming.setSendIdleEvents(sendIdleEvents);\n}\n\nlet ExportedJSTimers: {|\n callIdleCallbacks: (frameTime: number) => any | void,\n callReactNativeMicrotasks: () => void,\n callTimers: (timersToCall: Array) => any | void,\n cancelAnimationFrame: (timerID: number) => void,\n cancelIdleCallback: (timerID: number) => void,\n clearReactNativeMicrotask: (timerID: number) => void,\n clearInterval: (timerID: number) => void,\n clearTimeout: (timerID: number) => void,\n emitTimeDriftWarning: (warningMessage: string) => any | void,\n requestAnimationFrame: (func: any) => any | number,\n requestIdleCallback: (func: any, options: ?any) => any | number,\n queueReactNativeMicrotask: (func: any, ...args: any) => number,\n setInterval: (func: any, duration: number, ...args: any) => number,\n setTimeout: (func: any, duration: number, ...args: any) => number,\n|};\n\nif (!NativeTiming) {\n console.warn(\"Timing native module is not available, can't set timers.\");\n // $FlowFixMe[prop-missing] : we can assume timers are generally available\n ExportedJSTimers = ({\n callReactNativeMicrotasks: JSTimers.callReactNativeMicrotasks,\n queueReactNativeMicrotask: JSTimers.queueReactNativeMicrotask,\n }: typeof JSTimers);\n} else {\n ExportedJSTimers = JSTimers;\n}\n\nBatchedBridge.setReactNativeMicrotasksCallback(\n JSTimers.callReactNativeMicrotasks,\n);\n\nmodule.exports = ExportedJSTimers;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +createTimer: (\n callbackID: number,\n duration: number,\n jsSchedulingTime: number,\n repeats: boolean,\n ) => void;\n +deleteTimer: (timerID: number) => void;\n +setSendIdleEvents: (sendIdleEvents: boolean) => void;\n}\n\nexport default (TurboModuleRegistry.get('Timing'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\n// Globally Unique Immediate ID.\nlet GUIID = 1;\n\n// A global set of the currently cleared immediates.\nconst clearedImmediates: Set = new Set();\n\n/**\n * Shim the setImmediate API on top of queueMicrotask.\n * @param {function} func Callback to be invoked before the end of the\n * current JavaScript execution loop.\n */\nfunction setImmediate(callback: Function, ...args: any): number {\n if (arguments.length < 1) {\n throw new TypeError(\n 'setImmediate must be called with at least one argument (a function to call)',\n );\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\n 'The first argument to setImmediate must be a function.',\n );\n }\n\n const id = GUIID++;\n // This is an edgey case in which the sequentially assigned ID has been\n // \"guessed\" and \"cleared\" ahead of time, so we need to clear it up first.\n if (clearedImmediates.has(id)) {\n clearedImmediates.delete(id);\n }\n\n // $FlowFixMe[incompatible-call]\n global.queueMicrotask(() => {\n if (!clearedImmediates.has(id)) {\n callback.apply(undefined, args);\n } else {\n // Free up the Set entry.\n clearedImmediates.delete(id);\n }\n });\n\n return id;\n}\n\n/**\n * @param {number} immediateID The ID of the immediate to be clearred.\n */\nfunction clearImmediate(immediateID: number) {\n clearedImmediates.add(immediateID);\n}\n\nconst immediateShim = {\n setImmediate: setImmediate,\n clearImmediate: clearImmediate,\n};\n\nmodule.exports = immediateShim;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nlet resolvedPromise;\n\n/**\n * Polyfill for the microtask queueing API defined by WHATWG HTML spec.\n * https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask\n *\n * The method must queue a microtask to invoke @param {function} callback, and\n * if the callback throws an exception, report the exception.\n */\nexport default function queueMicrotask(callback: Function) {\n if (arguments.length < 1) {\n throw new TypeError(\n 'queueMicrotask must be called with at least one argument (a function to call)',\n );\n }\n if (typeof callback !== 'function') {\n throw new TypeError('The argument to queueMicrotask must be a function.');\n }\n\n // Try to reuse a lazily allocated resolved promise from closure.\n (resolvedPromise || (resolvedPromise = Promise.resolve()))\n .then(callback)\n .catch(error =>\n // Report the exception until the next tick.\n setTimeout(() => {\n throw error;\n }, 0),\n );\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nconst {polyfillGlobal} = require('../Utilities/PolyfillFunctions');\n\n/**\n * Set up XMLHttpRequest. The native XMLHttpRequest in Chrome dev tools is CORS\n * aware and won't let you fetch anything from the internet.\n *\n * You can use this module directly, or just require InitializeCore.\n */\npolyfillGlobal('XMLHttpRequest', () => require('../Network/XMLHttpRequest'));\npolyfillGlobal('FormData', () => require('../Network/FormData'));\n\npolyfillGlobal('fetch', () => require('../Network/fetch').fetch);\npolyfillGlobal('Headers', () => require('../Network/fetch').Headers);\npolyfillGlobal('Request', () => require('../Network/fetch').Request);\npolyfillGlobal('Response', () => require('../Network/fetch').Response);\npolyfillGlobal('WebSocket', () => require('../WebSocket/WebSocket'));\npolyfillGlobal('Blob', () => require('../Blob/Blob'));\npolyfillGlobal('File', () => require('../Blob/File'));\npolyfillGlobal('FileReader', () => require('../Blob/FileReader'));\npolyfillGlobal('URL', () => require('../Blob/URL').URL); // flowlint-line untyped-import:off\npolyfillGlobal('URLSearchParams', () => require('../Blob/URL').URLSearchParams); // flowlint-line untyped-import:off\npolyfillGlobal(\n 'AbortController',\n () => require('abort-controller/dist/abort-controller').AbortController, // flowlint-line untyped-import:off\n);\npolyfillGlobal(\n 'AbortSignal',\n () => require('abort-controller/dist/abort-controller').AbortSignal, // flowlint-line untyped-import:off\n);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nimport type {IPerformanceLogger} from '../Utilities/createPerformanceLogger';\n\nimport {type EventSubscription} from '../vendor/emitter/EventEmitter';\n\nconst BlobManager = require('../Blob/BlobManager');\nconst GlobalPerformanceLogger = require('../Utilities/GlobalPerformanceLogger');\nconst RCTNetworking = require('./RCTNetworking').default;\nconst base64 = require('base64-js');\nconst EventTarget = require('event-target-shim');\nconst invariant = require('invariant');\n\nconst DEBUG_NETWORK_SEND_DELAY: false = false; // Set to a number of milliseconds when debugging\n\nexport type NativeResponseType = 'base64' | 'blob' | 'text';\nexport type ResponseType =\n | ''\n | 'arraybuffer'\n | 'blob'\n | 'document'\n | 'json'\n | 'text';\nexport type Response = ?Object | string;\n\ntype XHRInterceptor = interface {\n requestSent(id: number, url: string, method: string, headers: Object): void,\n responseReceived(\n id: number,\n url: string,\n status: number,\n headers: Object,\n ): void,\n dataReceived(id: number, data: string): void,\n loadingFinished(id: number, encodedDataLength: number): void,\n loadingFailed(id: number, error: string): void,\n};\n\n// The native blob module is optional so inject it here if available.\nif (BlobManager.isAvailable) {\n BlobManager.addNetworkingHandler();\n}\n\nconst UNSENT = 0;\nconst OPENED = 1;\nconst HEADERS_RECEIVED = 2;\nconst LOADING = 3;\nconst DONE = 4;\n\nconst SUPPORTED_RESPONSE_TYPES = {\n arraybuffer: typeof global.ArrayBuffer === 'function',\n blob: typeof global.Blob === 'function',\n document: false,\n json: true,\n text: true,\n '': true,\n};\n\nconst REQUEST_EVENTS = [\n 'abort',\n 'error',\n 'load',\n 'loadstart',\n 'progress',\n 'timeout',\n 'loadend',\n];\n\nconst XHR_EVENTS = REQUEST_EVENTS.concat('readystatechange');\n\nclass XMLHttpRequestEventTarget extends (EventTarget(...REQUEST_EVENTS): any) {\n onload: ?Function;\n onloadstart: ?Function;\n onprogress: ?Function;\n ontimeout: ?Function;\n onerror: ?Function;\n onabort: ?Function;\n onloadend: ?Function;\n}\n\n/**\n * Shared base for platform-specific XMLHttpRequest implementations.\n */\nclass XMLHttpRequest extends (EventTarget(...XHR_EVENTS): any) {\n static UNSENT: number = UNSENT;\n static OPENED: number = OPENED;\n static HEADERS_RECEIVED: number = HEADERS_RECEIVED;\n static LOADING: number = LOADING;\n static DONE: number = DONE;\n\n static _interceptor: ?XHRInterceptor = null;\n\n UNSENT: number = UNSENT;\n OPENED: number = OPENED;\n HEADERS_RECEIVED: number = HEADERS_RECEIVED;\n LOADING: number = LOADING;\n DONE: number = DONE;\n\n // EventTarget automatically initializes these to `null`.\n onload: ?Function;\n onloadstart: ?Function;\n onprogress: ?Function;\n ontimeout: ?Function;\n onerror: ?Function;\n onabort: ?Function;\n onloadend: ?Function;\n onreadystatechange: ?Function;\n\n readyState: number = UNSENT;\n responseHeaders: ?Object;\n status: number = 0;\n timeout: number = 0;\n responseURL: ?string;\n withCredentials: boolean = true;\n\n upload: XMLHttpRequestEventTarget = new XMLHttpRequestEventTarget();\n\n _requestId: ?number;\n _subscriptions: Array;\n\n _aborted: boolean = false;\n _cachedResponse: Response;\n _hasError: boolean = false;\n _headers: Object;\n _lowerCaseResponseHeaders: Object;\n _method: ?string = null;\n _perfKey: ?string = null;\n _responseType: ResponseType;\n _response: string = '';\n _sent: boolean;\n _url: ?string = null;\n _timedOut: boolean = false;\n _trackingName: string = 'unknown';\n _incrementalEvents: boolean = false;\n _performanceLogger: IPerformanceLogger = GlobalPerformanceLogger;\n\n static setInterceptor(interceptor: ?XHRInterceptor) {\n XMLHttpRequest._interceptor = interceptor;\n }\n\n constructor() {\n super();\n this._reset();\n }\n\n _reset(): void {\n this.readyState = this.UNSENT;\n this.responseHeaders = undefined;\n this.status = 0;\n delete this.responseURL;\n\n this._requestId = null;\n\n this._cachedResponse = undefined;\n this._hasError = false;\n this._headers = {};\n this._response = '';\n this._responseType = '';\n this._sent = false;\n this._lowerCaseResponseHeaders = {};\n\n this._clearSubscriptions();\n this._timedOut = false;\n }\n\n get responseType(): ResponseType {\n return this._responseType;\n }\n\n set responseType(responseType: ResponseType): void {\n if (this._sent) {\n throw new Error(\n \"Failed to set the 'responseType' property on 'XMLHttpRequest': The \" +\n 'response type cannot be set after the request has been sent.',\n );\n }\n if (!SUPPORTED_RESPONSE_TYPES.hasOwnProperty(responseType)) {\n console.warn(\n `The provided value '${responseType}' is not a valid 'responseType'.`,\n );\n return;\n }\n\n // redboxes early, e.g. for 'arraybuffer' on ios 7\n invariant(\n SUPPORTED_RESPONSE_TYPES[responseType] || responseType === 'document',\n `The provided value '${responseType}' is unsupported in this environment.`,\n );\n\n if (responseType === 'blob') {\n invariant(\n BlobManager.isAvailable,\n 'Native module BlobModule is required for blob support',\n );\n }\n this._responseType = responseType;\n }\n\n get responseText(): string {\n if (this._responseType !== '' && this._responseType !== 'text') {\n throw new Error(\n \"The 'responseText' property is only available if 'responseType' \" +\n `is set to '' or 'text', but it is '${this._responseType}'.`,\n );\n }\n if (this.readyState < LOADING) {\n return '';\n }\n return this._response;\n }\n\n get response(): Response {\n const {responseType} = this;\n if (responseType === '' || responseType === 'text') {\n return this.readyState < LOADING || this._hasError ? '' : this._response;\n }\n\n if (this.readyState !== DONE) {\n return null;\n }\n\n if (this._cachedResponse !== undefined) {\n return this._cachedResponse;\n }\n\n switch (responseType) {\n case 'document':\n this._cachedResponse = null;\n break;\n\n case 'arraybuffer':\n this._cachedResponse = base64.toByteArray(this._response).buffer;\n break;\n\n case 'blob':\n if (typeof this._response === 'object' && this._response) {\n this._cachedResponse = BlobManager.createFromOptions(this._response);\n } else if (this._response === '') {\n this._cachedResponse = BlobManager.createFromParts([]);\n } else {\n throw new Error(`Invalid response for blob: ${this._response}`);\n }\n break;\n\n case 'json':\n try {\n this._cachedResponse = JSON.parse(this._response);\n } catch (_) {\n this._cachedResponse = null;\n }\n break;\n\n default:\n this._cachedResponse = null;\n }\n\n return this._cachedResponse;\n }\n\n // exposed for testing\n __didCreateRequest(requestId: number): void {\n this._requestId = requestId;\n\n XMLHttpRequest._interceptor &&\n XMLHttpRequest._interceptor.requestSent(\n requestId,\n this._url || '',\n this._method || 'GET',\n this._headers,\n );\n }\n\n // exposed for testing\n __didUploadProgress(\n requestId: number,\n progress: number,\n total: number,\n ): void {\n if (requestId === this._requestId) {\n this.upload.dispatchEvent({\n type: 'progress',\n lengthComputable: true,\n loaded: progress,\n total,\n });\n }\n }\n\n __didReceiveResponse(\n requestId: number,\n status: number,\n responseHeaders: ?Object,\n responseURL: ?string,\n ): void {\n if (requestId === this._requestId) {\n this._perfKey != null &&\n this._performanceLogger.stopTimespan(this._perfKey);\n this.status = status;\n this.setResponseHeaders(responseHeaders);\n this.setReadyState(this.HEADERS_RECEIVED);\n if (responseURL || responseURL === '') {\n this.responseURL = responseURL;\n } else {\n delete this.responseURL;\n }\n\n XMLHttpRequest._interceptor &&\n XMLHttpRequest._interceptor.responseReceived(\n requestId,\n responseURL || this._url || '',\n status,\n responseHeaders || {},\n );\n }\n }\n\n __didReceiveData(requestId: number, response: string): void {\n if (requestId !== this._requestId) {\n return;\n }\n this._response = response;\n this._cachedResponse = undefined; // force lazy recomputation\n this.setReadyState(this.LOADING);\n\n XMLHttpRequest._interceptor &&\n XMLHttpRequest._interceptor.dataReceived(requestId, response);\n }\n\n __didReceiveIncrementalData(\n requestId: number,\n responseText: string,\n progress: number,\n total: number,\n ) {\n if (requestId !== this._requestId) {\n return;\n }\n if (!this._response) {\n this._response = responseText;\n } else {\n this._response += responseText;\n }\n\n XMLHttpRequest._interceptor &&\n XMLHttpRequest._interceptor.dataReceived(requestId, responseText);\n\n this.setReadyState(this.LOADING);\n this.__didReceiveDataProgress(requestId, progress, total);\n }\n\n __didReceiveDataProgress(\n requestId: number,\n loaded: number,\n total: number,\n ): void {\n if (requestId !== this._requestId) {\n return;\n }\n this.dispatchEvent({\n type: 'progress',\n lengthComputable: total >= 0,\n loaded,\n total,\n });\n }\n\n // exposed for testing\n __didCompleteResponse(\n requestId: number,\n error: string,\n timeOutError: boolean,\n ): void {\n if (requestId === this._requestId) {\n if (error) {\n if (this._responseType === '' || this._responseType === 'text') {\n this._response = error;\n }\n this._hasError = true;\n if (timeOutError) {\n this._timedOut = true;\n }\n }\n this._clearSubscriptions();\n this._requestId = null;\n this.setReadyState(this.DONE);\n\n if (error) {\n XMLHttpRequest._interceptor &&\n XMLHttpRequest._interceptor.loadingFailed(requestId, error);\n } else {\n XMLHttpRequest._interceptor &&\n XMLHttpRequest._interceptor.loadingFinished(\n requestId,\n this._response.length,\n );\n }\n }\n }\n\n _clearSubscriptions(): void {\n (this._subscriptions || []).forEach(sub => {\n if (sub) {\n sub.remove();\n }\n });\n this._subscriptions = [];\n }\n\n getAllResponseHeaders(): ?string {\n if (!this.responseHeaders) {\n // according to the spec, return null if no response has been received\n return null;\n }\n\n // Assign to non-nullable local variable.\n const responseHeaders = this.responseHeaders;\n\n const unsortedHeaders: Map<\n string,\n {lowerHeaderName: string, upperHeaderName: string, headerValue: string},\n > = new Map();\n for (const rawHeaderName of Object.keys(responseHeaders)) {\n const headerValue = responseHeaders[rawHeaderName];\n const lowerHeaderName = rawHeaderName.toLowerCase();\n const header = unsortedHeaders.get(lowerHeaderName);\n if (header) {\n header.headerValue += ', ' + headerValue;\n unsortedHeaders.set(lowerHeaderName, header);\n } else {\n unsortedHeaders.set(lowerHeaderName, {\n lowerHeaderName,\n upperHeaderName: rawHeaderName.toUpperCase(),\n headerValue,\n });\n }\n }\n\n // Sort in ascending order, with a being less than b if a's name is legacy-uppercased-byte less than b's name.\n const sortedHeaders = [...unsortedHeaders.values()].sort((a, b) => {\n if (a.upperHeaderName < b.upperHeaderName) {\n return -1;\n }\n if (a.upperHeaderName > b.upperHeaderName) {\n return 1;\n }\n return 0;\n });\n\n // Combine into single text response.\n return (\n sortedHeaders\n .map(header => {\n return header.lowerHeaderName + ': ' + header.headerValue;\n })\n .join('\\r\\n') + '\\r\\n'\n );\n }\n\n getResponseHeader(header: string): ?string {\n const value = this._lowerCaseResponseHeaders[header.toLowerCase()];\n return value !== undefined ? value : null;\n }\n\n setRequestHeader(header: string, value: any): void {\n if (this.readyState !== this.OPENED) {\n throw new Error('Request has not been opened');\n }\n this._headers[header.toLowerCase()] = String(value);\n }\n\n /**\n * Custom extension for tracking origins of request.\n */\n setTrackingName(trackingName: string): XMLHttpRequest {\n this._trackingName = trackingName;\n return this;\n }\n\n /**\n * Custom extension for setting a custom performance logger\n */\n setPerformanceLogger(performanceLogger: IPerformanceLogger): XMLHttpRequest {\n this._performanceLogger = performanceLogger;\n return this;\n }\n\n open(method: string, url: string, async: ?boolean): void {\n /* Other optional arguments are not supported yet */\n if (this.readyState !== this.UNSENT) {\n throw new Error('Cannot open, already sending');\n }\n if (async !== undefined && !async) {\n // async is default\n throw new Error('Synchronous http requests are not supported');\n }\n if (!url) {\n throw new Error('Cannot load an empty url');\n }\n this._method = method.toUpperCase();\n this._url = url;\n this._aborted = false;\n this.setReadyState(this.OPENED);\n }\n\n send(data: any): void {\n if (this.readyState !== this.OPENED) {\n throw new Error('Request has not been opened');\n }\n if (this._sent) {\n throw new Error('Request has already been sent');\n }\n this._sent = true;\n const incrementalEvents =\n this._incrementalEvents || !!this.onreadystatechange || !!this.onprogress;\n\n this._subscriptions.push(\n RCTNetworking.addListener('didSendNetworkData', args =>\n this.__didUploadProgress(...args),\n ),\n );\n this._subscriptions.push(\n RCTNetworking.addListener('didReceiveNetworkResponse', args =>\n this.__didReceiveResponse(...args),\n ),\n );\n this._subscriptions.push(\n RCTNetworking.addListener('didReceiveNetworkData', args =>\n this.__didReceiveData(...args),\n ),\n );\n this._subscriptions.push(\n RCTNetworking.addListener('didReceiveNetworkIncrementalData', args =>\n this.__didReceiveIncrementalData(...args),\n ),\n );\n this._subscriptions.push(\n RCTNetworking.addListener('didReceiveNetworkDataProgress', args =>\n this.__didReceiveDataProgress(...args),\n ),\n );\n this._subscriptions.push(\n RCTNetworking.addListener('didCompleteNetworkResponse', args =>\n this.__didCompleteResponse(...args),\n ),\n );\n\n let nativeResponseType: NativeResponseType = 'text';\n if (this._responseType === 'arraybuffer') {\n nativeResponseType = 'base64';\n }\n if (this._responseType === 'blob') {\n nativeResponseType = 'blob';\n }\n\n const doSend = () => {\n const friendlyName =\n this._trackingName !== 'unknown' ? this._trackingName : this._url;\n this._perfKey = 'network_XMLHttpRequest_' + String(friendlyName);\n this._performanceLogger.startTimespan(this._perfKey);\n invariant(\n this._method,\n 'XMLHttpRequest method needs to be defined (%s).',\n friendlyName,\n );\n invariant(\n this._url,\n 'XMLHttpRequest URL needs to be defined (%s).',\n friendlyName,\n );\n RCTNetworking.sendRequest(\n this._method,\n this._trackingName,\n this._url,\n this._headers,\n data,\n /* $FlowFixMe(>=0.78.0 site=react_native_android_fb) This issue was found\n * when making Flow check .android.js files. */\n nativeResponseType,\n incrementalEvents,\n this.timeout,\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.__didCreateRequest.bind(this),\n this.withCredentials,\n );\n };\n if (DEBUG_NETWORK_SEND_DELAY) {\n setTimeout(doSend, DEBUG_NETWORK_SEND_DELAY);\n } else {\n doSend();\n }\n }\n\n abort(): void {\n this._aborted = true;\n if (this._requestId) {\n RCTNetworking.abortRequest(this._requestId);\n }\n // only call onreadystatechange if there is something to abort,\n // below logic is per spec\n if (\n !(\n this.readyState === this.UNSENT ||\n (this.readyState === this.OPENED && !this._sent) ||\n this.readyState === this.DONE\n )\n ) {\n this._reset();\n this.setReadyState(this.DONE);\n }\n // Reset again after, in case modified in handler\n this._reset();\n }\n\n setResponseHeaders(responseHeaders: ?Object): void {\n this.responseHeaders = responseHeaders || null;\n const headers = responseHeaders || {};\n this._lowerCaseResponseHeaders = Object.keys(headers).reduce<{\n [string]: any,\n }>((lcaseHeaders, headerName) => {\n lcaseHeaders[headerName.toLowerCase()] = headers[headerName];\n return lcaseHeaders;\n }, {});\n }\n\n setReadyState(newState: number): void {\n this.readyState = newState;\n this.dispatchEvent({type: 'readystatechange'});\n if (newState === this.DONE) {\n if (this._aborted) {\n this.dispatchEvent({type: 'abort'});\n } else if (this._hasError) {\n if (this._timedOut) {\n this.dispatchEvent({type: 'timeout'});\n } else {\n this.dispatchEvent({type: 'error'});\n }\n } else {\n this.dispatchEvent({type: 'load'});\n }\n this.dispatchEvent({type: 'loadend'});\n }\n }\n\n /* global EventListener */\n addEventListener(type: string, listener: EventListener): void {\n // If we dont' have a 'readystatechange' event handler, we don't\n // have to send repeated LOADING events with incremental updates\n // to responseText, which will avoid a bunch of native -> JS\n // bridge traffic.\n if (type === 'readystatechange' || type === 'progress') {\n this._incrementalEvents = true;\n }\n super.addEventListener(type, listener);\n }\n}\n\nmodule.exports = XMLHttpRequest;\n","var superPropBase = require(\"./superPropBase.js\");\nfunction _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get.bind(), module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n return _get.apply(this, arguments);\n}\nmodule.exports = _get, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n}\nmodule.exports = _superPropBase, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {BlobCollector, BlobData, BlobOptions} from './BlobTypes';\n\nimport NativeBlobModule from './NativeBlobModule';\nimport invariant from 'invariant';\n\nconst Blob = require('./Blob');\nconst BlobRegistry = require('./BlobRegistry');\n\n/*eslint-disable no-bitwise */\n/*eslint-disable eqeqeq */\n\n/**\n * Based on the rfc4122-compliant solution posted at\n * http://stackoverflow.com/questions/105034\n */\nfunction uuidv4(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\n const r = (Math.random() * 16) | 0,\n v = c == 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\n// **Temporary workaround**\n// TODO(#24654): Use turbomodules for the Blob module.\n// Blob collector is a jsi::HostObject that is used by native to know\n// when the a Blob instance is deallocated. This allows to free the\n// underlying native resources. This is a hack to workaround the fact\n// that the current bridge infra doesn't allow to track js objects\n// deallocation. Ideally the whole Blob object should be a jsi::HostObject.\nfunction createBlobCollector(blobId: string): BlobCollector | null {\n if (global.__blobCollectorProvider == null) {\n return null;\n } else {\n return global.__blobCollectorProvider(blobId);\n }\n}\n\n/**\n * Module to manage blobs. Wrapper around the native blob module.\n */\nclass BlobManager {\n /**\n * If the native blob module is available.\n */\n static isAvailable: boolean = !!NativeBlobModule;\n\n /**\n * Create blob from existing array of blobs.\n */\n static createFromParts(\n parts: Array,\n options?: BlobOptions,\n ): Blob {\n invariant(NativeBlobModule, 'NativeBlobModule is available.');\n\n const blobId = uuidv4();\n const items = parts.map(part => {\n if (\n part instanceof ArrayBuffer ||\n (global.ArrayBufferView && part instanceof global.ArrayBufferView)\n ) {\n throw new Error(\n \"Creating blobs from 'ArrayBuffer' and 'ArrayBufferView' are not supported\",\n );\n }\n if (part instanceof Blob) {\n return {\n data: part.data,\n type: 'blob',\n };\n } else {\n return {\n data: String(part),\n type: 'string',\n };\n }\n });\n const size = items.reduce((acc, curr) => {\n if (curr.type === 'string') {\n return acc + global.unescape(encodeURI(curr.data)).length;\n } else {\n return acc + curr.data.size;\n }\n }, 0);\n\n NativeBlobModule.createFromParts(items, blobId);\n\n return BlobManager.createFromOptions({\n blobId,\n offset: 0,\n size,\n type: options ? options.type : '',\n lastModified: options ? options.lastModified : Date.now(),\n });\n }\n\n /**\n * Create blob instance from blob data from native.\n * Used internally by modules like XHR, WebSocket, etc.\n */\n static createFromOptions(options: BlobData): Blob {\n BlobRegistry.register(options.blobId);\n // $FlowFixMe[prop-missing]\n return Object.assign(Object.create(Blob.prototype), {\n data:\n // Reuse the collector instance when creating from an existing blob.\n // This will make sure that the underlying resource is only deallocated\n // when all blobs that refer to it are deallocated.\n options.__collector == null\n ? {\n ...options,\n __collector: createBlobCollector(options.blobId),\n }\n : options,\n });\n }\n\n /**\n * Deallocate resources for a blob.\n */\n static release(blobId: string): void {\n invariant(NativeBlobModule, 'NativeBlobModule is available.');\n\n BlobRegistry.unregister(blobId);\n if (BlobRegistry.has(blobId)) {\n return;\n }\n NativeBlobModule.release(blobId);\n }\n\n /**\n * Inject the blob content handler in the networking module to support blob\n * requests and responses.\n */\n static addNetworkingHandler(): void {\n invariant(NativeBlobModule, 'NativeBlobModule is available.');\n\n NativeBlobModule.addNetworkingHandler();\n }\n\n /**\n * Indicate the websocket should return a blob for incoming binary\n * messages.\n */\n static addWebSocketHandler(socketId: number): void {\n invariant(NativeBlobModule, 'NativeBlobModule is available.');\n\n NativeBlobModule.addWebSocketHandler(socketId);\n }\n\n /**\n * Indicate the websocket should no longer return a blob for incoming\n * binary messages.\n */\n static removeWebSocketHandler(socketId: number): void {\n invariant(NativeBlobModule, 'NativeBlobModule is available.');\n\n NativeBlobModule.removeWebSocketHandler(socketId);\n }\n\n /**\n * Send a blob message to a websocket.\n */\n static sendOverSocket(blob: Blob, socketId: number): void {\n invariant(NativeBlobModule, 'NativeBlobModule is available.');\n\n NativeBlobModule.sendOverSocket(blob.data, socketId);\n }\n}\n\nmodule.exports = BlobManager;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|BLOB_URI_SCHEME: ?string, BLOB_URI_HOST: ?string|};\n +addNetworkingHandler: () => void;\n +addWebSocketHandler: (id: number) => void;\n +removeWebSocketHandler: (id: number) => void;\n +sendOverSocket: (blob: Object, socketID: number) => void;\n +createFromParts: (parts: Array, withId: string) => void;\n +release: (blobId: string) => void;\n}\n\nconst NativeModule = TurboModuleRegistry.get('BlobModule');\n\nlet constants = null;\nlet NativeBlobModule = null;\n\nif (NativeModule != null) {\n NativeBlobModule = {\n getConstants(): {|BLOB_URI_SCHEME: ?string, BLOB_URI_HOST: ?string|} {\n if (constants == null) {\n constants = NativeModule.getConstants();\n }\n return constants;\n },\n addNetworkingHandler(): void {\n NativeModule.addNetworkingHandler();\n },\n addWebSocketHandler(id: number): void {\n NativeModule.addWebSocketHandler(id);\n },\n removeWebSocketHandler(id: number): void {\n NativeModule.removeWebSocketHandler(id);\n },\n sendOverSocket(blob: Object, socketID: number): void {\n NativeModule.sendOverSocket(blob, socketID);\n },\n createFromParts(parts: Array, withId: string): void {\n NativeModule.createFromParts(parts, withId);\n },\n release(blobId: string): void {\n NativeModule.release(blobId);\n },\n };\n}\n\nexport default (NativeBlobModule: ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nimport type {BlobData, BlobOptions} from './BlobTypes';\n\n/**\n * Opaque JS representation of some binary data in native.\n *\n * The API is modeled after the W3C Blob API, with one caveat\n * regarding explicit deallocation. Refer to the `close()`\n * method for further details.\n *\n * Example usage in a React component:\n *\n * class WebSocketImage extends React.Component {\n * state = {blob: null};\n * componentDidMount() {\n * let ws = this.ws = new WebSocket(...);\n * ws.binaryType = 'blob';\n * ws.onmessage = (event) => {\n * if (this.state.blob) {\n * this.state.blob.close();\n * }\n * this.setState({blob: event.data});\n * };\n * }\n * componentUnmount() {\n * if (this.state.blob) {\n * this.state.blob.close();\n * }\n * this.ws.close();\n * }\n * render() {\n * if (!this.state.blob) {\n * return ;\n * }\n * return ;\n * }\n * }\n *\n * Reference: https://developer.mozilla.org/en-US/docs/Web/API/Blob\n */\nclass Blob {\n _data: ?BlobData;\n\n /**\n * Constructor for JS consumers.\n * Currently we only support creating Blobs from other Blobs.\n * Reference: https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob\n */\n constructor(parts: Array = [], options?: BlobOptions) {\n const BlobManager = require('./BlobManager');\n this.data = BlobManager.createFromParts(parts, options).data;\n }\n\n /*\n * This method is used to create a new Blob object containing\n * the data in the specified range of bytes of the source Blob.\n * Reference: https://developer.mozilla.org/en-US/docs/Web/API/Blob/slice\n */\n // $FlowFixMe[unsafe-getters-setters]\n set data(data: ?BlobData) {\n this._data = data;\n }\n\n // $FlowFixMe[unsafe-getters-setters]\n get data(): BlobData {\n if (!this._data) {\n throw new Error('Blob has been closed and is no longer available');\n }\n\n return this._data;\n }\n\n slice(start?: number, end?: number): Blob {\n const BlobManager = require('./BlobManager');\n let {offset, size} = this.data;\n\n if (typeof start === 'number') {\n if (start > size) {\n // $FlowFixMe[reassign-const]\n start = size;\n }\n offset += start;\n size -= start;\n\n if (typeof end === 'number') {\n if (end < 0) {\n // $FlowFixMe[reassign-const]\n end = this.size + end;\n }\n if (end > this.size) {\n // $FlowFixMe[reassign-const]\n end = this.size;\n }\n size = end - start;\n }\n }\n return BlobManager.createFromOptions({\n blobId: this.data.blobId,\n offset,\n size,\n /* Since `blob.slice()` creates a new view onto the same binary\n * data as the original blob, we should re-use the same collector\n * object so that the underlying resource gets deallocated when\n * the last view into the data is released, not the first.\n */\n __collector: this.data.__collector,\n });\n }\n\n /**\n * This method is in the standard, but not actually implemented by\n * any browsers at this point. It's important for how Blobs work in\n * React Native, however, since we cannot de-allocate resources automatically,\n * so consumers need to explicitly de-allocate them.\n *\n * Note that the semantics around Blobs created via `blob.slice()`\n * and `new Blob([blob])` are different. `blob.slice()` creates a\n * new *view* onto the same binary data, so calling `close()` on any\n * of those views is enough to deallocate the data, whereas\n * `new Blob([blob, ...])` actually copies the data in memory.\n */\n close() {\n const BlobManager = require('./BlobManager');\n BlobManager.release(this.data.blobId);\n this.data = null;\n }\n\n /**\n * Size of the data contained in the Blob object, in bytes.\n */\n // $FlowFixMe[unsafe-getters-setters]\n get size(): number {\n return this.data.size;\n }\n\n /*\n * String indicating the MIME type of the data contained in the Blob.\n * If the type is unknown, this string is empty.\n */\n // $FlowFixMe[unsafe-getters-setters]\n get type(): string {\n return this.data.type || '';\n }\n}\n\nmodule.exports = Blob;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nconst registry: {[key: string]: number, ...} = {};\n\nconst register = (id: string) => {\n if (registry[id]) {\n registry[id]++;\n } else {\n registry[id] = 1;\n }\n};\n\nconst unregister = (id: string) => {\n if (registry[id]) {\n registry[id]--;\n if (registry[id] <= 0) {\n delete registry[id];\n }\n }\n};\n\nconst has = (id: string): number | boolean => {\n return registry[id] && registry[id] > 0;\n};\n\nmodule.exports = {\n register,\n unregister,\n has,\n};\n","/**\n * @author Toru Nagashima \n * @copyright 2015 Toru Nagashima. All rights reserved.\n * See LICENSE file in root directory for full license.\n */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/**\n * @typedef {object} PrivateData\n * @property {EventTarget} eventTarget The event target.\n * @property {{type:string}} event The original event object.\n * @property {number} eventPhase The current event phase.\n * @property {EventTarget|null} currentTarget The current event target.\n * @property {boolean} canceled The flag to prevent default.\n * @property {boolean} stopped The flag to stop propagation.\n * @property {boolean} immediateStopped The flag to stop propagation immediately.\n * @property {Function|null} passiveListener The listener if the current listener is passive. Otherwise this is null.\n * @property {number} timeStamp The unix time.\n * @private\n */\n\n/**\n * Private data for event wrappers.\n * @type {WeakMap}\n * @private\n */\nconst privateData = new WeakMap();\n\n/**\n * Cache for wrapper classes.\n * @type {WeakMap}\n * @private\n */\nconst wrappers = new WeakMap();\n\n/**\n * Get private data.\n * @param {Event} event The event object to get private data.\n * @returns {PrivateData} The private data of the event.\n * @private\n */\nfunction pd(event) {\n const retv = privateData.get(event);\n console.assert(\n retv != null,\n \"'this' is expected an Event object, but got\",\n event\n );\n return retv\n}\n\n/**\n * https://dom.spec.whatwg.org/#set-the-canceled-flag\n * @param data {PrivateData} private data.\n */\nfunction setCancelFlag(data) {\n if (data.passiveListener != null) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(\n \"Unable to preventDefault inside passive event listener invocation.\",\n data.passiveListener\n );\n }\n return\n }\n if (!data.event.cancelable) {\n return\n }\n\n data.canceled = true;\n if (typeof data.event.preventDefault === \"function\") {\n data.event.preventDefault();\n }\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#interface-event\n * @private\n */\n/**\n * The event wrapper.\n * @constructor\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Event|{type:string}} event The original event to wrap.\n */\nfunction Event(eventTarget, event) {\n privateData.set(this, {\n eventTarget,\n event,\n eventPhase: 2,\n currentTarget: eventTarget,\n canceled: false,\n stopped: false,\n immediateStopped: false,\n passiveListener: null,\n timeStamp: event.timeStamp || Date.now(),\n });\n\n // https://heycam.github.io/webidl/#Unforgeable\n Object.defineProperty(this, \"isTrusted\", { value: false, enumerable: true });\n\n // Define accessors\n const keys = Object.keys(event);\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (!(key in this)) {\n Object.defineProperty(this, key, defineRedirectDescriptor(key));\n }\n }\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEvent.prototype = {\n /**\n * The type of this event.\n * @type {string}\n */\n get type() {\n return pd(this).event.type\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get target() {\n return pd(this).eventTarget\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get currentTarget() {\n return pd(this).currentTarget\n },\n\n /**\n * @returns {EventTarget[]} The composed path of this event.\n */\n composedPath() {\n const currentTarget = pd(this).currentTarget;\n if (currentTarget == null) {\n return []\n }\n return [currentTarget]\n },\n\n /**\n * Constant of NONE.\n * @type {number}\n */\n get NONE() {\n return 0\n },\n\n /**\n * Constant of CAPTURING_PHASE.\n * @type {number}\n */\n get CAPTURING_PHASE() {\n return 1\n },\n\n /**\n * Constant of AT_TARGET.\n * @type {number}\n */\n get AT_TARGET() {\n return 2\n },\n\n /**\n * Constant of BUBBLING_PHASE.\n * @type {number}\n */\n get BUBBLING_PHASE() {\n return 3\n },\n\n /**\n * The target of this event.\n * @type {number}\n */\n get eventPhase() {\n return pd(this).eventPhase\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopPropagation() {\n const data = pd(this);\n\n data.stopped = true;\n if (typeof data.event.stopPropagation === \"function\") {\n data.event.stopPropagation();\n }\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopImmediatePropagation() {\n const data = pd(this);\n\n data.stopped = true;\n data.immediateStopped = true;\n if (typeof data.event.stopImmediatePropagation === \"function\") {\n data.event.stopImmediatePropagation();\n }\n },\n\n /**\n * The flag to be bubbling.\n * @type {boolean}\n */\n get bubbles() {\n return Boolean(pd(this).event.bubbles)\n },\n\n /**\n * The flag to be cancelable.\n * @type {boolean}\n */\n get cancelable() {\n return Boolean(pd(this).event.cancelable)\n },\n\n /**\n * Cancel this event.\n * @returns {void}\n */\n preventDefault() {\n setCancelFlag(pd(this));\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n */\n get defaultPrevented() {\n return pd(this).canceled\n },\n\n /**\n * The flag to be composed.\n * @type {boolean}\n */\n get composed() {\n return Boolean(pd(this).event.composed)\n },\n\n /**\n * The unix time of this event.\n * @type {number}\n */\n get timeStamp() {\n return pd(this).timeStamp\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n * @deprecated\n */\n get srcElement() {\n return pd(this).eventTarget\n },\n\n /**\n * The flag to stop event bubbling.\n * @type {boolean}\n * @deprecated\n */\n get cancelBubble() {\n return pd(this).stopped\n },\n set cancelBubble(value) {\n if (!value) {\n return\n }\n const data = pd(this);\n\n data.stopped = true;\n if (typeof data.event.cancelBubble === \"boolean\") {\n data.event.cancelBubble = true;\n }\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n * @deprecated\n */\n get returnValue() {\n return !pd(this).canceled\n },\n set returnValue(value) {\n if (!value) {\n setCancelFlag(pd(this));\n }\n },\n\n /**\n * Initialize this event object. But do nothing under event dispatching.\n * @param {string} type The event type.\n * @param {boolean} [bubbles=false] The flag to be possible to bubble up.\n * @param {boolean} [cancelable=false] The flag to be possible to cancel.\n * @deprecated\n */\n initEvent() {\n // Do nothing.\n },\n};\n\n// `constructor` is not enumerable.\nObject.defineProperty(Event.prototype, \"constructor\", {\n value: Event,\n configurable: true,\n writable: true,\n});\n\n// Ensure `event instanceof window.Event` is `true`.\nif (typeof window !== \"undefined\" && typeof window.Event !== \"undefined\") {\n Object.setPrototypeOf(Event.prototype, window.Event.prototype);\n\n // Make association for wrappers.\n wrappers.set(window.Event.prototype, Event);\n}\n\n/**\n * Get the property descriptor to redirect a given property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to redirect the property.\n * @private\n */\nfunction defineRedirectDescriptor(key) {\n return {\n get() {\n return pd(this).event[key]\n },\n set(value) {\n pd(this).event[key] = value;\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Get the property descriptor to call a given method property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to call the method property.\n * @private\n */\nfunction defineCallDescriptor(key) {\n return {\n value() {\n const event = pd(this).event;\n return event[key].apply(event, arguments)\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define new wrapper class.\n * @param {Function} BaseEvent The base wrapper class.\n * @param {Object} proto The prototype of the original event.\n * @returns {Function} The defined wrapper class.\n * @private\n */\nfunction defineWrapper(BaseEvent, proto) {\n const keys = Object.keys(proto);\n if (keys.length === 0) {\n return BaseEvent\n }\n\n /** CustomEvent */\n function CustomEvent(eventTarget, event) {\n BaseEvent.call(this, eventTarget, event);\n }\n\n CustomEvent.prototype = Object.create(BaseEvent.prototype, {\n constructor: { value: CustomEvent, configurable: true, writable: true },\n });\n\n // Define accessors.\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (!(key in BaseEvent.prototype)) {\n const descriptor = Object.getOwnPropertyDescriptor(proto, key);\n const isFunc = typeof descriptor.value === \"function\";\n Object.defineProperty(\n CustomEvent.prototype,\n key,\n isFunc\n ? defineCallDescriptor(key)\n : defineRedirectDescriptor(key)\n );\n }\n }\n\n return CustomEvent\n}\n\n/**\n * Get the wrapper class of a given prototype.\n * @param {Object} proto The prototype of the original event to get its wrapper.\n * @returns {Function} The wrapper class.\n * @private\n */\nfunction getWrapper(proto) {\n if (proto == null || proto === Object.prototype) {\n return Event\n }\n\n let wrapper = wrappers.get(proto);\n if (wrapper == null) {\n wrapper = defineWrapper(getWrapper(Object.getPrototypeOf(proto)), proto);\n wrappers.set(proto, wrapper);\n }\n return wrapper\n}\n\n/**\n * Wrap a given event to management a dispatching.\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Object} event The event to wrap.\n * @returns {Event} The wrapper instance.\n * @private\n */\nfunction wrapEvent(eventTarget, event) {\n const Wrapper = getWrapper(Object.getPrototypeOf(event));\n return new Wrapper(eventTarget, event)\n}\n\n/**\n * Get the immediateStopped flag of a given event.\n * @param {Event} event The event to get.\n * @returns {boolean} The flag to stop propagation immediately.\n * @private\n */\nfunction isStopped(event) {\n return pd(event).immediateStopped\n}\n\n/**\n * Set the current event phase of a given event.\n * @param {Event} event The event to set current target.\n * @param {number} eventPhase New event phase.\n * @returns {void}\n * @private\n */\nfunction setEventPhase(event, eventPhase) {\n pd(event).eventPhase = eventPhase;\n}\n\n/**\n * Set the current target of a given event.\n * @param {Event} event The event to set current target.\n * @param {EventTarget|null} currentTarget New current target.\n * @returns {void}\n * @private\n */\nfunction setCurrentTarget(event, currentTarget) {\n pd(event).currentTarget = currentTarget;\n}\n\n/**\n * Set a passive listener of a given event.\n * @param {Event} event The event to set current target.\n * @param {Function|null} passiveListener New passive listener.\n * @returns {void}\n * @private\n */\nfunction setPassiveListener(event, passiveListener) {\n pd(event).passiveListener = passiveListener;\n}\n\n/**\n * @typedef {object} ListenerNode\n * @property {Function} listener\n * @property {1|2|3} listenerType\n * @property {boolean} passive\n * @property {boolean} once\n * @property {ListenerNode|null} next\n * @private\n */\n\n/**\n * @type {WeakMap>}\n * @private\n */\nconst listenersMap = new WeakMap();\n\n// Listener types\nconst CAPTURE = 1;\nconst BUBBLE = 2;\nconst ATTRIBUTE = 3;\n\n/**\n * Check whether a given value is an object or not.\n * @param {any} x The value to check.\n * @returns {boolean} `true` if the value is an object.\n */\nfunction isObject(x) {\n return x !== null && typeof x === \"object\" //eslint-disable-line no-restricted-syntax\n}\n\n/**\n * Get listeners.\n * @param {EventTarget} eventTarget The event target to get.\n * @returns {Map} The listeners.\n * @private\n */\nfunction getListeners(eventTarget) {\n const listeners = listenersMap.get(eventTarget);\n if (listeners == null) {\n throw new TypeError(\n \"'this' is expected an EventTarget object, but got another value.\"\n )\n }\n return listeners\n}\n\n/**\n * Get the property descriptor for the event attribute of a given event.\n * @param {string} eventName The event name to get property descriptor.\n * @returns {PropertyDescriptor} The property descriptor.\n * @private\n */\nfunction defineEventAttributeDescriptor(eventName) {\n return {\n get() {\n const listeners = getListeners(this);\n let node = listeners.get(eventName);\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n return node.listener\n }\n node = node.next;\n }\n return null\n },\n\n set(listener) {\n if (typeof listener !== \"function\" && !isObject(listener)) {\n listener = null; // eslint-disable-line no-param-reassign\n }\n const listeners = getListeners(this);\n\n // Traverse to the tail while removing old value.\n let prev = null;\n let node = listeners.get(eventName);\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n // Remove old value.\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n } else {\n prev = node;\n }\n\n node = node.next;\n }\n\n // Add new value.\n if (listener !== null) {\n const newNode = {\n listener,\n listenerType: ATTRIBUTE,\n passive: false,\n once: false,\n next: null,\n };\n if (prev === null) {\n listeners.set(eventName, newNode);\n } else {\n prev.next = newNode;\n }\n }\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define an event attribute (e.g. `eventTarget.onclick`).\n * @param {Object} eventTargetPrototype The event target prototype to define an event attrbite.\n * @param {string} eventName The event name to define.\n * @returns {void}\n */\nfunction defineEventAttribute(eventTargetPrototype, eventName) {\n Object.defineProperty(\n eventTargetPrototype,\n `on${eventName}`,\n defineEventAttributeDescriptor(eventName)\n );\n}\n\n/**\n * Define a custom EventTarget with event attributes.\n * @param {string[]} eventNames Event names for event attributes.\n * @returns {EventTarget} The custom EventTarget.\n * @private\n */\nfunction defineCustomEventTarget(eventNames) {\n /** CustomEventTarget */\n function CustomEventTarget() {\n EventTarget.call(this);\n }\n\n CustomEventTarget.prototype = Object.create(EventTarget.prototype, {\n constructor: {\n value: CustomEventTarget,\n configurable: true,\n writable: true,\n },\n });\n\n for (let i = 0; i < eventNames.length; ++i) {\n defineEventAttribute(CustomEventTarget.prototype, eventNames[i]);\n }\n\n return CustomEventTarget\n}\n\n/**\n * EventTarget.\n *\n * - This is constructor if no arguments.\n * - This is a function which returns a CustomEventTarget constructor if there are arguments.\n *\n * For example:\n *\n * class A extends EventTarget {}\n * class B extends EventTarget(\"message\") {}\n * class C extends EventTarget(\"message\", \"error\") {}\n * class D extends EventTarget([\"message\", \"error\"]) {}\n */\nfunction EventTarget() {\n /*eslint-disable consistent-return */\n if (this instanceof EventTarget) {\n listenersMap.set(this, new Map());\n return\n }\n if (arguments.length === 1 && Array.isArray(arguments[0])) {\n return defineCustomEventTarget(arguments[0])\n }\n if (arguments.length > 0) {\n const types = new Array(arguments.length);\n for (let i = 0; i < arguments.length; ++i) {\n types[i] = arguments[i];\n }\n return defineCustomEventTarget(types)\n }\n throw new TypeError(\"Cannot call a class as a function\")\n /*eslint-enable consistent-return */\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEventTarget.prototype = {\n /**\n * Add a given listener to this event target.\n * @param {string} eventName The event name to add.\n * @param {Function} listener The listener to add.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n addEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n if (typeof listener !== \"function\" && !isObject(listener)) {\n throw new TypeError(\"'listener' should be a function or an object.\")\n }\n\n const listeners = getListeners(this);\n const optionsIsObj = isObject(options);\n const capture = optionsIsObj\n ? Boolean(options.capture)\n : Boolean(options);\n const listenerType = capture ? CAPTURE : BUBBLE;\n const newNode = {\n listener,\n listenerType,\n passive: optionsIsObj && Boolean(options.passive),\n once: optionsIsObj && Boolean(options.once),\n next: null,\n };\n\n // Set it as the first node if the first node is null.\n let node = listeners.get(eventName);\n if (node === undefined) {\n listeners.set(eventName, newNode);\n return\n }\n\n // Traverse to the tail while checking duplication..\n let prev = null;\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n // Should ignore duplication.\n return\n }\n prev = node;\n node = node.next;\n }\n\n // Add it.\n prev.next = newNode;\n },\n\n /**\n * Remove a given listener from this event target.\n * @param {string} eventName The event name to remove.\n * @param {Function} listener The listener to remove.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n removeEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n\n const listeners = getListeners(this);\n const capture = isObject(options)\n ? Boolean(options.capture)\n : Boolean(options);\n const listenerType = capture ? CAPTURE : BUBBLE;\n\n let prev = null;\n let node = listeners.get(eventName);\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n return\n }\n\n prev = node;\n node = node.next;\n }\n },\n\n /**\n * Dispatch a given event.\n * @param {Event|{type:string}} event The event to dispatch.\n * @returns {boolean} `false` if canceled.\n */\n dispatchEvent(event) {\n if (event == null || typeof event.type !== \"string\") {\n throw new TypeError('\"event.type\" should be a string.')\n }\n\n // If listeners aren't registered, terminate.\n const listeners = getListeners(this);\n const eventName = event.type;\n let node = listeners.get(eventName);\n if (node == null) {\n return true\n }\n\n // Since we cannot rewrite several properties, so wrap object.\n const wrappedEvent = wrapEvent(this, event);\n\n // This doesn't process capturing phase and bubbling phase.\n // This isn't participating in a tree.\n let prev = null;\n while (node != null) {\n // Remove this listener if it's once\n if (node.once) {\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n } else {\n prev = node;\n }\n\n // Call this listener\n setPassiveListener(\n wrappedEvent,\n node.passive ? node.listener : null\n );\n if (typeof node.listener === \"function\") {\n try {\n node.listener.call(this, wrappedEvent);\n } catch (err) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(err);\n }\n }\n } else if (\n node.listenerType !== ATTRIBUTE &&\n typeof node.listener.handleEvent === \"function\"\n ) {\n node.listener.handleEvent(wrappedEvent);\n }\n\n // Break if `event.stopImmediatePropagation` was called.\n if (isStopped(wrappedEvent)) {\n break\n }\n\n node = node.next;\n }\n setPassiveListener(wrappedEvent, null);\n setEventPhase(wrappedEvent, 0);\n setCurrentTarget(wrappedEvent, null);\n\n return !wrappedEvent.defaultPrevented\n },\n};\n\n// `constructor` is not enumerable.\nObject.defineProperty(EventTarget.prototype, \"constructor\", {\n value: EventTarget,\n configurable: true,\n writable: true,\n});\n\n// Ensure `eventTarget instanceof window.EventTarget` is `true`.\nif (\n typeof window !== \"undefined\" &&\n typeof window.EventTarget !== \"undefined\"\n) {\n Object.setPrototypeOf(EventTarget.prototype, window.EventTarget.prototype);\n}\n\nexports.defineEventAttribute = defineEventAttribute;\nexports.EventTarget = EventTarget;\nexports.default = EventTarget;\n\nmodule.exports = EventTarget\nmodule.exports.EventTarget = module.exports[\"default\"] = EventTarget\nmodule.exports.defineEventAttribute = defineEventAttribute\n//# sourceMappingURL=event-target-shim.js.map\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {IPerformanceLogger} from './createPerformanceLogger';\n\nimport ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';\nimport NativePerformance from '../WebPerformance/NativePerformance';\nimport createPerformanceLogger from './createPerformanceLogger';\n\nfunction isLoggingForWebPerformance(): boolean {\n return (\n NativePerformance != null &&\n ReactNativeFeatureFlags.isGlobalWebPerformanceLoggerEnabled()\n );\n}\n\n/**\n * This is a global shared instance of IPerformanceLogger that is created with\n * createPerformanceLogger().\n * This logger should be used only for global performance metrics like the ones\n * that are logged during loading bundle. If you want to log something from your\n * React component you should use PerformanceLoggerContext instead.\n */\nconst GlobalPerformanceLogger: IPerformanceLogger = createPerformanceLogger(\n isLoggingForWebPerformance(),\n);\n\nmodule.exports = GlobalPerformanceLogger;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nexport type FeatureFlags = {|\n /**\n * Function used to enable / disabled Layout Animations in React Native.\n * Default value = true.\n */\n isLayoutAnimationEnabled: () => boolean,\n /**\n * Function used to enable / disable W3C pointer event emitting in React Native.\n * If enabled you must also flip the equivalent native flags on each platform:\n * iOS -> RCTSetDispatchW3CPointerEvents\n * Android -> ReactFeatureFlags.dispatchPointerEvents\n */\n shouldEmitW3CPointerEvents: () => boolean,\n /**\n * Function used to enable / disable Pressibility from using W3C Pointer Events\n * for its hover callbacks\n */\n shouldPressibilityUseW3CPointerEventsForHover: () => boolean,\n /**\n * Enables an experimental flush-queue debouncing in Animated.js.\n */\n animatedShouldDebounceQueueFlush: () => boolean,\n /**\n * Enables an experimental mega-operation for Animated.js that replaces\n * many calls to native with a single call into native, to reduce JSI/JNI\n * traffic.\n */\n animatedShouldUseSingleOp: () => boolean,\n /**\n * Enables GlobalPerformanceLogger replacement with a WebPerformance API based\n * implementation\n */\n isGlobalWebPerformanceLoggerEnabled: () => boolean,\n /**\n * Enables access to the host tree in Fabric using DOM-compatible APIs.\n */\n enableAccessToHostTreeInFabric: () => boolean,\n|};\n\nconst ReactNativeFeatureFlags: FeatureFlags = {\n isLayoutAnimationEnabled: () => true,\n shouldEmitW3CPointerEvents: () => false,\n shouldPressibilityUseW3CPointerEventsForHover: () => false,\n animatedShouldDebounceQueueFlush: () => false,\n animatedShouldUseSingleOp: () => false,\n isGlobalWebPerformanceLoggerEnabled: () => false,\n enableAccessToHostTreeInFabric: () => false,\n};\n\nmodule.exports = ReactNativeFeatureFlags;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {\n Extras,\n ExtraValue,\n IPerformanceLogger,\n Timespan,\n} from './IPerformanceLogger';\n\nimport * as Systrace from '../Performance/Systrace';\nimport Performance from '../WebPerformance/Performance';\nimport infoLog from './infoLog';\n\nconst _cookies: {[key: string]: number, ...} = {};\n\nconst PRINT_TO_CONSOLE: false = false; // Type as false to prevent accidentally committing `true`;\n\n// This is the prefix for optional logging points/timespans as marks/measures via Performance API,\n// used to separate these internally from other marks/measures\nconst WEB_PERFORMANCE_PREFIX = 'global_perf_';\n\n// TODO: Remove once T143070419 is done\nconst performance = new Performance();\n\nexport const getCurrentTimestamp: () => number =\n global.nativeQPLTimestamp ?? global.performance.now.bind(global.performance);\n\nclass PerformanceLogger implements IPerformanceLogger {\n _timespans: {[key: string]: ?Timespan} = {};\n _extras: {[key: string]: ?ExtraValue} = {};\n _points: {[key: string]: ?number} = {};\n _pointExtras: {[key: string]: ?Extras, ...} = {};\n _closed: boolean = false;\n _isLoggingForWebPerformance: boolean = false;\n\n constructor(isLoggingForWebPerformance?: boolean) {\n this._isLoggingForWebPerformance = isLoggingForWebPerformance === true;\n }\n\n addTimespan(\n key: string,\n startTime: number,\n endTime: number,\n startExtras?: Extras,\n endExtras?: Extras,\n ) {\n if (this._closed) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog('PerformanceLogger: addTimespan - has closed ignoring: ', key);\n }\n return;\n }\n if (this._timespans[key]) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: Attempting to add a timespan that already exists ',\n key,\n );\n }\n return;\n }\n\n this._timespans[key] = {\n startTime,\n endTime,\n totalTime: endTime - (startTime || 0),\n startExtras,\n endExtras,\n };\n\n if (this._isLoggingForWebPerformance) {\n performance.measure(`${WEB_PERFORMANCE_PREFIX}_${key}`, {\n start: startTime,\n end: endTime,\n });\n }\n }\n\n append(performanceLogger: IPerformanceLogger) {\n this._timespans = {\n ...performanceLogger.getTimespans(),\n ...this._timespans,\n };\n this._extras = {...performanceLogger.getExtras(), ...this._extras};\n this._points = {...performanceLogger.getPoints(), ...this._points};\n this._pointExtras = {\n ...performanceLogger.getPointExtras(),\n ...this._pointExtras,\n };\n }\n\n clear() {\n this._timespans = {};\n this._extras = {};\n this._points = {};\n if (PRINT_TO_CONSOLE) {\n infoLog('PerformanceLogger.js', 'clear');\n }\n }\n\n clearCompleted() {\n for (const key in this._timespans) {\n if (this._timespans[key]?.totalTime != null) {\n delete this._timespans[key];\n }\n }\n this._extras = {};\n this._points = {};\n if (PRINT_TO_CONSOLE) {\n infoLog('PerformanceLogger.js', 'clearCompleted');\n }\n }\n\n close() {\n this._closed = true;\n }\n\n currentTimestamp(): number {\n return getCurrentTimestamp();\n }\n\n getExtras(): {[key: string]: ?ExtraValue} {\n return this._extras;\n }\n\n getPoints(): {[key: string]: ?number} {\n return this._points;\n }\n\n getPointExtras(): {[key: string]: ?Extras} {\n return this._pointExtras;\n }\n\n getTimespans(): {[key: string]: ?Timespan} {\n return this._timespans;\n }\n\n hasTimespan(key: string): boolean {\n return !!this._timespans[key];\n }\n\n isClosed(): boolean {\n return this._closed;\n }\n\n logEverything() {\n if (PRINT_TO_CONSOLE) {\n // log timespans\n for (const key in this._timespans) {\n if (this._timespans[key]?.totalTime != null) {\n infoLog(key + ': ' + this._timespans[key].totalTime + 'ms');\n }\n }\n\n // log extras\n infoLog(this._extras);\n\n // log points\n for (const key in this._points) {\n if (this._points[key] != null) {\n infoLog(key + ': ' + this._points[key] + 'ms');\n }\n }\n }\n }\n\n markPoint(\n key: string,\n timestamp?: number = getCurrentTimestamp(),\n extras?: Extras,\n ) {\n if (this._closed) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog('PerformanceLogger: markPoint - has closed ignoring: ', key);\n }\n return;\n }\n if (this._points[key] != null) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: Attempting to mark a point that has been already logged ',\n key,\n );\n }\n return;\n }\n this._points[key] = timestamp;\n if (extras) {\n this._pointExtras[key] = extras;\n }\n\n if (this._isLoggingForWebPerformance) {\n performance.mark(`${WEB_PERFORMANCE_PREFIX}_${key}`, {\n startTime: timestamp,\n });\n }\n }\n\n removeExtra(key: string): ?ExtraValue {\n const value = this._extras[key];\n delete this._extras[key];\n return value;\n }\n\n setExtra(key: string, value: ExtraValue) {\n if (this._closed) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog('PerformanceLogger: setExtra - has closed ignoring: ', key);\n }\n return;\n }\n\n if (this._extras.hasOwnProperty(key)) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: Attempting to set an extra that already exists ',\n {key, currentValue: this._extras[key], attemptedValue: value},\n );\n }\n return;\n }\n this._extras[key] = value;\n }\n\n startTimespan(\n key: string,\n timestamp?: number = getCurrentTimestamp(),\n extras?: Extras,\n ) {\n if (this._closed) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: startTimespan - has closed ignoring: ',\n key,\n );\n }\n return;\n }\n\n if (this._timespans[key]) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: Attempting to start a timespan that already exists ',\n key,\n );\n }\n return;\n }\n\n this._timespans[key] = {\n startTime: timestamp,\n startExtras: extras,\n };\n _cookies[key] = Systrace.beginAsyncEvent(key);\n if (PRINT_TO_CONSOLE) {\n infoLog('PerformanceLogger.js', 'start: ' + key);\n }\n\n if (this._isLoggingForWebPerformance) {\n performance.mark(`${WEB_PERFORMANCE_PREFIX}_timespan_start_${key}`, {\n startTime: timestamp,\n });\n }\n }\n\n stopTimespan(\n key: string,\n timestamp?: number = getCurrentTimestamp(),\n extras?: Extras,\n ) {\n if (this._closed) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog('PerformanceLogger: stopTimespan - has closed ignoring: ', key);\n }\n return;\n }\n\n const timespan = this._timespans[key];\n if (!timespan || timespan.startTime == null) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: Attempting to end a timespan that has not started ',\n key,\n );\n }\n return;\n }\n if (timespan.endTime != null) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: Attempting to end a timespan that has already ended ',\n key,\n );\n }\n return;\n }\n\n timespan.endExtras = extras;\n timespan.endTime = timestamp;\n timespan.totalTime = timespan.endTime - (timespan.startTime || 0);\n if (PRINT_TO_CONSOLE) {\n infoLog('PerformanceLogger.js', 'end: ' + key);\n }\n\n if (_cookies[key] != null) {\n Systrace.endAsyncEvent(key, _cookies[key]);\n delete _cookies[key];\n }\n\n if (this._isLoggingForWebPerformance) {\n performance.measure(`${WEB_PERFORMANCE_PREFIX}_${key}`, {\n start: `${WEB_PERFORMANCE_PREFIX}_timespan_start_${key}`,\n end: timestamp,\n });\n }\n }\n}\n\n// Re-exporting for backwards compatibility with all the clients that\n// may still import it from this module.\nexport type {Extras, ExtraValue, IPerformanceLogger, Timespan};\n\n/**\n * This function creates performance loggers that can be used to collect and log\n * various performance data such as timespans, points and extras.\n * The loggers need to have minimal overhead since they're used in production.\n */\nexport default function createPerformanceLogger(\n isLoggingForWebPerformance?: boolean,\n): IPerformanceLogger {\n return new PerformanceLogger(isLoggingForWebPerformance);\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\n/**\n * Intentional info-level logging for clear separation from ad-hoc console debug logging.\n */\nfunction infoLog(...args: Array): void {\n return console.log(...args);\n}\n\nmodule.exports = infoLog;\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {RequestBody} from './convertRequestBody';\n\n// Do not require the native RCTNetworking module directly! Use this wrapper module instead.\n// It will add the necessary requestId, so that you don't have to generate it yourself.\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport Platform from '../Utilities/Platform';\nimport convertRequestBody from './convertRequestBody';\nimport NativeNetworkingAndroid from './NativeNetworkingAndroid';\n\ntype Header = [string, string];\n\n// Convert FormData headers to arrays, which are easier to consume in\n// native on Android.\nfunction convertHeadersMapToArray(headers: Object): Array
{\n const headerArray: Array
= [];\n for (const name in headers) {\n headerArray.push([name, headers[name]]);\n }\n return headerArray;\n}\n\nlet _requestId = 1;\nfunction generateRequestId(): number {\n return _requestId++;\n}\n\n/**\n * This class is a wrapper around the native RCTNetworking module. It adds a necessary unique\n * requestId to each network request that can be used to abort that request later on.\n */\n// FIXME: use typed events\nclass RCTNetworking extends NativeEventEmitter<$FlowFixMe> {\n constructor() {\n super(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeNetworkingAndroid,\n );\n }\n\n sendRequest(\n method: string,\n trackingName: string,\n url: string,\n headers: Object,\n data: RequestBody,\n responseType: 'text' | 'base64',\n incrementalUpdates: boolean,\n timeout: number,\n callback: (requestId: number) => mixed,\n withCredentials: boolean,\n ) {\n const body = convertRequestBody(data);\n if (body && body.formData) {\n body.formData = body.formData.map(part => ({\n ...part,\n headers: convertHeadersMapToArray(part.headers),\n }));\n }\n const requestId = generateRequestId();\n NativeNetworkingAndroid.sendRequest(\n method,\n url,\n requestId,\n convertHeadersMapToArray(headers),\n {...body, trackingName},\n responseType,\n incrementalUpdates,\n timeout,\n withCredentials,\n );\n callback(requestId);\n }\n\n abortRequest(requestId: number) {\n NativeNetworkingAndroid.abortRequest(requestId);\n }\n\n clearCookies(callback: (result: boolean) => any) {\n NativeNetworkingAndroid.clearCookies(callback);\n }\n}\n\nexport default (new RCTNetworking(): RCTNetworking);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nimport type {\n EventSubscription,\n IEventEmitter,\n} from '../vendor/emitter/EventEmitter';\n\nimport Platform from '../Utilities/Platform';\nimport RCTDeviceEventEmitter from './RCTDeviceEventEmitter';\nimport invariant from 'invariant';\n\ninterface NativeModule {\n addListener(eventType: string): void;\n removeListeners(count: number): void;\n}\n\nexport type {EventSubscription};\n\n/**\n * `NativeEventEmitter` is intended for use by Native Modules to emit events to\n * JavaScript listeners. If a `NativeModule` is supplied to the constructor, it\n * will be notified (via `addListener` and `removeListeners`) when the listener\n * count changes to manage \"native memory\".\n *\n * Currently, all native events are fired via a global `RCTDeviceEventEmitter`.\n * This means event names must be globally unique, and it means that call sites\n * can theoretically listen to `RCTDeviceEventEmitter` (although discouraged).\n */\nexport default class NativeEventEmitter\n implements IEventEmitter\n{\n _nativeModule: ?NativeModule;\n\n constructor(nativeModule: ?NativeModule) {\n if (Platform.OS === 'ios') {\n invariant(\n nativeModule != null,\n '`new NativeEventEmitter()` requires a non-null argument.',\n );\n }\n\n const hasAddListener =\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n !!nativeModule && typeof nativeModule.addListener === 'function';\n const hasRemoveListeners =\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n !!nativeModule && typeof nativeModule.removeListeners === 'function';\n\n if (nativeModule && hasAddListener && hasRemoveListeners) {\n this._nativeModule = nativeModule;\n } else if (nativeModule != null) {\n if (!hasAddListener) {\n console.warn(\n '`new NativeEventEmitter()` was called with a non-null argument without the required `addListener` method.',\n );\n }\n if (!hasRemoveListeners) {\n console.warn(\n '`new NativeEventEmitter()` was called with a non-null argument without the required `removeListeners` method.',\n );\n }\n }\n }\n\n addListener>(\n eventType: TEvent,\n listener: (...args: $ElementType) => mixed,\n context?: mixed,\n ): EventSubscription {\n this._nativeModule?.addListener(eventType);\n let subscription: ?EventSubscription = RCTDeviceEventEmitter.addListener(\n eventType,\n listener,\n context,\n );\n\n return {\n remove: () => {\n if (subscription != null) {\n this._nativeModule?.removeListeners(1);\n // $FlowFixMe[incompatible-use]\n subscription.remove();\n subscription = null;\n }\n },\n };\n }\n\n emit>(\n eventType: TEvent,\n ...args: $ElementType\n ): void {\n // Generally, `RCTDeviceEventEmitter` is directly invoked. But this is\n // included for completeness.\n RCTDeviceEventEmitter.emit(eventType, ...args);\n }\n\n removeAllListeners>(\n eventType?: ?TEvent,\n ): void {\n invariant(\n eventType != null,\n '`NativeEventEmitter.removeAllListener()` requires a non-null argument.',\n );\n this._nativeModule?.removeListeners(this.listenerCount(eventType));\n RCTDeviceEventEmitter.removeAllListeners(eventType);\n }\n\n listenerCount>(eventType: TEvent): number {\n return RCTDeviceEventEmitter.listenerCount(eventType);\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nconst Blob = require('../Blob/Blob');\nconst binaryToBase64 = require('../Utilities/binaryToBase64');\nconst FormData = require('./FormData');\n\nexport type RequestBody =\n | string\n | Blob\n | FormData\n | {uri: string, ...}\n | ArrayBuffer\n | $ArrayBufferView;\n\nfunction convertRequestBody(body: RequestBody): Object {\n if (typeof body === 'string') {\n return {string: body};\n }\n if (body instanceof Blob) {\n return {blob: body.data};\n }\n if (body instanceof FormData) {\n return {formData: body.getParts()};\n }\n if (body instanceof ArrayBuffer || ArrayBuffer.isView(body)) {\n /* $FlowFixMe[incompatible-call] : no way to assert that 'body' is indeed\n * an ArrayBufferView */\n return {base64: binaryToBase64(body)};\n }\n return body;\n}\n\nmodule.exports = convertRequestBody;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\ntype FormDataValue = string | {name?: string, type?: string, uri: string};\ntype FormDataNameValuePair = [string, FormDataValue];\n\ntype Headers = {[name: string]: string, ...};\ntype FormDataPart =\n | {\n string: string,\n headers: Headers,\n ...\n }\n | {\n uri: string,\n headers: Headers,\n name?: string,\n type?: string,\n ...\n };\n\n/**\n * Polyfill for XMLHttpRequest2 FormData API, allowing multipart POST requests\n * with mixed data (string, native files) to be submitted via XMLHttpRequest.\n *\n * Example:\n *\n * var photo = {\n * uri: uriFromCameraRoll,\n * type: 'image/jpeg',\n * name: 'photo.jpg',\n * };\n *\n * var body = new FormData();\n * body.append('authToken', 'secret');\n * body.append('photo', photo);\n * body.append('title', 'A beautiful photo!');\n *\n * xhr.open('POST', serverURL);\n * xhr.send(body);\n */\nclass FormData {\n _parts: Array;\n\n constructor() {\n this._parts = [];\n }\n\n append(key: string, value: FormDataValue) {\n // The XMLHttpRequest spec doesn't specify if duplicate keys are allowed.\n // MDN says that any new values should be appended to existing values.\n // In any case, major browsers allow duplicate keys, so that's what we'll do\n // too. They'll simply get appended as additional form data parts in the\n // request body, leaving the server to deal with them.\n this._parts.push([key, value]);\n }\n\n getAll(key: string): Array {\n return this._parts\n .filter(([name]) => name === key)\n .map(([, value]) => value);\n }\n\n getParts(): Array {\n return this._parts.map(([name, value]) => {\n const contentDisposition = 'form-data; name=\"' + name + '\"';\n\n const headers: Headers = {'content-disposition': contentDisposition};\n\n // The body part is a \"blob\", which in React Native just means\n // an object with a `uri` attribute. Optionally, it can also\n // have a `name` and `type` attribute to specify filename and\n // content type (cf. web Blob interface.)\n if (typeof value === 'object' && !Array.isArray(value) && value) {\n if (typeof value.name === 'string') {\n headers['content-disposition'] += '; filename=\"' + value.name + '\"';\n }\n if (typeof value.type === 'string') {\n headers['content-type'] = value.type;\n }\n return {...value, headers, fieldName: name};\n }\n // Convert non-object values to strings as per FormData.append() spec\n return {string: String(value), headers, fieldName: name};\n });\n }\n}\n\nmodule.exports = FormData;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nconst base64 = require('base64-js');\n\nfunction binaryToBase64(data: ArrayBuffer | $ArrayBufferView): string {\n if (data instanceof ArrayBuffer) {\n // $FlowFixMe[reassign-const]\n data = new Uint8Array(data);\n }\n if (data instanceof Uint8Array) {\n return base64.fromByteArray(data);\n }\n if (!ArrayBuffer.isView(data)) {\n throw new Error('data must be ArrayBuffer or typed array');\n }\n // Already checked that `data` is `DataView` in `ArrayBuffer.isView(data)`\n const {buffer, byteOffset, byteLength} = ((data: $FlowFixMe): DataView);\n return base64.fromByteArray(new Uint8Array(buffer, byteOffset, byteLength));\n}\n\nmodule.exports = binaryToBase64;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\ntype Header = [string, string];\n\nexport interface Spec extends TurboModule {\n +sendRequest: (\n method: string,\n url: string,\n requestId: number,\n headers: Array
,\n data: Object,\n responseType: string,\n useIncrementalUpdates: boolean,\n timeout: number,\n withCredentials: boolean,\n ) => void;\n +abortRequest: (requestId: number) => void;\n +clearCookies: (callback: (result: boolean) => void) => void;\n\n // RCTEventEmitter\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('Networking'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n/* globals Headers, Request, Response */\n\n'use strict';\n\n// side-effectful require() to put fetch,\n// Headers, Request, Response in global scope\nrequire('whatwg-fetch');\n\nmodule.exports = {fetch, Headers, Request, Response};\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (factory((global.WHATWGFetch = {})));\n}(this, (function (exports) { 'use strict';\n\n var global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n (typeof global !== 'undefined' && global);\n\n var support = {\n searchParams: 'URLSearchParams' in global,\n iterable: 'Symbol' in global && 'iterator' in Symbol,\n blob:\n 'FileReader' in global &&\n 'Blob' in global &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in global,\n arrayBuffer: 'ArrayBuffer' in global\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n this.bodyUsed = this.bodyUsed;\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this);\n if (isConsumed) {\n return isConsumed\n }\n if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/;\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime());\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/;\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime();\n }\n }\n }\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText;\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = global.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n setTimeout(function() {\n resolve(new Response(body, options));\n }, 0);\n };\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n }, 0);\n };\n\n function fixUrl(url) {\n try {\n return url === '' && global.location.href ? global.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob';\n } else if (\n support.arrayBuffer &&\n request.headers.get('Content-Type') &&\n request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1\n ) {\n xhr.responseType = 'arraybuffer';\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) {\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]));\n });\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!global.fetch) {\n global.fetch = fetch;\n global.Headers = Headers;\n global.Request = Request;\n global.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {BlobData} from '../Blob/BlobTypes';\nimport type {EventSubscription} from '../vendor/emitter/EventEmitter';\n\nimport Blob from '../Blob/Blob';\nimport BlobManager from '../Blob/BlobManager';\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport binaryToBase64 from '../Utilities/binaryToBase64';\nimport Platform from '../Utilities/Platform';\nimport NativeWebSocketModule from './NativeWebSocketModule';\nimport WebSocketEvent from './WebSocketEvent';\nimport base64 from 'base64-js';\nimport EventTarget from 'event-target-shim';\nimport invariant from 'invariant';\n\ntype ArrayBufferView =\n | Int8Array\n | Uint8Array\n | Uint8ClampedArray\n | Int16Array\n | Uint16Array\n | Int32Array\n | Uint32Array\n | Float32Array\n | Float64Array\n | DataView;\n\ntype BinaryType = 'blob' | 'arraybuffer';\n\nconst CONNECTING = 0;\nconst OPEN = 1;\nconst CLOSING = 2;\nconst CLOSED = 3;\n\nconst CLOSE_NORMAL = 1000;\n\n// Abnormal closure where no code is provided in a control frame\n// https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5\nconst CLOSE_ABNORMAL = 1006;\n\nconst WEBSOCKET_EVENTS = ['close', 'error', 'message', 'open'];\n\nlet nextWebSocketId = 0;\n\ntype WebSocketEventDefinitions = {\n websocketOpen: [{id: number, protocol: string}],\n websocketClosed: [{id: number, code: number, reason: string}],\n websocketMessage: [\n | {type: 'binary', id: number, data: string}\n | {type: 'text', id: number, data: string}\n | {type: 'blob', id: number, data: BlobData},\n ],\n websocketFailed: [{id: number, message: string}],\n};\n\n/**\n * Browser-compatible WebSockets implementation.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/WebSocket\n * See https://github.com/websockets/ws\n */\nclass WebSocket extends (EventTarget(...WEBSOCKET_EVENTS): any) {\n static CONNECTING: number = CONNECTING;\n static OPEN: number = OPEN;\n static CLOSING: number = CLOSING;\n static CLOSED: number = CLOSED;\n\n CONNECTING: number = CONNECTING;\n OPEN: number = OPEN;\n CLOSING: number = CLOSING;\n CLOSED: number = CLOSED;\n\n _socketId: number;\n _eventEmitter: NativeEventEmitter;\n _subscriptions: Array;\n _binaryType: ?BinaryType;\n\n onclose: ?Function;\n onerror: ?Function;\n onmessage: ?Function;\n onopen: ?Function;\n\n bufferedAmount: number;\n extension: ?string;\n protocol: ?string;\n readyState: number = CONNECTING;\n url: ?string;\n\n constructor(\n url: string,\n protocols: ?string | ?Array,\n options: ?{headers?: {origin?: string, ...}, ...},\n ) {\n super();\n this.url = url;\n if (typeof protocols === 'string') {\n protocols = [protocols];\n }\n\n const {headers = {}, ...unrecognized} = options || {};\n\n // Preserve deprecated backwards compatibility for the 'origin' option\n // $FlowFixMe[prop-missing]\n if (unrecognized && typeof unrecognized.origin === 'string') {\n console.warn(\n 'Specifying `origin` as a WebSocket connection option is deprecated. Include it under `headers` instead.',\n );\n /* $FlowFixMe[prop-missing] (>=0.54.0 site=react_native_fb,react_native_\n * oss) This comment suppresses an error found when Flow v0.54 was\n * deployed. To see the error delete this comment and run Flow. */\n headers.origin = unrecognized.origin;\n /* $FlowFixMe[prop-missing] (>=0.54.0 site=react_native_fb,react_native_\n * oss) This comment suppresses an error found when Flow v0.54 was\n * deployed. To see the error delete this comment and run Flow. */\n delete unrecognized.origin;\n }\n\n // Warn about and discard anything else\n if (Object.keys(unrecognized).length > 0) {\n console.warn(\n 'Unrecognized WebSocket connection option(s) `' +\n Object.keys(unrecognized).join('`, `') +\n '`. ' +\n 'Did you mean to put these under `headers`?',\n );\n }\n\n if (!Array.isArray(protocols)) {\n protocols = null;\n }\n\n this._eventEmitter = new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeWebSocketModule,\n );\n this._socketId = nextWebSocketId++;\n this._registerEvents();\n NativeWebSocketModule.connect(url, protocols, {headers}, this._socketId);\n }\n\n get binaryType(): ?BinaryType {\n return this._binaryType;\n }\n\n set binaryType(binaryType: BinaryType): void {\n if (binaryType !== 'blob' && binaryType !== 'arraybuffer') {\n throw new Error(\"binaryType must be either 'blob' or 'arraybuffer'\");\n }\n if (this._binaryType === 'blob' || binaryType === 'blob') {\n invariant(\n BlobManager.isAvailable,\n 'Native module BlobModule is required for blob support',\n );\n if (binaryType === 'blob') {\n BlobManager.addWebSocketHandler(this._socketId);\n } else {\n BlobManager.removeWebSocketHandler(this._socketId);\n }\n }\n this._binaryType = binaryType;\n }\n\n close(code?: number, reason?: string): void {\n if (this.readyState === this.CLOSING || this.readyState === this.CLOSED) {\n return;\n }\n\n this.readyState = this.CLOSING;\n this._close(code, reason);\n }\n\n send(data: string | ArrayBuffer | ArrayBufferView | Blob): void {\n if (this.readyState === this.CONNECTING) {\n throw new Error('INVALID_STATE_ERR');\n }\n\n if (data instanceof Blob) {\n invariant(\n BlobManager.isAvailable,\n 'Native module BlobModule is required for blob support',\n );\n BlobManager.sendOverSocket(data, this._socketId);\n return;\n }\n\n if (typeof data === 'string') {\n NativeWebSocketModule.send(data, this._socketId);\n return;\n }\n\n if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) {\n NativeWebSocketModule.sendBinary(binaryToBase64(data), this._socketId);\n return;\n }\n\n throw new Error('Unsupported data type');\n }\n\n ping(): void {\n if (this.readyState === this.CONNECTING) {\n throw new Error('INVALID_STATE_ERR');\n }\n\n NativeWebSocketModule.ping(this._socketId);\n }\n\n _close(code?: number, reason?: string): void {\n // See https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent\n const statusCode = typeof code === 'number' ? code : CLOSE_NORMAL;\n const closeReason = typeof reason === 'string' ? reason : '';\n NativeWebSocketModule.close(statusCode, closeReason, this._socketId);\n\n if (BlobManager.isAvailable && this._binaryType === 'blob') {\n BlobManager.removeWebSocketHandler(this._socketId);\n }\n }\n\n _unregisterEvents(): void {\n this._subscriptions.forEach(e => e.remove());\n this._subscriptions = [];\n }\n\n _registerEvents(): void {\n this._subscriptions = [\n this._eventEmitter.addListener('websocketMessage', ev => {\n if (ev.id !== this._socketId) {\n return;\n }\n let data: Blob | BlobData | ArrayBuffer | string = ev.data;\n switch (ev.type) {\n case 'binary':\n data = base64.toByteArray(ev.data).buffer;\n break;\n case 'blob':\n data = BlobManager.createFromOptions(ev.data);\n break;\n }\n this.dispatchEvent(new WebSocketEvent('message', {data}));\n }),\n this._eventEmitter.addListener('websocketOpen', ev => {\n if (ev.id !== this._socketId) {\n return;\n }\n this.readyState = this.OPEN;\n this.protocol = ev.protocol;\n this.dispatchEvent(new WebSocketEvent('open'));\n }),\n this._eventEmitter.addListener('websocketClosed', ev => {\n if (ev.id !== this._socketId) {\n return;\n }\n this.readyState = this.CLOSED;\n this.dispatchEvent(\n new WebSocketEvent('close', {\n code: ev.code,\n reason: ev.reason,\n // TODO: missing `wasClean` (exposed on iOS as `clean` but missing on Android)\n }),\n );\n this._unregisterEvents();\n this.close();\n }),\n this._eventEmitter.addListener('websocketFailed', ev => {\n if (ev.id !== this._socketId) {\n return;\n }\n this.readyState = this.CLOSED;\n this.dispatchEvent(\n new WebSocketEvent('error', {\n message: ev.message,\n }),\n );\n this.dispatchEvent(\n new WebSocketEvent('close', {\n code: CLOSE_ABNORMAL,\n reason: ev.message,\n // TODO: Expose `wasClean`\n }),\n );\n this._unregisterEvents();\n this.close();\n }),\n ];\n }\n}\n\nmodule.exports = WebSocket;\n","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +connect: (\n url: string,\n protocols: ?Array,\n options: {|headers?: Object|},\n socketID: number,\n ) => void;\n +send: (message: string, forSocketID: number) => void;\n +sendBinary: (base64String: string, forSocketID: number) => void;\n +ping: (socketID: number) => void;\n +close: (code: number, reason: string, socketID: number) => void;\n\n // RCTEventEmitter\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing(\n 'WebSocketModule',\n): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\n/**\n * Event object passed to the `onopen`, `onclose`, `onmessage`, `onerror`\n * callbacks of `WebSocket`.\n *\n * The `type` property is \"open\", \"close\", \"message\", \"error\" respectively.\n *\n * In case of \"message\", the `data` property contains the incoming data.\n */\nclass WebSocketEvent {\n constructor(type, eventInitDict) {\n this.type = type.toString();\n Object.assign(this, eventInitDict);\n }\n}\n\nmodule.exports = WebSocketEvent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {BlobOptions} from './BlobTypes';\n\nconst Blob = require('./Blob');\nconst invariant = require('invariant');\n\n/**\n * The File interface provides information about files.\n */\nclass File extends Blob {\n /**\n * Constructor for JS consumers.\n */\n constructor(\n parts: Array,\n name: string,\n options?: BlobOptions,\n ) {\n invariant(\n parts != null && name != null,\n 'Failed to construct `File`: Must pass both `parts` and `name` arguments.',\n );\n\n super(parts, options);\n this.data.name = name;\n }\n\n /**\n * Name of the file.\n */\n get name(): string {\n invariant(this.data.name != null, 'Files must have a name set.');\n return this.data.name;\n }\n\n /*\n * Last modified time of the file.\n */\n get lastModified(): number {\n return this.data.lastModified || 0;\n }\n}\n\nmodule.exports = File;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type Blob from './Blob';\n\nimport NativeFileReaderModule from './NativeFileReaderModule';\nimport {toByteArray} from 'base64-js';\n\nconst EventTarget = require('event-target-shim');\n\ntype ReadyState =\n | 0 // EMPTY\n | 1 // LOADING\n | 2; // DONE\n\ntype ReaderResult = string | ArrayBuffer;\n\nconst READER_EVENTS = [\n 'abort',\n 'error',\n 'load',\n 'loadstart',\n 'loadend',\n 'progress',\n];\n\nconst EMPTY = 0;\nconst LOADING = 1;\nconst DONE = 2;\n\nclass FileReader extends (EventTarget(...READER_EVENTS): any) {\n static EMPTY: number = EMPTY;\n static LOADING: number = LOADING;\n static DONE: number = DONE;\n\n EMPTY: number = EMPTY;\n LOADING: number = LOADING;\n DONE: number = DONE;\n\n _readyState: ReadyState;\n _error: ?Error;\n _result: ?ReaderResult;\n _aborted: boolean = false;\n\n constructor() {\n super();\n this._reset();\n }\n\n _reset(): void {\n this._readyState = EMPTY;\n this._error = null;\n this._result = null;\n }\n\n _setReadyState(newState: ReadyState) {\n this._readyState = newState;\n this.dispatchEvent({type: 'readystatechange'});\n if (newState === DONE) {\n if (this._aborted) {\n this.dispatchEvent({type: 'abort'});\n } else if (this._error) {\n this.dispatchEvent({type: 'error'});\n } else {\n this.dispatchEvent({type: 'load'});\n }\n this.dispatchEvent({type: 'loadend'});\n }\n }\n\n readAsArrayBuffer(blob: ?Blob): void {\n this._aborted = false;\n\n if (blob == null) {\n throw new TypeError(\n \"Failed to execute 'readAsArrayBuffer' on 'FileReader': parameter 1 is not of type 'Blob'\",\n );\n }\n\n NativeFileReaderModule.readAsDataURL(blob.data).then(\n (text: string) => {\n if (this._aborted) {\n return;\n }\n\n const base64 = text.split(',')[1];\n const typedArray = toByteArray(base64);\n\n this._result = typedArray.buffer;\n this._setReadyState(DONE);\n },\n error => {\n if (this._aborted) {\n return;\n }\n this._error = error;\n this._setReadyState(DONE);\n },\n );\n }\n\n readAsDataURL(blob: ?Blob): void {\n this._aborted = false;\n\n if (blob == null) {\n throw new TypeError(\n \"Failed to execute 'readAsDataURL' on 'FileReader': parameter 1 is not of type 'Blob'\",\n );\n }\n\n NativeFileReaderModule.readAsDataURL(blob.data).then(\n (text: string) => {\n if (this._aborted) {\n return;\n }\n this._result = text;\n this._setReadyState(DONE);\n },\n error => {\n if (this._aborted) {\n return;\n }\n this._error = error;\n this._setReadyState(DONE);\n },\n );\n }\n\n readAsText(blob: ?Blob, encoding: string = 'UTF-8'): void {\n this._aborted = false;\n\n if (blob == null) {\n throw new TypeError(\n \"Failed to execute 'readAsText' on 'FileReader': parameter 1 is not of type 'Blob'\",\n );\n }\n\n NativeFileReaderModule.readAsText(blob.data, encoding).then(\n (text: string) => {\n if (this._aborted) {\n return;\n }\n this._result = text;\n this._setReadyState(DONE);\n },\n error => {\n if (this._aborted) {\n return;\n }\n this._error = error;\n this._setReadyState(DONE);\n },\n );\n }\n\n abort() {\n this._aborted = true;\n // only call onreadystatechange if there is something to abort, as per spec\n if (this._readyState !== EMPTY && this._readyState !== DONE) {\n this._reset();\n this._setReadyState(DONE);\n }\n // Reset again after, in case modified in handler\n this._reset();\n }\n\n get readyState(): ReadyState {\n return this._readyState;\n }\n\n get error(): ?Error {\n return this._error;\n }\n\n get result(): ?ReaderResult {\n return this._result;\n }\n}\n\nmodule.exports = FileReader;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +readAsDataURL: (data: Object) => Promise;\n +readAsText: (data: Object, encoding: string) => Promise;\n}\n\nexport default (TurboModuleRegistry.getEnforcing(\n 'FileReaderModule',\n): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type Blob from './Blob';\n\nimport NativeBlobModule from './NativeBlobModule';\n\nlet BLOB_URL_PREFIX = null;\n\nif (\n NativeBlobModule &&\n typeof NativeBlobModule.getConstants().BLOB_URI_SCHEME === 'string'\n) {\n const constants = NativeBlobModule.getConstants();\n // $FlowFixMe[incompatible-type] asserted above\n // $FlowFixMe[unsafe-addition]\n BLOB_URL_PREFIX = constants.BLOB_URI_SCHEME + ':';\n if (typeof constants.BLOB_URI_HOST === 'string') {\n BLOB_URL_PREFIX += `//${constants.BLOB_URI_HOST}/`;\n }\n}\n\n/**\n * To allow Blobs be accessed via `content://` URIs,\n * you need to register `BlobProvider` as a ContentProvider in your app's `AndroidManifest.xml`:\n *\n * ```xml\n * \n * \n * \n * \n * \n * ```\n * And then define the `blob_provider_authority` string in `res/values/strings.xml`.\n * Use a dotted name that's entirely unique to your app:\n *\n * ```xml\n * \n * your.app.package.blobs\n * \n * ```\n */\n\n// Small subset from whatwg-url: https://github.com/jsdom/whatwg-url/tree/master/src\n// The reference code bloat comes from Unicode issues with URLs, so those won't work here.\nexport class URLSearchParams {\n _searchParams: Array> = [];\n\n constructor(params: any) {\n if (typeof params === 'object') {\n Object.keys(params).forEach(key => this.append(key, params[key]));\n }\n }\n\n append(key: string, value: string): void {\n this._searchParams.push([key, value]);\n }\n\n delete(name: string): void {\n throw new Error('URLSearchParams.delete is not implemented');\n }\n\n get(name: string): void {\n throw new Error('URLSearchParams.get is not implemented');\n }\n\n getAll(name: string): void {\n throw new Error('URLSearchParams.getAll is not implemented');\n }\n\n has(name: string): void {\n throw new Error('URLSearchParams.has is not implemented');\n }\n\n set(name: string, value: string): void {\n throw new Error('URLSearchParams.set is not implemented');\n }\n\n sort(): void {\n throw new Error('URLSearchParams.sort is not implemented');\n }\n\n // $FlowFixMe[unsupported-syntax]\n // $FlowFixMe[missing-local-annot]\n [Symbol.iterator]() {\n return this._searchParams[Symbol.iterator]();\n }\n\n toString(): string {\n if (this._searchParams.length === 0) {\n return '';\n }\n const last = this._searchParams.length - 1;\n return this._searchParams.reduce((acc, curr, index) => {\n return (\n acc +\n encodeURIComponent(curr[0]) +\n '=' +\n encodeURIComponent(curr[1]) +\n (index === last ? '' : '&')\n );\n }, '');\n }\n}\n\nfunction validateBaseUrl(url: string) {\n // from this MIT-licensed gist: https://gist.github.com/dperini/729294\n return /^(?:(?:(?:https?|ftp):)?\\/\\/)(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)*(?:[a-z\\u00a1-\\uffff]{2,}\\.?))(?::\\d{2,5})?(?:[/?#]\\S*)?$/.test(\n url,\n );\n}\n\nexport class URL {\n _url: string;\n _searchParamsInstance: ?URLSearchParams = null;\n\n static createObjectURL(blob: Blob): string {\n if (BLOB_URL_PREFIX === null) {\n throw new Error('Cannot create URL for blob!');\n }\n return `${BLOB_URL_PREFIX}${blob.data.blobId}?offset=${blob.data.offset}&size=${blob.size}`;\n }\n\n static revokeObjectURL(url: string) {\n // Do nothing.\n }\n\n // $FlowFixMe[missing-local-annot]\n constructor(url: string, base: string | URL) {\n let baseUrl = null;\n if (!base || validateBaseUrl(url)) {\n this._url = url;\n if (!this._url.endsWith('/')) {\n this._url += '/';\n }\n } else {\n if (typeof base === 'string') {\n baseUrl = base;\n if (!validateBaseUrl(baseUrl)) {\n throw new TypeError(`Invalid base URL: ${baseUrl}`);\n }\n } else {\n baseUrl = base.toString();\n }\n if (baseUrl.endsWith('/')) {\n baseUrl = baseUrl.slice(0, baseUrl.length - 1);\n }\n if (!url.startsWith('/')) {\n url = `/${url}`;\n }\n if (baseUrl.endsWith(url)) {\n url = '';\n }\n this._url = `${baseUrl}${url}`;\n }\n }\n\n get hash(): string {\n throw new Error('URL.hash is not implemented');\n }\n\n get host(): string {\n throw new Error('URL.host is not implemented');\n }\n\n get hostname(): string {\n throw new Error('URL.hostname is not implemented');\n }\n\n get href(): string {\n return this.toString();\n }\n\n get origin(): string {\n throw new Error('URL.origin is not implemented');\n }\n\n get password(): string {\n throw new Error('URL.password is not implemented');\n }\n\n get pathname(): string {\n throw new Error('URL.pathname not implemented');\n }\n\n get port(): string {\n throw new Error('URL.port is not implemented');\n }\n\n get protocol(): string {\n throw new Error('URL.protocol is not implemented');\n }\n\n get search(): string {\n throw new Error('URL.search is not implemented');\n }\n\n get searchParams(): URLSearchParams {\n if (this._searchParamsInstance == null) {\n this._searchParamsInstance = new URLSearchParams();\n }\n return this._searchParamsInstance;\n }\n\n toJSON(): string {\n return this.toString();\n }\n\n toString(): string {\n if (this._searchParamsInstance === null) {\n return this._url;\n }\n // $FlowFixMe[incompatible-use]\n const instanceString = this._searchParamsInstance.toString();\n const separator = this._url.indexOf('?') > -1 ? '&' : '?';\n return this._url + separator + instanceString;\n }\n\n get username(): string {\n throw new Error('URL.username is not implemented');\n }\n}\n","/**\n * @author Toru Nagashima \n * See LICENSE file in root directory for full license.\n */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar eventTargetShim = require('event-target-shim');\n\n/**\n * The signal class.\n * @see https://dom.spec.whatwg.org/#abortsignal\n */\nclass AbortSignal extends eventTargetShim.EventTarget {\n /**\n * AbortSignal cannot be constructed directly.\n */\n constructor() {\n super();\n throw new TypeError(\"AbortSignal cannot be constructed directly\");\n }\n /**\n * Returns `true` if this `AbortSignal`'s `AbortController` has signaled to abort, and `false` otherwise.\n */\n get aborted() {\n const aborted = abortedFlags.get(this);\n if (typeof aborted !== \"boolean\") {\n throw new TypeError(`Expected 'this' to be an 'AbortSignal' object, but got ${this === null ? \"null\" : typeof this}`);\n }\n return aborted;\n }\n}\neventTargetShim.defineEventAttribute(AbortSignal.prototype, \"abort\");\n/**\n * Create an AbortSignal object.\n */\nfunction createAbortSignal() {\n const signal = Object.create(AbortSignal.prototype);\n eventTargetShim.EventTarget.call(signal);\n abortedFlags.set(signal, false);\n return signal;\n}\n/**\n * Abort a given signal.\n */\nfunction abortSignal(signal) {\n if (abortedFlags.get(signal) !== false) {\n return;\n }\n abortedFlags.set(signal, true);\n signal.dispatchEvent({ type: \"abort\" });\n}\n/**\n * Aborted flag for each instances.\n */\nconst abortedFlags = new WeakMap();\n// Properties should be enumerable.\nObject.defineProperties(AbortSignal.prototype, {\n aborted: { enumerable: true },\n});\n// `toString()` should return `\"[object AbortSignal]\"`\nif (typeof Symbol === \"function\" && typeof Symbol.toStringTag === \"symbol\") {\n Object.defineProperty(AbortSignal.prototype, Symbol.toStringTag, {\n configurable: true,\n value: \"AbortSignal\",\n });\n}\n\n/**\n * The AbortController.\n * @see https://dom.spec.whatwg.org/#abortcontroller\n */\nclass AbortController {\n /**\n * Initialize this controller.\n */\n constructor() {\n signals.set(this, createAbortSignal());\n }\n /**\n * Returns the `AbortSignal` object associated with this object.\n */\n get signal() {\n return getSignal(this);\n }\n /**\n * Abort and signal to any observers that the associated activity is to be aborted.\n */\n abort() {\n abortSignal(getSignal(this));\n }\n}\n/**\n * Associated signals.\n */\nconst signals = new WeakMap();\n/**\n * Get the associated signal of a given controller.\n */\nfunction getSignal(controller) {\n const signal = signals.get(controller);\n if (signal == null) {\n throw new TypeError(`Expected 'this' to be an 'AbortController' object, but got ${controller === null ? \"null\" : typeof controller}`);\n }\n return signal;\n}\n// Properties should be enumerable.\nObject.defineProperties(AbortController.prototype, {\n signal: { enumerable: true },\n abort: { enumerable: true },\n});\nif (typeof Symbol === \"function\" && typeof Symbol.toStringTag === \"symbol\") {\n Object.defineProperty(AbortController.prototype, Symbol.toStringTag, {\n configurable: true,\n value: \"AbortController\",\n });\n}\n\nexports.AbortController = AbortController;\nexports.AbortSignal = AbortSignal;\nexports.default = AbortController;\n\nmodule.exports = AbortController\nmodule.exports.AbortController = module.exports[\"default\"] = AbortController\nmodule.exports.AbortSignal = AbortSignal\n//# sourceMappingURL=abort-controller.js.map\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\n/**\n * Set up alert().\n * You can use this module directly, or just require InitializeCore.\n */\nif (!global.alert) {\n global.alert = function (text: string) {\n // Require Alert on demand. Requiring it too early can lead to issues\n // with things like Platform not being fully initialized.\n require('../Alert/Alert').alert('Alert', '' + text);\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {DialogOptions} from '../NativeModules/specs/NativeDialogManagerAndroid';\n\nimport Platform from '../Utilities/Platform';\nimport RCTAlertManager from './RCTAlertManager';\n\nexport type AlertType =\n | 'default'\n | 'plain-text'\n | 'secure-text'\n | 'login-password';\nexport type AlertButtonStyle = 'default' | 'cancel' | 'destructive';\nexport type Buttons = Array<{\n text?: string,\n onPress?: ?Function,\n isPreferred?: boolean,\n style?: AlertButtonStyle,\n ...\n}>;\n\ntype Options = {\n cancelable?: ?boolean,\n userInterfaceStyle?: 'unspecified' | 'light' | 'dark',\n onDismiss?: ?() => void,\n ...\n};\n\n/**\n * Launches an alert dialog with the specified title and message.\n *\n * See https://reactnative.dev/docs/alert\n */\nclass Alert {\n static alert(\n title: ?string,\n message?: ?string,\n buttons?: Buttons,\n options?: Options,\n ): void {\n if (Platform.OS === 'ios') {\n Alert.prompt(\n title,\n message,\n buttons,\n 'default',\n undefined,\n undefined,\n options,\n );\n } else if (Platform.OS === 'android') {\n const NativeDialogManagerAndroid =\n require('../NativeModules/specs/NativeDialogManagerAndroid').default;\n if (!NativeDialogManagerAndroid) {\n return;\n }\n const constants = NativeDialogManagerAndroid.getConstants();\n\n const config: DialogOptions = {\n title: title || '',\n message: message || '',\n cancelable: false,\n };\n\n if (options && options.cancelable) {\n config.cancelable = options.cancelable;\n }\n // At most three buttons (neutral, negative, positive). Ignore rest.\n // The text 'OK' should be probably localized. iOS Alert does that in native.\n const defaultPositiveText = 'OK';\n const validButtons: Buttons = buttons\n ? buttons.slice(0, 3)\n : [{text: defaultPositiveText}];\n const buttonPositive = validButtons.pop();\n const buttonNegative = validButtons.pop();\n const buttonNeutral = validButtons.pop();\n\n if (buttonNeutral) {\n config.buttonNeutral = buttonNeutral.text || '';\n }\n if (buttonNegative) {\n config.buttonNegative = buttonNegative.text || '';\n }\n if (buttonPositive) {\n config.buttonPositive = buttonPositive.text || defaultPositiveText;\n }\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n const onAction = (action, buttonKey) => {\n if (action === constants.buttonClicked) {\n if (buttonKey === constants.buttonNeutral) {\n buttonNeutral.onPress && buttonNeutral.onPress();\n } else if (buttonKey === constants.buttonNegative) {\n buttonNegative.onPress && buttonNegative.onPress();\n } else if (buttonKey === constants.buttonPositive) {\n buttonPositive.onPress && buttonPositive.onPress();\n }\n } else if (action === constants.dismissed) {\n options && options.onDismiss && options.onDismiss();\n }\n };\n const onError = (errorMessage: string) => console.warn(errorMessage);\n NativeDialogManagerAndroid.showAlert(config, onError, onAction);\n }\n }\n\n static prompt(\n title: ?string,\n message?: ?string,\n callbackOrButtons?: ?(((text: string) => void) | Buttons),\n type?: ?AlertType = 'plain-text',\n defaultValue?: string,\n keyboardType?: string,\n options?: Options,\n ): void {\n if (Platform.OS === 'ios') {\n let callbacks: Array = [];\n const buttons = [];\n let cancelButtonKey;\n let destructiveButtonKey;\n let preferredButtonKey;\n if (typeof callbackOrButtons === 'function') {\n callbacks = [callbackOrButtons];\n } else if (Array.isArray(callbackOrButtons)) {\n callbackOrButtons.forEach((btn, index) => {\n callbacks[index] = btn.onPress;\n if (btn.style === 'cancel') {\n cancelButtonKey = String(index);\n } else if (btn.style === 'destructive') {\n destructiveButtonKey = String(index);\n }\n if (btn.isPreferred) {\n preferredButtonKey = String(index);\n }\n if (btn.text || index < (callbackOrButtons || []).length - 1) {\n const btnDef: {[number]: string} = {};\n btnDef[index] = btn.text || '';\n buttons.push(btnDef);\n }\n });\n }\n\n RCTAlertManager.alertWithArgs(\n {\n title: title || '',\n message: message || undefined,\n buttons,\n type: type || undefined,\n defaultValue,\n cancelButtonKey,\n destructiveButtonKey,\n preferredButtonKey,\n keyboardType,\n userInterfaceStyle: options?.userInterfaceStyle || undefined,\n },\n (id, value) => {\n const cb = callbacks[id];\n cb && cb(value);\n },\n );\n }\n }\n}\n\nmodule.exports = Alert;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport NativeDialogManagerAndroid from '../NativeModules/specs/NativeDialogManagerAndroid';\n\nfunction emptyCallback() {}\n\nmodule.exports = {\n alertWithArgs: function (args, callback) {\n // TODO(5998984): Polyfill it correctly with DialogManagerAndroid\n if (!NativeDialogManagerAndroid) {\n return;\n }\n\n NativeDialogManagerAndroid.showAlert(\n args,\n emptyCallback,\n callback || emptyCallback,\n );\n },\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\n/* 'buttonClicked' | 'dismissed' */\ntype DialogAction = string;\n/*\n buttonPositive = -1,\n buttonNegative = -2,\n buttonNeutral = -3\n*/\ntype DialogButtonKey = number;\nexport type DialogOptions = {|\n title?: string,\n message?: string,\n buttonPositive?: string,\n buttonNegative?: string,\n buttonNeutral?: string,\n items?: Array,\n cancelable?: boolean,\n|};\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n +buttonClicked: DialogAction,\n +dismissed: DialogAction,\n +buttonPositive: DialogButtonKey,\n +buttonNegative: DialogButtonKey,\n +buttonNeutral: DialogButtonKey,\n |};\n +showAlert: (\n config: DialogOptions,\n onError: (error: string) => void,\n onAction: (action: DialogAction, buttonKey?: DialogButtonKey) => void,\n ) => void;\n}\n\nexport default (TurboModuleRegistry.get('DialogManagerAndroid'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nconst {polyfillObjectProperty} = require('../Utilities/PolyfillFunctions');\n\nconst navigator = global.navigator;\nif (navigator === undefined) {\n // $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.\n global.navigator = {product: 'ReactNative'};\n} else {\n // see https://github.com/facebook/react-native/issues/10881\n polyfillObjectProperty(navigator, 'product', () => 'ReactNative');\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nlet registerModule;\nif (global.RN$Bridgeless === true && global.RN$registerCallableModule) {\n registerModule = global.RN$registerCallableModule;\n} else {\n const BatchedBridge = require('../BatchedBridge/BatchedBridge');\n registerModule = (\n moduleName:\n | $TEMPORARY$string<'GlobalPerformanceLogger'>\n | $TEMPORARY$string<'HMRClient'>\n | $TEMPORARY$string<'HeapCapture'>\n | $TEMPORARY$string<'JSTimers'>\n | $TEMPORARY$string<'RCTDeviceEventEmitter'>\n | $TEMPORARY$string<'RCTLog'>\n | $TEMPORARY$string<'RCTNativeAppEventEmitter'>\n | $TEMPORARY$string<'SamplingProfiler'>\n | $TEMPORARY$string<'Systrace'>,\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n factory,\n ) => BatchedBridge.registerLazyCallableModule(moduleName, factory);\n}\n\nregisterModule('Systrace', () => require('../Performance/Systrace'));\nif (!(global.RN$Bridgeless === true)) {\n registerModule('JSTimers', () => require('./Timers/JSTimers'));\n}\nregisterModule('HeapCapture', () => require('../HeapCapture/HeapCapture'));\nregisterModule('SamplingProfiler', () =>\n require('../Performance/SamplingProfiler'),\n);\nregisterModule('RCTLog', () => require('../Utilities/RCTLog'));\nregisterModule(\n 'RCTDeviceEventEmitter',\n () => require('../EventEmitter/RCTDeviceEventEmitter').default,\n);\nregisterModule('RCTNativeAppEventEmitter', () =>\n require('../EventEmitter/RCTNativeAppEventEmitter'),\n);\nregisterModule('GlobalPerformanceLogger', () =>\n require('../Utilities/GlobalPerformanceLogger'),\n);\n\nif (__DEV__) {\n registerModule('HMRClient', () => require('../Utilities/HMRClient'));\n} else {\n registerModule('HMRClient', () => require('../Utilities/HMRClientProdShim'));\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport NativeJSCHeapCapture from './NativeJSCHeapCapture';\n\nconst HeapCapture = {\n captureHeap: function (path: string) {\n let error = null;\n try {\n global.nativeCaptureHeap(path);\n console.log('HeapCapture.captureHeap succeeded: ' + path);\n } catch (e) {\n console.log('HeapCapture.captureHeap error: ' + e.toString());\n error = e.toString();\n }\n if (NativeJSCHeapCapture) {\n NativeJSCHeapCapture.captureComplete(path, error);\n }\n },\n};\n\nmodule.exports = HeapCapture;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +captureComplete: (path: string, error: ?string) => void;\n}\n\nexport default (TurboModuleRegistry.get('JSCHeapCapture'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nconst SamplingProfiler = {\n poke: function (token: number): void {\n let error = null;\n let result = null;\n try {\n result = global.pokeSamplingProfiler();\n if (result === null) {\n console.log('The JSC Sampling Profiler has started');\n } else {\n console.log('The JSC Sampling Profiler has stopped');\n }\n } catch (e) {\n console.log(\n 'Error occurred when restarting Sampling Profiler: ' + e.toString(),\n );\n error = e.toString();\n }\n\n const NativeJSCSamplingProfiler =\n require('./NativeJSCSamplingProfiler').default;\n if (NativeJSCSamplingProfiler) {\n NativeJSCSamplingProfiler.operationComplete(token, result, error);\n }\n },\n};\n\nmodule.exports = SamplingProfiler;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +operationComplete: (token: number, result: ?string, error: ?string) => void;\n}\n\nexport default (TurboModuleRegistry.get('JSCSamplingProfiler'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nconst invariant = require('invariant');\n\nconst levelsMap = {\n log: 'log',\n info: 'info',\n warn: 'warn',\n error: 'error',\n fatal: 'error',\n};\n\nlet warningHandler: ?(...Array) => void = null;\n\nconst RCTLog = {\n // level one of log, info, warn, error, mustfix\n logIfNoNativeHook(level: string, ...args: Array): void {\n // We already printed in the native console, so only log here if using a js debugger\n if (typeof global.nativeLoggingHook === 'undefined') {\n RCTLog.logToConsole(level, ...args);\n } else {\n // Report native warnings to LogBox\n if (warningHandler && level === 'warn') {\n warningHandler(...args);\n }\n }\n },\n\n // Log to console regardless of nativeLoggingHook\n logToConsole(level: string, ...args: Array): void {\n const logFn = levelsMap[level];\n invariant(\n logFn,\n 'Level \"' + level + '\" not one of ' + Object.keys(levelsMap).toString(),\n );\n\n console[logFn](...args);\n },\n\n setWarningHandler(handler: typeof warningHandler): void {\n warningHandler = handler;\n },\n};\n\nmodule.exports = RCTLog;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport RCTDeviceEventEmitter from './RCTDeviceEventEmitter';\n\n/**\n * Deprecated - subclass NativeEventEmitter to create granular event modules instead of\n * adding all event listeners directly to RCTNativeAppEventEmitter.\n */\nconst RCTNativeAppEventEmitter = RCTDeviceEventEmitter;\nmodule.exports = RCTNativeAppEventEmitter;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n'use strict';\n\nimport type {HMRClientNativeInterface} from './HMRClient';\n\n// This shim ensures DEV binary builds don't crash in JS\n// when they're combined with a PROD JavaScript build.\nconst HMRClientProdShim: HMRClientNativeInterface = {\n setup() {},\n enable() {\n console.error(\n 'Fast Refresh is disabled in JavaScript bundles built in production mode. ' +\n 'Did you forget to run Metro?',\n );\n },\n disable() {},\n registerBundle() {},\n log() {},\n};\n\nmodule.exports = HMRClientProdShim;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nexport type FetchSegmentFunction = typeof __fetchSegment;\n\n/**\n * Set up SegmentFetcher.\n * You can use this module directly, or just require InitializeCore.\n */\n\nfunction __fetchSegment(\n segmentId: number,\n options: $ReadOnly<{\n otaBuildNumber: ?string,\n requestedModuleName: string,\n segmentHash: string,\n }>,\n callback: (?Error) => void,\n) {\n const SegmentFetcher =\n require('./SegmentFetcher/NativeSegmentFetcher').default;\n SegmentFetcher.fetchSegment(\n segmentId,\n options,\n (\n errorObject: ?{\n message: string,\n code: string,\n ...\n },\n ) => {\n if (errorObject) {\n const error = new Error(errorObject.message);\n (error: any).code = errorObject.code; // flowlint-line unclear-type: off\n callback(error);\n }\n\n callback(null);\n },\n );\n}\n\nglobal.__fetchSegment = __fetchSegment;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +fetchSegment: (\n segmentId: number,\n options: Object, // flowlint-line unclear-type: off\n callback: (error: ?Object) => void, // flowlint-line unclear-type: off\n ) => void;\n +getSegment?: (\n segmentId: number,\n options: Object, // flowlint-line unclear-type: off\n callback: (error: ?Object, path: ?string) => void, // flowlint-line unclear-type: off\n ) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('SegmentFetcher'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {RootTag} from '../Types/RootTagTypes';\nimport type {IPerformanceLogger} from '../Utilities/createPerformanceLogger';\n\nimport BatchedBridge from '../BatchedBridge/BatchedBridge';\nimport BugReporting from '../BugReporting/BugReporting';\nimport createPerformanceLogger from '../Utilities/createPerformanceLogger';\nimport infoLog from '../Utilities/infoLog';\nimport SceneTracker from '../Utilities/SceneTracker';\nimport {coerceDisplayMode} from './DisplayMode';\nimport HeadlessJsTaskError from './HeadlessJsTaskError';\nimport NativeHeadlessJsTaskSupport from './NativeHeadlessJsTaskSupport';\nimport renderApplication from './renderApplication';\nimport {unmountComponentAtNodeAndRemoveContainer} from './RendererProxy';\nimport invariant from 'invariant';\n\ntype Task = (taskData: any) => Promise;\nexport type TaskProvider = () => Task;\ntype TaskCanceller = () => void;\ntype TaskCancelProvider = () => TaskCanceller;\n\nexport type ComponentProvider = () => React$ComponentType;\nexport type ComponentProviderInstrumentationHook = (\n component: ComponentProvider,\n scopedPerformanceLogger: IPerformanceLogger,\n) => React$ComponentType;\nexport type AppConfig = {\n appKey: string,\n component?: ComponentProvider,\n run?: Function,\n section?: boolean,\n ...\n};\nexport type Runnable = {\n component?: ComponentProvider,\n run: Function,\n ...\n};\nexport type Runnables = {[appKey: string]: Runnable, ...};\nexport type Registry = {\n sections: Array,\n runnables: Runnables,\n ...\n};\nexport type WrapperComponentProvider = (\n appParameters: any,\n) => React$ComponentType;\n\nconst runnables: Runnables = {};\nlet runCount = 1;\nconst sections: Runnables = {};\nconst taskProviders: Map = new Map();\nconst taskCancelProviders: Map = new Map();\nlet componentProviderInstrumentationHook: ComponentProviderInstrumentationHook =\n (component: ComponentProvider) => component();\n\nlet wrapperComponentProvider: ?WrapperComponentProvider;\nlet showArchitectureIndicator = false;\n\n/**\n * `AppRegistry` is the JavaScript entry point to running all React Native apps.\n *\n * See https://reactnative.dev/docs/appregistry\n */\nconst AppRegistry = {\n setWrapperComponentProvider(provider: WrapperComponentProvider) {\n wrapperComponentProvider = provider;\n },\n\n enableArchitectureIndicator(enabled: boolean): void {\n showArchitectureIndicator = enabled;\n },\n\n registerConfig(config: Array): void {\n config.forEach(appConfig => {\n if (appConfig.run) {\n AppRegistry.registerRunnable(appConfig.appKey, appConfig.run);\n } else {\n invariant(\n appConfig.component != null,\n 'AppRegistry.registerConfig(...): Every config is expected to set ' +\n 'either `run` or `component`, but `%s` has neither.',\n appConfig.appKey,\n );\n AppRegistry.registerComponent(\n appConfig.appKey,\n appConfig.component,\n appConfig.section,\n );\n }\n });\n },\n\n /**\n * Registers an app's root component.\n *\n * See https://reactnative.dev/docs/appregistry#registercomponent\n */\n registerComponent(\n appKey: string,\n componentProvider: ComponentProvider,\n section?: boolean,\n ): string {\n let scopedPerformanceLogger = createPerformanceLogger();\n runnables[appKey] = {\n componentProvider,\n run: (appParameters, displayMode) => {\n const concurrentRootEnabled =\n appParameters.initialProps?.concurrentRoot ||\n appParameters.concurrentRoot;\n renderApplication(\n componentProviderInstrumentationHook(\n componentProvider,\n scopedPerformanceLogger,\n ),\n appParameters.initialProps,\n appParameters.rootTag,\n wrapperComponentProvider && wrapperComponentProvider(appParameters),\n appParameters.fabric,\n showArchitectureIndicator,\n scopedPerformanceLogger,\n appKey === 'LogBox',\n appKey,\n coerceDisplayMode(displayMode),\n concurrentRootEnabled,\n );\n },\n };\n if (section) {\n sections[appKey] = runnables[appKey];\n }\n return appKey;\n },\n\n registerRunnable(appKey: string, run: Function): string {\n runnables[appKey] = {run};\n return appKey;\n },\n\n registerSection(appKey: string, component: ComponentProvider): void {\n AppRegistry.registerComponent(appKey, component, true);\n },\n\n getAppKeys(): Array {\n return Object.keys(runnables);\n },\n\n getSectionKeys(): Array {\n return Object.keys(sections);\n },\n\n getSections(): Runnables {\n return {\n ...sections,\n };\n },\n\n getRunnable(appKey: string): ?Runnable {\n return runnables[appKey];\n },\n\n getRegistry(): Registry {\n return {\n sections: AppRegistry.getSectionKeys(),\n runnables: {...runnables},\n };\n },\n\n setComponentProviderInstrumentationHook(\n hook: ComponentProviderInstrumentationHook,\n ) {\n componentProviderInstrumentationHook = hook;\n },\n\n /**\n * Loads the JavaScript bundle and runs the app.\n *\n * See https://reactnative.dev/docs/appregistry#runapplication\n */\n runApplication(\n appKey: string,\n appParameters: any,\n displayMode?: number,\n ): void {\n if (appKey !== 'LogBox') {\n const logParams = __DEV__\n ? '\" with ' + JSON.stringify(appParameters)\n : '';\n const msg = 'Running \"' + appKey + logParams;\n infoLog(msg);\n BugReporting.addSource(\n 'AppRegistry.runApplication' + runCount++,\n () => msg,\n );\n }\n invariant(\n runnables[appKey] && runnables[appKey].run,\n `\"${appKey}\" has not been registered. This can happen if:\\n` +\n '* Metro (the local dev server) is run from the wrong folder. ' +\n 'Check if Metro is running, stop it and restart it in the current project.\\n' +\n \"* A module failed to load due to an error and `AppRegistry.registerComponent` wasn't called.\",\n );\n\n SceneTracker.setActiveScene({name: appKey});\n runnables[appKey].run(appParameters, displayMode);\n },\n\n /**\n * Update initial props for a surface that's already rendered\n */\n setSurfaceProps(\n appKey: string,\n appParameters: any,\n displayMode?: number,\n ): void {\n if (appKey !== 'LogBox') {\n const msg =\n 'Updating props for Surface \"' +\n appKey +\n '\" with ' +\n JSON.stringify(appParameters);\n infoLog(msg);\n BugReporting.addSource(\n 'AppRegistry.setSurfaceProps' + runCount++,\n () => msg,\n );\n }\n invariant(\n runnables[appKey] && runnables[appKey].run,\n `\"${appKey}\" has not been registered. This can happen if:\\n` +\n '* Metro (the local dev server) is run from the wrong folder. ' +\n 'Check if Metro is running, stop it and restart it in the current project.\\n' +\n \"* A module failed to load due to an error and `AppRegistry.registerComponent` wasn't called.\",\n );\n\n runnables[appKey].run(appParameters, displayMode);\n },\n\n /**\n * Stops an application when a view should be destroyed.\n *\n * See https://reactnative.dev/docs/appregistry#unmountapplicationcomponentatroottag\n */\n unmountApplicationComponentAtRootTag(rootTag: RootTag): void {\n unmountComponentAtNodeAndRemoveContainer(rootTag);\n },\n\n /**\n * Register a headless task. A headless task is a bit of code that runs without a UI.\n *\n * See https://reactnative.dev/docs/appregistry#registerheadlesstask\n */\n registerHeadlessTask(taskKey: string, taskProvider: TaskProvider): void {\n // $FlowFixMe[object-this-reference]\n this.registerCancellableHeadlessTask(taskKey, taskProvider, () => () => {\n /* Cancel is no-op */\n });\n },\n\n /**\n * Register a cancellable headless task. A headless task is a bit of code that runs without a UI.\n *\n * See https://reactnative.dev/docs/appregistry#registercancellableheadlesstask\n */\n registerCancellableHeadlessTask(\n taskKey: string,\n taskProvider: TaskProvider,\n taskCancelProvider: TaskCancelProvider,\n ): void {\n if (taskProviders.has(taskKey)) {\n console.warn(\n `registerHeadlessTask or registerCancellableHeadlessTask called multiple times for same key '${taskKey}'`,\n );\n }\n taskProviders.set(taskKey, taskProvider);\n taskCancelProviders.set(taskKey, taskCancelProvider);\n },\n\n /**\n * Only called from native code. Starts a headless task.\n *\n * See https://reactnative.dev/docs/appregistry#startheadlesstask\n */\n startHeadlessTask(taskId: number, taskKey: string, data: any): void {\n const taskProvider = taskProviders.get(taskKey);\n if (!taskProvider) {\n console.warn(`No task registered for key ${taskKey}`);\n if (NativeHeadlessJsTaskSupport) {\n NativeHeadlessJsTaskSupport.notifyTaskFinished(taskId);\n }\n return;\n }\n taskProvider()(data)\n .then(() => {\n if (NativeHeadlessJsTaskSupport) {\n NativeHeadlessJsTaskSupport.notifyTaskFinished(taskId);\n }\n })\n .catch(reason => {\n console.error(reason);\n\n if (\n NativeHeadlessJsTaskSupport &&\n reason instanceof HeadlessJsTaskError\n ) {\n // $FlowFixMe[unused-promise]\n NativeHeadlessJsTaskSupport.notifyTaskRetry(taskId).then(\n retryPosted => {\n if (!retryPosted) {\n NativeHeadlessJsTaskSupport.notifyTaskFinished(taskId);\n }\n },\n );\n }\n });\n },\n\n /**\n * Only called from native code. Cancels a headless task.\n *\n * See https://reactnative.dev/docs/appregistry#cancelheadlesstask\n */\n cancelHeadlessTask(taskId: number, taskKey: string): void {\n const taskCancelProvider = taskCancelProviders.get(taskKey);\n if (!taskCancelProvider) {\n throw new Error(`No task canceller registered for key '${taskKey}'`);\n }\n taskCancelProvider()();\n },\n};\n\nif (!(global.RN$Bridgeless === true)) {\n BatchedBridge.registerCallableModule('AppRegistry', AppRegistry);\n\n AppRegistry.registerComponent('LogBox', () => {\n if (__DEV__) {\n return require('../LogBox/LogBoxInspectorContainer').default;\n } else {\n return function NoOp() {\n return null;\n };\n }\n });\n}\n\nmodule.exports = AppRegistry;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter';\nimport NativeRedBox from '../NativeModules/specs/NativeRedBox';\nimport {type EventSubscription} from '../vendor/emitter/EventEmitter';\nimport NativeBugReporting from './NativeBugReporting';\n\ntype ExtraData = {[key: string]: string, ...};\ntype SourceCallback = () => string;\ntype DebugData = {\n extras: ExtraData,\n files: ExtraData,\n ...\n};\n\nfunction defaultExtras() {\n BugReporting.addFileSource('react_hierarchy.txt', () =>\n require('./dumpReactTree')(),\n );\n}\n\n/**\n * A simple class for collecting bug report data. Components can add sources that will be queried when a bug report\n * is created via `collectExtraData`. For example, a list component might add a source that provides the list of rows\n * that are currently visible on screen. Components should also remember to call `remove()` on the object that is\n * returned by `addSource` when they are unmounted.\n */\nclass BugReporting {\n static _extraSources: Map = new Map();\n static _fileSources: Map = new Map();\n static _subscription: ?EventSubscription = null;\n static _redboxSubscription: ?EventSubscription = null;\n\n static _maybeInit() {\n if (!BugReporting._subscription) {\n BugReporting._subscription = RCTDeviceEventEmitter.addListener(\n 'collectBugExtraData',\n // $FlowFixMe[method-unbinding]\n BugReporting.collectExtraData,\n null,\n );\n defaultExtras();\n }\n\n if (!BugReporting._redboxSubscription) {\n BugReporting._redboxSubscription = RCTDeviceEventEmitter.addListener(\n 'collectRedBoxExtraData',\n // $FlowFixMe[method-unbinding]\n BugReporting.collectExtraData,\n null,\n );\n }\n }\n\n /**\n * Maps a string key to a simple callback that should return a string payload to be attached\n * to a bug report. Source callbacks are called when `collectExtraData` is called.\n *\n * Returns an object to remove the source when the component unmounts.\n *\n * Conflicts trample with a warning.\n */\n static addSource(\n key: string,\n callback: SourceCallback,\n ): {remove: () => void, ...} {\n return this._addSource(key, callback, BugReporting._extraSources);\n }\n\n /**\n * Maps a string key to a simple callback that should return a string payload to be attached\n * to a bug report. Source callbacks are called when `collectExtraData` is called.\n *\n * Returns an object to remove the source when the component unmounts.\n *\n * Conflicts trample with a warning.\n */\n static addFileSource(\n key: string,\n callback: SourceCallback,\n ): {remove: () => void, ...} {\n return this._addSource(key, callback, BugReporting._fileSources);\n }\n\n static _addSource(\n key: string,\n callback: SourceCallback,\n source: Map,\n ): {remove: () => void, ...} {\n BugReporting._maybeInit();\n if (source.has(key)) {\n console.warn(\n `BugReporting.add* called multiple times for same key '${key}'`,\n );\n }\n source.set(key, callback);\n return {\n remove: () => {\n source.delete(key);\n },\n };\n }\n\n /**\n * This can be called from a native bug reporting flow, or from JS code.\n *\n * If available, this will call `NativeModules.BugReporting.setExtraData(extraData)`\n * after collecting `extraData`.\n */\n static collectExtraData(): DebugData {\n const extraData: ExtraData = {};\n for (const [key, callback] of BugReporting._extraSources) {\n extraData[key] = callback();\n }\n const fileData: ExtraData = {};\n for (const [key, callback] of BugReporting._fileSources) {\n fileData[key] = callback();\n }\n\n if (NativeBugReporting != null && NativeBugReporting.setExtraData != null) {\n NativeBugReporting.setExtraData(extraData, fileData);\n }\n\n if (NativeRedBox != null && NativeRedBox.setExtraData != null) {\n NativeRedBox.setExtraData(extraData, 'From BugReporting.js');\n }\n\n return {extras: extraData, files: fileData};\n }\n}\n\nmodule.exports = BugReporting;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +setExtraData: (extraData: Object, forIdentifier: string) => void;\n +dismiss: () => void;\n}\n\nexport default (TurboModuleRegistry.get('RedBox'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +startReportAProblemFlow: () => void;\n +setExtraData: (extraData: Object, extraFiles: Object) => void;\n +setCategoryID: (categoryID: string) => void;\n}\n\nexport default (TurboModuleRegistry.get('BugReporting'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\n/*\nconst getReactData = require('getReactData');\n\nconst INDENTATION_SIZE = 2;\nconst MAX_DEPTH = 2;\nconst MAX_STRING_LENGTH = 50;\n*/\n\n/**\n * Dump all React Native root views and their content. This function tries\n * it best to get the content but ultimately relies on implementation details\n * of React and will fail in future versions.\n */\nfunction dumpReactTree(): string {\n try {\n return getReactTree();\n } catch (e) {\n return 'Failed to dump react tree: ' + e;\n }\n}\n\nfunction getReactTree() {\n // TODO(sema): Reenable tree dumps using the Fiber tree structure. #15945684\n return (\n 'React tree dumps have been temporarily disabled while React is ' +\n 'upgraded to Fiber.'\n );\n /*\n let output = '';\n const rootIds = Object.getOwnPropertyNames(ReactNativeMount._instancesByContainerID);\n for (const rootId of rootIds) {\n const instance = ReactNativeMount._instancesByContainerID[rootId];\n output += `============ Root ID: ${rootId} ============\\n`;\n output += dumpNode(instance, 0);\n output += `============ End root ID: ${rootId} ============\\n`;\n }\n return output;\n*/\n}\n\n/*\nfunction dumpNode(node: Object, indentation: number) {\n const data = getReactData(node);\n if (data.nodeType === 'Text') {\n return indent(indentation) + data.text + '\\n';\n } else if (data.nodeType === 'Empty') {\n return '';\n }\n let output = indent(indentation) + `<${data.name}`;\n if (data.nodeType === 'Composite') {\n for (const propName of Object.getOwnPropertyNames(data.props || {})) {\n if (isNormalProp(propName)) {\n try {\n const value = convertValue(data.props[propName]);\n if (value) {\n output += ` ${propName}=${value}`;\n }\n } catch (e) {\n const message = `[Failed to get property: ${e}]`;\n output += ` ${propName}=${message}`;\n }\n }\n }\n }\n let childOutput = '';\n for (const child of data.children || []) {\n childOutput += dumpNode(child, indentation + 1);\n }\n\n if (childOutput) {\n output += '>\\n' + childOutput + indent(indentation) + `\\n`;\n } else {\n output += ' />\\n';\n }\n\n return output;\n}\n\nfunction isNormalProp(name: string): boolean {\n switch (name) {\n case 'children':\n case 'key':\n case 'ref':\n return false;\n default:\n return true;\n }\n}\n\nfunction convertObject(object: Object, depth: number) {\n if (depth >= MAX_DEPTH) {\n return '[...omitted]';\n }\n let output = '{';\n let first = true;\n for (const key of Object.getOwnPropertyNames(object)) {\n if (!first) {\n output += ', ';\n }\n output += `${key}: ${convertValue(object[key], depth + 1)}`;\n first = false;\n }\n return output + '}';\n}\n\nfunction convertValue(value, depth = 0): ?string {\n if (!value) {\n return null;\n }\n\n switch (typeof value) {\n case 'string':\n return JSON.stringify(possiblyEllipsis(value).replace('\\n', '\\\\n'));\n case 'boolean':\n case 'number':\n return JSON.stringify(value);\n case 'function':\n return '[function]';\n case 'object':\n return convertObject(value, depth);\n default:\n return null;\n }\n}\n\nfunction possiblyEllipsis(value: string) {\n if (value.length > MAX_STRING_LENGTH) {\n return value.slice(0, MAX_STRING_LENGTH) + '...';\n } else {\n return value;\n }\n}\n\nfunction indent(size: number) {\n return ' '.repeat(size * INDENTATION_SIZE);\n}\n*/\n\nmodule.exports = dumpReactTree;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nexport type Scene = {name: string, ...};\n\nlet _listeners: Array<(scene: Scene) => void> = [];\n\nlet _activeScene = {name: 'default'};\n\nconst SceneTracker = {\n setActiveScene(scene: Scene) {\n _activeScene = scene;\n _listeners.forEach(listener => listener(_activeScene));\n },\n\n getActiveScene(): Scene {\n return _activeScene;\n },\n\n addActiveSceneChangedListener(callback: (scene: Scene) => void): {\n remove: () => void,\n ...\n } {\n _listeners.push(callback);\n return {\n remove: () => {\n _listeners = _listeners.filter(listener => callback !== listener);\n },\n };\n },\n};\n\nmodule.exports = SceneTracker;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nexport default class HeadlessJsTaskError extends Error {}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +notifyTaskFinished: (taskId: number) => void;\n +notifyTaskRetry: (taskId: number) => Promise;\n}\n\nexport default (TurboModuleRegistry.get('HeadlessJsTaskSupport'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {IPerformanceLogger} from '../Utilities/createPerformanceLogger';\n\nimport GlobalPerformanceLogger from '../Utilities/GlobalPerformanceLogger';\nimport PerformanceLoggerContext from '../Utilities/PerformanceLoggerContext';\nimport AppContainer from './AppContainer';\nimport DisplayMode, {type DisplayModeType} from './DisplayMode';\nimport getCachedComponentWithDebugName from './getCachedComponentWithDebugName';\nimport * as Renderer from './RendererProxy';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\n// require BackHandler so it sets the default handler that exits the app if no listeners respond\nimport '../Utilities/BackHandler';\n\ntype OffscreenType = React.AbstractComponent<{\n mode: 'visible' | 'hidden',\n children: React.Node,\n}>;\n\nexport default function renderApplication(\n RootComponent: React.ComponentType,\n initialProps: Props,\n rootTag: any,\n WrapperComponent?: ?React.ComponentType,\n fabric?: boolean,\n showArchitectureIndicator?: boolean,\n scopedPerformanceLogger?: IPerformanceLogger,\n isLogBox?: boolean,\n debugName?: string,\n displayMode?: ?DisplayModeType,\n useConcurrentRoot?: boolean,\n useOffscreen?: boolean,\n) {\n invariant(rootTag, 'Expect to have a valid rootTag, instead got ', rootTag);\n\n const performanceLogger = scopedPerformanceLogger ?? GlobalPerformanceLogger;\n\n let renderable: React.MixedElement = (\n \n \n \n \n \n );\n\n if (__DEV__ && debugName) {\n const RootComponentWithMeaningfulName = getCachedComponentWithDebugName(\n `${debugName}(RootComponent)`,\n );\n renderable = (\n \n {renderable}\n \n );\n }\n\n if (useOffscreen && displayMode != null) {\n // $FlowFixMe[incompatible-type]\n // $FlowFixMe[prop-missing]\n const Offscreen: OffscreenType = React.unstable_Offscreen;\n\n renderable = (\n \n {renderable}\n \n );\n }\n\n performanceLogger.startTimespan('renderApplication_React_render');\n performanceLogger.setExtra(\n 'usedReactConcurrentRoot',\n useConcurrentRoot ? '1' : '0',\n );\n performanceLogger.setExtra('usedReactFabric', fabric ? '1' : '0');\n performanceLogger.setExtra(\n 'usedReactProfiler',\n Renderer.isProfilingRenderer(),\n );\n Renderer.renderElement({\n element: renderable,\n rootTag,\n useFabric: Boolean(fabric),\n useConcurrentRoot: Boolean(useConcurrentRoot),\n });\n performanceLogger.stopTimespan('renderApplication_React_render');\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {IPerformanceLogger} from './createPerformanceLogger';\n\nimport GlobalPerformanceLogger from './GlobalPerformanceLogger';\nimport * as React from 'react';\nimport {useContext} from 'react';\n\n/**\n * This is a React Context that provides a scoped instance of IPerformanceLogger.\n * We wrap every with a Provider for this context so the logger\n * should be available in every component.\n * See React docs about using Context: https://reactjs.org/docs/context.html\n */\nconst PerformanceLoggerContext: React.Context =\n React.createContext(GlobalPerformanceLogger);\nif (__DEV__) {\n PerformanceLoggerContext.displayName = 'PerformanceLoggerContext';\n}\n\nexport function usePerformanceLogger(): IPerformanceLogger {\n return useContext(PerformanceLoggerContext);\n}\n\nexport default PerformanceLoggerContext;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1,\n internal_excludeLogBox?: ?boolean,\n internal_excludeInspector?: ?boolean,\n|}>;\n\ntype State = {|\n inspector: ?React.Node,\n devtoolsOverlay: ?React.Node,\n traceUpdateOverlay: ?React.Node,\n mainKey: number,\n hasError: boolean,\n|};\n\nclass AppContainer extends React.Component {\n state: State = {\n inspector: null,\n devtoolsOverlay: null,\n traceUpdateOverlay: null,\n mainKey: 1,\n hasError: false,\n };\n _mainRef: ?React.ElementRef;\n _subscription: ?EventSubscription = null;\n\n static getDerivedStateFromError: any = undefined;\n\n componentDidMount(): void {\n if (__DEV__) {\n if (!this.props.internal_excludeInspector) {\n this._subscription = RCTDeviceEventEmitter.addListener(\n 'toggleElementInspector',\n () => {\n const Inspector = require('../Inspector/Inspector');\n const inspector = this.state.inspector ? null : (\n {\n this.setState(\n s => ({mainKey: s.mainKey + 1}),\n () => updateInspectedView(this._mainRef),\n );\n }}\n />\n );\n this.setState({inspector});\n },\n );\n if (window.__REACT_DEVTOOLS_GLOBAL_HOOK__ != null) {\n const DevtoolsOverlay =\n require('../Inspector/DevtoolsOverlay').default;\n const devtoolsOverlay = (\n \n );\n const TraceUpdateOverlay =\n require('../Components/TraceUpdateOverlay/TraceUpdateOverlay').default;\n const traceUpdateOverlay = ;\n this.setState({devtoolsOverlay, traceUpdateOverlay});\n }\n }\n }\n }\n\n componentWillUnmount(): void {\n if (this._subscription != null) {\n this._subscription.remove();\n }\n }\n\n render(): React.Node {\n let logBox = null;\n if (__DEV__) {\n if (!this.props.internal_excludeLogBox) {\n const LogBoxNotificationContainer =\n require('../LogBox/LogBoxNotificationContainer').default;\n logBox = ;\n }\n }\n\n let innerView: React.Node = (\n {\n this._mainRef = ref;\n }}>\n {this.props.children}\n \n );\n\n const Wrapper = this.props.WrapperComponent;\n if (Wrapper != null) {\n innerView = (\n \n {innerView}\n \n );\n }\n return (\n \n \n {!this.state.hasError && innerView}\n {this.state.traceUpdateOverlay}\n {this.state.devtoolsOverlay}\n {this.state.inspector}\n {logBox}\n \n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n appContainer: {\n flex: 1,\n },\n});\n\nmodule.exports = AppContainer;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {ViewProps} from './ViewPropTypes';\n\nimport flattenStyle from '../../StyleSheet/flattenStyle';\nimport TextAncestor from '../../Text/TextAncestor';\nimport {getAccessibilityRoleFromRole} from '../../Utilities/AcessibilityMapping';\nimport ViewNativeComponent from './ViewNativeComponent';\nimport * as React from 'react';\n\nexport type Props = ViewProps;\n\n/**\n * The most fundamental component for building a UI, View is a container that\n * supports layout with flexbox, style, some touch handling, and accessibility\n * controls.\n *\n * @see https://reactnative.dev/docs/view\n */\nconst View: React.AbstractComponent<\n ViewProps,\n React.ElementRef,\n> = React.forwardRef(\n (\n {\n accessibilityElementsHidden,\n accessibilityLabel,\n accessibilityLabelledBy,\n accessibilityLiveRegion,\n accessibilityRole,\n accessibilityState,\n accessibilityValue,\n 'aria-busy': ariaBusy,\n 'aria-checked': ariaChecked,\n 'aria-disabled': ariaDisabled,\n 'aria-expanded': ariaExpanded,\n 'aria-hidden': ariaHidden,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-live': ariaLive,\n 'aria-selected': ariaSelected,\n 'aria-valuemax': ariaValueMax,\n 'aria-valuemin': ariaValueMin,\n 'aria-valuenow': ariaValueNow,\n 'aria-valuetext': ariaValueText,\n focusable,\n id,\n importantForAccessibility,\n nativeID,\n pointerEvents,\n role,\n tabIndex,\n ...otherProps\n }: ViewProps,\n forwardedRef,\n ) => {\n const _accessibilityLabelledBy =\n ariaLabelledBy?.split(/\\s*,\\s*/g) ?? accessibilityLabelledBy;\n\n let _accessibilityState;\n if (\n accessibilityState != null ||\n ariaBusy != null ||\n ariaChecked != null ||\n ariaDisabled != null ||\n ariaExpanded != null ||\n ariaSelected != null\n ) {\n _accessibilityState = {\n busy: ariaBusy ?? accessibilityState?.busy,\n checked: ariaChecked ?? accessibilityState?.checked,\n disabled: ariaDisabled ?? accessibilityState?.disabled,\n expanded: ariaExpanded ?? accessibilityState?.expanded,\n selected: ariaSelected ?? accessibilityState?.selected,\n };\n }\n let _accessibilityValue;\n if (\n accessibilityValue != null ||\n ariaValueMax != null ||\n ariaValueMin != null ||\n ariaValueNow != null ||\n ariaValueText != null\n ) {\n _accessibilityValue = {\n max: ariaValueMax ?? accessibilityValue?.max,\n min: ariaValueMin ?? accessibilityValue?.min,\n now: ariaValueNow ?? accessibilityValue?.now,\n text: ariaValueText ?? accessibilityValue?.text,\n };\n }\n\n // $FlowFixMe[underconstrained-implicit-instantiation]\n let style = flattenStyle(otherProps.style);\n\n const newPointerEvents = style?.pointerEvents || pointerEvents;\n\n return (\n \n \n \n );\n },\n);\n\nView.displayName = 'View';\n\nmodule.exports = View;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nimport type {DangerouslyImpreciseStyleProp} from './StyleSheet';\nimport type {____FlattenStyleProp_Internal} from './StyleSheetTypes';\n\nfunction flattenStyle<+TStyleProp: DangerouslyImpreciseStyleProp>(\n style: ?TStyleProp,\n // $FlowFixMe[underconstrained-implicit-instantiation]\n): ?____FlattenStyleProp_Internal {\n if (style === null || typeof style !== 'object') {\n return undefined;\n }\n\n if (!Array.isArray(style)) {\n return style;\n }\n\n const result: {[string]: $FlowFixMe} = {};\n for (let i = 0, styleLength = style.length; i < styleLength; ++i) {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n const computedStyle = flattenStyle(style[i]);\n if (computedStyle) {\n for (const key in computedStyle) {\n result[key] = computedStyle[key];\n }\n }\n }\n return result;\n}\n\nmodule.exports = flattenStyle;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nconst React = require('react');\n\n/**\n * Whether the current element is the descendant of a element.\n */\nconst TextAncestorContext = (React.createContext(\n false,\n): React$Context<$FlowFixMe>);\nif (__DEV__) {\n TextAncestorContext.displayName = 'TextAncestorContext';\n}\nmodule.exports = TextAncestorContext;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport Platform from '../../Utilities/Platform';\nimport {type ViewProps as Props} from './ViewPropTypes';\nimport * as React from 'react';\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig =\n Platform.OS === 'android'\n ? {\n uiViewClassName: 'RCTView',\n validAttributes: {\n // ReactClippingViewManager @ReactProps\n removeClippedSubviews: true,\n\n // ReactViewManager @ReactProps\n accessible: true,\n hasTVPreferredFocus: true,\n nextFocusDown: true,\n nextFocusForward: true,\n nextFocusLeft: true,\n nextFocusRight: true,\n nextFocusUp: true,\n\n borderRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderBottomRightRadius: true,\n borderBottomLeftRadius: true,\n borderTopStartRadius: true,\n borderTopEndRadius: true,\n borderBottomStartRadius: true,\n borderBottomEndRadius: true,\n borderEndEndRadius: true,\n borderEndStartRadius: true,\n borderStartEndRadius: true,\n borderStartStartRadius: true,\n borderStyle: true,\n hitSlop: true,\n pointerEvents: true,\n nativeBackgroundAndroid: true,\n nativeForegroundAndroid: true,\n needsOffscreenAlphaCompositing: true,\n\n borderWidth: true,\n borderLeftWidth: true,\n borderRightWidth: true,\n borderTopWidth: true,\n borderBottomWidth: true,\n borderStartWidth: true,\n borderEndWidth: true,\n\n borderColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderLeftColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderRightColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderTopColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderBottomColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderStartColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderEndColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderBlockColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderBlockEndColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderBlockStartColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n\n focusable: true,\n overflow: true,\n backfaceVisibility: true,\n },\n }\n : {\n uiViewClassName: 'RCTView',\n };\n\nconst ViewNativeComponent: HostComponent =\n NativeComponentRegistry.get('RCTView', () => __INTERNAL_VIEW_CONFIG);\n\ninterface NativeCommands {\n +hotspotUpdate: (\n viewRef: React.ElementRef>,\n x: number,\n y: number,\n ) => void;\n +setPressed: (\n viewRef: React.ElementRef>,\n pressed: boolean,\n ) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['hotspotUpdate', 'setPressed'],\n});\n\nexport default ViewNativeComponent;\n\nexport type ViewNativeComponentType = HostComponent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../Renderer/shims/ReactNativeTypes';\n\nimport getNativeComponentAttributes from '../ReactNative/getNativeComponentAttributes';\nimport UIManager from '../ReactNative/UIManager';\nimport ReactNativeViewConfigRegistry from '../Renderer/shims/ReactNativeViewConfigRegistry';\nimport verifyComponentAttributeEquivalence from '../Utilities/verifyComponentAttributeEquivalence';\nimport * as StaticViewConfigValidator from './StaticViewConfigValidator';\nimport {createViewConfig} from './ViewConfig';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\nlet getRuntimeConfig;\n\n/**\n * Configures a function that is called to determine whether a given component\n * should be registered using reflection of the native component at runtime.\n *\n * The provider should return null if the native component is unavailable in\n * the current environment.\n */\nexport function setRuntimeConfigProvider(\n runtimeConfigProvider: (name: string) => ?{\n native: boolean,\n strict: boolean,\n verify: boolean,\n },\n): void {\n invariant(\n getRuntimeConfig == null,\n 'NativeComponentRegistry.setRuntimeConfigProvider() called more than once.',\n );\n getRuntimeConfig = runtimeConfigProvider;\n}\n\n/**\n * Gets a `NativeComponent` that can be rendered by React Native.\n *\n * The supplied `viewConfigProvider` may or may not be invoked and utilized,\n * depending on how `setRuntimeConfigProvider` is configured.\n */\nexport function get(\n name: string,\n viewConfigProvider: () => PartialViewConfig,\n): HostComponent {\n ReactNativeViewConfigRegistry.register(name, () => {\n const {native, strict, verify} = getRuntimeConfig?.(name) ?? {\n native: true,\n strict: false,\n verify: false,\n };\n\n const viewConfig = native\n ? getNativeComponentAttributes(name)\n : createViewConfig(viewConfigProvider());\n\n if (verify) {\n const nativeViewConfig = native\n ? viewConfig\n : getNativeComponentAttributes(name);\n const staticViewConfig = native\n ? createViewConfig(viewConfigProvider())\n : viewConfig;\n\n if (strict) {\n const validationOutput = StaticViewConfigValidator.validate(\n name,\n nativeViewConfig,\n staticViewConfig,\n );\n\n if (validationOutput.type === 'invalid') {\n console.error(\n StaticViewConfigValidator.stringifyValidationResult(\n name,\n validationOutput,\n ),\n );\n }\n } else {\n verifyComponentAttributeEquivalence(nativeViewConfig, staticViewConfig);\n }\n }\n\n return viewConfig;\n });\n\n // $FlowFixMe[incompatible-return] `NativeComponent` is actually string!\n return name;\n}\n\n/**\n * Same as `NativeComponentRegistry.get(...)`, except this will check either\n * the `setRuntimeConfigProvider` configuration or use native reflection (slow)\n * to determine whether this native component is available.\n *\n * If the native component is not available, a stub component is returned. Note\n * that the return value of this is not `HostComponent` because the returned\n * component instance is not guaranteed to have native methods.\n */\nexport function getWithFallback_DEPRECATED(\n name: string,\n viewConfigProvider: () => PartialViewConfig,\n): React.AbstractComponent {\n if (getRuntimeConfig == null) {\n // `getRuntimeConfig == null` when static view configs are disabled\n // If `setRuntimeConfigProvider` is not configured, use native reflection.\n if (hasNativeViewConfig(name)) {\n return get(name, viewConfigProvider);\n }\n } else {\n // If there is no runtime config, then the native component is unavailable.\n if (getRuntimeConfig(name) != null) {\n return get(name, viewConfigProvider);\n }\n }\n\n const FallbackNativeComponent = function (props: Config): React.Node {\n return null;\n };\n FallbackNativeComponent.displayName = `Fallback(${name})`;\n return FallbackNativeComponent;\n}\n\nfunction hasNativeViewConfig(name: string): boolean {\n invariant(getRuntimeConfig == null, 'Unexpected invocation!');\n return UIManager.getViewManagerConfig(name) != null;\n}\n\n/**\n * Unstable API. Do not use!\n *\n * This method returns if there is a StaticViewConfig registered for the\n * component name received as a parameter.\n */\nexport function unstable_hasStaticViewConfig(name: string): boolean {\n const {native} = getRuntimeConfig?.(name) ?? {\n native: true,\n };\n return !native;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nconst ReactNativeStyleAttributes = require('../Components/View/ReactNativeStyleAttributes');\nconst resolveAssetSource = require('../Image/resolveAssetSource');\nconst processColor = require('../StyleSheet/processColor').default;\nconst processColorArray = require('../StyleSheet/processColorArray');\nconst insetsDiffer = require('../Utilities/differ/insetsDiffer');\nconst matricesDiffer = require('../Utilities/differ/matricesDiffer');\nconst pointsDiffer = require('../Utilities/differ/pointsDiffer');\nconst sizesDiffer = require('../Utilities/differ/sizesDiffer');\nconst UIManager = require('./UIManager');\nconst invariant = require('invariant');\n\nfunction getNativeComponentAttributes(uiViewClassName: string): any {\n const viewConfig = UIManager.getViewManagerConfig(uiViewClassName);\n\n invariant(\n viewConfig != null && viewConfig.NativeProps != null,\n 'requireNativeComponent: \"%s\" was not found in the UIManager.',\n uiViewClassName,\n );\n\n // TODO: This seems like a whole lot of runtime initialization for every\n // native component that can be either avoided or simplified.\n let {baseModuleName, bubblingEventTypes, directEventTypes} = viewConfig;\n let nativeProps = viewConfig.NativeProps;\n\n bubblingEventTypes = bubblingEventTypes ?? {};\n directEventTypes = directEventTypes ?? {};\n\n while (baseModuleName) {\n const baseModule = UIManager.getViewManagerConfig(baseModuleName);\n if (!baseModule) {\n baseModuleName = null;\n } else {\n bubblingEventTypes = {\n ...baseModule.bubblingEventTypes,\n ...bubblingEventTypes,\n };\n directEventTypes = {\n ...baseModule.directEventTypes,\n ...directEventTypes,\n };\n nativeProps = {\n ...baseModule.NativeProps,\n ...nativeProps,\n };\n baseModuleName = baseModule.baseModuleName;\n }\n }\n\n const validAttributes: {[string]: mixed} = {};\n\n for (const key in nativeProps) {\n const typeName = nativeProps[key];\n const diff = getDifferForType(typeName);\n const process = getProcessorForType(typeName);\n\n // If diff or process == null, omit the corresponding property from the Attribute\n // Why:\n // 1. Consistency with AttributeType flow type\n // 2. Consistency with Static View Configs, which omit the null properties\n validAttributes[key] =\n diff == null\n ? process == null\n ? true\n : {process}\n : process == null\n ? {diff}\n : {diff, process};\n }\n\n // Unfortunately, the current setup declares style properties as top-level\n // props. This makes it so we allow style properties in the `style` prop.\n // TODO: Move style properties into a `style` prop and disallow them as\n // top-level props on the native side.\n validAttributes.style = ReactNativeStyleAttributes;\n\n Object.assign(viewConfig, {\n uiViewClassName,\n validAttributes,\n bubblingEventTypes,\n directEventTypes,\n });\n\n attachDefaultEventTypes(viewConfig);\n\n return viewConfig;\n}\n\nfunction attachDefaultEventTypes(viewConfig: any) {\n // This is supported on UIManager platforms (ex: Android),\n // as lazy view managers are not implemented for all platforms.\n // See [UIManager] for details on constants and implementations.\n const constants = UIManager.getConstants();\n if (constants.ViewManagerNames || constants.LazyViewManagersEnabled) {\n // Lazy view managers enabled.\n viewConfig = merge(viewConfig, UIManager.getDefaultEventTypes());\n } else {\n viewConfig.bubblingEventTypes = merge(\n viewConfig.bubblingEventTypes,\n constants.genericBubblingEventTypes,\n );\n viewConfig.directEventTypes = merge(\n viewConfig.directEventTypes,\n constants.genericDirectEventTypes,\n );\n }\n}\n\n// TODO: Figure out how to avoid all this runtime initialization cost.\nfunction merge(destination: ?Object, source: ?Object): ?Object {\n if (!source) {\n return destination;\n }\n if (!destination) {\n return source;\n }\n\n for (const key in source) {\n if (!source.hasOwnProperty(key)) {\n continue;\n }\n\n let sourceValue = source[key];\n if (destination.hasOwnProperty(key)) {\n const destinationValue = destination[key];\n if (\n typeof sourceValue === 'object' &&\n typeof destinationValue === 'object'\n ) {\n sourceValue = merge(destinationValue, sourceValue);\n }\n }\n destination[key] = sourceValue;\n }\n return destination;\n}\n\nfunction getDifferForType(\n typeName: string,\n): ?(prevProp: any, nextProp: any) => boolean {\n switch (typeName) {\n // iOS Types\n case 'CATransform3D':\n return matricesDiffer;\n case 'CGPoint':\n return pointsDiffer;\n case 'CGSize':\n return sizesDiffer;\n case 'UIEdgeInsets':\n return insetsDiffer;\n // Android Types\n case 'Point':\n return pointsDiffer;\n case 'EdgeInsets':\n return insetsDiffer;\n }\n return null;\n}\n\nfunction getProcessorForType(typeName: string): ?(nextProp: any) => any {\n switch (typeName) {\n // iOS Types\n case 'CGColor':\n case 'UIColor':\n return processColor;\n case 'CGColorArray':\n case 'UIColorArray':\n return processColorArray;\n case 'CGImage':\n case 'UIImage':\n case 'RCTImageSource':\n return resolveAssetSource;\n // Android Types\n case 'Color':\n return processColor;\n case 'ColorArray':\n return processColorArray;\n case 'ImageSource':\n return resolveAssetSource;\n }\n return null;\n}\n\nmodule.exports = getNativeComponentAttributes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format strict-local\n * @flow\n */\n\nimport type {AnyAttributeType} from '../../Renderer/shims/ReactNativeTypes';\n\nimport processAspectRatio from '../../StyleSheet/processAspectRatio';\nimport processColor from '../../StyleSheet/processColor';\nimport processFontVariant from '../../StyleSheet/processFontVariant';\nimport processTransform from '../../StyleSheet/processTransform';\nimport sizesDiffer from '../../Utilities/differ/sizesDiffer';\n\nconst colorAttributes = {process: processColor};\n\nconst ReactNativeStyleAttributes: {[string]: AnyAttributeType, ...} = {\n /**\n * Layout\n */\n alignContent: true,\n alignItems: true,\n alignSelf: true,\n aspectRatio: {process: processAspectRatio},\n borderBottomWidth: true,\n borderEndWidth: true,\n borderLeftWidth: true,\n borderRightWidth: true,\n borderStartWidth: true,\n borderTopWidth: true,\n columnGap: true,\n borderWidth: true,\n bottom: true,\n direction: true,\n display: true,\n end: true,\n flex: true,\n flexBasis: true,\n flexDirection: true,\n flexGrow: true,\n flexShrink: true,\n flexWrap: true,\n gap: true,\n height: true,\n justifyContent: true,\n left: true,\n margin: true,\n marginBlock: true,\n marginBlockEnd: true,\n marginBlockStart: true,\n marginBottom: true,\n marginEnd: true,\n marginHorizontal: true,\n marginInline: true,\n marginInlineEnd: true,\n marginInlineStart: true,\n marginLeft: true,\n marginRight: true,\n marginStart: true,\n marginTop: true,\n marginVertical: true,\n maxHeight: true,\n maxWidth: true,\n minHeight: true,\n minWidth: true,\n overflow: true,\n padding: true,\n paddingBlock: true,\n paddingBlockEnd: true,\n paddingBlockStart: true,\n paddingBottom: true,\n paddingEnd: true,\n paddingHorizontal: true,\n paddingInline: true,\n paddingInlineEnd: true,\n paddingInlineStart: true,\n paddingLeft: true,\n paddingRight: true,\n paddingStart: true,\n paddingTop: true,\n paddingVertical: true,\n position: true,\n right: true,\n rowGap: true,\n start: true,\n top: true,\n width: true,\n zIndex: true,\n\n /**\n * Shadow\n */\n elevation: true,\n shadowColor: colorAttributes,\n shadowOffset: {diff: sizesDiffer},\n shadowOpacity: true,\n shadowRadius: true,\n\n /**\n * Transform\n */\n transform: {process: processTransform},\n\n /**\n * View\n */\n backfaceVisibility: true,\n backgroundColor: colorAttributes,\n borderBlockColor: colorAttributes,\n borderBlockEndColor: colorAttributes,\n borderBlockStartColor: colorAttributes,\n borderBottomColor: colorAttributes,\n borderBottomEndRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderBottomStartRadius: true,\n borderColor: colorAttributes,\n borderCurve: true,\n borderEndColor: colorAttributes,\n borderEndEndRadius: true,\n borderEndStartRadius: true,\n borderLeftColor: colorAttributes,\n borderRadius: true,\n borderRightColor: colorAttributes,\n borderStartColor: colorAttributes,\n borderStartEndRadius: true,\n borderStartStartRadius: true,\n borderStyle: true,\n borderTopColor: colorAttributes,\n borderTopEndRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderTopStartRadius: true,\n opacity: true,\n pointerEvents: true,\n\n /**\n * Text\n */\n color: colorAttributes,\n fontFamily: true,\n fontSize: true,\n fontStyle: true,\n fontVariant: {process: processFontVariant},\n fontWeight: true,\n includeFontPadding: true,\n letterSpacing: true,\n lineHeight: true,\n textAlign: true,\n textAlignVertical: true,\n textDecorationColor: colorAttributes,\n textDecorationLine: true,\n textDecorationStyle: true,\n textShadowColor: colorAttributes,\n textShadowOffset: true,\n textShadowRadius: true,\n textTransform: true,\n userSelect: true,\n verticalAlign: true,\n writingDirection: true,\n\n /**\n * Image\n */\n overlayColor: colorAttributes,\n resizeMode: true,\n tintColor: colorAttributes,\n objectFit: true,\n};\n\nmodule.exports = ReactNativeStyleAttributes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nconst invariant = require('invariant');\n\nfunction processAspectRatio(aspectRatio?: number | string): ?number {\n if (typeof aspectRatio === 'number') {\n return aspectRatio;\n }\n if (typeof aspectRatio !== 'string') {\n if (__DEV__) {\n invariant(\n !aspectRatio,\n 'aspectRatio must either be a number, a ratio string or `auto`. You passed: %s',\n aspectRatio,\n );\n }\n return;\n }\n\n const matches = aspectRatio.split('/').map(s => s.trim());\n\n if (matches.includes('auto')) {\n if (__DEV__) {\n invariant(\n matches.length,\n 'aspectRatio does not support `auto `. You passed: %s',\n aspectRatio,\n );\n }\n return;\n }\n\n const hasNonNumericValues = matches.some(n => Number.isNaN(Number(n)));\n if (__DEV__) {\n invariant(\n !hasNonNumericValues && (matches.length === 1 || matches.length === 2),\n 'aspectRatio must either be a number, a ratio string or `auto`. You passed: %s',\n aspectRatio,\n );\n }\n\n if (hasNonNumericValues) {\n return;\n }\n\n if (matches.length === 2) {\n return Number(matches[0]) / Number(matches[1]);\n }\n\n return Number(matches[0]);\n}\n\nmodule.exports = processAspectRatio;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n'use strict';\n\nimport type {NativeColorValue} from './PlatformColorValueTypes';\nimport type {ColorValue} from './StyleSheet';\n\nconst Platform = require('../Utilities/Platform');\nconst normalizeColor = require('./normalizeColor');\n\nexport type ProcessedColorValue = number | NativeColorValue;\n\n/* eslint no-bitwise: 0 */\nfunction processColor(color?: ?(number | ColorValue)): ?ProcessedColorValue {\n if (color === undefined || color === null) {\n return color;\n }\n\n let normalizedColor = normalizeColor(color);\n if (normalizedColor === null || normalizedColor === undefined) {\n return undefined;\n }\n\n if (typeof normalizedColor === 'object') {\n const processColorObject =\n require('./PlatformColorValueTypes').processColorObject;\n\n const processedColorObj = processColorObject(normalizedColor);\n\n if (processedColorObj != null) {\n return processedColorObj;\n }\n }\n\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n\n // Converts 0xrrggbbaa into 0xaarrggbb\n normalizedColor = ((normalizedColor << 24) | (normalizedColor >>> 8)) >>> 0;\n\n if (Platform.OS === 'android') {\n // Android use 32 bit *signed* integer to represent the color\n // We utilize the fact that bitwise operations in JS also operates on\n // signed 32 bit integers, so that we can use those to convert from\n // *unsigned* to *signed* 32bit int that way.\n normalizedColor = normalizedColor | 0x0;\n }\n return normalizedColor;\n}\n\nexport default processColor;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n/* eslint no-bitwise: 0 */\n\nimport type {ProcessedColorValue} from './processColor';\nimport type {ColorValue} from './StyleSheet';\n\nimport _normalizeColor from '@react-native/normalize-colors';\n\nfunction normalizeColor(\n color: ?(ColorValue | ProcessedColorValue),\n): ?ProcessedColorValue {\n if (typeof color === 'object' && color != null) {\n const {normalizeColorObject} = require('./PlatformColorValueTypes');\n const normalizedColor = normalizeColorObject(color);\n if (normalizedColor != null) {\n return normalizedColor;\n }\n }\n\n if (typeof color === 'string' || typeof color === 'number') {\n return _normalizeColor(color);\n }\n}\n\nmodule.exports = normalizeColor;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @noflow\n */\n\n/* eslint no-bitwise: 0 */\n\n'use strict';\n\nfunction normalizeColor(color) {\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color;\n }\n return null;\n }\n\n if (typeof color !== 'string') {\n return null;\n }\n\n const matchers = getMatchers();\n let match;\n\n // Ordered based on occurrences on Facebook codebase\n if ((match = matchers.hex6.exec(color))) {\n return parseInt(match[1] + 'ff', 16) >>> 0;\n }\n\n const colorFromKeyword = normalizeKeyword(color);\n if (colorFromKeyword != null) {\n return colorFromKeyword;\n }\n\n if ((match = matchers.rgb.exec(color))) {\n return (\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) | // b\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers.rgba.exec(color))) {\n // rgba(R G B / A) notation\n if (match[6] !== undefined) {\n return (\n ((parse255(match[6]) << 24) | // r\n (parse255(match[7]) << 16) | // g\n (parse255(match[8]) << 8) | // b\n parse1(match[9])) >>> // a\n 0\n );\n }\n\n // rgba(R, G, B, A) notation\n return (\n ((parse255(match[2]) << 24) | // r\n (parse255(match[3]) << 16) | // g\n (parse255(match[4]) << 8) | // b\n parse1(match[5])) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hex3.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n 'ff', // a\n 16,\n ) >>> 0\n );\n }\n\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = matchers.hex8.exec(color))) {\n return parseInt(match[1], 16) >>> 0;\n }\n\n if ((match = matchers.hex4.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n match[4] +\n match[4], // a\n 16,\n ) >>> 0\n );\n }\n\n if ((match = matchers.hsl.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]), // l\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hsla.exec(color))) {\n // hsla(H S L / A) notation\n if (match[6] !== undefined) {\n return (\n (hslToRgb(\n parse360(match[6]), // h\n parsePercentage(match[7]), // s\n parsePercentage(match[8]), // l\n ) |\n parse1(match[9])) >>> // a\n 0\n );\n }\n\n // hsla(H, S, L, A) notation\n return (\n (hslToRgb(\n parse360(match[2]), // h\n parsePercentage(match[3]), // s\n parsePercentage(match[4]), // l\n ) |\n parse1(match[5])) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hwb.exec(color))) {\n return (\n (hwbToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // w\n parsePercentage(match[3]), // b\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n return null;\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n\nfunction hslToRgb(h, s, l) {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n\n return (\n (Math.round(r * 255) << 24) |\n (Math.round(g * 255) << 16) |\n (Math.round(b * 255) << 8)\n );\n}\n\nfunction hwbToRgb(h, w, b) {\n if (w + b >= 1) {\n const gray = Math.round((w * 255) / (w + b));\n\n return (gray << 24) | (gray << 16) | (gray << 8);\n }\n\n const red = hue2rgb(0, 1, h + 1 / 3) * (1 - w - b) + w;\n const green = hue2rgb(0, 1, h) * (1 - w - b) + w;\n const blue = hue2rgb(0, 1, h - 1 / 3) * (1 - w - b) + w;\n\n return (\n (Math.round(red * 255) << 24) |\n (Math.round(green * 255) << 16) |\n (Math.round(blue * 255) << 8)\n );\n}\n\nconst NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nconst PERCENTAGE = NUMBER + '%';\n\nfunction call(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,?\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nfunction callWithSlashSeparator(...args) {\n return (\n '\\\\(\\\\s*(' +\n args.slice(0, args.length - 1).join(')\\\\s*,?\\\\s*(') +\n ')\\\\s*/\\\\s*(' +\n args[args.length - 1] +\n ')\\\\s*\\\\)'\n );\n}\n\nfunction commaSeparatedCall(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nlet cachedMatchers;\n\nfunction getMatchers() {\n if (cachedMatchers === undefined) {\n cachedMatchers = {\n rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)),\n rgba: new RegExp(\n 'rgba(' +\n commaSeparatedCall(NUMBER, NUMBER, NUMBER, NUMBER) +\n '|' +\n callWithSlashSeparator(NUMBER, NUMBER, NUMBER, NUMBER) +\n ')',\n ),\n hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hsla: new RegExp(\n 'hsla(' +\n commaSeparatedCall(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +\n '|' +\n callWithSlashSeparator(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +\n ')',\n ),\n hwb: new RegExp('hwb' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#([0-9a-fA-F]{6})$/,\n hex8: /^#([0-9a-fA-F]{8})$/,\n };\n }\n return cachedMatchers;\n}\n\nfunction parse255(str) {\n const int = parseInt(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 255) {\n return 255;\n }\n return int;\n}\n\nfunction parse360(str) {\n const int = parseFloat(str);\n return (((int % 360) + 360) % 360) / 360;\n}\n\nfunction parse1(str) {\n const num = parseFloat(str);\n if (num < 0) {\n return 0;\n }\n if (num > 1) {\n return 255;\n }\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n // parseFloat conveniently ignores the final %\n const int = parseFloat(str);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\n\nfunction normalizeKeyword(name) {\n // prettier-ignore\n switch (name) {\n case 'transparent': return 0x00000000;\n // http://www.w3.org/TR/css3-color/#svg-color\n case 'aliceblue': return 0xf0f8ffff;\n case 'antiquewhite': return 0xfaebd7ff;\n case 'aqua': return 0x00ffffff;\n case 'aquamarine': return 0x7fffd4ff;\n case 'azure': return 0xf0ffffff;\n case 'beige': return 0xf5f5dcff;\n case 'bisque': return 0xffe4c4ff;\n case 'black': return 0x000000ff;\n case 'blanchedalmond': return 0xffebcdff;\n case 'blue': return 0x0000ffff;\n case 'blueviolet': return 0x8a2be2ff;\n case 'brown': return 0xa52a2aff;\n case 'burlywood': return 0xdeb887ff;\n case 'burntsienna': return 0xea7e5dff;\n case 'cadetblue': return 0x5f9ea0ff;\n case 'chartreuse': return 0x7fff00ff;\n case 'chocolate': return 0xd2691eff;\n case 'coral': return 0xff7f50ff;\n case 'cornflowerblue': return 0x6495edff;\n case 'cornsilk': return 0xfff8dcff;\n case 'crimson': return 0xdc143cff;\n case 'cyan': return 0x00ffffff;\n case 'darkblue': return 0x00008bff;\n case 'darkcyan': return 0x008b8bff;\n case 'darkgoldenrod': return 0xb8860bff;\n case 'darkgray': return 0xa9a9a9ff;\n case 'darkgreen': return 0x006400ff;\n case 'darkgrey': return 0xa9a9a9ff;\n case 'darkkhaki': return 0xbdb76bff;\n case 'darkmagenta': return 0x8b008bff;\n case 'darkolivegreen': return 0x556b2fff;\n case 'darkorange': return 0xff8c00ff;\n case 'darkorchid': return 0x9932ccff;\n case 'darkred': return 0x8b0000ff;\n case 'darksalmon': return 0xe9967aff;\n case 'darkseagreen': return 0x8fbc8fff;\n case 'darkslateblue': return 0x483d8bff;\n case 'darkslategray': return 0x2f4f4fff;\n case 'darkslategrey': return 0x2f4f4fff;\n case 'darkturquoise': return 0x00ced1ff;\n case 'darkviolet': return 0x9400d3ff;\n case 'deeppink': return 0xff1493ff;\n case 'deepskyblue': return 0x00bfffff;\n case 'dimgray': return 0x696969ff;\n case 'dimgrey': return 0x696969ff;\n case 'dodgerblue': return 0x1e90ffff;\n case 'firebrick': return 0xb22222ff;\n case 'floralwhite': return 0xfffaf0ff;\n case 'forestgreen': return 0x228b22ff;\n case 'fuchsia': return 0xff00ffff;\n case 'gainsboro': return 0xdcdcdcff;\n case 'ghostwhite': return 0xf8f8ffff;\n case 'gold': return 0xffd700ff;\n case 'goldenrod': return 0xdaa520ff;\n case 'gray': return 0x808080ff;\n case 'green': return 0x008000ff;\n case 'greenyellow': return 0xadff2fff;\n case 'grey': return 0x808080ff;\n case 'honeydew': return 0xf0fff0ff;\n case 'hotpink': return 0xff69b4ff;\n case 'indianred': return 0xcd5c5cff;\n case 'indigo': return 0x4b0082ff;\n case 'ivory': return 0xfffff0ff;\n case 'khaki': return 0xf0e68cff;\n case 'lavender': return 0xe6e6faff;\n case 'lavenderblush': return 0xfff0f5ff;\n case 'lawngreen': return 0x7cfc00ff;\n case 'lemonchiffon': return 0xfffacdff;\n case 'lightblue': return 0xadd8e6ff;\n case 'lightcoral': return 0xf08080ff;\n case 'lightcyan': return 0xe0ffffff;\n case 'lightgoldenrodyellow': return 0xfafad2ff;\n case 'lightgray': return 0xd3d3d3ff;\n case 'lightgreen': return 0x90ee90ff;\n case 'lightgrey': return 0xd3d3d3ff;\n case 'lightpink': return 0xffb6c1ff;\n case 'lightsalmon': return 0xffa07aff;\n case 'lightseagreen': return 0x20b2aaff;\n case 'lightskyblue': return 0x87cefaff;\n case 'lightslategray': return 0x778899ff;\n case 'lightslategrey': return 0x778899ff;\n case 'lightsteelblue': return 0xb0c4deff;\n case 'lightyellow': return 0xffffe0ff;\n case 'lime': return 0x00ff00ff;\n case 'limegreen': return 0x32cd32ff;\n case 'linen': return 0xfaf0e6ff;\n case 'magenta': return 0xff00ffff;\n case 'maroon': return 0x800000ff;\n case 'mediumaquamarine': return 0x66cdaaff;\n case 'mediumblue': return 0x0000cdff;\n case 'mediumorchid': return 0xba55d3ff;\n case 'mediumpurple': return 0x9370dbff;\n case 'mediumseagreen': return 0x3cb371ff;\n case 'mediumslateblue': return 0x7b68eeff;\n case 'mediumspringgreen': return 0x00fa9aff;\n case 'mediumturquoise': return 0x48d1ccff;\n case 'mediumvioletred': return 0xc71585ff;\n case 'midnightblue': return 0x191970ff;\n case 'mintcream': return 0xf5fffaff;\n case 'mistyrose': return 0xffe4e1ff;\n case 'moccasin': return 0xffe4b5ff;\n case 'navajowhite': return 0xffdeadff;\n case 'navy': return 0x000080ff;\n case 'oldlace': return 0xfdf5e6ff;\n case 'olive': return 0x808000ff;\n case 'olivedrab': return 0x6b8e23ff;\n case 'orange': return 0xffa500ff;\n case 'orangered': return 0xff4500ff;\n case 'orchid': return 0xda70d6ff;\n case 'palegoldenrod': return 0xeee8aaff;\n case 'palegreen': return 0x98fb98ff;\n case 'paleturquoise': return 0xafeeeeff;\n case 'palevioletred': return 0xdb7093ff;\n case 'papayawhip': return 0xffefd5ff;\n case 'peachpuff': return 0xffdab9ff;\n case 'peru': return 0xcd853fff;\n case 'pink': return 0xffc0cbff;\n case 'plum': return 0xdda0ddff;\n case 'powderblue': return 0xb0e0e6ff;\n case 'purple': return 0x800080ff;\n case 'rebeccapurple': return 0x663399ff;\n case 'red': return 0xff0000ff;\n case 'rosybrown': return 0xbc8f8fff;\n case 'royalblue': return 0x4169e1ff;\n case 'saddlebrown': return 0x8b4513ff;\n case 'salmon': return 0xfa8072ff;\n case 'sandybrown': return 0xf4a460ff;\n case 'seagreen': return 0x2e8b57ff;\n case 'seashell': return 0xfff5eeff;\n case 'sienna': return 0xa0522dff;\n case 'silver': return 0xc0c0c0ff;\n case 'skyblue': return 0x87ceebff;\n case 'slateblue': return 0x6a5acdff;\n case 'slategray': return 0x708090ff;\n case 'slategrey': return 0x708090ff;\n case 'snow': return 0xfffafaff;\n case 'springgreen': return 0x00ff7fff;\n case 'steelblue': return 0x4682b4ff;\n case 'tan': return 0xd2b48cff;\n case 'teal': return 0x008080ff;\n case 'thistle': return 0xd8bfd8ff;\n case 'tomato': return 0xff6347ff;\n case 'turquoise': return 0x40e0d0ff;\n case 'violet': return 0xee82eeff;\n case 'wheat': return 0xf5deb3ff;\n case 'white': return 0xffffffff;\n case 'whitesmoke': return 0xf5f5f5ff;\n case 'yellow': return 0xffff00ff;\n case 'yellowgreen': return 0x9acd32ff;\n }\n return null;\n}\n\nmodule.exports = normalizeColor;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {ProcessedColorValue} from './processColor';\nimport type {ColorValue} from './StyleSheet';\n\nexport opaque type NativeColorValue = {\n resource_paths?: Array,\n};\n\nexport const PlatformColor = (...names: Array): ColorValue => {\n return {resource_paths: names};\n};\n\nexport const normalizeColorObject = (\n color: NativeColorValue,\n): ?ProcessedColorValue => {\n if ('resource_paths' in color) {\n return color;\n }\n return null;\n};\n\nexport const processColorObject = (\n color: NativeColorValue,\n): ?NativeColorValue => {\n return color;\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nimport type {____FontVariantArray_Internal} from './StyleSheetTypes';\n\nfunction processFontVariant(\n fontVariant: ____FontVariantArray_Internal | string,\n): ?____FontVariantArray_Internal {\n if (Array.isArray(fontVariant)) {\n return fontVariant;\n }\n\n // $FlowFixMe[incompatible-type]\n const match: ?____FontVariantArray_Internal = fontVariant\n .split(' ')\n .filter(Boolean);\n\n return match;\n}\n\nmodule.exports = processFontVariant;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nconst stringifySafe = require('../Utilities/stringifySafe').default;\nconst invariant = require('invariant');\n\n/**\n * Generate a transform matrix based on the provided transforms, and use that\n * within the style object instead.\n *\n * This allows us to provide an API that is similar to CSS, where transforms may\n * be applied in an arbitrary order, and yet have a universal, singular\n * interface to native code.\n */\nfunction processTransform(\n transform: Array | string,\n): Array | Array {\n if (typeof transform === 'string') {\n const regex = new RegExp(/(\\w+)\\(([^)]+)\\)/g);\n let transformArray: Array = [];\n let matches;\n\n while ((matches = regex.exec(transform))) {\n const {key, value} = _getKeyAndValueFromCSSTransform(\n matches[1],\n matches[2],\n );\n\n if (value !== undefined) {\n transformArray.push({[key]: value});\n }\n }\n transform = transformArray;\n }\n\n if (__DEV__) {\n _validateTransforms(transform);\n }\n\n return transform;\n}\n\nconst _getKeyAndValueFromCSSTransform: (\n key:\n | string\n | $TEMPORARY$string<'matrix'>\n | $TEMPORARY$string<'perspective'>\n | $TEMPORARY$string<'rotate'>\n | $TEMPORARY$string<'rotateX'>\n | $TEMPORARY$string<'rotateY'>\n | $TEMPORARY$string<'rotateZ'>\n | $TEMPORARY$string<'scale'>\n | $TEMPORARY$string<'scaleX'>\n | $TEMPORARY$string<'scaleY'>\n | $TEMPORARY$string<'skewX'>\n | $TEMPORARY$string<'skewY'>\n | $TEMPORARY$string<'translate'>\n | $TEMPORARY$string<'translate3d'>\n | $TEMPORARY$string<'translateX'>\n | $TEMPORARY$string<'translateY'>,\n args: string,\n) => {key: string, value?: number[] | number | string} = (key, args) => {\n const argsWithUnitsRegex = new RegExp(/([+-]?\\d+(\\.\\d+)?)([a-zA-Z]+)?/g);\n\n switch (key) {\n case 'matrix':\n return {key, value: args.match(/[+-]?\\d+(\\.\\d+)?/g)?.map(Number)};\n case 'translate':\n case 'translate3d':\n const parsedArgs = [];\n let missingUnitOfMeasurement = false;\n\n let matches;\n while ((matches = argsWithUnitsRegex.exec(args))) {\n const value = Number(matches[1]);\n const unitOfMeasurement = matches[3];\n\n if (value !== 0 && !unitOfMeasurement) {\n missingUnitOfMeasurement = true;\n }\n\n parsedArgs.push(value);\n }\n\n if (__DEV__) {\n invariant(\n !missingUnitOfMeasurement,\n `Transform with key ${key} must have units unless the provided value is 0, found %s`,\n `${key}(${args})`,\n );\n\n if (key === 'translate') {\n invariant(\n parsedArgs?.length === 1 || parsedArgs?.length === 2,\n 'Transform with key translate must be an string with 1 or 2 parameters, found %s: %s',\n parsedArgs?.length,\n `${key}(${args})`,\n );\n } else {\n invariant(\n parsedArgs?.length === 3,\n 'Transform with key translate3d must be an string with 3 parameters, found %s: %s',\n parsedArgs?.length,\n `${key}(${args})`,\n );\n }\n }\n\n if (parsedArgs?.length === 1) {\n parsedArgs.push(0);\n }\n\n return {key: 'translate', value: parsedArgs};\n case 'translateX':\n case 'translateY':\n case 'perspective':\n const argMatches = argsWithUnitsRegex.exec(args);\n\n if (!argMatches?.length) {\n return {key, value: undefined};\n }\n\n const value = Number(argMatches[1]);\n const unitOfMeasurement = argMatches[3];\n\n if (__DEV__) {\n invariant(\n value === 0 || unitOfMeasurement,\n `Transform with key ${key} must have units unless the provided value is 0, found %s`,\n `${key}(${args})`,\n );\n }\n\n return {key, value};\n\n default:\n return {key, value: !isNaN(args) ? Number(args) : args};\n }\n};\n\nfunction _validateTransforms(transform: Array): void {\n transform.forEach(transformation => {\n const keys = Object.keys(transformation);\n invariant(\n keys.length === 1,\n 'You must specify exactly one property per transform object. Passed properties: %s',\n stringifySafe(transformation),\n );\n const key = keys[0];\n const value = transformation[key];\n _validateTransform(key, value, transformation);\n });\n}\n\nfunction _validateTransform(\n key:\n | string\n | $TEMPORARY$string<'matrix'>\n | $TEMPORARY$string<'perspective'>\n | $TEMPORARY$string<'rotate'>\n | $TEMPORARY$string<'rotateX'>\n | $TEMPORARY$string<'rotateY'>\n | $TEMPORARY$string<'rotateZ'>\n | $TEMPORARY$string<'scale'>\n | $TEMPORARY$string<'scaleX'>\n | $TEMPORARY$string<'scaleY'>\n | $TEMPORARY$string<'skewX'>\n | $TEMPORARY$string<'skewY'>\n | $TEMPORARY$string<'translate'>\n | $TEMPORARY$string<'translateX'>\n | $TEMPORARY$string<'translateY'>,\n value: any | number | string,\n transformation: any,\n) {\n invariant(\n !value.getValue,\n 'You passed an Animated.Value to a normal component. ' +\n 'You need to wrap that component in an Animated. For example, ' +\n 'replace by .',\n );\n\n const multivalueTransforms = ['matrix', 'translate'];\n if (multivalueTransforms.indexOf(key) !== -1) {\n invariant(\n Array.isArray(value),\n 'Transform with key of %s must have an array as the value: %s',\n key,\n stringifySafe(transformation),\n );\n }\n switch (key) {\n case 'matrix':\n invariant(\n value.length === 9 || value.length === 16,\n 'Matrix transform must have a length of 9 (2d) or 16 (3d). ' +\n 'Provided matrix has a length of %s: %s',\n /* $FlowFixMe[prop-missing] (>=0.84.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.84 was deployed. To\n * see the error, delete this comment and run Flow. */\n value.length,\n stringifySafe(transformation),\n );\n break;\n case 'translate':\n invariant(\n value.length === 2 || value.length === 3,\n 'Transform with key translate must be an array of length 2 or 3, found %s: %s',\n /* $FlowFixMe[prop-missing] (>=0.84.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.84 was deployed. To\n * see the error, delete this comment and run Flow. */\n value.length,\n stringifySafe(transformation),\n );\n break;\n case 'rotateX':\n case 'rotateY':\n case 'rotateZ':\n case 'rotate':\n case 'skewX':\n case 'skewY':\n invariant(\n typeof value === 'string',\n 'Transform with key of \"%s\" must be a string: %s',\n key,\n stringifySafe(transformation),\n );\n invariant(\n value.indexOf('deg') > -1 || value.indexOf('rad') > -1,\n 'Rotate transform must be expressed in degrees (deg) or radians ' +\n '(rad): %s',\n stringifySafe(transformation),\n );\n break;\n case 'perspective':\n invariant(\n typeof value === 'number',\n 'Transform with key of \"%s\" must be a number: %s',\n key,\n stringifySafe(transformation),\n );\n invariant(\n value !== 0,\n 'Transform with key of \"%s\" cannot be zero: %s',\n key,\n stringifySafe(transformation),\n );\n break;\n case 'translateX':\n case 'translateY':\n case 'scale':\n case 'scaleX':\n case 'scaleY':\n invariant(\n typeof value === 'number',\n 'Transform with key of \"%s\" must be a number: %s',\n key,\n stringifySafe(transformation),\n );\n break;\n default:\n invariant(\n false,\n 'Invalid transform %s: %s',\n key,\n stringifySafe(transformation),\n );\n }\n}\n\nmodule.exports = processTransform;\n","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nconst dummySize = {width: undefined, height: undefined};\ntype Size = {width: ?number, height: ?number};\n\nconst sizesDiffer = function (one: Size, two: Size): boolean {\n const defaultedOne = one || dummySize;\n const defaultedTwo = two || dummySize;\n return (\n defaultedOne !== defaultedTwo &&\n (defaultedOne.width !== defaultedTwo.width ||\n defaultedOne.height !== defaultedTwo.height)\n );\n};\n\nmodule.exports = sizesDiffer;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\n/**\n * Unrolls an array comparison specially for matrices. Prioritizes\n * checking of indices that are most likely to change so that the comparison\n * bails as early as possible.\n *\n * @param {MatrixMath.Matrix} one First matrix.\n * @param {MatrixMath.Matrix} two Second matrix.\n * @return {boolean} Whether or not the two matrices differ.\n */\nconst matricesDiffer = function (\n one: ?Array,\n two: ?Array,\n): boolean {\n if (one === two) {\n return false;\n }\n return (\n !one ||\n !two ||\n one[12] !== two[12] ||\n one[13] !== two[13] ||\n one[14] !== two[14] ||\n one[5] !== two[5] ||\n one[10] !== two[10] ||\n one[0] !== two[0] ||\n one[1] !== two[1] ||\n one[2] !== two[2] ||\n one[3] !== two[3] ||\n one[4] !== two[4] ||\n one[6] !== two[6] ||\n one[7] !== two[7] ||\n one[8] !== two[8] ||\n one[9] !== two[9] ||\n one[11] !== two[11] ||\n one[15] !== two[15]\n );\n};\n\nmodule.exports = matricesDiffer;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\ntype Point = {\n x: ?number,\n y: ?number,\n ...\n};\n\nconst dummyPoint = {x: undefined, y: undefined};\n\nconst pointsDiffer = function (one: ?Point, two: ?Point): boolean {\n one = one || dummyPoint;\n two = two || dummyPoint;\n return one !== two && (one.x !== two.x || one.y !== two.y);\n};\n\nmodule.exports = pointsDiffer;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\ntype Inset = {\n top: ?number,\n left: ?number,\n right: ?number,\n bottom: ?number,\n ...\n};\n\nconst dummyInsets = {\n top: undefined,\n left: undefined,\n right: undefined,\n bottom: undefined,\n};\n\nconst insetsDiffer = function (one: Inset, two: Inset): boolean {\n one = one || dummyInsets;\n two = two || dummyInsets;\n return (\n one !== two &&\n (one.top !== two.top ||\n one.left !== two.left ||\n one.right !== two.right ||\n one.bottom !== two.bottom)\n );\n};\n\nmodule.exports = insetsDiffer;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n'use strict';\n\nimport type {ColorValue} from './StyleSheet';\n\nimport processColor, {type ProcessedColorValue} from './processColor';\n\nconst TRANSPARENT = 0; // rgba(0, 0, 0, 0)\n\nfunction processColorArray(\n colors: ?$ReadOnlyArray,\n): ?$ReadOnlyArray {\n return colors == null ? null : colors.map(processColorElement);\n}\n\nfunction processColorElement(color: ColorValue): ProcessedColorValue {\n const value = processColor(color);\n // For invalid colors, fallback to transparent.\n if (value == null) {\n console.error('Invalid value in color array:', color);\n return TRANSPARENT;\n }\n return value;\n}\n\nmodule.exports = processColorArray;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n// Resolves an asset into a `source` for `Image`.\n\n'use strict';\n\nimport type {ResolvedAssetSource} from './AssetSourceResolver';\n\nconst AssetSourceResolver = require('./AssetSourceResolver');\nconst {pickScale} = require('./AssetUtils');\nconst AssetRegistry = require('@react-native/assets-registry/registry');\n\nlet _customSourceTransformer, _serverURL, _scriptURL;\n\nlet _sourceCodeScriptURL: ?string;\nfunction getSourceCodeScriptURL(): ?string {\n if (_sourceCodeScriptURL) {\n return _sourceCodeScriptURL;\n }\n\n let sourceCode =\n global.nativeExtensions && global.nativeExtensions.SourceCode;\n if (!sourceCode) {\n sourceCode = require('../NativeModules/specs/NativeSourceCode').default;\n }\n _sourceCodeScriptURL = sourceCode.getConstants().scriptURL;\n return _sourceCodeScriptURL;\n}\n\nfunction getDevServerURL(): ?string {\n if (_serverURL === undefined) {\n const sourceCodeScriptURL = getSourceCodeScriptURL();\n const match =\n sourceCodeScriptURL && sourceCodeScriptURL.match(/^https?:\\/\\/.*?\\//);\n if (match) {\n // jsBundle was loaded from network\n _serverURL = match[0];\n } else {\n // jsBundle was loaded from file\n _serverURL = null;\n }\n }\n return _serverURL;\n}\n\nfunction _coerceLocalScriptURL(scriptURL: ?string): ?string {\n if (scriptURL) {\n if (scriptURL.startsWith('assets://')) {\n // android: running from within assets, no offline path to use\n return null;\n }\n scriptURL = scriptURL.substring(0, scriptURL.lastIndexOf('/') + 1);\n if (!scriptURL.includes('://')) {\n // Add file protocol in case we have an absolute file path and not a URL.\n // This shouldn't really be necessary. scriptURL should be a URL.\n scriptURL = 'file://' + scriptURL;\n }\n }\n return scriptURL;\n}\n\nfunction getScriptURL(): ?string {\n if (_scriptURL === undefined) {\n _scriptURL = _coerceLocalScriptURL(getSourceCodeScriptURL());\n }\n return _scriptURL;\n}\n\nfunction setCustomSourceTransformer(\n transformer: (resolver: AssetSourceResolver) => ResolvedAssetSource,\n): void {\n _customSourceTransformer = transformer;\n}\n\n/**\n * `source` is either a number (opaque type returned by require('./foo.png'))\n * or an `ImageSource` like { uri: '' }\n */\nfunction resolveAssetSource(source: any): ?ResolvedAssetSource {\n if (typeof source === 'object') {\n return source;\n }\n\n const asset = AssetRegistry.getAssetByID(source);\n if (!asset) {\n return null;\n }\n\n const resolver = new AssetSourceResolver(\n getDevServerURL(),\n getScriptURL(),\n asset,\n );\n if (_customSourceTransformer) {\n return _customSourceTransformer(resolver);\n }\n return resolver.defaultAsset();\n}\n\nresolveAssetSource.pickScale = pickScale;\nresolveAssetSource.setCustomSourceTransformer = setCustomSourceTransformer;\nmodule.exports = resolveAssetSource;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n scriptURL: string,\n |};\n}\n\nconst NativeModule = TurboModuleRegistry.getEnforcing('SourceCode');\nlet constants = null;\n\nconst NativeSourceCode = {\n getConstants(): {|\n scriptURL: string,\n |} {\n if (constants == null) {\n constants = NativeModule.getConstants();\n }\n\n return constants;\n },\n};\n\nexport default NativeSourceCode;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nexport type PackagerAsset = {\n +__packager_asset: boolean,\n +fileSystemLocation: string,\n +httpServerLocation: string,\n +width: ?number,\n +height: ?number,\n +scales: Array,\n +hash: string,\n +name: string,\n +type: string,\n ...\n};\n\nconst assets: Array = [];\n\nfunction registerAsset(asset: PackagerAsset): number {\n // `push` returns new array length, so the first asset will\n // get id 1 (not 0) to make the value truthy\n return assets.push(asset);\n}\n\nfunction getAssetByID(assetId: number): PackagerAsset {\n return assets[assetId - 1];\n}\n\nmodule.exports = {registerAsset, getAssetByID};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nexport type ResolvedAssetSource = {|\n +__packager_asset: boolean,\n +width: ?number,\n +height: ?number,\n +uri: string,\n +scale: number,\n|};\n\nimport type {PackagerAsset} from '@react-native/assets-registry/registry';\n\nconst PixelRatio = require('../Utilities/PixelRatio').default;\nconst Platform = require('../Utilities/Platform');\nconst {pickScale} = require('./AssetUtils');\nconst {\n getAndroidResourceFolderName,\n getAndroidResourceIdentifier,\n getBasePath,\n} = require('@react-native/assets-registry/path-support');\nconst invariant = require('invariant');\n\n/**\n * Returns a path like 'assets/AwesomeModule/icon@2x.png'\n */\nfunction getScaledAssetPath(asset: PackagerAsset): string {\n const scale = pickScale(asset.scales, PixelRatio.get());\n const scaleSuffix = scale === 1 ? '' : '@' + scale + 'x';\n const assetDir = getBasePath(asset);\n return assetDir + '/' + asset.name + scaleSuffix + '.' + asset.type;\n}\n\n/**\n * Returns a path like 'drawable-mdpi/icon.png'\n */\nfunction getAssetPathInDrawableFolder(asset: PackagerAsset): string {\n const scale = pickScale(asset.scales, PixelRatio.get());\n const drawableFolder = getAndroidResourceFolderName(asset, scale);\n const fileName = getAndroidResourceIdentifier(asset);\n return drawableFolder + '/' + fileName + '.' + asset.type;\n}\n\nclass AssetSourceResolver {\n serverUrl: ?string;\n // where the jsbundle is being run from\n jsbundleUrl: ?string;\n // the asset to resolve\n asset: PackagerAsset;\n\n constructor(serverUrl: ?string, jsbundleUrl: ?string, asset: PackagerAsset) {\n this.serverUrl = serverUrl;\n this.jsbundleUrl = jsbundleUrl;\n this.asset = asset;\n }\n\n isLoadedFromServer(): boolean {\n return !!this.serverUrl;\n }\n\n isLoadedFromFileSystem(): boolean {\n return !!(this.jsbundleUrl && this.jsbundleUrl.startsWith('file://'));\n }\n\n defaultAsset(): ResolvedAssetSource {\n if (this.isLoadedFromServer()) {\n return this.assetServerURL();\n }\n\n if (Platform.OS === 'android') {\n return this.isLoadedFromFileSystem()\n ? this.drawableFolderInBundle()\n : this.resourceIdentifierWithoutScale();\n } else {\n return this.scaledAssetURLNearBundle();\n }\n }\n\n /**\n * Returns an absolute URL which can be used to fetch the asset\n * from the devserver\n */\n assetServerURL(): ResolvedAssetSource {\n invariant(!!this.serverUrl, 'need server to load from');\n return this.fromSource(\n this.serverUrl +\n getScaledAssetPath(this.asset) +\n '?platform=' +\n Platform.OS +\n '&hash=' +\n this.asset.hash,\n );\n }\n\n /**\n * Resolves to just the scaled asset filename\n * E.g. 'assets/AwesomeModule/icon@2x.png'\n */\n scaledAssetPath(): ResolvedAssetSource {\n return this.fromSource(getScaledAssetPath(this.asset));\n }\n\n /**\n * Resolves to where the bundle is running from, with a scaled asset filename\n * E.g. 'file:///sdcard/bundle/assets/AwesomeModule/icon@2x.png'\n */\n scaledAssetURLNearBundle(): ResolvedAssetSource {\n const path = this.jsbundleUrl || 'file://';\n return this.fromSource(\n // Assets can have relative paths outside of the project root.\n // When bundling them we replace `../` with `_` to make sure they\n // don't end up outside of the expected assets directory.\n path + getScaledAssetPath(this.asset).replace(/\\.\\.\\//g, '_'),\n );\n }\n\n /**\n * The default location of assets bundled with the app, located by\n * resource identifier\n * The Android resource system picks the correct scale.\n * E.g. 'assets_awesomemodule_icon'\n */\n resourceIdentifierWithoutScale(): ResolvedAssetSource {\n invariant(\n Platform.OS === 'android',\n 'resource identifiers work on Android',\n );\n return this.fromSource(getAndroidResourceIdentifier(this.asset));\n }\n\n /**\n * If the jsbundle is running from a sideload location, this resolves assets\n * relative to its location\n * E.g. 'file:///sdcard/AwesomeModule/drawable-mdpi/icon.png'\n */\n drawableFolderInBundle(): ResolvedAssetSource {\n const path = this.jsbundleUrl || 'file://';\n return this.fromSource(path + getAssetPathInDrawableFolder(this.asset));\n }\n\n fromSource(source: string): ResolvedAssetSource {\n return {\n __packager_asset: true,\n width: this.asset.width,\n height: this.asset.height,\n uri: source,\n scale: pickScale(this.asset.scales, PixelRatio.get()),\n };\n }\n\n static pickScale: (scales: Array, deviceScale?: number) => number =\n pickScale;\n}\n\nmodule.exports = AssetSourceResolver;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport PixelRatio from '../Utilities/PixelRatio';\n\nlet cacheBreaker;\nlet warnIfCacheBreakerUnset = true;\n\nexport function pickScale(scales: Array, deviceScale?: number): number {\n if (deviceScale == null) {\n deviceScale = PixelRatio.get();\n }\n // Packager guarantees that `scales` array is sorted\n for (let i = 0; i < scales.length; i++) {\n if (scales[i] >= deviceScale) {\n return scales[i];\n }\n }\n\n // If nothing matches, device scale is larger than any available\n // scales, so we return the biggest one. Unless the array is empty,\n // in which case we default to 1\n return scales[scales.length - 1] || 1;\n}\n\nexport function setUrlCacheBreaker(appendage: string) {\n cacheBreaker = appendage;\n}\n\nexport function getUrlCacheBreaker(): string {\n if (cacheBreaker == null) {\n if (__DEV__ && warnIfCacheBreakerUnset) {\n warnIfCacheBreakerUnset = false;\n console.warn(\n 'AssetUtils.getUrlCacheBreaker: Cache breaker value is unset',\n );\n }\n return '';\n }\n return cacheBreaker;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n'use strict';\n\nconst Dimensions = require('./Dimensions').default;\n\n/**\n * PixelRatio class gives access to the device pixel density.\n *\n * ## Fetching a correctly sized image\n *\n * You should get a higher resolution image if you are on a high pixel density\n * device. A good rule of thumb is to multiply the size of the image you display\n * by the pixel ratio.\n *\n * ```\n * var image = getImage({\n * width: PixelRatio.getPixelSizeForLayoutSize(200),\n * height: PixelRatio.getPixelSizeForLayoutSize(100),\n * });\n * \n * ```\n *\n * ## Pixel grid snapping\n *\n * In iOS, you can specify positions and dimensions for elements with arbitrary\n * precision, for example 29.674825. But, ultimately the physical display only\n * have a fixed number of pixels, for example 640Γ—960 for iPhone 4 or 750Γ—1334\n * for iPhone 6. iOS tries to be as faithful as possible to the user value by\n * spreading one original pixel into multiple ones to trick the eye. The\n * downside of this technique is that it makes the resulting element look\n * blurry.\n *\n * In practice, we found out that developers do not want this feature and they\n * have to work around it by doing manual rounding in order to avoid having\n * blurry elements. In React Native, we are rounding all the pixels\n * automatically.\n *\n * We have to be careful when to do this rounding. You never want to work with\n * rounded and unrounded values at the same time as you're going to accumulate\n * rounding errors. Having even one rounding error is deadly because a one\n * pixel border may vanish or be twice as big.\n *\n * In React Native, everything in JavaScript and within the layout engine works\n * with arbitrary precision numbers. It's only when we set the position and\n * dimensions of the native element on the main thread that we round. Also,\n * rounding is done relative to the root rather than the parent, again to avoid\n * accumulating rounding errors.\n *\n */\nclass PixelRatio {\n /**\n * Returns the device pixel density. Some examples:\n *\n * - PixelRatio.get() === 1\n * - mdpi Android devices (160 dpi)\n * - PixelRatio.get() === 1.5\n * - hdpi Android devices (240 dpi)\n * - PixelRatio.get() === 2\n * - iPhone 4, 4S\n * - iPhone 5, 5c, 5s\n * - iPhone 6\n * - iPhone 7\n * - iPhone 8\n * - iPhone SE\n * - xhdpi Android devices (320 dpi)\n * - PixelRatio.get() === 3\n * - iPhone 6 Plus\n * - iPhone 7 Plus\n * - iPhone 8 Plus\n * - iPhone X\n * - xxhdpi Android devices (480 dpi)\n * - PixelRatio.get() === 3.5\n * - Nexus 6\n */\n static get(): number {\n return Dimensions.get('window').scale;\n }\n\n /**\n * Returns the scaling factor for font sizes. This is the ratio that is used to calculate the\n * absolute font size, so any elements that heavily depend on that should use this to do\n * calculations.\n *\n * If a font scale is not set, this returns the device pixel ratio.\n *\n * This reflects the user preference set in:\n * - Settings > Display > Font size on Android,\n * - Settings > Display & Brightness > Text Size on iOS.\n */\n static getFontScale(): number {\n return Dimensions.get('window').fontScale || PixelRatio.get();\n }\n\n /**\n * Converts a layout size (dp) to pixel size (px).\n *\n * Guaranteed to return an integer number.\n */\n static getPixelSizeForLayoutSize(layoutSize: number): number {\n return Math.round(layoutSize * PixelRatio.get());\n }\n\n /**\n * Rounds a layout size (dp) to the nearest layout size that corresponds to\n * an integer number of pixels. For example, on a device with a PixelRatio\n * of 3, `PixelRatio.roundToNearestPixel(8.4) = 8.33`, which corresponds to\n * exactly (8.33 * 3) = 25 pixels.\n */\n static roundToNearestPixel(layoutSize: number): number {\n const ratio = PixelRatio.get();\n return Math.round(layoutSize * ratio) / ratio;\n }\n\n // No-op for iOS, but used on the web. Should not be documented.\n static startDetecting() {}\n}\n\nexport default PixelRatio;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter';\nimport EventEmitter, {\n type EventSubscription,\n} from '../vendor/emitter/EventEmitter';\nimport NativeDeviceInfo, {\n type DimensionsPayload,\n type DisplayMetrics,\n type DisplayMetricsAndroid,\n} from './NativeDeviceInfo';\nimport invariant from 'invariant';\n\nconst eventEmitter = new EventEmitter<{\n change: [DimensionsPayload],\n}>();\nlet dimensionsInitialized = false;\nlet dimensions: DimensionsPayload;\n\nclass Dimensions {\n /**\n * NOTE: `useWindowDimensions` is the preferred API for React components.\n *\n * Initial dimensions are set before `runApplication` is called so they should\n * be available before any other require's are run, but may be updated later.\n *\n * Note: Although dimensions are available immediately, they may change (e.g\n * due to device rotation) so any rendering logic or styles that depend on\n * these constants should try to call this function on every render, rather\n * than caching the value (for example, using inline styles rather than\n * setting a value in a `StyleSheet`).\n *\n * Example: `const {height, width} = Dimensions.get('window');`\n *\n * @param {string} dim Name of dimension as defined when calling `set`.\n * @returns {DisplayMetrics? | DisplayMetricsAndroid?} Value for the dimension.\n */\n static get(dim: string): DisplayMetrics | DisplayMetricsAndroid {\n invariant(dimensions[dim], 'No dimension set for key ' + dim);\n return dimensions[dim];\n }\n\n /**\n * This should only be called from native code by sending the\n * didUpdateDimensions event.\n *\n * @param {DimensionsPayload} dims Simple string-keyed object of dimensions to set\n */\n static set(dims: $ReadOnly): void {\n // We calculate the window dimensions in JS so that we don't encounter loss of\n // precision in transferring the dimensions (which could be non-integers) over\n // the bridge.\n let {screen, window} = dims;\n const {windowPhysicalPixels} = dims;\n if (windowPhysicalPixels) {\n window = {\n width: windowPhysicalPixels.width / windowPhysicalPixels.scale,\n height: windowPhysicalPixels.height / windowPhysicalPixels.scale,\n scale: windowPhysicalPixels.scale,\n fontScale: windowPhysicalPixels.fontScale,\n };\n }\n const {screenPhysicalPixels} = dims;\n if (screenPhysicalPixels) {\n screen = {\n width: screenPhysicalPixels.width / screenPhysicalPixels.scale,\n height: screenPhysicalPixels.height / screenPhysicalPixels.scale,\n scale: screenPhysicalPixels.scale,\n fontScale: screenPhysicalPixels.fontScale,\n };\n } else if (screen == null) {\n screen = window;\n }\n\n dimensions = {window, screen};\n if (dimensionsInitialized) {\n // Don't fire 'change' the first time the dimensions are set.\n eventEmitter.emit('change', dimensions);\n } else {\n dimensionsInitialized = true;\n }\n }\n\n /**\n * Add an event handler. Supported events:\n *\n * - `change`: Fires when a property within the `Dimensions` object changes. The argument\n * to the event handler is an object with `window` and `screen` properties whose values\n * are the same as the return values of `Dimensions.get('window')` and\n * `Dimensions.get('screen')`, respectively.\n */\n static addEventListener(\n type: 'change',\n handler: Function,\n ): EventSubscription {\n invariant(\n type === 'change',\n 'Trying to subscribe to unknown event: \"%s\"',\n type,\n );\n return eventEmitter.addListener(type, handler);\n }\n}\n\nlet initialDims: ?$ReadOnly =\n global.nativeExtensions &&\n global.nativeExtensions.DeviceInfo &&\n global.nativeExtensions.DeviceInfo.Dimensions;\nif (!initialDims) {\n // Subscribe before calling getConstants to make sure we don't miss any updates in between.\n RCTDeviceEventEmitter.addListener(\n 'didUpdateDimensions',\n (update: DimensionsPayload) => {\n Dimensions.set(update);\n },\n );\n initialDims = NativeDeviceInfo.getConstants().Dimensions;\n}\n\nDimensions.set(initialDims);\n\nexport default Dimensions;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport type DisplayMetricsAndroid = {|\n width: number,\n height: number,\n scale: number,\n fontScale: number,\n densityDpi: number,\n|};\n\nexport type DisplayMetrics = {|\n width: number,\n height: number,\n scale: number,\n fontScale: number,\n|};\n\nexport type DimensionsPayload = {|\n window?: DisplayMetrics,\n screen?: DisplayMetrics,\n windowPhysicalPixels?: DisplayMetricsAndroid,\n screenPhysicalPixels?: DisplayMetricsAndroid,\n|};\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n +Dimensions: DimensionsPayload,\n +isIPhoneX_deprecated?: boolean,\n |};\n}\n\nconst NativeModule: Spec = TurboModuleRegistry.getEnforcing('DeviceInfo');\nlet constants = null;\n\nconst NativeDeviceInfo = {\n getConstants(): {|\n +Dimensions: DimensionsPayload,\n +isIPhoneX_deprecated?: boolean,\n |} {\n if (constants == null) {\n constants = NativeModule.getConstants();\n }\n return constants;\n },\n};\n\nexport default NativeDeviceInfo;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nimport type {PackagerAsset} from './registry.js';\n\nconst androidScaleSuffix = {\n '0.75': 'ldpi',\n '1': 'mdpi',\n '1.5': 'hdpi',\n '2': 'xhdpi',\n '3': 'xxhdpi',\n '4': 'xxxhdpi',\n};\n\nconst ANDROID_BASE_DENSITY = 160;\n\n/**\n * FIXME: using number to represent discrete scale numbers is fragile in essence because of\n * floating point numbers imprecision.\n */\nfunction getAndroidAssetSuffix(scale: number): string {\n if (scale.toString() in androidScaleSuffix) {\n return androidScaleSuffix[scale.toString()];\n }\n // NOTE: Android Gradle Plugin does not fully support the nnndpi format.\n // See https://issuetracker.google.com/issues/72884435\n if (Number.isFinite(scale) && scale > 0) {\n return Math.round(scale * ANDROID_BASE_DENSITY) + 'dpi';\n }\n throw new Error('no such scale ' + scale.toString());\n}\n\n// See https://developer.android.com/guide/topics/resources/drawable-resource.html\nconst drawableFileTypes = new Set([\n 'gif',\n 'jpeg',\n 'jpg',\n 'ktx',\n 'png',\n 'svg',\n 'webp',\n 'xml',\n]);\n\nfunction getAndroidResourceFolderName(\n asset: PackagerAsset,\n scale: number,\n): string | $TEMPORARY$string<'raw'> {\n if (!drawableFileTypes.has(asset.type)) {\n return 'raw';\n }\n const suffix = getAndroidAssetSuffix(scale);\n if (!suffix) {\n throw new Error(\n \"Don't know which android drawable suffix to use for scale: \" +\n scale +\n '\\nAsset: ' +\n JSON.stringify(asset, null, '\\t') +\n '\\nPossible scales are:' +\n JSON.stringify(androidScaleSuffix, null, '\\t'),\n );\n }\n return 'drawable-' + suffix;\n}\n\nfunction getAndroidResourceIdentifier(asset: PackagerAsset): string {\n return (getBasePath(asset) + '/' + asset.name)\n .toLowerCase()\n .replace(/\\//g, '_') // Encode folder structure in file name\n .replace(/([^a-z0-9_])/g, '') // Remove illegal chars\n .replace(/^assets_/, ''); // Remove \"assets_\" prefix\n}\n\nfunction getBasePath(asset: PackagerAsset): string {\n const basePath = asset.httpServerLocation;\n return basePath.startsWith('/') ? basePath.substr(1) : basePath;\n}\n\nmodule.exports = {\n getAndroidResourceFolderName,\n getAndroidResourceIdentifier,\n getBasePath,\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @noformat\n * @flow strict-local\n * @generated SignedSource<<47ba85d7f43c9b591d6804827322d00e>>\n *\n * This file was sync'd from the facebook/react repository.\n */\n\n'use strict';\n\nimport {type ViewConfig} from './ReactNativeTypes';\nimport invariant from 'invariant';\n\n// Event configs\nconst customBubblingEventTypes: {\n [eventName: string]: $ReadOnly<{\n phasedRegistrationNames: $ReadOnly<{\n captured: string,\n bubbled: string,\n skipBubbling?: ?boolean,\n }>,\n }>,\n ...\n} = {};\nconst customDirectEventTypes: {\n [eventName: string]: $ReadOnly<{\n registrationName: string,\n }>,\n ...\n} = {};\n\nexports.customBubblingEventTypes = customBubblingEventTypes;\nexports.customDirectEventTypes = customDirectEventTypes;\n\nconst viewConfigCallbacks = new Map ViewConfig>();\nconst viewConfigs = new Map();\n\nfunction processEventTypes(viewConfig: ViewConfig): void {\n const {bubblingEventTypes, directEventTypes} = viewConfig;\n\n if (__DEV__) {\n if (bubblingEventTypes != null && directEventTypes != null) {\n for (const topLevelType in directEventTypes) {\n invariant(\n bubblingEventTypes[topLevelType] == null,\n 'Event cannot be both direct and bubbling: %s',\n topLevelType,\n );\n }\n }\n }\n\n if (bubblingEventTypes != null) {\n for (const topLevelType in bubblingEventTypes) {\n if (customBubblingEventTypes[topLevelType] == null) {\n customBubblingEventTypes[topLevelType] =\n bubblingEventTypes[topLevelType];\n }\n }\n }\n\n if (directEventTypes != null) {\n for (const topLevelType in directEventTypes) {\n if (customDirectEventTypes[topLevelType] == null) {\n customDirectEventTypes[topLevelType] = directEventTypes[topLevelType];\n }\n }\n }\n}\n\n/**\n * Registers a native view/component by name.\n * A callback is provided to load the view config from UIManager.\n * The callback is deferred until the view is actually rendered.\n */\nexports.register = function (name: string, callback: () => ViewConfig): string {\n invariant(\n !viewConfigCallbacks.has(name),\n 'Tried to register two views with the same name %s',\n name,\n );\n invariant(\n typeof callback === 'function',\n 'View config getter callback for component `%s` must be a function (received `%s`)',\n name,\n callback === null ? 'null' : typeof callback,\n );\n viewConfigCallbacks.set(name, callback);\n return name;\n};\n\n/**\n * Retrieves a config for the specified view.\n * If this is the first time the view has been used,\n * This configuration will be lazy-loaded from UIManager.\n */\nexports.get = function (name: string): ViewConfig {\n let viewConfig;\n if (!viewConfigs.has(name)) {\n const callback = viewConfigCallbacks.get(name);\n if (typeof callback !== 'function') {\n invariant(\n false,\n 'View config getter callback for component `%s` must be a function (received `%s`).%s',\n name,\n callback === null ? 'null' : typeof callback,\n typeof name[0] === 'string' && /[a-z]/.test(name[0])\n ? ' Make sure to start component names with a capital letter.'\n : '',\n );\n }\n viewConfig = callback();\n processEventTypes(viewConfig);\n viewConfigs.set(name, viewConfig);\n\n // Clear the callback after the config is set so that\n // we don't mask any errors during registration.\n viewConfigCallbacks.set(name, null);\n } else {\n viewConfig = viewConfigs.get(name);\n }\n invariant(viewConfig, 'View config not found for name %s', name);\n return viewConfig;\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport PlatformBaseViewConfig from '../NativeComponent/PlatformBaseViewConfig';\nimport {type ViewConfig} from '../Renderer/shims/ReactNativeTypes';\n\nconst IGNORED_KEYS = ['transform', 'hitSlop'];\n\n/**\n * The purpose of this function is to validate that the view config that\n * native exposes for a given view manager is the same as the view config\n * that is specified for that view manager in JS.\n *\n * In order to improve perf, we want to avoid calling into native to get\n * the view config when each view manager is used. To do this, we are moving\n * the configs to JS. In the future we will use these JS based view configs\n * to codegen the view manager on native to ensure they stay in sync without\n * this runtime check.\n *\n * If this function fails, that likely means a change was made to the native\n * view manager without updating the JS config as well. Ideally you can make\n * that direct change to the JS config. If you don't know what the differences\n * are, the best approach I've found is to create a view that prints\n * the return value of getNativeComponentAttributes, and then copying that\n * text and pasting it back into JS:\n * {JSON.stringify(getNativeComponentAttributes('RCTView'))}\n *\n * This is meant to be a stopgap until the time comes when we only have a\n * single source of truth. I wonder if this message will still be here two\n * years from now...\n */\nexport default function verifyComponentAttributeEquivalence(\n nativeViewConfig: ViewConfig,\n staticViewConfig: ViewConfig,\n) {\n for (const prop of [\n 'validAttributes',\n 'bubblingEventTypes',\n 'directEventTypes',\n ]) {\n const diff = Object.keys(\n lefthandObjectDiff(nativeViewConfig[prop], staticViewConfig[prop]),\n );\n\n if (diff.length > 0) {\n const name =\n staticViewConfig.uiViewClassName ?? nativeViewConfig.uiViewClassName;\n console.error(\n `'${name}' has a view config that does not match native. ` +\n `'${prop}' is missing: ${diff.join(', ')}`,\n );\n }\n }\n}\n\n// Return the different key-value pairs of the right object, by iterating through the keys in the left object\n// Note it won't return a difference where a key is missing in the left but exists the right.\nfunction lefthandObjectDiff(leftObj: Object, rightObj: Object): Object {\n const differentKeys: {[string]: any | {...}} = {};\n\n function compare(leftItem: any, rightItem: any, key: string) {\n if (typeof leftItem !== typeof rightItem && leftItem != null) {\n differentKeys[key] = rightItem;\n return;\n }\n\n if (typeof leftItem === 'object') {\n const objDiff = lefthandObjectDiff(leftItem, rightItem);\n if (Object.keys(objDiff).length > 1) {\n differentKeys[key] = objDiff;\n }\n return;\n }\n\n if (leftItem !== rightItem) {\n differentKeys[key] = rightItem;\n return;\n }\n }\n\n for (const key in leftObj) {\n if (IGNORED_KEYS.includes(key)) {\n continue;\n }\n\n if (!rightObj) {\n differentKeys[key] = {};\n } else if (leftObj.hasOwnProperty(key)) {\n compare(leftObj[key], rightObj[key], key);\n }\n }\n\n return differentKeys;\n}\n\nexport function getConfigWithoutViewProps(\n viewConfig: ViewConfig,\n propName: string,\n): {...} {\n if (!viewConfig[propName]) {\n return {};\n }\n\n return Object.keys(viewConfig[propName])\n .filter(prop => !PlatformBaseViewConfig[propName][prop])\n .reduce<{[string]: any}>((obj, prop) => {\n obj[prop] = viewConfig[propName][prop];\n return obj;\n }, {});\n}\n\nexport function stringifyViewConfig(viewConfig: any): string {\n return JSON.stringify(\n viewConfig,\n (key, val) => {\n if (typeof val === 'function') {\n return `Ζ’ ${val.name}`;\n }\n return val;\n },\n 2,\n );\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {PartialViewConfig} from '../Renderer/shims/ReactNativeTypes';\n\nimport BaseViewConfig from './BaseViewConfig';\n\nexport type PartialViewConfigWithoutName = $Rest<\n PartialViewConfig,\n {uiViewClassName: string},\n>;\n\nconst PlatformBaseViewConfig: PartialViewConfigWithoutName = BaseViewConfig;\n\n// In Wilde/FB4A, use RNHostComponentListRoute in Bridge mode to verify\n// whether the JS props defined here match the native props defined\n// in RCTViewManagers in iOS, and ViewManagers in Android.\nexport default PlatformBaseViewConfig;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {PartialViewConfigWithoutName} from './PlatformBaseViewConfig';\n\nimport ReactNativeStyleAttributes from '../Components/View/ReactNativeStyleAttributes';\nimport {DynamicallyInjectedByGestureHandler} from './ViewConfigIgnore';\n\nconst bubblingEventTypes = {\n // Bubbling events from UIManagerModuleConstants.java\n topChange: {\n phasedRegistrationNames: {\n captured: 'onChangeCapture',\n bubbled: 'onChange',\n },\n },\n topSelect: {\n phasedRegistrationNames: {\n captured: 'onSelectCapture',\n bubbled: 'onSelect',\n },\n },\n topTouchEnd: {\n phasedRegistrationNames: {\n captured: 'onTouchEndCapture',\n bubbled: 'onTouchEnd',\n },\n },\n topTouchCancel: {\n phasedRegistrationNames: {\n captured: 'onTouchCancelCapture',\n bubbled: 'onTouchCancel',\n },\n },\n topTouchStart: {\n phasedRegistrationNames: {\n captured: 'onTouchStartCapture',\n bubbled: 'onTouchStart',\n },\n },\n topTouchMove: {\n phasedRegistrationNames: {\n captured: 'onTouchMoveCapture',\n bubbled: 'onTouchMove',\n },\n },\n\n // Experimental/Work in Progress Pointer Events (not yet ready for use)\n topPointerCancel: {\n phasedRegistrationNames: {\n captured: 'onPointerCancelCapture',\n bubbled: 'onPointerCancel',\n },\n },\n topPointerDown: {\n phasedRegistrationNames: {\n captured: 'onPointerDownCapture',\n bubbled: 'onPointerDown',\n },\n },\n topPointerEnter: {\n phasedRegistrationNames: {\n captured: 'onPointerEnterCapture',\n bubbled: 'onPointerEnter',\n skipBubbling: true,\n },\n },\n topPointerLeave: {\n phasedRegistrationNames: {\n captured: 'onPointerLeaveCapture',\n bubbled: 'onPointerLeave',\n skipBubbling: true,\n },\n },\n topPointerMove: {\n phasedRegistrationNames: {\n captured: 'onPointerMoveCapture',\n bubbled: 'onPointerMove',\n },\n },\n topPointerUp: {\n phasedRegistrationNames: {\n captured: 'onPointerUpCapture',\n bubbled: 'onPointerUp',\n },\n },\n topPointerOut: {\n phasedRegistrationNames: {\n captured: 'onPointerOutCapture',\n bubbled: 'onPointerOut',\n },\n },\n topPointerOver: {\n phasedRegistrationNames: {\n captured: 'onPointerOverCapture',\n bubbled: 'onPointerOver',\n },\n },\n};\n\nconst directEventTypes = {\n topAccessibilityAction: {\n registrationName: 'onAccessibilityAction',\n },\n onGestureHandlerEvent: DynamicallyInjectedByGestureHandler({\n registrationName: 'onGestureHandlerEvent',\n }),\n onGestureHandlerStateChange: DynamicallyInjectedByGestureHandler({\n registrationName: 'onGestureHandlerStateChange',\n }),\n\n // Direct events from UIManagerModuleConstants.java\n topContentSizeChange: {\n registrationName: 'onContentSizeChange',\n },\n topScrollBeginDrag: {\n registrationName: 'onScrollBeginDrag',\n },\n topMessage: {\n registrationName: 'onMessage',\n },\n topSelectionChange: {\n registrationName: 'onSelectionChange',\n },\n topLoadingFinish: {\n registrationName: 'onLoadingFinish',\n },\n topMomentumScrollEnd: {\n registrationName: 'onMomentumScrollEnd',\n },\n topClick: {\n registrationName: 'onClick',\n },\n topLoadingStart: {\n registrationName: 'onLoadingStart',\n },\n topLoadingError: {\n registrationName: 'onLoadingError',\n },\n topMomentumScrollBegin: {\n registrationName: 'onMomentumScrollBegin',\n },\n topScrollEndDrag: {\n registrationName: 'onScrollEndDrag',\n },\n topScroll: {\n registrationName: 'onScroll',\n },\n topLayout: {\n registrationName: 'onLayout',\n },\n};\n\nconst validAttributesForNonEventProps = {\n // @ReactProps from BaseViewManager\n backgroundColor: {process: require('../StyleSheet/processColor').default},\n transform: true,\n opacity: true,\n elevation: true,\n shadowColor: {process: require('../StyleSheet/processColor').default},\n zIndex: true,\n renderToHardwareTextureAndroid: true,\n testID: true,\n nativeID: true,\n accessibilityLabelledBy: true,\n accessibilityLabel: true,\n accessibilityHint: true,\n accessibilityRole: true,\n accessibilityCollection: true,\n accessibilityCollectionItem: true,\n accessibilityState: true,\n accessibilityActions: true,\n accessibilityValue: true,\n importantForAccessibility: true,\n rotation: true,\n scaleX: true,\n scaleY: true,\n translateX: true,\n translateY: true,\n accessibilityLiveRegion: true,\n\n // @ReactProps from LayoutShadowNode\n width: true,\n minWidth: true,\n collapsable: true,\n maxWidth: true,\n height: true,\n minHeight: true,\n maxHeight: true,\n flex: true,\n flexGrow: true,\n rowGap: true,\n columnGap: true,\n gap: true,\n flexShrink: true,\n flexBasis: true,\n aspectRatio: true,\n flexDirection: true,\n flexWrap: true,\n alignSelf: true,\n alignItems: true,\n alignContent: true,\n justifyContent: true,\n overflow: true,\n display: true,\n\n margin: true,\n marginBlock: true,\n marginBlockEnd: true,\n marginBlockStart: true,\n marginBottom: true,\n marginEnd: true,\n marginHorizontal: true,\n marginInline: true,\n marginInlineEnd: true,\n marginInlineStart: true,\n marginLeft: true,\n marginRight: true,\n marginStart: true,\n marginTop: true,\n marginVertical: true,\n\n padding: true,\n paddingBlock: true,\n paddingBlockEnd: true,\n paddingBlockStart: true,\n paddingBottom: true,\n paddingEnd: true,\n paddingHorizontal: true,\n paddingInline: true,\n paddingInlineEnd: true,\n paddingInlineStart: true,\n paddingLeft: true,\n paddingRight: true,\n paddingStart: true,\n paddingTop: true,\n paddingVertical: true,\n\n borderWidth: true,\n borderStartWidth: true,\n borderEndWidth: true,\n borderTopWidth: true,\n borderBottomWidth: true,\n borderLeftWidth: true,\n borderRightWidth: true,\n\n start: true,\n end: true,\n left: true,\n right: true,\n top: true,\n bottom: true,\n\n position: true,\n\n style: ReactNativeStyleAttributes,\n};\n\n// Props for bubbling and direct events\nconst validAttributesForEventProps = {\n onLayout: true,\n\n // PanResponder handlers\n onMoveShouldSetResponder: true,\n onMoveShouldSetResponderCapture: true,\n onStartShouldSetResponder: true,\n onStartShouldSetResponderCapture: true,\n onResponderGrant: true,\n onResponderReject: true,\n onResponderStart: true,\n onResponderEnd: true,\n onResponderRelease: true,\n onResponderMove: true,\n onResponderTerminate: true,\n onResponderTerminationRequest: true,\n onShouldBlockNativeResponder: true,\n\n // Touch events\n onTouchStart: true,\n onTouchMove: true,\n onTouchEnd: true,\n onTouchCancel: true,\n\n // Pointer events\n onPointerEnter: true,\n onPointerEnterCapture: true,\n onPointerLeave: true,\n onPointerLeaveCapture: true,\n onPointerMove: true,\n onPointerMoveCapture: true,\n onPointerOut: true,\n onPointerOutCapture: true,\n onPointerOver: true,\n onPointerOverCapture: true,\n};\n\n/**\n * On Android, Props are derived from a ViewManager and its ShadowNode.\n *\n * Where did we find these base platform props from?\n * - Nearly all component ViewManagers descend from BaseViewManager,\n * - and BaseViewManagers' ShadowNodes descend from LayoutShadowNode.\n * - Also, all components inherit ViewConfigs from UIManagerModuleConstants.java.\n *\n * So, these ViewConfigs are generated from LayoutShadowNode and BaseViewManager.\n */\nconst PlatformBaseViewConfigAndroid: PartialViewConfigWithoutName = {\n directEventTypes,\n bubblingEventTypes,\n validAttributes: {\n ...validAttributesForNonEventProps,\n ...validAttributesForEventProps,\n },\n};\n\nexport default PlatformBaseViewConfigAndroid;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport Platform from '../Utilities/Platform';\n\nconst ignoredViewConfigProps = new WeakSet<{...}>();\n\n/**\n * Decorates ViewConfig values that are dynamically injected by the library,\n * react-native-gesture-handler. (T45765076)\n */\nexport function DynamicallyInjectedByGestureHandler(object: T): T {\n ignoredViewConfigProps.add(object);\n return object;\n}\n\n/**\n * On iOS, ViewManager event declarations generate {eventName}: true entries\n * in ViewConfig valueAttributes. These entries aren't generated for Android.\n * This annotation allows Static ViewConfigs to insert these entries into\n * iOS but not Android.\n *\n * In the future, we want to remove this platform-inconsistency. We want\n * to set RN$ViewConfigEventValidAttributesDisabled = true server-side,\n * so that iOS does not generate validAttributes from event props in iOS RCTViewManager,\n * since Android does not generate validAttributes from events props in Android ViewManager.\n *\n * TODO(T110872225): Remove this logic, after achieving platform-consistency\n */\nexport function ConditionallyIgnoredEventHandlers(\n value: T,\n): T | void {\n if (Platform.OS === 'ios') {\n return value;\n }\n return undefined;\n}\n\nexport function isIgnored(value: mixed): boolean {\n if (typeof value === 'object' && value != null) {\n return ignoredViewConfigProps.has(value);\n }\n return false;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport {type ViewConfig} from '../Renderer/shims/ReactNativeTypes';\nimport {isIgnored} from './ViewConfigIgnore';\n\nexport type Difference =\n | {\n type: 'missing',\n path: Array,\n nativeValue: mixed,\n }\n | {\n type: 'unequal',\n path: Array,\n nativeValue: mixed,\n staticValue: mixed,\n }\n | {\n type: 'unexpected',\n path: Array,\n staticValue: mixed,\n };\n\nexport type ValidationResult = ValidResult | InvalidResult;\ntype ValidResult = {\n type: 'valid',\n};\ntype InvalidResult = {\n type: 'invalid',\n differences: Array,\n};\n\n/**\n * During the migration from native view configs to static view configs, this is\n * used to validate that the two are equivalent.\n */\nexport function validate(\n name: string,\n nativeViewConfig: ViewConfig,\n staticViewConfig: ViewConfig,\n): ValidationResult {\n const differences: Array = [];\n accumulateDifferences(\n differences,\n [],\n {\n bubblingEventTypes: nativeViewConfig.bubblingEventTypes,\n directEventTypes: nativeViewConfig.directEventTypes,\n uiViewClassName: nativeViewConfig.uiViewClassName,\n validAttributes: nativeViewConfig.validAttributes,\n },\n {\n bubblingEventTypes: staticViewConfig.bubblingEventTypes,\n directEventTypes: staticViewConfig.directEventTypes,\n uiViewClassName: staticViewConfig.uiViewClassName,\n validAttributes: staticViewConfig.validAttributes,\n },\n );\n\n if (differences.length === 0) {\n return {type: 'valid'};\n }\n\n return {\n type: 'invalid',\n differences,\n };\n}\n\nexport function stringifyValidationResult(\n name: string,\n validationResult: InvalidResult,\n): string {\n const {differences} = validationResult;\n return [\n `StaticViewConfigValidator: Invalid static view config for '${name}'.`,\n '',\n ...differences.map(difference => {\n const {type, path} = difference;\n switch (type) {\n case 'missing':\n return `- '${path.join('.')}' is missing.`;\n case 'unequal':\n return `- '${path.join('.')}' is the wrong value.`;\n case 'unexpected':\n return `- '${path.join('.')}' is present but not expected to be.`;\n }\n }),\n '',\n ].join('\\n');\n}\n\nfunction accumulateDifferences(\n differences: Array,\n path: Array,\n nativeObject: {...},\n staticObject: {...},\n): void {\n for (const nativeKey in nativeObject) {\n const nativeValue = nativeObject[nativeKey];\n\n if (!staticObject.hasOwnProperty(nativeKey)) {\n differences.push({\n path: [...path, nativeKey],\n type: 'missing',\n nativeValue,\n });\n continue;\n }\n\n const staticValue = staticObject[nativeKey];\n\n const nativeValueIfObject = ifObject(nativeValue);\n if (nativeValueIfObject != null) {\n const staticValueIfObject = ifObject(staticValue);\n if (staticValueIfObject != null) {\n path.push(nativeKey);\n accumulateDifferences(\n differences,\n path,\n nativeValueIfObject,\n staticValueIfObject,\n );\n path.pop();\n continue;\n }\n }\n\n if (nativeValue !== staticValue) {\n differences.push({\n path: [...path, nativeKey],\n type: 'unequal',\n nativeValue,\n staticValue,\n });\n }\n }\n\n for (const staticKey in staticObject) {\n if (\n !nativeObject.hasOwnProperty(staticKey) &&\n !isIgnored(staticObject[staticKey])\n ) {\n differences.push({\n path: [...path, staticKey],\n type: 'unexpected',\n staticValue: staticObject[staticKey],\n });\n }\n }\n}\n\nfunction ifObject(value: mixed): ?{...} {\n return typeof value === 'object' && !Array.isArray(value) ? value : null;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n PartialViewConfig,\n ViewConfig,\n} from '../Renderer/shims/ReactNativeTypes';\n\nimport PlatformBaseViewConfig from './PlatformBaseViewConfig';\n\n/**\n * Creates a complete `ViewConfig` from a `PartialViewConfig`.\n */\nexport function createViewConfig(\n partialViewConfig: PartialViewConfig,\n): ViewConfig {\n return {\n uiViewClassName: partialViewConfig.uiViewClassName,\n Commands: {},\n bubblingEventTypes: composeIndexers(\n PlatformBaseViewConfig.bubblingEventTypes,\n partialViewConfig.bubblingEventTypes,\n ),\n directEventTypes: composeIndexers(\n PlatformBaseViewConfig.directEventTypes,\n partialViewConfig.directEventTypes,\n ),\n // $FlowFixMe[incompatible-return]\n validAttributes: composeIndexers(\n // $FlowFixMe[incompatible-call] `style` property confuses Flow.\n PlatformBaseViewConfig.validAttributes,\n // $FlowFixMe[incompatible-call] `style` property confuses Flow.\n partialViewConfig.validAttributes,\n ),\n };\n}\n\nfunction composeIndexers(\n maybeA: ?{+[string]: T},\n maybeB: ?{+[string]: T},\n): {+[string]: T} {\n return maybeA == null || maybeB == null\n ? maybeA ?? maybeB ?? {}\n : {...maybeA, ...maybeB};\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nconst {dispatchCommand} = require('../ReactNative/RendererProxy');\n\ntype Options = $ReadOnly<{|\n supportedCommands: $ReadOnlyArray,\n|}>;\n\nfunction codegenNativeCommands(options: Options<$Keys>): T {\n const commandObj: {[$Keys]: (...$ReadOnlyArray) => void} = {};\n\n options.supportedCommands.forEach(command => {\n // $FlowFixMe[missing-local-annot]\n commandObj[command] = (ref, ...args) => {\n // $FlowFixMe[incompatible-call]\n dispatchCommand(ref, command, args);\n };\n });\n\n return ((commandObj: any): T);\n}\n\nexport default codegenNativeCommands;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nimport type {\n AccessibilityRole,\n Role,\n} from '../Components/View/ViewAccessibility';\n\n// Map role values to AccessibilityRole values\nexport function getAccessibilityRoleFromRole(role: Role): ?AccessibilityRole {\n switch (role) {\n case 'alert':\n return 'alert';\n case 'alertdialog':\n return undefined;\n case 'application':\n return undefined;\n case 'article':\n return undefined;\n case 'banner':\n return undefined;\n case 'button':\n return 'button';\n case 'cell':\n return undefined;\n case 'checkbox':\n return 'checkbox';\n case 'columnheader':\n return undefined;\n case 'combobox':\n return 'combobox';\n case 'complementary':\n return undefined;\n case 'contentinfo':\n return undefined;\n case 'definition':\n return undefined;\n case 'dialog':\n return undefined;\n case 'directory':\n return undefined;\n case 'document':\n return undefined;\n case 'feed':\n return undefined;\n case 'figure':\n return undefined;\n case 'form':\n return undefined;\n case 'grid':\n return 'grid';\n case 'group':\n return undefined;\n case 'heading':\n return 'header';\n case 'img':\n return 'image';\n case 'link':\n return 'link';\n case 'list':\n return 'list';\n case 'listitem':\n return undefined;\n case 'log':\n return undefined;\n case 'main':\n return undefined;\n case 'marquee':\n return undefined;\n case 'math':\n return undefined;\n case 'menu':\n return 'menu';\n case 'menubar':\n return 'menubar';\n case 'menuitem':\n return 'menuitem';\n case 'meter':\n return undefined;\n case 'navigation':\n return undefined;\n case 'none':\n return 'none';\n case 'note':\n return undefined;\n case 'option':\n return undefined;\n case 'presentation':\n return 'none';\n case 'progressbar':\n return 'progressbar';\n case 'radio':\n return 'radio';\n case 'radiogroup':\n return 'radiogroup';\n case 'region':\n return undefined;\n case 'row':\n return undefined;\n case 'rowgroup':\n return undefined;\n case 'rowheader':\n return undefined;\n case 'scrollbar':\n return 'scrollbar';\n case 'searchbox':\n return 'search';\n case 'separator':\n return undefined;\n case 'slider':\n return 'adjustable';\n case 'spinbutton':\n return 'spinbutton';\n case 'status':\n return undefined;\n case 'summary':\n return 'summary';\n case 'switch':\n return 'switch';\n case 'tab':\n return 'tab';\n case 'table':\n return undefined;\n case 'tablist':\n return 'tablist';\n case 'tabpanel':\n return undefined;\n case 'term':\n return undefined;\n case 'timer':\n return 'timer';\n case 'toolbar':\n return 'toolbar';\n case 'tooltip':\n return undefined;\n case 'tree':\n return undefined;\n case 'treegrid':\n return undefined;\n case 'treeitem':\n return undefined;\n }\n\n return undefined;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {\n ____ColorValue_Internal,\n ____DangerouslyImpreciseStyle_Internal,\n ____DangerouslyImpreciseStyleProp_Internal,\n ____ImageStyle_Internal,\n ____ImageStyleProp_Internal,\n ____Styles_Internal,\n ____TextStyle_Internal,\n ____TextStyleProp_Internal,\n ____ViewStyle_Internal,\n ____ViewStyleProp_Internal,\n} from './StyleSheetTypes';\n\nconst ReactNativeStyleAttributes = require('../Components/View/ReactNativeStyleAttributes');\nconst PixelRatio = require('../Utilities/PixelRatio').default;\nconst flatten = require('./flattenStyle');\n\n/**\n * This type should be used as the type for anything that is a color. It is\n * most useful when using DynamicColorIOS which can be a string or a dynamic\n * color object.\n *\n * type props = {backgroundColor: ColorValue};\n */\nexport type ColorValue = ____ColorValue_Internal;\n\n/**\n * This type should be used as the type for a prop that is passed through\n * to a 's `style` prop. This ensures call sites of the component\n * can't pass styles that View doesn't support such as `fontSize`.`\n *\n * type Props = {style: ViewStyleProp}\n * const MyComponent = (props: Props) => \n */\nexport type ViewStyleProp = ____ViewStyleProp_Internal;\n\n/**\n * This type should be used as the type for a prop that is passed through\n * to a 's `style` prop. This ensures call sites of the component\n * can't pass styles that Text doesn't support such as `resizeMode`.`\n *\n * type Props = {style: TextStyleProp}\n * const MyComponent = (props: Props) => \n */\nexport type TextStyleProp = ____TextStyleProp_Internal;\n\n/**\n * This type should be used as the type for a prop that is passed through\n * to an 's `style` prop. This ensures call sites of the component\n * can't pass styles that Image doesn't support such as `fontSize`.`\n *\n * type Props = {style: ImageStyleProp}\n * const MyComponent = (props: Props) => \n */\nexport type ImageStyleProp = ____ImageStyleProp_Internal;\n\n/**\n * WARNING: You probably shouldn't be using this type. This type\n * is similar to the ones above except it allows styles that are accepted\n * by all of View, Text, or Image. It is therefore very unsafe to pass this\n * through to an underlying component. Using this is almost always a mistake\n * and using one of the other more restrictive types is likely the right choice.\n */\nexport type DangerouslyImpreciseStyleProp =\n ____DangerouslyImpreciseStyleProp_Internal;\n\n/**\n * Utility type for getting the values for specific style keys.\n *\n * The following is bad because position is more restrictive than 'string':\n * ```\n * type Props = {position: string};\n * ```\n *\n * You should use the following instead:\n *\n * ```\n * type Props = {position: TypeForStyleKey<'position'>};\n * ```\n *\n * This will correctly give you the type 'absolute' | 'relative'\n */\nexport type TypeForStyleKey<\n +key: $Keys<____DangerouslyImpreciseStyle_Internal>,\n> = $ElementType<____DangerouslyImpreciseStyle_Internal, key>;\n\n/**\n * This type is an object of the different possible style\n * properties that can be specified for View.\n *\n * Note that this isn't a safe way to type a style prop for a component as\n * results from StyleSheet.create return an internal identifier, not\n * an object of styles.\n *\n * If you want to type the style prop of a function,\n * consider using ViewStyleProp.\n *\n * A reasonable usage of this type is for helper functions that return an\n * object of styles to pass to a View that can't be precomputed with\n * StyleSheet.create.\n */\nexport type ViewStyle = ____ViewStyle_Internal;\n\n/**\n * This type is an object of the different possible style\n * properties that can be specified for Text.\n *\n * Note that this isn't a safe way to type a style prop for a component as\n * results from StyleSheet.create return an internal identifier, not\n * an object of styles.\n *\n * If you want to type the style prop of a function,\n * consider using TextStyleProp.\n *\n * A reasonable usage of this type is for helper functions that return an\n * object of styles to pass to a Text that can't be precomputed with\n * StyleSheet.create.\n */\nexport type TextStyle = ____TextStyle_Internal;\n\n/**\n * This type is an object of the different possible style\n * properties that can be specified for Image.\n *\n * Note that this isn't a safe way to type a style prop for a component as\n * results from StyleSheet.create return an internal identifier, not\n * an object of styles.\n *\n * If you want to type the style prop of a function,\n * consider using ImageStyleProp.\n *\n * A reasonable usage of this type is for helper functions that return an\n * object of styles to pass to an Image that can't be precomputed with\n * StyleSheet.create.\n */\nexport type ImageStyle = ____ImageStyle_Internal;\n\n/**\n * WARNING: You probably shouldn't be using this type. This type is an object\n * with all possible style keys and their values. Note that this isn't\n * a safe way to type a style prop for a component as results from\n * StyleSheet.create return an internal identifier, not an object of styles.\n *\n * If you want to type the style prop of a function, consider using\n * ViewStyleProp, TextStyleProp, or ImageStyleProp.\n *\n * This should only be used by very core utilities that operate on an object\n * containing any possible style value.\n */\nexport type DangerouslyImpreciseStyle = ____DangerouslyImpreciseStyle_Internal;\n\nlet hairlineWidth: number = PixelRatio.roundToNearestPixel(0.4);\nif (hairlineWidth === 0) {\n hairlineWidth = 1 / PixelRatio.get();\n}\n\nconst absoluteFill = {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n};\nif (__DEV__) {\n Object.freeze(absoluteFill);\n}\n\n/**\n * A StyleSheet is an abstraction similar to CSS StyleSheets\n *\n * Create a new StyleSheet:\n *\n * ```\n * const styles = StyleSheet.create({\n * container: {\n * borderRadius: 4,\n * borderWidth: 0.5,\n * borderColor: '#d6d7da',\n * },\n * title: {\n * fontSize: 19,\n * fontWeight: 'bold',\n * },\n * activeTitle: {\n * color: 'red',\n * },\n * });\n * ```\n *\n * Use a StyleSheet:\n *\n * ```\n * \n * \n * \n * ```\n *\n * Code quality:\n *\n * - By moving styles away from the render function, you're making the code\n * easier to understand.\n * - Naming the styles is a good way to add meaning to the low level components\n * in the render function.\n *\n * Performance:\n *\n * - Making a stylesheet from a style object makes it possible to refer to it\n * by ID instead of creating a new style object every time.\n * - It also allows to send the style only once through the bridge. All\n * subsequent uses are going to refer an id (not implemented yet).\n */\nmodule.exports = {\n /**\n * This is defined as the width of a thin line on the platform. It can be\n * used as the thickness of a border or division between two elements.\n * Example:\n * ```\n * {\n * borderBottomColor: '#bbb',\n * borderBottomWidth: StyleSheet.hairlineWidth\n * }\n * ```\n *\n * This constant will always be a round number of pixels (so a line defined\n * by it look crisp) and will try to match the standard width of a thin line\n * on the underlying platform. However, you should not rely on it being a\n * constant size, because on different platforms and screen densities its\n * value may be calculated differently.\n *\n * A line with hairline width may not be visible if your simulator is downscaled.\n */\n hairlineWidth,\n\n /**\n * A very common pattern is to create overlays with position absolute and zero positioning,\n * so `absoluteFill` can be used for convenience and to reduce duplication of these repeated\n * styles.\n */\n absoluteFill: (absoluteFill: any), // TODO: This should be updated after we fix downstream Flow sites.\n\n /**\n * Sometimes you may want `absoluteFill` but with a couple tweaks - `absoluteFillObject` can be\n * used to create a customized entry in a `StyleSheet`, e.g.:\n *\n * const styles = StyleSheet.create({\n * wrapper: {\n * ...StyleSheet.absoluteFillObject,\n * top: 10,\n * backgroundColor: 'transparent',\n * },\n * });\n */\n absoluteFillObject: absoluteFill,\n\n /**\n * Combines two styles such that `style2` will override any styles in `style1`.\n * If either style is falsy, the other one is returned without allocating an\n * array, saving allocations and maintaining reference equality for\n * PureComponent checks.\n */\n compose(\n style1: ?T,\n style2: ?T,\n ): ?T | $ReadOnlyArray {\n if (style1 != null && style2 != null) {\n return ([style1, style2]: $ReadOnlyArray);\n } else {\n return style1 != null ? style1 : style2;\n }\n },\n\n /**\n * Flattens an array of style objects, into one aggregated style object.\n * Alternatively, this method can be used to lookup IDs, returned by\n * StyleSheet.register.\n *\n * > **NOTE**: Exercise caution as abusing this can tax you in terms of\n * > optimizations.\n * >\n * > IDs enable optimizations through the bridge and memory in general. Referring\n * > to style objects directly will deprive you of these optimizations.\n *\n * Example:\n * ```\n * const styles = StyleSheet.create({\n * listItem: {\n * flex: 1,\n * fontSize: 16,\n * color: 'white'\n * },\n * selectedListItem: {\n * color: 'green'\n * }\n * });\n *\n * StyleSheet.flatten([styles.listItem, styles.selectedListItem])\n * // returns { flex: 1, fontSize: 16, color: 'green' }\n * ```\n * Alternative use:\n * ```\n * StyleSheet.flatten(styles.listItem);\n * // return { flex: 1, fontSize: 16, color: 'white' }\n * // Simply styles.listItem would return its ID (number)\n * ```\n * This method internally uses `StyleSheetRegistry.getStyleByID(style)`\n * to resolve style objects represented by IDs. Thus, an array of style\n * objects (instances of StyleSheet.create), are individually resolved to,\n * their respective objects, merged as one and then returned. This also explains\n * the alternative use.\n */\n flatten,\n\n /**\n * WARNING: EXPERIMENTAL. Breaking changes will probably happen a lot and will\n * not be reliably announced. The whole thing might be deleted, who knows? Use\n * at your own risk.\n *\n * Sets a function to use to pre-process a style property value. This is used\n * internally to process color and transform values. You should not use this\n * unless you really know what you are doing and have exhausted other options.\n */\n setStyleAttributePreprocessor(\n property: string,\n process: (nextProp: mixed) => mixed,\n ) {\n let value;\n\n if (ReactNativeStyleAttributes[property] === true) {\n value = {process};\n } else if (typeof ReactNativeStyleAttributes[property] === 'object') {\n value = {...ReactNativeStyleAttributes[property], process};\n } else {\n console.error(`${property} is not a valid style attribute`);\n return;\n }\n\n if (\n __DEV__ &&\n typeof value.process === 'function' &&\n typeof ReactNativeStyleAttributes[property]?.process === 'function' &&\n value.process !== ReactNativeStyleAttributes[property]?.process\n ) {\n console.warn(`Overwriting ${property} style attribute preprocessor`);\n }\n\n ReactNativeStyleAttributes[property] = value;\n },\n\n /**\n * Creates a StyleSheet style reference from the given object.\n */\n create<+S: ____Styles_Internal>(obj: S): $ReadOnly {\n // TODO: This should return S as the return type. But first,\n // we need to codemod all the callsites that are typing this\n // return value as a number (even though it was opaque).\n if (__DEV__) {\n for (const key in obj) {\n if (obj[key]) {\n Object.freeze(obj[key]);\n }\n }\n }\n return obj;\n },\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport * as React from 'react';\n\nexport opaque type RootTag = number;\n\nexport const RootTagContext: React$Context =\n React.createContext(0);\n\nif (__DEV__) {\n RootTagContext.displayName = 'RootTagContext';\n}\n\n/**\n * Intended to only be used by `AppContainer`.\n */\nexport function createRootTag(rootTag: number | RootTag): RootTag {\n return rootTag;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nexport opaque type DisplayModeType = number;\n\n/** DisplayMode should be in sync with the method displayModeToInt from\n * react/renderer/uimanager/primitives.h. */\nconst DisplayMode: {[string]: DisplayModeType} = Object.freeze({\n VISIBLE: 1,\n SUSPENDED: 2,\n HIDDEN: 3,\n});\n\nexport function coerceDisplayMode(value: ?number): DisplayModeType {\n switch (value) {\n case DisplayMode.SUSPENDED:\n return DisplayMode.SUSPENDED;\n case DisplayMode.HIDDEN:\n return DisplayMode.HIDDEN;\n default:\n return DisplayMode.VISIBLE;\n }\n}\n\nexport default DisplayMode;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {AbstractComponent} from 'react';\n\nimport * as React from 'react';\n\ntype NoopComponent = AbstractComponent<{children: React.Node}>;\n\nconst cache: Map<\n string, // displayName\n NoopComponent, // ComponentWithDisplayName\n> = new Map();\n\nexport default function getCachedComponentWithDisplayName(\n displayName: string,\n): NoopComponent {\n let ComponentWithDisplayName = cache.get(displayName);\n\n if (!ComponentWithDisplayName) {\n ComponentWithDisplayName = ({children}: {children: React.Node}) => children;\n // $FlowFixMe[prop-missing]\n ComponentWithDisplayName.displayName = displayName;\n cache.set(displayName, ComponentWithDisplayName);\n }\n\n return ComponentWithDisplayName;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport NativeDeviceEventManager from '../../Libraries/NativeModules/specs/NativeDeviceEventManager';\nimport RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter';\n\nconst DEVICE_BACK_EVENT = 'hardwareBackPress';\n\ntype BackPressEventName = 'backPress' | 'hardwareBackPress';\n\nconst _backPressSubscriptions = [];\n\nRCTDeviceEventEmitter.addListener(DEVICE_BACK_EVENT, function () {\n for (let i = _backPressSubscriptions.length - 1; i >= 0; i--) {\n if (_backPressSubscriptions[i]()) {\n return;\n }\n }\n\n BackHandler.exitApp();\n});\n\n/**\n * Detect hardware button presses for back navigation.\n *\n * Android: Detect hardware back button presses, and programmatically invoke the default back button\n * functionality to exit the app if there are no listeners or if none of the listeners return true.\n *\n * iOS: Not applicable.\n *\n * The event subscriptions are called in reverse order (i.e. last registered subscription first),\n * and if one subscription returns true then subscriptions registered earlier will not be called.\n *\n * Example:\n *\n * ```javascript\n * BackHandler.addEventListener('hardwareBackPress', function() {\n * // this.onMainScreen and this.goBack are just examples, you need to use your own implementation here\n * // Typically you would use the navigator here to go to the last state.\n *\n * if (!this.onMainScreen()) {\n * this.goBack();\n * return true;\n * }\n * return false;\n * });\n * ```\n */\ntype TBackHandler = {|\n +exitApp: () => void,\n +addEventListener: (\n eventName: BackPressEventName,\n handler: () => ?boolean,\n ) => {remove: () => void, ...},\n +removeEventListener: (\n eventName: BackPressEventName,\n handler: () => ?boolean,\n ) => void,\n|};\nconst BackHandler: TBackHandler = {\n exitApp: function (): void {\n if (!NativeDeviceEventManager) {\n return;\n }\n\n NativeDeviceEventManager.invokeDefaultBackPressHandler();\n },\n\n /**\n * Adds an event handler. Supported events:\n *\n * - `hardwareBackPress`: Fires when the Android hardware back button is pressed.\n */\n addEventListener: function (\n eventName: BackPressEventName,\n handler: () => ?boolean,\n ): {remove: () => void, ...} {\n if (_backPressSubscriptions.indexOf(handler) === -1) {\n _backPressSubscriptions.push(handler);\n }\n return {\n remove: (): void => BackHandler.removeEventListener(eventName, handler),\n };\n },\n\n /**\n * Removes the event handler.\n */\n removeEventListener: function (\n eventName: BackPressEventName,\n handler: () => ?boolean,\n ): void {\n const index = _backPressSubscriptions.indexOf(handler);\n if (index !== -1) {\n _backPressSubscriptions.splice(index, 1);\n }\n },\n};\n\nmodule.exports = BackHandler;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +invokeDefaultBackPressHandler: () => void;\n}\n\nexport default (TurboModuleRegistry.get('DeviceEventManager'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport typeof BatchedBridge from '../BatchedBridge/BatchedBridge';\nimport typeof legacySendAccessibilityEvent from '../Components/AccessibilityInfo/legacySendAccessibilityEvent';\nimport typeof TextInputState from '../Components/TextInput/TextInputState';\nimport typeof ExceptionsManager from '../Core/ExceptionsManager';\nimport typeof RawEventEmitter from '../Core/RawEventEmitter';\nimport typeof ReactFiberErrorDialog from '../Core/ReactFiberErrorDialog';\nimport typeof RCTEventEmitter from '../EventEmitter/RCTEventEmitter';\nimport typeof CustomEvent from '../Events/CustomEvent';\nimport typeof UIManager from '../ReactNative/UIManager';\nimport typeof ReactNativeViewConfigRegistry from '../Renderer/shims/ReactNativeViewConfigRegistry';\nimport typeof flattenStyle from '../StyleSheet/flattenStyle';\nimport typeof deepFreezeAndThrowOnMutationInDev from '../Utilities/deepFreezeAndThrowOnMutationInDev';\nimport typeof deepDiffer from '../Utilities/differ/deepDiffer';\nimport typeof Platform from '../Utilities/Platform';\n\nimport {type DangerouslyImpreciseStyleProp} from '../StyleSheet/StyleSheet';\n\n// flowlint unsafe-getters-setters:off\nmodule.exports = {\n get BatchedBridge(): BatchedBridge {\n return require('../BatchedBridge/BatchedBridge');\n },\n get ExceptionsManager(): ExceptionsManager {\n return require('../Core/ExceptionsManager');\n },\n get Platform(): Platform {\n return require('../Utilities/Platform');\n },\n get RCTEventEmitter(): RCTEventEmitter {\n return require('../EventEmitter/RCTEventEmitter');\n },\n get ReactNativeViewConfigRegistry(): ReactNativeViewConfigRegistry {\n return require('../Renderer/shims/ReactNativeViewConfigRegistry');\n },\n get TextInputState(): TextInputState {\n return require('../Components/TextInput/TextInputState');\n },\n get UIManager(): UIManager {\n return require('../ReactNative/UIManager');\n },\n get deepDiffer(): deepDiffer {\n return require('../Utilities/differ/deepDiffer');\n },\n get deepFreezeAndThrowOnMutationInDev(): deepFreezeAndThrowOnMutationInDev<\n {...} | Array,\n > {\n return require('../Utilities/deepFreezeAndThrowOnMutationInDev');\n },\n get flattenStyle(): flattenStyle {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n return require('../StyleSheet/flattenStyle');\n },\n get ReactFiberErrorDialog(): ReactFiberErrorDialog {\n return require('../Core/ReactFiberErrorDialog').default;\n },\n get legacySendAccessibilityEvent(): legacySendAccessibilityEvent {\n return require('../Components/AccessibilityInfo/legacySendAccessibilityEvent');\n },\n get RawEventEmitter(): RawEventEmitter {\n return require('../Core/RawEventEmitter').default;\n },\n get CustomEvent(): CustomEvent {\n return require('../Events/CustomEvent').default;\n },\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nconst BatchedBridge = require('../BatchedBridge/BatchedBridge');\n\nconst RCTEventEmitter = {\n register(eventEmitter: any) {\n if (global.RN$Bridgeless) {\n global.RN$registerCallableModule('RCTEventEmitter', () => eventEmitter);\n } else {\n BatchedBridge.registerCallableModule('RCTEventEmitter', eventEmitter);\n }\n },\n};\n\nmodule.exports = RCTEventEmitter;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n// This class is responsible for coordinating the \"focused\" state for\n// TextInputs. All calls relating to the keyboard should be funneled\n// through here.\n\nimport type {\n HostComponent,\n MeasureInWindowOnSuccessCallback,\n MeasureLayoutOnSuccessCallback,\n MeasureOnSuccessCallback,\n} from '../../Renderer/shims/ReactNativeTypes';\n\nimport {Commands as AndroidTextInputCommands} from '../../Components/TextInput/AndroidTextInputNativeComponent';\nimport {Commands as iOSTextInputCommands} from '../../Components/TextInput/RCTSingelineTextInputNativeComponent';\n\nconst {findNodeHandle} = require('../../ReactNative/RendererProxy');\nconst Platform = require('../../Utilities/Platform');\nconst React = require('react');\ntype ComponentRef = React.ElementRef>;\n\nlet currentlyFocusedInputRef: ?ComponentRef = null;\nconst inputs = new Set<{\n blur(): void,\n focus(): void,\n measure(callback: MeasureOnSuccessCallback): void,\n measureInWindow(callback: MeasureInWindowOnSuccessCallback): void,\n measureLayout(\n relativeToNativeNode: number | React.ElementRef>,\n onSuccess: MeasureLayoutOnSuccessCallback,\n onFail?: () => void,\n ): void,\n setNativeProps(nativeProps: {...}): void,\n}>();\n\nfunction currentlyFocusedInput(): ?ComponentRef {\n return currentlyFocusedInputRef;\n}\n\n/**\n * Returns the ID of the currently focused text field, if one exists\n * If no text field is focused it returns null\n */\nfunction currentlyFocusedField(): ?number {\n if (__DEV__) {\n console.error(\n 'currentlyFocusedField is deprecated and will be removed in a future release. Use currentlyFocusedInput',\n );\n }\n\n return findNodeHandle(currentlyFocusedInputRef);\n}\n\nfunction focusInput(textField: ?ComponentRef): void {\n if (currentlyFocusedInputRef !== textField && textField != null) {\n currentlyFocusedInputRef = textField;\n }\n}\n\nfunction blurInput(textField: ?ComponentRef): void {\n if (currentlyFocusedInputRef === textField && textField != null) {\n currentlyFocusedInputRef = null;\n }\n}\n\nfunction focusField(textFieldID: ?number): void {\n if (__DEV__) {\n console.error('focusField no longer works. Use focusInput');\n }\n\n return;\n}\n\nfunction blurField(textFieldID: ?number) {\n if (__DEV__) {\n console.error('blurField no longer works. Use blurInput');\n }\n\n return;\n}\n\n/**\n * @param {number} TextInputID id of the text field to focus\n * Focuses the specified text field\n * noop if the text field was already focused or if the field is not editable\n */\nfunction focusTextInput(textField: ?ComponentRef) {\n if (typeof textField === 'number') {\n if (__DEV__) {\n console.error(\n 'focusTextInput must be called with a host component. Passing a react tag is deprecated.',\n );\n }\n\n return;\n }\n\n if (textField != null) {\n const fieldCanBeFocused =\n currentlyFocusedInputRef !== textField &&\n // $FlowFixMe - `currentProps` is missing in `NativeMethods`\n textField.currentProps?.editable !== false;\n\n if (!fieldCanBeFocused) {\n return;\n }\n focusInput(textField);\n if (Platform.OS === 'ios') {\n // This isn't necessarily a single line text input\n // But commands don't actually care as long as the thing being passed in\n // actually has a command with that name. So this should work with single\n // and multiline text inputs. Ideally we'll merge them into one component\n // in the future.\n iOSTextInputCommands.focus(textField);\n } else if (Platform.OS === 'android') {\n AndroidTextInputCommands.focus(textField);\n }\n }\n}\n\n/**\n * @param {number} textFieldID id of the text field to unfocus\n * Unfocuses the specified text field\n * noop if it wasn't focused\n */\nfunction blurTextInput(textField: ?ComponentRef) {\n if (typeof textField === 'number') {\n if (__DEV__) {\n console.error(\n 'blurTextInput must be called with a host component. Passing a react tag is deprecated.',\n );\n }\n\n return;\n }\n\n if (currentlyFocusedInputRef === textField && textField != null) {\n blurInput(textField);\n if (Platform.OS === 'ios') {\n // This isn't necessarily a single line text input\n // But commands don't actually care as long as the thing being passed in\n // actually has a command with that name. So this should work with single\n // and multiline text inputs. Ideally we'll merge them into one component\n // in the future.\n iOSTextInputCommands.blur(textField);\n } else if (Platform.OS === 'android') {\n AndroidTextInputCommands.blur(textField);\n }\n }\n}\n\nfunction registerInput(textField: ComponentRef) {\n if (typeof textField === 'number') {\n if (__DEV__) {\n console.error(\n 'registerInput must be called with a host component. Passing a react tag is deprecated.',\n );\n }\n\n return;\n }\n\n inputs.add(textField);\n}\n\nfunction unregisterInput(textField: ComponentRef) {\n if (typeof textField === 'number') {\n if (__DEV__) {\n console.error(\n 'unregisterInput must be called with a host component. Passing a react tag is deprecated.',\n );\n }\n\n return;\n }\n inputs.delete(textField);\n}\n\nfunction isTextInput(textField: ComponentRef): boolean {\n if (typeof textField === 'number') {\n if (__DEV__) {\n console.error(\n 'isTextInput must be called with a host component. Passing a react tag is deprecated.',\n );\n }\n\n return false;\n }\n\n return inputs.has(textField);\n}\n\nmodule.exports = {\n currentlyFocusedInput,\n focusInput,\n blurInput,\n\n currentlyFocusedField,\n focusField,\n blurField,\n focusTextInput,\n blurTextInput,\n registerInput,\n unregisterInput,\n isTextInput,\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {\n ColorValue,\n TextStyleProp,\n ViewStyleProp,\n} from '../../StyleSheet/StyleSheet';\nimport type {\n BubblingEventHandler,\n DirectEventHandler,\n Double,\n Float,\n Int32,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\nimport type {TextInputNativeCommands} from './TextInputNativeCommands';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\n\nexport type KeyboardType =\n // Cross Platform\n | 'default'\n | 'email-address'\n | 'numeric'\n | 'phone-pad'\n | 'number-pad'\n | 'decimal-pad'\n | 'url'\n // iOS-only\n | 'ascii-capable'\n | 'numbers-and-punctuation'\n | 'name-phone-pad'\n | 'twitter'\n | 'web-search'\n // Android-only\n | 'visible-password';\n\nexport type ReturnKeyType =\n // Cross Platform\n | 'done'\n | 'go'\n | 'next'\n | 'search'\n | 'send'\n // Android-only\n | 'none'\n | 'previous'\n // iOS-only\n | 'default'\n | 'emergency-call'\n | 'google'\n | 'join'\n | 'route'\n | 'yahoo';\n\nexport type SubmitBehavior = 'submit' | 'blurAndSubmit' | 'newline';\n\nexport type NativeProps = $ReadOnly<{|\n // This allows us to inherit everything from ViewProps except for style (see below)\n // This must be commented for Fabric codegen to work.\n ...$Diff>,\n\n /**\n * Android props after this\n */\n /**\n * Specifies autocomplete hints for the system, so it can provide autofill. On Android, the system will always attempt to offer autofill by using heuristics to identify the type of content.\n * To disable autocomplete, set `autoComplete` to `off`.\n *\n * *Android Only*\n *\n * Possible values for `autoComplete` are:\n *\n * - `birthdate-day`\n * - `birthdate-full`\n * - `birthdate-month`\n * - `birthdate-year`\n * - `cc-csc`\n * - `cc-exp`\n * - `cc-exp-day`\n * - `cc-exp-month`\n * - `cc-exp-year`\n * - `cc-number`\n * - `email`\n * - `gender`\n * - `name`\n * - `name-family`\n * - `name-given`\n * - `name-middle`\n * - `name-middle-initial`\n * - `name-prefix`\n * - `name-suffix`\n * - `password`\n * - `password-new`\n * - `postal-address`\n * - `postal-address-country`\n * - `postal-address-extended`\n * - `postal-address-extended-postal-code`\n * - `postal-address-locality`\n * - `postal-address-region`\n * - `postal-code`\n * - `street-address`\n * - `sms-otp`\n * - `tel`\n * - `tel-country-code`\n * - `tel-national`\n * - `tel-device`\n * - `username`\n * - `username-new`\n * - `off`\n *\n * @platform android\n */\n autoComplete?: WithDefault<\n | 'birthdate-day'\n | 'birthdate-full'\n | 'birthdate-month'\n | 'birthdate-year'\n | 'cc-csc'\n | 'cc-exp'\n | 'cc-exp-day'\n | 'cc-exp-month'\n | 'cc-exp-year'\n | 'cc-number'\n | 'email'\n | 'gender'\n | 'name'\n | 'name-family'\n | 'name-given'\n | 'name-middle'\n | 'name-middle-initial'\n | 'name-prefix'\n | 'name-suffix'\n | 'password'\n | 'password-new'\n | 'postal-address'\n | 'postal-address-country'\n | 'postal-address-extended'\n | 'postal-address-extended-postal-code'\n | 'postal-address-locality'\n | 'postal-address-region'\n | 'postal-code'\n | 'street-address'\n | 'sms-otp'\n | 'tel'\n | 'tel-country-code'\n | 'tel-national'\n | 'tel-device'\n | 'username'\n | 'username-new'\n | 'off',\n 'off',\n >,\n\n /**\n * Sets the return key to the label. Use it instead of `returnKeyType`.\n * @platform android\n */\n returnKeyLabel?: ?string,\n\n /**\n * Sets the number of lines for a `TextInput`. Use it with multiline set to\n * `true` to be able to fill the lines.\n * @platform android\n */\n numberOfLines?: ?Int32,\n\n /**\n * When `false`, if there is a small amount of space available around a text input\n * (e.g. landscape orientation on a phone), the OS may choose to have the user edit\n * the text inside of a full screen text input mode. When `true`, this feature is\n * disabled and users will always edit the text directly inside of the text input.\n * Defaults to `false`.\n * @platform android\n */\n disableFullscreenUI?: ?boolean,\n\n /**\n * Set text break strategy on Android API Level 23+, possible values are `simple`, `highQuality`, `balanced`\n * The default value is `simple`.\n * @platform android\n */\n textBreakStrategy?: WithDefault<\n 'simple' | 'highQuality' | 'balanced',\n 'simple',\n >,\n\n /**\n * The color of the `TextInput` underline.\n * @platform android\n */\n underlineColorAndroid?: ?ColorValue,\n\n /**\n * If defined, the provided image resource will be rendered on the left.\n * The image resource must be inside `/android/app/src/main/res/drawable` and referenced\n * like\n * ```\n * \n * ```\n * @platform android\n */\n inlineImageLeft?: ?string,\n\n /**\n * Padding between the inline image, if any, and the text input itself.\n * @platform android\n */\n inlineImagePadding?: ?Int32,\n\n importantForAutofill?: string /*?(\n | 'auto'\n | 'no'\n | 'noExcludeDescendants'\n | 'yes'\n | 'yesExcludeDescendants'\n ),*/,\n\n /**\n * When `false`, it will prevent the soft keyboard from showing when the field is focused.\n * Defaults to `true`.\n */\n showSoftInputOnFocus?: ?boolean,\n\n /**\n * TextInput props after this\n */\n /**\n * Can tell `TextInput` to automatically capitalize certain characters.\n *\n * - `characters`: all characters.\n * - `words`: first letter of each word.\n * - `sentences`: first letter of each sentence (*default*).\n * - `none`: don't auto capitalize anything.\n */\n autoCapitalize?: WithDefault<\n 'none' | 'sentences' | 'words' | 'characters',\n 'none',\n >,\n\n /**\n * If `false`, disables auto-correct. The default value is `true`.\n */\n autoCorrect?: ?boolean,\n\n /**\n * If `true`, focuses the input on `componentDidMount`.\n * The default value is `false`.\n */\n autoFocus?: ?boolean,\n\n /**\n * Specifies whether fonts should scale to respect Text Size accessibility settings. The\n * default is `true`.\n */\n allowFontScaling?: ?boolean,\n\n /**\n * Specifies largest possible scale a font can reach when `allowFontScaling` is enabled.\n * Possible values:\n * `null/undefined` (default): inherit from the parent node or the global default (0)\n * `0`: no max, ignore parent/global default\n * `>= 1`: sets the maxFontSizeMultiplier of this node to this value\n */\n maxFontSizeMultiplier?: ?Float,\n\n /**\n * If `false`, text is not editable. The default value is `true`.\n */\n editable?: ?boolean,\n\n /**\n * Determines which keyboard to open, e.g.`numeric`.\n *\n * The following values work across platforms:\n *\n * - `default`\n * - `numeric`\n * - `number-pad`\n * - `decimal-pad`\n * - `email-address`\n * - `phone-pad`\n * - `url`\n *\n * *Android Only*\n *\n * The following values work on Android only:\n *\n * - `visible-password`\n */\n keyboardType?: WithDefault,\n\n /**\n * Determines how the return key should look. On Android you can also use\n * `returnKeyLabel`.\n *\n * *Cross platform*\n *\n * The following values work across platforms:\n *\n * - `done`\n * - `go`\n * - `next`\n * - `search`\n * - `send`\n *\n * *Android Only*\n *\n * The following values work on Android only:\n *\n * - `none`\n * - `previous`\n */\n returnKeyType?: WithDefault,\n\n /**\n * Limits the maximum number of characters that can be entered. Use this\n * instead of implementing the logic in JS to avoid flicker.\n */\n maxLength?: ?Int32,\n\n /**\n * If `true`, the text input can be multiple lines.\n * The default value is `false`.\n */\n multiline?: ?boolean,\n\n /**\n * Callback that is called when the text input is blurred.\n * `target` is the reactTag of the element\n */\n onBlur?: ?BubblingEventHandler<$ReadOnly<{|target: Int32|}>>,\n\n /**\n * Callback that is called when the text input is focused.\n * `target` is the reactTag of the element\n */\n onFocus?: ?BubblingEventHandler<$ReadOnly<{|target: Int32|}>>,\n\n /**\n * Callback that is called when the text input's text changes.\n * `target` is the reactTag of the element\n * TODO: differentiate between onChange and onChangeText\n */\n onChange?: ?BubblingEventHandler<\n $ReadOnly<{|target: Int32, eventCount: Int32, text: string|}>,\n >,\n\n /**\n * Callback that is called when the text input's text changes.\n * Changed text is passed as an argument to the callback handler.\n * TODO: differentiate between onChange and onChangeText\n */\n onChangeText?: ?BubblingEventHandler<\n $ReadOnly<{|target: Int32, eventCount: Int32, text: string|}>,\n >,\n\n /**\n * Callback that is called when the text input's content size changes.\n * This will be called with\n * `{ nativeEvent: { contentSize: { width, height } } }`.\n *\n * Only called for multiline text inputs.\n */\n onContentSizeChange?: ?DirectEventHandler<\n $ReadOnly<{|\n target: Int32,\n contentSize: $ReadOnly<{|width: Double, height: Double|}>,\n |}>,\n >,\n\n onTextInput?: ?BubblingEventHandler<\n $ReadOnly<{|\n target: Int32,\n text: string,\n previousText: string,\n range: $ReadOnly<{|start: Double, end: Double|}>,\n |}>,\n >,\n\n /**\n * Callback that is called when text input ends.\n */\n onEndEditing?: ?BubblingEventHandler<\n $ReadOnly<{|target: Int32, text: string|}>,\n >,\n\n /**\n * Callback that is called when the text input selection is changed.\n * This will be called with\n * `{ nativeEvent: { selection: { start, end } } }`.\n */\n onSelectionChange?: ?DirectEventHandler<\n $ReadOnly<{|\n target: Int32,\n selection: $ReadOnly<{|start: Double, end: Double|}>,\n |}>,\n >,\n\n /**\n * Callback that is called when the text input's submit button is pressed.\n * Invalid if `multiline={true}` is specified.\n */\n onSubmitEditing?: ?BubblingEventHandler<\n $ReadOnly<{|target: Int32, text: string|}>,\n >,\n\n /**\n * Callback that is called when a key is pressed.\n * This will be called with `{ nativeEvent: { key: keyValue } }`\n * where `keyValue` is `'Enter'` or `'Backspace'` for respective keys and\n * the typed-in character otherwise including `' '` for space.\n * Fires before `onChange` callbacks.\n */\n onKeyPress?: ?BubblingEventHandler<$ReadOnly<{|target: Int32, key: string|}>>,\n\n /**\n * Invoked on content scroll with `{ nativeEvent: { contentOffset: { x, y } } }`.\n * May also contain other properties from ScrollEvent but on Android contentSize\n * is not provided for performance reasons.\n */\n onScroll?: ?DirectEventHandler<\n $ReadOnly<{|\n target: Int32,\n responderIgnoreScroll: boolean,\n contentInset: $ReadOnly<{|\n top: Double, // always 0 on Android\n bottom: Double, // always 0 on Android\n left: Double, // always 0 on Android\n right: Double, // always 0 on Android\n |}>,\n contentOffset: $ReadOnly<{|\n x: Double,\n y: Double,\n |}>,\n contentSize: $ReadOnly<{|\n width: Double, // always 0 on Android\n height: Double, // always 0 on Android\n |}>,\n layoutMeasurement: $ReadOnly<{|\n width: Double,\n height: Double,\n |}>,\n velocity: $ReadOnly<{|\n x: Double, // always 0 on Android\n y: Double, // always 0 on Android\n |}>,\n |}>,\n >,\n\n /**\n * The string that will be rendered before text input has been entered.\n */\n placeholder?: ?Stringish,\n\n /**\n * The text color of the placeholder string.\n */\n placeholderTextColor?: ?ColorValue,\n\n /**\n * If `true`, the text input obscures the text entered so that sensitive text\n * like passwords stay secure. The default value is `false`. Does not work with 'multiline={true}'.\n */\n secureTextEntry?: ?boolean,\n\n /**\n * The highlight and cursor color of the text input.\n */\n selectionColor?: ?ColorValue,\n\n /**\n * The start and end of the text input's selection. Set start and end to\n * the same value to position the cursor.\n */\n selection?: ?$ReadOnly<{|\n start: Int32,\n end?: ?Int32,\n |}>,\n\n /**\n * The value to show for the text input. `TextInput` is a controlled\n * component, which means the native value will be forced to match this\n * value prop if provided. For most uses, this works great, but in some\n * cases this may cause flickering - one common cause is preventing edits\n * by keeping value the same. In addition to simply setting the same value,\n * either set `editable={false}`, or set/update `maxLength` to prevent\n * unwanted edits without flicker.\n */\n value?: ?string,\n\n /**\n * Provides an initial value that will change when the user starts typing.\n * Useful for simple use-cases where you do not want to deal with listening\n * to events and updating the value prop to keep the controlled state in sync.\n */\n defaultValue?: ?string,\n\n /**\n * If `true`, all text will automatically be selected on focus.\n */\n selectTextOnFocus?: ?boolean,\n\n /**\n * If `true`, the text field will blur when submitted.\n * The default value is true for single-line fields and false for\n * multiline fields. Note that for multiline fields, setting `blurOnSubmit`\n * to `true` means that pressing return will blur the field and trigger the\n * `onSubmitEditing` event instead of inserting a newline into the field.\n *\n * @deprecated\n * Note that `submitBehavior` now takes the place of `blurOnSubmit` and will\n * override any behavior defined by `blurOnSubmit`.\n * @see submitBehavior\n */\n blurOnSubmit?: ?boolean,\n\n /**\n * When the return key is pressed,\n *\n * For single line inputs:\n *\n * - `'newline`' defaults to `'blurAndSubmit'`\n * - `undefined` defaults to `'blurAndSubmit'`\n *\n * For multiline inputs:\n *\n * - `'newline'` adds a newline\n * - `undefined` defaults to `'newline'`\n *\n * For both single line and multiline inputs:\n *\n * - `'submit'` will only send a submit event and not blur the input\n * - `'blurAndSubmit`' will both blur the input and send a submit event\n */\n submitBehavior?: ?SubmitBehavior,\n\n /**\n * Note that not all Text styles are supported, an incomplete list of what is not supported includes:\n *\n * - `borderLeftWidth`\n * - `borderTopWidth`\n * - `borderRightWidth`\n * - `borderBottomWidth`\n * - `borderTopLeftRadius`\n * - `borderTopRightRadius`\n * - `borderBottomRightRadius`\n * - `borderBottomLeftRadius`\n *\n * see [Issue#7070](https://github.com/facebook/react-native/issues/7070)\n * for more detail.\n *\n * [Styles](docs/style.html)\n */\n // TODO: figure out what to do with this style prop for codegen/Fabric purposes\n // This must be commented for Fabric codegen to work; it's currently not possible\n // to override the default View style prop in codegen.\n style?: ?TextStyleProp,\n\n /**\n * If `true`, caret is hidden. The default value is `false`.\n * This property is supported only for single-line TextInput component on iOS.\n */\n caretHidden?: ?boolean,\n\n /*\n * If `true`, contextMenuHidden is hidden. The default value is `false`.\n */\n contextMenuHidden?: ?boolean,\n\n /**\n * The following are props that `BaseTextShadowNode` takes. It is unclear if they\n * are used by TextInput.\n */\n textShadowColor?: ?ColorValue,\n textShadowRadius?: ?Float,\n textDecorationLine?: ?string,\n fontStyle?: ?string,\n textShadowOffset?: ?$ReadOnly<{|width?: ?Double, height?: ?Double|}>,\n lineHeight?: ?Float,\n textTransform?: ?string,\n color?: ?Int32,\n letterSpacing?: ?Float,\n fontSize?: ?Float,\n textAlign?: ?string,\n includeFontPadding?: ?boolean,\n fontWeight?: ?string,\n fontFamily?: ?string,\n\n /**\n * I cannot find where these are defined but JS complains without them.\n */\n textAlignVertical?: ?string,\n cursorColor?: ?ColorValue,\n\n /**\n * \"Private\" fields used by TextInput.js and not users of this component directly\n */\n mostRecentEventCount: Int32,\n text?: ?string,\n|}>;\n\ntype NativeType = HostComponent;\n\ntype NativeCommands = TextInputNativeCommands;\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['focus', 'blur', 'setTextAndSelection'],\n});\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {\n uiViewClassName: 'AndroidTextInput',\n bubblingEventTypes: {\n topBlur: {\n phasedRegistrationNames: {\n bubbled: 'onBlur',\n captured: 'onBlurCapture',\n },\n },\n topEndEditing: {\n phasedRegistrationNames: {\n bubbled: 'onEndEditing',\n captured: 'onEndEditingCapture',\n },\n },\n topFocus: {\n phasedRegistrationNames: {\n bubbled: 'onFocus',\n captured: 'onFocusCapture',\n },\n },\n topKeyPress: {\n phasedRegistrationNames: {\n bubbled: 'onKeyPress',\n captured: 'onKeyPressCapture',\n },\n },\n topSubmitEditing: {\n phasedRegistrationNames: {\n bubbled: 'onSubmitEditing',\n captured: 'onSubmitEditingCapture',\n },\n },\n topTextInput: {\n phasedRegistrationNames: {\n bubbled: 'onTextInput',\n captured: 'onTextInputCapture',\n },\n },\n },\n directEventTypes: {\n topScroll: {\n registrationName: 'onScroll',\n },\n },\n validAttributes: {\n maxFontSizeMultiplier: true,\n adjustsFontSizeToFit: true,\n minimumFontScale: true,\n autoFocus: true,\n placeholder: true,\n inlineImagePadding: true,\n contextMenuHidden: true,\n textShadowColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n maxLength: true,\n selectTextOnFocus: true,\n textShadowRadius: true,\n underlineColorAndroid: {\n process: require('../../StyleSheet/processColor').default,\n },\n textDecorationLine: true,\n submitBehavior: true,\n textAlignVertical: true,\n fontStyle: true,\n textShadowOffset: true,\n selectionColor: {process: require('../../StyleSheet/processColor').default},\n placeholderTextColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n importantForAutofill: true,\n lineHeight: true,\n textTransform: true,\n returnKeyType: true,\n keyboardType: true,\n multiline: true,\n color: {process: require('../../StyleSheet/processColor').default},\n autoComplete: true,\n numberOfLines: true,\n letterSpacing: true,\n returnKeyLabel: true,\n fontSize: true,\n onKeyPress: true,\n cursorColor: {process: require('../../StyleSheet/processColor').default},\n text: true,\n showSoftInputOnFocus: true,\n textAlign: true,\n autoCapitalize: true,\n autoCorrect: true,\n caretHidden: true,\n secureTextEntry: true,\n textBreakStrategy: true,\n onScroll: true,\n onContentSizeChange: true,\n disableFullscreenUI: true,\n includeFontPadding: true,\n fontWeight: true,\n fontFamily: true,\n allowFontScaling: true,\n onSelectionChange: true,\n mostRecentEventCount: true,\n inlineImageLeft: true,\n editable: true,\n fontVariant: true,\n borderBottomRightRadius: true,\n borderBottomColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderRadius: true,\n borderRightColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderColor: {process: require('../../StyleSheet/processColor').default},\n borderTopRightRadius: true,\n borderStyle: true,\n borderBottomLeftRadius: true,\n borderLeftColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderTopLeftRadius: true,\n borderTopColor: {process: require('../../StyleSheet/processColor').default},\n },\n};\n\nlet AndroidTextInputNativeComponent = NativeComponentRegistry.get(\n 'AndroidTextInput',\n () => __INTERNAL_VIEW_CONFIG,\n);\n\n// flowlint-next-line unclear-type:off\nexport default ((AndroidTextInputNativeComponent: any): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nlet logListeners;\n\ntype LogListeners = {|\n +onDifferentFunctionsIgnored: (nameOne: ?string, nameTwo: ?string) => void,\n|};\n\ntype Options = {|+unsafelyIgnoreFunctions?: boolean|};\n\nfunction unstable_setLogListeners(listeners: ?LogListeners) {\n logListeners = listeners;\n}\n\n/*\n * @returns {bool} true if different, false if equal\n */\nconst deepDiffer = function (\n one: any,\n two: any,\n maxDepthOrOptions: Options | number = -1,\n maybeOptions?: Options,\n): boolean {\n const options =\n typeof maxDepthOrOptions === 'number' ? maybeOptions : maxDepthOrOptions;\n const maxDepth =\n typeof maxDepthOrOptions === 'number' ? maxDepthOrOptions : -1;\n if (maxDepth === 0) {\n return true;\n }\n if (one === two) {\n // Short circuit on identical object references instead of traversing them.\n return false;\n }\n if (typeof one === 'function' && typeof two === 'function') {\n // We consider all functions equal unless explicitly configured otherwise\n let unsafelyIgnoreFunctions = options?.unsafelyIgnoreFunctions;\n if (unsafelyIgnoreFunctions == null) {\n if (\n logListeners &&\n logListeners.onDifferentFunctionsIgnored &&\n (!options || !('unsafelyIgnoreFunctions' in options))\n ) {\n logListeners.onDifferentFunctionsIgnored(one.name, two.name);\n }\n unsafelyIgnoreFunctions = true;\n }\n return !unsafelyIgnoreFunctions;\n }\n if (typeof one !== 'object' || one === null) {\n // Primitives can be directly compared\n return one !== two;\n }\n if (typeof two !== 'object' || two === null) {\n // We know they are different because the previous case would have triggered\n // otherwise.\n return true;\n }\n if (one.constructor !== two.constructor) {\n return true;\n }\n if (Array.isArray(one)) {\n // We know two is also an array because the constructors are equal\n const len = one.length;\n if (two.length !== len) {\n return true;\n }\n for (let ii = 0; ii < len; ii++) {\n if (deepDiffer(one[ii], two[ii], maxDepth - 1, options)) {\n return true;\n }\n }\n } else {\n for (const key in one) {\n if (deepDiffer(one[key], two[key], maxDepth - 1, options)) {\n return true;\n }\n }\n for (const twoKey in two) {\n // The only case we haven't checked yet is keys that are in two but aren't\n // in one, which means they are different.\n if (one[twoKey] === undefined && two[twoKey] !== undefined) {\n return true;\n }\n }\n }\n return false;\n};\n\ndeepDiffer.unstable_setLogListeners = unstable_setLogListeners;\nmodule.exports = deepDiffer;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\n/**\n * If your application is accepting different values for the same field over\n * time and is doing a diff on them, you can either (1) create a copy or\n * (2) ensure that those values are not mutated behind two passes.\n * This function helps you with (2) by freezing the object and throwing if\n * the user subsequently modifies the value.\n *\n * There are two caveats with this function:\n * - If the call site is not in strict mode, it will only throw when\n * mutating existing fields, adding a new one\n * will unfortunately fail silently :(\n * - If the object is already frozen or sealed, it will not continue the\n * deep traversal and will leave leaf nodes unfrozen.\n *\n * Freezing the object and adding the throw mechanism is expensive and will\n * only be used in DEV.\n */\nfunction deepFreezeAndThrowOnMutationInDev>(\n object: T,\n): T {\n if (__DEV__) {\n if (\n typeof object !== 'object' ||\n object === null ||\n Object.isFrozen(object) ||\n Object.isSealed(object)\n ) {\n return object;\n }\n\n // $FlowFixMe[not-an-object] `object` can be an array, but Object.keys works with arrays too\n const keys = Object.keys((object: {...} | Array));\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n const hasOwnProperty = Object.prototype.hasOwnProperty;\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (hasOwnProperty.call(object, key)) {\n Object.defineProperty(object, key, {\n get: identity.bind(null, object[key]),\n });\n Object.defineProperty(object, key, {\n set: throwOnImmutableMutation.bind(null, key),\n });\n }\n }\n\n Object.freeze(object);\n Object.seal(object);\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (hasOwnProperty.call(object, key)) {\n deepFreezeAndThrowOnMutationInDev(object[key]);\n }\n }\n }\n return object;\n}\n\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\nfunction throwOnImmutableMutation(key: empty, value) {\n throw Error(\n 'You attempted to set the key `' +\n key +\n '` with the value `' +\n JSON.stringify(value) +\n '` on an object that is meant to be immutable ' +\n 'and has been frozen.',\n );\n}\n\nfunction identity(value: mixed) {\n return value;\n}\n\nmodule.exports = deepFreezeAndThrowOnMutationInDev;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {ExtendedError} from './ExtendedError';\n\nimport {SyntheticError, handleException} from './ExceptionsManager';\n\nexport type CapturedError = {\n +componentStack: string,\n +error: mixed,\n +errorBoundary: ?{...},\n ...\n};\n\nconst ReactFiberErrorDialog = {\n /**\n * Intercept lifecycle errors and ensure they are shown with the correct stack\n * trace within the native redbox component.\n */\n showErrorDialog({componentStack, error: errorValue}: CapturedError): boolean {\n let error: ?ExtendedError;\n\n // Typically, `errorValue` should be an error. However, other values such as\n // strings (or even null) are sometimes thrown.\n if (errorValue instanceof Error) {\n /* $FlowFixMe[class-object-subtyping] added when improving typing for\n * this parameters */\n error = (errorValue: ExtendedError);\n } else if (typeof errorValue === 'string') {\n /* $FlowFixMe[class-object-subtyping] added when improving typing for\n * this parameters */\n error = (new SyntheticError(errorValue): ExtendedError);\n } else {\n /* $FlowFixMe[class-object-subtyping] added when improving typing for\n * this parameters */\n error = (new SyntheticError('Unspecified error'): ExtendedError);\n }\n try {\n error.componentStack = componentStack;\n error.isComponentError = true;\n } catch {\n // Ignored.\n }\n\n handleException(error, false);\n\n // Return false here to prevent ReactFiberErrorLogger default behavior of\n // logging error details to console.error. Calls to console.error are\n // automatically routed to the native redbox controller, which we've already\n // done above by calling ExceptionsManager.\n return false;\n },\n};\n\nexport default ReactFiberErrorDialog;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {IEventEmitter} from '../vendor/emitter/EventEmitter';\n\nimport EventEmitter from '../vendor/emitter/EventEmitter';\n\nexport type RawEventEmitterEvent = $ReadOnly<{|\n eventName: string,\n // We expect, but do not/cannot require, that nativeEvent is an object\n // with the properties: key, elementType (string), type (string), tag (numeric),\n // and a stateNode of the native element/Fiber the event was emitted to.\n nativeEvent: {[string]: mixed},\n|}>;\n\ntype RawEventDefinitions = {\n [eventChannel: string]: [RawEventEmitterEvent],\n};\n\nconst RawEventEmitter: IEventEmitter =\n new EventEmitter();\n\n// See the React renderer / react repo for how this is used.\n// Raw events are emitted here when they are received in JS\n// and before any event Plugins process them or before components\n// have a chance to respond to them. This allows you to implement\n// app-specific perf monitoring, which is unimplemented by default,\n// making this entire RawEventEmitter do nothing by default until\n// *you* add listeners for your own app.\n// Besides perf monitoring and maybe debugging, this RawEventEmitter\n// should not be used.\nexport default RawEventEmitter;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n// Make sure global Event is defined\nimport EventPolyfill from './EventPolyfill';\n\ntype CustomEvent$Options = $ReadOnly<{|\n bubbles?: boolean,\n cancelable?: boolean,\n composed?: boolean,\n detail?: {...},\n|}>;\n\nclass CustomEvent extends EventPolyfill {\n detail: ?{...};\n\n constructor(typeArg: string, options: CustomEvent$Options) {\n const {bubbles, cancelable, composed} = options;\n super(typeArg, {bubbles, cancelable, composed});\n\n this.detail = options.detail; // this would correspond to `NativeEvent` in SyntheticEvent\n }\n}\n\nexport default CustomEvent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n// https://dom.spec.whatwg.org/#dictdef-eventinit\ntype Event$Init = {\n bubbles?: boolean,\n cancelable?: boolean,\n composed?: boolean,\n /** Non-standard. See `composed` instead. */\n scoped?: boolean,\n ...\n};\n\n/**\n * This is a copy of the Event interface defined in Flow:\n * https://github.com/facebook/flow/blob/741104e69c43057ebd32804dd6bcc1b5e97548ea/lib/dom.js\n * which is itself a faithful interface of the W3 spec:\n * https://dom.spec.whatwg.org/#interface-event\n *\n * Since Flow assumes that Event is provided and is on the global object,\n * we must provide an implementation of Event for CustomEvent (and future\n * alignment of React Native's event system with the W3 spec).\n */\ninterface IEvent {\n constructor(type: string, eventInitDict?: Event$Init): void;\n /**\n * Returns the type of event, e.g. \"click\", \"hashchange\", or \"submit\".\n */\n +type: string;\n /**\n * Returns the object to which event is dispatched (its target).\n */\n +target: EventTarget; // TODO: nullable\n /** @deprecated */\n +srcElement: Element; // TODO: nullable\n /**\n * Returns the object whose event listener's callback is currently being invoked.\n */\n +currentTarget: EventTarget; // TODO: nullable\n /**\n * Returns the invocation target objects of event's path (objects on which\n * listeners will be invoked), except for any nodes in shadow trees of which\n * the shadow root's mode is \"closed\" that are not reachable from event's\n * currentTarget.\n */\n composedPath(): Array;\n\n +NONE: number;\n +AT_TARGET: number;\n +BUBBLING_PHASE: number;\n +CAPTURING_PHASE: number;\n /**\n * Returns the event's phase, which is one of NONE, CAPTURING_PHASE, AT_TARGET,\n * and BUBBLING_PHASE.\n */\n +eventPhase: number;\n\n /**\n * When dispatched in a tree, invoking this method prevents event from reaching\n * any objects other than the current object.\n */\n stopPropagation(): void;\n /**\n * Invoking this method prevents event from reaching any registered event\n * listeners after the current one finishes running and, when dispatched in a\n * tree, also prevents event from reaching any other objects.\n */\n stopImmediatePropagation(): void;\n\n /**\n * Returns true or false depending on how event was initialized. True if\n * event goes through its target's ancestors in reverse tree order, and\n * false otherwise.\n */\n +bubbles: boolean;\n /**\n * Returns true or false depending on how event was initialized. Its\n * return value does not always carry meaning, but true can indicate\n * that part of the operation during which event was dispatched, can\n * be canceled by invoking the preventDefault() method.\n */\n +cancelable: boolean;\n // returnValue: boolean; // legacy, and some subclasses still define it as a string!\n /**\n * If invoked when the cancelable attribute value is true, and while\n * executing a listener for the event with passive set to false, signals to\n * the operation that caused event to be dispatched that it needs to be\n * canceled.\n */\n preventDefault(): void;\n /**\n * Returns true if preventDefault() was invoked successfully to indicate\n * cancelation, and false otherwise.\n */\n +defaultPrevented: boolean;\n /**\n * Returns true or false depending on how event was initialized. True if\n * event invokes listeners past a ShadowRoot node that is the root of its\n * target, and false otherwise.\n */\n +composed: boolean;\n\n /**\n * Returns true if event was dispatched by the user agent, and false otherwise.\n */\n +isTrusted: boolean;\n /**\n * Returns the event's timestamp as the number of milliseconds measured relative\n * to the time origin.\n */\n +timeStamp: number;\n\n /** Non-standard. See Event.prototype.composedPath */\n +deepPath?: () => EventTarget[];\n /** Non-standard. See Event.prototype.composed */\n +scoped: boolean;\n\n /**\n * @deprecated\n */\n initEvent(type: string, bubbles: boolean, cancelable: boolean): void;\n}\n\nclass EventPolyfill implements IEvent {\n type: string;\n bubbles: boolean;\n cancelable: boolean;\n composed: boolean;\n // Non-standard. See `composed` instead.\n scoped: boolean;\n isTrusted: boolean;\n defaultPrevented: boolean;\n timeStamp: number;\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Event/eventPhase\n NONE: number;\n AT_TARGET: number;\n BUBBLING_PHASE: number;\n CAPTURING_PHASE: number;\n\n eventPhase: number;\n\n currentTarget: EventTarget; // TODO: nullable\n target: EventTarget; // TODO: nullable\n /** @deprecated */\n srcElement: Element; // TODO: nullable\n\n // React Native-specific: proxy data to a SyntheticEvent when\n // certain methods are called.\n // SyntheticEvent will also have a reference to this instance -\n // it is circular - and both classes use this reference to keep\n // data with the other in sync.\n _syntheticEvent: mixed;\n\n constructor(type: string, eventInitDict?: Event$Init) {\n this.type = type;\n this.bubbles = !!(eventInitDict?.bubbles || false);\n this.cancelable = !!(eventInitDict?.cancelable || false);\n this.composed = !!(eventInitDict?.composed || false);\n this.scoped = !!(eventInitDict?.scoped || false);\n\n // TODO: somehow guarantee that only \"private\" instantiations of Event\n // can set this to true\n this.isTrusted = false;\n\n // TODO: in the future we'll want to make sure this has the same\n // time-basis as events originating from native\n this.timeStamp = Date.now();\n\n this.defaultPrevented = false;\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Event/eventPhase\n this.NONE = 0;\n this.AT_TARGET = 1;\n this.BUBBLING_PHASE = 2;\n this.CAPTURING_PHASE = 3;\n this.eventPhase = this.NONE;\n\n // $FlowFixMe\n this.currentTarget = null;\n // $FlowFixMe\n this.target = null;\n // $FlowFixMe\n this.srcElement = null;\n }\n\n composedPath(): Array {\n throw new Error('TODO: not yet implemented');\n }\n\n preventDefault(): void {\n this.defaultPrevented = true;\n\n if (this._syntheticEvent != null) {\n // $FlowFixMe\n this._syntheticEvent.preventDefault();\n }\n }\n\n initEvent(type: string, bubbles: boolean, cancelable: boolean): void {\n throw new Error(\n 'TODO: not yet implemented. This method is also deprecated.',\n );\n }\n\n stopImmediatePropagation(): void {\n throw new Error('TODO: not yet implemented');\n }\n\n stopPropagation(): void {\n if (this._syntheticEvent != null) {\n // $FlowFixMe\n this._syntheticEvent.stopPropagation();\n }\n }\n\n setSyntheticEvent(value: mixed): void {\n this._syntheticEvent = value;\n }\n}\n\n// Assertion magic for polyfill follows.\ndeclare var checkEvent: Event; // eslint-disable-line no-unused-vars\n\n/*::\n// This can be a strict mode error at runtime so put it in a Flow comment.\n(checkEvent: IEvent);\n*/\n\nglobal.Event = EventPolyfill;\n\nexport default EventPolyfill;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.native.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.native.development.js');\n}\n","/**\n * @license React\n * scheduler.native.production.min.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(E,c))ng(A,E)?(a[d]=A,a[n]=c,d=n):(a[d]=E,a[m]=c,d=m);else if(ng(A,c))a[d]=A,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var l;if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var p=performance;l=function(){return p.now()}}else{var q=Date,r=q.now();l=function(){return q.now()-r}}var u=[],v=[],w=1,x=null,y=3,z=!1,B=!1,C=!1,D=\"function\"===typeof setTimeout?setTimeout:null,F=\"function\"===typeof clearTimeout?clearTimeout:null,G=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending?navigator.scheduling.isInputPending.bind(navigator.scheduling):null;function H(a){for(var b=h(v);null!==b;){if(null===b.callback)k(v);else if(b.startTime<=a)k(v),b.sortIndex=b.expirationTime,f(u,b);else break;b=h(v)}}function I(a){C=!1;H(a);if(!B)if(null!==h(u))B=!0,J=K,L||(L=!0,M());else{var b=h(v);null!==b&&N(I,b.startTime-a)}}\nfunction K(a,b){B=!1;C&&(C=!1,F(O),O=-1);z=!0;var c=y;try{a:{H(b);for(x=h(u);null!==x&&(!(x.expirationTime>b)||a&&!P());){var d=x.callback;if(\"function\"===typeof d){x.callback=null;y=x.priorityLevel;var e=d(x.expirationTime<=b);b=l();if(\"function\"===typeof e){x.callback=e;H(b);var t=!0;break a}else x===h(u)&&k(u),H(b)}else k(u);x=h(u)}if(null!==x)t=!0;else{var m=h(v);null!==m&&N(I,m.startTime-b);t=!1}}return t}finally{x=null,y=c,z=!1}}\nfunction Q(a,b,c){var d=l();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,f(v,a),null===h(u)&&a===h(v)&&(C?(F(O),O=-1):C=!0,N(I,c-d))):(a.sortIndex=e,f(u,a),B||z||(B=!0,J=K,L||(L=!0,M())));return a}function R(a){a.callback=null}function S(){return y}\nvar L=!1,J=null,O=-1,T=-1;function P(){return 5>l()-T?!1:!0}function U(){}function V(){if(null!==J){var a=l();T=a;var b=!0;try{b=J(!0,a)}finally{b?M():(L=!1,J=null)}}else L=!1}var M;if(\"function\"===typeof G)M=function(){G(V)};else if(\"undefined\"!==typeof MessageChannel){var W=new MessageChannel,X=W.port2;W.port1.onmessage=V;M=function(){X.postMessage(null)}}else M=function(){D(V,0)};function N(a,b){O=D(function(){a(l())},b)}\nvar Y=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_UserBlockingPriority:2,aa=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_NormalPriority:3,ba=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_LowPriority:4,ca=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_ImmediatePriority:1,da=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_scheduleCallback:Q,ea=\"undefined\"!==\ntypeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_cancelCallback:R,fa=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_getCurrentPriorityLevel:S,ha=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_shouldYield:P,ia=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_requestPaint:U,ja=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_now:l;\nfunction Z(){throw Error(\"Not implemented.\");}exports.unstable_IdlePriority=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_IdlePriority:5;exports.unstable_ImmediatePriority=ca;exports.unstable_LowPriority=ba;exports.unstable_NormalPriority=aa;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=Y;exports.unstable_cancelCallback=ea;exports.unstable_continueExecution=Z;exports.unstable_forceFrameRate=Z;exports.unstable_getCurrentPriorityLevel=fa;\nexports.unstable_getFirstCallbackNode=Z;exports.unstable_next=Z;exports.unstable_now=ja;exports.unstable_pauseExecution=Z;exports.unstable_requestPaint=ia;exports.unstable_runWithPriority=Z;exports.unstable_scheduleCallback=da;exports.unstable_shouldYield=ha;exports.unstable_wrapCallback=Z;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @noformat\n * @flow\n * @generated SignedSource<<744176db456e2656dac661d36e55f42a>>\n *\n * This file was sync'd from the facebook/react repository.\n */\n\n'use strict';\n\nimport type {ReactNativeType} from './ReactNativeTypes';\n\nlet ReactNative;\n\nif (__DEV__) {\n ReactNative = require('../implementations/ReactNativeRenderer-dev');\n} else {\n ReactNative = require('../implementations/ReactNativeRenderer-prod');\n}\n\nmodule.exports = (ReactNative: ReactNativeType);\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @noflow\n * @nolint\n * @providesModule ReactNativeRenderer-prod\n * @preventMunge\n * @generated SignedSource<<07cf699c0d1c149943b7a02432aa1550>>\n */\n\n\"use strict\";\nrequire(\"react-native/Libraries/ReactPrivate/ReactNativePrivateInitializeCore\");\nvar ReactNativePrivateInterface = require(\"react-native/Libraries/ReactPrivate/ReactNativePrivateInterface\"),\n React = require(\"react\"),\n Scheduler = require(\"scheduler\");\nfunction invokeGuardedCallbackImpl(name, func, context, a, b, c, d, e, f) {\n var funcArgs = Array.prototype.slice.call(arguments, 3);\n try {\n func.apply(context, funcArgs);\n } catch (error) {\n this.onError(error);\n }\n}\nvar hasError = !1,\n caughtError = null,\n hasRethrowError = !1,\n rethrowError = null,\n reporter = {\n onError: function(error) {\n hasError = !0;\n caughtError = error;\n }\n };\nfunction invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {\n hasError = !1;\n caughtError = null;\n invokeGuardedCallbackImpl.apply(reporter, arguments);\n}\nfunction invokeGuardedCallbackAndCatchFirstError(\n name,\n func,\n context,\n a,\n b,\n c,\n d,\n e,\n f\n) {\n invokeGuardedCallback.apply(this, arguments);\n if (hasError) {\n if (hasError) {\n var error = caughtError;\n hasError = !1;\n caughtError = null;\n } else\n throw Error(\n \"clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.\"\n );\n hasRethrowError || ((hasRethrowError = !0), (rethrowError = error));\n }\n}\nvar isArrayImpl = Array.isArray,\n getFiberCurrentPropsFromNode = null,\n getInstanceFromNode = null,\n getNodeFromInstance = null;\nfunction executeDispatch(event, listener, inst) {\n var type = event.type || \"unknown-event\";\n event.currentTarget = getNodeFromInstance(inst);\n invokeGuardedCallbackAndCatchFirstError(type, listener, void 0, event);\n event.currentTarget = null;\n}\nfunction executeDirectDispatch(event) {\n var dispatchListener = event._dispatchListeners,\n dispatchInstance = event._dispatchInstances;\n if (isArrayImpl(dispatchListener))\n throw Error(\"executeDirectDispatch(...): Invalid `event`.\");\n event.currentTarget = dispatchListener\n ? getNodeFromInstance(dispatchInstance)\n : null;\n dispatchListener = dispatchListener ? dispatchListener(event) : null;\n event.currentTarget = null;\n event._dispatchListeners = null;\n event._dispatchInstances = null;\n return dispatchListener;\n}\nvar assign = Object.assign;\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction SyntheticEvent(\n dispatchConfig,\n targetInst,\n nativeEvent,\n nativeEventTarget\n) {\n this.dispatchConfig = dispatchConfig;\n this._targetInst = targetInst;\n this.nativeEvent = nativeEvent;\n this._dispatchInstances = this._dispatchListeners = null;\n dispatchConfig = this.constructor.Interface;\n for (var propName in dispatchConfig)\n dispatchConfig.hasOwnProperty(propName) &&\n ((targetInst = dispatchConfig[propName])\n ? (this[propName] = targetInst(nativeEvent))\n : \"target\" === propName\n ? (this.target = nativeEventTarget)\n : (this[propName] = nativeEvent[propName]));\n this.isDefaultPrevented = (null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue)\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n}\nassign(SyntheticEvent.prototype, {\n preventDefault: function() {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function() {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble && (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function() {\n this.isPersistent = functionThatReturnsTrue;\n },\n isPersistent: functionThatReturnsFalse,\n destructor: function() {\n var Interface = this.constructor.Interface,\n propName;\n for (propName in Interface) this[propName] = null;\n this.nativeEvent = this._targetInst = this.dispatchConfig = null;\n this.isPropagationStopped = this.isDefaultPrevented = functionThatReturnsFalse;\n this._dispatchInstances = this._dispatchListeners = null;\n }\n});\nSyntheticEvent.Interface = {\n type: null,\n target: null,\n currentTarget: function() {\n return null;\n },\n eventPhase: null,\n bubbles: null,\n cancelable: null,\n timeStamp: function(event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: null,\n isTrusted: null\n};\nSyntheticEvent.extend = function(Interface) {\n function E() {}\n function Class() {\n return Super.apply(this, arguments);\n }\n var Super = this;\n E.prototype = Super.prototype;\n var prototype = new E();\n assign(prototype, Class.prototype);\n Class.prototype = prototype;\n Class.prototype.constructor = Class;\n Class.Interface = assign({}, Super.Interface, Interface);\n Class.extend = Super.extend;\n addEventPoolingTo(Class);\n return Class;\n};\naddEventPoolingTo(SyntheticEvent);\nfunction createOrGetPooledEvent(\n dispatchConfig,\n targetInst,\n nativeEvent,\n nativeInst\n) {\n if (this.eventPool.length) {\n var instance = this.eventPool.pop();\n this.call(instance, dispatchConfig, targetInst, nativeEvent, nativeInst);\n return instance;\n }\n return new this(dispatchConfig, targetInst, nativeEvent, nativeInst);\n}\nfunction releasePooledEvent(event) {\n if (!(event instanceof this))\n throw Error(\n \"Trying to release an event instance into a pool of a different type.\"\n );\n event.destructor();\n 10 > this.eventPool.length && this.eventPool.push(event);\n}\nfunction addEventPoolingTo(EventConstructor) {\n EventConstructor.getPooled = createOrGetPooledEvent;\n EventConstructor.eventPool = [];\n EventConstructor.release = releasePooledEvent;\n}\nvar ResponderSyntheticEvent = SyntheticEvent.extend({\n touchHistory: function() {\n return null;\n }\n});\nfunction isStartish(topLevelType) {\n return \"topTouchStart\" === topLevelType;\n}\nfunction isMoveish(topLevelType) {\n return \"topTouchMove\" === topLevelType;\n}\nvar startDependencies = [\"topTouchStart\"],\n moveDependencies = [\"topTouchMove\"],\n endDependencies = [\"topTouchCancel\", \"topTouchEnd\"],\n touchBank = [],\n touchHistory = {\n touchBank: touchBank,\n numberActiveTouches: 0,\n indexOfSingleActiveTouch: -1,\n mostRecentTimeStamp: 0\n };\nfunction timestampForTouch(touch) {\n return touch.timeStamp || touch.timestamp;\n}\nfunction getTouchIdentifier(_ref) {\n _ref = _ref.identifier;\n if (null == _ref) throw Error(\"Touch object is missing identifier.\");\n return _ref;\n}\nfunction recordTouchStart(touch) {\n var identifier = getTouchIdentifier(touch),\n touchRecord = touchBank[identifier];\n touchRecord\n ? ((touchRecord.touchActive = !0),\n (touchRecord.startPageX = touch.pageX),\n (touchRecord.startPageY = touch.pageY),\n (touchRecord.startTimeStamp = timestampForTouch(touch)),\n (touchRecord.currentPageX = touch.pageX),\n (touchRecord.currentPageY = touch.pageY),\n (touchRecord.currentTimeStamp = timestampForTouch(touch)),\n (touchRecord.previousPageX = touch.pageX),\n (touchRecord.previousPageY = touch.pageY),\n (touchRecord.previousTimeStamp = timestampForTouch(touch)))\n : ((touchRecord = {\n touchActive: !0,\n startPageX: touch.pageX,\n startPageY: touch.pageY,\n startTimeStamp: timestampForTouch(touch),\n currentPageX: touch.pageX,\n currentPageY: touch.pageY,\n currentTimeStamp: timestampForTouch(touch),\n previousPageX: touch.pageX,\n previousPageY: touch.pageY,\n previousTimeStamp: timestampForTouch(touch)\n }),\n (touchBank[identifier] = touchRecord));\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n}\nfunction recordTouchMove(touch) {\n var touchRecord = touchBank[getTouchIdentifier(touch)];\n touchRecord &&\n ((touchRecord.touchActive = !0),\n (touchRecord.previousPageX = touchRecord.currentPageX),\n (touchRecord.previousPageY = touchRecord.currentPageY),\n (touchRecord.previousTimeStamp = touchRecord.currentTimeStamp),\n (touchRecord.currentPageX = touch.pageX),\n (touchRecord.currentPageY = touch.pageY),\n (touchRecord.currentTimeStamp = timestampForTouch(touch)),\n (touchHistory.mostRecentTimeStamp = timestampForTouch(touch)));\n}\nfunction recordTouchEnd(touch) {\n var touchRecord = touchBank[getTouchIdentifier(touch)];\n touchRecord &&\n ((touchRecord.touchActive = !1),\n (touchRecord.previousPageX = touchRecord.currentPageX),\n (touchRecord.previousPageY = touchRecord.currentPageY),\n (touchRecord.previousTimeStamp = touchRecord.currentTimeStamp),\n (touchRecord.currentPageX = touch.pageX),\n (touchRecord.currentPageY = touch.pageY),\n (touchRecord.currentTimeStamp = timestampForTouch(touch)),\n (touchHistory.mostRecentTimeStamp = timestampForTouch(touch)));\n}\nvar instrumentationCallback,\n ResponderTouchHistoryStore = {\n instrument: function(callback) {\n instrumentationCallback = callback;\n },\n recordTouchTrack: function(topLevelType, nativeEvent) {\n null != instrumentationCallback &&\n instrumentationCallback(topLevelType, nativeEvent);\n if (isMoveish(topLevelType))\n nativeEvent.changedTouches.forEach(recordTouchMove);\n else if (isStartish(topLevelType))\n nativeEvent.changedTouches.forEach(recordTouchStart),\n (touchHistory.numberActiveTouches = nativeEvent.touches.length),\n 1 === touchHistory.numberActiveTouches &&\n (touchHistory.indexOfSingleActiveTouch =\n nativeEvent.touches[0].identifier);\n else if (\n \"topTouchEnd\" === topLevelType ||\n \"topTouchCancel\" === topLevelType\n )\n if (\n (nativeEvent.changedTouches.forEach(recordTouchEnd),\n (touchHistory.numberActiveTouches = nativeEvent.touches.length),\n 1 === touchHistory.numberActiveTouches)\n )\n for (\n topLevelType = 0;\n topLevelType < touchBank.length;\n topLevelType++\n )\n if (\n ((nativeEvent = touchBank[topLevelType]),\n null != nativeEvent && nativeEvent.touchActive)\n ) {\n touchHistory.indexOfSingleActiveTouch = topLevelType;\n break;\n }\n },\n touchHistory: touchHistory\n };\nfunction accumulate(current, next) {\n if (null == next)\n throw Error(\n \"accumulate(...): Accumulated items must not be null or undefined.\"\n );\n return null == current\n ? next\n : isArrayImpl(current)\n ? current.concat(next)\n : isArrayImpl(next)\n ? [current].concat(next)\n : [current, next];\n}\nfunction accumulateInto(current, next) {\n if (null == next)\n throw Error(\n \"accumulateInto(...): Accumulated items must not be null or undefined.\"\n );\n if (null == current) return next;\n if (isArrayImpl(current)) {\n if (isArrayImpl(next)) return current.push.apply(current, next), current;\n current.push(next);\n return current;\n }\n return isArrayImpl(next) ? [current].concat(next) : [current, next];\n}\nfunction forEachAccumulated(arr, cb, scope) {\n Array.isArray(arr) ? arr.forEach(cb, scope) : arr && cb.call(scope, arr);\n}\nvar responderInst = null,\n trackedTouchCount = 0;\nfunction changeResponder(nextResponderInst, blockHostResponder) {\n var oldResponderInst = responderInst;\n responderInst = nextResponderInst;\n if (null !== ResponderEventPlugin.GlobalResponderHandler)\n ResponderEventPlugin.GlobalResponderHandler.onChange(\n oldResponderInst,\n nextResponderInst,\n blockHostResponder\n );\n}\nvar eventTypes = {\n startShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onStartShouldSetResponder\",\n captured: \"onStartShouldSetResponderCapture\"\n },\n dependencies: startDependencies\n },\n scrollShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onScrollShouldSetResponder\",\n captured: \"onScrollShouldSetResponderCapture\"\n },\n dependencies: [\"topScroll\"]\n },\n selectionChangeShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onSelectionChangeShouldSetResponder\",\n captured: \"onSelectionChangeShouldSetResponderCapture\"\n },\n dependencies: [\"topSelectionChange\"]\n },\n moveShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onMoveShouldSetResponder\",\n captured: \"onMoveShouldSetResponderCapture\"\n },\n dependencies: moveDependencies\n },\n responderStart: {\n registrationName: \"onResponderStart\",\n dependencies: startDependencies\n },\n responderMove: {\n registrationName: \"onResponderMove\",\n dependencies: moveDependencies\n },\n responderEnd: {\n registrationName: \"onResponderEnd\",\n dependencies: endDependencies\n },\n responderRelease: {\n registrationName: \"onResponderRelease\",\n dependencies: endDependencies\n },\n responderTerminationRequest: {\n registrationName: \"onResponderTerminationRequest\",\n dependencies: []\n },\n responderGrant: { registrationName: \"onResponderGrant\", dependencies: [] },\n responderReject: { registrationName: \"onResponderReject\", dependencies: [] },\n responderTerminate: {\n registrationName: \"onResponderTerminate\",\n dependencies: []\n }\n};\nfunction getParent(inst) {\n do inst = inst.return;\n while (inst && 5 !== inst.tag);\n return inst ? inst : null;\n}\nfunction traverseTwoPhase(inst, fn, arg) {\n for (var path = []; inst; ) path.push(inst), (inst = getParent(inst));\n for (inst = path.length; 0 < inst--; ) fn(path[inst], \"captured\", arg);\n for (inst = 0; inst < path.length; inst++) fn(path[inst], \"bubbled\", arg);\n}\nfunction getListener(inst, registrationName) {\n inst = inst.stateNode;\n if (null === inst) return null;\n inst = getFiberCurrentPropsFromNode(inst);\n if (null === inst) return null;\n if ((inst = inst[registrationName]) && \"function\" !== typeof inst)\n throw Error(\n \"Expected `\" +\n registrationName +\n \"` listener to be a function, instead got a value of `\" +\n typeof inst +\n \"` type.\"\n );\n return inst;\n}\nfunction accumulateDirectionalDispatches(inst, phase, event) {\n if (\n (phase = getListener(\n inst,\n event.dispatchConfig.phasedRegistrationNames[phase]\n ))\n )\n (event._dispatchListeners = accumulateInto(\n event._dispatchListeners,\n phase\n )),\n (event._dispatchInstances = accumulateInto(\n event._dispatchInstances,\n inst\n ));\n}\nfunction accumulateDirectDispatchesSingle(event) {\n if (event && event.dispatchConfig.registrationName) {\n var inst = event._targetInst;\n if (inst && event && event.dispatchConfig.registrationName) {\n var listener = getListener(inst, event.dispatchConfig.registrationName);\n listener &&\n ((event._dispatchListeners = accumulateInto(\n event._dispatchListeners,\n listener\n )),\n (event._dispatchInstances = accumulateInto(\n event._dispatchInstances,\n inst\n )));\n }\n }\n}\nfunction accumulateTwoPhaseDispatchesSingleSkipTarget(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n var targetInst = event._targetInst;\n targetInst = targetInst ? getParent(targetInst) : null;\n traverseTwoPhase(targetInst, accumulateDirectionalDispatches, event);\n }\n}\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n event &&\n event.dispatchConfig.phasedRegistrationNames &&\n traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);\n}\nvar ResponderEventPlugin = {\n _getResponder: function() {\n return responderInst;\n },\n eventTypes: eventTypes,\n extractEvents: function(\n topLevelType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n if (isStartish(topLevelType)) trackedTouchCount += 1;\n else if (\n \"topTouchEnd\" === topLevelType ||\n \"topTouchCancel\" === topLevelType\n )\n if (0 <= trackedTouchCount) --trackedTouchCount;\n else return null;\n ResponderTouchHistoryStore.recordTouchTrack(topLevelType, nativeEvent);\n if (\n targetInst &&\n ((\"topScroll\" === topLevelType && !nativeEvent.responderIgnoreScroll) ||\n (0 < trackedTouchCount && \"topSelectionChange\" === topLevelType) ||\n isStartish(topLevelType) ||\n isMoveish(topLevelType))\n ) {\n var shouldSetEventType = isStartish(topLevelType)\n ? eventTypes.startShouldSetResponder\n : isMoveish(topLevelType)\n ? eventTypes.moveShouldSetResponder\n : \"topSelectionChange\" === topLevelType\n ? eventTypes.selectionChangeShouldSetResponder\n : eventTypes.scrollShouldSetResponder;\n if (responderInst)\n b: {\n var JSCompiler_temp = responderInst;\n for (\n var depthA = 0, tempA = JSCompiler_temp;\n tempA;\n tempA = getParent(tempA)\n )\n depthA++;\n tempA = 0;\n for (var tempB = targetInst; tempB; tempB = getParent(tempB))\n tempA++;\n for (; 0 < depthA - tempA; )\n (JSCompiler_temp = getParent(JSCompiler_temp)), depthA--;\n for (; 0 < tempA - depthA; )\n (targetInst = getParent(targetInst)), tempA--;\n for (; depthA--; ) {\n if (\n JSCompiler_temp === targetInst ||\n JSCompiler_temp === targetInst.alternate\n )\n break b;\n JSCompiler_temp = getParent(JSCompiler_temp);\n targetInst = getParent(targetInst);\n }\n JSCompiler_temp = null;\n }\n else JSCompiler_temp = targetInst;\n targetInst = JSCompiler_temp;\n JSCompiler_temp = targetInst === responderInst;\n shouldSetEventType = ResponderSyntheticEvent.getPooled(\n shouldSetEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory;\n JSCompiler_temp\n ? forEachAccumulated(\n shouldSetEventType,\n accumulateTwoPhaseDispatchesSingleSkipTarget\n )\n : forEachAccumulated(\n shouldSetEventType,\n accumulateTwoPhaseDispatchesSingle\n );\n b: {\n JSCompiler_temp = shouldSetEventType._dispatchListeners;\n targetInst = shouldSetEventType._dispatchInstances;\n if (isArrayImpl(JSCompiler_temp))\n for (\n depthA = 0;\n depthA < JSCompiler_temp.length &&\n !shouldSetEventType.isPropagationStopped();\n depthA++\n ) {\n if (\n JSCompiler_temp[depthA](shouldSetEventType, targetInst[depthA])\n ) {\n JSCompiler_temp = targetInst[depthA];\n break b;\n }\n }\n else if (\n JSCompiler_temp &&\n JSCompiler_temp(shouldSetEventType, targetInst)\n ) {\n JSCompiler_temp = targetInst;\n break b;\n }\n JSCompiler_temp = null;\n }\n shouldSetEventType._dispatchInstances = null;\n shouldSetEventType._dispatchListeners = null;\n shouldSetEventType.isPersistent() ||\n shouldSetEventType.constructor.release(shouldSetEventType);\n if (JSCompiler_temp && JSCompiler_temp !== responderInst)\n if (\n ((shouldSetEventType = ResponderSyntheticEvent.getPooled(\n eventTypes.responderGrant,\n JSCompiler_temp,\n nativeEvent,\n nativeEventTarget\n )),\n (shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(\n shouldSetEventType,\n accumulateDirectDispatchesSingle\n ),\n (targetInst = !0 === executeDirectDispatch(shouldSetEventType)),\n responderInst)\n )\n if (\n ((depthA = ResponderSyntheticEvent.getPooled(\n eventTypes.responderTerminationRequest,\n responderInst,\n nativeEvent,\n nativeEventTarget\n )),\n (depthA.touchHistory = ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(depthA, accumulateDirectDispatchesSingle),\n (tempA =\n !depthA._dispatchListeners || executeDirectDispatch(depthA)),\n depthA.isPersistent() || depthA.constructor.release(depthA),\n tempA)\n ) {\n depthA = ResponderSyntheticEvent.getPooled(\n eventTypes.responderTerminate,\n responderInst,\n nativeEvent,\n nativeEventTarget\n );\n depthA.touchHistory = ResponderTouchHistoryStore.touchHistory;\n forEachAccumulated(depthA, accumulateDirectDispatchesSingle);\n var JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n [shouldSetEventType, depthA]\n );\n changeResponder(JSCompiler_temp, targetInst);\n } else\n (shouldSetEventType = ResponderSyntheticEvent.getPooled(\n eventTypes.responderReject,\n JSCompiler_temp,\n nativeEvent,\n nativeEventTarget\n )),\n (shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(\n shouldSetEventType,\n accumulateDirectDispatchesSingle\n ),\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n shouldSetEventType\n ));\n else\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n shouldSetEventType\n )),\n changeResponder(JSCompiler_temp, targetInst);\n else JSCompiler_temp$jscomp$0 = null;\n } else JSCompiler_temp$jscomp$0 = null;\n shouldSetEventType = responderInst && isStartish(topLevelType);\n JSCompiler_temp = responderInst && isMoveish(topLevelType);\n targetInst =\n responderInst &&\n (\"topTouchEnd\" === topLevelType || \"topTouchCancel\" === topLevelType);\n if (\n (shouldSetEventType = shouldSetEventType\n ? eventTypes.responderStart\n : JSCompiler_temp\n ? eventTypes.responderMove\n : targetInst\n ? eventTypes.responderEnd\n : null)\n )\n (shouldSetEventType = ResponderSyntheticEvent.getPooled(\n shouldSetEventType,\n responderInst,\n nativeEvent,\n nativeEventTarget\n )),\n (shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(\n shouldSetEventType,\n accumulateDirectDispatchesSingle\n ),\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n shouldSetEventType\n ));\n shouldSetEventType = responderInst && \"topTouchCancel\" === topLevelType;\n if (\n (topLevelType =\n responderInst &&\n !shouldSetEventType &&\n (\"topTouchEnd\" === topLevelType || \"topTouchCancel\" === topLevelType))\n )\n a: {\n if ((topLevelType = nativeEvent.touches) && 0 !== topLevelType.length)\n for (\n JSCompiler_temp = 0;\n JSCompiler_temp < topLevelType.length;\n JSCompiler_temp++\n )\n if (\n ((targetInst = topLevelType[JSCompiler_temp].target),\n null !== targetInst &&\n void 0 !== targetInst &&\n 0 !== targetInst)\n ) {\n depthA = getInstanceFromNode(targetInst);\n b: {\n for (targetInst = responderInst; depthA; ) {\n if (\n targetInst === depthA ||\n targetInst === depthA.alternate\n ) {\n targetInst = !0;\n break b;\n }\n depthA = getParent(depthA);\n }\n targetInst = !1;\n }\n if (targetInst) {\n topLevelType = !1;\n break a;\n }\n }\n topLevelType = !0;\n }\n if (\n (topLevelType = shouldSetEventType\n ? eventTypes.responderTerminate\n : topLevelType\n ? eventTypes.responderRelease\n : null)\n )\n (nativeEvent = ResponderSyntheticEvent.getPooled(\n topLevelType,\n responderInst,\n nativeEvent,\n nativeEventTarget\n )),\n (nativeEvent.touchHistory = ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(nativeEvent, accumulateDirectDispatchesSingle),\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n nativeEvent\n )),\n changeResponder(null);\n return JSCompiler_temp$jscomp$0;\n },\n GlobalResponderHandler: null,\n injection: {\n injectGlobalResponderHandler: function(GlobalResponderHandler) {\n ResponderEventPlugin.GlobalResponderHandler = GlobalResponderHandler;\n }\n }\n },\n eventPluginOrder = null,\n namesToPlugins = {};\nfunction recomputePluginOrdering() {\n if (eventPluginOrder)\n for (var pluginName in namesToPlugins) {\n var pluginModule = namesToPlugins[pluginName],\n pluginIndex = eventPluginOrder.indexOf(pluginName);\n if (-1 >= pluginIndex)\n throw Error(\n \"EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `\" +\n (pluginName + \"`.\")\n );\n if (!plugins[pluginIndex]) {\n if (!pluginModule.extractEvents)\n throw Error(\n \"EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `\" +\n (pluginName + \"` does not.\")\n );\n plugins[pluginIndex] = pluginModule;\n pluginIndex = pluginModule.eventTypes;\n for (var eventName in pluginIndex) {\n var JSCompiler_inline_result = void 0;\n var dispatchConfig = pluginIndex[eventName],\n eventName$jscomp$0 = eventName;\n if (eventNameDispatchConfigs.hasOwnProperty(eventName$jscomp$0))\n throw Error(\n \"EventPluginRegistry: More than one plugin attempted to publish the same event name, `\" +\n (eventName$jscomp$0 + \"`.\")\n );\n eventNameDispatchConfigs[eventName$jscomp$0] = dispatchConfig;\n var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n if (phasedRegistrationNames) {\n for (JSCompiler_inline_result in phasedRegistrationNames)\n phasedRegistrationNames.hasOwnProperty(\n JSCompiler_inline_result\n ) &&\n publishRegistrationName(\n phasedRegistrationNames[JSCompiler_inline_result],\n pluginModule,\n eventName$jscomp$0\n );\n JSCompiler_inline_result = !0;\n } else\n dispatchConfig.registrationName\n ? (publishRegistrationName(\n dispatchConfig.registrationName,\n pluginModule,\n eventName$jscomp$0\n ),\n (JSCompiler_inline_result = !0))\n : (JSCompiler_inline_result = !1);\n if (!JSCompiler_inline_result)\n throw Error(\n \"EventPluginRegistry: Failed to publish event `\" +\n eventName +\n \"` for plugin `\" +\n pluginName +\n \"`.\"\n );\n }\n }\n }\n}\nfunction publishRegistrationName(registrationName, pluginModule) {\n if (registrationNameModules[registrationName])\n throw Error(\n \"EventPluginRegistry: More than one plugin attempted to publish the same registration name, `\" +\n (registrationName + \"`.\")\n );\n registrationNameModules[registrationName] = pluginModule;\n}\nvar plugins = [],\n eventNameDispatchConfigs = {},\n registrationNameModules = {};\nfunction getListeners(\n inst,\n registrationName,\n phase,\n dispatchToImperativeListeners\n) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n inst = getFiberCurrentPropsFromNode(stateNode);\n if (null === inst) return null;\n if ((inst = inst[registrationName]) && \"function\" !== typeof inst)\n throw Error(\n \"Expected `\" +\n registrationName +\n \"` listener to be a function, instead got a value of `\" +\n typeof inst +\n \"` type.\"\n );\n if (\n !(\n dispatchToImperativeListeners &&\n stateNode.canonical &&\n stateNode.canonical._eventListeners\n )\n )\n return inst;\n var listeners = [];\n inst && listeners.push(inst);\n var requestedPhaseIsCapture = \"captured\" === phase,\n mangledImperativeRegistrationName = requestedPhaseIsCapture\n ? \"rn:\" + registrationName.replace(/Capture$/, \"\")\n : \"rn:\" + registrationName;\n stateNode.canonical._eventListeners[mangledImperativeRegistrationName] &&\n 0 <\n stateNode.canonical._eventListeners[mangledImperativeRegistrationName]\n .length &&\n stateNode.canonical._eventListeners[\n mangledImperativeRegistrationName\n ].forEach(function(listenerObj) {\n if (\n (null != listenerObj.options.capture && listenerObj.options.capture) ===\n requestedPhaseIsCapture\n ) {\n var listenerFnWrapper = function(syntheticEvent) {\n var eventInst = new ReactNativePrivateInterface.CustomEvent(\n mangledImperativeRegistrationName,\n { detail: syntheticEvent.nativeEvent }\n );\n eventInst.isTrusted = !0;\n eventInst.setSyntheticEvent(syntheticEvent);\n for (\n var _len = arguments.length,\n args = Array(1 < _len ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n )\n args[_key - 1] = arguments[_key];\n listenerObj.listener.apply(listenerObj, [eventInst].concat(args));\n };\n listenerObj.options.once\n ? listeners.push(function() {\n stateNode.canonical.removeEventListener_unstable(\n mangledImperativeRegistrationName,\n listenerObj.listener,\n listenerObj.capture\n );\n listenerObj.invalidated ||\n ((listenerObj.invalidated = !0),\n listenerObj.listener.apply(listenerObj, arguments));\n })\n : listeners.push(listenerFnWrapper);\n }\n });\n return 0 === listeners.length\n ? null\n : 1 === listeners.length\n ? listeners[0]\n : listeners;\n}\nvar customBubblingEventTypes =\n ReactNativePrivateInterface.ReactNativeViewConfigRegistry\n .customBubblingEventTypes,\n customDirectEventTypes =\n ReactNativePrivateInterface.ReactNativeViewConfigRegistry\n .customDirectEventTypes;\nfunction accumulateListenersAndInstances(inst, event, listeners) {\n var listenersLength = listeners\n ? isArrayImpl(listeners)\n ? listeners.length\n : 1\n : 0;\n if (0 < listenersLength)\n if (\n ((event._dispatchListeners = accumulateInto(\n event._dispatchListeners,\n listeners\n )),\n null == event._dispatchInstances && 1 === listenersLength)\n )\n event._dispatchInstances = inst;\n else\n for (\n event._dispatchInstances = event._dispatchInstances || [],\n isArrayImpl(event._dispatchInstances) ||\n (event._dispatchInstances = [event._dispatchInstances]),\n listeners = 0;\n listeners < listenersLength;\n listeners++\n )\n event._dispatchInstances.push(inst);\n}\nfunction accumulateDirectionalDispatches$1(inst, phase, event) {\n phase = getListeners(\n inst,\n event.dispatchConfig.phasedRegistrationNames[phase],\n phase,\n !0\n );\n accumulateListenersAndInstances(inst, event, phase);\n}\nfunction traverseTwoPhase$1(inst, fn, arg, skipBubbling) {\n for (var path = []; inst; ) {\n path.push(inst);\n do inst = inst.return;\n while (inst && 5 !== inst.tag);\n inst = inst ? inst : null;\n }\n for (inst = path.length; 0 < inst--; ) fn(path[inst], \"captured\", arg);\n if (skipBubbling) fn(path[0], \"bubbled\", arg);\n else\n for (inst = 0; inst < path.length; inst++) fn(path[inst], \"bubbled\", arg);\n}\nfunction accumulateTwoPhaseDispatchesSingle$1(event) {\n event &&\n event.dispatchConfig.phasedRegistrationNames &&\n traverseTwoPhase$1(\n event._targetInst,\n accumulateDirectionalDispatches$1,\n event,\n !1\n );\n}\nfunction accumulateDirectDispatchesSingle$1(event) {\n if (event && event.dispatchConfig.registrationName) {\n var inst = event._targetInst;\n if (inst && event && event.dispatchConfig.registrationName) {\n var listeners = getListeners(\n inst,\n event.dispatchConfig.registrationName,\n \"bubbled\",\n !1\n );\n accumulateListenersAndInstances(inst, event, listeners);\n }\n }\n}\nif (eventPluginOrder)\n throw Error(\n \"EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.\"\n );\neventPluginOrder = Array.prototype.slice.call([\n \"ResponderEventPlugin\",\n \"ReactNativeBridgeEventPlugin\"\n]);\nrecomputePluginOrdering();\nvar injectedNamesToPlugins$jscomp$inline_229 = {\n ResponderEventPlugin: ResponderEventPlugin,\n ReactNativeBridgeEventPlugin: {\n eventTypes: {},\n extractEvents: function(\n topLevelType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n if (null == targetInst) return null;\n var bubbleDispatchConfig = customBubblingEventTypes[topLevelType],\n directDispatchConfig = customDirectEventTypes[topLevelType];\n if (!bubbleDispatchConfig && !directDispatchConfig)\n throw Error(\n 'Unsupported top level event type \"' + topLevelType + '\" dispatched'\n );\n topLevelType = SyntheticEvent.getPooled(\n bubbleDispatchConfig || directDispatchConfig,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n if (bubbleDispatchConfig)\n null != topLevelType &&\n null != topLevelType.dispatchConfig.phasedRegistrationNames &&\n topLevelType.dispatchConfig.phasedRegistrationNames.skipBubbling\n ? topLevelType &&\n topLevelType.dispatchConfig.phasedRegistrationNames &&\n traverseTwoPhase$1(\n topLevelType._targetInst,\n accumulateDirectionalDispatches$1,\n topLevelType,\n !0\n )\n : forEachAccumulated(\n topLevelType,\n accumulateTwoPhaseDispatchesSingle$1\n );\n else if (directDispatchConfig)\n forEachAccumulated(topLevelType, accumulateDirectDispatchesSingle$1);\n else return null;\n return topLevelType;\n }\n }\n },\n isOrderingDirty$jscomp$inline_230 = !1,\n pluginName$jscomp$inline_231;\nfor (pluginName$jscomp$inline_231 in injectedNamesToPlugins$jscomp$inline_229)\n if (\n injectedNamesToPlugins$jscomp$inline_229.hasOwnProperty(\n pluginName$jscomp$inline_231\n )\n ) {\n var pluginModule$jscomp$inline_232 =\n injectedNamesToPlugins$jscomp$inline_229[pluginName$jscomp$inline_231];\n if (\n !namesToPlugins.hasOwnProperty(pluginName$jscomp$inline_231) ||\n namesToPlugins[pluginName$jscomp$inline_231] !==\n pluginModule$jscomp$inline_232\n ) {\n if (namesToPlugins[pluginName$jscomp$inline_231])\n throw Error(\n \"EventPluginRegistry: Cannot inject two different event plugins using the same name, `\" +\n (pluginName$jscomp$inline_231 + \"`.\")\n );\n namesToPlugins[\n pluginName$jscomp$inline_231\n ] = pluginModule$jscomp$inline_232;\n isOrderingDirty$jscomp$inline_230 = !0;\n }\n }\nisOrderingDirty$jscomp$inline_230 && recomputePluginOrdering();\nvar instanceCache = new Map(),\n instanceProps = new Map();\nfunction getInstanceFromTag(tag) {\n return instanceCache.get(tag) || null;\n}\nfunction batchedUpdatesImpl(fn, bookkeeping) {\n return fn(bookkeeping);\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates(fn, bookkeeping) {\n if (isInsideEventHandler) return fn(bookkeeping);\n isInsideEventHandler = !0;\n try {\n return batchedUpdatesImpl(fn, bookkeeping);\n } finally {\n isInsideEventHandler = !1;\n }\n}\nvar eventQueue = null;\nfunction executeDispatchesAndReleaseTopLevel(e) {\n if (e) {\n var dispatchListeners = e._dispatchListeners,\n dispatchInstances = e._dispatchInstances;\n if (isArrayImpl(dispatchListeners))\n for (\n var i = 0;\n i < dispatchListeners.length && !e.isPropagationStopped();\n i++\n )\n executeDispatch(e, dispatchListeners[i], dispatchInstances[i]);\n else\n dispatchListeners &&\n executeDispatch(e, dispatchListeners, dispatchInstances);\n e._dispatchListeners = null;\n e._dispatchInstances = null;\n e.isPersistent() || e.constructor.release(e);\n }\n}\nvar EMPTY_NATIVE_EVENT = {};\nfunction _receiveRootNodeIDEvent(rootNodeID, topLevelType, nativeEventParam) {\n var nativeEvent = nativeEventParam || EMPTY_NATIVE_EVENT,\n inst = getInstanceFromTag(rootNodeID),\n target = null;\n null != inst && (target = inst.stateNode);\n batchedUpdates(function() {\n var JSCompiler_inline_result = target;\n for (\n var events = null, legacyPlugins = plugins, i = 0;\n i < legacyPlugins.length;\n i++\n ) {\n var possiblePlugin = legacyPlugins[i];\n possiblePlugin &&\n (possiblePlugin = possiblePlugin.extractEvents(\n topLevelType,\n inst,\n nativeEvent,\n JSCompiler_inline_result\n )) &&\n (events = accumulateInto(events, possiblePlugin));\n }\n JSCompiler_inline_result = events;\n null !== JSCompiler_inline_result &&\n (eventQueue = accumulateInto(eventQueue, JSCompiler_inline_result));\n JSCompiler_inline_result = eventQueue;\n eventQueue = null;\n if (JSCompiler_inline_result) {\n forEachAccumulated(\n JSCompiler_inline_result,\n executeDispatchesAndReleaseTopLevel\n );\n if (eventQueue)\n throw Error(\n \"processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.\"\n );\n if (hasRethrowError)\n throw ((JSCompiler_inline_result = rethrowError),\n (hasRethrowError = !1),\n (rethrowError = null),\n JSCompiler_inline_result);\n }\n });\n}\nReactNativePrivateInterface.RCTEventEmitter.register({\n receiveEvent: function(rootNodeID, topLevelType, nativeEventParam) {\n _receiveRootNodeIDEvent(rootNodeID, topLevelType, nativeEventParam);\n },\n receiveTouches: function(eventTopLevelType, touches, changedIndices) {\n if (\n \"topTouchEnd\" === eventTopLevelType ||\n \"topTouchCancel\" === eventTopLevelType\n ) {\n var JSCompiler_temp = [];\n for (var i = 0; i < changedIndices.length; i++) {\n var index$0 = changedIndices[i];\n JSCompiler_temp.push(touches[index$0]);\n touches[index$0] = null;\n }\n for (i = changedIndices = 0; i < touches.length; i++)\n (index$0 = touches[i]),\n null !== index$0 && (touches[changedIndices++] = index$0);\n touches.length = changedIndices;\n } else\n for (JSCompiler_temp = [], i = 0; i < changedIndices.length; i++)\n JSCompiler_temp.push(touches[changedIndices[i]]);\n for (\n changedIndices = 0;\n changedIndices < JSCompiler_temp.length;\n changedIndices++\n ) {\n i = JSCompiler_temp[changedIndices];\n i.changedTouches = JSCompiler_temp;\n i.touches = touches;\n index$0 = null;\n var target = i.target;\n null === target || void 0 === target || 1 > target || (index$0 = target);\n _receiveRootNodeIDEvent(index$0, eventTopLevelType, i);\n }\n }\n});\ngetFiberCurrentPropsFromNode = function(stateNode) {\n return instanceProps.get(stateNode._nativeTag) || null;\n};\ngetInstanceFromNode = getInstanceFromTag;\ngetNodeFromInstance = function(inst) {\n inst = inst.stateNode;\n var tag = inst._nativeTag;\n void 0 === tag && ((inst = inst.canonical), (tag = inst._nativeTag));\n if (!tag) throw Error(\"All native instances should have a tag.\");\n return inst;\n};\nResponderEventPlugin.injection.injectGlobalResponderHandler({\n onChange: function(from, to, blockNativeResponder) {\n null !== to\n ? ReactNativePrivateInterface.UIManager.setJSResponder(\n to.stateNode._nativeTag,\n blockNativeResponder\n )\n : ReactNativePrivateInterface.UIManager.clearJSResponder();\n }\n});\nvar ReactSharedInternals =\n React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,\n REACT_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_PROVIDER_TYPE = Symbol.for(\"react.provider\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nSymbol.for(\"react.debug_trace_mode\");\nvar REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.cache\");\nSymbol.for(\"react.tracing_marker\");\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type) return type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Consumer\";\n case REACT_PROVIDER_TYPE:\n return (type._context.displayName || \"Context\") + \".Provider\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nfunction getComponentNameFromFiber(fiber) {\n var type = fiber.type;\n switch (fiber.tag) {\n case 24:\n return \"Cache\";\n case 9:\n return (type.displayName || \"Context\") + \".Consumer\";\n case 10:\n return (type._context.displayName || \"Context\") + \".Provider\";\n case 18:\n return \"DehydratedFragment\";\n case 11:\n return (\n (fiber = type.render),\n (fiber = fiber.displayName || fiber.name || \"\"),\n type.displayName ||\n (\"\" !== fiber ? \"ForwardRef(\" + fiber + \")\" : \"ForwardRef\")\n );\n case 7:\n return \"Fragment\";\n case 5:\n return type;\n case 4:\n return \"Portal\";\n case 3:\n return \"Root\";\n case 6:\n return \"Text\";\n case 16:\n return getComponentNameFromType(type);\n case 8:\n return type === REACT_STRICT_MODE_TYPE ? \"StrictMode\" : \"Mode\";\n case 22:\n return \"Offscreen\";\n case 12:\n return \"Profiler\";\n case 21:\n return \"Scope\";\n case 13:\n return \"Suspense\";\n case 19:\n return \"SuspenseList\";\n case 25:\n return \"TracingMarker\";\n case 1:\n case 0:\n case 17:\n case 2:\n case 14:\n case 15:\n if (\"function\" === typeof type)\n return type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n }\n return null;\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(\"Unable to find node on an unmounted component.\");\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate)\n throw Error(\"Unable to find node on an unmounted component.\");\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(\"Unable to find node on an unmounted component.\");\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$1 = parentA.child; child$1; ) {\n if (child$1 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$1 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$1 = child$1.sibling;\n }\n if (!didFindChild) {\n for (child$1 = parentB.child; child$1; ) {\n if (child$1 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$1 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$1 = child$1.sibling;\n }\n if (!didFindChild)\n throw Error(\n \"Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.\"\n );\n }\n }\n if (a.alternate !== b)\n throw Error(\n \"Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (3 !== a.tag)\n throw Error(\"Unable to find node on an unmounted component.\");\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiber(parent) {\n parent = findCurrentFiberUsingSlowPath(parent);\n return null !== parent ? findCurrentHostFiberImpl(parent) : null;\n}\nfunction findCurrentHostFiberImpl(node) {\n if (5 === node.tag || 6 === node.tag) return node;\n for (node = node.child; null !== node; ) {\n var match = findCurrentHostFiberImpl(node);\n if (null !== match) return match;\n node = node.sibling;\n }\n return null;\n}\nvar emptyObject = {},\n removedKeys = null,\n removedKeyCount = 0,\n deepDifferOptions = { unsafelyIgnoreFunctions: !0 };\nfunction defaultDiffer(prevProp, nextProp) {\n return \"object\" !== typeof nextProp || null === nextProp\n ? !0\n : ReactNativePrivateInterface.deepDiffer(\n prevProp,\n nextProp,\n deepDifferOptions\n );\n}\nfunction restoreDeletedValuesInNestedArray(\n updatePayload,\n node,\n validAttributes\n) {\n if (isArrayImpl(node))\n for (var i = node.length; i-- && 0 < removedKeyCount; )\n restoreDeletedValuesInNestedArray(\n updatePayload,\n node[i],\n validAttributes\n );\n else if (node && 0 < removedKeyCount)\n for (i in removedKeys)\n if (removedKeys[i]) {\n var nextProp = node[i];\n if (void 0 !== nextProp) {\n var attributeConfig = validAttributes[i];\n if (attributeConfig) {\n \"function\" === typeof nextProp && (nextProp = !0);\n \"undefined\" === typeof nextProp && (nextProp = null);\n if (\"object\" !== typeof attributeConfig)\n updatePayload[i] = nextProp;\n else if (\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n )\n (nextProp =\n \"function\" === typeof attributeConfig.process\n ? attributeConfig.process(nextProp)\n : nextProp),\n (updatePayload[i] = nextProp);\n removedKeys[i] = !1;\n removedKeyCount--;\n }\n }\n }\n}\nfunction diffNestedProperty(\n updatePayload,\n prevProp,\n nextProp,\n validAttributes\n) {\n if (!updatePayload && prevProp === nextProp) return updatePayload;\n if (!prevProp || !nextProp)\n return nextProp\n ? addNestedProperty(updatePayload, nextProp, validAttributes)\n : prevProp\n ? clearNestedProperty(updatePayload, prevProp, validAttributes)\n : updatePayload;\n if (!isArrayImpl(prevProp) && !isArrayImpl(nextProp))\n return diffProperties(updatePayload, prevProp, nextProp, validAttributes);\n if (isArrayImpl(prevProp) && isArrayImpl(nextProp)) {\n var minLength =\n prevProp.length < nextProp.length ? prevProp.length : nextProp.length,\n i;\n for (i = 0; i < minLength; i++)\n updatePayload = diffNestedProperty(\n updatePayload,\n prevProp[i],\n nextProp[i],\n validAttributes\n );\n for (; i < prevProp.length; i++)\n updatePayload = clearNestedProperty(\n updatePayload,\n prevProp[i],\n validAttributes\n );\n for (; i < nextProp.length; i++)\n updatePayload = addNestedProperty(\n updatePayload,\n nextProp[i],\n validAttributes\n );\n return updatePayload;\n }\n return isArrayImpl(prevProp)\n ? diffProperties(\n updatePayload,\n ReactNativePrivateInterface.flattenStyle(prevProp),\n nextProp,\n validAttributes\n )\n : diffProperties(\n updatePayload,\n prevProp,\n ReactNativePrivateInterface.flattenStyle(nextProp),\n validAttributes\n );\n}\nfunction addNestedProperty(updatePayload, nextProp, validAttributes) {\n if (!nextProp) return updatePayload;\n if (!isArrayImpl(nextProp))\n return diffProperties(\n updatePayload,\n emptyObject,\n nextProp,\n validAttributes\n );\n for (var i = 0; i < nextProp.length; i++)\n updatePayload = addNestedProperty(\n updatePayload,\n nextProp[i],\n validAttributes\n );\n return updatePayload;\n}\nfunction clearNestedProperty(updatePayload, prevProp, validAttributes) {\n if (!prevProp) return updatePayload;\n if (!isArrayImpl(prevProp))\n return diffProperties(\n updatePayload,\n prevProp,\n emptyObject,\n validAttributes\n );\n for (var i = 0; i < prevProp.length; i++)\n updatePayload = clearNestedProperty(\n updatePayload,\n prevProp[i],\n validAttributes\n );\n return updatePayload;\n}\nfunction diffProperties(updatePayload, prevProps, nextProps, validAttributes) {\n var attributeConfig, propKey;\n for (propKey in nextProps)\n if ((attributeConfig = validAttributes[propKey])) {\n var prevProp = prevProps[propKey];\n var nextProp = nextProps[propKey];\n \"function\" === typeof nextProp &&\n ((nextProp = !0), \"function\" === typeof prevProp && (prevProp = !0));\n \"undefined\" === typeof nextProp &&\n ((nextProp = null),\n \"undefined\" === typeof prevProp && (prevProp = null));\n removedKeys && (removedKeys[propKey] = !1);\n if (updatePayload && void 0 !== updatePayload[propKey])\n if (\"object\" !== typeof attributeConfig)\n updatePayload[propKey] = nextProp;\n else {\n if (\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n )\n (attributeConfig =\n \"function\" === typeof attributeConfig.process\n ? attributeConfig.process(nextProp)\n : nextProp),\n (updatePayload[propKey] = attributeConfig);\n }\n else if (prevProp !== nextProp)\n if (\"object\" !== typeof attributeConfig)\n defaultDiffer(prevProp, nextProp) &&\n ((updatePayload || (updatePayload = {}))[propKey] = nextProp);\n else if (\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n ) {\n if (\n void 0 === prevProp ||\n (\"function\" === typeof attributeConfig.diff\n ? attributeConfig.diff(prevProp, nextProp)\n : defaultDiffer(prevProp, nextProp))\n )\n (attributeConfig =\n \"function\" === typeof attributeConfig.process\n ? attributeConfig.process(nextProp)\n : nextProp),\n ((updatePayload || (updatePayload = {}))[\n propKey\n ] = attributeConfig);\n } else\n (removedKeys = null),\n (removedKeyCount = 0),\n (updatePayload = diffNestedProperty(\n updatePayload,\n prevProp,\n nextProp,\n attributeConfig\n )),\n 0 < removedKeyCount &&\n updatePayload &&\n (restoreDeletedValuesInNestedArray(\n updatePayload,\n nextProp,\n attributeConfig\n ),\n (removedKeys = null));\n }\n for (var propKey$3 in prevProps)\n void 0 === nextProps[propKey$3] &&\n (!(attributeConfig = validAttributes[propKey$3]) ||\n (updatePayload && void 0 !== updatePayload[propKey$3]) ||\n ((prevProp = prevProps[propKey$3]),\n void 0 !== prevProp &&\n (\"object\" !== typeof attributeConfig ||\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n ? (((updatePayload || (updatePayload = {}))[propKey$3] = null),\n removedKeys || (removedKeys = {}),\n removedKeys[propKey$3] ||\n ((removedKeys[propKey$3] = !0), removedKeyCount++))\n : (updatePayload = clearNestedProperty(\n updatePayload,\n prevProp,\n attributeConfig\n )))));\n return updatePayload;\n}\nfunction mountSafeCallback_NOT_REALLY_SAFE(context, callback) {\n return function() {\n if (\n callback &&\n (\"boolean\" !== typeof context.__isMounted || context.__isMounted)\n )\n return callback.apply(context, arguments);\n };\n}\nvar ReactNativeFiberHostComponent = (function() {\n function ReactNativeFiberHostComponent(tag, viewConfig) {\n this._nativeTag = tag;\n this._children = [];\n this.viewConfig = viewConfig;\n }\n var _proto = ReactNativeFiberHostComponent.prototype;\n _proto.blur = function() {\n ReactNativePrivateInterface.TextInputState.blurTextInput(this);\n };\n _proto.focus = function() {\n ReactNativePrivateInterface.TextInputState.focusTextInput(this);\n };\n _proto.measure = function(callback) {\n ReactNativePrivateInterface.UIManager.measure(\n this._nativeTag,\n mountSafeCallback_NOT_REALLY_SAFE(this, callback)\n );\n };\n _proto.measureInWindow = function(callback) {\n ReactNativePrivateInterface.UIManager.measureInWindow(\n this._nativeTag,\n mountSafeCallback_NOT_REALLY_SAFE(this, callback)\n );\n };\n _proto.measureLayout = function(relativeToNativeNode, onSuccess, onFail) {\n if (\"number\" === typeof relativeToNativeNode)\n var relativeNode = relativeToNativeNode;\n else\n relativeToNativeNode._nativeTag &&\n (relativeNode = relativeToNativeNode._nativeTag);\n null != relativeNode &&\n ReactNativePrivateInterface.UIManager.measureLayout(\n this._nativeTag,\n relativeNode,\n mountSafeCallback_NOT_REALLY_SAFE(this, onFail),\n mountSafeCallback_NOT_REALLY_SAFE(this, onSuccess)\n );\n };\n _proto.setNativeProps = function(nativeProps) {\n nativeProps = diffProperties(\n null,\n emptyObject,\n nativeProps,\n this.viewConfig.validAttributes\n );\n null != nativeProps &&\n ReactNativePrivateInterface.UIManager.updateView(\n this._nativeTag,\n this.viewConfig.uiViewClassName,\n nativeProps\n );\n };\n return ReactNativeFiberHostComponent;\n })(),\n scheduleCallback = Scheduler.unstable_scheduleCallback,\n cancelCallback = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority = Scheduler.unstable_NormalPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n rendererID = null,\n injectedHook = null;\nfunction onCommitRoot(root) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n root,\n void 0,\n 128 === (root.current.flags & 128)\n );\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionLane = 64,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 4194240;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n return lanes & 130023424;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 1073741824;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n nonIdlePendingLanes = pendingLanes & 268435455;\n if (0 !== nonIdlePendingLanes) {\n var nonIdleUnblockedLanes = nonIdlePendingLanes & ~suspendedLanes;\n 0 !== nonIdleUnblockedLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdleUnblockedLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes &&\n (nextLanes = getHighestPriorityLanes(pingedLanes)));\n } else\n (nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes &&\n (nextLanes = getHighestPriorityLanes(pingedLanes));\n if (0 === nextLanes) return 0;\n if (\n 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (pingedLanes = wipLanes & -wipLanes),\n suspendedLanes >= pingedLanes ||\n (16 === suspendedLanes && 0 !== (pingedLanes & 4194240)))\n )\n return wipLanes;\n 0 !== (nextLanes & 4) && (nextLanes |= pendingLanes & 16);\n wipLanes = root.entangledLanes;\n if (0 !== wipLanes)\n for (root = root.entanglements, wipLanes &= nextLanes; 0 < wipLanes; )\n (pendingLanes = 31 - clz32(wipLanes)),\n (suspendedLanes = 1 << pendingLanes),\n (nextLanes |= root[pendingLanes]),\n (wipLanes &= ~suspendedLanes);\n return nextLanes;\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n return currentTime + 250;\n case 8:\n case 16:\n case 32:\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n return -1;\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction getLanesToRetrySynchronouslyOnError(root) {\n root = root.pendingLanes & -1073741825;\n return 0 !== root ? root : root & 1073741824 ? 1073741824 : 0;\n}\nfunction claimNextTransitionLane() {\n var lane = nextTransitionLane;\n nextTransitionLane <<= 1;\n 0 === (nextTransitionLane & 4194240) && (nextTransitionLane = 64);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated(root, updateLane, eventTime) {\n root.pendingLanes |= updateLane;\n 536870912 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0));\n root = root.eventTimes;\n updateLane = 31 - clz32(updateLane);\n root[updateLane] = eventTime;\n}\nfunction markRootFinished(root, remainingLanes) {\n var noLongerPendingLanes = root.pendingLanes & ~remainingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.mutableReadLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n remainingLanes = root.entanglements;\n var eventTimes = root.eventTimes;\n for (root = root.expirationTimes; 0 < noLongerPendingLanes; ) {\n var index$8 = 31 - clz32(noLongerPendingLanes),\n lane = 1 << index$8;\n remainingLanes[index$8] = 0;\n eventTimes[index$8] = -1;\n root[index$8] = -1;\n noLongerPendingLanes &= ~lane;\n }\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$9 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$9;\n (lane & entangledLanes) | (root[index$9] & entangledLanes) &&\n (root[index$9] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nvar currentUpdatePriority = 0;\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 1 < lanes\n ? 4 < lanes\n ? 0 !== (lanes & 268435455)\n ? 16\n : 536870912\n : 4\n : 1;\n}\nfunction shim() {\n throw Error(\n \"The current renderer does not support hydration. This error is likely caused by a bug in React. Please file an issue.\"\n );\n}\nvar getViewConfigForType =\n ReactNativePrivateInterface.ReactNativeViewConfigRegistry.get,\n UPDATE_SIGNAL = {},\n nextReactTag = 3;\nfunction allocateTag() {\n var tag = nextReactTag;\n 1 === tag % 10 && (tag += 2);\n nextReactTag = tag + 2;\n return tag;\n}\nfunction recursivelyUncacheFiberNode(node) {\n if (\"number\" === typeof node)\n instanceCache.delete(node), instanceProps.delete(node);\n else {\n var tag = node._nativeTag;\n instanceCache.delete(tag);\n instanceProps.delete(tag);\n node._children.forEach(recursivelyUncacheFiberNode);\n }\n}\nfunction finalizeInitialChildren(parentInstance) {\n if (0 === parentInstance._children.length) return !1;\n var nativeTags = parentInstance._children.map(function(child) {\n return \"number\" === typeof child ? child : child._nativeTag;\n });\n ReactNativePrivateInterface.UIManager.setChildren(\n parentInstance._nativeTag,\n nativeTags\n );\n return !1;\n}\nvar scheduleTimeout = setTimeout,\n cancelTimeout = clearTimeout;\nfunction describeComponentFrame(name, source, ownerName) {\n source = \"\";\n ownerName && (source = \" (created by \" + ownerName + \")\");\n return \"\\n in \" + (name || \"Unknown\") + source;\n}\nfunction describeFunctionComponentFrame(fn, source) {\n return fn\n ? describeComponentFrame(fn.displayName || fn.name || null, source, null)\n : \"\";\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar emptyContextObject = {},\n contextStackCursor = createCursor(emptyContextObject),\n didPerformWorkStackCursor = createCursor(!1),\n previousContext = emptyContextObject;\nfunction getMaskedContext(workInProgress, unmaskedContext) {\n var contextTypes = workInProgress.type.contextTypes;\n if (!contextTypes) return emptyContextObject;\n var instance = workInProgress.stateNode;\n if (\n instance &&\n instance.__reactInternalMemoizedUnmaskedChildContext === unmaskedContext\n )\n return instance.__reactInternalMemoizedMaskedChildContext;\n var context = {},\n key;\n for (key in contextTypes) context[key] = unmaskedContext[key];\n instance &&\n ((workInProgress = workInProgress.stateNode),\n (workInProgress.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext),\n (workInProgress.__reactInternalMemoizedMaskedChildContext = context));\n return context;\n}\nfunction isContextProvider(type) {\n type = type.childContextTypes;\n return null !== type && void 0 !== type;\n}\nfunction popContext() {\n pop(didPerformWorkStackCursor);\n pop(contextStackCursor);\n}\nfunction pushTopLevelContextObject(fiber, context, didChange) {\n if (contextStackCursor.current !== emptyContextObject)\n throw Error(\n \"Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.\"\n );\n push(contextStackCursor, context);\n push(didPerformWorkStackCursor, didChange);\n}\nfunction processChildContext(fiber, type, parentContext) {\n var instance = fiber.stateNode;\n type = type.childContextTypes;\n if (\"function\" !== typeof instance.getChildContext) return parentContext;\n instance = instance.getChildContext();\n for (var contextKey in instance)\n if (!(contextKey in type))\n throw Error(\n (getComponentNameFromFiber(fiber) || \"Unknown\") +\n '.getChildContext(): key \"' +\n contextKey +\n '\" is not defined in childContextTypes.'\n );\n return assign({}, parentContext, instance);\n}\nfunction pushContextProvider(workInProgress) {\n workInProgress =\n ((workInProgress = workInProgress.stateNode) &&\n workInProgress.__reactInternalMemoizedMergedChildContext) ||\n emptyContextObject;\n previousContext = contextStackCursor.current;\n push(contextStackCursor, workInProgress);\n push(didPerformWorkStackCursor, didPerformWorkStackCursor.current);\n return !0;\n}\nfunction invalidateContextProvider(workInProgress, type, didChange) {\n var instance = workInProgress.stateNode;\n if (!instance)\n throw Error(\n \"Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.\"\n );\n didChange\n ? ((workInProgress = processChildContext(\n workInProgress,\n type,\n previousContext\n )),\n (instance.__reactInternalMemoizedMergedChildContext = workInProgress),\n pop(didPerformWorkStackCursor),\n pop(contextStackCursor),\n push(contextStackCursor, workInProgress))\n : pop(didPerformWorkStackCursor);\n push(didPerformWorkStackCursor, didChange);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n syncQueue = null,\n includesLegacySyncCallbacks = !1,\n isFlushingSyncQueue = !1;\nfunction flushSyncCallbacks() {\n if (!isFlushingSyncQueue && null !== syncQueue) {\n isFlushingSyncQueue = !0;\n var i = 0,\n previousUpdatePriority = currentUpdatePriority;\n try {\n var queue = syncQueue;\n for (currentUpdatePriority = 1; i < queue.length; i++) {\n var callback = queue[i];\n do callback = callback(!0);\n while (null !== callback);\n }\n syncQueue = null;\n includesLegacySyncCallbacks = !1;\n } catch (error) {\n throw (null !== syncQueue && (syncQueue = syncQueue.slice(i + 1)),\n scheduleCallback(ImmediatePriority, flushSyncCallbacks),\n error);\n } finally {\n (currentUpdatePriority = previousUpdatePriority),\n (isFlushingSyncQueue = !1);\n }\n }\n return null;\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null;\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n --forkStackIndex,\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n --idStackIndex,\n (idStack[idStackIndex] = null),\n --idStackIndex,\n (idStack[idStackIndex] = null);\n}\nvar hydrationErrors = null,\n ReactCurrentBatchConfig = ReactSharedInternals.ReactCurrentBatchConfig;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction describeFiber(fiber) {\n switch (fiber.tag) {\n case 5:\n return describeComponentFrame(fiber.type, null, null);\n case 16:\n return describeComponentFrame(\"Lazy\", null, null);\n case 13:\n return describeComponentFrame(\"Suspense\", null, null);\n case 19:\n return describeComponentFrame(\"SuspenseList\", null, null);\n case 0:\n case 2:\n case 15:\n return describeFunctionComponentFrame(fiber.type, null);\n case 11:\n return describeFunctionComponentFrame(fiber.type.render, null);\n case 1:\n return (fiber = describeFunctionComponentFrame(fiber.type, null)), fiber;\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\";\n do\n (info += describeFiber(workInProgress)),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nfunction resolveDefaultProps(Component, baseProps) {\n if (Component && Component.defaultProps) {\n baseProps = assign({}, baseProps);\n Component = Component.defaultProps;\n for (var propName in Component)\n void 0 === baseProps[propName] &&\n (baseProps[propName] = Component[propName]);\n return baseProps;\n }\n return baseProps;\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber = null,\n lastContextDependency = null,\n lastFullyObservedContext = null;\nfunction resetContextDependencies() {\n lastFullyObservedContext = lastContextDependency = currentlyRenderingFiber = null;\n}\nfunction popProvider(context) {\n var currentValue = valueCursor.current;\n pop(valueCursor);\n context._currentValue = currentValue;\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction prepareToReadContext(workInProgress, renderLanes) {\n currentlyRenderingFiber = workInProgress;\n lastFullyObservedContext = lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress &&\n null !== workInProgress.firstContext &&\n (0 !== (workInProgress.lanes & renderLanes) && (didReceiveUpdate = !0),\n (workInProgress.firstContext = null));\n}\nfunction readContext(context) {\n var value = context._currentValue;\n if (lastFullyObservedContext !== context)\n if (\n ((context = { context: context, memoizedValue: value, next: null }),\n null === lastContextDependency)\n ) {\n if (null === currentlyRenderingFiber)\n throw Error(\n \"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\"\n );\n lastContextDependency = context;\n currentlyRenderingFiber.dependencies = {\n lanes: 0,\n firstContext: context\n };\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar concurrentQueues = null;\nfunction pushConcurrentUpdateQueue(queue) {\n null === concurrentQueues\n ? (concurrentQueues = [queue])\n : concurrentQueues.push(queue);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n var interleaved = queue.interleaved;\n null === interleaved\n ? ((update.next = update), pushConcurrentUpdateQueue(queue))\n : ((update.next = interleaved.next), (interleaved.next = update));\n queue.interleaved = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n alternate = sourceFiber;\n for (sourceFiber = sourceFiber.return; null !== sourceFiber; )\n (sourceFiber.childLanes |= lane),\n (alternate = sourceFiber.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n (alternate = sourceFiber),\n (sourceFiber = sourceFiber.return);\n return 3 === alternate.tag ? alternate.stateNode : null;\n}\nvar hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, interleaved: null, lanes: 0 },\n effects: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n effects: current.effects\n });\n}\nfunction createUpdate(eventTime, lane) {\n return {\n eventTime: eventTime,\n lane: lane,\n tag: 0,\n payload: null,\n callback: null,\n next: null\n };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n }\n pending = updateQueue.interleaved;\n null === pending\n ? ((update.next = update), pushConcurrentUpdateQueue(updateQueue))\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.interleaved = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194240))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n eventTime: queue.eventTime,\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: queue.callback,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n effects: current.effects\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance,\n renderLanes\n) {\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane,\n updateEventTime = pendingQueue.eventTime;\n if ((renderLanes & updateLane) === updateLane) {\n null !== current &&\n (current = current.next = {\n eventTime: updateEventTime,\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n updateEventTime = instance;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(\n updateEventTime,\n newState,\n updateLane\n );\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(updateEventTime, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n null !== pendingQueue.callback &&\n 0 !== pendingQueue.lane &&\n ((workInProgress$jscomp$0.flags |= 64),\n (updateLane = queue.effects),\n null === updateLane\n ? (queue.effects = [pendingQueue])\n : updateLane.push(pendingQueue));\n } else\n (updateEventTime = {\n eventTime: updateEventTime,\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = updateEventTime),\n (lastPendingUpdate = newState))\n : (current = current.next = updateEventTime),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (updateLane = pendingQueue),\n (pendingQueue = updateLane.next),\n (updateLane.next = null),\n (queue.lastBaseUpdate = updateLane),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n props = queue.shared.interleaved;\n if (null !== props) {\n queue = props;\n do (lastBaseUpdate |= queue.lane), (queue = queue.next);\n while (queue !== props);\n } else null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction commitUpdateQueue(finishedWork, finishedQueue, instance) {\n finishedWork = finishedQueue.effects;\n finishedQueue.effects = null;\n if (null !== finishedWork)\n for (\n finishedQueue = 0;\n finishedQueue < finishedWork.length;\n finishedQueue++\n ) {\n var effect = finishedWork[finishedQueue],\n callback = effect.callback;\n if (null !== callback) {\n effect.callback = null;\n if (\"function\" !== typeof callback)\n throw Error(\n \"Invalid argument passed as callback. Expected a function. Instead received: \" +\n callback\n );\n callback.call(instance);\n }\n }\n}\nvar emptyRefsObject = new React.Component().refs;\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n isMounted: function(component) {\n return (component = component._reactInternals)\n ? getNearestMountedFiber(component) === component\n : !1;\n },\n enqueueSetState: function(inst, payload, callback) {\n inst = inst._reactInternals;\n var eventTime = requestEventTime(),\n lane = requestUpdateLane(inst),\n update = createUpdate(eventTime, lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane, eventTime),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function(inst, payload, callback) {\n inst = inst._reactInternals;\n var eventTime = requestEventTime(),\n lane = requestUpdateLane(inst),\n update = createUpdate(eventTime, lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane, eventTime),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function(inst, callback) {\n inst = inst._reactInternals;\n var eventTime = requestEventTime(),\n lane = requestUpdateLane(inst),\n update = createUpdate(eventTime, lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane, eventTime),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction constructClassInstance(workInProgress, ctor, props) {\n var isLegacyContextConsumer = !1,\n unmaskedContext = emptyContextObject;\n var context = ctor.contextType;\n \"object\" === typeof context && null !== context\n ? (context = readContext(context))\n : ((unmaskedContext = isContextProvider(ctor)\n ? previousContext\n : contextStackCursor.current),\n (isLegacyContextConsumer = ctor.contextTypes),\n (context = (isLegacyContextConsumer =\n null !== isLegacyContextConsumer && void 0 !== isLegacyContextConsumer)\n ? getMaskedContext(workInProgress, unmaskedContext)\n : emptyContextObject));\n ctor = new ctor(props, context);\n workInProgress.memoizedState =\n null !== ctor.state && void 0 !== ctor.state ? ctor.state : null;\n ctor.updater = classComponentUpdater;\n workInProgress.stateNode = ctor;\n ctor._reactInternals = workInProgress;\n isLegacyContextConsumer &&\n ((workInProgress = workInProgress.stateNode),\n (workInProgress.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext),\n (workInProgress.__reactInternalMemoizedMaskedChildContext = context));\n return ctor;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction mountClassInstance(workInProgress, ctor, newProps, renderLanes) {\n var instance = workInProgress.stateNode;\n instance.props = newProps;\n instance.state = workInProgress.memoizedState;\n instance.refs = emptyRefsObject;\n initializeUpdateQueue(workInProgress);\n var contextType = ctor.contextType;\n \"object\" === typeof contextType && null !== contextType\n ? (instance.context = readContext(contextType))\n : ((contextType = isContextProvider(ctor)\n ? previousContext\n : contextStackCursor.current),\n (instance.context = getMaskedContext(workInProgress, contextType)));\n instance.state = workInProgress.memoizedState;\n contextType = ctor.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(workInProgress, ctor, contextType, newProps),\n (instance.state = workInProgress.memoizedState));\n \"function\" === typeof ctor.getDerivedStateFromProps ||\n \"function\" === typeof instance.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof instance.UNSAFE_componentWillMount &&\n \"function\" !== typeof instance.componentWillMount) ||\n ((ctor = instance.state),\n \"function\" === typeof instance.componentWillMount &&\n instance.componentWillMount(),\n \"function\" === typeof instance.UNSAFE_componentWillMount &&\n instance.UNSAFE_componentWillMount(),\n ctor !== instance.state &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null),\n processUpdateQueue(workInProgress, newProps, instance, renderLanes),\n (instance.state = workInProgress.memoizedState));\n \"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4);\n}\nfunction coerceRef(returnFiber, current, element) {\n returnFiber = element.ref;\n if (\n null !== returnFiber &&\n \"function\" !== typeof returnFiber &&\n \"object\" !== typeof returnFiber\n ) {\n if (element._owner) {\n element = element._owner;\n if (element) {\n if (1 !== element.tag)\n throw Error(\n \"Function components cannot have string refs. We recommend using useRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref\"\n );\n var inst = element.stateNode;\n }\n if (!inst)\n throw Error(\n \"Missing owner for string ref \" +\n returnFiber +\n \". This error is likely caused by a bug in React. Please file an issue.\"\n );\n var resolvedInst = inst,\n stringRef = \"\" + returnFiber;\n if (\n null !== current &&\n null !== current.ref &&\n \"function\" === typeof current.ref &&\n current.ref._stringRef === stringRef\n )\n return current.ref;\n current = function(value) {\n var refs = resolvedInst.refs;\n refs === emptyRefsObject && (refs = resolvedInst.refs = {});\n null === value ? delete refs[stringRef] : (refs[stringRef] = value);\n };\n current._stringRef = stringRef;\n return current;\n }\n if (\"string\" !== typeof returnFiber)\n throw Error(\n \"Expected ref to be a function, a string, an object returned by React.createRef(), or null.\"\n );\n if (!element._owner)\n throw Error(\n \"Element ref was specified as a string (\" +\n returnFiber +\n \") but no owner was set. This could happen for one of the following reasons:\\n1. You may be adding a ref to a function component\\n2. You may be adding a ref to a component that was not created inside a component's render method\\n3. You have multiple copies of React loaded\\nSee https://reactjs.org/link/refs-must-have-owner for more information.\"\n );\n }\n return returnFiber;\n}\nfunction throwOnInvalidObjectType(returnFiber, newChild) {\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n}\nfunction resolveLazy(lazyType) {\n var init = lazyType._init;\n return init(lazyType._payload);\n}\nfunction ChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(returnFiber, currentFirstChild) {\n for (returnFiber = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? returnFiber.set(currentFirstChild.key, currentFirstChild)\n : returnFiber.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return returnFiber;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 2), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 2;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 2);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (lanes = useFiber(current, element.props)),\n (lanes.ref = coerceRef(returnFiber, current, element)),\n (lanes.return = returnFiber),\n lanes\n );\n lanes = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n lanes.ref = coerceRef(returnFiber, current, element);\n lanes.return = returnFiber;\n return lanes;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n (lanes.ref = coerceRef(returnFiber, null, newChild)),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n return createChild(returnFiber, init(newChild._payload), lanes);\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (key = newChild._init),\n updateSlot(returnFiber, oldFiber, key(newChild._payload), lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n init(newChild._payload),\n lanes\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber), resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(returnFiber, oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function(child) {\n return deleteChild(returnFiber, child);\n });\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildrenIterable,\n lanes\n ) {\n var iteratorFn = getIteratorFn(newChildrenIterable);\n if (\"function\" !== typeof iteratorFn)\n throw Error(\n \"An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.\"\n );\n newChildrenIterable = iteratorFn.call(newChildrenIterable);\n if (null == newChildrenIterable)\n throw Error(\"An iterable object provided no iterator.\");\n for (\n var previousNewFiber = (iteratorFn = null),\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildrenIterable.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildrenIterable.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (iteratorFn = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return deleteRemainingChildren(returnFiber, oldFiber), iteratorFn;\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildrenIterable.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (iteratorFn = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n return iteratorFn;\n }\n for (\n oldFiber = mapRemainingChildren(returnFiber, oldFiber);\n !step.done;\n newIdx++, step = newChildrenIterable.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (iteratorFn = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function(child) {\n return deleteChild(returnFiber, child);\n });\n return iteratorFn;\n }\n function reconcileChildFibers(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (\n var key = newChild.key, child = currentFirstChild;\n null !== child;\n\n ) {\n if (child.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === child.tag) {\n deleteRemainingChildren(returnFiber, child.sibling);\n currentFirstChild = useFiber(\n child,\n newChild.props.children\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n break a;\n }\n } else if (\n child.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === child.type)\n ) {\n deleteRemainingChildren(returnFiber, child.sibling);\n currentFirstChild = useFiber(child, newChild.props);\n currentFirstChild.ref = coerceRef(\n returnFiber,\n child,\n newChild\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n break a;\n }\n deleteRemainingChildren(returnFiber, child);\n break;\n } else deleteChild(returnFiber, child);\n child = child.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((currentFirstChild = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (currentFirstChild.return = returnFiber),\n (returnFiber = currentFirstChild))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n (lanes.ref = coerceRef(\n returnFiber,\n currentFirstChild,\n newChild\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (child = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === child)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n currentFirstChild = useFiber(\n currentFirstChild,\n newChild.children || []\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n currentFirstChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (child = newChild._init),\n reconcileChildFibers(\n returnFiber,\n currentFirstChild,\n child(newChild._payload),\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild))\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (currentFirstChild = useFiber(currentFirstChild, newChild)),\n (currentFirstChild.return = returnFiber),\n (returnFiber = currentFirstChild))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (currentFirstChild = createFiberFromText(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (currentFirstChild.return = returnFiber),\n (returnFiber = currentFirstChild)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return reconcileChildFibers;\n}\nvar reconcileChildFibers = ChildReconciler(!0),\n mountChildFibers = ChildReconciler(!1),\n NO_CONTEXT = {},\n contextStackCursor$1 = createCursor(NO_CONTEXT),\n contextFiberStackCursor = createCursor(NO_CONTEXT),\n rootInstanceStackCursor = createCursor(NO_CONTEXT);\nfunction requiredContext(c) {\n if (c === NO_CONTEXT)\n throw Error(\n \"Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.\"\n );\n return c;\n}\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor$1, NO_CONTEXT);\n pop(contextStackCursor$1);\n push(contextStackCursor$1, { isInAParentText: !1 });\n}\nfunction popHostContainer() {\n pop(contextStackCursor$1);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n requiredContext(rootInstanceStackCursor.current);\n var context = requiredContext(contextStackCursor$1.current);\n var JSCompiler_inline_result = fiber.type;\n JSCompiler_inline_result =\n \"AndroidTextInput\" === JSCompiler_inline_result ||\n \"RCTMultilineTextInputView\" === JSCompiler_inline_result ||\n \"RCTSinglelineTextInputView\" === JSCompiler_inline_result ||\n \"RCTText\" === JSCompiler_inline_result ||\n \"RCTVirtualText\" === JSCompiler_inline_result;\n JSCompiler_inline_result =\n context.isInAParentText !== JSCompiler_inline_result\n ? { isInAParentText: JSCompiler_inline_result }\n : context;\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor$1, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor$1), pop(contextFiberStackCursor));\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (null !== state && (null === state.dehydrated || shim() || shim()))\n return node;\n } else if (19 === node.tag && void 0 !== node.memoizedProps.revealOrder) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar workInProgressSources = [];\nfunction resetWorkInProgressVersions() {\n for (var i = 0; i < workInProgressSources.length; i++)\n workInProgressSources[i]._workInProgressVersionPrimary = null;\n workInProgressSources.length = 0;\n}\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher,\n ReactCurrentBatchConfig$1 = ReactSharedInternals.ReactCurrentBatchConfig,\n renderLanes = 0,\n currentlyRenderingFiber$1 = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber$1 = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactCurrentDispatcher$1.current =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n current = Component(props, secondArg);\n if (didScheduleRenderPhaseUpdateDuringThisPass) {\n nextRenderLanes = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= nextRenderLanes)\n throw Error(\n \"Too many re-renders. React limits the number of renders to prevent an infinite loop.\"\n );\n nextRenderLanes += 1;\n workInProgressHook = currentHook = null;\n workInProgress.updateQueue = null;\n ReactCurrentDispatcher$1.current = HooksDispatcherOnRerender;\n current = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n }\n ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n workInProgress = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber$1 = null;\n didScheduleRenderPhaseUpdate = !1;\n if (workInProgress)\n throw Error(\n \"Rendered fewer hooks than expected. This may be caused by an accidental early return statement.\"\n );\n return current;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber$1.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber$1.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber$1.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook)\n throw Error(\"Rendered more hooks than during the previous render.\");\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber$1.memoizedState = workInProgressHook = nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue)\n throw Error(\n \"Should have a queue. This is likely a bug in React. Please file an issue.\"\n );\n queue.lastRenderedReducer = reducer;\n var current = currentHook,\n baseQueue = current.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n if (null !== baseQueue) {\n pendingQueue = baseQueue.next;\n current = current.baseState;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = pendingQueue;\n do {\n var updateLane = update.lane;\n if ((renderLanes & updateLane) === updateLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next = {\n lane: 0,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n (current = update.hasEagerState\n ? update.eagerState\n : reducer(current, update.action));\n else {\n var clone = {\n lane: updateLane,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n };\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = clone),\n (baseFirst = current))\n : (newBaseQueueLast = newBaseQueueLast.next = clone);\n currentlyRenderingFiber$1.lanes |= updateLane;\n workInProgressRootSkippedLanes |= updateLane;\n }\n update = update.next;\n } while (null !== update && update !== pendingQueue);\n null === newBaseQueueLast\n ? (baseFirst = current)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n objectIs(current, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = current;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = current;\n }\n reducer = queue.interleaved;\n if (null !== reducer) {\n baseQueue = reducer;\n do\n (pendingQueue = baseQueue.lane),\n (currentlyRenderingFiber$1.lanes |= pendingQueue),\n (workInProgressRootSkippedLanes |= pendingQueue),\n (baseQueue = baseQueue.next);\n while (baseQueue !== reducer);\n } else null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue)\n throw Error(\n \"Should have a queue. This is likely a bug in React. Please file an issue.\"\n );\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateMutableSource() {}\nfunction updateSyncExternalStore(subscribe, getSnapshot) {\n var fiber = currentlyRenderingFiber$1,\n hook = updateWorkInProgressHook(),\n nextSnapshot = getSnapshot(),\n snapshotChanged = !objectIs(hook.memoizedState, nextSnapshot);\n snapshotChanged &&\n ((hook.memoizedState = nextSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushEffect(\n 9,\n updateStoreInstance.bind(null, fiber, hook, nextSnapshot, getSnapshot),\n void 0,\n null\n );\n if (null === workInProgressRoot)\n throw Error(\n \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\"\n );\n 0 !== (renderLanes & 30) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot);\n }\n return nextSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber$1.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = { lastEffect: null, stores: null }),\n (currentlyRenderingFiber$1.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function() {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = markUpdateLaneFromFiberToRoot(fiber, 1);\n null !== root && scheduleUpdateOnFiber(root, fiber, 1, -1);\n}\nfunction mountState(initialState) {\n var hook = mountWorkInProgressHook();\n \"function\" === typeof initialState && (initialState = initialState());\n hook.memoizedState = hook.baseState = initialState;\n initialState = {\n pending: null,\n interleaved: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n hook.queue = initialState;\n initialState = initialState.dispatch = dispatchSetState.bind(\n null,\n currentlyRenderingFiber$1,\n initialState\n );\n return [hook.memoizedState, initialState];\n}\nfunction pushEffect(tag, create, destroy, deps) {\n tag = { tag: tag, create: create, destroy: destroy, deps: deps, next: null };\n create = currentlyRenderingFiber$1.updateQueue;\n null === create\n ? ((create = { lastEffect: null, stores: null }),\n (currentlyRenderingFiber$1.updateQueue = create),\n (create.lastEffect = tag.next = tag))\n : ((destroy = create.lastEffect),\n null === destroy\n ? (create.lastEffect = tag.next = tag)\n : ((deps = destroy.next),\n (destroy.next = tag),\n (tag.next = deps),\n (create.lastEffect = tag)));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(\n 1 | hookFlags,\n create,\n void 0,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var destroy = void 0;\n if (null !== currentHook) {\n var prevEffect = currentHook.memoizedState;\n destroy = prevEffect.destroy;\n if (null !== deps && areHookInputsEqual(deps, prevEffect.deps)) {\n hook.memoizedState = pushEffect(hookFlags, create, destroy, deps);\n return;\n }\n }\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(1 | hookFlags, create, destroy, deps);\n}\nfunction mountEffect(create, deps) {\n return mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n return updateEffectImpl(2048, 8, create, deps);\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref)\n return (\n (create = create()),\n ref(create),\n function() {\n ref(null);\n }\n );\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function() {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n return updateEffectImpl(\n 4,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (\n null !== prevState &&\n null !== deps &&\n areHookInputsEqual(deps, prevState[1])\n )\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (\n null !== prevState &&\n null !== deps &&\n areHookInputsEqual(deps, prevState[1])\n )\n return prevState[0];\n nextCreate = nextCreate();\n hook.memoizedState = [nextCreate, deps];\n return nextCreate;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value) {\n if (0 === (renderLanes & 21))\n return (\n hook.baseState && ((hook.baseState = !1), (didReceiveUpdate = !0)),\n (hook.memoizedState = value)\n );\n objectIs(value, prevValue) ||\n ((value = claimNextTransitionLane()),\n (currentlyRenderingFiber$1.lanes |= value),\n (workInProgressRootSkippedLanes |= value),\n (hook.baseState = !0));\n return prevValue;\n}\nfunction startTransition(setPending, callback) {\n var previousPriority = currentUpdatePriority;\n currentUpdatePriority =\n 0 !== previousPriority && 4 > previousPriority ? previousPriority : 4;\n setPending(!0);\n var prevTransition = ReactCurrentBatchConfig$1.transition;\n ReactCurrentBatchConfig$1.transition = {};\n try {\n setPending(!1), callback();\n } finally {\n (currentUpdatePriority = previousPriority),\n (ReactCurrentBatchConfig$1.transition = prevTransition);\n }\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane(fiber);\n action = {\n lane: lane,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, action);\n else if (\n ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action)\n ) {\n var eventTime = requestEventTime();\n scheduleUpdateOnFiber(action, fiber, lane, eventTime);\n entangleTransitionUpdate(action, queue, lane);\n }\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane(fiber),\n update = {\n lane: lane,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState)) {\n var interleaved = queue.interleaved;\n null === interleaved\n ? ((update.next = update), pushConcurrentUpdateQueue(queue))\n : ((update.next = interleaved.next), (interleaved.next = update));\n queue.interleaved = update;\n return;\n }\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n null !== action &&\n ((update = requestEventTime()),\n scheduleUpdateOnFiber(action, fiber, lane, update),\n entangleTransitionUpdate(action, queue, lane));\n }\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber$1 ||\n (null !== alternate && alternate === currentlyRenderingFiber$1)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate = !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194240)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useMutableSource: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n unstable_isNewReconciler: !1\n },\n HooksDispatcherOnMount = {\n readContext: readContext,\n useCallback: function(callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n return mountEffectImpl(\n 4,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function(create, deps) {\n return mountEffectImpl(4, 4, create, deps);\n },\n useInsertionEffect: function(create, deps) {\n return mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function(nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n nextCreate = nextCreate();\n hook.memoizedState = [nextCreate, deps];\n return nextCreate;\n },\n useReducer: function(reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n initialArg = void 0 !== init ? init(initialArg) : initialArg;\n hook.memoizedState = hook.baseState = initialArg;\n reducer = {\n pending: null,\n interleaved: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialArg\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber$1,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function(initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: mountState,\n useDebugValue: mountDebugValue,\n useDeferredValue: function(value) {\n return (mountWorkInProgressHook().memoizedState = value);\n },\n useTransition: function() {\n var _mountState = mountState(!1),\n isPending = _mountState[0];\n _mountState = startTransition.bind(null, _mountState[1]);\n mountWorkInProgressHook().memoizedState = _mountState;\n return [isPending, _mountState];\n },\n useMutableSource: function() {},\n useSyncExternalStore: function(subscribe, getSnapshot) {\n var fiber = currentlyRenderingFiber$1,\n hook = mountWorkInProgressHook();\n var nextSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(\n \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\"\n );\n 0 !== (renderLanes & 30) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot);\n hook.memoizedState = nextSnapshot;\n var inst = { value: nextSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushEffect(\n 9,\n updateStoreInstance.bind(null, fiber, inst, nextSnapshot, getSnapshot),\n void 0,\n null\n );\n return nextSnapshot;\n },\n useId: function() {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix,\n globalClientId = globalClientIdCounter++;\n identifierPrefix =\n \":\" + identifierPrefix + \"r\" + globalClientId.toString(32) + \":\";\n return (hook.memoizedState = identifierPrefix);\n },\n unstable_isNewReconciler: !1\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function() {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function(value) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(hook, currentHook.memoizedState, value);\n },\n useTransition: function() {\n var isPending = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [isPending, start];\n },\n useMutableSource: updateMutableSource,\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n unstable_isNewReconciler: !1\n },\n HooksDispatcherOnRerender = {\n readContext: readContext,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function() {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function(value) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? (hook.memoizedState = value)\n : updateDeferredValueImpl(hook, currentHook.memoizedState, value);\n },\n useTransition: function() {\n var isPending = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [isPending, start];\n },\n useMutableSource: updateMutableSource,\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n unstable_isNewReconciler: !1\n };\nfunction createCapturedValueAtFiber(value, source) {\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source),\n digest: null\n };\n}\nfunction createCapturedValue(value, digest, stack) {\n return {\n value: value,\n source: null,\n stack: null != stack ? stack : null,\n digest: null != digest ? digest : null\n };\n}\nif (\n \"function\" !==\n typeof ReactNativePrivateInterface.ReactFiberErrorDialog.showErrorDialog\n)\n throw Error(\n \"Expected ReactFiberErrorDialog.showErrorDialog to be a function.\"\n );\nfunction logCapturedError(boundary, errorInfo) {\n try {\n !1 !==\n ReactNativePrivateInterface.ReactFiberErrorDialog.showErrorDialog({\n componentStack: null !== errorInfo.stack ? errorInfo.stack : \"\",\n error: errorInfo.value,\n errorBoundary:\n null !== boundary && 1 === boundary.tag ? boundary.stateNode : null\n }) && console.error(errorInfo.value);\n } catch (e) {\n setTimeout(function() {\n throw e;\n });\n }\n}\nvar PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map;\nfunction createRootErrorUpdate(fiber, errorInfo, lane) {\n lane = createUpdate(-1, lane);\n lane.tag = 3;\n lane.payload = { element: null };\n var error = errorInfo.value;\n lane.callback = function() {\n hasUncaughtError || ((hasUncaughtError = !0), (firstUncaughtError = error));\n logCapturedError(fiber, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(fiber, errorInfo, lane) {\n lane = createUpdate(-1, lane);\n lane.tag = 3;\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n lane.payload = function() {\n return getDerivedStateFromError(error);\n };\n lane.callback = function() {\n logCapturedError(fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (lane.callback = function() {\n logCapturedError(fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n return lane;\n}\nfunction attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n if (null === pingCache) {\n pingCache = root.pingCache = new PossiblyWeakMap();\n var threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else\n (threadIDs = pingCache.get(wakeable)),\n void 0 === threadIDs &&\n ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n threadIDs.has(lanes) ||\n (threadIDs.add(lanes),\n (root = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n wakeable.then(root, root));\n}\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner,\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n prepareToReadContext(workInProgress, renderLanes);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n ref,\n renderLanes\n );\n if (null !== current && !didReceiveUpdate)\n return (\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.flags &= -2053),\n (current.lanes &= ~renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare &&\n void 0 === Component.defaultProps\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (0 === (current.lanes & renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n 0 !== (current.lanes & renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n if (\"hidden\" === nextProps.mode)\n if (0 === (workInProgress.mode & 1))\n (workInProgress.memoizedState = {\n baseLanes: 0,\n cachePool: null,\n transitions: null\n }),\n push(subtreeRenderLanesCursor, subtreeRenderLanes),\n (subtreeRenderLanes |= renderLanes);\n else {\n if (0 === (renderLanes & 1073741824))\n return (\n (current =\n null !== prevState\n ? prevState.baseLanes | renderLanes\n : renderLanes),\n (workInProgress.lanes = workInProgress.childLanes = 1073741824),\n (workInProgress.memoizedState = {\n baseLanes: current,\n cachePool: null,\n transitions: null\n }),\n (workInProgress.updateQueue = null),\n push(subtreeRenderLanesCursor, subtreeRenderLanes),\n (subtreeRenderLanes |= current),\n null\n );\n workInProgress.memoizedState = {\n baseLanes: 0,\n cachePool: null,\n transitions: null\n };\n nextProps = null !== prevState ? prevState.baseLanes : renderLanes;\n push(subtreeRenderLanesCursor, subtreeRenderLanes);\n subtreeRenderLanes |= nextProps;\n }\n else\n null !== prevState\n ? ((nextProps = prevState.baseLanes | renderLanes),\n (workInProgress.memoizedState = null))\n : (nextProps = renderLanes),\n push(subtreeRenderLanesCursor, subtreeRenderLanes),\n (subtreeRenderLanes |= nextProps);\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (\n (null === current && null !== ref) ||\n (null !== current && current.ref !== ref)\n )\n workInProgress.flags |= 512;\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n var context = isContextProvider(Component)\n ? previousContext\n : contextStackCursor.current;\n context = getMaskedContext(workInProgress, context);\n prepareToReadContext(workInProgress, renderLanes);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n context,\n renderLanes\n );\n if (null !== current && !didReceiveUpdate)\n return (\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.flags &= -2053),\n (current.lanes &= ~renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (isContextProvider(Component)) {\n var hasContext = !0;\n pushContextProvider(workInProgress);\n } else hasContext = !1;\n prepareToReadContext(workInProgress, renderLanes);\n if (null === workInProgress.stateNode)\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress),\n constructClassInstance(workInProgress, Component, nextProps),\n mountClassInstance(workInProgress, Component, nextProps, renderLanes),\n (nextProps = !0);\n else if (null === current) {\n var instance = workInProgress.stateNode,\n oldProps = workInProgress.memoizedProps;\n instance.props = oldProps;\n var oldContext = instance.context,\n contextType = Component.contextType;\n \"object\" === typeof contextType && null !== contextType\n ? (contextType = readContext(contextType))\n : ((contextType = isContextProvider(Component)\n ? previousContext\n : contextStackCursor.current),\n (contextType = getMaskedContext(workInProgress, contextType)));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps,\n hasNewLifecycles =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof instance.getSnapshotBeforeUpdate;\n hasNewLifecycles ||\n (\"function\" !== typeof instance.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof instance.componentWillReceiveProps) ||\n ((oldProps !== nextProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n instance,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n instance.state = oldState;\n processUpdateQueue(workInProgress, nextProps, instance, renderLanes);\n oldContext = workInProgress.memoizedState;\n oldProps !== nextProps ||\n oldState !== oldContext ||\n didPerformWorkStackCursor.current ||\n hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (hasNewLifecycles ||\n (\"function\" !== typeof instance.UNSAFE_componentWillMount &&\n \"function\" !== typeof instance.componentWillMount) ||\n (\"function\" === typeof instance.componentWillMount &&\n instance.componentWillMount(),\n \"function\" === typeof instance.UNSAFE_componentWillMount &&\n instance.UNSAFE_componentWillMount()),\n \"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4))\n : (\"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (instance.props = nextProps),\n (instance.state = oldContext),\n (instance.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4),\n (nextProps = !1));\n } else {\n instance = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n oldProps = workInProgress.memoizedProps;\n contextType =\n workInProgress.type === workInProgress.elementType\n ? oldProps\n : resolveDefaultProps(workInProgress.type, oldProps);\n instance.props = contextType;\n hasNewLifecycles = workInProgress.pendingProps;\n oldState = instance.context;\n oldContext = Component.contextType;\n \"object\" === typeof oldContext && null !== oldContext\n ? (oldContext = readContext(oldContext))\n : ((oldContext = isContextProvider(Component)\n ? previousContext\n : contextStackCursor.current),\n (oldContext = getMaskedContext(workInProgress, oldContext)));\n var getDerivedStateFromProps$jscomp$0 = Component.getDerivedStateFromProps;\n (getDerivedStateFromProps =\n \"function\" === typeof getDerivedStateFromProps$jscomp$0 ||\n \"function\" === typeof instance.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof instance.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof instance.componentWillReceiveProps) ||\n ((oldProps !== hasNewLifecycles || oldState !== oldContext) &&\n callComponentWillReceiveProps(\n workInProgress,\n instance,\n nextProps,\n oldContext\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n instance.state = oldState;\n processUpdateQueue(workInProgress, nextProps, instance, renderLanes);\n var newState = workInProgress.memoizedState;\n oldProps !== hasNewLifecycles ||\n oldState !== newState ||\n didPerformWorkStackCursor.current ||\n hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps$jscomp$0 &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps$jscomp$0,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType,\n nextProps,\n oldState,\n newState,\n oldContext\n ) ||\n !1)\n ? (getDerivedStateFromProps ||\n (\"function\" !== typeof instance.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof instance.componentWillUpdate) ||\n (\"function\" === typeof instance.componentWillUpdate &&\n instance.componentWillUpdate(nextProps, newState, oldContext),\n \"function\" === typeof instance.UNSAFE_componentWillUpdate &&\n instance.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldContext\n )),\n \"function\" === typeof instance.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof instance.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof instance.componentDidUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof instance.getSnapshotBeforeUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (instance.props = nextProps),\n (instance.state = newState),\n (instance.context = oldContext),\n (nextProps = contextType))\n : (\"function\" !== typeof instance.componentDidUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof instance.getSnapshotBeforeUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n return finishClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n hasContext,\n renderLanes\n );\n}\nfunction finishClassComponent(\n current,\n workInProgress,\n Component,\n shouldUpdate,\n hasContext,\n renderLanes\n) {\n markRef(current, workInProgress);\n var didCaptureError = 0 !== (workInProgress.flags & 128);\n if (!shouldUpdate && !didCaptureError)\n return (\n hasContext && invalidateContextProvider(workInProgress, Component, !1),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n shouldUpdate = workInProgress.stateNode;\n ReactCurrentOwner$1.current = workInProgress;\n var nextChildren =\n didCaptureError && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : shouldUpdate.render();\n workInProgress.flags |= 1;\n null !== current && didCaptureError\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n nextChildren,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n workInProgress.memoizedState = shouldUpdate.state;\n hasContext && invalidateContextProvider(workInProgress, Component, !0);\n return workInProgress.child;\n}\nfunction pushHostRootContext(workInProgress) {\n var root = workInProgress.stateNode;\n root.pendingContext\n ? pushTopLevelContextObject(\n workInProgress,\n root.pendingContext,\n root.pendingContext !== root.context\n )\n : root.context &&\n pushTopLevelContextObject(workInProgress, root.context, !1);\n pushHostContainer(workInProgress, root.containerInfo);\n}\nvar SUSPENDED_MARKER = { dehydrated: null, treeContext: null, retryLane: 0 };\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: null, transitions: null };\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n suspenseContext = suspenseStackCursor.current,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseContext & 2));\n if (JSCompiler_temp) (showFallback = !0), (workInProgress.flags &= -129);\n else if (null === current || null !== current.memoizedState)\n suspenseContext |= 1;\n push(suspenseStackCursor, suspenseContext & 1);\n if (null === current) {\n current = workInProgress.memoizedState;\n if (null !== current && null !== current.dehydrated)\n return (\n 0 === (workInProgress.mode & 1)\n ? (workInProgress.lanes = 1)\n : shim()\n ? (workInProgress.lanes = 8)\n : (workInProgress.lanes = 1073741824),\n null\n );\n didSuspend = nextProps.children;\n current = nextProps.fallback;\n return showFallback\n ? ((nextProps = workInProgress.mode),\n (showFallback = workInProgress.child),\n (didSuspend = { mode: \"hidden\", children: didSuspend }),\n 0 === (nextProps & 1) && null !== showFallback\n ? ((showFallback.childLanes = 0),\n (showFallback.pendingProps = didSuspend))\n : (showFallback = createFiberFromOffscreen(\n didSuspend,\n nextProps,\n 0,\n null\n )),\n (current = createFiberFromFragment(\n current,\n nextProps,\n renderLanes,\n null\n )),\n (showFallback.return = workInProgress),\n (current.return = workInProgress),\n (showFallback.sibling = current),\n (workInProgress.child = showFallback),\n (workInProgress.child.memoizedState = mountSuspenseOffscreenState(\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n current)\n : mountSuspensePrimaryChildren(workInProgress, didSuspend);\n }\n suspenseContext = current.memoizedState;\n if (\n null !== suspenseContext &&\n ((JSCompiler_temp = suspenseContext.dehydrated), null !== JSCompiler_temp)\n )\n return updateDehydratedSuspenseComponent(\n current,\n workInProgress,\n didSuspend,\n nextProps,\n JSCompiler_temp,\n suspenseContext,\n renderLanes\n );\n if (showFallback) {\n showFallback = nextProps.fallback;\n didSuspend = workInProgress.mode;\n suspenseContext = current.child;\n JSCompiler_temp = suspenseContext.sibling;\n var primaryChildProps = { mode: \"hidden\", children: nextProps.children };\n 0 === (didSuspend & 1) && workInProgress.child !== suspenseContext\n ? ((nextProps = workInProgress.child),\n (nextProps.childLanes = 0),\n (nextProps.pendingProps = primaryChildProps),\n (workInProgress.deletions = null))\n : ((nextProps = createWorkInProgress(suspenseContext, primaryChildProps)),\n (nextProps.subtreeFlags = suspenseContext.subtreeFlags & 14680064));\n null !== JSCompiler_temp\n ? (showFallback = createWorkInProgress(JSCompiler_temp, showFallback))\n : ((showFallback = createFiberFromFragment(\n showFallback,\n didSuspend,\n renderLanes,\n null\n )),\n (showFallback.flags |= 2));\n showFallback.return = workInProgress;\n nextProps.return = workInProgress;\n nextProps.sibling = showFallback;\n workInProgress.child = nextProps;\n nextProps = showFallback;\n showFallback = workInProgress.child;\n didSuspend = current.child.memoizedState;\n didSuspend =\n null === didSuspend\n ? mountSuspenseOffscreenState(renderLanes)\n : {\n baseLanes: didSuspend.baseLanes | renderLanes,\n cachePool: null,\n transitions: didSuspend.transitions\n };\n showFallback.memoizedState = didSuspend;\n showFallback.childLanes = current.childLanes & ~renderLanes;\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return nextProps;\n }\n showFallback = current.child;\n current = showFallback.sibling;\n nextProps = createWorkInProgress(showFallback, {\n mode: \"visible\",\n children: nextProps.children\n });\n 0 === (workInProgress.mode & 1) && (nextProps.lanes = renderLanes);\n nextProps.return = workInProgress;\n nextProps.sibling = null;\n null !== current &&\n ((renderLanes = workInProgress.deletions),\n null === renderLanes\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : renderLanes.push(current));\n workInProgress.child = nextProps;\n workInProgress.memoizedState = null;\n return nextProps;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = createFiberFromOffscreen(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode,\n 0,\n null\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n recoverableError\n) {\n null !== recoverableError &&\n (null === hydrationErrors\n ? (hydrationErrors = [recoverableError])\n : hydrationErrors.push(recoverableError));\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction updateDehydratedSuspenseComponent(\n current,\n workInProgress,\n didSuspend,\n nextProps,\n suspenseInstance,\n suspenseState,\n renderLanes\n) {\n if (didSuspend) {\n if (workInProgress.flags & 256)\n return (\n (workInProgress.flags &= -257),\n (suspenseState = createCapturedValue(\n Error(\n \"There was an error while hydrating this Suspense boundary. Switched to client rendering.\"\n )\n )),\n retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n suspenseState\n )\n );\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n null\n );\n suspenseState = nextProps.fallback;\n didSuspend = workInProgress.mode;\n nextProps = createFiberFromOffscreen(\n { mode: \"visible\", children: nextProps.children },\n didSuspend,\n 0,\n null\n );\n suspenseState = createFiberFromFragment(\n suspenseState,\n didSuspend,\n renderLanes,\n null\n );\n suspenseState.flags |= 2;\n nextProps.return = workInProgress;\n suspenseState.return = workInProgress;\n nextProps.sibling = suspenseState;\n workInProgress.child = nextProps;\n 0 !== (workInProgress.mode & 1) &&\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n workInProgress.child.memoizedState = mountSuspenseOffscreenState(\n renderLanes\n );\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return suspenseState;\n }\n if (0 === (workInProgress.mode & 1))\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n null\n );\n if (shim())\n return (\n (suspenseState = shim().digest),\n (suspenseState = createCapturedValue(\n Error(\n \"The server could not finish this Suspense boundary, likely due to an error during server rendering. Switched to client rendering.\"\n ),\n suspenseState,\n void 0\n )),\n retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n suspenseState\n )\n );\n didSuspend = 0 !== (renderLanes & current.childLanes);\n if (didReceiveUpdate || didSuspend) {\n nextProps = workInProgressRoot;\n if (null !== nextProps) {\n switch (renderLanes & -renderLanes) {\n case 4:\n didSuspend = 2;\n break;\n case 16:\n didSuspend = 8;\n break;\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n didSuspend = 32;\n break;\n case 536870912:\n didSuspend = 268435456;\n break;\n default:\n didSuspend = 0;\n }\n didSuspend =\n 0 !== (didSuspend & (nextProps.suspendedLanes | renderLanes))\n ? 0\n : didSuspend;\n 0 !== didSuspend &&\n didSuspend !== suspenseState.retryLane &&\n ((suspenseState.retryLane = didSuspend),\n markUpdateLaneFromFiberToRoot(current, didSuspend),\n scheduleUpdateOnFiber(nextProps, current, didSuspend, -1));\n }\n renderDidSuspendDelayIfPossible();\n suspenseState = createCapturedValue(\n Error(\n \"This Suspense boundary received an update before it finished hydrating. This caused the boundary to switch to client rendering. The usual way to fix this is to wrap the original update in startTransition.\"\n )\n );\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n suspenseState\n );\n }\n if (shim())\n return (\n (workInProgress.flags |= 128),\n (workInProgress.child = current.child),\n retryDehydratedSuspenseBoundary.bind(null, current),\n shim(),\n null\n );\n current = mountSuspensePrimaryChildren(workInProgress, nextProps.children);\n current.flags |= 4096;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n reconcileChildren(current, workInProgress, nextProps.children, renderLanes);\n nextProps = suspenseStackCursor.current;\n if (0 !== (nextProps & 2))\n (nextProps = (nextProps & 1) | 2), (workInProgress.flags |= 128);\n else {\n if (null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n nextProps &= 1;\n }\n push(suspenseStackCursor, nextProps);\n if (0 === (workInProgress.mode & 1)) workInProgress.memoizedState = null;\n else\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child),\n (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode\n );\n break;\n case \"backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode\n );\n break;\n case \"together\":\n initSuspenseListRenderState(workInProgress, !1, null, null, void 0);\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress) {\n 0 === (workInProgress.mode & 1) &&\n null !== current &&\n ((current.alternate = null),\n (workInProgress.alternate = null),\n (workInProgress.flags |= 2));\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes)) return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(\"Resuming work not yet implemented.\");\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling = createWorkInProgress(\n current,\n current.pendingProps\n )),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostRootContext(workInProgress);\n break;\n case 5:\n pushHostContext(workInProgress);\n break;\n case 1:\n isContextProvider(workInProgress.type) &&\n pushContextProvider(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n var context = workInProgress.type._context,\n nextValue = workInProgress.memoizedProps.value;\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n break;\n case 13:\n context = workInProgress.memoizedState;\n if (null !== context) {\n if (null !== context.dehydrated)\n return (\n push(suspenseStackCursor, suspenseStackCursor.current & 1),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n break;\n case 19:\n context = 0 !== (renderLanes & workInProgress.childLanes);\n if (0 !== (current.flags & 128)) {\n if (context)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n nextValue = workInProgress.memoizedState;\n null !== nextValue &&\n ((nextValue.rendering = null),\n (nextValue.tail = null),\n (nextValue.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (context) break;\n else return null;\n case 22:\n case 23:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(current, workInProgress, renderLanes)\n );\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nvar appendAllChildren,\n updateHostContainer,\n updateHostComponent$1,\n updateHostText$1;\nappendAllChildren = function(parent, workInProgress) {\n for (var node = workInProgress.child; null !== node; ) {\n if (5 === node.tag || 6 === node.tag) parent._children.push(node.stateNode);\n else if (4 !== node.tag && null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === workInProgress) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === workInProgress) return;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n};\nupdateHostContainer = function() {};\nupdateHostComponent$1 = function(current, workInProgress, type, newProps) {\n current.memoizedProps !== newProps &&\n (requiredContext(contextStackCursor$1.current),\n (workInProgress.updateQueue = UPDATE_SIGNAL)) &&\n (workInProgress.flags |= 4);\n};\nupdateHostText$1 = function(current, workInProgress, oldText, newText) {\n oldText !== newText && (workInProgress.flags |= 4);\n};\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$62 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$62 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$62\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$62.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$63 = completedWork.child; null !== child$63; )\n (newChildLanes |= child$63.lanes | child$63.childLanes),\n (subtreeFlags |= child$63.subtreeFlags & 14680064),\n (subtreeFlags |= child$63.flags & 14680064),\n (child$63.return = completedWork),\n (child$63 = child$63.sibling);\n else\n for (child$63 = completedWork.child; null !== child$63; )\n (newChildLanes |= child$63.lanes | child$63.childLanes),\n (subtreeFlags |= child$63.subtreeFlags),\n (subtreeFlags |= child$63.flags),\n (child$63.return = completedWork),\n (child$63 = child$63.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 2:\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return (\n isContextProvider(workInProgress.type) && popContext(),\n bubbleProperties(workInProgress),\n null\n );\n case 3:\n return (\n (renderLanes = workInProgress.stateNode),\n popHostContainer(),\n pop(didPerformWorkStackCursor),\n pop(contextStackCursor),\n resetWorkInProgressVersions(),\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null)),\n (null !== current && null !== current.child) ||\n null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n null !== hydrationErrors &&\n (queueRecoverableErrors(hydrationErrors),\n (hydrationErrors = null))),\n updateHostContainer(current, workInProgress),\n bubbleProperties(workInProgress),\n null\n );\n case 5:\n popHostContext(workInProgress);\n renderLanes = requiredContext(rootInstanceStackCursor.current);\n var type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n updateHostComponent$1(\n current,\n workInProgress,\n type,\n newProps,\n renderLanes\n ),\n current.ref !== workInProgress.ref && (workInProgress.flags |= 512);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(\n \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\"\n );\n bubbleProperties(workInProgress);\n return null;\n }\n requiredContext(contextStackCursor$1.current);\n current = allocateTag();\n type = getViewConfigForType(type);\n var updatePayload = diffProperties(\n null,\n emptyObject,\n newProps,\n type.validAttributes\n );\n ReactNativePrivateInterface.UIManager.createView(\n current,\n type.uiViewClassName,\n renderLanes,\n updatePayload\n );\n renderLanes = new ReactNativeFiberHostComponent(\n current,\n type,\n workInProgress\n );\n instanceCache.set(current, workInProgress);\n instanceProps.set(current, newProps);\n appendAllChildren(renderLanes, workInProgress, !1, !1);\n workInProgress.stateNode = renderLanes;\n finalizeInitialChildren(renderLanes) && (workInProgress.flags |= 4);\n null !== workInProgress.ref && (workInProgress.flags |= 512);\n }\n bubbleProperties(workInProgress);\n return null;\n case 6:\n if (current && null != workInProgress.stateNode)\n updateHostText$1(\n current,\n workInProgress,\n current.memoizedProps,\n newProps\n );\n else {\n if (\"string\" !== typeof newProps && null === workInProgress.stateNode)\n throw Error(\n \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\"\n );\n current = requiredContext(rootInstanceStackCursor.current);\n if (!requiredContext(contextStackCursor$1.current).isInAParentText)\n throw Error(\n \"Text strings must be rendered within a component.\"\n );\n renderLanes = allocateTag();\n ReactNativePrivateInterface.UIManager.createView(\n renderLanes,\n \"RCTRawText\",\n current,\n { text: newProps }\n );\n instanceCache.set(renderLanes, workInProgress);\n workInProgress.stateNode = renderLanes;\n }\n bubbleProperties(workInProgress);\n return null;\n case 13:\n pop(suspenseStackCursor);\n newProps = workInProgress.memoizedState;\n if (\n null === current ||\n (null !== current.memoizedState &&\n null !== current.memoizedState.dehydrated)\n ) {\n if (null !== newProps && null !== newProps.dehydrated) {\n if (null === current) {\n throw Error(\n \"A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.\"\n );\n throw Error(\n \"Expected prepareToHydrateHostSuspenseInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null);\n workInProgress.flags |= 4;\n bubbleProperties(workInProgress);\n type = !1;\n } else\n null !== hydrationErrors &&\n (queueRecoverableErrors(hydrationErrors), (hydrationErrors = null)),\n (type = !0);\n if (!type) return workInProgress.flags & 65536 ? workInProgress : null;\n }\n if (0 !== (workInProgress.flags & 128))\n return (workInProgress.lanes = renderLanes), workInProgress;\n renderLanes = null !== newProps;\n renderLanes !== (null !== current && null !== current.memoizedState) &&\n renderLanes &&\n ((workInProgress.child.flags |= 8192),\n 0 !== (workInProgress.mode & 1) &&\n (null === current || 0 !== (suspenseStackCursor.current & 1)\n ? 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3)\n : renderDidSuspendDelayIfPossible()));\n null !== workInProgress.updateQueue && (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n return null;\n case 4:\n return (\n popHostContainer(),\n updateHostContainer(current, workInProgress),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type._context),\n bubbleProperties(workInProgress),\n null\n );\n case 17:\n return (\n isContextProvider(workInProgress.type) && popContext(),\n bubbleProperties(workInProgress),\n null\n );\n case 19:\n pop(suspenseStackCursor);\n type = workInProgress.memoizedState;\n if (null === type) return bubbleProperties(workInProgress), null;\n newProps = 0 !== (workInProgress.flags & 128);\n updatePayload = type.rendering;\n if (null === updatePayload)\n if (newProps) cutOffTailIfNeeded(type, !1);\n else {\n if (\n 0 !== workInProgressRootExitStatus ||\n (null !== current && 0 !== (current.flags & 128))\n )\n for (current = workInProgress.child; null !== current; ) {\n updatePayload = findFirstSuspended(current);\n if (null !== updatePayload) {\n workInProgress.flags |= 128;\n cutOffTailIfNeeded(type, !1);\n current = updatePayload.updateQueue;\n null !== current &&\n ((workInProgress.updateQueue = current),\n (workInProgress.flags |= 4));\n workInProgress.subtreeFlags = 0;\n current = renderLanes;\n for (renderLanes = workInProgress.child; null !== renderLanes; )\n (newProps = renderLanes),\n (type = current),\n (newProps.flags &= 14680066),\n (updatePayload = newProps.alternate),\n null === updatePayload\n ? ((newProps.childLanes = 0),\n (newProps.lanes = type),\n (newProps.child = null),\n (newProps.subtreeFlags = 0),\n (newProps.memoizedProps = null),\n (newProps.memoizedState = null),\n (newProps.updateQueue = null),\n (newProps.dependencies = null),\n (newProps.stateNode = null))\n : ((newProps.childLanes = updatePayload.childLanes),\n (newProps.lanes = updatePayload.lanes),\n (newProps.child = updatePayload.child),\n (newProps.subtreeFlags = 0),\n (newProps.deletions = null),\n (newProps.memoizedProps = updatePayload.memoizedProps),\n (newProps.memoizedState = updatePayload.memoizedState),\n (newProps.updateQueue = updatePayload.updateQueue),\n (newProps.type = updatePayload.type),\n (type = updatePayload.dependencies),\n (newProps.dependencies =\n null === type\n ? null\n : {\n lanes: type.lanes,\n firstContext: type.firstContext\n })),\n (renderLanes = renderLanes.sibling);\n push(\n suspenseStackCursor,\n (suspenseStackCursor.current & 1) | 2\n );\n return workInProgress.child;\n }\n current = current.sibling;\n }\n null !== type.tail &&\n now() > workInProgressRootRenderTargetTime &&\n ((workInProgress.flags |= 128),\n (newProps = !0),\n cutOffTailIfNeeded(type, !1),\n (workInProgress.lanes = 4194304));\n }\n else {\n if (!newProps)\n if (\n ((current = findFirstSuspended(updatePayload)), null !== current)\n ) {\n if (\n ((workInProgress.flags |= 128),\n (newProps = !0),\n (current = current.updateQueue),\n null !== current &&\n ((workInProgress.updateQueue = current),\n (workInProgress.flags |= 4)),\n cutOffTailIfNeeded(type, !0),\n null === type.tail &&\n \"hidden\" === type.tailMode &&\n !updatePayload.alternate)\n )\n return bubbleProperties(workInProgress), null;\n } else\n 2 * now() - type.renderingStartTime >\n workInProgressRootRenderTargetTime &&\n 1073741824 !== renderLanes &&\n ((workInProgress.flags |= 128),\n (newProps = !0),\n cutOffTailIfNeeded(type, !1),\n (workInProgress.lanes = 4194304));\n type.isBackwards\n ? ((updatePayload.sibling = workInProgress.child),\n (workInProgress.child = updatePayload))\n : ((current = type.last),\n null !== current\n ? (current.sibling = updatePayload)\n : (workInProgress.child = updatePayload),\n (type.last = updatePayload));\n }\n if (null !== type.tail)\n return (\n (workInProgress = type.tail),\n (type.rendering = workInProgress),\n (type.tail = workInProgress.sibling),\n (type.renderingStartTime = now()),\n (workInProgress.sibling = null),\n (current = suspenseStackCursor.current),\n push(suspenseStackCursor, newProps ? (current & 1) | 2 : current & 1),\n workInProgress\n );\n bubbleProperties(workInProgress);\n return null;\n case 22:\n case 23:\n return (\n popRenderLanes(),\n (renderLanes = null !== workInProgress.memoizedState),\n null !== current &&\n (null !== current.memoizedState) !== renderLanes &&\n (workInProgress.flags |= 8192),\n renderLanes && 0 !== (workInProgress.mode & 1)\n ? 0 !== (subtreeRenderLanes & 1073741824) &&\n (bubbleProperties(workInProgress),\n workInProgress.subtreeFlags & 6 && (workInProgress.flags |= 8192))\n : bubbleProperties(workInProgress),\n null\n );\n case 24:\n return null;\n case 25:\n return null;\n }\n throw Error(\n \"Unknown unit of work tag (\" +\n workInProgress.tag +\n \"). This error is likely caused by a bug in React. Please file an issue.\"\n );\n}\nfunction unwindWork(current, workInProgress) {\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 1:\n return (\n isContextProvider(workInProgress.type) && popContext(),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 3:\n return (\n popHostContainer(),\n pop(didPerformWorkStackCursor),\n pop(contextStackCursor),\n resetWorkInProgressVersions(),\n (current = workInProgress.flags),\n 0 !== (current & 65536) && 0 === (current & 128)\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 5:\n return popHostContext(workInProgress), null;\n case 13:\n pop(suspenseStackCursor);\n current = workInProgress.memoizedState;\n if (\n null !== current &&\n null !== current.dehydrated &&\n null === workInProgress.alternate\n )\n throw Error(\n \"Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.\"\n );\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 19:\n return pop(suspenseStackCursor), null;\n case 4:\n return popHostContainer(), null;\n case 10:\n return popProvider(workInProgress.type._context), null;\n case 22:\n case 23:\n return popRenderLanes(), null;\n case 24:\n return null;\n default:\n return null;\n }\n}\nvar PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null;\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref;\n if (null !== ref)\n if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n else ref.current = null;\n}\nfunction safelyCallDestroy(current, nearestMountedAncestor, destroy) {\n try {\n destroy();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nvar shouldFireAfterActiveInstanceBlur = !1;\nfunction commitBeforeMutationEffects(root, firstChild) {\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((root = nextEffect),\n (firstChild = root.child),\n 0 !== (root.subtreeFlags & 1028) && null !== firstChild)\n )\n (firstChild.return = root), (nextEffect = firstChild);\n else\n for (; null !== nextEffect; ) {\n root = nextEffect;\n try {\n var current = root.alternate;\n if (0 !== (root.flags & 1024))\n switch (root.tag) {\n case 0:\n case 11:\n case 15:\n break;\n case 1:\n if (null !== current) {\n var prevProps = current.memoizedProps,\n prevState = current.memoizedState,\n instance = root.stateNode,\n snapshot = instance.getSnapshotBeforeUpdate(\n root.elementType === root.type\n ? prevProps\n : resolveDefaultProps(root.type, prevProps),\n prevState\n );\n instance.__reactInternalSnapshotBeforeUpdate = snapshot;\n }\n break;\n case 3:\n break;\n case 5:\n case 6:\n case 4:\n case 17:\n break;\n default:\n throw Error(\n \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n } catch (error) {\n captureCommitPhaseError(root, root.return, error);\n }\n firstChild = root.sibling;\n if (null !== firstChild) {\n firstChild.return = root.return;\n nextEffect = firstChild;\n break;\n }\n nextEffect = root.return;\n }\n current = shouldFireAfterActiveInstanceBlur;\n shouldFireAfterActiveInstanceBlur = !1;\n return current;\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor\n) {\n var updateQueue = finishedWork.updateQueue;\n updateQueue = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== updateQueue) {\n var effect = (updateQueue = updateQueue.next);\n do {\n if ((effect.tag & flags) === flags) {\n var destroy = effect.destroy;\n effect.destroy = void 0;\n void 0 !== destroy &&\n safelyCallDestroy(finishedWork, nearestMountedAncestor, destroy);\n }\n effect = effect.next;\n } while (effect !== updateQueue);\n }\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n finishedWork = finishedWork.updateQueue;\n finishedWork = null !== finishedWork ? finishedWork.lastEffect : null;\n if (null !== finishedWork) {\n var effect = (finishedWork = finishedWork.next);\n do {\n if ((effect.tag & flags) === flags) {\n var create$75 = effect.create;\n effect.destroy = create$75();\n }\n effect = effect.next;\n } while (effect !== finishedWork);\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nfunction isHostParent(fiber) {\n return 5 === fiber.tag || 3 === fiber.tag || 4 === fiber.tag;\n}\nfunction getHostSibling(fiber) {\n a: for (;;) {\n for (; null === fiber.sibling; ) {\n if (null === fiber.return || isHostParent(fiber.return)) return null;\n fiber = fiber.return;\n }\n fiber.sibling.return = fiber.return;\n for (\n fiber = fiber.sibling;\n 5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;\n\n ) {\n if (fiber.flags & 2) continue a;\n if (null === fiber.child || 4 === fiber.tag) continue a;\n else (fiber.child.return = fiber), (fiber = fiber.child);\n }\n if (!(fiber.flags & 2)) return fiber.stateNode;\n }\n}\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n if (((node = node.stateNode), before)) {\n if (\"number\" === typeof parent)\n throw Error(\"Container does not support insertBefore operation\");\n } else\n ReactNativePrivateInterface.UIManager.setChildren(parent, [\n \"number\" === typeof node ? node : node._nativeTag\n ]);\n else if (4 !== tag && ((node = node.child), null !== node))\n for (\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n (node = node.sibling);\n}\nfunction insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n if (((node = node.stateNode), before)) {\n tag = parent._children;\n var index = tag.indexOf(node);\n 0 <= index\n ? (tag.splice(index, 1),\n (before = tag.indexOf(before)),\n tag.splice(before, 0, node),\n ReactNativePrivateInterface.UIManager.manageChildren(\n parent._nativeTag,\n [index],\n [before],\n [],\n [],\n []\n ))\n : ((before = tag.indexOf(before)),\n tag.splice(before, 0, node),\n ReactNativePrivateInterface.UIManager.manageChildren(\n parent._nativeTag,\n [],\n [],\n [\"number\" === typeof node ? node : node._nativeTag],\n [before],\n []\n ));\n } else\n (before = \"number\" === typeof node ? node : node._nativeTag),\n (tag = parent._children),\n (index = tag.indexOf(node)),\n 0 <= index\n ? (tag.splice(index, 1),\n tag.push(node),\n ReactNativePrivateInterface.UIManager.manageChildren(\n parent._nativeTag,\n [index],\n [tag.length - 1],\n [],\n [],\n []\n ))\n : (tag.push(node),\n ReactNativePrivateInterface.UIManager.manageChildren(\n parent._nativeTag,\n [],\n [],\n [before],\n [tag.length - 1],\n []\n ));\n else if (4 !== tag && ((node = node.child), null !== node))\n for (\n insertOrAppendPlacementNode(node, before, parent), node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(node, before, parent), (node = node.sibling);\n}\nvar hostParent = null,\n hostParentIsContainer = !1;\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 5:\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n var prevHostParent = hostParent,\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = null;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n null !== hostParent &&\n (hostParentIsContainer\n ? ((finishedRoot = hostParent),\n recursivelyUncacheFiberNode(deletedFiber.stateNode),\n ReactNativePrivateInterface.UIManager.manageChildren(\n finishedRoot,\n [],\n [],\n [],\n [],\n [0]\n ))\n : ((finishedRoot = hostParent),\n (nearestMountedAncestor = deletedFiber.stateNode),\n recursivelyUncacheFiberNode(nearestMountedAncestor),\n (deletedFiber = finishedRoot._children),\n (nearestMountedAncestor = deletedFiber.indexOf(\n nearestMountedAncestor\n )),\n deletedFiber.splice(nearestMountedAncestor, 1),\n ReactNativePrivateInterface.UIManager.manageChildren(\n finishedRoot._nativeTag,\n [],\n [],\n [],\n [],\n [nearestMountedAncestor]\n )));\n break;\n case 18:\n null !== hostParent && shim(hostParent, deletedFiber.stateNode);\n break;\n case 4:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode.containerInfo;\n hostParentIsContainer = !0;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n prevHostParent = deletedFiber.updateQueue;\n if (\n null !== prevHostParent &&\n ((prevHostParent = prevHostParent.lastEffect), null !== prevHostParent)\n ) {\n prevHostParentIsContainer = prevHostParent = prevHostParent.next;\n do {\n var _effect = prevHostParentIsContainer,\n destroy = _effect.destroy;\n _effect = _effect.tag;\n void 0 !== destroy &&\n (0 !== (_effect & 2)\n ? safelyCallDestroy(deletedFiber, nearestMountedAncestor, destroy)\n : 0 !== (_effect & 4) &&\n safelyCallDestroy(\n deletedFiber,\n nearestMountedAncestor,\n destroy\n ));\n prevHostParentIsContainer = prevHostParentIsContainer.next;\n } while (prevHostParentIsContainer !== prevHostParent);\n }\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n prevHostParent = deletedFiber.stateNode;\n if (\"function\" === typeof prevHostParent.componentWillUnmount)\n try {\n (prevHostParent.props = deletedFiber.memoizedProps),\n (prevHostParent.state = deletedFiber.memoizedState),\n prevHostParent.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(deletedFiber, nearestMountedAncestor, error);\n }\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork) {\n var wakeables = finishedWork.updateQueue;\n if (null !== wakeables) {\n finishedWork.updateQueue = null;\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n wakeables.forEach(function(wakeable) {\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n retryCache.has(wakeable) ||\n (retryCache.add(wakeable), wakeable.then(retry, retry));\n });\n }\n}\nfunction recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n try {\n var root = root$jscomp$0,\n returnFiber = parentFiber,\n parent = returnFiber;\n a: for (; null !== parent; ) {\n switch (parent.tag) {\n case 5:\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n case 3:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n case 4:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n }\n parent = parent.return;\n }\n if (null === hostParent)\n throw Error(\n \"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.\"\n );\n commitDeletionEffectsOnFiber(root, returnFiber, childToDelete);\n hostParent = null;\n hostParentIsContainer = !1;\n var alternate = childToDelete.alternate;\n null !== alternate && (alternate.return = null);\n childToDelete.return = null;\n } catch (error) {\n captureCommitPhaseError(childToDelete, parentFiber, error);\n }\n }\n if (parentFiber.subtreeFlags & 12854)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n try {\n commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n try {\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return);\n } catch (error$85) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error$85);\n }\n }\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n null !== current &&\n safelyDetachRef(current, current.return);\n break;\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n null !== current &&\n safelyDetachRef(current, current.return);\n if (flags & 4) {\n var instance$87 = finishedWork.stateNode;\n if (null != instance$87) {\n var newProps = finishedWork.memoizedProps,\n oldProps = null !== current ? current.memoizedProps : newProps,\n updatePayload = finishedWork.updateQueue;\n finishedWork.updateQueue = null;\n if (null !== updatePayload)\n try {\n var viewConfig = instance$87.viewConfig;\n instanceProps.set(instance$87._nativeTag, newProps);\n var updatePayload$jscomp$0 = diffProperties(\n null,\n oldProps,\n newProps,\n viewConfig.validAttributes\n );\n null != updatePayload$jscomp$0 &&\n ReactNativePrivateInterface.UIManager.updateView(\n instance$87._nativeTag,\n viewConfig.uiViewClassName,\n updatePayload$jscomp$0\n );\n } catch (error$88) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$88\n );\n }\n }\n }\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(\n \"This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue.\"\n );\n viewConfig = finishedWork.stateNode;\n updatePayload$jscomp$0 = finishedWork.memoizedProps;\n try {\n ReactNativePrivateInterface.UIManager.updateView(\n viewConfig,\n \"RCTRawText\",\n { text: updatePayload$jscomp$0 }\n );\n } catch (error$89) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error$89);\n }\n }\n break;\n case 3:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 4:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n viewConfig = finishedWork.child;\n viewConfig.flags & 8192 &&\n ((updatePayload$jscomp$0 = null !== viewConfig.memoizedState),\n (viewConfig.stateNode.isHidden = updatePayload$jscomp$0),\n !updatePayload$jscomp$0 ||\n (null !== viewConfig.alternate &&\n null !== viewConfig.alternate.memoizedState) ||\n (globalMostRecentFallbackTime = now()));\n flags & 4 && attachSuspenseRetryListeners(finishedWork);\n break;\n case 22:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 8192)\n a: for (\n viewConfig = null !== finishedWork.memoizedState,\n finishedWork.stateNode.isHidden = viewConfig,\n updatePayload$jscomp$0 = null,\n current = finishedWork;\n ;\n\n ) {\n if (5 === current.tag) {\n if (null === updatePayload$jscomp$0) {\n updatePayload$jscomp$0 = current;\n try {\n if (((instance$87 = current.stateNode), viewConfig))\n (newProps = instance$87.viewConfig),\n (oldProps = diffProperties(\n null,\n emptyObject,\n { style: { display: \"none\" } },\n newProps.validAttributes\n )),\n ReactNativePrivateInterface.UIManager.updateView(\n instance$87._nativeTag,\n newProps.uiViewClassName,\n oldProps\n );\n else {\n updatePayload = current.stateNode;\n var props = current.memoizedProps,\n viewConfig$jscomp$0 = updatePayload.viewConfig,\n prevProps = assign({}, props, {\n style: [props.style, { display: \"none\" }]\n });\n var updatePayload$jscomp$1 = diffProperties(\n null,\n prevProps,\n props,\n viewConfig$jscomp$0.validAttributes\n );\n ReactNativePrivateInterface.UIManager.updateView(\n updatePayload._nativeTag,\n viewConfig$jscomp$0.uiViewClassName,\n updatePayload$jscomp$1\n );\n }\n } catch (error) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error\n );\n }\n }\n } else if (6 === current.tag) {\n if (null === updatePayload$jscomp$0)\n try {\n throw Error(\"Not yet implemented.\");\n } catch (error$80) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$80\n );\n }\n } else if (\n ((22 !== current.tag && 23 !== current.tag) ||\n null === current.memoizedState ||\n current === finishedWork) &&\n null !== current.child\n ) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === finishedWork) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === finishedWork)\n break a;\n updatePayload$jscomp$0 === current &&\n (updatePayload$jscomp$0 = null);\n current = current.return;\n }\n updatePayload$jscomp$0 === current && (updatePayload$jscomp$0 = null);\n current.sibling.return = current.return;\n current = current.sibling;\n }\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 && attachSuspenseRetryListeners(finishedWork);\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n if (flags & 2) {\n try {\n a: {\n for (var parent = finishedWork.return; null !== parent; ) {\n if (isHostParent(parent)) {\n var JSCompiler_inline_result = parent;\n break a;\n }\n parent = parent.return;\n }\n throw Error(\n \"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n switch (JSCompiler_inline_result.tag) {\n case 5:\n var parent$jscomp$0 = JSCompiler_inline_result.stateNode;\n JSCompiler_inline_result.flags & 32 &&\n (JSCompiler_inline_result.flags &= -33);\n var before = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before, parent$jscomp$0);\n break;\n case 3:\n case 4:\n var parent$81 = JSCompiler_inline_result.stateNode.containerInfo,\n before$82 = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n before$82,\n parent$81\n );\n break;\n default:\n throw Error(\n \"Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n finishedWork.flags &= -3;\n }\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction commitLayoutEffects(finishedWork) {\n for (nextEffect = finishedWork; null !== nextEffect; ) {\n var fiber = nextEffect,\n firstChild = fiber.child;\n if (0 !== (fiber.subtreeFlags & 8772) && null !== firstChild)\n (firstChild.return = fiber), (nextEffect = firstChild);\n else\n for (fiber = finishedWork; null !== nextEffect; ) {\n firstChild = nextEffect;\n if (0 !== (firstChild.flags & 8772)) {\n var current = firstChild.alternate;\n try {\n if (0 !== (firstChild.flags & 8772))\n switch (firstChild.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListMount(5, firstChild);\n break;\n case 1:\n var instance = firstChild.stateNode;\n if (firstChild.flags & 4)\n if (null === current) instance.componentDidMount();\n else {\n var prevProps =\n firstChild.elementType === firstChild.type\n ? current.memoizedProps\n : resolveDefaultProps(\n firstChild.type,\n current.memoizedProps\n );\n instance.componentDidUpdate(\n prevProps,\n current.memoizedState,\n instance.__reactInternalSnapshotBeforeUpdate\n );\n }\n var updateQueue = firstChild.updateQueue;\n null !== updateQueue &&\n commitUpdateQueue(firstChild, updateQueue, instance);\n break;\n case 3:\n var updateQueue$76 = firstChild.updateQueue;\n if (null !== updateQueue$76) {\n current = null;\n if (null !== firstChild.child)\n switch (firstChild.child.tag) {\n case 5:\n current = firstChild.child.stateNode;\n break;\n case 1:\n current = firstChild.child.stateNode;\n }\n commitUpdateQueue(firstChild, updateQueue$76, current);\n }\n break;\n case 5:\n break;\n case 6:\n break;\n case 4:\n break;\n case 12:\n break;\n case 13:\n break;\n case 19:\n case 17:\n case 21:\n case 22:\n case 23:\n case 25:\n break;\n default:\n throw Error(\n \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (firstChild.flags & 512) {\n current = void 0;\n var ref = firstChild.ref;\n if (null !== ref) {\n var instance$jscomp$0 = firstChild.stateNode;\n switch (firstChild.tag) {\n case 5:\n current = instance$jscomp$0;\n break;\n default:\n current = instance$jscomp$0;\n }\n \"function\" === typeof ref\n ? ref(current)\n : (ref.current = current);\n }\n }\n } catch (error) {\n captureCommitPhaseError(firstChild, firstChild.return, error);\n }\n }\n if (firstChild === fiber) {\n nextEffect = null;\n break;\n }\n current = firstChild.sibling;\n if (null !== current) {\n current.return = firstChild.return;\n nextEffect = current;\n break;\n }\n nextEffect = firstChild.return;\n }\n }\n}\nvar ceil = Math.ceil,\n ReactCurrentDispatcher$2 = ReactSharedInternals.ReactCurrentDispatcher,\n ReactCurrentOwner$2 = ReactSharedInternals.ReactCurrentOwner,\n ReactCurrentBatchConfig$2 = ReactSharedInternals.ReactCurrentBatchConfig,\n executionContext = 0,\n workInProgressRoot = null,\n workInProgress = null,\n workInProgressRootRenderLanes = 0,\n subtreeRenderLanes = 0,\n subtreeRenderLanesCursor = createCursor(0),\n workInProgressRootExitStatus = 0,\n workInProgressRootFatalError = null,\n workInProgressRootSkippedLanes = 0,\n workInProgressRootInterleavedUpdatedLanes = 0,\n workInProgressRootPingedLanes = 0,\n workInProgressRootConcurrentErrors = null,\n workInProgressRootRecoverableErrors = null,\n globalMostRecentFallbackTime = 0,\n workInProgressRootRenderTargetTime = Infinity,\n workInProgressTransitions = null,\n hasUncaughtError = !1,\n firstUncaughtError = null,\n legacyErrorBoundariesThatAlreadyFailed = null,\n rootDoesHavePassiveEffects = !1,\n rootWithPendingPassiveEffects = null,\n pendingPassiveEffectsLanes = 0,\n nestedUpdateCount = 0,\n rootWithNestedUpdates = null,\n currentEventTime = -1,\n currentEventTransitionLane = 0;\nfunction requestEventTime() {\n return 0 !== (executionContext & 6)\n ? now()\n : -1 !== currentEventTime\n ? currentEventTime\n : (currentEventTime = now());\n}\nfunction requestUpdateLane(fiber) {\n if (0 === (fiber.mode & 1)) return 1;\n if (0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes)\n return workInProgressRootRenderLanes & -workInProgressRootRenderLanes;\n if (null !== ReactCurrentBatchConfig.transition)\n return (\n 0 === currentEventTransitionLane &&\n (currentEventTransitionLane = claimNextTransitionLane()),\n currentEventTransitionLane\n );\n fiber = currentUpdatePriority;\n return 0 !== fiber ? fiber : 16;\n}\nfunction scheduleUpdateOnFiber(root, fiber, lane, eventTime) {\n if (50 < nestedUpdateCount)\n throw ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(\n \"Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\"\n ));\n markRootUpdated(root, lane, eventTime);\n if (0 === (executionContext & 2) || root !== workInProgressRoot)\n root === workInProgressRoot &&\n (0 === (executionContext & 2) &&\n (workInProgressRootInterleavedUpdatedLanes |= lane),\n 4 === workInProgressRootExitStatus &&\n markRootSuspended$1(root, workInProgressRootRenderLanes)),\n ensureRootIsScheduled(root, eventTime),\n 1 === lane &&\n 0 === executionContext &&\n 0 === (fiber.mode & 1) &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n includesLegacySyncCallbacks && flushSyncCallbacks());\n}\nfunction ensureRootIsScheduled(root, currentTime) {\n for (\n var existingCallbackNode = root.callbackNode,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n expirationTimes = root.expirationTimes,\n lanes = root.pendingLanes;\n 0 < lanes;\n\n ) {\n var index$6 = 31 - clz32(lanes),\n lane = 1 << index$6,\n expirationTime = expirationTimes[index$6];\n if (-1 === expirationTime) {\n if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n expirationTimes[index$6] = computeExpirationTime(lane, currentTime);\n } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n lanes &= ~lane;\n }\n suspendedLanes = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes : 0\n );\n if (0 === suspendedLanes)\n null !== existingCallbackNode && cancelCallback(existingCallbackNode),\n (root.callbackNode = null),\n (root.callbackPriority = 0);\n else if (\n ((currentTime = suspendedLanes & -suspendedLanes),\n root.callbackPriority !== currentTime)\n ) {\n null != existingCallbackNode && cancelCallback(existingCallbackNode);\n if (1 === currentTime)\n 0 === root.tag\n ? ((existingCallbackNode = performSyncWorkOnRoot.bind(null, root)),\n (includesLegacySyncCallbacks = !0),\n null === syncQueue\n ? (syncQueue = [existingCallbackNode])\n : syncQueue.push(existingCallbackNode))\n : ((existingCallbackNode = performSyncWorkOnRoot.bind(null, root)),\n null === syncQueue\n ? (syncQueue = [existingCallbackNode])\n : syncQueue.push(existingCallbackNode)),\n scheduleCallback(ImmediatePriority, flushSyncCallbacks),\n (existingCallbackNode = null);\n else {\n switch (lanesToEventPriority(suspendedLanes)) {\n case 1:\n existingCallbackNode = ImmediatePriority;\n break;\n case 4:\n existingCallbackNode = UserBlockingPriority;\n break;\n case 16:\n existingCallbackNode = NormalPriority;\n break;\n case 536870912:\n existingCallbackNode = IdlePriority;\n break;\n default:\n existingCallbackNode = NormalPriority;\n }\n existingCallbackNode = scheduleCallback$1(\n existingCallbackNode,\n performConcurrentWorkOnRoot.bind(null, root)\n );\n }\n root.callbackPriority = currentTime;\n root.callbackNode = existingCallbackNode;\n }\n}\nfunction performConcurrentWorkOnRoot(root, didTimeout) {\n currentEventTime = -1;\n currentEventTransitionLane = 0;\n if (0 !== (executionContext & 6))\n throw Error(\"Should not already be working.\");\n var originalCallbackNode = root.callbackNode;\n if (flushPassiveEffects() && root.callbackNode !== originalCallbackNode)\n return null;\n var lanes = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes : 0\n );\n if (0 === lanes) return null;\n if (0 !== (lanes & 30) || 0 !== (lanes & root.expiredLanes) || didTimeout)\n didTimeout = renderRootSync(root, lanes);\n else {\n didTimeout = lanes;\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher();\n if (\n workInProgressRoot !== root ||\n workInProgressRootRenderLanes !== didTimeout\n )\n (workInProgressTransitions = null),\n (workInProgressRootRenderTargetTime = now() + 500),\n prepareFreshStack(root, didTimeout);\n do\n try {\n workLoopConcurrent();\n break;\n } catch (thrownValue) {\n handleError(root, thrownValue);\n }\n while (1);\n resetContextDependencies();\n ReactCurrentDispatcher$2.current = prevDispatcher;\n executionContext = prevExecutionContext;\n null !== workInProgress\n ? (didTimeout = 0)\n : ((workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0),\n (didTimeout = workInProgressRootExitStatus));\n }\n if (0 !== didTimeout) {\n 2 === didTimeout &&\n ((prevExecutionContext = getLanesToRetrySynchronouslyOnError(root)),\n 0 !== prevExecutionContext &&\n ((lanes = prevExecutionContext),\n (didTimeout = recoverFromConcurrentError(root, prevExecutionContext))));\n if (1 === didTimeout)\n throw ((originalCallbackNode = workInProgressRootFatalError),\n prepareFreshStack(root, 0),\n markRootSuspended$1(root, lanes),\n ensureRootIsScheduled(root, now()),\n originalCallbackNode);\n if (6 === didTimeout) markRootSuspended$1(root, lanes);\n else {\n prevExecutionContext = root.current.alternate;\n if (\n 0 === (lanes & 30) &&\n !isRenderConsistentWithExternalStores(prevExecutionContext) &&\n ((didTimeout = renderRootSync(root, lanes)),\n 2 === didTimeout &&\n ((prevDispatcher = getLanesToRetrySynchronouslyOnError(root)),\n 0 !== prevDispatcher &&\n ((lanes = prevDispatcher),\n (didTimeout = recoverFromConcurrentError(root, prevDispatcher)))),\n 1 === didTimeout)\n )\n throw ((originalCallbackNode = workInProgressRootFatalError),\n prepareFreshStack(root, 0),\n markRootSuspended$1(root, lanes),\n ensureRootIsScheduled(root, now()),\n originalCallbackNode);\n root.finishedWork = prevExecutionContext;\n root.finishedLanes = lanes;\n switch (didTimeout) {\n case 0:\n case 1:\n throw Error(\"Root did not complete. This is a bug in React.\");\n case 2:\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n case 3:\n markRootSuspended$1(root, lanes);\n if (\n (lanes & 130023424) === lanes &&\n ((didTimeout = globalMostRecentFallbackTime + 500 - now()),\n 10 < didTimeout)\n ) {\n if (0 !== getNextLanes(root, 0)) break;\n prevExecutionContext = root.suspendedLanes;\n if ((prevExecutionContext & lanes) !== lanes) {\n requestEventTime();\n root.pingedLanes |= root.suspendedLanes & prevExecutionContext;\n break;\n }\n root.timeoutHandle = scheduleTimeout(\n commitRoot.bind(\n null,\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n ),\n didTimeout\n );\n break;\n }\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n case 4:\n markRootSuspended$1(root, lanes);\n if ((lanes & 4194240) === lanes) break;\n didTimeout = root.eventTimes;\n for (prevExecutionContext = -1; 0 < lanes; ) {\n var index$5 = 31 - clz32(lanes);\n prevDispatcher = 1 << index$5;\n index$5 = didTimeout[index$5];\n index$5 > prevExecutionContext && (prevExecutionContext = index$5);\n lanes &= ~prevDispatcher;\n }\n lanes = prevExecutionContext;\n lanes = now() - lanes;\n lanes =\n (120 > lanes\n ? 120\n : 480 > lanes\n ? 480\n : 1080 > lanes\n ? 1080\n : 1920 > lanes\n ? 1920\n : 3e3 > lanes\n ? 3e3\n : 4320 > lanes\n ? 4320\n : 1960 * ceil(lanes / 1960)) - lanes;\n if (10 < lanes) {\n root.timeoutHandle = scheduleTimeout(\n commitRoot.bind(\n null,\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n ),\n lanes\n );\n break;\n }\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n case 5:\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n default:\n throw Error(\"Unknown root exit status.\");\n }\n }\n }\n ensureRootIsScheduled(root, now());\n return root.callbackNode === originalCallbackNode\n ? performConcurrentWorkOnRoot.bind(null, root)\n : null;\n}\nfunction recoverFromConcurrentError(root, errorRetryLanes) {\n var errorsFromFirstAttempt = workInProgressRootConcurrentErrors;\n root.current.memoizedState.isDehydrated &&\n (prepareFreshStack(root, errorRetryLanes).flags |= 256);\n root = renderRootSync(root, errorRetryLanes);\n 2 !== root &&\n ((errorRetryLanes = workInProgressRootRecoverableErrors),\n (workInProgressRootRecoverableErrors = errorsFromFirstAttempt),\n null !== errorRetryLanes && queueRecoverableErrors(errorRetryLanes));\n return root;\n}\nfunction queueRecoverableErrors(errors) {\n null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = errors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n errors\n );\n}\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n for (var node = finishedWork; ; ) {\n if (node.flags & 16384) {\n var updateQueue = node.updateQueue;\n if (\n null !== updateQueue &&\n ((updateQueue = updateQueue.stores), null !== updateQueue)\n )\n for (var i = 0; i < updateQueue.length; i++) {\n var check = updateQueue[i],\n getSnapshot = check.getSnapshot;\n check = check.value;\n try {\n if (!objectIs(getSnapshot(), check)) return !1;\n } catch (error) {\n return !1;\n }\n }\n }\n updateQueue = node.child;\n if (node.subtreeFlags & 16384 && null !== updateQueue)\n (updateQueue.return = node), (node = updateQueue);\n else {\n if (node === finishedWork) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === finishedWork) return !0;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n return !0;\n}\nfunction markRootSuspended$1(root, suspendedLanes) {\n suspendedLanes &= ~workInProgressRootPingedLanes;\n suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes;\n for (root = root.expirationTimes; 0 < suspendedLanes; ) {\n var index$7 = 31 - clz32(suspendedLanes),\n lane = 1 << index$7;\n root[index$7] = -1;\n suspendedLanes &= ~lane;\n }\n}\nfunction performSyncWorkOnRoot(root) {\n if (0 !== (executionContext & 6))\n throw Error(\"Should not already be working.\");\n flushPassiveEffects();\n var lanes = getNextLanes(root, 0);\n if (0 === (lanes & 1)) return ensureRootIsScheduled(root, now()), null;\n var exitStatus = renderRootSync(root, lanes);\n if (0 !== root.tag && 2 === exitStatus) {\n var errorRetryLanes = getLanesToRetrySynchronouslyOnError(root);\n 0 !== errorRetryLanes &&\n ((lanes = errorRetryLanes),\n (exitStatus = recoverFromConcurrentError(root, errorRetryLanes)));\n }\n if (1 === exitStatus)\n throw ((exitStatus = workInProgressRootFatalError),\n prepareFreshStack(root, 0),\n markRootSuspended$1(root, lanes),\n ensureRootIsScheduled(root, now()),\n exitStatus);\n if (6 === exitStatus)\n throw Error(\"Root did not complete. This is a bug in React.\");\n root.finishedWork = root.current.alternate;\n root.finishedLanes = lanes;\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n ensureRootIsScheduled(root, now());\n return null;\n}\nfunction popRenderLanes() {\n subtreeRenderLanes = subtreeRenderLanesCursor.current;\n pop(subtreeRenderLanesCursor);\n}\nfunction prepareFreshStack(root, lanes) {\n root.finishedWork = null;\n root.finishedLanes = 0;\n var timeoutHandle = root.timeoutHandle;\n -1 !== timeoutHandle &&\n ((root.timeoutHandle = -1), cancelTimeout(timeoutHandle));\n if (null !== workInProgress)\n for (timeoutHandle = workInProgress.return; null !== timeoutHandle; ) {\n var interruptedWork = timeoutHandle;\n popTreeContext(interruptedWork);\n switch (interruptedWork.tag) {\n case 1:\n interruptedWork = interruptedWork.type.childContextTypes;\n null !== interruptedWork &&\n void 0 !== interruptedWork &&\n popContext();\n break;\n case 3:\n popHostContainer();\n pop(didPerformWorkStackCursor);\n pop(contextStackCursor);\n resetWorkInProgressVersions();\n break;\n case 5:\n popHostContext(interruptedWork);\n break;\n case 4:\n popHostContainer();\n break;\n case 13:\n pop(suspenseStackCursor);\n break;\n case 19:\n pop(suspenseStackCursor);\n break;\n case 10:\n popProvider(interruptedWork.type._context);\n break;\n case 22:\n case 23:\n popRenderLanes();\n }\n timeoutHandle = timeoutHandle.return;\n }\n workInProgressRoot = root;\n workInProgress = root = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = subtreeRenderLanes = lanes;\n workInProgressRootExitStatus = 0;\n workInProgressRootFatalError = null;\n workInProgressRootPingedLanes = workInProgressRootInterleavedUpdatedLanes = workInProgressRootSkippedLanes = 0;\n workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors = null;\n if (null !== concurrentQueues) {\n for (lanes = 0; lanes < concurrentQueues.length; lanes++)\n if (\n ((timeoutHandle = concurrentQueues[lanes]),\n (interruptedWork = timeoutHandle.interleaved),\n null !== interruptedWork)\n ) {\n timeoutHandle.interleaved = null;\n var firstInterleavedUpdate = interruptedWork.next,\n lastPendingUpdate = timeoutHandle.pending;\n if (null !== lastPendingUpdate) {\n var firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = firstInterleavedUpdate;\n interruptedWork.next = firstPendingUpdate;\n }\n timeoutHandle.pending = interruptedWork;\n }\n concurrentQueues = null;\n }\n return root;\n}\nfunction handleError(root$jscomp$0, thrownValue) {\n do {\n var erroredWork = workInProgress;\n try {\n resetContextDependencies();\n ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n if (didScheduleRenderPhaseUpdate) {\n for (\n var hook = currentlyRenderingFiber$1.memoizedState;\n null !== hook;\n\n ) {\n var queue = hook.queue;\n null !== queue && (queue.pending = null);\n hook = hook.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber$1 = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n ReactCurrentOwner$2.current = null;\n if (null === erroredWork || null === erroredWork.return) {\n workInProgressRootExitStatus = 1;\n workInProgressRootFatalError = thrownValue;\n workInProgress = null;\n break;\n }\n a: {\n var root = root$jscomp$0,\n returnFiber = erroredWork.return,\n sourceFiber = erroredWork,\n value = thrownValue;\n thrownValue = workInProgressRootRenderLanes;\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n var wakeable = value,\n sourceFiber$jscomp$0 = sourceFiber,\n tag = sourceFiber$jscomp$0.tag;\n if (\n 0 === (sourceFiber$jscomp$0.mode & 1) &&\n (0 === tag || 11 === tag || 15 === tag)\n ) {\n var currentSource = sourceFiber$jscomp$0.alternate;\n currentSource\n ? ((sourceFiber$jscomp$0.updateQueue = currentSource.updateQueue),\n (sourceFiber$jscomp$0.memoizedState =\n currentSource.memoizedState),\n (sourceFiber$jscomp$0.lanes = currentSource.lanes))\n : ((sourceFiber$jscomp$0.updateQueue = null),\n (sourceFiber$jscomp$0.memoizedState = null));\n }\n b: {\n sourceFiber$jscomp$0 = returnFiber;\n do {\n var JSCompiler_temp;\n if ((JSCompiler_temp = 13 === sourceFiber$jscomp$0.tag)) {\n var nextState = sourceFiber$jscomp$0.memoizedState;\n JSCompiler_temp =\n null !== nextState\n ? null !== nextState.dehydrated\n ? !0\n : !1\n : !0;\n }\n if (JSCompiler_temp) {\n var suspenseBoundary = sourceFiber$jscomp$0;\n break b;\n }\n sourceFiber$jscomp$0 = sourceFiber$jscomp$0.return;\n } while (null !== sourceFiber$jscomp$0);\n suspenseBoundary = null;\n }\n if (null !== suspenseBoundary) {\n suspenseBoundary.flags &= -257;\n value = suspenseBoundary;\n sourceFiber$jscomp$0 = thrownValue;\n if (0 === (value.mode & 1))\n if (value === returnFiber) value.flags |= 65536;\n else {\n value.flags |= 128;\n sourceFiber.flags |= 131072;\n sourceFiber.flags &= -52805;\n if (1 === sourceFiber.tag)\n if (null === sourceFiber.alternate) sourceFiber.tag = 17;\n else {\n var update = createUpdate(-1, 1);\n update.tag = 2;\n enqueueUpdate(sourceFiber, update, 1);\n }\n sourceFiber.lanes |= 1;\n }\n else (value.flags |= 65536), (value.lanes = sourceFiber$jscomp$0);\n suspenseBoundary.mode & 1 &&\n attachPingListener(root, wakeable, thrownValue);\n thrownValue = suspenseBoundary;\n root = wakeable;\n var wakeables = thrownValue.updateQueue;\n if (null === wakeables) {\n var updateQueue = new Set();\n updateQueue.add(root);\n thrownValue.updateQueue = updateQueue;\n } else wakeables.add(root);\n break a;\n } else {\n if (0 === (thrownValue & 1)) {\n attachPingListener(root, wakeable, thrownValue);\n renderDidSuspendDelayIfPossible();\n break a;\n }\n value = Error(\n \"A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition.\"\n );\n }\n }\n root = value = createCapturedValueAtFiber(value, sourceFiber);\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [root])\n : workInProgressRootConcurrentErrors.push(root);\n root = returnFiber;\n do {\n switch (root.tag) {\n case 3:\n wakeable = value;\n root.flags |= 65536;\n thrownValue &= -thrownValue;\n root.lanes |= thrownValue;\n var update$jscomp$0 = createRootErrorUpdate(\n root,\n wakeable,\n thrownValue\n );\n enqueueCapturedUpdate(root, update$jscomp$0);\n break a;\n case 1:\n wakeable = value;\n var ctor = root.type,\n instance = root.stateNode;\n if (\n 0 === (root.flags & 128) &&\n (\"function\" === typeof ctor.getDerivedStateFromError ||\n (null !== instance &&\n \"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance))))\n ) {\n root.flags |= 65536;\n thrownValue &= -thrownValue;\n root.lanes |= thrownValue;\n var update$34 = createClassErrorUpdate(\n root,\n wakeable,\n thrownValue\n );\n enqueueCapturedUpdate(root, update$34);\n break a;\n }\n }\n root = root.return;\n } while (null !== root);\n }\n completeUnitOfWork(erroredWork);\n } catch (yetAnotherThrownValue) {\n thrownValue = yetAnotherThrownValue;\n workInProgress === erroredWork &&\n null !== erroredWork &&\n (workInProgress = erroredWork = erroredWork.return);\n continue;\n }\n break;\n } while (1);\n}\nfunction pushDispatcher() {\n var prevDispatcher = ReactCurrentDispatcher$2.current;\n ReactCurrentDispatcher$2.current = ContextOnlyDispatcher;\n return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n}\nfunction renderDidSuspendDelayIfPossible() {\n if (\n 0 === workInProgressRootExitStatus ||\n 3 === workInProgressRootExitStatus ||\n 2 === workInProgressRootExitStatus\n )\n workInProgressRootExitStatus = 4;\n null === workInProgressRoot ||\n (0 === (workInProgressRootSkippedLanes & 268435455) &&\n 0 === (workInProgressRootInterleavedUpdatedLanes & 268435455)) ||\n markRootSuspended$1(workInProgressRoot, workInProgressRootRenderLanes);\n}\nfunction renderRootSync(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher();\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes)\n (workInProgressTransitions = null), prepareFreshStack(root, lanes);\n do\n try {\n workLoopSync();\n break;\n } catch (thrownValue) {\n handleError(root, thrownValue);\n }\n while (1);\n resetContextDependencies();\n executionContext = prevExecutionContext;\n ReactCurrentDispatcher$2.current = prevDispatcher;\n if (null !== workInProgress)\n throw Error(\n \"Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue.\"\n );\n workInProgressRoot = null;\n workInProgressRootRenderLanes = 0;\n return workInProgressRootExitStatus;\n}\nfunction workLoopSync() {\n for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n}\nfunction workLoopConcurrent() {\n for (; null !== workInProgress && !shouldYield(); )\n performUnitOfWork(workInProgress);\n}\nfunction performUnitOfWork(unitOfWork) {\n var next = beginWork$1(unitOfWork.alternate, unitOfWork, subtreeRenderLanes);\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n ReactCurrentOwner$2.current = null;\n}\nfunction completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n do {\n var current = completedWork.alternate;\n unitOfWork = completedWork.return;\n if (0 === (completedWork.flags & 32768)) {\n if (\n ((current = completeWork(current, completedWork, subtreeRenderLanes)),\n null !== current)\n ) {\n workInProgress = current;\n return;\n }\n } else {\n current = unwindWork(current, completedWork);\n if (null !== current) {\n current.flags &= 32767;\n workInProgress = current;\n return;\n }\n if (null !== unitOfWork)\n (unitOfWork.flags |= 32768),\n (unitOfWork.subtreeFlags = 0),\n (unitOfWork.deletions = null);\n else {\n workInProgressRootExitStatus = 6;\n workInProgress = null;\n return;\n }\n }\n completedWork = completedWork.sibling;\n if (null !== completedWork) {\n workInProgress = completedWork;\n return;\n }\n workInProgress = completedWork = unitOfWork;\n } while (null !== completedWork);\n 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);\n}\nfunction commitRoot(root, recoverableErrors, transitions) {\n var previousUpdateLanePriority = currentUpdatePriority,\n prevTransition = ReactCurrentBatchConfig$2.transition;\n try {\n (ReactCurrentBatchConfig$2.transition = null),\n (currentUpdatePriority = 1),\n commitRootImpl(\n root,\n recoverableErrors,\n transitions,\n previousUpdateLanePriority\n );\n } finally {\n (ReactCurrentBatchConfig$2.transition = prevTransition),\n (currentUpdatePriority = previousUpdateLanePriority);\n }\n return null;\n}\nfunction commitRootImpl(\n root,\n recoverableErrors,\n transitions,\n renderPriorityLevel\n) {\n do flushPassiveEffects();\n while (null !== rootWithPendingPassiveEffects);\n if (0 !== (executionContext & 6))\n throw Error(\"Should not already be working.\");\n transitions = root.finishedWork;\n var lanes = root.finishedLanes;\n if (null === transitions) return null;\n root.finishedWork = null;\n root.finishedLanes = 0;\n if (transitions === root.current)\n throw Error(\n \"Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.\"\n );\n root.callbackNode = null;\n root.callbackPriority = 0;\n var remainingLanes = transitions.lanes | transitions.childLanes;\n markRootFinished(root, remainingLanes);\n root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n (0 === (transitions.subtreeFlags & 2064) &&\n 0 === (transitions.flags & 2064)) ||\n rootDoesHavePassiveEffects ||\n ((rootDoesHavePassiveEffects = !0),\n scheduleCallback$1(NormalPriority, function() {\n flushPassiveEffects();\n return null;\n }));\n remainingLanes = 0 !== (transitions.flags & 15990);\n if (0 !== (transitions.subtreeFlags & 15990) || remainingLanes) {\n remainingLanes = ReactCurrentBatchConfig$2.transition;\n ReactCurrentBatchConfig$2.transition = null;\n var previousPriority = currentUpdatePriority;\n currentUpdatePriority = 1;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n ReactCurrentOwner$2.current = null;\n commitBeforeMutationEffects(root, transitions);\n commitMutationEffectsOnFiber(transitions, root);\n root.current = transitions;\n commitLayoutEffects(transitions, root, lanes);\n requestPaint();\n executionContext = prevExecutionContext;\n currentUpdatePriority = previousPriority;\n ReactCurrentBatchConfig$2.transition = remainingLanes;\n } else root.current = transitions;\n rootDoesHavePassiveEffects &&\n ((rootDoesHavePassiveEffects = !1),\n (rootWithPendingPassiveEffects = root),\n (pendingPassiveEffectsLanes = lanes));\n remainingLanes = root.pendingLanes;\n 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);\n onCommitRoot(transitions.stateNode, renderPriorityLevel);\n ensureRootIsScheduled(root, now());\n if (null !== recoverableErrors)\n for (\n renderPriorityLevel = root.onRecoverableError, transitions = 0;\n transitions < recoverableErrors.length;\n transitions++\n )\n (lanes = recoverableErrors[transitions]),\n renderPriorityLevel(lanes.value, {\n componentStack: lanes.stack,\n digest: lanes.digest\n });\n if (hasUncaughtError)\n throw ((hasUncaughtError = !1),\n (root = firstUncaughtError),\n (firstUncaughtError = null),\n root);\n 0 !== (pendingPassiveEffectsLanes & 1) &&\n 0 !== root.tag &&\n flushPassiveEffects();\n remainingLanes = root.pendingLanes;\n 0 !== (remainingLanes & 1)\n ? root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n : (nestedUpdateCount = 0);\n flushSyncCallbacks();\n return null;\n}\nfunction flushPassiveEffects() {\n if (null !== rootWithPendingPassiveEffects) {\n var renderPriority = lanesToEventPriority(pendingPassiveEffectsLanes),\n prevTransition = ReactCurrentBatchConfig$2.transition,\n previousPriority = currentUpdatePriority;\n try {\n ReactCurrentBatchConfig$2.transition = null;\n currentUpdatePriority = 16 > renderPriority ? 16 : renderPriority;\n if (null === rootWithPendingPassiveEffects)\n var JSCompiler_inline_result = !1;\n else {\n renderPriority = rootWithPendingPassiveEffects;\n rootWithPendingPassiveEffects = null;\n pendingPassiveEffectsLanes = 0;\n if (0 !== (executionContext & 6))\n throw Error(\"Cannot flush passive effects while already rendering.\");\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n for (nextEffect = renderPriority.current; null !== nextEffect; ) {\n var fiber = nextEffect,\n child = fiber.child;\n if (0 !== (nextEffect.flags & 16)) {\n var deletions = fiber.deletions;\n if (null !== deletions) {\n for (var i = 0; i < deletions.length; i++) {\n var fiberToDelete = deletions[i];\n for (nextEffect = fiberToDelete; null !== nextEffect; ) {\n var fiber$jscomp$0 = nextEffect;\n switch (fiber$jscomp$0.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber$jscomp$0, fiber);\n }\n var child$jscomp$0 = fiber$jscomp$0.child;\n if (null !== child$jscomp$0)\n (child$jscomp$0.return = fiber$jscomp$0),\n (nextEffect = child$jscomp$0);\n else\n for (; null !== nextEffect; ) {\n fiber$jscomp$0 = nextEffect;\n var sibling = fiber$jscomp$0.sibling,\n returnFiber = fiber$jscomp$0.return;\n detachFiberAfterEffects(fiber$jscomp$0);\n if (fiber$jscomp$0 === fiberToDelete) {\n nextEffect = null;\n break;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break;\n }\n nextEffect = returnFiber;\n }\n }\n }\n var previousFiber = fiber.alternate;\n if (null !== previousFiber) {\n var detachedChild = previousFiber.child;\n if (null !== detachedChild) {\n previousFiber.child = null;\n do {\n var detachedSibling = detachedChild.sibling;\n detachedChild.sibling = null;\n detachedChild = detachedSibling;\n } while (null !== detachedChild);\n }\n }\n nextEffect = fiber;\n }\n }\n if (0 !== (fiber.subtreeFlags & 2064) && null !== child)\n (child.return = fiber), (nextEffect = child);\n else\n b: for (; null !== nextEffect; ) {\n fiber = nextEffect;\n if (0 !== (fiber.flags & 2048))\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(9, fiber, fiber.return);\n }\n var sibling$jscomp$0 = fiber.sibling;\n if (null !== sibling$jscomp$0) {\n sibling$jscomp$0.return = fiber.return;\n nextEffect = sibling$jscomp$0;\n break b;\n }\n nextEffect = fiber.return;\n }\n }\n var finishedWork = renderPriority.current;\n for (nextEffect = finishedWork; null !== nextEffect; ) {\n child = nextEffect;\n var firstChild = child.child;\n if (0 !== (child.subtreeFlags & 2064) && null !== firstChild)\n (firstChild.return = child), (nextEffect = firstChild);\n else\n b: for (child = finishedWork; null !== nextEffect; ) {\n deletions = nextEffect;\n if (0 !== (deletions.flags & 2048))\n try {\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListMount(9, deletions);\n }\n } catch (error) {\n captureCommitPhaseError(deletions, deletions.return, error);\n }\n if (deletions === child) {\n nextEffect = null;\n break b;\n }\n var sibling$jscomp$1 = deletions.sibling;\n if (null !== sibling$jscomp$1) {\n sibling$jscomp$1.return = deletions.return;\n nextEffect = sibling$jscomp$1;\n break b;\n }\n nextEffect = deletions.return;\n }\n }\n executionContext = prevExecutionContext;\n flushSyncCallbacks();\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onPostCommitFiberRoot\n )\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, renderPriority);\n } catch (err) {}\n JSCompiler_inline_result = !0;\n }\n return JSCompiler_inline_result;\n } finally {\n (currentUpdatePriority = previousPriority),\n (ReactCurrentBatchConfig$2.transition = prevTransition);\n }\n }\n return !1;\n}\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createRootErrorUpdate(rootFiber, sourceFiber, 1);\n rootFiber = enqueueUpdate(rootFiber, sourceFiber, 1);\n sourceFiber = requestEventTime();\n null !== rootFiber &&\n (markRootUpdated(rootFiber, 1, sourceFiber),\n ensureRootIsScheduled(rootFiber, sourceFiber));\n}\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {\n if (3 === sourceFiber.tag)\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n else\n for (\n nearestMountedAncestor = sourceFiber.return;\n null !== nearestMountedAncestor;\n\n ) {\n if (3 === nearestMountedAncestor.tag) {\n captureCommitPhaseErrorOnRoot(\n nearestMountedAncestor,\n sourceFiber,\n error\n );\n break;\n } else if (1 === nearestMountedAncestor.tag) {\n var instance = nearestMountedAncestor.stateNode;\n if (\n \"function\" ===\n typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n (\"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n ) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createClassErrorUpdate(\n nearestMountedAncestor,\n sourceFiber,\n 1\n );\n nearestMountedAncestor = enqueueUpdate(\n nearestMountedAncestor,\n sourceFiber,\n 1\n );\n sourceFiber = requestEventTime();\n null !== nearestMountedAncestor &&\n (markRootUpdated(nearestMountedAncestor, 1, sourceFiber),\n ensureRootIsScheduled(nearestMountedAncestor, sourceFiber));\n break;\n }\n }\n nearestMountedAncestor = nearestMountedAncestor.return;\n }\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n null !== pingCache && pingCache.delete(wakeable);\n wakeable = requestEventTime();\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n workInProgressRoot === root &&\n (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n (4 === workInProgressRootExitStatus ||\n (3 === workInProgressRootExitStatus &&\n (workInProgressRootRenderLanes & 130023424) ===\n workInProgressRootRenderLanes &&\n 500 > now() - globalMostRecentFallbackTime)\n ? prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes));\n ensureRootIsScheduled(root, wakeable);\n}\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n 0 === retryLane &&\n (0 === (boundaryFiber.mode & 1)\n ? (retryLane = 1)\n : ((retryLane = nextRetryLane),\n (nextRetryLane <<= 1),\n 0 === (nextRetryLane & 130023424) && (nextRetryLane = 4194304)));\n var eventTime = requestEventTime();\n boundaryFiber = markUpdateLaneFromFiberToRoot(boundaryFiber, retryLane);\n null !== boundaryFiber &&\n (markRootUpdated(boundaryFiber, retryLane, eventTime),\n ensureRootIsScheduled(boundaryFiber, eventTime));\n}\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState,\n retryLane = 0;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = 0;\n switch (boundaryFiber.tag) {\n case 13:\n var retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n break;\n case 19:\n retryCache = boundaryFiber.stateNode;\n break;\n default:\n throw Error(\n \"Pinged unknown suspense boundary type. This is probably a bug in React.\"\n );\n }\n null !== retryCache && retryCache.delete(wakeable);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nvar beginWork$1;\nbeginWork$1 = function(current, workInProgress, renderLanes) {\n if (null !== current)\n if (\n current.memoizedProps !== workInProgress.pendingProps ||\n didPerformWorkStackCursor.current\n )\n didReceiveUpdate = !0;\n else {\n if (\n 0 === (current.lanes & renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else didReceiveUpdate = !1;\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 2:\n var Component = workInProgress.type;\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress);\n current = workInProgress.pendingProps;\n var context = getMaskedContext(\n workInProgress,\n contextStackCursor.current\n );\n prepareToReadContext(workInProgress, renderLanes);\n context = renderWithHooks(\n null,\n workInProgress,\n Component,\n current,\n context,\n renderLanes\n );\n workInProgress.flags |= 1;\n if (\n \"object\" === typeof context &&\n null !== context &&\n \"function\" === typeof context.render &&\n void 0 === context.$$typeof\n ) {\n workInProgress.tag = 1;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n if (isContextProvider(Component)) {\n var hasContext = !0;\n pushContextProvider(workInProgress);\n } else hasContext = !1;\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state\n ? context.state\n : null;\n initializeUpdateQueue(workInProgress);\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n mountClassInstance(workInProgress, Component, current, renderLanes);\n workInProgress = finishClassComponent(\n null,\n workInProgress,\n Component,\n !0,\n hasContext,\n renderLanes\n );\n } else\n (workInProgress.tag = 0),\n reconcileChildren(null, workInProgress, context, renderLanes),\n (workInProgress = workInProgress.child);\n return workInProgress;\n case 16:\n Component = workInProgress.elementType;\n a: {\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress);\n current = workInProgress.pendingProps;\n context = Component._init;\n Component = context(Component._payload);\n workInProgress.type = Component;\n context = workInProgress.tag = resolveLazyComponentTag(Component);\n current = resolveDefaultProps(Component, current);\n switch (context) {\n case 0:\n workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n Component,\n current,\n renderLanes\n );\n break a;\n case 1:\n workInProgress = updateClassComponent(\n null,\n workInProgress,\n Component,\n current,\n renderLanes\n );\n break a;\n case 11:\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n Component,\n current,\n renderLanes\n );\n break a;\n case 14:\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n Component,\n resolveDefaultProps(Component.type, current),\n renderLanes\n );\n break a;\n }\n throw Error(\n \"Element type is invalid. Received a promise that resolves to: \" +\n Component +\n \". Lazy element type must resolve to a class or function.\"\n );\n }\n return workInProgress;\n case 0:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n updateFunctionComponent(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 1:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n updateClassComponent(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 3:\n pushHostRootContext(workInProgress);\n if (null === current)\n throw Error(\"Should have a current fiber. This is a bug in React.\");\n context = workInProgress.pendingProps;\n Component = workInProgress.memoizedState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, context, null, renderLanes);\n context = workInProgress.memoizedState.element;\n context === Component\n ? (workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ))\n : (reconcileChildren(current, workInProgress, context, renderLanes),\n (workInProgress = workInProgress.child));\n return workInProgress;\n case 5:\n return (\n pushHostContext(workInProgress),\n (Component = workInProgress.pendingProps.children),\n markRef(current, workInProgress),\n reconcileChildren(current, workInProgress, Component, renderLanes),\n workInProgress.child\n );\n case 6:\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (Component = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n ))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n workInProgress.child\n );\n case 11:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n updateForwardRef(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n a: {\n Component = workInProgress.type._context;\n context = workInProgress.pendingProps;\n hasContext = workInProgress.memoizedProps;\n var newValue = context.value;\n push(valueCursor, Component._currentValue);\n Component._currentValue = newValue;\n if (null !== hasContext)\n if (objectIs(hasContext.value, newValue)) {\n if (\n hasContext.children === context.children &&\n !didPerformWorkStackCursor.current\n ) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n } else\n for (\n hasContext = workInProgress.child,\n null !== hasContext && (hasContext.return = workInProgress);\n null !== hasContext;\n\n ) {\n var list = hasContext.dependencies;\n if (null !== list) {\n newValue = hasContext.child;\n for (\n var dependency = list.firstContext;\n null !== dependency;\n\n ) {\n if (dependency.context === Component) {\n if (1 === hasContext.tag) {\n dependency = createUpdate(-1, renderLanes & -renderLanes);\n dependency.tag = 2;\n var updateQueue = hasContext.updateQueue;\n if (null !== updateQueue) {\n updateQueue = updateQueue.shared;\n var pending = updateQueue.pending;\n null === pending\n ? (dependency.next = dependency)\n : ((dependency.next = pending.next),\n (pending.next = dependency));\n updateQueue.pending = dependency;\n }\n }\n hasContext.lanes |= renderLanes;\n dependency = hasContext.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n hasContext.return,\n renderLanes,\n workInProgress\n );\n list.lanes |= renderLanes;\n break;\n }\n dependency = dependency.next;\n }\n } else if (10 === hasContext.tag)\n newValue =\n hasContext.type === workInProgress.type\n ? null\n : hasContext.child;\n else if (18 === hasContext.tag) {\n newValue = hasContext.return;\n if (null === newValue)\n throw Error(\n \"We just came from a parent so we must have had a parent. This is a bug in React.\"\n );\n newValue.lanes |= renderLanes;\n list = newValue.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n newValue,\n renderLanes,\n workInProgress\n );\n newValue = hasContext.sibling;\n } else newValue = hasContext.child;\n if (null !== newValue) newValue.return = hasContext;\n else\n for (newValue = hasContext; null !== newValue; ) {\n if (newValue === workInProgress) {\n newValue = null;\n break;\n }\n hasContext = newValue.sibling;\n if (null !== hasContext) {\n hasContext.return = newValue.return;\n newValue = hasContext;\n break;\n }\n newValue = newValue.return;\n }\n hasContext = newValue;\n }\n reconcileChildren(\n current,\n workInProgress,\n context.children,\n renderLanes\n );\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 9:\n return (\n (context = workInProgress.type),\n (Component = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress, renderLanes),\n (context = readContext(context)),\n (Component = Component(context)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, Component, renderLanes),\n workInProgress.child\n );\n case 14:\n return (\n (Component = workInProgress.type),\n (context = resolveDefaultProps(Component, workInProgress.pendingProps)),\n (context = resolveDefaultProps(Component.type, context)),\n updateMemoComponent(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 17:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress),\n (workInProgress.tag = 1),\n isContextProvider(Component)\n ? ((current = !0), pushContextProvider(workInProgress))\n : (current = !1),\n prepareToReadContext(workInProgress, renderLanes),\n constructClassInstance(workInProgress, Component, context),\n mountClassInstance(workInProgress, Component, context, renderLanes),\n finishClassComponent(\n null,\n workInProgress,\n Component,\n !0,\n current,\n renderLanes\n )\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(current, workInProgress, renderLanes);\n }\n throw Error(\n \"Unknown unit of work tag (\" +\n workInProgress.tag +\n \"). This error is likely caused by a bug in React. Please file an issue.\"\n );\n};\nfunction scheduleCallback$1(priorityLevel, callback) {\n return scheduleCallback(priorityLevel, callback);\n}\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null;\n this.index = 0;\n this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiber(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction resolveLazyComponentTag(Component) {\n if (\"function\" === typeof Component)\n return shouldConstruct(Component) ? 1 : 0;\n if (void 0 !== Component && null !== Component) {\n Component = Component.$$typeof;\n if (Component === REACT_FORWARD_REF_TYPE) return 11;\n if (Component === REACT_MEMO_TYPE) return 14;\n }\n return 2;\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiber(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 14680064;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 2;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type) fiberTag = 5;\n else\n a: switch (type) {\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 8;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiber(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiber(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiber(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_OFFSCREEN_TYPE:\n return createFiberFromOffscreen(pendingProps, mode, lanes, key);\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_PROVIDER_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONTEXT_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n throw Error(\n \"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: \" +\n ((null == type ? type : typeof type) + \".\")\n );\n }\n key = createFiber(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiber(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromOffscreen(pendingProps, mode, lanes, key) {\n pendingProps = createFiber(22, pendingProps, key, mode);\n pendingProps.elementType = REACT_OFFSCREEN_TYPE;\n pendingProps.lanes = lanes;\n pendingProps.stateNode = { isHidden: !1 };\n return pendingProps;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiber(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiber(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nfunction FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onRecoverableError\n) {\n this.tag = tag;\n this.containerInfo = containerInfo;\n this.finishedWork = this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = -1;\n this.callbackNode = this.pendingContext = this.context = null;\n this.callbackPriority = 0;\n this.eventTimes = createLaneMap(0);\n this.expirationTimes = createLaneMap(-1);\n this.entangledLanes = this.finishedLanes = this.mutableReadLanes = this.expiredLanes = this.pingedLanes = this.suspendedLanes = this.pendingLanes = 0;\n this.entanglements = createLaneMap(0);\n this.identifierPrefix = identifierPrefix;\n this.onRecoverableError = onRecoverableError;\n}\nfunction createPortal(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\nfunction findHostInstance(component) {\n var fiber = component._reactInternals;\n if (void 0 === fiber) {\n if (\"function\" === typeof component.render)\n throw Error(\"Unable to find node on an unmounted component.\");\n component = Object.keys(component).join(\",\");\n throw Error(\n \"Argument appears to not be a ReactComponent. Keys: \" + component\n );\n }\n component = findCurrentHostFiber(fiber);\n return null === component ? null : component.stateNode;\n}\nfunction updateContainer(element, container, parentComponent, callback) {\n var current = container.current,\n eventTime = requestEventTime(),\n lane = requestUpdateLane(current);\n a: if (parentComponent) {\n parentComponent = parentComponent._reactInternals;\n b: {\n if (\n getNearestMountedFiber(parentComponent) !== parentComponent ||\n 1 !== parentComponent.tag\n )\n throw Error(\n \"Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.\"\n );\n var JSCompiler_inline_result = parentComponent;\n do {\n switch (JSCompiler_inline_result.tag) {\n case 3:\n JSCompiler_inline_result =\n JSCompiler_inline_result.stateNode.context;\n break b;\n case 1:\n if (isContextProvider(JSCompiler_inline_result.type)) {\n JSCompiler_inline_result =\n JSCompiler_inline_result.stateNode\n .__reactInternalMemoizedMergedChildContext;\n break b;\n }\n }\n JSCompiler_inline_result = JSCompiler_inline_result.return;\n } while (null !== JSCompiler_inline_result);\n throw Error(\n \"Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (1 === parentComponent.tag) {\n var Component = parentComponent.type;\n if (isContextProvider(Component)) {\n parentComponent = processChildContext(\n parentComponent,\n Component,\n JSCompiler_inline_result\n );\n break a;\n }\n }\n parentComponent = JSCompiler_inline_result;\n } else parentComponent = emptyContextObject;\n null === container.context\n ? (container.context = parentComponent)\n : (container.pendingContext = parentComponent);\n container = createUpdate(eventTime, lane);\n container.payload = { element: element };\n callback = void 0 === callback ? null : callback;\n null !== callback && (container.callback = callback);\n element = enqueueUpdate(current, container, lane);\n null !== element &&\n (scheduleUpdateOnFiber(element, current, lane, eventTime),\n entangleTransitions(element, current, lane));\n return lane;\n}\nfunction emptyFindFiberByHostInstance() {\n return null;\n}\nfunction findNodeHandle(componentOrHandle) {\n if (null == componentOrHandle) return null;\n if (\"number\" === typeof componentOrHandle) return componentOrHandle;\n if (componentOrHandle._nativeTag) return componentOrHandle._nativeTag;\n if (componentOrHandle.canonical && componentOrHandle.canonical._nativeTag)\n return componentOrHandle.canonical._nativeTag;\n componentOrHandle = findHostInstance(componentOrHandle);\n return null == componentOrHandle\n ? componentOrHandle\n : componentOrHandle.canonical\n ? componentOrHandle.canonical._nativeTag\n : componentOrHandle._nativeTag;\n}\nfunction onRecoverableError(error) {\n console.error(error);\n}\nfunction unmountComponentAtNode(containerTag) {\n var root = roots.get(containerTag);\n root &&\n updateContainer(null, root, null, function() {\n roots.delete(containerTag);\n });\n}\nbatchedUpdatesImpl = function(fn, a) {\n var prevExecutionContext = executionContext;\n executionContext |= 1;\n try {\n return fn(a);\n } finally {\n (executionContext = prevExecutionContext),\n 0 === executionContext &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n includesLegacySyncCallbacks && flushSyncCallbacks());\n }\n};\nvar roots = new Map(),\n devToolsConfig$jscomp$inline_979 = {\n findFiberByHostInstance: getInstanceFromTag,\n bundleType: 0,\n version: \"18.2.0-next-9e3b772b8-20220608\",\n rendererPackageName: \"react-native-renderer\",\n rendererConfig: {\n getInspectorDataForViewTag: function() {\n throw Error(\n \"getInspectorDataForViewTag() is not available in production\"\n );\n },\n getInspectorDataForViewAtPoint: function() {\n throw Error(\n \"getInspectorDataForViewAtPoint() is not available in production.\"\n );\n }.bind(null, findNodeHandle)\n }\n };\nvar internals$jscomp$inline_1247 = {\n bundleType: devToolsConfig$jscomp$inline_979.bundleType,\n version: devToolsConfig$jscomp$inline_979.version,\n rendererPackageName: devToolsConfig$jscomp$inline_979.rendererPackageName,\n rendererConfig: devToolsConfig$jscomp$inline_979.rendererConfig,\n overrideHookState: null,\n overrideHookStateDeletePath: null,\n overrideHookStateRenamePath: null,\n overrideProps: null,\n overridePropsDeletePath: null,\n overridePropsRenamePath: null,\n setErrorHandler: null,\n setSuspenseHandler: null,\n scheduleUpdate: null,\n currentDispatcherRef: ReactSharedInternals.ReactCurrentDispatcher,\n findHostInstanceByFiber: function(fiber) {\n fiber = findCurrentHostFiber(fiber);\n return null === fiber ? null : fiber.stateNode;\n },\n findFiberByHostInstance:\n devToolsConfig$jscomp$inline_979.findFiberByHostInstance ||\n emptyFindFiberByHostInstance,\n findHostInstancesForRefresh: null,\n scheduleRefresh: null,\n scheduleRoot: null,\n setRefreshHandler: null,\n getCurrentFiber: null,\n reconcilerVersion: \"18.2.0-next-9e3b772b8-20220608\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var hook$jscomp$inline_1248 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (\n !hook$jscomp$inline_1248.isDisabled &&\n hook$jscomp$inline_1248.supportsFiber\n )\n try {\n (rendererID = hook$jscomp$inline_1248.inject(\n internals$jscomp$inline_1247\n )),\n (injectedHook = hook$jscomp$inline_1248);\n } catch (err) {}\n}\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = {\n computeComponentStackForErrorReporting: function(reactTag) {\n return (reactTag = getInstanceFromTag(reactTag))\n ? getStackByFiberInDevAndProd(reactTag)\n : \"\";\n }\n};\nexports.createPortal = function(children, containerTag) {\n return createPortal(\n children,\n containerTag,\n null,\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null\n );\n};\nexports.dispatchCommand = function(handle, command, args) {\n null != handle._nativeTag &&\n (null != handle._internalInstanceHandle\n ? ((handle = handle._internalInstanceHandle.stateNode),\n null != handle &&\n nativeFabricUIManager.dispatchCommand(handle.node, command, args))\n : ReactNativePrivateInterface.UIManager.dispatchViewManagerCommand(\n handle._nativeTag,\n command,\n args\n ));\n};\nexports.findHostInstance_DEPRECATED = function(componentOrHandle) {\n if (null == componentOrHandle) return null;\n if (componentOrHandle._nativeTag) return componentOrHandle;\n if (componentOrHandle.canonical && componentOrHandle.canonical._nativeTag)\n return componentOrHandle.canonical;\n componentOrHandle = findHostInstance(componentOrHandle);\n return null == componentOrHandle\n ? componentOrHandle\n : componentOrHandle.canonical\n ? componentOrHandle.canonical\n : componentOrHandle;\n};\nexports.findNodeHandle = findNodeHandle;\nexports.getInspectorDataForInstance = void 0;\nexports.render = function(element, containerTag, callback) {\n var root = roots.get(containerTag);\n if (!root) {\n root = new FiberRootNode(containerTag, 0, !1, \"\", onRecoverableError);\n var JSCompiler_inline_result = createFiber(3, null, null, 0);\n root.current = JSCompiler_inline_result;\n JSCompiler_inline_result.stateNode = root;\n JSCompiler_inline_result.memoizedState = {\n element: null,\n isDehydrated: !1,\n cache: null,\n transitions: null,\n pendingSuspenseBoundaries: null\n };\n initializeUpdateQueue(JSCompiler_inline_result);\n roots.set(containerTag, root);\n }\n updateContainer(element, root, null, callback);\n a: if (((element = root.current), element.child))\n switch (element.child.tag) {\n case 5:\n element = element.child.stateNode;\n break a;\n default:\n element = element.child.stateNode;\n }\n else element = null;\n return element;\n};\nexports.sendAccessibilityEvent = function(handle, eventType) {\n null != handle._nativeTag &&\n (null != handle._internalInstanceHandle\n ? ((handle = handle._internalInstanceHandle.stateNode),\n null != handle &&\n nativeFabricUIManager.sendAccessibilityEvent(handle.node, eventType))\n : ReactNativePrivateInterface.legacySendAccessibilityEvent(\n handle._nativeTag,\n eventType\n ));\n};\nexports.unmountComponentAtNode = unmountComponentAtNode;\nexports.unmountComponentAtNodeAndRemoveContainer = function(containerTag) {\n unmountComponentAtNode(containerTag);\n ReactNativePrivateInterface.UIManager.removeRootView(containerTag);\n};\nexports.unstable_batchedUpdates = batchedUpdates;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n * @generate-docs\n */\n\n'use strict';\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport StyleSheet, {type ColorValue} from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport View from '../View/View';\nimport * as React from 'react';\n\nconst PlatformActivityIndicator =\n Platform.OS === 'android'\n ? require('../ProgressBarAndroid/ProgressBarAndroid')\n : require('./ActivityIndicatorViewNativeComponent').default;\n\nconst GRAY = '#999999';\n\ntype IndicatorSize = number | 'small' | 'large';\n\ntype IOSProps = $ReadOnly<{|\n /**\n Whether the indicator should hide when not animating.\n\n @platform ios\n */\n hidesWhenStopped?: ?boolean,\n|}>;\ntype Props = $ReadOnly<{|\n ...ViewProps,\n ...IOSProps,\n\n /**\n \tWhether to show the indicator (`true`) or hide it (`false`).\n */\n animating?: ?boolean,\n\n /**\n The foreground color of the spinner.\n\n @default {@platform android} `null` (system accent default color)\n @default {@platform ios} '#999999'\n */\n color?: ?ColorValue,\n\n /**\n Size of the indicator.\n\n @type enum(`'small'`, `'large'`)\n @type {@platform android} number\n */\n size?: ?IndicatorSize,\n|}>;\n\nconst ActivityIndicator = (\n {\n animating = true,\n color = Platform.OS === 'ios' ? GRAY : null,\n hidesWhenStopped = true,\n onLayout,\n size = 'small',\n style,\n ...restProps\n }: Props,\n forwardedRef?: any,\n) => {\n let sizeStyle;\n let sizeProp;\n\n switch (size) {\n case 'small':\n sizeStyle = styles.sizeSmall;\n sizeProp = 'small';\n break;\n case 'large':\n sizeStyle = styles.sizeLarge;\n sizeProp = 'large';\n break;\n default:\n sizeStyle = {height: size, width: size};\n break;\n }\n\n const nativeProps = {\n animating,\n color,\n hidesWhenStopped,\n ...restProps,\n ref: forwardedRef,\n style: sizeStyle,\n size: sizeProp,\n };\n\n const androidProps = {\n styleAttr: 'Normal',\n indeterminate: true,\n };\n\n return (\n \n {Platform.OS === 'android' ? (\n // $FlowFixMe[prop-missing] Flow doesn't know when this is the android component\n \n ) : (\n /* $FlowFixMe[prop-missing] (>=0.106.0 site=react_native_android_fb) This comment\n * suppresses an error found when Flow v0.106 was deployed. To see the\n * error, delete this comment and run Flow. */\n \n )}\n \n );\n};\n\n/**\n Displays a circular loading indicator.\n\n ```SnackPlayer name=ActivityIndicator%20Function%20Component%20Example\n import React from \"react\";\n import { ActivityIndicator, StyleSheet, Text, View } from \"react-native\";\n\n const App = () => (\n \n \n \n \n \n \n );\n\n const styles = StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: \"center\"\n },\n horizontal: {\n flexDirection: \"row\",\n justifyContent: \"space-around\",\n padding: 10\n }\n });\n export default App;\n ```\n\n ```SnackPlayer name=ActivityIndicator%20Class%20Component%20Example\n import React, { Component } from \"react\";\n import { ActivityIndicator, StyleSheet, Text, View } from \"react-native\";\n\n class App extends Component {\n render() {\n return (\n \n \n \n \n \n \n );\n }\n }\n\n const styles = StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: \"center\"\n },\n horizontal: {\n flexDirection: \"row\",\n justifyContent: \"space-around\",\n padding: 10\n }\n });\n export default App;\n ```\n*/\n\nconst ActivityIndicatorWithRef: React.AbstractComponent<\n Props,\n HostComponent,\n> = React.forwardRef(ActivityIndicator);\nActivityIndicatorWithRef.displayName = 'ActivityIndicator';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n sizeSmall: {\n width: 20,\n height: 20,\n },\n sizeLarge: {\n width: 36,\n height: 36,\n },\n});\n\nexport default ActivityIndicatorWithRef;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport ProgressBarAndroidNativeComponent from './ProgressBarAndroidNativeComponent';\n\nconst React = require('react');\n\nexport type ProgressBarAndroidProps = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * Style of the ProgressBar and whether it shows indeterminate progress (e.g. spinner).\n *\n * `indeterminate` can only be false if `styleAttr` is Horizontal, and requires a\n * `progress` value.\n */\n ...\n | {|\n styleAttr: 'Horizontal',\n indeterminate: false,\n progress: number,\n |}\n | {|\n typeAttr:\n | 'Horizontal'\n | 'Normal'\n | 'Small'\n | 'Large'\n | 'Inverse'\n | 'SmallInverse'\n | 'LargeInverse',\n indeterminate: true,\n |},\n /**\n * Whether to show the ProgressBar (true, the default) or hide it (false).\n */\n animating?: ?boolean,\n /**\n * Color of the progress bar.\n */\n color?: ?ColorValue,\n /**\n * Used to locate this view in end-to-end tests.\n */\n testID?: ?string,\n|}>;\n\n/**\n * React component that wraps the Android-only `ProgressBar`. This component is\n * used to indicate that the app is loading or there is activity in the app.\n *\n * Example:\n *\n * ```\n * render: function() {\n * var progressBar =\n * \n * \n * ;\n\n * return (\n * \n * );\n * },\n * ```\n */\nconst ProgressBarAndroid = (\n {\n styleAttr = 'Normal',\n indeterminate = true,\n animating = true,\n ...restProps\n }: ProgressBarAndroidProps,\n forwardedRef: ?React.Ref,\n) => {\n return (\n \n );\n};\n\nconst ProgressBarAndroidToExport = React.forwardRef(ProgressBarAndroid);\n\nmodule.exports =\n /* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\n (ProgressBarAndroidToExport: typeof ProgressBarAndroidNativeComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {Double, WithDefault} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n //Props\n styleAttr?: string,\n typeAttr?: string,\n indeterminate: boolean,\n progress?: WithDefault,\n animating?: WithDefault,\n color?: ?ColorValue,\n testID?: WithDefault,\n|}>;\n\nexport default (codegenNativeComponent('AndroidProgressBar', {\n interfaceOnly: true,\n}): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n// TODO: move this file to shims/ReactNative (requires React update and sync)\n\nimport type {HostComponent} from '../../Libraries/Renderer/shims/ReactNativeTypes';\n\nimport requireNativeComponent from '../../Libraries/ReactNative/requireNativeComponent';\nimport UIManager from '../ReactNative/UIManager';\n\n// TODO: import from CodegenSchema once workspaces are enabled\ntype Options = $ReadOnly<{|\n interfaceOnly?: boolean,\n paperComponentName?: string,\n paperComponentNameDeprecated?: string,\n excludedPlatforms?: $ReadOnlyArray<'iOS' | 'android'>,\n|}>;\n\nexport type NativeComponentType = HostComponent;\n\n// If this function runs then that means the view configs were not\n// generated at build time using `GenerateViewConfigJs.js`. Thus\n// we need to `requireNativeComponent` to get the view configs from view managers.\n// `requireNativeComponent` is not available in Bridgeless mode.\n// e.g. This function runs at runtime if `codegenNativeComponent` was not called\n// from a file suffixed with NativeComponent.js.\nfunction codegenNativeComponent(\n componentName: string,\n options?: Options,\n): NativeComponentType {\n if (global.RN$Bridgeless === true) {\n const errorMessage =\n \"Native Component '\" +\n componentName +\n \"' that calls codegenNativeComponent was not code generated at build time. Please check its definition.\";\n console.error(errorMessage);\n }\n\n let componentNameInUse =\n options && options.paperComponentName != null\n ? options.paperComponentName\n : componentName;\n\n if (options != null && options.paperComponentNameDeprecated != null) {\n if (UIManager.hasViewManagerConfig(componentName)) {\n componentNameInUse = componentName;\n } else if (\n options.paperComponentNameDeprecated != null &&\n UIManager.hasViewManagerConfig(options.paperComponentNameDeprecated)\n ) {\n // $FlowFixMe[incompatible-type]\n componentNameInUse = options.paperComponentNameDeprecated;\n } else {\n throw new Error(\n `Failed to find native component for either ${componentName} or ${\n options.paperComponentNameDeprecated ?? '(unknown)'\n }`,\n );\n }\n }\n\n return (requireNativeComponent(\n // $FlowFixMe[incompatible-call]\n componentNameInUse,\n ): HostComponent);\n}\n\nexport default codegenNativeComponent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {HostComponent} from '../Renderer/shims/ReactNativeTypes';\n\nconst createReactNativeComponentClass = require('../Renderer/shims/createReactNativeComponentClass');\nconst getNativeComponentAttributes = require('./getNativeComponentAttributes');\n\n/**\n * Creates values that can be used like React components which represent native\n * view managers. You should create JavaScript modules that wrap these values so\n * that the results are memoized. Example:\n *\n * const View = requireNativeComponent('RCTView');\n *\n */\n\nconst requireNativeComponent = (uiViewClassName: string): HostComponent =>\n ((createReactNativeComponentClass(uiViewClassName, () =>\n getNativeComponentAttributes(uiViewClassName),\n ): any): HostComponent);\n\nexport default requireNativeComponent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @noformat\n * @flow strict-local\n * @generated SignedSource<>\n *\n * This file was sync'd from the facebook/react repository.\n */\n\n'use strict';\n\nimport {ReactNativeViewConfigRegistry} from 'react-native/Libraries/ReactPrivate/ReactNativePrivateInterface';\nimport {type ViewConfig} from './ReactNativeTypes';\n\nconst {register} = ReactNativeViewConfigRegistry;\n\n/**\n * Creates a renderable ReactNative host component.\n * Use this method for view configs that are loaded from UIManager.\n * Use createReactNativeComponentClass() for view configs defined within JavaScript.\n *\n * @param {string} config iOS View configuration.\n * @private\n */\nconst createReactNativeComponentClass = function (\n name: string,\n callback: () => ViewConfig,\n): string {\n return register(name, callback);\n};\n\nmodule.exports = createReactNativeComponentClass;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {WithDefault} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * Whether the indicator should hide when not animating (true by default).\n *\n * See https://reactnative.dev/docs/activityindicator#hideswhenstopped\n */\n hidesWhenStopped?: WithDefault,\n\n /**\n * Whether to show the indicator (true, the default) or hide it (false).\n *\n * See https://reactnative.dev/docs/activityindicator#animating\n */\n animating?: WithDefault,\n\n /**\n * The foreground color of the spinner (default is gray).\n *\n * See https://reactnative.dev/docs/activityindicator#color\n */\n color?: ?ColorValue,\n\n /**\n * Size of the indicator (default is 'small').\n * Passing a number to the size prop is only supported on Android.\n *\n * See https://reactnative.dev/docs/activityindicator#size\n */\n size?: WithDefault<'small' | 'large', 'small'>,\n|}>;\n\nexport default (codegenNativeComponent('ActivityIndicatorView', {\n paperComponentName: 'RCTActivityIndicatorView',\n}): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n * @generate-docs\n */\n\n'use strict';\n\nimport type {TextStyleProp, ViewStyleProp} from '../StyleSheet/StyleSheet';\nimport type {PressEvent} from '../Types/CoreEventTypes';\nimport type {Button as ButtonType} from './Button.flow';\nimport type {\n AccessibilityActionEvent,\n AccessibilityActionInfo,\n AccessibilityState,\n} from './View/ViewAccessibility';\n\nimport StyleSheet, {type ColorValue} from '../StyleSheet/StyleSheet';\nimport Text from '../Text/Text';\nimport Platform from '../Utilities/Platform';\nimport TouchableNativeFeedback from './Touchable/TouchableNativeFeedback';\nimport TouchableOpacity from './Touchable/TouchableOpacity';\nimport View from './View/View';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\ntype ButtonProps = $ReadOnly<{|\n /**\n Text to display inside the button. On Android the given title will be\n converted to the uppercased form.\n */\n title: string,\n\n /**\n Handler to be called when the user taps the button. The first function\n argument is an event in form of [PressEvent](pressevent).\n */\n onPress: (event?: PressEvent) => mixed,\n\n /**\n If `true`, doesn't play system sound on touch.\n\n @platform android\n\n @default false\n */\n touchSoundDisabled?: ?boolean,\n\n /**\n Color of the text (iOS), or background color of the button (Android).\n\n @default {@platform android} '#2196F3'\n @default {@platform ios} '#007AFF'\n */\n color?: ?ColorValue,\n\n /**\n TV preferred focus.\n\n @platform tv\n\n @default false\n */\n hasTVPreferredFocus?: ?boolean,\n\n /**\n Designates the next view to receive focus when the user navigates down. See\n the [Android documentation][android:nextFocusDown].\n\n [android:nextFocusDown]:\n https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusDown\n\n @platform android, tv\n */\n nextFocusDown?: ?number,\n\n /**\n Designates the next view to receive focus when the user navigates forward.\n See the [Android documentation][android:nextFocusForward].\n\n [android:nextFocusForward]:\n https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusForward\n\n @platform android, tv\n */\n nextFocusForward?: ?number,\n\n /**\n Designates the next view to receive focus when the user navigates left. See\n the [Android documentation][android:nextFocusLeft].\n\n [android:nextFocusLeft]:\n https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusLeft\n\n @platform android, tv\n */\n nextFocusLeft?: ?number,\n\n /**\n Designates the next view to receive focus when the user navigates right. See\n the [Android documentation][android:nextFocusRight].\n\n [android:nextFocusRight]:\n https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusRight\n\n @platform android, tv\n */\n nextFocusRight?: ?number,\n\n /**\n Designates the next view to receive focus when the user navigates up. See\n the [Android documentation][android:nextFocusUp].\n\n [android:nextFocusUp]:\n https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusUp\n\n @platform android, tv\n */\n nextFocusUp?: ?number,\n\n /**\n Text to display for blindness accessibility features.\n */\n accessibilityLabel?: ?string,\n /**\n * Alias for accessibilityLabel https://reactnative.dev/docs/view#accessibilitylabel\n * https://github.com/facebook/react-native/issues/34424\n */\n 'aria-label'?: ?string,\n /**\n If `true`, disable all interactions for this component.\n\n @default false\n */\n disabled?: ?boolean,\n\n /**\n Used to locate this view in end-to-end tests.\n */\n testID?: ?string,\n\n /**\n * Accessibility props.\n */\n accessible?: ?boolean,\n accessibilityActions?: ?$ReadOnlyArray,\n onAccessibilityAction?: ?(event: AccessibilityActionEvent) => mixed,\n accessibilityState?: ?AccessibilityState,\n\n /**\n * alias for accessibilityState\n *\n * see https://reactnative.dev/docs/accessibility#accessibilitystate\n */\n 'aria-busy'?: ?boolean,\n 'aria-checked'?: ?boolean | 'mixed',\n 'aria-disabled'?: ?boolean,\n 'aria-expanded'?: ?boolean,\n 'aria-selected'?: ?boolean,\n\n /**\n * [Android] Controlling if a view fires accessibility events and if it is reported to accessibility services.\n */\n importantForAccessibility?: ?('auto' | 'yes' | 'no' | 'no-hide-descendants'),\n accessibilityHint?: ?string,\n accessibilityLanguage?: ?Stringish,\n|}>;\n\n/**\n A basic button component that should render nicely on any platform. Supports a\n minimal level of customization.\n\n If this button doesn't look right for your app, you can build your own button\n using [TouchableOpacity](touchableopacity) or\n [TouchableWithoutFeedback](touchablewithoutfeedback). For inspiration, look at\n the [source code for this button component][button:source]. Or, take a look at\n the [wide variety of button components built by the community]\n [button:examples].\n\n [button:source]:\n https://github.com/facebook/react-native/blob/HEAD/Libraries/Components/Button.js\n\n [button:examples]:\n https://js.coach/?menu%5Bcollections%5D=React%20Native&page=1&query=button\n\n ```jsx\n \n ```\n\n ```SnackPlayer name=Button%20Example\n import React from 'react';\n import { StyleSheet, Button, View, SafeAreaView, Text, Alert } from 'react-native';\n\n const Separator = () => (\n \n );\n\n const App = () => (\n \n \n \n The title and onPress handler are required. It is recommended to set accessibilityLabel to help make your app usable by everyone.\n \n Alert.alert('Simple Button pressed')}\n />\n \n \n \n \n Adjust the color in a way that looks standard on each platform. On iOS, the color prop controls the color of the text. On Android, the color adjusts the background color of the button.\n \n Alert.alert('Button with adjusted color pressed')}\n />\n \n \n \n \n All interaction for the component are disabled.\n \n Alert.alert('Cannot press this one')}\n />\n \n \n \n \n This layout strategy lets the title define the width of the button.\n \n \n Alert.alert('Left button pressed')}\n />\n Alert.alert('Right button pressed')}\n />\n \n \n \n );\n\n const styles = StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: 'center',\n marginHorizontal: 16,\n },\n title: {\n textAlign: 'center',\n marginVertical: 8,\n },\n fixToText: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n separator: {\n marginVertical: 8,\n borderBottomColor: '#737373',\n borderBottomWidth: StyleSheet.hairlineWidth,\n },\n });\n\n export default App;\n ```\n */\n\nclass Button extends React.Component {\n render(): React.Node {\n const {\n accessibilityLabel,\n accessibilityState,\n 'aria-busy': ariaBusy,\n 'aria-checked': ariaChecked,\n 'aria-disabled': ariaDisabled,\n 'aria-expanded': ariaExpanded,\n 'aria-label': ariaLabel,\n 'aria-selected': ariaSelected,\n importantForAccessibility,\n color,\n onPress,\n touchSoundDisabled,\n title,\n hasTVPreferredFocus,\n nextFocusDown,\n nextFocusForward,\n nextFocusLeft,\n nextFocusRight,\n nextFocusUp,\n testID,\n accessible,\n accessibilityActions,\n accessibilityHint,\n accessibilityLanguage,\n onAccessibilityAction,\n } = this.props;\n const buttonStyles: Array = [styles.button];\n const textStyles: Array = [styles.text];\n if (color) {\n if (Platform.OS === 'ios') {\n textStyles.push({color: color});\n } else {\n buttonStyles.push({backgroundColor: color});\n }\n }\n\n let _accessibilityState = {\n busy: ariaBusy ?? accessibilityState?.busy,\n checked: ariaChecked ?? accessibilityState?.checked,\n disabled: ariaDisabled ?? accessibilityState?.disabled,\n expanded: ariaExpanded ?? accessibilityState?.expanded,\n selected: ariaSelected ?? accessibilityState?.selected,\n };\n\n const disabled =\n this.props.disabled != null\n ? this.props.disabled\n : _accessibilityState?.disabled;\n\n _accessibilityState =\n disabled !== _accessibilityState?.disabled\n ? {..._accessibilityState, disabled}\n : _accessibilityState;\n\n if (disabled) {\n buttonStyles.push(styles.buttonDisabled);\n textStyles.push(styles.textDisabled);\n }\n\n invariant(\n typeof title === 'string',\n 'The title prop of a Button must be a string',\n );\n const formattedTitle =\n Platform.OS === 'android' ? title.toUpperCase() : title;\n const Touchable =\n Platform.OS === 'android' ? TouchableNativeFeedback : TouchableOpacity;\n\n // If `no` is specified for `importantForAccessibility`, it will be changed to `no-hide-descendants` because the text inside should not be focused.\n const _importantForAccessibility =\n importantForAccessibility === 'no'\n ? 'no-hide-descendants'\n : importantForAccessibility;\n\n return (\n \n \n \n {formattedTitle}\n \n \n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n button: Platform.select({\n ios: {},\n android: {\n elevation: 4,\n // Material design blue from https://material.google.com/style/color.html#color-color-palette\n backgroundColor: '#2196F3',\n borderRadius: 2,\n },\n }),\n text: {\n textAlign: 'center',\n margin: 8,\n ...Platform.select({\n ios: {\n // iOS blue from https://developer.apple.com/ios/human-interface-guidelines/visual-design/color/\n color: '#007AFF',\n fontSize: 18,\n },\n android: {\n color: 'white',\n fontWeight: '500',\n },\n }),\n },\n buttonDisabled: Platform.select({\n ios: {},\n android: {\n elevation: 0,\n backgroundColor: '#dfdfdf',\n },\n }),\n textDisabled: Platform.select({\n ios: {\n color: '#cdcdcd',\n },\n android: {\n color: '#a1a1a1',\n },\n }),\n});\n\nmodule.exports = (Button: ButtonType);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {PressEvent} from '../Types/CoreEventTypes';\nimport type {TextProps} from './TextProps';\n\nimport * as PressabilityDebug from '../Pressability/PressabilityDebug';\nimport usePressability from '../Pressability/usePressability';\nimport flattenStyle from '../StyleSheet/flattenStyle';\nimport processColor from '../StyleSheet/processColor';\nimport {getAccessibilityRoleFromRole} from '../Utilities/AcessibilityMapping';\nimport Platform from '../Utilities/Platform';\nimport TextAncestor from './TextAncestor';\nimport {NativeText, NativeVirtualText} from './TextNativeComponent';\nimport * as React from 'react';\nimport {useContext, useMemo, useState} from 'react';\n\n/**\n * Text is the fundamental component for displaying text.\n *\n * @see https://reactnative.dev/docs/text\n */\nconst Text: React.AbstractComponent<\n TextProps,\n React.ElementRef,\n> = React.forwardRef((props: TextProps, forwardedRef) => {\n const {\n accessible,\n accessibilityLabel,\n accessibilityRole,\n accessibilityState,\n allowFontScaling,\n 'aria-busy': ariaBusy,\n 'aria-checked': ariaChecked,\n 'aria-disabled': ariaDisabled,\n 'aria-expanded': ariaExpanded,\n 'aria-label': ariaLabel,\n 'aria-selected': ariaSelected,\n ellipsizeMode,\n id,\n nativeID,\n onLongPress,\n onPress,\n onPressIn,\n onPressOut,\n onResponderGrant,\n onResponderMove,\n onResponderRelease,\n onResponderTerminate,\n onResponderTerminationRequest,\n onStartShouldSetResponder,\n pressRetentionOffset,\n role,\n suppressHighlighting,\n ...restProps\n } = props;\n\n const [isHighlighted, setHighlighted] = useState(false);\n\n let _accessibilityState;\n if (\n accessibilityState != null ||\n ariaBusy != null ||\n ariaChecked != null ||\n ariaDisabled != null ||\n ariaExpanded != null ||\n ariaSelected != null\n ) {\n _accessibilityState = {\n busy: ariaBusy ?? accessibilityState?.busy,\n checked: ariaChecked ?? accessibilityState?.checked,\n disabled: ariaDisabled ?? accessibilityState?.disabled,\n expanded: ariaExpanded ?? accessibilityState?.expanded,\n selected: ariaSelected ?? accessibilityState?.selected,\n };\n }\n\n const _disabled =\n restProps.disabled != null\n ? restProps.disabled\n : _accessibilityState?.disabled;\n\n const nativeTextAccessibilityState =\n _disabled !== _accessibilityState?.disabled\n ? {..._accessibilityState, disabled: _disabled}\n : _accessibilityState;\n\n const isPressable =\n (onPress != null ||\n onLongPress != null ||\n onStartShouldSetResponder != null) &&\n _disabled !== true;\n\n const initialized = useLazyInitialization(isPressable);\n const config = useMemo(\n () =>\n initialized\n ? {\n disabled: !isPressable,\n pressRectOffset: pressRetentionOffset,\n onLongPress,\n onPress,\n onPressIn(event: PressEvent) {\n setHighlighted(!suppressHighlighting);\n onPressIn?.(event);\n },\n onPressOut(event: PressEvent) {\n setHighlighted(false);\n onPressOut?.(event);\n },\n onResponderTerminationRequest_DEPRECATED:\n onResponderTerminationRequest,\n onStartShouldSetResponder_DEPRECATED: onStartShouldSetResponder,\n }\n : null,\n [\n initialized,\n isPressable,\n pressRetentionOffset,\n onLongPress,\n onPress,\n onPressIn,\n onPressOut,\n onResponderTerminationRequest,\n onStartShouldSetResponder,\n suppressHighlighting,\n ],\n );\n\n const eventHandlers = usePressability(config);\n const eventHandlersForText = useMemo(\n () =>\n eventHandlers == null\n ? null\n : {\n onResponderGrant(event: PressEvent) {\n eventHandlers.onResponderGrant(event);\n if (onResponderGrant != null) {\n onResponderGrant(event);\n }\n },\n onResponderMove(event: PressEvent) {\n eventHandlers.onResponderMove(event);\n if (onResponderMove != null) {\n onResponderMove(event);\n }\n },\n onResponderRelease(event: PressEvent) {\n eventHandlers.onResponderRelease(event);\n if (onResponderRelease != null) {\n onResponderRelease(event);\n }\n },\n onResponderTerminate(event: PressEvent) {\n eventHandlers.onResponderTerminate(event);\n if (onResponderTerminate != null) {\n onResponderTerminate(event);\n }\n },\n onClick: eventHandlers.onClick,\n onResponderTerminationRequest:\n eventHandlers.onResponderTerminationRequest,\n onStartShouldSetResponder: eventHandlers.onStartShouldSetResponder,\n },\n [\n eventHandlers,\n onResponderGrant,\n onResponderMove,\n onResponderRelease,\n onResponderTerminate,\n ],\n );\n\n // TODO: Move this processing to the view configuration.\n const selectionColor =\n restProps.selectionColor == null\n ? null\n : processColor(restProps.selectionColor);\n\n let style = restProps.style;\n\n if (__DEV__) {\n if (PressabilityDebug.isEnabled() && onPress != null) {\n style = [restProps.style, {color: 'magenta'}];\n }\n }\n\n let numberOfLines = restProps.numberOfLines;\n if (numberOfLines != null && !(numberOfLines >= 0)) {\n console.error(\n `'numberOfLines' in must be a non-negative number, received: ${numberOfLines}. The value will be set to 0.`,\n );\n numberOfLines = 0;\n }\n\n const hasTextAncestor = useContext(TextAncestor);\n\n const _accessible = Platform.select({\n ios: accessible !== false,\n default: accessible,\n });\n\n // $FlowFixMe[underconstrained-implicit-instantiation]\n style = flattenStyle(style);\n\n if (typeof style?.fontWeight === 'number') {\n style.fontWeight = style?.fontWeight.toString();\n }\n\n let _selectable = restProps.selectable;\n if (style?.userSelect != null) {\n _selectable = userSelectToSelectableMap[style.userSelect];\n delete style.userSelect;\n }\n\n if (style?.verticalAlign != null) {\n style.textAlignVertical =\n verticalAlignToTextAlignVerticalMap[style.verticalAlign];\n delete style.verticalAlign;\n }\n\n const _hasOnPressOrOnLongPress =\n props.onPress != null || props.onLongPress != null;\n\n return hasTextAncestor ? (\n \n ) : (\n \n \n \n );\n});\n\nText.displayName = 'Text';\n\n/**\n * Switch to `deprecated-react-native-prop-types` for compatibility with future\n * releases. This is deprecated and will be removed in the future.\n */\nText.propTypes = require('deprecated-react-native-prop-types').TextPropTypes;\n\n/**\n * Returns false until the first time `newValue` is true, after which this will\n * always return true. This is necessary to lazily initialize `Pressability` so\n * we do not eagerly create one for every pressable `Text` component.\n */\nfunction useLazyInitialization(newValue: boolean): boolean {\n const [oldValue, setValue] = useState(newValue);\n if (!oldValue && newValue) {\n setValue(newValue);\n }\n return oldValue;\n}\n\nconst userSelectToSelectableMap = {\n auto: true,\n text: true,\n none: false,\n contain: true,\n all: true,\n};\n\nconst verticalAlignToTextAlignVerticalMap = {\n auto: 'auto',\n top: 'top',\n bottom: 'bottom',\n middle: 'center',\n};\n\nmodule.exports = Text;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {ColorValue} from '../StyleSheet/StyleSheet';\n\nimport View from '../Components/View/View';\nimport normalizeColor from '../StyleSheet/normalizeColor';\nimport {type RectOrSize, normalizeRect} from '../StyleSheet/Rect';\nimport * as React from 'react';\n\ntype Props = $ReadOnly<{|\n color: ColorValue,\n hitSlop: ?RectOrSize,\n|}>;\n\n/**\n * Displays a debug overlay to visualize press targets when enabled via the\n * React Native Inspector. Calls to this module should be guarded by `__DEV__`,\n * for example:\n *\n * return (\n * \n * {children}\n * {__DEV__ ? (\n * \n * ) : null}\n * \n * );\n *\n */\nexport function PressabilityDebugView(props: Props): React.Node {\n if (__DEV__) {\n if (isEnabled()) {\n const normalizedColor = normalizeColor(props.color);\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n const baseColor =\n '#' + (normalizedColor ?? 0).toString(16).padStart(8, '0');\n const hitSlop = normalizeRect(props.hitSlop);\n return (\n \n );\n }\n }\n return null;\n}\n\nlet isDebugEnabled = false;\n\nexport function isEnabled(): boolean {\n if (__DEV__) {\n return isDebugEnabled;\n }\n return false;\n}\n\nexport function setEnabled(value: boolean): void {\n if (__DEV__) {\n isDebugEnabled = value;\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport Pressability, {\n type EventHandlers,\n type PressabilityConfig,\n} from './Pressability';\nimport {useEffect, useRef} from 'react';\n\n/**\n * Creates a persistent instance of `Pressability` that automatically configures\n * itself and resets. Accepts null `config` to support lazy initialization. Once\n * initialized, will not un-initialize until the component has been unmounted.\n */\nexport default function usePressability(\n config: ?PressabilityConfig,\n): ?EventHandlers {\n const pressabilityRef = useRef(null);\n if (config != null && pressabilityRef.current == null) {\n pressabilityRef.current = new Pressability(config);\n }\n const pressability = pressabilityRef.current;\n\n // On the initial mount, this is a no-op. On updates, `pressability` will be\n // re-configured to use the new configuration.\n useEffect(() => {\n if (config != null && pressability != null) {\n pressability.configure(config);\n }\n }, [config, pressability]);\n\n // On unmount, reset pending state and timers inside `pressability`. This is\n // a separate effect because we do not want to reset when `config` changes.\n useEffect(() => {\n if (pressability != null) {\n return () => {\n pressability.reset();\n };\n }\n }, [pressability]);\n\n return pressability == null ? null : pressability.getEventHandlers();\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {HostComponent} from '../Renderer/shims/ReactNativeTypes';\nimport type {\n BlurEvent,\n FocusEvent,\n MouseEvent,\n PressEvent,\n} from '../Types/CoreEventTypes';\n\nimport SoundManager from '../Components/Sound/SoundManager';\nimport ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';\nimport UIManager from '../ReactNative/UIManager';\nimport {type RectOrSize, normalizeRect} from '../StyleSheet/Rect';\nimport {type PointerEvent} from '../Types/CoreEventTypes';\nimport Platform from '../Utilities/Platform';\nimport {isHoverEnabled} from './HoverState';\nimport PressabilityPerformanceEventEmitter from './PressabilityPerformanceEventEmitter.js';\nimport {type PressabilityTouchSignal as TouchSignal} from './PressabilityTypes.js';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\nexport type PressabilityConfig = $ReadOnly<{|\n /**\n * Whether a press gesture can be interrupted by a parent gesture such as a\n * scroll event. Defaults to true.\n */\n cancelable?: ?boolean,\n\n /**\n * Whether to disable initialization of the press gesture.\n */\n disabled?: ?boolean,\n\n /**\n * Amount to extend the `VisualRect` by to create `HitRect`.\n */\n hitSlop?: ?RectOrSize,\n\n /**\n * Amount to extend the `HitRect` by to create `PressRect`.\n */\n pressRectOffset?: ?RectOrSize,\n\n /**\n * Whether to disable the systemm sound when `onPress` fires on Android.\n **/\n android_disableSound?: ?boolean,\n\n /**\n * Duration to wait after hover in before calling `onHoverIn`.\n */\n delayHoverIn?: ?number,\n\n /**\n * Duration to wait after hover out before calling `onHoverOut`.\n */\n delayHoverOut?: ?number,\n\n /**\n * Duration (in addition to `delayPressIn`) after which a press gesture is\n * considered a long press gesture. Defaults to 500 (milliseconds).\n */\n delayLongPress?: ?number,\n\n /**\n * Duration to wait after press down before calling `onPressIn`.\n */\n delayPressIn?: ?number,\n\n /**\n * Duration to wait after letting up before calling `onPressOut`.\n */\n delayPressOut?: ?number,\n\n /**\n * Minimum duration to wait between calling `onPressIn` and `onPressOut`.\n */\n minPressDuration?: ?number,\n\n /**\n * Called after the element loses focus.\n */\n onBlur?: ?(event: BlurEvent) => mixed,\n\n /**\n * Called after the element is focused.\n */\n onFocus?: ?(event: FocusEvent) => mixed,\n\n /**\n * Called when the hover is activated to provide visual feedback.\n */\n onHoverIn?: ?(event: MouseEvent) => mixed,\n\n /**\n * Called when the hover is deactivated to undo visual feedback.\n */\n onHoverOut?: ?(event: MouseEvent) => mixed,\n\n /**\n * Called when a long press gesture has been triggered.\n */\n onLongPress?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when a press gesture has been triggered.\n */\n onPress?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when the press is activated to provide visual feedback.\n */\n onPressIn?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when the press location moves. (This should rarely be used.)\n */\n onPressMove?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when the press is deactivated to undo visual feedback.\n */\n onPressOut?: ?(event: PressEvent) => mixed,\n\n /**\n * Returns whether a long press gesture should cancel the press gesture.\n * Defaults to true.\n */\n onLongPressShouldCancelPress_DEPRECATED?: ?() => boolean,\n\n /**\n * If `cancelable` is set, this will be ignored.\n *\n * Returns whether to yield to a lock termination request (e.g. if a native\n * scroll gesture attempts to steal the responder lock).\n */\n onResponderTerminationRequest_DEPRECATED?: ?() => boolean,\n\n /**\n * If `disabled` is set, this will be ignored.\n *\n * Returns whether to start a press gesture.\n *\n * @deprecated\n */\n onStartShouldSetResponder_DEPRECATED?: ?() => boolean,\n|}>;\n\nexport type EventHandlers = $ReadOnly<{|\n onBlur: (event: BlurEvent) => void,\n onClick: (event: PressEvent) => void,\n onFocus: (event: FocusEvent) => void,\n onMouseEnter?: (event: MouseEvent) => void,\n onMouseLeave?: (event: MouseEvent) => void,\n onPointerEnter?: (event: PointerEvent) => void,\n onPointerLeave?: (event: PointerEvent) => void,\n onResponderGrant: (event: PressEvent) => void,\n onResponderMove: (event: PressEvent) => void,\n onResponderRelease: (event: PressEvent) => void,\n onResponderTerminate: (event: PressEvent) => void,\n onResponderTerminationRequest: () => boolean,\n onStartShouldSetResponder: () => boolean,\n|}>;\n\ntype TouchState =\n | 'NOT_RESPONDER'\n | 'RESPONDER_INACTIVE_PRESS_IN'\n | 'RESPONDER_INACTIVE_PRESS_OUT'\n | 'RESPONDER_ACTIVE_PRESS_IN'\n | 'RESPONDER_ACTIVE_PRESS_OUT'\n | 'RESPONDER_ACTIVE_LONG_PRESS_IN'\n | 'RESPONDER_ACTIVE_LONG_PRESS_OUT'\n | 'ERROR';\n\nconst Transitions = Object.freeze({\n NOT_RESPONDER: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'RESPONDER_INACTIVE_PRESS_IN',\n RESPONDER_RELEASE: 'ERROR',\n RESPONDER_TERMINATED: 'ERROR',\n ENTER_PRESS_RECT: 'ERROR',\n LEAVE_PRESS_RECT: 'ERROR',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_INACTIVE_PRESS_IN: {\n DELAY: 'RESPONDER_ACTIVE_PRESS_IN',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_INACTIVE_PRESS_OUT: {\n DELAY: 'RESPONDER_ACTIVE_PRESS_OUT',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_ACTIVE_PRESS_IN: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n },\n RESPONDER_ACTIVE_PRESS_OUT: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_ACTIVE_LONG_PRESS_IN: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',\n LONG_PRESS_DETECTED: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n },\n RESPONDER_ACTIVE_LONG_PRESS_OUT: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n ERROR: {\n DELAY: 'NOT_RESPONDER',\n RESPONDER_GRANT: 'RESPONDER_INACTIVE_PRESS_IN',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'NOT_RESPONDER',\n LEAVE_PRESS_RECT: 'NOT_RESPONDER',\n LONG_PRESS_DETECTED: 'NOT_RESPONDER',\n },\n});\n\nconst isActiveSignal = (signal: TouchState) =>\n signal === 'RESPONDER_ACTIVE_PRESS_IN' ||\n signal === 'RESPONDER_ACTIVE_LONG_PRESS_IN';\n\nconst isActivationSignal = (signal: TouchState) =>\n signal === 'RESPONDER_ACTIVE_PRESS_OUT' ||\n signal === 'RESPONDER_ACTIVE_PRESS_IN';\n\nconst isPressInSignal = (signal: TouchState) =>\n signal === 'RESPONDER_INACTIVE_PRESS_IN' ||\n signal === 'RESPONDER_ACTIVE_PRESS_IN' ||\n signal === 'RESPONDER_ACTIVE_LONG_PRESS_IN';\n\nconst isTerminalSignal = (signal: TouchSignal) =>\n signal === 'RESPONDER_TERMINATED' || signal === 'RESPONDER_RELEASE';\n\nconst DEFAULT_LONG_PRESS_DELAY_MS = 500;\nconst DEFAULT_PRESS_RECT_OFFSETS = {\n bottom: 30,\n left: 20,\n right: 20,\n top: 20,\n};\nconst DEFAULT_MIN_PRESS_DURATION = 130;\n\nconst DEFAULT_LONG_PRESS_DEACTIVATION_DISTANCE = 10;\nlet longPressDeactivationDistance = DEFAULT_LONG_PRESS_DEACTIVATION_DISTANCE;\n/**\n * Pressability implements press handling capabilities.\n *\n * =========================== Pressability Tutorial ===========================\n *\n * The `Pressability` class helps you create press interactions by analyzing the\n * geometry of elements and observing when another responder (e.g. ScrollView)\n * has stolen the touch lock. It offers hooks for your component to provide\n * interaction feedback to the user:\n *\n * - When a press has activated (e.g. highlight an element)\n * - When a press has deactivated (e.g. un-highlight an element)\n * - When a press sould trigger an action, meaning it activated and deactivated\n * while within the geometry of the element without the lock being stolen.\n *\n * A high quality interaction isn't as simple as you might think. There should\n * be a slight delay before activation. Moving your finger beyond an element's\n * bounds should trigger deactivation, but moving the same finger back within an\n * element's bounds should trigger reactivation.\n *\n * In order to use `Pressability`, do the following:\n *\n * 1. Instantiate `Pressability` and store it on your component's state.\n *\n * state = {\n * pressability: new Pressability({\n * // ...\n * }),\n * };\n *\n * 2. Choose the rendered component who should collect the press events. On that\n * element, spread `pressability.getEventHandlers()` into its props.\n *\n * return (\n * \n * );\n *\n * 3. Reset `Pressability` when your component unmounts.\n *\n * componentWillUnmount() {\n * this.state.pressability.reset();\n * }\n *\n * ==================== Pressability Implementation Details ====================\n *\n * `Pressability` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * # Geometry\n *\n * β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n * β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ - Presses start anywhere within `HitRect`, which\n * β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ is expanded via the prop `hitSlop`.\n * β”‚ β”‚ β”‚ VisualRect β”‚ β”‚ β”‚\n * β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ - When pressed down for sufficient amount of time\n * β”‚ β”‚ HitRect β”‚ β”‚ before letting up, `VisualRect` activates for\n * β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ as long as the press stays within `PressRect`.\n * β”‚ PressRect o β”‚\n * β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”‚β”€β”€β”€β”˜\n * Out Region └────── `PressRect`, which is expanded via the prop\n * `pressRectOffset`, allows presses to move\n * beyond `HitRect` while maintaining activation\n * and being eligible for a \"press\".\n *\n * # State Machine\n *\n * β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” ◀──── RESPONDER_RELEASE\n * β”‚ NOT_RESPONDER β”‚\n * β””β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ◀──── RESPONDER_TERMINATED\n * β”‚\n * β”‚ RESPONDER_GRANT (HitRect)\n * β”‚\n * β–Ό\n * β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n * β”‚ RESPONDER_INACTIVE_ β”‚ DELAY β”‚ RESPONDER_ACTIVE_ β”‚ T + DELAY β”‚ RESPONDER_ACTIVE_ β”‚\n * β”‚ PRESS_IN β”œβ”€β”€β”€β”€β”€β”€β”€β”€β–Ά β”‚ PRESS_IN β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Ά β”‚ LONG_PRESS_IN β”‚\n * β””β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜\n * β”‚ β–² β”‚ β–² β”‚ β–²\n * β”‚LEAVE_ β”‚ β”‚LEAVE_ β”‚ β”‚LEAVE_ β”‚\n * β”‚PRESS_RECT β”‚ENTER_ β”‚PRESS_RECT β”‚ENTER_ β”‚PRESS_RECT β”‚ENTER_\n * β”‚ β”‚PRESS_RECT β”‚ β”‚PRESS_RECT β”‚ β”‚PRESS_RECT\n * β–Ό β”‚ β–Ό β”‚ β–Ό β”‚\n * β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”\n * β”‚ RESPONDER_INACTIVE_ β”‚ DELAY β”‚ RESPONDER_ACTIVE_ β”‚ β”‚ RESPONDER_ACTIVE_ β”‚\n * β”‚ PRESS_OUT β”œβ”€β”€β”€β”€β”€β”€β”€β”€β–Ά β”‚ PRESS_OUT β”‚ β”‚ LONG_PRESS_OUT β”‚\n * β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜\n *\n * T + DELAY => LONG_PRESS_DELAY + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the invocation of `onPress` and `onLongPress` that occur when a\n * responder is release while in the \"press in\" states.\n */\nexport default class Pressability {\n _config: PressabilityConfig;\n _eventHandlers: ?EventHandlers = null;\n _hoverInDelayTimeout: ?TimeoutID = null;\n _hoverOutDelayTimeout: ?TimeoutID = null;\n _isHovered: boolean = false;\n _longPressDelayTimeout: ?TimeoutID = null;\n _pressDelayTimeout: ?TimeoutID = null;\n _pressOutDelayTimeout: ?TimeoutID = null;\n _responderID: ?number | React.ElementRef> = null;\n _responderRegion: ?$ReadOnly<{|\n bottom: number,\n left: number,\n right: number,\n top: number,\n |}> = null;\n _touchActivatePosition: ?$ReadOnly<{|\n pageX: number,\n pageY: number,\n |}>;\n _touchActivateTime: ?number;\n _touchState: TouchState = 'NOT_RESPONDER';\n\n constructor(config: PressabilityConfig) {\n this.configure(config);\n }\n\n configure(config: PressabilityConfig): void {\n this._config = config;\n }\n\n /**\n * Resets any pending timers. This should be called on unmount.\n */\n reset(): void {\n this._cancelHoverInDelayTimeout();\n this._cancelHoverOutDelayTimeout();\n this._cancelLongPressDelayTimeout();\n this._cancelPressDelayTimeout();\n this._cancelPressOutDelayTimeout();\n\n // Ensure that, if any async event handlers are fired after unmount\n // due to a race, we don't call any configured callbacks.\n this._config = Object.freeze({});\n }\n\n /**\n * Returns a set of props to spread into the interactive element.\n */\n getEventHandlers(): EventHandlers {\n if (this._eventHandlers == null) {\n this._eventHandlers = this._createEventHandlers();\n }\n return this._eventHandlers;\n }\n\n static setLongPressDeactivationDistance(distance: number): void {\n longPressDeactivationDistance = distance;\n }\n\n _createEventHandlers(): EventHandlers {\n const focusEventHandlers = {\n onBlur: (event: BlurEvent): void => {\n const {onBlur} = this._config;\n if (onBlur != null) {\n onBlur(event);\n }\n },\n onFocus: (event: FocusEvent): void => {\n const {onFocus} = this._config;\n if (onFocus != null) {\n onFocus(event);\n }\n },\n };\n\n const responderEventHandlers = {\n onStartShouldSetResponder: (): boolean => {\n const {disabled} = this._config;\n if (disabled == null) {\n const {onStartShouldSetResponder_DEPRECATED} = this._config;\n return onStartShouldSetResponder_DEPRECATED == null\n ? true\n : onStartShouldSetResponder_DEPRECATED();\n }\n return !disabled;\n },\n\n onResponderGrant: (event: PressEvent): void => {\n event.persist();\n\n this._cancelPressOutDelayTimeout();\n\n this._responderID = event.currentTarget;\n this._touchState = 'NOT_RESPONDER';\n this._receiveSignal('RESPONDER_GRANT', event);\n\n const delayPressIn = normalizeDelay(this._config.delayPressIn);\n if (delayPressIn > 0) {\n this._pressDelayTimeout = setTimeout(() => {\n this._receiveSignal('DELAY', event);\n }, delayPressIn);\n } else {\n this._receiveSignal('DELAY', event);\n }\n\n const delayLongPress = normalizeDelay(\n this._config.delayLongPress,\n 10,\n DEFAULT_LONG_PRESS_DELAY_MS - delayPressIn,\n );\n this._longPressDelayTimeout = setTimeout(() => {\n this._handleLongPress(event);\n }, delayLongPress + delayPressIn);\n },\n\n onResponderMove: (event: PressEvent): void => {\n const {onPressMove} = this._config;\n if (onPressMove != null) {\n onPressMove(event);\n }\n\n // Region may not have finished being measured, yet.\n const responderRegion = this._responderRegion;\n if (responderRegion == null) {\n return;\n }\n\n const touch = getTouchFromPressEvent(event);\n if (touch == null) {\n this._cancelLongPressDelayTimeout();\n this._receiveSignal('LEAVE_PRESS_RECT', event);\n return;\n }\n\n if (this._touchActivatePosition != null) {\n const deltaX = this._touchActivatePosition.pageX - touch.pageX;\n const deltaY = this._touchActivatePosition.pageY - touch.pageY;\n if (Math.hypot(deltaX, deltaY) > longPressDeactivationDistance) {\n this._cancelLongPressDelayTimeout();\n }\n }\n\n if (this._isTouchWithinResponderRegion(touch, responderRegion)) {\n this._receiveSignal('ENTER_PRESS_RECT', event);\n } else {\n this._cancelLongPressDelayTimeout();\n this._receiveSignal('LEAVE_PRESS_RECT', event);\n }\n },\n\n onResponderRelease: (event: PressEvent): void => {\n this._receiveSignal('RESPONDER_RELEASE', event);\n },\n\n onResponderTerminate: (event: PressEvent): void => {\n this._receiveSignal('RESPONDER_TERMINATED', event);\n },\n\n onResponderTerminationRequest: (): boolean => {\n const {cancelable} = this._config;\n if (cancelable == null) {\n const {onResponderTerminationRequest_DEPRECATED} = this._config;\n return onResponderTerminationRequest_DEPRECATED == null\n ? true\n : onResponderTerminationRequest_DEPRECATED();\n }\n return cancelable;\n },\n\n onClick: (event: PressEvent): void => {\n const {onPress, disabled} = this._config;\n if (onPress != null && disabled !== true) {\n onPress(event);\n }\n },\n };\n\n if (process.env.NODE_ENV === 'test') {\n // We are setting this in order to find this node in ReactNativeTestTools\n // $FlowFixMe[prop-missing]\n responderEventHandlers.onStartShouldSetResponder.testOnly_pressabilityConfig =\n () => this._config;\n }\n\n if (\n ReactNativeFeatureFlags.shouldPressibilityUseW3CPointerEventsForHover()\n ) {\n const hoverPointerEvents = {\n onPointerEnter: (undefined: void | (PointerEvent => void)),\n onPointerLeave: (undefined: void | (PointerEvent => void)),\n };\n const {onHoverIn, onHoverOut} = this._config;\n if (onHoverIn != null) {\n hoverPointerEvents.onPointerEnter = (event: PointerEvent) => {\n this._isHovered = true;\n this._cancelHoverOutDelayTimeout();\n if (onHoverIn != null) {\n const delayHoverIn = normalizeDelay(this._config.delayHoverIn);\n if (delayHoverIn > 0) {\n event.persist();\n this._hoverInDelayTimeout = setTimeout(() => {\n onHoverIn(convertPointerEventToMouseEvent(event));\n }, delayHoverIn);\n } else {\n onHoverIn(convertPointerEventToMouseEvent(event));\n }\n }\n };\n }\n if (onHoverOut != null) {\n hoverPointerEvents.onPointerLeave = (event: PointerEvent) => {\n if (this._isHovered) {\n this._isHovered = false;\n this._cancelHoverInDelayTimeout();\n if (onHoverOut != null) {\n const delayHoverOut = normalizeDelay(this._config.delayHoverOut);\n if (delayHoverOut > 0) {\n event.persist();\n this._hoverOutDelayTimeout = setTimeout(() => {\n onHoverOut(convertPointerEventToMouseEvent(event));\n }, delayHoverOut);\n } else {\n onHoverOut(convertPointerEventToMouseEvent(event));\n }\n }\n }\n };\n }\n return {\n ...focusEventHandlers,\n ...responderEventHandlers,\n ...hoverPointerEvents,\n };\n } else {\n const mouseEventHandlers =\n Platform.OS === 'ios' || Platform.OS === 'android'\n ? null\n : {\n onMouseEnter: (event: MouseEvent): void => {\n if (isHoverEnabled()) {\n this._isHovered = true;\n this._cancelHoverOutDelayTimeout();\n const {onHoverIn} = this._config;\n if (onHoverIn != null) {\n const delayHoverIn = normalizeDelay(\n this._config.delayHoverIn,\n );\n if (delayHoverIn > 0) {\n event.persist();\n this._hoverInDelayTimeout = setTimeout(() => {\n onHoverIn(event);\n }, delayHoverIn);\n } else {\n onHoverIn(event);\n }\n }\n }\n },\n\n onMouseLeave: (event: MouseEvent): void => {\n if (this._isHovered) {\n this._isHovered = false;\n this._cancelHoverInDelayTimeout();\n const {onHoverOut} = this._config;\n if (onHoverOut != null) {\n const delayHoverOut = normalizeDelay(\n this._config.delayHoverOut,\n );\n if (delayHoverOut > 0) {\n event.persist();\n this._hoverInDelayTimeout = setTimeout(() => {\n onHoverOut(event);\n }, delayHoverOut);\n } else {\n onHoverOut(event);\n }\n }\n }\n },\n };\n return {\n ...focusEventHandlers,\n ...responderEventHandlers,\n ...mouseEventHandlers,\n };\n }\n }\n\n /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n */\n _receiveSignal(signal: TouchSignal, event: PressEvent): void {\n // Especially on iOS, not all events have timestamps associated.\n // For telemetry purposes, this doesn't matter too much, as long as *some* do.\n // Since the native timestamp is integral for logging telemetry, just skip\n // events if they don't have a timestamp attached.\n if (event.nativeEvent.timestamp != null) {\n PressabilityPerformanceEventEmitter.emitEvent(() => {\n return {\n signal,\n nativeTimestamp: event.nativeEvent.timestamp,\n };\n });\n }\n\n const prevState = this._touchState;\n const nextState = Transitions[prevState]?.[signal];\n if (this._responderID == null && signal === 'RESPONDER_RELEASE') {\n return;\n }\n invariant(\n nextState != null && nextState !== 'ERROR',\n 'Pressability: Invalid signal `%s` for state `%s` on responder: %s',\n signal,\n prevState,\n typeof this._responderID === 'number'\n ? this._responderID\n : '<>',\n );\n if (prevState !== nextState) {\n this._performTransitionSideEffects(prevState, nextState, signal, event);\n this._touchState = nextState;\n }\n }\n\n /**\n * Performs a transition between touchable states and identify any activations\n * or deactivations (and callback invocations).\n */\n _performTransitionSideEffects(\n prevState: TouchState,\n nextState: TouchState,\n signal: TouchSignal,\n event: PressEvent,\n ): void {\n if (isTerminalSignal(signal)) {\n this._touchActivatePosition = null;\n this._cancelLongPressDelayTimeout();\n }\n\n const isInitialTransition =\n prevState === 'NOT_RESPONDER' &&\n nextState === 'RESPONDER_INACTIVE_PRESS_IN';\n\n const isActivationTransition =\n !isActivationSignal(prevState) && isActivationSignal(nextState);\n\n if (isInitialTransition || isActivationTransition) {\n this._measureResponderRegion();\n }\n\n if (isPressInSignal(prevState) && signal === 'LONG_PRESS_DETECTED') {\n const {onLongPress} = this._config;\n if (onLongPress != null) {\n onLongPress(event);\n }\n }\n\n const isPrevActive = isActiveSignal(prevState);\n const isNextActive = isActiveSignal(nextState);\n\n if (!isPrevActive && isNextActive) {\n this._activate(event);\n } else if (isPrevActive && !isNextActive) {\n this._deactivate(event);\n }\n\n if (isPressInSignal(prevState) && signal === 'RESPONDER_RELEASE') {\n // If we never activated (due to delays), activate and deactivate now.\n if (!isNextActive && !isPrevActive) {\n this._activate(event);\n this._deactivate(event);\n }\n const {onLongPress, onPress, android_disableSound} = this._config;\n if (onPress != null) {\n const isPressCanceledByLongPress =\n onLongPress != null &&\n prevState === 'RESPONDER_ACTIVE_LONG_PRESS_IN' &&\n this._shouldLongPressCancelPress();\n if (!isPressCanceledByLongPress) {\n if (Platform.OS === 'android' && android_disableSound !== true) {\n SoundManager.playTouchSound();\n }\n onPress(event);\n }\n }\n }\n\n this._cancelPressDelayTimeout();\n }\n\n _activate(event: PressEvent): void {\n const {onPressIn} = this._config;\n const {pageX, pageY} = getTouchFromPressEvent(event);\n this._touchActivatePosition = {pageX, pageY};\n this._touchActivateTime = Date.now();\n if (onPressIn != null) {\n onPressIn(event);\n }\n }\n\n _deactivate(event: PressEvent): void {\n const {onPressOut} = this._config;\n if (onPressOut != null) {\n const minPressDuration = normalizeDelay(\n this._config.minPressDuration,\n 0,\n DEFAULT_MIN_PRESS_DURATION,\n );\n const pressDuration = Date.now() - (this._touchActivateTime ?? 0);\n const delayPressOut = Math.max(\n minPressDuration - pressDuration,\n normalizeDelay(this._config.delayPressOut),\n );\n if (delayPressOut > 0) {\n event.persist();\n this._pressOutDelayTimeout = setTimeout(() => {\n onPressOut(event);\n }, delayPressOut);\n } else {\n onPressOut(event);\n }\n }\n this._touchActivateTime = null;\n }\n\n _measureResponderRegion(): void {\n if (this._responderID == null) {\n return;\n }\n\n if (typeof this._responderID === 'number') {\n UIManager.measure(this._responderID, this._measureCallback);\n } else {\n this._responderID.measure(this._measureCallback);\n }\n }\n\n _measureCallback = (\n left: number,\n top: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number,\n ) => {\n if (!left && !top && !width && !height && !pageX && !pageY) {\n return;\n }\n this._responderRegion = {\n bottom: pageY + height,\n left: pageX,\n right: pageX + width,\n top: pageY,\n };\n };\n\n _isTouchWithinResponderRegion(\n touch: $PropertyType,\n responderRegion: $ReadOnly<{|\n bottom: number,\n left: number,\n right: number,\n top: number,\n |}>,\n ): boolean {\n const hitSlop = normalizeRect(this._config.hitSlop);\n const pressRectOffset = normalizeRect(this._config.pressRectOffset);\n\n let regionBottom = responderRegion.bottom;\n let regionLeft = responderRegion.left;\n let regionRight = responderRegion.right;\n let regionTop = responderRegion.top;\n\n if (hitSlop != null) {\n if (hitSlop.bottom != null) {\n regionBottom += hitSlop.bottom;\n }\n if (hitSlop.left != null) {\n regionLeft -= hitSlop.left;\n }\n if (hitSlop.right != null) {\n regionRight += hitSlop.right;\n }\n if (hitSlop.top != null) {\n regionTop -= hitSlop.top;\n }\n }\n\n regionBottom +=\n pressRectOffset?.bottom ?? DEFAULT_PRESS_RECT_OFFSETS.bottom;\n regionLeft -= pressRectOffset?.left ?? DEFAULT_PRESS_RECT_OFFSETS.left;\n regionRight += pressRectOffset?.right ?? DEFAULT_PRESS_RECT_OFFSETS.right;\n regionTop -= pressRectOffset?.top ?? DEFAULT_PRESS_RECT_OFFSETS.top;\n\n return (\n touch.pageX > regionLeft &&\n touch.pageX < regionRight &&\n touch.pageY > regionTop &&\n touch.pageY < regionBottom\n );\n }\n\n _handleLongPress(event: PressEvent): void {\n if (\n this._touchState === 'RESPONDER_ACTIVE_PRESS_IN' ||\n this._touchState === 'RESPONDER_ACTIVE_LONG_PRESS_IN'\n ) {\n this._receiveSignal('LONG_PRESS_DETECTED', event);\n }\n }\n\n _shouldLongPressCancelPress(): boolean {\n return (\n this._config.onLongPressShouldCancelPress_DEPRECATED == null ||\n this._config.onLongPressShouldCancelPress_DEPRECATED()\n );\n }\n\n _cancelHoverInDelayTimeout(): void {\n if (this._hoverInDelayTimeout != null) {\n clearTimeout(this._hoverInDelayTimeout);\n this._hoverInDelayTimeout = null;\n }\n }\n\n _cancelHoverOutDelayTimeout(): void {\n if (this._hoverOutDelayTimeout != null) {\n clearTimeout(this._hoverOutDelayTimeout);\n this._hoverOutDelayTimeout = null;\n }\n }\n\n _cancelLongPressDelayTimeout(): void {\n if (this._longPressDelayTimeout != null) {\n clearTimeout(this._longPressDelayTimeout);\n this._longPressDelayTimeout = null;\n }\n }\n\n _cancelPressDelayTimeout(): void {\n if (this._pressDelayTimeout != null) {\n clearTimeout(this._pressDelayTimeout);\n this._pressDelayTimeout = null;\n }\n }\n\n _cancelPressOutDelayTimeout(): void {\n if (this._pressOutDelayTimeout != null) {\n clearTimeout(this._pressOutDelayTimeout);\n this._pressOutDelayTimeout = null;\n }\n }\n}\n\nfunction normalizeDelay(\n delay: ?number,\n min: number = 0,\n fallback: number = 0,\n): number {\n return Math.max(min, delay ?? fallback);\n}\n\nconst getTouchFromPressEvent = (event: PressEvent) => {\n const {changedTouches, touches} = event.nativeEvent;\n\n if (touches != null && touches.length > 0) {\n return touches[0];\n }\n if (changedTouches != null && changedTouches.length > 0) {\n return changedTouches[0];\n }\n return event.nativeEvent;\n};\n\nfunction convertPointerEventToMouseEvent(input: PointerEvent): MouseEvent {\n const {clientX, clientY} = input.nativeEvent;\n return {\n ...input,\n nativeEvent: {\n clientX,\n clientY,\n pageX: clientX,\n pageY: clientY,\n timestamp: input.timeStamp,\n },\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport NativeSoundManager from './NativeSoundManager';\n\nconst SoundManager = {\n playTouchSound: function (): void {\n if (NativeSoundManager) {\n NativeSoundManager.playTouchSound();\n }\n },\n};\n\nmodule.exports = SoundManager;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\n/**\n * Native Module used for playing sounds in native platform.\n */\nexport interface Spec extends TurboModule {\n +playTouchSound: () => void;\n}\n\nexport default (TurboModuleRegistry.get('SoundManager'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport {type PressabilityTouchSignal as TouchSignal} from './PressabilityTypes.js';\n\nexport type PressabilityPerformanceEvent = $ReadOnly<{|\n signal: TouchSignal,\n nativeTimestamp: number,\n|}>;\nexport type PressabilityPerformanceEventListener =\n PressabilityPerformanceEvent => void;\n\nclass PressabilityPerformanceEventEmitter {\n _listeners: Array = [];\n\n constructor() {}\n\n addListener(listener: PressabilityPerformanceEventListener): void {\n this._listeners.push(listener);\n }\n\n removeListener(listener: PressabilityPerformanceEventListener): void {\n const index = this._listeners.indexOf(listener);\n if (index > -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n emitEvent(constructEvent: () => PressabilityPerformanceEvent): void {\n if (this._listeners.length === 0) {\n return;\n }\n\n const event = constructEvent();\n this._listeners.forEach(listener => listener(event));\n }\n}\n\nconst PressabilityPerformanceEventEmitterSingleton: PressabilityPerformanceEventEmitter =\n new PressabilityPerformanceEventEmitter();\n\nexport default PressabilityPerformanceEventEmitterSingleton;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport Platform from '../Utilities/Platform';\n\nlet isEnabled = false;\n\nif (Platform.OS === 'web') {\n const canUseDOM = Boolean(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement,\n );\n\n if (canUseDOM) {\n /**\n * Web browsers emulate mouse events (and hover states) after touch events.\n * This code infers when the currently-in-use modality supports hover\n * (including for multi-modality devices) and considers \"hover\" to be enabled\n * if a mouse movement occurs more than 1 second after the last touch event.\n * This threshold is long enough to account for longer delays between the\n * browser firing touch and mouse events on low-powered devices.\n */\n const HOVER_THRESHOLD_MS = 1000;\n let lastTouchTimestamp = 0;\n\n const enableHover = () => {\n if (isEnabled || Date.now() - lastTouchTimestamp < HOVER_THRESHOLD_MS) {\n return;\n }\n isEnabled = true;\n };\n\n const disableHover = () => {\n lastTouchTimestamp = Date.now();\n if (isEnabled) {\n isEnabled = false;\n }\n };\n\n document.addEventListener('touchstart', disableHover, true);\n document.addEventListener('touchmove', disableHover, true);\n document.addEventListener('mousemove', enableHover, true);\n }\n}\n\nexport function isHoverEnabled(): boolean {\n return isEnabled;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nexport type Rect = $ReadOnly<{|\n bottom?: ?number,\n left?: ?number,\n right?: ?number,\n top?: ?number,\n|}>;\n\nexport type RectOrSize = Rect | number;\n\nexport function createSquare(size: number): Rect {\n return {bottom: size, left: size, right: size, top: size};\n}\n\nexport function normalizeRect(rectOrSize: ?RectOrSize): ?Rect {\n return typeof rectOrSize === 'number' ? createSquare(rectOrSize) : rectOrSize;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport {createViewConfig} from '../NativeComponent/ViewConfig';\nimport UIManager from '../ReactNative/UIManager';\nimport createReactNativeComponentClass from '../Renderer/shims/createReactNativeComponentClass';\nimport {type HostComponent} from '../Renderer/shims/ReactNativeTypes';\nimport {type ProcessedColorValue} from '../StyleSheet/processColor';\nimport {type PressEvent} from '../Types/CoreEventTypes';\nimport {type TextProps} from './TextProps';\n\ntype NativeTextProps = $ReadOnly<{\n ...TextProps,\n isHighlighted?: ?boolean,\n selectionColor?: ?ProcessedColorValue,\n onClick?: ?(event: PressEvent) => mixed,\n // This is only needed for platforms that optimize text hit testing, e.g.,\n // react-native-windows. It can be used to only hit test virtual text spans\n // that have pressable events attached to them.\n isPressable?: ?boolean,\n}>;\n\nconst textViewConfig = {\n validAttributes: {\n isHighlighted: true,\n isPressable: true,\n numberOfLines: true,\n ellipsizeMode: true,\n allowFontScaling: true,\n dynamicTypeRamp: true,\n maxFontSizeMultiplier: true,\n disabled: true,\n selectable: true,\n selectionColor: true,\n adjustsFontSizeToFit: true,\n minimumFontScale: true,\n textBreakStrategy: true,\n onTextLayout: true,\n onInlineViewLayout: true,\n dataDetectorType: true,\n android_hyphenationFrequency: true,\n lineBreakStrategyIOS: true,\n },\n directEventTypes: {\n topTextLayout: {\n registrationName: 'onTextLayout',\n },\n topInlineViewLayout: {\n registrationName: 'onInlineViewLayout',\n },\n },\n uiViewClassName: 'RCTText',\n};\n\nconst virtualTextViewConfig = {\n validAttributes: {\n isHighlighted: true,\n isPressable: true,\n maxFontSizeMultiplier: true,\n },\n uiViewClassName: 'RCTVirtualText',\n};\n\nexport const NativeText: HostComponent =\n (createReactNativeComponentClass('RCTText', () =>\n createViewConfig(textViewConfig),\n ): any);\n\nexport const NativeVirtualText: HostComponent =\n !global.RN$Bridgeless && !UIManager.hasViewManagerConfig('RCTVirtualText')\n ? NativeText\n : (createReactNativeComponentClass('RCTVirtualText', () =>\n createViewConfig(virtualTextViewConfig),\n ): any);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nmodule.exports = {\n get ColorPropType() {\n return require('./DeprecatedColorPropType');\n },\n get EdgeInsetsPropType() {\n return require('./DeprecatedEdgeInsetsPropType');\n },\n get ImagePropTypes() {\n return require('./DeprecatedImagePropType');\n },\n get PointPropType() {\n return require('./DeprecatedPointPropType');\n },\n get TextInputPropTypes() {\n return require('./DeprecatedTextInputPropTypes');\n },\n get TextPropTypes() {\n return require('./DeprecatedTextPropTypes');\n },\n get ViewPropTypes() {\n return require('./DeprecatedViewPropTypes');\n },\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst normalizeColor = require('@react-native/normalize-colors');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst colorPropType = function(\n isRequired,\n props,\n propName,\n componentName,\n location,\n propFullName,\n) {\n const color = props[propName];\n\n if (color == null) {\n if (isRequired) {\n return new Error(\n 'Required ' +\n location +\n ' `' +\n (propFullName || propName) +\n '` was not specified in `' +\n componentName +\n '`.',\n );\n }\n return;\n }\n\n if (typeof color === 'number') {\n // Developers should not use a number, but we are using the prop type\n // both for user provided colors and for transformed ones. This isn't ideal\n // and should be fixed but will do for now...\n return;\n }\n\n if (typeof color === 'string' && normalizeColor(color) === null) {\n return new Error(\n 'Invalid ' +\n location +\n ' `' +\n (propFullName || propName) +\n '` supplied to `' +\n componentName +\n '`: ' +\n color +\n '\\n' +\n `Valid color formats are\n - '#f0f' (#rgb)\n - '#f0fc' (#rgba)\n - '#ff00ff' (#rrggbb)\n - '#ff00ff00' (#rrggbbaa)\n - 'rgb(255, 255, 255)'\n - 'rgba(255, 255, 255, 1.0)'\n - 'hsl(360, 100%, 100%)'\n - 'hsla(360, 100%, 100%, 1.0)'\n - 'transparent'\n - 'red'\n - 0xff00ff00 (0xrrggbbaa)\n`,\n );\n }\n};\n\nconst ColorPropType = colorPropType.bind(null, false /* isRequired */);\nColorPropType.isRequired = colorPropType.bind(null, true /* isRequired */);\n\nmodule.exports = ColorPropType;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @noflow\n */\n\n/* eslint no-bitwise: 0 */\n\n'use strict';\n\nfunction normalizeColor(color) {\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color;\n }\n return null;\n }\n\n if (typeof color !== 'string') {\n return null;\n }\n\n const matchers = getMatchers();\n let match;\n\n // Ordered based on occurrences on Facebook codebase\n if ((match = matchers.hex6.exec(color))) {\n return parseInt(match[1] + 'ff', 16) >>> 0;\n }\n\n const colorFromKeyword = normalizeKeyword(color);\n if (colorFromKeyword != null) {\n return colorFromKeyword;\n }\n\n if ((match = matchers.rgb.exec(color))) {\n return (\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) | // b\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers.rgba.exec(color))) {\n // rgba(R G B / A) notation\n if (match[6] !== undefined) {\n return (\n ((parse255(match[6]) << 24) | // r\n (parse255(match[7]) << 16) | // g\n (parse255(match[8]) << 8) | // b\n parse1(match[9])) >>> // a\n 0\n );\n }\n\n // rgba(R, G, B, A) notation\n return (\n ((parse255(match[2]) << 24) | // r\n (parse255(match[3]) << 16) | // g\n (parse255(match[4]) << 8) | // b\n parse1(match[5])) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hex3.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n 'ff', // a\n 16,\n ) >>> 0\n );\n }\n\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = matchers.hex8.exec(color))) {\n return parseInt(match[1], 16) >>> 0;\n }\n\n if ((match = matchers.hex4.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n match[4] +\n match[4], // a\n 16,\n ) >>> 0\n );\n }\n\n if ((match = matchers.hsl.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]), // l\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hsla.exec(color))) {\n // hsla(H S L / A) notation\n if (match[6] !== undefined) {\n return (\n (hslToRgb(\n parse360(match[6]), // h\n parsePercentage(match[7]), // s\n parsePercentage(match[8]), // l\n ) |\n parse1(match[9])) >>> // a\n 0\n );\n }\n\n // hsla(H, S, L, A) notation\n return (\n (hslToRgb(\n parse360(match[2]), // h\n parsePercentage(match[3]), // s\n parsePercentage(match[4]), // l\n ) |\n parse1(match[5])) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hwb.exec(color))) {\n return (\n (hwbToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // w\n parsePercentage(match[3]), // b\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n return null;\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n\nfunction hslToRgb(h, s, l) {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n\n return (\n (Math.round(r * 255) << 24) |\n (Math.round(g * 255) << 16) |\n (Math.round(b * 255) << 8)\n );\n}\n\nfunction hwbToRgb(h, w, b) {\n if (w + b >= 1) {\n const gray = Math.round((w * 255) / (w + b));\n\n return (gray << 24) | (gray << 16) | (gray << 8);\n }\n\n const red = hue2rgb(0, 1, h + 1 / 3) * (1 - w - b) + w;\n const green = hue2rgb(0, 1, h) * (1 - w - b) + w;\n const blue = hue2rgb(0, 1, h - 1 / 3) * (1 - w - b) + w;\n\n return (\n (Math.round(red * 255) << 24) |\n (Math.round(green * 255) << 16) |\n (Math.round(blue * 255) << 8)\n );\n}\n\nconst NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nconst PERCENTAGE = NUMBER + '%';\n\nfunction call(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,?\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nfunction callWithSlashSeparator(...args) {\n return (\n '\\\\(\\\\s*(' +\n args.slice(0, args.length - 1).join(')\\\\s*,?\\\\s*(') +\n ')\\\\s*/\\\\s*(' +\n args[args.length - 1] +\n ')\\\\s*\\\\)'\n );\n}\n\nfunction commaSeparatedCall(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nlet cachedMatchers;\n\nfunction getMatchers() {\n if (cachedMatchers === undefined) {\n cachedMatchers = {\n rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)),\n rgba: new RegExp(\n 'rgba(' +\n commaSeparatedCall(NUMBER, NUMBER, NUMBER, NUMBER) +\n '|' +\n callWithSlashSeparator(NUMBER, NUMBER, NUMBER, NUMBER) +\n ')',\n ),\n hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hsla: new RegExp(\n 'hsla(' +\n commaSeparatedCall(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +\n '|' +\n callWithSlashSeparator(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +\n ')',\n ),\n hwb: new RegExp('hwb' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#([0-9a-fA-F]{6})$/,\n hex8: /^#([0-9a-fA-F]{8})$/,\n };\n }\n return cachedMatchers;\n}\n\nfunction parse255(str) {\n const int = parseInt(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 255) {\n return 255;\n }\n return int;\n}\n\nfunction parse360(str) {\n const int = parseFloat(str);\n return (((int % 360) + 360) % 360) / 360;\n}\n\nfunction parse1(str) {\n const num = parseFloat(str);\n if (num < 0) {\n return 0;\n }\n if (num > 1) {\n return 255;\n }\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n // parseFloat conveniently ignores the final %\n const int = parseFloat(str);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\n\nfunction normalizeKeyword(name) {\n // prettier-ignore\n switch (name) {\n case 'transparent': return 0x00000000;\n // http://www.w3.org/TR/css3-color/#svg-color\n case 'aliceblue': return 0xf0f8ffff;\n case 'antiquewhite': return 0xfaebd7ff;\n case 'aqua': return 0x00ffffff;\n case 'aquamarine': return 0x7fffd4ff;\n case 'azure': return 0xf0ffffff;\n case 'beige': return 0xf5f5dcff;\n case 'bisque': return 0xffe4c4ff;\n case 'black': return 0x000000ff;\n case 'blanchedalmond': return 0xffebcdff;\n case 'blue': return 0x0000ffff;\n case 'blueviolet': return 0x8a2be2ff;\n case 'brown': return 0xa52a2aff;\n case 'burlywood': return 0xdeb887ff;\n case 'burntsienna': return 0xea7e5dff;\n case 'cadetblue': return 0x5f9ea0ff;\n case 'chartreuse': return 0x7fff00ff;\n case 'chocolate': return 0xd2691eff;\n case 'coral': return 0xff7f50ff;\n case 'cornflowerblue': return 0x6495edff;\n case 'cornsilk': return 0xfff8dcff;\n case 'crimson': return 0xdc143cff;\n case 'cyan': return 0x00ffffff;\n case 'darkblue': return 0x00008bff;\n case 'darkcyan': return 0x008b8bff;\n case 'darkgoldenrod': return 0xb8860bff;\n case 'darkgray': return 0xa9a9a9ff;\n case 'darkgreen': return 0x006400ff;\n case 'darkgrey': return 0xa9a9a9ff;\n case 'darkkhaki': return 0xbdb76bff;\n case 'darkmagenta': return 0x8b008bff;\n case 'darkolivegreen': return 0x556b2fff;\n case 'darkorange': return 0xff8c00ff;\n case 'darkorchid': return 0x9932ccff;\n case 'darkred': return 0x8b0000ff;\n case 'darksalmon': return 0xe9967aff;\n case 'darkseagreen': return 0x8fbc8fff;\n case 'darkslateblue': return 0x483d8bff;\n case 'darkslategray': return 0x2f4f4fff;\n case 'darkslategrey': return 0x2f4f4fff;\n case 'darkturquoise': return 0x00ced1ff;\n case 'darkviolet': return 0x9400d3ff;\n case 'deeppink': return 0xff1493ff;\n case 'deepskyblue': return 0x00bfffff;\n case 'dimgray': return 0x696969ff;\n case 'dimgrey': return 0x696969ff;\n case 'dodgerblue': return 0x1e90ffff;\n case 'firebrick': return 0xb22222ff;\n case 'floralwhite': return 0xfffaf0ff;\n case 'forestgreen': return 0x228b22ff;\n case 'fuchsia': return 0xff00ffff;\n case 'gainsboro': return 0xdcdcdcff;\n case 'ghostwhite': return 0xf8f8ffff;\n case 'gold': return 0xffd700ff;\n case 'goldenrod': return 0xdaa520ff;\n case 'gray': return 0x808080ff;\n case 'green': return 0x008000ff;\n case 'greenyellow': return 0xadff2fff;\n case 'grey': return 0x808080ff;\n case 'honeydew': return 0xf0fff0ff;\n case 'hotpink': return 0xff69b4ff;\n case 'indianred': return 0xcd5c5cff;\n case 'indigo': return 0x4b0082ff;\n case 'ivory': return 0xfffff0ff;\n case 'khaki': return 0xf0e68cff;\n case 'lavender': return 0xe6e6faff;\n case 'lavenderblush': return 0xfff0f5ff;\n case 'lawngreen': return 0x7cfc00ff;\n case 'lemonchiffon': return 0xfffacdff;\n case 'lightblue': return 0xadd8e6ff;\n case 'lightcoral': return 0xf08080ff;\n case 'lightcyan': return 0xe0ffffff;\n case 'lightgoldenrodyellow': return 0xfafad2ff;\n case 'lightgray': return 0xd3d3d3ff;\n case 'lightgreen': return 0x90ee90ff;\n case 'lightgrey': return 0xd3d3d3ff;\n case 'lightpink': return 0xffb6c1ff;\n case 'lightsalmon': return 0xffa07aff;\n case 'lightseagreen': return 0x20b2aaff;\n case 'lightskyblue': return 0x87cefaff;\n case 'lightslategray': return 0x778899ff;\n case 'lightslategrey': return 0x778899ff;\n case 'lightsteelblue': return 0xb0c4deff;\n case 'lightyellow': return 0xffffe0ff;\n case 'lime': return 0x00ff00ff;\n case 'limegreen': return 0x32cd32ff;\n case 'linen': return 0xfaf0e6ff;\n case 'magenta': return 0xff00ffff;\n case 'maroon': return 0x800000ff;\n case 'mediumaquamarine': return 0x66cdaaff;\n case 'mediumblue': return 0x0000cdff;\n case 'mediumorchid': return 0xba55d3ff;\n case 'mediumpurple': return 0x9370dbff;\n case 'mediumseagreen': return 0x3cb371ff;\n case 'mediumslateblue': return 0x7b68eeff;\n case 'mediumspringgreen': return 0x00fa9aff;\n case 'mediumturquoise': return 0x48d1ccff;\n case 'mediumvioletred': return 0xc71585ff;\n case 'midnightblue': return 0x191970ff;\n case 'mintcream': return 0xf5fffaff;\n case 'mistyrose': return 0xffe4e1ff;\n case 'moccasin': return 0xffe4b5ff;\n case 'navajowhite': return 0xffdeadff;\n case 'navy': return 0x000080ff;\n case 'oldlace': return 0xfdf5e6ff;\n case 'olive': return 0x808000ff;\n case 'olivedrab': return 0x6b8e23ff;\n case 'orange': return 0xffa500ff;\n case 'orangered': return 0xff4500ff;\n case 'orchid': return 0xda70d6ff;\n case 'palegoldenrod': return 0xeee8aaff;\n case 'palegreen': return 0x98fb98ff;\n case 'paleturquoise': return 0xafeeeeff;\n case 'palevioletred': return 0xdb7093ff;\n case 'papayawhip': return 0xffefd5ff;\n case 'peachpuff': return 0xffdab9ff;\n case 'peru': return 0xcd853fff;\n case 'pink': return 0xffc0cbff;\n case 'plum': return 0xdda0ddff;\n case 'powderblue': return 0xb0e0e6ff;\n case 'purple': return 0x800080ff;\n case 'rebeccapurple': return 0x663399ff;\n case 'red': return 0xff0000ff;\n case 'rosybrown': return 0xbc8f8fff;\n case 'royalblue': return 0x4169e1ff;\n case 'saddlebrown': return 0x8b4513ff;\n case 'salmon': return 0xfa8072ff;\n case 'sandybrown': return 0xf4a460ff;\n case 'seagreen': return 0x2e8b57ff;\n case 'seashell': return 0xfff5eeff;\n case 'sienna': return 0xa0522dff;\n case 'silver': return 0xc0c0c0ff;\n case 'skyblue': return 0x87ceebff;\n case 'slateblue': return 0x6a5acdff;\n case 'slategray': return 0x708090ff;\n case 'slategrey': return 0x708090ff;\n case 'snow': return 0xfffafaff;\n case 'springgreen': return 0x00ff7fff;\n case 'steelblue': return 0x4682b4ff;\n case 'tan': return 0xd2b48cff;\n case 'teal': return 0x008080ff;\n case 'thistle': return 0xd8bfd8ff;\n case 'tomato': return 0xff6347ff;\n case 'turquoise': return 0x40e0d0ff;\n case 'violet': return 0xee82eeff;\n case 'wheat': return 0xf5deb3ff;\n case 'white': return 0xffffffff;\n case 'whitesmoke': return 0xf5f5f5ff;\n case 'yellow': return 0xffff00ff;\n case 'yellowgreen': return 0x9acd32ff;\n }\n return null;\n}\n\nmodule.exports = normalizeColor;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/Rect.js\n */\nconst DeprecatedEdgeInsetsPropType = PropTypes.shape({\n bottom: PropTypes.number,\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n});\n\nmodule.exports = DeprecatedEdgeInsetsPropType;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst DeprecatedEdgeInsetsPropType = require('./DeprecatedEdgeInsetsPropType');\nconst DeprecatedImageSourcePropType = require('./DeprecatedImageSourcePropType');\nconst DeprecatedImageStylePropTypes = require('./DeprecatedImageStylePropTypes');\nconst DeprecatedStyleSheetPropType = require('./DeprecatedStyleSheetPropType');\nconst DeprecatedViewPropTypes = require('./DeprecatedViewPropTypes');\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/Image/ImageProps.js\n */\nconst DeprecatedImagePropType = {\n ...DeprecatedViewPropTypes,\n alt: PropTypes.string,\n blurRadius: PropTypes.number,\n capInsets: DeprecatedEdgeInsetsPropType,\n crossOrigin: PropTypes.oneOf(['anonymous', 'use-credentials']),\n defaultSource: DeprecatedImageSourcePropType,\n fadeDuration: PropTypes.number,\n height: PropTypes.number,\n internal_analyticTag: PropTypes.string,\n loadingIndicatorSource: PropTypes.oneOfType([\n PropTypes.shape({\n uri: PropTypes.string,\n }),\n PropTypes.number,\n ]),\n onError: PropTypes.func,\n onLoad: PropTypes.func,\n onLoadEnd: PropTypes.func,\n onLoadStart: PropTypes.func,\n onPartialLoad: PropTypes.func,\n onProgress: PropTypes.func,\n progressiveRenderingEnabled: PropTypes.bool,\n referrerPolicy: PropTypes.oneOf([\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'origin',\n 'origin-when-cross-origin',\n 'same-origin',\n 'strict-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url',\n ]),\n resizeMethod: PropTypes.oneOf(['auto', 'resize', 'scale']),\n resizeMode: PropTypes.oneOf([\n 'cover',\n 'contain',\n 'stretch',\n 'repeat',\n 'center',\n ]),\n source: DeprecatedImageSourcePropType,\n src: PropTypes.string,\n srcSet: PropTypes.string,\n style: DeprecatedStyleSheetPropType(DeprecatedImageStylePropTypes),\n testID: PropTypes.string,\n tintColor: DeprecatedColorPropType,\n width: PropTypes.number,\n};\n\nmodule.exports = DeprecatedImagePropType;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst DeprecatedEdgeInsetsPropType = require('./DeprecatedEdgeInsetsPropType');\nconst DeprecatedStyleSheetPropType = require('./DeprecatedStyleSheetPropType');\nconst {\n AccessibilityActionInfoPropType,\n AccessibilityRolePropType,\n AccessibilityStatePropType,\n AccessibilityValuePropType,\n RolePropType,\n} = require('./DeprecatedViewAccessibility');\nconst DeprecatedViewStylePropTypes = require('./DeprecatedViewStylePropTypes');\nconst PropTypes = require('prop-types');\n\nconst MouseEventPropTypes = {\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n};\n\n// Experimental/Work in Progress Pointer Event Callbacks (not yet ready for use)\nconst PointerEventPropTypes = {\n onPointerEnter: PropTypes.func,\n onPointerEnterCapture: PropTypes.func,\n onPointerLeave: PropTypes.func,\n onPointerLeaveCapture: PropTypes.func,\n onPointerMove: PropTypes.func,\n onPointerMoveCapture: PropTypes.func,\n onPointerCancel: PropTypes.func,\n onPointerCancelCapture: PropTypes.func,\n onPointerDown: PropTypes.func,\n onPointerDownCapture: PropTypes.func,\n onPointerUp: PropTypes.func,\n onPointerUpCapture: PropTypes.func,\n onPointerOver: PropTypes.func,\n onPointerOverCapture: PropTypes.func,\n onPointerOut: PropTypes.func,\n onPointerOutCapture: PropTypes.func,\n};\n\nconst FocusEventPropTypes = {\n onBlur: PropTypes.func,\n onBlurCapture: PropTypes.func,\n onFocus: PropTypes.func,\n onFocusCapture: PropTypes.func,\n};\n\nconst TouchEventPropTypes = {\n onTouchCancel: PropTypes.func,\n onTouchCancelCapture: PropTypes.func,\n onTouchEnd: PropTypes.func,\n onTouchEndCapture: PropTypes.func,\n onTouchMove: PropTypes.func,\n onTouchMoveCapture: PropTypes.func,\n onTouchStart: PropTypes.func,\n onTouchStartCapture: PropTypes.func,\n};\n\nconst GestureResponderEventPropTypes = {\n onMoveShouldSetResponder: PropTypes.func,\n onMoveShouldSetResponderCapture: PropTypes.func,\n onResponderEnd: PropTypes.func,\n onResponderGrant: PropTypes.func,\n onResponderMove: PropTypes.func,\n onResponderReject: PropTypes.func,\n onResponderRelease: PropTypes.func,\n onResponderStart: PropTypes.func,\n onResponderTerminate: PropTypes.func,\n onResponderTerminationRequest: PropTypes.func,\n onStartShouldSetResponder: PropTypes.func,\n onStartShouldSetResponderCapture: PropTypes.func,\n};\n\n/**\n * @see facebook/react-native/Libraries/Components/View/ViewPropTypes.js\n */\nconst DeprecatedViewPropTypes = {\n ...MouseEventPropTypes,\n ...PointerEventPropTypes,\n ...FocusEventPropTypes,\n ...TouchEventPropTypes,\n ...GestureResponderEventPropTypes,\n 'aria-busy': PropTypes.bool,\n 'aria-checked': PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.oneOf(['mixed']),\n ]),\n 'aria-disabled': PropTypes.bool,\n 'aria-expanded': PropTypes.bool,\n 'aria-hidden': PropTypes.bool,\n 'aria-label': PropTypes.string,\n 'aria-labelledby': PropTypes.string,\n 'aria-live': PropTypes.oneOf(['polite', 'assertive', 'off']),\n 'aria-modal': PropTypes.bool,\n 'aria-selected': PropTypes.bool,\n 'aria-valuemax': PropTypes.number,\n 'aria-valuemin': PropTypes.number,\n 'aria-valuenow': PropTypes.number,\n 'aria-valuetext': PropTypes.string,\n accessibilityActions: PropTypes.arrayOf(AccessibilityActionInfoPropType),\n accessibilityElementsHidden: PropTypes.bool,\n accessibilityHint: PropTypes.string,\n accessibilityIgnoresInvertColors: PropTypes.bool,\n accessibilityLabel: PropTypes.node,\n accessibilityLabelledBy: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n accessibilityLanguage: PropTypes.string,\n accessibilityLiveRegion: PropTypes.oneOf(['assertive', 'none', 'polite']),\n accessibilityRole: AccessibilityRolePropType,\n accessibilityState: AccessibilityStatePropType,\n accessibilityValue: AccessibilityValuePropType,\n accessibilityViewIsModal: PropTypes.bool,\n accessible: PropTypes.bool,\n collapsable: PropTypes.bool,\n focusable: PropTypes.bool,\n hitSlop: PropTypes.oneOfType([\n DeprecatedEdgeInsetsPropType,\n PropTypes.number,\n ]),\n importantForAccessibility: PropTypes.oneOf([\n 'auto',\n 'no',\n 'no-hide-descendants',\n 'yes',\n ]),\n nativeBackgroundAndroid: PropTypes.object,\n nativeForegroundAndroid: PropTypes.object,\n nativeID: PropTypes.string,\n needsOffscreenAlphaCompositing: PropTypes.bool,\n onAccessibilityAction: PropTypes.func,\n onAccessibilityEscape: PropTypes.func,\n onAccessibilityTap: PropTypes.func,\n onClick: PropTypes.func,\n onLayout: PropTypes.func,\n onMagicTap: PropTypes.func,\n pointerEvents: PropTypes.oneOf(['auto', 'box-none', 'box-only', 'none']),\n removeClippedSubviews: PropTypes.bool,\n renderToHardwareTextureAndroid: PropTypes.bool,\n role: RolePropType,\n shouldRasterizeIOS: PropTypes.bool,\n style: DeprecatedStyleSheetPropType(DeprecatedViewStylePropTypes),\n tabIndex: PropTypes.oneOf([0, -1]),\n testID: PropTypes.string,\n};\n\nmodule.exports = DeprecatedViewPropTypes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/Components/View/ViewAccessibility.js\n */\nconst DeprecatedViewAccessibility = {\n AccessibilityRolePropType: PropTypes.oneOf([\n 'adjustable',\n 'alert',\n 'button',\n 'checkbox',\n 'combobox',\n 'drawerlayout',\n 'dropdownlist',\n 'grid',\n 'header',\n 'horizontalscrollview',\n 'iconmenu',\n 'image',\n 'imagebutton',\n 'keyboardkey',\n 'link',\n 'list',\n 'menu',\n 'menubar',\n 'menuitem',\n 'none',\n 'pager',\n 'progressbar',\n 'radio',\n 'radiogroup',\n 'scrollbar',\n 'scrollview',\n 'search',\n 'slidingdrawer',\n 'spinbutton',\n 'summary',\n 'switch',\n 'tab',\n 'tabbar',\n 'tablist',\n 'text',\n 'timer',\n 'togglebutton',\n 'toolbar',\n 'viewgroup',\n 'webview',\n ]),\n AccessibilityStatePropType: PropTypes.object,\n AccessibilityActionInfoPropType: PropTypes.object,\n AccessibilityValuePropType: PropTypes.object,\n RolePropType: PropTypes.oneOf([\n 'alert',\n 'alertdialog',\n 'application',\n 'article',\n 'banner',\n 'button',\n 'cell',\n 'checkbox',\n 'columnheader',\n 'combobox',\n 'complementary',\n 'contentinfo',\n 'definition',\n 'dialog',\n 'directory',\n 'document',\n 'feed',\n 'figure',\n 'form',\n 'grid',\n 'group',\n 'heading',\n 'img',\n 'link',\n 'list',\n 'listitem',\n 'log',\n 'main',\n 'marquee',\n 'math',\n 'menu',\n 'menubar',\n 'menuitem',\n 'meter',\n 'navigation',\n 'none',\n 'note',\n 'option',\n 'presentation',\n 'progressbar',\n 'radio',\n 'radiogroup',\n 'region',\n 'row',\n 'rowgroup',\n 'rowheader',\n 'scrollbar',\n 'searchbox',\n 'separator',\n 'slider',\n 'spinbutton',\n 'status',\n 'summary',\n 'switch',\n 'tab',\n 'table',\n 'tablist',\n 'tabpanel',\n 'term',\n 'timer',\n 'toolbar',\n 'tooltip',\n 'tree',\n 'treegrid',\n 'treeitem',\n ]),\n};\n\nmodule.exports = DeprecatedViewAccessibility;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst deprecatedCreateStrictShapeTypeChecker = require('./deprecatedCreateStrictShapeTypeChecker');\n\nfunction DeprecatedStyleSheetPropType(shape) {\n const shapePropType = deprecatedCreateStrictShapeTypeChecker(shape);\n return function(props, propName, componentName, location, ...rest) {\n let newProps = props;\n if (props[propName]) {\n // Just make a dummy prop object with only the flattened style\n newProps = {};\n newProps[propName] = flattenStyle(props[propName]);\n }\n return shapePropType(newProps, propName, componentName, location, ...rest);\n };\n}\n\nfunction flattenStyle(style) {\n if (style === null || typeof style !== 'object') {\n return undefined;\n }\n\n if (!Array.isArray(style)) {\n return style;\n }\n\n const result = {};\n for (let i = 0, styleLength = style.length; i < styleLength; ++i) {\n const computedStyle = flattenStyle(style[i]);\n if (computedStyle) {\n for (const key in computedStyle) {\n result[key] = computedStyle[key];\n }\n }\n }\n return result;\n}\n\nmodule.exports = DeprecatedStyleSheetPropType;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst invariant = require('invariant');\n\nfunction deprecatedCreateStrictShapeTypeChecker(shapeTypes) {\n function checkType(\n isRequired,\n props,\n propName,\n componentName,\n location,\n ...rest\n ) {\n if (!props[propName]) {\n if (isRequired) {\n invariant(\n false,\n `Required object \\`${propName}\\` was not specified in ` +\n `\\`${componentName}\\`.`,\n );\n }\n return;\n }\n const propValue = props[propName];\n const propType = typeof propValue;\n const locationName = location || '(unknown)';\n if (propType !== 'object') {\n invariant(\n false,\n `Invalid ${locationName} \\`${propName}\\` of type \\`${propType}\\` ` +\n `supplied to \\`${componentName}\\`, expected \\`object\\`.`,\n );\n }\n // We need to check all keys in case some are required but missing from\n // props.\n const allKeys = {...props[propName], ...shapeTypes};\n for (const key in allKeys) {\n const checker = shapeTypes[key];\n if (!checker) {\n invariant(\n false,\n `Invalid props.${propName} key \\`${key}\\` supplied to \\`${componentName}\\`.` +\n '\\nBad object: ' +\n JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' +\n JSON.stringify(Object.keys(shapeTypes), null, ' '),\n );\n }\n const error = checker(propValue, key, componentName, location, ...rest);\n if (error) {\n invariant(\n false,\n error.message +\n '\\nBad object: ' +\n JSON.stringify(props[propName], null, ' '),\n );\n }\n }\n }\n function chainedCheckType(props, propName, componentName, location, ...rest) {\n return checkType(false, props, propName, componentName, location, ...rest);\n }\n chainedCheckType.isRequired = checkType.bind(null, true);\n return chainedCheckType;\n}\n\nmodule.exports = deprecatedCreateStrictShapeTypeChecker;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst DeprecatedLayoutPropTypes = require('./DeprecatedLayoutPropTypes');\nconst DeprecatedShadowPropTypesIOS = require('./DeprecatedShadowPropTypesIOS');\nconst DeprecatedTransformPropTypes = require('./DeprecatedTransformPropTypes');\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst DeprecatedViewStylePropTypes = {\n ...DeprecatedLayoutPropTypes,\n ...DeprecatedShadowPropTypesIOS,\n ...DeprecatedTransformPropTypes,\n backfaceVisibility: PropTypes.oneOf(['hidden', 'visible']),\n backgroundColor: DeprecatedColorPropType,\n borderBottomColor: DeprecatedColorPropType,\n borderBottomEndRadius: PropTypes.number,\n borderBottomLeftRadius: PropTypes.number,\n borderBottomRightRadius: PropTypes.number,\n borderBottomStartRadius: PropTypes.number,\n borderBottomWidth: PropTypes.number,\n borderColor: DeprecatedColorPropType,\n borderCurve: PropTypes.oneOf(['circular', 'continuous']),\n borderEndColor: DeprecatedColorPropType,\n borderEndEndRadius: PropTypes.number,\n borderEndStartRadius: PropTypes.number,\n borderLeftColor: DeprecatedColorPropType,\n borderLeftWidth: PropTypes.number,\n borderRadius: PropTypes.number,\n borderRightColor: DeprecatedColorPropType,\n borderRightWidth: PropTypes.number,\n borderStartColor: DeprecatedColorPropType,\n borderStartEndRadius: PropTypes.number,\n borderStartStartRadius: PropTypes.number,\n borderStyle: PropTypes.oneOf(['dashed', 'dotted', 'solid']),\n borderTopColor: DeprecatedColorPropType,\n borderTopEndRadius: PropTypes.number,\n borderTopLeftRadius: PropTypes.number,\n borderTopRightRadius: PropTypes.number,\n borderTopStartRadius: PropTypes.number,\n borderTopWidth: PropTypes.number,\n borderWidth: PropTypes.number,\n elevation: PropTypes.number,\n opacity: PropTypes.number,\n pointerEvents: PropTypes.oneOf(['auto', 'box-none', 'box-only', 'none']),\n};\n\nmodule.exports = DeprecatedViewStylePropTypes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst PropTypes = require('prop-types');\n\nconst DimensionValuePropType = PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n]);\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst DeprecatedLayoutPropTypes = {\n alignContent: PropTypes.oneOf([\n 'center',\n 'flex-end',\n 'flex-start',\n 'space-around',\n 'space-between',\n 'stretch',\n ]),\n alignItems: PropTypes.oneOf([\n 'baseline',\n 'center',\n 'flex-end',\n 'flex-start',\n 'stretch',\n ]),\n alignSelf: PropTypes.oneOf([\n 'auto',\n 'baseline',\n 'center',\n 'flex-end',\n 'flex-start',\n 'stretch',\n ]),\n aspectRatio: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n borderBottomWidth: PropTypes.number,\n borderEndWidth: PropTypes.number,\n borderLeftWidth: PropTypes.number,\n borderRightWidth: PropTypes.number,\n borderStartWidth: PropTypes.number,\n borderTopWidth: PropTypes.number,\n borderWidth: PropTypes.number,\n bottom: DimensionValuePropType,\n columnGap: PropTypes.number,\n direction: PropTypes.oneOf(['inherit', 'ltr', 'rtl']),\n display: PropTypes.oneOf(['flex', 'none']),\n end: DimensionValuePropType,\n flex: PropTypes.number,\n flexBasis: DimensionValuePropType,\n flexDirection: PropTypes.oneOf([\n 'column',\n 'column-reverse',\n 'row',\n 'row-reverse',\n ]),\n flexGrow: PropTypes.number,\n flexShrink: PropTypes.number,\n flexWrap: PropTypes.oneOf(['nowrap', 'wrap', 'wrap-reverse']),\n gap: PropTypes.number,\n height: DimensionValuePropType,\n inset: DimensionValuePropType,\n insetBlock: DimensionValuePropType,\n insetBlockEnd: DimensionValuePropType,\n insetBlockStart: DimensionValuePropType,\n insetInline: DimensionValuePropType,\n insetInlineEnd: DimensionValuePropType,\n insetInlineStart: DimensionValuePropType,\n justifyContent: PropTypes.oneOf([\n 'center',\n 'flex-end',\n 'flex-start',\n 'space-around',\n 'space-between',\n 'space-evenly',\n ]),\n left: DimensionValuePropType,\n margin: DimensionValuePropType,\n marginBlock: DimensionValuePropType,\n marginBlockEnd: DimensionValuePropType,\n marginBlockStart: DimensionValuePropType,\n marginBottom: DimensionValuePropType,\n marginEnd: DimensionValuePropType,\n marginHorizontal: DimensionValuePropType,\n marginInline: DimensionValuePropType,\n marginInlineEnd: DimensionValuePropType,\n marginInlineStart: DimensionValuePropType,\n marginLeft: DimensionValuePropType,\n marginRight: DimensionValuePropType,\n marginStart: DimensionValuePropType,\n marginTop: DimensionValuePropType,\n marginVertical: DimensionValuePropType,\n maxHeight: DimensionValuePropType,\n maxWidth: DimensionValuePropType,\n minHeight: DimensionValuePropType,\n minWidth: DimensionValuePropType,\n overflow: PropTypes.oneOf(['hidden', 'scroll', 'visible']),\n padding: DimensionValuePropType,\n paddingBlock: DimensionValuePropType,\n paddingBlockEnd: DimensionValuePropType,\n paddingBlockStart: DimensionValuePropType,\n paddingBottom: DimensionValuePropType,\n paddingEnd: DimensionValuePropType,\n paddingHorizontal: DimensionValuePropType,\n paddingInline: DimensionValuePropType,\n paddingInlineEnd: DimensionValuePropType,\n paddingInlineStart: DimensionValuePropType,\n paddingLeft: DimensionValuePropType,\n paddingRight: DimensionValuePropType,\n paddingStart: DimensionValuePropType,\n paddingTop: DimensionValuePropType,\n paddingVertical: DimensionValuePropType,\n position: PropTypes.oneOf(['absolute', 'relative']),\n right: DimensionValuePropType,\n rowGap: PropTypes.number,\n start: DimensionValuePropType,\n top: DimensionValuePropType,\n width: DimensionValuePropType,\n zIndex: PropTypes.number,\n};\n\nmodule.exports = DeprecatedLayoutPropTypes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst DeprecatedShadowPropTypesIOS = {\n shadowColor: DeprecatedColorPropType,\n shadowOffset: PropTypes.shape({\n height: PropTypes.number,\n width: PropTypes.number,\n }),\n shadowOpacity: PropTypes.number,\n shadowRadius: PropTypes.number,\n};\n\nmodule.exports = DeprecatedShadowPropTypesIOS;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/private/_TransformStyle.js\n */\nconst DeprecatedTransformPropTypes = {\n transform: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.shape({perspective: PropTypes.number}),\n PropTypes.shape({rotate: PropTypes.string}),\n PropTypes.shape({rotateX: PropTypes.string}),\n PropTypes.shape({rotateY: PropTypes.string}),\n PropTypes.shape({rotateZ: PropTypes.string}),\n PropTypes.shape({scale: PropTypes.number}),\n PropTypes.shape({scaleX: PropTypes.number}),\n PropTypes.shape({scaleY: PropTypes.number}),\n PropTypes.shape({skewX: PropTypes.string}),\n PropTypes.shape({skewY: PropTypes.string}),\n PropTypes.shape({translateX: PropTypes.number}),\n PropTypes.shape({translateY: PropTypes.number}),\n ]),\n ),\n};\n\nmodule.exports = DeprecatedTransformPropTypes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/Image/ImageSource.js\n */\nconst ImageURISourcePropType = PropTypes.shape({\n body: PropTypes.string,\n bundle: PropTypes.string,\n cache: PropTypes.oneOf([\n 'default',\n 'force-cache',\n 'only-if-cached',\n 'reload',\n ]),\n headers: PropTypes.objectOf(PropTypes.string),\n height: PropTypes.number,\n method: PropTypes.string,\n scale: PropTypes.number,\n uri: PropTypes.string,\n width: PropTypes.number,\n});\n\nconst ImageSourcePropType = PropTypes.oneOfType([\n ImageURISourcePropType,\n PropTypes.number,\n PropTypes.arrayOf(ImageURISourcePropType),\n]);\n\nmodule.exports = ImageSourcePropType;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst DeprecatedLayoutPropTypes = require('./DeprecatedLayoutPropTypes');\nconst DeprecatedShadowPropTypesIOS = require('./DeprecatedShadowPropTypesIOS');\nconst DeprecatedTransformPropTypes = require('./DeprecatedTransformPropTypes');\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst DeprecatedImageStylePropTypes = {\n ...DeprecatedLayoutPropTypes,\n ...DeprecatedShadowPropTypesIOS,\n ...DeprecatedTransformPropTypes,\n backfaceVisibility: PropTypes.oneOf(['hidden', 'visible']),\n backgroundColor: DeprecatedColorPropType,\n borderBottomLeftRadius: PropTypes.number,\n borderBottomRightRadius: PropTypes.number,\n borderColor: DeprecatedColorPropType,\n borderRadius: PropTypes.number,\n borderTopLeftRadius: PropTypes.number,\n borderTopRightRadius: PropTypes.number,\n borderWidth: PropTypes.number,\n objectFit: PropTypes.oneOf(['contain', 'cover', 'fill', 'scale-down']),\n opacity: PropTypes.number,\n overflow: PropTypes.oneOf(['hidden', 'visible']),\n overlayColor: PropTypes.string,\n tintColor: DeprecatedColorPropType,\n resizeMode: PropTypes.oneOf([\n 'center',\n 'contain',\n 'cover',\n 'repeat',\n 'stretch',\n ]),\n};\n\nmodule.exports = DeprecatedImageStylePropTypes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst PointPropType = PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n});\n\nmodule.exports = PointPropType;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst DeprecatedTextPropTypes = require('./DeprecatedTextPropTypes');\nconst DeprecatedViewPropTypes = require('./DeprecatedViewPropTypes');\nconst PropTypes = require('prop-types');\n\nconst DataDetectorTypes = [\n 'address',\n 'all',\n 'calendarEvent',\n 'link',\n 'none',\n 'phoneNumber',\n];\n\n/**\n * @see facebook/react-native/Libraries/TextInput/TextInput.js\n */\nconst DeprecatedTextInputPropTypes = {\n ...DeprecatedViewPropTypes,\n allowFontScaling: PropTypes.bool,\n autoCapitalize: PropTypes.oneOf(['none', 'sentences', 'words', 'characters']),\n autoComplete: PropTypes.oneOf([\n 'additional-name',\n 'address-line1',\n 'address-line2',\n 'bday',\n 'bday-day',\n 'bday-month',\n 'bday-year',\n 'birthdate-day',\n 'birthdate-full',\n 'birthdate-month',\n 'birthdate-year',\n 'cc-csc',\n 'cc-exp',\n 'cc-exp-day',\n 'cc-exp-month',\n 'cc-exp-year',\n 'cc-number',\n 'country',\n 'current-password',\n 'email',\n 'family-name',\n 'gender',\n 'given-name',\n 'honorific-prefix',\n 'honorific-suffix',\n 'name',\n 'name-family',\n 'name-given',\n 'name-middle',\n 'name-middle-initial',\n 'name-prefix',\n 'name-suffix',\n 'new-password',\n 'nickname',\n 'off',\n 'one-time-code',\n 'organization',\n 'organization-title',\n 'password',\n 'password-new',\n 'postal-address',\n 'postal-address-country',\n 'postal-address-extended',\n 'postal-address-extended-postal-code',\n 'postal-address-locality',\n 'postal-address-region',\n 'postal-code',\n 'sex',\n 'sms-otp',\n 'street-address',\n 'tel',\n 'tel-country-code',\n 'tel-device',\n 'tel-national',\n 'url',\n 'username',\n 'username-new',\n ]),\n autoCorrect: PropTypes.bool,\n autoFocus: PropTypes.bool,\n blurOnSubmit: PropTypes.bool,\n caretHidden: PropTypes.bool,\n clearButtonMode: PropTypes.oneOf([\n 'always',\n 'never',\n 'unless-editing',\n 'while-editing',\n ]),\n clearTextOnFocus: PropTypes.bool,\n cursorColor: DeprecatedColorPropType,\n contextMenuHidden: PropTypes.bool,\n dataDetectorTypes: PropTypes.oneOfType([\n PropTypes.oneOf(DataDetectorTypes),\n PropTypes.arrayOf(PropTypes.oneOf(DataDetectorTypes)),\n ]),\n defaultValue: PropTypes.string,\n disableFullscreenUI: PropTypes.bool,\n editable: PropTypes.bool,\n enablesReturnKeyAutomatically: PropTypes.bool,\n enterKeyHint: PropTypes.oneOf([\n 'done',\n 'enter',\n 'go',\n 'next',\n 'previous',\n 'search',\n 'send',\n ]),\n inlineImageLeft: PropTypes.string,\n inlineImagePadding: PropTypes.number,\n inputAccessoryViewID: PropTypes.string,\n inputMode: PropTypes.oneOf([\n 'decimal',\n 'email',\n 'none',\n 'numeric',\n 'search',\n 'tel',\n 'text',\n 'url',\n ]),\n keyboardAppearance: PropTypes.oneOf(['default', 'dark', 'light']),\n keyboardType: PropTypes.oneOf([\n 'ascii-capable',\n 'ascii-capable-number-pad',\n 'decimal-pad',\n 'default',\n 'email-address',\n 'name-phone-pad',\n 'number-pad',\n 'numbers-and-punctuation',\n 'numeric',\n 'phone-pad',\n 'twitter',\n 'url',\n 'visible-password',\n 'web-search',\n ]),\n lineBreakStrategyIOS: PropTypes.oneOf([\n 'hangul-word',\n 'none',\n 'push-out',\n 'standard',\n ]),\n maxFontSizeMultiplier: PropTypes.number,\n maxLength: PropTypes.number,\n multiline: PropTypes.bool,\n numberOfLines: PropTypes.number,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onChangeText: PropTypes.func,\n onContentSizeChange: PropTypes.func,\n onEndEditing: PropTypes.func,\n onFocus: PropTypes.func,\n onKeyPress: PropTypes.func,\n onLayout: PropTypes.func,\n onScroll: PropTypes.func,\n onSelectionChange: PropTypes.func,\n onSubmitEditing: PropTypes.func,\n onTextInput: PropTypes.func,\n placeholder: PropTypes.string,\n placeholderTextColor: DeprecatedColorPropType,\n readOnly: PropTypes.bool,\n rejectResponderTermination: PropTypes.bool,\n returnKeyLabel: PropTypes.string,\n returnKeyType: PropTypes.oneOf([\n 'default',\n 'done',\n 'emergency-call',\n 'go',\n 'google',\n 'join',\n 'next',\n 'none',\n 'previous',\n 'route',\n 'search',\n 'send',\n 'yahoo',\n ]),\n rows: PropTypes.number,\n scrollEnabled: PropTypes.bool,\n secureTextEntry: PropTypes.bool,\n selection: PropTypes.shape({\n end: PropTypes.number,\n start: PropTypes.number.isRequired,\n }),\n selectionColor: DeprecatedColorPropType,\n selectTextOnFocus: PropTypes.bool,\n showSoftInputOnFocus: PropTypes.bool,\n spellCheck: PropTypes.bool,\n style: DeprecatedTextPropTypes.style,\n submitBehavior: PropTypes.oneOf(['blurAndSubmit', 'newline', 'submit']),\n textBreakStrategy: PropTypes.oneOf(['balanced', 'highQuality', 'simple']),\n textContentType: PropTypes.oneOf([\n 'addressCity',\n 'addressCityAndState',\n 'addressState',\n 'countryName',\n 'creditCardNumber',\n 'emailAddress',\n 'familyName',\n 'fullStreetAddress',\n 'givenName',\n 'jobTitle',\n 'location',\n 'middleName',\n 'name',\n 'namePrefix',\n 'nameSuffix',\n 'newPassword',\n 'nickname',\n 'none',\n 'oneTimeCode',\n 'organizationName',\n 'password',\n 'postalCode',\n 'streetAddressLine1',\n 'streetAddressLine2',\n 'sublocality',\n 'telephoneNumber',\n 'URL',\n 'username',\n ]),\n underlineColorAndroid: DeprecatedColorPropType,\n value: PropTypes.string,\n};\n\nmodule.exports = DeprecatedTextInputPropTypes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst DeprecatedEdgeInsetsPropType = require('./DeprecatedEdgeInsetsPropType');\nconst DeprecatedStyleSheetPropType = require('./DeprecatedStyleSheetPropType');\nconst DeprecatedTextStylePropTypes = require('./DeprecatedTextStylePropTypes');\nconst {\n AccessibilityActionInfoPropType,\n AccessibilityRolePropType,\n AccessibilityStatePropType,\n AccessibilityValuePropType,\n RolePropType,\n} = require('./DeprecatedViewAccessibility');\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/Text/TextProps.js\n */\nconst DeprecatedTextPropTypes = {\n 'aria-busy': PropTypes.bool,\n 'aria-checked': PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.oneOf(['mixed']),\n ]),\n 'aria-disabled': PropTypes.bool,\n 'aria-expanded': PropTypes.bool,\n 'aria-label': PropTypes.string,\n 'aria-labelledby': PropTypes.string,\n 'aria-selected': PropTypes.bool,\n accessibilityActions: PropTypes.arrayOf(AccessibilityActionInfoPropType),\n accessibilityHint: PropTypes.string,\n accessibilityLabel: PropTypes.string,\n accessibilityLanguage: PropTypes.string,\n accessibilityRole: AccessibilityRolePropType,\n accessibilityState: AccessibilityStatePropType,\n accessible: PropTypes.bool,\n adjustsFontSizeToFit: PropTypes.bool,\n allowFontScaling: PropTypes.bool,\n dataDetectorType: PropTypes.oneOf([\n 'all',\n 'email',\n 'link',\n 'none',\n 'phoneNumber',\n ]),\n disabled: PropTypes.bool,\n dynamicTypeRamp: PropTypes.oneOf([\n 'body',\n 'callout',\n 'caption1',\n 'caption2',\n 'footnote',\n 'headline',\n 'largeTitle',\n 'subheadline',\n 'title1',\n 'title2',\n 'title3',\n ]),\n ellipsizeMode: PropTypes.oneOf(['clip', 'head', 'middle', 'tail']),\n id: PropTypes.string,\n lineBreakStrategyIOS: PropTypes.oneOf([\n 'hangul-word',\n 'none',\n 'push-out',\n 'standard',\n ]),\n maxFontSizeMultiplier: PropTypes.number,\n minimumFontScale: PropTypes.number,\n nativeID: PropTypes.string,\n numberOfLines: PropTypes.number,\n onAccessibilityAction: PropTypes.func,\n onLayout: PropTypes.func,\n onLongPress: PropTypes.func,\n onMoveShouldSetResponder: PropTypes.func,\n onPress: PropTypes.func,\n onPressIn: PropTypes.func,\n onPressOut: PropTypes.func,\n onResponderGrant: PropTypes.func,\n onResponderMove: PropTypes.func,\n onResponderRelease: PropTypes.func,\n onResponderTerminate: PropTypes.func,\n onResponderTerminationRequest: PropTypes.func,\n onStartShouldSetResponder: PropTypes.func,\n onTextLayout: PropTypes.func,\n pressRetentionOffset: DeprecatedEdgeInsetsPropType,\n role: RolePropType,\n selectable: PropTypes.bool,\n selectionColor: DeprecatedColorPropType,\n style: DeprecatedStyleSheetPropType(DeprecatedTextStylePropTypes),\n suppressHighlighting: PropTypes.bool,\n testID: PropTypes.string,\n textBreakStrategy: PropTypes.oneOf(['balanced', 'highQuality', 'simple']),\n};\n\nmodule.exports = DeprecatedTextPropTypes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst DeprecatedViewStylePropTypes = require('./DeprecatedViewStylePropTypes');\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst DeprecatedTextStylePropTypes = {\n ...DeprecatedViewStylePropTypes,\n color: DeprecatedColorPropType,\n fontFamily: PropTypes.string,\n fontSize: PropTypes.number,\n fontStyle: PropTypes.oneOf(['italic', 'normal']),\n fontVariant: PropTypes.oneOfType([\n PropTypes.arrayOf(\n PropTypes.oneOf([\n 'lining-nums',\n 'oldstyle-nums',\n 'proportional-nums',\n 'small-caps',\n 'stylistic-eight',\n 'stylistic-eighteen',\n 'stylistic-eleven',\n 'stylistic-fifteen',\n 'stylistic-five',\n 'stylistic-four',\n 'stylistic-fourteen',\n 'stylistic-nine',\n 'stylistic-nineteen',\n 'stylistic-one',\n 'stylistic-seven',\n 'stylistic-seventeen',\n 'stylistic-six',\n 'stylistic-sixteen',\n 'stylistic-ten',\n 'stylistic-thirteen',\n 'stylistic-three',\n 'stylistic-twelve',\n 'stylistic-twenty',\n 'stylistic-two',\n 'tabular-nums',\n ]),\n ),\n PropTypes.string,\n ]),\n fontWeight: PropTypes.oneOf([\n '100',\n '200',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900',\n 'black',\n 'bold',\n 'condensed',\n 'condensedBold',\n 'heavy',\n 'light',\n 'medium',\n 'normal',\n 'regular',\n 'semibold',\n 'thin',\n 'ultralight',\n 100,\n 200,\n 300,\n 400,\n 500,\n 600,\n 700,\n 800,\n 900,\n ]),\n includeFontPadding: PropTypes.bool,\n letterSpacing: PropTypes.number,\n lineHeight: PropTypes.number,\n textAlign: PropTypes.oneOf(['auto', 'center', 'justify', 'left', 'right']),\n textAlignVertical: PropTypes.oneOf(['auto', 'bottom', 'center', 'top']),\n textDecorationColor: DeprecatedColorPropType,\n textDecorationLine: PropTypes.oneOf([\n 'line-through',\n 'none',\n 'underline line-through',\n 'underline',\n ]),\n textDecorationStyle: PropTypes.oneOf(['dashed', 'dotted', 'double', 'solid']),\n textShadowColor: DeprecatedColorPropType,\n textShadowOffset: PropTypes.shape({\n height: PropTypes.number,\n width: PropTypes.number,\n }),\n textShadowRadius: PropTypes.number,\n textTransform: PropTypes.oneOf([\n 'capitalize',\n 'lowercase',\n 'none',\n 'uppercase',\n ]),\n userSelect: PropTypes.oneOf(['all', 'auto', 'contain', 'none', 'text']),\n verticalAlign: PropTypes.oneOf(['auto', 'bottom', 'middle', 'top']),\n writingDirection: PropTypes.oneOf(['auto', 'ltr', 'rtl']),\n};\n\nmodule.exports = DeprecatedTextStylePropTypes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {PressEvent} from '../../Types/CoreEventTypes';\nimport typeof TouchableWithoutFeedback from './TouchableWithoutFeedback';\n\nimport View from '../../Components/View/View';\nimport Pressability, {\n type PressabilityConfig,\n} from '../../Pressability/Pressability';\nimport {PressabilityDebugView} from '../../Pressability/PressabilityDebug';\nimport {findHostInstance_DEPRECATED} from '../../ReactNative/RendererProxy';\nimport processColor from '../../StyleSheet/processColor';\nimport Platform from '../../Utilities/Platform';\nimport {Commands} from '../View/ViewNativeComponent';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\ntype Props = $ReadOnly<{|\n ...React.ElementConfig,\n\n /**\n * Determines the type of background drawable that's going to be used to\n * display feedback. It takes an object with `type` property and extra data\n * depending on the `type`. It's recommended to use one of the static\n * methods to generate that dictionary.\n */\n background?: ?(\n | $ReadOnly<{|\n type: 'ThemeAttrAndroid',\n attribute:\n | 'selectableItemBackground'\n | 'selectableItemBackgroundBorderless',\n rippleRadius: ?number,\n |}>\n | $ReadOnly<{|\n type: 'RippleAndroid',\n color: ?number,\n borderless: boolean,\n rippleRadius: ?number,\n |}>\n ),\n\n /**\n * TV preferred focus (see documentation for the View component).\n */\n hasTVPreferredFocus?: ?boolean,\n\n /**\n * TV next focus down (see documentation for the View component).\n */\n nextFocusDown?: ?number,\n\n /**\n * TV next focus forward (see documentation for the View component).\n */\n nextFocusForward?: ?number,\n\n /**\n * TV next focus left (see documentation for the View component).\n */\n nextFocusLeft?: ?number,\n\n /**\n * TV next focus right (see documentation for the View component).\n */\n nextFocusRight?: ?number,\n\n /**\n * TV next focus up (see documentation for the View component).\n */\n nextFocusUp?: ?number,\n\n /**\n * Set to true to add the ripple effect to the foreground of the view, instead\n * of the background. This is useful if one of your child views has a\n * background of its own, or you're e.g. displaying images, and you don't want\n * the ripple to be covered by them.\n *\n * Check TouchableNativeFeedback.canUseNativeForeground() first, as this is\n * only available on Android 6.0 and above. If you try to use this on older\n * versions, this will fallback to background.\n */\n useForeground?: ?boolean,\n|}>;\n\ntype State = $ReadOnly<{|\n pressability: Pressability,\n|}>;\n\nclass TouchableNativeFeedback extends React.Component {\n /**\n * Creates a value for the `background` prop that uses the Android theme's\n * default background for selectable elements.\n */\n static SelectableBackground: (rippleRadius: ?number) => $ReadOnly<{|\n attribute: 'selectableItemBackground',\n type: 'ThemeAttrAndroid',\n rippleRadius: ?number,\n |}> = (rippleRadius: ?number) => ({\n type: 'ThemeAttrAndroid',\n attribute: 'selectableItemBackground',\n rippleRadius,\n });\n\n /**\n * Creates a value for the `background` prop that uses the Android theme's\n * default background for borderless selectable elements. Requires API 21+.\n */\n static SelectableBackgroundBorderless: (rippleRadius: ?number) => $ReadOnly<{|\n attribute: 'selectableItemBackgroundBorderless',\n type: 'ThemeAttrAndroid',\n rippleRadius: ?number,\n |}> = (rippleRadius: ?number) => ({\n type: 'ThemeAttrAndroid',\n attribute: 'selectableItemBackgroundBorderless',\n rippleRadius,\n });\n\n /**\n * Creates a value for the `background` prop that uses the Android ripple with\n * the supplied color. If `borderless` is true, the ripple will render outside\n * of the view bounds. Requires API 21+.\n */\n static Ripple: (\n color: string,\n borderless: boolean,\n rippleRadius: ?number,\n ) => $ReadOnly<{|\n borderless: boolean,\n color: ?number,\n rippleRadius: ?number,\n type: 'RippleAndroid',\n |}> = (color: string, borderless: boolean, rippleRadius: ?number) => {\n const processedColor = processColor(color);\n invariant(\n processedColor == null || typeof processedColor === 'number',\n 'Unexpected color given for Ripple color',\n );\n return {\n type: 'RippleAndroid',\n color: processedColor,\n borderless,\n rippleRadius,\n };\n };\n\n /**\n * Whether `useForeground` is supported.\n */\n static canUseNativeForeground: () => boolean = () =>\n Platform.OS === 'android' && Platform.Version >= 23;\n\n state: State = {\n pressability: new Pressability(this._createPressabilityConfig()),\n };\n\n _createPressabilityConfig(): PressabilityConfig {\n const accessibilityStateDisabled =\n this.props['aria-disabled'] ?? this.props.accessibilityState?.disabled;\n return {\n cancelable: !this.props.rejectResponderTermination,\n disabled:\n this.props.disabled != null\n ? this.props.disabled\n : accessibilityStateDisabled,\n hitSlop: this.props.hitSlop,\n delayLongPress: this.props.delayLongPress,\n delayPressIn: this.props.delayPressIn,\n delayPressOut: this.props.delayPressOut,\n minPressDuration: 0,\n pressRectOffset: this.props.pressRetentionOffset,\n android_disableSound: this.props.touchSoundDisabled,\n onLongPress: this.props.onLongPress,\n onPress: this.props.onPress,\n onPressIn: event => {\n if (Platform.OS === 'android') {\n this._dispatchHotspotUpdate(event);\n this._dispatchPressedStateChange(true);\n }\n if (this.props.onPressIn != null) {\n this.props.onPressIn(event);\n }\n },\n onPressMove: event => {\n if (Platform.OS === 'android') {\n this._dispatchHotspotUpdate(event);\n }\n },\n onPressOut: event => {\n if (Platform.OS === 'android') {\n this._dispatchPressedStateChange(false);\n }\n if (this.props.onPressOut != null) {\n this.props.onPressOut(event);\n }\n },\n };\n }\n\n _dispatchPressedStateChange(pressed: boolean): void {\n if (Platform.OS === 'android') {\n const hostComponentRef = findHostInstance_DEPRECATED(this);\n if (hostComponentRef == null) {\n console.warn(\n 'Touchable: Unable to find HostComponent instance. ' +\n 'Has your Touchable component been unmounted?',\n );\n } else {\n Commands.setPressed(hostComponentRef, pressed);\n }\n }\n }\n\n _dispatchHotspotUpdate(event: PressEvent): void {\n if (Platform.OS === 'android') {\n const {locationX, locationY} = event.nativeEvent;\n const hostComponentRef = findHostInstance_DEPRECATED(this);\n if (hostComponentRef == null) {\n console.warn(\n 'Touchable: Unable to find HostComponent instance. ' +\n 'Has your Touchable component been unmounted?',\n );\n } else {\n Commands.hotspotUpdate(\n hostComponentRef,\n locationX ?? 0,\n locationY ?? 0,\n );\n }\n }\n }\n\n render(): React.Node {\n const element = React.Children.only<$FlowFixMe>(this.props.children);\n const children: Array = [element.props.children];\n if (__DEV__) {\n if (element.type === View) {\n children.push(\n ,\n );\n }\n }\n\n // BACKWARD-COMPATIBILITY: Focus and blur events were never supported before\n // adopting `Pressability`, so preserve that behavior.\n const {onBlur, onFocus, ...eventHandlersWithoutBlurAndFocus} =\n this.state.pressability.getEventHandlers();\n\n let _accessibilityState = {\n busy: this.props['aria-busy'] ?? this.props.accessibilityState?.busy,\n checked:\n this.props['aria-checked'] ?? this.props.accessibilityState?.checked,\n disabled:\n this.props['aria-disabled'] ?? this.props.accessibilityState?.disabled,\n expanded:\n this.props['aria-expanded'] ?? this.props.accessibilityState?.expanded,\n selected:\n this.props['aria-selected'] ?? this.props.accessibilityState?.selected,\n };\n\n _accessibilityState =\n this.props.disabled != null\n ? {\n ..._accessibilityState,\n disabled: this.props.disabled,\n }\n : _accessibilityState;\n\n const accessibilityValue = {\n max: this.props['aria-valuemax'] ?? this.props.accessibilityValue?.max,\n min: this.props['aria-valuemin'] ?? this.props.accessibilityValue?.min,\n now: this.props['aria-valuenow'] ?? this.props.accessibilityValue?.now,\n text: this.props['aria-valuetext'] ?? this.props.accessibilityValue?.text,\n };\n\n const accessibilityLiveRegion =\n this.props['aria-live'] === 'off'\n ? 'none'\n : this.props['aria-live'] ?? this.props.accessibilityLiveRegion;\n\n const accessibilityLabel =\n this.props['aria-label'] ?? this.props.accessibilityLabel;\n return React.cloneElement(\n element,\n {\n ...eventHandlersWithoutBlurAndFocus,\n ...getBackgroundProp(\n this.props.background === undefined\n ? TouchableNativeFeedback.SelectableBackground()\n : this.props.background,\n this.props.useForeground === true,\n ),\n accessible: this.props.accessible !== false,\n accessibilityHint: this.props.accessibilityHint,\n accessibilityLanguage: this.props.accessibilityLanguage,\n accessibilityLabel: accessibilityLabel,\n accessibilityRole: this.props.accessibilityRole,\n accessibilityState: _accessibilityState,\n accessibilityActions: this.props.accessibilityActions,\n onAccessibilityAction: this.props.onAccessibilityAction,\n accessibilityValue: accessibilityValue,\n importantForAccessibility:\n this.props['aria-hidden'] === true\n ? 'no-hide-descendants'\n : this.props.importantForAccessibility,\n accessibilityViewIsModal:\n this.props['aria-modal'] ?? this.props.accessibilityViewIsModal,\n accessibilityLiveRegion: accessibilityLiveRegion,\n accessibilityElementsHidden:\n this.props['aria-hidden'] ?? this.props.accessibilityElementsHidden,\n hasTVPreferredFocus: this.props.hasTVPreferredFocus,\n hitSlop: this.props.hitSlop,\n focusable:\n this.props.focusable !== false &&\n this.props.onPress !== undefined &&\n !this.props.disabled,\n nativeID: this.props.nativeID,\n nextFocusDown: this.props.nextFocusDown,\n nextFocusForward: this.props.nextFocusForward,\n nextFocusLeft: this.props.nextFocusLeft,\n nextFocusRight: this.props.nextFocusRight,\n nextFocusUp: this.props.nextFocusUp,\n onLayout: this.props.onLayout,\n testID: this.props.testID,\n },\n ...children,\n );\n }\n\n componentDidUpdate(prevProps: Props, prevState: State) {\n this.state.pressability.configure(this._createPressabilityConfig());\n }\n\n componentWillUnmount(): void {\n this.state.pressability.reset();\n }\n}\n\nconst getBackgroundProp =\n Platform.OS === 'android'\n ? /* $FlowFixMe[missing-local-annot] The type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n (background, useForeground: boolean) =>\n useForeground && TouchableNativeFeedback.canUseNativeForeground()\n ? {nativeForegroundAndroid: background}\n : {nativeBackgroundAndroid: background}\n : /* $FlowFixMe[missing-local-annot] The type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n (background, useForeground: boolean) => null;\n\nTouchableNativeFeedback.displayName = 'TouchableNativeFeedback';\n\nmodule.exports = TouchableNativeFeedback;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {ViewStyleProp} from '../../StyleSheet/StyleSheet';\nimport typeof TouchableWithoutFeedback from './TouchableWithoutFeedback';\n\nimport Animated from '../../Animated/Animated';\nimport Easing from '../../Animated/Easing';\nimport Pressability, {\n type PressabilityConfig,\n} from '../../Pressability/Pressability';\nimport {PressabilityDebugView} from '../../Pressability/PressabilityDebug';\nimport flattenStyle from '../../StyleSheet/flattenStyle';\nimport Platform from '../../Utilities/Platform';\nimport * as React from 'react';\n\ntype TVProps = $ReadOnly<{|\n hasTVPreferredFocus?: ?boolean,\n nextFocusDown?: ?number,\n nextFocusForward?: ?number,\n nextFocusLeft?: ?number,\n nextFocusRight?: ?number,\n nextFocusUp?: ?number,\n|}>;\n\ntype Props = $ReadOnly<{|\n ...React.ElementConfig,\n ...TVProps,\n\n activeOpacity?: ?number,\n style?: ?ViewStyleProp,\n\n hostRef?: ?React.Ref,\n|}>;\n\ntype State = $ReadOnly<{|\n anim: Animated.Value,\n pressability: Pressability,\n|}>;\n\n/**\n * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, dimming it.\n *\n * Opacity is controlled by wrapping the children in an Animated.View, which is\n * added to the view hierarchy. Be aware that this can affect layout.\n *\n * Example:\n *\n * ```\n * renderButton: function() {\n * return (\n * \n * \n * \n * );\n * },\n * ```\n * ### Example\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react'\n * import {\n * AppRegistry,\n * StyleSheet,\n * TouchableOpacity,\n * Text,\n * View,\n * } from 'react-native'\n *\n * class App extends Component {\n * state = { count: 0 }\n *\n * onPress = () => {\n * this.setState(state => ({\n * count: state.count + 1\n * }));\n * };\n *\n * render() {\n * return (\n * \n * \n * Touch Here \n * \n * \n * \n * { this.state.count !== 0 ? this.state.count: null}\n * \n * \n * \n * )\n * }\n * }\n *\n * const styles = StyleSheet.create({\n * container: {\n * flex: 1,\n * justifyContent: 'center',\n * paddingHorizontal: 10\n * },\n * button: {\n * alignItems: 'center',\n * backgroundColor: '#DDDDDD',\n * padding: 10\n * },\n * countContainer: {\n * alignItems: 'center',\n * padding: 10\n * },\n * countText: {\n * color: '#FF00FF'\n * }\n * })\n *\n * AppRegistry.registerComponent('App', () => App)\n * ```\n *\n */\nclass TouchableOpacity extends React.Component {\n state: State = {\n anim: new Animated.Value(this._getChildStyleOpacityWithDefault()),\n pressability: new Pressability(this._createPressabilityConfig()),\n };\n\n _createPressabilityConfig(): PressabilityConfig {\n return {\n cancelable: !this.props.rejectResponderTermination,\n disabled:\n this.props.disabled ??\n this.props['aria-disabled'] ??\n this.props.accessibilityState?.disabled,\n hitSlop: this.props.hitSlop,\n delayLongPress: this.props.delayLongPress,\n delayPressIn: this.props.delayPressIn,\n delayPressOut: this.props.delayPressOut,\n minPressDuration: 0,\n pressRectOffset: this.props.pressRetentionOffset,\n onBlur: event => {\n if (Platform.isTV) {\n this._opacityInactive(250);\n }\n if (this.props.onBlur != null) {\n this.props.onBlur(event);\n }\n },\n onFocus: event => {\n if (Platform.isTV) {\n this._opacityActive(150);\n }\n if (this.props.onFocus != null) {\n this.props.onFocus(event);\n }\n },\n onLongPress: this.props.onLongPress,\n onPress: this.props.onPress,\n onPressIn: event => {\n this._opacityActive(\n event.dispatchConfig.registrationName === 'onResponderGrant'\n ? 0\n : 150,\n );\n if (this.props.onPressIn != null) {\n this.props.onPressIn(event);\n }\n },\n onPressOut: event => {\n this._opacityInactive(250);\n if (this.props.onPressOut != null) {\n this.props.onPressOut(event);\n }\n },\n };\n }\n\n /**\n * Animate the touchable to a new opacity.\n */\n _setOpacityTo(toValue: number, duration: number): void {\n Animated.timing(this.state.anim, {\n toValue,\n duration,\n easing: Easing.inOut(Easing.quad),\n useNativeDriver: true,\n }).start();\n }\n\n _opacityActive(duration: number): void {\n this._setOpacityTo(this.props.activeOpacity ?? 0.2, duration);\n }\n\n _opacityInactive(duration: number): void {\n this._setOpacityTo(this._getChildStyleOpacityWithDefault(), duration);\n }\n\n _getChildStyleOpacityWithDefault(): number {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n const opacity = flattenStyle(this.props.style)?.opacity;\n return typeof opacity === 'number' ? opacity : 1;\n }\n\n render(): React.Node {\n // BACKWARD-COMPATIBILITY: Focus and blur events were never supported before\n // adopting `Pressability`, so preserve that behavior.\n const {onBlur, onFocus, ...eventHandlersWithoutBlurAndFocus} =\n this.state.pressability.getEventHandlers();\n\n let _accessibilityState = {\n busy: this.props['aria-busy'] ?? this.props.accessibilityState?.busy,\n checked:\n this.props['aria-checked'] ?? this.props.accessibilityState?.checked,\n disabled:\n this.props['aria-disabled'] ?? this.props.accessibilityState?.disabled,\n expanded:\n this.props['aria-expanded'] ?? this.props.accessibilityState?.expanded,\n selected:\n this.props['aria-selected'] ?? this.props.accessibilityState?.selected,\n };\n\n _accessibilityState =\n this.props.disabled != null\n ? {\n ..._accessibilityState,\n disabled: this.props.disabled,\n }\n : _accessibilityState;\n\n const accessibilityValue = {\n max: this.props['aria-valuemax'] ?? this.props.accessibilityValue?.max,\n min: this.props['aria-valuemin'] ?? this.props.accessibilityValue?.min,\n now: this.props['aria-valuenow'] ?? this.props.accessibilityValue?.now,\n text: this.props['aria-valuetext'] ?? this.props.accessibilityValue?.text,\n };\n\n const accessibilityLiveRegion =\n this.props['aria-live'] === 'off'\n ? 'none'\n : this.props['aria-live'] ?? this.props.accessibilityLiveRegion;\n\n const accessibilityLabel =\n this.props['aria-label'] ?? this.props.accessibilityLabel;\n return (\n \n {this.props.children}\n {__DEV__ ? (\n \n ) : null}\n \n );\n }\n\n componentDidUpdate(prevProps: Props, prevState: State) {\n this.state.pressability.configure(this._createPressabilityConfig());\n if (\n this.props.disabled !== prevProps.disabled ||\n // $FlowFixMe[underconstrained-implicit-instantiation]\n flattenStyle(prevProps.style)?.opacity !==\n // $FlowFixMe[underconstrained-implicit-instantiation]\n flattenStyle(this.props.style)?.opacity\n ) {\n this._opacityInactive(250);\n }\n }\n\n componentWillUnmount(): void {\n this.state.pressability.reset();\n }\n}\n\nconst Touchable = (React.forwardRef((props, ref) => (\n \n)): React.AbstractComponent>);\n\nTouchable.displayName = 'TouchableOpacity';\n\nmodule.exports = Touchable;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nexport type {CompositeAnimation, Numeric} from './AnimatedImplementation';\n\nimport typeof AnimatedFlatList from './components/AnimatedFlatList';\nimport typeof AnimatedImage from './components/AnimatedImage';\nimport typeof AnimatedScrollView from './components/AnimatedScrollView';\nimport typeof AnimatedSectionList from './components/AnimatedSectionList';\nimport typeof AnimatedText from './components/AnimatedText';\nimport typeof AnimatedView from './components/AnimatedView';\n\nimport Platform from '../Utilities/Platform';\nimport AnimatedImplementation from './AnimatedImplementation';\nimport AnimatedMock from './AnimatedMock';\n\nconst Animated = ((Platform.isTesting\n ? AnimatedMock\n : AnimatedImplementation): typeof AnimatedImplementation);\n\nexport default {\n get FlatList(): AnimatedFlatList {\n return require('./components/AnimatedFlatList').default;\n },\n get Image(): AnimatedImage {\n return require('./components/AnimatedImage').default;\n },\n get ScrollView(): AnimatedScrollView {\n return require('./components/AnimatedScrollView').default;\n },\n get SectionList(): AnimatedSectionList {\n return require('./components/AnimatedSectionList').default;\n },\n get Text(): AnimatedText {\n return require('./components/AnimatedText').default;\n },\n get View(): AnimatedView {\n return require('./components/AnimatedView').default;\n },\n ...Animated,\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {EventConfig, Mapping} from './AnimatedEvent';\nimport type {\n AnimationConfig,\n EndCallback,\n EndResult,\n} from './animations/Animation';\nimport type {DecayAnimationConfig} from './animations/DecayAnimation';\nimport type {SpringAnimationConfig} from './animations/SpringAnimation';\nimport type {TimingAnimationConfig} from './animations/TimingAnimation';\n\nimport {AnimatedEvent, attachNativeEvent} from './AnimatedEvent';\nimport DecayAnimation from './animations/DecayAnimation';\nimport SpringAnimation from './animations/SpringAnimation';\nimport TimingAnimation from './animations/TimingAnimation';\nimport createAnimatedComponent from './createAnimatedComponent';\nimport AnimatedAddition from './nodes/AnimatedAddition';\nimport AnimatedColor from './nodes/AnimatedColor';\nimport AnimatedDiffClamp from './nodes/AnimatedDiffClamp';\nimport AnimatedDivision from './nodes/AnimatedDivision';\nimport AnimatedInterpolation from './nodes/AnimatedInterpolation';\nimport AnimatedModulo from './nodes/AnimatedModulo';\nimport AnimatedMultiplication from './nodes/AnimatedMultiplication';\nimport AnimatedNode from './nodes/AnimatedNode';\nimport AnimatedSubtraction from './nodes/AnimatedSubtraction';\nimport AnimatedTracking from './nodes/AnimatedTracking';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\n\nexport type CompositeAnimation = {\n start: (callback?: ?EndCallback) => void,\n stop: () => void,\n reset: () => void,\n _startNativeLoop: (iterations?: number) => void,\n _isUsingNativeDriver: () => boolean,\n ...\n};\n\nconst add = function (\n a: AnimatedNode | number,\n b: AnimatedNode | number,\n): AnimatedAddition {\n return new AnimatedAddition(a, b);\n};\n\nconst subtract = function (\n a: AnimatedNode | number,\n b: AnimatedNode | number,\n): AnimatedSubtraction {\n return new AnimatedSubtraction(a, b);\n};\n\nconst divide = function (\n a: AnimatedNode | number,\n b: AnimatedNode | number,\n): AnimatedDivision {\n return new AnimatedDivision(a, b);\n};\n\nconst multiply = function (\n a: AnimatedNode | number,\n b: AnimatedNode | number,\n): AnimatedMultiplication {\n return new AnimatedMultiplication(a, b);\n};\n\nconst modulo = function (a: AnimatedNode, modulus: number): AnimatedModulo {\n return new AnimatedModulo(a, modulus);\n};\n\nconst diffClamp = function (\n a: AnimatedNode,\n min: number,\n max: number,\n): AnimatedDiffClamp {\n return new AnimatedDiffClamp(a, min, max);\n};\n\nconst _combineCallbacks = function (\n callback: ?EndCallback,\n config: $ReadOnly<{...AnimationConfig, ...}>,\n) {\n if (callback && config.onComplete) {\n return (...args: Array) => {\n config.onComplete && config.onComplete(...args);\n callback && callback(...args);\n };\n } else {\n return callback || config.onComplete;\n }\n};\n\nconst maybeVectorAnim = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: Object,\n anim: (value: AnimatedValue, config: Object) => CompositeAnimation,\n): ?CompositeAnimation {\n if (value instanceof AnimatedValueXY) {\n const configX = {...config};\n const configY = {...config};\n for (const key in config) {\n const {x, y} = config[key];\n if (x !== undefined && y !== undefined) {\n configX[key] = x;\n configY[key] = y;\n }\n }\n const aX = anim((value: AnimatedValueXY).x, configX);\n const aY = anim((value: AnimatedValueXY).y, configY);\n // We use `stopTogether: false` here because otherwise tracking will break\n // because the second animation will get stopped before it can update.\n return parallel([aX, aY], {stopTogether: false});\n } else if (value instanceof AnimatedColor) {\n const configR = {...config};\n const configG = {...config};\n const configB = {...config};\n const configA = {...config};\n for (const key in config) {\n const {r, g, b, a} = config[key];\n if (\n r !== undefined &&\n g !== undefined &&\n b !== undefined &&\n a !== undefined\n ) {\n configR[key] = r;\n configG[key] = g;\n configB[key] = b;\n configA[key] = a;\n }\n }\n const aR = anim((value: AnimatedColor).r, configR);\n const aG = anim((value: AnimatedColor).g, configG);\n const aB = anim((value: AnimatedColor).b, configB);\n const aA = anim((value: AnimatedColor).a, configA);\n // We use `stopTogether: false` here because otherwise tracking will break\n // because the second animation will get stopped before it can update.\n return parallel([aR, aG, aB, aA], {stopTogether: false});\n }\n return null;\n};\n\nconst spring = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: SpringAnimationConfig,\n): CompositeAnimation {\n const start = function (\n animatedValue: AnimatedValue | AnimatedValueXY | AnimatedColor,\n configuration: SpringAnimationConfig,\n callback?: ?EndCallback,\n ): void {\n callback = _combineCallbacks(callback, configuration);\n const singleValue: any = animatedValue;\n const singleConfig: any = configuration;\n singleValue.stopTracking();\n if (configuration.toValue instanceof AnimatedNode) {\n singleValue.track(\n new AnimatedTracking(\n singleValue,\n configuration.toValue,\n SpringAnimation,\n singleConfig,\n callback,\n ),\n );\n } else {\n singleValue.animate(new SpringAnimation(singleConfig), callback);\n }\n };\n return (\n maybeVectorAnim(value, config, spring) || {\n start: function (callback?: ?EndCallback): void {\n start(value, config, callback);\n },\n\n stop: function (): void {\n value.stopAnimation();\n },\n\n reset: function (): void {\n value.resetAnimation();\n },\n\n _startNativeLoop: function (iterations?: number): void {\n const singleConfig = {...config, iterations};\n start(value, singleConfig);\n },\n\n _isUsingNativeDriver: function (): boolean {\n return config.useNativeDriver || false;\n },\n }\n );\n};\n\nconst timing = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: TimingAnimationConfig,\n): CompositeAnimation {\n const start = function (\n animatedValue: AnimatedValue | AnimatedValueXY | AnimatedColor,\n configuration: TimingAnimationConfig,\n callback?: ?EndCallback,\n ): void {\n callback = _combineCallbacks(callback, configuration);\n const singleValue: any = animatedValue;\n const singleConfig: any = configuration;\n singleValue.stopTracking();\n if (configuration.toValue instanceof AnimatedNode) {\n singleValue.track(\n new AnimatedTracking(\n singleValue,\n configuration.toValue,\n TimingAnimation,\n singleConfig,\n callback,\n ),\n );\n } else {\n singleValue.animate(new TimingAnimation(singleConfig), callback);\n }\n };\n\n return (\n maybeVectorAnim(value, config, timing) || {\n start: function (callback?: ?EndCallback): void {\n start(value, config, callback);\n },\n\n stop: function (): void {\n value.stopAnimation();\n },\n\n reset: function (): void {\n value.resetAnimation();\n },\n\n _startNativeLoop: function (iterations?: number): void {\n const singleConfig = {...config, iterations};\n start(value, singleConfig);\n },\n\n _isUsingNativeDriver: function (): boolean {\n return config.useNativeDriver || false;\n },\n }\n );\n};\n\nconst decay = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: DecayAnimationConfig,\n): CompositeAnimation {\n const start = function (\n animatedValue: AnimatedValue | AnimatedValueXY | AnimatedColor,\n configuration: DecayAnimationConfig,\n callback?: ?EndCallback,\n ): void {\n callback = _combineCallbacks(callback, configuration);\n const singleValue: any = animatedValue;\n const singleConfig: any = configuration;\n singleValue.stopTracking();\n singleValue.animate(new DecayAnimation(singleConfig), callback);\n };\n\n return (\n maybeVectorAnim(value, config, decay) || {\n start: function (callback?: ?EndCallback): void {\n start(value, config, callback);\n },\n\n stop: function (): void {\n value.stopAnimation();\n },\n\n reset: function (): void {\n value.resetAnimation();\n },\n\n _startNativeLoop: function (iterations?: number): void {\n const singleConfig = {...config, iterations};\n start(value, singleConfig);\n },\n\n _isUsingNativeDriver: function (): boolean {\n return config.useNativeDriver || false;\n },\n }\n );\n};\n\nconst sequence = function (\n animations: Array,\n): CompositeAnimation {\n let current = 0;\n return {\n start: function (callback?: ?EndCallback) {\n const onComplete = function (result: EndResult) {\n if (!result.finished) {\n callback && callback(result);\n return;\n }\n\n current++;\n\n if (current === animations.length) {\n callback && callback(result);\n return;\n }\n\n animations[current].start(onComplete);\n };\n\n if (animations.length === 0) {\n callback && callback({finished: true});\n } else {\n animations[current].start(onComplete);\n }\n },\n\n stop: function () {\n if (current < animations.length) {\n animations[current].stop();\n }\n },\n\n reset: function () {\n animations.forEach((animation, idx) => {\n if (idx <= current) {\n animation.reset();\n }\n });\n current = 0;\n },\n\n _startNativeLoop: function () {\n throw new Error(\n 'Loops run using the native driver cannot contain Animated.sequence animations',\n );\n },\n\n _isUsingNativeDriver: function (): boolean {\n return false;\n },\n };\n};\n\ntype ParallelConfig = {\n // If one is stopped, stop all. default: true\n stopTogether?: boolean,\n ...\n};\nconst parallel = function (\n animations: Array,\n config?: ?ParallelConfig,\n): CompositeAnimation {\n let doneCount = 0;\n // Make sure we only call stop() at most once for each animation\n const hasEnded: {[number]: boolean} = {};\n const stopTogether = !(config && config.stopTogether === false);\n\n const result = {\n start: function (callback?: ?EndCallback) {\n if (doneCount === animations.length) {\n callback && callback({finished: true});\n return;\n }\n\n animations.forEach((animation, idx) => {\n const cb = function (endResult: EndResult | {finished: boolean}) {\n hasEnded[idx] = true;\n doneCount++;\n if (doneCount === animations.length) {\n doneCount = 0;\n callback && callback(endResult);\n return;\n }\n\n if (!endResult.finished && stopTogether) {\n result.stop();\n }\n };\n\n if (!animation) {\n cb({finished: true});\n } else {\n animation.start(cb);\n }\n });\n },\n\n stop: function (): void {\n animations.forEach((animation, idx) => {\n !hasEnded[idx] && animation.stop();\n hasEnded[idx] = true;\n });\n },\n\n reset: function (): void {\n animations.forEach((animation, idx) => {\n animation.reset();\n hasEnded[idx] = false;\n doneCount = 0;\n });\n },\n\n _startNativeLoop: function (): empty {\n throw new Error(\n 'Loops run using the native driver cannot contain Animated.parallel animations',\n );\n },\n\n _isUsingNativeDriver: function (): boolean {\n return false;\n },\n };\n\n return result;\n};\n\nconst delay = function (time: number): CompositeAnimation {\n // Would be nice to make a specialized implementation\n return timing(new AnimatedValue(0), {\n toValue: 0,\n delay: time,\n duration: 0,\n useNativeDriver: false,\n });\n};\n\nconst stagger = function (\n time: number,\n animations: Array,\n): CompositeAnimation {\n return parallel(\n animations.map((animation, i) => {\n return sequence([delay(time * i), animation]);\n }),\n );\n};\n\ntype LoopAnimationConfig = {\n iterations: number,\n resetBeforeIteration?: boolean,\n ...\n};\n\nconst loop = function (\n animation: CompositeAnimation,\n // $FlowFixMe[prop-missing]\n {iterations = -1, resetBeforeIteration = true}: LoopAnimationConfig = {},\n): CompositeAnimation {\n let isFinished = false;\n let iterationsSoFar = 0;\n return {\n start: function (callback?: ?EndCallback) {\n const restart = function (result: EndResult = {finished: true}): void {\n if (\n isFinished ||\n iterationsSoFar === iterations ||\n result.finished === false\n ) {\n callback && callback(result);\n } else {\n iterationsSoFar++;\n resetBeforeIteration && animation.reset();\n animation.start(restart);\n }\n };\n if (!animation || iterations === 0) {\n callback && callback({finished: true});\n } else {\n if (animation._isUsingNativeDriver()) {\n animation._startNativeLoop(iterations);\n } else {\n restart(); // Start looping recursively on the js thread\n }\n }\n },\n\n stop: function (): void {\n isFinished = true;\n animation.stop();\n },\n\n reset: function (): void {\n iterationsSoFar = 0;\n isFinished = false;\n animation.reset();\n },\n\n _startNativeLoop: function () {\n throw new Error(\n 'Loops run using the native driver cannot contain Animated.loop animations',\n );\n },\n\n _isUsingNativeDriver: function (): boolean {\n return animation._isUsingNativeDriver();\n },\n };\n};\n\nfunction forkEvent(\n event: ?AnimatedEvent | ?Function,\n listener: Function,\n): AnimatedEvent | Function {\n if (!event) {\n return listener;\n } else if (event instanceof AnimatedEvent) {\n event.__addListener(listener);\n return event;\n } else {\n return (...args) => {\n typeof event === 'function' && event(...args);\n listener(...args);\n };\n }\n}\n\nfunction unforkEvent(\n event: ?AnimatedEvent | ?Function,\n listener: Function,\n): void {\n if (event && event instanceof AnimatedEvent) {\n event.__removeListener(listener);\n }\n}\n\nconst event = function (\n argMapping: $ReadOnlyArray,\n config: EventConfig,\n): any {\n const animatedEvent = new AnimatedEvent(argMapping, config);\n if (animatedEvent.__isNative) {\n return animatedEvent;\n } else {\n return animatedEvent.__getHandler();\n }\n};\n\n// All types of animated nodes that represent scalar numbers and can be interpolated (etc)\ntype AnimatedNumeric =\n | AnimatedAddition\n | AnimatedDiffClamp\n | AnimatedDivision\n | AnimatedInterpolation\n | AnimatedModulo\n | AnimatedMultiplication\n | AnimatedSubtraction\n | AnimatedValue;\n\nexport type {AnimatedNumeric as Numeric};\n\n/**\n * The `Animated` library is designed to make animations fluid, powerful, and\n * easy to build and maintain. `Animated` focuses on declarative relationships\n * between inputs and outputs, with configurable transforms in between, and\n * simple `start`/`stop` methods to control time-based animation execution.\n * If additional transforms are added, be sure to include them in\n * AnimatedMock.js as well.\n *\n * See https://reactnative.dev/docs/animated\n */\nexport default {\n /**\n * Standard value class for driving animations. Typically initialized with\n * `new Animated.Value(0);`\n *\n * See https://reactnative.dev/docs/animated#value\n */\n Value: AnimatedValue,\n /**\n * 2D value class for driving 2D animations, such as pan gestures.\n *\n * See https://reactnative.dev/docs/animatedvaluexy\n */\n ValueXY: AnimatedValueXY,\n /**\n * Value class for driving color animations.\n */\n Color: AnimatedColor,\n /**\n * Exported to use the Interpolation type in flow.\n *\n * See https://reactnative.dev/docs/animated#interpolation\n */\n Interpolation: AnimatedInterpolation,\n /**\n * Exported for ease of type checking. All animated values derive from this\n * class.\n *\n * See https://reactnative.dev/docs/animated#node\n */\n Node: AnimatedNode,\n\n /**\n * Animates a value from an initial velocity to zero based on a decay\n * coefficient.\n *\n * See https://reactnative.dev/docs/animated#decay\n */\n decay,\n /**\n * Animates a value along a timed easing curve. The Easing module has tons of\n * predefined curves, or you can use your own function.\n *\n * See https://reactnative.dev/docs/animated#timing\n */\n timing,\n /**\n * Animates a value according to an analytical spring model based on\n * damped harmonic oscillation.\n *\n * See https://reactnative.dev/docs/animated#spring\n */\n spring,\n\n /**\n * Creates a new Animated value composed from two Animated values added\n * together.\n *\n * See https://reactnative.dev/docs/animated#add\n */\n add,\n\n /**\n * Creates a new Animated value composed by subtracting the second Animated\n * value from the first Animated value.\n *\n * See https://reactnative.dev/docs/animated#subtract\n */\n subtract,\n\n /**\n * Creates a new Animated value composed by dividing the first Animated value\n * by the second Animated value.\n *\n * See https://reactnative.dev/docs/animated#divide\n */\n divide,\n\n /**\n * Creates a new Animated value composed from two Animated values multiplied\n * together.\n *\n * See https://reactnative.dev/docs/animated#multiply\n */\n multiply,\n\n /**\n * Creates a new Animated value that is the (non-negative) modulo of the\n * provided Animated value.\n *\n * See https://reactnative.dev/docs/animated#modulo\n */\n modulo,\n\n /**\n * Create a new Animated value that is limited between 2 values. It uses the\n * difference between the last value so even if the value is far from the\n * bounds it will start changing when the value starts getting closer again.\n *\n * See https://reactnative.dev/docs/animated#diffclamp\n */\n diffClamp,\n\n /**\n * Starts an animation after the given delay.\n *\n * See https://reactnative.dev/docs/animated#delay\n */\n delay,\n /**\n * Starts an array of animations in order, waiting for each to complete\n * before starting the next. If the current running animation is stopped, no\n * following animations will be started.\n *\n * See https://reactnative.dev/docs/animated#sequence\n */\n sequence,\n /**\n * Starts an array of animations all at the same time. By default, if one\n * of the animations is stopped, they will all be stopped. You can override\n * this with the `stopTogether` flag.\n *\n * See https://reactnative.dev/docs/animated#parallel\n */\n parallel,\n /**\n * Array of animations may run in parallel (overlap), but are started in\n * sequence with successive delays. Nice for doing trailing effects.\n *\n * See https://reactnative.dev/docs/animated#stagger\n */\n stagger,\n /**\n * Loops a given animation continuously, so that each time it reaches the\n * end, it resets and begins again from the start.\n *\n * See https://reactnative.dev/docs/animated#loop\n */\n loop,\n\n /**\n * Takes an array of mappings and extracts values from each arg accordingly,\n * then calls `setValue` on the mapped outputs.\n *\n * See https://reactnative.dev/docs/animated#event\n */\n event,\n\n /**\n * Make any React component Animatable. Used to create `Animated.View`, etc.\n *\n * See https://reactnative.dev/docs/animated#createanimatedcomponent\n */\n createAnimatedComponent,\n\n /**\n * Imperative API to attach an animated value to an event on a view. Prefer\n * using `Animated.event` with `useNativeDrive: true` if possible.\n *\n * See https://reactnative.dev/docs/animated#attachnativeevent\n */\n attachNativeEvent,\n\n /**\n * Advanced imperative API for snooping on animated events that are passed in\n * through props. Use values directly where possible.\n *\n * See https://reactnative.dev/docs/animated#forkevent\n */\n forkEvent,\n unforkEvent,\n\n /**\n * Expose Event class, so it can be used as a type for type checkers.\n */\n Event: AnimatedEvent,\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type AnimatedValue from '../nodes/AnimatedValue';\nimport type {AnimationConfig, EndCallback} from './Animation';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport Animation from './Animation';\n\nexport type DecayAnimationConfig = {\n ...AnimationConfig,\n velocity:\n | number\n | {\n x: number,\n y: number,\n ...\n },\n deceleration?: number,\n};\n\nexport type DecayAnimationConfigSingle = {\n ...AnimationConfig,\n velocity: number,\n deceleration?: number,\n};\n\nexport default class DecayAnimation extends Animation {\n _startTime: number;\n _lastValue: number;\n _fromValue: number;\n _deceleration: number;\n _velocity: number;\n _onUpdate: (value: number) => void;\n _animationFrame: any;\n _useNativeDriver: boolean;\n _platformConfig: ?PlatformConfig;\n\n constructor(config: DecayAnimationConfigSingle) {\n super();\n this._deceleration = config.deceleration ?? 0.998;\n this._velocity = config.velocity;\n this._useNativeDriver = NativeAnimatedHelper.shouldUseNativeDriver(config);\n this._platformConfig = config.platformConfig;\n this.__isInteraction = config.isInteraction ?? !this._useNativeDriver;\n this.__iterations = config.iterations ?? 1;\n }\n\n __getNativeAnimationConfig(): {|\n deceleration: number,\n iterations: number,\n platformConfig: ?PlatformConfig,\n type: $TEMPORARY$string<'decay'>,\n velocity: number,\n |} {\n return {\n type: 'decay',\n deceleration: this._deceleration,\n velocity: this._velocity,\n iterations: this.__iterations,\n platformConfig: this._platformConfig,\n };\n }\n\n start(\n fromValue: number,\n onUpdate: (value: number) => void,\n onEnd: ?EndCallback,\n previousAnimation: ?Animation,\n animatedValue: AnimatedValue,\n ): void {\n this.__active = true;\n this._lastValue = fromValue;\n this._fromValue = fromValue;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n this._startTime = Date.now();\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n }\n\n onUpdate(): void {\n const now = Date.now();\n\n const value =\n this._fromValue +\n (this._velocity / (1 - this._deceleration)) *\n (1 - Math.exp(-(1 - this._deceleration) * (now - this._startTime)));\n\n this._onUpdate(value);\n\n if (Math.abs(this._lastValue - value) < 0.1) {\n this.__debouncedOnEnd({finished: true});\n return;\n }\n\n this._lastValue = value;\n if (this.__active) {\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n }\n\n stop(): void {\n super.stop();\n this.__active = false;\n global.cancelAnimationFrame(this._animationFrame);\n this.__debouncedOnEnd({finished: false});\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {EventSubscription} from '../vendor/emitter/EventEmitter';\nimport type {EventConfig} from './AnimatedEvent';\nimport type {AnimationConfig, EndCallback} from './animations/Animation';\nimport type {\n AnimatedNodeConfig,\n AnimatingNodeConfig,\n EventMapping,\n} from './NativeAnimatedModule';\nimport type {InterpolationConfigType} from './nodes/AnimatedInterpolation';\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter';\nimport ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';\nimport Platform from '../Utilities/Platform';\nimport NativeAnimatedNonTurboModule from './NativeAnimatedModule';\nimport NativeAnimatedTurboModule from './NativeAnimatedTurboModule';\nimport invariant from 'invariant';\n\n// TODO T69437152 @petetheheat - Delete this fork when Fabric ships to 100%.\nconst NativeAnimatedModule =\n Platform.OS === 'ios' && global.RN$Bridgeless === true\n ? NativeAnimatedTurboModule\n : NativeAnimatedNonTurboModule;\n\nlet __nativeAnimatedNodeTagCount = 1; /* used for animated nodes */\nlet __nativeAnimationIdCount = 1; /* used for started animations */\n\nlet nativeEventEmitter;\n\nlet waitingForQueuedOperations = new Set();\nlet queueOperations = false;\nlet queue: Array<() => void> = [];\n// $FlowFixMe\nlet singleOpQueue: Array = [];\n\nconst useSingleOpBatching =\n Platform.OS === 'android' &&\n !!NativeAnimatedModule?.queueAndExecuteBatchedOperations &&\n ReactNativeFeatureFlags.animatedShouldUseSingleOp();\nlet flushQueueTimeout = null;\n\nconst eventListenerGetValueCallbacks: {\n [$FlowFixMe | number]: ((value: number) => void) | void,\n} = {};\nconst eventListenerAnimationFinishedCallbacks: {\n [$FlowFixMe | number]: EndCallback | void,\n} = {};\nlet globalEventEmitterGetValueListener: ?EventSubscription = null;\nlet globalEventEmitterAnimationFinishedListener: ?EventSubscription = null;\n\nconst nativeOps: ?typeof NativeAnimatedModule = useSingleOpBatching\n ? ((function () {\n const apis = [\n 'createAnimatedNode', // 1\n 'updateAnimatedNodeConfig', // 2\n 'getValue', // 3\n 'startListeningToAnimatedNodeValue', // 4\n 'stopListeningToAnimatedNodeValue', // 5\n 'connectAnimatedNodes', // 6\n 'disconnectAnimatedNodes', // 7\n 'startAnimatingNode', // 8\n 'stopAnimation', // 9\n 'setAnimatedNodeValue', // 10\n 'setAnimatedNodeOffset', // 11\n 'flattenAnimatedNodeOffset', // 12\n 'extractAnimatedNodeOffset', // 13\n 'connectAnimatedNodeToView', // 14\n 'disconnectAnimatedNodeFromView', // 15\n 'restoreDefaultValues', // 16\n 'dropAnimatedNode', // 17\n 'addAnimatedEventToView', // 18\n 'removeAnimatedEventFromView', // 19\n 'addListener', // 20\n 'removeListener', // 21\n ];\n return apis.reduce<{[string]: number}>((acc, functionName, i) => {\n // These indices need to be kept in sync with the indices in native (see NativeAnimatedModule in Java, or the equivalent for any other native platform).\n // $FlowFixMe[prop-missing]\n acc[functionName] = i + 1;\n return acc;\n }, {});\n })(): $FlowFixMe)\n : NativeAnimatedModule;\n\n/**\n * Wrappers around NativeAnimatedModule to provide flow and autocomplete support for\n * the native module methods, and automatic queue management on Android\n */\nconst API = {\n getValue: function (\n tag: number,\n saveValueCallback: (value: number) => void,\n ): void {\n invariant(nativeOps, 'Native animated module is not available');\n if (useSingleOpBatching) {\n if (saveValueCallback) {\n eventListenerGetValueCallbacks[tag] = saveValueCallback;\n }\n // $FlowFixMe\n API.queueOperation(nativeOps.getValue, tag);\n } else {\n API.queueOperation(nativeOps.getValue, tag, saveValueCallback);\n }\n },\n setWaitingForIdentifier: function (id: string): void {\n waitingForQueuedOperations.add(id);\n queueOperations = true;\n if (\n ReactNativeFeatureFlags.animatedShouldDebounceQueueFlush() &&\n flushQueueTimeout\n ) {\n clearTimeout(flushQueueTimeout);\n }\n },\n unsetWaitingForIdentifier: function (id: string): void {\n waitingForQueuedOperations.delete(id);\n\n if (waitingForQueuedOperations.size === 0) {\n queueOperations = false;\n API.disableQueue();\n }\n },\n disableQueue: function (): void {\n invariant(nativeOps, 'Native animated module is not available');\n\n if (ReactNativeFeatureFlags.animatedShouldDebounceQueueFlush()) {\n const prevTimeout = flushQueueTimeout;\n clearImmediate(prevTimeout);\n flushQueueTimeout = setImmediate(API.flushQueue);\n } else {\n API.flushQueue();\n }\n },\n flushQueue: function (): void {\n // TODO: (T136971132)\n invariant(\n NativeAnimatedModule || process.env.NODE_ENV === 'test',\n 'Native animated module is not available',\n );\n flushQueueTimeout = null;\n\n // Early returns before calling any APIs\n if (useSingleOpBatching && singleOpQueue.length === 0) {\n return;\n }\n if (!useSingleOpBatching && queue.length === 0) {\n return;\n }\n\n if (useSingleOpBatching) {\n // Set up event listener for callbacks if it's not set up\n if (\n !globalEventEmitterGetValueListener ||\n !globalEventEmitterAnimationFinishedListener\n ) {\n setupGlobalEventEmitterListeners();\n }\n // Single op batching doesn't use callback functions, instead we\n // use RCTDeviceEventEmitter. This reduces overhead of sending lots of\n // JSI functions across to native code; but also, TM infrastructure currently\n // does not support packing a function into native arrays.\n NativeAnimatedModule?.queueAndExecuteBatchedOperations?.(singleOpQueue);\n singleOpQueue.length = 0;\n } else {\n Platform.OS === 'android' &&\n NativeAnimatedModule?.startOperationBatch?.();\n\n for (let q = 0, l = queue.length; q < l; q++) {\n queue[q]();\n }\n queue.length = 0;\n Platform.OS === 'android' &&\n NativeAnimatedModule?.finishOperationBatch?.();\n }\n },\n queueOperation: , Fn: (...Args) => void>(\n fn: Fn,\n ...args: Args\n ): void => {\n if (useSingleOpBatching) {\n // Get the command ID from the queued function, and push that ID and any arguments needed to execute the operation\n // $FlowFixMe: surprise, fn is actually a number\n singleOpQueue.push(fn, ...args);\n return;\n }\n\n // If queueing is explicitly on, *or* the queue has not yet\n // been flushed, use the queue. This is to prevent operations\n // from being executed out of order.\n if (queueOperations || queue.length !== 0) {\n queue.push(() => fn(...args));\n } else {\n fn(...args);\n }\n },\n createAnimatedNode: function (tag: number, config: AnimatedNodeConfig): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.createAnimatedNode, tag, config);\n },\n updateAnimatedNodeConfig: function (\n tag: number,\n config: AnimatedNodeConfig,\n ): void {\n invariant(nativeOps, 'Native animated module is not available');\n if (nativeOps.updateAnimatedNodeConfig) {\n API.queueOperation(nativeOps.updateAnimatedNodeConfig, tag, config);\n }\n },\n startListeningToAnimatedNodeValue: function (tag: number) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.startListeningToAnimatedNodeValue, tag);\n },\n stopListeningToAnimatedNodeValue: function (tag: number) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.stopListeningToAnimatedNodeValue, tag);\n },\n connectAnimatedNodes: function (parentTag: number, childTag: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.connectAnimatedNodes, parentTag, childTag);\n },\n disconnectAnimatedNodes: function (\n parentTag: number,\n childTag: number,\n ): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.disconnectAnimatedNodes, parentTag, childTag);\n },\n startAnimatingNode: function (\n animationId: number,\n nodeTag: number,\n config: AnimatingNodeConfig,\n endCallback: EndCallback,\n ): void {\n invariant(nativeOps, 'Native animated module is not available');\n if (useSingleOpBatching) {\n if (endCallback) {\n eventListenerAnimationFinishedCallbacks[animationId] = endCallback;\n }\n // $FlowFixMe\n API.queueOperation(\n // $FlowFixMe[incompatible-call]\n nativeOps.startAnimatingNode,\n animationId,\n nodeTag,\n config,\n );\n } else {\n API.queueOperation(\n nativeOps.startAnimatingNode,\n animationId,\n nodeTag,\n config,\n endCallback,\n );\n }\n },\n stopAnimation: function (animationId: number) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.stopAnimation, animationId);\n },\n setAnimatedNodeValue: function (nodeTag: number, value: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.setAnimatedNodeValue, nodeTag, value);\n },\n setAnimatedNodeOffset: function (nodeTag: number, offset: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.setAnimatedNodeOffset, nodeTag, offset);\n },\n flattenAnimatedNodeOffset: function (nodeTag: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.flattenAnimatedNodeOffset, nodeTag);\n },\n extractAnimatedNodeOffset: function (nodeTag: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.extractAnimatedNodeOffset, nodeTag);\n },\n connectAnimatedNodeToView: function (nodeTag: number, viewTag: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.connectAnimatedNodeToView, nodeTag, viewTag);\n },\n disconnectAnimatedNodeFromView: function (\n nodeTag: number,\n viewTag: number,\n ): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(\n nativeOps.disconnectAnimatedNodeFromView,\n nodeTag,\n viewTag,\n );\n },\n restoreDefaultValues: function (nodeTag: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n // Backwards compat with older native runtimes, can be removed later.\n if (nativeOps.restoreDefaultValues != null) {\n API.queueOperation(nativeOps.restoreDefaultValues, nodeTag);\n }\n },\n dropAnimatedNode: function (tag: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.dropAnimatedNode, tag);\n },\n addAnimatedEventToView: function (\n viewTag: number,\n eventName: string,\n eventMapping: EventMapping,\n ) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(\n nativeOps.addAnimatedEventToView,\n viewTag,\n eventName,\n eventMapping,\n );\n },\n removeAnimatedEventFromView(\n viewTag: number,\n eventName: string,\n animatedNodeTag: number,\n ) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(\n nativeOps.removeAnimatedEventFromView,\n viewTag,\n eventName,\n animatedNodeTag,\n );\n },\n};\n\nfunction setupGlobalEventEmitterListeners() {\n globalEventEmitterGetValueListener = RCTDeviceEventEmitter.addListener(\n 'onNativeAnimatedModuleGetValue',\n function (params) {\n const {tag} = params;\n const callback = eventListenerGetValueCallbacks[tag];\n if (!callback) {\n return;\n }\n callback(params.value);\n delete eventListenerGetValueCallbacks[tag];\n },\n );\n globalEventEmitterAnimationFinishedListener =\n RCTDeviceEventEmitter.addListener(\n 'onNativeAnimatedModuleAnimationFinished',\n function (params) {\n const {animationId} = params;\n const callback = eventListenerAnimationFinishedCallbacks[animationId];\n if (!callback) {\n return;\n }\n callback(params);\n delete eventListenerAnimationFinishedCallbacks[animationId];\n },\n );\n}\n\n/**\n * Styles allowed by the native animated implementation.\n *\n * In general native animated implementation should support any numeric or color property that\n * doesn't need to be updated through the shadow view hierarchy (all non-layout properties).\n */\nconst SUPPORTED_COLOR_STYLES = {\n backgroundColor: true,\n borderBottomColor: true,\n borderColor: true,\n borderEndColor: true,\n borderLeftColor: true,\n borderRightColor: true,\n borderStartColor: true,\n borderTopColor: true,\n color: true,\n tintColor: true,\n};\n\nconst SUPPORTED_STYLES = {\n ...SUPPORTED_COLOR_STYLES,\n borderBottomEndRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderBottomStartRadius: true,\n borderEndEndRadius: true,\n borderEndStartRadius: true,\n borderRadius: true,\n borderTopEndRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderTopStartRadius: true,\n borderStartEndRadius: true,\n borderStartStartRadius: true,\n elevation: true,\n opacity: true,\n transform: true,\n zIndex: true,\n /* ios styles */\n shadowOpacity: true,\n shadowRadius: true,\n /* legacy android transform properties */\n scaleX: true,\n scaleY: true,\n translateX: true,\n translateY: true,\n};\n\nconst SUPPORTED_TRANSFORMS = {\n translateX: true,\n translateY: true,\n scale: true,\n scaleX: true,\n scaleY: true,\n rotate: true,\n rotateX: true,\n rotateY: true,\n rotateZ: true,\n perspective: true,\n};\n\nconst SUPPORTED_INTERPOLATION_PARAMS = {\n inputRange: true,\n outputRange: true,\n extrapolate: true,\n extrapolateRight: true,\n extrapolateLeft: true,\n};\n\nfunction addWhitelistedStyleProp(prop: string): void {\n // $FlowFixMe[prop-missing]\n SUPPORTED_STYLES[prop] = true;\n}\n\nfunction addWhitelistedTransformProp(prop: string): void {\n // $FlowFixMe[prop-missing]\n SUPPORTED_TRANSFORMS[prop] = true;\n}\n\nfunction addWhitelistedInterpolationParam(param: string): void {\n // $FlowFixMe[prop-missing]\n SUPPORTED_INTERPOLATION_PARAMS[param] = true;\n}\n\nfunction isSupportedColorStyleProp(prop: string): boolean {\n return SUPPORTED_COLOR_STYLES.hasOwnProperty(prop);\n}\n\nfunction isSupportedStyleProp(prop: string): boolean {\n return SUPPORTED_STYLES.hasOwnProperty(prop);\n}\n\nfunction isSupportedTransformProp(prop: string): boolean {\n return SUPPORTED_TRANSFORMS.hasOwnProperty(prop);\n}\n\nfunction isSupportedInterpolationParam(param: string): boolean {\n return SUPPORTED_INTERPOLATION_PARAMS.hasOwnProperty(param);\n}\n\nfunction validateTransform(\n configs: Array<\n | {\n type: 'animated',\n property: string,\n nodeTag: ?number,\n ...\n }\n | {\n type: 'static',\n property: string,\n value: number | string,\n ...\n },\n >,\n): void {\n configs.forEach(config => {\n if (!isSupportedTransformProp(config.property)) {\n throw new Error(\n `Property '${config.property}' is not supported by native animated module`,\n );\n }\n });\n}\n\nfunction validateStyles(styles: {[key: string]: ?number, ...}): void {\n for (const key in styles) {\n if (!isSupportedStyleProp(key)) {\n throw new Error(\n `Style property '${key}' is not supported by native animated module`,\n );\n }\n }\n}\n\nfunction validateInterpolation(\n config: InterpolationConfigType,\n): void {\n for (const key in config) {\n if (!isSupportedInterpolationParam(key)) {\n throw new Error(\n `Interpolation property '${key}' is not supported by native animated module`,\n );\n }\n }\n}\n\nfunction generateNewNodeTag(): number {\n return __nativeAnimatedNodeTagCount++;\n}\n\nfunction generateNewAnimationId(): number {\n return __nativeAnimationIdCount++;\n}\n\nfunction assertNativeAnimatedModule(): void {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n}\n\nlet _warnedMissingNativeAnimated = false;\n\nfunction shouldUseNativeDriver(\n config: $ReadOnly<{...AnimationConfig, ...}> | EventConfig,\n): boolean {\n if (config.useNativeDriver == null) {\n console.warn(\n 'Animated: `useNativeDriver` was not specified. This is a required ' +\n 'option and must be explicitly set to `true` or `false`',\n );\n }\n\n if (config.useNativeDriver === true && !NativeAnimatedModule) {\n if (process.env.NODE_ENV !== 'test') {\n if (!_warnedMissingNativeAnimated) {\n console.warn(\n 'Animated: `useNativeDriver` is not supported because the native ' +\n 'animated module is missing. Falling back to JS-based animation. To ' +\n 'resolve this, add `RCTAnimation` module to this app, or remove ' +\n '`useNativeDriver`. ' +\n 'Make sure to run `bundle exec pod install` first. Read more about autolinking: https://github.com/react-native-community/cli/blob/master/docs/autolinking.md',\n );\n _warnedMissingNativeAnimated = true;\n }\n }\n return false;\n }\n\n return config.useNativeDriver || false;\n}\n\nfunction transformDataType(value: number | string): number | string {\n // Change the string type to number type so we can reuse the same logic in\n // iOS and Android platform\n if (typeof value !== 'string') {\n return value;\n }\n if (/deg$/.test(value)) {\n const degrees = parseFloat(value) || 0;\n const radians = (degrees * Math.PI) / 180.0;\n return radians;\n } else {\n return value;\n }\n}\n\nexport default {\n API,\n isSupportedColorStyleProp,\n isSupportedStyleProp,\n isSupportedTransformProp,\n isSupportedInterpolationParam,\n addWhitelistedStyleProp,\n addWhitelistedTransformProp,\n addWhitelistedInterpolationParam,\n validateStyles,\n validateTransform,\n validateInterpolation,\n generateNewNodeTag,\n generateNewAnimationId,\n assertNativeAnimatedModule,\n shouldUseNativeDriver,\n transformDataType,\n // $FlowExpectedError[unsafe-getters-setters] - unsafe getter lint suppression\n // $FlowExpectedError[missing-type-arg] - unsafe getter lint suppression\n get nativeEventEmitter(): NativeEventEmitter {\n if (!nativeEventEmitter) {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n nativeEventEmitter = new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeAnimatedModule,\n );\n }\n return nativeEventEmitter;\n },\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\ntype EndResult = {finished: boolean, ...};\ntype EndCallback = (result: EndResult) => void;\ntype SaveValueCallback = (value: number) => void;\n\nexport type EventMapping = {|\n nativeEventPath: Array,\n animatedValueTag: ?number,\n|};\n\n// The config has different keys depending on the type of the Node\n// TODO(T54896888): Make these types strict\nexport type AnimatedNodeConfig = Object;\nexport type AnimatingNodeConfig = Object;\n\nexport interface Spec extends TurboModule {\n +startOperationBatch: () => void;\n +finishOperationBatch: () => void;\n +createAnimatedNode: (tag: number, config: AnimatedNodeConfig) => void;\n +updateAnimatedNodeConfig?: (tag: number, config: AnimatedNodeConfig) => void;\n +getValue: (tag: number, saveValueCallback: SaveValueCallback) => void;\n +startListeningToAnimatedNodeValue: (tag: number) => void;\n +stopListeningToAnimatedNodeValue: (tag: number) => void;\n +connectAnimatedNodes: (parentTag: number, childTag: number) => void;\n +disconnectAnimatedNodes: (parentTag: number, childTag: number) => void;\n +startAnimatingNode: (\n animationId: number,\n nodeTag: number,\n config: AnimatingNodeConfig,\n endCallback: EndCallback,\n ) => void;\n +stopAnimation: (animationId: number) => void;\n +setAnimatedNodeValue: (nodeTag: number, value: number) => void;\n +setAnimatedNodeOffset: (nodeTag: number, offset: number) => void;\n +flattenAnimatedNodeOffset: (nodeTag: number) => void;\n +extractAnimatedNodeOffset: (nodeTag: number) => void;\n +connectAnimatedNodeToView: (nodeTag: number, viewTag: number) => void;\n +disconnectAnimatedNodeFromView: (nodeTag: number, viewTag: number) => void;\n +restoreDefaultValues: (nodeTag: number) => void;\n +dropAnimatedNode: (tag: number) => void;\n +addAnimatedEventToView: (\n viewTag: number,\n eventName: string,\n eventMapping: EventMapping,\n ) => void;\n +removeAnimatedEventFromView: (\n viewTag: number,\n eventName: string,\n animatedNodeTag: number,\n ) => void;\n\n // Events\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n\n // All of the above in a batched mode\n +queueAndExecuteBatchedOperations?: (operationsAndArgs: Array) => void;\n}\n\nexport default (TurboModuleRegistry.get('NativeAnimatedModule'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\ntype EndResult = {finished: boolean, ...};\ntype EndCallback = (result: EndResult) => void;\ntype SaveValueCallback = (value: number) => void;\n\nexport type EventMapping = {|\n nativeEventPath: Array,\n animatedValueTag: ?number,\n|};\n\n// The config has different keys depending on the type of the Node\n// TODO(T54896888): Make these types strict\nexport type AnimatedNodeConfig = Object;\nexport type AnimatingNodeConfig = Object;\n\nexport interface Spec extends TurboModule {\n +startOperationBatch: () => void;\n +finishOperationBatch: () => void;\n +createAnimatedNode: (tag: number, config: AnimatedNodeConfig) => void;\n +updateAnimatedNodeConfig?: (tag: number, config: AnimatedNodeConfig) => void;\n +getValue: (tag: number, saveValueCallback: SaveValueCallback) => void;\n +startListeningToAnimatedNodeValue: (tag: number) => void;\n +stopListeningToAnimatedNodeValue: (tag: number) => void;\n +connectAnimatedNodes: (parentTag: number, childTag: number) => void;\n +disconnectAnimatedNodes: (parentTag: number, childTag: number) => void;\n +startAnimatingNode: (\n animationId: number,\n nodeTag: number,\n config: AnimatingNodeConfig,\n endCallback: EndCallback,\n ) => void;\n +stopAnimation: (animationId: number) => void;\n +setAnimatedNodeValue: (nodeTag: number, value: number) => void;\n +setAnimatedNodeOffset: (nodeTag: number, offset: number) => void;\n +flattenAnimatedNodeOffset: (nodeTag: number) => void;\n +extractAnimatedNodeOffset: (nodeTag: number) => void;\n +connectAnimatedNodeToView: (nodeTag: number, viewTag: number) => void;\n +disconnectAnimatedNodeFromView: (nodeTag: number, viewTag: number) => void;\n +restoreDefaultValues: (nodeTag: number) => void;\n +dropAnimatedNode: (tag: number) => void;\n +addAnimatedEventToView: (\n viewTag: number,\n eventName: string,\n eventMapping: EventMapping,\n ) => void;\n +removeAnimatedEventFromView: (\n viewTag: number,\n eventName: string,\n animatedNodeTag: number,\n ) => void;\n\n // Events\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n\n // All of the above in a batched mode\n +queueAndExecuteBatchedOperations?: (operationsAndArgs: Array) => void;\n}\n\nexport default (TurboModuleRegistry.get(\n 'NativeAnimatedTurboModule',\n): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type AnimatedValue from '../nodes/AnimatedValue';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\n\nexport type EndResult = {finished: boolean, ...};\nexport type EndCallback = (result: EndResult) => void;\n\nexport type AnimationConfig = {\n isInteraction?: boolean,\n useNativeDriver: boolean,\n platformConfig?: PlatformConfig,\n onComplete?: ?EndCallback,\n iterations?: number,\n};\n\nlet startNativeAnimationNextId = 1;\n\n// Important note: start() and stop() will only be called at most once.\n// Once an animation has been stopped or finished its course, it will\n// not be reused.\nexport default class Animation {\n __active: boolean;\n __isInteraction: boolean;\n __nativeId: number;\n __onEnd: ?EndCallback;\n __iterations: number;\n start(\n fromValue: number,\n onUpdate: (value: number) => void,\n onEnd: ?EndCallback,\n previousAnimation: ?Animation,\n animatedValue: AnimatedValue,\n ): void {}\n stop(): void {\n if (this.__nativeId) {\n NativeAnimatedHelper.API.stopAnimation(this.__nativeId);\n }\n }\n __getNativeAnimationConfig(): any {\n // Subclasses that have corresponding animation implementation done in native\n // should override this method\n throw new Error('This animation type cannot be offloaded to native');\n }\n // Helper function for subclasses to make sure onEnd is only called once.\n __debouncedOnEnd(result: EndResult): void {\n const onEnd = this.__onEnd;\n this.__onEnd = null;\n onEnd && onEnd(result);\n }\n __startNativeAnimation(animatedValue: AnimatedValue): void {\n const startNativeAnimationWaitId = `${startNativeAnimationNextId}:startAnimation`;\n startNativeAnimationNextId += 1;\n NativeAnimatedHelper.API.setWaitingForIdentifier(\n startNativeAnimationWaitId,\n );\n try {\n const config = this.__getNativeAnimationConfig();\n animatedValue.__makeNative(config.platformConfig);\n this.__nativeId = NativeAnimatedHelper.generateNewAnimationId();\n NativeAnimatedHelper.API.startAnimatingNode(\n this.__nativeId,\n animatedValue.__getNativeTag(),\n config,\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.__debouncedOnEnd.bind(this),\n );\n } catch (e) {\n throw e;\n } finally {\n NativeAnimatedHelper.API.unsetWaitingForIdentifier(\n startNativeAnimationWaitId,\n );\n }\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type AnimatedInterpolation from '../nodes/AnimatedInterpolation';\nimport type AnimatedValue from '../nodes/AnimatedValue';\nimport type AnimatedValueXY from '../nodes/AnimatedValueXY';\nimport type {AnimationConfig, EndCallback} from './Animation';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedColor from '../nodes/AnimatedColor';\nimport * as SpringConfig from '../SpringConfig';\nimport Animation from './Animation';\nimport invariant from 'invariant';\n\nexport type SpringAnimationConfig = {\n ...AnimationConfig,\n toValue:\n | number\n | AnimatedValue\n | {\n x: number,\n y: number,\n ...\n }\n | AnimatedValueXY\n | {\n r: number,\n g: number,\n b: number,\n a: number,\n ...\n }\n | AnimatedColor\n | AnimatedInterpolation,\n overshootClamping?: boolean,\n restDisplacementThreshold?: number,\n restSpeedThreshold?: number,\n velocity?:\n | number\n | {\n x: number,\n y: number,\n ...\n },\n bounciness?: number,\n speed?: number,\n tension?: number,\n friction?: number,\n stiffness?: number,\n damping?: number,\n mass?: number,\n delay?: number,\n};\n\nexport type SpringAnimationConfigSingle = {\n ...AnimationConfig,\n toValue: number,\n overshootClamping?: boolean,\n restDisplacementThreshold?: number,\n restSpeedThreshold?: number,\n velocity?: number,\n bounciness?: number,\n speed?: number,\n tension?: number,\n friction?: number,\n stiffness?: number,\n damping?: number,\n mass?: number,\n delay?: number,\n};\n\nexport default class SpringAnimation extends Animation {\n _overshootClamping: boolean;\n _restDisplacementThreshold: number;\n _restSpeedThreshold: number;\n _lastVelocity: number;\n _startPosition: number;\n _lastPosition: number;\n _fromValue: number;\n _toValue: number;\n _stiffness: number;\n _damping: number;\n _mass: number;\n _initialVelocity: number;\n _delay: number;\n _timeout: any;\n _startTime: number;\n _lastTime: number;\n _frameTime: number;\n _onUpdate: (value: number) => void;\n _animationFrame: any;\n _useNativeDriver: boolean;\n _platformConfig: ?PlatformConfig;\n\n constructor(config: SpringAnimationConfigSingle) {\n super();\n\n this._overshootClamping = config.overshootClamping ?? false;\n this._restDisplacementThreshold = config.restDisplacementThreshold ?? 0.001;\n this._restSpeedThreshold = config.restSpeedThreshold ?? 0.001;\n this._initialVelocity = config.velocity ?? 0;\n this._lastVelocity = config.velocity ?? 0;\n this._toValue = config.toValue;\n this._delay = config.delay ?? 0;\n this._useNativeDriver = NativeAnimatedHelper.shouldUseNativeDriver(config);\n this._platformConfig = config.platformConfig;\n this.__isInteraction = config.isInteraction ?? !this._useNativeDriver;\n this.__iterations = config.iterations ?? 1;\n\n if (\n config.stiffness !== undefined ||\n config.damping !== undefined ||\n config.mass !== undefined\n ) {\n invariant(\n config.bounciness === undefined &&\n config.speed === undefined &&\n config.tension === undefined &&\n config.friction === undefined,\n 'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one',\n );\n this._stiffness = config.stiffness ?? 100;\n this._damping = config.damping ?? 10;\n this._mass = config.mass ?? 1;\n } else if (config.bounciness !== undefined || config.speed !== undefined) {\n // Convert the origami bounciness/speed values to stiffness/damping\n // We assume mass is 1.\n invariant(\n config.tension === undefined &&\n config.friction === undefined &&\n config.stiffness === undefined &&\n config.damping === undefined &&\n config.mass === undefined,\n 'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one',\n );\n const springConfig = SpringConfig.fromBouncinessAndSpeed(\n config.bounciness ?? 8,\n config.speed ?? 12,\n );\n this._stiffness = springConfig.stiffness;\n this._damping = springConfig.damping;\n this._mass = 1;\n } else {\n // Convert the origami tension/friction values to stiffness/damping\n // We assume mass is 1.\n const springConfig = SpringConfig.fromOrigamiTensionAndFriction(\n config.tension ?? 40,\n config.friction ?? 7,\n );\n this._stiffness = springConfig.stiffness;\n this._damping = springConfig.damping;\n this._mass = 1;\n }\n\n invariant(this._stiffness > 0, 'Stiffness value must be greater than 0');\n invariant(this._damping > 0, 'Damping value must be greater than 0');\n invariant(this._mass > 0, 'Mass value must be greater than 0');\n }\n\n __getNativeAnimationConfig(): {|\n damping: number,\n initialVelocity: number,\n iterations: number,\n mass: number,\n platformConfig: ?PlatformConfig,\n overshootClamping: boolean,\n restDisplacementThreshold: number,\n restSpeedThreshold: number,\n stiffness: number,\n toValue: any,\n type: $TEMPORARY$string<'spring'>,\n |} {\n return {\n type: 'spring',\n overshootClamping: this._overshootClamping,\n restDisplacementThreshold: this._restDisplacementThreshold,\n restSpeedThreshold: this._restSpeedThreshold,\n stiffness: this._stiffness,\n damping: this._damping,\n mass: this._mass,\n initialVelocity: this._initialVelocity ?? this._lastVelocity,\n toValue: this._toValue,\n iterations: this.__iterations,\n platformConfig: this._platformConfig,\n };\n }\n\n start(\n fromValue: number,\n onUpdate: (value: number) => void,\n onEnd: ?EndCallback,\n previousAnimation: ?Animation,\n animatedValue: AnimatedValue,\n ): void {\n this.__active = true;\n this._startPosition = fromValue;\n this._lastPosition = this._startPosition;\n\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n this._lastTime = Date.now();\n this._frameTime = 0.0;\n\n if (previousAnimation instanceof SpringAnimation) {\n const internalState = previousAnimation.getInternalState();\n this._lastPosition = internalState.lastPosition;\n this._lastVelocity = internalState.lastVelocity;\n // Set the initial velocity to the last velocity\n this._initialVelocity = this._lastVelocity;\n this._lastTime = internalState.lastTime;\n }\n\n const start = () => {\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n this.onUpdate();\n }\n };\n\n // If this._delay is more than 0, we start after the timeout.\n if (this._delay) {\n this._timeout = setTimeout(start, this._delay);\n } else {\n start();\n }\n }\n\n getInternalState(): Object {\n return {\n lastPosition: this._lastPosition,\n lastVelocity: this._lastVelocity,\n lastTime: this._lastTime,\n };\n }\n\n /**\n * This spring model is based off of a damped harmonic oscillator\n * (https://en.wikipedia.org/wiki/Harmonic_oscillator#Damped_harmonic_oscillator).\n *\n * We use the closed form of the second order differential equation:\n *\n * x'' + (2΢⍡_0)x' + ⍡^2x = 0\n *\n * where\n * ⍡_0 = √(k / m) (undamped angular frequency of the oscillator),\n * ΞΆ = c / 2√mk (damping ratio),\n * c = damping constant\n * k = stiffness\n * m = mass\n *\n * The derivation of the closed form is described in detail here:\n * http://planetmath.org/sites/default/files/texpdf/39745.pdf\n *\n * This algorithm happens to match the algorithm used by CASpringAnimation,\n * a QuartzCore (iOS) API that creates spring animations.\n */\n onUpdate(): void {\n // If for some reason we lost a lot of frames (e.g. process large payload or\n // stopped in the debugger), we only advance by 4 frames worth of\n // computation and will continue on the next frame. It's better to have it\n // running at faster speed than jumping to the end.\n const MAX_STEPS = 64;\n let now = Date.now();\n if (now > this._lastTime + MAX_STEPS) {\n now = this._lastTime + MAX_STEPS;\n }\n\n const deltaTime = (now - this._lastTime) / 1000;\n this._frameTime += deltaTime;\n\n const c: number = this._damping;\n const m: number = this._mass;\n const k: number = this._stiffness;\n const v0: number = -this._initialVelocity;\n\n const zeta = c / (2 * Math.sqrt(k * m)); // damping ratio\n const omega0 = Math.sqrt(k / m); // undamped angular frequency of the oscillator (rad/ms)\n const omega1 = omega0 * Math.sqrt(1.0 - zeta * zeta); // exponential decay\n const x0 = this._toValue - this._startPosition; // calculate the oscillation from x0 = 1 to x = 0\n\n let position = 0.0;\n let velocity = 0.0;\n const t = this._frameTime;\n if (zeta < 1) {\n // Under damped\n const envelope = Math.exp(-zeta * omega0 * t);\n position =\n this._toValue -\n envelope *\n (((v0 + zeta * omega0 * x0) / omega1) * Math.sin(omega1 * t) +\n x0 * Math.cos(omega1 * t));\n // This looks crazy -- it's actually just the derivative of the\n // oscillation function\n velocity =\n zeta *\n omega0 *\n envelope *\n ((Math.sin(omega1 * t) * (v0 + zeta * omega0 * x0)) / omega1 +\n x0 * Math.cos(omega1 * t)) -\n envelope *\n (Math.cos(omega1 * t) * (v0 + zeta * omega0 * x0) -\n omega1 * x0 * Math.sin(omega1 * t));\n } else {\n // Critically damped\n const envelope = Math.exp(-omega0 * t);\n position = this._toValue - envelope * (x0 + (v0 + omega0 * x0) * t);\n velocity =\n envelope * (v0 * (t * omega0 - 1) + t * x0 * (omega0 * omega0));\n }\n\n this._lastTime = now;\n this._lastPosition = position;\n this._lastVelocity = velocity;\n\n this._onUpdate(position);\n if (!this.__active) {\n // a listener might have stopped us in _onUpdate\n return;\n }\n\n // Conditions for stopping the spring animation\n let isOvershooting = false;\n if (this._overshootClamping && this._stiffness !== 0) {\n if (this._startPosition < this._toValue) {\n isOvershooting = position > this._toValue;\n } else {\n isOvershooting = position < this._toValue;\n }\n }\n const isVelocity = Math.abs(velocity) <= this._restSpeedThreshold;\n let isDisplacement = true;\n if (this._stiffness !== 0) {\n isDisplacement =\n Math.abs(this._toValue - position) <= this._restDisplacementThreshold;\n }\n\n if (isOvershooting || (isVelocity && isDisplacement)) {\n if (this._stiffness !== 0) {\n // Ensure that we end up with a round value\n this._lastPosition = this._toValue;\n this._lastVelocity = 0;\n this._onUpdate(this._toValue);\n }\n\n this.__debouncedOnEnd({finished: true});\n return;\n }\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n\n stop(): void {\n super.stop();\n this.__active = false;\n clearTimeout(this._timeout);\n global.cancelAnimationFrame(this._animationFrame);\n this.__debouncedOnEnd({finished: false});\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {NativeColorValue} from '../../StyleSheet/PlatformColorValueTypes';\nimport type {ProcessedColorValue} from '../../StyleSheet/processColor';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport normalizeColor from '../../StyleSheet/normalizeColor';\nimport {processColorObject} from '../../StyleSheet/PlatformColorValueTypes';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedValue, {flushValue} from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport type AnimatedColorConfig = $ReadOnly<{\n useNativeDriver: boolean,\n}>;\n\ntype ColorListenerCallback = (value: ColorValue) => mixed;\n\nexport type RgbaValue = {\n +r: number,\n +g: number,\n +b: number,\n +a: number,\n ...\n};\n\ntype RgbaAnimatedValue = {\n +r: AnimatedValue,\n +g: AnimatedValue,\n +b: AnimatedValue,\n +a: AnimatedValue,\n ...\n};\n\nexport type InputValue = ?(RgbaValue | RgbaAnimatedValue | ColorValue);\n\nconst NativeAnimatedAPI = NativeAnimatedHelper.API;\n\nconst defaultColor: RgbaValue = {r: 0, g: 0, b: 0, a: 1.0};\n\n/* eslint no-bitwise: 0 */\nfunction processColor(\n color?: ?(ColorValue | RgbaValue),\n): ?(RgbaValue | NativeColorValue) {\n if (color === undefined || color === null) {\n return null;\n }\n\n if (isRgbaValue(color)) {\n // $FlowIgnore[incompatible-cast] - Type is verified above\n return (color: RgbaValue);\n }\n\n let normalizedColor: ?ProcessedColorValue = normalizeColor(\n // $FlowIgnore[incompatible-cast] - Type is verified above\n (color: ColorValue),\n );\n if (normalizedColor === undefined || normalizedColor === null) {\n return null;\n }\n\n if (typeof normalizedColor === 'object') {\n const processedColorObj: ?NativeColorValue =\n processColorObject(normalizedColor);\n if (processedColorObj != null) {\n return processedColorObj;\n }\n } else if (typeof normalizedColor === 'number') {\n const r: number = (normalizedColor & 0xff000000) >>> 24;\n const g: number = (normalizedColor & 0x00ff0000) >>> 16;\n const b: number = (normalizedColor & 0x0000ff00) >>> 8;\n const a: number = (normalizedColor & 0x000000ff) / 255;\n\n return {r, g, b, a};\n }\n\n return null;\n}\n\nfunction isRgbaValue(value: any): boolean {\n return (\n value &&\n typeof value.r === 'number' &&\n typeof value.g === 'number' &&\n typeof value.b === 'number' &&\n typeof value.a === 'number'\n );\n}\n\nfunction isRgbaAnimatedValue(value: any): boolean {\n return (\n value &&\n value.r instanceof AnimatedValue &&\n value.g instanceof AnimatedValue &&\n value.b instanceof AnimatedValue &&\n value.a instanceof AnimatedValue\n );\n}\n\nexport default class AnimatedColor extends AnimatedWithChildren {\n r: AnimatedValue;\n g: AnimatedValue;\n b: AnimatedValue;\n a: AnimatedValue;\n nativeColor: ?NativeColorValue;\n\n _suspendCallbacks: number = 0;\n\n constructor(valueIn?: InputValue, config?: ?AnimatedColorConfig) {\n super();\n\n let value: RgbaValue | RgbaAnimatedValue | ColorValue =\n valueIn ?? defaultColor;\n if (isRgbaAnimatedValue(value)) {\n // $FlowIgnore[incompatible-cast] - Type is verified above\n const rgbaAnimatedValue: RgbaAnimatedValue = (value: RgbaAnimatedValue);\n this.r = rgbaAnimatedValue.r;\n this.g = rgbaAnimatedValue.g;\n this.b = rgbaAnimatedValue.b;\n this.a = rgbaAnimatedValue.a;\n } else {\n const processedColor: RgbaValue | NativeColorValue =\n // $FlowIgnore[incompatible-cast] - Type is verified above\n processColor((value: ColorValue | RgbaValue)) ?? defaultColor;\n let initColor: RgbaValue = defaultColor;\n if (isRgbaValue(processedColor)) {\n // $FlowIgnore[incompatible-cast] - Type is verified above\n initColor = (processedColor: RgbaValue);\n } else {\n // $FlowIgnore[incompatible-cast] - Type is verified above\n this.nativeColor = (processedColor: NativeColorValue);\n }\n\n this.r = new AnimatedValue(initColor.r);\n this.g = new AnimatedValue(initColor.g);\n this.b = new AnimatedValue(initColor.b);\n this.a = new AnimatedValue(initColor.a);\n }\n\n if (config?.useNativeDriver) {\n this.__makeNative();\n }\n }\n\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n */\n setValue(value: RgbaValue | ColorValue): void {\n let shouldUpdateNodeConfig = false;\n if (this.__isNative) {\n const nativeTag = this.__getNativeTag();\n NativeAnimatedAPI.setWaitingForIdentifier(nativeTag.toString());\n }\n\n const processedColor: RgbaValue | NativeColorValue =\n processColor(value) ?? defaultColor;\n this._withSuspendedCallbacks(() => {\n if (isRgbaValue(processedColor)) {\n // $FlowIgnore[incompatible-type] - Type is verified above\n const rgbaValue: RgbaValue = processedColor;\n this.r.setValue(rgbaValue.r);\n this.g.setValue(rgbaValue.g);\n this.b.setValue(rgbaValue.b);\n this.a.setValue(rgbaValue.a);\n if (this.nativeColor != null) {\n this.nativeColor = null;\n shouldUpdateNodeConfig = true;\n }\n } else {\n // $FlowIgnore[incompatible-type] - Type is verified above\n const nativeColor: NativeColorValue = processedColor;\n if (this.nativeColor !== nativeColor) {\n this.nativeColor = nativeColor;\n shouldUpdateNodeConfig = true;\n }\n }\n });\n\n if (this.__isNative) {\n const nativeTag = this.__getNativeTag();\n if (shouldUpdateNodeConfig) {\n NativeAnimatedAPI.updateAnimatedNodeConfig(\n nativeTag,\n this.__getNativeConfig(),\n );\n }\n NativeAnimatedAPI.unsetWaitingForIdentifier(nativeTag.toString());\n } else {\n flushValue(this);\n }\n\n // $FlowFixMe[incompatible-call]\n this.__callListeners(this.__getValue());\n }\n\n /**\n * Sets an offset that is applied on top of whatever value is set, whether\n * via `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n */\n setOffset(offset: RgbaValue): void {\n this.r.setOffset(offset.r);\n this.g.setOffset(offset.g);\n this.b.setOffset(offset.b);\n this.a.setOffset(offset.a);\n }\n\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n */\n flattenOffset(): void {\n this.r.flattenOffset();\n this.g.flattenOffset();\n this.b.flattenOffset();\n this.a.flattenOffset();\n }\n\n /**\n * Sets the offset value to the base value, and resets the base value to\n * zero. The final output of the value is unchanged.\n */\n extractOffset(): void {\n this.r.extractOffset();\n this.g.extractOffset();\n this.b.extractOffset();\n this.a.extractOffset();\n }\n\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n */\n stopAnimation(callback?: ColorListenerCallback): void {\n this.r.stopAnimation();\n this.g.stopAnimation();\n this.b.stopAnimation();\n this.a.stopAnimation();\n callback && callback(this.__getValue());\n }\n\n /**\n * Stops any animation and resets the value to its original.\n */\n resetAnimation(callback?: ColorListenerCallback): void {\n this.r.resetAnimation();\n this.g.resetAnimation();\n this.b.resetAnimation();\n this.a.resetAnimation();\n callback && callback(this.__getValue());\n }\n\n __getValue(): ColorValue {\n if (this.nativeColor != null) {\n return this.nativeColor;\n } else {\n return `rgba(${this.r.__getValue()}, ${this.g.__getValue()}, ${this.b.__getValue()}, ${this.a.__getValue()})`;\n }\n }\n\n __attach(): void {\n this.r.__addChild(this);\n this.g.__addChild(this);\n this.b.__addChild(this);\n this.a.__addChild(this);\n super.__attach();\n }\n\n __detach(): void {\n this.r.__removeChild(this);\n this.g.__removeChild(this);\n this.b.__removeChild(this);\n this.a.__removeChild(this);\n super.__detach();\n }\n\n _withSuspendedCallbacks(callback: () => void) {\n this._suspendCallbacks++;\n callback();\n this._suspendCallbacks--;\n }\n\n __callListeners(value: number): void {\n if (this._suspendCallbacks === 0) {\n super.__callListeners(value);\n }\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this.r.__makeNative(platformConfig);\n this.g.__makeNative(platformConfig);\n this.b.__makeNative(platformConfig);\n this.a.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getNativeConfig(): {...} {\n return {\n type: 'color',\n r: this.r.__getNativeTag(),\n g: this.g.__getNativeTag(),\n b: this.b.__getNativeTag(),\n a: this.a.__getNativeTag(),\n nativeColor: this.nativeColor,\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type Animation, {EndCallback} from '../animations/Animation';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\nimport type AnimatedNode from './AnimatedNode';\nimport type AnimatedTracking from './AnimatedTracking';\n\nimport InteractionManager from '../../Interaction/InteractionManager';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport type AnimatedValueConfig = $ReadOnly<{\n useNativeDriver: boolean,\n}>;\n\nconst NativeAnimatedAPI = NativeAnimatedHelper.API;\n\n/**\n * Animated works by building a directed acyclic graph of dependencies\n * transparently when you render your Animated components.\n *\n * new Animated.Value(0)\n * .interpolate() .interpolate() new Animated.Value(1)\n * opacity translateY scale\n * style transform\n * View#234 style\n * View#123\n *\n * A) Top Down phase\n * When an Animated.Value is updated, we recursively go down through this\n * graph in order to find leaf nodes: the views that we flag as needing\n * an update.\n *\n * B) Bottom Up phase\n * When a view is flagged as needing an update, we recursively go back up\n * in order to build the new value that it needs. The reason why we need\n * this two-phases process is to deal with composite props such as\n * transform which can receive values from multiple parents.\n */\nexport function flushValue(rootNode: AnimatedNode): void {\n const leaves = new Set<{update: () => void, ...}>();\n function findAnimatedStyles(node: AnimatedNode) {\n // $FlowFixMe[prop-missing]\n if (typeof node.update === 'function') {\n leaves.add((node: any));\n } else {\n node.__getChildren().forEach(findAnimatedStyles);\n }\n }\n findAnimatedStyles(rootNode);\n leaves.forEach(leaf => leaf.update());\n}\n\n/**\n * Some operations are executed only on batch end, which is _mostly_ scheduled when\n * Animated component props change. For some of the changes which require immediate execution\n * (e.g. setValue), we create a separate batch in case none is scheduled.\n */\nfunction _executeAsAnimatedBatch(id: string, operation: () => void) {\n NativeAnimatedAPI.setWaitingForIdentifier(id);\n operation();\n NativeAnimatedAPI.unsetWaitingForIdentifier(id);\n}\n\n/**\n * Standard value for driving animations. One `Animated.Value` can drive\n * multiple properties in a synchronized fashion, but can only be driven by one\n * mechanism at a time. Using a new mechanism (e.g. starting a new animation,\n * or calling `setValue`) will stop any previous ones.\n *\n * See https://reactnative.dev/docs/animatedvalue\n */\nexport default class AnimatedValue extends AnimatedWithChildren {\n _value: number;\n _startingValue: number;\n _offset: number;\n _animation: ?Animation;\n _tracking: ?AnimatedTracking;\n\n constructor(value: number, config?: ?AnimatedValueConfig) {\n super();\n if (typeof value !== 'number') {\n throw new Error('AnimatedValue: Attempting to set value to undefined');\n }\n this._startingValue = this._value = value;\n this._offset = 0;\n this._animation = null;\n if (config && config.useNativeDriver) {\n this.__makeNative();\n }\n }\n\n __detach() {\n if (this.__isNative) {\n NativeAnimatedAPI.getValue(this.__getNativeTag(), value => {\n this._value = value - this._offset;\n });\n }\n this.stopAnimation();\n super.__detach();\n }\n\n __getValue(): number {\n return this._value + this._offset;\n }\n\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n *\n * See https://reactnative.dev/docs/animatedvalue#setvalue\n */\n setValue(value: number): void {\n if (this._animation) {\n this._animation.stop();\n this._animation = null;\n }\n this._updateValue(\n value,\n !this.__isNative /* don't perform a flush for natively driven values */,\n );\n if (this.__isNative) {\n _executeAsAnimatedBatch(this.__getNativeTag().toString(), () =>\n NativeAnimatedAPI.setAnimatedNodeValue(this.__getNativeTag(), value),\n );\n }\n }\n\n /**\n * Sets an offset that is applied on top of whatever value is set, whether via\n * `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n *\n * See https://reactnative.dev/docs/animatedvalue#setoffset\n */\n setOffset(offset: number): void {\n this._offset = offset;\n if (this.__isNative) {\n NativeAnimatedAPI.setAnimatedNodeOffset(this.__getNativeTag(), offset);\n }\n }\n\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvalue#flattenoffset\n */\n flattenOffset(): void {\n this._value += this._offset;\n this._offset = 0;\n if (this.__isNative) {\n NativeAnimatedAPI.flattenAnimatedNodeOffset(this.__getNativeTag());\n }\n }\n\n /**\n * Sets the offset value to the base value, and resets the base value to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvalue#extractoffset\n */\n extractOffset(): void {\n this._offset += this._value;\n this._value = 0;\n if (this.__isNative) {\n NativeAnimatedAPI.extractAnimatedNodeOffset(this.__getNativeTag());\n }\n }\n\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n *\n * See https://reactnative.dev/docs/animatedvalue#stopanimation\n */\n stopAnimation(callback?: ?(value: number) => void): void {\n this.stopTracking();\n this._animation && this._animation.stop();\n this._animation = null;\n if (callback) {\n if (this.__isNative) {\n NativeAnimatedAPI.getValue(this.__getNativeTag(), callback);\n } else {\n callback(this.__getValue());\n }\n }\n }\n\n /**\n * Stops any animation and resets the value to its original.\n *\n * See https://reactnative.dev/docs/animatedvalue#resetanimation\n */\n resetAnimation(callback?: ?(value: number) => void): void {\n this.stopAnimation(callback);\n this._value = this._startingValue;\n if (this.__isNative) {\n NativeAnimatedAPI.setAnimatedNodeValue(\n this.__getNativeTag(),\n this._startingValue,\n );\n }\n }\n\n __onAnimatedValueUpdateReceived(value: number): void {\n this._updateValue(value, false /*flush*/);\n }\n\n /**\n * Interpolates the value before updating the property, e.g. mapping 0-1 to\n * 0-10.\n */\n interpolate(\n config: InterpolationConfigType,\n ): AnimatedInterpolation {\n return new AnimatedInterpolation(this, config);\n }\n\n /**\n * Typically only used internally, but could be used by a custom Animation\n * class.\n *\n * See https://reactnative.dev/docs/animatedvalue#animate\n */\n animate(animation: Animation, callback: ?EndCallback): void {\n let handle = null;\n if (animation.__isInteraction) {\n handle = InteractionManager.createInteractionHandle();\n }\n const previousAnimation = this._animation;\n this._animation && this._animation.stop();\n this._animation = animation;\n animation.start(\n this._value,\n value => {\n // Natively driven animations will never call into that callback, therefore we can always\n // pass flush = true to allow the updated value to propagate to native with setNativeProps\n this._updateValue(value, true /* flush */);\n },\n result => {\n this._animation = null;\n if (handle !== null) {\n InteractionManager.clearInteractionHandle(handle);\n }\n callback && callback(result);\n },\n previousAnimation,\n this,\n );\n }\n\n /**\n * Typically only used internally.\n */\n stopTracking(): void {\n this._tracking && this._tracking.__detach();\n this._tracking = null;\n }\n\n /**\n * Typically only used internally.\n */\n track(tracking: AnimatedTracking): void {\n this.stopTracking();\n this._tracking = tracking;\n // Make sure that the tracking animation starts executing\n this._tracking && this._tracking.update();\n }\n\n _updateValue(value: number, flush: boolean): void {\n if (value === undefined) {\n throw new Error('AnimatedValue: Attempting to set value to undefined');\n }\n\n this._value = value;\n if (flush) {\n flushValue(this);\n }\n this.__callListeners(this.__getValue());\n }\n\n __getNativeConfig(): Object {\n return {\n type: 'value',\n value: this._value,\n offset: this._offset,\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {Task} from './TaskQueue';\n\nimport EventEmitter from '../vendor/emitter/EventEmitter';\n\nconst BatchedBridge = require('../BatchedBridge/BatchedBridge');\nconst infoLog = require('../Utilities/infoLog');\nconst TaskQueue = require('./TaskQueue');\nconst invariant = require('invariant');\n\nexport type Handle = number;\n\nconst _emitter = new EventEmitter<{\n interactionComplete: [],\n interactionStart: [],\n}>();\n\nconst DEBUG_DELAY: 0 = 0;\nconst DEBUG: false = false;\n\n/**\n * InteractionManager allows long-running work to be scheduled after any\n * interactions/animations have completed. In particular, this allows JavaScript\n * animations to run smoothly.\n *\n * Applications can schedule tasks to run after interactions with the following:\n *\n * ```\n * InteractionManager.runAfterInteractions(() => {\n * // ...long-running synchronous task...\n * });\n * ```\n *\n * Compare this to other scheduling alternatives:\n *\n * - requestAnimationFrame(): for code that animates a view over time.\n * - setImmediate/setTimeout(): run code later, note this may delay animations.\n * - runAfterInteractions(): run code later, without delaying active animations.\n *\n * The touch handling system considers one or more active touches to be an\n * 'interaction' and will delay `runAfterInteractions()` callbacks until all\n * touches have ended or been cancelled.\n *\n * InteractionManager also allows applications to register animations by\n * creating an interaction 'handle' on animation start, and clearing it upon\n * completion:\n *\n * ```\n * var handle = InteractionManager.createInteractionHandle();\n * // run animation... (`runAfterInteractions` tasks are queued)\n * // later, on animation completion:\n * InteractionManager.clearInteractionHandle(handle);\n * // queued tasks run if all handles were cleared\n * ```\n *\n * `runAfterInteractions` takes either a plain callback function, or a\n * `PromiseTask` object with a `gen` method that returns a `Promise`. If a\n * `PromiseTask` is supplied, then it is fully resolved (including asynchronous\n * dependencies that also schedule more tasks via `runAfterInteractions`) before\n * starting on the next task that might have been queued up synchronously\n * earlier.\n *\n * By default, queued tasks are executed together in a loop in one\n * `setImmediate` batch. If `setDeadline` is called with a positive number, then\n * tasks will only be executed until the deadline (in terms of js event loop run\n * time) approaches, at which point execution will yield via setTimeout,\n * allowing events such as touches to start interactions and block queued tasks\n * from executing, making apps more responsive.\n */\nconst InteractionManager = {\n Events: {\n interactionStart: 'interactionStart',\n interactionComplete: 'interactionComplete',\n },\n\n /**\n * Schedule a function to run after all interactions have completed. Returns a cancellable\n * \"promise\".\n */\n runAfterInteractions(task: ?Task): {\n then: (\n onFulfill?: ?(void) => ?(Promise | U),\n onReject?: ?(error: mixed) => ?(Promise | U),\n ) => Promise,\n cancel: () => void,\n ...\n } {\n const tasks: Array = [];\n const promise = new Promise((resolve: () => void) => {\n _scheduleUpdate();\n if (task) {\n tasks.push(task);\n }\n tasks.push({\n run: resolve,\n name: 'resolve ' + ((task && task.name) || '?'),\n });\n _taskQueue.enqueueTasks(tasks);\n });\n return {\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n then: promise.then.bind(promise),\n cancel: function () {\n _taskQueue.cancelTasks(tasks);\n },\n };\n },\n\n /**\n * Notify manager that an interaction has started.\n */\n createInteractionHandle(): Handle {\n DEBUG && infoLog('InteractionManager: create interaction handle');\n _scheduleUpdate();\n const handle = ++_inc;\n _addInteractionSet.add(handle);\n return handle;\n },\n\n /**\n * Notify manager that an interaction has completed.\n */\n clearInteractionHandle(handle: Handle) {\n DEBUG && infoLog('InteractionManager: clear interaction handle');\n invariant(!!handle, 'InteractionManager: Must provide a handle to clear.');\n _scheduleUpdate();\n _addInteractionSet.delete(handle);\n _deleteInteractionSet.add(handle);\n },\n\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n addListener: (_emitter.addListener.bind(_emitter): $FlowFixMe),\n\n /**\n * A positive number will use setTimeout to schedule any tasks after the\n * eventLoopRunningTime hits the deadline value, otherwise all tasks will be\n * executed in one setImmediate batch (default).\n */\n setDeadline(deadline: number) {\n _deadline = deadline;\n },\n};\n\nconst _interactionSet = new Set();\nconst _addInteractionSet = new Set();\nconst _deleteInteractionSet = new Set();\nconst _taskQueue = new TaskQueue({onMoreTasks: _scheduleUpdate});\nlet _nextUpdateHandle: $FlowFixMe | TimeoutID = 0;\nlet _inc = 0;\nlet _deadline = -1;\n\n/**\n * Schedule an asynchronous update to the interaction state.\n */\nfunction _scheduleUpdate() {\n if (!_nextUpdateHandle) {\n if (_deadline > 0) {\n _nextUpdateHandle = setTimeout(_processUpdate, 0 + DEBUG_DELAY);\n } else {\n _nextUpdateHandle = setImmediate(_processUpdate);\n }\n }\n}\n\n/**\n * Notify listeners, process queue, etc\n */\nfunction _processUpdate() {\n _nextUpdateHandle = 0;\n\n const interactionCount = _interactionSet.size;\n _addInteractionSet.forEach(handle => _interactionSet.add(handle));\n _deleteInteractionSet.forEach(handle => _interactionSet.delete(handle));\n const nextInteractionCount = _interactionSet.size;\n\n if (interactionCount !== 0 && nextInteractionCount === 0) {\n // transition from 1+ --> 0 interactions\n _emitter.emit(InteractionManager.Events.interactionComplete);\n } else if (interactionCount === 0 && nextInteractionCount !== 0) {\n // transition from 0 --> 1+ interactions\n _emitter.emit(InteractionManager.Events.interactionStart);\n }\n\n // process the queue regardless of a transition\n if (nextInteractionCount === 0) {\n while (_taskQueue.hasTasksToProcess()) {\n _taskQueue.processNext();\n if (\n _deadline > 0 &&\n BatchedBridge.getEventLoopRunningTime() >= _deadline\n ) {\n // Hit deadline before processing all tasks, so process more later.\n _scheduleUpdate();\n break;\n }\n }\n }\n _addInteractionSet.clear();\n _deleteInteractionSet.clear();\n}\n\nmodule.exports = InteractionManager;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nconst infoLog = require('../Utilities/infoLog');\nconst invariant = require('invariant');\n\ntype SimpleTask = {\n name: string,\n run: () => void,\n};\ntype PromiseTask = {\n name: string,\n gen: () => Promise,\n};\nexport type Task = SimpleTask | PromiseTask | (() => void);\n\nconst DEBUG: false = false;\n\n/**\n * TaskQueue - A system for queueing and executing a mix of simple callbacks and\n * trees of dependent tasks based on Promises. No tasks are executed unless\n * `processNext` is called.\n *\n * `enqueue` takes a Task object with either a simple `run` callback, or a\n * `gen` function that returns a `Promise` and puts it in the queue. If a gen\n * function is supplied, then the promise it returns will block execution of\n * tasks already in the queue until it resolves. This can be used to make sure\n * the first task is fully resolved (including asynchronous dependencies that\n * also schedule more tasks via `enqueue`) before starting on the next task.\n * The `onMoreTasks` constructor argument is used to inform the owner that an\n * async task has resolved and that the queue should be processed again.\n *\n * Note: Tasks are only actually executed with explicit calls to `processNext`.\n */\nclass TaskQueue {\n /**\n * TaskQueue instances are self contained and independent, so multiple tasks\n * of varying semantics and priority can operate together.\n *\n * `onMoreTasks` is invoked when `PromiseTask`s resolve if there are more\n * tasks to process.\n */\n constructor({onMoreTasks}: {onMoreTasks: () => void, ...}) {\n this._onMoreTasks = onMoreTasks;\n this._queueStack = [{tasks: [], popable: false}];\n }\n\n /**\n * Add a task to the queue. It is recommended to name your tasks for easier\n * async debugging. Tasks will not be executed until `processNext` is called\n * explicitly.\n */\n enqueue(task: Task): void {\n this._getCurrentQueue().push(task);\n }\n\n enqueueTasks(tasks: Array): void {\n tasks.forEach(task => this.enqueue(task));\n }\n\n cancelTasks(tasksToCancel: Array): void {\n // search through all tasks and remove them.\n this._queueStack = this._queueStack\n .map(queue => ({\n ...queue,\n tasks: queue.tasks.filter(task => tasksToCancel.indexOf(task) === -1),\n }))\n .filter((queue, idx) => queue.tasks.length > 0 || idx === 0);\n }\n\n /**\n * Check to see if `processNext` should be called.\n *\n * @returns {boolean} Returns true if there are tasks that are ready to be\n * processed with `processNext`, or returns false if there are no more tasks\n * to be processed right now, although there may be tasks in the queue that\n * are blocked by earlier `PromiseTask`s that haven't resolved yet.\n * `onMoreTasks` will be called after each `PromiseTask` resolves if there are\n * tasks ready to run at that point.\n */\n hasTasksToProcess(): boolean {\n return this._getCurrentQueue().length > 0;\n }\n\n /**\n * Executes the next task in the queue.\n */\n processNext(): void {\n const queue = this._getCurrentQueue();\n if (queue.length) {\n const task = queue.shift();\n try {\n if (typeof task === 'object' && task.gen) {\n DEBUG && infoLog('TaskQueue: genPromise for task ' + task.name);\n this._genPromise(task);\n } else if (typeof task === 'object' && task.run) {\n DEBUG && infoLog('TaskQueue: run task ' + task.name);\n task.run();\n } else {\n invariant(\n typeof task === 'function',\n 'Expected Function, SimpleTask, or PromiseTask, but got:\\n' +\n JSON.stringify(task, null, 2),\n );\n DEBUG && infoLog('TaskQueue: run anonymous task');\n task();\n }\n } catch (e) {\n e.message =\n 'TaskQueue: Error with task ' + (task.name || '') + ': ' + e.message;\n throw e;\n }\n }\n }\n\n _queueStack: Array<{\n tasks: Array,\n popable: boolean,\n ...\n }>;\n _onMoreTasks: () => void;\n\n _getCurrentQueue(): Array {\n const stackIdx = this._queueStack.length - 1;\n const queue = this._queueStack[stackIdx];\n if (\n queue.popable &&\n queue.tasks.length === 0 &&\n this._queueStack.length > 1\n ) {\n this._queueStack.pop();\n DEBUG &&\n infoLog('TaskQueue: popped queue: ', {\n stackIdx,\n queueStackSize: this._queueStack.length,\n });\n return this._getCurrentQueue();\n } else {\n return queue.tasks;\n }\n }\n\n _genPromise(task: PromiseTask) {\n // Each async task pushes it's own queue onto the queue stack. This\n // effectively defers execution of previously queued tasks until the promise\n // resolves, at which point we allow the new queue to be popped, which\n // happens once it is fully processed.\n this._queueStack.push({tasks: [], popable: false});\n const stackIdx = this._queueStack.length - 1;\n const stackItem = this._queueStack[stackIdx];\n DEBUG && infoLog('TaskQueue: push new queue: ', {stackIdx});\n DEBUG && infoLog('TaskQueue: exec gen task ' + task.name);\n task\n .gen()\n .then(() => {\n DEBUG &&\n infoLog('TaskQueue: onThen for gen task ' + task.name, {\n stackIdx,\n queueStackSize: this._queueStack.length,\n });\n stackItem.popable = true;\n this.hasTasksToProcess() && this._onMoreTasks();\n })\n .catch(ex => {\n setTimeout(() => {\n ex.message = `TaskQueue: Error resolving Promise in task ${task.name}: ${ex.message}`;\n throw ex;\n }, 0);\n });\n }\n}\n\nmodule.exports = TaskQueue;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n/* eslint no-bitwise: 0 */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type AnimatedNode from './AnimatedNode';\n\nimport normalizeColor from '../../StyleSheet/normalizeColor';\nimport processColor from '../../StyleSheet/processColor';\nimport Easing from '../Easing';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport invariant from 'invariant';\n\ntype ExtrapolateType = 'extend' | 'identity' | 'clamp';\n\nexport type InterpolationConfigType = $ReadOnly<{\n inputRange: $ReadOnlyArray,\n outputRange: $ReadOnlyArray,\n easing?: (input: number) => number,\n extrapolate?: ExtrapolateType,\n extrapolateLeft?: ExtrapolateType,\n extrapolateRight?: ExtrapolateType,\n}>;\n\n/**\n * Very handy helper to map input ranges to output ranges with an easing\n * function and custom behavior outside of the ranges.\n */\nfunction createNumericInterpolation(\n config: InterpolationConfigType,\n): (input: number) => number {\n const outputRange: $ReadOnlyArray = (config.outputRange: any);\n const inputRange = config.inputRange;\n\n const easing = config.easing || Easing.linear;\n\n let extrapolateLeft: ExtrapolateType = 'extend';\n if (config.extrapolateLeft !== undefined) {\n extrapolateLeft = config.extrapolateLeft;\n } else if (config.extrapolate !== undefined) {\n extrapolateLeft = config.extrapolate;\n }\n\n let extrapolateRight: ExtrapolateType = 'extend';\n if (config.extrapolateRight !== undefined) {\n extrapolateRight = config.extrapolateRight;\n } else if (config.extrapolate !== undefined) {\n extrapolateRight = config.extrapolate;\n }\n\n return input => {\n invariant(\n typeof input === 'number',\n 'Cannot interpolation an input which is not a number',\n );\n\n const range = findRange(input, inputRange);\n return (interpolate(\n input,\n inputRange[range],\n inputRange[range + 1],\n outputRange[range],\n outputRange[range + 1],\n easing,\n extrapolateLeft,\n extrapolateRight,\n ): any);\n };\n}\n\nfunction interpolate(\n input: number,\n inputMin: number,\n inputMax: number,\n outputMin: number,\n outputMax: number,\n easing: (input: number) => number,\n extrapolateLeft: ExtrapolateType,\n extrapolateRight: ExtrapolateType,\n) {\n let result = input;\n\n // Extrapolate\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') {\n return result;\n } else if (extrapolateLeft === 'clamp') {\n result = inputMin;\n } else if (extrapolateLeft === 'extend') {\n // noop\n }\n }\n\n if (result > inputMax) {\n if (extrapolateRight === 'identity') {\n return result;\n } else if (extrapolateRight === 'clamp') {\n result = inputMax;\n } else if (extrapolateRight === 'extend') {\n // noop\n }\n }\n\n if (outputMin === outputMax) {\n return outputMin;\n }\n\n if (inputMin === inputMax) {\n if (input <= inputMin) {\n return outputMin;\n }\n return outputMax;\n }\n\n // Input Range\n if (inputMin === -Infinity) {\n result = -result;\n } else if (inputMax === Infinity) {\n result = result - inputMin;\n } else {\n result = (result - inputMin) / (inputMax - inputMin);\n }\n\n // Easing\n result = easing(result);\n\n // Output Range\n if (outputMin === -Infinity) {\n result = -result;\n } else if (outputMax === Infinity) {\n result = result + outputMin;\n } else {\n result = result * (outputMax - outputMin) + outputMin;\n }\n\n return result;\n}\n\nconst numericComponentRegex = /[+-]?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][+-]?\\d+)?/g;\n\n// Maps string inputs an RGBA color or an array of numeric components\nfunction mapStringToNumericComponents(\n input: string,\n):\n | {isColor: true, components: [number, number, number, number]}\n | {isColor: false, components: $ReadOnlyArray} {\n let normalizedColor = normalizeColor(input);\n invariant(\n normalizedColor == null || typeof normalizedColor !== 'object',\n 'PlatformColors are not supported',\n );\n\n if (typeof normalizedColor === 'number') {\n normalizedColor = normalizedColor || 0;\n const r = (normalizedColor & 0xff000000) >>> 24;\n const g = (normalizedColor & 0x00ff0000) >>> 16;\n const b = (normalizedColor & 0x0000ff00) >>> 8;\n const a = (normalizedColor & 0x000000ff) / 255;\n return {isColor: true, components: [r, g, b, a]};\n } else {\n const components: Array = [];\n let lastMatchEnd = 0;\n let match: RegExp$matchResult;\n while ((match = (numericComponentRegex.exec(input): any)) != null) {\n if (match.index > lastMatchEnd) {\n components.push(input.substring(lastMatchEnd, match.index));\n }\n components.push(parseFloat(match[0]));\n lastMatchEnd = match.index + match[0].length;\n }\n invariant(\n components.length > 0,\n 'outputRange must contain color or value with numeric component',\n );\n if (lastMatchEnd < input.length) {\n components.push(input.substring(lastMatchEnd, input.length));\n }\n return {isColor: false, components};\n }\n}\n\n/**\n * Supports string shapes by extracting numbers so new values can be computed,\n * and recombines those values into new strings of the same shape. Supports\n * things like:\n *\n * rgba(123, 42, 99, 0.36) // colors\n * -45deg // values with units\n */\nfunction createStringInterpolation(\n config: InterpolationConfigType,\n): (input: number) => string {\n invariant(config.outputRange.length >= 2, 'Bad output range');\n const outputRange = config.outputRange.map(mapStringToNumericComponents);\n\n const isColor = outputRange[0].isColor;\n if (__DEV__) {\n invariant(\n outputRange.every(output => output.isColor === isColor),\n 'All elements of output range should either be a color or a string with numeric components',\n );\n const firstOutput = outputRange[0].components;\n invariant(\n outputRange.every(\n output => output.components.length === firstOutput.length,\n ),\n 'All elements of output range should have the same number of components',\n );\n invariant(\n outputRange.every(output =>\n output.components.every(\n (component, i) =>\n // $FlowIgnoreMe[invalid-compare]\n typeof component === 'number' || component === firstOutput[i],\n ),\n ),\n 'All elements of output range should have the same non-numeric components',\n );\n }\n\n const numericComponents: $ReadOnlyArray<$ReadOnlyArray> =\n outputRange.map(output =>\n isColor\n ? // $FlowIgnoreMe[incompatible-call]\n output.components\n : // $FlowIgnoreMe[incompatible-call]\n output.components.filter(c => typeof c === 'number'),\n );\n const interpolations = numericComponents[0].map((_, i) =>\n createNumericInterpolation({\n ...config,\n outputRange: numericComponents.map(components => components[i]),\n }),\n );\n if (!isColor) {\n return input => {\n const values = interpolations.map(interpolation => interpolation(input));\n let i = 0;\n return outputRange[0].components\n .map(c => (typeof c === 'number' ? values[i++] : c))\n .join('');\n };\n } else {\n return input => {\n const result = interpolations.map((interpolation, i) => {\n const value = interpolation(input);\n // rgba requires that the r,g,b are integers.... so we want to round them, but we *dont* want to\n // round the opacity (4th column).\n return i < 3 ? Math.round(value) : Math.round(value * 1000) / 1000;\n });\n return `rgba(${result[0]}, ${result[1]}, ${result[2]}, ${result[3]})`;\n };\n }\n}\n\nfunction findRange(input: number, inputRange: $ReadOnlyArray) {\n let i;\n for (i = 1; i < inputRange.length - 1; ++i) {\n if (inputRange[i] >= input) {\n break;\n }\n }\n return i - 1;\n}\n\nfunction checkValidRanges(\n inputRange: $ReadOnlyArray,\n outputRange: $ReadOnlyArray,\n) {\n checkInfiniteRange('outputRange', outputRange);\n checkInfiniteRange('inputRange', inputRange);\n checkValidInputRange(inputRange);\n\n invariant(\n inputRange.length === outputRange.length,\n 'inputRange (' +\n inputRange.length +\n ') and outputRange (' +\n outputRange.length +\n ') must have the same length',\n );\n}\n\nfunction checkValidInputRange(arr: $ReadOnlyArray) {\n invariant(arr.length >= 2, 'inputRange must have at least 2 elements');\n const message =\n 'inputRange must be monotonically non-decreasing ' + String(arr);\n for (let i = 1; i < arr.length; ++i) {\n invariant(arr[i] >= arr[i - 1], message);\n }\n}\n\nfunction checkInfiniteRange(\n name: string,\n arr: $ReadOnlyArray,\n) {\n invariant(arr.length >= 2, name + ' must have at least 2 elements');\n invariant(\n arr.length !== 2 || arr[0] !== -Infinity || arr[1] !== Infinity,\n /* $FlowFixMe[incompatible-type] (>=0.13.0) - In the addition expression\n * below this comment, one or both of the operands may be something that\n * doesn't cleanly convert to a string, like undefined, null, and object,\n * etc. If you really mean this implicit string conversion, you can do\n * something like String(myThing) */\n // $FlowFixMe[unsafe-addition]\n name + 'cannot be ]-infinity;+infinity[ ' + arr,\n );\n}\n\nexport default class AnimatedInterpolation<\n OutputT: number | string,\n> extends AnimatedWithChildren {\n _parent: AnimatedNode;\n _config: InterpolationConfigType;\n _interpolation: ?(input: number) => OutputT;\n\n constructor(parent: AnimatedNode, config: InterpolationConfigType) {\n super();\n this._parent = parent;\n this._config = config;\n\n if (__DEV__) {\n checkValidRanges(config.inputRange, config.outputRange);\n\n // Create interpolation eagerly in dev, so we can signal errors faster\n // even when using the native driver\n this._getInterpolation();\n }\n }\n\n _getInterpolation(): number => OutputT {\n if (!this._interpolation) {\n const config = this._config;\n if (config.outputRange && typeof config.outputRange[0] === 'string') {\n this._interpolation = (createStringInterpolation((config: any)): any);\n } else {\n this._interpolation = (createNumericInterpolation((config: any)): any);\n }\n }\n return this._interpolation;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._parent.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getValue(): OutputT {\n const parentValue: number = this._parent.__getValue();\n invariant(\n typeof parentValue === 'number',\n 'Cannot interpolate an input which is not a number.',\n );\n return this._getInterpolation()(parentValue);\n }\n\n interpolate(\n config: InterpolationConfigType,\n ): AnimatedInterpolation {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach(): void {\n this._parent.__addChild(this);\n }\n\n __detach(): void {\n this._parent.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n if (__DEV__) {\n NativeAnimatedHelper.validateInterpolation(this._config);\n }\n\n // Only the `outputRange` can contain strings so we don't need to transform `inputRange` here\n let outputRange = this._config.outputRange;\n let outputType = null;\n if (typeof outputRange[0] === 'string') {\n // $FlowIgnoreMe[incompatible-cast]\n outputRange = ((outputRange: $ReadOnlyArray).map(value => {\n const processedColor = processColor(value);\n if (typeof processedColor === 'number') {\n outputType = 'color';\n return processedColor;\n } else {\n return NativeAnimatedHelper.transformDataType(value);\n }\n }): any);\n }\n\n return {\n inputRange: this._config.inputRange,\n outputRange,\n outputType,\n extrapolateLeft:\n this._config.extrapolateLeft || this._config.extrapolate || 'extend',\n extrapolateRight:\n this._config.extrapolateRight || this._config.extrapolate || 'extend',\n type: 'interpolation',\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nlet ease;\n\n/**\n * The `Easing` module implements common easing functions. This module is used\n * by [Animate.timing()](docs/animate.html#timing) to convey physically\n * believable motion in animations.\n *\n * You can find a visualization of some common easing functions at\n * http://easings.net/\n *\n * ### Predefined animations\n *\n * The `Easing` module provides several predefined animations through the\n * following methods:\n *\n * - [`back`](docs/easing.html#back) provides a simple animation where the\n * object goes slightly back before moving forward\n * - [`bounce`](docs/easing.html#bounce) provides a bouncing animation\n * - [`ease`](docs/easing.html#ease) provides a simple inertial animation\n * - [`elastic`](docs/easing.html#elastic) provides a simple spring interaction\n *\n * ### Standard functions\n *\n * Three standard easing functions are provided:\n *\n * - [`linear`](docs/easing.html#linear)\n * - [`quad`](docs/easing.html#quad)\n * - [`cubic`](docs/easing.html#cubic)\n *\n * The [`poly`](docs/easing.html#poly) function can be used to implement\n * quartic, quintic, and other higher power functions.\n *\n * ### Additional functions\n *\n * Additional mathematical functions are provided by the following methods:\n *\n * - [`bezier`](docs/easing.html#bezier) provides a cubic bezier curve\n * - [`circle`](docs/easing.html#circle) provides a circular function\n * - [`sin`](docs/easing.html#sin) provides a sinusoidal function\n * - [`exp`](docs/easing.html#exp) provides an exponential function\n *\n * The following helpers are used to modify other easing functions.\n *\n * - [`in`](docs/easing.html#in) runs an easing function forwards\n * - [`inOut`](docs/easing.html#inout) makes any easing function symmetrical\n * - [`out`](docs/easing.html#out) runs an easing function backwards\n */\nconst Easing = {\n /**\n * A stepping function, returns 1 for any positive value of `n`.\n */\n step0(n: number): number {\n return n > 0 ? 1 : 0;\n },\n\n /**\n * A stepping function, returns 1 if `n` is greater than or equal to 1.\n */\n step1(n: number): number {\n return n >= 1 ? 1 : 0;\n },\n\n /**\n * A linear function, `f(t) = t`. Position correlates to elapsed time one to\n * one.\n *\n * http://cubic-bezier.com/#0,0,1,1\n */\n linear(t: number): number {\n return t;\n },\n\n /**\n * A simple inertial interaction, similar to an object slowly accelerating to\n * speed.\n *\n * http://cubic-bezier.com/#.42,0,1,1\n */\n ease(t: number): number {\n if (!ease) {\n ease = Easing.bezier(0.42, 0, 1, 1);\n }\n return ease(t);\n },\n\n /**\n * A quadratic function, `f(t) = t * t`. Position equals the square of elapsed\n * time.\n *\n * http://easings.net/#easeInQuad\n */\n quad(t: number): number {\n return t * t;\n },\n\n /**\n * A cubic function, `f(t) = t * t * t`. Position equals the cube of elapsed\n * time.\n *\n * http://easings.net/#easeInCubic\n */\n cubic(t: number): number {\n return t * t * t;\n },\n\n /**\n * A power function. Position is equal to the Nth power of elapsed time.\n *\n * n = 4: http://easings.net/#easeInQuart\n * n = 5: http://easings.net/#easeInQuint\n */\n poly(n: number): (t: number) => number {\n return (t: number) => Math.pow(t, n);\n },\n\n /**\n * A sinusoidal function.\n *\n * http://easings.net/#easeInSine\n */\n sin(t: number): number {\n return 1 - Math.cos((t * Math.PI) / 2);\n },\n\n /**\n * A circular function.\n *\n * http://easings.net/#easeInCirc\n */\n circle(t: number): number {\n return 1 - Math.sqrt(1 - t * t);\n },\n\n /**\n * An exponential function.\n *\n * http://easings.net/#easeInExpo\n */\n exp(t: number): number {\n return Math.pow(2, 10 * (t - 1));\n },\n\n /**\n * A simple elastic interaction, similar to a spring oscillating back and\n * forth.\n *\n * Default bounciness is 1, which overshoots a little bit once. 0 bounciness\n * doesn't overshoot at all, and bounciness of N > 1 will overshoot about N\n * times.\n *\n * http://easings.net/#easeInElastic\n */\n elastic(bounciness: number = 1): (t: number) => number {\n const p = bounciness * Math.PI;\n return t => 1 - Math.pow(Math.cos((t * Math.PI) / 2), 3) * Math.cos(t * p);\n },\n\n /**\n * Use with `Animated.parallel()` to create a simple effect where the object\n * animates back slightly as the animation starts.\n *\n * https://easings.net/#easeInBack\n */\n back(s: number = 1.70158): (t: number) => number {\n return t => t * t * ((s + 1) * t - s);\n },\n\n /**\n * Provides a simple bouncing effect.\n *\n * http://easings.net/#easeInBounce\n */\n bounce(t: number): number {\n if (t < 1 / 2.75) {\n return 7.5625 * t * t;\n }\n\n if (t < 2 / 2.75) {\n const t2 = t - 1.5 / 2.75;\n return 7.5625 * t2 * t2 + 0.75;\n }\n\n if (t < 2.5 / 2.75) {\n const t2 = t - 2.25 / 2.75;\n return 7.5625 * t2 * t2 + 0.9375;\n }\n\n const t2 = t - 2.625 / 2.75;\n return 7.5625 * t2 * t2 + 0.984375;\n },\n\n /**\n * Provides a cubic bezier curve, equivalent to CSS Transitions'\n * `transition-timing-function`.\n *\n * A useful tool to visualize cubic bezier curves can be found at\n * http://cubic-bezier.com/\n */\n bezier(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n ): (t: number) => number {\n const _bezier = require('./bezier').default;\n return _bezier(x1, y1, x2, y2);\n },\n\n /**\n * Runs an easing function forwards.\n */\n in(easing: (t: number) => number): (t: number) => number {\n return easing;\n },\n\n /**\n * Runs an easing function backwards.\n */\n out(easing: (t: number) => number): (t: number) => number {\n return t => 1 - easing(1 - t);\n },\n\n /**\n * Makes any easing function symmetrical. The easing function will run\n * forwards for half of the duration, then backwards for the rest of the\n * duration.\n */\n inOut(easing: (t: number) => number): (t: number) => number {\n return t => {\n if (t < 0.5) {\n return easing(t * 2) / 2;\n }\n return 1 - easing((1 - t) * 2) / 2;\n };\n },\n};\n\nexport default Easing;\n","/**\n * Portions Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n/**\n * BezierEasing - use bezier curve for transition easing function\n * https://github.com/gre/bezier-easing\n * @copyright 2014-2015 GaΓ«tan Renaudeau. MIT License.\n */\n\n'use strict';\n\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\nconst NEWTON_ITERATIONS = 4;\nconst NEWTON_MIN_SLOPE = 0.001;\nconst SUBDIVISION_PRECISION = 0.0000001;\nconst SUBDIVISION_MAX_ITERATIONS = 10;\n\nconst kSplineTableSize = 11;\nconst kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\nconst float32ArraySupported = typeof Float32Array === 'function';\n\nfunction A(aA1: number, aA2: number) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n}\nfunction B(aA1: number, aA2: number) {\n return 3.0 * aA2 - 6.0 * aA1;\n}\nfunction C(aA1: number) {\n return 3.0 * aA1;\n}\n\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nfunction calcBezier(aT: number, aA1: number, aA2: number) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n}\n\n// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\nfunction getSlope(aT: number, aA1: number, aA2: number) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n}\n\nfunction binarySubdivide(\n aX: number,\n _aA: number,\n _aB: number,\n mX1: number,\n mX2: number,\n) {\n let currentX,\n currentT,\n i = 0,\n aA = _aA,\n aB = _aB;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (\n Math.abs(currentX) > SUBDIVISION_PRECISION &&\n ++i < SUBDIVISION_MAX_ITERATIONS\n );\n return currentT;\n}\n\nfunction newtonRaphsonIterate(\n aX: number,\n _aGuessT: number,\n mX1: number,\n mX2: number,\n) {\n let aGuessT = _aGuessT;\n for (let i = 0; i < NEWTON_ITERATIONS; ++i) {\n const currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n const currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\n\nexport default function bezier(\n mX1: number,\n mY1: number,\n mX2: number,\n mY2: number,\n): (x: number) => number {\n if (!(mX1 >= 0 && mX1 <= 1 && mX2 >= 0 && mX2 <= 1)) {\n throw new Error('bezier x values must be in [0, 1] range');\n }\n\n // Precompute samples table\n const sampleValues = float32ArraySupported\n ? new Float32Array(kSplineTableSize)\n : new Array(kSplineTableSize);\n if (mX1 !== mY1 || mX2 !== mY2) {\n for (let i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n }\n\n function getTForX(aX: number) {\n let intervalStart = 0.0;\n let currentSample = 1;\n const lastSample = kSplineTableSize - 1;\n\n for (\n ;\n currentSample !== lastSample && sampleValues[currentSample] <= aX;\n ++currentSample\n ) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n\n // Interpolate to provide an initial guess for t\n const dist =\n (aX - sampleValues[currentSample]) /\n (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n const guessForT = intervalStart + dist * kSampleStepSize;\n\n const initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(\n aX,\n intervalStart,\n intervalStart + kSampleStepSize,\n mX1,\n mX2,\n );\n }\n }\n\n return function BezierEasing(x: number): number {\n if (mX1 === mY1 && mX2 === mY2) {\n return x; // linear\n }\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n if (x === 0) {\n return 0;\n }\n if (x === 1) {\n return 1;\n }\n return calcBezier(getTForX(x), mY1, mY2);\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedNode from './AnimatedNode';\n\nexport default class AnimatedWithChildren extends AnimatedNode {\n _children: Array;\n\n constructor() {\n super();\n this._children = [];\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n if (!this.__isNative) {\n this.__isNative = true;\n for (const child of this._children) {\n child.__makeNative(platformConfig);\n NativeAnimatedHelper.API.connectAnimatedNodes(\n this.__getNativeTag(),\n child.__getNativeTag(),\n );\n }\n }\n super.__makeNative(platformConfig);\n }\n\n __addChild(child: AnimatedNode): void {\n if (this._children.length === 0) {\n this.__attach();\n }\n this._children.push(child);\n if (this.__isNative) {\n // Only accept \"native\" animated nodes as children\n child.__makeNative(this.__getPlatformConfig());\n NativeAnimatedHelper.API.connectAnimatedNodes(\n this.__getNativeTag(),\n child.__getNativeTag(),\n );\n }\n }\n\n __removeChild(child: AnimatedNode): void {\n const index = this._children.indexOf(child);\n if (index === -1) {\n console.warn(\"Trying to remove a child that doesn't exist\");\n return;\n }\n if (this.__isNative && child.__isNative) {\n NativeAnimatedHelper.API.disconnectAnimatedNodes(\n this.__getNativeTag(),\n child.__getNativeTag(),\n );\n }\n this._children.splice(index, 1);\n if (this._children.length === 0) {\n this.__detach();\n }\n }\n\n __getChildren(): $ReadOnlyArray {\n return this._children;\n }\n\n __callListeners(value: number): void {\n super.__callListeners(value);\n if (!this.__isNative) {\n for (const child of this._children) {\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n if (child.__getValue) {\n child.__callListeners(child.__getValue());\n }\n }\n }\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport invariant from 'invariant';\n\nconst NativeAnimatedAPI = NativeAnimatedHelper.API;\n\ntype ValueListenerCallback = (state: {value: number, ...}) => mixed;\n\nlet _uniqueId = 1;\n\n// Note(vjeux): this would be better as an interface but flow doesn't\n// support them yet\nexport default class AnimatedNode {\n _listeners: {[key: string]: ValueListenerCallback, ...};\n _platformConfig: ?PlatformConfig;\n __nativeAnimatedValueListener: ?any;\n __attach(): void {}\n __detach(): void {\n this.removeAllListeners();\n if (this.__isNative && this.__nativeTag != null) {\n NativeAnimatedHelper.API.dropAnimatedNode(this.__nativeTag);\n this.__nativeTag = undefined;\n }\n }\n __getValue(): any {}\n __getAnimatedValue(): any {\n return this.__getValue();\n }\n __addChild(child: AnimatedNode) {}\n __removeChild(child: AnimatedNode) {}\n __getChildren(): $ReadOnlyArray {\n return [];\n }\n\n /* Methods and props used by native Animated impl */\n __isNative: boolean;\n __nativeTag: ?number;\n __shouldUpdateListenersForNewNativeTag: boolean;\n\n constructor() {\n this._listeners = {};\n }\n\n __makeNative(platformConfig: ?PlatformConfig): void {\n if (!this.__isNative) {\n throw new Error('This node cannot be made a \"native\" animated node');\n }\n\n this._platformConfig = platformConfig;\n if (this.hasListeners()) {\n this._startListeningToNativeValueUpdates();\n }\n }\n\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to\n * synchronously read the value because it might be driven natively.\n *\n * See https://reactnative.dev/docs/animatedvalue#addlistener\n */\n addListener(callback: (value: any) => mixed): string {\n const id = String(_uniqueId++);\n this._listeners[id] = callback;\n if (this.__isNative) {\n this._startListeningToNativeValueUpdates();\n }\n return id;\n }\n\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n *\n * See https://reactnative.dev/docs/animatedvalue#removelistener\n */\n removeListener(id: string): void {\n delete this._listeners[id];\n if (this.__isNative && !this.hasListeners()) {\n this._stopListeningForNativeValueUpdates();\n }\n }\n\n /**\n * Remove all registered listeners.\n *\n * See https://reactnative.dev/docs/animatedvalue#removealllisteners\n */\n removeAllListeners(): void {\n this._listeners = {};\n if (this.__isNative) {\n this._stopListeningForNativeValueUpdates();\n }\n }\n\n hasListeners(): boolean {\n return !!Object.keys(this._listeners).length;\n }\n\n _startListeningToNativeValueUpdates() {\n if (\n this.__nativeAnimatedValueListener &&\n !this.__shouldUpdateListenersForNewNativeTag\n ) {\n return;\n }\n\n if (this.__shouldUpdateListenersForNewNativeTag) {\n this.__shouldUpdateListenersForNewNativeTag = false;\n this._stopListeningForNativeValueUpdates();\n }\n\n NativeAnimatedAPI.startListeningToAnimatedNodeValue(this.__getNativeTag());\n this.__nativeAnimatedValueListener =\n NativeAnimatedHelper.nativeEventEmitter.addListener(\n 'onAnimatedValueUpdate',\n data => {\n if (data.tag !== this.__getNativeTag()) {\n return;\n }\n this.__onAnimatedValueUpdateReceived(data.value);\n },\n );\n }\n\n __onAnimatedValueUpdateReceived(value: number) {\n this.__callListeners(value);\n }\n\n __callListeners(value: number): void {\n for (const key in this._listeners) {\n this._listeners[key]({value});\n }\n }\n\n _stopListeningForNativeValueUpdates() {\n if (!this.__nativeAnimatedValueListener) {\n return;\n }\n\n this.__nativeAnimatedValueListener.remove();\n this.__nativeAnimatedValueListener = null;\n NativeAnimatedAPI.stopListeningToAnimatedNodeValue(this.__getNativeTag());\n }\n\n __getNativeTag(): number {\n NativeAnimatedHelper.assertNativeAnimatedModule();\n invariant(\n this.__isNative,\n 'Attempt to get native tag from node not marked as \"native\"',\n );\n\n const nativeTag =\n this.__nativeTag ?? NativeAnimatedHelper.generateNewNodeTag();\n\n if (this.__nativeTag == null) {\n this.__nativeTag = nativeTag;\n const config = this.__getNativeConfig();\n if (this._platformConfig) {\n config.platformConfig = this._platformConfig;\n }\n NativeAnimatedHelper.API.createAnimatedNode(nativeTag, config);\n this.__shouldUpdateListenersForNewNativeTag = true;\n }\n\n return nativeTag;\n }\n __getNativeConfig(): Object {\n throw new Error(\n 'This JS animated node type cannot be used as native animated node',\n );\n }\n\n toJSON(): any {\n return this.__getValue();\n }\n\n __getPlatformConfig(): ?PlatformConfig {\n return this._platformConfig;\n }\n __setPlatformConfig(platformConfig: ?PlatformConfig) {\n this._platformConfig = platformConfig;\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\ntype SpringConfigType = {\n stiffness: number,\n damping: number,\n ...\n};\n\nfunction stiffnessFromOrigamiValue(oValue: number) {\n return (oValue - 30) * 3.62 + 194;\n}\n\nfunction dampingFromOrigamiValue(oValue: number) {\n return (oValue - 8) * 3 + 25;\n}\n\nexport function fromOrigamiTensionAndFriction(\n tension: number,\n friction: number,\n): SpringConfigType {\n return {\n stiffness: stiffnessFromOrigamiValue(tension),\n damping: dampingFromOrigamiValue(friction),\n };\n}\n\nexport function fromBouncinessAndSpeed(\n bounciness: number,\n speed: number,\n): SpringConfigType {\n function normalize(value: number, startValue: number, endValue: number) {\n return (value - startValue) / (endValue - startValue);\n }\n\n function projectNormal(n: number, start: number, end: number) {\n return start + n * (end - start);\n }\n\n function linearInterpolation(t: number, start: number, end: number) {\n return t * end + (1 - t) * start;\n }\n\n function quadraticOutInterpolation(t: number, start: number, end: number) {\n return linearInterpolation(2 * t - t * t, start, end);\n }\n\n function b3Friction1(x: number) {\n return 0.0007 * Math.pow(x, 3) - 0.031 * Math.pow(x, 2) + 0.64 * x + 1.28;\n }\n\n function b3Friction2(x: number) {\n return 0.000044 * Math.pow(x, 3) - 0.006 * Math.pow(x, 2) + 0.36 * x + 2;\n }\n\n function b3Friction3(x: number) {\n return (\n 0.00000045 * Math.pow(x, 3) -\n 0.000332 * Math.pow(x, 2) +\n 0.1078 * x +\n 5.84\n );\n }\n\n function b3Nobounce(tension: number) {\n if (tension <= 18) {\n return b3Friction1(tension);\n } else if (tension > 18 && tension <= 44) {\n return b3Friction2(tension);\n } else {\n return b3Friction3(tension);\n }\n }\n\n let b = normalize(bounciness / 1.7, 0, 20);\n b = projectNormal(b, 0, 0.8);\n const s = normalize(speed / 1.7, 0, 20);\n const bouncyTension = projectNormal(s, 0.5, 200);\n const bouncyFriction = quadraticOutInterpolation(\n b,\n b3Nobounce(bouncyTension),\n 0.01,\n );\n\n return {\n stiffness: stiffnessFromOrigamiValue(bouncyTension),\n damping: dampingFromOrigamiValue(bouncyFriction),\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {RgbaValue} from '../nodes/AnimatedColor';\nimport type AnimatedInterpolation from '../nodes/AnimatedInterpolation';\nimport type AnimatedValue from '../nodes/AnimatedValue';\nimport type AnimatedValueXY from '../nodes/AnimatedValueXY';\nimport type {AnimationConfig, EndCallback} from './Animation';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedColor from '../nodes/AnimatedColor';\nimport Animation from './Animation';\n\nexport type TimingAnimationConfig = $ReadOnly<{\n ...AnimationConfig,\n toValue:\n | number\n | AnimatedValue\n | {\n x: number,\n y: number,\n ...\n }\n | AnimatedValueXY\n | RgbaValue\n | AnimatedColor\n | AnimatedInterpolation,\n easing?: (value: number) => number,\n duration?: number,\n delay?: number,\n}>;\n\nexport type TimingAnimationConfigSingle = $ReadOnly<{\n ...AnimationConfig,\n toValue: number,\n easing?: (value: number) => number,\n duration?: number,\n delay?: number,\n}>;\n\nlet _easeInOut;\nfunction easeInOut() {\n if (!_easeInOut) {\n const Easing = require('../Easing').default;\n _easeInOut = Easing.inOut(Easing.ease);\n }\n return _easeInOut;\n}\n\nexport default class TimingAnimation extends Animation {\n _startTime: number;\n _fromValue: number;\n _toValue: number;\n _duration: number;\n _delay: number;\n _easing: (value: number) => number;\n _onUpdate: (value: number) => void;\n _animationFrame: any;\n _timeout: any;\n _useNativeDriver: boolean;\n _platformConfig: ?PlatformConfig;\n\n constructor(config: TimingAnimationConfigSingle) {\n super();\n this._toValue = config.toValue;\n this._easing = config.easing ?? easeInOut();\n this._duration = config.duration ?? 500;\n this._delay = config.delay ?? 0;\n this.__iterations = config.iterations ?? 1;\n this._useNativeDriver = NativeAnimatedHelper.shouldUseNativeDriver(config);\n this._platformConfig = config.platformConfig;\n this.__isInteraction = config.isInteraction ?? !this._useNativeDriver;\n }\n\n __getNativeAnimationConfig(): any {\n const frameDuration = 1000.0 / 60.0;\n const frames = [];\n const numFrames = Math.round(this._duration / frameDuration);\n for (let frame = 0; frame < numFrames; frame++) {\n frames.push(this._easing(frame / numFrames));\n }\n frames.push(this._easing(1));\n return {\n type: 'frames',\n frames,\n toValue: this._toValue,\n iterations: this.__iterations,\n platformConfig: this._platformConfig,\n };\n }\n\n start(\n fromValue: number,\n onUpdate: (value: number) => void,\n onEnd: ?EndCallback,\n previousAnimation: ?Animation,\n animatedValue: AnimatedValue,\n ): void {\n this.__active = true;\n this._fromValue = fromValue;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n\n const start = () => {\n // Animations that sometimes have 0 duration and sometimes do not\n // still need to use the native driver when duration is 0 so as to\n // not cause intermixed JS and native animations.\n if (this._duration === 0 && !this._useNativeDriver) {\n this._onUpdate(this._toValue);\n this.__debouncedOnEnd({finished: true});\n } else {\n this._startTime = Date.now();\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n this._animationFrame = requestAnimationFrame(\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.onUpdate.bind(this),\n );\n }\n }\n };\n if (this._delay) {\n this._timeout = setTimeout(start, this._delay);\n } else {\n start();\n }\n }\n\n onUpdate(): void {\n const now = Date.now();\n if (now >= this._startTime + this._duration) {\n if (this._duration === 0) {\n this._onUpdate(this._toValue);\n } else {\n this._onUpdate(\n this._fromValue + this._easing(1) * (this._toValue - this._fromValue),\n );\n }\n this.__debouncedOnEnd({finished: true});\n return;\n }\n\n this._onUpdate(\n this._fromValue +\n this._easing((now - this._startTime) / this._duration) *\n (this._toValue - this._fromValue),\n );\n if (this.__active) {\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n }\n\n stop(): void {\n super.stop();\n this.__active = false;\n clearTimeout(this._timeout);\n global.cancelAnimationFrame(this._animationFrame);\n this.__debouncedOnEnd({finished: false});\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport View from '../Components/View/View';\nimport useMergeRefs from '../Utilities/useMergeRefs';\nimport useAnimatedProps from './useAnimatedProps';\nimport * as React from 'react';\n\nexport type AnimatedComponentType<\n -Props: {+[string]: mixed, ...},\n +Instance = mixed,\n> = React.AbstractComponent<\n $ObjMap<\n Props &\n $ReadOnly<{\n passthroughAnimatedPropExplicitValues?: React.ElementConfig<\n typeof View,\n >,\n }>,\n () => any,\n >,\n Instance,\n>;\n\nexport default function createAnimatedComponent(\n Component: React.AbstractComponent,\n): AnimatedComponentType {\n return React.forwardRef((props, forwardedRef) => {\n const [reducedProps, callbackRef] = useAnimatedProps(\n // $FlowFixMe[incompatible-call]\n props,\n );\n const ref = useMergeRefs(callbackRef, forwardedRef);\n\n // Some components require explicit passthrough values for animation\n // to work properly. For example, if an animated component is\n // transformed and Pressable, onPress will not work after transform\n // without these passthrough values.\n // $FlowFixMe[prop-missing]\n const {passthroughAnimatedPropExplicitValues, style} = reducedProps;\n const {style: passthroughStyle, ...passthroughProps} =\n passthroughAnimatedPropExplicitValues ?? {};\n const mergedStyle = {...style, ...passthroughStyle};\n\n return (\n \n );\n });\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport {useCallback} from 'react';\n\ntype CallbackRef = T => mixed;\ntype ObjectRef = {current: T, ...};\n\ntype Ref = CallbackRef | ObjectRef;\n\n/**\n * Constructs a new ref that forwards new values to each of the given refs. The\n * given refs will always be invoked in the order that they are supplied.\n *\n * WARNING: A known problem of merging refs using this approach is that if any\n * of the given refs change, the returned callback ref will also be changed. If\n * the returned callback ref is supplied as a `ref` to a React element, this may\n * lead to problems with the given refs being invoked more times than desired.\n */\nexport default function useMergeRefs(\n ...refs: $ReadOnlyArray>\n): CallbackRef {\n return useCallback(\n (current: T) => {\n for (const ref of refs) {\n if (ref != null) {\n if (typeof ref === 'function') {\n ref(current);\n } else {\n ref.current = current;\n }\n }\n }\n },\n [...refs], // eslint-disable-line react-hooks/exhaustive-deps\n );\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nimport {isPublicInstance as isFabricPublicInstance} from '../Renderer/public/ReactFabricPublicInstanceUtils';\nimport useRefEffect from '../Utilities/useRefEffect';\nimport {AnimatedEvent} from './AnimatedEvent';\nimport NativeAnimatedHelper from './NativeAnimatedHelper';\nimport AnimatedProps from './nodes/AnimatedProps';\nimport {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react';\n\ntype ReducedProps = {\n ...TProps,\n collapsable: boolean,\n ...\n};\ntype CallbackRef = T => mixed;\n\nexport default function useAnimatedProps(\n props: TProps,\n): [ReducedProps, CallbackRef] {\n const [, scheduleUpdate] = useReducer(count => count + 1, 0);\n const onUpdateRef = useRef void>(null);\n\n // TODO: Only invalidate `node` if animated props or `style` change. In the\n // previous implementation, we permitted `style` to override props with the\n // same name property name as styles, so we can probably continue doing that.\n // The ordering of other props *should* not matter.\n const node = useMemo(\n () => new AnimatedProps(props, () => onUpdateRef.current?.()),\n [props],\n );\n useAnimatedPropsLifecycle(node);\n\n // TODO: This \"effect\" does three things:\n //\n // 1) Call `setNativeView`.\n // 2) Update `onUpdateRef`.\n // 3) Update listeners for `AnimatedEvent` props.\n //\n // Ideally, each of these would be separate \"effects\" so that they are not\n // unnecessarily re-run when irrelevant dependencies change. For example, we\n // should be able to hoist all `AnimatedEvent` props and only do #3 if either\n // the `AnimatedEvent` props change or `instance` changes.\n //\n // But there is no way to transparently compose three separate callback refs,\n // so we just combine them all into one for now.\n const refEffect = useCallback(\n (instance: TInstance) => {\n // NOTE: This may be called more often than necessary (e.g. when `props`\n // changes), but `setNativeView` already optimizes for that.\n node.setNativeView(instance);\n\n // NOTE: This callback is only used by the JavaScript animation driver.\n onUpdateRef.current = () => {\n if (\n process.env.NODE_ENV === 'test' ||\n typeof instance !== 'object' ||\n typeof instance?.setNativeProps !== 'function' ||\n isFabricInstance(instance)\n ) {\n // Schedule an update for this component to update `reducedProps`,\n // but do not compute it immediately. If a parent also updated, we\n // need to merge those new props in before updating.\n scheduleUpdate();\n } else if (!node.__isNative) {\n // $FlowIgnore[not-a-function] - Assume it's still a function.\n // $FlowFixMe[incompatible-use]\n instance.setNativeProps(node.__getAnimatedValue());\n } else {\n throw new Error(\n 'Attempting to run JS driven animation on animated node ' +\n 'that has been moved to \"native\" earlier by starting an ' +\n 'animation with `useNativeDriver: true`',\n );\n }\n };\n\n const target = getEventTarget(instance);\n const events = [];\n\n for (const propName in props) {\n const propValue = props[propName];\n if (propValue instanceof AnimatedEvent && propValue.__isNative) {\n propValue.__attach(target, propName);\n events.push([propName, propValue]);\n }\n }\n\n return () => {\n onUpdateRef.current = null;\n\n for (const [propName, propValue] of events) {\n propValue.__detach(target, propName);\n }\n };\n },\n [props, node],\n );\n const callbackRef = useRefEffect(refEffect);\n\n return [reduceAnimatedProps(node), callbackRef];\n}\n\nfunction reduceAnimatedProps(\n node: AnimatedProps,\n): ReducedProps {\n // Force `collapsable` to be false so that the native view is not flattened.\n // Flattened views cannot be accurately referenced by the native driver.\n return {\n ...node.__getValue(),\n collapsable: false,\n };\n}\n\n/**\n * Manages the lifecycle of the supplied `AnimatedProps` by invoking `__attach`\n * and `__detach`. However, this is more complicated because `AnimatedProps`\n * uses reference counting to determine when to recursively detach its children\n * nodes. So in order to optimize this, we avoid detaching until the next attach\n * unless we are unmounting.\n */\nfunction useAnimatedPropsLifecycle(node: AnimatedProps): void {\n const prevNodeRef = useRef(null);\n const isUnmountingRef = useRef(false);\n\n useEffect(() => {\n // It is ok for multiple components to call `flushQueue` because it noops\n // if the queue is empty. When multiple animated components are mounted at\n // the same time. Only first component flushes the queue and the others will noop.\n NativeAnimatedHelper.API.flushQueue();\n });\n\n useLayoutEffect(() => {\n isUnmountingRef.current = false;\n return () => {\n isUnmountingRef.current = true;\n };\n }, []);\n\n useLayoutEffect(() => {\n node.__attach();\n if (prevNodeRef.current != null) {\n const prevNode = prevNodeRef.current;\n // TODO: Stop restoring default values (unless `reset` is called).\n prevNode.__restoreDefaultValues();\n prevNode.__detach();\n prevNodeRef.current = null;\n }\n return () => {\n if (isUnmountingRef.current) {\n // NOTE: Do not restore default values on unmount, see D18197735.\n node.__detach();\n } else {\n prevNodeRef.current = node;\n }\n };\n }, [node]);\n}\n\nfunction getEventTarget(instance: TInstance): TInstance {\n return typeof instance === 'object' &&\n typeof instance?.getScrollableNode === 'function'\n ? // $FlowFixMe[incompatible-use] - Legacy instance assumptions.\n instance.getScrollableNode()\n : instance;\n}\n\n// $FlowFixMe[unclear-type] - Legacy instance assumptions.\nfunction isFabricInstance(instance: any): boolean {\n return (\n isFabricPublicInstance(instance) ||\n // Some components have a setNativeProps function but aren't a host component\n // such as lists like FlatList and SectionList. These should also use\n // forceUpdate in Fabric since setNativeProps doesn't exist on the underlying\n // host component. This crazy hack is essentially special casing those lists and\n // ScrollView itself to use forceUpdate in Fabric.\n // If these components end up using forwardRef then these hacks can go away\n // as instance would actually be the underlying host component and the above check\n // would be sufficient.\n isFabricPublicInstance(instance?.getNativeScrollRef?.()) ||\n isFabricPublicInstance(\n instance?.getScrollResponder?.()?.getNativeScrollRef?.(),\n )\n );\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport {useCallback, useRef} from 'react';\n\ntype CallbackRef = T => mixed;\n\n/**\n * Constructs a callback ref that provides similar semantics as `useEffect`. The\n * supplied `effect` callback will be called with non-null component instances.\n * The `effect` callback can also optionally return a cleanup function.\n *\n * When a component is updated or unmounted, the cleanup function is called. The\n * `effect` callback will then be called again, if applicable.\n *\n * When a new `effect` callback is supplied, the previously returned cleanup\n * function will be called before the new `effect` callback is called with the\n * same instance.\n *\n * WARNING: The `effect` callback should be stable (e.g. using `useCallback`).\n */\nexport default function useRefEffect(\n effect: TInstance => (() => void) | void,\n): CallbackRef {\n const cleanupRef = useRef<(() => void) | void>(undefined);\n return useCallback(\n (instance: null | TInstance) => {\n if (cleanupRef.current) {\n cleanupRef.current();\n cleanupRef.current = undefined;\n }\n if (instance != null) {\n cleanupRef.current = effect(instance);\n }\n },\n [effect],\n );\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport {findNodeHandle} from '../../ReactNative/RendererProxy';\nimport {AnimatedEvent} from '../AnimatedEvent';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedStyle from './AnimatedStyle';\nimport invariant from 'invariant';\n\nexport default class AnimatedProps extends AnimatedNode {\n _props: Object;\n _animatedView: any;\n _callback: () => void;\n\n constructor(props: Object, callback: () => void) {\n super();\n if (props.style) {\n props = {\n ...props,\n style: new AnimatedStyle(props.style),\n };\n }\n this._props = props;\n this._callback = callback;\n }\n\n __getValue(): Object {\n const props: {[string]: any | ((...args: any) => void)} = {};\n for (const key in this._props) {\n const value = this._props[key];\n if (value instanceof AnimatedNode) {\n props[key] = value.__getValue();\n } else if (value instanceof AnimatedEvent) {\n props[key] = value.__getHandler();\n } else {\n props[key] = value;\n }\n }\n\n return props;\n }\n\n __getAnimatedValue(): Object {\n const props: {[string]: any} = {};\n for (const key in this._props) {\n const value = this._props[key];\n if (value instanceof AnimatedNode) {\n props[key] = value.__getAnimatedValue();\n }\n }\n return props;\n }\n\n __attach(): void {\n for (const key in this._props) {\n const value = this._props[key];\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n }\n\n __detach(): void {\n if (this.__isNative && this._animatedView) {\n this.__disconnectAnimatedView();\n }\n for (const key in this._props) {\n const value = this._props[key];\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n super.__detach();\n }\n\n update(): void {\n this._callback();\n }\n\n __makeNative(platformConfig: ?PlatformConfig): void {\n for (const key in this._props) {\n const value = this._props[key];\n if (value instanceof AnimatedNode) {\n value.__makeNative(platformConfig);\n }\n }\n\n if (!this.__isNative) {\n this.__isNative = true;\n\n // Since this does not call the super.__makeNative, we need to store the\n // supplied platformConfig here, before calling __connectAnimatedView\n // where it will be needed to traverse the graph of attached values.\n super.__setPlatformConfig(platformConfig);\n\n if (this._animatedView) {\n this.__connectAnimatedView();\n }\n }\n }\n\n setNativeView(animatedView: any): void {\n if (this._animatedView === animatedView) {\n return;\n }\n this._animatedView = animatedView;\n if (this.__isNative) {\n this.__connectAnimatedView();\n }\n }\n\n __connectAnimatedView(): void {\n invariant(this.__isNative, 'Expected node to be marked as \"native\"');\n const nativeViewTag: ?number = findNodeHandle(this._animatedView);\n invariant(\n nativeViewTag != null,\n 'Unable to locate attached view in the native tree',\n );\n NativeAnimatedHelper.API.connectAnimatedNodeToView(\n this.__getNativeTag(),\n nativeViewTag,\n );\n }\n\n __disconnectAnimatedView(): void {\n invariant(this.__isNative, 'Expected node to be marked as \"native\"');\n const nativeViewTag: ?number = findNodeHandle(this._animatedView);\n invariant(\n nativeViewTag != null,\n 'Unable to locate attached view in the native tree',\n );\n NativeAnimatedHelper.API.disconnectAnimatedNodeFromView(\n this.__getNativeTag(),\n nativeViewTag,\n );\n }\n\n __restoreDefaultValues(): void {\n // When using the native driver, view properties need to be restored to\n // their default values manually since react no longer tracks them. This\n // is needed to handle cases where a prop driven by native animated is removed\n // after having been changed natively by an animation.\n if (this.__isNative) {\n NativeAnimatedHelper.API.restoreDefaultValues(this.__getNativeTag());\n }\n }\n\n __getNativeConfig(): Object {\n const propsConfig: {[string]: number} = {};\n for (const propKey in this._props) {\n const value = this._props[propKey];\n if (value instanceof AnimatedNode) {\n value.__makeNative(this.__getPlatformConfig());\n propsConfig[propKey] = value.__getNativeTag();\n }\n }\n return {\n type: 'props',\n props: propsConfig,\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport flattenStyle from '../../StyleSheet/flattenStyle';\nimport Platform from '../../Utilities/Platform';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedTransform from './AnimatedTransform';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nfunction createAnimatedStyle(inputStyle: any): Object {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n const style = flattenStyle(inputStyle);\n const animatedStyles: any = {};\n for (const key in style) {\n const value = style[key];\n if (key === 'transform') {\n animatedStyles[key] = new AnimatedTransform(value);\n } else if (value instanceof AnimatedNode) {\n animatedStyles[key] = value;\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n animatedStyles[key] = createAnimatedStyle(value);\n }\n }\n return animatedStyles;\n}\n\nfunction createStyleWithAnimatedTransform(inputStyle: any): Object {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n let style = flattenStyle(inputStyle) || ({}: {[string]: any});\n\n if (style.transform) {\n style = {\n ...style,\n transform: new AnimatedTransform(style.transform),\n };\n }\n return style;\n}\n\nexport default class AnimatedStyle extends AnimatedWithChildren {\n _inputStyle: any;\n _style: Object;\n\n constructor(style: any) {\n super();\n if (Platform.OS === 'web') {\n this._inputStyle = style;\n this._style = createAnimatedStyle(style);\n } else {\n this._style = createStyleWithAnimatedTransform(style);\n }\n }\n\n // Recursively get values for nested styles (like iOS's shadowOffset)\n _walkStyleAndGetValues(style: any): {[string]: any | {...}} {\n const updatedStyle: {[string]: any | {...}} = {};\n for (const key in style) {\n const value = style[key];\n if (value instanceof AnimatedNode) {\n updatedStyle[key] = value.__getValue();\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n // Support animating nested values (for example: shadowOffset.height)\n updatedStyle[key] = this._walkStyleAndGetValues(value);\n } else {\n updatedStyle[key] = value;\n }\n }\n return updatedStyle;\n }\n\n __getValue(): Object | Array {\n if (Platform.OS === 'web') {\n return [this._inputStyle, this._walkStyleAndGetValues(this._style)];\n }\n\n return this._walkStyleAndGetValues(this._style);\n }\n\n // Recursively get animated values for nested styles (like iOS's shadowOffset)\n _walkStyleAndGetAnimatedValues(style: any): {[string]: any | {...}} {\n const updatedStyle: {[string]: any | {...}} = {};\n for (const key in style) {\n const value = style[key];\n if (value instanceof AnimatedNode) {\n updatedStyle[key] = value.__getAnimatedValue();\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n // Support animating nested values (for example: shadowOffset.height)\n updatedStyle[key] = this._walkStyleAndGetAnimatedValues(value);\n }\n }\n return updatedStyle;\n }\n\n __getAnimatedValue(): Object {\n return this._walkStyleAndGetAnimatedValues(this._style);\n }\n\n __attach(): void {\n for (const key in this._style) {\n const value = this._style[key];\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n }\n\n __detach(): void {\n for (const key in this._style) {\n const value = this._style[key];\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n super.__detach();\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n for (const key in this._style) {\n const value = this._style[key];\n if (value instanceof AnimatedNode) {\n value.__makeNative(platformConfig);\n }\n }\n super.__makeNative(platformConfig);\n }\n\n __getNativeConfig(): Object {\n const styleConfig: {[string]: ?number} = {};\n for (const styleKey in this._style) {\n if (this._style[styleKey] instanceof AnimatedNode) {\n const style = this._style[styleKey];\n style.__makeNative(this.__getPlatformConfig());\n styleConfig[styleKey] = style.__getNativeTag();\n }\n // Non-animated styles are set using `setNativeProps`, no need\n // to pass those as a part of the node config\n }\n NativeAnimatedHelper.validateStyles(styleConfig);\n return {\n type: 'style',\n style: styleConfig,\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedTransform extends AnimatedWithChildren {\n _transforms: $ReadOnlyArray;\n\n constructor(transforms: $ReadOnlyArray) {\n super();\n this._transforms = transforms;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._transforms.forEach(transform => {\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n value.__makeNative(platformConfig);\n }\n }\n });\n super.__makeNative(platformConfig);\n }\n\n __getValue(): $ReadOnlyArray {\n return this._get(animatedNode => animatedNode.__getValue());\n }\n\n __getAnimatedValue(): $ReadOnlyArray {\n return this._get(animatedNode => animatedNode.__getAnimatedValue());\n }\n\n __attach(): void {\n this._transforms.forEach(transform => {\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n });\n }\n\n __detach(): void {\n this._transforms.forEach(transform => {\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n });\n super.__detach();\n }\n\n __getNativeConfig(): any {\n const transConfigs: Array = [];\n\n this._transforms.forEach(transform => {\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n transConfigs.push({\n type: 'animated',\n property: key,\n nodeTag: value.__getNativeTag(),\n });\n } else {\n transConfigs.push({\n type: 'static',\n property: key,\n value: NativeAnimatedHelper.transformDataType(value),\n });\n }\n }\n });\n\n NativeAnimatedHelper.validateTransform(transConfigs);\n return {\n type: 'transform',\n transforms: transConfigs,\n };\n }\n\n _get(getter: AnimatedNode => any): $ReadOnlyArray {\n return this._transforms.map(transform => {\n const result: {[string]: any} = {};\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n result[key] = getter(value);\n } else if (Array.isArray(value)) {\n result[key] = value.map(element => {\n if (element instanceof AnimatedNode) {\n return getter(element);\n } else {\n return element;\n }\n });\n } else if (typeof value === 'object') {\n result[key] = {};\n for (const [nestedKey, nestedValue] of Object.entries(value)) {\n if (nestedValue instanceof AnimatedNode) {\n result[key][nestedKey] = getter(nestedValue);\n } else {\n result[key][nestedKey] = nestedValue;\n }\n }\n } else {\n result[key] = value;\n }\n }\n return result;\n });\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from './AnimatedPlatformConfig';\n\nimport {findNodeHandle} from '../ReactNative/RendererProxy';\nimport NativeAnimatedHelper from './NativeAnimatedHelper';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\nimport invariant from 'invariant';\n\nexport type Mapping =\n | {[key: string]: Mapping, ...}\n | AnimatedValue\n | AnimatedValueXY;\nexport type EventConfig = {\n listener?: ?Function,\n useNativeDriver: boolean,\n platformConfig?: PlatformConfig,\n};\n\nexport function attachNativeEvent(\n viewRef: any,\n eventName: string,\n argMapping: $ReadOnlyArray,\n platformConfig: ?PlatformConfig,\n): {detach: () => void} {\n // Find animated values in `argMapping` and create an array representing their\n // key path inside the `nativeEvent` object. Ex.: ['contentOffset', 'x'].\n const eventMappings = [];\n\n const traverse = (value: mixed, path: Array) => {\n if (value instanceof AnimatedValue) {\n value.__makeNative(platformConfig);\n\n eventMappings.push({\n nativeEventPath: path,\n animatedValueTag: value.__getNativeTag(),\n });\n } else if (value instanceof AnimatedValueXY) {\n traverse(value.x, path.concat('x'));\n traverse(value.y, path.concat('y'));\n } else if (typeof value === 'object') {\n for (const key in value) {\n traverse(value[key], path.concat(key));\n }\n }\n };\n\n invariant(\n argMapping[0] && argMapping[0].nativeEvent,\n 'Native driven events only support animated values contained inside `nativeEvent`.',\n );\n\n // Assume that the event containing `nativeEvent` is always the first argument.\n traverse(argMapping[0].nativeEvent, []);\n\n const viewTag = findNodeHandle(viewRef);\n if (viewTag != null) {\n eventMappings.forEach(mapping => {\n NativeAnimatedHelper.API.addAnimatedEventToView(\n viewTag,\n eventName,\n mapping,\n );\n });\n }\n\n return {\n detach() {\n if (viewTag != null) {\n eventMappings.forEach(mapping => {\n NativeAnimatedHelper.API.removeAnimatedEventFromView(\n viewTag,\n eventName,\n // $FlowFixMe[incompatible-call]\n mapping.animatedValueTag,\n );\n });\n }\n },\n };\n}\n\nfunction validateMapping(argMapping: $ReadOnlyArray, args: any) {\n const validate = (recMapping: ?Mapping, recEvt: any, key: string) => {\n if (recMapping instanceof AnimatedValue) {\n invariant(\n typeof recEvt === 'number',\n 'Bad mapping of event key ' +\n key +\n ', should be number but got ' +\n typeof recEvt,\n );\n return;\n }\n if (recMapping instanceof AnimatedValueXY) {\n invariant(\n typeof recEvt.x === 'number' && typeof recEvt.y === 'number',\n 'Bad mapping of event key ' + key + ', should be XY but got ' + recEvt,\n );\n return;\n }\n if (typeof recEvt === 'number') {\n invariant(\n recMapping instanceof AnimatedValue,\n 'Bad mapping of type ' +\n typeof recMapping +\n ' for key ' +\n key +\n ', event value must map to AnimatedValue',\n );\n return;\n }\n invariant(\n typeof recMapping === 'object',\n 'Bad mapping of type ' + typeof recMapping + ' for key ' + key,\n );\n invariant(\n typeof recEvt === 'object',\n 'Bad event of type ' + typeof recEvt + ' for key ' + key,\n );\n for (const mappingKey in recMapping) {\n validate(recMapping[mappingKey], recEvt[mappingKey], mappingKey);\n }\n };\n\n invariant(\n args.length >= argMapping.length,\n 'Event has less arguments than mapping',\n );\n argMapping.forEach((mapping, idx) => {\n validate(mapping, args[idx], 'arg' + idx);\n });\n}\n\nexport class AnimatedEvent {\n _argMapping: $ReadOnlyArray;\n _listeners: Array = [];\n _attachedEvent: ?{detach: () => void, ...};\n __isNative: boolean;\n __platformConfig: ?PlatformConfig;\n\n constructor(argMapping: $ReadOnlyArray, config: EventConfig) {\n this._argMapping = argMapping;\n\n if (config == null) {\n console.warn('Animated.event now requires a second argument for options');\n config = {useNativeDriver: false};\n }\n\n if (config.listener) {\n this.__addListener(config.listener);\n }\n this._attachedEvent = null;\n this.__isNative = NativeAnimatedHelper.shouldUseNativeDriver(config);\n this.__platformConfig = config.platformConfig;\n }\n\n __addListener(callback: Function): void {\n this._listeners.push(callback);\n }\n\n __removeListener(callback: Function): void {\n this._listeners = this._listeners.filter(listener => listener !== callback);\n }\n\n __attach(viewRef: any, eventName: string): void {\n invariant(\n this.__isNative,\n 'Only native driven events need to be attached.',\n );\n\n this._attachedEvent = attachNativeEvent(\n viewRef,\n eventName,\n this._argMapping,\n this.__platformConfig,\n );\n }\n\n __detach(viewTag: any, eventName: string): void {\n invariant(\n this.__isNative,\n 'Only native driven events need to be detached.',\n );\n\n this._attachedEvent && this._attachedEvent.detach();\n }\n\n __getHandler(): any | ((...args: any) => void) {\n if (this.__isNative) {\n if (__DEV__) {\n let validatedMapping = false;\n return (...args: any) => {\n if (!validatedMapping) {\n validateMapping(this._argMapping, args);\n validatedMapping = true;\n }\n this._callListeners(...args);\n };\n } else {\n return this._callListeners;\n }\n }\n\n let validatedMapping = false;\n return (...args: any) => {\n if (__DEV__ && !validatedMapping) {\n validateMapping(this._argMapping, args);\n validatedMapping = true;\n }\n\n const traverse = (\n recMapping: ?(Mapping | AnimatedValue),\n recEvt: any,\n ) => {\n if (recMapping instanceof AnimatedValue) {\n if (typeof recEvt === 'number') {\n recMapping.setValue(recEvt);\n }\n } else if (recMapping instanceof AnimatedValueXY) {\n if (typeof recEvt === 'object') {\n traverse(recMapping.x, recEvt.x);\n traverse(recMapping.y, recEvt.y);\n }\n } else if (typeof recMapping === 'object') {\n for (const mappingKey in recMapping) {\n /* $FlowFixMe[prop-missing] (>=0.120.0) This comment suppresses an\n * error found when Flow v0.120 was deployed. To see the error,\n * delete this comment and run Flow. */\n traverse(recMapping[mappingKey], recEvt[mappingKey]);\n }\n }\n };\n this._argMapping.forEach((mapping, idx) => {\n traverse(mapping, args[idx]);\n });\n\n this._callListeners(...args);\n };\n }\n\n _callListeners = (...args: any) => {\n this._listeners.forEach(listener => listener(...args));\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport invariant from 'invariant';\n\nexport type AnimatedValueXYConfig = $ReadOnly<{\n useNativeDriver: boolean,\n}>;\ntype ValueXYListenerCallback = (value: {\n x: number,\n y: number,\n ...\n}) => mixed;\n\nlet _uniqueId = 1;\n\n/**\n * 2D Value for driving 2D animations, such as pan gestures. Almost identical\n * API to normal `Animated.Value`, but multiplexed.\n *\n * See https://reactnative.dev/docs/animatedvaluexy\n */\nexport default class AnimatedValueXY extends AnimatedWithChildren {\n x: AnimatedValue;\n y: AnimatedValue;\n _listeners: {\n [key: string]: {\n x: string,\n y: string,\n ...\n },\n ...\n };\n\n constructor(\n valueIn?: ?{\n +x: number | AnimatedValue,\n +y: number | AnimatedValue,\n ...\n },\n config?: ?AnimatedValueXYConfig,\n ) {\n super();\n const value: any = valueIn || {x: 0, y: 0}; // @flowfixme: shouldn't need `: any`\n if (typeof value.x === 'number' && typeof value.y === 'number') {\n this.x = new AnimatedValue(value.x);\n this.y = new AnimatedValue(value.y);\n } else {\n invariant(\n value.x instanceof AnimatedValue && value.y instanceof AnimatedValue,\n 'AnimatedValueXY must be initialized with an object of numbers or ' +\n 'AnimatedValues.',\n );\n this.x = value.x;\n this.y = value.y;\n }\n this._listeners = {};\n if (config && config.useNativeDriver) {\n this.__makeNative();\n }\n }\n\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#setvalue\n */\n setValue(value: {x: number, y: number, ...}) {\n this.x.setValue(value.x);\n this.y.setValue(value.y);\n }\n\n /**\n * Sets an offset that is applied on top of whatever value is set, whether\n * via `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#setoffset\n */\n setOffset(offset: {x: number, y: number, ...}) {\n this.x.setOffset(offset.x);\n this.y.setOffset(offset.y);\n }\n\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#flattenoffset\n */\n flattenOffset(): void {\n this.x.flattenOffset();\n this.y.flattenOffset();\n }\n\n /**\n * Sets the offset value to the base value, and resets the base value to\n * zero. The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#extractoffset\n */\n extractOffset(): void {\n this.x.extractOffset();\n this.y.extractOffset();\n }\n\n __getValue(): {\n x: number,\n y: number,\n ...\n } {\n return {\n x: this.x.__getValue(),\n y: this.y.__getValue(),\n };\n }\n\n /**\n * Stops any animation and resets the value to its original.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#resetanimation\n */\n resetAnimation(\n callback?: (value: {\n x: number,\n y: number,\n ...\n }) => void,\n ): void {\n this.x.resetAnimation();\n this.y.resetAnimation();\n callback && callback(this.__getValue());\n }\n\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#stopanimation\n */\n stopAnimation(\n callback?: (value: {\n x: number,\n y: number,\n ...\n }) => void,\n ): void {\n this.x.stopAnimation();\n this.y.stopAnimation();\n callback && callback(this.__getValue());\n }\n\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to synchronously read\n * the value because it might be driven natively.\n *\n * Returns a string that serves as an identifier for the listener.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#addlistener\n */\n addListener(callback: ValueXYListenerCallback): string {\n const id = String(_uniqueId++);\n const jointCallback = ({value: number}: any) => {\n callback(this.__getValue());\n };\n this._listeners[id] = {\n x: this.x.addListener(jointCallback),\n y: this.y.addListener(jointCallback),\n };\n return id;\n }\n\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#removelistener\n */\n removeListener(id: string): void {\n this.x.removeListener(this._listeners[id].x);\n this.y.removeListener(this._listeners[id].y);\n delete this._listeners[id];\n }\n\n /**\n * Remove all registered listeners.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#removealllisteners\n */\n removeAllListeners(): void {\n this.x.removeAllListeners();\n this.y.removeAllListeners();\n this._listeners = {};\n }\n\n /**\n * Converts `{x, y}` into `{left, top}` for use in style.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#getlayout\n */\n getLayout(): {[key: string]: AnimatedValue, ...} {\n return {\n left: this.x,\n top: this.y,\n };\n }\n\n /**\n * Converts `{x, y}` into a useable translation transform.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#gettranslatetransform\n */\n getTranslateTransform(): Array<{[key: string]: AnimatedValue, ...}> {\n return [{translateX: this.x}, {translateY: this.y}];\n }\n\n __attach(): void {\n this.x.__addChild(this);\n this.y.__addChild(this);\n super.__attach();\n }\n\n __detach(): void {\n this.x.__removeChild(this);\n this.y.__removeChild(this);\n super.__detach();\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this.x.__makeNative(platformConfig);\n this.y.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n/**\n * IMPORTANT!!\n *\n * This module cannot import `ReactFabric` (directly or indirectly)\n * because it can be used by apps only using the legacy renderer.\n * In that case `nativeFabricUIManager` isn't defined and `ReactFabric` throws.\n */\n\nexport function isPublicInstance(maybeInstance: mixed): boolean {\n return (\n maybeInstance != null &&\n // TODO: implement a better check when the instance is defined in the React Native repository.\n (maybeInstance.__nativeTag != null ||\n // TODO: remove this check when syncing the new version of the renderer from React to React Native.\n isLegacyFabricInstance(maybeInstance))\n );\n}\n\nfunction isLegacyFabricInstance(maybeInstance: mixed): boolean {\n /* eslint-disable dot-notation */\n return (\n maybeInstance != null &&\n // $FlowExpectedError[incompatible-use]\n maybeInstance['_internalInstanceHandle'] != null &&\n maybeInstance['_internalInstanceHandle'].stateNode != null &&\n maybeInstance['_internalInstanceHandle'].stateNode.canonical != null\n );\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\nimport type AnimatedNode from './AnimatedNode';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedAddition extends AnimatedWithChildren {\n _a: AnimatedNode;\n _b: AnimatedNode;\n\n constructor(a: AnimatedNode | number, b: AnimatedNode | number) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._a.__makeNative(platformConfig);\n this._b.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getValue(): number {\n return this._a.__getValue() + this._b.__getValue();\n }\n\n interpolate(\n config: InterpolationConfigType,\n ): AnimatedInterpolation {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach(): void {\n this._a.__addChild(this);\n this._b.__addChild(this);\n }\n\n __detach(): void {\n this._a.__removeChild(this);\n this._b.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n return {\n type: 'addition',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()],\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\nimport type AnimatedNode from './AnimatedNode';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedDiffClamp extends AnimatedWithChildren {\n _a: AnimatedNode;\n _min: number;\n _max: number;\n _value: number;\n _lastValue: number;\n\n constructor(a: AnimatedNode, min: number, max: number) {\n super();\n\n this._a = a;\n this._min = min;\n this._max = max;\n this._value = this._lastValue = this._a.__getValue();\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._a.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n interpolate(\n config: InterpolationConfigType,\n ): AnimatedInterpolation {\n return new AnimatedInterpolation(this, config);\n }\n\n __getValue(): number {\n const value = this._a.__getValue();\n const diff = value - this._lastValue;\n this._lastValue = value;\n this._value = Math.min(Math.max(this._value + diff, this._min), this._max);\n return this._value;\n }\n\n __attach(): void {\n this._a.__addChild(this);\n }\n\n __detach(): void {\n this._a.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n return {\n type: 'diffclamp',\n input: this._a.__getNativeTag(),\n min: this._min,\n max: this._max,\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedDivision extends AnimatedWithChildren {\n _a: AnimatedNode;\n _b: AnimatedNode;\n _warnedAboutDivideByZero: boolean = false;\n\n constructor(a: AnimatedNode | number, b: AnimatedNode | number) {\n super();\n if (b === 0 || (b instanceof AnimatedNode && b.__getValue() === 0)) {\n console.error('Detected potential division by zero in AnimatedDivision');\n }\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._a.__makeNative(platformConfig);\n this._b.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getValue(): number {\n const a = this._a.__getValue();\n const b = this._b.__getValue();\n if (b === 0) {\n // Prevent spamming the console/LogBox\n if (!this._warnedAboutDivideByZero) {\n console.error('Detected division by zero in AnimatedDivision');\n this._warnedAboutDivideByZero = true;\n }\n // Passing infinity/NaN to Fabric will cause a native crash\n return 0;\n }\n this._warnedAboutDivideByZero = false;\n return a / b;\n }\n\n interpolate(\n config: InterpolationConfigType,\n ): AnimatedInterpolation {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach(): void {\n this._a.__addChild(this);\n this._b.__addChild(this);\n }\n\n __detach(): void {\n this._a.__removeChild(this);\n this._b.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n return {\n type: 'division',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()],\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\nimport type AnimatedNode from './AnimatedNode';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedModulo extends AnimatedWithChildren {\n _a: AnimatedNode;\n _modulus: number;\n\n constructor(a: AnimatedNode, modulus: number) {\n super();\n this._a = a;\n this._modulus = modulus;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._a.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getValue(): number {\n return (\n ((this._a.__getValue() % this._modulus) + this._modulus) % this._modulus\n );\n }\n\n interpolate(\n config: InterpolationConfigType,\n ): AnimatedInterpolation {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach(): void {\n this._a.__addChild(this);\n }\n\n __detach(): void {\n this._a.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n return {\n type: 'modulus',\n input: this._a.__getNativeTag(),\n modulus: this._modulus,\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\nimport type AnimatedNode from './AnimatedNode';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedMultiplication extends AnimatedWithChildren {\n _a: AnimatedNode;\n _b: AnimatedNode;\n\n constructor(a: AnimatedNode | number, b: AnimatedNode | number) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._a.__makeNative(platformConfig);\n this._b.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getValue(): number {\n return this._a.__getValue() * this._b.__getValue();\n }\n\n interpolate(\n config: InterpolationConfigType,\n ): AnimatedInterpolation {\n return new AnimatedInterpolation(this, config);\n }\n __attach(): void {\n this._a.__addChild(this);\n this._b.__addChild(this);\n }\n\n __detach(): void {\n this._a.__removeChild(this);\n this._b.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n return {\n type: 'multiplication',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()],\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\nimport type AnimatedNode from './AnimatedNode';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedSubtraction extends AnimatedWithChildren {\n _a: AnimatedNode;\n _b: AnimatedNode;\n\n constructor(a: AnimatedNode | number, b: AnimatedNode | number) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._a.__makeNative(platformConfig);\n this._b.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getValue(): number {\n return this._a.__getValue() - this._b.__getValue();\n }\n\n interpolate(\n config: InterpolationConfigType,\n ): AnimatedInterpolation {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach(): void {\n this._a.__addChild(this);\n this._b.__addChild(this);\n }\n\n __detach(): void {\n this._a.__removeChild(this);\n this._b.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n return {\n type: 'subtraction',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()],\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {EndCallback} from '../animations/Animation';\nimport type AnimatedValue from './AnimatedValue';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedNode from './AnimatedNode';\n\nexport default class AnimatedTracking extends AnimatedNode {\n _value: AnimatedValue;\n _parent: AnimatedNode;\n _callback: ?EndCallback;\n _animationConfig: Object;\n _animationClass: any;\n _useNativeDriver: boolean;\n\n constructor(\n value: AnimatedValue,\n parent: AnimatedNode,\n animationClass: any,\n animationConfig: Object,\n callback?: ?EndCallback,\n ) {\n super();\n this._value = value;\n this._parent = parent;\n this._animationClass = animationClass;\n this._animationConfig = animationConfig;\n this._useNativeDriver =\n NativeAnimatedHelper.shouldUseNativeDriver(animationConfig);\n this._callback = callback;\n this.__attach();\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this.__isNative = true;\n this._parent.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n this._value.__makeNative(platformConfig);\n }\n\n __getValue(): Object {\n return this._parent.__getValue();\n }\n\n __attach(): void {\n this._parent.__addChild(this);\n if (this._useNativeDriver) {\n // when the tracking starts we need to convert this node to a \"native node\"\n // so that the parent node will be made \"native\" too. This is necessary as\n // if we don't do this `update` method will get called. At that point it\n // may be too late as it would mean the JS driver has already started\n // updating node values\n let {platformConfig} = this._animationConfig;\n this.__makeNative(platformConfig);\n }\n }\n\n __detach(): void {\n this._parent.__removeChild(this);\n super.__detach();\n }\n\n update(): void {\n this._value.animate(\n new this._animationClass({\n ...this._animationConfig,\n toValue: (this._animationConfig.toValue: any).__getValue(),\n }),\n this._callback,\n );\n }\n\n __getNativeConfig(): any {\n const animation = new this._animationClass({\n ...this._animationConfig,\n // remove toValue from the config as it's a ref to Animated.Value\n toValue: undefined,\n });\n const animationConfig = animation.__getNativeAnimationConfig();\n return {\n type: 'tracking',\n animationId: NativeAnimatedHelper.generateNewAnimationId(),\n animationConfig,\n toValue: this._parent.__getNativeTag(),\n value: this._value.__getNativeTag(),\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {Numeric as AnimatedNumeric} from './AnimatedImplementation';\nimport type {EndResult} from './animations/Animation';\nimport type {EndCallback} from './animations/Animation';\nimport type {DecayAnimationConfig} from './animations/DecayAnimation';\nimport type {SpringAnimationConfig} from './animations/SpringAnimation';\nimport type {TimingAnimationConfig} from './animations/TimingAnimation';\n\nimport {AnimatedEvent, attachNativeEvent} from './AnimatedEvent';\nimport AnimatedImplementation from './AnimatedImplementation';\nimport createAnimatedComponent from './createAnimatedComponent';\nimport AnimatedColor from './nodes/AnimatedColor';\nimport AnimatedInterpolation from './nodes/AnimatedInterpolation';\nimport AnimatedNode from './nodes/AnimatedNode';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\n\n/**\n * Animations are a source of flakiness in snapshot testing. This mock replaces\n * animation functions from AnimatedImplementation with empty animations for\n * predictability in tests. When possible the animation will run immediately\n * to the final state.\n */\n\n// Prevent any callback invocation from recursively triggering another\n// callback, which may trigger another animation\nlet inAnimationCallback = false;\nfunction mockAnimationStart(\n start: (callback?: ?EndCallback) => void,\n): (callback?: ?EndCallback) => void {\n return callback => {\n const guardedCallback =\n callback == null\n ? callback\n : (...args: Array) => {\n if (inAnimationCallback) {\n console.warn(\n 'Ignoring recursive animation callback when running mock animations',\n );\n return;\n }\n inAnimationCallback = true;\n try {\n callback(...args);\n } finally {\n inAnimationCallback = false;\n }\n };\n start(guardedCallback);\n };\n}\n\nexport type CompositeAnimation = {\n start: (callback?: ?EndCallback) => void,\n stop: () => void,\n reset: () => void,\n _startNativeLoop: (iterations?: number) => void,\n _isUsingNativeDriver: () => boolean,\n ...\n};\n\nconst emptyAnimation = {\n start: () => {},\n stop: () => {},\n reset: () => {},\n _startNativeLoop: () => {},\n _isUsingNativeDriver: () => {\n return false;\n },\n};\n\nconst mockCompositeAnimation = (\n animations: Array,\n): CompositeAnimation => ({\n ...emptyAnimation,\n start: mockAnimationStart((callback?: ?EndCallback): void => {\n animations.forEach(animation => animation.start());\n callback?.({finished: true});\n }),\n});\n\nconst spring = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: SpringAnimationConfig,\n): CompositeAnimation {\n const anyValue: any = value;\n return {\n ...emptyAnimation,\n start: mockAnimationStart((callback?: ?EndCallback): void => {\n anyValue.setValue(config.toValue);\n callback?.({finished: true});\n }),\n };\n};\n\nconst timing = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: TimingAnimationConfig,\n): CompositeAnimation {\n const anyValue: any = value;\n return {\n ...emptyAnimation,\n start: mockAnimationStart((callback?: ?EndCallback): void => {\n anyValue.setValue(config.toValue);\n callback?.({finished: true});\n }),\n };\n};\n\nconst decay = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: DecayAnimationConfig,\n): CompositeAnimation {\n return emptyAnimation;\n};\n\nconst sequence = function (\n animations: Array,\n): CompositeAnimation {\n return mockCompositeAnimation(animations);\n};\n\ntype ParallelConfig = {stopTogether?: boolean, ...};\nconst parallel = function (\n animations: Array,\n config?: ?ParallelConfig,\n): CompositeAnimation {\n return mockCompositeAnimation(animations);\n};\n\nconst delay = function (time: number): CompositeAnimation {\n return emptyAnimation;\n};\n\nconst stagger = function (\n time: number,\n animations: Array,\n): CompositeAnimation {\n return mockCompositeAnimation(animations);\n};\n\ntype LoopAnimationConfig = {\n iterations: number,\n resetBeforeIteration?: boolean,\n ...\n};\n\nconst loop = function (\n animation: CompositeAnimation,\n // $FlowFixMe[prop-missing]\n {iterations = -1}: LoopAnimationConfig = {},\n): CompositeAnimation {\n return emptyAnimation;\n};\n\nexport type {AnimatedNumeric as Numeric};\n\nexport default {\n Value: AnimatedValue,\n ValueXY: AnimatedValueXY,\n Color: AnimatedColor,\n Interpolation: AnimatedInterpolation,\n Node: AnimatedNode,\n decay,\n timing,\n spring,\n add: AnimatedImplementation.add,\n subtract: AnimatedImplementation.subtract,\n divide: AnimatedImplementation.divide,\n multiply: AnimatedImplementation.multiply,\n modulo: AnimatedImplementation.modulo,\n diffClamp: AnimatedImplementation.diffClamp,\n delay,\n sequence,\n parallel,\n stagger,\n loop,\n event: AnimatedImplementation.event,\n createAnimatedComponent,\n attachNativeEvent,\n forkEvent: AnimatedImplementation.forkEvent,\n unforkEvent: AnimatedImplementation.unforkEvent,\n Event: AnimatedEvent,\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {AnimatedComponentType} from '../createAnimatedComponent';\n\nimport FlatList from '../../Lists/FlatList';\nimport createAnimatedComponent from '../createAnimatedComponent';\nimport * as React from 'react';\n\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nconst FlatListWithEventThrottle = React.forwardRef(\n (\n props: React.ElementConfig,\n ref:\n | ((null | FlatList) => mixed)\n | {current: null | FlatList, ...},\n ) => ,\n);\n\nexport default (createAnimatedComponent(\n FlatListWithEventThrottle,\n): AnimatedComponentType<\n React.ElementConfig,\n React.ElementRef,\n>);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport typeof ScrollViewNativeComponent from '../Components/ScrollView/ScrollViewNativeComponent';\nimport type {ViewStyleProp} from '../StyleSheet/StyleSheet';\nimport type {\n RenderItemProps,\n RenderItemType,\n ViewabilityConfigCallbackPair,\n ViewToken,\n} from '@react-native/virtualized-lists';\n\nimport {type ScrollResponderType} from '../Components/ScrollView/ScrollView';\nimport {\n VirtualizedList,\n keyExtractor as defaultKeyExtractor,\n} from '@react-native/virtualized-lists';\nimport memoizeOne from 'memoize-one';\n\nconst View = require('../Components/View/View');\nconst StyleSheet = require('../StyleSheet/StyleSheet');\nconst deepDiffer = require('../Utilities/differ/deepDiffer');\nconst Platform = require('../Utilities/Platform');\nconst invariant = require('invariant');\nconst React = require('react');\n\ntype RequiredProps = {|\n /**\n * An array (or array-like list) of items to render. Other data types can be\n * used by targeting VirtualizedList directly.\n */\n data: ?$ArrayLike,\n|};\ntype OptionalProps = {|\n /**\n * Takes an item from `data` and renders it into the list. Example usage:\n *\n * (\n * \n * )}\n * data={[{title: 'Title Text', key: 'item1'}]}\n * renderItem={({item, separators}) => (\n * this._onPress(item)}\n * onShowUnderlay={separators.highlight}\n * onHideUnderlay={separators.unhighlight}>\n * \n * {item.title}\n * \n * \n * )}\n * />\n *\n * Provides additional metadata like `index` if you need it, as well as a more generic\n * `separators.updateProps` function which let's you set whatever props you want to change the\n * rendering of either the leading separator or trailing separator in case the more common\n * `highlight` and `unhighlight` (which set the `highlighted: boolean` prop) are insufficient for\n * your use-case.\n */\n renderItem?: ?RenderItemType,\n\n /**\n * Optional custom style for multi-item rows generated when numColumns > 1.\n */\n columnWrapperStyle?: ViewStyleProp,\n /**\n * A marker property for telling the list to re-render (since it implements `PureComponent`). If\n * any of your `renderItem`, Header, Footer, etc. functions depend on anything outside of the\n * `data` prop, stick it here and treat it immutably.\n */\n extraData?: any,\n /**\n * `getItemLayout` is an optional optimizations that let us skip measurement of dynamic content if\n * you know the height of items a priori. `getItemLayout` is the most efficient, and is easy to\n * use if you have fixed height items, for example:\n *\n * getItemLayout={(data, index) => (\n * {length: ITEM_HEIGHT, offset: ITEM_HEIGHT * index, index}\n * )}\n *\n * Adding `getItemLayout` can be a great performance boost for lists of several hundred items.\n * Remember to include separator length (height or width) in your offset calculation if you\n * specify `ItemSeparatorComponent`.\n */\n getItemLayout?: (\n data: ?$ArrayLike,\n index: number,\n ) => {\n length: number,\n offset: number,\n index: number,\n ...\n },\n /**\n * If true, renders items next to each other horizontally instead of stacked vertically.\n */\n horizontal?: ?boolean,\n /**\n * How many items to render in the initial batch. This should be enough to fill the screen but not\n * much more. Note these items will never be unmounted as part of the windowed rendering in order\n * to improve perceived performance of scroll-to-top actions.\n */\n initialNumToRender?: ?number,\n /**\n * Instead of starting at the top with the first item, start at `initialScrollIndex`. This\n * disables the \"scroll to top\" optimization that keeps the first `initialNumToRender` items\n * always rendered and immediately renders the items starting at this initial index. Requires\n * `getItemLayout` to be implemented.\n */\n initialScrollIndex?: ?number,\n /**\n * Reverses the direction of scroll. Uses scale transforms of -1.\n */\n inverted?: ?boolean,\n /**\n * Used to extract a unique key for a given item at the specified index. Key is used for caching\n * and as the react key to track item re-ordering. The default extractor checks `item.key`, then\n * falls back to using the index, like React does.\n */\n keyExtractor?: ?(item: ItemT, index: number) => string,\n /**\n * Multiple columns can only be rendered with `horizontal={false}` and will zig-zag like a\n * `flexWrap` layout. Items should all be the same height - masonry layouts are not supported.\n *\n * The default value is 1.\n */\n numColumns?: number,\n /**\n * Note: may have bugs (missing content) in some circumstances - use at your own risk.\n *\n * This may improve scroll performance for large lists.\n *\n * The default value is true for Android.\n */\n removeClippedSubviews?: boolean,\n /**\n * See `ScrollView` for flow type and further documentation.\n */\n fadingEdgeLength?: ?number,\n /**\n * Enable an optimization to memoize the item renderer to prevent unnecessary rerenders.\n */\n strictMode?: boolean,\n|};\n\n/**\n * Default Props Helper Functions\n * Use the following helper functions for default values\n */\n\n// removeClippedSubviewsOrDefault(this.props.removeClippedSubviews)\nfunction removeClippedSubviewsOrDefault(removeClippedSubviews: ?boolean) {\n return removeClippedSubviews ?? Platform.OS === 'android';\n}\n\n// numColumnsOrDefault(this.props.numColumns)\nfunction numColumnsOrDefault(numColumns: ?number) {\n return numColumns ?? 1;\n}\n\nfunction isArrayLike(data: mixed): boolean {\n // $FlowExpectedError[incompatible-use]\n return typeof Object(data).length === 'number';\n}\n\ntype FlatListProps = {|\n ...RequiredProps,\n ...OptionalProps,\n|};\n\ntype VirtualizedListProps = React.ElementConfig;\n\nexport type Props = {\n ...$Diff<\n VirtualizedListProps,\n {\n getItem: $PropertyType,\n getItemCount: $PropertyType,\n getItemLayout: $PropertyType,\n renderItem: $PropertyType,\n keyExtractor: $PropertyType,\n ...\n },\n >,\n ...FlatListProps,\n ...\n};\n\n/**\n * A performant interface for rendering simple, flat lists, supporting the most handy features:\n *\n * - Fully cross-platform.\n * - Optional horizontal mode.\n * - Configurable viewability callbacks.\n * - Header support.\n * - Footer support.\n * - Separator support.\n * - Pull to Refresh.\n * - Scroll loading.\n * - ScrollToIndex support.\n *\n * If you need section support, use [``](docs/sectionlist.html).\n *\n * Minimal Example:\n *\n * {item.key}}\n * />\n *\n * More complex, multi-select example demonstrating `PureComponent` usage for perf optimization and avoiding bugs.\n *\n * - By binding the `onPressItem` handler, the props will remain `===` and `PureComponent` will\n * prevent wasteful re-renders unless the actual `id`, `selected`, or `title` props change, even\n * if the components rendered in `MyListItem` did not have such optimizations.\n * - By passing `extraData={this.state}` to `FlatList` we make sure `FlatList` itself will re-render\n * when the `state.selected` changes. Without setting this prop, `FlatList` would not know it\n * needs to re-render any items because it is also a `PureComponent` and the prop comparison will\n * not show any changes.\n * - `keyExtractor` tells the list to use the `id`s for the react keys instead of the default `key` property.\n *\n *\n * class MyListItem extends React.PureComponent {\n * _onPress = () => {\n * this.props.onPressItem(this.props.id);\n * };\n *\n * render() {\n * const textColor = this.props.selected ? \"red\" : \"black\";\n * return (\n * \n * \n * \n * {this.props.title}\n * \n * \n * \n * );\n * }\n * }\n *\n * class MultiSelectList extends React.PureComponent {\n * state = {selected: (new Map(): Map)};\n *\n * _keyExtractor = (item, index) => item.id;\n *\n * _onPressItem = (id: string) => {\n * // updater functions are preferred for transactional updates\n * this.setState((state) => {\n * // copy the map rather than modifying state.\n * const selected = new Map(state.selected);\n * selected.set(id, !selected.get(id)); // toggle\n * return {selected};\n * });\n * };\n *\n * _renderItem = ({item}) => (\n * \n * );\n *\n * render() {\n * return (\n * \n * );\n * }\n * }\n *\n * This is a convenience wrapper around [``](docs/virtualizedlist.html),\n * and thus inherits its props (as well as those of `ScrollView`) that aren't explicitly listed\n * here, along with the following caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n * Also inherits [ScrollView Props](docs/scrollview.html#props), unless it is nested in another FlatList of same orientation.\n */\nclass FlatList extends React.PureComponent, void> {\n props: Props;\n /**\n * Scrolls to the end of the content. May be janky without `getItemLayout` prop.\n */\n scrollToEnd(params?: ?{animated?: ?boolean, ...}) {\n if (this._listRef) {\n this._listRef.scrollToEnd(params);\n }\n }\n\n /**\n * Scrolls to the item at the specified index such that it is positioned in the viewable area\n * such that `viewPosition` 0 places it at the top, 1 at the bottom, and 0.5 centered in the\n * middle. `viewOffset` is a fixed number of pixels to offset the final target position.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n scrollToIndex(params: {\n animated?: ?boolean,\n index: number,\n viewOffset?: number,\n viewPosition?: number,\n ...\n }) {\n if (this._listRef) {\n this._listRef.scrollToIndex(params);\n }\n }\n\n /**\n * Requires linear scan through data - use `scrollToIndex` instead if possible.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n scrollToItem(params: {\n animated?: ?boolean,\n item: ItemT,\n viewOffset?: number,\n viewPosition?: number,\n ...\n }) {\n if (this._listRef) {\n this._listRef.scrollToItem(params);\n }\n }\n\n /**\n * Scroll to a specific content pixel offset in the list.\n *\n * Check out [scrollToOffset](docs/virtualizedlist.html#scrolltooffset) of VirtualizedList\n */\n scrollToOffset(params: {animated?: ?boolean, offset: number, ...}) {\n if (this._listRef) {\n this._listRef.scrollToOffset(params);\n }\n }\n\n /**\n * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n * taps on items or by navigation actions.\n */\n recordInteraction() {\n if (this._listRef) {\n this._listRef.recordInteraction();\n }\n }\n\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n flashScrollIndicators() {\n if (this._listRef) {\n this._listRef.flashScrollIndicators();\n }\n }\n\n /**\n * Provides a handle to the underlying scroll responder.\n */\n getScrollResponder(): ?ScrollResponderType {\n if (this._listRef) {\n return this._listRef.getScrollResponder();\n }\n }\n\n /**\n * Provides a reference to the underlying host component\n */\n getNativeScrollRef():\n | ?React.ElementRef\n | ?React.ElementRef {\n if (this._listRef) {\n /* $FlowFixMe[incompatible-return] Suppresses errors found when fixing\n * TextInput typing */\n return this._listRef.getScrollRef();\n }\n }\n\n getScrollableNode(): any {\n if (this._listRef) {\n return this._listRef.getScrollableNode();\n }\n }\n\n setNativeProps(props: {[string]: mixed, ...}) {\n if (this._listRef) {\n this._listRef.setNativeProps(props);\n }\n }\n\n constructor(props: Props) {\n super(props);\n this._checkProps(this.props);\n if (this.props.viewabilityConfigCallbackPairs) {\n this._virtualizedListPairs =\n this.props.viewabilityConfigCallbackPairs.map(pair => ({\n viewabilityConfig: pair.viewabilityConfig,\n onViewableItemsChanged: this._createOnViewableItemsChanged(\n pair.onViewableItemsChanged,\n ),\n }));\n } else if (this.props.onViewableItemsChanged) {\n this._virtualizedListPairs.push({\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To\n * see the error delete this comment and run Flow. */\n viewabilityConfig: this.props.viewabilityConfig,\n onViewableItemsChanged: this._createOnViewableItemsChanged(\n this.props.onViewableItemsChanged,\n ),\n });\n }\n }\n\n // $FlowFixMe[missing-local-annot]\n componentDidUpdate(prevProps: Props) {\n invariant(\n prevProps.numColumns === this.props.numColumns,\n 'Changing numColumns on the fly is not supported. Change the key prop on FlatList when ' +\n 'changing the number of columns to force a fresh render of the component.',\n );\n invariant(\n prevProps.onViewableItemsChanged === this.props.onViewableItemsChanged,\n 'Changing onViewableItemsChanged on the fly is not supported',\n );\n invariant(\n !deepDiffer(prevProps.viewabilityConfig, this.props.viewabilityConfig),\n 'Changing viewabilityConfig on the fly is not supported',\n );\n invariant(\n prevProps.viewabilityConfigCallbackPairs ===\n this.props.viewabilityConfigCallbackPairs,\n 'Changing viewabilityConfigCallbackPairs on the fly is not supported',\n );\n\n this._checkProps(this.props);\n }\n\n _listRef: ?React.ElementRef;\n _virtualizedListPairs: Array = [];\n\n _captureRef = (ref: ?React.ElementRef) => {\n this._listRef = ref;\n };\n\n // $FlowFixMe[missing-local-annot]\n _checkProps(props: Props) {\n const {\n // $FlowFixMe[prop-missing] this prop doesn't exist, is only used for an invariant\n getItem,\n // $FlowFixMe[prop-missing] this prop doesn't exist, is only used for an invariant\n getItemCount,\n horizontal,\n columnWrapperStyle,\n onViewableItemsChanged,\n viewabilityConfigCallbackPairs,\n } = props;\n const numColumns = numColumnsOrDefault(this.props.numColumns);\n invariant(\n !getItem && !getItemCount,\n 'FlatList does not support custom data formats.',\n );\n if (numColumns > 1) {\n invariant(!horizontal, 'numColumns does not support horizontal.');\n } else {\n invariant(\n !columnWrapperStyle,\n 'columnWrapperStyle not supported for single column lists',\n );\n }\n invariant(\n !(onViewableItemsChanged && viewabilityConfigCallbackPairs),\n 'FlatList does not support setting both onViewableItemsChanged and ' +\n 'viewabilityConfigCallbackPairs.',\n );\n }\n\n _getItem = (\n data: $ArrayLike,\n index: number,\n ): ?(ItemT | $ReadOnlyArray) => {\n const numColumns = numColumnsOrDefault(this.props.numColumns);\n if (numColumns > 1) {\n const ret = [];\n for (let kk = 0; kk < numColumns; kk++) {\n const itemIndex = index * numColumns + kk;\n if (itemIndex < data.length) {\n const item = data[itemIndex];\n ret.push(item);\n }\n }\n return ret;\n } else {\n return data[index];\n }\n };\n\n _getItemCount = (data: ?$ArrayLike): number => {\n // Legacy behavior of FlatList was to forward \"undefined\" length if invalid\n // data like a non-arraylike object is passed. VirtualizedList would then\n // coerce this, and the math would work out to no-op. For compatibility, if\n // invalid data is passed, we tell VirtualizedList there are zero items\n // available to prevent it from trying to read from the invalid data\n // (without propagating invalidly typed data).\n if (data != null && isArrayLike(data)) {\n const numColumns = numColumnsOrDefault(this.props.numColumns);\n return numColumns > 1 ? Math.ceil(data.length / numColumns) : data.length;\n } else {\n return 0;\n }\n };\n\n _keyExtractor = (items: ItemT | Array, index: number): string => {\n const numColumns = numColumnsOrDefault(this.props.numColumns);\n const keyExtractor = this.props.keyExtractor ?? defaultKeyExtractor;\n\n if (numColumns > 1) {\n invariant(\n Array.isArray(items),\n 'FlatList: Encountered internal consistency error, expected each item to consist of an ' +\n 'array with 1-%s columns; instead, received a single item.',\n numColumns,\n );\n return items\n .map((item, kk) =>\n keyExtractor(((item: $FlowFixMe): ItemT), index * numColumns + kk),\n )\n .join(':');\n }\n\n // $FlowFixMe[incompatible-call] Can't call keyExtractor with an array\n return keyExtractor(items, index);\n };\n\n _pushMultiColumnViewable(arr: Array, v: ViewToken): void {\n const numColumns = numColumnsOrDefault(this.props.numColumns);\n const keyExtractor = this.props.keyExtractor ?? defaultKeyExtractor;\n v.item.forEach((item, ii) => {\n invariant(v.index != null, 'Missing index!');\n const index = v.index * numColumns + ii;\n arr.push({...v, item, key: keyExtractor(item, index), index});\n });\n }\n\n _createOnViewableItemsChanged(\n onViewableItemsChanged: ?(info: {\n viewableItems: Array,\n changed: Array,\n ...\n }) => void,\n // $FlowFixMe[missing-local-annot]\n ) {\n return (info: {\n viewableItems: Array,\n changed: Array,\n ...\n }) => {\n const numColumns = numColumnsOrDefault(this.props.numColumns);\n if (onViewableItemsChanged) {\n if (numColumns > 1) {\n const changed: Array = [];\n const viewableItems: Array = [];\n info.viewableItems.forEach(v =>\n this._pushMultiColumnViewable(viewableItems, v),\n );\n info.changed.forEach(v => this._pushMultiColumnViewable(changed, v));\n onViewableItemsChanged({viewableItems, changed});\n } else {\n onViewableItemsChanged(info);\n }\n }\n };\n }\n\n _renderer = (\n ListItemComponent: ?(React.ComponentType | React.Element),\n renderItem: ?RenderItemType,\n columnWrapperStyle: ?ViewStyleProp,\n numColumns: ?number,\n extraData: ?any,\n // $FlowFixMe[missing-local-annot]\n ) => {\n const cols = numColumnsOrDefault(numColumns);\n\n const render = (props: RenderItemProps): React.Node => {\n if (ListItemComponent) {\n // $FlowFixMe[not-a-component] Component isn't valid\n // $FlowFixMe[incompatible-type-arg] Component isn't valid\n // $FlowFixMe[incompatible-return] Component isn't valid\n return ;\n } else if (renderItem) {\n // $FlowFixMe[incompatible-call]\n return renderItem(props);\n } else {\n return null;\n }\n };\n\n const renderProp = (info: RenderItemProps) => {\n if (cols > 1) {\n const {item, index} = info;\n invariant(\n Array.isArray(item),\n 'Expected array of items with numColumns > 1',\n );\n return (\n \n {item.map((it, kk) => {\n const element = render({\n // $FlowFixMe[incompatible-call]\n item: it,\n index: index * cols + kk,\n separators: info.separators,\n });\n return element != null ? (\n {element}\n ) : null;\n })}\n \n );\n } else {\n return render(info);\n }\n };\n\n return ListItemComponent\n ? {ListItemComponent: renderProp}\n : {renderItem: renderProp};\n };\n\n // $FlowFixMe[missing-local-annot]\n _memoizedRenderer = memoizeOne(this._renderer);\n\n render(): React.Node {\n const {\n numColumns,\n columnWrapperStyle,\n removeClippedSubviews: _removeClippedSubviews,\n strictMode = false,\n ...restProps\n } = this.props;\n\n const renderer = strictMode ? this._memoizedRenderer : this._renderer;\n\n return (\n // $FlowFixMe[incompatible-exact] - `restProps` (`Props`) is inexact.\n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n row: {flexDirection: 'row'},\n});\n\nmodule.exports = FlatList;\n","'use strict';\n\nvar safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nmodule.exports = memoizeOne;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nimport {keyExtractor} from './Lists/VirtualizeUtils';\n\nimport typeof VirtualizedList from './Lists/VirtualizedList';\nimport typeof VirtualizedSectionList from './Lists/VirtualizedSectionList';\nimport {typeof VirtualizedListContextResetter} from './Lists/VirtualizedListContext';\nimport typeof ViewabilityHelper from './Lists/ViewabilityHelper';\nimport typeof FillRateHelper from './Lists/FillRateHelper';\n\nexport type {\n ViewToken,\n ViewabilityConfig,\n ViewabilityConfigCallbackPair,\n} from './Lists/ViewabilityHelper';\nexport type {\n CellRendererProps,\n RenderItemProps,\n RenderItemType,\n Separators,\n} from './Lists/VirtualizedListProps';\nexport type {\n Props as VirtualizedSectionListProps,\n ScrollToLocationParamsType,\n SectionBase,\n} from './Lists/VirtualizedSectionList';\nexport type {FillRateInfo} from './Lists/FillRateHelper';\n\nmodule.exports = {\n keyExtractor,\n\n get VirtualizedList(): VirtualizedList {\n return require('./Lists/VirtualizedList');\n },\n get VirtualizedSectionList(): VirtualizedSectionList {\n return require('./Lists/VirtualizedSectionList');\n },\n get VirtualizedListContextResetter(): VirtualizedListContextResetter {\n const VirtualizedListContext = require('./Lists/VirtualizedListContext');\n return VirtualizedListContext.VirtualizedListContextResetter;\n },\n get ViewabilityHelper(): ViewabilityHelper {\n return require('./Lists/ViewabilityHelper');\n },\n get FillRateHelper(): FillRateHelper {\n return require('./Lists/FillRateHelper');\n },\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {FrameMetricProps} from './VirtualizedListProps';\n\n/**\n * Used to find the indices of the frames that overlap the given offsets. Useful for finding the\n * items that bound different windows of content, such as the visible area or the buffered overscan\n * area.\n */\nexport function elementsThatOverlapOffsets(\n offsets: Array,\n props: FrameMetricProps,\n getFrameMetrics: (\n index: number,\n props: FrameMetricProps,\n ) => {\n length: number,\n offset: number,\n ...\n },\n zoomScale: number = 1,\n): Array {\n const itemCount = props.getItemCount(props.data);\n const result = [];\n for (let offsetIndex = 0; offsetIndex < offsets.length; offsetIndex++) {\n const currentOffset = offsets[offsetIndex];\n let left = 0;\n let right = itemCount - 1;\n\n while (left <= right) {\n // eslint-disable-next-line no-bitwise\n const mid = left + ((right - left) >>> 1);\n const frame = getFrameMetrics(mid, props);\n const scaledOffsetStart = frame.offset * zoomScale;\n const scaledOffsetEnd = (frame.offset + frame.length) * zoomScale;\n\n // We want the first frame that contains the offset, with inclusive bounds. Thus, for the\n // first frame the scaledOffsetStart is inclusive, while for other frames it is exclusive.\n if (\n (mid === 0 && currentOffset < scaledOffsetStart) ||\n (mid !== 0 && currentOffset <= scaledOffsetStart)\n ) {\n right = mid - 1;\n } else if (currentOffset > scaledOffsetEnd) {\n left = mid + 1;\n } else {\n result[offsetIndex] = mid;\n break;\n }\n }\n }\n\n return result;\n}\n\n/**\n * Computes the number of elements in the `next` range that are new compared to the `prev` range.\n * Handy for calculating how many new items will be rendered when the render window changes so we\n * can restrict the number of new items render at once so that content can appear on the screen\n * faster.\n */\nexport function newRangeCount(\n prev: {\n first: number,\n last: number,\n ...\n },\n next: {\n first: number,\n last: number,\n ...\n },\n): number {\n return (\n next.last -\n next.first +\n 1 -\n Math.max(\n 0,\n 1 + Math.min(next.last, prev.last) - Math.max(next.first, prev.first),\n )\n );\n}\n\n/**\n * Custom logic for determining which items should be rendered given the current frame and scroll\n * metrics, as well as the previous render state. The algorithm may evolve over time, but generally\n * prioritizes the visible area first, then expands that with overscan regions ahead and behind,\n * biased in the direction of scroll.\n */\nexport function computeWindowedRenderLimits(\n props: FrameMetricProps,\n maxToRenderPerBatch: number,\n windowSize: number,\n prev: {\n first: number,\n last: number,\n },\n getFrameMetricsApprox: (\n index: number,\n props: FrameMetricProps,\n ) => {\n length: number,\n offset: number,\n ...\n },\n scrollMetrics: {\n dt: number,\n offset: number,\n velocity: number,\n visibleLength: number,\n zoomScale: number,\n ...\n },\n): {\n first: number,\n last: number,\n} {\n const itemCount = props.getItemCount(props.data);\n if (itemCount === 0) {\n return {first: 0, last: -1};\n }\n const {offset, velocity, visibleLength, zoomScale = 1} = scrollMetrics;\n\n // Start with visible area, then compute maximum overscan region by expanding from there, biased\n // in the direction of scroll. Total overscan area is capped, which should cap memory consumption\n // too.\n const visibleBegin = Math.max(0, offset);\n const visibleEnd = visibleBegin + visibleLength;\n const overscanLength = (windowSize - 1) * visibleLength;\n\n // Considering velocity seems to introduce more churn than it's worth.\n const leadFactor = 0.5; // Math.max(0, Math.min(1, velocity / 25 + 0.5));\n\n const fillPreference =\n velocity > 1 ? 'after' : velocity < -1 ? 'before' : 'none';\n\n const overscanBegin = Math.max(\n 0,\n visibleBegin - (1 - leadFactor) * overscanLength,\n );\n const overscanEnd = Math.max(0, visibleEnd + leadFactor * overscanLength);\n\n const lastItemOffset =\n getFrameMetricsApprox(itemCount - 1, props).offset * zoomScale;\n if (lastItemOffset < overscanBegin) {\n // Entire list is before our overscan window\n return {\n first: Math.max(0, itemCount - 1 - maxToRenderPerBatch),\n last: itemCount - 1,\n };\n }\n\n // Find the indices that correspond to the items at the render boundaries we're targeting.\n let [overscanFirst, first, last, overscanLast] = elementsThatOverlapOffsets(\n [overscanBegin, visibleBegin, visibleEnd, overscanEnd],\n props,\n getFrameMetricsApprox,\n zoomScale,\n );\n overscanFirst = overscanFirst == null ? 0 : overscanFirst;\n first = first == null ? Math.max(0, overscanFirst) : first;\n overscanLast = overscanLast == null ? itemCount - 1 : overscanLast;\n last =\n last == null\n ? Math.min(overscanLast, first + maxToRenderPerBatch - 1)\n : last;\n const visible = {first, last};\n\n // We want to limit the number of new cells we're rendering per batch so that we can fill the\n // content on the screen quickly. If we rendered the entire overscan window at once, the user\n // could be staring at white space for a long time waiting for a bunch of offscreen content to\n // render.\n let newCellCount = newRangeCount(prev, visible);\n\n while (true) {\n if (first <= overscanFirst && last >= overscanLast) {\n // If we fill the entire overscan range, we're done.\n break;\n }\n const maxNewCells = newCellCount >= maxToRenderPerBatch;\n const firstWillAddMore = first <= prev.first || first > prev.last;\n const firstShouldIncrement =\n first > overscanFirst && (!maxNewCells || !firstWillAddMore);\n const lastWillAddMore = last >= prev.last || last < prev.first;\n const lastShouldIncrement =\n last < overscanLast && (!maxNewCells || !lastWillAddMore);\n if (maxNewCells && !firstShouldIncrement && !lastShouldIncrement) {\n // We only want to stop if we've hit maxNewCells AND we cannot increment first or last\n // without rendering new items. This let's us preserve as many already rendered items as\n // possible, reducing render churn and keeping the rendered overscan range as large as\n // possible.\n break;\n }\n if (\n firstShouldIncrement &&\n !(fillPreference === 'after' && lastShouldIncrement && lastWillAddMore)\n ) {\n if (firstWillAddMore) {\n newCellCount++;\n }\n first--;\n }\n if (\n lastShouldIncrement &&\n !(fillPreference === 'before' && firstShouldIncrement && firstWillAddMore)\n ) {\n if (lastWillAddMore) {\n newCellCount++;\n }\n last++;\n }\n }\n if (\n !(\n last >= first &&\n first >= 0 &&\n last < itemCount &&\n first >= overscanFirst &&\n last <= overscanLast &&\n first <= visible.first &&\n last >= visible.last\n )\n ) {\n throw new Error(\n 'Bad window calculation ' +\n JSON.stringify({\n first,\n last,\n itemCount,\n overscanFirst,\n overscanLast,\n visible,\n }),\n );\n }\n return {first, last};\n}\n\nexport function keyExtractor(item: any, index: number): string {\n if (typeof item === 'object' && item?.key != null) {\n return item.key;\n }\n if (typeof item === 'object' && item?.id != null) {\n return item.id;\n }\n return String(index);\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {ScrollResponderType} from 'react-native/Libraries/Components/ScrollView/ScrollView';\nimport type {ViewStyleProp} from 'react-native/Libraries/StyleSheet/StyleSheet';\nimport type {\n LayoutEvent,\n ScrollEvent,\n} from 'react-native/Libraries/Types/CoreEventTypes';\nimport type {ViewToken} from './ViewabilityHelper';\nimport type {\n FrameMetricProps,\n Item,\n Props,\n RenderItemProps,\n RenderItemType,\n Separators,\n} from './VirtualizedListProps';\n\nimport {\n RefreshControl,\n ScrollView,\n View,\n StyleSheet,\n findNodeHandle,\n} from 'react-native';\nimport Batchinator from '../Interaction/Batchinator';\nimport clamp from '../Utilities/clamp';\nimport infoLog from '../Utilities/infoLog';\nimport {CellRenderMask} from './CellRenderMask';\nimport ChildListCollection from './ChildListCollection';\nimport FillRateHelper from './FillRateHelper';\nimport StateSafePureComponent from './StateSafePureComponent';\nimport ViewabilityHelper from './ViewabilityHelper';\nimport CellRenderer from './VirtualizedListCellRenderer';\nimport {\n VirtualizedListCellContextProvider,\n VirtualizedListContext,\n VirtualizedListContextProvider,\n} from './VirtualizedListContext.js';\nimport {\n computeWindowedRenderLimits,\n keyExtractor as defaultKeyExtractor,\n} from './VirtualizeUtils';\nimport invariant from 'invariant';\nimport nullthrows from 'nullthrows';\nimport * as React from 'react';\n\nexport type {RenderItemProps, RenderItemType, Separators};\n\nconst ON_EDGE_REACHED_EPSILON = 0.001;\n\nlet _usedIndexForKey = false;\nlet _keylessItemComponentName: string = '';\n\ntype ViewabilityHelperCallbackTuple = {\n viewabilityHelper: ViewabilityHelper,\n onViewableItemsChanged: (info: {\n viewableItems: Array,\n changed: Array,\n ...\n }) => void,\n ...\n};\n\ntype State = {\n renderMask: CellRenderMask,\n cellsAroundViewport: {first: number, last: number},\n // Used to track items added at the start of the list for maintainVisibleContentPosition.\n firstVisibleItemKey: ?string,\n // When > 0 the scroll position available in JS is considered stale and should not be used.\n pendingScrollUpdateCount: number,\n};\n\n/**\n * Default Props Helper Functions\n * Use the following helper functions for default values\n */\n\n// horizontalOrDefault(this.props.horizontal)\nfunction horizontalOrDefault(horizontal: ?boolean) {\n return horizontal ?? false;\n}\n\n// initialNumToRenderOrDefault(this.props.initialNumToRender)\nfunction initialNumToRenderOrDefault(initialNumToRender: ?number) {\n return initialNumToRender ?? 10;\n}\n\n// maxToRenderPerBatchOrDefault(this.props.maxToRenderPerBatch)\nfunction maxToRenderPerBatchOrDefault(maxToRenderPerBatch: ?number) {\n return maxToRenderPerBatch ?? 10;\n}\n\n// onStartReachedThresholdOrDefault(this.props.onStartReachedThreshold)\nfunction onStartReachedThresholdOrDefault(onStartReachedThreshold: ?number) {\n return onStartReachedThreshold ?? 2;\n}\n\n// onEndReachedThresholdOrDefault(this.props.onEndReachedThreshold)\nfunction onEndReachedThresholdOrDefault(onEndReachedThreshold: ?number) {\n return onEndReachedThreshold ?? 2;\n}\n\n// getScrollingThreshold(visibleLength, onEndReachedThreshold)\nfunction getScrollingThreshold(threshold: number, visibleLength: number) {\n return (threshold * visibleLength) / 2;\n}\n\n// scrollEventThrottleOrDefault(this.props.scrollEventThrottle)\nfunction scrollEventThrottleOrDefault(scrollEventThrottle: ?number) {\n return scrollEventThrottle ?? 50;\n}\n\n// windowSizeOrDefault(this.props.windowSize)\nfunction windowSizeOrDefault(windowSize: ?number) {\n return windowSize ?? 21;\n}\n\nfunction findLastWhere(\n arr: $ReadOnlyArray,\n predicate: (element: T) => boolean,\n): T | null {\n for (let i = arr.length - 1; i >= 0; i--) {\n if (predicate(arr[i])) {\n return arr[i];\n }\n }\n\n return null;\n}\n\n/**\n * Base implementation for the more convenient [``](https://reactnative.dev/docs/flatlist)\n * and [``](https://reactnative.dev/docs/sectionlist) components, which are also better\n * documented. In general, this should only really be used if you need more flexibility than\n * `FlatList` provides, e.g. for use with immutable data instead of plain arrays.\n *\n * Virtualization massively improves memory consumption and performance of large lists by\n * maintaining a finite render window of active items and replacing all items outside of the render\n * window with appropriately sized blank space. The window adapts to scrolling behavior, and items\n * are rendered incrementally with low-pri (after any running interactions) if they are far from the\n * visible area, or with hi-pri otherwise to minimize the potential of seeing blank space.\n *\n * Some caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` or `id` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n * - As an effort to remove defaultProps, use helper functions when referencing certain props\n *\n */\nclass VirtualizedList extends StateSafePureComponent {\n static contextType: typeof VirtualizedListContext = VirtualizedListContext;\n\n // scrollToEnd may be janky without getItemLayout prop\n scrollToEnd(params?: ?{animated?: ?boolean, ...}) {\n const animated = params ? params.animated : true;\n const veryLast = this.props.getItemCount(this.props.data) - 1;\n if (veryLast < 0) {\n return;\n }\n const frame = this.__getFrameMetricsApprox(veryLast, this.props);\n const offset = Math.max(\n 0,\n frame.offset +\n frame.length +\n this._footerLength -\n this._scrollMetrics.visibleLength,\n );\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn(\n 'No scrollTo method provided. This may be because you have two nested ' +\n 'VirtualizedLists with the same orientation, or because you are ' +\n 'using a custom component that does not implement scrollTo.',\n );\n return;\n }\n\n this._scrollRef.scrollTo(\n horizontalOrDefault(this.props.horizontal)\n ? {x: offset, animated}\n : {y: offset, animated},\n );\n }\n\n // scrollToIndex may be janky without getItemLayout prop\n scrollToIndex(params: {\n animated?: ?boolean,\n index: number,\n viewOffset?: number,\n viewPosition?: number,\n ...\n }): $FlowFixMe {\n const {\n data,\n horizontal,\n getItemCount,\n getItemLayout,\n onScrollToIndexFailed,\n } = this.props;\n const {animated, index, viewOffset, viewPosition} = params;\n invariant(\n index >= 0,\n `scrollToIndex out of range: requested index ${index} but minimum is 0`,\n );\n invariant(\n getItemCount(data) >= 1,\n `scrollToIndex out of range: item length ${getItemCount(\n data,\n )} but minimum is 1`,\n );\n invariant(\n index < getItemCount(data),\n `scrollToIndex out of range: requested index ${index} is out of 0 to ${\n getItemCount(data) - 1\n }`,\n );\n if (!getItemLayout && index > this._highestMeasuredFrameIndex) {\n invariant(\n !!onScrollToIndexFailed,\n 'scrollToIndex should be used in conjunction with getItemLayout or onScrollToIndexFailed, ' +\n 'otherwise there is no way to know the location of offscreen indices or handle failures.',\n );\n onScrollToIndexFailed({\n averageItemLength: this._averageCellLength,\n highestMeasuredFrameIndex: this._highestMeasuredFrameIndex,\n index,\n });\n return;\n }\n const frame = this.__getFrameMetricsApprox(Math.floor(index), this.props);\n const offset =\n Math.max(\n 0,\n this._getOffsetApprox(index, this.props) -\n (viewPosition || 0) *\n (this._scrollMetrics.visibleLength - frame.length),\n ) - (viewOffset || 0);\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn(\n 'No scrollTo method provided. This may be because you have two nested ' +\n 'VirtualizedLists with the same orientation, or because you are ' +\n 'using a custom component that does not implement scrollTo.',\n );\n return;\n }\n\n this._scrollRef.scrollTo(\n horizontal ? {x: offset, animated} : {y: offset, animated},\n );\n }\n\n // scrollToItem may be janky without getItemLayout prop. Required linear scan through items -\n // use scrollToIndex instead if possible.\n scrollToItem(params: {\n animated?: ?boolean,\n item: Item,\n viewOffset?: number,\n viewPosition?: number,\n ...\n }) {\n const {item} = params;\n const {data, getItem, getItemCount} = this.props;\n const itemCount = getItemCount(data);\n for (let index = 0; index < itemCount; index++) {\n if (getItem(data, index) === item) {\n this.scrollToIndex({...params, index});\n break;\n }\n }\n }\n\n /**\n * Scroll to a specific content pixel offset in the list.\n *\n * Param `offset` expects the offset to scroll to.\n * In case of `horizontal` is true, the offset is the x-value,\n * in any other case the offset is the y-value.\n *\n * Param `animated` (`true` by default) defines whether the list\n * should do an animation while scrolling.\n */\n scrollToOffset(params: {animated?: ?boolean, offset: number, ...}) {\n const {animated, offset} = params;\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn(\n 'No scrollTo method provided. This may be because you have two nested ' +\n 'VirtualizedLists with the same orientation, or because you are ' +\n 'using a custom component that does not implement scrollTo.',\n );\n return;\n }\n\n this._scrollRef.scrollTo(\n horizontalOrDefault(this.props.horizontal)\n ? {x: offset, animated}\n : {y: offset, animated},\n );\n }\n\n recordInteraction() {\n this._nestedChildLists.forEach(childList => {\n childList.recordInteraction();\n });\n this._viewabilityTuples.forEach(t => {\n t.viewabilityHelper.recordInteraction();\n });\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n }\n\n flashScrollIndicators() {\n if (this._scrollRef == null) {\n return;\n }\n\n this._scrollRef.flashScrollIndicators();\n }\n\n /**\n * Provides a handle to the underlying scroll responder.\n * Note that `this._scrollRef` might not be a `ScrollView`, so we\n * need to check that it responds to `getScrollResponder` before calling it.\n */\n getScrollResponder(): ?ScrollResponderType {\n if (this._scrollRef && this._scrollRef.getScrollResponder) {\n return this._scrollRef.getScrollResponder();\n }\n }\n\n getScrollableNode(): ?number {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n return this._scrollRef.getScrollableNode();\n } else {\n return findNodeHandle(this._scrollRef);\n }\n }\n\n getScrollRef():\n | ?React.ElementRef\n | ?React.ElementRef {\n if (this._scrollRef && this._scrollRef.getScrollRef) {\n return this._scrollRef.getScrollRef();\n } else {\n return this._scrollRef;\n }\n }\n\n setNativeProps(props: Object) {\n if (this._scrollRef) {\n this._scrollRef.setNativeProps(props);\n }\n }\n\n _getCellKey(): string {\n return this.context?.cellKey || 'rootList';\n }\n\n // $FlowFixMe[missing-local-annot]\n _getScrollMetrics = () => {\n return this._scrollMetrics;\n };\n\n hasMore(): boolean {\n return this._hasMore;\n }\n\n // $FlowFixMe[missing-local-annot]\n _getOutermostParentListRef = () => {\n if (this._isNestedWithSameOrientation()) {\n return this.context.getOutermostParentListRef();\n } else {\n return this;\n }\n };\n\n _registerAsNestedChild = (childList: {\n cellKey: string,\n ref: React.ElementRef,\n }): void => {\n this._nestedChildLists.add(childList.ref, childList.cellKey);\n if (this._hasInteracted) {\n childList.ref.recordInteraction();\n }\n };\n\n _unregisterAsNestedChild = (childList: {\n ref: React.ElementRef,\n }): void => {\n this._nestedChildLists.remove(childList.ref);\n };\n\n state: State;\n\n constructor(props: Props) {\n super(props);\n this._checkProps(props);\n\n this._fillRateHelper = new FillRateHelper(this._getFrameMetrics);\n this._updateCellsToRenderBatcher = new Batchinator(\n this._updateCellsToRender,\n this.props.updateCellsBatchingPeriod ?? 50,\n );\n\n if (this.props.viewabilityConfigCallbackPairs) {\n this._viewabilityTuples = this.props.viewabilityConfigCallbackPairs.map(\n pair => ({\n viewabilityHelper: new ViewabilityHelper(pair.viewabilityConfig),\n onViewableItemsChanged: pair.onViewableItemsChanged,\n }),\n );\n } else {\n const {onViewableItemsChanged, viewabilityConfig} = this.props;\n if (onViewableItemsChanged) {\n this._viewabilityTuples.push({\n viewabilityHelper: new ViewabilityHelper(viewabilityConfig),\n onViewableItemsChanged: onViewableItemsChanged,\n });\n }\n }\n\n const initialRenderRegion = VirtualizedList._initialRenderRegion(props);\n\n const minIndexForVisible =\n this.props.maintainVisibleContentPosition?.minIndexForVisible ?? 0;\n\n this.state = {\n cellsAroundViewport: initialRenderRegion,\n renderMask: VirtualizedList._createRenderMask(props, initialRenderRegion),\n firstVisibleItemKey:\n this.props.getItemCount(this.props.data) > minIndexForVisible\n ? VirtualizedList._getItemKey(this.props, minIndexForVisible)\n : null,\n // When we have a non-zero initialScrollIndex, we will receive a\n // scroll event later so this will prevent the window from updating\n // until we get a valid offset.\n pendingScrollUpdateCount:\n this.props.initialScrollIndex != null &&\n this.props.initialScrollIndex > 0\n ? 1\n : 0,\n };\n }\n\n _checkProps(props: Props) {\n const {onScroll, windowSize, getItemCount, data, initialScrollIndex} =\n props;\n\n invariant(\n // $FlowFixMe[prop-missing]\n !onScroll || !onScroll.__isNative,\n 'Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent ' +\n 'to support native onScroll events with useNativeDriver',\n );\n invariant(\n windowSizeOrDefault(windowSize) > 0,\n 'VirtualizedList: The windowSize prop must be present and set to a value greater than 0.',\n );\n\n invariant(\n getItemCount,\n 'VirtualizedList: The \"getItemCount\" prop must be provided',\n );\n\n const itemCount = getItemCount(data);\n\n if (\n initialScrollIndex != null &&\n !this._hasTriggeredInitialScrollToIndex &&\n (initialScrollIndex < 0 ||\n (itemCount > 0 && initialScrollIndex >= itemCount)) &&\n !this._hasWarned.initialScrollIndex\n ) {\n console.warn(\n `initialScrollIndex \"${initialScrollIndex}\" is not valid (list has ${itemCount} items)`,\n );\n this._hasWarned.initialScrollIndex = true;\n }\n\n if (__DEV__ && !this._hasWarned.flexWrap) {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n const flatStyles = StyleSheet.flatten(this.props.contentContainerStyle);\n if (flatStyles != null && flatStyles.flexWrap === 'wrap') {\n console.warn(\n '`flexWrap: `wrap`` is not supported with the `VirtualizedList` components.' +\n 'Consider using `numColumns` with `FlatList` instead.',\n );\n this._hasWarned.flexWrap = true;\n }\n }\n }\n\n static _findItemIndexWithKey(\n props: Props,\n key: string,\n hint: ?number,\n ): ?number {\n const itemCount = props.getItemCount(props.data);\n if (hint != null && hint >= 0 && hint < itemCount) {\n const curKey = VirtualizedList._getItemKey(props, hint);\n if (curKey === key) {\n return hint;\n }\n }\n for (let ii = 0; ii < itemCount; ii++) {\n const curKey = VirtualizedList._getItemKey(props, ii);\n if (curKey === key) {\n return ii;\n }\n }\n return null;\n }\n\n static _getItemKey(\n props: {\n data: Props['data'],\n getItem: Props['getItem'],\n keyExtractor: Props['keyExtractor'],\n ...\n },\n index: number,\n ): string {\n const item = props.getItem(props.data, index);\n return VirtualizedList._keyExtractor(item, index, props);\n }\n\n static _createRenderMask(\n props: Props,\n cellsAroundViewport: {first: number, last: number},\n additionalRegions?: ?$ReadOnlyArray<{first: number, last: number}>,\n ): CellRenderMask {\n const itemCount = props.getItemCount(props.data);\n\n invariant(\n cellsAroundViewport.first >= 0 &&\n cellsAroundViewport.last >= cellsAroundViewport.first - 1 &&\n cellsAroundViewport.last < itemCount,\n `Invalid cells around viewport \"[${cellsAroundViewport.first}, ${cellsAroundViewport.last}]\" was passed to VirtualizedList._createRenderMask`,\n );\n\n const renderMask = new CellRenderMask(itemCount);\n\n if (itemCount > 0) {\n const allRegions = [cellsAroundViewport, ...(additionalRegions ?? [])];\n for (const region of allRegions) {\n renderMask.addCells(region);\n }\n\n // The initially rendered cells are retained as part of the\n // \"scroll-to-top\" optimization\n if (props.initialScrollIndex == null || props.initialScrollIndex <= 0) {\n const initialRegion = VirtualizedList._initialRenderRegion(props);\n renderMask.addCells(initialRegion);\n }\n\n // The layout coordinates of sticker headers may be off-screen while the\n // actual header is on-screen. Keep the most recent before the viewport\n // rendered, even if its layout coordinates are not in viewport.\n const stickyIndicesSet = new Set(props.stickyHeaderIndices);\n VirtualizedList._ensureClosestStickyHeader(\n props,\n stickyIndicesSet,\n renderMask,\n cellsAroundViewport.first,\n );\n }\n\n return renderMask;\n }\n\n static _initialRenderRegion(props: Props): {first: number, last: number} {\n const itemCount = props.getItemCount(props.data);\n\n const firstCellIndex = Math.max(\n 0,\n Math.min(itemCount - 1, Math.floor(props.initialScrollIndex ?? 0)),\n );\n\n const lastCellIndex =\n Math.min(\n itemCount,\n firstCellIndex + initialNumToRenderOrDefault(props.initialNumToRender),\n ) - 1;\n\n return {\n first: firstCellIndex,\n last: lastCellIndex,\n };\n }\n\n static _ensureClosestStickyHeader(\n props: Props,\n stickyIndicesSet: Set,\n renderMask: CellRenderMask,\n cellIdx: number,\n ) {\n const stickyOffset = props.ListHeaderComponent ? 1 : 0;\n\n for (let itemIdx = cellIdx - 1; itemIdx >= 0; itemIdx--) {\n if (stickyIndicesSet.has(itemIdx + stickyOffset)) {\n renderMask.addCells({first: itemIdx, last: itemIdx});\n break;\n }\n }\n }\n\n _adjustCellsAroundViewport(\n props: Props,\n cellsAroundViewport: {first: number, last: number},\n pendingScrollUpdateCount: number,\n ): {first: number, last: number} {\n const {data, getItemCount} = props;\n const onEndReachedThreshold = onEndReachedThresholdOrDefault(\n props.onEndReachedThreshold,\n );\n const {contentLength, offset, visibleLength} = this._scrollMetrics;\n const distanceFromEnd = contentLength - visibleLength - offset;\n\n // Wait until the scroll view metrics have been set up. And until then,\n // we will trust the initialNumToRender suggestion\n if (visibleLength <= 0 || contentLength <= 0) {\n return cellsAroundViewport.last >= getItemCount(data)\n ? VirtualizedList._constrainToItemCount(cellsAroundViewport, props)\n : cellsAroundViewport;\n }\n\n let newCellsAroundViewport: {first: number, last: number};\n if (props.disableVirtualization) {\n const renderAhead =\n distanceFromEnd < onEndReachedThreshold * visibleLength\n ? maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch)\n : 0;\n\n newCellsAroundViewport = {\n first: 0,\n last: Math.min(\n cellsAroundViewport.last + renderAhead,\n getItemCount(data) - 1,\n ),\n };\n } else {\n // If we have a pending scroll update, we should not adjust the render window as it\n // might override the correct window.\n if (pendingScrollUpdateCount > 0) {\n return cellsAroundViewport.last >= getItemCount(data)\n ? VirtualizedList._constrainToItemCount(cellsAroundViewport, props)\n : cellsAroundViewport;\n }\n\n newCellsAroundViewport = computeWindowedRenderLimits(\n props,\n maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch),\n windowSizeOrDefault(props.windowSize),\n cellsAroundViewport,\n this.__getFrameMetricsApprox,\n this._scrollMetrics,\n );\n invariant(\n newCellsAroundViewport.last < getItemCount(data),\n 'computeWindowedRenderLimits() should return range in-bounds',\n );\n }\n\n if (this._nestedChildLists.size() > 0) {\n // If some cell in the new state has a child list in it, we should only render\n // up through that item, so that we give that list a chance to render.\n // Otherwise there's churn from multiple child lists mounting and un-mounting\n // their items.\n\n // Will this prevent rendering if the nested list doesn't realize the end?\n const childIdx = this._findFirstChildWithMore(\n newCellsAroundViewport.first,\n newCellsAroundViewport.last,\n );\n\n newCellsAroundViewport.last = childIdx ?? newCellsAroundViewport.last;\n }\n\n return newCellsAroundViewport;\n }\n\n _findFirstChildWithMore(first: number, last: number): number | null {\n for (let ii = first; ii <= last; ii++) {\n const cellKeyForIndex = this._indicesToKeys.get(ii);\n if (\n cellKeyForIndex != null &&\n this._nestedChildLists.anyInCell(cellKeyForIndex, childList =>\n childList.hasMore(),\n )\n ) {\n return ii;\n }\n }\n\n return null;\n }\n\n componentDidMount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.registerAsNestedChild({\n ref: this,\n cellKey: this.context.cellKey,\n });\n }\n }\n\n componentWillUnmount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.unregisterAsNestedChild({ref: this});\n }\n this._updateCellsToRenderBatcher.dispose({abort: true});\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.dispose();\n });\n this._fillRateHelper.deactivateAndFlush();\n }\n\n static getDerivedStateFromProps(newProps: Props, prevState: State): State {\n // first and last could be stale (e.g. if a new, shorter items props is passed in), so we make\n // sure we're rendering a reasonable range here.\n const itemCount = newProps.getItemCount(newProps.data);\n if (itemCount === prevState.renderMask.numCells()) {\n return prevState;\n }\n\n let maintainVisibleContentPositionAdjustment: ?number = null;\n const prevFirstVisibleItemKey = prevState.firstVisibleItemKey;\n const minIndexForVisible =\n newProps.maintainVisibleContentPosition?.minIndexForVisible ?? 0;\n const newFirstVisibleItemKey =\n newProps.getItemCount(newProps.data) > minIndexForVisible\n ? VirtualizedList._getItemKey(newProps, minIndexForVisible)\n : null;\n if (\n newProps.maintainVisibleContentPosition != null &&\n prevFirstVisibleItemKey != null &&\n newFirstVisibleItemKey != null\n ) {\n if (newFirstVisibleItemKey !== prevFirstVisibleItemKey) {\n // Fast path if items were added at the start of the list.\n const hint =\n itemCount - prevState.renderMask.numCells() + minIndexForVisible;\n const firstVisibleItemIndex = VirtualizedList._findItemIndexWithKey(\n newProps,\n prevFirstVisibleItemKey,\n hint,\n );\n maintainVisibleContentPositionAdjustment =\n firstVisibleItemIndex != null\n ? firstVisibleItemIndex - minIndexForVisible\n : null;\n } else {\n maintainVisibleContentPositionAdjustment = null;\n }\n }\n\n const constrainedCells = VirtualizedList._constrainToItemCount(\n maintainVisibleContentPositionAdjustment != null\n ? {\n first:\n prevState.cellsAroundViewport.first +\n maintainVisibleContentPositionAdjustment,\n last:\n prevState.cellsAroundViewport.last +\n maintainVisibleContentPositionAdjustment,\n }\n : prevState.cellsAroundViewport,\n newProps,\n );\n\n return {\n cellsAroundViewport: constrainedCells,\n renderMask: VirtualizedList._createRenderMask(newProps, constrainedCells),\n firstVisibleItemKey: newFirstVisibleItemKey,\n pendingScrollUpdateCount:\n maintainVisibleContentPositionAdjustment != null\n ? prevState.pendingScrollUpdateCount + 1\n : prevState.pendingScrollUpdateCount,\n };\n }\n\n _pushCells(\n cells: Array,\n stickyHeaderIndices: Array,\n stickyIndicesFromProps: Set,\n first: number,\n last: number,\n inversionStyle: ViewStyleProp,\n ) {\n const {\n CellRendererComponent,\n ItemSeparatorComponent,\n ListHeaderComponent,\n ListItemComponent,\n data,\n debug,\n getItem,\n getItemCount,\n getItemLayout,\n horizontal,\n renderItem,\n } = this.props;\n const stickyOffset = ListHeaderComponent ? 1 : 0;\n const end = getItemCount(data) - 1;\n let prevCellKey;\n last = Math.min(end, last);\n\n for (let ii = first; ii <= last; ii++) {\n const item = getItem(data, ii);\n const key = VirtualizedList._keyExtractor(item, ii, this.props);\n\n this._indicesToKeys.set(ii, key);\n if (stickyIndicesFromProps.has(ii + stickyOffset)) {\n stickyHeaderIndices.push(cells.length);\n }\n\n const shouldListenForLayout =\n getItemLayout == null || debug || this._fillRateHelper.enabled();\n\n cells.push(\n this._onCellFocusCapture(key)}\n onUnmount={this._onCellUnmount}\n ref={ref => {\n this._cellRefs[key] = ref;\n }}\n renderItem={renderItem}\n {...(shouldListenForLayout && {\n onCellLayout: this._onCellLayout,\n })}\n />,\n );\n prevCellKey = key;\n }\n }\n\n static _constrainToItemCount(\n cells: {first: number, last: number},\n props: Props,\n ): {first: number, last: number} {\n const itemCount = props.getItemCount(props.data);\n const last = Math.min(itemCount - 1, cells.last);\n\n const maxToRenderPerBatch = maxToRenderPerBatchOrDefault(\n props.maxToRenderPerBatch,\n );\n\n return {\n first: clamp(0, itemCount - 1 - maxToRenderPerBatch, cells.first),\n last,\n };\n }\n\n _onUpdateSeparators = (keys: Array, newProps: Object) => {\n keys.forEach(key => {\n const ref = key != null && this._cellRefs[key];\n ref && ref.updateSeparatorProps(newProps);\n });\n };\n\n _isNestedWithSameOrientation(): boolean {\n const nestedContext = this.context;\n return !!(\n nestedContext &&\n !!nestedContext.horizontal === horizontalOrDefault(this.props.horizontal)\n );\n }\n\n _getSpacerKey = (isVertical: boolean): string =>\n isVertical ? 'height' : 'width';\n\n static _keyExtractor(\n item: Item,\n index: number,\n props: {\n keyExtractor?: ?(item: Item, index: number) => string,\n ...\n },\n ): string {\n if (props.keyExtractor != null) {\n return props.keyExtractor(item, index);\n }\n\n const key = defaultKeyExtractor(item, index);\n if (key === String(index)) {\n _usedIndexForKey = true;\n if (item.type && item.type.displayName) {\n _keylessItemComponentName = item.type.displayName;\n }\n }\n return key;\n }\n\n render(): React.Node {\n this._checkProps(this.props);\n const {ListEmptyComponent, ListFooterComponent, ListHeaderComponent} =\n this.props;\n const {data, horizontal} = this.props;\n const inversionStyle = this.props.inverted\n ? horizontalOrDefault(this.props.horizontal)\n ? styles.horizontallyInverted\n : styles.verticallyInverted\n : null;\n const cells: Array = [];\n const stickyIndicesFromProps = new Set(this.props.stickyHeaderIndices);\n const stickyHeaderIndices = [];\n\n // 1. Add cell for ListHeaderComponent\n if (ListHeaderComponent) {\n if (stickyIndicesFromProps.has(0)) {\n stickyHeaderIndices.push(0);\n }\n const element = React.isValidElement(ListHeaderComponent) ? (\n ListHeaderComponent\n ) : (\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n \n );\n cells.push(\n \n \n {\n // $FlowFixMe[incompatible-type] - Typing ReactNativeComponent revealed errors\n element\n }\n \n ,\n );\n }\n\n // 2a. Add a cell for ListEmptyComponent if applicable\n const itemCount = this.props.getItemCount(data);\n if (itemCount === 0 && ListEmptyComponent) {\n const element: React.Element = ((React.isValidElement(\n ListEmptyComponent,\n ) ? (\n ListEmptyComponent\n ) : (\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n \n )): any);\n cells.push(\n \n {React.cloneElement(element, {\n onLayout: (event: LayoutEvent) => {\n this._onLayoutEmpty(event);\n if (element.props.onLayout) {\n element.props.onLayout(event);\n }\n },\n style: StyleSheet.compose(inversionStyle, element.props.style),\n })}\n ,\n );\n }\n\n // 2b. Add cells and spacers for each item\n if (itemCount > 0) {\n _usedIndexForKey = false;\n _keylessItemComponentName = '';\n const spacerKey = this._getSpacerKey(!horizontal);\n\n const renderRegions = this.state.renderMask.enumerateRegions();\n const lastSpacer = findLastWhere(renderRegions, r => r.isSpacer);\n\n for (const section of renderRegions) {\n if (section.isSpacer) {\n // Legacy behavior is to avoid spacers when virtualization is\n // disabled (including head spacers on initial render).\n if (this.props.disableVirtualization) {\n continue;\n }\n\n // Without getItemLayout, we limit our tail spacer to the _highestMeasuredFrameIndex to\n // prevent the user for hyperscrolling into un-measured area because otherwise content will\n // likely jump around as it renders in above the viewport.\n const isLastSpacer = section === lastSpacer;\n const constrainToMeasured = isLastSpacer && !this.props.getItemLayout;\n const last = constrainToMeasured\n ? clamp(\n section.first - 1,\n section.last,\n this._highestMeasuredFrameIndex,\n )\n : section.last;\n\n const firstMetrics = this.__getFrameMetricsApprox(\n section.first,\n this.props,\n );\n const lastMetrics = this.__getFrameMetricsApprox(last, this.props);\n const spacerSize =\n lastMetrics.offset + lastMetrics.length - firstMetrics.offset;\n cells.push(\n ,\n );\n } else {\n this._pushCells(\n cells,\n stickyHeaderIndices,\n stickyIndicesFromProps,\n section.first,\n section.last,\n inversionStyle,\n );\n }\n }\n\n if (!this._hasWarned.keys && _usedIndexForKey) {\n console.warn(\n 'VirtualizedList: missing keys for items, make sure to specify a key or id property on each ' +\n 'item or provide a custom keyExtractor.',\n _keylessItemComponentName,\n );\n this._hasWarned.keys = true;\n }\n }\n\n // 3. Add cell for ListFooterComponent\n if (ListFooterComponent) {\n const element = React.isValidElement(ListFooterComponent) ? (\n ListFooterComponent\n ) : (\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n \n );\n cells.push(\n \n \n {\n // $FlowFixMe[incompatible-type] - Typing ReactNativeComponent revealed errors\n element\n }\n \n ,\n );\n }\n\n // 4. Render the ScrollView\n const scrollProps = {\n ...this.props,\n onContentSizeChange: this._onContentSizeChange,\n onLayout: this._onLayout,\n onScroll: this._onScroll,\n onScrollBeginDrag: this._onScrollBeginDrag,\n onScrollEndDrag: this._onScrollEndDrag,\n onMomentumScrollBegin: this._onMomentumScrollBegin,\n onMomentumScrollEnd: this._onMomentumScrollEnd,\n scrollEventThrottle: scrollEventThrottleOrDefault(\n this.props.scrollEventThrottle,\n ), // TODO: Android support\n invertStickyHeaders:\n this.props.invertStickyHeaders !== undefined\n ? this.props.invertStickyHeaders\n : this.props.inverted,\n stickyHeaderIndices,\n style: inversionStyle\n ? [inversionStyle, this.props.style]\n : this.props.style,\n maintainVisibleContentPosition:\n this.props.maintainVisibleContentPosition != null\n ? {\n ...this.props.maintainVisibleContentPosition,\n // Adjust index to account for ListHeaderComponent.\n minIndexForVisible:\n this.props.maintainVisibleContentPosition.minIndexForVisible +\n (this.props.ListHeaderComponent ? 1 : 0),\n }\n : undefined,\n };\n\n this._hasMore = this.state.cellsAroundViewport.last < itemCount - 1;\n\n const innerRet = (\n \n {React.cloneElement(\n (\n this.props.renderScrollComponent ||\n this._defaultRenderScrollComponent\n )(scrollProps),\n {\n ref: this._captureScrollRef,\n },\n cells,\n )}\n \n );\n let ret: React.Node = innerRet;\n if (__DEV__) {\n ret = (\n \n {scrollContext => {\n if (\n scrollContext != null &&\n !scrollContext.horizontal ===\n !horizontalOrDefault(this.props.horizontal) &&\n !this._hasWarned.nesting &&\n this.context == null &&\n this.props.scrollEnabled !== false\n ) {\n // TODO (T46547044): use React.warn once 16.9 is sync'd: https://github.com/facebook/react/pull/15170\n console.error(\n 'VirtualizedLists should never be nested inside plain ScrollViews with the same ' +\n 'orientation because it can break windowing and other functionality - use another ' +\n 'VirtualizedList-backed container instead.',\n );\n this._hasWarned.nesting = true;\n }\n return innerRet;\n }}\n \n );\n }\n if (this.props.debug) {\n return (\n \n {ret}\n {this._renderDebugOverlay()}\n \n );\n } else {\n return ret;\n }\n }\n\n componentDidUpdate(prevProps: Props) {\n const {data, extraData} = this.props;\n if (data !== prevProps.data || extraData !== prevProps.extraData) {\n // clear the viewableIndices cache to also trigger\n // the onViewableItemsChanged callback with the new data\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.resetViewableIndices();\n });\n }\n // The `this._hiPriInProgress` is guaranteeing a hiPri cell update will only happen\n // once per fiber update. The `_scheduleCellsToRenderUpdate` will set it to true\n // if a hiPri update needs to perform. If `componentDidUpdate` is triggered with\n // `this._hiPriInProgress=true`, means it's triggered by the hiPri update. The\n // `_scheduleCellsToRenderUpdate` will check this condition and not perform\n // another hiPri update.\n const hiPriInProgress = this._hiPriInProgress;\n this._scheduleCellsToRenderUpdate();\n // Make sure setting `this._hiPriInProgress` back to false after `componentDidUpdate`\n // is triggered with `this._hiPriInProgress = true`\n if (hiPriInProgress) {\n this._hiPriInProgress = false;\n }\n }\n\n _averageCellLength = 0;\n _cellRefs: {[string]: null | CellRenderer} = {};\n _fillRateHelper: FillRateHelper;\n _frames: {\n [string]: {\n inLayout?: boolean,\n index: number,\n length: number,\n offset: number,\n },\n } = {};\n _footerLength = 0;\n // Used for preventing scrollToIndex from being called multiple times for initialScrollIndex\n _hasTriggeredInitialScrollToIndex = false;\n _hasInteracted = false;\n _hasMore = false;\n _hasWarned: {[string]: boolean} = {};\n _headerLength = 0;\n _hiPriInProgress: boolean = false; // flag to prevent infinite hiPri cell limit update\n _highestMeasuredFrameIndex = 0;\n _indicesToKeys: Map = new Map();\n _lastFocusedCellKey: ?string = null;\n _nestedChildLists: ChildListCollection =\n new ChildListCollection();\n _offsetFromParentVirtualizedList: number = 0;\n _prevParentOffset: number = 0;\n // $FlowFixMe[missing-local-annot]\n _scrollMetrics = {\n contentLength: 0,\n dOffset: 0,\n dt: 10,\n offset: 0,\n timestamp: 0,\n velocity: 0,\n visibleLength: 0,\n zoomScale: 1,\n };\n _scrollRef: ?React.ElementRef = null;\n _sentStartForContentLength = 0;\n _sentEndForContentLength = 0;\n _totalCellLength = 0;\n _totalCellsMeasured = 0;\n _updateCellsToRenderBatcher: Batchinator;\n _viewabilityTuples: Array = [];\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n _captureScrollRef = ref => {\n this._scrollRef = ref;\n };\n\n _computeBlankness() {\n this._fillRateHelper.computeBlankness(\n this.props,\n this.state.cellsAroundViewport,\n this._scrollMetrics,\n );\n }\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n _defaultRenderScrollComponent = props => {\n const onRefresh = props.onRefresh;\n if (this._isNestedWithSameOrientation()) {\n // $FlowFixMe[prop-missing] - Typing ReactNativeComponent revealed errors\n return ;\n } else if (onRefresh) {\n invariant(\n typeof props.refreshing === 'boolean',\n '`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `' +\n JSON.stringify(props.refreshing ?? 'undefined') +\n '`',\n );\n return (\n // $FlowFixMe[prop-missing] Invalid prop usage\n // $FlowFixMe[incompatible-use]\n \n ) : (\n props.refreshControl\n )\n }\n />\n );\n } else {\n // $FlowFixMe[prop-missing] Invalid prop usage\n // $FlowFixMe[incompatible-use]\n return ;\n }\n };\n\n _onCellLayout = (e: LayoutEvent, cellKey: string, index: number): void => {\n const layout = e.nativeEvent.layout;\n const next = {\n offset: this._selectOffset(layout),\n length: this._selectLength(layout),\n index,\n inLayout: true,\n };\n const curr = this._frames[cellKey];\n if (\n !curr ||\n next.offset !== curr.offset ||\n next.length !== curr.length ||\n index !== curr.index\n ) {\n this._totalCellLength += next.length - (curr ? curr.length : 0);\n this._totalCellsMeasured += curr ? 0 : 1;\n this._averageCellLength =\n this._totalCellLength / this._totalCellsMeasured;\n this._frames[cellKey] = next;\n this._highestMeasuredFrameIndex = Math.max(\n this._highestMeasuredFrameIndex,\n index,\n );\n this._scheduleCellsToRenderUpdate();\n } else {\n this._frames[cellKey].inLayout = true;\n }\n\n this._triggerRemeasureForChildListsInCell(cellKey);\n\n this._computeBlankness();\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n };\n\n _onCellFocusCapture(cellKey: string) {\n this._lastFocusedCellKey = cellKey;\n this._updateCellsToRender();\n }\n\n _onCellUnmount = (cellKey: string) => {\n delete this._cellRefs[cellKey];\n const curr = this._frames[cellKey];\n if (curr) {\n this._frames[cellKey] = {...curr, inLayout: false};\n }\n };\n\n _triggerRemeasureForChildListsInCell(cellKey: string): void {\n this._nestedChildLists.forEachInCell(cellKey, childList => {\n childList.measureLayoutRelativeToContainingList();\n });\n }\n\n measureLayoutRelativeToContainingList(): void {\n // TODO (T35574538): findNodeHandle sometimes crashes with \"Unable to find\n // node on an unmounted component\" during scrolling\n try {\n if (!this._scrollRef) {\n return;\n }\n // We are assuming that getOutermostParentListRef().getScrollRef()\n // is a non-null reference to a ScrollView\n this._scrollRef.measureLayout(\n this.context.getOutermostParentListRef().getScrollRef(),\n (x, y, width, height) => {\n this._offsetFromParentVirtualizedList = this._selectOffset({x, y});\n this._scrollMetrics.contentLength = this._selectLength({\n width,\n height,\n });\n const scrollMetrics = this._convertParentScrollMetrics(\n this.context.getScrollMetrics(),\n );\n\n const metricsChanged =\n this._scrollMetrics.visibleLength !== scrollMetrics.visibleLength ||\n this._scrollMetrics.offset !== scrollMetrics.offset;\n\n if (metricsChanged) {\n this._scrollMetrics.visibleLength = scrollMetrics.visibleLength;\n this._scrollMetrics.offset = scrollMetrics.offset;\n\n // If metrics of the scrollView changed, then we triggered remeasure for child list\n // to ensure VirtualizedList has the right information.\n this._nestedChildLists.forEach(childList => {\n childList.measureLayoutRelativeToContainingList();\n });\n }\n },\n error => {\n console.warn(\n \"VirtualizedList: Encountered an error while measuring a list's\" +\n ' offset from its containing VirtualizedList.',\n );\n },\n );\n } catch (error) {\n console.warn(\n 'measureLayoutRelativeToContainingList threw an error',\n error.stack,\n );\n }\n }\n\n _onLayout = (e: LayoutEvent) => {\n if (this._isNestedWithSameOrientation()) {\n // Need to adjust our scroll metrics to be relative to our containing\n // VirtualizedList before we can make claims about list item viewability\n this.measureLayoutRelativeToContainingList();\n } else {\n this._scrollMetrics.visibleLength = this._selectLength(\n e.nativeEvent.layout,\n );\n }\n this.props.onLayout && this.props.onLayout(e);\n this._scheduleCellsToRenderUpdate();\n this._maybeCallOnEdgeReached();\n };\n\n _onLayoutEmpty = (e: LayoutEvent) => {\n this.props.onLayout && this.props.onLayout(e);\n };\n\n _getFooterCellKey(): string {\n return this._getCellKey() + '-footer';\n }\n\n _onLayoutFooter = (e: LayoutEvent) => {\n this._triggerRemeasureForChildListsInCell(this._getFooterCellKey());\n this._footerLength = this._selectLength(e.nativeEvent.layout);\n };\n\n _onLayoutHeader = (e: LayoutEvent) => {\n this._headerLength = this._selectLength(e.nativeEvent.layout);\n };\n\n // $FlowFixMe[missing-local-annot]\n _renderDebugOverlay() {\n const normalize =\n this._scrollMetrics.visibleLength /\n (this._scrollMetrics.contentLength || 1);\n const framesInLayout = [];\n const itemCount = this.props.getItemCount(this.props.data);\n for (let ii = 0; ii < itemCount; ii++) {\n const frame = this.__getFrameMetricsApprox(ii, this.props);\n /* $FlowFixMe[prop-missing] (>=0.68.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.68 was deployed. To see the\n * error delete this comment and run Flow. */\n if (frame.inLayout) {\n framesInLayout.push(frame);\n }\n }\n const windowTop = this.__getFrameMetricsApprox(\n this.state.cellsAroundViewport.first,\n this.props,\n ).offset;\n const frameLast = this.__getFrameMetricsApprox(\n this.state.cellsAroundViewport.last,\n this.props,\n );\n const windowLen = frameLast.offset + frameLast.length - windowTop;\n const visTop = this._scrollMetrics.offset;\n const visLen = this._scrollMetrics.visibleLength;\n\n return (\n \n {framesInLayout.map((f, ii) => (\n \n ))}\n \n \n \n );\n }\n\n _selectLength(\n metrics: $ReadOnly<{\n height: number,\n width: number,\n ...\n }>,\n ): number {\n return !horizontalOrDefault(this.props.horizontal)\n ? metrics.height\n : metrics.width;\n }\n\n _selectOffset(\n metrics: $ReadOnly<{\n x: number,\n y: number,\n ...\n }>,\n ): number {\n return !horizontalOrDefault(this.props.horizontal) ? metrics.y : metrics.x;\n }\n\n _maybeCallOnEdgeReached() {\n const {\n data,\n getItemCount,\n onStartReached,\n onStartReachedThreshold,\n onEndReached,\n onEndReachedThreshold,\n } = this.props;\n // If we have any pending scroll updates it means that the scroll metrics\n // are out of date and we should not call any of the edge reached callbacks.\n if (this.state.pendingScrollUpdateCount > 0) {\n return;\n }\n\n const {contentLength, visibleLength, offset} = this._scrollMetrics;\n let distanceFromStart = offset;\n let distanceFromEnd = contentLength - visibleLength - offset;\n\n // Especially when oERT is zero it's necessary to 'floor' very small distance values to be 0\n // since debouncing causes us to not fire this event for every single \"pixel\" we scroll and can thus\n // be at the edge of the list with a distance approximating 0 but not quite there.\n if (distanceFromStart < ON_EDGE_REACHED_EPSILON) {\n distanceFromStart = 0;\n }\n if (distanceFromEnd < ON_EDGE_REACHED_EPSILON) {\n distanceFromEnd = 0;\n }\n\n // TODO: T121172172 Look into why we're \"defaulting\" to a threshold of 2px\n // when oERT is not present (different from 2 viewports used elsewhere)\n const DEFAULT_THRESHOLD_PX = 2;\n\n const startThreshold =\n onStartReachedThreshold != null\n ? onStartReachedThreshold * visibleLength\n : DEFAULT_THRESHOLD_PX;\n const endThreshold =\n onEndReachedThreshold != null\n ? onEndReachedThreshold * visibleLength\n : DEFAULT_THRESHOLD_PX;\n const isWithinStartThreshold = distanceFromStart <= startThreshold;\n const isWithinEndThreshold = distanceFromEnd <= endThreshold;\n\n // First check if the user just scrolled within the end threshold\n // and call onEndReached only once for a given content length,\n // and only if onStartReached is not being executed\n if (\n onEndReached &&\n this.state.cellsAroundViewport.last === getItemCount(data) - 1 &&\n isWithinEndThreshold &&\n this._scrollMetrics.contentLength !== this._sentEndForContentLength\n ) {\n this._sentEndForContentLength = this._scrollMetrics.contentLength;\n onEndReached({distanceFromEnd});\n }\n\n // Next check if the user just scrolled within the start threshold\n // and call onStartReached only once for a given content length,\n // and only if onEndReached is not being executed\n else if (\n onStartReached != null &&\n this.state.cellsAroundViewport.first === 0 &&\n isWithinStartThreshold &&\n this._scrollMetrics.contentLength !== this._sentStartForContentLength\n ) {\n this._sentStartForContentLength = this._scrollMetrics.contentLength;\n onStartReached({distanceFromStart});\n }\n\n // If the user scrolls away from the start or end and back again,\n // cause onStartReached or onEndReached to be triggered again\n else {\n this._sentStartForContentLength = isWithinStartThreshold\n ? this._sentStartForContentLength\n : 0;\n this._sentEndForContentLength = isWithinEndThreshold\n ? this._sentEndForContentLength\n : 0;\n }\n }\n\n _onContentSizeChange = (width: number, height: number) => {\n if (\n width > 0 &&\n height > 0 &&\n this.props.initialScrollIndex != null &&\n this.props.initialScrollIndex > 0 &&\n !this._hasTriggeredInitialScrollToIndex\n ) {\n if (this.props.contentOffset == null) {\n if (\n this.props.initialScrollIndex <\n this.props.getItemCount(this.props.data)\n ) {\n this.scrollToIndex({\n animated: false,\n index: nullthrows(this.props.initialScrollIndex),\n });\n } else {\n this.scrollToEnd({animated: false});\n }\n }\n this._hasTriggeredInitialScrollToIndex = true;\n }\n if (this.props.onContentSizeChange) {\n this.props.onContentSizeChange(width, height);\n }\n this._scrollMetrics.contentLength = this._selectLength({height, width});\n this._scheduleCellsToRenderUpdate();\n this._maybeCallOnEdgeReached();\n };\n\n /* Translates metrics from a scroll event in a parent VirtualizedList into\n * coordinates relative to the child list.\n */\n _convertParentScrollMetrics = (metrics: {\n visibleLength: number,\n offset: number,\n ...\n }): $FlowFixMe => {\n // Offset of the top of the nested list relative to the top of its parent's viewport\n const offset = metrics.offset - this._offsetFromParentVirtualizedList;\n // Child's visible length is the same as its parent's\n const visibleLength = metrics.visibleLength;\n const dOffset = offset - this._scrollMetrics.offset;\n const contentLength = this._scrollMetrics.contentLength;\n\n return {\n visibleLength,\n contentLength,\n offset,\n dOffset,\n };\n };\n\n _onScroll = (e: Object) => {\n this._nestedChildLists.forEach(childList => {\n childList._onScroll(e);\n });\n if (this.props.onScroll) {\n this.props.onScroll(e);\n }\n const timestamp = e.timeStamp;\n let visibleLength = this._selectLength(e.nativeEvent.layoutMeasurement);\n let contentLength = this._selectLength(e.nativeEvent.contentSize);\n let offset = this._selectOffset(e.nativeEvent.contentOffset);\n let dOffset = offset - this._scrollMetrics.offset;\n\n if (this._isNestedWithSameOrientation()) {\n if (this._scrollMetrics.contentLength === 0) {\n // Ignore scroll events until onLayout has been called and we\n // know our offset from our offset from our parent\n return;\n }\n ({visibleLength, contentLength, offset, dOffset} =\n this._convertParentScrollMetrics({\n visibleLength,\n offset,\n }));\n }\n\n const dt = this._scrollMetrics.timestamp\n ? Math.max(1, timestamp - this._scrollMetrics.timestamp)\n : 1;\n const velocity = dOffset / dt;\n\n if (\n dt > 500 &&\n this._scrollMetrics.dt > 500 &&\n contentLength > 5 * visibleLength &&\n !this._hasWarned.perf\n ) {\n infoLog(\n 'VirtualizedList: You have a large list that is slow to update - make sure your ' +\n 'renderItem function renders components that follow React performance best practices ' +\n 'like PureComponent, shouldComponentUpdate, etc.',\n {dt, prevDt: this._scrollMetrics.dt, contentLength},\n );\n this._hasWarned.perf = true;\n }\n\n // For invalid negative values (w/ RTL), set this to 1.\n const zoomScale = e.nativeEvent.zoomScale < 0 ? 1 : e.nativeEvent.zoomScale;\n this._scrollMetrics = {\n contentLength,\n dt,\n dOffset,\n offset,\n timestamp,\n velocity,\n visibleLength,\n zoomScale,\n };\n if (this.state.pendingScrollUpdateCount > 0) {\n this.setState(state => ({\n pendingScrollUpdateCount: state.pendingScrollUpdateCount - 1,\n }));\n }\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n if (!this.props) {\n return;\n }\n this._maybeCallOnEdgeReached();\n if (velocity !== 0) {\n this._fillRateHelper.activate();\n }\n this._computeBlankness();\n this._scheduleCellsToRenderUpdate();\n };\n\n _scheduleCellsToRenderUpdate() {\n const {first, last} = this.state.cellsAroundViewport;\n const {offset, visibleLength, velocity} = this._scrollMetrics;\n const itemCount = this.props.getItemCount(this.props.data);\n let hiPri = false;\n const onStartReachedThreshold = onStartReachedThresholdOrDefault(\n this.props.onStartReachedThreshold,\n );\n const onEndReachedThreshold = onEndReachedThresholdOrDefault(\n this.props.onEndReachedThreshold,\n );\n // Mark as high priority if we're close to the start of the first item\n // But only if there are items before the first rendered item\n if (first > 0) {\n const distTop =\n offset - this.__getFrameMetricsApprox(first, this.props).offset;\n hiPri =\n distTop < 0 ||\n (velocity < -2 &&\n distTop <\n getScrollingThreshold(onStartReachedThreshold, visibleLength));\n }\n // Mark as high priority if we're close to the end of the last item\n // But only if there are items after the last rendered item\n if (!hiPri && last >= 0 && last < itemCount - 1) {\n const distBottom =\n this.__getFrameMetricsApprox(last, this.props).offset -\n (offset + visibleLength);\n hiPri =\n distBottom < 0 ||\n (velocity > 2 &&\n distBottom <\n getScrollingThreshold(onEndReachedThreshold, visibleLength));\n }\n // Only trigger high-priority updates if we've actually rendered cells,\n // and with that size estimate, accurately compute how many cells we should render.\n // Otherwise, it would just render as many cells as it can (of zero dimension),\n // each time through attempting to render more (limited by maxToRenderPerBatch),\n // starving the renderer from actually laying out the objects and computing _averageCellLength.\n // If this is triggered in an `componentDidUpdate` followed by a hiPri cellToRenderUpdate\n // We shouldn't do another hipri cellToRenderUpdate\n if (\n hiPri &&\n (this._averageCellLength || this.props.getItemLayout) &&\n !this._hiPriInProgress\n ) {\n this._hiPriInProgress = true;\n // Don't worry about interactions when scrolling quickly; focus on filling content as fast\n // as possible.\n this._updateCellsToRenderBatcher.dispose({abort: true});\n this._updateCellsToRender();\n return;\n } else {\n this._updateCellsToRenderBatcher.schedule();\n }\n }\n\n _onScrollBeginDrag = (e: ScrollEvent): void => {\n this._nestedChildLists.forEach(childList => {\n childList._onScrollBeginDrag(e);\n });\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.recordInteraction();\n });\n this._hasInteracted = true;\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n };\n\n _onScrollEndDrag = (e: ScrollEvent): void => {\n this._nestedChildLists.forEach(childList => {\n childList._onScrollEndDrag(e);\n });\n const {velocity} = e.nativeEvent;\n if (velocity) {\n this._scrollMetrics.velocity = this._selectOffset(velocity);\n }\n this._computeBlankness();\n this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n };\n\n _onMomentumScrollBegin = (e: ScrollEvent): void => {\n this._nestedChildLists.forEach(childList => {\n childList._onMomentumScrollBegin(e);\n });\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n };\n\n _onMomentumScrollEnd = (e: ScrollEvent): void => {\n this._nestedChildLists.forEach(childList => {\n childList._onMomentumScrollEnd(e);\n });\n this._scrollMetrics.velocity = 0;\n this._computeBlankness();\n this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n };\n\n _updateCellsToRender = () => {\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n\n this.setState((state, props) => {\n const cellsAroundViewport = this._adjustCellsAroundViewport(\n props,\n state.cellsAroundViewport,\n state.pendingScrollUpdateCount,\n );\n const renderMask = VirtualizedList._createRenderMask(\n props,\n cellsAroundViewport,\n this._getNonViewportRenderRegions(props),\n );\n\n if (\n cellsAroundViewport.first === state.cellsAroundViewport.first &&\n cellsAroundViewport.last === state.cellsAroundViewport.last &&\n renderMask.equals(state.renderMask)\n ) {\n return null;\n }\n\n return {cellsAroundViewport, renderMask};\n });\n };\n\n _createViewToken = (\n index: number,\n isViewable: boolean,\n props: FrameMetricProps,\n // $FlowFixMe[missing-local-annot]\n ) => {\n const {data, getItem} = props;\n const item = getItem(data, index);\n return {\n index,\n item,\n key: VirtualizedList._keyExtractor(item, index, props),\n isViewable,\n };\n };\n\n /**\n * Gets an approximate offset to an item at a given index. Supports\n * fractional indices.\n */\n _getOffsetApprox = (index: number, props: FrameMetricProps): number => {\n if (Number.isInteger(index)) {\n return this.__getFrameMetricsApprox(index, props).offset;\n } else {\n const frameMetrics = this.__getFrameMetricsApprox(\n Math.floor(index),\n props,\n );\n const remainder = index - Math.floor(index);\n return frameMetrics.offset + remainder * frameMetrics.length;\n }\n };\n\n __getFrameMetricsApprox: (\n index: number,\n props: FrameMetricProps,\n ) => {\n length: number,\n offset: number,\n ...\n } = (index, props) => {\n const frame = this._getFrameMetrics(index, props);\n if (frame && frame.index === index) {\n // check for invalid frames due to row re-ordering\n return frame;\n } else {\n const {data, getItemCount, getItemLayout} = props;\n invariant(\n index >= 0 && index < getItemCount(data),\n 'Tried to get frame for out of range index ' + index,\n );\n invariant(\n !getItemLayout,\n 'Should not have to estimate frames when a measurement metrics function is provided',\n );\n return {\n length: this._averageCellLength,\n offset: this._averageCellLength * index,\n };\n }\n };\n\n _getFrameMetrics = (\n index: number,\n props: FrameMetricProps,\n ): ?{\n length: number,\n offset: number,\n index: number,\n inLayout?: boolean,\n ...\n } => {\n const {data, getItemCount, getItemLayout} = props;\n invariant(\n index >= 0 && index < getItemCount(data),\n 'Tried to get frame for out of range index ' + index,\n );\n const frame = this._frames[VirtualizedList._getItemKey(props, index)];\n if (!frame || frame.index !== index) {\n if (getItemLayout) {\n /* $FlowFixMe[prop-missing] (>=0.63.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.63 was deployed. To see the error\n * delete this comment and run Flow. */\n return getItemLayout(data, index);\n }\n }\n return frame;\n };\n\n _getNonViewportRenderRegions = (\n props: FrameMetricProps,\n ): $ReadOnlyArray<{\n first: number,\n last: number,\n }> => {\n // Keep a viewport's worth of content around the last focused cell to allow\n // random navigation around it without any blanking. E.g. tabbing from one\n // focused item out of viewport to another.\n if (\n !(this._lastFocusedCellKey && this._cellRefs[this._lastFocusedCellKey])\n ) {\n return [];\n }\n\n const lastFocusedCellRenderer = this._cellRefs[this._lastFocusedCellKey];\n const focusedCellIndex = lastFocusedCellRenderer.props.index;\n const itemCount = props.getItemCount(props.data);\n\n // The last cell we rendered may be at a new index. Bail if we don't know\n // where it is.\n if (\n focusedCellIndex >= itemCount ||\n VirtualizedList._getItemKey(props, focusedCellIndex) !==\n this._lastFocusedCellKey\n ) {\n return [];\n }\n\n let first = focusedCellIndex;\n let heightOfCellsBeforeFocused = 0;\n for (\n let i = first - 1;\n i >= 0 && heightOfCellsBeforeFocused < this._scrollMetrics.visibleLength;\n i--\n ) {\n first--;\n heightOfCellsBeforeFocused += this.__getFrameMetricsApprox(\n i,\n props,\n ).length;\n }\n\n let last = focusedCellIndex;\n let heightOfCellsAfterFocused = 0;\n for (\n let i = last + 1;\n i < itemCount &&\n heightOfCellsAfterFocused < this._scrollMetrics.visibleLength;\n i++\n ) {\n last++;\n heightOfCellsAfterFocused += this.__getFrameMetricsApprox(\n i,\n props,\n ).length;\n }\n\n return [{first, last}];\n };\n\n _updateViewableItems(\n props: FrameMetricProps,\n cellsAroundViewport: {first: number, last: number},\n ) {\n // If we have any pending scroll updates it means that the scroll metrics\n // are out of date and we should not call any of the visibility callbacks.\n if (this.state.pendingScrollUpdateCount > 0) {\n return;\n }\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.onUpdate(\n props,\n this._scrollMetrics.offset,\n this._scrollMetrics.visibleLength,\n this._getFrameMetrics,\n this._createViewToken,\n tuple.onViewableItemsChanged,\n cellsAroundViewport,\n );\n });\n }\n}\n\nconst styles = StyleSheet.create({\n verticallyInverted: {\n transform: [{scaleY: -1}],\n },\n horizontallyInverted: {\n transform: [{scaleX: -1}],\n },\n debug: {\n flex: 1,\n },\n debugOverlayBase: {\n position: 'absolute',\n top: 0,\n right: 0,\n },\n debugOverlay: {\n bottom: 0,\n width: 20,\n borderColor: 'blue',\n borderWidth: 1,\n },\n debugOverlayFrame: {\n left: 0,\n backgroundColor: 'orange',\n },\n debugOverlayFrameLast: {\n left: 0,\n borderColor: 'green',\n borderWidth: 2,\n },\n debugOverlayFrameVis: {\n left: 0,\n borderColor: 'red',\n borderWidth: 2,\n },\n});\n\nmodule.exports = VirtualizedList;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n'use strict';\n\nconst {InteractionManager} = require('react-native');\n\n/**\n * A simple class for batching up invocations of a low-pri callback. A timeout is set to run the\n * callback once after a delay, no matter how many times it's scheduled. Once the delay is reached,\n * InteractionManager.runAfterInteractions is used to invoke the callback after any hi-pri\n * interactions are done running.\n *\n * Make sure to cleanup with dispose(). Example:\n *\n * class Widget extends React.Component {\n * _batchedSave: new Batchinator(() => this._saveState, 1000);\n * _saveSate() {\n * // save this.state to disk\n * }\n * componentDidUpdate() {\n * this._batchedSave.schedule();\n * }\n * componentWillUnmount() {\n * this._batchedSave.dispose();\n * }\n * ...\n * }\n */\nclass Batchinator {\n _callback: () => void;\n _delay: number;\n _taskHandle: ?{cancel: () => void, ...};\n constructor(callback: () => void, delayMS: number) {\n this._delay = delayMS;\n this._callback = callback;\n }\n /*\n * Cleanup any pending tasks.\n *\n * By default, if there is a pending task the callback is run immediately. Set the option abort to\n * true to not call the callback if it was pending.\n */\n dispose(options: {abort: boolean, ...} = {abort: false}) {\n if (this._taskHandle) {\n this._taskHandle.cancel();\n if (!options.abort) {\n this._callback();\n }\n this._taskHandle = null;\n }\n }\n schedule() {\n if (this._taskHandle) {\n return;\n }\n const timeoutHandle = setTimeout(() => {\n this._taskHandle = InteractionManager.runAfterInteractions(() => {\n // Note that we clear the handle before invoking the callback so that if the callback calls\n // schedule again, it will actually schedule another task.\n this._taskHandle = null;\n this._callback();\n });\n }, this._delay);\n this._taskHandle = {cancel: () => clearTimeout(timeoutHandle)};\n }\n}\n\nmodule.exports = Batchinator;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nfunction clamp(min: number, value: number, max: number): number {\n if (value < min) {\n return min;\n }\n if (value > max) {\n return max;\n }\n return value;\n}\n\nmodule.exports = clamp;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\n/**\n * Intentional info-level logging for clear separation from ad-hoc console debug logging.\n */\nfunction infoLog(...args: Array): void {\n return console.log(...args);\n}\n\nmodule.exports = infoLog;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport invariant from 'invariant';\n\nexport default class ChildListCollection {\n _cellKeyToChildren: Map> = new Map();\n _childrenToCellKey: Map = new Map();\n\n add(list: TList, cellKey: string): void {\n invariant(\n !this._childrenToCellKey.has(list),\n 'Trying to add already present child list',\n );\n\n const cellLists = this._cellKeyToChildren.get(cellKey) ?? new Set();\n cellLists.add(list);\n this._cellKeyToChildren.set(cellKey, cellLists);\n\n this._childrenToCellKey.set(list, cellKey);\n }\n\n remove(list: TList): void {\n const cellKey = this._childrenToCellKey.get(list);\n invariant(cellKey != null, 'Trying to remove non-present child list');\n this._childrenToCellKey.delete(list);\n\n const cellLists = this._cellKeyToChildren.get(cellKey);\n invariant(cellLists, '_cellKeyToChildren should contain cellKey');\n cellLists.delete(list);\n\n if (cellLists.size === 0) {\n this._cellKeyToChildren.delete(cellKey);\n }\n }\n\n forEach(fn: TList => void): void {\n for (const listSet of this._cellKeyToChildren.values()) {\n for (const list of listSet) {\n fn(list);\n }\n }\n }\n\n forEachInCell(cellKey: string, fn: TList => void): void {\n const listSet = this._cellKeyToChildren.get(cellKey) ?? [];\n for (const list of listSet) {\n fn(list);\n }\n }\n\n anyInCell(cellKey: string, fn: TList => boolean): boolean {\n const listSet = this._cellKeyToChildren.get(cellKey) ?? [];\n for (const list of listSet) {\n if (fn(list)) {\n return true;\n }\n }\n return false;\n }\n\n size(): number {\n return this._childrenToCellKey.size;\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {FrameMetricProps} from './VirtualizedListProps';\n\nexport type FillRateInfo = Info;\n\nclass Info {\n any_blank_count: number = 0;\n any_blank_ms: number = 0;\n any_blank_speed_sum: number = 0;\n mostly_blank_count: number = 0;\n mostly_blank_ms: number = 0;\n pixels_blank: number = 0;\n pixels_sampled: number = 0;\n pixels_scrolled: number = 0;\n total_time_spent: number = 0;\n sample_count: number = 0;\n}\n\ntype FrameMetrics = {\n inLayout?: boolean,\n length: number,\n offset: number,\n ...\n};\n\nconst DEBUG = false;\n\nlet _listeners: Array<(Info) => void> = [];\nlet _minSampleCount = 10;\nlet _sampleRate = DEBUG ? 1 : null;\n\n/**\n * A helper class for detecting when the maximem fill rate of `VirtualizedList` is exceeded.\n * By default the sampling rate is set to zero and this will do nothing. If you want to collect\n * samples (e.g. to log them), make sure to call `FillRateHelper.setSampleRate(0.0-1.0)`.\n *\n * Listeners and sample rate are global for all `VirtualizedList`s - typical usage will combine with\n * `SceneTracker.getActiveScene` to determine the context of the events.\n */\nclass FillRateHelper {\n _anyBlankStartTime: ?number = null;\n _enabled = false;\n _getFrameMetrics: (index: number, props: FrameMetricProps) => ?FrameMetrics;\n _info: Info = new Info();\n _mostlyBlankStartTime: ?number = null;\n _samplesStartTime: ?number = null;\n\n static addListener(callback: FillRateInfo => void): {\n remove: () => void,\n ...\n } {\n if (_sampleRate === null) {\n console.warn('Call `FillRateHelper.setSampleRate` before `addListener`.');\n }\n _listeners.push(callback);\n return {\n remove: () => {\n _listeners = _listeners.filter(listener => callback !== listener);\n },\n };\n }\n\n static setSampleRate(sampleRate: number) {\n _sampleRate = sampleRate;\n }\n\n static setMinSampleCount(minSampleCount: number) {\n _minSampleCount = minSampleCount;\n }\n\n constructor(\n getFrameMetrics: (index: number, props: FrameMetricProps) => ?FrameMetrics,\n ) {\n this._getFrameMetrics = getFrameMetrics;\n this._enabled = (_sampleRate || 0) > Math.random();\n this._resetData();\n }\n\n activate() {\n if (this._enabled && this._samplesStartTime == null) {\n DEBUG && console.debug('FillRateHelper: activate');\n this._samplesStartTime = global.performance.now();\n }\n }\n\n deactivateAndFlush() {\n if (!this._enabled) {\n return;\n }\n const start = this._samplesStartTime; // const for flow\n if (start == null) {\n DEBUG &&\n console.debug('FillRateHelper: bail on deactivate with no start time');\n return;\n }\n if (this._info.sample_count < _minSampleCount) {\n // Don't bother with under-sampled events.\n this._resetData();\n return;\n }\n const total_time_spent = global.performance.now() - start;\n const info: any = {\n ...this._info,\n total_time_spent,\n };\n if (DEBUG) {\n const derived = {\n avg_blankness: this._info.pixels_blank / this._info.pixels_sampled,\n avg_speed: this._info.pixels_scrolled / (total_time_spent / 1000),\n avg_speed_when_any_blank:\n this._info.any_blank_speed_sum / this._info.any_blank_count,\n any_blank_per_min:\n this._info.any_blank_count / (total_time_spent / 1000 / 60),\n any_blank_time_frac: this._info.any_blank_ms / total_time_spent,\n mostly_blank_per_min:\n this._info.mostly_blank_count / (total_time_spent / 1000 / 60),\n mostly_blank_time_frac: this._info.mostly_blank_ms / total_time_spent,\n };\n for (const key in derived) {\n // $FlowFixMe[prop-missing]\n derived[key] = Math.round(1000 * derived[key]) / 1000;\n }\n console.debug('FillRateHelper deactivateAndFlush: ', {derived, info});\n }\n _listeners.forEach(listener => listener(info));\n this._resetData();\n }\n\n computeBlankness(\n props: {\n ...FrameMetricProps,\n initialNumToRender?: ?number,\n ...\n },\n cellsAroundViewport: {\n first: number,\n last: number,\n ...\n },\n scrollMetrics: {\n dOffset: number,\n offset: number,\n velocity: number,\n visibleLength: number,\n ...\n },\n ): number {\n if (\n !this._enabled ||\n props.getItemCount(props.data) === 0 ||\n cellsAroundViewport.last < cellsAroundViewport.first ||\n this._samplesStartTime == null\n ) {\n return 0;\n }\n const {dOffset, offset, velocity, visibleLength} = scrollMetrics;\n\n // Denominator metrics that we track for all events - most of the time there is no blankness and\n // we want to capture that.\n this._info.sample_count++;\n this._info.pixels_sampled += Math.round(visibleLength);\n this._info.pixels_scrolled += Math.round(Math.abs(dOffset));\n const scrollSpeed = Math.round(Math.abs(velocity) * 1000); // px / sec\n\n // Whether blank now or not, record the elapsed time blank if we were blank last time.\n const now = global.performance.now();\n if (this._anyBlankStartTime != null) {\n this._info.any_blank_ms += now - this._anyBlankStartTime;\n }\n this._anyBlankStartTime = null;\n if (this._mostlyBlankStartTime != null) {\n this._info.mostly_blank_ms += now - this._mostlyBlankStartTime;\n }\n this._mostlyBlankStartTime = null;\n\n let blankTop = 0;\n let first = cellsAroundViewport.first;\n let firstFrame = this._getFrameMetrics(first, props);\n while (\n first <= cellsAroundViewport.last &&\n (!firstFrame || !firstFrame.inLayout)\n ) {\n firstFrame = this._getFrameMetrics(first, props);\n first++;\n }\n // Only count blankTop if we aren't rendering the first item, otherwise we will count the header\n // as blank.\n if (firstFrame && first > 0) {\n blankTop = Math.min(\n visibleLength,\n Math.max(0, firstFrame.offset - offset),\n );\n }\n let blankBottom = 0;\n let last = cellsAroundViewport.last;\n let lastFrame = this._getFrameMetrics(last, props);\n while (\n last >= cellsAroundViewport.first &&\n (!lastFrame || !lastFrame.inLayout)\n ) {\n lastFrame = this._getFrameMetrics(last, props);\n last--;\n }\n // Only count blankBottom if we aren't rendering the last item, otherwise we will count the\n // footer as blank.\n if (lastFrame && last < props.getItemCount(props.data) - 1) {\n const bottomEdge = lastFrame.offset + lastFrame.length;\n blankBottom = Math.min(\n visibleLength,\n Math.max(0, offset + visibleLength - bottomEdge),\n );\n }\n const pixels_blank = Math.round(blankTop + blankBottom);\n const blankness = pixels_blank / visibleLength;\n if (blankness > 0) {\n this._anyBlankStartTime = now;\n this._info.any_blank_speed_sum += scrollSpeed;\n this._info.any_blank_count++;\n this._info.pixels_blank += pixels_blank;\n if (blankness > 0.5) {\n this._mostlyBlankStartTime = now;\n this._info.mostly_blank_count++;\n }\n } else if (scrollSpeed < 0.01 || Math.abs(dOffset) < 1) {\n this.deactivateAndFlush();\n }\n return blankness;\n }\n\n enabled(): boolean {\n return this._enabled;\n }\n\n _resetData() {\n this._anyBlankStartTime = null;\n this._info = new Info();\n this._mostlyBlankStartTime = null;\n this._samplesStartTime = null;\n }\n}\n\nmodule.exports = FillRateHelper;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport invariant from 'invariant';\nimport * as React from 'react';\n\n/**\n * `setState` is called asynchronously, and should not rely on the value of\n * `this.props` or `this.state`:\n * https://reactjs.org/docs/state-and-lifecycle.html#state-updates-may-be-asynchronous\n *\n * SafePureComponent adds runtime enforcement, to catch cases where these\n * variables are read in a state updater function, instead of the ones passed\n * in.\n */\nexport default class StateSafePureComponent<\n Props,\n State: interface {},\n> extends React.PureComponent {\n _inAsyncStateUpdate = false;\n\n constructor(props: Props) {\n super(props);\n this._installSetStateHooks();\n }\n\n setState(\n partialState: ?($Shape | ((State, Props) => ?$Shape)),\n callback?: () => mixed,\n ): void {\n if (typeof partialState === 'function') {\n super.setState((state, props) => {\n this._inAsyncStateUpdate = true;\n let ret;\n try {\n ret = partialState(state, props);\n } catch (err) {\n throw err;\n } finally {\n this._inAsyncStateUpdate = false;\n }\n return ret;\n }, callback);\n } else {\n super.setState(partialState, callback);\n }\n }\n\n _installSetStateHooks() {\n const that = this;\n let {props, state} = this;\n\n Object.defineProperty(this, 'props', {\n get() {\n invariant(\n !that._inAsyncStateUpdate,\n '\"this.props\" should not be accessed during state updates',\n );\n return props;\n },\n set(newProps: Props) {\n props = newProps;\n },\n });\n Object.defineProperty(this, 'state', {\n get() {\n invariant(\n !that._inAsyncStateUpdate,\n '\"this.state\" should not be acceessed during state updates',\n );\n return state;\n },\n set(newState: State) {\n state = newState;\n },\n });\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {FrameMetricProps} from './VirtualizedListProps';\n\nconst invariant = require('invariant');\n\nexport type ViewToken = {\n item: any,\n key: string,\n index: ?number,\n isViewable: boolean,\n section?: any,\n ...\n};\n\nexport type ViewabilityConfigCallbackPair = {\n viewabilityConfig: ViewabilityConfig,\n onViewableItemsChanged: (info: {\n viewableItems: Array,\n changed: Array,\n ...\n }) => void,\n ...\n};\n\nexport type ViewabilityConfig = {|\n /**\n * Minimum amount of time (in milliseconds) that an item must be physically viewable before the\n * viewability callback will be fired. A high number means that scrolling through content without\n * stopping will not mark the content as viewable.\n */\n minimumViewTime?: number,\n\n /**\n * Percent of viewport that must be covered for a partially occluded item to count as\n * \"viewable\", 0-100. Fully visible items are always considered viewable. A value of 0 means\n * that a single pixel in the viewport makes the item viewable, and a value of 100 means that\n * an item must be either entirely visible or cover the entire viewport to count as viewable.\n */\n viewAreaCoveragePercentThreshold?: number,\n\n /**\n * Similar to `viewAreaPercentThreshold`, but considers the percent of the item that is visible,\n * rather than the fraction of the viewable area it covers.\n */\n itemVisiblePercentThreshold?: number,\n\n /**\n * Nothing is considered viewable until the user scrolls or `recordInteraction` is called after\n * render.\n */\n waitForInteraction?: boolean,\n|};\n\n/**\n * A Utility class for calculating viewable items based on current metrics like scroll position and\n * layout.\n *\n * An item is said to be in a \"viewable\" state when any of the following\n * is true for longer than `minimumViewTime` milliseconds (after an interaction if `waitForInteraction`\n * is true):\n *\n * - Occupying >= `viewAreaCoveragePercentThreshold` of the view area XOR fraction of the item\n * visible in the view area >= `itemVisiblePercentThreshold`.\n * - Entirely visible on screen\n */\nclass ViewabilityHelper {\n _config: ViewabilityConfig;\n _hasInteracted: boolean = false;\n _timers: Set = new Set();\n _viewableIndices: Array = [];\n _viewableItems: Map = new Map();\n\n constructor(\n config: ViewabilityConfig = {viewAreaCoveragePercentThreshold: 0},\n ) {\n this._config = config;\n }\n\n /**\n * Cleanup, e.g. on unmount. Clears any pending timers.\n */\n dispose() {\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To see\n * the error delete this comment and run Flow. */\n this._timers.forEach(clearTimeout);\n }\n\n /**\n * Determines which items are viewable based on the current metrics and config.\n */\n computeViewableItems(\n props: FrameMetricProps,\n scrollOffset: number,\n viewportHeight: number,\n getFrameMetrics: (\n index: number,\n props: FrameMetricProps,\n ) => ?{\n length: number,\n offset: number,\n ...\n },\n // Optional optimization to reduce the scan size\n renderRange?: {\n first: number,\n last: number,\n ...\n },\n ): Array {\n const itemCount = props.getItemCount(props.data);\n const {itemVisiblePercentThreshold, viewAreaCoveragePercentThreshold} =\n this._config;\n const viewAreaMode = viewAreaCoveragePercentThreshold != null;\n const viewablePercentThreshold = viewAreaMode\n ? viewAreaCoveragePercentThreshold\n : itemVisiblePercentThreshold;\n invariant(\n viewablePercentThreshold != null &&\n (itemVisiblePercentThreshold != null) !==\n (viewAreaCoveragePercentThreshold != null),\n 'Must set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold',\n );\n const viewableIndices = [];\n if (itemCount === 0) {\n return viewableIndices;\n }\n let firstVisible = -1;\n const {first, last} = renderRange || {first: 0, last: itemCount - 1};\n if (last >= itemCount) {\n console.warn(\n 'Invalid render range computing viewability ' +\n JSON.stringify({renderRange, itemCount}),\n );\n return [];\n }\n for (let idx = first; idx <= last; idx++) {\n const metrics = getFrameMetrics(idx, props);\n if (!metrics) {\n continue;\n }\n const top = metrics.offset - scrollOffset;\n const bottom = top + metrics.length;\n if (top < viewportHeight && bottom > 0) {\n firstVisible = idx;\n if (\n _isViewable(\n viewAreaMode,\n viewablePercentThreshold,\n top,\n bottom,\n viewportHeight,\n metrics.length,\n )\n ) {\n viewableIndices.push(idx);\n }\n } else if (firstVisible >= 0) {\n break;\n }\n }\n return viewableIndices;\n }\n\n /**\n * Figures out which items are viewable and how that has changed from before and calls\n * `onViewableItemsChanged` as appropriate.\n */\n onUpdate(\n props: FrameMetricProps,\n scrollOffset: number,\n viewportHeight: number,\n getFrameMetrics: (\n index: number,\n props: FrameMetricProps,\n ) => ?{\n length: number,\n offset: number,\n ...\n },\n createViewToken: (\n index: number,\n isViewable: boolean,\n props: FrameMetricProps,\n ) => ViewToken,\n onViewableItemsChanged: ({\n viewableItems: Array,\n changed: Array,\n ...\n }) => void,\n // Optional optimization to reduce the scan size\n renderRange?: {\n first: number,\n last: number,\n ...\n },\n ): void {\n const itemCount = props.getItemCount(props.data);\n if (\n (this._config.waitForInteraction && !this._hasInteracted) ||\n itemCount === 0 ||\n !getFrameMetrics(0, props)\n ) {\n return;\n }\n let viewableIndices: Array = [];\n if (itemCount) {\n viewableIndices = this.computeViewableItems(\n props,\n scrollOffset,\n viewportHeight,\n getFrameMetrics,\n renderRange,\n );\n }\n if (\n this._viewableIndices.length === viewableIndices.length &&\n this._viewableIndices.every((v, ii) => v === viewableIndices[ii])\n ) {\n // We might get a lot of scroll events where visibility doesn't change and we don't want to do\n // extra work in those cases.\n return;\n }\n this._viewableIndices = viewableIndices;\n if (this._config.minimumViewTime) {\n const handle: TimeoutID = setTimeout(() => {\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To\n * see the error delete this comment and run Flow. */\n this._timers.delete(handle);\n this._onUpdateSync(\n props,\n viewableIndices,\n onViewableItemsChanged,\n createViewToken,\n );\n }, this._config.minimumViewTime);\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To see\n * the error delete this comment and run Flow. */\n this._timers.add(handle);\n } else {\n this._onUpdateSync(\n props,\n viewableIndices,\n onViewableItemsChanged,\n createViewToken,\n );\n }\n }\n\n /**\n * clean-up cached _viewableIndices to evaluate changed items on next update\n */\n resetViewableIndices() {\n this._viewableIndices = [];\n }\n\n /**\n * Records that an interaction has happened even if there has been no scroll.\n */\n recordInteraction() {\n this._hasInteracted = true;\n }\n\n _onUpdateSync(\n props: FrameMetricProps,\n viewableIndicesToCheck: Array,\n onViewableItemsChanged: ({\n changed: Array,\n viewableItems: Array,\n ...\n }) => void,\n createViewToken: (\n index: number,\n isViewable: boolean,\n props: FrameMetricProps,\n ) => ViewToken,\n ) {\n // Filter out indices that have gone out of view since this call was scheduled.\n viewableIndicesToCheck = viewableIndicesToCheck.filter(ii =>\n this._viewableIndices.includes(ii),\n );\n const prevItems = this._viewableItems;\n const nextItems = new Map(\n viewableIndicesToCheck.map(ii => {\n const viewable = createViewToken(ii, true, props);\n return [viewable.key, viewable];\n }),\n );\n\n const changed = [];\n for (const [key, viewable] of nextItems) {\n if (!prevItems.has(key)) {\n changed.push(viewable);\n }\n }\n for (const [key, viewable] of prevItems) {\n if (!nextItems.has(key)) {\n changed.push({...viewable, isViewable: false});\n }\n }\n if (changed.length > 0) {\n this._viewableItems = nextItems;\n onViewableItemsChanged({\n viewableItems: Array.from(nextItems.values()),\n changed,\n viewabilityConfig: this._config,\n });\n }\n }\n}\n\nfunction _isViewable(\n viewAreaMode: boolean,\n viewablePercentThreshold: number,\n top: number,\n bottom: number,\n viewportHeight: number,\n itemLength: number,\n): boolean {\n if (_isEntirelyVisible(top, bottom, viewportHeight)) {\n return true;\n } else {\n const pixels = _getPixelsVisible(top, bottom, viewportHeight);\n const percent =\n 100 * (viewAreaMode ? pixels / viewportHeight : pixels / itemLength);\n return percent >= viewablePercentThreshold;\n }\n}\n\nfunction _getPixelsVisible(\n top: number,\n bottom: number,\n viewportHeight: number,\n): number {\n const visibleHeight = Math.min(bottom, viewportHeight) - Math.max(top, 0);\n return Math.max(0, visibleHeight);\n}\n\nfunction _isEntirelyVisible(\n top: number,\n bottom: number,\n viewportHeight: number,\n): boolean {\n return top >= 0 && bottom <= viewportHeight && bottom > top;\n}\n\nmodule.exports = ViewabilityHelper;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {ViewStyleProp} from 'react-native/Libraries/StyleSheet/StyleSheet';\nimport type {\n FocusEvent,\n LayoutEvent,\n} from 'react-native/Libraries/Types/CoreEventTypes';\nimport type {CellRendererProps, RenderItemType} from './VirtualizedListProps';\n\nimport {View, StyleSheet} from 'react-native';\nimport {VirtualizedListCellContextProvider} from './VirtualizedListContext.js';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\nexport type Props = {\n CellRendererComponent?: ?React.ComponentType>,\n ItemSeparatorComponent: ?React.ComponentType<\n any | {highlighted: boolean, leadingItem: ?ItemT},\n >,\n ListItemComponent?: ?(React.ComponentType | React.Element),\n cellKey: string,\n horizontal: ?boolean,\n index: number,\n inversionStyle: ViewStyleProp,\n item: ItemT,\n onCellLayout?: (event: LayoutEvent, cellKey: string, index: number) => void,\n onCellFocusCapture?: (event: FocusEvent) => void,\n onUnmount: (cellKey: string) => void,\n onUpdateSeparators: (\n cellKeys: Array,\n props: $Shape>,\n ) => void,\n prevCellKey: ?string,\n renderItem?: ?RenderItemType,\n ...\n};\n\ntype SeparatorProps = $ReadOnly<{|\n highlighted: boolean,\n leadingItem: ?ItemT,\n|}>;\n\ntype State = {\n separatorProps: SeparatorProps,\n ...\n};\n\nexport default class CellRenderer extends React.Component<\n Props,\n State,\n> {\n state: State = {\n separatorProps: {\n highlighted: false,\n leadingItem: this.props.item,\n },\n };\n\n static getDerivedStateFromProps(\n props: Props,\n prevState: State,\n ): ?State {\n return {\n separatorProps: {\n ...prevState.separatorProps,\n leadingItem: props.item,\n },\n };\n }\n\n // TODO: consider factoring separator stuff out of VirtualizedList into FlatList since it's not\n // reused by SectionList and we can keep VirtualizedList simpler.\n // $FlowFixMe[missing-local-annot]\n _separators = {\n highlight: () => {\n const {cellKey, prevCellKey} = this.props;\n this.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: true,\n });\n },\n unhighlight: () => {\n const {cellKey, prevCellKey} = this.props;\n this.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: false,\n });\n },\n updateProps: (\n select: 'leading' | 'trailing',\n newProps: SeparatorProps,\n ) => {\n const {cellKey, prevCellKey} = this.props;\n this.props.onUpdateSeparators(\n [select === 'leading' ? prevCellKey : cellKey],\n newProps,\n );\n },\n };\n\n updateSeparatorProps(newProps: SeparatorProps) {\n this.setState(state => ({\n separatorProps: {...state.separatorProps, ...newProps},\n }));\n }\n\n componentWillUnmount() {\n this.props.onUnmount(this.props.cellKey);\n }\n\n _onLayout = (nativeEvent: LayoutEvent): void => {\n this.props.onCellLayout &&\n this.props.onCellLayout(\n nativeEvent,\n this.props.cellKey,\n this.props.index,\n );\n };\n\n _renderElement(\n renderItem: ?RenderItemType,\n ListItemComponent: any,\n item: ItemT,\n index: number,\n ): React.Node {\n if (renderItem && ListItemComponent) {\n console.warn(\n 'VirtualizedList: Both ListItemComponent and renderItem props are present. ListItemComponent will take' +\n ' precedence over renderItem.',\n );\n }\n\n if (ListItemComponent) {\n /* $FlowFixMe[not-a-component] (>=0.108.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.108 was deployed. To\n * see the error, delete this comment and run Flow. */\n /* $FlowFixMe[incompatible-type-arg] (>=0.108.0 site=react_native_fb)\n * This comment suppresses an error found when Flow v0.108 was deployed.\n * To see the error, delete this comment and run Flow. */\n return React.createElement(ListItemComponent, {\n item,\n index,\n separators: this._separators,\n });\n }\n\n if (renderItem) {\n return renderItem({\n item,\n index,\n separators: this._separators,\n });\n }\n\n invariant(\n false,\n 'VirtualizedList: Either ListItemComponent or renderItem props are required but none were found.',\n );\n }\n\n render(): React.Node {\n const {\n CellRendererComponent,\n ItemSeparatorComponent,\n ListItemComponent,\n cellKey,\n horizontal,\n item,\n index,\n inversionStyle,\n onCellFocusCapture,\n onCellLayout,\n renderItem,\n } = this.props;\n const element = this._renderElement(\n renderItem,\n ListItemComponent,\n item,\n index,\n );\n\n // NOTE: that when this is a sticky header, `onLayout` will get automatically extracted and\n // called explicitly by `ScrollViewStickyHeader`.\n const itemSeparator: React.Node = React.isValidElement(\n ItemSeparatorComponent,\n )\n ? // $FlowFixMe[incompatible-type]\n ItemSeparatorComponent\n : // $FlowFixMe[incompatible-type]\n ItemSeparatorComponent && (\n \n );\n const cellStyle = inversionStyle\n ? horizontal\n ? [styles.rowReverse, inversionStyle]\n : [styles.columnReverse, inversionStyle]\n : horizontal\n ? [styles.row, inversionStyle]\n : inversionStyle;\n const result = !CellRendererComponent ? (\n \n {element}\n {itemSeparator}\n \n ) : (\n \n {element}\n {itemSeparator}\n \n );\n\n return (\n \n {result}\n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n row: {\n flexDirection: 'row',\n },\n rowReverse: {\n flexDirection: 'row-reverse',\n },\n columnReverse: {\n flexDirection: 'column-reverse',\n },\n});\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport typeof VirtualizedList from './VirtualizedList';\n\nimport * as React from 'react';\nimport {useContext, useMemo} from 'react';\n\ntype Context = $ReadOnly<{\n cellKey: ?string,\n getScrollMetrics: () => {\n contentLength: number,\n dOffset: number,\n dt: number,\n offset: number,\n timestamp: number,\n velocity: number,\n visibleLength: number,\n zoomScale: number,\n },\n horizontal: ?boolean,\n getOutermostParentListRef: () => React.ElementRef,\n registerAsNestedChild: ({\n cellKey: string,\n ref: React.ElementRef,\n }) => void,\n unregisterAsNestedChild: ({\n ref: React.ElementRef,\n }) => void,\n}>;\n\nexport const VirtualizedListContext: React.Context =\n React.createContext(null);\nif (__DEV__) {\n VirtualizedListContext.displayName = 'VirtualizedListContext';\n}\n\n/**\n * Resets the context. Intended for use by portal-like components (e.g. Modal).\n */\nexport function VirtualizedListContextResetter({\n children,\n}: {\n children: React.Node,\n}): React.Node {\n return (\n \n {children}\n \n );\n}\n\n/**\n * Sets the context with memoization. Intended to be used by `VirtualizedList`.\n */\nexport function VirtualizedListContextProvider({\n children,\n value,\n}: {\n children: React.Node,\n value: Context,\n}): React.Node {\n // Avoid setting a newly created context object if the values are identical.\n const context = useMemo(\n () => ({\n cellKey: null,\n getScrollMetrics: value.getScrollMetrics,\n horizontal: value.horizontal,\n getOutermostParentListRef: value.getOutermostParentListRef,\n registerAsNestedChild: value.registerAsNestedChild,\n unregisterAsNestedChild: value.unregisterAsNestedChild,\n }),\n [\n value.getScrollMetrics,\n value.horizontal,\n value.getOutermostParentListRef,\n value.registerAsNestedChild,\n value.unregisterAsNestedChild,\n ],\n );\n return (\n \n {children}\n \n );\n}\n\n/**\n * Sets the `cellKey`. Intended to be used by `VirtualizedList` for each cell.\n */\nexport function VirtualizedListCellContextProvider({\n cellKey,\n children,\n}: {\n cellKey: string,\n children: React.Node,\n}): React.Node {\n // Avoid setting a newly created context object if the values are identical.\n const currContext = useContext(VirtualizedListContext);\n const context = useMemo(\n () => (currContext == null ? null : {...currContext, cellKey}),\n [currContext, cellKey],\n );\n return (\n \n {children}\n \n );\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport invariant from 'invariant';\n\nexport type CellRegion = {\n first: number,\n last: number,\n isSpacer: boolean,\n};\n\nexport class CellRenderMask {\n _numCells: number;\n _regions: Array;\n\n constructor(numCells: number) {\n invariant(\n numCells >= 0,\n 'CellRenderMask must contain a non-negative number os cells',\n );\n\n this._numCells = numCells;\n\n if (numCells === 0) {\n this._regions = [];\n } else {\n this._regions = [\n {\n first: 0,\n last: numCells - 1,\n isSpacer: true,\n },\n ];\n }\n }\n\n enumerateRegions(): $ReadOnlyArray {\n return this._regions;\n }\n\n addCells(cells: {first: number, last: number}): void {\n invariant(\n cells.first >= 0 &&\n cells.first < this._numCells &&\n cells.last >= -1 &&\n cells.last < this._numCells &&\n cells.last >= cells.first - 1,\n 'CellRenderMask.addCells called with invalid cell range',\n );\n\n // VirtualizedList uses inclusive ranges, where zero-count states are\n // possible. E.g. [0, -1] for no cells, starting at 0.\n if (cells.last < cells.first) {\n return;\n }\n\n const [firstIntersect, firstIntersectIdx] = this._findRegion(cells.first);\n const [lastIntersect, lastIntersectIdx] = this._findRegion(cells.last);\n\n // Fast-path if the cells to add are already all present in the mask. We\n // will otherwise need to do some mutation.\n if (firstIntersectIdx === lastIntersectIdx && !firstIntersect.isSpacer) {\n return;\n }\n\n // We need to replace the existing covered regions with 1-3 new regions\n // depending whether we need to split spacers out of overlapping regions.\n const newLeadRegion: Array = [];\n const newTailRegion: Array = [];\n const newMainRegion: CellRegion = {\n ...cells,\n isSpacer: false,\n };\n\n if (firstIntersect.first < newMainRegion.first) {\n if (firstIntersect.isSpacer) {\n newLeadRegion.push({\n first: firstIntersect.first,\n last: newMainRegion.first - 1,\n isSpacer: true,\n });\n } else {\n newMainRegion.first = firstIntersect.first;\n }\n }\n\n if (lastIntersect.last > newMainRegion.last) {\n if (lastIntersect.isSpacer) {\n newTailRegion.push({\n first: newMainRegion.last + 1,\n last: lastIntersect.last,\n isSpacer: true,\n });\n } else {\n newMainRegion.last = lastIntersect.last;\n }\n }\n\n const replacementRegions: Array = [\n ...newLeadRegion,\n newMainRegion,\n ...newTailRegion,\n ];\n const numRegionsToDelete = lastIntersectIdx - firstIntersectIdx + 1;\n this._regions.splice(\n firstIntersectIdx,\n numRegionsToDelete,\n ...replacementRegions,\n );\n }\n\n numCells(): number {\n return this._numCells;\n }\n\n equals(other: CellRenderMask): boolean {\n return (\n this._numCells === other._numCells &&\n this._regions.length === other._regions.length &&\n this._regions.every(\n (region, i) =>\n region.first === other._regions[i].first &&\n region.last === other._regions[i].last &&\n region.isSpacer === other._regions[i].isSpacer,\n )\n );\n }\n\n _findRegion(cellIdx: number): [CellRegion, number] {\n let firstIdx = 0;\n let lastIdx = this._regions.length - 1;\n\n while (firstIdx <= lastIdx) {\n const middleIdx = Math.floor((firstIdx + lastIdx) / 2);\n const middleRegion = this._regions[middleIdx];\n\n if (cellIdx >= middleRegion.first && cellIdx <= middleRegion.last) {\n return [middleRegion, middleIdx];\n } else if (cellIdx < middleRegion.first) {\n lastIdx = middleIdx - 1;\n } else if (cellIdx > middleRegion.last) {\n firstIdx = middleIdx + 1;\n }\n }\n\n invariant(false, `A region was not found containing cellIdx ${cellIdx}`);\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {ViewToken} from './ViewabilityHelper';\n\nimport {View} from 'react-native';\nimport VirtualizedList from './VirtualizedList';\nimport {keyExtractor as defaultKeyExtractor} from './VirtualizeUtils';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\ntype Item = any;\n\nexport type SectionBase = {\n /**\n * The data for rendering items in this section.\n */\n data: $ReadOnlyArray,\n /**\n * Optional key to keep track of section re-ordering. If you don't plan on re-ordering sections,\n * the array index will be used by default.\n */\n key?: string,\n // Optional props will override list-wide props just for this section.\n renderItem?: ?(info: {\n item: SectionItemT,\n index: number,\n section: SectionBase,\n separators: {\n highlight: () => void,\n unhighlight: () => void,\n updateProps: (select: 'leading' | 'trailing', newProps: Object) => void,\n ...\n },\n ...\n }) => null | React.Element,\n ItemSeparatorComponent?: ?React.ComponentType,\n keyExtractor?: (item: SectionItemT, index?: ?number) => string,\n ...\n};\n\ntype RequiredProps> = {|\n sections: $ReadOnlyArray,\n|};\n\ntype OptionalProps> = {|\n /**\n * Default renderer for every item in every section.\n */\n renderItem?: (info: {\n item: Item,\n index: number,\n section: SectionT,\n separators: {\n highlight: () => void,\n unhighlight: () => void,\n updateProps: (select: 'leading' | 'trailing', newProps: Object) => void,\n ...\n },\n ...\n }) => null | React.Element,\n /**\n * Rendered at the top of each section. These stick to the top of the `ScrollView` by default on\n * iOS. See `stickySectionHeadersEnabled`.\n */\n renderSectionHeader?: ?(info: {\n section: SectionT,\n ...\n }) => null | React.Element,\n /**\n * Rendered at the bottom of each section.\n */\n renderSectionFooter?: ?(info: {\n section: SectionT,\n ...\n }) => null | React.Element,\n /**\n * Rendered at the top and bottom of each section (note this is different from\n * `ItemSeparatorComponent` which is only rendered between items). These are intended to separate\n * sections from the headers above and below and typically have the same highlight response as\n * `ItemSeparatorComponent`. Also receives `highlighted`, `[leading/trailing][Item/Separator]`,\n * and any custom props from `separators.updateProps`.\n */\n SectionSeparatorComponent?: ?React.ComponentType,\n /**\n * Makes section headers stick to the top of the screen until the next one pushes it off. Only\n * enabled by default on iOS because that is the platform standard there.\n */\n stickySectionHeadersEnabled?: boolean,\n onEndReached?: ?({distanceFromEnd: number, ...}) => void,\n|};\n\ntype VirtualizedListProps = React.ElementConfig;\n\nexport type Props = {|\n ...RequiredProps,\n ...OptionalProps,\n ...$Diff<\n VirtualizedListProps,\n {\n renderItem: $PropertyType,\n data: $PropertyType,\n ...\n },\n >,\n|};\nexport type ScrollToLocationParamsType = {|\n animated?: ?boolean,\n itemIndex: number,\n sectionIndex: number,\n viewOffset?: number,\n viewPosition?: number,\n|};\n\ntype State = {childProps: VirtualizedListProps, ...};\n\n/**\n * Right now this just flattens everything into one list and uses VirtualizedList under the\n * hood. The only operation that might not scale well is concatting the data arrays of all the\n * sections when new props are received, which should be plenty fast for up to ~10,000 items.\n */\nclass VirtualizedSectionList<\n SectionT: SectionBase,\n> extends React.PureComponent, State> {\n scrollToLocation(params: ScrollToLocationParamsType) {\n let index = params.itemIndex;\n for (let i = 0; i < params.sectionIndex; i++) {\n index += this.props.getItemCount(this.props.sections[i].data) + 2;\n }\n let viewOffset = params.viewOffset || 0;\n if (this._listRef == null) {\n return;\n }\n if (params.itemIndex > 0 && this.props.stickySectionHeadersEnabled) {\n const frame = this._listRef.__getFrameMetricsApprox(\n index - params.itemIndex,\n this._listRef.props,\n );\n viewOffset += frame.length;\n }\n const toIndexParams = {\n ...params,\n viewOffset,\n index,\n };\n // $FlowFixMe[incompatible-use]\n this._listRef.scrollToIndex(toIndexParams);\n }\n\n getListRef(): ?React.ElementRef {\n return this._listRef;\n }\n\n render(): React.Node {\n const {\n ItemSeparatorComponent, // don't pass through, rendered with renderItem\n SectionSeparatorComponent,\n renderItem: _renderItem,\n renderSectionFooter,\n renderSectionHeader,\n sections: _sections,\n stickySectionHeadersEnabled,\n ...passThroughProps\n } = this.props;\n\n const listHeaderOffset = this.props.ListHeaderComponent ? 1 : 0;\n\n const stickyHeaderIndices = this.props.stickySectionHeadersEnabled\n ? ([]: Array)\n : undefined;\n\n let itemCount = 0;\n for (const section of this.props.sections) {\n // Track the section header indices\n if (stickyHeaderIndices != null) {\n stickyHeaderIndices.push(itemCount + listHeaderOffset);\n }\n\n // Add two for the section header and footer.\n itemCount += 2;\n itemCount += this.props.getItemCount(section.data);\n }\n const renderItem = this._renderItem(itemCount);\n\n return (\n \n this._getItem(this.props, sections, index)\n }\n getItemCount={() => itemCount}\n onViewableItemsChanged={\n this.props.onViewableItemsChanged\n ? this._onViewableItemsChanged\n : undefined\n }\n ref={this._captureRef}\n />\n );\n }\n\n _getItem(\n props: Props,\n sections: ?$ReadOnlyArray,\n index: number,\n ): ?Item {\n if (!sections) {\n return null;\n }\n let itemIdx = index - 1;\n for (let i = 0; i < sections.length; i++) {\n const section = sections[i];\n const sectionData = section.data;\n const itemCount = props.getItemCount(sectionData);\n if (itemIdx === -1 || itemIdx === itemCount) {\n // We intend for there to be overflow by one on both ends of the list.\n // This will be for headers and footers. When returning a header or footer\n // item the section itself is the item.\n return section;\n } else if (itemIdx < itemCount) {\n // If we are in the bounds of the list's data then return the item.\n return props.getItem(sectionData, itemIdx);\n } else {\n itemIdx -= itemCount + 2; // Add two for the header and footer\n }\n }\n return null;\n }\n\n // $FlowFixMe[missing-local-annot]\n _keyExtractor = (item: Item, index: number) => {\n const info = this._subExtractor(index);\n return (info && info.key) || String(index);\n };\n\n _subExtractor(index: number): ?{\n section: SectionT,\n // Key of the section or combined key for section + item\n key: string,\n // Relative index within the section\n index: ?number,\n // True if this is the section header\n header?: ?boolean,\n leadingItem?: ?Item,\n leadingSection?: ?SectionT,\n trailingItem?: ?Item,\n trailingSection?: ?SectionT,\n ...\n } {\n let itemIndex = index;\n const {getItem, getItemCount, keyExtractor, sections} = this.props;\n for (let i = 0; i < sections.length; i++) {\n const section = sections[i];\n const sectionData = section.data;\n const key = section.key || String(i);\n itemIndex -= 1; // The section adds an item for the header\n if (itemIndex >= getItemCount(sectionData) + 1) {\n itemIndex -= getItemCount(sectionData) + 1; // The section adds an item for the footer.\n } else if (itemIndex === -1) {\n return {\n section,\n key: key + ':header',\n index: null,\n header: true,\n trailingSection: sections[i + 1],\n };\n } else if (itemIndex === getItemCount(sectionData)) {\n return {\n section,\n key: key + ':footer',\n index: null,\n header: false,\n trailingSection: sections[i + 1],\n };\n } else {\n const extractor =\n section.keyExtractor || keyExtractor || defaultKeyExtractor;\n return {\n section,\n key:\n key + ':' + extractor(getItem(sectionData, itemIndex), itemIndex),\n index: itemIndex,\n leadingItem: getItem(sectionData, itemIndex - 1),\n leadingSection: sections[i - 1],\n trailingItem: getItem(sectionData, itemIndex + 1),\n trailingSection: sections[i + 1],\n };\n }\n }\n }\n\n _convertViewable = (viewable: ViewToken): ?ViewToken => {\n invariant(viewable.index != null, 'Received a broken ViewToken');\n const info = this._subExtractor(viewable.index);\n if (!info) {\n return null;\n }\n const keyExtractorWithNullableIndex = info.section.keyExtractor;\n const keyExtractorWithNonNullableIndex =\n this.props.keyExtractor || defaultKeyExtractor;\n const key =\n keyExtractorWithNullableIndex != null\n ? keyExtractorWithNullableIndex(viewable.item, info.index)\n : keyExtractorWithNonNullableIndex(viewable.item, info.index ?? 0);\n\n return {\n ...viewable,\n index: info.index,\n key,\n section: info.section,\n };\n };\n\n _onViewableItemsChanged = ({\n viewableItems,\n changed,\n }: {\n viewableItems: Array,\n changed: Array,\n ...\n }) => {\n const onViewableItemsChanged = this.props.onViewableItemsChanged;\n if (onViewableItemsChanged != null) {\n onViewableItemsChanged({\n viewableItems: viewableItems\n .map(this._convertViewable, this)\n .filter(Boolean),\n changed: changed.map(this._convertViewable, this).filter(Boolean),\n });\n }\n };\n\n _renderItem =\n (listItemCount: number): $FlowFixMe =>\n // eslint-disable-next-line react/no-unstable-nested-components\n ({item, index}: {item: Item, index: number, ...}) => {\n const info = this._subExtractor(index);\n if (!info) {\n return null;\n }\n const infoIndex = info.index;\n if (infoIndex == null) {\n const {section} = info;\n if (info.header === true) {\n const {renderSectionHeader} = this.props;\n return renderSectionHeader ? renderSectionHeader({section}) : null;\n } else {\n const {renderSectionFooter} = this.props;\n return renderSectionFooter ? renderSectionFooter({section}) : null;\n }\n } else {\n const renderItem = info.section.renderItem || this.props.renderItem;\n const SeparatorComponent = this._getSeparatorComponent(\n index,\n info,\n listItemCount,\n );\n invariant(renderItem, 'no renderItem!');\n return (\n \n );\n }\n };\n\n _updatePropsFor = (cellKey: string, value: any) => {\n const updateProps = this._updatePropsMap[cellKey];\n if (updateProps != null) {\n updateProps(value);\n }\n };\n\n _updateHighlightFor = (cellKey: string, value: boolean) => {\n const updateHighlight = this._updateHighlightMap[cellKey];\n if (updateHighlight != null) {\n updateHighlight(value);\n }\n };\n\n _setUpdateHighlightFor = (\n cellKey: string,\n updateHighlightFn: ?(boolean) => void,\n ) => {\n if (updateHighlightFn != null) {\n this._updateHighlightMap[cellKey] = updateHighlightFn;\n } else {\n // $FlowFixMe[prop-missing]\n delete this._updateHighlightFor[cellKey];\n }\n };\n\n _setUpdatePropsFor = (cellKey: string, updatePropsFn: ?(boolean) => void) => {\n if (updatePropsFn != null) {\n this._updatePropsMap[cellKey] = updatePropsFn;\n } else {\n delete this._updatePropsMap[cellKey];\n }\n };\n\n _getSeparatorComponent(\n index: number,\n info?: ?Object,\n listItemCount: number,\n ): ?React.ComponentType {\n info = info || this._subExtractor(index);\n if (!info) {\n return null;\n }\n const ItemSeparatorComponent =\n info.section.ItemSeparatorComponent || this.props.ItemSeparatorComponent;\n const {SectionSeparatorComponent} = this.props;\n const isLastItemInList = index === listItemCount - 1;\n const isLastItemInSection =\n info.index === this.props.getItemCount(info.section.data) - 1;\n if (SectionSeparatorComponent && isLastItemInSection) {\n return SectionSeparatorComponent;\n }\n if (ItemSeparatorComponent && !isLastItemInSection && !isLastItemInList) {\n return ItemSeparatorComponent;\n }\n return null;\n }\n\n _updateHighlightMap: {[string]: (boolean) => void} = {};\n _updatePropsMap: {[string]: void | (boolean => void)} = {};\n _listRef: ?React.ElementRef;\n _captureRef = (ref: null | React$ElementRef>) => {\n this._listRef = ref;\n };\n}\n\ntype ItemWithSeparatorCommonProps = $ReadOnly<{|\n leadingItem: ?Item,\n leadingSection: ?Object,\n section: Object,\n trailingItem: ?Item,\n trailingSection: ?Object,\n|}>;\n\ntype ItemWithSeparatorProps = $ReadOnly<{|\n ...ItemWithSeparatorCommonProps,\n LeadingSeparatorComponent: ?React.ComponentType,\n SeparatorComponent: ?React.ComponentType,\n cellKey: string,\n index: number,\n item: Item,\n setSelfHighlightCallback: (\n cellKey: string,\n updateFn: ?(boolean) => void,\n ) => void,\n setSelfUpdatePropsCallback: (\n cellKey: string,\n updateFn: ?(boolean) => void,\n ) => void,\n prevCellKey?: ?string,\n updateHighlightFor: (prevCellKey: string, value: boolean) => void,\n updatePropsFor: (prevCellKey: string, value: Object) => void,\n renderItem: Function,\n inverted: boolean,\n|}>;\n\nfunction ItemWithSeparator(props: ItemWithSeparatorProps): React.Node {\n const {\n LeadingSeparatorComponent,\n // this is the trailing separator and is associated with this item\n SeparatorComponent,\n cellKey,\n prevCellKey,\n setSelfHighlightCallback,\n updateHighlightFor,\n setSelfUpdatePropsCallback,\n updatePropsFor,\n item,\n index,\n section,\n inverted,\n } = props;\n\n const [leadingSeparatorHiglighted, setLeadingSeparatorHighlighted] =\n React.useState(false);\n\n const [separatorHighlighted, setSeparatorHighlighted] = React.useState(false);\n\n const [leadingSeparatorProps, setLeadingSeparatorProps] = React.useState({\n leadingItem: props.leadingItem,\n leadingSection: props.leadingSection,\n section: props.section,\n trailingItem: props.item,\n trailingSection: props.trailingSection,\n });\n const [separatorProps, setSeparatorProps] = React.useState({\n leadingItem: props.item,\n leadingSection: props.leadingSection,\n section: props.section,\n trailingItem: props.trailingItem,\n trailingSection: props.trailingSection,\n });\n\n React.useEffect(() => {\n setSelfHighlightCallback(cellKey, setSeparatorHighlighted);\n // $FlowFixMe[incompatible-call]\n setSelfUpdatePropsCallback(cellKey, setSeparatorProps);\n\n return () => {\n setSelfUpdatePropsCallback(cellKey, null);\n setSelfHighlightCallback(cellKey, null);\n };\n }, [\n cellKey,\n setSelfHighlightCallback,\n setSeparatorProps,\n setSelfUpdatePropsCallback,\n ]);\n\n const separators = {\n highlight: () => {\n setLeadingSeparatorHighlighted(true);\n setSeparatorHighlighted(true);\n if (prevCellKey != null) {\n updateHighlightFor(prevCellKey, true);\n }\n },\n unhighlight: () => {\n setLeadingSeparatorHighlighted(false);\n setSeparatorHighlighted(false);\n if (prevCellKey != null) {\n updateHighlightFor(prevCellKey, false);\n }\n },\n updateProps: (\n select: 'leading' | 'trailing',\n newProps: $Shape,\n ) => {\n if (select === 'leading') {\n if (LeadingSeparatorComponent != null) {\n setLeadingSeparatorProps({...leadingSeparatorProps, ...newProps});\n } else if (prevCellKey != null) {\n // update the previous item's separator\n updatePropsFor(prevCellKey, {...leadingSeparatorProps, ...newProps});\n }\n } else if (select === 'trailing' && SeparatorComponent != null) {\n setSeparatorProps({...separatorProps, ...newProps});\n }\n },\n };\n const element = props.renderItem({\n item,\n index,\n section,\n separators,\n });\n const leadingSeparator = LeadingSeparatorComponent != null && (\n \n );\n const separator = SeparatorComponent != null && (\n \n );\n return leadingSeparator || separator ? (\n \n {inverted === false ? leadingSeparator : separator}\n {element}\n {inverted === false ? separator : leadingSeparator}\n \n ) : (\n element\n );\n}\n\n/* $FlowFixMe[class-object-subtyping] added when improving typing for this\n * parameters */\n// $FlowFixMe[method-unbinding]\nmodule.exports = (VirtualizedSectionList: React.AbstractComponent<\n React.ElementConfig,\n $ReadOnly<{\n getListRef: () => ?React.ElementRef,\n scrollToLocation: (params: ScrollToLocationParamsType) => void,\n ...\n }>,\n>);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {AnimatedComponentType} from '../createAnimatedComponent';\n\nimport Image from '../../Image/Image';\nimport createAnimatedComponent from '../createAnimatedComponent';\nimport * as React from 'react';\n\nexport default (createAnimatedComponent(\n (Image: $FlowFixMe),\n): AnimatedComponentType<\n React.ElementConfig,\n React.ElementRef,\n>);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {RootTag} from '../Types/RootTagTypes';\nimport type {ImageAndroid} from './Image.flow';\nimport type {ImageProps as ImagePropsType} from './ImageProps';\n\nimport flattenStyle from '../StyleSheet/flattenStyle';\nimport StyleSheet from '../StyleSheet/StyleSheet';\nimport TextAncestor from '../Text/TextAncestor';\nimport ImageAnalyticsTagContext from './ImageAnalyticsTagContext';\nimport ImageInjection from './ImageInjection';\nimport {getImageSourcesFromImageProps} from './ImageSourceUtils';\nimport {convertObjectFitToResizeMode} from './ImageUtils';\nimport ImageViewNativeComponent from './ImageViewNativeComponent';\nimport NativeImageLoaderAndroid from './NativeImageLoaderAndroid';\nimport resolveAssetSource from './resolveAssetSource';\nimport TextInlineImageNativeComponent from './TextInlineImageNativeComponent';\nimport * as React from 'react';\n\nlet _requestId = 1;\nfunction generateRequestId() {\n return _requestId++;\n}\n\n/**\n * Retrieve the width and height (in pixels) of an image prior to displaying it\n *\n * See https://reactnative.dev/docs/image#getsize\n */\nfunction getSize(\n url: string,\n success: (width: number, height: number) => void,\n failure?: (error: any) => void,\n): any {\n return NativeImageLoaderAndroid.getSize(url)\n .then(function (sizes) {\n success(sizes.width, sizes.height);\n })\n .catch(\n failure ||\n function () {\n console.warn('Failed to get size for image: ' + url);\n },\n );\n}\n\n/**\n * Retrieve the width and height (in pixels) of an image prior to displaying it\n * with the ability to provide the headers for the request\n *\n * See https://reactnative.dev/docs/image#getsizewithheaders\n */\nfunction getSizeWithHeaders(\n url: string,\n headers: {[string]: string, ...},\n success: (width: number, height: number) => void,\n failure?: (error: any) => void,\n): any {\n return NativeImageLoaderAndroid.getSizeWithHeaders(url, headers)\n .then(function (sizes) {\n success(sizes.width, sizes.height);\n })\n .catch(\n failure ||\n function () {\n console.warn('Failed to get size for image: ' + url);\n },\n );\n}\n\nfunction prefetchWithMetadata(\n url: string,\n queryRootName: string,\n rootTag?: ?RootTag,\n callback: ?Function,\n): any {\n // TODO: T79192300 Log queryRootName and rootTag\n prefetch(url, callback);\n}\n\nfunction prefetch(url: string, callback: ?Function): any {\n const requestId = generateRequestId();\n callback && callback(requestId);\n return NativeImageLoaderAndroid.prefetchImage(url, requestId);\n}\n\nfunction abortPrefetch(requestId: number) {\n NativeImageLoaderAndroid.abortRequest(requestId);\n}\n\n/**\n * Perform cache interrogation.\n *\n * See https://reactnative.dev/docs/image#querycache\n */\nasync function queryCache(\n urls: Array,\n): Promise<{[string]: 'memory' | 'disk' | 'disk/memory', ...}> {\n return await NativeImageLoaderAndroid.queryCache(urls);\n}\n\nexport type ImageComponentStatics = $ReadOnly<{|\n getSize: typeof getSize,\n getSizeWithHeaders: typeof getSizeWithHeaders,\n prefetch: typeof prefetch,\n prefetchWithMetadata: typeof prefetchWithMetadata,\n abortPrefetch: typeof abortPrefetch,\n queryCache: typeof queryCache,\n resolveAssetSource: typeof resolveAssetSource,\n|}>;\n\n/**\n * A React component for displaying different types of images,\n * including network images, static resources, temporary local images, and\n * images from local disk, such as the camera roll.\n *\n * See https://reactnative.dev/docs/image\n */\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\nconst BaseImage = (props: ImagePropsType, forwardedRef) => {\n let source = getImageSourcesFromImageProps(props) || {\n uri: undefined,\n width: undefined,\n height: undefined,\n };\n const defaultSource = resolveAssetSource(props.defaultSource);\n const loadingIndicatorSource = resolveAssetSource(\n props.loadingIndicatorSource,\n );\n\n if (props.children) {\n throw new Error(\n 'The component cannot contain children. If you want to render content on top of the image, consider using the component or absolute positioning.',\n );\n }\n\n if (props.defaultSource && props.loadingIndicatorSource) {\n throw new Error(\n 'The component cannot have defaultSource and loadingIndicatorSource at the same time. Please use either defaultSource or loadingIndicatorSource.',\n );\n }\n\n let style;\n let sources;\n if (Array.isArray(source)) {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n style = flattenStyle([styles.base, props.style]);\n sources = source;\n } else {\n // $FlowFixMe[incompatible-type]\n const {width = props.width, height = props.height, uri} = source;\n // $FlowFixMe[underconstrained-implicit-instantiation]\n style = flattenStyle([{width, height}, styles.base, props.style]);\n sources = [source];\n if (uri === '') {\n console.warn('source.uri should not be an empty string');\n }\n }\n\n const {height, width, ...restProps} = props;\n\n const {onLoadStart, onLoad, onLoadEnd, onError} = props;\n const nativeProps = {\n ...restProps,\n style,\n shouldNotifyLoadEvents: !!(onLoadStart || onLoad || onLoadEnd || onError),\n src: sources,\n /* $FlowFixMe(>=0.78.0 site=react_native_android_fb) This issue was found\n * when making Flow check .android.js files. */\n headers: (source?.[0]?.headers || source?.headers: ?{[string]: string}),\n defaultSrc: defaultSource ? defaultSource.uri : null,\n loadingIndicatorSrc: loadingIndicatorSource\n ? loadingIndicatorSource.uri\n : null,\n ref: forwardedRef,\n accessibilityLabel:\n props['aria-label'] ?? props.accessibilityLabel ?? props.alt,\n accessibilityLabelledBy:\n props?.['aria-labelledby'] ?? props?.accessibilityLabelledBy,\n accessible: props.alt !== undefined ? true : props.accessible,\n accessibilityState: {\n busy: props['aria-busy'] ?? props.accessibilityState?.busy,\n checked: props['aria-checked'] ?? props.accessibilityState?.checked,\n disabled: props['aria-disabled'] ?? props.accessibilityState?.disabled,\n expanded: props['aria-expanded'] ?? props.accessibilityState?.expanded,\n selected: props['aria-selected'] ?? props.accessibilityState?.selected,\n },\n };\n\n const objectFit =\n style && style.objectFit\n ? convertObjectFitToResizeMode(style.objectFit)\n : null;\n // $FlowFixMe[prop-missing]\n const resizeMode =\n objectFit || props.resizeMode || (style && style.resizeMode) || 'cover';\n\n return (\n \n {analyticTag => {\n const nativePropsWithAnalytics =\n analyticTag !== null\n ? {\n ...nativeProps,\n internal_analyticTag: analyticTag,\n }\n : nativeProps;\n return (\n \n {hasTextAncestor => {\n if (hasTextAncestor) {\n return (\n \n );\n }\n\n return (\n \n );\n }}\n \n );\n }}\n \n );\n};\n\nlet Image = React.forwardRef<\n ImagePropsType,\n | React.ElementRef\n | React.ElementRef,\n>(BaseImage);\n\nif (ImageInjection.unstable_createImageComponent != null) {\n Image = ImageInjection.unstable_createImageComponent(Image);\n}\n\nImage.displayName = 'Image';\n\n/**\n * Retrieve the width and height (in pixels) of an image prior to displaying it\n *\n * See https://reactnative.dev/docs/image#getsize\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.getSize = getSize;\n\n/**\n * Retrieve the width and height (in pixels) of an image prior to displaying it\n * with the ability to provide the headers for the request\n *\n * See https://reactnative.dev/docs/image#getsizewithheaders\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.getSizeWithHeaders = getSizeWithHeaders;\n\n/**\n * Prefetches a remote image for later use by downloading it to the disk\n * cache\n *\n * See https://reactnative.dev/docs/image#prefetch\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.prefetch = prefetch;\n\n/**\n * Prefetches a remote image for later use by downloading it to the disk\n * cache, and adds metadata for queryRootName and rootTag.\n *\n * See https://reactnative.dev/docs/image#prefetch\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.prefetchWithMetadata = prefetchWithMetadata;\n\n/**\n * Abort prefetch request.\n *\n * See https://reactnative.dev/docs/image#abortprefetch\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.abortPrefetch = abortPrefetch;\n\n/**\n * Perform cache interrogation.\n *\n * See https://reactnative.dev/docs/image#querycache\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.queryCache = queryCache;\n\n/**\n * Resolves an asset reference into an object.\n *\n * See https://reactnative.dev/docs/image#resolveassetsource\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.resolveAssetSource = resolveAssetSource;\n\n/**\n * Switch to `deprecated-react-native-prop-types` for compatibility with future\n * releases. This is deprecated and will be removed in the future.\n */\nImage.propTypes = require('deprecated-react-native-prop-types').ImagePropTypes;\n\nconst styles = StyleSheet.create({\n base: {\n overflow: 'hidden',\n },\n});\n\nmodule.exports = ((Image: any): ImageAndroid);\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport * as React from 'react';\n\ntype ContextType = ?string;\n\nconst Context: React.Context =\n React.createContext(null);\n\nif (__DEV__) {\n Context.displayName = 'ImageAnalyticsTagContext';\n}\n\nexport default Context;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format strict-local\n * @flow\n */\n\nimport type {ImageProps as ImagePropsType} from './ImageProps';\n\nimport ImageViewNativeComponent from './ImageViewNativeComponent';\nimport TextInlineImageNativeComponent from './TextInlineImageNativeComponent';\nimport * as React from 'react';\n\nexport default {\n unstable_createImageComponent: (null: ?(\n Image: React.AbstractComponent<\n ImagePropsType,\n | React.ElementRef\n | React.ElementRef,\n >,\n ) => React.AbstractComponent<\n ImagePropsType,\n | React.ElementRef\n | React.ElementRef,\n >),\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {ViewProps} from '../Components/View/ViewPropTypes';\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../Renderer/shims/ReactNativeTypes';\nimport type {\n ColorValue,\n DangerouslyImpreciseStyle,\n ImageStyleProp,\n} from '../StyleSheet/StyleSheet';\nimport type {ResolvedAssetSource} from './AssetSourceResolver';\nimport type {ImageProps} from './ImageProps';\n\nimport * as NativeComponentRegistry from '../NativeComponent/NativeComponentRegistry';\nimport {ConditionallyIgnoredEventHandlers} from '../NativeComponent/ViewConfigIgnore';\nimport Platform from '../Utilities/Platform';\n\ntype Props = $ReadOnly<{\n ...ImageProps,\n ...ViewProps,\n\n style?: ImageStyleProp | DangerouslyImpreciseStyle,\n\n // iOS native props\n tintColor?: ColorValue,\n\n // Android native props\n shouldNotifyLoadEvents?: boolean,\n src?:\n | ?ResolvedAssetSource\n | ?$ReadOnlyArray>,\n headers?: ?{[string]: string},\n defaultSrc?: ?string,\n loadingIndicatorSrc?: ?string,\n}>;\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig =\n Platform.OS === 'android'\n ? {\n uiViewClassName: 'RCTImageView',\n bubblingEventTypes: {},\n directEventTypes: {\n topLoadStart: {\n registrationName: 'onLoadStart',\n },\n topProgress: {\n registrationName: 'onProgress',\n },\n topError: {\n registrationName: 'onError',\n },\n topLoad: {\n registrationName: 'onLoad',\n },\n topLoadEnd: {\n registrationName: 'onLoadEnd',\n },\n },\n validAttributes: {\n blurRadius: true,\n internal_analyticTag: true,\n resizeMode: true,\n tintColor: {\n process: require('../StyleSheet/processColor').default,\n },\n borderBottomLeftRadius: true,\n borderTopLeftRadius: true,\n resizeMethod: true,\n src: true,\n borderRadius: true,\n headers: true,\n shouldNotifyLoadEvents: true,\n defaultSrc: true,\n overlayColor: {\n process: require('../StyleSheet/processColor').default,\n },\n borderColor: {\n process: require('../StyleSheet/processColor').default,\n },\n accessible: true,\n progressiveRenderingEnabled: true,\n fadeDuration: true,\n borderBottomRightRadius: true,\n borderTopRightRadius: true,\n loadingIndicatorSrc: true,\n },\n }\n : {\n uiViewClassName: 'RCTImageView',\n bubblingEventTypes: {},\n directEventTypes: {\n topLoadStart: {\n registrationName: 'onLoadStart',\n },\n topProgress: {\n registrationName: 'onProgress',\n },\n topError: {\n registrationName: 'onError',\n },\n topPartialLoad: {\n registrationName: 'onPartialLoad',\n },\n topLoad: {\n registrationName: 'onLoad',\n },\n topLoadEnd: {\n registrationName: 'onLoadEnd',\n },\n },\n validAttributes: {\n blurRadius: true,\n capInsets: {\n diff: require('../Utilities/differ/insetsDiffer'),\n },\n defaultSource: {\n process: require('./resolveAssetSource'),\n },\n internal_analyticTag: true,\n resizeMode: true,\n source: true,\n tintColor: {\n process: require('../StyleSheet/processColor').default,\n },\n ...ConditionallyIgnoredEventHandlers({\n onLoadStart: true,\n onLoad: true,\n onLoadEnd: true,\n onProgress: true,\n onError: true,\n onPartialLoad: true,\n }),\n },\n };\n\nconst ImageViewNativeComponent: HostComponent =\n NativeComponentRegistry.get(\n 'RCTImageView',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\nexport default ImageViewNativeComponent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n'use strict';\n\nimport type {ViewProps} from '../Components/View/ViewPropTypes';\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../StyleSheet/StyleSheet';\nimport type {ImageResizeMode} from './ImageResizeMode';\n\nimport * as NativeComponentRegistry from '../NativeComponent/NativeComponentRegistry';\n\ntype NativeProps = $ReadOnly<{\n ...ViewProps,\n resizeMode?: ?ImageResizeMode,\n src?: ?$ReadOnlyArray>,\n tintColor?: ?ColorValue,\n headers?: ?{[string]: string},\n}>;\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {\n uiViewClassName: 'RCTTextInlineImage',\n bubblingEventTypes: {},\n directEventTypes: {},\n validAttributes: {\n resizeMode: true,\n src: true,\n tintColor: {\n process: require('../StyleSheet/processColor').default,\n },\n headers: true,\n },\n};\n\nconst TextInlineImage: HostComponent =\n NativeComponentRegistry.get(\n 'RCTTextInlineImage',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\nexport default TextInlineImage;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +abortRequest: (requestId: number) => void;\n +getConstants: () => {||};\n +getSize: (uri: string) => Promise<\n $ReadOnly<{\n width: number,\n height: number,\n ...\n }>,\n >;\n +getSizeWithHeaders: (\n uri: string,\n headers: Object,\n ) => Promise<{\n width: number,\n height: number,\n ...\n }>;\n +prefetchImage: (uri: string, requestId: number) => Promise;\n +queryCache: (uris: Array) => Promise;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('ImageLoader'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nimport type {ResolvedAssetSource} from './AssetSourceResolver';\nimport type {ImageProps} from './ImageProps';\n\nimport resolveAssetSource from './resolveAssetSource';\n\n/**\n * A function which returns the appropriate value for image source\n * by resolving the `source`, `src` and `srcSet` props.\n */\nexport function getImageSourcesFromImageProps(\n imageProps: ImageProps,\n): ?ResolvedAssetSource | $ReadOnlyArray<{uri: string, ...}> {\n let source = resolveAssetSource(imageProps.source);\n\n let sources;\n\n const {crossOrigin, referrerPolicy, src, srcSet, width, height} = imageProps;\n\n const headers: {[string]: string} = {};\n if (crossOrigin === 'use-credentials') {\n headers['Access-Control-Allow-Credentials'] = 'true';\n }\n if (referrerPolicy != null) {\n headers['Referrer-Policy'] = referrerPolicy;\n }\n if (srcSet != null) {\n const sourceList = [];\n const srcSetList = srcSet.split(', ');\n // `src` prop should be used with default scale if `srcSet` does not have 1x scale.\n let shouldUseSrcForDefaultScale = true;\n srcSetList.forEach(imageSrc => {\n const [uri, xScale = '1x'] = imageSrc.split(' ');\n if (!xScale.endsWith('x')) {\n console.warn(\n 'The provided format for scale is not supported yet. Please use scales like 1x, 2x, etc.',\n );\n } else {\n const scale = parseInt(xScale.split('x')[0], 10);\n if (!isNaN(scale)) {\n // 1x scale is provided in `srcSet` prop so ignore the `src` prop if provided.\n shouldUseSrcForDefaultScale =\n scale === 1 ? false : shouldUseSrcForDefaultScale;\n sourceList.push({headers: headers, scale, uri, width, height});\n }\n }\n });\n\n if (shouldUseSrcForDefaultScale && src != null) {\n sourceList.push({\n headers: headers,\n scale: 1,\n uri: src,\n width,\n height,\n });\n }\n if (sourceList.length === 0) {\n console.warn('The provided value for srcSet is not valid.');\n }\n\n sources = sourceList;\n } else if (src != null) {\n sources = [{uri: src, headers: headers, width, height}];\n } else {\n sources = source;\n }\n return sources;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\ntype ResizeMode = 'cover' | 'contain' | 'stretch' | 'repeat' | 'center';\n\nexport function convertObjectFitToResizeMode(objectFit: string): ResizeMode {\n const objectFitMap = {\n contain: 'contain',\n cover: 'cover',\n fill: 'stretch',\n 'scale-down': 'contain',\n };\n return objectFitMap[objectFit];\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {____ViewStyle_Internal} from '../../StyleSheet/StyleSheetTypes';\nimport type {AnimatedComponentType} from '../createAnimatedComponent';\n\nimport RefreshControl from '../../Components/RefreshControl/RefreshControl';\nimport ScrollView from '../../Components/ScrollView/ScrollView';\nimport flattenStyle from '../../StyleSheet/flattenStyle';\nimport splitLayoutProps from '../../StyleSheet/splitLayoutProps';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport useMergeRefs from '../../Utilities/useMergeRefs';\nimport createAnimatedComponent from '../createAnimatedComponent';\nimport useAnimatedProps from '../useAnimatedProps';\nimport * as React from 'react';\nimport {useMemo} from 'react';\n\ntype Props = React.ElementConfig;\ntype Instance = React.ElementRef;\n\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nconst AnimatedScrollView: AnimatedComponentType =\n React.forwardRef((props, forwardedRef) => {\n // (Android only) When a ScrollView has a RefreshControl and\n // any `style` property set with an Animated.Value, the CSS\n // gets incorrectly applied twice. This is because ScrollView\n // swaps the parent/child relationship of itself and the\n // RefreshControl component (see ScrollView.js for more details).\n if (\n Platform.OS === 'android' &&\n props.refreshControl != null &&\n props.style != null\n ) {\n return (\n \n );\n } else {\n return (\n \n );\n }\n });\n\nconst AnimatedScrollViewWithInvertedRefreshControl = React.forwardRef(\n (\n props: {\n ...React.ElementConfig,\n // $FlowFixMe[unclear-type] Same Flow type as `refreshControl` in ScrollView\n refreshControl: React.Element,\n },\n forwardedRef:\n | {current: Instance | null, ...}\n | ((Instance | null) => mixed),\n ) => {\n // Split `props` into the animate-able props for the parent (RefreshControl)\n // and child (ScrollView).\n const {intermediatePropsForRefreshControl, intermediatePropsForScrollView} =\n useMemo(() => {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n const {outer, inner} = splitLayoutProps(flattenStyle(props.style));\n return {\n intermediatePropsForRefreshControl: {style: outer},\n intermediatePropsForScrollView: {...props, style: inner},\n };\n }, [props]);\n\n // Handle animated props on `refreshControl`.\n const [refreshControlAnimatedProps, refreshControlRef] = useAnimatedProps<\n {style: ?____ViewStyle_Internal},\n $FlowFixMe,\n >(intermediatePropsForRefreshControl);\n // NOTE: Assumes that refreshControl.ref` and `refreshControl.style` can be\n // safely clobbered.\n const refreshControl: React.Element =\n React.cloneElement(props.refreshControl, {\n ...refreshControlAnimatedProps,\n ref: refreshControlRef,\n });\n\n // Handle animated props on `NativeDirectionalScrollView`.\n const [scrollViewAnimatedProps, scrollViewRef] = useAnimatedProps<\n Props,\n Instance,\n >(intermediatePropsForScrollView);\n const ref = useMergeRefs(scrollViewRef, forwardedRef);\n\n return (\n // $FlowFixMe[incompatible-use] Investigate useAnimatedProps return value\n \n );\n },\n);\n\nconst AnimatedScrollViewWithoutInvertedRefreshControl =\n createAnimatedComponent(ScrollView);\n\nexport default AnimatedScrollView;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport AndroidSwipeRefreshLayoutNativeComponent, {\n Commands as AndroidSwipeRefreshLayoutCommands,\n} from './AndroidSwipeRefreshLayoutNativeComponent';\nimport PullToRefreshViewNativeComponent, {\n Commands as PullToRefreshCommands,\n} from './PullToRefreshViewNativeComponent';\n\nconst Platform = require('../../Utilities/Platform');\nconst React = require('react');\n\ntype IOSProps = $ReadOnly<{|\n /**\n * The color of the refresh indicator.\n */\n tintColor?: ?ColorValue,\n /**\n * Title color.\n */\n titleColor?: ?ColorValue,\n /**\n * The title displayed under the refresh indicator.\n */\n title?: ?string,\n|}>;\n\ntype AndroidProps = $ReadOnly<{|\n /**\n * Whether the pull to refresh functionality is enabled.\n */\n enabled?: ?boolean,\n /**\n * The colors (at least one) that will be used to draw the refresh indicator.\n */\n colors?: ?$ReadOnlyArray,\n /**\n * The background color of the refresh indicator.\n */\n progressBackgroundColor?: ?ColorValue,\n /**\n * Size of the refresh indicator.\n */\n size?: ?('default' | 'large'),\n|}>;\n\nexport type RefreshControlProps = $ReadOnly<{|\n ...ViewProps,\n ...IOSProps,\n ...AndroidProps,\n\n /**\n * Called when the view starts refreshing.\n */\n onRefresh?: ?() => void | Promise,\n\n /**\n * Whether the view should be indicating an active refresh.\n */\n refreshing: boolean,\n\n /**\n * Progress view top offset\n */\n progressViewOffset?: ?number,\n|}>;\n\n/**\n * This component is used inside a ScrollView or ListView to add pull to refresh\n * functionality. When the ScrollView is at `scrollY: 0`, swiping down\n * triggers an `onRefresh` event.\n *\n * ### Usage example\n *\n * ``` js\n * class RefreshableList extends Component {\n * constructor(props) {\n * super(props);\n * this.state = {\n * refreshing: false,\n * };\n * }\n *\n * _onRefresh() {\n * this.setState({refreshing: true});\n * fetchData().then(() => {\n * this.setState({refreshing: false});\n * });\n * }\n *\n * render() {\n * return (\n * \n * }\n * ...\n * >\n * ...\n * \n * );\n * }\n * ...\n * }\n * ```\n *\n * __Note:__ `refreshing` is a controlled prop, this is why it needs to be set to true\n * in the `onRefresh` function otherwise the refresh indicator will stop immediately.\n */\nclass RefreshControl extends React.Component {\n _nativeRef: ?React.ElementRef<\n | typeof PullToRefreshViewNativeComponent\n | typeof AndroidSwipeRefreshLayoutNativeComponent,\n >;\n _lastNativeRefreshing = false;\n\n componentDidMount() {\n this._lastNativeRefreshing = this.props.refreshing;\n }\n\n componentDidUpdate(prevProps: RefreshControlProps) {\n // RefreshControl is a controlled component so if the native refreshing\n // value doesn't match the current js refreshing prop update it to\n // the js value.\n if (this.props.refreshing !== prevProps.refreshing) {\n this._lastNativeRefreshing = this.props.refreshing;\n } else if (\n this.props.refreshing !== this._lastNativeRefreshing &&\n this._nativeRef\n ) {\n if (Platform.OS === 'android') {\n AndroidSwipeRefreshLayoutCommands.setNativeRefreshing(\n this._nativeRef,\n this.props.refreshing,\n );\n } else {\n PullToRefreshCommands.setNativeRefreshing(\n this._nativeRef,\n this.props.refreshing,\n );\n }\n this._lastNativeRefreshing = this.props.refreshing;\n }\n }\n\n render(): React.Node {\n if (Platform.OS === 'ios') {\n const {enabled, colors, progressBackgroundColor, size, ...props} =\n this.props;\n return (\n \n );\n } else {\n const {tintColor, titleColor, title, ...props} = this.props;\n return (\n \n );\n }\n }\n\n _onRefresh = () => {\n this._lastNativeRefreshing = true;\n\n // $FlowFixMe[unused-promise]\n this.props.onRefresh && this.props.onRefresh();\n\n // The native component will start refreshing so force an update to\n // make sure it stays in sync with the js component.\n this.forceUpdate();\n };\n\n _setNativeRef = (\n ref: ?React.ElementRef<\n | typeof PullToRefreshViewNativeComponent\n | typeof AndroidSwipeRefreshLayoutNativeComponent,\n >,\n ) => {\n this._nativeRef = ref;\n };\n}\n\nmodule.exports = RefreshControl;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n DirectEventHandler,\n Float,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\nimport * as React from 'react';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * Whether the pull to refresh functionality is enabled.\n */\n enabled?: WithDefault,\n /**\n * The colors (at least one) that will be used to draw the refresh indicator.\n */\n colors?: ?$ReadOnlyArray,\n /**\n * The background color of the refresh indicator.\n */\n progressBackgroundColor?: ?ColorValue,\n /**\n * Size of the refresh indicator.\n */\n size?: WithDefault<'default' | 'large', 'default'>,\n /**\n * Progress view top offset\n */\n progressViewOffset?: WithDefault,\n\n /**\n * Called when the view starts refreshing.\n */\n onRefresh?: ?DirectEventHandler,\n\n /**\n * Whether the view should be indicating an active refresh.\n */\n refreshing: boolean,\n|}>;\n\ntype NativeType = HostComponent;\n\ninterface NativeCommands {\n +setNativeRefreshing: (\n viewRef: React.ElementRef,\n value: boolean,\n ) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['setNativeRefreshing'],\n});\n\nexport default (codegenNativeComponent(\n 'AndroidSwipeRefreshLayout',\n): NativeType);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n DirectEventHandler,\n Float,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\nimport * as React from 'react';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * The color of the refresh indicator.\n */\n tintColor?: ?ColorValue,\n /**\n * Title color.\n */\n titleColor?: ?ColorValue,\n /**\n * The title displayed under the refresh indicator.\n */\n title?: WithDefault,\n /**\n * Progress view top offset\n */\n progressViewOffset?: WithDefault,\n\n /**\n * Called when the view starts refreshing.\n */\n onRefresh?: ?DirectEventHandler,\n\n /**\n * Whether the view should be indicating an active refresh.\n */\n refreshing: boolean,\n|}>;\n\ntype ComponentType = HostComponent;\n\ninterface NativeCommands {\n +setNativeRefreshing: (\n viewRef: React.ElementRef,\n refreshing: boolean,\n ) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['setNativeRefreshing'],\n});\n\nexport default (codegenNativeComponent('PullToRefreshView', {\n paperComponentName: 'RCTRefreshControl',\n excludedPlatforms: ['android'],\n}): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {EdgeInsetsProp} from '../../StyleSheet/EdgeInsetsPropType';\nimport type {PointProp} from '../../StyleSheet/PointPropType';\nimport type {ViewStyleProp} from '../../StyleSheet/StyleSheet';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n LayoutEvent,\n PressEvent,\n ScrollEvent,\n} from '../../Types/CoreEventTypes';\nimport type {EventSubscription} from '../../vendor/emitter/EventEmitter';\nimport type {KeyboardEvent, KeyboardMetrics} from '../Keyboard/Keyboard';\nimport type {ViewProps} from '../View/ViewPropTypes';\nimport type {Props as ScrollViewStickyHeaderProps} from './ScrollViewStickyHeader';\n\nimport AnimatedImplementation from '../../Animated/AnimatedImplementation';\nimport FrameRateLogger from '../../Interaction/FrameRateLogger';\nimport {findNodeHandle} from '../../ReactNative/RendererProxy';\nimport UIManager from '../../ReactNative/UIManager';\nimport flattenStyle from '../../StyleSheet/flattenStyle';\nimport splitLayoutProps from '../../StyleSheet/splitLayoutProps';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Dimensions from '../../Utilities/Dimensions';\nimport dismissKeyboard from '../../Utilities/dismissKeyboard';\nimport Platform from '../../Utilities/Platform';\nimport Keyboard from '../Keyboard/Keyboard';\nimport TextInputState from '../TextInput/TextInputState';\nimport View from '../View/View';\nimport AndroidHorizontalScrollContentViewNativeComponent from './AndroidHorizontalScrollContentViewNativeComponent';\nimport AndroidHorizontalScrollViewNativeComponent from './AndroidHorizontalScrollViewNativeComponent';\nimport processDecelerationRate from './processDecelerationRate';\nimport ScrollContentViewNativeComponent from './ScrollContentViewNativeComponent';\nimport Commands from './ScrollViewCommands';\nimport ScrollViewContext, {HORIZONTAL, VERTICAL} from './ScrollViewContext';\nimport ScrollViewNativeComponent from './ScrollViewNativeComponent';\nimport ScrollViewStickyHeader from './ScrollViewStickyHeader';\nimport invariant from 'invariant';\nimport memoize from 'memoize-one';\nimport nullthrows from 'nullthrows';\nimport * as React from 'react';\n\nif (Platform.OS === 'ios') {\n require('../../Renderer/shims/ReactNative'); // Force side effects to prevent T55744311\n}\n\nconst {NativeHorizontalScrollViewTuple, NativeVerticalScrollViewTuple} =\n Platform.OS === 'android'\n ? {\n NativeHorizontalScrollViewTuple: [\n AndroidHorizontalScrollViewNativeComponent,\n AndroidHorizontalScrollContentViewNativeComponent,\n ],\n NativeVerticalScrollViewTuple: [ScrollViewNativeComponent, View],\n }\n : {\n NativeHorizontalScrollViewTuple: [\n ScrollViewNativeComponent,\n ScrollContentViewNativeComponent,\n ],\n NativeVerticalScrollViewTuple: [\n ScrollViewNativeComponent,\n ScrollContentViewNativeComponent,\n ],\n };\n\n/*\n * iOS scroll event timing nuances:\n * ===============================\n *\n *\n * Scrolling without bouncing, if you touch down:\n * -------------------------------\n *\n * 1. `onMomentumScrollBegin` (when animation begins after letting up)\n * ... physical touch starts ...\n * 2. `onTouchStartCapture` (when you press down to stop the scroll)\n * 3. `onTouchStart` (same, but bubble phase)\n * 4. `onResponderRelease` (when lifting up - you could pause forever before * lifting)\n * 5. `onMomentumScrollEnd`\n *\n *\n * Scrolling with bouncing, if you touch down:\n * -------------------------------\n *\n * 1. `onMomentumScrollBegin` (when animation begins after letting up)\n * ... bounce begins ...\n * ... some time elapses ...\n * ... physical touch during bounce ...\n * 2. `onMomentumScrollEnd` (Makes no sense why this occurs first during bounce)\n * 3. `onTouchStartCapture` (immediately after `onMomentumScrollEnd`)\n * 4. `onTouchStart` (same, but bubble phase)\n * 5. `onTouchEnd` (You could hold the touch start for a long time)\n * 6. `onMomentumScrollBegin` (When releasing the view starts bouncing back)\n *\n * So when we receive an `onTouchStart`, how can we tell if we are touching\n * *during* an animation (which then causes the animation to stop)? The only way\n * to tell is if the `touchStart` occurred immediately after the\n * `onMomentumScrollEnd`.\n *\n * This is abstracted out for you, so you can just call this.scrollResponderIsAnimating() if\n * necessary\n *\n * `ScrollView` also includes logic for blurring a currently focused input\n * if one is focused while scrolling. This is a natural place\n * to put this logic since it can support not dismissing the keyboard while\n * scrolling, unless a recognized \"tap\"-like gesture has occurred.\n *\n * The public lifecycle API includes events for keyboard interaction, responder\n * interaction, and scrolling (among others). The keyboard callbacks\n * `onKeyboardWill/Did/*` are *global* events, but are invoked on scroll\n * responder's props so that you can guarantee that the scroll responder's\n * internal state has been updated accordingly (and deterministically) by\n * the time the props callbacks are invoke. Otherwise, you would always wonder\n * if the scroll responder is currently in a state where it recognizes new\n * keyboard positions etc. If coordinating scrolling with keyboard movement,\n * *always* use these hooks instead of listening to your own global keyboard\n * events.\n *\n * Public keyboard lifecycle API: (props callbacks)\n *\n * Standard Keyboard Appearance Sequence:\n *\n * this.props.onKeyboardWillShow\n * this.props.onKeyboardDidShow\n *\n * `onScrollResponderKeyboardDismissed` will be invoked if an appropriate\n * tap inside the scroll responder's scrollable region was responsible\n * for the dismissal of the keyboard. There are other reasons why the\n * keyboard could be dismissed.\n *\n * this.props.onScrollResponderKeyboardDismissed\n *\n * Standard Keyboard Hide Sequence:\n *\n * this.props.onKeyboardWillHide\n * this.props.onKeyboardDidHide\n */\n\n// Public methods for ScrollView\nexport type ScrollViewImperativeMethods = $ReadOnly<{|\n getScrollResponder: $PropertyType,\n getScrollableNode: $PropertyType,\n getInnerViewNode: $PropertyType,\n getInnerViewRef: $PropertyType,\n getNativeScrollRef: $PropertyType,\n scrollTo: $PropertyType,\n scrollToEnd: $PropertyType,\n flashScrollIndicators: $PropertyType,\n scrollResponderZoomTo: $PropertyType,\n scrollResponderScrollNativeHandleToKeyboard: $PropertyType<\n ScrollView,\n 'scrollResponderScrollNativeHandleToKeyboard',\n >,\n|}>;\n\nexport type DecelerationRateType = 'fast' | 'normal' | number;\nexport type ScrollResponderType = ScrollViewImperativeMethods;\n\ntype NativeScrollViewInstance = React.ElementRef>;\ntype PublicScrollViewInstance = $ReadOnly<{|\n ...$Exact,\n ...ScrollViewImperativeMethods,\n|}>;\n\ntype InnerViewInstance = React.ElementRef;\n\ntype IOSProps = $ReadOnly<{|\n /**\n * Controls whether iOS should automatically adjust the content inset\n * for scroll views that are placed behind a navigation bar or\n * tab bar/ toolbar. The default value is true.\n * @platform ios\n */\n automaticallyAdjustContentInsets?: ?boolean,\n /**\n * Controls whether the ScrollView should automatically adjust its `contentInset`\n * and `scrollViewInsets` when the Keyboard changes its size. The default value is false.\n * @platform ios\n */\n automaticallyAdjustKeyboardInsets?: ?boolean,\n /**\n * Controls whether iOS should automatically adjust the scroll indicator\n * insets. The default value is true. Available on iOS 13 and later.\n * @platform ios\n */\n automaticallyAdjustsScrollIndicatorInsets?: ?boolean,\n /**\n * The amount by which the scroll view content is inset from the edges\n * of the scroll view. Defaults to `{top: 0, left: 0, bottom: 0, right: 0}`.\n * @platform ios\n */\n contentInset?: ?EdgeInsetsProp,\n /**\n * When true, the scroll view bounces when it reaches the end of the\n * content if the content is larger then the scroll view along the axis of\n * the scroll direction. When false, it disables all bouncing even if\n * the `alwaysBounce*` props are true. The default value is true.\n * @platform ios\n */\n bounces?: ?boolean,\n /**\n * By default, ScrollView has an active pan responder that hijacks panresponders\n * deeper in the render tree in order to prevent accidental touches while scrolling.\n * However, in certain occasions (such as when using snapToInterval) in a vertical scrollview\n * You may want to disable this behavior in order to prevent the ScrollView from blocking touches\n */\n disableScrollViewPanResponder?: ?boolean,\n /**\n * When true, gestures can drive zoom past min/max and the zoom will animate\n * to the min/max value at gesture end, otherwise the zoom will not exceed\n * the limits.\n * @platform ios\n */\n bouncesZoom?: ?boolean,\n /**\n * When true, the scroll view bounces horizontally when it reaches the end\n * even if the content is smaller than the scroll view itself. The default\n * value is true when `horizontal={true}` and false otherwise.\n * @platform ios\n */\n alwaysBounceHorizontal?: ?boolean,\n /**\n * When true, the scroll view bounces vertically when it reaches the end\n * even if the content is smaller than the scroll view itself. The default\n * value is false when `horizontal={true}` and true otherwise.\n * @platform ios\n */\n alwaysBounceVertical?: ?boolean,\n /**\n * When true, the scroll view automatically centers the content when the\n * content is smaller than the scroll view bounds; when the content is\n * larger than the scroll view, this property has no effect. The default\n * value is false.\n * @platform ios\n */\n centerContent?: ?boolean,\n /**\n * The style of the scroll indicators.\n *\n * - `'default'` (the default), same as `black`.\n * - `'black'`, scroll indicator is black. This style is good against a light background.\n * - `'white'`, scroll indicator is white. This style is good against a dark background.\n *\n * @platform ios\n */\n indicatorStyle?: ?('default' | 'black' | 'white'),\n /**\n * When true, the ScrollView will try to lock to only vertical or horizontal\n * scrolling while dragging. The default value is false.\n * @platform ios\n */\n directionalLockEnabled?: ?boolean,\n /**\n * When false, once tracking starts, won't try to drag if the touch moves.\n * The default value is true.\n * @platform ios\n */\n canCancelContentTouches?: ?boolean,\n /**\n * When set, the scroll view will adjust the scroll position so that the first child that is\n * currently visible and at or beyond `minIndexForVisible` will not change position. This is\n * useful for lists that are loading content in both directions, e.g. a chat thread, where new\n * messages coming in might otherwise cause the scroll position to jump. A value of 0 is common,\n * but other values such as 1 can be used to skip loading spinners or other content that should\n * not maintain position.\n *\n * The optional `autoscrollToTopThreshold` can be used to make the content automatically scroll\n * to the top after making the adjustment if the user was within the threshold of the top before\n * the adjustment was made. This is also useful for chat-like applications where you want to see\n * new messages scroll into place, but not if the user has scrolled up a ways and it would be\n * disruptive to scroll a bunch.\n *\n * Caveat 1: Reordering elements in the scrollview with this enabled will probably cause\n * jumpiness and jank. It can be fixed, but there are currently no plans to do so. For now,\n * don't re-order the content of any ScrollViews or Lists that use this feature.\n *\n * Caveat 2: This simply uses `contentOffset` and `frame.origin` in native code to compute\n * visibility. Occlusion, transforms, and other complexity won't be taken into account as to\n * whether content is \"visible\" or not.\n *\n */\n maintainVisibleContentPosition?: ?$ReadOnly<{|\n minIndexForVisible: number,\n autoscrollToTopThreshold?: ?number,\n |}>,\n /**\n * The maximum allowed zoom scale. The default value is 1.0.\n * @platform ios\n */\n maximumZoomScale?: ?number,\n /**\n * The minimum allowed zoom scale. The default value is 1.0.\n * @platform ios\n */\n minimumZoomScale?: ?number,\n /**\n * When true, ScrollView allows use of pinch gestures to zoom in and out.\n * The default value is true.\n * @platform ios\n */\n pinchGestureEnabled?: ?boolean,\n /**\n * The amount by which the scroll view indicators are inset from the edges\n * of the scroll view. This should normally be set to the same value as\n * the `contentInset`. Defaults to `{0, 0, 0, 0}`.\n * @platform ios\n */\n scrollIndicatorInsets?: ?EdgeInsetsProp,\n /**\n * When true, the scroll view can be programmatically scrolled beyond its\n * content size. The default value is false.\n * @platform ios\n */\n scrollToOverflowEnabled?: ?boolean,\n /**\n * When true, the scroll view scrolls to top when the status bar is tapped.\n * The default value is true.\n * @platform ios\n */\n scrollsToTop?: ?boolean,\n /**\n * Fires when the scroll view scrolls to top after the status bar has been tapped\n * @platform ios\n */\n onScrollToTop?: (event: ScrollEvent) => void,\n /**\n * When true, shows a horizontal scroll indicator.\n * The default value is true.\n */\n showsHorizontalScrollIndicator?: ?boolean,\n /**\n * The current scale of the scroll view content. The default value is 1.0.\n * @platform ios\n */\n zoomScale?: ?number,\n /**\n * This property specifies how the safe area insets are used to modify the\n * content area of the scroll view. The default value of this property is\n * \"never\". Available on iOS 11 and later.\n * @platform ios\n */\n contentInsetAdjustmentBehavior?: ?(\n | 'automatic'\n | 'scrollableAxes'\n | 'never'\n | 'always'\n ),\n|}>;\n\ntype AndroidProps = $ReadOnly<{|\n /**\n * Enables nested scrolling for Android API level 21+.\n * Nested scrolling is supported by default on iOS\n * @platform android\n */\n nestedScrollEnabled?: ?boolean,\n /**\n * Sometimes a scrollview takes up more space than its content fills. When this is\n * the case, this prop will fill the rest of the scrollview with a color to avoid setting\n * a background and creating unnecessary overdraw. This is an advanced optimization\n * that is not needed in the general case.\n * @platform android\n */\n endFillColor?: ?ColorValue,\n /**\n * Tag used to log scroll performance on this scroll view. Will force\n * momentum events to be turned on (see sendMomentumEvents). This doesn't do\n * anything out of the box and you need to implement a custom native\n * FpsListener for it to be useful.\n * @platform android\n */\n scrollPerfTag?: ?string,\n /**\n * Used to override default value of overScroll mode.\n *\n * Possible values:\n *\n * - `'auto'` - Default value, allow a user to over-scroll\n * this view only if the content is large enough to meaningfully scroll.\n * - `'always'` - Always allow a user to over-scroll this view.\n * - `'never'` - Never allow a user to over-scroll this view.\n *\n * @platform android\n */\n overScrollMode?: ?('auto' | 'always' | 'never'),\n /**\n * Causes the scrollbars not to turn transparent when they are not in use.\n * The default value is false.\n *\n * @platform android\n */\n persistentScrollbar?: ?boolean,\n /**\n * Fades out the edges of the scroll content.\n *\n * If the value is greater than 0, the fading edges will be set accordingly\n * to the current scroll direction and position,\n * indicating if there is more content to show.\n *\n * The default value is 0.\n *\n * @platform android\n */\n fadingEdgeLength?: ?number,\n|}>;\n\ntype StickyHeaderComponentType = React.AbstractComponent<\n ScrollViewStickyHeaderProps,\n $ReadOnly void}>,\n>;\n\nexport type Props = $ReadOnly<{|\n ...ViewProps,\n ...IOSProps,\n ...AndroidProps,\n\n /**\n * These styles will be applied to the scroll view content container which\n * wraps all of the child views. Example:\n *\n * ```\n * return (\n * \n * \n * );\n * ...\n * const styles = StyleSheet.create({\n * contentContainer: {\n * paddingVertical: 20\n * }\n * });\n * ```\n */\n contentContainerStyle?: ?ViewStyleProp,\n /**\n * Used to manually set the starting scroll offset.\n * The default value is `{x: 0, y: 0}`.\n */\n contentOffset?: ?PointProp,\n /**\n * When true, the scroll view stops on the next index (in relation to scroll\n * position at release) regardless of how fast the gesture is. This can be\n * used for pagination when the page is less than the width of the\n * horizontal ScrollView or the height of the vertical ScrollView. The default value is false.\n */\n disableIntervalMomentum?: ?boolean,\n /**\n * A floating-point number that determines how quickly the scroll view\n * decelerates after the user lifts their finger. You may also use string\n * shortcuts `\"normal\"` and `\"fast\"` which match the underlying iOS settings\n * for `UIScrollViewDecelerationRateNormal` and\n * `UIScrollViewDecelerationRateFast` respectively.\n *\n * - `'normal'`: 0.998 on iOS, 0.985 on Android (the default)\n * - `'fast'`: 0.99 on iOS, 0.9 on Android\n */\n decelerationRate?: ?DecelerationRateType,\n /**\n * When true, the scroll view's children are arranged horizontally in a row\n * instead of vertically in a column. The default value is false.\n */\n horizontal?: ?boolean,\n /**\n * If sticky headers should stick at the bottom instead of the top of the\n * ScrollView. This is usually used with inverted ScrollViews.\n */\n invertStickyHeaders?: ?boolean,\n /**\n * Determines whether the keyboard gets dismissed in response to a drag.\n *\n * *Cross platform*\n *\n * - `'none'` (the default), drags do not dismiss the keyboard.\n * - `'on-drag'`, the keyboard is dismissed when a drag begins.\n *\n * *iOS Only*\n *\n * - `'interactive'`, the keyboard is dismissed interactively with the drag and moves in\n * synchrony with the touch; dragging upwards cancels the dismissal.\n * On android this is not supported and it will have the same behavior as 'none'.\n */\n keyboardDismissMode?: ?// default\n // cross-platform\n ('none' | 'on-drag' | 'interactive'), // ios only\n /**\n * Determines when the keyboard should stay visible after a tap.\n *\n * - `'never'` (the default), tapping outside of the focused text input when the keyboard\n * is up dismisses the keyboard. When this happens, children won't receive the tap.\n * - `'always'`, the keyboard will not dismiss automatically, and the scroll view will not\n * catch taps, but children of the scroll view can catch taps.\n * - `'handled'`, the keyboard will not dismiss automatically when the tap was handled by\n * a children, (or captured by an ancestor).\n * - `false`, deprecated, use 'never' instead\n * - `true`, deprecated, use 'always' instead\n */\n keyboardShouldPersistTaps?: ?('always' | 'never' | 'handled' | true | false),\n /**\n * Called when the momentum scroll starts (scroll which occurs as the ScrollView glides to a stop).\n */\n onMomentumScrollBegin?: ?(event: ScrollEvent) => void,\n /**\n * Called when the momentum scroll ends (scroll which occurs as the ScrollView glides to a stop).\n */\n onMomentumScrollEnd?: ?(event: ScrollEvent) => void,\n\n /**\n * Fires at most once per frame during scrolling. The frequency of the\n * events can be controlled using the `scrollEventThrottle` prop.\n */\n onScroll?: ?(event: ScrollEvent) => void,\n /**\n * Called when the user begins to drag the scroll view.\n */\n onScrollBeginDrag?: ?(event: ScrollEvent) => void,\n /**\n * Called when the user stops dragging the scroll view and it either stops\n * or begins to glide.\n */\n onScrollEndDrag?: ?(event: ScrollEvent) => void,\n /**\n * Called when scrollable content view of the ScrollView changes.\n *\n * Handler function is passed the content width and content height as parameters:\n * `(contentWidth, contentHeight)`\n *\n * It's implemented using onLayout handler attached to the content container\n * which this ScrollView renders.\n */\n onContentSizeChange?: (contentWidth: number, contentHeight: number) => void,\n onKeyboardDidShow?: (event: KeyboardEvent) => void,\n onKeyboardDidHide?: (event: KeyboardEvent) => void,\n onKeyboardWillShow?: (event: KeyboardEvent) => void,\n onKeyboardWillHide?: (event: KeyboardEvent) => void,\n /**\n * When true, the scroll view stops on multiples of the scroll view's size\n * when scrolling. This can be used for horizontal pagination. The default\n * value is false.\n *\n * Note: Vertical pagination is not supported on Android.\n */\n pagingEnabled?: ?boolean,\n /**\n * When false, the view cannot be scrolled via touch interaction.\n * The default value is true.\n *\n * Note that the view can always be scrolled by calling `scrollTo`.\n */\n scrollEnabled?: ?boolean,\n /**\n * This controls how often the scroll event will be fired while scrolling\n * (as a time interval in ms). A lower number yields better accuracy for code\n * that is tracking the scroll position, but can lead to scroll performance\n * problems due to the volume of information being send over the bridge.\n *\n * Values between 0 and 17ms indicate 60fps updates are needed and throttling\n * will be disabled.\n *\n * If you do not need precise scroll position tracking, set this value higher\n * to limit the information being sent across the bridge.\n *\n * The default value is zero, which results in the scroll event being sent only\n * once each time the view is scrolled.\n */\n scrollEventThrottle?: ?number,\n /**\n * When true, shows a vertical scroll indicator.\n * The default value is true.\n */\n showsVerticalScrollIndicator?: ?boolean,\n /**\n * When true, Sticky header is hidden when scrolling down, and dock at the top\n * when scrolling up\n */\n stickyHeaderHiddenOnScroll?: ?boolean,\n /**\n * An array of child indices determining which children get docked to the\n * top of the screen when scrolling. For example, passing\n * `stickyHeaderIndices={[0]}` will cause the first child to be fixed to the\n * top of the scroll view. This property is not supported in conjunction\n * with `horizontal={true}`.\n */\n stickyHeaderIndices?: ?$ReadOnlyArray,\n /**\n * A React Component that will be used to render sticky headers.\n * To be used together with `stickyHeaderIndices` or with `SectionList`, defaults to `ScrollViewStickyHeader`.\n * You may need to set this if your sticky header uses custom transforms (eg. translation),\n * for example when you want your list to have an animated hidable header.\n */\n StickyHeaderComponent?: StickyHeaderComponentType,\n /**\n * When `snapToInterval` is set, `snapToAlignment` will define the relationship\n * of the snapping to the scroll view.\n *\n * - `'start'` (the default) will align the snap at the left (horizontal) or top (vertical)\n * - `'center'` will align the snap in the center\n * - `'end'` will align the snap at the right (horizontal) or bottom (vertical)\n */\n snapToAlignment?: ?('start' | 'center' | 'end'),\n /**\n * When set, causes the scroll view to stop at multiples of the value of\n * `snapToInterval`. This can be used for paginating through children\n * that have lengths smaller than the scroll view. Typically used in\n * combination with `snapToAlignment` and `decelerationRate=\"fast\"`.\n *\n * Overrides less configurable `pagingEnabled` prop.\n */\n snapToInterval?: ?number,\n /**\n * When set, causes the scroll view to stop at the defined offsets.\n * This can be used for paginating through variously sized children\n * that have lengths smaller than the scroll view. Typically used in\n * combination with `decelerationRate=\"fast\"`.\n *\n * Overrides less configurable `pagingEnabled` and `snapToInterval` props.\n */\n snapToOffsets?: ?$ReadOnlyArray,\n /**\n * Use in conjunction with `snapToOffsets`. By default, the beginning\n * of the list counts as a snap offset. Set `snapToStart` to false to disable\n * this behavior and allow the list to scroll freely between its start and\n * the first `snapToOffsets` offset.\n * The default value is true.\n */\n snapToStart?: ?boolean,\n /**\n * Use in conjunction with `snapToOffsets`. By default, the end\n * of the list counts as a snap offset. Set `snapToEnd` to false to disable\n * this behavior and allow the list to scroll freely between its end and\n * the last `snapToOffsets` offset.\n * The default value is true.\n */\n snapToEnd?: ?boolean,\n /**\n * Experimental: When true, offscreen child views (whose `overflow` value is\n * `hidden`) are removed from their native backing superview when offscreen.\n * This can improve scrolling performance on long lists. The default value is\n * true.\n */\n removeClippedSubviews?: ?boolean,\n /**\n * A RefreshControl component, used to provide pull-to-refresh\n * functionality for the ScrollView. Only works for vertical ScrollViews\n * (`horizontal` prop must be `false`).\n *\n * See [RefreshControl](docs/refreshcontrol.html).\n */\n /* $FlowFixMe[unclear-type] - how to handle generic type without existential\n * operator? */\n refreshControl?: ?React.Element,\n children?: React.Node,\n /**\n * A ref to the inner View element of the ScrollView. This should be used\n * instead of calling `getInnerViewRef`.\n */\n innerViewRef?: ForwardedRef,\n /**\n * A ref to the Native ScrollView component. This ref can be used to call\n * all of ScrollView's public methods, in addition to native methods like\n * measure, measureLayout, etc.\n */\n scrollViewRef?: ForwardedRef,\n|}>;\n\ntype State = {|\n layoutHeight: ?number,\n|};\n\nconst IS_ANIMATING_TOUCH_START_THRESHOLD_MS = 16;\n\nexport type ScrollViewComponentStatics = $ReadOnly<{|\n Context: typeof ScrollViewContext,\n|}>;\n\n/**\n * Component that wraps platform ScrollView while providing\n * integration with touch locking \"responder\" system.\n *\n * Keep in mind that ScrollViews must have a bounded height in order to work,\n * since they contain unbounded-height children into a bounded container (via\n * a scroll interaction). In order to bound the height of a ScrollView, either\n * set the height of the view directly (discouraged) or make sure all parent\n * views have bounded height. Forgetting to transfer `{flex: 1}` down the\n * view stack can lead to errors here, which the element inspector makes\n * easy to debug.\n *\n * Doesn't yet support other contained responders from blocking this scroll\n * view from becoming the responder.\n *\n *\n * `` vs [``](https://reactnative.dev/docs/flatlist) - which one to use?\n *\n * `ScrollView` simply renders all its react child components at once. That\n * makes it very easy to understand and use.\n *\n * On the other hand, this has a performance downside. Imagine you have a very\n * long list of items you want to display, maybe several screens worth of\n * content. Creating JS components and native views for everything all at once,\n * much of which may not even be shown, will contribute to slow rendering and\n * increased memory usage.\n *\n * This is where `FlatList` comes into play. `FlatList` renders items lazily,\n * just when they are about to appear, and removes items that scroll way off\n * screen to save memory and processing time.\n *\n * `FlatList` is also handy if you want to render separators between your items,\n * multiple columns, infinite scroll loading, or any number of other features it\n * supports out of the box.\n */\nclass ScrollView extends React.Component {\n static Context: typeof ScrollViewContext = ScrollViewContext;\n\n constructor(props: Props) {\n super(props);\n\n this._scrollAnimatedValue = new AnimatedImplementation.Value(\n this.props.contentOffset?.y ?? 0,\n );\n this._scrollAnimatedValue.setOffset(this.props.contentInset?.top ?? 0);\n }\n\n _scrollAnimatedValue: AnimatedImplementation.Value;\n _scrollAnimatedValueAttachment: ?{detach: () => void, ...} = null;\n _stickyHeaderRefs: Map> =\n new Map();\n _headerLayoutYs: Map = new Map();\n\n _keyboardMetrics: ?KeyboardMetrics = null;\n _additionalScrollOffset: number = 0;\n _isTouching: boolean = false;\n _lastMomentumScrollBeginTime: number = 0;\n _lastMomentumScrollEndTime: number = 0;\n\n // Reset to false every time becomes responder. This is used to:\n // - Determine if the scroll view has been scrolled and therefore should\n // refuse to give up its responder lock.\n // - Determine if releasing should dismiss the keyboard when we are in\n // tap-to-dismiss mode (this.props.keyboardShouldPersistTaps !== 'always').\n _observedScrollSinceBecomingResponder: boolean = false;\n _becameResponderWhileAnimating: boolean = false;\n _preventNegativeScrollOffset: ?boolean = null;\n\n _animated: ?boolean = null;\n\n _subscriptionKeyboardWillShow: ?EventSubscription = null;\n _subscriptionKeyboardWillHide: ?EventSubscription = null;\n _subscriptionKeyboardDidShow: ?EventSubscription = null;\n _subscriptionKeyboardDidHide: ?EventSubscription = null;\n\n state: State = {\n layoutHeight: null,\n };\n\n componentDidMount() {\n if (typeof this.props.keyboardShouldPersistTaps === 'boolean') {\n console.warn(\n `'keyboardShouldPersistTaps={${\n this.props.keyboardShouldPersistTaps === true ? 'true' : 'false'\n }}' is deprecated. ` +\n `Use 'keyboardShouldPersistTaps=\"${\n this.props.keyboardShouldPersistTaps ? 'always' : 'never'\n }\"' instead`,\n );\n }\n\n this._keyboardMetrics = Keyboard.metrics();\n this._additionalScrollOffset = 0;\n\n this._subscriptionKeyboardWillShow = Keyboard.addListener(\n 'keyboardWillShow',\n this.scrollResponderKeyboardWillShow,\n );\n this._subscriptionKeyboardWillHide = Keyboard.addListener(\n 'keyboardWillHide',\n this.scrollResponderKeyboardWillHide,\n );\n this._subscriptionKeyboardDidShow = Keyboard.addListener(\n 'keyboardDidShow',\n this.scrollResponderKeyboardDidShow,\n );\n this._subscriptionKeyboardDidHide = Keyboard.addListener(\n 'keyboardDidHide',\n this.scrollResponderKeyboardDidHide,\n );\n\n this._updateAnimatedNodeAttachment();\n }\n\n componentDidUpdate(prevProps: Props) {\n const prevContentInsetTop = prevProps.contentInset\n ? prevProps.contentInset.top\n : 0;\n const newContentInsetTop = this.props.contentInset\n ? this.props.contentInset.top\n : 0;\n if (prevContentInsetTop !== newContentInsetTop) {\n this._scrollAnimatedValue.setOffset(newContentInsetTop || 0);\n }\n\n this._updateAnimatedNodeAttachment();\n }\n\n componentWillUnmount() {\n if (this._subscriptionKeyboardWillShow != null) {\n this._subscriptionKeyboardWillShow.remove();\n }\n if (this._subscriptionKeyboardWillHide != null) {\n this._subscriptionKeyboardWillHide.remove();\n }\n if (this._subscriptionKeyboardDidShow != null) {\n this._subscriptionKeyboardDidShow.remove();\n }\n if (this._subscriptionKeyboardDidHide != null) {\n this._subscriptionKeyboardDidHide.remove();\n }\n\n if (this._scrollAnimatedValueAttachment) {\n this._scrollAnimatedValueAttachment.detach();\n }\n }\n\n /**\n * Returns a reference to the underlying scroll responder, which supports\n * operations like `scrollTo`. All ScrollView-like components should\n * implement this method so that they can be composed while providing access\n * to the underlying scroll responder's methods.\n */\n getScrollResponder: () => ScrollResponderType = () => {\n // $FlowFixMe[unclear-type]\n return ((this: any): ScrollResponderType);\n };\n\n getScrollableNode: () => ?number = () => {\n return findNodeHandle(this._scrollView.nativeInstance);\n };\n\n getInnerViewNode: () => ?number = () => {\n return findNodeHandle(this._innerView.nativeInstance);\n };\n\n getInnerViewRef: () => InnerViewInstance | null = () => {\n return this._innerView.nativeInstance;\n };\n\n getNativeScrollRef: () => NativeScrollViewInstance | null = () => {\n return this._scrollView.nativeInstance;\n };\n\n /**\n * Scrolls to a given x, y offset, either immediately or with a smooth animation.\n *\n * Example:\n *\n * `scrollTo({x: 0, y: 0, animated: true})`\n *\n * Note: The weird function signature is due to the fact that, for historical reasons,\n * the function also accepts separate arguments as an alternative to the options object.\n * This is deprecated due to ambiguity (y before x), and SHOULD NOT BE USED.\n */\n scrollTo: (\n options?:\n | {\n x?: number,\n y?: number,\n animated?: boolean,\n ...\n }\n | number,\n deprecatedX?: number,\n deprecatedAnimated?: boolean,\n ) => void = (\n options?:\n | {\n x?: number,\n y?: number,\n animated?: boolean,\n ...\n }\n | number,\n deprecatedX?: number,\n deprecatedAnimated?: boolean,\n ) => {\n let x, y, animated;\n if (typeof options === 'number') {\n console.warn(\n '`scrollTo(y, x, animated)` is deprecated. Use `scrollTo({x: 5, y: 5, ' +\n 'animated: true})` instead.',\n );\n y = options;\n x = deprecatedX;\n animated = deprecatedAnimated;\n } else if (options) {\n y = options.y;\n x = options.x;\n animated = options.animated;\n }\n if (this._scrollView.nativeInstance == null) {\n return;\n }\n Commands.scrollTo(\n this._scrollView.nativeInstance,\n x || 0,\n y || 0,\n animated !== false,\n );\n };\n\n /**\n * If this is a vertical ScrollView scrolls to the bottom.\n * If this is a horizontal ScrollView scrolls to the right.\n *\n * Use `scrollToEnd({animated: true})` for smooth animated scrolling,\n * `scrollToEnd({animated: false})` for immediate scrolling.\n * If no options are passed, `animated` defaults to true.\n */\n scrollToEnd: (options?: ?{animated?: boolean, ...}) => void = (\n options?: ?{animated?: boolean, ...},\n ) => {\n // Default to true\n const animated = (options && options.animated) !== false;\n if (this._scrollView.nativeInstance == null) {\n return;\n }\n Commands.scrollToEnd(this._scrollView.nativeInstance, animated);\n };\n\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n flashScrollIndicators: () => void = () => {\n if (this._scrollView.nativeInstance == null) {\n return;\n }\n Commands.flashScrollIndicators(this._scrollView.nativeInstance);\n };\n\n /**\n * This method should be used as the callback to onFocus in a TextInputs'\n * parent view. Note that any module using this mixin needs to return\n * the parent view's ref in getScrollViewRef() in order to use this method.\n * @param {number} nodeHandle The TextInput node handle\n * @param {number} additionalOffset The scroll view's bottom \"contentInset\".\n * Default is 0.\n * @param {bool} preventNegativeScrolling Whether to allow pulling the content\n * down to make it meet the keyboard's top. Default is false.\n */\n scrollResponderScrollNativeHandleToKeyboard: (\n nodeHandle: number | React.ElementRef>,\n additionalOffset?: number,\n preventNegativeScrollOffset?: boolean,\n ) => void = (\n nodeHandle: number | React.ElementRef>,\n additionalOffset?: number,\n preventNegativeScrollOffset?: boolean,\n ) => {\n this._additionalScrollOffset = additionalOffset || 0;\n this._preventNegativeScrollOffset = !!preventNegativeScrollOffset;\n\n if (this._innerView.nativeInstance == null) {\n return;\n }\n\n if (typeof nodeHandle === 'number') {\n UIManager.measureLayout(\n nodeHandle,\n nullthrows(findNodeHandle(this)),\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._textInputFocusError,\n this._inputMeasureAndScrollToKeyboard,\n );\n } else {\n nodeHandle.measureLayout(\n this._innerView.nativeInstance,\n this._inputMeasureAndScrollToKeyboard,\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._textInputFocusError,\n );\n }\n };\n\n /**\n * A helper function to zoom to a specific rect in the scrollview. The argument has the shape\n * {x: number; y: number; width: number; height: number; animated: boolean = true}\n *\n * @platform ios\n */\n scrollResponderZoomTo: (\n rect: {|\n x: number,\n y: number,\n width: number,\n height: number,\n animated?: boolean,\n |},\n animated?: boolean, // deprecated, put this inside the rect argument instead\n ) => void = (\n rect: {|\n x: number,\n y: number,\n width: number,\n height: number,\n animated?: boolean,\n |},\n animated?: boolean, // deprecated, put this inside the rect argument instead\n ) => {\n invariant(Platform.OS === 'ios', 'zoomToRect is not implemented');\n if ('animated' in rect) {\n this._animated = rect.animated;\n delete rect.animated;\n } else if (typeof animated !== 'undefined') {\n console.warn(\n '`scrollResponderZoomTo` `animated` argument is deprecated. Use `options.animated` instead',\n );\n }\n\n if (this._scrollView.nativeInstance == null) {\n return;\n }\n Commands.zoomToRect(\n this._scrollView.nativeInstance,\n rect,\n animated !== false,\n );\n };\n\n _textInputFocusError() {\n console.warn('Error measuring text field.');\n }\n\n /**\n * The calculations performed here assume the scroll view takes up the entire\n * screen - even if has some content inset. We then measure the offsets of the\n * keyboard, and compensate both for the scroll view's \"contentInset\".\n *\n * @param {number} left Position of input w.r.t. table view.\n * @param {number} top Position of input w.r.t. table view.\n * @param {number} width Width of the text input.\n * @param {number} height Height of the text input.\n */\n _inputMeasureAndScrollToKeyboard: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void = (left: number, top: number, width: number, height: number) => {\n let keyboardScreenY = Dimensions.get('window').height;\n\n const scrollTextInputIntoVisibleRect = () => {\n if (this._keyboardMetrics != null) {\n keyboardScreenY = this._keyboardMetrics.screenY;\n }\n let scrollOffsetY =\n top - keyboardScreenY + height + this._additionalScrollOffset;\n\n // By default, this can scroll with negative offset, pulling the content\n // down so that the target component's bottom meets the keyboard's top.\n // If requested otherwise, cap the offset at 0 minimum to avoid content\n // shifting down.\n if (this._preventNegativeScrollOffset === true) {\n scrollOffsetY = Math.max(0, scrollOffsetY);\n }\n this.scrollTo({x: 0, y: scrollOffsetY, animated: true});\n\n this._additionalScrollOffset = 0;\n this._preventNegativeScrollOffset = false;\n };\n\n if (this._keyboardMetrics == null) {\n // `_keyboardMetrics` is set inside `scrollResponderKeyboardWillShow` which\n // is not guaranteed to be called before `_inputMeasureAndScrollToKeyboard` but native has already scheduled it.\n // In case it was not called before `_inputMeasureAndScrollToKeyboard`, we postpone scrolling to\n // text input.\n setTimeout(() => {\n scrollTextInputIntoVisibleRect();\n }, 0);\n } else {\n scrollTextInputIntoVisibleRect();\n }\n };\n\n _getKeyForIndex(index: $FlowFixMe, childArray: $FlowFixMe): $FlowFixMe {\n const child = childArray[index];\n return child && child.key;\n }\n\n _updateAnimatedNodeAttachment() {\n if (this._scrollAnimatedValueAttachment) {\n this._scrollAnimatedValueAttachment.detach();\n }\n if (\n this.props.stickyHeaderIndices &&\n this.props.stickyHeaderIndices.length > 0\n ) {\n this._scrollAnimatedValueAttachment =\n AnimatedImplementation.attachNativeEvent(\n this._scrollView.nativeInstance,\n 'onScroll',\n [{nativeEvent: {contentOffset: {y: this._scrollAnimatedValue}}}],\n );\n }\n }\n\n _setStickyHeaderRef(\n key: string,\n ref: ?React.ElementRef,\n ) {\n if (ref) {\n this._stickyHeaderRefs.set(key, ref);\n } else {\n this._stickyHeaderRefs.delete(key);\n }\n }\n\n _onStickyHeaderLayout(index: $FlowFixMe, event: $FlowFixMe, key: $FlowFixMe) {\n const {stickyHeaderIndices} = this.props;\n if (!stickyHeaderIndices) {\n return;\n }\n const childArray = React.Children.toArray<$FlowFixMe>(this.props.children);\n if (key !== this._getKeyForIndex(index, childArray)) {\n // ignore stale layout update\n return;\n }\n\n const layoutY = event.nativeEvent.layout.y;\n this._headerLayoutYs.set(key, layoutY);\n\n const indexOfIndex = stickyHeaderIndices.indexOf(index);\n const previousHeaderIndex = stickyHeaderIndices[indexOfIndex - 1];\n if (previousHeaderIndex != null) {\n const previousHeader = this._stickyHeaderRefs.get(\n this._getKeyForIndex(previousHeaderIndex, childArray),\n );\n previousHeader &&\n previousHeader.setNextHeaderY &&\n previousHeader.setNextHeaderY(layoutY);\n }\n }\n\n _handleScroll = (e: ScrollEvent) => {\n if (__DEV__) {\n if (\n this.props.onScroll &&\n this.props.scrollEventThrottle == null &&\n Platform.OS === 'ios'\n ) {\n console.log(\n 'You specified `onScroll` on a but not ' +\n '`scrollEventThrottle`. You will only receive one event. ' +\n 'Using `16` you get all the events but be aware that it may ' +\n \"cause frame drops, use a bigger number if you don't need as \" +\n 'much precision.',\n );\n }\n }\n this._observedScrollSinceBecomingResponder = true;\n this.props.onScroll && this.props.onScroll(e);\n };\n\n _handleLayout = (e: LayoutEvent) => {\n if (this.props.invertStickyHeaders === true) {\n this.setState({layoutHeight: e.nativeEvent.layout.height});\n }\n if (this.props.onLayout) {\n this.props.onLayout(e);\n }\n };\n\n _handleContentOnLayout = (e: LayoutEvent) => {\n const {width, height} = e.nativeEvent.layout;\n this.props.onContentSizeChange &&\n this.props.onContentSizeChange(width, height);\n };\n\n _innerView: RefForwarder =\n createRefForwarder(\n (instance: InnerViewInstance): InnerViewInstance => instance,\n );\n\n _scrollView: RefForwarder<\n NativeScrollViewInstance,\n PublicScrollViewInstance,\n > = createRefForwarder(\n (nativeInstance: NativeScrollViewInstance): PublicScrollViewInstance => {\n // This is a hack. Ideally we would forwardRef to the underlying\n // host component. However, since ScrollView has it's own methods that can be\n // called as well, if we used the standard forwardRef then these\n // methods wouldn't be accessible and thus be a breaking change.\n //\n // Therefore we edit ref to include ScrollView's public methods so that\n // they are callable from the ref.\n\n // $FlowFixMe[prop-missing] - Known issue with appending custom methods.\n const publicInstance: PublicScrollViewInstance = Object.assign(\n nativeInstance,\n {\n getScrollResponder: this.getScrollResponder,\n getScrollableNode: this.getScrollableNode,\n getInnerViewNode: this.getInnerViewNode,\n getInnerViewRef: this.getInnerViewRef,\n getNativeScrollRef: this.getNativeScrollRef,\n scrollTo: this.scrollTo,\n scrollToEnd: this.scrollToEnd,\n flashScrollIndicators: this.flashScrollIndicators,\n scrollResponderZoomTo: this.scrollResponderZoomTo,\n scrollResponderScrollNativeHandleToKeyboard:\n this.scrollResponderScrollNativeHandleToKeyboard,\n },\n );\n\n return publicInstance;\n },\n );\n\n /**\n * Warning, this may be called several times for a single keyboard opening.\n * It's best to store the information in this method and then take any action\n * at a later point (either in `keyboardDidShow` or other).\n *\n * Here's the order that events occur in:\n * - focus\n * - willShow {startCoordinates, endCoordinates} several times\n * - didShow several times\n * - blur\n * - willHide {startCoordinates, endCoordinates} several times\n * - didHide several times\n *\n * The `ScrollResponder` module callbacks for each of these events.\n * Even though any user could have easily listened to keyboard events\n * themselves, using these `props` callbacks ensures that ordering of events\n * is consistent - and not dependent on the order that the keyboard events are\n * subscribed to. This matters when telling the scroll view to scroll to where\n * the keyboard is headed - the scroll responder better have been notified of\n * the keyboard destination before being instructed to scroll to where the\n * keyboard will be. Stick to the `ScrollResponder` callbacks, and everything\n * will work.\n *\n * WARNING: These callbacks will fire even if a keyboard is displayed in a\n * different navigation pane. Filter out the events to determine if they are\n * relevant to you. (For example, only if you receive these callbacks after\n * you had explicitly focused a node etc).\n */\n\n scrollResponderKeyboardWillShow: (e: KeyboardEvent) => void = (\n e: KeyboardEvent,\n ) => {\n this._keyboardMetrics = e.endCoordinates;\n this.props.onKeyboardWillShow && this.props.onKeyboardWillShow(e);\n };\n\n scrollResponderKeyboardWillHide: (e: KeyboardEvent) => void = (\n e: KeyboardEvent,\n ) => {\n this._keyboardMetrics = null;\n this.props.onKeyboardWillHide && this.props.onKeyboardWillHide(e);\n };\n\n scrollResponderKeyboardDidShow: (e: KeyboardEvent) => void = (\n e: KeyboardEvent,\n ) => {\n this._keyboardMetrics = e.endCoordinates;\n this.props.onKeyboardDidShow && this.props.onKeyboardDidShow(e);\n };\n\n scrollResponderKeyboardDidHide: (e: KeyboardEvent) => void = (\n e: KeyboardEvent,\n ) => {\n this._keyboardMetrics = null;\n this.props.onKeyboardDidHide && this.props.onKeyboardDidHide(e);\n };\n\n /**\n * Invoke this from an `onMomentumScrollBegin` event.\n */\n _handleMomentumScrollBegin: (e: ScrollEvent) => void = (e: ScrollEvent) => {\n this._lastMomentumScrollBeginTime = global.performance.now();\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n };\n\n /**\n * Invoke this from an `onMomentumScrollEnd` event.\n */\n _handleMomentumScrollEnd: (e: ScrollEvent) => void = (e: ScrollEvent) => {\n FrameRateLogger.endScroll();\n this._lastMomentumScrollEndTime = global.performance.now();\n this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n };\n\n /**\n * Unfortunately, `onScrollBeginDrag` also fires when *stopping* the scroll\n * animation, and there's not an easy way to distinguish a drag vs. stopping\n * momentum.\n *\n * Invoke this from an `onScrollBeginDrag` event.\n */\n _handleScrollBeginDrag: (e: ScrollEvent) => void = (e: ScrollEvent) => {\n FrameRateLogger.beginScroll(); // TODO: track all scrolls after implementing onScrollEndAnimation\n\n if (\n Platform.OS === 'android' &&\n this.props.keyboardDismissMode === 'on-drag'\n ) {\n dismissKeyboard();\n }\n\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n };\n\n /**\n * Invoke this from an `onScrollEndDrag` event.\n */\n _handleScrollEndDrag: (e: ScrollEvent) => void = (e: ScrollEvent) => {\n const {velocity} = e.nativeEvent;\n // - If we are animating, then this is a \"drag\" that is stopping the scrollview and momentum end\n // will fire.\n // - If velocity is non-zero, then the interaction will stop when momentum scroll ends or\n // another drag starts and ends.\n // - If we don't get velocity, better to stop the interaction twice than not stop it.\n if (\n !this._isAnimating() &&\n (!velocity || (velocity.x === 0 && velocity.y === 0))\n ) {\n FrameRateLogger.endScroll();\n }\n this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n };\n\n /**\n * A helper function for this class that lets us quickly determine if the\n * view is currently animating. This is particularly useful to know when\n * a touch has just started or ended.\n */\n _isAnimating: () => boolean = () => {\n const now = global.performance.now();\n const timeSinceLastMomentumScrollEnd =\n now - this._lastMomentumScrollEndTime;\n const isAnimating =\n timeSinceLastMomentumScrollEnd < IS_ANIMATING_TOUCH_START_THRESHOLD_MS ||\n this._lastMomentumScrollEndTime < this._lastMomentumScrollBeginTime;\n return isAnimating;\n };\n\n /**\n * Invoke this from an `onResponderGrant` event.\n */\n _handleResponderGrant: (e: PressEvent) => void = (e: PressEvent) => {\n this._observedScrollSinceBecomingResponder = false;\n this.props.onResponderGrant && this.props.onResponderGrant(e);\n this._becameResponderWhileAnimating = this._isAnimating();\n };\n\n /**\n * Invoke this from an `onResponderReject` event.\n *\n * Some other element is not yielding its role as responder. Normally, we'd\n * just disable the `UIScrollView`, but a touch has already began on it, the\n * `UIScrollView` will not accept being disabled after that. The easiest\n * solution for now is to accept the limitation of disallowing this\n * altogether. To improve this, find a way to disable the `UIScrollView` after\n * a touch has already started.\n */\n _handleResponderReject: () => void = () => {};\n\n /**\n * Invoke this from an `onResponderRelease` event.\n */\n _handleResponderRelease: (e: PressEvent) => void = (e: PressEvent) => {\n this._isTouching = e.nativeEvent.touches.length !== 0;\n this.props.onResponderRelease && this.props.onResponderRelease(e);\n\n if (typeof e.target === 'number') {\n if (__DEV__) {\n console.error(\n 'Did not expect event target to be a number. Should have been a native component',\n );\n }\n\n return;\n }\n\n // By default scroll views will unfocus a textField\n // if another touch occurs outside of it\n const currentlyFocusedTextInput = TextInputState.currentlyFocusedInput();\n if (\n currentlyFocusedTextInput != null &&\n this.props.keyboardShouldPersistTaps !== true &&\n this.props.keyboardShouldPersistTaps !== 'always' &&\n this._keyboardIsDismissible() &&\n e.target !== currentlyFocusedTextInput &&\n !this._observedScrollSinceBecomingResponder &&\n !this._becameResponderWhileAnimating\n ) {\n TextInputState.blurTextInput(currentlyFocusedTextInput);\n }\n };\n\n /**\n * We will allow the scroll view to give up its lock iff it acquired the lock\n * during an animation. This is a very useful default that happens to satisfy\n * many common user experiences.\n *\n * - Stop a scroll on the left edge, then turn that into an outer view's\n * backswipe.\n * - Stop a scroll mid-bounce at the top, continue pulling to have the outer\n * view dismiss.\n * - However, without catching the scroll view mid-bounce (while it is\n * motionless), if you drag far enough for the scroll view to become\n * responder (and therefore drag the scroll view a bit), any backswipe\n * navigation of a swipe gesture higher in the view hierarchy, should be\n * rejected.\n */\n _handleResponderTerminationRequest: () => boolean = () => {\n return !this._observedScrollSinceBecomingResponder;\n };\n\n /**\n * Invoke this from an `onScroll` event.\n */\n _handleScrollShouldSetResponder: () => boolean = () => {\n // Allow any event touch pass through if the default pan responder is disabled\n if (this.props.disableScrollViewPanResponder === true) {\n return false;\n }\n return this._isTouching;\n };\n\n /**\n * Merely touch starting is not sufficient for a scroll view to become the\n * responder. Being the \"responder\" means that the very next touch move/end\n * event will result in an action/movement.\n *\n * Invoke this from an `onStartShouldSetResponder` event.\n *\n * `onStartShouldSetResponder` is used when the next move/end will trigger\n * some UI movement/action, but when you want to yield priority to views\n * nested inside of the view.\n *\n * There may be some cases where scroll views actually should return `true`\n * from `onStartShouldSetResponder`: Any time we are detecting a standard tap\n * that gives priority to nested views.\n *\n * - If a single tap on the scroll view triggers an action such as\n * recentering a map style view yet wants to give priority to interaction\n * views inside (such as dropped pins or labels), then we would return true\n * from this method when there is a single touch.\n *\n * - Similar to the previous case, if a two finger \"tap\" should trigger a\n * zoom, we would check the `touches` count, and if `>= 2`, we would return\n * true.\n *\n */\n _handleStartShouldSetResponder: (e: PressEvent) => boolean = (\n e: PressEvent,\n ) => {\n // Allow any event touch pass through if the default pan responder is disabled\n if (this.props.disableScrollViewPanResponder === true) {\n return false;\n }\n\n const currentlyFocusedInput = TextInputState.currentlyFocusedInput();\n if (\n this.props.keyboardShouldPersistTaps === 'handled' &&\n this._keyboardIsDismissible() &&\n e.target !== currentlyFocusedInput\n ) {\n return true;\n }\n return false;\n };\n\n /**\n * There are times when the scroll view wants to become the responder\n * (meaning respond to the next immediate `touchStart/touchEnd`), in a way\n * that *doesn't* give priority to nested views (hence the capture phase):\n *\n * - Currently animating.\n * - Tapping anywhere that is not a text input, while the keyboard is\n * up (which should dismiss the keyboard).\n *\n * Invoke this from an `onStartShouldSetResponderCapture` event.\n */\n _handleStartShouldSetResponderCapture: (e: PressEvent) => boolean = (\n e: PressEvent,\n ) => {\n // The scroll view should receive taps instead of its descendants if:\n // * it is already animating/decelerating\n if (this._isAnimating()) {\n return true;\n }\n\n // Allow any event touch pass through if the default pan responder is disabled\n if (this.props.disableScrollViewPanResponder === true) {\n return false;\n }\n\n // * the keyboard is up, keyboardShouldPersistTaps is 'never' (the default),\n // and a new touch starts with a non-textinput target (in which case the\n // first tap should be sent to the scroll view and dismiss the keyboard,\n // then the second tap goes to the actual interior view)\n const {keyboardShouldPersistTaps} = this.props;\n const keyboardNeverPersistTaps =\n !keyboardShouldPersistTaps || keyboardShouldPersistTaps === 'never';\n\n if (typeof e.target === 'number') {\n if (__DEV__) {\n console.error(\n 'Did not expect event target to be a number. Should have been a native component',\n );\n }\n\n return false;\n }\n\n // Let presses through if the soft keyboard is detached from the viewport\n if (this._softKeyboardIsDetached()) {\n return false;\n }\n\n if (\n keyboardNeverPersistTaps &&\n this._keyboardIsDismissible() &&\n e.target != null &&\n // $FlowFixMe[incompatible-call]\n !TextInputState.isTextInput(e.target)\n ) {\n return true;\n }\n\n return false;\n };\n\n /**\n * Do we consider there to be a dismissible soft-keyboard open?\n */\n _keyboardIsDismissible: () => boolean = () => {\n const currentlyFocusedInput = TextInputState.currentlyFocusedInput();\n\n // We cannot dismiss the keyboard without an input to blur, even if a soft\n // keyboard is open (e.g. when keyboard is open due to a native component\n // not participating in TextInputState). It's also possible that the\n // currently focused input isn't a TextInput (such as by calling ref.focus\n // on a non-TextInput).\n const hasFocusedTextInput =\n currentlyFocusedInput != null &&\n TextInputState.isTextInput(currentlyFocusedInput);\n\n // Even if an input is focused, we may not have a keyboard to dismiss. E.g\n // when using a physical keyboard. Ensure we have an event for an opened\n // keyboard.\n const softKeyboardMayBeOpen =\n this._keyboardMetrics != null || this._keyboardEventsAreUnreliable();\n\n return hasFocusedTextInput && softKeyboardMayBeOpen;\n };\n\n /**\n * Whether an open soft keyboard is present which does not overlap the\n * viewport. E.g. for a VR soft-keyboard which is detached from the app\n * viewport.\n */\n _softKeyboardIsDetached: () => boolean = () => {\n return this._keyboardMetrics != null && this._keyboardMetrics.height === 0;\n };\n\n _keyboardEventsAreUnreliable: () => boolean = () => {\n // Android versions prior to API 30 rely on observing layout changes when\n // `android:windowSoftInputMode` is set to `adjustResize` or `adjustPan`.\n return Platform.OS === 'android' && Platform.Version < 30;\n };\n\n /**\n * Invoke this from an `onTouchEnd` event.\n *\n * @param {PressEvent} e Event.\n */\n _handleTouchEnd: (e: PressEvent) => void = (e: PressEvent) => {\n const nativeEvent = e.nativeEvent;\n this._isTouching = nativeEvent.touches.length !== 0;\n\n const {keyboardShouldPersistTaps} = this.props;\n const keyboardNeverPersistsTaps =\n !keyboardShouldPersistTaps || keyboardShouldPersistTaps === 'never';\n\n // Dismiss the keyboard now if we didn't become responder in capture phase\n // to eat presses, but still want to dismiss on interaction.\n // Don't do anything if the target of the touch event is the current input.\n const currentlyFocusedTextInput = TextInputState.currentlyFocusedInput();\n if (\n currentlyFocusedTextInput != null &&\n e.target !== currentlyFocusedTextInput &&\n this._softKeyboardIsDetached() &&\n this._keyboardIsDismissible() &&\n keyboardNeverPersistsTaps\n ) {\n TextInputState.blurTextInput(currentlyFocusedTextInput);\n }\n\n this.props.onTouchEnd && this.props.onTouchEnd(e);\n };\n\n /**\n * Invoke this from an `onTouchCancel` event.\n *\n * @param {PressEvent} e Event.\n */\n _handleTouchCancel: (e: PressEvent) => void = (e: PressEvent) => {\n this._isTouching = false;\n this.props.onTouchCancel && this.props.onTouchCancel(e);\n };\n\n /**\n * Invoke this from an `onTouchStart` event.\n *\n * Since we know that the `SimpleEventPlugin` occurs later in the plugin\n * order, after `ResponderEventPlugin`, we can detect that we were *not*\n * permitted to be the responder (presumably because a contained view became\n * responder). The `onResponderReject` won't fire in that case - it only\n * fires when a *current* responder rejects our request.\n *\n * @param {PressEvent} e Touch Start event.\n */\n _handleTouchStart: (e: PressEvent) => void = (e: PressEvent) => {\n this._isTouching = true;\n this.props.onTouchStart && this.props.onTouchStart(e);\n };\n\n /**\n * Invoke this from an `onTouchMove` event.\n *\n * Since we know that the `SimpleEventPlugin` occurs later in the plugin\n * order, after `ResponderEventPlugin`, we can detect that we were *not*\n * permitted to be the responder (presumably because a contained view became\n * responder). The `onResponderReject` won't fire in that case - it only\n * fires when a *current* responder rejects our request.\n *\n * @param {PressEvent} e Touch Start event.\n */\n _handleTouchMove: (e: PressEvent) => void = (e: PressEvent) => {\n this.props.onTouchMove && this.props.onTouchMove(e);\n };\n\n render(): React.Node | React.Element {\n const [NativeDirectionalScrollView, NativeDirectionalScrollContentView] =\n this.props.horizontal === true\n ? NativeHorizontalScrollViewTuple\n : NativeVerticalScrollViewTuple;\n\n const contentContainerStyle = [\n this.props.horizontal === true && styles.contentContainerHorizontal,\n this.props.contentContainerStyle,\n ];\n if (__DEV__ && this.props.style !== undefined) {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n const style = flattenStyle(this.props.style);\n const childLayoutProps = ['alignItems', 'justifyContent'].filter(\n prop => style && style[prop] !== undefined,\n );\n invariant(\n childLayoutProps.length === 0,\n 'ScrollView child layout (' +\n JSON.stringify(childLayoutProps) +\n ') must be applied through the contentContainerStyle prop.',\n );\n }\n\n const contentSizeChangeProps =\n this.props.onContentSizeChange == null\n ? null\n : {\n onLayout: this._handleContentOnLayout,\n };\n\n const {stickyHeaderIndices} = this.props;\n let children = this.props.children;\n\n if (stickyHeaderIndices != null && stickyHeaderIndices.length > 0) {\n const childArray = React.Children.toArray<$FlowFixMe>(\n this.props.children,\n );\n\n children = childArray.map((child, index) => {\n const indexOfIndex = child ? stickyHeaderIndices.indexOf(index) : -1;\n if (indexOfIndex > -1) {\n const key = child.key;\n const nextIndex = stickyHeaderIndices[indexOfIndex + 1];\n const StickyHeaderComponent =\n this.props.StickyHeaderComponent || ScrollViewStickyHeader;\n return (\n this._setStickyHeaderRef(key, ref)}\n nextHeaderLayoutY={this._headerLayoutYs.get(\n this._getKeyForIndex(nextIndex, childArray),\n )}\n onLayout={event => this._onStickyHeaderLayout(index, event, key)}\n scrollAnimatedValue={this._scrollAnimatedValue}\n inverted={this.props.invertStickyHeaders}\n hiddenOnScroll={this.props.stickyHeaderHiddenOnScroll}\n scrollViewHeight={this.state.layoutHeight}>\n {child}\n \n );\n } else {\n return child;\n }\n });\n }\n children = (\n \n {children}\n \n );\n\n const hasStickyHeaders =\n Array.isArray(stickyHeaderIndices) && stickyHeaderIndices.length > 0;\n\n const contentContainer = (\n \n {children}\n \n );\n\n const alwaysBounceHorizontal =\n this.props.alwaysBounceHorizontal !== undefined\n ? this.props.alwaysBounceHorizontal\n : this.props.horizontal;\n\n const alwaysBounceVertical =\n this.props.alwaysBounceVertical !== undefined\n ? this.props.alwaysBounceVertical\n : !this.props.horizontal;\n\n const baseStyle =\n this.props.horizontal === true\n ? styles.baseHorizontal\n : styles.baseVertical;\n const props = {\n ...this.props,\n alwaysBounceHorizontal,\n alwaysBounceVertical,\n style: StyleSheet.compose(baseStyle, this.props.style),\n // Override the onContentSizeChange from props, since this event can\n // bubble up from TextInputs\n onContentSizeChange: null,\n onLayout: this._handleLayout,\n onMomentumScrollBegin: this._handleMomentumScrollBegin,\n onMomentumScrollEnd: this._handleMomentumScrollEnd,\n onResponderGrant: this._handleResponderGrant,\n onResponderReject: this._handleResponderReject,\n onResponderRelease: this._handleResponderRelease,\n onResponderTerminationRequest: this._handleResponderTerminationRequest,\n onScrollBeginDrag: this._handleScrollBeginDrag,\n onScrollEndDrag: this._handleScrollEndDrag,\n onScrollShouldSetResponder: this._handleScrollShouldSetResponder,\n onStartShouldSetResponder: this._handleStartShouldSetResponder,\n onStartShouldSetResponderCapture:\n this._handleStartShouldSetResponderCapture,\n onTouchEnd: this._handleTouchEnd,\n onTouchMove: this._handleTouchMove,\n onTouchStart: this._handleTouchStart,\n onTouchCancel: this._handleTouchCancel,\n onScroll: this._handleScroll,\n scrollEventThrottle: hasStickyHeaders\n ? 1\n : this.props.scrollEventThrottle,\n sendMomentumEvents:\n this.props.onMomentumScrollBegin || this.props.onMomentumScrollEnd\n ? true\n : false,\n // default to true\n snapToStart: this.props.snapToStart !== false,\n // default to true\n snapToEnd: this.props.snapToEnd !== false,\n // pagingEnabled is overridden by snapToInterval / snapToOffsets\n pagingEnabled: Platform.select({\n // on iOS, pagingEnabled must be set to false to have snapToInterval / snapToOffsets work\n ios:\n this.props.pagingEnabled === true &&\n this.props.snapToInterval == null &&\n this.props.snapToOffsets == null,\n // on Android, pagingEnabled must be set to true to have snapToInterval / snapToOffsets work\n android:\n this.props.pagingEnabled === true ||\n this.props.snapToInterval != null ||\n this.props.snapToOffsets != null,\n }),\n };\n\n const {decelerationRate} = this.props;\n if (decelerationRate != null) {\n props.decelerationRate = processDecelerationRate(decelerationRate);\n }\n\n const refreshControl = this.props.refreshControl;\n const scrollViewRef = this._scrollView.getForwardingRef(\n this.props.scrollViewRef,\n );\n\n if (refreshControl) {\n if (Platform.OS === 'ios') {\n // On iOS the RefreshControl is a child of the ScrollView.\n return (\n \n {refreshControl}\n {contentContainer}\n \n );\n } else if (Platform.OS === 'android') {\n // On Android wrap the ScrollView with a AndroidSwipeRefreshLayout.\n // Since the ScrollView is wrapped add the style props to the\n // AndroidSwipeRefreshLayout and use flex: 1 for the ScrollView.\n // Note: we should split props.style on the inner and outer props\n // however, the ScrollView still needs the baseStyle to be scrollable\n // $FlowFixMe[underconstrained-implicit-instantiation]\n const {outer, inner} = splitLayoutProps(flattenStyle(props.style));\n return React.cloneElement(\n refreshControl,\n {style: StyleSheet.compose(baseStyle, outer)},\n \n {contentContainer}\n ,\n );\n }\n }\n return (\n \n {contentContainer}\n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n baseVertical: {\n flexGrow: 1,\n flexShrink: 1,\n flexDirection: 'column',\n overflow: 'scroll',\n },\n baseHorizontal: {\n flexGrow: 1,\n flexShrink: 1,\n flexDirection: 'row',\n overflow: 'scroll',\n },\n contentContainerHorizontal: {\n flexDirection: 'row',\n },\n});\n\ntype ForwardedRef = {current: null | T, ...} | ((null | T) => mixed);\n\ntype RefForwarder = {\n getForwardingRef: (\n ?ForwardedRef,\n ) => (TNativeInstance | null) => void,\n nativeInstance: TNativeInstance | null,\n publicInstance: TPublicInstance | null,\n};\n\n/**\n * Helper function that should be replaced with `useCallback` and `useMergeRefs`\n * once `ScrollView` is reimplemented as a functional component.\n */\nfunction createRefForwarder(\n mutator: TNativeInstance => TPublicInstance,\n): RefForwarder {\n const state: RefForwarder = {\n getForwardingRef: memoize(forwardedRef => {\n return (nativeInstance: TNativeInstance | null): void => {\n const publicInstance =\n nativeInstance == null ? null : mutator(nativeInstance);\n\n state.nativeInstance = nativeInstance;\n state.publicInstance = publicInstance;\n\n if (forwardedRef != null) {\n if (typeof forwardedRef === 'function') {\n forwardedRef(publicInstance);\n } else {\n forwardedRef.current = publicInstance;\n }\n }\n };\n }),\n nativeInstance: null,\n publicInstance: null,\n };\n\n return state;\n}\n\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\nfunction Wrapper(props, ref: (mixed => mixed) | {current: mixed, ...}) {\n return ;\n}\nWrapper.displayName = 'ScrollView';\nconst ForwardedScrollView = React.forwardRef(Wrapper);\n\n// $FlowFixMe[prop-missing] Add static context to ForwardedScrollView\nForwardedScrollView.Context = ScrollViewContext;\n\nForwardedScrollView.displayName = 'ScrollView';\n\nmodule.exports = ((ForwardedScrollView: $FlowFixMe): React.AbstractComponent<\n React.ElementConfig,\n PublicScrollViewInstance,\n> &\n ScrollViewComponentStatics);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport NativeFrameRateLogger from './NativeFrameRateLogger';\n\nconst invariant = require('invariant');\n\n/**\n * Flow API for native FrameRateLogger module. If the native module is not installed, function calls\n * are just no-ops.\n *\n * Typical behavior is that `setContext` is called when a new screen is loaded (e.g. via a\n * navigation integration), and then `beginScroll` is called by `ScrollResponder` at which point the\n * native module then begins tracking frame drops. When `ScrollResponder` calls `endScroll`, the\n * native module gathers up all it's frame drop data and reports it via an analytics pipeline for\n * analysis.\n *\n * Note that `beginScroll` may be called multiple times by `ScrollResponder` - unclear if that's a\n * bug, but the native module should be robust to that.\n *\n * In the future we may add support for tracking frame drops in other types of interactions beyond\n * scrolling.\n */\nconst FrameRateLogger = {\n /**\n * Enable `debug` to see local logs of what's going on. `reportStackTraces` will grab stack traces\n * during UI thread stalls and upload them if the native module supports it.\n */\n setGlobalOptions: function (options: {\n debug?: boolean,\n reportStackTraces?: boolean,\n ...\n }) {\n if (options.debug !== undefined) {\n invariant(\n NativeFrameRateLogger,\n 'Trying to debug FrameRateLogger without the native module!',\n );\n }\n if (NativeFrameRateLogger) {\n // Needs to clone the object first to avoid modifying the argument.\n const optionsClone = {\n debug: !!options.debug,\n reportStackTraces: !!options.reportStackTraces,\n };\n NativeFrameRateLogger.setGlobalOptions(optionsClone);\n }\n },\n\n /**\n * Must call `setContext` before any events can be properly tracked, which is done automatically\n * in `AppRegistry`, but navigation is also a common place to hook in.\n */\n setContext: function (context: string) {\n NativeFrameRateLogger && NativeFrameRateLogger.setContext(context);\n },\n\n /**\n * Called in `ScrollResponder` so any component that uses that module will handle this\n * automatically.\n */\n beginScroll() {\n NativeFrameRateLogger && NativeFrameRateLogger.beginScroll();\n },\n\n /**\n * Called in `ScrollResponder` so any component that uses that module will handle this\n * automatically.\n */\n endScroll() {\n NativeFrameRateLogger && NativeFrameRateLogger.endScroll();\n },\n};\n\nmodule.exports = FrameRateLogger;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +setGlobalOptions: (options: {|\n +debug?: ?boolean,\n +reportStackTraces?: ?boolean,\n |}) => void;\n +setContext: (context: string) => void;\n +beginScroll: () => void;\n +endScroll: () => void;\n}\n\nexport default (TurboModuleRegistry.get('FrameRateLogger'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {____ViewStyle_Internal} from './StyleSheetTypes';\n\nexport default function splitLayoutProps(props: ?____ViewStyle_Internal): {\n outer: ?____ViewStyle_Internal,\n inner: ?____ViewStyle_Internal,\n} {\n let outer: ?____ViewStyle_Internal = null;\n let inner: ?____ViewStyle_Internal = null;\n\n if (props != null) {\n // $FlowIgnore[incompatible-exact] Will contain a subset of keys from `props`.\n outer = {};\n // $FlowIgnore[incompatible-exact] Will contain a subset of keys from `props`.\n inner = {};\n\n for (const prop of Object.keys(props)) {\n switch (prop) {\n case 'margin':\n case 'marginHorizontal':\n case 'marginVertical':\n case 'marginBottom':\n case 'marginTop':\n case 'marginLeft':\n case 'marginRight':\n case 'flex':\n case 'flexGrow':\n case 'flexShrink':\n case 'flexBasis':\n case 'alignSelf':\n case 'height':\n case 'minHeight':\n case 'maxHeight':\n case 'width':\n case 'minWidth':\n case 'maxWidth':\n case 'position':\n case 'left':\n case 'right':\n case 'bottom':\n case 'top':\n case 'transform':\n case 'rowGap':\n case 'columnGap':\n case 'gap':\n // $FlowFixMe[cannot-write]\n // $FlowFixMe[incompatible-use]\n // $FlowFixMe[prop-missing]\n outer[prop] = props[prop];\n break;\n default:\n // $FlowFixMe[cannot-write]\n // $FlowFixMe[incompatible-use]\n // $FlowFixMe[prop-missing]\n inner[prop] = props[prop];\n break;\n }\n }\n }\n\n return {outer, inner};\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n// This function dismisses the currently-open keyboard, if any.\n\n'use strict';\n\nconst TextInputState = require('../Components/TextInput/TextInputState');\n\nfunction dismissKeyboard() {\n TextInputState.blurTextInput(TextInputState.currentlyFocusedInput());\n}\n\nmodule.exports = dismissKeyboard;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {EventSubscription} from '../../vendor/emitter/EventEmitter';\n\nimport NativeEventEmitter from '../../EventEmitter/NativeEventEmitter';\nimport LayoutAnimation from '../../LayoutAnimation/LayoutAnimation';\nimport dismissKeyboard from '../../Utilities/dismissKeyboard';\nimport Platform from '../../Utilities/Platform';\nimport NativeKeyboardObserver from './NativeKeyboardObserver';\n\nexport type KeyboardEventName = $Keys;\n\nexport type KeyboardEventEasing =\n | 'easeIn'\n | 'easeInEaseOut'\n | 'easeOut'\n | 'linear'\n | 'keyboard';\n\nexport type KeyboardMetrics = $ReadOnly<{|\n screenX: number,\n screenY: number,\n width: number,\n height: number,\n|}>;\n\nexport type KeyboardEvent = AndroidKeyboardEvent | IOSKeyboardEvent;\n\ntype BaseKeyboardEvent = {|\n duration: number,\n easing: KeyboardEventEasing,\n endCoordinates: KeyboardMetrics,\n|};\n\nexport type AndroidKeyboardEvent = $ReadOnly<{|\n ...BaseKeyboardEvent,\n duration: 0,\n easing: 'keyboard',\n|}>;\n\nexport type IOSKeyboardEvent = $ReadOnly<{|\n ...BaseKeyboardEvent,\n startCoordinates: KeyboardMetrics,\n isEventFromThisApp: boolean,\n|}>;\n\ntype KeyboardEventDefinitions = {\n keyboardWillShow: [KeyboardEvent],\n keyboardDidShow: [KeyboardEvent],\n keyboardWillHide: [KeyboardEvent],\n keyboardDidHide: [KeyboardEvent],\n keyboardWillChangeFrame: [KeyboardEvent],\n keyboardDidChangeFrame: [KeyboardEvent],\n};\n\n/**\n * `Keyboard` module to control keyboard events.\n *\n * ### Usage\n *\n * The Keyboard module allows you to listen for native events and react to them, as\n * well as make changes to the keyboard, like dismissing it.\n *\n *```\n * import React, { Component } from 'react';\n * import { Keyboard, TextInput } from 'react-native';\n *\n * class Example extends Component {\n * componentWillMount () {\n * this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this._keyboardDidShow);\n * this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this._keyboardDidHide);\n * }\n *\n * componentWillUnmount () {\n * this.keyboardDidShowListener.remove();\n * this.keyboardDidHideListener.remove();\n * }\n *\n * _keyboardDidShow () {\n * alert('Keyboard Shown');\n * }\n *\n * _keyboardDidHide () {\n * alert('Keyboard Hidden');\n * }\n *\n * render() {\n * return (\n * \n * );\n * }\n * }\n *```\n */\n\nclass Keyboard {\n _currentlyShowing: ?KeyboardEvent;\n\n _emitter: NativeEventEmitter =\n new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeKeyboardObserver,\n );\n\n constructor() {\n this.addListener('keyboardDidShow', ev => {\n this._currentlyShowing = ev;\n });\n this.addListener('keyboardDidHide', _ev => {\n this._currentlyShowing = null;\n });\n }\n\n /**\n * The `addListener` function connects a JavaScript function to an identified native\n * keyboard notification event.\n *\n * This function then returns the reference to the listener.\n *\n * @param {string} eventName The `nativeEvent` is the string that identifies the event you're listening for. This\n *can be any of the following:\n *\n * - `keyboardWillShow`\n * - `keyboardDidShow`\n * - `keyboardWillHide`\n * - `keyboardDidHide`\n * - `keyboardWillChangeFrame`\n * - `keyboardDidChangeFrame`\n *\n * Android versions prior to API 30 rely on observing layout changes when\n * `android:windowSoftInputMode` is set to `adjustResize` or `adjustPan`.\n *\n * `keyboardWillShow` as well as `keyboardWillHide` are not available on Android since there is\n * no native corresponding event.\n *\n * @param {function} callback function to be called when the event fires.\n */\n addListener>(\n eventType: K,\n listener: (...$ElementType) => mixed,\n context?: mixed,\n ): EventSubscription {\n return this._emitter.addListener(eventType, listener);\n }\n\n /**\n * Removes all listeners for a specific event type.\n *\n * @param {string} eventType The native event string listeners are watching which will be removed.\n */\n removeAllListeners>(eventType: ?K): void {\n this._emitter.removeAllListeners(eventType);\n }\n\n /**\n * Dismisses the active keyboard and removes focus.\n */\n dismiss(): void {\n dismissKeyboard();\n }\n\n /**\n * Whether the keyboard is last known to be visible.\n */\n isVisible(): boolean {\n return !!this._currentlyShowing;\n }\n\n /**\n * Return the metrics of the soft-keyboard if visible.\n */\n metrics(): ?KeyboardMetrics {\n return this._currentlyShowing?.endCoordinates;\n }\n\n /**\n * Useful for syncing TextInput (or other keyboard accessory view) size of\n * position changes with keyboard movements.\n */\n scheduleLayoutAnimation(event: KeyboardEvent): void {\n const {duration, easing} = event;\n if (duration != null && duration !== 0) {\n LayoutAnimation.configureNext({\n duration: duration,\n update: {\n duration: duration,\n type: (easing != null && LayoutAnimation.Types[easing]) || 'keyboard',\n },\n });\n }\n }\n}\n\nmodule.exports = (new Keyboard(): Keyboard);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nimport type {Spec as FabricUIManagerSpec} from '../ReactNative/FabricUIManager';\nimport type {\n LayoutAnimationConfig as LayoutAnimationConfig_,\n LayoutAnimationProperty,\n LayoutAnimationType,\n} from '../Renderer/shims/ReactNativeTypes';\n\nimport {getFabricUIManager} from '../ReactNative/FabricUIManager';\nimport ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';\nimport Platform from '../Utilities/Platform';\n\nconst UIManager = require('../ReactNative/UIManager');\n\n// Reexport type\nexport type LayoutAnimationConfig = LayoutAnimationConfig_;\n\ntype OnAnimationDidEndCallback = () => void;\ntype OnAnimationDidFailCallback = () => void;\n\nlet isLayoutAnimationEnabled: boolean =\n ReactNativeFeatureFlags.isLayoutAnimationEnabled();\n\nfunction setEnabled(value: boolean) {\n isLayoutAnimationEnabled = isLayoutAnimationEnabled;\n}\n\n/**\n * Configures the next commit to be animated.\n *\n * onAnimationDidEnd is guaranteed to be called when the animation completes.\n * onAnimationDidFail is *never* called in the classic, pre-Fabric renderer,\n * and never has been. In the new renderer (Fabric) it is called only if configuration\n * parsing fails.\n */\nfunction configureNext(\n config: LayoutAnimationConfig,\n onAnimationDidEnd?: OnAnimationDidEndCallback,\n onAnimationDidFail?: OnAnimationDidFailCallback,\n) {\n if (Platform.isTesting) {\n return;\n }\n\n if (!isLayoutAnimationEnabled) {\n return;\n }\n\n // Since LayoutAnimations may possibly be disabled for now on iOS (Fabric),\n // or Android (non-Fabric) we race a setTimeout with animation completion,\n // in case onComplete is never called\n // from native. Once LayoutAnimations+Fabric unconditionally ship everywhere, we can\n // delete this mechanism at least in the Fabric branch.\n let animationCompletionHasRun = false;\n const onAnimationComplete = () => {\n if (animationCompletionHasRun) {\n return;\n }\n animationCompletionHasRun = true;\n clearTimeout(raceWithAnimationId);\n onAnimationDidEnd?.();\n };\n const raceWithAnimationId = setTimeout(\n onAnimationComplete,\n (config.duration ?? 0) + 17 /* one frame + 1ms */,\n );\n\n // In Fabric, LayoutAnimations are unconditionally enabled for Android, and\n // conditionally enabled on iOS (pending fully shipping; this is a temporary state).\n const FabricUIManager = getFabricUIManager();\n if (FabricUIManager?.configureNextLayoutAnimation) {\n global?.nativeFabricUIManager?.configureNextLayoutAnimation(\n config,\n onAnimationComplete,\n onAnimationDidFail ??\n function () {} /* this will only be called if configuration parsing fails */,\n );\n return;\n }\n\n // This will only run if Fabric is *not* installed.\n // If you have Fabric + non-Fabric running in the same VM, non-Fabric LayoutAnimations\n // will not work.\n if (UIManager?.configureNextLayoutAnimation) {\n UIManager.configureNextLayoutAnimation(\n config,\n onAnimationComplete ?? function () {},\n onAnimationDidFail ??\n function () {} /* this should never be called in Non-Fabric */,\n );\n }\n}\n\nfunction create(\n duration: number,\n type: LayoutAnimationType,\n property: LayoutAnimationProperty,\n): LayoutAnimationConfig {\n return {\n duration,\n create: {type, property},\n update: {type},\n delete: {type, property},\n };\n}\n\nconst Presets = {\n easeInEaseOut: (create(\n 300,\n 'easeInEaseOut',\n 'opacity',\n ): LayoutAnimationConfig),\n linear: (create(500, 'linear', 'opacity'): LayoutAnimationConfig),\n spring: {\n duration: 700,\n create: {\n type: 'linear',\n property: 'opacity',\n },\n update: {\n type: 'spring',\n springDamping: 0.4,\n },\n delete: {\n type: 'linear',\n property: 'opacity',\n },\n },\n};\n\n/**\n * Automatically animates views to their new positions when the\n * next layout happens.\n *\n * A common way to use this API is to call it before calling `setState`.\n *\n * Note that in order to get this to work on **Android** you need to set the following flags via `UIManager`:\n *\n * UIManager.setLayoutAnimationEnabledExperimental && UIManager.setLayoutAnimationEnabledExperimental(true);\n */\nconst LayoutAnimation = {\n /**\n * Schedules an animation to happen on the next layout.\n *\n * @param config Specifies animation properties:\n *\n * - `duration` in milliseconds\n * - `create`, `AnimationConfig` for animating in new views\n * - `update`, `AnimationConfig` for animating views that have been updated\n *\n * @param onAnimationDidEnd Called when the animation finished.\n * Only supported on iOS.\n * @param onError Called on error. Only supported on iOS.\n */\n configureNext,\n /**\n * Helper for creating a config for `configureNext`.\n */\n create,\n Types: Object.freeze({\n spring: 'spring',\n linear: 'linear',\n easeInEaseOut: 'easeInEaseOut',\n easeIn: 'easeIn',\n easeOut: 'easeOut',\n keyboard: 'keyboard',\n }),\n Properties: Object.freeze({\n opacity: 'opacity',\n scaleX: 'scaleX',\n scaleY: 'scaleY',\n scaleXY: 'scaleXY',\n }),\n checkConfig(...args: Array) {\n console.error('LayoutAnimation.checkConfig(...) has been disabled.');\n },\n Presets,\n easeInEaseOut: (configureNext.bind(null, Presets.easeInEaseOut): (\n onAnimationDidEnd?: OnAnimationDidEndCallback,\n ) => void),\n linear: (configureNext.bind(null, Presets.linear): (\n onAnimationDidEnd?: OnAnimationDidEndCallback,\n ) => void),\n spring: (configureNext.bind(null, Presets.spring): (\n onAnimationDidEnd?: OnAnimationDidEndCallback,\n ) => void),\n setEnabled,\n};\n\nmodule.exports = LayoutAnimation;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.get('KeyboardObserver'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n removeClippedSubviews?: ?boolean,\n|}>;\n\ntype NativeType = HostComponent;\n\nexport default (codegenNativeComponent(\n 'AndroidHorizontalScrollContentView',\n): NativeType);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ScrollViewNativeProps as Props} from './ScrollViewNativeComponentType';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {\n uiViewClassName: 'AndroidHorizontalScrollView',\n bubblingEventTypes: {},\n directEventTypes: {},\n validAttributes: {\n decelerationRate: true,\n disableIntervalMomentum: true,\n endFillColor: {process: require('../../StyleSheet/processColor').default},\n fadingEdgeLength: true,\n nestedScrollEnabled: true,\n overScrollMode: true,\n pagingEnabled: true,\n persistentScrollbar: true,\n scrollEnabled: true,\n scrollPerfTag: true,\n sendMomentumEvents: true,\n showsHorizontalScrollIndicator: true,\n snapToAlignment: true,\n snapToEnd: true,\n snapToInterval: true,\n snapToStart: true,\n snapToOffsets: true,\n contentOffset: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderRadius: true,\n borderStyle: true,\n borderRightColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderColor: {process: require('../../StyleSheet/processColor').default},\n borderBottomColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderTopLeftRadius: true,\n borderTopColor: {process: require('../../StyleSheet/processColor').default},\n removeClippedSubviews: true,\n borderTopRightRadius: true,\n borderLeftColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n pointerEvents: true,\n },\n};\n\nconst AndroidHorizontalScrollViewNativeComponent: HostComponent =\n NativeComponentRegistry.get(\n 'AndroidHorizontalScrollView',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\nexport default AndroidHorizontalScrollViewNativeComponent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport Platform from '../../Utilities/Platform';\n\nfunction processDecelerationRate(\n decelerationRate: number | 'normal' | 'fast',\n): number {\n if (decelerationRate === 'normal') {\n return Platform.select({\n ios: 0.998,\n android: 0.985,\n });\n } else if (decelerationRate === 'fast') {\n return Platform.select({\n ios: 0.99,\n android: 0.9,\n });\n }\n return decelerationRate;\n}\n\nmodule.exports = processDecelerationRate;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ViewProps as Props} from '../View/ViewPropTypes';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {\n uiViewClassName: 'RCTScrollContentView',\n bubblingEventTypes: {},\n directEventTypes: {},\n validAttributes: {},\n};\n\nconst ScrollContentViewNativeComponent: HostComponent =\n NativeComponentRegistry.get(\n 'RCTScrollContentView',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\nexport default ScrollContentViewNativeComponent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {Double} from '../../Types/CodegenTypes';\n\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport * as React from 'react';\n\ntype ScrollViewNativeComponentType = HostComponent;\ninterface NativeCommands {\n +flashScrollIndicators: (\n viewRef: React.ElementRef,\n ) => void;\n +scrollTo: (\n viewRef: React.ElementRef,\n x: Double,\n y: Double,\n animated: boolean,\n ) => void;\n +scrollToEnd: (\n viewRef: React.ElementRef,\n animated: boolean,\n ) => void;\n +zoomToRect: (\n viewRef: React.ElementRef,\n rect: {|\n x: Double,\n y: Double,\n width: Double,\n height: Double,\n animated?: boolean,\n |},\n animated?: boolean,\n ) => void;\n}\n\nexport default (codegenNativeCommands({\n supportedCommands: [\n 'flashScrollIndicators',\n 'scrollTo',\n 'scrollToEnd',\n 'zoomToRect',\n ],\n}): NativeCommands);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport * as React from 'react';\n\ntype Value = {horizontal: boolean} | null;\n\nconst ScrollViewContext: React.Context = React.createContext(null);\nif (__DEV__) {\n ScrollViewContext.displayName = 'ScrollViewContext';\n}\nexport default ScrollViewContext;\n\nexport const HORIZONTAL: Value = Object.freeze({horizontal: true});\nexport const VERTICAL: Value = Object.freeze({horizontal: false});\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ScrollViewNativeProps as Props} from './ScrollViewNativeComponentType';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\nimport {ConditionallyIgnoredEventHandlers} from '../../NativeComponent/ViewConfigIgnore';\nimport Platform from '../../Utilities/Platform';\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig =\n Platform.OS === 'android'\n ? {\n uiViewClassName: 'RCTScrollView',\n bubblingEventTypes: {},\n directEventTypes: {\n topMomentumScrollBegin: {\n registrationName: 'onMomentumScrollBegin',\n },\n topMomentumScrollEnd: {\n registrationName: 'onMomentumScrollEnd',\n },\n topScroll: {\n registrationName: 'onScroll',\n },\n topScrollBeginDrag: {\n registrationName: 'onScrollBeginDrag',\n },\n topScrollEndDrag: {\n registrationName: 'onScrollEndDrag',\n },\n },\n validAttributes: {\n contentOffset: {\n diff: require('../../Utilities/differ/pointsDiffer'),\n },\n decelerationRate: true,\n disableIntervalMomentum: true,\n pagingEnabled: true,\n scrollEnabled: true,\n showsVerticalScrollIndicator: true,\n snapToAlignment: true,\n snapToEnd: true,\n snapToInterval: true,\n snapToOffsets: true,\n snapToStart: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n sendMomentumEvents: true,\n borderRadius: true,\n nestedScrollEnabled: true,\n borderStyle: true,\n borderRightColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderBottomColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n persistentScrollbar: true,\n endFillColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n fadingEdgeLength: true,\n overScrollMode: true,\n borderTopLeftRadius: true,\n scrollPerfTag: true,\n borderTopColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n removeClippedSubviews: true,\n borderTopRightRadius: true,\n borderLeftColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n pointerEvents: true,\n },\n }\n : {\n uiViewClassName: 'RCTScrollView',\n bubblingEventTypes: {},\n directEventTypes: {\n topMomentumScrollBegin: {\n registrationName: 'onMomentumScrollBegin',\n },\n topMomentumScrollEnd: {\n registrationName: 'onMomentumScrollEnd',\n },\n topScroll: {\n registrationName: 'onScroll',\n },\n topScrollBeginDrag: {\n registrationName: 'onScrollBeginDrag',\n },\n topScrollEndDrag: {\n registrationName: 'onScrollEndDrag',\n },\n topScrollToTop: {\n registrationName: 'onScrollToTop',\n },\n },\n validAttributes: {\n alwaysBounceHorizontal: true,\n alwaysBounceVertical: true,\n automaticallyAdjustContentInsets: true,\n automaticallyAdjustKeyboardInsets: true,\n automaticallyAdjustsScrollIndicatorInsets: true,\n bounces: true,\n bouncesZoom: true,\n canCancelContentTouches: true,\n centerContent: true,\n contentInset: {\n diff: require('../../Utilities/differ/insetsDiffer'),\n },\n contentOffset: {\n diff: require('../../Utilities/differ/pointsDiffer'),\n },\n contentInsetAdjustmentBehavior: true,\n decelerationRate: true,\n directionalLockEnabled: true,\n disableIntervalMomentum: true,\n indicatorStyle: true,\n inverted: true,\n keyboardDismissMode: true,\n maintainVisibleContentPosition: true,\n maximumZoomScale: true,\n minimumZoomScale: true,\n pagingEnabled: true,\n pinchGestureEnabled: true,\n scrollEnabled: true,\n scrollEventThrottle: true,\n scrollIndicatorInsets: {\n diff: require('../../Utilities/differ/insetsDiffer'),\n },\n scrollToOverflowEnabled: true,\n scrollsToTop: true,\n showsHorizontalScrollIndicator: true,\n showsVerticalScrollIndicator: true,\n snapToAlignment: true,\n snapToEnd: true,\n snapToInterval: true,\n snapToOffsets: true,\n snapToStart: true,\n zoomScale: true,\n ...ConditionallyIgnoredEventHandlers({\n onScrollBeginDrag: true,\n onMomentumScrollEnd: true,\n onScrollEndDrag: true,\n onMomentumScrollBegin: true,\n onScrollToTop: true,\n onScroll: true,\n }),\n },\n };\n\nconst ScrollViewNativeComponent: HostComponent =\n NativeComponentRegistry.get(\n 'RCTScrollView',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\nexport default ScrollViewNativeComponent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {LayoutEvent} from '../../Types/CoreEventTypes';\n\nimport Animated from '../../Animated/Animated';\nimport {isPublicInstance as isFabricPublicInstance} from '../../Renderer/public/ReactFabricPublicInstanceUtils';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport useMergeRefs from '../../Utilities/useMergeRefs';\nimport * as React from 'react';\nimport {useCallback, useEffect, useMemo, useRef, useState} from 'react';\n\nexport type Props = $ReadOnly<{\n children?: React.Element<$FlowFixMe>,\n nextHeaderLayoutY: ?number,\n onLayout: (event: LayoutEvent) => void,\n scrollAnimatedValue: Animated.Value,\n // Will cause sticky headers to stick at the bottom of the ScrollView instead\n // of the top.\n inverted: ?boolean,\n // The height of the parent ScrollView. Currently only set when inverted.\n scrollViewHeight: ?number,\n nativeID?: ?string,\n hiddenOnScroll?: ?boolean,\n}>;\n\ntype Instance = {\n ...React.ElementRef,\n setNextHeaderY: number => void,\n ...\n};\n\nconst ScrollViewStickyHeaderWithForwardedRef: React.AbstractComponent<\n Props,\n Instance,\n> = React.forwardRef(function ScrollViewStickyHeader(props, forwardedRef) {\n const {\n inverted,\n scrollViewHeight,\n hiddenOnScroll,\n scrollAnimatedValue,\n nextHeaderLayoutY: _nextHeaderLayoutY,\n } = props;\n\n const [measured, setMeasured] = useState(false);\n const [layoutY, setLayoutY] = useState(0);\n const [layoutHeight, setLayoutHeight] = useState(0);\n const [translateY, setTranslateY] = useState(null);\n const [nextHeaderLayoutY, setNextHeaderLayoutY] =\n useState(_nextHeaderLayoutY);\n const [isFabric, setIsFabric] = useState(false);\n\n const callbackRef = (ref: Instance | null): void => {\n if (ref == null) {\n return;\n }\n ref.setNextHeaderY = value => {\n setNextHeaderLayoutY(value);\n };\n setIsFabric(isFabricPublicInstance(ref));\n };\n const ref: (React.ElementRef | null) => void =\n // $FlowFixMe[incompatible-type] - Ref is mutated by `callbackRef`.\n useMergeRefs(callbackRef, forwardedRef);\n\n const offset = useMemo(\n () =>\n hiddenOnScroll === true\n ? Animated.diffClamp(\n scrollAnimatedValue\n .interpolate({\n extrapolateLeft: 'clamp',\n inputRange: [layoutY, layoutY + 1],\n outputRange: ([0, 1]: Array),\n })\n .interpolate({\n inputRange: [0, 1],\n outputRange: ([0, -1]: Array),\n }),\n -layoutHeight,\n 0,\n )\n : null,\n [scrollAnimatedValue, layoutHeight, layoutY, hiddenOnScroll],\n );\n\n const [animatedTranslateY, setAnimatedTranslateY] = useState(\n () => {\n const inputRange: Array = [-1, 0];\n const outputRange: Array = [0, 0];\n const initialTranslateY = scrollAnimatedValue.interpolate({\n inputRange,\n outputRange,\n });\n\n if (offset != null) {\n return Animated.add(initialTranslateY, offset);\n }\n return initialTranslateY;\n },\n );\n\n const _haveReceivedInitialZeroTranslateY = useRef(true);\n const _timer = useRef(null);\n\n useEffect(() => {\n if (translateY !== 0 && translateY != null) {\n _haveReceivedInitialZeroTranslateY.current = false;\n }\n }, [translateY]);\n\n // This is called whenever the (Interpolated) Animated Value\n // updates, which is several times per frame during scrolling.\n // To ensure that the Fabric ShadowTree has the most recent\n // translate style of this node, we debounce the value and then\n // pass it through to the underlying node during render.\n // This is:\n // 1. Only an issue in Fabric.\n // 2. Worse in Android than iOS. In Android, but not iOS, you\n // can touch and move your finger slightly and still trigger\n // a \"tap\" event. In iOS, moving will cancel the tap in\n // both Fabric and non-Fabric. On Android when you move\n // your finger, the hit-detection moves from the Android\n // platform to JS, so we need the ShadowTree to have knowledge\n // of the current position.\n const animatedValueListener = useCallback(\n ({value}: $FlowFixMe) => {\n const _debounceTimeout: number = Platform.OS === 'android' ? 15 : 64;\n // When the AnimatedInterpolation is recreated, it always initializes\n // to a value of zero and emits a value change of 0 to its listeners.\n if (value === 0 && !_haveReceivedInitialZeroTranslateY.current) {\n _haveReceivedInitialZeroTranslateY.current = true;\n return;\n }\n if (_timer.current != null) {\n clearTimeout(_timer.current);\n }\n _timer.current = setTimeout(() => {\n if (value !== translateY) {\n setTranslateY(value);\n }\n }, _debounceTimeout);\n },\n [translateY],\n );\n\n useEffect(() => {\n const inputRange: Array = [-1, 0];\n const outputRange: Array = [0, 0];\n\n if (measured) {\n if (inverted === true) {\n // The interpolation looks like:\n // - Negative scroll: no translation\n // - `stickStartPoint` is the point at which the header will start sticking.\n // It is calculated using the ScrollView viewport height so it is a the bottom.\n // - Headers that are in the initial viewport will never stick, `stickStartPoint`\n // will be negative.\n // - From 0 to `stickStartPoint` no translation. This will cause the header\n // to scroll normally until it reaches the top of the scroll view.\n // - From `stickStartPoint` to when the next header y hits the bottom edge of the header: translate\n // equally to scroll. This will cause the header to stay at the top of the scroll view.\n // - Past the collision with the next header y: no more translation. This will cause the\n // header to continue scrolling up and make room for the next sticky header.\n // In the case that there is no next header just translate equally to\n // scroll indefinitely.\n if (scrollViewHeight != null) {\n const stickStartPoint = layoutY + layoutHeight - scrollViewHeight;\n if (stickStartPoint > 0) {\n inputRange.push(stickStartPoint);\n outputRange.push(0);\n inputRange.push(stickStartPoint + 1);\n outputRange.push(1);\n // If the next sticky header has not loaded yet (probably windowing) or is the last\n // we can just keep it sticked forever.\n const collisionPoint =\n (nextHeaderLayoutY || 0) - layoutHeight - scrollViewHeight;\n if (collisionPoint > stickStartPoint) {\n inputRange.push(collisionPoint, collisionPoint + 1);\n outputRange.push(\n collisionPoint - stickStartPoint,\n collisionPoint - stickStartPoint,\n );\n }\n }\n }\n } else {\n // The interpolation looks like:\n // - Negative scroll: no translation\n // - From 0 to the y of the header: no translation. This will cause the header\n // to scroll normally until it reaches the top of the scroll view.\n // - From header y to when the next header y hits the bottom edge of the header: translate\n // equally to scroll. This will cause the header to stay at the top of the scroll view.\n // - Past the collision with the next header y: no more translation. This will cause the\n // header to continue scrolling up and make room for the next sticky header.\n // In the case that there is no next header just translate equally to\n // scroll indefinitely.\n inputRange.push(layoutY);\n outputRange.push(0);\n // If the next sticky header has not loaded yet (probably windowing) or is the last\n // we can just keep it sticked forever.\n const collisionPoint = (nextHeaderLayoutY || 0) - layoutHeight;\n if (collisionPoint >= layoutY) {\n inputRange.push(collisionPoint, collisionPoint + 1);\n outputRange.push(collisionPoint - layoutY, collisionPoint - layoutY);\n } else {\n inputRange.push(layoutY + 1);\n outputRange.push(1);\n }\n }\n }\n\n let newAnimatedTranslateY: Animated.Node = scrollAnimatedValue.interpolate({\n inputRange,\n outputRange,\n });\n\n if (offset != null) {\n newAnimatedTranslateY = Animated.add(newAnimatedTranslateY, offset);\n }\n\n // add the event listener\n let animatedListenerId;\n if (isFabric) {\n animatedListenerId = newAnimatedTranslateY.addListener(\n animatedValueListener,\n );\n }\n\n setAnimatedTranslateY(newAnimatedTranslateY);\n\n // clean up the event listener and timer\n return () => {\n if (animatedListenerId) {\n newAnimatedTranslateY.removeListener(animatedListenerId);\n }\n if (_timer.current != null) {\n clearTimeout(_timer.current);\n }\n };\n }, [nextHeaderLayoutY, measured, layoutHeight, layoutY, scrollViewHeight, scrollAnimatedValue, inverted, offset, animatedValueListener, isFabric]);\n\n const _onLayout = (event: LayoutEvent) => {\n setLayoutY(event.nativeEvent.layout.y);\n setLayoutHeight(event.nativeEvent.layout.height);\n setMeasured(true);\n\n props.onLayout(event);\n const child = React.Children.only<$FlowFixMe>(props.children);\n if (child.props.onLayout) {\n child.props.onLayout(event);\n }\n };\n\n const child = React.Children.only<$FlowFixMe>(props.children);\n\n // TODO T68319535: remove this if NativeAnimated is rewritten for Fabric\n const passthroughAnimatedPropExplicitValues =\n isFabric && translateY != null\n ? {\n style: {transform: [{translateY: translateY}]},\n }\n : null;\n\n return (\n /* $FlowFixMe[prop-missing] passthroughAnimatedPropExplicitValues isn't properly\n included in the Animated.View flow type. */\n \n {React.cloneElement(child, {\n style: styles.fill, // We transfer the child style to the wrapper.\n onLayout: undefined, // we call this manually through our this._onLayout\n })}\n \n );\n});\n\nconst styles = StyleSheet.create({\n header: {\n zIndex: 10,\n position: 'relative',\n },\n fill: {\n flex: 1,\n },\n});\n\nexport default ScrollViewStickyHeaderWithForwardedRef;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {SectionBase} from '../../Lists/SectionList';\nimport type {AnimatedComponentType} from '../createAnimatedComponent';\n\nimport SectionList from '../../Lists/SectionList';\nimport createAnimatedComponent from '../createAnimatedComponent';\nimport * as React from 'react';\n\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nconst SectionListWithEventThrottle = React.forwardRef(\n (\n props: React.ElementConfig,\n ref:\n | ((null | SectionList>) => mixed)\n | {\n current: null | SectionList>,\n ...\n },\n ) => ,\n);\n\nexport default (createAnimatedComponent(\n SectionListWithEventThrottle,\n): AnimatedComponentType<\n React.ElementConfig,\n React.ElementRef,\n>);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {ScrollResponderType} from '../Components/ScrollView/ScrollView';\nimport type {\n ScrollToLocationParamsType,\n SectionBase as _SectionBase,\n VirtualizedSectionListProps,\n} from '@react-native/virtualized-lists';\n\nimport Platform from '../Utilities/Platform';\nimport {VirtualizedSectionList} from '@react-native/virtualized-lists';\nimport * as React from 'react';\n\ntype Item = any;\n\nexport type SectionBase = _SectionBase;\n\ntype RequiredProps> = {|\n /**\n * The actual data to render, akin to the `data` prop in [``](https://reactnative.dev/docs/flatlist).\n *\n * General shape:\n *\n * sections: $ReadOnlyArray<{\n * data: $ReadOnlyArray,\n * renderItem?: ({item: SectionItem, ...}) => ?React.Element<*>,\n * ItemSeparatorComponent?: ?ReactClass<{highlighted: boolean, ...}>,\n * }>\n */\n sections: $ReadOnlyArray,\n|};\n\ntype OptionalProps> = {|\n /**\n * Default renderer for every item in every section. Can be over-ridden on a per-section basis.\n */\n renderItem?: (info: {\n item: Item,\n index: number,\n section: SectionT,\n separators: {\n highlight: () => void,\n unhighlight: () => void,\n updateProps: (select: 'leading' | 'trailing', newProps: Object) => void,\n ...\n },\n ...\n }) => null | React.Element,\n /**\n * A marker property for telling the list to re-render (since it implements `PureComponent`). If\n * any of your `renderItem`, Header, Footer, etc. functions depend on anything outside of the\n * `data` prop, stick it here and treat it immutably.\n */\n extraData?: any,\n /**\n * How many items to render in the initial batch. This should be enough to fill the screen but not\n * much more. Note these items will never be unmounted as part of the windowed rendering in order\n * to improve perceived performance of scroll-to-top actions.\n */\n initialNumToRender?: ?number,\n /**\n * Reverses the direction of scroll. Uses scale transforms of -1.\n */\n inverted?: ?boolean,\n /**\n * Used to extract a unique key for a given item at the specified index. Key is used for caching\n * and as the react key to track item re-ordering. The default extractor checks item.key, then\n * falls back to using the index, like react does. Note that this sets keys for each item, but\n * each overall section still needs its own key.\n */\n keyExtractor?: ?(item: Item, index: number) => string,\n /**\n * Called once when the scroll position gets within `onEndReachedThreshold` of the rendered\n * content.\n */\n onEndReached?: ?(info: {distanceFromEnd: number, ...}) => void,\n /**\n * Note: may have bugs (missing content) in some circumstances - use at your own risk.\n *\n * This may improve scroll performance for large lists.\n */\n removeClippedSubviews?: boolean,\n|};\n\nexport type Props = {|\n ...$Diff<\n VirtualizedSectionListProps,\n {\n getItem: $PropertyType, 'getItem'>,\n getItemCount: $PropertyType<\n VirtualizedSectionListProps,\n 'getItemCount',\n >,\n renderItem: $PropertyType<\n VirtualizedSectionListProps,\n 'renderItem',\n >,\n keyExtractor: $PropertyType<\n VirtualizedSectionListProps,\n 'keyExtractor',\n >,\n ...\n },\n >,\n ...RequiredProps,\n ...OptionalProps,\n|};\n\n/**\n * A performant interface for rendering sectioned lists, supporting the most handy features:\n *\n * - Fully cross-platform.\n * - Configurable viewability callbacks.\n * - List header support.\n * - List footer support.\n * - Item separator support.\n * - Section header support.\n * - Section separator support.\n * - Heterogeneous data and item rendering support.\n * - Pull to Refresh.\n * - Scroll loading.\n *\n * If you don't need section support and want a simpler interface, use\n * [``](https://reactnative.dev/docs/flatlist).\n *\n * Simple Examples:\n *\n * }\n * renderSectionHeader={({section}) =>
}\n * sections={[ // homogeneous rendering between sections\n * {data: [...], title: ...},\n * {data: [...], title: ...},\n * {data: [...], title: ...},\n * ]}\n * />\n *\n * \n *\n * This is a convenience wrapper around [``](docs/virtualizedlist),\n * and thus inherits its props (as well as those of `ScrollView`) that aren't explicitly listed\n * here, along with the following caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate and momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n */\nexport default class SectionList<\n SectionT: SectionBase,\n> extends React.PureComponent, void> {\n props: Props;\n\n /**\n * Scrolls to the item at the specified `sectionIndex` and `itemIndex` (within the section)\n * positioned in the viewable area such that `viewPosition` 0 places it at the top (and may be\n * covered by a sticky header), 1 at the bottom, and 0.5 centered in the middle. `viewOffset` is a\n * fixed number of pixels to offset the final target position, e.g. to compensate for sticky\n * headers.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n scrollToLocation(params: ScrollToLocationParamsType) {\n if (this._wrapperListRef != null) {\n this._wrapperListRef.scrollToLocation(params);\n }\n }\n\n /**\n * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n * taps on items or by navigation actions.\n */\n recordInteraction() {\n const listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n listRef && listRef.recordInteraction();\n }\n\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n flashScrollIndicators() {\n const listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n listRef && listRef.flashScrollIndicators();\n }\n\n /**\n * Provides a handle to the underlying scroll responder.\n */\n getScrollResponder(): ?ScrollResponderType {\n const listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n if (listRef) {\n return listRef.getScrollResponder();\n }\n }\n\n getScrollableNode(): any {\n const listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n if (listRef) {\n return listRef.getScrollableNode();\n }\n }\n\n setNativeProps(props: Object) {\n const listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n if (listRef) {\n listRef.setNativeProps(props);\n }\n }\n\n render(): React.Node {\n const {\n stickySectionHeadersEnabled: _stickySectionHeadersEnabled,\n ...restProps\n } = this.props;\n const stickySectionHeadersEnabled =\n _stickySectionHeadersEnabled ?? Platform.OS === 'ios';\n return (\n items.length}\n // $FlowFixMe[missing-local-annot]\n getItem={(items, index) => items[index]}\n />\n );\n }\n\n _wrapperListRef: ?React.ElementRef;\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n _captureRef = ref => {\n this._wrapperListRef = ref;\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {AnimatedComponentType} from '../createAnimatedComponent';\n\nimport Text from '../../Text/Text';\nimport createAnimatedComponent from '../createAnimatedComponent';\nimport * as React from 'react';\n\nexport default (createAnimatedComponent(\n (Text: $FlowFixMe),\n): AnimatedComponentType<\n React.ElementConfig,\n React.ElementRef,\n>);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {AnimatedComponentType} from '../createAnimatedComponent';\n\nimport View from '../../Components/View/View';\nimport createAnimatedComponent from '../createAnimatedComponent';\nimport * as React from 'react';\n\nexport default (createAnimatedComponent(View): AnimatedComponentType<\n React.ElementConfig,\n React.ElementRef,\n>);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {AccessibilityRole} from '../../Components/View/ViewAccessibility';\nimport type {\n MeasureInWindowOnSuccessCallback,\n MeasureLayoutOnSuccessCallback,\n MeasureOnSuccessCallback,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue, ViewStyleProp} from '../../StyleSheet/StyleSheet';\nimport type {DirectEventHandler} from '../../Types/CodegenTypes';\n\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport dismissKeyboard from '../../Utilities/dismissKeyboard';\nimport Platform from '../../Utilities/Platform';\nimport StatusBar from '../StatusBar/StatusBar';\nimport View from '../View/View';\nimport AndroidDrawerLayoutNativeComponent, {\n Commands,\n} from './AndroidDrawerLayoutNativeComponent';\nimport nullthrows from 'nullthrows';\nimport * as React from 'react';\n\nconst DRAWER_STATES = ['Idle', 'Dragging', 'Settling'];\n\ntype DrawerStates = 'Idle' | 'Dragging' | 'Settling';\n\ntype DrawerSlideEvent = $ReadOnly<{|\n offset: number,\n|}>;\n\ntype Props = $ReadOnly<{|\n accessibilityRole?: ?AccessibilityRole,\n\n /**\n * Determines whether the keyboard gets dismissed in response to a drag.\n * - 'none' (the default), drags do not dismiss the keyboard.\n * - 'on-drag', the keyboard is dismissed when a drag begins.\n */\n keyboardDismissMode?: ?('none' | 'on-drag'),\n\n /**\n * Specifies the background color of the drawer. The default value is white.\n * If you want to set the opacity of the drawer, use rgba. Example:\n *\n * ```\n * return (\n * \n * \n * );\n * ```\n */\n drawerBackgroundColor?: ?ColorValue,\n\n /**\n * Specifies the side of the screen from which the drawer will slide in.\n */\n drawerPosition: ?('left' | 'right'),\n\n /**\n * Specifies the width of the drawer, more precisely the width of the view that be pulled in\n * from the edge of the window.\n */\n drawerWidth?: ?number,\n\n /**\n * Specifies the lock mode of the drawer. The drawer can be locked in 3 states:\n * - unlocked (default), meaning that the drawer will respond (open/close) to touch gestures.\n * - locked-closed, meaning that the drawer will stay closed and not respond to gestures.\n * - locked-open, meaning that the drawer will stay opened and not respond to gestures.\n * The drawer may still be opened and closed programmatically (`openDrawer`/`closeDrawer`).\n */\n drawerLockMode?: ?('unlocked' | 'locked-closed' | 'locked-open'),\n\n /**\n * Function called whenever there is an interaction with the navigation view.\n */\n onDrawerSlide?: ?DirectEventHandler,\n\n /**\n * Function called when the drawer state has changed. The drawer can be in 3 states:\n * - Idle, meaning there is no interaction with the navigation view happening at the time\n * - Dragging, meaning there is currently an interaction with the navigation view\n * - Settling, meaning that there was an interaction with the navigation view, and the\n * navigation view is now finishing its closing or opening animation\n */\n onDrawerStateChanged?: ?(state: DrawerStates) => mixed,\n\n /**\n * Function called whenever the navigation view has been opened.\n */\n onDrawerOpen?: ?() => mixed,\n\n /**\n * Function called whenever the navigation view has been closed.\n */\n onDrawerClose?: ?() => mixed,\n\n /**\n * The navigation view that will be rendered to the side of the screen and can be pulled in.\n */\n renderNavigationView: () => React.Element,\n\n /**\n * Make the drawer take the entire screen and draw the background of the\n * status bar to allow it to open over the status bar. It will only have an\n * effect on API 21+.\n */\n statusBarBackgroundColor?: ?ColorValue,\n\n children?: React.Node,\n style?: ?ViewStyleProp,\n|}>;\n\ntype State = {|\n statusBarBackgroundColor: ColorValue,\n|};\n\n/**\n * React component that wraps the platform `DrawerLayout` (Android only). The\n * Drawer (typically used for navigation) is rendered with `renderNavigationView`\n * and direct children are the main view (where your content goes). The navigation\n * view is initially not visible on the screen, but can be pulled in from the\n * side of the window specified by the `drawerPosition` prop and its width can\n * be set by the `drawerWidth` prop.\n *\n * Example:\n *\n * ```\n * render: function() {\n * var navigationView = (\n * \n * I'm in the Drawer!\n * \n * );\n * return (\n * navigationView}>\n * \n * Hello\n * World!\n * \n * \n * );\n * },\n * ```\n */\nclass DrawerLayoutAndroid extends React.Component {\n static get positions(): mixed {\n console.warn(\n 'Setting DrawerLayoutAndroid drawerPosition using `DrawerLayoutAndroid.positions` is deprecated. Instead pass the string value \"left\" or \"right\"',\n );\n\n return {Left: 'left', Right: 'right'};\n }\n\n // $FlowFixMe[missing-local-annot]\n _nativeRef =\n React.createRef<\n React.ElementRef,\n >();\n\n state: State = {statusBarBackgroundColor: null};\n\n render(): React.Node {\n const {\n drawerBackgroundColor = 'white',\n onDrawerStateChanged,\n renderNavigationView,\n onDrawerOpen,\n onDrawerClose,\n ...props\n } = this.props;\n const drawStatusBar =\n Platform.Version >= 21 && this.props.statusBarBackgroundColor != null;\n const drawerViewWrapper = (\n \n {renderNavigationView()}\n {drawStatusBar && }\n \n );\n const childrenWrapper = (\n \n {drawStatusBar && (\n \n )}\n {drawStatusBar && (\n \n )}\n {this.props.children}\n \n );\n return (\n \n {childrenWrapper}\n {drawerViewWrapper}\n \n );\n }\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n _onDrawerSlide = event => {\n if (this.props.onDrawerSlide) {\n // $FlowFixMe[unused-promise]\n this.props.onDrawerSlide(event);\n }\n if (this.props.keyboardDismissMode === 'on-drag') {\n dismissKeyboard();\n }\n };\n\n _onDrawerOpen = () => {\n if (this.props.onDrawerOpen) {\n this.props.onDrawerOpen();\n }\n };\n\n _onDrawerClose = () => {\n if (this.props.onDrawerClose) {\n this.props.onDrawerClose();\n }\n };\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n _onDrawerStateChanged = event => {\n if (this.props.onDrawerStateChanged) {\n this.props.onDrawerStateChanged(\n DRAWER_STATES[event.nativeEvent.drawerState],\n );\n }\n };\n\n /**\n * Opens the drawer.\n */\n openDrawer() {\n Commands.openDrawer(nullthrows(this._nativeRef.current));\n }\n\n /**\n * Closes the drawer.\n */\n closeDrawer() {\n Commands.closeDrawer(nullthrows(this._nativeRef.current));\n }\n\n /**\n * Closing and opening example\n * Note: To access the drawer you have to give it a ref\n *\n * Class component:\n *\n * render () {\n * this.openDrawer = () => {\n * this.refs.DRAWER.openDrawer()\n * }\n * this.closeDrawer = () => {\n * this.refs.DRAWER.closeDrawer()\n * }\n * return (\n * \n * {children}\n * \n * )\n * }\n *\n * Function component:\n *\n * const drawerRef = useRef()\n * const openDrawer = () => {\n * drawerRef.current.openDrawer()\n * }\n * const closeDrawer = () => {\n * drawerRef.current.closeDrawer()\n * }\n * return (\n * \n * {children}\n * \n * )\n */\n\n /**\n * Native methods\n */\n blur() {\n nullthrows(this._nativeRef.current).blur();\n }\n\n focus() {\n nullthrows(this._nativeRef.current).focus();\n }\n\n measure(callback: MeasureOnSuccessCallback) {\n nullthrows(this._nativeRef.current).measure(callback);\n }\n\n measureInWindow(callback: MeasureInWindowOnSuccessCallback) {\n nullthrows(this._nativeRef.current).measureInWindow(callback);\n }\n\n measureLayout(\n relativeToNativeNode: number,\n onSuccess: MeasureLayoutOnSuccessCallback,\n onFail?: () => void,\n ) {\n nullthrows(this._nativeRef.current).measureLayout(\n relativeToNativeNode,\n onSuccess,\n onFail,\n );\n }\n\n setNativeProps(nativeProps: Object) {\n nullthrows(this._nativeRef.current).setNativeProps(nativeProps);\n }\n}\n\nconst styles = StyleSheet.create({\n base: {\n flex: 1,\n elevation: 16,\n },\n mainSubview: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n drawerSubview: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n },\n statusBar: {\n height: StatusBar.currentHeight,\n },\n drawerStatusBar: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n height: StatusBar.currentHeight,\n backgroundColor: 'rgba(0, 0, 0, 0.251)',\n },\n});\n\nmodule.exports = DrawerLayoutAndroid;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\n\nimport processColor from '../../StyleSheet/processColor';\nimport Platform from '../../Utilities/Platform';\nimport NativeStatusBarManagerAndroid from './NativeStatusBarManagerAndroid';\nimport NativeStatusBarManagerIOS from './NativeStatusBarManagerIOS';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\n/**\n * Status bar style\n */\nexport type StatusBarStyle = $Keys<{\n /**\n * Default status bar style (dark for iOS, light for Android)\n */\n default: string,\n /**\n * Dark background, white texts and icons\n */\n 'light-content': string,\n /**\n * Light background, dark texts and icons\n */\n 'dark-content': string,\n ...\n}>;\n\n/**\n * Status bar animation\n */\nexport type StatusBarAnimation = $Keys<{\n /**\n * No animation\n */\n none: string,\n /**\n * Fade animation\n */\n fade: string,\n /**\n * Slide animation\n */\n slide: string,\n ...\n}>;\n\ntype AndroidProps = $ReadOnly<{|\n /**\n * The background color of the status bar.\n * @platform android\n */\n backgroundColor?: ?ColorValue,\n /**\n * If the status bar is translucent.\n * When translucent is set to true, the app will draw under the status bar.\n * This is useful when using a semi transparent status bar color.\n *\n * @platform android\n */\n translucent?: ?boolean,\n|}>;\n\ntype IOSProps = $ReadOnly<{|\n /**\n * If the network activity indicator should be visible.\n *\n * @platform ios\n */\n networkActivityIndicatorVisible?: ?boolean,\n /**\n * The transition effect when showing and hiding the status bar using the `hidden`\n * prop. Defaults to 'fade'.\n *\n * @platform ios\n */\n showHideTransition?: ?('fade' | 'slide' | 'none'),\n|}>;\n\ntype Props = $ReadOnly<{|\n ...AndroidProps,\n ...IOSProps,\n /**\n * If the status bar is hidden.\n */\n hidden?: ?boolean,\n /**\n * If the transition between status bar property changes should be animated.\n * Supported for backgroundColor, barStyle and hidden.\n */\n animated?: ?boolean,\n /**\n * Sets the color of the status bar text.\n */\n barStyle?: ?('default' | 'light-content' | 'dark-content'),\n|}>;\n\n/**\n * Merges the prop stack with the default values.\n */\nfunction mergePropsStack(\n propsStack: Array,\n defaultValues: Object,\n): Object {\n return propsStack.reduce(\n (prev, cur) => {\n for (const prop in cur) {\n if (cur[prop] != null) {\n prev[prop] = cur[prop];\n }\n }\n return prev;\n },\n {...defaultValues},\n );\n}\n\n/**\n * Returns an object to insert in the props stack from the props\n * and the transition/animation info.\n */\nfunction createStackEntry(props: any): any {\n const animated = props.animated ?? false;\n const showHideTransition = props.showHideTransition ?? 'fade';\n return {\n backgroundColor:\n props.backgroundColor != null\n ? {\n value: props.backgroundColor,\n animated,\n }\n : null,\n barStyle:\n props.barStyle != null\n ? {\n value: props.barStyle,\n animated,\n }\n : null,\n translucent: props.translucent,\n hidden:\n props.hidden != null\n ? {\n value: props.hidden,\n animated,\n transition: showHideTransition,\n }\n : null,\n networkActivityIndicatorVisible: props.networkActivityIndicatorVisible,\n };\n}\n\n/**\n * Component to control the app status bar.\n *\n * ### Usage with Navigator\n *\n * It is possible to have multiple `StatusBar` components mounted at the same\n * time. The props will be merged in the order the `StatusBar` components were\n * mounted. One use case is to specify status bar styles per route using `Navigator`.\n *\n * ```\n * \n * \n * \n * \n * \n * }\n * />\n * \n * ```\n *\n * ### Imperative API\n *\n * For cases where using a component is not ideal, there are static methods\n * to manipulate the `StatusBar` display stack. These methods have the same\n * behavior as mounting and unmounting a `StatusBar` component.\n *\n * For example, you can call `StatusBar.pushStackEntry` to update the status bar\n * before launching a third-party native UI component, and then call\n * `StatusBar.popStackEntry` when completed.\n *\n * ```\n * const openThirdPartyBugReporter = async () => {\n * // The bug reporter has a dark background, so we push a new status bar style.\n * const stackEntry = StatusBar.pushStackEntry({barStyle: 'light-content'});\n *\n * // `open` returns a promise that resolves when the UI is dismissed.\n * await BugReporter.open();\n *\n * // Don't forget to call `popStackEntry` when you're done.\n * StatusBar.popStackEntry(stackEntry);\n * };\n * ```\n *\n * There is a legacy imperative API that enables you to manually update the\n * status bar styles. However, the legacy API does not update the internal\n * `StatusBar` display stack, which means that any changes will be overridden\n * whenever a `StatusBar` component is mounted or unmounted.\n *\n * It is strongly advised that you use `pushStackEntry`, `popStackEntry`, or\n * `replaceStackEntry` instead of the static methods beginning with `set`.\n *\n * ### Constants\n *\n * `currentHeight` (Android only) The height of the status bar.\n */\nclass StatusBar extends React.Component {\n static _propsStack: Array = [];\n\n static _defaultProps: any = createStackEntry({\n backgroundColor:\n Platform.OS === 'android'\n ? NativeStatusBarManagerAndroid.getConstants()\n .DEFAULT_BACKGROUND_COLOR ?? 'black'\n : 'black',\n barStyle: 'default',\n translucent: false,\n hidden: false,\n networkActivityIndicatorVisible: false,\n });\n\n // Timer for updating the native module values at the end of the frame.\n // $FlowFixMe[missing-local-annot]\n static _updateImmediate = null;\n\n // The current merged values from the props stack.\n // $FlowFixMe[missing-local-annot]\n static _currentValues = null;\n\n // TODO(janic): Provide a real API to deal with status bar height. See the\n // discussion in #6195.\n /**\n * The current height of the status bar on the device.\n *\n * @platform android\n */\n static currentHeight: ?number =\n Platform.OS === 'android'\n ? NativeStatusBarManagerAndroid.getConstants().HEIGHT\n : null;\n\n // Provide an imperative API as static functions of the component.\n // See the corresponding prop for more detail.\n\n /**\n * Show or hide the status bar\n * @param hidden Hide the status bar.\n * @param animation Optional animation when\n * changing the status bar hidden property.\n */\n static setHidden(hidden: boolean, animation?: StatusBarAnimation) {\n animation = animation || 'none';\n StatusBar._defaultProps.hidden.value = hidden;\n if (Platform.OS === 'ios') {\n NativeStatusBarManagerIOS.setHidden(hidden, animation);\n } else if (Platform.OS === 'android') {\n NativeStatusBarManagerAndroid.setHidden(hidden);\n }\n }\n\n /**\n * Set the status bar style\n * @param style Status bar style to set\n * @param animated Animate the style change.\n */\n static setBarStyle(style: StatusBarStyle, animated?: boolean) {\n animated = animated || false;\n StatusBar._defaultProps.barStyle.value = style;\n if (Platform.OS === 'ios') {\n NativeStatusBarManagerIOS.setStyle(style, animated);\n } else if (Platform.OS === 'android') {\n NativeStatusBarManagerAndroid.setStyle(style);\n }\n }\n\n /**\n * Control the visibility of the network activity indicator\n * @param visible Show the indicator.\n */\n static setNetworkActivityIndicatorVisible(visible: boolean) {\n if (Platform.OS !== 'ios') {\n console.warn(\n '`setNetworkActivityIndicatorVisible` is only available on iOS',\n );\n return;\n }\n StatusBar._defaultProps.networkActivityIndicatorVisible = visible;\n NativeStatusBarManagerIOS.setNetworkActivityIndicatorVisible(visible);\n }\n\n /**\n * Set the background color for the status bar\n * @param color Background color.\n * @param animated Animate the style change.\n */\n static setBackgroundColor(color: string, animated?: boolean): void {\n if (Platform.OS !== 'android') {\n console.warn('`setBackgroundColor` is only available on Android');\n return;\n }\n animated = animated || false;\n StatusBar._defaultProps.backgroundColor.value = color;\n\n const processedColor = processColor(color);\n if (processedColor == null) {\n console.warn(\n `\\`StatusBar.setBackgroundColor\\`: Color ${color} parsed to null or undefined`,\n );\n return;\n }\n invariant(\n typeof processedColor === 'number',\n 'Unexpected color given for StatusBar.setBackgroundColor',\n );\n\n NativeStatusBarManagerAndroid.setColor(processedColor, animated);\n }\n\n /**\n * Control the translucency of the status bar\n * @param translucent Set as translucent.\n */\n static setTranslucent(translucent: boolean) {\n if (Platform.OS !== 'android') {\n console.warn('`setTranslucent` is only available on Android');\n return;\n }\n StatusBar._defaultProps.translucent = translucent;\n NativeStatusBarManagerAndroid.setTranslucent(translucent);\n }\n\n /**\n * Push a StatusBar entry onto the stack.\n * The return value should be passed to `popStackEntry` when complete.\n *\n * @param props Object containing the StatusBar props to use in the stack entry.\n */\n static pushStackEntry(props: any): any {\n const entry = createStackEntry(props);\n StatusBar._propsStack.push(entry);\n StatusBar._updatePropsStack();\n return entry;\n }\n\n /**\n * Pop a StatusBar entry from the stack.\n *\n * @param entry Entry returned from `pushStackEntry`.\n */\n static popStackEntry(entry: any) {\n const index = StatusBar._propsStack.indexOf(entry);\n if (index !== -1) {\n StatusBar._propsStack.splice(index, 1);\n }\n StatusBar._updatePropsStack();\n }\n\n /**\n * Replace an existing StatusBar stack entry with new props.\n *\n * @param entry Entry returned from `pushStackEntry` to replace.\n * @param props Object containing the StatusBar props to use in the replacement stack entry.\n */\n static replaceStackEntry(entry: any, props: any): any {\n const newEntry = createStackEntry(props);\n const index = StatusBar._propsStack.indexOf(entry);\n if (index !== -1) {\n StatusBar._propsStack[index] = newEntry;\n }\n StatusBar._updatePropsStack();\n return newEntry;\n }\n\n // $FlowFixMe[missing-local-annot]\n _stackEntry = null;\n\n componentDidMount() {\n // Every time a StatusBar component is mounted, we push it's prop to a stack\n // and always update the native status bar with the props from the top of then\n // stack. This allows having multiple StatusBar components and the one that is\n // added last or is deeper in the view hierarchy will have priority.\n this._stackEntry = StatusBar.pushStackEntry(this.props);\n }\n\n componentWillUnmount() {\n // When a StatusBar is unmounted, remove itself from the stack and update\n // the native bar with the next props.\n StatusBar.popStackEntry(this._stackEntry);\n }\n\n componentDidUpdate() {\n this._stackEntry = StatusBar.replaceStackEntry(\n this._stackEntry,\n this.props,\n );\n }\n\n /**\n * Updates the native status bar with the props from the stack.\n */\n static _updatePropsStack = () => {\n // Send the update to the native module only once at the end of the frame.\n clearImmediate(StatusBar._updateImmediate);\n StatusBar._updateImmediate = setImmediate(() => {\n const oldProps = StatusBar._currentValues;\n const mergedProps = mergePropsStack(\n StatusBar._propsStack,\n StatusBar._defaultProps,\n );\n\n // Update the props that have changed using the merged values from the props stack.\n if (Platform.OS === 'ios') {\n if (\n !oldProps ||\n oldProps.barStyle.value !== mergedProps.barStyle.value\n ) {\n NativeStatusBarManagerIOS.setStyle(\n mergedProps.barStyle.value,\n mergedProps.barStyle.animated || false,\n );\n }\n if (!oldProps || oldProps.hidden.value !== mergedProps.hidden.value) {\n NativeStatusBarManagerIOS.setHidden(\n mergedProps.hidden.value,\n mergedProps.hidden.animated\n ? mergedProps.hidden.transition\n : 'none',\n );\n }\n\n if (\n !oldProps ||\n oldProps.networkActivityIndicatorVisible !==\n mergedProps.networkActivityIndicatorVisible\n ) {\n NativeStatusBarManagerIOS.setNetworkActivityIndicatorVisible(\n mergedProps.networkActivityIndicatorVisible,\n );\n }\n } else if (Platform.OS === 'android') {\n //todo(T60684787): Add back optimization to only update bar style and\n //background color if the new value is different from the old value.\n NativeStatusBarManagerAndroid.setStyle(mergedProps.barStyle.value);\n const processedColor = processColor(mergedProps.backgroundColor.value);\n if (processedColor == null) {\n console.warn(\n `\\`StatusBar._updatePropsStack\\`: Color ${mergedProps.backgroundColor.value} parsed to null or undefined`,\n );\n } else {\n invariant(\n typeof processedColor === 'number',\n 'Unexpected color given in StatusBar._updatePropsStack',\n );\n NativeStatusBarManagerAndroid.setColor(\n processedColor,\n mergedProps.backgroundColor.animated,\n );\n }\n if (!oldProps || oldProps.hidden.value !== mergedProps.hidden.value) {\n NativeStatusBarManagerAndroid.setHidden(mergedProps.hidden.value);\n }\n // Activities are not translucent by default, so always set if true.\n if (\n !oldProps ||\n oldProps.translucent !== mergedProps.translucent ||\n mergedProps.translucent\n ) {\n NativeStatusBarManagerAndroid.setTranslucent(mergedProps.translucent);\n }\n }\n // Update the current prop values.\n StatusBar._currentValues = mergedProps;\n });\n };\n\n render(): React.Node {\n return null;\n }\n}\n\nmodule.exports = StatusBar;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n +HEIGHT: number,\n +DEFAULT_BACKGROUND_COLOR: number,\n |};\n +setColor: (color: number, animated: boolean) => void;\n +setTranslucent: (translucent: boolean) => void;\n\n /**\n * - statusBarStyles can be:\n * - 'default'\n * - 'dark-content'\n */\n +setStyle: (statusBarStyle?: ?string) => void;\n +setHidden: (hidden: boolean) => void;\n}\n\nconst NativeModule = TurboModuleRegistry.getEnforcing('StatusBarManager');\nlet constants = null;\n\nconst NativeStatusBarManager = {\n getConstants(): {|\n +HEIGHT: number,\n +DEFAULT_BACKGROUND_COLOR?: number,\n |} {\n if (constants == null) {\n constants = NativeModule.getConstants();\n }\n return constants;\n },\n\n setColor(color: number, animated: boolean): void {\n NativeModule.setColor(color, animated);\n },\n\n setTranslucent(translucent: boolean): void {\n NativeModule.setTranslucent(translucent);\n },\n\n /**\n * - statusBarStyles can be:\n * - 'default'\n * - 'dark-content'\n */\n setStyle(statusBarStyle?: ?string): void {\n NativeModule.setStyle(statusBarStyle);\n },\n\n setHidden(hidden: boolean): void {\n NativeModule.setHidden(hidden);\n },\n};\n\nexport default NativeStatusBarManager;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n +HEIGHT: number,\n +DEFAULT_BACKGROUND_COLOR?: number,\n |};\n\n // TODO(T47754272) Can we remove this method?\n +getHeight: (callback: (result: {|height: number|}) => void) => void;\n +setNetworkActivityIndicatorVisible: (visible: boolean) => void;\n +addListener: (eventType: string) => void;\n +removeListeners: (count: number) => void;\n\n /**\n * - statusBarStyles can be:\n * - 'default'\n * - 'dark-content'\n * - 'light-content'\n */\n +setStyle: (statusBarStyle?: ?string, animated: boolean) => void;\n /**\n * - withAnimation can be: 'none' | 'fade' | 'slide'\n */\n +setHidden: (hidden: boolean, withAnimation: string) => void;\n}\n\nconst NativeModule = TurboModuleRegistry.getEnforcing('StatusBarManager');\nlet constants = null;\n\nconst NativeStatusBarManager = {\n getConstants(): {|\n +HEIGHT: number,\n +DEFAULT_BACKGROUND_COLOR?: number,\n |} {\n if (constants == null) {\n constants = NativeModule.getConstants();\n }\n return constants;\n },\n\n // TODO(T47754272) Can we remove this method?\n getHeight(callback: (result: {|height: number|}) => void): void {\n NativeModule.getHeight(callback);\n },\n\n setNetworkActivityIndicatorVisible(visible: boolean): void {\n NativeModule.setNetworkActivityIndicatorVisible(visible);\n },\n\n addListener(eventType: string): void {\n NativeModule.addListener(eventType);\n },\n\n removeListeners(count: number): void {\n NativeModule.removeListeners(count);\n },\n\n /**\n * - statusBarStyles can be:\n * - 'default'\n * - 'dark-content'\n * - 'light-content'\n */\n setStyle(statusBarStyle?: ?string, animated: boolean): void {\n NativeModule.setStyle(statusBarStyle, animated);\n },\n\n /**\n * - withAnimation can be: 'none' | 'fade' | 'slide'\n */\n setHidden(hidden: boolean, withAnimation: string): void {\n NativeModule.setHidden(hidden, withAnimation);\n },\n};\n\nexport default NativeStatusBarManager;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n DirectEventHandler,\n Float,\n Int32,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\nimport * as React from 'react';\n\ntype DrawerStateEvent = $ReadOnly<{|\n drawerState: Int32,\n|}>;\n\ntype DrawerSlideEvent = $ReadOnly<{|\n offset: Float,\n|}>;\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n /**\n * Determines whether the keyboard gets dismissed in response to a drag.\n * - 'none' (the default), drags do not dismiss the keyboard.\n * - 'on-drag', the keyboard is dismissed when a drag begins.\n */\n keyboardDismissMode?: WithDefault<'none' | 'on-drag', 'none'>,\n\n /**\n * Specifies the background color of the drawer. The default value is white.\n * If you want to set the opacity of the drawer, use rgba. Example:\n *\n * ```\n * return (\n * \n * \n * );\n * ```\n */\n drawerBackgroundColor: ColorValue,\n\n /**\n * Specifies the side of the screen from which the drawer will slide in.\n */\n drawerPosition?: WithDefault<'left' | 'right', 'left'>,\n\n /**\n * Specifies the width of the drawer, more precisely the width of the view that be pulled in\n * from the edge of the window.\n */\n\n drawerWidth?: WithDefault,\n\n /**\n * Specifies the lock mode of the drawer. The drawer can be locked in 3 states:\n * - unlocked (default), meaning that the drawer will respond (open/close) to touch gestures.\n * - locked-closed, meaning that the drawer will stay closed and not respond to gestures.\n * - locked-open, meaning that the drawer will stay opened and not respond to gestures.\n * The drawer may still be opened and closed programmatically (`openDrawer`/`closeDrawer`).\n */\n drawerLockMode?: WithDefault<\n 'unlocked' | 'locked-closed' | 'locked-open',\n 'unlocked',\n >,\n\n /**\n * Function called whenever there is an interaction with the navigation view.\n */\n onDrawerSlide?: ?DirectEventHandler,\n\n /**\n * Function called when the drawer state has changed. The drawer can be in 3 states:\n * - Idle, meaning there is no interaction with the navigation view happening at the time\n * - Dragging, meaning there is currently an interaction with the navigation view\n * - Settling, meaning that there was an interaction with the navigation view, and the\n * navigation view is now finishing its closing or opening animation\n */\n onDrawerStateChanged?: ?DirectEventHandler,\n\n /**\n * Function called whenever the navigation view has been opened.\n */\n onDrawerOpen?: ?DirectEventHandler,\n\n /**\n * Function called whenever the navigation view has been closed.\n */\n onDrawerClose?: ?DirectEventHandler,\n\n /**\n * Make the drawer take the entire screen and draw the background of the\n * status bar to allow it to open over the status bar. It will only have an\n * effect on API 21+.\n */\n statusBarBackgroundColor?: ?ColorValue,\n|}>;\n\ntype NativeType = HostComponent;\n\ninterface NativeCommands {\n +openDrawer: (viewRef: React.ElementRef) => void;\n +closeDrawer: (viewRef: React.ElementRef) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['openDrawer', 'closeDrawer'],\n});\n\nexport default (codegenNativeComponent(\n 'AndroidDrawerLayout',\n): NativeType);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {ViewProps} from '../Components/View/ViewPropTypes';\nimport type {HostComponent} from '../Renderer/shims/ReactNativeTypes';\nimport type {ImageBackgroundProps} from './ImageProps';\n\nimport View from '../Components/View/View';\nimport flattenStyle from '../StyleSheet/flattenStyle';\nimport StyleSheet from '../StyleSheet/StyleSheet';\nimport Image from './Image';\nimport * as React from 'react';\n\n/**\n * Very simple drop-in replacement for which supports nesting views.\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react';\n * import { AppRegistry, View, ImageBackground, Text } from 'react-native';\n *\n * class DisplayAnImageBackground extends Component {\n * render() {\n * return (\n * \n * React\n * \n * );\n * }\n * }\n *\n * // App registration and rendering\n * AppRegistry.registerComponent('DisplayAnImageBackground', () => DisplayAnImageBackground);\n * ```\n */\nclass ImageBackground extends React.Component {\n setNativeProps(props: Object) {\n // Work-around flow\n const viewRef = this._viewRef;\n if (viewRef) {\n viewRef.setNativeProps(props);\n }\n }\n\n _viewRef: ?React.ElementRef = null;\n\n _captureRef = (\n ref: null | React$ElementRef<\n React$AbstractComponent<\n ViewProps,\n React.ElementRef>,\n >,\n >,\n ) => {\n this._viewRef = ref;\n };\n\n render(): React.Node {\n const {\n children,\n style,\n imageStyle,\n imageRef,\n importantForAccessibility,\n ...props\n } = this.props;\n\n // $FlowFixMe[underconstrained-implicit-instantiation]\n const flattenedStyle = flattenStyle(style);\n return (\n \n overwrites width and height styles\n // (which is not quite correct), and these styles conflict with explicitly set styles\n // of and with our internal layout model here.\n // So, we have to proxy/reapply these styles explicitly for actual component.\n // This workaround should be removed after implementing proper support of\n // intrinsic content size of the .\n width: flattenedStyle?.width,\n height: flattenedStyle?.height,\n },\n imageStyle,\n ]}\n ref={imageRef}\n />\n {children}\n \n );\n }\n}\n\nmodule.exports = ImageBackground;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport StyleSheet, {\n type ColorValue,\n type ViewStyleProp,\n} from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport RCTInputAccessoryViewNativeComponent from './RCTInputAccessoryViewNativeComponent';\nimport * as React from 'react';\n\n/**\n * Note: iOS only\n *\n * A component which enables customization of the keyboard input accessory view.\n * The input accessory view is displayed above the keyboard whenever a TextInput\n * has focus. This component can be used to create custom toolbars.\n *\n * To use this component wrap your custom toolbar with the\n * InputAccessoryView component, and set a nativeID. Then, pass that nativeID\n * as the inputAccessoryViewID of whatever TextInput you desire. A simple\n * example:\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react';\n * import { AppRegistry, TextInput, InputAccessoryView, Button } from 'react-native';\n *\n * export default class UselessTextInput extends Component {\n * constructor(props) {\n * super(props);\n * this.state = {text: 'Placeholder Text'};\n * }\n *\n * render() {\n * const inputAccessoryViewID = \"uniqueID\";\n * return (\n * \n * \n * this.setState({text})}\n * value={this.state.text}\n * />\n * \n * \n * this.setState({text: 'Placeholder Text'})}\n * title=\"Reset Text\"\n * />\n * \n * \n * );\n * }\n * }\n *\n * // skip this line if using Create React Native App\n * AppRegistry.registerComponent('AwesomeProject', () => UselessTextInput);\n * ```\n *\n * This component can also be used to create sticky text inputs (text inputs\n * which are anchored to the top of the keyboard). To do this, wrap a\n * TextInput with the InputAccessoryView component, and don't set a nativeID.\n * For an example, look at InputAccessoryViewExample.js in RNTester.\n */\n\ntype Props = $ReadOnly<{|\n +children: React.Node,\n /**\n * An ID which is used to associate this `InputAccessoryView` to\n * specified TextInput(s).\n */\n nativeID?: ?string,\n style?: ?ViewStyleProp,\n backgroundColor?: ?ColorValue,\n|}>;\n\nclass InputAccessoryView extends React.Component {\n render(): React.Node {\n if (Platform.OS === 'ios') {\n if (React.Children.count(this.props.children) === 0) {\n return null;\n }\n\n return (\n \n {this.props.children}\n \n );\n } else {\n console.warn(' is only supported on iOS.');\n return null;\n }\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n position: 'absolute',\n },\n});\n\nmodule.exports = InputAccessoryView;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n backgroundColor?: ?ColorValue,\n|}>;\n\nexport default (codegenNativeComponent('InputAccessory', {\n interfaceOnly: true,\n paperComponentName: 'RCTInputAccessoryView',\n excludedPlatforms: ['android'],\n}): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {ViewStyleProp} from '../../StyleSheet/StyleSheet';\nimport type {\n ViewLayout,\n ViewLayoutEvent,\n ViewProps,\n} from '../View/ViewPropTypes';\nimport type {KeyboardEvent, KeyboardMetrics} from './Keyboard';\n\nimport LayoutAnimation from '../../LayoutAnimation/LayoutAnimation';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport {type EventSubscription} from '../../vendor/emitter/EventEmitter';\nimport AccessibilityInfo from '../AccessibilityInfo/AccessibilityInfo';\nimport View from '../View/View';\nimport Keyboard from './Keyboard';\nimport * as React from 'react';\n\ntype Props = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * Specify how to react to the presence of the keyboard.\n */\n behavior?: ?('height' | 'position' | 'padding'),\n\n /**\n * Style of the content container when `behavior` is 'position'.\n */\n contentContainerStyle?: ?ViewStyleProp,\n\n /**\n * Controls whether this `KeyboardAvoidingView` instance should take effect.\n * This is useful when more than one is on the screen. Defaults to true.\n */\n enabled?: ?boolean,\n\n /**\n * Distance between the top of the user screen and the React Native view. This\n * may be non-zero in some cases. Defaults to 0.\n */\n keyboardVerticalOffset?: number,\n|}>;\n\ntype State = {|\n bottom: number,\n|};\n\n/**\n * View that moves out of the way when the keyboard appears by automatically\n * adjusting its height, position, or bottom padding.\n */\nclass KeyboardAvoidingView extends React.Component {\n _frame: ?ViewLayout = null;\n _keyboardEvent: ?KeyboardEvent = null;\n _subscriptions: Array = [];\n viewRef: {current: React.ElementRef | null, ...};\n _initialFrameHeight: number = 0;\n\n constructor(props: Props) {\n super(props);\n this.state = {bottom: 0};\n this.viewRef = React.createRef();\n }\n\n async _relativeKeyboardHeight(\n keyboardFrame: KeyboardMetrics,\n ): Promise {\n const frame = this._frame;\n if (!frame || !keyboardFrame) {\n return 0;\n }\n\n // On iOS when Prefer Cross-Fade Transitions is enabled, the keyboard position\n // & height is reported differently (0 instead of Y position value matching height of frame)\n if (\n Platform.OS === 'ios' &&\n keyboardFrame.screenY === 0 &&\n (await AccessibilityInfo.prefersCrossFadeTransitions())\n ) {\n return 0;\n }\n\n const keyboardY =\n keyboardFrame.screenY - (this.props.keyboardVerticalOffset ?? 0);\n\n if (this.props.behavior === 'height') {\n return Math.max(\n this.state.bottom + frame.y + frame.height - keyboardY,\n 0,\n );\n }\n\n // Calculate the displacement needed for the view such that it\n // no longer overlaps with the keyboard\n return Math.max(frame.y + frame.height - keyboardY, 0);\n }\n\n _onKeyboardChange = (event: ?KeyboardEvent) => {\n this._keyboardEvent = event;\n // $FlowFixMe[unused-promise]\n this._updateBottomIfNecessary();\n };\n\n _onLayout = async (event: ViewLayoutEvent) => {\n const wasFrameNull = this._frame == null;\n this._frame = event.nativeEvent.layout;\n if (!this._initialFrameHeight) {\n // save the initial frame height, before the keyboard is visible\n this._initialFrameHeight = this._frame.height;\n }\n\n if (wasFrameNull) {\n await this._updateBottomIfNecessary();\n }\n\n if (this.props.onLayout) {\n this.props.onLayout(event);\n }\n };\n\n _updateBottomIfNecessary = async () => {\n if (this._keyboardEvent == null) {\n this.setState({bottom: 0});\n return;\n }\n\n const {duration, easing, endCoordinates} = this._keyboardEvent;\n const height = await this._relativeKeyboardHeight(endCoordinates);\n\n if (this.state.bottom === height) {\n return;\n }\n\n if (duration && easing) {\n LayoutAnimation.configureNext({\n // We have to pass the duration equal to minimal accepted duration defined here: RCTLayoutAnimation.m\n duration: duration > 10 ? duration : 10,\n update: {\n duration: duration > 10 ? duration : 10,\n type: LayoutAnimation.Types[easing] || 'keyboard',\n },\n });\n }\n this.setState({bottom: height});\n };\n\n componentDidMount(): void {\n if (Platform.OS === 'ios') {\n this._subscriptions = [\n Keyboard.addListener('keyboardWillChangeFrame', this._onKeyboardChange),\n ];\n } else {\n this._subscriptions = [\n Keyboard.addListener('keyboardDidHide', this._onKeyboardChange),\n Keyboard.addListener('keyboardDidShow', this._onKeyboardChange),\n ];\n }\n }\n\n componentWillUnmount(): void {\n this._subscriptions.forEach(subscription => {\n subscription.remove();\n });\n }\n\n render(): React.Node {\n const {\n behavior,\n children,\n contentContainerStyle,\n enabled = true,\n // eslint-disable-next-line no-unused-vars\n keyboardVerticalOffset = 0,\n style,\n onLayout,\n ...props\n } = this.props;\n const bottomHeight = enabled === true ? this.state.bottom : 0;\n switch (behavior) {\n case 'height':\n let heightStyle;\n if (this._frame != null && this.state.bottom > 0) {\n // Note that we only apply a height change when there is keyboard present,\n // i.e. this.state.bottom is greater than 0. If we remove that condition,\n // this.frame.height will never go back to its original value.\n // When height changes, we need to disable flex.\n heightStyle = {\n height: this._initialFrameHeight - bottomHeight,\n flex: 0,\n };\n }\n return (\n \n {children}\n \n );\n\n case 'position':\n return (\n \n \n {children}\n \n \n );\n\n case 'padding':\n return (\n \n {children}\n \n );\n\n default:\n return (\n \n {children}\n \n );\n }\n }\n}\n\nexport default KeyboardAvoidingView;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {ViewProps} from '../Components/View/ViewPropTypes';\nimport type {RootTag} from '../ReactNative/RootTag';\nimport type {DirectEventHandler} from '../Types/CodegenTypes';\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport {type EventSubscription} from '../vendor/emitter/EventEmitter';\nimport ModalInjection from './ModalInjection';\nimport NativeModalManager from './NativeModalManager';\nimport RCTModalHostView from './RCTModalHostViewNativeComponent';\nimport {VirtualizedListContextResetter} from '@react-native/virtualized-lists';\n\nconst ScrollView = require('../Components/ScrollView/ScrollView');\nconst View = require('../Components/View/View');\nconst AppContainer = require('../ReactNative/AppContainer');\nconst I18nManager = require('../ReactNative/I18nManager');\nconst {RootTagContext} = require('../ReactNative/RootTag');\nconst StyleSheet = require('../StyleSheet/StyleSheet');\nconst Platform = require('../Utilities/Platform');\nconst React = require('react');\n\ntype ModalEventDefinitions = {\n modalDismissed: [{modalID: number}],\n};\n\nconst ModalEventEmitter =\n Platform.OS === 'ios' && NativeModalManager != null\n ? new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeModalManager,\n )\n : null;\n\n/**\n * The Modal component is a simple way to present content above an enclosing view.\n *\n * See https://reactnative.dev/docs/modal\n */\n\n// In order to route onDismiss callbacks, we need to uniquely identifier each\n// on screen. There can be different ones, either nested or as siblings.\n// We cannot pass the onDismiss callback to native as the view will be\n// destroyed before the callback is fired.\nlet uniqueModalIdentifier = 0;\n\ntype OrientationChangeEvent = $ReadOnly<{|\n orientation: 'portrait' | 'landscape',\n|}>;\n\nexport type Props = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * The `animationType` prop controls how the modal animates.\n *\n * See https://reactnative.dev/docs/modal#animationtype\n */\n animationType?: ?('none' | 'slide' | 'fade'),\n\n /**\n * The `presentationStyle` prop controls how the modal appears.\n *\n * See https://reactnative.dev/docs/modal#presentationstyle\n */\n presentationStyle?: ?(\n | 'fullScreen'\n | 'pageSheet'\n | 'formSheet'\n | 'overFullScreen'\n ),\n\n /**\n * The `transparent` prop determines whether your modal will fill the\n * entire view.\n *\n * See https://reactnative.dev/docs/modal#transparent\n */\n transparent?: ?boolean,\n\n /**\n * The `statusBarTranslucent` prop determines whether your modal should go under\n * the system statusbar.\n *\n * See https://reactnative.dev/docs/modal.html#statusbartranslucent-android\n */\n statusBarTranslucent?: ?boolean,\n\n /**\n * The `hardwareAccelerated` prop controls whether to force hardware\n * acceleration for the underlying window.\n *\n * This prop works only on Android.\n *\n * See https://reactnative.dev/docs/modal#hardwareaccelerated\n */\n hardwareAccelerated?: ?boolean,\n\n /**\n * The `visible` prop determines whether your modal is visible.\n *\n * See https://reactnative.dev/docs/modal#visible\n */\n visible?: ?boolean,\n\n /**\n * The `onRequestClose` callback is called when the user taps the hardware\n * back button on Android or the menu button on Apple TV.\n *\n * This is required on Apple TV and Android.\n *\n * See https://reactnative.dev/docs/modal#onrequestclose\n */\n onRequestClose?: ?DirectEventHandler,\n\n /**\n * The `onShow` prop allows passing a function that will be called once the\n * modal has been shown.\n *\n * See https://reactnative.dev/docs/modal#onshow\n */\n onShow?: ?DirectEventHandler,\n\n /**\n * The `onDismiss` prop allows passing a function that will be called once\n * the modal has been dismissed.\n *\n * See https://reactnative.dev/docs/modal#ondismiss\n */\n onDismiss?: ?() => mixed,\n\n /**\n * The `supportedOrientations` prop allows the modal to be rotated to any of the specified orientations.\n *\n * See https://reactnative.dev/docs/modal#supportedorientations\n */\n supportedOrientations?: ?$ReadOnlyArray<\n | 'portrait'\n | 'portrait-upside-down'\n | 'landscape'\n | 'landscape-left'\n | 'landscape-right',\n >,\n\n /**\n * The `onOrientationChange` callback is called when the orientation changes while the modal is being displayed.\n *\n * See https://reactnative.dev/docs/modal#onorientationchange\n */\n onOrientationChange?: ?DirectEventHandler,\n|}>;\n\nfunction confirmProps(props: Props) {\n if (__DEV__) {\n if (\n props.presentationStyle &&\n props.presentationStyle !== 'overFullScreen' &&\n props.transparent === true\n ) {\n console.warn(\n `Modal with '${props.presentationStyle}' presentation style and 'transparent' value is not supported.`,\n );\n }\n }\n}\n\nclass Modal extends React.Component {\n static defaultProps: {|hardwareAccelerated: boolean, visible: boolean|} = {\n visible: true,\n hardwareAccelerated: false,\n };\n\n static contextType: React.Context = RootTagContext;\n\n _identifier: number;\n _eventSubscription: ?EventSubscription;\n\n constructor(props: Props) {\n super(props);\n if (__DEV__) {\n confirmProps(props);\n }\n this._identifier = uniqueModalIdentifier++;\n }\n\n componentDidMount() {\n // 'modalDismissed' is for the old renderer in iOS only\n if (ModalEventEmitter) {\n this._eventSubscription = ModalEventEmitter.addListener(\n 'modalDismissed',\n event => {\n if (event.modalID === this._identifier && this.props.onDismiss) {\n this.props.onDismiss();\n }\n },\n );\n }\n }\n\n componentWillUnmount() {\n if (this._eventSubscription) {\n this._eventSubscription.remove();\n }\n }\n\n componentDidUpdate() {\n if (__DEV__) {\n confirmProps(this.props);\n }\n }\n\n render(): React.Node {\n if (this.props.visible !== true) {\n return null;\n }\n\n const containerStyles = {\n backgroundColor:\n this.props.transparent === true ? 'transparent' : 'white',\n };\n\n let animationType = this.props.animationType || 'none';\n\n let presentationStyle = this.props.presentationStyle;\n if (!presentationStyle) {\n presentationStyle = 'fullScreen';\n if (this.props.transparent === true) {\n presentationStyle = 'overFullScreen';\n }\n }\n\n const innerChildren = __DEV__ ? (\n {this.props.children}\n ) : (\n this.props.children\n );\n\n return (\n {\n if (this.props.onDismiss) {\n this.props.onDismiss();\n }\n }}\n visible={this.props.visible}\n statusBarTranslucent={this.props.statusBarTranslucent}\n identifier={this._identifier}\n style={styles.modal}\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n onStartShouldSetResponder={this._shouldSetResponder}\n supportedOrientations={this.props.supportedOrientations}\n onOrientationChange={this.props.onOrientationChange}\n testID={this.props.testID}>\n \n \n \n {innerChildren}\n \n \n \n \n );\n }\n\n // We don't want any responder events bubbling out of the modal.\n _shouldSetResponder(): boolean {\n return true;\n }\n}\n\nconst side = I18nManager.getConstants().isRTL ? 'right' : 'left';\nconst styles = StyleSheet.create({\n modal: {\n position: 'absolute',\n },\n container: {\n /* $FlowFixMe[invalid-computed-prop] (>=0.111.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.111 was deployed. To see\n * the error, delete this comment and run Flow. */\n [side]: 0,\n top: 0,\n flex: 1,\n },\n});\n\nconst ExportedModal: React.AbstractComponent<\n React.ElementConfig,\n> = ModalInjection.unstable_Modal ?? Modal;\n\nmodule.exports = ExportedModal;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport typeof Modal from './Modal';\n\nexport default {\n unstable_Modal: (null: ?Modal),\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n // RCTEventEmitter\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.get('ModalManager'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {ViewProps} from '../Components/View/ViewPropTypes';\nimport type {HostComponent} from '../Renderer/shims/ReactNativeTypes';\nimport type {\n DirectEventHandler,\n Int32,\n WithDefault,\n} from '../Types/CodegenTypes';\n\nimport codegenNativeComponent from '../Utilities/codegenNativeComponent';\n\ntype OrientationChangeEvent = $ReadOnly<{|\n orientation: 'portrait' | 'landscape',\n|}>;\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * The `animationType` prop controls how the modal animates.\n *\n * See https://reactnative.dev/docs/modal#animationtype\n */\n animationType?: WithDefault<'none' | 'slide' | 'fade', 'none'>,\n\n /**\n * The `presentationStyle` prop controls how the modal appears.\n *\n * See https://reactnative.dev/docs/modal#presentationstyle\n */\n presentationStyle?: WithDefault<\n 'fullScreen' | 'pageSheet' | 'formSheet' | 'overFullScreen',\n 'fullScreen',\n >,\n\n /**\n * The `transparent` prop determines whether your modal will fill the\n * entire view.\n *\n * See https://reactnative.dev/docs/modal#transparent\n */\n transparent?: WithDefault,\n\n /**\n * The `statusBarTranslucent` prop determines whether your modal should go under\n * the system statusbar.\n *\n * See https://reactnative.dev/docs/modal#statusBarTranslucent\n */\n statusBarTranslucent?: WithDefault,\n\n /**\n * The `hardwareAccelerated` prop controls whether to force hardware\n * acceleration for the underlying window.\n *\n * See https://reactnative.dev/docs/modal#hardwareaccelerated\n */\n hardwareAccelerated?: WithDefault,\n\n /**\n * The `onRequestClose` callback is called when the user taps the hardware\n * back button on Android or the menu button on Apple TV.\n *\n * This is required on Apple TV and Android.\n *\n * See https://reactnative.dev/docs/modal#onrequestclose\n */\n onRequestClose?: ?DirectEventHandler,\n\n /**\n * The `onShow` prop allows passing a function that will be called once the\n * modal has been shown.\n *\n * See https://reactnative.dev/docs/modal#onshow\n */\n onShow?: ?DirectEventHandler,\n\n /**\n * The `onDismiss` prop allows passing a function that will be called once\n * the modal has been dismissed.\n *\n * See https://reactnative.dev/docs/modal#ondismiss\n */\n onDismiss?: ?DirectEventHandler,\n\n /**\n * The `visible` prop determines whether your modal is visible.\n *\n * See https://reactnative.dev/docs/modal#visible\n */\n visible?: WithDefault,\n\n /**\n * Deprecated. Use the `animationType` prop instead.\n */\n animated?: WithDefault,\n\n /**\n * The `supportedOrientations` prop allows the modal to be rotated to any of the specified orientations.\n *\n * See https://reactnative.dev/docs/modal#supportedorientations\n */\n supportedOrientations?: WithDefault<\n $ReadOnlyArray<\n | 'portrait'\n | 'portrait-upside-down'\n | 'landscape'\n | 'landscape-left'\n | 'landscape-right',\n >,\n 'portrait',\n >,\n\n /**\n * The `onOrientationChange` callback is called when the orientation changes while the modal is being displayed.\n *\n * See https://reactnative.dev/docs/modal#onorientationchange\n */\n onOrientationChange?: ?DirectEventHandler,\n\n /**\n * The `identifier` is the unique number for identifying Modal components.\n */\n identifier?: WithDefault,\n|}>;\n\nexport default (codegenNativeComponent('ModalHostView', {\n interfaceOnly: true,\n paperComponentName: 'RCTModalHostView',\n}): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport NativeI18nManager from './NativeI18nManager';\n\nconst i18nConstants: {|\n doLeftAndRightSwapInRTL: boolean,\n isRTL: boolean,\n localeIdentifier?: ?string,\n|} = getI18nManagerConstants();\n\nfunction getI18nManagerConstants() {\n if (NativeI18nManager) {\n const {isRTL, doLeftAndRightSwapInRTL, localeIdentifier} =\n NativeI18nManager.getConstants();\n return {isRTL, doLeftAndRightSwapInRTL, localeIdentifier};\n }\n\n return {\n isRTL: false,\n doLeftAndRightSwapInRTL: true,\n };\n}\n\nmodule.exports = {\n getConstants: (): {|\n doLeftAndRightSwapInRTL: boolean,\n isRTL: boolean,\n localeIdentifier: ?string,\n |} => {\n return i18nConstants;\n },\n\n allowRTL: (shouldAllow: boolean) => {\n if (!NativeI18nManager) {\n return;\n }\n\n NativeI18nManager.allowRTL(shouldAllow);\n },\n\n forceRTL: (shouldForce: boolean) => {\n if (!NativeI18nManager) {\n return;\n }\n\n NativeI18nManager.forceRTL(shouldForce);\n },\n\n swapLeftAndRightInRTL: (flipStyles: boolean) => {\n if (!NativeI18nManager) {\n return;\n }\n\n NativeI18nManager.swapLeftAndRightInRTL(flipStyles);\n },\n\n isRTL: i18nConstants.isRTL,\n doLeftAndRightSwapInRTL: i18nConstants.doLeftAndRightSwapInRTL,\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n isRTL: boolean,\n doLeftAndRightSwapInRTL: boolean,\n localeIdentifier: ?string,\n |};\n allowRTL: (allowRTL: boolean) => void;\n forceRTL: (forceRTL: boolean) => void;\n swapLeftAndRightInRTL: (flipStyles: boolean) => void;\n}\n\nexport default (TurboModuleRegistry.get('I18nManager'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n LayoutEvent,\n MouseEvent,\n PressEvent,\n} from '../../Types/CoreEventTypes';\nimport type {\n AccessibilityActionEvent,\n AccessibilityActionInfo,\n AccessibilityRole,\n AccessibilityState,\n AccessibilityValue,\n} from '../View/ViewAccessibility';\n\nimport {PressabilityDebugView} from '../../Pressability/PressabilityDebug';\nimport usePressability from '../../Pressability/usePressability';\nimport {type RectOrSize} from '../../StyleSheet/Rect';\nimport View from '../View/View';\nimport useAndroidRippleForView, {\n type RippleConfig,\n} from './useAndroidRippleForView';\nimport * as React from 'react';\nimport {useImperativeHandle, useMemo, useRef, useState} from 'react';\n\ntype ViewStyleProp = $ElementType, 'style'>;\n\nexport type StateCallbackType = $ReadOnly<{|\n pressed: boolean,\n|}>;\n\ntype Props = $ReadOnly<{|\n /**\n * Accessibility.\n */\n accessibilityActions?: ?$ReadOnlyArray,\n accessibilityElementsHidden?: ?boolean,\n accessibilityHint?: ?Stringish,\n accessibilityLanguage?: ?Stringish,\n accessibilityIgnoresInvertColors?: ?boolean,\n accessibilityLabel?: ?Stringish,\n accessibilityLiveRegion?: ?('none' | 'polite' | 'assertive'),\n accessibilityRole?: ?AccessibilityRole,\n accessibilityState?: ?AccessibilityState,\n accessibilityValue?: ?AccessibilityValue,\n 'aria-valuemax'?: AccessibilityValue['max'],\n 'aria-valuemin'?: AccessibilityValue['min'],\n 'aria-valuenow'?: AccessibilityValue['now'],\n 'aria-valuetext'?: AccessibilityValue['text'],\n accessibilityViewIsModal?: ?boolean,\n 'aria-modal'?: ?boolean,\n accessible?: ?boolean,\n\n /**\n * alias for accessibilityState\n *\n * see https://reactnative.dev/docs/accessibility#accessibilitystate\n */\n 'aria-busy'?: ?boolean,\n 'aria-checked'?: ?boolean | 'mixed',\n 'aria-disabled'?: ?boolean,\n 'aria-expanded'?: ?boolean,\n 'aria-selected'?: ?boolean,\n /**\n * A value indicating whether the accessibility elements contained within\n * this accessibility element are hidden.\n */\n 'aria-hidden'?: ?boolean,\n 'aria-live'?: ?('polite' | 'assertive' | 'off'),\n focusable?: ?boolean,\n importantForAccessibility?: ?('auto' | 'yes' | 'no' | 'no-hide-descendants'),\n onAccessibilityAction?: ?(event: AccessibilityActionEvent) => mixed,\n\n /**\n * Whether a press gesture can be interrupted by a parent gesture such as a\n * scroll event. Defaults to true.\n */\n cancelable?: ?boolean,\n\n /**\n * Either children or a render prop that receives a boolean reflecting whether\n * the component is currently pressed.\n */\n children: React.Node | ((state: StateCallbackType) => React.Node),\n\n /**\n * Duration to wait after hover in before calling `onHoverIn`.\n */\n delayHoverIn?: ?number,\n\n /**\n * Duration to wait after hover out before calling `onHoverOut`.\n */\n delayHoverOut?: ?number,\n\n /**\n * Duration (in milliseconds) from `onPressIn` before `onLongPress` is called.\n */\n delayLongPress?: ?number,\n\n /**\n * Whether the press behavior is disabled.\n */\n disabled?: ?boolean,\n\n /**\n * Additional distance outside of this view in which a press is detected.\n */\n hitSlop?: ?RectOrSize,\n\n /**\n * Additional distance outside of this view in which a touch is considered a\n * press before `onPressOut` is triggered.\n */\n pressRetentionOffset?: ?RectOrSize,\n\n /**\n * Called when this view's layout changes.\n */\n onLayout?: ?(event: LayoutEvent) => mixed,\n\n /**\n * Called when the hover is activated to provide visual feedback.\n */\n onHoverIn?: ?(event: MouseEvent) => mixed,\n\n /**\n * Called when the hover is deactivated to undo visual feedback.\n */\n onHoverOut?: ?(event: MouseEvent) => mixed,\n\n /**\n * Called when a long-tap gesture is detected.\n */\n onLongPress?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when a single tap gesture is detected.\n */\n onPress?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when a touch is engaged before `onPress`.\n */\n onPressIn?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when a touch is released before `onPress`.\n */\n onPressOut?: ?(event: PressEvent) => mixed,\n\n /**\n * Either view styles or a function that receives a boolean reflecting whether\n * the component is currently pressed and returns view styles.\n */\n style?: ViewStyleProp | ((state: StateCallbackType) => ViewStyleProp),\n\n /**\n * Identifier used to find this view in tests.\n */\n testID?: ?string,\n\n /**\n * If true, doesn't play system sound on touch.\n */\n android_disableSound?: ?boolean,\n\n /**\n * Enables the Android ripple effect and configures its color.\n */\n android_ripple?: ?RippleConfig,\n\n /**\n * Used only for documentation or testing (e.g. snapshot testing).\n */\n testOnly_pressed?: ?boolean,\n\n /**\n * Duration to wait after press down before calling `onPressIn`.\n */\n unstable_pressDelay?: ?number,\n /**\n * Web to Native Accessibility props\n * https://github.com/facebook/react-native/issues/34424\n */\n 'aria-label'?: ?string,\n|}>;\n\n/**\n * Component used to build display components that should respond to whether the\n * component is currently pressed or not.\n */\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\nfunction Pressable(props: Props, forwardedRef): React.Node {\n const {\n accessible,\n accessibilityState,\n 'aria-live': ariaLive,\n android_disableSound,\n android_ripple,\n 'aria-busy': ariaBusy,\n 'aria-checked': ariaChecked,\n 'aria-disabled': ariaDisabled,\n 'aria-expanded': ariaExpanded,\n 'aria-label': ariaLabel,\n 'aria-selected': ariaSelected,\n cancelable,\n children,\n delayHoverIn,\n delayHoverOut,\n delayLongPress,\n disabled,\n focusable,\n hitSlop,\n onHoverIn,\n onHoverOut,\n onLongPress,\n onPress,\n onPressIn,\n onPressOut,\n pressRetentionOffset,\n style,\n testOnly_pressed,\n unstable_pressDelay,\n ...restProps\n } = props;\n\n const viewRef = useRef | null>(null);\n useImperativeHandle(forwardedRef, () => viewRef.current);\n\n const android_rippleConfig = useAndroidRippleForView(android_ripple, viewRef);\n\n const [pressed, setPressed] = usePressState(testOnly_pressed === true);\n\n let _accessibilityState = {\n busy: ariaBusy ?? accessibilityState?.busy,\n checked: ariaChecked ?? accessibilityState?.checked,\n disabled: ariaDisabled ?? accessibilityState?.disabled,\n expanded: ariaExpanded ?? accessibilityState?.expanded,\n selected: ariaSelected ?? accessibilityState?.selected,\n };\n\n _accessibilityState =\n disabled != null ? {..._accessibilityState, disabled} : _accessibilityState;\n\n const accessibilityValue = {\n max: props['aria-valuemax'] ?? props.accessibilityValue?.max,\n min: props['aria-valuemin'] ?? props.accessibilityValue?.min,\n now: props['aria-valuenow'] ?? props.accessibilityValue?.now,\n text: props['aria-valuetext'] ?? props.accessibilityValue?.text,\n };\n\n const accessibilityLiveRegion =\n ariaLive === 'off' ? 'none' : ariaLive ?? props.accessibilityLiveRegion;\n\n const accessibilityLabel = ariaLabel ?? props.accessibilityLabel;\n const restPropsWithDefaults: React.ElementConfig = {\n ...restProps,\n ...android_rippleConfig?.viewProps,\n accessible: accessible !== false,\n accessibilityViewIsModal:\n restProps['aria-modal'] ?? restProps.accessibilityViewIsModal,\n accessibilityLiveRegion,\n accessibilityLabel,\n accessibilityState: _accessibilityState,\n focusable: focusable !== false,\n accessibilityValue,\n hitSlop,\n };\n\n const config = useMemo(\n () => ({\n cancelable,\n disabled,\n hitSlop,\n pressRectOffset: pressRetentionOffset,\n android_disableSound,\n delayHoverIn,\n delayHoverOut,\n delayLongPress,\n delayPressIn: unstable_pressDelay,\n onHoverIn,\n onHoverOut,\n onLongPress,\n onPress,\n onPressIn(event: PressEvent): void {\n if (android_rippleConfig != null) {\n android_rippleConfig.onPressIn(event);\n }\n setPressed(true);\n if (onPressIn != null) {\n onPressIn(event);\n }\n },\n onPressMove: android_rippleConfig?.onPressMove,\n onPressOut(event: PressEvent): void {\n if (android_rippleConfig != null) {\n android_rippleConfig.onPressOut(event);\n }\n setPressed(false);\n if (onPressOut != null) {\n onPressOut(event);\n }\n },\n }),\n [\n android_disableSound,\n android_rippleConfig,\n cancelable,\n delayHoverIn,\n delayHoverOut,\n delayLongPress,\n disabled,\n hitSlop,\n onHoverIn,\n onHoverOut,\n onLongPress,\n onPress,\n onPressIn,\n onPressOut,\n pressRetentionOffset,\n setPressed,\n unstable_pressDelay,\n ],\n );\n const eventHandlers = usePressability(config);\n\n return (\n \n {typeof children === 'function' ? children({pressed}) : children}\n {__DEV__ ? : null}\n \n );\n}\n\nfunction usePressState(forcePressed: boolean): [boolean, (boolean) => void] {\n const [pressed, setPressed] = useState(false);\n return [pressed || forcePressed, setPressed];\n}\n\nconst MemoedPressable = React.memo(React.forwardRef(Pressable));\nMemoedPressable.displayName = 'Pressable';\n\nexport default (MemoedPressable: React.AbstractComponent<\n Props,\n React.ElementRef,\n>);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {PressEvent} from '../../Types/CoreEventTypes';\n\nimport processColor from '../../StyleSheet/processColor';\nimport Platform from '../../Utilities/Platform';\nimport View from '../View/View';\nimport {Commands} from '../View/ViewNativeComponent';\nimport invariant from 'invariant';\nimport * as React from 'react';\nimport {useMemo} from 'react';\n\ntype NativeBackgroundProp = $ReadOnly<{|\n type: 'RippleAndroid',\n color: ?number,\n borderless: boolean,\n rippleRadius: ?number,\n|}>;\n\nexport type RippleConfig = {|\n color?: ColorValue,\n borderless?: boolean,\n radius?: number,\n foreground?: boolean,\n|};\n\n/**\n * Provides the event handlers and props for configuring the ripple effect on\n * supported versions of Android.\n */\nexport default function useAndroidRippleForView(\n rippleConfig: ?RippleConfig,\n viewRef: {|current: null | React.ElementRef|},\n): ?$ReadOnly<{|\n onPressIn: (event: PressEvent) => void,\n onPressMove: (event: PressEvent) => void,\n onPressOut: (event: PressEvent) => void,\n viewProps:\n | $ReadOnly<{|nativeBackgroundAndroid: NativeBackgroundProp|}>\n | $ReadOnly<{|nativeForegroundAndroid: NativeBackgroundProp|}>,\n|}> {\n const {color, borderless, radius, foreground} = rippleConfig ?? {};\n\n return useMemo(() => {\n if (\n Platform.OS === 'android' &&\n Platform.Version >= 21 &&\n (color != null || borderless != null || radius != null)\n ) {\n const processedColor = processColor(color);\n invariant(\n processedColor == null || typeof processedColor === 'number',\n 'Unexpected color given for Ripple color',\n );\n\n const nativeRippleValue = {\n type: 'RippleAndroid',\n color: processedColor,\n borderless: borderless === true,\n rippleRadius: radius,\n };\n\n return {\n viewProps:\n foreground === true\n ? {nativeForegroundAndroid: nativeRippleValue}\n : {nativeBackgroundAndroid: nativeRippleValue},\n onPressIn(event: PressEvent): void {\n const view = viewRef.current;\n if (view != null) {\n Commands.hotspotUpdate(\n view,\n event.nativeEvent.locationX ?? 0,\n event.nativeEvent.locationY ?? 0,\n );\n Commands.setPressed(view, true);\n }\n },\n onPressMove(event: PressEvent): void {\n const view = viewRef.current;\n if (view != null) {\n Commands.hotspotUpdate(\n view,\n event.nativeEvent.locationX ?? 0,\n event.nativeEvent.locationY ?? 0,\n );\n }\n },\n onPressOut(event: PressEvent): void {\n const view = viewRef.current;\n if (view != null) {\n Commands.setPressed(view, false);\n }\n },\n };\n }\n return null;\n }, [borderless, color, foreground, radius, viewRef]);\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport Platform from '../../Utilities/Platform';\nimport View from '../View/View';\nimport * as React from 'react';\n\nlet exported: React.AbstractComponent>;\n\n/**\n * Renders nested content and automatically applies paddings reflect the portion\n * of the view that is not covered by navigation bars, tab bars, toolbars, and\n * other ancestor views.\n *\n * Moreover, and most importantly, Safe Area's paddings reflect physical\n * limitation of the screen, such as rounded corners or camera notches (aka\n * sensor housing area on iPhone X).\n */\nif (Platform.OS === 'android') {\n exported = View;\n} else {\n exported = require('./RCTSafeAreaViewNativeComponent').default;\n}\n\nexport default exported;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n // No props\n|}>;\n\nexport default (codegenNativeComponent('SafeAreaView', {\n paperComponentName: 'RCTSafeAreaView',\n interfaceOnly: true,\n}): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n * @generate-docs\n */\n\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {SyntheticEvent} from '../../Types/CoreEventTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport useMergeRefs from '../../Utilities/useMergeRefs';\nimport AndroidSwitchNativeComponent, {\n Commands as AndroidSwitchCommands,\n} from './AndroidSwitchNativeComponent';\nimport SwitchNativeComponent, {\n Commands as SwitchCommands,\n} from './SwitchNativeComponent';\nimport * as React from 'react';\n\ntype SwitchChangeEvent = SyntheticEvent<\n $ReadOnly<{|\n value: boolean,\n target: number,\n |}>,\n>;\n\nexport type Props = $ReadOnly<{|\n ...ViewProps,\n\n /**\n If true the user won't be able to toggle the switch.\n\n @default false\n */\n disabled?: ?boolean,\n\n /**\n The value of the switch. If true the switch will be turned on.\n\n @default false\n */\n value?: ?boolean,\n\n /**\n Color of the foreground switch grip. If this is set on iOS, the switch grip will lose its drop shadow.\n */\n thumbColor?: ?ColorValue,\n\n /**\n Custom colors for the switch track.\n\n _iOS_: When the switch value is false, the track shrinks into the border. If you want to change the\n color of the background exposed by the shrunken track, use\n [`ios_backgroundColor`](https://reactnative.dev/docs/switch#ios_backgroundColor).\n */\n trackColor?: ?$ReadOnly<{|\n false?: ?ColorValue,\n true?: ?ColorValue,\n |}>,\n\n /**\n On iOS, custom color for the background. This background color can be\n seen either when the switch value is false or when the switch is\n disabled (and the switch is translucent).\n */\n ios_backgroundColor?: ?ColorValue,\n\n /**\n Invoked when the user tries to change the value of the switch. Receives\n the change event as an argument. If you want to only receive the new\n value, use `onValueChange` instead.\n */\n onChange?: ?(event: SwitchChangeEvent) => Promise | void,\n\n /**\n Invoked when the user tries to change the value of the switch. Receives\n the new value as an argument. If you want to instead receive an event,\n use `onChange`.\n */\n onValueChange?: ?(value: boolean) => Promise | void,\n|}>;\nconst returnsFalse = () => false;\nconst returnsTrue = () => true;\n\n/**\n Renders a boolean input.\n\n This is a controlled component that requires an `onValueChange`\n callback that updates the `value` prop in order for the component to\n reflect user actions. If the `value` prop is not updated, the\n component will continue to render the supplied `value` prop instead of\n the expected result of any user actions.\n\n ```SnackPlayer name=Switch\n import React, { useState } from \"react\";\n import { View, Switch, StyleSheet } from \"react-native\";\n\n const App = () => {\n const [isEnabled, setIsEnabled] = useState(false);\n const toggleSwitch = () => setIsEnabled(previousState => !previousState);\n\n return (\n \n \n \n );\n }\n\n const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\"\n }\n });\n\n export default App;\n ```\n */\n\nconst SwitchWithForwardedRef: React.AbstractComponent<\n Props,\n React.ElementRef<\n typeof SwitchNativeComponent | typeof AndroidSwitchNativeComponent,\n >,\n> = React.forwardRef(function Switch(props, forwardedRef): React.Node {\n const {\n disabled,\n ios_backgroundColor,\n onChange,\n onValueChange,\n style,\n thumbColor,\n trackColor,\n value,\n ...restProps\n } = props;\n const trackColorForFalse = trackColor?.false;\n const trackColorForTrue = trackColor?.true;\n\n const nativeSwitchRef = React.useRef | null>(null);\n\n const ref = useMergeRefs(nativeSwitchRef, forwardedRef);\n\n const [native, setNative] = React.useState({value: (null: ?boolean)});\n\n const handleChange = (event: SwitchChangeEvent) => {\n // $FlowFixMe[unused-promise]\n onChange?.(event);\n // $FlowFixMe[unused-promise]\n onValueChange?.(event.nativeEvent.value);\n setNative({value: event.nativeEvent.value});\n };\n\n React.useLayoutEffect(() => {\n // This is necessary in case native updates the switch and JS decides\n // that the update should be ignored and we should stick with the value\n // that we have in JS.\n const jsValue = value === true;\n const shouldUpdateNativeSwitch =\n native.value != null && native.value !== jsValue;\n if (\n shouldUpdateNativeSwitch &&\n nativeSwitchRef.current?.setNativeProps != null\n ) {\n if (Platform.OS === 'android') {\n AndroidSwitchCommands.setNativeValue(nativeSwitchRef.current, jsValue);\n } else {\n SwitchCommands.setValue(nativeSwitchRef.current, jsValue);\n }\n }\n }, [value, native]);\n\n if (Platform.OS === 'android') {\n const {accessibilityState} = restProps;\n const _disabled =\n disabled != null ? disabled : accessibilityState?.disabled;\n\n const _accessibilityState =\n _disabled !== accessibilityState?.disabled\n ? {...accessibilityState, disabled: _disabled}\n : accessibilityState;\n\n const platformProps = {\n accessibilityState: _accessibilityState,\n enabled: _disabled !== true,\n on: value === true,\n style,\n thumbTintColor: thumbColor,\n trackColorForFalse: trackColorForFalse,\n trackColorForTrue: trackColorForTrue,\n trackTintColor: value === true ? trackColorForTrue : trackColorForFalse,\n };\n\n return (\n \n );\n } else {\n const platformProps = {\n disabled,\n onTintColor: trackColorForTrue,\n style: StyleSheet.compose(\n {height: 31, width: 51},\n StyleSheet.compose(\n style,\n ios_backgroundColor == null\n ? null\n : {\n backgroundColor: ios_backgroundColor,\n borderRadius: 16,\n },\n ),\n ),\n thumbTintColor: thumbColor,\n tintColor: trackColorForFalse,\n value: value === true,\n };\n\n return (\n \n );\n }\n});\n\nexport default SwitchWithForwardedRef;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n BubblingEventHandler,\n Int32,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\nimport * as React from 'react';\n\ntype SwitchChangeEvent = $ReadOnly<{|\n value: boolean,\n target: Int32,\n|}>;\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n // Props\n disabled?: WithDefault,\n enabled?: WithDefault,\n thumbColor?: ?ColorValue,\n trackColorForFalse?: ?ColorValue,\n trackColorForTrue?: ?ColorValue,\n value?: WithDefault,\n on?: WithDefault,\n thumbTintColor?: ?ColorValue,\n trackTintColor?: ?ColorValue,\n\n // Events\n onChange?: BubblingEventHandler,\n|}>;\n\ntype NativeType = HostComponent;\n\ninterface NativeCommands {\n +setNativeValue: (\n viewRef: React.ElementRef,\n value: boolean,\n ) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['setNativeValue'],\n});\n\nexport default (codegenNativeComponent('AndroidSwitch', {\n interfaceOnly: true,\n}): NativeType);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n BubblingEventHandler,\n Int32,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\nimport * as React from 'react';\n\ntype SwitchChangeEvent = $ReadOnly<{|\n value: boolean,\n target: Int32,\n|}>;\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n // Props\n disabled?: WithDefault,\n value?: WithDefault,\n tintColor?: ?ColorValue,\n onTintColor?: ?ColorValue,\n thumbTintColor?: ?ColorValue,\n\n // Deprecated props\n thumbColor?: ?ColorValue,\n trackColorForFalse?: ?ColorValue,\n trackColorForTrue?: ?ColorValue,\n\n // Events\n onChange?: ?BubblingEventHandler,\n|}>;\n\ntype ComponentType = HostComponent;\n\ninterface NativeCommands {\n +setValue: (viewRef: React.ElementRef, value: boolean) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['setValue'],\n});\n\nexport default (codegenNativeComponent('Switch', {\n paperComponentName: 'RCTSwitch',\n excludedPlatforms: ['android'],\n}): ComponentType);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {\n PressEvent,\n ScrollEvent,\n SyntheticEvent,\n} from '../../Types/CoreEventTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\nimport type {TextInputType} from './TextInput.flow';\n\nimport usePressability from '../../Pressability/usePressability';\nimport flattenStyle from '../../StyleSheet/flattenStyle';\nimport StyleSheet, {\n type ColorValue,\n type TextStyleProp,\n type ViewStyleProp,\n} from '../../StyleSheet/StyleSheet';\nimport Text from '../../Text/Text';\nimport TextAncestor from '../../Text/TextAncestor';\nimport Platform from '../../Utilities/Platform';\nimport useMergeRefs from '../../Utilities/useMergeRefs';\nimport TextInputState from './TextInputState';\nimport invariant from 'invariant';\nimport nullthrows from 'nullthrows';\nimport * as React from 'react';\nimport {useCallback, useLayoutEffect, useRef, useState} from 'react';\n\ntype ReactRefSetter = {current: null | T, ...} | ((ref: null | T) => mixed);\ntype TextInputInstance = React.ElementRef> & {\n +clear: () => void,\n +isFocused: () => boolean,\n +getNativeRef: () => ?React.ElementRef>,\n +setSelection: (start: number, end: number) => void,\n};\n\nlet AndroidTextInput;\nlet AndroidTextInputCommands;\nlet RCTSinglelineTextInputView;\nlet RCTSinglelineTextInputNativeCommands;\nlet RCTMultilineTextInputView;\nlet RCTMultilineTextInputNativeCommands;\n\nif (Platform.OS === 'android') {\n AndroidTextInput = require('./AndroidTextInputNativeComponent').default;\n AndroidTextInputCommands =\n require('./AndroidTextInputNativeComponent').Commands;\n} else if (Platform.OS === 'ios') {\n RCTSinglelineTextInputView =\n require('./RCTSingelineTextInputNativeComponent').default;\n RCTSinglelineTextInputNativeCommands =\n require('./RCTSingelineTextInputNativeComponent').Commands;\n RCTMultilineTextInputView =\n require('./RCTMultilineTextInputNativeComponent').default;\n RCTMultilineTextInputNativeCommands =\n require('./RCTMultilineTextInputNativeComponent').Commands;\n}\n\nexport type ChangeEvent = SyntheticEvent<\n $ReadOnly<{|\n eventCount: number,\n target: number,\n text: string,\n |}>,\n>;\n\nexport type TextInputEvent = SyntheticEvent<\n $ReadOnly<{|\n eventCount: number,\n previousText: string,\n range: $ReadOnly<{|\n start: number,\n end: number,\n |}>,\n target: number,\n text: string,\n |}>,\n>;\n\nexport type ContentSizeChangeEvent = SyntheticEvent<\n $ReadOnly<{|\n target: number,\n contentSize: $ReadOnly<{|\n width: number,\n height: number,\n |}>,\n |}>,\n>;\n\ntype TargetEvent = SyntheticEvent<\n $ReadOnly<{|\n target: number,\n |}>,\n>;\n\nexport type BlurEvent = TargetEvent;\nexport type FocusEvent = TargetEvent;\n\ntype Selection = $ReadOnly<{|\n start: number,\n end: number,\n|}>;\n\nexport type SelectionChangeEvent = SyntheticEvent<\n $ReadOnly<{|\n selection: Selection,\n target: number,\n |}>,\n>;\n\nexport type KeyPressEvent = SyntheticEvent<\n $ReadOnly<{|\n key: string,\n target?: ?number,\n eventCount?: ?number,\n |}>,\n>;\n\nexport type EditingEvent = SyntheticEvent<\n $ReadOnly<{|\n eventCount: number,\n text: string,\n target: number,\n |}>,\n>;\n\ntype DataDetectorTypesType =\n | 'phoneNumber'\n | 'link'\n | 'address'\n | 'calendarEvent'\n | 'none'\n | 'all';\n\nexport type KeyboardType =\n // Cross Platform\n | 'default'\n | 'email-address'\n | 'numeric'\n | 'phone-pad'\n | 'number-pad'\n | 'decimal-pad'\n | 'url'\n // iOS-only\n | 'ascii-capable'\n | 'numbers-and-punctuation'\n | 'name-phone-pad'\n | 'twitter'\n | 'web-search'\n // iOS 10+ only\n | 'ascii-capable-number-pad'\n // Android-only\n | 'visible-password';\n\nexport type InputMode =\n | 'none'\n | 'text'\n | 'decimal'\n | 'numeric'\n | 'tel'\n | 'search'\n | 'email'\n | 'url';\n\nexport type ReturnKeyType =\n // Cross Platform\n | 'done'\n | 'go'\n | 'next'\n | 'search'\n | 'send'\n // Android-only\n | 'none'\n | 'previous'\n // iOS-only\n | 'default'\n | 'emergency-call'\n | 'google'\n | 'join'\n | 'route'\n | 'yahoo';\n\nexport type SubmitBehavior = 'submit' | 'blurAndSubmit' | 'newline';\n\nexport type AutoCapitalize = 'none' | 'sentences' | 'words' | 'characters';\n\nexport type TextContentType =\n | 'none'\n | 'URL'\n | 'addressCity'\n | 'addressCityAndState'\n | 'addressState'\n | 'countryName'\n | 'creditCardNumber'\n | 'emailAddress'\n | 'familyName'\n | 'fullStreetAddress'\n | 'givenName'\n | 'jobTitle'\n | 'location'\n | 'middleName'\n | 'name'\n | 'namePrefix'\n | 'nameSuffix'\n | 'nickname'\n | 'organizationName'\n | 'postalCode'\n | 'streetAddressLine1'\n | 'streetAddressLine2'\n | 'sublocality'\n | 'telephoneNumber'\n | 'username'\n | 'password'\n | 'newPassword'\n | 'oneTimeCode';\n\nexport type enterKeyHintType =\n | 'enter'\n | 'done'\n | 'go'\n | 'next'\n | 'previous'\n | 'search'\n | 'send';\n\ntype PasswordRules = string;\n\ntype IOSProps = $ReadOnly<{|\n /**\n * When the clear button should appear on the right side of the text view.\n * This property is supported only for single-line TextInput component.\n * @platform ios\n */\n clearButtonMode?: ?('never' | 'while-editing' | 'unless-editing' | 'always'),\n\n /**\n * If `true`, clears the text field automatically when editing begins.\n * @platform ios\n */\n clearTextOnFocus?: ?boolean,\n\n /**\n * Determines the types of data converted to clickable URLs in the text input.\n * Only valid if `multiline={true}` and `editable={false}`.\n * By default no data types are detected.\n *\n * You can provide one type or an array of many types.\n *\n * Possible values for `dataDetectorTypes` are:\n *\n * - `'phoneNumber'`\n * - `'link'`\n * - `'address'`\n * - `'calendarEvent'`\n * - `'none'`\n * - `'all'`\n *\n * @platform ios\n */\n dataDetectorTypes?:\n | ?DataDetectorTypesType\n | $ReadOnlyArray,\n\n /**\n * If `true`, the keyboard disables the return key when there is no text and\n * automatically enables it when there is text. The default value is `false`.\n * @platform ios\n */\n enablesReturnKeyAutomatically?: ?boolean,\n\n /**\n * An optional identifier which links a custom InputAccessoryView to\n * this text input. The InputAccessoryView is rendered above the\n * keyboard when this text input is focused.\n * @platform ios\n */\n inputAccessoryViewID?: ?string,\n\n /**\n * Determines the color of the keyboard.\n * @platform ios\n */\n keyboardAppearance?: ?('default' | 'light' | 'dark'),\n\n /**\n * Provide rules for your password.\n * For example, say you want to require a password with at least eight characters consisting of a mix of uppercase and lowercase letters, at least one number, and at most two consecutive characters.\n * \"required: upper; required: lower; required: digit; max-consecutive: 2; minlength: 8;\"\n * @platform ios\n */\n passwordRules?: ?PasswordRules,\n\n /*\n * If `true`, allows TextInput to pass touch events to the parent component.\n * This allows components to be swipeable from the TextInput on iOS,\n * as is the case on Android by default.\n * If `false`, TextInput always asks to handle the input (except when disabled).\n * @platform ios\n */\n rejectResponderTermination?: ?boolean,\n\n /**\n * If `false`, scrolling of the text view will be disabled.\n * The default value is `true`. Does only work with 'multiline={true}'.\n * @platform ios\n */\n scrollEnabled?: ?boolean,\n\n /**\n * If `false`, disables spell-check style (i.e. red underlines).\n * The default value is inherited from `autoCorrect`.\n * @platform ios\n */\n spellCheck?: ?boolean,\n\n /**\n * Give the keyboard and the system information about the\n * expected semantic meaning for the content that users enter.\n * `autoComplete` property accomplishes same behavior and is recommended as its supported by both platforms.\n * Avoid using both `autoComplete` and `textContentType`, you can use `Platform.select` for differing platform behaviors.\n * For backwards compatibility, when both set, `textContentType` takes precedence on iOS.\n * @platform ios\n */\n textContentType?: ?TextContentType,\n\n /**\n * Set line break strategy on iOS.\n * @platform ios\n */\n lineBreakStrategyIOS?: ?('none' | 'standard' | 'hangul-word' | 'push-out'),\n|}>;\n\ntype AndroidProps = $ReadOnly<{|\n /**\n * When provided it will set the color of the cursor (or \"caret\") in the component.\n * Unlike the behavior of `selectionColor` the cursor color will be set independently\n * from the color of the text selection box.\n * @platform android\n */\n cursorColor?: ?ColorValue,\n\n /**\n * When `false`, if there is a small amount of space available around a text input\n * (e.g. landscape orientation on a phone), the OS may choose to have the user edit\n * the text inside of a full screen text input mode. When `true`, this feature is\n * disabled and users will always edit the text directly inside of the text input.\n * Defaults to `false`.\n * @platform android\n */\n disableFullscreenUI?: ?boolean,\n\n importantForAutofill?: ?(\n | 'auto'\n | 'no'\n | 'noExcludeDescendants'\n | 'yes'\n | 'yesExcludeDescendants'\n ),\n\n /**\n * If defined, the provided image resource will be rendered on the left.\n * The image resource must be inside `/android/app/src/main/res/drawable` and referenced\n * like\n * ```\n * \n * ```\n * @platform android\n */\n inlineImageLeft?: ?string,\n\n /**\n * Padding between the inline image, if any, and the text input itself.\n * @platform android\n */\n inlineImagePadding?: ?number,\n\n /**\n * Sets the number of lines for a `TextInput`. Use it with multiline set to\n * `true` to be able to fill the lines.\n * @platform android\n */\n numberOfLines?: ?number,\n\n /**\n * Sets the return key to the label. Use it instead of `returnKeyType`.\n * @platform android\n */\n returnKeyLabel?: ?string,\n\n /**\n * Sets the number of rows for a `TextInput`. Use it with multiline set to\n * `true` to be able to fill the lines.\n * @platform android\n */\n rows?: ?number,\n\n /**\n * When `false`, it will prevent the soft keyboard from showing when the field is focused.\n * Defaults to `true`.\n */\n showSoftInputOnFocus?: ?boolean,\n\n /**\n * Set text break strategy on Android API Level 23+, possible values are `simple`, `highQuality`, `balanced`\n * The default value is `simple`.\n * @platform android\n */\n textBreakStrategy?: ?('simple' | 'highQuality' | 'balanced'),\n\n /**\n * The color of the `TextInput` underline.\n * @platform android\n */\n underlineColorAndroid?: ?ColorValue,\n|}>;\n\nexport type Props = $ReadOnly<{|\n ...$Diff>,\n ...IOSProps,\n ...AndroidProps,\n\n /**\n * Can tell `TextInput` to automatically capitalize certain characters.\n *\n * - `characters`: all characters.\n * - `words`: first letter of each word.\n * - `sentences`: first letter of each sentence (*default*).\n * - `none`: don't auto capitalize anything.\n */\n autoCapitalize?: ?AutoCapitalize,\n\n /**\n * Specifies autocomplete hints for the system, so it can provide autofill.\n * On Android, the system will always attempt to offer autofill by using heuristics to identify the type of content.\n * To disable autocomplete, set autoComplete to off.\n *\n * The following values work across platforms:\n *\n * - `additional-name`\n * - `address-line1`\n * - `address-line2`\n * - `cc-number`\n * - `country`\n * - `current-password`\n * - `email`\n * - `family-name`\n * - `given-name`\n * - `honorific-prefix`\n * - `honorific-suffix`\n * - `name`\n * - `new-password`\n * - `off`\n * - `one-time-code`\n * - `postal-code`\n * - `street-address`\n * - `tel`\n * - `username`\n *\n * The following values work on iOS only:\n *\n * - `nickname`\n * - `organization`\n * - `organization-title`\n * - `url`\n *\n * The following values work on Android only:\n *\n * - `birthdate-day`\n * - `birthdate-full`\n * - `birthdate-month`\n * - `birthdate-year`\n * - `cc-csc`\n * - `cc-exp`\n * - `cc-exp-day`\n * - `cc-exp-month`\n * - `cc-exp-year`\n * - `gender`\n * - `name-family`\n * - `name-given`\n * - `name-middle`\n * - `name-middle-initial`\n * - `name-prefix`\n * - `name-suffix`\n * - `password`\n * - `password-new`\n * - `postal-address`\n * - `postal-address-country`\n * - `postal-address-extended`\n * - `postal-address-extended-postal-code`\n * - `postal-address-locality`\n * - `postal-address-region`\n * - `sms-otp`\n * - `tel-country-code`\n * - `tel-national`\n * - `tel-device`\n * - `username-new`\n */\n autoComplete?: ?(\n | 'additional-name'\n | 'address-line1'\n | 'address-line2'\n | 'birthdate-day'\n | 'birthdate-full'\n | 'birthdate-month'\n | 'birthdate-year'\n | 'cc-csc'\n | 'cc-exp'\n | 'cc-exp-day'\n | 'cc-exp-month'\n | 'cc-exp-year'\n | 'cc-number'\n | 'country'\n | 'current-password'\n | 'email'\n | 'family-name'\n | 'gender'\n | 'given-name'\n | 'honorific-prefix'\n | 'honorific-suffix'\n | 'name'\n | 'name-family'\n | 'name-given'\n | 'name-middle'\n | 'name-middle-initial'\n | 'name-prefix'\n | 'name-suffix'\n | 'new-password'\n | 'nickname'\n | 'one-time-code'\n | 'organization'\n | 'organization-title'\n | 'password'\n | 'password-new'\n | 'postal-address'\n | 'postal-address-country'\n | 'postal-address-extended'\n | 'postal-address-extended-postal-code'\n | 'postal-address-locality'\n | 'postal-address-region'\n | 'postal-code'\n | 'street-address'\n | 'sms-otp'\n | 'tel'\n | 'tel-country-code'\n | 'tel-national'\n | 'tel-device'\n | 'url'\n | 'username'\n | 'username-new'\n | 'off'\n ),\n\n /**\n * If `false`, disables auto-correct. The default value is `true`.\n */\n autoCorrect?: ?boolean,\n\n /**\n * If `true`, focuses the input on `componentDidMount`.\n * The default value is `false`.\n */\n autoFocus?: ?boolean,\n\n /**\n * Specifies whether fonts should scale to respect Text Size accessibility settings. The\n * default is `true`.\n */\n allowFontScaling?: ?boolean,\n\n /**\n * If `true`, caret is hidden. The default value is `false`.\n *\n * On Android devices manufactured by Xiaomi with Android Q,\n * when keyboardType equals 'email-address'this will be set\n * in native to 'true' to prevent a system related crash. This\n * will cause cursor to be disabled as a side-effect.\n *\n */\n caretHidden?: ?boolean,\n\n /*\n * If `true`, contextMenuHidden is hidden. The default value is `false`.\n */\n contextMenuHidden?: ?boolean,\n\n /**\n * Provides an initial value that will change when the user starts typing.\n * Useful for simple use-cases where you do not want to deal with listening\n * to events and updating the value prop to keep the controlled state in sync.\n */\n defaultValue?: ?Stringish,\n\n /**\n * If `false`, text is not editable. The default value is `true`.\n */\n editable?: ?boolean,\n\n forwardedRef?: ?ReactRefSetter,\n\n /**\n * `enterKeyHint` defines what action label (or icon) to present for the enter key on virtual keyboards.\n *\n * The following values is supported:\n *\n * - `enter`\n * - `done`\n * - `go`\n * - `next`\n * - `previous`\n * - `search`\n * - `send`\n */\n enterKeyHint?: ?enterKeyHintType,\n\n /**\n * `inputMode` works like the `inputmode` attribute in HTML, it determines which\n * keyboard to open, e.g.`numeric` and has precedence over keyboardType\n *\n * Support the following values:\n *\n * - `none`\n * - `text`\n * - `decimal`\n * - `numeric`\n * - `tel`\n * - `search`\n * - `email`\n * - `url`\n */\n inputMode?: ?InputMode,\n\n /**\n * Determines which keyboard to open, e.g.`numeric`.\n *\n * The following values work across platforms:\n *\n * - `default`\n * - `numeric`\n * - `number-pad`\n * - `decimal-pad`\n * - `email-address`\n * - `phone-pad`\n * - `url`\n *\n * *iOS Only*\n *\n * The following values work on iOS only:\n *\n * - `ascii-capable`\n * - `numbers-and-punctuation`\n * - `name-phone-pad`\n * - `twitter`\n * - `web-search`\n *\n * *Android Only*\n *\n * The following values work on Android only:\n *\n * - `visible-password`\n *\n */\n keyboardType?: ?KeyboardType,\n\n /**\n * Specifies largest possible scale a font can reach when `allowFontScaling` is enabled.\n * Possible values:\n * `null/undefined` (default): inherit from the parent node or the global default (0)\n * `0`: no max, ignore parent/global default\n * `>= 1`: sets the maxFontSizeMultiplier of this node to this value\n */\n maxFontSizeMultiplier?: ?number,\n\n /**\n * Limits the maximum number of characters that can be entered. Use this\n * instead of implementing the logic in JS to avoid flicker.\n */\n maxLength?: ?number,\n\n /**\n * If `true`, the text input can be multiple lines.\n * The default value is `false`.\n */\n multiline?: ?boolean,\n\n /**\n * Callback that is called when the text input is blurred.\n */\n onBlur?: ?(e: BlurEvent) => mixed,\n\n /**\n * Callback that is called when the text input's text changes.\n */\n onChange?: ?(e: ChangeEvent) => mixed,\n\n /**\n * DANGER: this API is not stable and will change in the future.\n *\n * Callback will be called on the main thread and may result in dropped frames.\n * Callback that is called when the text input's text changes.\n *\n * @platform ios\n */\n unstable_onChangeSync?: ?(e: ChangeEvent) => mixed,\n\n /**\n * Callback that is called when the text input's text changes.\n * Changed text is passed as an argument to the callback handler.\n */\n onChangeText?: ?(text: string) => mixed,\n\n /**\n * DANGER: this API is not stable and will change in the future.\n *\n * Callback will be called on the main thread and may result in dropped frames.\n * Callback that is called when the text input's text changes.\n * Changed text is passed as an argument to the callback handler.\n *\n * @platform ios\n */\n unstable_onChangeTextSync?: ?(text: string) => mixed,\n\n /**\n * Callback that is called when the text input's content size changes.\n * This will be called with\n * `{ nativeEvent: { contentSize: { width, height } } }`.\n *\n * Only called for multiline text inputs.\n */\n onContentSizeChange?: ?(e: ContentSizeChangeEvent) => mixed,\n\n /**\n * Callback that is called when text input ends.\n */\n onEndEditing?: ?(e: EditingEvent) => mixed,\n\n /**\n * Callback that is called when the text input is focused.\n */\n onFocus?: ?(e: FocusEvent) => mixed,\n\n /**\n * Callback that is called when a key is pressed.\n * This will be called with `{ nativeEvent: { key: keyValue } }`\n * where `keyValue` is `'Enter'` or `'Backspace'` for respective keys and\n * the typed-in character otherwise including `' '` for space.\n * Fires before `onChange` callbacks.\n */\n onKeyPress?: ?(e: KeyPressEvent) => mixed,\n\n /**\n * DANGER: this API is not stable and will change in the future.\n *\n * Callback will be called on the main thread and may result in dropped frames.\n *\n * Callback that is called when a key is pressed.\n * This will be called with `{ nativeEvent: { key: keyValue } }`\n * where `keyValue` is `'Enter'` or `'Backspace'` for respective keys and\n * the typed-in character otherwise including `' '` for space.\n * Fires before `onChange` callbacks.\n *\n * @platform ios\n */\n unstable_onKeyPressSync?: ?(e: KeyPressEvent) => mixed,\n\n /**\n * Called when a touch is engaged.\n */\n onPressIn?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when a touch is released.\n */\n onPressOut?: ?(event: PressEvent) => mixed,\n\n /**\n * Callback that is called when the text input selection is changed.\n * This will be called with\n * `{ nativeEvent: { selection: { start, end } } }`.\n */\n onSelectionChange?: ?(e: SelectionChangeEvent) => mixed,\n\n /**\n * Callback that is called when the text input's submit button is pressed.\n * Invalid if `multiline={true}` is specified.\n */\n onSubmitEditing?: ?(e: EditingEvent) => mixed,\n\n /**\n * Invoked on content scroll with `{ nativeEvent: { contentOffset: { x, y } } }`.\n * May also contain other properties from ScrollEvent but on Android contentSize\n * is not provided for performance reasons.\n */\n onScroll?: ?(e: ScrollEvent) => mixed,\n\n /**\n * The string that will be rendered before text input has been entered.\n */\n placeholder?: ?Stringish,\n\n /**\n * The text color of the placeholder string.\n */\n placeholderTextColor?: ?ColorValue,\n\n /** `readOnly` works like the `readonly` attribute in HTML.\n * If `true`, text is not editable. The default value is `false`.\n * See https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/readonly\n * for more details.\n */\n readOnly?: ?boolean,\n\n /**\n * Determines how the return key should look. On Android you can also use\n * `returnKeyLabel`.\n *\n * *Cross platform*\n *\n * The following values work across platforms:\n *\n * - `done`\n * - `go`\n * - `next`\n * - `search`\n * - `send`\n *\n * *Android Only*\n *\n * The following values work on Android only:\n *\n * - `none`\n * - `previous`\n *\n * *iOS Only*\n *\n * The following values work on iOS only:\n *\n * - `default`\n * - `emergency-call`\n * - `google`\n * - `join`\n * - `route`\n * - `yahoo`\n */\n returnKeyType?: ?ReturnKeyType,\n\n /**\n * If `true`, the text input obscures the text entered so that sensitive text\n * like passwords stay secure. The default value is `false`. Does not work with 'multiline={true}'.\n */\n secureTextEntry?: ?boolean,\n\n /**\n * The start and end of the text input's selection. Set start and end to\n * the same value to position the cursor.\n */\n selection?: ?$ReadOnly<{|\n start: number,\n end?: ?number,\n |}>,\n\n /**\n * The highlight and cursor color of the text input.\n */\n selectionColor?: ?ColorValue,\n\n /**\n * If `true`, all text will automatically be selected on focus.\n */\n selectTextOnFocus?: ?boolean,\n\n /**\n * If `true`, the text field will blur when submitted.\n * The default value is true for single-line fields and false for\n * multiline fields. Note that for multiline fields, setting `blurOnSubmit`\n * to `true` means that pressing return will blur the field and trigger the\n * `onSubmitEditing` event instead of inserting a newline into the field.\n *\n * @deprecated\n * Note that `submitBehavior` now takes the place of `blurOnSubmit` and will\n * override any behavior defined by `blurOnSubmit`.\n * @see submitBehavior\n */\n blurOnSubmit?: ?boolean,\n\n /**\n * When the return key is pressed,\n *\n * For single line inputs:\n *\n * - `'newline`' defaults to `'blurAndSubmit'`\n * - `undefined` defaults to `'blurAndSubmit'`\n *\n * For multiline inputs:\n *\n * - `'newline'` adds a newline\n * - `undefined` defaults to `'newline'`\n *\n * For both single line and multiline inputs:\n *\n * - `'submit'` will only send a submit event and not blur the input\n * - `'blurAndSubmit`' will both blur the input and send a submit event\n */\n submitBehavior?: ?SubmitBehavior,\n\n /**\n * Note that not all Text styles are supported, an incomplete list of what is not supported includes:\n *\n * - `borderLeftWidth`\n * - `borderTopWidth`\n * - `borderRightWidth`\n * - `borderBottomWidth`\n * - `borderTopLeftRadius`\n * - `borderTopRightRadius`\n * - `borderBottomRightRadius`\n * - `borderBottomLeftRadius`\n *\n * see [Issue#7070](https://github.com/facebook/react-native/issues/7070)\n * for more detail.\n *\n * [Styles](docs/style.html)\n */\n style?: ?TextStyleProp,\n\n /**\n * The value to show for the text input. `TextInput` is a controlled\n * component, which means the native value will be forced to match this\n * value prop if provided. For most uses, this works great, but in some\n * cases this may cause flickering - one common cause is preventing edits\n * by keeping value the same. In addition to simply setting the same value,\n * either set `editable={false}`, or set/update `maxLength` to prevent\n * unwanted edits without flicker.\n */\n value?: ?Stringish,\n|}>;\n\nconst emptyFunctionThatReturnsTrue = () => true;\n\n/**\n * A foundational component for inputting text into the app via a\n * keyboard. Props provide configurability for several features, such as\n * auto-correction, auto-capitalization, placeholder text, and different keyboard\n * types, such as a numeric keypad.\n *\n * The simplest use case is to plop down a `TextInput` and subscribe to the\n * `onChangeText` events to read the user input. There are also other events,\n * such as `onSubmitEditing` and `onFocus` that can be subscribed to. A simple\n * example:\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react';\n * import { AppRegistry, TextInput } from 'react-native';\n *\n * export default class UselessTextInput extends Component {\n * constructor(props) {\n * super(props);\n * this.state = { text: 'Useless Placeholder' };\n * }\n *\n * render() {\n * return (\n * this.setState({text})}\n * value={this.state.text}\n * />\n * );\n * }\n * }\n *\n * // skip this line if using Create React Native App\n * AppRegistry.registerComponent('AwesomeProject', () => UselessTextInput);\n * ```\n *\n * Two methods exposed via the native element are .focus() and .blur() that\n * will focus or blur the TextInput programmatically.\n *\n * Note that some props are only available with `multiline={true/false}`.\n * Additionally, border styles that apply to only one side of the element\n * (e.g., `borderBottomColor`, `borderLeftWidth`, etc.) will not be applied if\n * `multiline=false`. To achieve the same effect, you can wrap your `TextInput`\n * in a `View`:\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react';\n * import { AppRegistry, View, TextInput } from 'react-native';\n *\n * class UselessTextInput extends Component {\n * render() {\n * return (\n * \n * );\n * }\n * }\n *\n * export default class UselessTextInputMultiline extends Component {\n * constructor(props) {\n * super(props);\n * this.state = {\n * text: 'Useless Multiline Placeholder',\n * };\n * }\n *\n * // If you type something in the text box that is a color, the background will change to that\n * // color.\n * render() {\n * return (\n * \n * this.setState({text})}\n * value={this.state.text}\n * />\n * \n * );\n * }\n * }\n *\n * // skip these lines if using Create React Native App\n * AppRegistry.registerComponent(\n * 'AwesomeProject',\n * () => UselessTextInputMultiline\n * );\n * ```\n *\n * `TextInput` has by default a border at the bottom of its view. This border\n * has its padding set by the background image provided by the system, and it\n * cannot be changed. Solutions to avoid this is to either not set height\n * explicitly, case in which the system will take care of displaying the border\n * in the correct position, or to not display the border by setting\n * `underlineColorAndroid` to transparent.\n *\n * Note that on Android performing text selection in input can change\n * app's activity `windowSoftInputMode` param to `adjustResize`.\n * This may cause issues with components that have position: 'absolute'\n * while keyboard is active. To avoid this behavior either specify `windowSoftInputMode`\n * in AndroidManifest.xml ( https://developer.android.com/guide/topics/manifest/activity-element.html )\n * or control this param programmatically with native code.\n *\n */\nfunction InternalTextInput(props: Props): React.Node {\n const {\n 'aria-busy': ariaBusy,\n 'aria-checked': ariaChecked,\n 'aria-disabled': ariaDisabled,\n 'aria-expanded': ariaExpanded,\n 'aria-selected': ariaSelected,\n accessibilityState,\n id,\n tabIndex,\n selection: propsSelection,\n ...otherProps\n } = props;\n\n const inputRef = useRef>>(null);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const selection: ?Selection =\n propsSelection == null\n ? null\n : {\n start: propsSelection.start,\n end: propsSelection.end ?? propsSelection.start,\n };\n\n const [mostRecentEventCount, setMostRecentEventCount] = useState(0);\n\n const [lastNativeText, setLastNativeText] = useState(props.value);\n const [lastNativeSelectionState, setLastNativeSelection] = useState<{|\n selection: ?Selection,\n mostRecentEventCount: number,\n |}>({selection, mostRecentEventCount});\n\n const lastNativeSelection = lastNativeSelectionState.selection;\n\n let viewCommands;\n if (AndroidTextInputCommands) {\n viewCommands = AndroidTextInputCommands;\n } else {\n viewCommands =\n props.multiline === true\n ? RCTMultilineTextInputNativeCommands\n : RCTSinglelineTextInputNativeCommands;\n }\n\n const text =\n typeof props.value === 'string'\n ? props.value\n : typeof props.defaultValue === 'string'\n ? props.defaultValue\n : '';\n\n // This is necessary in case native updates the text and JS decides\n // that the update should be ignored and we should stick with the value\n // that we have in JS.\n useLayoutEffect(() => {\n const nativeUpdate: {text?: string, selection?: Selection} = {};\n\n if (lastNativeText !== props.value && typeof props.value === 'string') {\n nativeUpdate.text = props.value;\n setLastNativeText(props.value);\n }\n\n if (\n selection &&\n lastNativeSelection &&\n (lastNativeSelection.start !== selection.start ||\n lastNativeSelection.end !== selection.end)\n ) {\n nativeUpdate.selection = selection;\n setLastNativeSelection({selection, mostRecentEventCount});\n }\n\n if (Object.keys(nativeUpdate).length === 0) {\n return;\n }\n\n if (inputRef.current != null) {\n viewCommands.setTextAndSelection(\n inputRef.current,\n mostRecentEventCount,\n text,\n selection?.start ?? -1,\n selection?.end ?? -1,\n );\n }\n }, [\n mostRecentEventCount,\n inputRef,\n props.value,\n props.defaultValue,\n lastNativeText,\n selection,\n lastNativeSelection,\n text,\n viewCommands,\n ]);\n\n useLayoutEffect(() => {\n const inputRefValue = inputRef.current;\n\n if (inputRefValue != null) {\n TextInputState.registerInput(inputRefValue);\n\n return () => {\n TextInputState.unregisterInput(inputRefValue);\n\n if (TextInputState.currentlyFocusedInput() === inputRefValue) {\n nullthrows(inputRefValue).blur();\n }\n };\n }\n }, [inputRef]);\n\n const setLocalRef = useCallback(\n (instance: TextInputInstance | null) => {\n inputRef.current = instance;\n\n /*\n Hi reader from the future. I'm sorry for this.\n\n This is a hack. Ideally we would forwardRef to the underlying\n host component. However, since TextInput has it's own methods that can be\n called as well, if we used the standard forwardRef then these\n methods wouldn't be accessible and thus be a breaking change.\n\n We have a couple of options of how to handle this:\n - Return a new ref with everything we methods from both. This is problematic\n because we need React to also know it is a host component which requires\n internals of the class implementation of the ref.\n - Break the API and have some other way to call one set of the methods or\n the other. This is our long term approach as we want to eventually\n get the methods on host components off the ref. So instead of calling\n ref.measure() you might call ReactNative.measure(ref). This would hopefully\n let the ref for TextInput then have the methods like `.clear`. Or we do it\n the other way and make it TextInput.clear(textInputRef) which would be fine\n too. Either way though is a breaking change that is longer term.\n - Mutate this ref. :( Gross, but accomplishes what we need in the meantime\n before we can get to the long term breaking change.\n */\n if (instance != null) {\n // $FlowFixMe[incompatible-use] - See the explanation above.\n Object.assign(instance, {\n clear(): void {\n if (inputRef.current != null) {\n viewCommands.setTextAndSelection(\n inputRef.current,\n mostRecentEventCount,\n '',\n 0,\n 0,\n );\n }\n },\n // TODO: Fix this returning true on null === null, when no input is focused\n isFocused(): boolean {\n return TextInputState.currentlyFocusedInput() === inputRef.current;\n },\n getNativeRef(): ?React.ElementRef> {\n return inputRef.current;\n },\n setSelection(start: number, end: number): void {\n if (inputRef.current != null) {\n viewCommands.setTextAndSelection(\n inputRef.current,\n mostRecentEventCount,\n null,\n start,\n end,\n );\n }\n },\n });\n }\n },\n [mostRecentEventCount, viewCommands],\n );\n\n const ref = useMergeRefs(\n setLocalRef,\n props.forwardedRef,\n );\n\n const _onChange = (event: ChangeEvent) => {\n const currentText = event.nativeEvent.text;\n props.onChange && props.onChange(event);\n props.onChangeText && props.onChangeText(currentText);\n\n if (inputRef.current == null) {\n // calling `props.onChange` or `props.onChangeText`\n // may clean up the input itself. Exits here.\n return;\n }\n\n setLastNativeText(currentText);\n // This must happen last, after we call setLastNativeText.\n // Different ordering can cause bugs when editing AndroidTextInputs\n // with multiple Fragments.\n // We must update this so that controlled input updates work.\n setMostRecentEventCount(event.nativeEvent.eventCount);\n };\n\n const _onChangeSync = (event: ChangeEvent) => {\n const currentText = event.nativeEvent.text;\n props.unstable_onChangeSync && props.unstable_onChangeSync(event);\n props.unstable_onChangeTextSync &&\n props.unstable_onChangeTextSync(currentText);\n\n if (inputRef.current == null) {\n // calling `props.onChange` or `props.onChangeText`\n // may clean up the input itself. Exits here.\n return;\n }\n\n setLastNativeText(currentText);\n // This must happen last, after we call setLastNativeText.\n // Different ordering can cause bugs when editing AndroidTextInputs\n // with multiple Fragments.\n // We must update this so that controlled input updates work.\n setMostRecentEventCount(event.nativeEvent.eventCount);\n };\n\n const _onSelectionChange = (event: SelectionChangeEvent) => {\n props.onSelectionChange && props.onSelectionChange(event);\n\n if (inputRef.current == null) {\n // calling `props.onSelectionChange`\n // may clean up the input itself. Exits here.\n return;\n }\n\n setLastNativeSelection({\n selection: event.nativeEvent.selection,\n mostRecentEventCount,\n });\n };\n\n const _onFocus = (event: FocusEvent) => {\n TextInputState.focusInput(inputRef.current);\n if (props.onFocus) {\n props.onFocus(event);\n }\n };\n\n const _onBlur = (event: BlurEvent) => {\n TextInputState.blurInput(inputRef.current);\n if (props.onBlur) {\n props.onBlur(event);\n }\n };\n\n const _onScroll = (event: ScrollEvent) => {\n props.onScroll && props.onScroll(event);\n };\n\n let textInput = null;\n\n const multiline = props.multiline ?? false;\n\n let submitBehavior: SubmitBehavior;\n if (props.submitBehavior != null) {\n // `submitBehavior` is set explicitly\n if (!multiline && props.submitBehavior === 'newline') {\n // For single line text inputs, `'newline'` is not a valid option\n submitBehavior = 'blurAndSubmit';\n } else {\n submitBehavior = props.submitBehavior;\n }\n } else if (multiline) {\n if (props.blurOnSubmit === true) {\n submitBehavior = 'blurAndSubmit';\n } else {\n submitBehavior = 'newline';\n }\n } else {\n // Single line\n if (props.blurOnSubmit !== false) {\n submitBehavior = 'blurAndSubmit';\n } else {\n submitBehavior = 'submit';\n }\n }\n\n const accessible = props.accessible !== false;\n const focusable = props.focusable !== false;\n\n const config = React.useMemo(\n () => ({\n onPress: (event: PressEvent) => {\n if (props.editable !== false) {\n if (inputRef.current != null) {\n inputRef.current.focus();\n }\n }\n },\n onPressIn: props.onPressIn,\n onPressOut: props.onPressOut,\n cancelable:\n Platform.OS === 'ios' ? !props.rejectResponderTermination : null,\n }),\n [\n props.editable,\n props.onPressIn,\n props.onPressOut,\n props.rejectResponderTermination,\n ],\n );\n\n // Hide caret during test runs due to a flashing caret\n // makes screenshot tests flakey\n let caretHidden = props.caretHidden;\n if (Platform.isTesting) {\n caretHidden = true;\n }\n\n // TextInput handles onBlur and onFocus events\n // so omitting onBlur and onFocus pressability handlers here.\n const {onBlur, onFocus, ...eventHandlers} = usePressability(config) || {};\n\n let _accessibilityState;\n if (\n accessibilityState != null ||\n ariaBusy != null ||\n ariaChecked != null ||\n ariaDisabled != null ||\n ariaExpanded != null ||\n ariaSelected != null\n ) {\n _accessibilityState = {\n busy: ariaBusy ?? accessibilityState?.busy,\n checked: ariaChecked ?? accessibilityState?.checked,\n disabled: ariaDisabled ?? accessibilityState?.disabled,\n expanded: ariaExpanded ?? accessibilityState?.expanded,\n selected: ariaSelected ?? accessibilityState?.selected,\n };\n }\n\n // $FlowFixMe[underconstrained-implicit-instantiation]\n let style = flattenStyle(props.style);\n\n if (Platform.OS === 'ios') {\n const RCTTextInputView =\n props.multiline === true\n ? RCTMultilineTextInputView\n : RCTSinglelineTextInputView;\n\n style = props.multiline === true ? [styles.multilineInput, style] : style;\n\n const useOnChangeSync =\n (props.unstable_onChangeSync || props.unstable_onChangeTextSync) &&\n !(props.onChange || props.onChangeText);\n\n textInput = (\n \n );\n } else if (Platform.OS === 'android') {\n const autoCapitalize = props.autoCapitalize || 'sentences';\n const _accessibilityLabelledBy =\n props?.['aria-labelledby'] ?? props?.accessibilityLabelledBy;\n const placeholder = props.placeholder ?? '';\n let children = props.children;\n const childCount = React.Children.count(children);\n invariant(\n !(props.value != null && childCount),\n 'Cannot specify both value and children.',\n );\n if (childCount > 1) {\n children = {children};\n }\n\n textInput = (\n /* $FlowFixMe[prop-missing] the types for AndroidTextInput don't match up\n * exactly with the props for TextInput. This will need to get fixed */\n /* $FlowFixMe[incompatible-type] the types for AndroidTextInput don't\n * match up exactly with the props for TextInput. This will need to get\n * fixed */\n /* $FlowFixMe[incompatible-type-arg] the types for AndroidTextInput don't\n * match up exactly with the props for TextInput. This will need to get\n * fixed */\n \n );\n }\n return (\n {textInput}\n );\n}\n\nconst enterKeyHintToReturnTypeMap = {\n enter: 'default',\n done: 'done',\n go: 'go',\n next: 'next',\n previous: 'previous',\n search: 'search',\n send: 'send',\n};\n\nconst inputModeToKeyboardTypeMap = {\n none: 'default',\n text: 'default',\n decimal: 'decimal-pad',\n numeric: 'number-pad',\n tel: 'phone-pad',\n search: Platform.OS === 'ios' ? 'web-search' : 'default',\n email: 'email-address',\n url: 'url',\n};\n\n// Map HTML autocomplete values to Android autoComplete values\nconst autoCompleteWebToAutoCompleteAndroidMap = {\n 'address-line1': 'postal-address-region',\n 'address-line2': 'postal-address-locality',\n bday: 'birthdate-full',\n 'bday-day': 'birthdate-day',\n 'bday-month': 'birthdate-month',\n 'bday-year': 'birthdate-year',\n 'cc-csc': 'cc-csc',\n 'cc-exp': 'cc-exp',\n 'cc-exp-month': 'cc-exp-month',\n 'cc-exp-year': 'cc-exp-year',\n 'cc-number': 'cc-number',\n country: 'postal-address-country',\n 'current-password': 'password',\n email: 'email',\n 'honorific-prefix': 'name-prefix',\n 'honorific-suffix': 'name-suffix',\n name: 'name',\n 'additional-name': 'name-middle',\n 'family-name': 'name-family',\n 'given-name': 'name-given',\n 'new-password': 'password-new',\n off: 'off',\n 'one-time-code': 'sms-otp',\n 'postal-code': 'postal-code',\n sex: 'gender',\n 'street-address': 'street-address',\n tel: 'tel',\n 'tel-country-code': 'tel-country-code',\n 'tel-national': 'tel-national',\n username: 'username',\n};\n\n// Map HTML autocomplete values to iOS textContentType values\nconst autoCompleteWebToTextContentTypeMap = {\n 'address-line1': 'streetAddressLine1',\n 'address-line2': 'streetAddressLine2',\n 'cc-number': 'creditCardNumber',\n 'current-password': 'password',\n country: 'countryName',\n email: 'emailAddress',\n name: 'name',\n 'additional-name': 'middleName',\n 'family-name': 'familyName',\n 'given-name': 'givenName',\n nickname: 'nickname',\n 'honorific-prefix': 'namePrefix',\n 'honorific-suffix': 'nameSuffix',\n 'new-password': 'newPassword',\n off: 'none',\n 'one-time-code': 'oneTimeCode',\n organization: 'organizationName',\n 'organization-title': 'jobTitle',\n 'postal-code': 'postalCode',\n 'street-address': 'fullStreetAddress',\n tel: 'telephoneNumber',\n url: 'URL',\n username: 'username',\n};\n\nconst ExportedForwardRef: React.AbstractComponent<\n React.ElementConfig,\n TextInputInstance,\n> = React.forwardRef(function TextInput(\n {\n allowFontScaling = true,\n rejectResponderTermination = true,\n underlineColorAndroid = 'transparent',\n autoComplete,\n textContentType,\n readOnly,\n editable,\n enterKeyHint,\n returnKeyType,\n inputMode,\n showSoftInputOnFocus,\n keyboardType,\n ...restProps\n },\n forwardedRef: ReactRefSetter,\n) {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n let style = flattenStyle(restProps.style);\n\n if (style?.verticalAlign != null) {\n style.textAlignVertical =\n verticalAlignToTextAlignVerticalMap[style.verticalAlign];\n delete style.verticalAlign;\n }\n\n return (\n \n );\n});\n\nExportedForwardRef.displayName = 'TextInput';\n\n/**\n * Switch to `deprecated-react-native-prop-types` for compatibility with future\n * releases. This is deprecated and will be removed in the future.\n */\nExportedForwardRef.propTypes =\n require('deprecated-react-native-prop-types').TextInputPropTypes;\n\n// $FlowFixMe[prop-missing]\nExportedForwardRef.State = {\n currentlyFocusedInput: TextInputState.currentlyFocusedInput,\n\n currentlyFocusedField: TextInputState.currentlyFocusedField,\n focusTextInput: TextInputState.focusTextInput,\n blurTextInput: TextInputState.blurTextInput,\n};\n\nexport type TextInputComponentStatics = $ReadOnly<{|\n State: $ReadOnly<{|\n currentlyFocusedInput: typeof TextInputState.currentlyFocusedInput,\n currentlyFocusedField: typeof TextInputState.currentlyFocusedField,\n focusTextInput: typeof TextInputState.focusTextInput,\n blurTextInput: typeof TextInputState.blurTextInput,\n |}>,\n|}>;\n\nconst styles = StyleSheet.create({\n multilineInput: {\n // This default top inset makes RCTMultilineTextInputView seem as close as possible\n // to single-line RCTSinglelineTextInputView defaults, using the system defaults\n // of font size 17 and a height of 31 points.\n paddingTop: 5,\n },\n});\n\nconst verticalAlignToTextAlignVerticalMap = {\n auto: 'auto',\n top: 'top',\n bottom: 'bottom',\n middle: 'center',\n};\n\n// $FlowFixMe[unclear-type] Unclear type. Using `any` type is not safe.\nmodule.exports = ((ExportedForwardRef: any): TextInputType);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {TextInputNativeCommands} from './TextInputNativeCommands';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport RCTTextInputViewConfig from './RCTTextInputViewConfig';\n\ntype NativeType = HostComponent;\n\ntype NativeCommands = TextInputNativeCommands;\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['focus', 'blur', 'setTextAndSelection'],\n});\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {\n uiViewClassName: 'RCTSinglelineTextInputView',\n ...RCTTextInputViewConfig,\n};\n\nconst SinglelineTextInputNativeComponent: HostComponent =\n NativeComponentRegistry.get(\n 'RCTSinglelineTextInputView',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\n// flowlint-next-line unclear-type:off\nexport default ((SinglelineTextInputNativeComponent: any): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {PartialViewConfig} from '../../Renderer/shims/ReactNativeTypes';\n\nimport {ConditionallyIgnoredEventHandlers} from '../../NativeComponent/ViewConfigIgnore';\n\ntype PartialViewConfigWithoutName = $Rest<\n PartialViewConfig,\n {uiViewClassName: string},\n>;\n\nconst RCTTextInputViewConfig = {\n bubblingEventTypes: {\n topBlur: {\n phasedRegistrationNames: {\n bubbled: 'onBlur',\n captured: 'onBlurCapture',\n },\n },\n topChange: {\n phasedRegistrationNames: {\n bubbled: 'onChange',\n captured: 'onChangeCapture',\n },\n },\n topContentSizeChange: {\n phasedRegistrationNames: {\n captured: 'onContentSizeChangeCapture',\n bubbled: 'onContentSizeChange',\n },\n },\n topEndEditing: {\n phasedRegistrationNames: {\n bubbled: 'onEndEditing',\n captured: 'onEndEditingCapture',\n },\n },\n topFocus: {\n phasedRegistrationNames: {\n bubbled: 'onFocus',\n captured: 'onFocusCapture',\n },\n },\n topKeyPress: {\n phasedRegistrationNames: {\n bubbled: 'onKeyPress',\n captured: 'onKeyPressCapture',\n },\n },\n topSubmitEditing: {\n phasedRegistrationNames: {\n bubbled: 'onSubmitEditing',\n captured: 'onSubmitEditingCapture',\n },\n },\n topTouchCancel: {\n phasedRegistrationNames: {\n bubbled: 'onTouchCancel',\n captured: 'onTouchCancelCapture',\n },\n },\n topTouchEnd: {\n phasedRegistrationNames: {\n bubbled: 'onTouchEnd',\n captured: 'onTouchEndCapture',\n },\n },\n\n topTouchMove: {\n phasedRegistrationNames: {\n bubbled: 'onTouchMove',\n captured: 'onTouchMoveCapture',\n },\n },\n },\n directEventTypes: {\n topTextInput: {\n registrationName: 'onTextInput',\n },\n topKeyPressSync: {\n registrationName: 'onKeyPressSync',\n },\n topScroll: {\n registrationName: 'onScroll',\n },\n topSelectionChange: {\n registrationName: 'onSelectionChange',\n },\n topChangeSync: {\n registrationName: 'onChangeSync',\n },\n },\n validAttributes: {\n fontSize: true,\n fontWeight: true,\n fontVariant: true,\n // flowlint-next-line untyped-import:off\n textShadowOffset: {diff: require('../../Utilities/differ/sizesDiffer')},\n allowFontScaling: true,\n fontStyle: true,\n textTransform: true,\n textAlign: true,\n fontFamily: true,\n lineHeight: true,\n isHighlighted: true,\n writingDirection: true,\n textDecorationLine: true,\n textShadowRadius: true,\n letterSpacing: true,\n textDecorationStyle: true,\n textDecorationColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n color: {process: require('../../StyleSheet/processColor').default},\n maxFontSizeMultiplier: true,\n textShadowColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n editable: true,\n inputAccessoryViewID: true,\n caretHidden: true,\n enablesReturnKeyAutomatically: true,\n placeholderTextColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n clearButtonMode: true,\n keyboardType: true,\n selection: true,\n returnKeyType: true,\n submitBehavior: true,\n mostRecentEventCount: true,\n scrollEnabled: true,\n selectionColor: {process: require('../../StyleSheet/processColor').default},\n contextMenuHidden: true,\n secureTextEntry: true,\n placeholder: true,\n autoCorrect: true,\n multiline: true,\n textContentType: true,\n maxLength: true,\n autoCapitalize: true,\n keyboardAppearance: true,\n passwordRules: true,\n spellCheck: true,\n selectTextOnFocus: true,\n text: true,\n clearTextOnFocus: true,\n showSoftInputOnFocus: true,\n autoFocus: true,\n lineBreakStrategyIOS: true,\n ...ConditionallyIgnoredEventHandlers({\n onChange: true,\n onSelectionChange: true,\n onContentSizeChange: true,\n onScroll: true,\n onChangeSync: true,\n onKeyPressSync: true,\n onTextInput: true,\n }),\n },\n};\n\nmodule.exports = (RCTTextInputViewConfig: PartialViewConfigWithoutName);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {TextInputNativeCommands} from './TextInputNativeCommands';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport RCTTextInputViewConfig from './RCTTextInputViewConfig';\n\ntype NativeType = HostComponent;\n\ntype NativeCommands = TextInputNativeCommands;\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['focus', 'blur', 'setTextAndSelection'],\n});\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {\n uiViewClassName: 'RCTMultilineTextInputView',\n ...RCTTextInputViewConfig,\n validAttributes: {\n ...RCTTextInputViewConfig.validAttributes,\n dataDetectorTypes: true,\n },\n};\n\nconst MultilineTextInputNativeComponent: HostComponent =\n NativeComponentRegistry.get(\n 'RCTMultilineTextInputView',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\n// flowlint-next-line unclear-type:off\nexport default ((MultilineTextInputNativeComponent: any): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {EdgeInsetsProp} from '../../StyleSheet/EdgeInsetsPropType';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {PressEvent} from '../../Types/CoreEventTypes';\nimport type {TouchableType} from './Touchable.flow';\n\nimport {PressabilityDebugView} from '../../Pressability/PressabilityDebug';\nimport UIManager from '../../ReactNative/UIManager';\nimport Platform from '../../Utilities/Platform';\nimport SoundManager from '../Sound/SoundManager';\nimport BoundingDimensions from './BoundingDimensions';\nimport Position from './Position';\nimport * as React from 'react';\n\nconst extractSingleTouch = (nativeEvent: {\n +changedTouches: $ReadOnlyArray,\n +force?: number,\n +identifier: number,\n +locationX: number,\n +locationY: number,\n +pageX: number,\n +pageY: number,\n +target: ?number,\n +timestamp: number,\n +touches: $ReadOnlyArray,\n}) => {\n const touches = nativeEvent.touches;\n const changedTouches = nativeEvent.changedTouches;\n const hasTouches = touches && touches.length > 0;\n const hasChangedTouches = changedTouches && changedTouches.length > 0;\n\n return !hasTouches && hasChangedTouches\n ? changedTouches[0]\n : hasTouches\n ? touches[0]\n : nativeEvent;\n};\n\n/**\n * `Touchable`: Taps done right.\n *\n * You hook your `ResponderEventPlugin` events into `Touchable`. `Touchable`\n * will measure time/geometry and tells you when to give feedback to the user.\n *\n * ====================== Touchable Tutorial ===============================\n * The `Touchable` mixin helps you handle the \"press\" interaction. It analyzes\n * the geometry of elements, and observes when another responder (scroll view\n * etc) has stolen the touch lock. It notifies your component when it should\n * give feedback to the user. (bouncing/highlighting/unhighlighting).\n *\n * - When a touch was activated (typically you highlight)\n * - When a touch was deactivated (typically you unhighlight)\n * - When a touch was \"pressed\" - a touch ended while still within the geometry\n * of the element, and no other element (like scroller) has \"stolen\" touch\n * lock (\"responder\") (Typically you bounce the element).\n *\n * A good tap interaction isn't as simple as you might think. There should be a\n * slight delay before showing a highlight when starting a touch. If a\n * subsequent touch move exceeds the boundary of the element, it should\n * unhighlight, but if that same touch is brought back within the boundary, it\n * should rehighlight again. A touch can move in and out of that boundary\n * several times, each time toggling highlighting, but a \"press\" is only\n * triggered if that touch ends while within the element's boundary and no\n * scroller (or anything else) has stolen the lock on touches.\n *\n * To create a new type of component that handles interaction using the\n * `Touchable` mixin, do the following:\n *\n * - Initialize the `Touchable` state.\n *\n * getInitialState: function() {\n * return merge(this.touchableGetInitialState(), yourComponentState);\n * }\n *\n * - Choose the rendered component who's touches should start the interactive\n * sequence. On that rendered node, forward all `Touchable` responder\n * handlers. You can choose any rendered node you like. Choose a node whose\n * hit target you'd like to instigate the interaction sequence:\n *\n * // In render function:\n * return (\n * \n * \n * Even though the hit detection/interactions are triggered by the\n * wrapping (typically larger) node, we usually end up implementing\n * custom logic that highlights this inner one.\n * \n * \n * );\n *\n * - You may set up your own handlers for each of these events, so long as you\n * also invoke the `touchable*` handlers inside of your custom handler.\n *\n * - Implement the handlers on your component class in order to provide\n * feedback to the user. See documentation for each of these class methods\n * that you should implement.\n *\n * touchableHandlePress: function() {\n * this.performBounceAnimation(); // or whatever you want to do.\n * },\n * touchableHandleActivePressIn: function() {\n * this.beginHighlighting(...); // Whatever you like to convey activation\n * },\n * touchableHandleActivePressOut: function() {\n * this.endHighlighting(...); // Whatever you like to convey deactivation\n * },\n *\n * - There are more advanced methods you can implement (see documentation below):\n * touchableGetHighlightDelayMS: function() {\n * return 20;\n * }\n * // In practice, *always* use a predeclared constant (conserve memory).\n * touchableGetPressRectOffset: function() {\n * return {top: 20, left: 20, right: 20, bottom: 100};\n * }\n */\n\n/**\n * Touchable states.\n */\n\nconst States = {\n NOT_RESPONDER: 'NOT_RESPONDER', // Not the responder\n RESPONDER_INACTIVE_PRESS_IN: 'RESPONDER_INACTIVE_PRESS_IN', // Responder, inactive, in the `PressRect`\n RESPONDER_INACTIVE_PRESS_OUT: 'RESPONDER_INACTIVE_PRESS_OUT', // Responder, inactive, out of `PressRect`\n RESPONDER_ACTIVE_PRESS_IN: 'RESPONDER_ACTIVE_PRESS_IN', // Responder, active, in the `PressRect`\n RESPONDER_ACTIVE_PRESS_OUT: 'RESPONDER_ACTIVE_PRESS_OUT', // Responder, active, out of `PressRect`\n RESPONDER_ACTIVE_LONG_PRESS_IN: 'RESPONDER_ACTIVE_LONG_PRESS_IN', // Responder, active, in the `PressRect`, after long press threshold\n RESPONDER_ACTIVE_LONG_PRESS_OUT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT', // Responder, active, out of `PressRect`, after long press threshold\n ERROR: 'ERROR',\n};\n\ntype State =\n | typeof States.NOT_RESPONDER\n | typeof States.RESPONDER_INACTIVE_PRESS_IN\n | typeof States.RESPONDER_INACTIVE_PRESS_OUT\n | typeof States.RESPONDER_ACTIVE_PRESS_IN\n | typeof States.RESPONDER_ACTIVE_PRESS_OUT\n | typeof States.RESPONDER_ACTIVE_LONG_PRESS_IN\n | typeof States.RESPONDER_ACTIVE_LONG_PRESS_OUT\n | typeof States.ERROR;\n\n/*\n * Quick lookup map for states that are considered to be \"active\"\n */\n\nconst baseStatesConditions = {\n NOT_RESPONDER: false,\n RESPONDER_INACTIVE_PRESS_IN: false,\n RESPONDER_INACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_PRESS_IN: false,\n RESPONDER_ACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_LONG_PRESS_IN: false,\n RESPONDER_ACTIVE_LONG_PRESS_OUT: false,\n ERROR: false,\n};\n\nconst IsActive = {\n ...baseStatesConditions,\n RESPONDER_ACTIVE_PRESS_OUT: true,\n RESPONDER_ACTIVE_PRESS_IN: true,\n};\n\n/**\n * Quick lookup for states that are considered to be \"pressing\" and are\n * therefore eligible to result in a \"selection\" if the press stops.\n */\nconst IsPressingIn = {\n ...baseStatesConditions,\n RESPONDER_INACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_LONG_PRESS_IN: true,\n};\n\nconst IsLongPressingIn = {\n ...baseStatesConditions,\n RESPONDER_ACTIVE_LONG_PRESS_IN: true,\n};\n\n/**\n * Inputs to the state machine.\n */\nconst Signals = {\n DELAY: 'DELAY',\n RESPONDER_GRANT: 'RESPONDER_GRANT',\n RESPONDER_RELEASE: 'RESPONDER_RELEASE',\n RESPONDER_TERMINATED: 'RESPONDER_TERMINATED',\n ENTER_PRESS_RECT: 'ENTER_PRESS_RECT',\n LEAVE_PRESS_RECT: 'LEAVE_PRESS_RECT',\n LONG_PRESS_DETECTED: 'LONG_PRESS_DETECTED',\n};\n\ntype Signal =\n | typeof Signals.DELAY\n | typeof Signals.RESPONDER_GRANT\n | typeof Signals.RESPONDER_RELEASE\n | typeof Signals.RESPONDER_TERMINATED\n | typeof Signals.ENTER_PRESS_RECT\n | typeof Signals.LEAVE_PRESS_RECT\n | typeof Signals.LONG_PRESS_DETECTED;\n\n/**\n * Mapping from States x Signals => States\n */\nconst Transitions = {\n NOT_RESPONDER: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,\n RESPONDER_RELEASE: States.ERROR,\n RESPONDER_TERMINATED: States.ERROR,\n ENTER_PRESS_RECT: States.ERROR,\n LEAVE_PRESS_RECT: States.ERROR,\n LONG_PRESS_DETECTED: States.ERROR,\n },\n RESPONDER_INACTIVE_PRESS_IN: {\n DELAY: States.RESPONDER_ACTIVE_PRESS_IN,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR,\n },\n RESPONDER_INACTIVE_PRESS_OUT: {\n DELAY: States.RESPONDER_ACTIVE_PRESS_OUT,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR,\n },\n RESPONDER_ACTIVE_PRESS_IN: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n },\n RESPONDER_ACTIVE_PRESS_OUT: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR,\n },\n RESPONDER_ACTIVE_LONG_PRESS_IN: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,\n LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n },\n RESPONDER_ACTIVE_LONG_PRESS_OUT: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR,\n },\n error: {\n DELAY: States.NOT_RESPONDER,\n RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.NOT_RESPONDER,\n LEAVE_PRESS_RECT: States.NOT_RESPONDER,\n LONG_PRESS_DETECTED: States.NOT_RESPONDER,\n },\n};\n\n// ==== Typical Constants for integrating into UI components ====\n// var HIT_EXPAND_PX = 20;\n// var HIT_VERT_OFFSET_PX = 10;\nconst HIGHLIGHT_DELAY_MS = 130;\n\nconst PRESS_EXPAND_PX = 20;\n\nconst LONG_PRESS_THRESHOLD = 500;\n\nconst LONG_PRESS_DELAY_MS = LONG_PRESS_THRESHOLD - HIGHLIGHT_DELAY_MS;\n\nconst LONG_PRESS_ALLOWED_MOVEMENT = 10;\n\n// Default amount \"active\" region protrudes beyond box\n\n/**\n * By convention, methods prefixed with underscores are meant to be @private,\n * and not @protected. Mixers shouldn't access them - not even to provide them\n * as callback handlers.\n *\n *\n * ========== Geometry =========\n * `Touchable` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * +--------------------------+\n * | | - \"Start\" events in `HitRect` cause `HitRect`\n * | +--------------------+ | to become the responder.\n * | | +--------------+ | | - `HitRect` is typically expanded around\n * | | | | | | the `VisualRect`, but shifted downward.\n * | | | VisualRect | | | - After pressing down, after some delay,\n * | | | | | | and before letting up, the Visual React\n * | | +--------------+ | | will become \"active\". This makes it eligible\n * | | HitRect | | for being highlighted (so long as the\n * | +--------------------+ | press remains in the `PressRect`).\n * | PressRect o |\n * +----------------------|---+\n * Out Region |\n * +-----+ This gap between the `HitRect` and\n * `PressRect` allows a touch to move far away\n * from the original hit rect, and remain\n * highlighted, and eligible for a \"Press\".\n * Customize this via\n * `touchableGetPressRectOffset()`.\n *\n *\n *\n * ======= State Machine =======\n *\n * +-------------+ <---+ RESPONDER_RELEASE\n * |NOT_RESPONDER|\n * +-------------+ <---+ RESPONDER_TERMINATED\n * +\n * | RESPONDER_GRANT (HitRect)\n * v\n * +---------------------------+ DELAY +-------------------------+ T + DELAY +------------------------------+\n * |RESPONDER_INACTIVE_PRESS_IN|+-------->|RESPONDER_ACTIVE_PRESS_IN| +------------> |RESPONDER_ACTIVE_LONG_PRESS_IN|\n * +---------------------------+ +-------------------------+ +------------------------------+\n * + ^ + ^ + ^\n * |LEAVE_ |ENTER_ |LEAVE_ |ENTER_ |LEAVE_ |ENTER_\n * |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT\n * | | | | | |\n * v + v + v +\n * +----------------------------+ DELAY +--------------------------+ +-------------------------------+\n * |RESPONDER_INACTIVE_PRESS_OUT|+------->|RESPONDER_ACTIVE_PRESS_OUT| |RESPONDER_ACTIVE_LONG_PRESS_OUT|\n * +----------------------------+ +--------------------------+ +-------------------------------+\n *\n * T + DELAY => LONG_PRESS_DELAY_MS + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the `touchableHandlePress` abstract method invocation that occurs\n * when a responder is released while in either of the \"Press\" states.\n *\n * The other important side effects are the highlight abstract method\n * invocations (internal callbacks) to be implemented by the mixer.\n *\n *\n * @lends Touchable.prototype\n */\nconst TouchableMixin = {\n componentDidMount: function () {\n if (!Platform.isTV) {\n return;\n }\n },\n\n /**\n * Clear all timeouts on unmount\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n componentWillUnmount: function () {\n this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout);\n },\n\n /**\n * It's prefer that mixins determine state in this way, having the class\n * explicitly mix the state in the one and only `getInitialState` method.\n *\n * @return {object} State object to be placed inside of\n * `this.state.touchable`.\n */\n touchableGetInitialState: function (): {\n touchable: {\n touchState: ?State,\n responderID: ?PressEvent['currentTarget'],\n },\n } {\n return {\n touchable: {touchState: undefined, responderID: null},\n };\n },\n\n // ==== Hooks to Gesture Responder system ====\n /**\n * Must return true if embedded in a native platform scroll view.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleResponderTerminationRequest: function (): any {\n return !this.props.rejectResponderTermination;\n },\n\n /**\n * Must return true to start the process of `Touchable`.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleStartShouldSetResponder: function (): any {\n return !this.props.disabled;\n },\n\n /**\n * Return true to cancel press on long press.\n */\n touchableLongPressCancelsPress: function (): boolean {\n return true;\n },\n\n /**\n * Place as callback for a DOM element's `onResponderGrant` event.\n * @param {SyntheticEvent} e Synthetic event from event system.\n *\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleResponderGrant: function (e: PressEvent) {\n const dispatchID = e.currentTarget;\n // Since e is used in a callback invoked on another event loop\n // (as in setTimeout etc), we need to call e.persist() on the\n // event to make sure it doesn't get reused in the event object pool.\n e.persist();\n\n this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout);\n this.pressOutDelayTimeout = null;\n\n this.state.touchable.touchState = States.NOT_RESPONDER;\n this.state.touchable.responderID = dispatchID;\n this._receiveSignal(Signals.RESPONDER_GRANT, e);\n let delayMS =\n this.touchableGetHighlightDelayMS !== undefined\n ? Math.max(this.touchableGetHighlightDelayMS(), 0)\n : HIGHLIGHT_DELAY_MS;\n delayMS = isNaN(delayMS) ? HIGHLIGHT_DELAY_MS : delayMS;\n if (delayMS !== 0) {\n this.touchableDelayTimeout = setTimeout(\n this._handleDelay.bind(this, e),\n delayMS,\n );\n } else {\n this._handleDelay(e);\n }\n\n let longDelayMS =\n this.touchableGetLongPressDelayMS !== undefined\n ? Math.max(this.touchableGetLongPressDelayMS(), 10)\n : LONG_PRESS_DELAY_MS;\n longDelayMS = isNaN(longDelayMS) ? LONG_PRESS_DELAY_MS : longDelayMS;\n this.longPressDelayTimeout = setTimeout(\n this._handleLongDelay.bind(this, e),\n longDelayMS + delayMS,\n );\n },\n\n /**\n * Place as callback for a DOM element's `onResponderRelease` event.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleResponderRelease: function (e: PressEvent) {\n this.pressInLocation = null;\n this._receiveSignal(Signals.RESPONDER_RELEASE, e);\n },\n\n /**\n * Place as callback for a DOM element's `onResponderTerminate` event.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleResponderTerminate: function (e: PressEvent) {\n this.pressInLocation = null;\n this._receiveSignal(Signals.RESPONDER_TERMINATED, e);\n },\n\n /**\n * Place as callback for a DOM element's `onResponderMove` event.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleResponderMove: function (e: PressEvent) {\n // Measurement may not have returned yet.\n if (!this.state.touchable.positionOnActivate) {\n return;\n }\n\n const positionOnActivate = this.state.touchable.positionOnActivate;\n const dimensionsOnActivate = this.state.touchable.dimensionsOnActivate;\n const pressRectOffset = this.touchableGetPressRectOffset\n ? this.touchableGetPressRectOffset()\n : {\n left: PRESS_EXPAND_PX,\n right: PRESS_EXPAND_PX,\n top: PRESS_EXPAND_PX,\n bottom: PRESS_EXPAND_PX,\n };\n\n let pressExpandLeft = pressRectOffset.left;\n let pressExpandTop = pressRectOffset.top;\n let pressExpandRight = pressRectOffset.right;\n let pressExpandBottom = pressRectOffset.bottom;\n\n const hitSlop = this.touchableGetHitSlop\n ? this.touchableGetHitSlop()\n : null;\n\n if (hitSlop) {\n pressExpandLeft += hitSlop.left || 0;\n pressExpandTop += hitSlop.top || 0;\n pressExpandRight += hitSlop.right || 0;\n pressExpandBottom += hitSlop.bottom || 0;\n }\n\n const touch = extractSingleTouch(e.nativeEvent);\n const pageX = touch && touch.pageX;\n const pageY = touch && touch.pageY;\n\n if (this.pressInLocation) {\n const movedDistance = this._getDistanceBetweenPoints(\n pageX,\n pageY,\n this.pressInLocation.pageX,\n this.pressInLocation.pageY,\n );\n if (movedDistance > LONG_PRESS_ALLOWED_MOVEMENT) {\n this._cancelLongPressDelayTimeout();\n }\n }\n\n const isTouchWithinActive =\n pageX > positionOnActivate.left - pressExpandLeft &&\n pageY > positionOnActivate.top - pressExpandTop &&\n pageX <\n positionOnActivate.left +\n dimensionsOnActivate.width +\n pressExpandRight &&\n pageY <\n positionOnActivate.top +\n dimensionsOnActivate.height +\n pressExpandBottom;\n if (isTouchWithinActive) {\n const prevState = this.state.touchable.touchState;\n this._receiveSignal(Signals.ENTER_PRESS_RECT, e);\n const curState = this.state.touchable.touchState;\n if (\n curState === States.RESPONDER_INACTIVE_PRESS_IN &&\n prevState !== States.RESPONDER_INACTIVE_PRESS_IN\n ) {\n // fix for t7967420\n this._cancelLongPressDelayTimeout();\n }\n } else {\n this._cancelLongPressDelayTimeout();\n this._receiveSignal(Signals.LEAVE_PRESS_RECT, e);\n }\n },\n\n /**\n * Invoked when the item receives focus. Mixers might override this to\n * visually distinguish the `VisualRect` so that the user knows that it\n * currently has the focus. Most platforms only support a single element being\n * focused at a time, in which case there may have been a previously focused\n * element that was blurred just prior to this. This can be overridden when\n * using `Touchable.Mixin.withoutDefaultFocusAndBlur`.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleFocus: function (e: Event) {\n this.props.onFocus && this.props.onFocus(e);\n },\n\n /**\n * Invoked when the item loses focus. Mixers might override this to\n * visually distinguish the `VisualRect` so that the user knows that it\n * no longer has focus. Most platforms only support a single element being\n * focused at a time, in which case the focus may have moved to another.\n * This can be overridden when using\n * `Touchable.Mixin.withoutDefaultFocusAndBlur`.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleBlur: function (e: Event) {\n this.props.onBlur && this.props.onBlur(e);\n },\n\n // ==== Abstract Application Callbacks ====\n\n /**\n * Invoked when the item should be highlighted. Mixers should implement this\n * to visually distinguish the `VisualRect` so that the user knows that\n * releasing a touch will result in a \"selection\" (analog to click).\n *\n * @abstract\n * touchableHandleActivePressIn: function,\n */\n\n /**\n * Invoked when the item is \"active\" (in that it is still eligible to become\n * a \"select\") but the touch has left the `PressRect`. Usually the mixer will\n * want to unhighlight the `VisualRect`. If the user (while pressing) moves\n * back into the `PressRect` `touchableHandleActivePressIn` will be invoked\n * again and the mixer should probably highlight the `VisualRect` again. This\n * event will not fire on an `touchEnd/mouseUp` event, only move events while\n * the user is depressing the mouse/touch.\n *\n * @abstract\n * touchableHandleActivePressOut: function\n */\n\n /**\n * Invoked when the item is \"selected\" - meaning the interaction ended by\n * letting up while the item was either in the state\n * `RESPONDER_ACTIVE_PRESS_IN` or `RESPONDER_INACTIVE_PRESS_IN`.\n *\n * @abstract\n * touchableHandlePress: function\n */\n\n /**\n * Invoked when the item is long pressed - meaning the interaction ended by\n * letting up while the item was in `RESPONDER_ACTIVE_LONG_PRESS_IN`. If\n * `touchableHandleLongPress` is *not* provided, `touchableHandlePress` will\n * be called as it normally is. If `touchableHandleLongPress` is provided, by\n * default any `touchableHandlePress` callback will not be invoked. To\n * override this default behavior, override `touchableLongPressCancelsPress`\n * to return false. As a result, `touchableHandlePress` will be called when\n * lifting up, even if `touchableHandleLongPress` has also been called.\n *\n * @abstract\n * touchableHandleLongPress: function\n */\n\n /**\n * Returns the number of millis to wait before triggering a highlight.\n *\n * @abstract\n * touchableGetHighlightDelayMS: function\n */\n\n /**\n * Returns the amount to extend the `HitRect` into the `PressRect`. Positive\n * numbers mean the size expands outwards.\n *\n * @abstract\n * touchableGetPressRectOffset: function\n */\n\n // ==== Internal Logic ====\n\n /**\n * Measures the `HitRect` node on activation. The Bounding rectangle is with\n * respect to viewport - not page, so adding the `pageXOffset/pageYOffset`\n * should result in points that are in the same coordinate system as an\n * event's `globalX/globalY` data values.\n *\n * - Consider caching this for the lifetime of the component, or possibly\n * being able to share this cache between any `ScrollMap` view.\n *\n * @sideeffects\n * @private\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _remeasureMetricsOnActivation: function () {\n const responderID = this.state.touchable.responderID;\n if (responderID == null) {\n return;\n }\n\n if (typeof responderID === 'number') {\n UIManager.measure(responderID, this._handleQueryLayout);\n } else {\n responderID.measure(this._handleQueryLayout);\n }\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _handleQueryLayout: function (\n l: number,\n t: number,\n w: number,\n h: number,\n globalX: number,\n globalY: number,\n ) {\n //don't do anything UIManager failed to measure node\n if (!l && !t && !w && !h && !globalX && !globalY) {\n return;\n }\n this.state.touchable.positionOnActivate &&\n Position.release(this.state.touchable.positionOnActivate);\n this.state.touchable.dimensionsOnActivate &&\n BoundingDimensions.release(this.state.touchable.dimensionsOnActivate);\n this.state.touchable.positionOnActivate = Position.getPooled(\n globalX,\n globalY,\n );\n this.state.touchable.dimensionsOnActivate = BoundingDimensions.getPooled(\n w,\n h,\n );\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _handleDelay: function (e: PressEvent) {\n this.touchableDelayTimeout = null;\n this._receiveSignal(Signals.DELAY, e);\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _handleLongDelay: function (e: PressEvent) {\n this.longPressDelayTimeout = null;\n const curState = this.state.touchable.touchState;\n if (\n curState === States.RESPONDER_ACTIVE_PRESS_IN ||\n curState === States.RESPONDER_ACTIVE_LONG_PRESS_IN\n ) {\n this._receiveSignal(Signals.LONG_PRESS_DETECTED, e);\n }\n },\n\n /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n *\n * @param {Signals} signal State machine signal.\n * @throws Error if invalid state transition or unrecognized signal.\n * @sideeffects\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _receiveSignal: function (signal: Signal, e: PressEvent) {\n const responderID = this.state.touchable.responderID;\n const curState = this.state.touchable.touchState;\n const nextState = Transitions[curState] && Transitions[curState][signal];\n if (!responderID && signal === Signals.RESPONDER_RELEASE) {\n return;\n }\n if (!nextState) {\n throw new Error(\n 'Unrecognized signal `' +\n signal +\n '` or state `' +\n curState +\n '` for Touchable responder `' +\n typeof this.state.touchable.responderID ===\n 'number'\n ? this.state.touchable.responderID\n : 'host component' + '`',\n );\n }\n if (nextState === States.ERROR) {\n throw new Error(\n 'Touchable cannot transition from `' +\n curState +\n '` to `' +\n signal +\n '` for responder `' +\n typeof this.state.touchable.responderID ===\n 'number'\n ? this.state.touchable.responderID\n : '<>' + '`',\n );\n }\n if (curState !== nextState) {\n this._performSideEffectsForTransition(curState, nextState, signal, e);\n this.state.touchable.touchState = nextState;\n }\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _cancelLongPressDelayTimeout: function () {\n this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n this.longPressDelayTimeout = null;\n },\n\n _isHighlight: function (state: State): boolean {\n return (\n state === States.RESPONDER_ACTIVE_PRESS_IN ||\n state === States.RESPONDER_ACTIVE_LONG_PRESS_IN\n );\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _savePressInLocation: function (e: PressEvent) {\n const touch = extractSingleTouch(e.nativeEvent);\n const pageX = touch && touch.pageX;\n const pageY = touch && touch.pageY;\n const locationX = touch && touch.locationX;\n const locationY = touch && touch.locationY;\n this.pressInLocation = {pageX, pageY, locationX, locationY};\n },\n\n _getDistanceBetweenPoints: function (\n aX: number,\n aY: number,\n bX: number,\n bY: number,\n ): number {\n const deltaX = aX - bX;\n const deltaY = aY - bY;\n return Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n },\n\n /**\n * Will perform a transition between touchable states, and identify any\n * highlighting or unhighlighting that must be performed for this particular\n * transition.\n *\n * @param {States} curState Current Touchable state.\n * @param {States} nextState Next Touchable state.\n * @param {Signal} signal Signal that triggered the transition.\n * @param {Event} e Native event.\n * @sideeffects\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _performSideEffectsForTransition: function (\n curState: State,\n nextState: State,\n signal: Signal,\n e: PressEvent,\n ) {\n const curIsHighlight = this._isHighlight(curState);\n const newIsHighlight = this._isHighlight(nextState);\n\n const isFinalSignal =\n signal === Signals.RESPONDER_TERMINATED ||\n signal === Signals.RESPONDER_RELEASE;\n\n if (isFinalSignal) {\n this._cancelLongPressDelayTimeout();\n }\n\n const isInitialTransition =\n curState === States.NOT_RESPONDER &&\n nextState === States.RESPONDER_INACTIVE_PRESS_IN;\n\n const isActiveTransition = !IsActive[curState] && IsActive[nextState];\n if (isInitialTransition || isActiveTransition) {\n this._remeasureMetricsOnActivation();\n }\n\n if (IsPressingIn[curState] && signal === Signals.LONG_PRESS_DETECTED) {\n this.touchableHandleLongPress && this.touchableHandleLongPress(e);\n }\n\n if (newIsHighlight && !curIsHighlight) {\n this._startHighlight(e);\n } else if (!newIsHighlight && curIsHighlight) {\n this._endHighlight(e);\n }\n\n if (IsPressingIn[curState] && signal === Signals.RESPONDER_RELEASE) {\n const hasLongPressHandler = !!this.props.onLongPress;\n const pressIsLongButStillCallOnPress =\n IsLongPressingIn[curState] && // We *are* long pressing.. // But either has no long handler\n (!hasLongPressHandler || !this.touchableLongPressCancelsPress()); // or we're told to ignore it.\n\n const shouldInvokePress =\n !IsLongPressingIn[curState] || pressIsLongButStillCallOnPress;\n if (shouldInvokePress && this.touchableHandlePress) {\n if (!newIsHighlight && !curIsHighlight) {\n // we never highlighted because of delay, but we should highlight now\n this._startHighlight(e);\n this._endHighlight(e);\n }\n if (Platform.OS === 'android' && !this.props.touchSoundDisabled) {\n SoundManager.playTouchSound();\n }\n this.touchableHandlePress(e);\n }\n }\n\n this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n this.touchableDelayTimeout = null;\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _startHighlight: function (e: PressEvent) {\n this._savePressInLocation(e);\n this.touchableHandleActivePressIn && this.touchableHandleActivePressIn(e);\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _endHighlight: function (e: PressEvent) {\n if (this.touchableHandleActivePressOut) {\n if (\n this.touchableGetPressOutDelayMS &&\n this.touchableGetPressOutDelayMS()\n ) {\n this.pressOutDelayTimeout = setTimeout(() => {\n this.touchableHandleActivePressOut(e);\n }, this.touchableGetPressOutDelayMS());\n } else {\n this.touchableHandleActivePressOut(e);\n }\n }\n },\n\n withoutDefaultFocusAndBlur: ({}: {...}),\n};\n\n/**\n * Provide an optional version of the mixin where `touchableHandleFocus` and\n * `touchableHandleBlur` can be overridden. This allows appropriate defaults to\n * be set on TV platforms, without breaking existing implementations of\n * `Touchable`.\n */\nconst {\n touchableHandleFocus,\n touchableHandleBlur,\n ...TouchableMixinWithoutDefaultFocusAndBlur\n} = TouchableMixin;\nTouchableMixin.withoutDefaultFocusAndBlur =\n TouchableMixinWithoutDefaultFocusAndBlur;\n\nconst Touchable: TouchableType = {\n Mixin: TouchableMixin,\n /**\n * Renders a debugging overlay to visualize touch target with hitSlop (might not work on Android).\n */\n renderDebugView: ({\n color,\n hitSlop,\n }: {\n color: ColorValue,\n hitSlop: EdgeInsetsProp,\n ...\n }): null | React.Node => {\n if (__DEV__) {\n return ;\n }\n return null;\n },\n};\n\nmodule.exports = Touchable;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\nimport PooledClass from './PooledClass';\n\nconst twoArgumentPooler = PooledClass.twoArgumentPooler;\n\n/**\n * PooledClass representing the bounding rectangle of a region.\n *\n * @param {number} width Width of bounding rectangle.\n * @param {number} height Height of bounding rectangle.\n * @constructor BoundingDimensions\n */\nfunction BoundingDimensions(width, height) {\n this.width = width;\n this.height = height;\n}\n\nBoundingDimensions.prototype.destructor = function () {\n this.width = null;\n this.height = null;\n};\n\n/**\n * @param {HTMLElement} element Element to return `BoundingDimensions` for.\n * @return {BoundingDimensions} Bounding dimensions of `element`.\n */\nBoundingDimensions.getPooledFromElement = function (element) {\n return BoundingDimensions.getPooled(\n element.offsetWidth,\n element.offsetHeight,\n );\n};\n\nPooledClass.addPoolingTo(BoundingDimensions, twoArgumentPooler);\n\nmodule.exports = BoundingDimensions;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\nimport invariant from 'invariant';\n\n/**\n * Static poolers. Several custom versions for each potential number of\n * arguments. A completely generic pooler is easy to implement, but would\n * require accessing the `arguments` object. In each of these, `this` refers to\n * the Class itself, not an instance. If any others are needed, simply add them\n * here, or in their own files.\n */\n/* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\nconst oneArgumentPooler = function (copyFieldsFrom: any) {\n const Klass = this; // eslint-disable-line consistent-this\n if (Klass.instancePool.length) {\n const instance = Klass.instancePool.pop();\n Klass.call(instance, copyFieldsFrom);\n return instance;\n } else {\n return new Klass(copyFieldsFrom);\n }\n};\n\n/* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\nconst twoArgumentPooler = function (a1: any, a2: any) {\n const Klass = this; // eslint-disable-line consistent-this\n if (Klass.instancePool.length) {\n const instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2);\n return instance;\n } else {\n return new Klass(a1, a2);\n }\n};\n\n/* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\nconst threeArgumentPooler = function (a1: any, a2: any, a3: any) {\n const Klass = this; // eslint-disable-line consistent-this\n if (Klass.instancePool.length) {\n const instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3);\n return instance;\n } else {\n return new Klass(a1, a2, a3);\n }\n};\n\n/* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\nconst fourArgumentPooler = function (a1: any, a2: any, a3: any, a4: any) {\n const Klass = this; // eslint-disable-line consistent-this\n if (Klass.instancePool.length) {\n const instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3, a4);\n return instance;\n } else {\n return new Klass(a1, a2, a3, a4);\n }\n};\n\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n/* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\nconst standardReleaser = function (instance) {\n const Klass = this; // eslint-disable-line consistent-this\n invariant(\n instance instanceof Klass,\n 'Trying to release an instance into a pool of a different type.',\n );\n instance.destructor();\n if (Klass.instancePool.length < Klass.poolSize) {\n Klass.instancePool.push(instance);\n }\n};\n\nconst DEFAULT_POOL_SIZE = 10;\nconst DEFAULT_POOLER = oneArgumentPooler;\n\ntype Pooler = any;\n\n/**\n * Augments `CopyConstructor` to be a poolable class, augmenting only the class\n * itself (statically) not adding any prototypical fields. Any CopyConstructor\n * you give this may have a `poolSize` property, and will look for a\n * prototypical `destructor` on instances.\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\nconst addPoolingTo = function (\n CopyConstructor: Class,\n pooler: Pooler,\n): Class & {\n getPooled(\n ...args: $ReadOnlyArray\n ): /* arguments of the constructor */ T,\n release(instance: mixed): void,\n ...\n} {\n // Casting as any so that flow ignores the actual implementation and trusts\n // it to match the type we declared\n const NewKlass = (CopyConstructor: any);\n NewKlass.instancePool = [];\n NewKlass.getPooled = pooler || DEFAULT_POOLER;\n if (!NewKlass.poolSize) {\n NewKlass.poolSize = DEFAULT_POOL_SIZE;\n }\n NewKlass.release = standardReleaser;\n return NewKlass;\n};\n\nconst PooledClass = {\n addPoolingTo: addPoolingTo,\n oneArgumentPooler: (oneArgumentPooler: Pooler),\n twoArgumentPooler: (twoArgumentPooler: Pooler),\n threeArgumentPooler: (threeArgumentPooler: Pooler),\n fourArgumentPooler: (fourArgumentPooler: Pooler),\n};\n\nmodule.exports = PooledClass;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\nimport PooledClass from './PooledClass';\n\nconst twoArgumentPooler = PooledClass.twoArgumentPooler;\n\n/**\n * Position does not expose methods for construction via an `HTMLDOMElement`,\n * because it isn't meaningful to construct such a thing without first defining\n * a frame of reference.\n *\n * @param {number} windowStartKey Key that window starts at.\n * @param {number} windowEndKey Key that window ends at.\n */\nfunction Position(left, top) {\n this.left = left;\n this.top = top;\n}\n\nPosition.prototype.destructor = function () {\n this.left = null;\n this.top = null;\n};\n\nPooledClass.addPoolingTo(Position, twoArgumentPooler);\n\nmodule.exports = Position;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport typeof TouchableWithoutFeedback from './TouchableWithoutFeedback';\n\nimport View from '../../Components/View/View';\nimport Pressability, {\n type PressabilityConfig,\n} from '../../Pressability/Pressability';\nimport {PressabilityDebugView} from '../../Pressability/PressabilityDebug';\nimport StyleSheet, {type ViewStyleProp} from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport * as React from 'react';\n\ntype AndroidProps = $ReadOnly<{|\n nextFocusDown?: ?number,\n nextFocusForward?: ?number,\n nextFocusLeft?: ?number,\n nextFocusRight?: ?number,\n nextFocusUp?: ?number,\n|}>;\n\ntype IOSProps = $ReadOnly<{|\n hasTVPreferredFocus?: ?boolean,\n|}>;\n\ntype Props = $ReadOnly<{|\n ...React.ElementConfig,\n ...AndroidProps,\n ...IOSProps,\n\n activeOpacity?: ?number,\n underlayColor?: ?ColorValue,\n style?: ?ViewStyleProp,\n onShowUnderlay?: ?() => void,\n onHideUnderlay?: ?() => void,\n testOnly_pressed?: ?boolean,\n\n hostRef: React.Ref,\n|}>;\n\ntype ExtraStyles = $ReadOnly<{|\n child: ViewStyleProp,\n underlay: ViewStyleProp,\n|}>;\n\ntype State = $ReadOnly<{|\n pressability: Pressability,\n extraStyles: ?ExtraStyles,\n|}>;\n\n/**\n * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, which allows\n * the underlay color to show through, darkening or tinting the view.\n *\n * The underlay comes from wrapping the child in a new View, which can affect\n * layout, and sometimes cause unwanted visual artifacts if not used correctly,\n * for example if the backgroundColor of the wrapped view isn't explicitly set\n * to an opaque color.\n *\n * TouchableHighlight must have one child (not zero or more than one).\n * If you wish to have several child components, wrap them in a View.\n *\n * Example:\n *\n * ```\n * renderButton: function() {\n * return (\n * \n * \n * \n * );\n * },\n * ```\n *\n *\n * ### Example\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react'\n * import {\n * AppRegistry,\n * StyleSheet,\n * TouchableHighlight,\n * Text,\n * View,\n * } from 'react-native'\n *\n * class App extends Component {\n * constructor(props) {\n * super(props)\n * this.state = { count: 0 }\n * }\n *\n * onPress = () => {\n * this.setState({\n * count: this.state.count+1\n * })\n * }\n *\n * render() {\n * return (\n * \n * \n * Touch Here \n * \n * \n * \n * { this.state.count !== 0 ? this.state.count: null}\n * \n * \n * \n * )\n * }\n * }\n *\n * const styles = StyleSheet.create({\n * container: {\n * flex: 1,\n * justifyContent: 'center',\n * paddingHorizontal: 10\n * },\n * button: {\n * alignItems: 'center',\n * backgroundColor: '#DDDDDD',\n * padding: 10\n * },\n * countContainer: {\n * alignItems: 'center',\n * padding: 10\n * },\n * countText: {\n * color: '#FF00FF'\n * }\n * })\n *\n * AppRegistry.registerComponent('App', () => App)\n * ```\n *\n */\nclass TouchableHighlight extends React.Component {\n _hideTimeout: ?TimeoutID;\n _isMounted: boolean = false;\n\n state: State = {\n pressability: new Pressability(this._createPressabilityConfig()),\n extraStyles:\n this.props.testOnly_pressed === true ? this._createExtraStyles() : null,\n };\n\n _createPressabilityConfig(): PressabilityConfig {\n return {\n cancelable: !this.props.rejectResponderTermination,\n disabled:\n this.props.disabled != null\n ? this.props.disabled\n : this.props.accessibilityState?.disabled,\n hitSlop: this.props.hitSlop,\n delayLongPress: this.props.delayLongPress,\n delayPressIn: this.props.delayPressIn,\n delayPressOut: this.props.delayPressOut,\n minPressDuration: 0,\n pressRectOffset: this.props.pressRetentionOffset,\n android_disableSound: this.props.touchSoundDisabled,\n onBlur: event => {\n if (Platform.isTV) {\n this._hideUnderlay();\n }\n if (this.props.onBlur != null) {\n this.props.onBlur(event);\n }\n },\n onFocus: event => {\n if (Platform.isTV) {\n this._showUnderlay();\n }\n if (this.props.onFocus != null) {\n this.props.onFocus(event);\n }\n },\n onLongPress: this.props.onLongPress,\n onPress: event => {\n if (this._hideTimeout != null) {\n clearTimeout(this._hideTimeout);\n }\n if (!Platform.isTV) {\n this._showUnderlay();\n this._hideTimeout = setTimeout(() => {\n this._hideUnderlay();\n }, this.props.delayPressOut ?? 0);\n }\n if (this.props.onPress != null) {\n this.props.onPress(event);\n }\n },\n onPressIn: event => {\n if (this._hideTimeout != null) {\n clearTimeout(this._hideTimeout);\n this._hideTimeout = null;\n }\n this._showUnderlay();\n if (this.props.onPressIn != null) {\n this.props.onPressIn(event);\n }\n },\n onPressOut: event => {\n if (this._hideTimeout == null) {\n this._hideUnderlay();\n }\n if (this.props.onPressOut != null) {\n this.props.onPressOut(event);\n }\n },\n };\n }\n\n _createExtraStyles(): ExtraStyles {\n return {\n child: {opacity: this.props.activeOpacity ?? 0.85},\n underlay: {\n backgroundColor:\n this.props.underlayColor === undefined\n ? 'black'\n : this.props.underlayColor,\n },\n };\n }\n\n _showUnderlay(): void {\n if (!this._isMounted || !this._hasPressHandler()) {\n return;\n }\n this.setState({extraStyles: this._createExtraStyles()});\n if (this.props.onShowUnderlay != null) {\n this.props.onShowUnderlay();\n }\n }\n\n _hideUnderlay(): void {\n if (this._hideTimeout != null) {\n clearTimeout(this._hideTimeout);\n this._hideTimeout = null;\n }\n if (this.props.testOnly_pressed === true) {\n return;\n }\n if (this._hasPressHandler()) {\n this.setState({extraStyles: null});\n if (this.props.onHideUnderlay != null) {\n this.props.onHideUnderlay();\n }\n }\n }\n\n _hasPressHandler(): boolean {\n return (\n this.props.onPress != null ||\n this.props.onPressIn != null ||\n this.props.onPressOut != null ||\n this.props.onLongPress != null\n );\n }\n\n render(): React.Node {\n const child = React.Children.only<$FlowFixMe>(this.props.children);\n\n // BACKWARD-COMPATIBILITY: Focus and blur events were never supported before\n // adopting `Pressability`, so preserve that behavior.\n const {onBlur, onFocus, ...eventHandlersWithoutBlurAndFocus} =\n this.state.pressability.getEventHandlers();\n\n const accessibilityState =\n this.props.disabled != null\n ? {\n ...this.props.accessibilityState,\n disabled: this.props.disabled,\n }\n : this.props.accessibilityState;\n\n const accessibilityValue = {\n max: this.props['aria-valuemax'] ?? this.props.accessibilityValue?.max,\n min: this.props['aria-valuemin'] ?? this.props.accessibilityValue?.min,\n now: this.props['aria-valuenow'] ?? this.props.accessibilityValue?.now,\n text: this.props['aria-valuetext'] ?? this.props.accessibilityValue?.text,\n };\n\n const accessibilityLiveRegion =\n this.props['aria-live'] === 'off'\n ? 'none'\n : this.props['aria-live'] ?? this.props.accessibilityLiveRegion;\n\n const accessibilityLabel =\n this.props['aria-label'] ?? this.props.accessibilityLabel;\n return (\n \n {React.cloneElement(child, {\n style: StyleSheet.compose(\n child.props.style,\n this.state.extraStyles?.child,\n ),\n })}\n {__DEV__ ? (\n \n ) : null}\n \n );\n }\n\n componentDidMount(): void {\n this._isMounted = true;\n }\n\n componentDidUpdate(prevProps: Props, prevState: State) {\n this.state.pressability.configure(this._createPressabilityConfig());\n }\n\n componentWillUnmount(): void {\n this._isMounted = false;\n if (this._hideTimeout != null) {\n clearTimeout(this._hideTimeout);\n }\n this.state.pressability.reset();\n }\n}\n\nconst Touchable = (React.forwardRef((props, hostRef) => (\n \n)): React.AbstractComponent<\n $ReadOnly<$Diff|}>>,\n React.ElementRef,\n>);\n\nTouchable.displayName = 'TouchableHighlight';\n\nmodule.exports = Touchable;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n AccessibilityActionEvent,\n AccessibilityActionInfo,\n AccessibilityRole,\n AccessibilityState,\n AccessibilityValue,\n} from '../../Components/View/ViewAccessibility';\nimport type {EdgeInsetsOrSizeProp} from '../../StyleSheet/EdgeInsetsPropType';\nimport type {\n BlurEvent,\n FocusEvent,\n LayoutEvent,\n PressEvent,\n} from '../../Types/CoreEventTypes';\n\nimport View from '../../Components/View/View';\nimport Pressability, {\n type PressabilityConfig,\n} from '../../Pressability/Pressability';\nimport {PressabilityDebugView} from '../../Pressability/PressabilityDebug';\nimport * as React from 'react';\n\ntype Props = $ReadOnly<{|\n accessibilityActions?: ?$ReadOnlyArray,\n accessibilityElementsHidden?: ?boolean,\n accessibilityHint?: ?Stringish,\n accessibilityLanguage?: ?Stringish,\n accessibilityIgnoresInvertColors?: ?boolean,\n accessibilityLabel?: ?Stringish,\n accessibilityLiveRegion?: ?('none' | 'polite' | 'assertive'),\n accessibilityRole?: ?AccessibilityRole,\n accessibilityState?: ?AccessibilityState,\n accessibilityValue?: ?AccessibilityValue,\n 'aria-valuemax'?: AccessibilityValue['max'],\n 'aria-valuemin'?: AccessibilityValue['min'],\n 'aria-valuenow'?: AccessibilityValue['now'],\n 'aria-valuetext'?: AccessibilityValue['text'],\n accessibilityViewIsModal?: ?boolean,\n 'aria-modal'?: ?boolean,\n accessible?: ?boolean,\n /**\n * alias for accessibilityState\n *\n * see https://reactnative.dev/docs/accessibility#accessibilitystate\n */\n 'aria-busy'?: ?boolean,\n 'aria-checked'?: ?boolean | 'mixed',\n 'aria-disabled'?: ?boolean,\n 'aria-expanded'?: ?boolean,\n 'aria-selected'?: ?boolean,\n 'aria-hidden'?: ?boolean,\n 'aria-live'?: ?('polite' | 'assertive' | 'off'),\n 'aria-label'?: ?Stringish,\n children?: ?React.Node,\n delayLongPress?: ?number,\n delayPressIn?: ?number,\n delayPressOut?: ?number,\n disabled?: ?boolean,\n focusable?: ?boolean,\n hitSlop?: ?EdgeInsetsOrSizeProp,\n id?: string,\n importantForAccessibility?: ?('auto' | 'yes' | 'no' | 'no-hide-descendants'),\n nativeID?: ?string,\n onAccessibilityAction?: ?(event: AccessibilityActionEvent) => mixed,\n onBlur?: ?(event: BlurEvent) => mixed,\n onFocus?: ?(event: FocusEvent) => mixed,\n onLayout?: ?(event: LayoutEvent) => mixed,\n onLongPress?: ?(event: PressEvent) => mixed,\n onPress?: ?(event: PressEvent) => mixed,\n onPressIn?: ?(event: PressEvent) => mixed,\n onPressOut?: ?(event: PressEvent) => mixed,\n pressRetentionOffset?: ?EdgeInsetsOrSizeProp,\n rejectResponderTermination?: ?boolean,\n testID?: ?string,\n touchSoundDisabled?: ?boolean,\n|}>;\n\ntype State = $ReadOnly<{|\n pressability: Pressability,\n|}>;\n\nconst PASSTHROUGH_PROPS = [\n 'accessibilityActions',\n 'accessibilityElementsHidden',\n 'accessibilityHint',\n 'accessibilityLanguage',\n 'accessibilityIgnoresInvertColors',\n 'accessibilityLabel',\n 'accessibilityLiveRegion',\n 'accessibilityRole',\n 'accessibilityValue',\n 'aria-valuemax',\n 'aria-valuemin',\n 'aria-valuenow',\n 'aria-valuetext',\n 'accessibilityViewIsModal',\n 'aria-modal',\n 'hitSlop',\n 'importantForAccessibility',\n 'nativeID',\n 'onAccessibilityAction',\n 'onBlur',\n 'onFocus',\n 'onLayout',\n 'testID',\n];\n\nclass TouchableWithoutFeedback extends React.Component {\n state: State = {\n pressability: new Pressability(createPressabilityConfig(this.props)),\n };\n\n render(): React.Node {\n const element = React.Children.only<$FlowFixMe>(this.props.children);\n const children: Array = [element.props.children];\n const ariaLive = this.props['aria-live'];\n\n if (__DEV__) {\n if (element.type === View) {\n children.push(\n ,\n );\n }\n }\n\n let _accessibilityState = {\n busy: this.props['aria-busy'] ?? this.props.accessibilityState?.busy,\n checked:\n this.props['aria-checked'] ?? this.props.accessibilityState?.checked,\n disabled:\n this.props['aria-disabled'] ?? this.props.accessibilityState?.disabled,\n expanded:\n this.props['aria-expanded'] ?? this.props.accessibilityState?.expanded,\n selected:\n this.props['aria-selected'] ?? this.props.accessibilityState?.selected,\n };\n\n // BACKWARD-COMPATIBILITY: Focus and blur events were never supported before\n // adopting `Pressability`, so preserve that behavior.\n const {onBlur, onFocus, ...eventHandlersWithoutBlurAndFocus} =\n this.state.pressability.getEventHandlers();\n\n const elementProps: {[string]: mixed, ...} = {\n ...eventHandlersWithoutBlurAndFocus,\n accessible: this.props.accessible !== false,\n accessibilityState:\n this.props.disabled != null\n ? {\n ..._accessibilityState,\n disabled: this.props.disabled,\n }\n : _accessibilityState,\n focusable:\n this.props.focusable !== false && this.props.onPress !== undefined,\n\n accessibilityElementsHidden:\n this.props['aria-hidden'] ?? this.props.accessibilityElementsHidden,\n importantForAccessibility:\n this.props['aria-hidden'] === true\n ? 'no-hide-descendants'\n : this.props.importantForAccessibility,\n accessibilityLiveRegion:\n ariaLive === 'off'\n ? 'none'\n : ariaLive ?? this.props.accessibilityLiveRegion,\n nativeID: this.props.id ?? this.props.nativeID,\n };\n for (const prop of PASSTHROUGH_PROPS) {\n if (this.props[prop] !== undefined) {\n elementProps[prop] = this.props[prop];\n }\n }\n\n return React.cloneElement(element, elementProps, ...children);\n }\n\n componentDidUpdate(): void {\n this.state.pressability.configure(createPressabilityConfig(this.props));\n }\n\n componentWillUnmount(): void {\n this.state.pressability.reset();\n }\n}\n\nfunction createPressabilityConfig({\n 'aria-disabled': ariaDisabled,\n ...props\n}: Props): PressabilityConfig {\n const accessibilityStateDisabled =\n ariaDisabled ?? props.accessibilityState?.disabled;\n return {\n cancelable: !props.rejectResponderTermination,\n disabled:\n props.disabled !== null ? props.disabled : accessibilityStateDisabled,\n hitSlop: props.hitSlop,\n delayLongPress: props.delayLongPress,\n delayPressIn: props.delayPressIn,\n delayPressOut: props.delayPressOut,\n minPressDuration: 0,\n pressRectOffset: props.pressRetentionOffset,\n android_disableSound: props.touchSoundDisabled,\n onBlur: props.onBlur,\n onFocus: props.onFocus,\n onLongPress: props.onLongPress,\n onPress: props.onPress,\n onPressIn: props.onPressIn,\n onPressOut: props.onPressOut,\n };\n}\n\nTouchableWithoutFeedback.displayName = 'TouchableWithoutFeedback';\n\nmodule.exports = TouchableWithoutFeedback;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport {typeof VirtualizedList as VirtualizedListType} from '@react-native/virtualized-lists';\n\nconst VirtualizedList: VirtualizedListType =\n require('@react-native/virtualized-lists').VirtualizedList;\n\nexport type {\n RenderItemProps,\n RenderItemType,\n Separators,\n} from '@react-native/virtualized-lists';\nmodule.exports = VirtualizedList;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport {typeof VirtualizedSectionList as VirtualizedSectionListType} from '@react-native/virtualized-lists';\n\nconst VirtualizedSectionList: VirtualizedSectionListType =\n require('@react-native/virtualized-lists').VirtualizedSectionList;\n\nexport type {\n SectionBase,\n ScrollToLocationParamsType,\n} from '@react-native/virtualized-lists';\nmodule.exports = VirtualizedSectionList;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {ProcessedColorValue} from '../StyleSheet/processColor';\nimport type {ColorValue} from '../StyleSheet/StyleSheet';\n\nimport RCTActionSheetManager from './NativeActionSheetManager';\n\nconst processColor = require('../StyleSheet/processColor').default;\nconst invariant = require('invariant');\n\n/**\n * Display action sheets and share sheets on iOS.\n *\n * See https://reactnative.dev/docs/actionsheetios\n */\nconst ActionSheetIOS = {\n /**\n * Display an iOS action sheet.\n *\n * The `options` object must contain one or more of:\n *\n * - `options` (array of strings) - a list of button titles (required)\n * - `cancelButtonIndex` (int) - index of cancel button in `options`\n * - `destructiveButtonIndex` (int or array of ints) - index or indices of destructive buttons in `options`\n * - `title` (string) - a title to show above the action sheet\n * - `message` (string) - a message to show below the title\n * - `disabledButtonIndices` (array of numbers) - a list of button indices which should be disabled\n *\n * The 'callback' function takes one parameter, the zero-based index\n * of the selected item.\n *\n * See https://reactnative.dev/docs/actionsheetios#showactionsheetwithoptions\n */\n showActionSheetWithOptions(\n options: {|\n +title?: ?string,\n +message?: ?string,\n +options: Array,\n +destructiveButtonIndex?: ?number | ?Array,\n +cancelButtonIndex?: ?number,\n +anchor?: ?number,\n +tintColor?: ColorValue | ProcessedColorValue,\n +cancelButtonTintColor?: ColorValue | ProcessedColorValue,\n +userInterfaceStyle?: string,\n +disabledButtonIndices?: Array,\n |},\n callback: (buttonIndex: number) => void,\n ) {\n invariant(\n typeof options === 'object' && options !== null,\n 'Options must be a valid object',\n );\n invariant(typeof callback === 'function', 'Must provide a valid callback');\n invariant(RCTActionSheetManager, \"ActionSheetManager doesn't exist\");\n\n const {\n tintColor,\n cancelButtonTintColor,\n destructiveButtonIndex,\n ...remainingOptions\n } = options;\n let destructiveButtonIndices = null;\n\n if (Array.isArray(destructiveButtonIndex)) {\n destructiveButtonIndices = destructiveButtonIndex;\n } else if (typeof destructiveButtonIndex === 'number') {\n destructiveButtonIndices = [destructiveButtonIndex];\n }\n\n const processedTintColor = processColor(tintColor);\n const processedCancelButtonTintColor = processColor(cancelButtonTintColor);\n invariant(\n processedTintColor == null || typeof processedTintColor === 'number',\n 'Unexpected color given for ActionSheetIOS.showActionSheetWithOptions tintColor',\n );\n invariant(\n processedCancelButtonTintColor == null ||\n typeof processedCancelButtonTintColor === 'number',\n 'Unexpected color given for ActionSheetIOS.showActionSheetWithOptions cancelButtonTintColor',\n );\n RCTActionSheetManager.showActionSheetWithOptions(\n {\n ...remainingOptions,\n tintColor: processedTintColor,\n cancelButtonTintColor: processedCancelButtonTintColor,\n destructiveButtonIndices,\n },\n callback,\n );\n },\n\n /**\n * Display the iOS share sheet. The `options` object should contain\n * one or both of `message` and `url` and can additionally have\n * a `subject` or `excludedActivityTypes`:\n *\n * - `url` (string) - a URL to share\n * - `message` (string) - a message to share\n * - `subject` (string) - a subject for the message\n * - `excludedActivityTypes` (array) - the activities to exclude from\n * the ActionSheet\n * - `tintColor` (color) - tint color of the buttons\n *\n * The 'failureCallback' function takes one parameter, an error object.\n * The only property defined on this object is an optional `stack` property\n * of type `string`.\n *\n * The 'successCallback' function takes two parameters:\n *\n * - a boolean value signifying success or failure\n * - a string that, in the case of success, indicates the method of sharing\n *\n * See https://reactnative.dev/docs/actionsheetios#showshareactionsheetwithoptions\n */\n showShareActionSheetWithOptions(\n options: Object,\n failureCallback: Function,\n successCallback: Function,\n ) {\n invariant(\n typeof options === 'object' && options !== null,\n 'Options must be a valid object',\n );\n invariant(\n typeof failureCallback === 'function',\n 'Must provide a valid failureCallback',\n );\n invariant(\n typeof successCallback === 'function',\n 'Must provide a valid successCallback',\n );\n invariant(RCTActionSheetManager, \"ActionSheetManager doesn't exist\");\n RCTActionSheetManager.showShareActionSheetWithOptions(\n {...options, tintColor: processColor(options.tintColor)},\n failureCallback,\n successCallback,\n );\n },\n\n dismissActionSheet: () => {\n invariant(RCTActionSheetManager, \"ActionSheetManager doesn't exist\");\n if (typeof RCTActionSheetManager.dismissActionSheet === 'function') {\n RCTActionSheetManager.dismissActionSheet();\n }\n },\n};\n\nmodule.exports = ActionSheetIOS;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {||};\n +showActionSheetWithOptions: (\n options: {|\n +title?: ?string,\n +message?: ?string,\n +options: ?Array,\n +destructiveButtonIndices?: ?Array,\n +cancelButtonIndex?: ?number,\n +anchor?: ?number,\n +tintColor?: ?number,\n +cancelButtonTintColor?: ?number,\n +userInterfaceStyle?: ?string,\n +disabledButtonIndices?: Array,\n |},\n callback: (buttonIndex: number) => void,\n ) => void;\n +showShareActionSheetWithOptions: (\n options: {|\n +message?: ?string,\n +url?: ?string,\n +subject?: ?string,\n +anchor?: ?number,\n +tintColor?: ?number,\n +cancelButtonTintColor?: ?number,\n +excludedActivityTypes?: ?Array,\n +userInterfaceStyle?: ?string,\n |},\n failureCallback: (error: {|\n +domain: string,\n +code: string,\n +userInfo?: ?Object,\n +message: string,\n |}) => void,\n successCallback: (completed: boolean, activityType: ?string) => void,\n ) => void;\n +dismissActionSheet?: () => void;\n}\n\nexport default (TurboModuleRegistry.get('ActionSheetManager'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport Platform from '../Utilities/Platform';\nimport EventEmitter, {\n type EventSubscription,\n} from '../vendor/emitter/EventEmitter';\nimport {isAsyncDebugging} from './DebugEnvironment';\nimport NativeAppearance, {\n type AppearancePreferences,\n type ColorSchemeName,\n} from './NativeAppearance';\nimport invariant from 'invariant';\n\ntype AppearanceListener = (preferences: AppearancePreferences) => void;\nconst eventEmitter = new EventEmitter<{\n change: [AppearancePreferences],\n}>();\n\ntype NativeAppearanceEventDefinitions = {\n appearanceChanged: [AppearancePreferences],\n};\n\nif (NativeAppearance) {\n const nativeEventEmitter =\n new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeAppearance,\n );\n nativeEventEmitter.addListener(\n 'appearanceChanged',\n (newAppearance: AppearancePreferences) => {\n const {colorScheme} = newAppearance;\n invariant(\n colorScheme === 'dark' ||\n colorScheme === 'light' ||\n colorScheme == null,\n \"Unrecognized color scheme. Did you mean 'dark' or 'light'?\",\n );\n eventEmitter.emit('change', {colorScheme});\n },\n );\n}\n\nmodule.exports = {\n /**\n * Note: Although color scheme is available immediately, it may change at any\n * time. Any rendering logic or styles that depend on this should try to call\n * this function on every render, rather than caching the value (for example,\n * using inline styles rather than setting a value in a `StyleSheet`).\n *\n * Example: `const colorScheme = Appearance.getColorScheme();`\n *\n * @returns {?ColorSchemeName} Value for the color scheme preference.\n */\n getColorScheme(): ?ColorSchemeName {\n if (__DEV__) {\n if (isAsyncDebugging) {\n // Hard code light theme when using the async debugger as\n // sync calls aren't supported\n return 'light';\n }\n }\n\n // TODO: (hramos) T52919652 Use ?ColorSchemeName once codegen supports union\n const nativeColorScheme: ?string =\n NativeAppearance == null\n ? null\n : NativeAppearance.getColorScheme() || null;\n invariant(\n nativeColorScheme === 'dark' ||\n nativeColorScheme === 'light' ||\n nativeColorScheme == null,\n \"Unrecognized color scheme. Did you mean 'dark' or 'light'?\",\n );\n return nativeColorScheme;\n },\n\n setColorScheme(colorScheme: ?ColorSchemeName): void {\n const nativeColorScheme = colorScheme == null ? 'unspecified' : colorScheme;\n\n invariant(\n colorScheme === 'dark' || colorScheme === 'light' || colorScheme == null,\n \"Unrecognized color scheme. Did you mean 'dark', 'light' or null?\",\n );\n\n if (NativeAppearance != null && NativeAppearance.setColorScheme != null) {\n NativeAppearance.setColorScheme(nativeColorScheme);\n }\n },\n\n /**\n * Add an event handler that is fired when appearance preferences change.\n */\n addChangeListener(listener: AppearanceListener): EventSubscription {\n return eventEmitter.addListener('change', listener);\n },\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport type ColorSchemeName = 'light' | 'dark';\n\nexport type AppearancePreferences = {|\n // TODO: (hramos) T52919652 Use ?ColorSchemeName once codegen supports union\n // types.\n /* 'light' | 'dark' */\n colorScheme?: ?string,\n|};\n\nexport interface Spec extends TurboModule {\n // TODO: (hramos) T52919652 Use ?ColorSchemeName once codegen supports union\n // types.\n /* 'light' | 'dark' */\n +getColorScheme: () => ?string;\n +setColorScheme?: (colorScheme: string) => void;\n\n // RCTEventEmitter\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.get('Appearance'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport logError from '../Utilities/logError';\nimport Platform from '../Utilities/Platform';\nimport {type EventSubscription} from '../vendor/emitter/EventEmitter';\nimport NativeAppState from './NativeAppState';\n\nexport type AppStateValues = 'inactive' | 'background' | 'active';\n\ntype AppStateEventDefinitions = {\n change: [AppStateValues],\n memoryWarning: [],\n blur: [],\n focus: [],\n};\n\ntype NativeAppStateEventDefinitions = {\n appStateDidChange: [{app_state: AppStateValues}],\n appStateFocusChange: [boolean],\n memoryWarning: [],\n};\n\n/**\n * `AppState` can tell you if the app is in the foreground or background,\n * and notify you when the state changes.\n *\n * See https://reactnative.dev/docs/appstate\n */\nclass AppState {\n currentState: ?string = null;\n isAvailable: boolean;\n\n _emitter: ?NativeEventEmitter;\n\n constructor() {\n if (NativeAppState == null) {\n this.isAvailable = false;\n } else {\n this.isAvailable = true;\n\n const emitter: NativeEventEmitter =\n new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeAppState,\n );\n this._emitter = emitter;\n\n this.currentState = NativeAppState.getConstants().initialAppState;\n\n let eventUpdated = false;\n\n // TODO: this is a terrible solution - in order to ensure `currentState`\n // prop is up to date, we have to register an observer that updates it\n // whenever the state changes, even if nobody cares. We should just\n // deprecate the `currentState` property and get rid of this.\n emitter.addListener('appStateDidChange', appStateData => {\n eventUpdated = true;\n this.currentState = appStateData.app_state;\n });\n\n // TODO: see above - this request just populates the value of `currentState`\n // when the module is first initialized. Would be better to get rid of the\n // prop and expose `getCurrentAppState` method directly.\n // $FlowExpectedError[incompatible-call]\n NativeAppState.getCurrentAppState(appStateData => {\n // It's possible that the state will have changed here & listeners need to be notified\n if (!eventUpdated && this.currentState !== appStateData.app_state) {\n this.currentState = appStateData.app_state;\n // $FlowFixMe[incompatible-call]\n emitter.emit('appStateDidChange', appStateData);\n }\n }, logError);\n }\n }\n\n /**\n * Add a handler to AppState changes by listening to the `change` event type\n * and providing the handler.\n *\n * See https://reactnative.dev/docs/appstate#addeventlistener\n */\n addEventListener>(\n type: K,\n handler: (...$ElementType) => void,\n ): EventSubscription {\n const emitter = this._emitter;\n if (emitter == null) {\n throw new Error('Cannot use AppState when `isAvailable` is false.');\n }\n switch (type) {\n case 'change':\n // $FlowIssue[invalid-tuple-arity] Flow cannot refine handler based on the event type\n const changeHandler: AppStateValues => void = handler;\n return emitter.addListener('appStateDidChange', appStateData => {\n changeHandler(appStateData.app_state);\n });\n case 'memoryWarning':\n // $FlowIssue[invalid-tuple-arity] Flow cannot refine handler based on the event type\n const memoryWarningHandler: () => void = handler;\n return emitter.addListener('memoryWarning', memoryWarningHandler);\n case 'blur':\n case 'focus':\n // $FlowIssue[invalid-tuple-arity] Flow cannot refine handler based on the event type\n const focusOrBlurHandler: () => void = handler;\n return emitter.addListener('appStateFocusChange', hasFocus => {\n if (type === 'blur' && !hasFocus) {\n focusOrBlurHandler();\n }\n if (type === 'focus' && hasFocus) {\n focusOrBlurHandler();\n }\n });\n }\n throw new Error('Trying to subscribe to unknown event: ' + type);\n }\n}\n\nmodule.exports = (new AppState(): AppState);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\n/**\n * Small utility that can be used as an error handler. You cannot just pass\n * `console.error` as a failure callback - it's not properly bound. If passes an\n * `Error` object, it will print the message and stack.\n */\nconst logError = function (...args: $ReadOnlyArray) {\n if (args.length === 1 && args[0] instanceof Error) {\n const err = args[0];\n console.error('Error: \"' + err.message + '\". Stack:\\n' + err.stack);\n } else {\n console.error.apply(console, args);\n }\n};\n\nmodule.exports = logError;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n initialAppState: string,\n |};\n +getCurrentAppState: (\n success: (appState: {|app_state: string|}) => void,\n error: (error: Object) => void,\n ) => void;\n\n // Events\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('AppState'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport NativeClipboard from './NativeClipboard';\n\n/**\n * `Clipboard` gives you an interface for setting and getting content from Clipboard on both iOS and Android\n */\nmodule.exports = {\n /**\n * Get content of string type, this method returns a `Promise`, so you can use following code to get clipboard content\n * ```javascript\n * async _getContent() {\n * var content = await Clipboard.getString();\n * }\n * ```\n */\n getString(): Promise {\n return NativeClipboard.getString();\n },\n /**\n * Set content of string type. You can use following code to set clipboard content\n * ```javascript\n * _setContent() {\n * Clipboard.setString('hello world');\n * }\n * ```\n * @param {string} content the content to be stored in the clipboard.\n */\n setString(content: string) {\n NativeClipboard.setString(content);\n },\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {||};\n +getString: () => Promise;\n +setString: (content: string) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('Clipboard'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport NativeDeviceInfo from './NativeDeviceInfo';\n\nmodule.exports = NativeDeviceInfo;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {EventSubscription} from '../vendor/emitter/EventEmitter';\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport NativeDevSettings from '../NativeModules/specs/NativeDevSettings';\nimport Platform from '../Utilities/Platform';\n\nlet DevSettings: {\n addMenuItem(title: string, handler: () => mixed): void,\n reload(reason?: string): void,\n onFastRefresh(): void,\n} = {\n addMenuItem(title: string, handler: () => mixed): void {},\n reload(reason?: string): void {},\n onFastRefresh(): void {},\n};\n\ntype DevSettingsEventDefinitions = {\n didPressMenuItem: [{title: string}],\n};\n\nif (__DEV__) {\n const emitter = new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeDevSettings,\n );\n const subscriptions = new Map();\n\n DevSettings = {\n addMenuItem(title: string, handler: () => mixed): void {\n // Make sure items are not added multiple times. This can\n // happen when hot reloading the module that registers the\n // menu items. The title is used as the id which means we\n // don't support multiple items with the same name.\n let subscription = subscriptions.get(title);\n if (subscription != null) {\n subscription.remove();\n } else {\n NativeDevSettings.addMenuItem(title);\n }\n\n subscription = emitter.addListener('didPressMenuItem', event => {\n if (event.title === title) {\n handler();\n }\n });\n subscriptions.set(title, subscription);\n },\n reload(reason?: string): void {\n if (NativeDevSettings.reloadWithReason != null) {\n NativeDevSettings.reloadWithReason(reason ?? 'Uncategorized from JS');\n } else {\n NativeDevSettings.reload();\n }\n },\n onFastRefresh(): void {\n NativeDevSettings.onFastRefresh?.();\n },\n };\n}\n\nmodule.exports = DevSettings;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +reload: () => void;\n +reloadWithReason?: (reason: string) => void;\n +onFastRefresh?: () => void;\n +setHotLoadingEnabled: (isHotLoadingEnabled: boolean) => void;\n +setIsDebuggingRemotely: (isDebuggingRemotelyEnabled: boolean) => void;\n +setProfilingEnabled: (isProfilingEnabled: boolean) => void;\n +toggleElementInspector: () => void;\n +addMenuItem: (title: string) => void;\n\n // Events\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n\n // iOS only.\n +setIsShakeToShowDevMenuEnabled: (enabled: boolean) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('DevSettings'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {EventSubscription} from '../vendor/emitter/EventEmitter';\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport Platform from '../Utilities/Platform';\nimport NativeIntentAndroid from './NativeIntentAndroid';\nimport NativeLinkingManager from './NativeLinkingManager';\nimport invariant from 'invariant';\nimport nullthrows from 'nullthrows';\n\ntype LinkingEventDefinitions = {\n url: [{url: string}],\n};\n\n/**\n * `Linking` gives you a general interface to interact with both incoming\n * and outgoing app links.\n *\n * See https://reactnative.dev/docs/linking\n */\nclass Linking extends NativeEventEmitter {\n constructor() {\n super(Platform.OS === 'ios' ? nullthrows(NativeLinkingManager) : undefined);\n }\n\n /**\n * Add a handler to Linking changes by listening to the `url` event type\n * and providing the handler\n *\n * See https://reactnative.dev/docs/linking#addeventlistener\n */\n addEventListener>(\n eventType: K,\n listener: (...$ElementType) => mixed,\n context: $FlowFixMe,\n ): EventSubscription {\n return this.addListener(eventType, listener);\n }\n\n /**\n * Try to open the given `url` with any of the installed apps.\n *\n * See https://reactnative.dev/docs/linking#openurl\n */\n openURL(url: string): Promise {\n this._validateURL(url);\n if (Platform.OS === 'android') {\n return nullthrows(NativeIntentAndroid).openURL(url);\n } else {\n return nullthrows(NativeLinkingManager).openURL(url);\n }\n }\n\n /**\n * Determine whether or not an installed app can handle a given URL.\n *\n * See https://reactnative.dev/docs/linking#canopenurl\n */\n canOpenURL(url: string): Promise {\n this._validateURL(url);\n if (Platform.OS === 'android') {\n return nullthrows(NativeIntentAndroid).canOpenURL(url);\n } else {\n return nullthrows(NativeLinkingManager).canOpenURL(url);\n }\n }\n\n /**\n * Open app settings.\n *\n * See https://reactnative.dev/docs/linking#opensettings\n */\n openSettings(): Promise {\n if (Platform.OS === 'android') {\n return nullthrows(NativeIntentAndroid).openSettings();\n } else {\n return nullthrows(NativeLinkingManager).openSettings();\n }\n }\n\n /**\n * If the app launch was triggered by an app link,\n * it will give the link url, otherwise it will give `null`\n *\n * See https://reactnative.dev/docs/linking#getinitialurl\n */\n getInitialURL(): Promise {\n return Platform.OS === 'android'\n ? nullthrows(NativeIntentAndroid).getInitialURL()\n : nullthrows(NativeLinkingManager).getInitialURL();\n }\n\n /*\n * Launch an Android intent with extras (optional)\n *\n * @platform android\n *\n * See https://reactnative.dev/docs/linking#sendintent\n */\n sendIntent(\n action: string,\n extras?: Array<{\n key: string,\n value: string | number | boolean,\n ...\n }>,\n ): Promise {\n if (Platform.OS === 'android') {\n return nullthrows(NativeIntentAndroid).sendIntent(action, extras);\n } else {\n return new Promise((resolve, reject) => reject(new Error('Unsupported')));\n }\n }\n\n _validateURL(url: string): void {\n invariant(\n typeof url === 'string',\n 'Invalid URL: should be a string. Was: ' + url,\n );\n invariant(url, 'Invalid URL: cannot be empty');\n }\n}\n\nmodule.exports = (new Linking(): Linking);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getInitialURL: () => Promise;\n +canOpenURL: (url: string) => Promise;\n +openURL: (url: string) => Promise;\n +openSettings: () => Promise;\n +sendIntent: (\n action: string,\n extras: ?Array<{\n key: string,\n value: string | number | boolean, // TODO(T67672788): Union types are not type safe\n ...\n }>,\n ) => Promise;\n}\n\nexport default (TurboModuleRegistry.get('IntentAndroid'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n // Common interface\n +getInitialURL: () => Promise;\n +canOpenURL: (url: string) => Promise;\n +openURL: (url: string) => Promise;\n +openSettings: () => Promise;\n\n // Events\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.get('LinkingManager'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {IgnorePattern, LogData} from './Data/LogBoxData';\nimport type {ExtendedExceptionData} from './Data/parseLogBoxLog';\n\nimport Platform from '../Utilities/Platform';\nimport RCTLog from '../Utilities/RCTLog';\n\nexport type {LogData, ExtendedExceptionData, IgnorePattern};\n\nlet LogBox;\n\ninterface ILogBox {\n install(): void;\n uninstall(): void;\n isInstalled(): boolean;\n ignoreLogs($ReadOnlyArray): void;\n ignoreAllLogs(?boolean): void;\n clearAllLogs(): void;\n addLog(log: LogData): void;\n addException(error: ExtendedExceptionData): void;\n}\n\n/**\n * LogBox displays logs in the app.\n */\nif (__DEV__) {\n const LogBoxData = require('./Data/LogBoxData');\n const {parseLogBoxLog, parseInterpolation} = require('./Data/parseLogBoxLog');\n\n let originalConsoleError;\n let originalConsoleWarn;\n let consoleErrorImpl;\n let consoleWarnImpl: (...args: Array) => void;\n\n let isLogBoxInstalled: boolean = false;\n\n LogBox = {\n install(): void {\n if (isLogBoxInstalled) {\n return;\n }\n\n isLogBoxInstalled = true;\n\n // Trigger lazy initialization of module.\n require('../NativeModules/specs/NativeLogBox');\n\n // IMPORTANT: we only overwrite `console.error` and `console.warn` once.\n // When we uninstall we keep the same reference and only change its\n // internal implementation\n const isFirstInstall = originalConsoleError == null;\n if (isFirstInstall) {\n originalConsoleError = console.error.bind(console);\n originalConsoleWarn = console.warn.bind(console);\n\n // $FlowExpectedError[cannot-write]\n console.error = (...args) => {\n consoleErrorImpl(...args);\n };\n // $FlowExpectedError[cannot-write]\n console.warn = (...args) => {\n consoleWarnImpl(...args);\n };\n }\n\n consoleErrorImpl = registerError;\n consoleWarnImpl = registerWarning;\n\n if (Platform.isTesting) {\n LogBoxData.setDisabled(true);\n }\n\n RCTLog.setWarningHandler((...args) => {\n registerWarning(...args);\n });\n },\n\n uninstall(): void {\n if (!isLogBoxInstalled) {\n return;\n }\n\n isLogBoxInstalled = false;\n\n // IMPORTANT: we don't re-assign to `console` in case the method has been\n // decorated again after installing LogBox. E.g.:\n // Before uninstalling: original > LogBox > OtherErrorHandler\n // After uninstalling: original > LogBox (noop) > OtherErrorHandler\n consoleErrorImpl = originalConsoleError;\n consoleWarnImpl = originalConsoleWarn;\n },\n\n isInstalled(): boolean {\n return isLogBoxInstalled;\n },\n\n ignoreLogs(patterns: $ReadOnlyArray): void {\n LogBoxData.addIgnorePatterns(patterns);\n },\n\n ignoreAllLogs(value?: ?boolean): void {\n LogBoxData.setDisabled(value == null ? true : value);\n },\n\n clearAllLogs(): void {\n LogBoxData.clear();\n },\n\n addLog(log: LogData): void {\n if (isLogBoxInstalled) {\n LogBoxData.addLog(log);\n }\n },\n\n addException(error: ExtendedExceptionData): void {\n if (isLogBoxInstalled) {\n LogBoxData.addException(error);\n }\n },\n };\n\n const isRCTLogAdviceWarning = (...args: Array) => {\n // RCTLogAdvice is a native logging function designed to show users\n // a message in the console, but not show it to them in Logbox.\n return typeof args[0] === 'string' && args[0].startsWith('(ADVICE)');\n };\n\n const isWarningModuleWarning = (...args: Array) => {\n return typeof args[0] === 'string' && args[0].startsWith('Warning: ');\n };\n\n const registerWarning = (...args: Array): void => {\n // Let warnings within LogBox itself fall through.\n if (LogBoxData.isLogBoxErrorMessage(String(args[0]))) {\n originalConsoleError(...args);\n return;\n } else {\n // Be sure to pass LogBox warnings through.\n originalConsoleWarn(...args);\n }\n\n try {\n if (!isRCTLogAdviceWarning(...args)) {\n const {category, message, componentStack} = parseLogBoxLog(args);\n\n if (!LogBoxData.isMessageIgnored(message.content)) {\n LogBoxData.addLog({\n level: 'warn',\n category,\n message,\n componentStack,\n });\n }\n }\n } catch (err) {\n LogBoxData.reportLogBoxError(err);\n }\n };\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n const registerError = (...args): void => {\n // Let errors within LogBox itself fall through.\n if (LogBoxData.isLogBoxErrorMessage(args[0])) {\n originalConsoleError(...args);\n return;\n }\n\n try {\n if (!isWarningModuleWarning(...args)) {\n // Only show LogBox for the 'warning' module, otherwise pass through.\n // By passing through, this will get picked up by the React console override,\n // potentially adding the component stack. React then passes it back to the\n // React Native ExceptionsManager, which reports it to LogBox as an error.\n //\n // The 'warning' module needs to be handled here because React internally calls\n // `console.error('Warning: ')` with the component stack already included.\n originalConsoleError(...args);\n return;\n }\n\n const format = args[0].replace('Warning: ', '');\n const filterResult = LogBoxData.checkWarningFilter(format);\n if (filterResult.suppressCompletely) {\n return;\n }\n\n let level = 'error';\n if (filterResult.suppressDialog_LEGACY === true) {\n level = 'warn';\n } else if (filterResult.forceDialogImmediately === true) {\n level = 'fatal'; // Do not downgrade. These are real bugs with same severity as throws.\n }\n\n // Unfortunately, we need to add the Warning: prefix back for downstream dependencies.\n args[0] = `Warning: ${filterResult.finalFormat}`;\n const {category, message, componentStack} = parseLogBoxLog(args);\n\n // Interpolate the message so they are formatted for adb and other CLIs.\n // This is different than the message.content above because it includes component stacks.\n const interpolated = parseInterpolation(args);\n originalConsoleError(interpolated.message.content);\n\n if (!LogBoxData.isMessageIgnored(message.content)) {\n LogBoxData.addLog({\n level,\n category,\n message,\n componentStack,\n });\n }\n } catch (err) {\n LogBoxData.reportLogBoxError(err);\n }\n };\n} else {\n LogBox = {\n install(): void {\n // Do nothing.\n },\n\n uninstall(): void {\n // Do nothing.\n },\n\n isInstalled(): boolean {\n return false;\n },\n\n ignoreLogs(patterns: $ReadOnlyArray): void {\n // Do nothing.\n },\n\n ignoreAllLogs(value?: ?boolean): void {\n // Do nothing.\n },\n\n clearAllLogs(): void {\n // Do nothing.\n },\n\n addLog(log: LogData): void {\n // Do nothing.\n },\n\n addException(error: ExtendedExceptionData): void {\n // Do nothing.\n },\n };\n}\n\nexport default (LogBox: ILogBox);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PressEvent} from '../Types/CoreEventTypes';\n\nconst InteractionManager = require('./InteractionManager');\nconst TouchHistoryMath = require('./TouchHistoryMath');\n\nconst currentCentroidXOfTouchesChangedAfter =\n TouchHistoryMath.currentCentroidXOfTouchesChangedAfter;\nconst currentCentroidYOfTouchesChangedAfter =\n TouchHistoryMath.currentCentroidYOfTouchesChangedAfter;\nconst previousCentroidXOfTouchesChangedAfter =\n TouchHistoryMath.previousCentroidXOfTouchesChangedAfter;\nconst previousCentroidYOfTouchesChangedAfter =\n TouchHistoryMath.previousCentroidYOfTouchesChangedAfter;\nconst currentCentroidX = TouchHistoryMath.currentCentroidX;\nconst currentCentroidY = TouchHistoryMath.currentCentroidY;\n\n/**\n * `PanResponder` reconciles several touches into a single gesture. It makes\n * single-touch gestures resilient to extra touches, and can be used to\n * recognize simple multi-touch gestures.\n *\n * By default, `PanResponder` holds an `InteractionManager` handle to block\n * long-running JS events from interrupting active gestures.\n *\n * It provides a predictable wrapper of the responder handlers provided by the\n * [gesture responder system](docs/gesture-responder-system.html).\n * For each handler, it provides a new `gestureState` object alongside the\n * native event object:\n *\n * ```\n * onPanResponderMove: (event, gestureState) => {}\n * ```\n *\n * A native event is a synthetic touch event with the following form:\n *\n * - `nativeEvent`\n * + `changedTouches` - Array of all touch events that have changed since the last event\n * + `identifier` - The ID of the touch\n * + `locationX` - The X position of the touch, relative to the element\n * + `locationY` - The Y position of the touch, relative to the element\n * + `pageX` - The X position of the touch, relative to the root element\n * + `pageY` - The Y position of the touch, relative to the root element\n * + `target` - The node id of the element receiving the touch event\n * + `timestamp` - A time identifier for the touch, useful for velocity calculation\n * + `touches` - Array of all current touches on the screen\n *\n * A `gestureState` object has the following:\n *\n * - `stateID` - ID of the gestureState- persisted as long as there at least\n * one touch on screen\n * - `moveX` - the latest screen coordinates of the recently-moved touch\n * - `moveY` - the latest screen coordinates of the recently-moved touch\n * - `x0` - the screen coordinates of the responder grant\n * - `y0` - the screen coordinates of the responder grant\n * - `dx` - accumulated distance of the gesture since the touch started\n * - `dy` - accumulated distance of the gesture since the touch started\n * - `vx` - current velocity of the gesture\n * - `vy` - current velocity of the gesture\n * - `numberActiveTouches` - Number of touches currently on screen\n *\n * ### Basic Usage\n *\n * ```\n * componentWillMount: function() {\n * this._panResponder = PanResponder.create({\n * // Ask to be the responder:\n * onStartShouldSetPanResponder: (evt, gestureState) => true,\n * onStartShouldSetPanResponderCapture: (evt, gestureState) => true,\n * onMoveShouldSetPanResponder: (evt, gestureState) => true,\n * onMoveShouldSetPanResponderCapture: (evt, gestureState) => true,\n *\n * onPanResponderGrant: (evt, gestureState) => {\n * // The gesture has started. Show visual feedback so the user knows\n * // what is happening!\n *\n * // gestureState.d{x,y} will be set to zero now\n * },\n * onPanResponderMove: (evt, gestureState) => {\n * // The most recent move distance is gestureState.move{X,Y}\n *\n * // The accumulated gesture distance since becoming responder is\n * // gestureState.d{x,y}\n * },\n * onPanResponderTerminationRequest: (evt, gestureState) => true,\n * onPanResponderRelease: (evt, gestureState) => {\n * // The user has released all touches while this view is the\n * // responder. This typically means a gesture has succeeded\n * },\n * onPanResponderTerminate: (evt, gestureState) => {\n * // Another component has become the responder, so this gesture\n * // should be cancelled\n * },\n * onShouldBlockNativeResponder: (evt, gestureState) => {\n * // Returns whether this component should block native components from becoming the JS\n * // responder. Returns true by default. Is currently only supported on android.\n * return true;\n * },\n * });\n * },\n *\n * render: function() {\n * return (\n * \n * );\n * },\n *\n * ```\n *\n * ### Working Example\n *\n * To see it in action, try the\n * [PanResponder example in RNTester](https://github.com/facebook/react-native/blob/HEAD/packages/rn-tester/js/examples/PanResponder/PanResponderExample.js)\n */\n\nexport type GestureState = {|\n /**\n * ID of the gestureState - persisted as long as there at least one touch on screen\n */\n stateID: number,\n\n /**\n * The latest screen coordinates of the recently-moved touch\n */\n moveX: number,\n\n /**\n * The latest screen coordinates of the recently-moved touch\n */\n moveY: number,\n\n /**\n * The screen coordinates of the responder grant\n */\n x0: number,\n\n /**\n * The screen coordinates of the responder grant\n */\n y0: number,\n\n /**\n * Accumulated distance of the gesture since the touch started\n */\n dx: number,\n\n /**\n * Accumulated distance of the gesture since the touch started\n */\n dy: number,\n\n /**\n * Current velocity of the gesture\n */\n vx: number,\n\n /**\n * Current velocity of the gesture\n */\n vy: number,\n\n /**\n * Number of touches currently on screen\n */\n numberActiveTouches: number,\n\n /**\n * All `gestureState` accounts for timeStamps up until this value\n *\n * @private\n */\n _accountsForMovesUpTo: number,\n|};\n\ntype ActiveCallback = (\n event: PressEvent,\n gestureState: GestureState,\n) => boolean;\n\ntype PassiveCallback = (event: PressEvent, gestureState: GestureState) => mixed;\n\nexport type PanHandlers = {|\n onMoveShouldSetResponder: (event: PressEvent) => boolean,\n onMoveShouldSetResponderCapture: (event: PressEvent) => boolean,\n onResponderEnd: (event: PressEvent) => void,\n onResponderGrant: (event: PressEvent) => boolean,\n onResponderMove: (event: PressEvent) => void,\n onResponderReject: (event: PressEvent) => void,\n onResponderRelease: (event: PressEvent) => void,\n onResponderStart: (event: PressEvent) => void,\n onResponderTerminate: (event: PressEvent) => void,\n onResponderTerminationRequest: (event: PressEvent) => boolean,\n onStartShouldSetResponder: (event: PressEvent) => boolean,\n onStartShouldSetResponderCapture: (event: PressEvent) => boolean,\n|};\n\ntype PanResponderConfig = $ReadOnly<{|\n onMoveShouldSetPanResponder?: ?ActiveCallback,\n onMoveShouldSetPanResponderCapture?: ?ActiveCallback,\n onStartShouldSetPanResponder?: ?ActiveCallback,\n onStartShouldSetPanResponderCapture?: ?ActiveCallback,\n /**\n * The body of `onResponderGrant` returns a bool, but the vast majority of\n * callsites return void and this TODO notice is found in it:\n * TODO: t7467124 investigate if this can be removed\n */\n onPanResponderGrant?: ?(PassiveCallback | ActiveCallback),\n onPanResponderReject?: ?PassiveCallback,\n onPanResponderStart?: ?PassiveCallback,\n onPanResponderEnd?: ?PassiveCallback,\n onPanResponderRelease?: ?PassiveCallback,\n onPanResponderMove?: ?PassiveCallback,\n onPanResponderTerminate?: ?PassiveCallback,\n onPanResponderTerminationRequest?: ?ActiveCallback,\n onShouldBlockNativeResponder?: ?ActiveCallback,\n|}>;\n\nconst PanResponder = {\n /**\n *\n * A graphical explanation of the touch data flow:\n *\n * +----------------------------+ +--------------------------------+\n * | ResponderTouchHistoryStore | |TouchHistoryMath |\n * +----------------------------+ +----------+---------------------+\n * |Global store of touchHistory| |Allocation-less math util |\n * |including activeness, start | |on touch history (centroids |\n * |position, prev/cur position.| |and multitouch movement etc) |\n * | | | |\n * +----^-----------------------+ +----^---------------------------+\n * | |\n * | (records relevant history |\n * | of touches relevant for |\n * | implementing higher level |\n * | gestures) |\n * | |\n * +----+-----------------------+ +----|---------------------------+\n * | ResponderEventPlugin | | | Your App/Component |\n * +----------------------------+ +----|---------------------------+\n * |Negotiates which view gets | Low level | | High level |\n * |onResponderMove events. | events w/ | +-+-------+ events w/ |\n * |Also records history into | touchHistory| | Pan | multitouch + |\n * |ResponderTouchHistoryStore. +---------------->Responder+-----> accumulative|\n * +----------------------------+ attached to | | | distance and |\n * each event | +---------+ velocity. |\n * | |\n * | |\n * +--------------------------------+\n *\n *\n *\n * Gesture that calculates cumulative movement over time in a way that just\n * \"does the right thing\" for multiple touches. The \"right thing\" is very\n * nuanced. When moving two touches in opposite directions, the cumulative\n * distance is zero in each dimension. When two touches move in parallel five\n * pixels in the same direction, the cumulative distance is five, not ten. If\n * two touches start, one moves five in a direction, then stops and the other\n * touch moves fives in the same direction, the cumulative distance is ten.\n *\n * This logic requires a kind of processing of time \"clusters\" of touch events\n * so that two touch moves that essentially occur in parallel but move every\n * other frame respectively, are considered part of the same movement.\n *\n * Explanation of some of the non-obvious fields:\n *\n * - moveX/moveY: If no move event has been observed, then `(moveX, moveY)` is\n * invalid. If a move event has been observed, `(moveX, moveY)` is the\n * centroid of the most recently moved \"cluster\" of active touches.\n * (Currently all move have the same timeStamp, but later we should add some\n * threshold for what is considered to be \"moving\"). If a palm is\n * accidentally counted as a touch, but a finger is moving greatly, the palm\n * will move slightly, but we only want to count the single moving touch.\n * - x0/y0: Centroid location (non-cumulative) at the time of becoming\n * responder.\n * - dx/dy: Cumulative touch distance - not the same thing as sum of each touch\n * distance. Accounts for touch moves that are clustered together in time,\n * moving the same direction. Only valid when currently responder (otherwise,\n * it only represents the drag distance below the threshold).\n * - vx/vy: Velocity.\n */\n\n _initializeGestureState(gestureState: GestureState) {\n gestureState.moveX = 0;\n gestureState.moveY = 0;\n gestureState.x0 = 0;\n gestureState.y0 = 0;\n gestureState.dx = 0;\n gestureState.dy = 0;\n gestureState.vx = 0;\n gestureState.vy = 0;\n gestureState.numberActiveTouches = 0;\n // All `gestureState` accounts for timeStamps up until:\n gestureState._accountsForMovesUpTo = 0;\n },\n\n /**\n * This is nuanced and is necessary. It is incorrect to continuously take all\n * active *and* recently moved touches, find the centroid, and track how that\n * result changes over time. Instead, we must take all recently moved\n * touches, and calculate how the centroid has changed just for those\n * recently moved touches, and append that change to an accumulator. This is\n * to (at least) handle the case where the user is moving three fingers, and\n * then one of the fingers stops but the other two continue.\n *\n * This is very different than taking all of the recently moved touches and\n * storing their centroid as `dx/dy`. For correctness, we must *accumulate\n * changes* in the centroid of recently moved touches.\n *\n * There is also some nuance with how we handle multiple moved touches in a\n * single event. With the way `ReactNativeEventEmitter` dispatches touches as\n * individual events, multiple touches generate two 'move' events, each of\n * them triggering `onResponderMove`. But with the way `PanResponder` works,\n * all of the gesture inference is performed on the first dispatch, since it\n * looks at all of the touches (even the ones for which there hasn't been a\n * native dispatch yet). Therefore, `PanResponder` does not call\n * `onResponderMove` passed the first dispatch. This diverges from the\n * typical responder callback pattern (without using `PanResponder`), but\n * avoids more dispatches than necessary.\n */\n _updateGestureStateOnMove(\n gestureState: GestureState,\n touchHistory: $PropertyType,\n ) {\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n gestureState.moveX = currentCentroidXOfTouchesChangedAfter(\n touchHistory,\n gestureState._accountsForMovesUpTo,\n );\n gestureState.moveY = currentCentroidYOfTouchesChangedAfter(\n touchHistory,\n gestureState._accountsForMovesUpTo,\n );\n const movedAfter = gestureState._accountsForMovesUpTo;\n const prevX = previousCentroidXOfTouchesChangedAfter(\n touchHistory,\n movedAfter,\n );\n const x = currentCentroidXOfTouchesChangedAfter(touchHistory, movedAfter);\n const prevY = previousCentroidYOfTouchesChangedAfter(\n touchHistory,\n movedAfter,\n );\n const y = currentCentroidYOfTouchesChangedAfter(touchHistory, movedAfter);\n const nextDX = gestureState.dx + (x - prevX);\n const nextDY = gestureState.dy + (y - prevY);\n\n // TODO: This must be filtered intelligently.\n const dt =\n touchHistory.mostRecentTimeStamp - gestureState._accountsForMovesUpTo;\n gestureState.vx = (nextDX - gestureState.dx) / dt;\n gestureState.vy = (nextDY - gestureState.dy) / dt;\n\n gestureState.dx = nextDX;\n gestureState.dy = nextDY;\n gestureState._accountsForMovesUpTo = touchHistory.mostRecentTimeStamp;\n },\n\n /**\n * @param {object} config Enhanced versions of all of the responder callbacks\n * that provide not only the typical `ResponderSyntheticEvent`, but also the\n * `PanResponder` gesture state. Simply replace the word `Responder` with\n * `PanResponder` in each of the typical `onResponder*` callbacks. For\n * example, the `config` object would look like:\n *\n * - `onMoveShouldSetPanResponder: (e, gestureState) => {...}`\n * - `onMoveShouldSetPanResponderCapture: (e, gestureState) => {...}`\n * - `onStartShouldSetPanResponder: (e, gestureState) => {...}`\n * - `onStartShouldSetPanResponderCapture: (e, gestureState) => {...}`\n * - `onPanResponderReject: (e, gestureState) => {...}`\n * - `onPanResponderGrant: (e, gestureState) => {...}`\n * - `onPanResponderStart: (e, gestureState) => {...}`\n * - `onPanResponderEnd: (e, gestureState) => {...}`\n * - `onPanResponderRelease: (e, gestureState) => {...}`\n * - `onPanResponderMove: (e, gestureState) => {...}`\n * - `onPanResponderTerminate: (e, gestureState) => {...}`\n * - `onPanResponderTerminationRequest: (e, gestureState) => {...}`\n * - `onShouldBlockNativeResponder: (e, gestureState) => {...}`\n *\n * In general, for events that have capture equivalents, we update the\n * gestureState once in the capture phase and can use it in the bubble phase\n * as well.\n *\n * Be careful with onStartShould* callbacks. They only reflect updated\n * `gestureState` for start/end events that bubble/capture to the Node.\n * Once the node is the responder, you can rely on every start/end event\n * being processed by the gesture and `gestureState` being updated\n * accordingly. (numberActiveTouches) may not be totally accurate unless you\n * are the responder.\n */\n create(config: PanResponderConfig): {\n getInteractionHandle: () => ?number,\n panHandlers: PanHandlers,\n } {\n const interactionState = {\n handle: (null: ?number),\n };\n const gestureState: GestureState = {\n // Useful for debugging\n stateID: Math.random(),\n moveX: 0,\n moveY: 0,\n x0: 0,\n y0: 0,\n dx: 0,\n dy: 0,\n vx: 0,\n vy: 0,\n numberActiveTouches: 0,\n _accountsForMovesUpTo: 0,\n };\n const panHandlers = {\n onStartShouldSetResponder(event: PressEvent): boolean {\n return config.onStartShouldSetPanResponder == null\n ? false\n : config.onStartShouldSetPanResponder(event, gestureState);\n },\n onMoveShouldSetResponder(event: PressEvent): boolean {\n return config.onMoveShouldSetPanResponder == null\n ? false\n : config.onMoveShouldSetPanResponder(event, gestureState);\n },\n onStartShouldSetResponderCapture(event: PressEvent): boolean {\n // TODO: Actually, we should reinitialize the state any time\n // touches.length increases from 0 active to > 0 active.\n if (event.nativeEvent.touches.length === 1) {\n PanResponder._initializeGestureState(gestureState);\n }\n gestureState.numberActiveTouches =\n event.touchHistory.numberActiveTouches;\n return config.onStartShouldSetPanResponderCapture != null\n ? config.onStartShouldSetPanResponderCapture(event, gestureState)\n : false;\n },\n\n onMoveShouldSetResponderCapture(event: PressEvent): boolean {\n const touchHistory = event.touchHistory;\n // Responder system incorrectly dispatches should* to current responder\n // Filter out any touch moves past the first one - we would have\n // already processed multi-touch geometry during the first event.\n if (\n gestureState._accountsForMovesUpTo ===\n touchHistory.mostRecentTimeStamp\n ) {\n return false;\n }\n PanResponder._updateGestureStateOnMove(gestureState, touchHistory);\n return config.onMoveShouldSetPanResponderCapture\n ? config.onMoveShouldSetPanResponderCapture(event, gestureState)\n : false;\n },\n\n onResponderGrant(event: PressEvent): boolean {\n if (!interactionState.handle) {\n interactionState.handle =\n InteractionManager.createInteractionHandle();\n }\n gestureState.x0 = currentCentroidX(event.touchHistory);\n gestureState.y0 = currentCentroidY(event.touchHistory);\n gestureState.dx = 0;\n gestureState.dy = 0;\n if (config.onPanResponderGrant) {\n config.onPanResponderGrant(event, gestureState);\n }\n // TODO: t7467124 investigate if this can be removed\n return config.onShouldBlockNativeResponder == null\n ? true\n : config.onShouldBlockNativeResponder(event, gestureState);\n },\n\n onResponderReject(event: PressEvent): void {\n clearInteractionHandle(\n interactionState,\n config.onPanResponderReject,\n event,\n gestureState,\n );\n },\n\n onResponderRelease(event: PressEvent): void {\n clearInteractionHandle(\n interactionState,\n config.onPanResponderRelease,\n event,\n gestureState,\n );\n PanResponder._initializeGestureState(gestureState);\n },\n\n onResponderStart(event: PressEvent): void {\n const touchHistory = event.touchHistory;\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n if (config.onPanResponderStart) {\n config.onPanResponderStart(event, gestureState);\n }\n },\n\n onResponderMove(event: PressEvent): void {\n const touchHistory = event.touchHistory;\n // Guard against the dispatch of two touch moves when there are two\n // simultaneously changed touches.\n if (\n gestureState._accountsForMovesUpTo ===\n touchHistory.mostRecentTimeStamp\n ) {\n return;\n }\n // Filter out any touch moves past the first one - we would have\n // already processed multi-touch geometry during the first event.\n PanResponder._updateGestureStateOnMove(gestureState, touchHistory);\n if (config.onPanResponderMove) {\n config.onPanResponderMove(event, gestureState);\n }\n },\n\n onResponderEnd(event: PressEvent): void {\n const touchHistory = event.touchHistory;\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n clearInteractionHandle(\n interactionState,\n config.onPanResponderEnd,\n event,\n gestureState,\n );\n },\n\n onResponderTerminate(event: PressEvent): void {\n clearInteractionHandle(\n interactionState,\n config.onPanResponderTerminate,\n event,\n gestureState,\n );\n PanResponder._initializeGestureState(gestureState);\n },\n\n onResponderTerminationRequest(event: PressEvent): boolean {\n return config.onPanResponderTerminationRequest == null\n ? true\n : config.onPanResponderTerminationRequest(event, gestureState);\n },\n };\n return {\n panHandlers,\n getInteractionHandle(): ?number {\n return interactionState.handle;\n },\n };\n },\n};\n\nfunction clearInteractionHandle(\n interactionState: {handle: ?number, ...},\n callback: ?(ActiveCallback | PassiveCallback),\n event: PressEvent,\n gestureState: GestureState,\n) {\n if (interactionState.handle) {\n InteractionManager.clearInteractionHandle(interactionState.handle);\n interactionState.handle = null;\n }\n if (callback) {\n callback(event, gestureState);\n }\n}\n\nexport type PanResponderInstance = $Call<\n $PropertyType,\n PanResponderConfig,\n>;\n\nexport default PanResponder;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nconst TouchHistoryMath = {\n /**\n * This code is optimized and not intended to look beautiful. This allows\n * computing of touch centroids that have moved after `touchesChangedAfter`\n * timeStamp. You can compute the current centroid involving all touches\n * moves after `touchesChangedAfter`, or you can compute the previous\n * centroid of all touches that were moved after `touchesChangedAfter`.\n *\n * @param {TouchHistoryMath} touchHistory Standard Responder touch track\n * data.\n * @param {number} touchesChangedAfter timeStamp after which moved touches\n * are considered \"actively moving\" - not just \"active\".\n * @param {boolean} isXAxis Consider `x` dimension vs. `y` dimension.\n * @param {boolean} ofCurrent Compute current centroid for actively moving\n * touches vs. previous centroid of now actively moving touches.\n * @return {number} value of centroid in specified dimension.\n */\n centroidDimension: function (\n touchHistory,\n touchesChangedAfter,\n isXAxis,\n ofCurrent,\n ) {\n const touchBank = touchHistory.touchBank;\n let total = 0;\n let count = 0;\n\n const oneTouchData =\n touchHistory.numberActiveTouches === 1\n ? touchHistory.touchBank[touchHistory.indexOfSingleActiveTouch]\n : null;\n\n if (oneTouchData !== null) {\n if (\n oneTouchData.touchActive &&\n oneTouchData.currentTimeStamp > touchesChangedAfter\n ) {\n total +=\n ofCurrent && isXAxis\n ? oneTouchData.currentPageX\n : ofCurrent && !isXAxis\n ? oneTouchData.currentPageY\n : !ofCurrent && isXAxis\n ? oneTouchData.previousPageX\n : oneTouchData.previousPageY;\n count = 1;\n }\n } else {\n for (let i = 0; i < touchBank.length; i++) {\n const touchTrack = touchBank[i];\n if (\n touchTrack !== null &&\n touchTrack !== undefined &&\n touchTrack.touchActive &&\n touchTrack.currentTimeStamp >= touchesChangedAfter\n ) {\n let toAdd; // Yuck, program temporarily in invalid state.\n if (ofCurrent && isXAxis) {\n toAdd = touchTrack.currentPageX;\n } else if (ofCurrent && !isXAxis) {\n toAdd = touchTrack.currentPageY;\n } else if (!ofCurrent && isXAxis) {\n toAdd = touchTrack.previousPageX;\n } else {\n toAdd = touchTrack.previousPageY;\n }\n total += toAdd;\n count++;\n }\n }\n }\n return count > 0 ? total / count : TouchHistoryMath.noCentroid;\n },\n\n currentCentroidXOfTouchesChangedAfter: function (\n touchHistory,\n touchesChangedAfter,\n ) {\n return TouchHistoryMath.centroidDimension(\n touchHistory,\n touchesChangedAfter,\n true, // isXAxis\n true, // ofCurrent\n );\n },\n\n currentCentroidYOfTouchesChangedAfter: function (\n touchHistory,\n touchesChangedAfter,\n ) {\n return TouchHistoryMath.centroidDimension(\n touchHistory,\n touchesChangedAfter,\n false, // isXAxis\n true, // ofCurrent\n );\n },\n\n previousCentroidXOfTouchesChangedAfter: function (\n touchHistory,\n touchesChangedAfter,\n ) {\n return TouchHistoryMath.centroidDimension(\n touchHistory,\n touchesChangedAfter,\n true, // isXAxis\n false, // ofCurrent\n );\n },\n\n previousCentroidYOfTouchesChangedAfter: function (\n touchHistory,\n touchesChangedAfter,\n ) {\n return TouchHistoryMath.centroidDimension(\n touchHistory,\n touchesChangedAfter,\n false, // isXAxis\n false, // ofCurrent\n );\n },\n\n currentCentroidX: function (touchHistory) {\n return TouchHistoryMath.centroidDimension(\n touchHistory,\n 0, // touchesChangedAfter\n true, // isXAxis\n true, // ofCurrent\n );\n },\n\n currentCentroidY: function (touchHistory) {\n return TouchHistoryMath.centroidDimension(\n touchHistory,\n 0, // touchesChangedAfter\n false, // isXAxis\n true, // ofCurrent\n );\n },\n\n noCentroid: -1,\n};\n\nmodule.exports = TouchHistoryMath;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport type {\n PermissionStatus,\n PermissionType,\n} from './NativePermissionsAndroid';\n\nimport NativeDialogManagerAndroid from '../NativeModules/specs/NativeDialogManagerAndroid';\nimport NativePermissionsAndroid from './NativePermissionsAndroid';\nimport invariant from 'invariant';\n\nconst Platform = require('../Utilities/Platform');\n\nexport type Rationale = {\n title: string,\n message: string,\n buttonPositive?: string,\n buttonNegative?: string,\n buttonNeutral?: string,\n ...\n};\n\nconst PERMISSION_REQUEST_RESULT = Object.freeze({\n GRANTED: 'granted',\n DENIED: 'denied',\n NEVER_ASK_AGAIN: 'never_ask_again',\n});\n\nconst PERMISSIONS = Object.freeze({\n READ_CALENDAR: 'android.permission.READ_CALENDAR',\n WRITE_CALENDAR: 'android.permission.WRITE_CALENDAR',\n CAMERA: 'android.permission.CAMERA',\n READ_CONTACTS: 'android.permission.READ_CONTACTS',\n WRITE_CONTACTS: 'android.permission.WRITE_CONTACTS',\n GET_ACCOUNTS: 'android.permission.GET_ACCOUNTS',\n ACCESS_FINE_LOCATION: 'android.permission.ACCESS_FINE_LOCATION',\n ACCESS_COARSE_LOCATION: 'android.permission.ACCESS_COARSE_LOCATION',\n ACCESS_BACKGROUND_LOCATION: 'android.permission.ACCESS_BACKGROUND_LOCATION',\n RECORD_AUDIO: 'android.permission.RECORD_AUDIO',\n READ_PHONE_STATE: 'android.permission.READ_PHONE_STATE',\n CALL_PHONE: 'android.permission.CALL_PHONE',\n READ_CALL_LOG: 'android.permission.READ_CALL_LOG',\n WRITE_CALL_LOG: 'android.permission.WRITE_CALL_LOG',\n ADD_VOICEMAIL: 'com.android.voicemail.permission.ADD_VOICEMAIL',\n READ_VOICEMAIL: 'com.android.voicemail.permission.READ_VOICEMAIL',\n WRITE_VOICEMAIL: 'com.android.voicemail.permission.WRITE_VOICEMAIL',\n USE_SIP: 'android.permission.USE_SIP',\n PROCESS_OUTGOING_CALLS: 'android.permission.PROCESS_OUTGOING_CALLS',\n BODY_SENSORS: 'android.permission.BODY_SENSORS',\n BODY_SENSORS_BACKGROUND: 'android.permission.BODY_SENSORS_BACKGROUND',\n SEND_SMS: 'android.permission.SEND_SMS',\n RECEIVE_SMS: 'android.permission.RECEIVE_SMS',\n READ_SMS: 'android.permission.READ_SMS',\n RECEIVE_WAP_PUSH: 'android.permission.RECEIVE_WAP_PUSH',\n RECEIVE_MMS: 'android.permission.RECEIVE_MMS',\n READ_EXTERNAL_STORAGE: 'android.permission.READ_EXTERNAL_STORAGE',\n READ_MEDIA_IMAGES: 'android.permission.READ_MEDIA_IMAGES',\n READ_MEDIA_VIDEO: 'android.permission.READ_MEDIA_VIDEO',\n READ_MEDIA_AUDIO: 'android.permission.READ_MEDIA_AUDIO',\n WRITE_EXTERNAL_STORAGE: 'android.permission.WRITE_EXTERNAL_STORAGE',\n BLUETOOTH_CONNECT: 'android.permission.BLUETOOTH_CONNECT',\n BLUETOOTH_SCAN: 'android.permission.BLUETOOTH_SCAN',\n BLUETOOTH_ADVERTISE: 'android.permission.BLUETOOTH_ADVERTISE',\n ACCESS_MEDIA_LOCATION: 'android.permission.ACCESS_MEDIA_LOCATION',\n ACCEPT_HANDOVER: 'android.permission.ACCEPT_HANDOVER',\n ACTIVITY_RECOGNITION: 'android.permission.ACTIVITY_RECOGNITION',\n ANSWER_PHONE_CALLS: 'android.permission.ANSWER_PHONE_CALLS',\n READ_PHONE_NUMBERS: 'android.permission.READ_PHONE_NUMBERS',\n UWB_RANGING: 'android.permission.UWB_RANGING',\n POST_NOTIFICATIONS: 'android.permission.POST_NOTIFICATIONS',\n NEARBY_WIFI_DEVICES: 'android.permission.NEARBY_WIFI_DEVICES',\n});\n\n/**\n * `PermissionsAndroid` provides access to Android M's new permissions model.\n *\n * See https://reactnative.dev/docs/permissionsandroid\n */\n\nclass PermissionsAndroid {\n PERMISSIONS: {|\n ACCEPT_HANDOVER: string,\n ACCESS_BACKGROUND_LOCATION: string,\n ACCESS_COARSE_LOCATION: string,\n ACCESS_FINE_LOCATION: string,\n ACCESS_MEDIA_LOCATION: string,\n ACTIVITY_RECOGNITION: string,\n ADD_VOICEMAIL: string,\n READ_VOICEMAIL: string,\n WRITE_VOICEMAIL: string,\n ANSWER_PHONE_CALLS: string,\n BLUETOOTH_ADVERTISE: string,\n BLUETOOTH_CONNECT: string,\n BLUETOOTH_SCAN: string,\n BODY_SENSORS: string,\n BODY_SENSORS_BACKGROUND: string,\n CALL_PHONE: string,\n CAMERA: string,\n GET_ACCOUNTS: string,\n NEARBY_WIFI_DEVICES: string,\n POST_NOTIFICATIONS: string,\n PROCESS_OUTGOING_CALLS: string,\n READ_CALENDAR: string,\n READ_CALL_LOG: string,\n READ_CONTACTS: string,\n READ_EXTERNAL_STORAGE: string,\n READ_MEDIA_IMAGES: string,\n READ_MEDIA_VIDEO: string,\n READ_MEDIA_AUDIO: string,\n READ_PHONE_NUMBERS: string,\n READ_PHONE_STATE: string,\n READ_SMS: string,\n RECEIVE_MMS: string,\n RECEIVE_SMS: string,\n RECEIVE_WAP_PUSH: string,\n RECORD_AUDIO: string,\n SEND_SMS: string,\n USE_SIP: string,\n UWB_RANGING: string,\n WRITE_CALENDAR: string,\n WRITE_CALL_LOG: string,\n WRITE_CONTACTS: string,\n WRITE_EXTERNAL_STORAGE: string,\n |} = PERMISSIONS;\n RESULTS: {|\n DENIED: $TEMPORARY$string<'denied'>,\n GRANTED: $TEMPORARY$string<'granted'>,\n NEVER_ASK_AGAIN: $TEMPORARY$string<'never_ask_again'>,\n |} = PERMISSION_REQUEST_RESULT;\n\n /**\n * DEPRECATED - use check\n *\n * Returns a promise resolving to a boolean value as to whether the specified\n * permissions has been granted\n *\n * @deprecated\n */\n checkPermission(permission: PermissionType): Promise {\n console.warn(\n '\"PermissionsAndroid.checkPermission\" is deprecated. Use \"PermissionsAndroid.check\" instead',\n );\n if (Platform.OS !== 'android') {\n console.warn(\n '\"PermissionsAndroid\" module works only for Android platform.',\n );\n return Promise.resolve(false);\n }\n\n invariant(\n NativePermissionsAndroid,\n 'PermissionsAndroid is not installed correctly.',\n );\n\n return NativePermissionsAndroid.checkPermission(permission);\n }\n\n /**\n * Returns a promise resolving to a boolean value as to whether the specified\n * permissions has been granted\n *\n * See https://reactnative.dev/docs/permissionsandroid#check\n */\n check(permission: PermissionType): Promise {\n if (Platform.OS !== 'android') {\n console.warn(\n '\"PermissionsAndroid\" module works only for Android platform.',\n );\n return Promise.resolve(false);\n }\n\n invariant(\n NativePermissionsAndroid,\n 'PermissionsAndroid is not installed correctly.',\n );\n\n return NativePermissionsAndroid.checkPermission(permission);\n }\n\n /**\n * DEPRECATED - use request\n *\n * Prompts the user to enable a permission and returns a promise resolving to a\n * boolean value indicating whether the user allowed or denied the request\n *\n * If the optional rationale argument is included (which is an object with a\n * `title` and `message`), this function checks with the OS whether it is\n * necessary to show a dialog explaining why the permission is needed\n * (https://developer.android.com/training/permissions/requesting#explain)\n * and then shows the system permission dialog\n *\n * @deprecated\n */\n async requestPermission(\n permission: PermissionType,\n rationale?: Rationale,\n ): Promise {\n console.warn(\n '\"PermissionsAndroid.requestPermission\" is deprecated. Use \"PermissionsAndroid.request\" instead',\n );\n if (Platform.OS !== 'android') {\n console.warn(\n '\"PermissionsAndroid\" module works only for Android platform.',\n );\n return Promise.resolve(false);\n }\n\n const response = await this.request(permission, rationale);\n return response === this.RESULTS.GRANTED;\n }\n\n /**\n * Prompts the user to enable a permission and returns a promise resolving to a\n * string value indicating whether the user allowed or denied the request\n *\n * See https://reactnative.dev/docs/permissionsandroid#request\n */\n async request(\n permission: PermissionType,\n rationale?: Rationale,\n ): Promise {\n if (Platform.OS !== 'android') {\n console.warn(\n '\"PermissionsAndroid\" module works only for Android platform.',\n );\n return Promise.resolve(this.RESULTS.DENIED);\n }\n\n invariant(\n NativePermissionsAndroid,\n 'PermissionsAndroid is not installed correctly.',\n );\n\n if (rationale) {\n const shouldShowRationale =\n await NativePermissionsAndroid.shouldShowRequestPermissionRationale(\n permission,\n );\n\n if (shouldShowRationale && !!NativeDialogManagerAndroid) {\n return new Promise((resolve, reject) => {\n const options = {\n ...rationale,\n };\n NativeDialogManagerAndroid.showAlert(\n /* $FlowFixMe[incompatible-exact] (>=0.111.0 site=react_native_fb)\n * This comment suppresses an error found when Flow v0.111 was\n * deployed. To see the error, delete this comment and run Flow.\n */\n options,\n () => reject(new Error('Error showing rationale')),\n () =>\n resolve(NativePermissionsAndroid.requestPermission(permission)),\n );\n });\n }\n }\n return NativePermissionsAndroid.requestPermission(permission);\n }\n\n /**\n * Prompts the user to enable multiple permissions in the same dialog and\n * returns an object with the permissions as keys and strings as values\n * indicating whether the user allowed or denied the request\n *\n * See https://reactnative.dev/docs/permissionsandroid#requestmultiple\n */\n requestMultiple(\n permissions: Array,\n ): Promise<{[permission: PermissionType]: PermissionStatus, ...}> {\n if (Platform.OS !== 'android') {\n console.warn(\n '\"PermissionsAndroid\" module works only for Android platform.',\n );\n return Promise.resolve({});\n }\n\n invariant(\n NativePermissionsAndroid,\n 'PermissionsAndroid is not installed correctly.',\n );\n\n return NativePermissionsAndroid.requestMultiplePermissions(permissions);\n }\n}\n\nconst PermissionsAndroidInstance: PermissionsAndroid = new PermissionsAndroid();\n\nmodule.exports = PermissionsAndroidInstance;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\n// TODO: Use proper enum types.\nexport type PermissionStatus = string;\nexport type PermissionType = string;\n/*\nexport type PermissionStatus = 'granted' | 'denied' | 'never_ask_again';\nexport type PermissionType =\n | 'android.permission.READ_CALENDAR'\n | 'android.permission.WRITE_CALENDAR'\n | 'android.permission.CAMERA'\n | 'android.permission.READ_CONTACTS'\n | 'android.permission.WRITE_CONTACTS'\n | 'android.permission.GET_ACCOUNTS'\n | 'android.permission.ACCESS_BACKGROUND_LOCATION'\n | 'android.permission.ACCESS_FINE_LOCATION'\n | 'android.permission.ACCESS_COARSE_LOCATION'\n | 'android.permission.RECORD_AUDIO'\n | 'android.permission.READ_PHONE_STATE'\n | 'android.permission.CALL_PHONE'\n | 'android.permission.READ_CALL_LOG'\n | 'android.permission.WRITE_CALL_LOG'\n | 'com.android.voicemail.permission.ADD_VOICEMAIL'\n | 'com.android.voicemail.permission.READ_VOICEMAIL'\n | 'com.android.voicemail.permission.WRITE_VOICEMAIL'\n | 'android.permission.USE_SIP'\n | 'android.permission.PROCESS_OUTGOING_CALLS'\n | 'android.permission.BODY_SENSORS'\n | 'android.permission.BODY_SENSORS_BACKGROUND'\n | 'android.permission.SEND_SMS'\n | 'android.permission.RECEIVE_SMS'\n | 'android.permission.READ_SMS'\n | 'android.permission.RECEIVE_WAP_PUSH'\n | 'android.permission.RECEIVE_MMS'\n | 'android.permission.READ_EXTERNAL_STORAGE'\n | 'android.permission.READ_MEDIA_IMAGES',\n | 'android.permission.READ_MEDIA_VIDEO',\n | 'android.permission.READ_MEDIA_AUDIO',\n | 'android.permission.WRITE_EXTERNAL_STORAGE'\n | 'android.permission.BLUETOOTH_CONNECT'\n | 'android.permission.BLUETOOTH_SCAN'\n | 'android.permission.BLUETOOTH_ADVERTISE'\n | 'android.permission.ACCESS_MEDIA_LOCATION'\n | 'android.permission.ACCEPT_HANDOVER'\n | 'android.permission.ACTIVITY_RECOGNITION'\n | 'android.permission.ANSWER_PHONE_CALLS'\n | 'android.permission.READ_PHONE_NUMBERS'\n | 'android.permission.UWB_RANGING'\n | 'android.permission.POST_NOTIFICATIONS'\n | 'android.permission.NEARBY_WIFI_DEVICES';\n*/\n\nexport interface Spec extends TurboModule {\n +checkPermission: (permission: PermissionType) => Promise;\n +requestPermission: (permission: PermissionType) => Promise;\n +shouldShowRequestPermissionRationale: (\n permission: string,\n ) => Promise;\n +requestMultiplePermissions: (\n permissions: Array,\n ) => Promise<{[permission: PermissionType]: PermissionStatus, ...}>;\n}\n\nexport default (TurboModuleRegistry.get('PermissionsAndroid'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {EventSubscription} from '../vendor/emitter/EventEmitter';\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport Platform from '../Utilities/Platform';\nimport NativePushNotificationManagerIOS from './NativePushNotificationManagerIOS';\nimport invariant from 'invariant';\n\ntype NativePushNotificationIOSEventDefinitions = {\n remoteNotificationReceived: [\n {\n notificationId: string,\n remote: boolean,\n ...\n },\n ],\n remoteNotificationsRegistered: [\n {\n deviceToken?: ?string,\n ...\n },\n ],\n remoteNotificationRegistrationError: [\n {\n message: string,\n code: number,\n details: {...},\n },\n ],\n localNotificationReceived: [{...}],\n};\n\nconst PushNotificationEmitter =\n new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativePushNotificationManagerIOS,\n );\n\nconst _notifHandlers = new Map();\n\nconst DEVICE_NOTIF_EVENT = 'remoteNotificationReceived';\nconst NOTIF_REGISTER_EVENT = 'remoteNotificationsRegistered';\nconst NOTIF_REGISTRATION_ERROR_EVENT = 'remoteNotificationRegistrationError';\nconst DEVICE_LOCAL_NOTIF_EVENT = 'localNotificationReceived';\n\nexport type ContentAvailable = 1 | null | void;\n\nexport type FetchResult = {\n NewData: string,\n NoData: string,\n ResultFailed: string,\n ...\n};\n\n/**\n * An event emitted by PushNotificationIOS.\n */\nexport type PushNotificationEventName = $Keys<{\n /**\n * Fired when a remote notification is received. The handler will be invoked\n * with an instance of `PushNotificationIOS`.\n */\n notification: string,\n /**\n * Fired when a local notification is received. The handler will be invoked\n * with an instance of `PushNotificationIOS`.\n */\n localNotification: string,\n /**\n * Fired when the user registers for remote notifications. The handler will be\n * invoked with a hex string representing the deviceToken.\n */\n register: string,\n /**\n * Fired when the user fails to register for remote notifications. Typically\n * occurs when APNS is having issues, or the device is a simulator. The\n * handler will be invoked with {message: string, code: number, details: any}.\n */\n registrationError: string,\n ...\n}>;\n\n/**\n *\n * Handle push notifications for your app, including permission handling and\n * icon badge number.\n *\n * See https://reactnative.dev/docs/pushnotificationios\n */\nclass PushNotificationIOS {\n _data: Object;\n _alert: string | Object;\n _sound: string;\n _category: string;\n _contentAvailable: ContentAvailable;\n _badgeCount: number;\n _notificationId: string;\n _isRemote: boolean;\n _remoteNotificationCompleteCallbackCalled: boolean;\n _threadID: string;\n\n static FetchResult: FetchResult = {\n NewData: 'UIBackgroundFetchResultNewData',\n NoData: 'UIBackgroundFetchResultNoData',\n ResultFailed: 'UIBackgroundFetchResultFailed',\n };\n\n /**\n * Schedules the localNotification for immediate presentation.\n *\n * See https://reactnative.dev/docs/pushnotificationios#presentlocalnotification\n */\n static presentLocalNotification(details: Object): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.presentLocalNotification(details);\n }\n\n /**\n * Schedules the localNotification for future presentation.\n *\n * See https://reactnative.dev/docs/pushnotificationios#schedulelocalnotification\n */\n static scheduleLocalNotification(details: Object): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.scheduleLocalNotification(details);\n }\n\n /**\n * Cancels all scheduled localNotifications.\n *\n * See https://reactnative.dev/docs/pushnotificationios#cancelalllocalnotifications\n */\n static cancelAllLocalNotifications(): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.cancelAllLocalNotifications();\n }\n\n /**\n * Remove all delivered notifications from Notification Center.\n *\n * See https://reactnative.dev/docs/pushnotificationios#removealldeliverednotifications\n */\n static removeAllDeliveredNotifications(): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.removeAllDeliveredNotifications();\n }\n\n /**\n * Provides you with a list of the app’s notifications that are still displayed in Notification Center.\n *\n * See https://reactnative.dev/docs/pushnotificationios#getdeliverednotifications\n */\n static getDeliveredNotifications(\n callback: (notifications: Array) => void,\n ): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.getDeliveredNotifications(callback);\n }\n\n /**\n * Removes the specified notifications from Notification Center\n *\n * See https://reactnative.dev/docs/pushnotificationios#removedeliverednotifications\n */\n static removeDeliveredNotifications(identifiers: Array): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.removeDeliveredNotifications(identifiers);\n }\n\n /**\n * Sets the badge number for the app icon on the home screen.\n *\n * See https://reactnative.dev/docs/pushnotificationios#setapplicationiconbadgenumber\n */\n static setApplicationIconBadgeNumber(number: number): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.setApplicationIconBadgeNumber(number);\n }\n\n /**\n * Gets the current badge number for the app icon on the home screen.\n *\n * See https://reactnative.dev/docs/pushnotificationios#getapplicationiconbadgenumber\n */\n static getApplicationIconBadgeNumber(callback: Function): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.getApplicationIconBadgeNumber(callback);\n }\n\n /**\n * Cancel local notifications.\n *\n * See https://reactnative.dev/docs/pushnotificationios#cancellocalnotification\n */\n static cancelLocalNotifications(userInfo: Object): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.cancelLocalNotifications(userInfo);\n }\n\n /**\n * Gets the local notifications that are currently scheduled.\n *\n * See https://reactnative.dev/docs/pushnotificationios#getscheduledlocalnotifications\n */\n static getScheduledLocalNotifications(callback: Function): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.getScheduledLocalNotifications(callback);\n }\n\n /**\n * Attaches a listener to remote or local notification events while the app\n * is running in the foreground or the background.\n *\n * See https://reactnative.dev/docs/pushnotificationios#addeventlistener\n */\n static addEventListener(\n type: PushNotificationEventName,\n handler: Function,\n ): void {\n invariant(\n type === 'notification' ||\n type === 'register' ||\n type === 'registrationError' ||\n type === 'localNotification',\n 'PushNotificationIOS only supports `notification`, `register`, `registrationError`, and `localNotification` events',\n );\n let listener;\n if (type === 'notification') {\n listener = PushNotificationEmitter.addListener(\n DEVICE_NOTIF_EVENT,\n notifData => {\n handler(new PushNotificationIOS(notifData));\n },\n );\n } else if (type === 'localNotification') {\n listener = PushNotificationEmitter.addListener(\n DEVICE_LOCAL_NOTIF_EVENT,\n notifData => {\n handler(new PushNotificationIOS(notifData));\n },\n );\n } else if (type === 'register') {\n listener = PushNotificationEmitter.addListener(\n NOTIF_REGISTER_EVENT,\n registrationInfo => {\n handler(registrationInfo.deviceToken);\n },\n );\n } else if (type === 'registrationError') {\n listener = PushNotificationEmitter.addListener(\n NOTIF_REGISTRATION_ERROR_EVENT,\n errorInfo => {\n handler(errorInfo);\n },\n );\n }\n _notifHandlers.set(type, listener);\n }\n\n /**\n * Removes the event listener. Do this in `componentWillUnmount` to prevent\n * memory leaks.\n *\n * See https://reactnative.dev/docs/pushnotificationios#removeeventlistener\n */\n static removeEventListener(\n type: PushNotificationEventName,\n handler: Function,\n ): void {\n invariant(\n type === 'notification' ||\n type === 'register' ||\n type === 'registrationError' ||\n type === 'localNotification',\n 'PushNotificationIOS only supports `notification`, `register`, `registrationError`, and `localNotification` events',\n );\n const listener = _notifHandlers.get(type);\n if (!listener) {\n return;\n }\n listener.remove();\n _notifHandlers.delete(type);\n }\n\n /**\n * Requests notification permissions from iOS, prompting the user's\n * dialog box. By default, it will request all notification permissions, but\n * a subset of these can be requested by passing a map of requested\n * permissions.\n *\n * See https://reactnative.dev/docs/pushnotificationios#requestpermissions\n */\n static requestPermissions(permissions?: {\n alert?: boolean,\n badge?: boolean,\n sound?: boolean,\n ...\n }): Promise<{\n alert: boolean,\n badge: boolean,\n sound: boolean,\n ...\n }> {\n let requestedPermissions = {\n alert: true,\n badge: true,\n sound: true,\n };\n if (permissions) {\n requestedPermissions = {\n alert: !!permissions.alert,\n badge: !!permissions.badge,\n sound: !!permissions.sound,\n };\n }\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n return NativePushNotificationManagerIOS.requestPermissions(\n requestedPermissions,\n );\n }\n\n /**\n * Unregister for all remote notifications received via Apple Push Notification service.\n *\n * See https://reactnative.dev/docs/pushnotificationios#abandonpermissions\n */\n static abandonPermissions(): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.abandonPermissions();\n }\n\n /**\n * See what push permissions are currently enabled. `callback` will be\n * invoked with a `permissions` object.\n *\n * See https://reactnative.dev/docs/pushnotificationios#checkpermissions\n */\n static checkPermissions(callback: Function): void {\n invariant(typeof callback === 'function', 'Must provide a valid callback');\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.checkPermissions(callback);\n }\n\n /**\n * This method returns a promise that resolves to either the notification\n * object if the app was launched by a push notification, or `null` otherwise.\n *\n * See https://reactnative.dev/docs/pushnotificationios#getinitialnotification\n */\n static getInitialNotification(): Promise {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n return NativePushNotificationManagerIOS.getInitialNotification().then(\n notification => {\n return notification && new PushNotificationIOS(notification);\n },\n );\n }\n\n /**\n * This method returns a promise that resolves to notification authorization status.\n */\n static getAuthorizationStatus(\n callback: (authorizationStatus: number) => void,\n ): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n\n NativePushNotificationManagerIOS.getAuthorizationStatus(callback);\n }\n\n /**\n * You will never need to instantiate `PushNotificationIOS` yourself.\n * Listening to the `notification` event and invoking\n * `getInitialNotification` is sufficient\n *\n */\n constructor(nativeNotif: Object) {\n this._data = {};\n this._remoteNotificationCompleteCallbackCalled = false;\n this._isRemote = nativeNotif.remote;\n if (this._isRemote) {\n this._notificationId = nativeNotif.notificationId;\n }\n\n if (nativeNotif.remote) {\n // Extract data from Apple's `aps` dict as defined:\n // https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService\n Object.keys(nativeNotif).forEach(notifKey => {\n const notifVal = nativeNotif[notifKey];\n if (notifKey === 'aps') {\n this._alert = notifVal.alert;\n this._sound = notifVal.sound;\n this._badgeCount = notifVal.badge;\n this._category = notifVal.category;\n this._contentAvailable = notifVal['content-available'];\n this._threadID = notifVal['thread-id'];\n } else {\n this._data[notifKey] = notifVal;\n }\n });\n } else {\n // Local notifications aren't being sent down with `aps` dict.\n this._badgeCount = nativeNotif.applicationIconBadgeNumber;\n this._sound = nativeNotif.soundName;\n this._alert = nativeNotif.alertBody;\n this._data = nativeNotif.userInfo;\n this._category = nativeNotif.category;\n }\n }\n\n /**\n * This method is available for remote notifications that have been received via:\n * `application:didReceiveRemoteNotification:fetchCompletionHandler:`\n *\n * See https://reactnative.dev/docs/pushnotificationios#finish\n */\n finish(fetchResult: string): void {\n if (\n !this._isRemote ||\n !this._notificationId ||\n this._remoteNotificationCompleteCallbackCalled\n ) {\n return;\n }\n this._remoteNotificationCompleteCallbackCalled = true;\n\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.onFinishRemoteNotification(\n this._notificationId,\n fetchResult,\n );\n }\n\n /**\n * An alias for `getAlert` to get the notification's main message string\n */\n getMessage(): ?string | ?Object {\n // alias because \"alert\" is an ambiguous name\n return this._alert;\n }\n\n /**\n * Gets the sound string from the `aps` object\n *\n * See https://reactnative.dev/docs/pushnotificationios#getsound\n */\n getSound(): ?string {\n return this._sound;\n }\n\n /**\n * Gets the category string from the `aps` object\n *\n * See https://reactnative.dev/docs/pushnotificationios#getcategory\n */\n getCategory(): ?string {\n return this._category;\n }\n\n /**\n * Gets the notification's main message from the `aps` object\n *\n * See https://reactnative.dev/docs/pushnotificationios#getalert\n */\n getAlert(): ?string | ?Object {\n return this._alert;\n }\n\n /**\n * Gets the content-available number from the `aps` object\n *\n * See https://reactnative.dev/docs/pushnotificationios#getcontentavailable\n */\n getContentAvailable(): ContentAvailable {\n return this._contentAvailable;\n }\n\n /**\n * Gets the badge count number from the `aps` object\n *\n * See https://reactnative.dev/docs/pushnotificationios#getbadgecount\n */\n getBadgeCount(): ?number {\n return this._badgeCount;\n }\n\n /**\n * Gets the data object on the notif\n *\n * See https://reactnative.dev/docs/pushnotificationios#getdata\n */\n getData(): ?Object {\n return this._data;\n }\n\n /**\n * Gets the thread ID on the notif\n *\n * See https://reactnative.dev/docs/pushnotificationios#getthreadid\n */\n getThreadID(): ?string {\n return this._threadID;\n }\n}\n\nmodule.exports = PushNotificationIOS;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\ntype Permissions = {|\n alert: boolean,\n badge: boolean,\n sound: boolean,\n|};\n\ntype Notification = {|\n +alertTitle?: ?string,\n // Actual type: string | number\n +fireDate?: ?number,\n +alertBody?: ?string,\n +alertAction?: ?string,\n +userInfo?: ?Object,\n +category?: ?string,\n // Actual type: 'year' | 'month' | 'week' | 'day' | 'hour' | 'minute'\n +repeatInterval?: ?string,\n +applicationIconBadgeNumber?: ?number,\n +isSilent?: ?boolean,\n +soundName?: ?string,\n|};\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {||};\n +onFinishRemoteNotification: (\n notificationId: string,\n /**\n * Type:\n * 'UIBackgroundFetchResultNewData' |\n * 'UIBackgroundFetchResultNoData' |\n * 'UIBackgroundFetchResultFailed'\n */\n fetchResult: string,\n ) => void;\n +setApplicationIconBadgeNumber: (num: number) => void;\n +getApplicationIconBadgeNumber: (callback: (num: number) => void) => void;\n +requestPermissions: (permission: {|\n +alert: boolean,\n +badge: boolean,\n +sound: boolean,\n |}) => Promise;\n +abandonPermissions: () => void;\n +checkPermissions: (callback: (permissions: Permissions) => void) => void;\n +presentLocalNotification: (notification: Notification) => void;\n +scheduleLocalNotification: (notification: Notification) => void;\n +cancelAllLocalNotifications: () => void;\n +cancelLocalNotifications: (userInfo: Object) => void;\n +getInitialNotification: () => Promise;\n +getScheduledLocalNotifications: (\n callback: (notification: Notification) => void,\n ) => void;\n +removeAllDeliveredNotifications: () => void;\n +removeDeliveredNotifications: (identifiers: Array) => void;\n +getDeliveredNotifications: (\n callback: (notification: Array) => void,\n ) => void;\n +getAuthorizationStatus: (\n callback: (authorizationStatus: number) => void,\n ) => void;\n +addListener: (eventType: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.get(\n 'PushNotificationManager',\n): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nconst Settings = {\n get(key: string): mixed {\n console.warn('Settings is not yet supported on Android');\n return null;\n },\n\n set(settings: Object) {\n console.warn('Settings is not yet supported on Android');\n },\n\n watchKeys(keys: string | Array, callback: Function): number {\n console.warn('Settings is not yet supported on Android');\n return -1;\n },\n\n clearWatch(watchId: number) {\n console.warn('Settings is not yet supported on Android');\n },\n};\n\nmodule.exports = Settings;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport NativeActionSheetManager from '../ActionSheetIOS/NativeActionSheetManager';\nimport NativeShareModule from './NativeShareModule';\n\nconst processColor = require('../StyleSheet/processColor').default;\nconst Platform = require('../Utilities/Platform');\nconst invariant = require('invariant');\n\ntype Content =\n | {\n title?: string,\n message: string,\n ...\n }\n | {\n title?: string,\n url: string,\n ...\n };\ntype Options = {\n dialogTitle?: string,\n excludedActivityTypes?: Array,\n tintColor?: string,\n subject?: string,\n anchor?: number,\n ...\n};\n\nclass Share {\n /**\n * Open a dialog to share text content.\n *\n * In iOS, Returns a Promise which will be invoked an object containing `action`, `activityType`.\n * If the user dismissed the dialog, the Promise will still be resolved with action being `Share.dismissedAction`\n * and all the other keys being undefined.\n *\n * In Android, Returns a Promise which always be resolved with action being `Share.sharedAction`.\n *\n * ### Content\n *\n * - `message` - a message to share\n *\n * #### iOS\n *\n * - `url` - a URL to share\n *\n * At least one of URL and message is required.\n *\n * #### Android\n *\n * - `title` - title of the message\n *\n * ### Options\n *\n * #### iOS\n *\n * - `subject` - a subject to share via email\n * - `excludedActivityTypes`\n * - `tintColor`\n *\n * #### Android\n *\n * - `dialogTitle`\n *\n */\n static share(\n content: Content,\n options: Options = {},\n ): Promise<{action: string, activityType: ?string}> {\n invariant(\n typeof content === 'object' && content !== null,\n 'Content to share must be a valid object',\n );\n invariant(\n typeof content.url === 'string' || typeof content.message === 'string',\n 'At least one of URL and message is required',\n );\n invariant(\n typeof options === 'object' && options !== null,\n 'Options must be a valid object',\n );\n\n if (Platform.OS === 'android') {\n invariant(\n NativeShareModule,\n 'ShareModule should be registered on Android.',\n );\n invariant(\n content.title == null || typeof content.title === 'string',\n 'Invalid title: title should be a string.',\n );\n\n const newContent = {\n title: content.title,\n message:\n typeof content.message === 'string' ? content.message : undefined,\n };\n\n return NativeShareModule.share(newContent, options.dialogTitle).then(\n result => ({\n activityType: null,\n ...result,\n }),\n );\n } else if (Platform.OS === 'ios') {\n return new Promise((resolve, reject) => {\n const tintColor = processColor(options.tintColor);\n\n invariant(\n tintColor == null || typeof tintColor === 'number',\n 'Unexpected color given for options.tintColor',\n );\n\n invariant(\n NativeActionSheetManager,\n 'NativeActionSheetManager is not registered on iOS, but it should be.',\n );\n\n NativeActionSheetManager.showShareActionSheetWithOptions(\n {\n message:\n typeof content.message === 'string' ? content.message : undefined,\n url: typeof content.url === 'string' ? content.url : undefined,\n subject: options.subject,\n tintColor: typeof tintColor === 'number' ? tintColor : undefined,\n anchor:\n typeof options.anchor === 'number' ? options.anchor : undefined,\n excludedActivityTypes: options.excludedActivityTypes,\n },\n error => reject(error),\n (success, activityType) => {\n if (success) {\n resolve({\n action: 'sharedAction',\n activityType: activityType,\n });\n } else {\n resolve({\n action: 'dismissedAction',\n activityType: null,\n });\n }\n },\n );\n });\n } else {\n return Promise.reject(new Error('Unsupported platform'));\n }\n }\n\n /**\n * The content was successfully shared.\n */\n static sharedAction: 'sharedAction' = 'sharedAction';\n\n /**\n * The dialog has been dismissed.\n * @platform ios\n */\n static dismissedAction: 'dismissedAction' = 'dismissedAction';\n}\n\nmodule.exports = Share;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {||};\n +share: (\n content: {|title?: string, message?: string|},\n dialogTitle?: string,\n ) => Promise<{|action: string|}>;\n}\n\nexport default (TurboModuleRegistry.get('ShareModule'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport NativeToastAndroid from './NativeToastAndroid';\n\n/**\n * This exposes the native ToastAndroid module as a JS module. This has a function 'show'\n * which takes the following parameters:\n *\n * 1. String message: A string with the text to toast\n * 2. int duration: The duration of the toast. May be ToastAndroid.SHORT or ToastAndroid.LONG\n *\n * There is also a function `showWithGravity` to specify the layout gravity. May be\n * ToastAndroid.TOP, ToastAndroid.BOTTOM, ToastAndroid.CENTER.\n *\n * The 'showWithGravityAndOffset' function adds on the ability to specify offset\n * These offset values will translate to pixels.\n *\n * Basic usage:\n * ```javascript\n * ToastAndroid.show('A pikachu appeared nearby !', ToastAndroid.SHORT);\n * ToastAndroid.showWithGravity('All Your Base Are Belong To Us', ToastAndroid.SHORT, ToastAndroid.CENTER);\n * ToastAndroid.showWithGravityAndOffset('A wild toast appeared!', ToastAndroid.LONG, ToastAndroid.BOTTOM, 25, 50);\n * ```\n */\n\nconst ToastAndroidConstants = NativeToastAndroid.getConstants();\n\nconst ToastAndroid = {\n // Toast duration constants\n SHORT: (ToastAndroidConstants.SHORT: number),\n LONG: (ToastAndroidConstants.LONG: number),\n // Toast gravity constants\n TOP: (ToastAndroidConstants.TOP: number),\n BOTTOM: (ToastAndroidConstants.BOTTOM: number),\n CENTER: (ToastAndroidConstants.CENTER: number),\n\n show: function (message: string, duration: number): void {\n NativeToastAndroid.show(message, duration);\n },\n\n showWithGravity: function (\n message: string,\n duration: number,\n gravity: number,\n ): void {\n NativeToastAndroid.showWithGravity(message, duration, gravity);\n },\n\n showWithGravityAndOffset: function (\n message: string,\n duration: number,\n gravity: number,\n xOffset: number,\n yOffset: number,\n ): void {\n NativeToastAndroid.showWithGravityAndOffset(\n message,\n duration,\n gravity,\n xOffset,\n yOffset,\n );\n },\n};\n\nmodule.exports = ToastAndroid;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n SHORT: number,\n LONG: number,\n TOP: number,\n BOTTOM: number,\n CENTER: number,\n |};\n +show: (message: string, duration: number) => void;\n +showWithGravity: (\n message: string,\n duration: number,\n gravity: number,\n ) => void;\n +showWithGravityAndOffset: (\n message: string,\n duration: number,\n gravity: number,\n xOffset: number,\n yOffset: number,\n ) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('ToastAndroid'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {AnimatedValueConfig} from './nodes/AnimatedValue';\n\nimport Animated from './Animated';\nimport {useRef} from 'react';\n\nexport default function useAnimatedValue(\n initialValue: number,\n config?: ?AnimatedValueConfig,\n): Animated.Value {\n const ref = useRef(null);\n if (ref.current == null) {\n ref.current = new Animated.Value(initialValue, config);\n }\n return ref.current;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n'use strict';\n\nimport type {ColorSchemeName} from './NativeAppearance';\n\nimport Appearance from './Appearance';\nimport {useSyncExternalStore} from 'use-sync-external-store/shim';\n\nexport default function useColorScheme(): ?ColorSchemeName {\n return useSyncExternalStore(\n callback => {\n const appearanceSubscription = Appearance.addChangeListener(callback);\n return () => appearanceSubscription.remove();\n },\n () => Appearance.getColorScheme(),\n );\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.native.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.native.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim.native.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:q;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport Dimensions from './Dimensions';\nimport {\n type DisplayMetrics,\n type DisplayMetricsAndroid,\n} from './NativeDeviceInfo';\nimport {useEffect, useState} from 'react';\n\nexport default function useWindowDimensions():\n | DisplayMetrics\n | DisplayMetricsAndroid {\n const [dimensions, setDimensions] = useState(() => Dimensions.get('window'));\n useEffect(() => {\n function handleChange({\n window,\n }: {\n window: DisplayMetrics | DisplayMetricsAndroid,\n }) {\n if (\n dimensions.width !== window.width ||\n dimensions.height !== window.height ||\n dimensions.scale !== window.scale ||\n dimensions.fontScale !== window.fontScale\n ) {\n setDimensions(window);\n }\n }\n const subscription = Dimensions.addEventListener('change', handleChange);\n // We might have missed an update between calling `get` in render and\n // `addEventListener` in this handler, so we set it here. If there was\n // no change, React will filter out this update as a no-op.\n handleChange({window: Dimensions.get('window')});\n return () => {\n subscription.remove();\n };\n }, [dimensions]);\n return dimensions;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nconst deepFreezeAndThrowOnMutationInDev = require('./Utilities/deepFreezeAndThrowOnMutationInDev');\n\n/**\n * A collection of Unicode sequences for various characters and emoji.\n *\n * - More explicit than using the sequences directly in code.\n * - Source code should be limited to ASCII.\n * - Less chance of typos.\n */\nconst UTFSequence: {|\n BOM: string,\n BULLET: string,\n BULLET_SP: string,\n MDASH: string,\n MDASH_SP: string,\n MIDDOT: string,\n MIDDOT_KATAKANA: string,\n MIDDOT_SP: string,\n NBSP: string,\n NDASH: string,\n NDASH_SP: string,\n NEWLINE: string,\n PIZZA: string,\n TRIANGLE_LEFT: string,\n TRIANGLE_RIGHT: string,\n|} = deepFreezeAndThrowOnMutationInDev({\n BOM: '\\ufeff', // byte order mark\n BULLET: '\\u2022', // bullet: •\n BULLET_SP: '\\u00A0\\u2022\\u00A0', //  • \n MIDDOT: '\\u00B7', // normal middle dot: ·\n MIDDOT_SP: '\\u00A0\\u00B7\\u00A0', //  · \n MIDDOT_KATAKANA: '\\u30FB', // katakana middle dot\n MDASH: '\\u2014', // em dash: —\n MDASH_SP: '\\u00A0\\u2014\\u00A0', //  — \n NDASH: '\\u2013', // en dash: –\n NDASH_SP: '\\u00A0\\u2013\\u00A0', //  – \n NEWLINE: '\\u000A',\n NBSP: '\\u00A0', // non-breaking space:  \n PIZZA: '\\uD83C\\uDF55',\n TRIANGLE_LEFT: '\\u25c0', // black left-pointing triangle\n TRIANGLE_RIGHT: '\\u25b6', // black right-pointing triangle\n});\n\nexport default UTFSequence;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n * @jsdoc\n */\n\nimport NativeVibration from './NativeVibration';\n\nconst Platform = require('../Utilities/Platform');\n\n/**\n * Vibration API\n *\n * See https://reactnative.dev/docs/vibration\n */\n\nlet _vibrating: boolean = false;\nlet _id: number = 0; // _id is necessary to prevent race condition.\nconst _default_vibration_length = 400;\n\nfunction vibrateByPattern(pattern: Array, repeat: boolean = false) {\n if (_vibrating) {\n return;\n }\n _vibrating = true;\n if (pattern[0] === 0) {\n NativeVibration.vibrate(_default_vibration_length);\n // $FlowFixMe[reassign-const]\n pattern = pattern.slice(1);\n }\n if (pattern.length === 0) {\n _vibrating = false;\n return;\n }\n setTimeout(() => vibrateScheduler(++_id, pattern, repeat, 1), pattern[0]);\n}\n\nfunction vibrateScheduler(\n id: number,\n pattern: Array,\n repeat: boolean,\n nextIndex: number,\n) {\n if (!_vibrating || id !== _id) {\n return;\n }\n NativeVibration.vibrate(_default_vibration_length);\n if (nextIndex >= pattern.length) {\n if (repeat) {\n // $FlowFixMe[reassign-const]\n nextIndex = 0;\n } else {\n _vibrating = false;\n return;\n }\n }\n setTimeout(\n () => vibrateScheduler(id, pattern, repeat, nextIndex + 1),\n pattern[nextIndex],\n );\n}\n\nconst Vibration = {\n /**\n * Trigger a vibration with specified `pattern`.\n *\n * See https://reactnative.dev/docs/vibration#vibrate\n */\n vibrate: function (\n pattern: number | Array = _default_vibration_length,\n repeat: boolean = false,\n ) {\n if (Platform.OS === 'android') {\n if (typeof pattern === 'number') {\n NativeVibration.vibrate(pattern);\n } else if (Array.isArray(pattern)) {\n NativeVibration.vibrateByPattern(pattern, repeat ? 0 : -1);\n } else {\n throw new Error('Vibration pattern should be a number or array');\n }\n } else {\n if (_vibrating) {\n return;\n }\n if (typeof pattern === 'number') {\n NativeVibration.vibrate(pattern);\n } else if (Array.isArray(pattern)) {\n vibrateByPattern(pattern, repeat);\n } else {\n throw new Error('Vibration pattern should be a number or array');\n }\n }\n },\n /**\n * Stop vibration\n *\n * See https://reactnative.dev/docs/vibration#cancel\n */\n cancel: function () {\n if (Platform.OS === 'ios') {\n _vibrating = false;\n } else {\n NativeVibration.cancel();\n }\n },\n};\n\nmodule.exports = Vibration;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {||};\n +vibrate: (pattern: number) => void;\n\n // Android only\n +vibrateByPattern: (pattern: Array, repeat: number) => void;\n +cancel: () => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('Vibration'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {IgnorePattern} from '../LogBox/Data/LogBoxData';\n\nconst LogBox = require('../LogBox/LogBox').default;\nconst React = require('react');\n\ntype Props = $ReadOnly<{||}>;\n\nlet YellowBox;\nif (__DEV__) {\n YellowBox = class extends React.Component {\n static ignoreWarnings(patterns: $ReadOnlyArray): void {\n console.warn(\n 'YellowBox has been replaced with LogBox. Please call LogBox.ignoreLogs() instead.',\n );\n\n LogBox.ignoreLogs(patterns);\n }\n\n static install(): void {\n console.warn(\n 'YellowBox has been replaced with LogBox. Please call LogBox.install() instead.',\n );\n LogBox.install();\n }\n\n static uninstall(): void {\n console.warn(\n 'YellowBox has been replaced with LogBox. Please call LogBox.uninstall() instead.',\n );\n LogBox.uninstall();\n }\n\n render(): React.Node {\n return null;\n }\n };\n} else {\n YellowBox = class extends React.Component {\n static ignoreWarnings(patterns: $ReadOnlyArray): void {\n // Do nothing.\n }\n\n static install(): void {\n // Do nothing.\n }\n\n static uninstall(): void {\n // Do nothing.\n }\n\n render(): React.Node {\n return null;\n }\n };\n}\n\n// $FlowFixMe[method-unbinding]\nmodule.exports = (YellowBox: Class> & {\n ignoreWarnings($ReadOnlyArray): void,\n install(): void,\n uninstall(): void,\n ...\n});\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {ColorValue} from './StyleSheet';\n\nexport type DynamicColorIOSTuple = {\n light: ColorValue,\n dark: ColorValue,\n highContrastLight?: ColorValue,\n highContrastDark?: ColorValue,\n};\n\nexport const DynamicColorIOS = (tuple: DynamicColorIOSTuple): ColorValue => {\n throw new Error('DynamicColorIOS is not available on this platform.');\n};\n","/**\n * Sample React Native App\n * https://github.com/facebook/react-native\n *\n * @format\n */\n\nimport React from 'react';\nimport type {PropsWithChildren} from 'react';\nimport {\n SafeAreaView,\n ScrollView,\n StatusBar,\n StyleSheet,\n Text,\n useColorScheme,\n View,\n} from 'react-native';\n\nimport {\n Colors,\n DebugInstructions,\n Header,\n LearnMoreLinks,\n ReloadInstructions,\n} from 'react-native/Libraries/NewAppScreen';\n\ntype SectionProps = PropsWithChildren<{\n title: string;\n}>;\n\nfunction Section({children, title}: SectionProps): JSX.Element {\n const isDarkMode = useColorScheme() === 'dark';\n return (\n \n \n {title}\n \n \n {children}\n \n \n );\n}\n\nfunction App(): JSX.Element {\n const isDarkMode = useColorScheme() === 'dark';\n\n const backgroundStyle = {\n backgroundColor: isDarkMode ? Colors.darker : Colors.lighter,\n };\n\n return (\n \n \n \n
\n \n
\n Edit App.tsx to change this\n screen and then come back to see your edits.\n
\n
\n \n
\n
\n \n
\n
\n Read the docs to discover what to do next:\n
\n \n \n \n \n );\n}\n\nconst styles = StyleSheet.create({\n sectionContainer: {\n marginTop: 32,\n paddingHorizontal: 24,\n },\n sectionTitle: {\n fontSize: 24,\n fontWeight: '600',\n },\n sectionDescription: {\n marginTop: 8,\n fontSize: 18,\n fontWeight: '400',\n },\n highlight: {\n fontWeight: '700',\n },\n});\n\nexport default App;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport Colors from './components/Colors';\nimport DebugInstructions from './components/DebugInstructions';\nimport Header from './components/Header';\nimport HermesBadge from './components/HermesBadge';\nimport LearnMoreLinks from './components/LearnMoreLinks';\nimport ReloadInstructions from './components/ReloadInstructions';\n\nexport {\n Colors,\n Header,\n HermesBadge,\n LearnMoreLinks,\n DebugInstructions,\n ReloadInstructions,\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nexport default {\n primary: '#1292B4',\n white: '#FFF',\n lighter: '#F3F3F3',\n light: '#DAE1E7',\n dark: '#444',\n darker: '#222',\n black: '#000',\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {Node} from 'react';\n\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Text from '../../Text/Text';\nimport Platform from '../../Utilities/Platform';\nimport React from 'react';\n\nconst styles = StyleSheet.create({\n highlight: {\n fontWeight: '700',\n },\n});\n\nconst DebugInstructions: () => Node = Platform.select({\n ios: () => (\n \n Press Cmd + D in the simulator or{' '}\n Shake your device to open the React\n Native debug menu.\n \n ),\n default: () => (\n \n Press Cmd or Ctrl + M or{' '}\n Shake your device to open the React\n Native debug menu.\n \n ),\n});\n\nexport default DebugInstructions;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {Node} from 'react';\n\nimport ImageBackground from '../../Image/ImageBackground';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Text from '../../Text/Text';\nimport useColorScheme from '../../Utilities/useColorScheme';\nimport Colors from './Colors';\nimport HermesBadge from './HermesBadge';\nimport React from 'react';\n\nconst Header = (): Node => {\n const isDarkMode = useColorScheme() === 'dark';\n return (\n \n \n \n Welcome to\n {'\\n'}\n React Native\n \n \n );\n};\n\nconst styles = StyleSheet.create({\n background: {\n paddingBottom: 40,\n paddingTop: 96,\n paddingHorizontal: 32,\n },\n logo: {\n opacity: 0.2,\n overflow: 'visible',\n resizeMode: 'cover',\n /*\n * These negative margins allow the image to be offset similarly across screen sizes and component sizes.\n *\n * The source logo.png image is 512x512px, so as such, these margins attempt to be relative to the\n * source image's size.\n */\n marginLeft: -128,\n marginBottom: -192,\n },\n text: {\n fontSize: 40,\n fontWeight: '700',\n textAlign: 'center',\n },\n});\n\nexport default Header;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {Node} from 'react';\n\nimport View from '../../Components/View/View';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Text from '../../Text/Text';\nimport useColorScheme from '../../Utilities/useColorScheme';\nimport Colors from './Colors';\nimport React from 'react';\n\nconst HermesBadge = (): Node => {\n const isDarkMode = useColorScheme() === 'dark';\n const version =\n global.HermesInternal?.getRuntimeProperties?.()['OSS Release Version'] ??\n '';\n return global.HermesInternal ? (\n \n \n {`Engine: Hermes ${version}`}\n \n \n ) : null;\n};\n\nconst styles = StyleSheet.create({\n badge: {\n position: 'absolute',\n top: 8,\n right: 12,\n },\n badgeText: {\n fontSize: 14,\n fontWeight: '600',\n textAlign: 'right',\n },\n});\n\nexport default HermesBadge;\n","","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nmodule.exports = require('@react-native/assets-registry/registry');\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {Node} from 'react';\n\nimport TouchableOpacity from '../../Components/Touchable/TouchableOpacity';\nimport View from '../../Components/View/View';\nimport openURLInBrowser from '../../Core/Devtools/openURLInBrowser';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Text from '../../Text/Text';\nimport useColorScheme from '../../Utilities/useColorScheme';\nimport Colors from './Colors';\nimport React, {Fragment} from 'react';\n\nconst links = [\n {\n id: 1,\n title: 'The Basics',\n link: 'https://reactnative.dev/docs/tutorial',\n description: 'Explains a Hello World for React Native.',\n },\n {\n id: 2,\n title: 'Style',\n link: 'https://reactnative.dev/docs/style',\n description:\n 'Covers how to use the prop named style which controls the visuals.',\n },\n {\n id: 3,\n title: 'Layout',\n link: 'https://reactnative.dev/docs/flexbox',\n description: 'React Native uses flexbox for layout, learn how it works.',\n },\n {\n id: 4,\n title: 'Components',\n link: 'https://reactnative.dev/docs/components-and-apis',\n description: 'The full list of components and APIs inside React Native.',\n },\n {\n id: 5,\n title: 'Navigation',\n link: 'https://reactnative.dev/docs/navigation',\n description:\n 'How to handle moving between screens inside your application.',\n },\n {\n id: 6,\n title: 'Networking',\n link: 'https://reactnative.dev/docs/network',\n description: 'How to use the Fetch API in React Native.',\n },\n {\n id: 7,\n title: 'Help',\n link: 'https://reactnative.dev/help',\n description:\n 'Need more help? There are many other React Native developers who may have the answer.',\n },\n {\n id: 8,\n title: 'Follow us on Twitter',\n link: 'https://twitter.com/reactnative',\n description:\n 'Stay in touch with the community, join in on Q&As and more by following React Native on Twitter.',\n },\n];\n\nconst LinkList = (): Node => {\n const isDarkMode = useColorScheme() === 'dark';\n return (\n \n {links.map(({id, title, link, description}) => (\n \n \n openURLInBrowser(link)}\n style={styles.linkContainer}>\n {title}\n \n {description}\n \n \n \n ))}\n \n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n marginTop: 32,\n paddingHorizontal: 24,\n },\n linkContainer: {\n flexWrap: 'wrap',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingVertical: 8,\n },\n link: {\n flex: 2,\n fontSize: 18,\n fontWeight: '400',\n color: Colors.primary,\n },\n description: {\n flex: 3,\n paddingVertical: 16,\n fontWeight: '400',\n fontSize: 18,\n },\n separator: {\n height: StyleSheet.hairlineWidth,\n },\n});\n\nexport default LinkList;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nconst getDevServer = require('./getDevServer');\n\nfunction openURLInBrowser(url: string) {\n // $FlowFixMe[unused-promise]\n fetch(getDevServer().url + 'open-url', {\n method: 'POST',\n body: JSON.stringify({url}),\n });\n}\n\nmodule.exports = openURLInBrowser;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport NativeSourceCode from '../../NativeModules/specs/NativeSourceCode';\n\nlet _cachedDevServerURL: ?string;\nlet _cachedFullBundleURL: ?string;\nconst FALLBACK = 'http://localhost:8081/';\n\ntype DevServerInfo = {\n url: string,\n fullBundleUrl: ?string,\n bundleLoadedFromServer: boolean,\n ...\n};\n\n/**\n * Many RN development tools rely on the development server (packager) running\n * @return URL to packager with trailing slash\n */\nfunction getDevServer(): DevServerInfo {\n if (_cachedDevServerURL === undefined) {\n const scriptUrl = NativeSourceCode.getConstants().scriptURL;\n const match = scriptUrl.match(/^https?:\\/\\/.*?\\//);\n _cachedDevServerURL = match ? match[0] : null;\n _cachedFullBundleURL = match ? scriptUrl : null;\n }\n\n return {\n url: _cachedDevServerURL ?? FALLBACK,\n fullBundleUrl: _cachedFullBundleURL,\n bundleLoadedFromServer: _cachedDevServerURL !== null,\n };\n}\n\nmodule.exports = getDevServer;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {Node} from 'react';\n\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Text from '../../Text/Text';\nimport Platform from '../../Utilities/Platform';\nimport React from 'react';\n\nconst styles = StyleSheet.create({\n highlight: {\n fontWeight: '700',\n },\n});\n\nconst ReloadInstructions: () => Node = Platform.select({\n ios: () => (\n \n Press Cmd + R in the simulator to\n reload your app's code.\n \n ),\n default: () => (\n \n Double tap R on your keyboard to\n reload your app's code.\n \n ),\n});\n\nexport default ReloadInstructions;\n"],"x_facebook_sources":[[{"names":["","global.$RefreshReg$","global.$RefreshSig$","","clear","define","metroRequire","initializingModuleIds.slice.map$argument_0","shouldPrintRequireCycle","isIgnored","regExps.some$argument_0","modules.every$argument_0","metroImportDefault","metroImportAll","fallbackRequireContext","fallbackRequireResolveWeak","guardedLoadModule","unpackModuleId","packModuleId","registerSegment","moduleIds.forEach$argument_0","loadModuleImplementation","unknownModuleError","metroRequire.Systrace.beginEvent","metroRequire.Systrace.endEvent","metroRequire.getModules","createHotReloadingObject","hot.accept","hot.dispose","metroHotUpdateModule","topologicalSort$argument_1","topologicalSort$argument_2","setTimeout$argument_0","topologicalSort","traverseDependentNodes","dependentNodes.forEach$argument_0","roots.forEach$argument_0","runUpdatedModule","performFullRefresh","isReactRefreshBoundary","shouldInvalidateReactRefreshBoundary","getRefreshBoundarySignature","registerExportsForReactRefresh","requireSystrace","requireRefresh"],"mappings":"AAA;wBC8B,QD;wBEC,MC,cH;AIE;CJO;AKK;CL2C;AMC;aCuB,6DD;CNe;AQI;oBCM;mCCC,+BD,CD;uBGG,8BH;CRC;AYC;CZoB;AaE;CbkC;uBcM;CdS;2BeG;CfO;AgBE;ChBe;AiBG;CjBO;AkBE;ClBE;AmBI;sBCgB;KDI;CnBE;AqBC;8BpB+C;SoBE;CrBmD;AsBC;CtBQ;gBuBI,QvB;cwBC,QxB;4ByBG;GzBE;iC0BG;cCK;ODG;eEC;OFE;G1BG;+B6BE;QC+C;SD6C;QEC,gBF;yCG0G;SHI;G7BG;0BiCC;ICI;6BCc;ODE;KDG;kBGC;KHE;GjCE;2BqCC;GrC8D;6BsCC;GtCoB;+BuCG;GvC0B;6CwCC;GxCgB;oCyCG;GzCqB;uC0CC;G1CiB;wB2CU;G3CK;uB4CC;G5CK"}],[{"names":["","","inspect","stylizeNoColor","arrayToHash","array.forEach$argument_0","formatValue","keys.map$argument_0","formatPrimitive","formatError","formatArray","keys.forEach$argument_0","formatProperty","str.split.map$argument_0","reduceToSingleString","output.reduce$argument_0","isArray","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isRegExp","isObject","isDate","isError","isFunction","objectToString","hasOwnProperty","getNativeLogFunction","Array.prototype.map.call$argument_1","repeat","Array.apply.map$argument_0","consoleTablePolyfill","columns.forEach$argument_0","joinRow","row.map$argument_0","columnWidths.map$argument_0","groupFormat","consoleGroupPolyfill","consoleGroupCollapsedPolyfill","consoleGroupEndPolyfill","consoleAssertPolyfill","Object.keys.forEach$argument_0","methodName","forEach$argument_0","stub","global.console.assert"],"mappings":"AAA;iBCiB;ECwB;GDO;EEE;GFE;EGE;kBCG;KDE;GHG;EKE;wBC2F;ODS;GLM;EOE;GPgB;EQE;GRE;ESE;iBCkB;KDM;GTE;EWE;mBC4B;eDE;qBCQ;iBDE;GX0B;EaE;+BCE;KDI;Gbc;EeI;GfE;EgBE;GhBE;EiBE;GjBE;EkBE;GlBE;EmBE;GnBE;EoBE;GpBE;EqBE;GrBE;EsBE;GtBE;EuBE;GvBE;EwBE;GxBE;EyBE;GzBE;E0BE;G1BK;E2BE;G3BE;E4BE;G5BE;E6BE;G7BE;CDG;A+BmB;S9BC;yB+BM;S/BE;G8BmC;C/BC;AiCE;yCCC;GDE;CjCC;AmCE;kBCwB;GDQ;EEI;wBCC;KDG;GFG;oCIE;GJE;CnCc;AwCQ;CxCG;AyCE;CzCG;A0CE;C1CG;A2CE;C3CG;A4CE;C5CI;iC6CmC;8BCG;SDG;K7CE;gE+CK;8BDE;SCE;K/CE;EgDG,kBhD;IiDU;KjDI"}],[{"names":["","onError","ErrorUtils.setGlobalHandler","ErrorUtils.getGlobalHandler","ErrorUtils.reportError","ErrorUtils.reportFatalError","ErrorUtils.applyWithGuard","ErrorUtils.applyWithGuardIfNeeded","ErrorUtils.inGuard","ErrorUtils.guard","guarded"],"mappings":"AAA;mCCqB;CDK;EEW;GFE;EGC;GHE;EIC;GJE;EKC;GLG;EMC;GNsB;EOC;GPe;EQC;GRE;ESC;ICc;KDQ;GTG"}],[{"names":["","","entries","values"],"mappings":"AAA;CCW;qBCU;KDa;oBEQ;KFa;CDE"}],[{"names":["","AppRegistry.registerComponent$argument_1"],"mappings":"AAA;uCCQ,SD"}],[{"names":["","module.exports.get__AccessibilityInfo","module.exports.get__ActivityIndicator","module.exports.get__Button","module.exports.get__DrawerLayoutAndroid","module.exports.get__FlatList","module.exports.get__Image","module.exports.get__ImageBackground","module.exports.get__InputAccessoryView","module.exports.get__KeyboardAvoidingView","module.exports.get__Modal","module.exports.get__Pressable","module.exports.get__ProgressBarAndroid","module.exports.get__RefreshControl","module.exports.get__SafeAreaView","module.exports.get__ScrollView","module.exports.get__SectionList","module.exports.get__StatusBar","module.exports.get__Switch","module.exports.get__Text","module.exports.get__TextInput","module.exports.get__Touchable","module.exports.get__TouchableHighlight","module.exports.get__TouchableNativeFeedback","module.exports.get__TouchableOpacity","module.exports.get__TouchableWithoutFeedback","module.exports.get__View","module.exports.get__VirtualizedList","module.exports.get__VirtualizedSectionList","module.exports.get__ActionSheetIOS","module.exports.get__Alert","module.exports.get__Animated","module.exports.get__Appearance","module.exports.get__AppRegistry","module.exports.get__AppState","module.exports.get__BackHandler","module.exports.get__Clipboard","module.exports.get__DeviceInfo","module.exports.get__DevSettings","module.exports.get__Dimensions","module.exports.get__Easing","module.exports.get__findNodeHandle","module.exports.get__I18nManager","module.exports.get__InteractionManager","module.exports.get__Keyboard","module.exports.get__LayoutAnimation","module.exports.get__Linking","module.exports.get__LogBox","module.exports.get__NativeDialogManagerAndroid","module.exports.get__NativeEventEmitter","module.exports.get__Networking","module.exports.get__PanResponder","module.exports.get__PermissionsAndroid","module.exports.get__PixelRatio","module.exports.get__PushNotificationIOS","module.exports.get__Settings","module.exports.get__Share","module.exports.get__StyleSheet","module.exports.get__Systrace","module.exports.get__ToastAndroid","module.exports.get__TurboModuleRegistry","module.exports.get__UIManager","module.exports.get__unstable_batchedUpdates","module.exports.get__useAnimatedValue","module.exports.get__useColorScheme","module.exports.get__useWindowDimensions","module.exports.get__UTFSequence","module.exports.get__Vibration","module.exports.get__YellowBox","module.exports.get__DeviceEventEmitter","module.exports.get__DynamicColorIOS","module.exports.get__NativeAppEventEmitter","module.exports.get__NativeModules","module.exports.get__Platform","module.exports.get__PlatformColor","module.exports.get__processColor","module.exports.get__requireNativeComponent","module.exports.get__RootTagContext","module.exports.get__unstable_enableLogBox","","module.exports.get__ColorPropType","module.exports.get__EdgeInsetsPropType","module.exports.get__PointPropType","module.exports.get__ViewPropTypes","Object.defineProperty$argument_2.get"],"mappings":"AAA;ECuG;GDG;EEC;GFG;EGC;GHE;EIE;GJE;EKC;GLE;EMC;GNE;EOC;GPE;EQC;GRE;ESC;GTG;EUC;GVE;EWC;GXE;EYE;GZQ;EaC;GbE;EcC;GdE;EeC;GfE;EgBC;GhBE;EiBC;GjBE;EkBC;GlBE;EmBC;GnBE;EoBC;GpBE;EqBC;GrBE;EsBC;GtBE;EuBC;GvBE;EwBC;GxBE;EyBC;GzBE;E0BC;G1BE;E2BC;G3BE;E4BC;G5BE;E6BG;G7BE;E8BC;G9BE;E+BG;G/BG;EgCC;GhCE;EiCC;GjCE;EkCC;GlCE;EmCC;GnCE;EoCC;GpCQ;EqCC;GrCE;EsCC;GtCE;EuCC;GvCE;EwCC;GxCE;EyCC;GzCE;E0CC;G1CE;E2CC;G3CE;E4CC;G5CE;E6CC;G7CE;E8CC;G9CE;E+CC;G/CE;EgDC;GhDG;EiDC;GjDE;EkDC;GlDE;EmDC;GnDE;EoDC;GpDE;EqDC;GrDE;EsDC;GtDQ;EuDC;GvDE;EwDC;GxDE;EyDC;GzDE;E0DC;G1DE;E2DE;G3DE;E4DC;G5DE;E6DC;G7DE;E8DC;G9DM;E+DC;G/DE;EgEC;GhEE;EiEC;GjEE;EkEC;GlEE;EmEC;GnEE;EoEC;GpEE;EqEG;GrEE;EsEC;GtEG;EuEC;GvEE;EwEC;GxEE;EyEC;GzEE;E0EC;G1EG;E2EC;G3EE;E4EC;G5EI;E6EC;G7EE;E8EC;WCC;ODG;G9EC;EgFE;GhFS;EiFC;GjFS;EkFC;GlFS;EmFC;GnFS;IoFU;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFQ;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFQ;KpFO;IoFQ;KpFO;IoFQ;KpFO;IoFQ;KpFQ;IoFQ;KpFO;IoFQ;KpFO;IoFQ;KpFO"}],[{"names":["","isBoldTextEnabled","Promise$argument_0","isGrayscaleEnabled","isInvertColorsEnabled","isReduceMotionEnabled","prefersCrossFadeTransitions","isReduceTransparencyEnabled","isScreenReaderEnabled","isAccessibilityServiceEnabled","addEventListener","remove","setAccessibilityFocus","sendAccessibilityEvent","announceForAccessibility","announceForAccessibilityWithOptions","getRecommendedTimeoutMillis"],"mappings":"AAA;ECqF;yBCI;ODS;GDE;EGU;yBDI;OCS;GHE;EIU;yBFI;OES;GJE;EKU;uBHC;KGiB;GLC;EMU;uBJC;KIgB;GNC;EOU;yBLI;OKS;GPE;EQU;uBNC;KMiB;GRC;ESY;uBPC;KOa;GTC;EUoC;SCO,iBD;GVG;EYO;GZE;EaK;GbU;EcO;GdM;EeQ;GfgB;EgBO;yBdE;OcS;GhBI"}],[{"names":["_interopRequireDefault",""],"mappings":"AAA;CCI"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","EventEmitter","addListener","registration.remove","emit","removeAllListeners","listenerCount","allocate"],"mappings":"AAA;eC8D;ECS;MCiB;ODE;GDI;EGS;GHY;EIK;GJQ;EKK;GLG;CDC;AOE;CPc"}],[{"names":["","_toConsumableArray"],"mappings":"AAA;ACI;CDE"}],[{"names":["","_arrayWithoutHoles"],"mappings":"AAA;ACC;CDE"}],[{"names":["_arrayLikeToArray",""],"mappings":"AAA;CCI"}],[{"names":["_iterableToArray",""],"mappings":"AAA;CCE"}],[{"names":["","_unsupportedIterableToArray"],"mappings":"AAA;ACC;CDO"}],[{"names":["_nonIterableSpread",""],"mappings":"AAA;CCE"}],[{"names":["_classCallCheck",""],"mappings":"AAA;CCI"}],[{"names":["","_defineProperties","_createClass"],"mappings":"AAA;ACC;CDQ;AEC;CFO"}],[{"names":["","_toPropertyKey"],"mappings":"AAA;ACE;CDG"}],[{"names":["","_toPrimitive"],"mappings":"AAA;ACC;CDS"}],[{"names":["_typeof","",""],"mappings":"AAA;yGCG;GDE,GC;GDE;CEC"}],[{"names":["","get__Version","get__constants","get__isTesting","get__isTV","select"],"mappings":"AAA;ECuB;GDG;EEE;GFyB;EGE;GHM;EIE;GJG;UKC;oBLQ"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","requireModule","get","getEnforcing"],"mappings":"AAA;ACkB;CDgB;OEE;CFE;OGE;CHQ"}],[{"names":["","invariant","format.replace$argument_1"],"mappings":"AAA;gBCoB;8BCkB,uCD;CDQ"}],[{"names":["","genModule","methods.forEach$argument_0","module.getConstants","loadModule","genMethod","promiseMethodWrapper","Promise$argument_0","BatchedBridge.enqueueNativeCall$argument_3","BatchedBridge.enqueueNativeCall$argument_4","nonPromiseMethodWrapper","arrayContains","updateErrorWithErrorData","forEach$argument_0","defineLazyObjectProperty$argument_2.get"],"mappings":"AAA;AC2B;oBC2B;KDW;0BEK,oCF;CDY;AIK;CJQ;AKE;SCG;yBCK;UCK,qBD;UEC;aFM;ODE;KDC;SKE;KLkC;CLK;AWE;CXE;AYE;CZO;Iac;eCc,qCD;KbG"}],[{"names":["","_slicedToArray"],"mappings":"AAA;ACI;CDE"}],[{"names":["_arrayWithHoles",""],"mappings":"AAA;CCE"}],[{"names":["_iterableToArrayLimit",""],"mappings":"AAA;CC0B"}],[{"names":["_nonIterableRest",""],"mappings":"AAA;CCE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","MessageQueue","constructor","spy","prototype.__spy","callFunctionReturnFlushedQueue","__guard$argument_0","invokeCallbackAndReturnFlushedQueue","flushedQueue","getEventLoopRunningTime","registerCallableModule","_lazyCallableModules.name","registerLazyCallableModule","getCallableModule","callNativeSyncHook","processCallbacks","_successCallbacks.forEach$argument_0","enqueueNativeCall","isValidArgument","replacer","createDebugLookup","setReactNativeMicrotasksCallback","__guard","__shouldPauseOnThrow","__callReactNativeMicrotasks","__callFunction","__invokeCallback"],"mappings":"AAA;ACwC;ECgB;GD4B;EEM;qCCE;ODM;GFM;EIE;iBCK;KDE;GJG;EME;iBDI;KCE;GNG;EOE;iBFC;KEE;GPK;EQE;GRE;ESE;sCCC,YD;GTC;EWE;sCDG;KCQ;GXC;EYE;GZG;EaE;GbkB;EcE;yCCe;WDK;Gd6B;EgBE;8BCiB;OD6B;uBEK;OFS;GhByC;EmBE;GnBS;EoBK;GpBE;EqBM;GrBU;EsBO;GtBO;EuBE;GvBM;EwBE;GxBiC;EyBE;GzB+C;CDC"}],[{"names":["","isEnabled","setEnabled","beginEvent","endEvent","beginAsyncEvent","endAsyncEvent","counterEvent"],"mappings":"AAA;OCgC;CDI;OEQ,gDF;OGM;CHM;OIK;CJI;OKO;CLiB;OMM;CNe;OOK;CPO"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","createStringifySafeWithLimits","replacer","stringifySafe"],"mappings":"AAA;OCgB;ECe;GD6C;SEE;GFgC;CDC"}],[{"names":["","defineLazyObjectProperty","getValue","setValue"],"mappings":"AAA;ACe;ECgB;GDc;EEC;GFS;CDQ"}],[{"names":["","legacySendAccessibilityEvent"],"mappings":"AAA;ACgB;CDgB"}],[{"names":["","isFabricReactTag","measure","measureInWindow","measureLayout","measureLayoutRelativeToParent","FabricUIManager.measure$argument_1","dispatchViewManagerCommand"],"mappings":"AAA;ACoC;CDG;EEU;GF0B;EGE;GHwB;EIE;GJqC;EKE;UCoB;WDE;GLW;EOE;GPyB"}],[{"names":["","nullthrows"],"mappings":"AAA;ACE;CDO"}],[{"names":["","errorMessageForMethod","module.exports.getViewManagerConfig","module.exports.hasViewManagerConfig","module.exports.getConstants","module.exports.getConstantsForViewManager","module.exports.getDefaultEventTypes","module.exports.lazilyLoadView","module.exports.createView","module.exports.updateView","module.exports.focus","module.exports.blur","module.exports.findSubviewIn","module.exports.dispatchViewManagerCommand","module.exports.measure","module.exports.measureInWindow","module.exports.viewIsDescendantOf","module.exports.measureLayout","module.exports.measureLayoutRelativeToParent","module.exports.setJSResponder","module.exports.clearJSResponder","module.exports.configureNextLayoutAnimation","module.exports.removeSubviewsFromContainerWithID","module.exports.replaceExistingNonRootView","module.exports.setChildren","module.exports.manageChildren","module.exports.setLayoutAnimationEnabledExperimental","module.exports.sendAccessibilityEvent","module.exports.showPopupMenu","module.exports.dismissPopupMenu"],"mappings":"AAA;8BCgB;4DDG;wBEG;GFO;wBGC;GHE;gBIC;GJG;8BKC;GLG;wBMC;GNG;kBOC;GPG;cQC;+DRK;cSC;sDTC;SUC;iDVC;QWC;gDXC;iBYC;kEZU;8BaC;+EbI;WcC;4DdU;mBeC;oEfG;sBgBC;uEhBI;iBiBC;kEjBU;iCkBC;yElBU;kBmBC;0DnBC;oBoBC,cpB;gCqBC;wErBK;qCsBC;6EtBC;8BuBC;sEvBC;ewBC;uDxBC;kByBC;mEzBO;yC0BG;G1BI;0B2BG;kE3BC;iB4BC;kE5BK;oB6BC;4D7BC"}],[{"names":["","unstable_hasComponent"],"mappings":"AAA;OCkB;CDW"}],[{"names":["","getConstants","getViewManagerConfig","UIManagerJS.createView","UIManagerJS.getConstants","UIManagerJS.getViewManagerConfig","UIManagerJS.hasViewManagerConfig","lazifyViewManagerConfig","defineLazyObjectProperty$argument_2.get","Object.keys.forEach$argument_0","NativeUIManager.getConstants.ViewManagerNames.forEach$argument_0"],"mappings":"AAA;ACyB;CDM;AEE;CF4C;EGO;GHa;EIC;GJE;EKC;GLE;EMC;GNE;AOU;WCK;2CCI;WDK;ODE;WCG;2CCK;WDK;ODE;CPG;sCSQ;GTE;0DUE;WFE,iEE;GVE;sCSI;aDM;SCO;GTG"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","getFabricUIManager"],"mappings":"AAA;OC8E;CDE"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","renderElement","findHostInstance_DEPRECATED","findNodeHandle","dispatchCommand","sendAccessibilityEvent","unmountComponentAtNodeAndRemoveContainer","unstable_batchedUpdates","isProfilingRenderer"],"mappings":"AAA;OCe;CDqB;OEE;CFM;OGE;CHM;OIE;CJoB;OKE;CLQ;OMM;CNM;OOE;CPS;OQE;CRE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","invokeGuardedCallbackImpl","reporter.onError","invokeGuardedCallback","invokeGuardedCallbackAndCatchFirstError","executeDispatch","executeDirectDispatch","functionThatReturnsTrue","functionThatReturnsFalse","SyntheticEvent","assign$argument_1.preventDefault","assign$argument_1.stopPropagation","assign$argument_1.persist","assign$argument_1.destructor","SyntheticEvent.Interface.currentTarget","SyntheticEvent.Interface.timeStamp","SyntheticEvent.extend","E","Class","createOrGetPooledEvent","releasePooledEvent","addEventPoolingTo","SyntheticEvent.extend$argument_0.touchHistory","isStartish","isMoveish","timestampForTouch","getTouchIdentifier","recordTouchStart","recordTouchMove","recordTouchEnd","ResponderTouchHistoryStore.instrument","ResponderTouchHistoryStore.recordTouchTrack","accumulate","accumulateInto","forEachAccumulated","changeResponder","getParent","traverseTwoPhase","getListener","accumulateDirectionalDispatches","accumulateDirectDispatchesSingle","accumulateTwoPhaseDispatchesSingleSkipTarget","accumulateTwoPhaseDispatchesSingle","ResponderEventPlugin._getResponder","ResponderEventPlugin.extractEvents","ResponderEventPlugin.injection.injectGlobalResponderHandler","recomputePluginOrdering","publishRegistrationName","getListeners","stateNode.canonical._eventListeners.mangledImperativeRegistrationName.forEach$argument_0","listenerFnWrapper","listeners.push$argument_0","accumulateListenersAndInstances","accumulateDirectionalDispatches$1","traverseTwoPhase$1","accumulateTwoPhaseDispatchesSingle$1","accumulateDirectDispatchesSingle$1","injectedNamesToPlugins$jscomp$inline_223.ReactNativeBridgeEventPlugin.extractEvents","getInstanceFromInstance","getFiberCurrentPropsFromNode","getNodeFromInstance","ResponderEventPlugin.injection.injectGlobalResponderHandler$argument_0.onChange","getIteratorFn","getComponentNameFromType","getComponentNameFromFiber","getNearestMountedFiber","assertIsMounted","findCurrentFiberUsingSlowPath","findCurrentHostFiber","findCurrentHostFiberImpl","mountSafeCallback_NOT_REALLY_SAFE","","defaultDiffer","restoreDeletedValuesInNestedArray","diffNestedProperty","addNestedProperty","clearNestedProperty","diffProperties","batchedUpdatesImpl","batchedUpdates","executeDispatchesAndReleaseTopLevel","dispatchEvent","batchedUpdates$argument_0","onCommitRoot","clz32Fallback","getHighestPriorityLanes","getNextLanes","computeExpirationTime","getLanesToRetrySynchronouslyOnError","claimNextTransitionLane","createLaneMap","markRootUpdated","markRootFinished","markRootEntangled","lanesToEventPriority","shim$1","ReactFabricHostComponent","_proto.blur","_proto.focus","_proto.measure","_proto.measureInWindow","_proto.measureLayout","_proto.setNativeProps","_proto.addEventListener_unstable","_proto.removeEventListener_unstable","optionsObj.filter$argument_0","createTextInstance","cloneHiddenInstance","describeComponentFrame","describeFunctionComponentFrame","createCursor","pop","push","getMaskedContext","isContextProvider","popContext","pushTopLevelContextObject","processChildContext","pushContextProvider","invalidateContextProvider","is","flushSyncCallbacks","popTreeContext","shallowEqual","describeFiber","resolveDefaultProps","resetContextDependencies","popProvider","scheduleContextWorkOnParentPath","prepareToReadContext","readContext","pushConcurrentUpdateQueue","enqueueConcurrentHookUpdate","markUpdateLaneFromFiberToRoot","initializeUpdateQueue","cloneUpdateQueue","createUpdate","enqueueUpdate","entangleTransitions","enqueueCapturedUpdate","processUpdateQueue","commitUpdateQueue","applyDerivedStateFromProps","classComponentUpdater.isMounted","classComponentUpdater.enqueueSetState","classComponentUpdater.enqueueReplaceState","classComponentUpdater.enqueueForceUpdate","checkShouldComponentUpdate","constructClassInstance","callComponentWillReceiveProps","mountClassInstance","coerceRef","current","throwOnInvalidObjectType","resolveLazy","ChildReconciler","deleteChild","deleteRemainingChildren","mapRemainingChildren","useFiber","placeChild","placeSingleChild","updateTextNode","updateElement","updatePortal","updateFragment","createChild","updateSlot","updateFromMap","reconcileChildrenArray","oldFiber.forEach$argument_0","reconcileChildrenIterator","reconcileChildFibers","requiredContext","pushHostContainer","popHostContainer","pushHostContext","popHostContext","findFirstSuspended","resetWorkInProgressVersions","throwInvalidHookError","areHookInputsEqual","renderWithHooks","mountWorkInProgressHook","updateWorkInProgressHook","basicStateReducer","updateReducer","rerenderReducer","updateMutableSource","updateSyncExternalStore","pushStoreConsistencyCheck","updateStoreInstance","subscribeToStore","subscribe$argument_0","checkIfSnapshotChanged","forceStoreRerender","mountState","pushEffect","updateRef","mountEffectImpl","updateEffectImpl","mountEffect","updateEffect","updateInsertionEffect","updateLayoutEffect","imperativeHandleEffect","updateImperativeHandle","mountDebugValue","updateCallback","updateMemo","updateDeferredValueImpl","startTransition","updateId","dispatchReducerAction","dispatchSetState","isRenderPhaseUpdate","enqueueRenderPhaseUpdate","entangleTransitionUpdate","HooksDispatcherOnMount.useCallback","HooksDispatcherOnMount.useImperativeHandle","HooksDispatcherOnMount.useLayoutEffect","HooksDispatcherOnMount.useInsertionEffect","HooksDispatcherOnMount.useMemo","HooksDispatcherOnMount.useReducer","HooksDispatcherOnMount.useRef","HooksDispatcherOnMount.useDeferredValue","HooksDispatcherOnMount.useTransition","HooksDispatcherOnMount.useMutableSource","HooksDispatcherOnMount.useSyncExternalStore","HooksDispatcherOnMount.useId","HooksDispatcherOnUpdate.useState","HooksDispatcherOnUpdate.useDeferredValue","HooksDispatcherOnUpdate.useTransition","HooksDispatcherOnRerender.useState","HooksDispatcherOnRerender.useDeferredValue","HooksDispatcherOnRerender.useTransition","createCapturedValueAtFiber","createCapturedValue","logCapturedError","setTimeout$argument_0","createRootErrorUpdate","lane.callback","createClassErrorUpdate","lane.payload","attachPingListener","reconcileChildren","updateForwardRef","updateMemoComponent","updateSimpleMemoComponent","updateOffscreenComponent","markRef","updateFunctionComponent","updateClassComponent","finishClassComponent","pushHostRootContext","mountSuspenseOffscreenState","updateSuspenseComponent","mountSuspensePrimaryChildren","retrySuspenseComponentWithoutHydrating","updateDehydratedSuspenseComponent","scheduleSuspenseWorkOnFiber","initSuspenseListRenderState","updateSuspenseListComponent","resetSuspendedCurrentOnMountInLegacyMode","bailoutOnAlreadyFinishedWork","attemptEarlyBailoutIfNoScheduledUpdate","hadNoMutationsEffects","appendAllChildren","appendAllChildrenToContainer","updateHostContainer","updateHostComponent$1","updateHostText$1","cutOffTailIfNeeded","bubbleProperties","completeWork","unwindWork","safelyDetachRef","safelyCallDestroy","commitBeforeMutationEffects","commitHookEffectListUnmount","commitHookEffectListMount","detachFiberAfterEffects","recursivelyTraverseDeletionEffects","commitDeletionEffectsOnFiber","attachSuspenseRetryListeners","wakeables.forEach$argument_0","recursivelyTraverseMutationEffects","commitMutationEffectsOnFiber","commitReconciliationEffects","commitLayoutEffects","requestEventTime","requestUpdateLane","scheduleUpdateOnFiber","ensureRootIsScheduled","performConcurrentWorkOnRoot","recoverFromConcurrentError","queueRecoverableErrors","isRenderConsistentWithExternalStores","markRootSuspended$1","performSyncWorkOnRoot","popRenderLanes","prepareFreshStack","handleError","pushDispatcher","renderDidSuspendDelayIfPossible","renderRootSync","workLoopSync","workLoopConcurrent","performUnitOfWork","completeUnitOfWork","commitRoot","commitRootImpl","scheduleCallback$1$argument_1","flushPassiveEffects","captureCommitPhaseErrorOnRoot","captureCommitPhaseError","pingSuspendedRoot","retryTimedOutBoundary","retryDehydratedSuspenseBoundary","resolveRetryWakeable","beginWork$1","scheduleCallback$1","FiberNode","createFiber","shouldConstruct","resolveLazyComponentTag","createWorkInProgress","createFiberFromTypeAndProps","createFiberFromFragment","createFiberFromOffscreen","createFiberFromText","createFiberFromPortal","FiberRootNode","createPortal","findHostInstance","updateContainer","emptyFindFiberByHostInstance","findNodeHandle","onRecoverableError","devToolsConfig$jscomp$inline_938.rendererConfig.getInspectorDataForViewTag","internals$jscomp$inline_1180.findHostInstanceByFiber","exports.createPortal","exports.dispatchCommand","exports.findHostInstance_DEPRECATED","exports.render","exports.sendAccessibilityEvent","exports.stopSurface","updateContainer$argument_3","exports.unmountComponentAtNode"],"mappings":"AAA;ACkB;CDO;aEM;KFG;AGE;CHI;AIC;CJuB;AKK;CLK;AMC;CNa;AOE;CPE;AQC;CRE;ASC;CTyB;kBUE;GVQ;mBWC;GXO;WYC;GZE;caE;GbO;iBcK;GdE;aeI;GfE;wBgBI;ECC,eD;EEC;GFE;ChBW;AmBE;CnBY;AoBC;CpBO;AqBC;CrBI;gBsBE;GtBE;AuBE;CvBE;AwBC;CxBE;AyBW;CzBE;A0BC;C1BI;A2BC;C3B4B;A4BC;C5BW;A6BC;C7BW;gB8BG;K9BE;sB+BC;K/BgC;AgCG;ChCY;AiCC;CjCY;AkCC;ClCE;AmCG;CnCS;AoCyD;CpCI;AqCC;CrCI;AsCC;CtCc;AuCC;CvCe;AwCC;CxCgB;AyCC;CzCM;A0CC;C1CI;mB2CE;K3CE;mB4CE;K5C0Q;oC6CG;O7CE;A8CK;C9C4D;A+CC;C/CO;AgDI;cCsC;gCCK;SDgB;2BEE;aFS;KDG;ChDM;AoDO;CpDyB;AqDC;CrDQ;AsDC;CtDW;AuDC;CvDS;AwDC;CxDa;qByDc;OzDuC;A0D8B;C1DE;+B2DC;C3DE;sB4DE;C5DI;Y6DE;G7DsB;A8DuB;C9DM;A+DC;C/D8C;AgEC;ChEuD;AiEC;CjEa;AkEC;ClEG;AmEC;CnE2E;AoEC;CpEG;AqEC;CrEQ;AsEC;SCC;GDM;CtEC;AwEK;CxEQ;AyEC;CzEqC;A0EC;C1EqD;A2EC;C3EgB;A4EC;C5EgB;A6EC;C7EoF;A8EC;C9EE;A+EE;C/EQ;AgFE;ChFkB;AiFC;iBCM;GDoC;CjFC;AmFY;CnFU;AoFI;CpFG;AqFG;CrFgD;AsFC;CtFwC;AuFC;CvFwC;AwFC;CxFG;AyFC;CzFK;A0FC;C1FG;A2FC;C3FO;A4FC;C5FkB;A6FC;C7FS;A8FE;C9FS;A+FC;C/FI;gCuEwB;EyBC;GzBU;gB0BE;G1BE;iB2BC;G3BE;mB4BC;G5BO;2B6BC;G7BO;yB8BC;G9BiB;0B+BC;G/BW;qCgCC;GhC0B;wCiCC;8CCO;ODK;GjCC;CvEE;A0GC;C1GiB;A2GG;C3GY;A4GC;C5GI;A6GC;C7GI;A8GI;C9GE;A+GC;C/GG;AgHC;ChHI;AiHK;CjHiB;AkHC;ClHG;AmHC;CnHG;AoHC;CpHO;AqHC;CrHc;AsHC;CtHS;AuHC;CvHkB;AwHC;CxHE;AyHK;CzHwB;A0HO;C1Ha;A2HG;C3HqB;A4HC;C5HqB;A6HC;C7HU;A8HK;C9HE;A+HC;C/HI;AgIC;ChIY;AiIC;CjIQ;AkIC;ClIkB;AmIE;CnII;AoIC;CpIO;AqIC;CrIY;AsIE;CtIQ;AuIC;CvIU;AwIC;CxIS;AyIC;CzIkB;A0IC;C1IS;A2IC;C3I4C;A4IC;C5I+H;A6IC;C7IqB;A8IE;C9Ie;a+IE;G/II;mBgJC;GhJW;uBiJC;GjJY;sBkJC;GlJW;AmJE;CnJe;AoJC;CpJyB;AqJC;CrJa;AsJC;CtJiC;AuJC;gBC+B;ODI;CvJgB;AyJC;CzJS;A0JC;C1JG;A2JC;ECC;GDO;EEC;GFM;EGC;GHO;EIC;GJK;EKC;GLc;EMC;GNK;EOC;GPU;EQC;GRmC;ESC;GTe;EUC;GVe;EWC;GX0D;EYC;GZgC;EaC;GbmD;EcC;uBCsF;ODE;GdE;EgBC;uBDuE;OCE;GhBE;EiBC;GjBqK;C3JE;A6KO;C7KM;A8KC;C9KM;A+KC;C/KI;AgLC;ChLiB;AiLC;CjLG;AkLE;ClLsB;AmLE;CnLI;AoLU;CpLI;AqLC;CrLK;AsLC;CtL2C;AuLC;CvLY;AwLC;CxL6B;AyLC;CzLE;A0LC;C1L6E;A2LC;C3LsB;A4LC,iC5L;A6LC;C7L+B;A8LC;C9LY;A+LC;C/LI;AgMC;mBCC;GDE;ChMC;AkMC;ClMS;AmMC;CnMG;AoMC;CpMmB;AqMC;CrMe;AsMC;CtME;AuMC;CvMS;AwMC;CxMc;AyMC;CzME;A0MC;C1ME;A2MC;C3ME;A4MC;C5ME;A6MC;MtIK;OsIE;MtIM;OsIE;C7ME;A8MC;C9MQ;A+MC,6B/M;AgNC;ChNY;AiNC;CjNa;AkNC;ClNY;AmNC;CnNa;AoNC;CpNE;AqNC;CrNkB;AsNC;CtNuC;AuNC;CvNM;AwNC;CxNO;AyNC;CzNQ;iB0NuB;K1NM;yB2NG;K3NQ;qB4NC;K5NE;wB6NC;K7NE;a8NC;K9NM;gB+NC;K/NmB;YgOC;KhOI;sBiOG;KjOE;mBkOC;KlOM;sBmOC,anO;0BoOC;KpOwB;WqOC;KrOO;csOc;KtOE;sBuOE;KvOG;mBwOC;KxOI;cyOiB;KzOE;sB0OE;K1OK;mB2OC;K3OI;A4OM;C5OiB;A6OC;C7OO;A8OQ;eCU;KDE;C9OE;AgPE;kBCK;GDG;ChPE;AkPC;mBCM;KDE;oBDC;KCE;qBDK;KCU;ClPE;AoPC;CpPc;AqPG;CrPU;AsPC;CtP4B;AuPC;CvPoD;AwPC;CxPgC;AyPC;CzPiD;A0PC;C1PO;A2PC;C3P8B;A4PC;C5PsM;A6PC;C7PuC;A8PC;C9PW;A+PE;C/PE;AgQC;ChQmI;AiQC;CjQS;AkQC;ClQkB;AmQC;CnQ4J;AoQC;CpQK;AqQC;CrQuB;AsQC;CtQsF;AuQC;CvQM;AwQC;CxQoB;AyQC;CzQyE;A0QC;C1QS;oB2QK;C3QoC;A4QC;C5QoC;sB6QC;C7QU;wB8QC;C9QwC;mB+QC;C/QY;AgRC;ChRuB;AiRC;CjRuB;AkRC;ClRoU;AmRC;CnRqD;AoRG;CpRU;AqRC;CrRM;AsRE;CtR2D;AuRC;CvRmB;AwRC;CxRa;AyRC;CzRe;A0RC;C1RQ;A2RC;C3RmG;A4RC;sBCO;KDI;C5RE;A8RC;C9RkB;A+RC;C/R+E;AgSC;ChSI;AiSC;CjSoH;AkS+B;ClSM;AmSC;CnSyB;AoSC;CpSoB;AqSC;CrSsE;AsSC;CtSoL;AuSC;CvSU;AwSC;CxSO;AySC;CzSiC;A0SC;C1SW;A2SC;C3S8B;A4SC;C5SG;A6SC;C7SuE;A8SC;C9SiL;A+SC;C/SI;AgTC;ChTW;AiTC;CjTwB;AkTC;ClTE;AmTC;CnTG;AoTC;CpTK;AqTC;CrTsC;AsTC;CtTiB;AuTC;uCC8B;KDG;CvTsD;AyTC;CzTgJ;A0TC;C1TQ;A2TC;C3T6C;A4TC;C5Te;A6TC;C7TY;A8TC;C9TK;A+TC;C/TkB;cgUE;ChUob;AiUC;CjUE;AkUC;ClUa;AmUC;CnUE;AoUC;CpUG;AqUC;CrUS;AsUC;CtUmC;AuUC;CvUyE;AwUC;CxUI;AyUC;CzUM;A0UC;C1UI;A2UC;C3Uc;A4UC;C5UmB;A6UC;C7UU;A8UC;C9UY;A+UC;C/U4D;AgVC;ChVE;AiVC;CjVY;AkVC;ClVE;qB8EC;C9EW;kCmVQ;OnVI;sCuEC;OvEI;2BoVkB;GpVG;uBqVwB;CrVO;0BsVC;CtVW;sCuVC;CvVW;iBwVG;CxVmC;iCyVC;CzVU;sB0VC;sCCG;KDE;C1VC;iC4VC;C5VE"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","DOMRect","get__x","set__x","get__y","set__y","get__width","set__width","get__height","set__height","fromRect"],"mappings":"AAA;eC0B;ECI;GDE;EEE;GFE;EGK;GHE;EIE;GJE;EKK;GLE;EME;GNE;EOK;GPE;EQE;GRE;ESK;GTM;CDC"}],[{"names":["","_inherits"],"mappings":"AAA;ACC;CDe"}],[{"names":["_setPrototypeOf",""],"mappings":"AAA;CCM"}],[{"names":["","_possibleConstructorReturn"],"mappings":"AAA;ACE;CDO"}],[{"names":["_assertThisInitialized",""],"mappings":"AAA;CCK"}],[{"names":["_getPrototypeOf",""],"mappings":"AAA;CCK"}],[{"names":["","castToNumber","DOMRectReadOnly","constructor","get__x","get__y","get__width","get__height","get__top","get__right","get__bottom","get__left","toJSON","fromRect","__getInternalX","__getInternalY","__getInternalWidth","__getInternalHeight","__setInternalX","__setInternalY","__setInternalWidth","__setInternalHeight"],"mappings":"AAA;ACyB;CDE;eEO;ECM;GDK;EEK;GFE;EGK;GHE;EIK;GJE;EKK;GLE;EMK;GNS;EOK;GPS;EQK;GRS;ESK;GTS;EUE;GVY;EWK;GXM;EYE;GZE;EaE;GbE;EcE;GdE;EeE;GfE;EgBE;GhBE;EiBE;GjBE;EkBE;GlBE;EmBE;GnBE;CFC"}],[{"names":["","global.performance.now"],"mappings":"AAA;6BC8B;KDG"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","","PerformanceMark","PerformanceMark#constructor","PerformanceMeasure","PerformanceMeasure#constructor","warnNoNativePerformance","Performance","get__memory","get__reactNativeStartupTiming","mark","clearMarks","measure","clearMeasures","now","getEntries","getEntriesByType","getEntriesByName"],"mappings":"AAA;IC2C,gBD;OEE;ECG;GDW;CFC;OIW;ECG;GDW;CJC;AME;CNK;eOO;ECI;GDyB;EEG;GFO;EGE;GHa;EIE;GJU;EKE;GLmE;EME;GNU;EOM;GPE;EQO;GRM;ESE;GTe;EUE;GVuB;CPC"}],[{"names":["","warnOnce"],"mappings":"AAA;ACqB;CDQ"}],[{"names":["","getCachedEventCounts","global.queueMicrotask$argument_0","EventCounts","get__size","entries","forEach","get","has","keys","values"],"mappings":"AAA;ACqB;wBCa;GDM;CDE;eGM;ECE;GDE;EEE;GFE;EGE;GHE;EIE;GJE;EKE;GLE;EME;GNE;EOE;GPE;CHC"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","PerformanceObserverEntryList","PerformanceObserverEntryList#constructor","PerformanceObserverEntryList#getEntries","PerformanceObserverEntryList#getEntriesByType","_entries.filter$argument_0","PerformanceObserverEntryList#getEntriesByName","onPerformanceEntry","entries.filter$argument_0","warnNoNativePerformanceObserver","applyDurationThresholds","Array.from.map$argument_0","Array.from.map.reduce$argument_0","PerformanceObserver","constructor","observe","options.entryTypes.map$argument_0","disconnect","_validateObserveOptions","union","difference","filter$argument_0"],"mappings":"AAA;OCsB;ECG;GDE;EEE;GFE;EGE;gCCC,iCD;GHC;EKE;kCDK,4BC;QDG,wDC;GLG;CDC;2BO8B;oECY;KDM;CPO;OSE;CTK;AUE;SCI,2BD;MEE,+DF;CVU;easB;ECI;GDE;EEE;+BCa,mBD;GFoD;EIE;GJiC;EKE;GLgC;CbI;AmBG;CnBa;AoBE;+BCC,cD;CpBC"}],[{"names":["","rawToPerformanceEntry","rawToPerformanceEntryType","performanceEntryTypeToRaw"],"mappings":"AAA;OC0B;CDoB;OEE;CFmB;OGE;CHiB"}],[{"names":["","PerformanceEventTiming","constructor"],"mappings":"AAA;OCc;ECK;GDiB;CDC"}],[{"names":["","PerformanceEntry","constructor","toJSON"],"mappings":"AAA;OCa;ECM;GDU;EEE;GFY;CDC"}],[{"names":["","MemoryInfo","constructor","get__jsHeapSizeLimit","get__totalJSHeapSize","get__usedJSHeapSize"],"mappings":"AAA;eCoB;ECK;GDM;EEK;GFE;EGK;GHE;EIK;GJE;CDC"}],[{"names":["","ReactNativeStartupTiming","constructor","get__startTime","get__endTime","get__executeJavaScriptBundleEntryPointStart","get__executeJavaScriptBundleEntryPointEnd"],"mappings":"AAA;eCiB;ECS;GDS;EEK;GFE;EGK;GHE;EIK;GJE;EKK;GLE;CDC"}],[{"names":["","handleError"],"mappings":"AAA;sBCqB;GDO"}],[{"names":["","SyntheticError","unstable_setExceptionDecorator","preprocessException","reportException","handleException","reactConsoleErrorHandler","args.map$argument_0","installConsoleErrorReporter"],"mappings":"AAA;ACe;CDE;AEiB;CFI;AGE;CHY;AIM;CJ2D;AKe;CLmB;AMI;WCqD,2DD;CNc;AQM;CRa"}],[{"names":["","_wrapNativeSuper","Wrapper"],"mappings":"AAA;ACI;ICW;KDE;CDY"}],[{"names":["_isNativeFunction",""],"mappings":"AAA;CCE"}],[{"names":["","_construct"],"mappings":"AAA;ACE;CDc"}],[{"names":["_isNativeReflectConstruct","Reflect.construct$argument_2",""],"mappings":"AAA;kECK,cD;CEK"}],[{"names":["","convertHermesStack","parseErrorStack","stacktraceParser.parse.map$argument_0"],"mappings":"AAA;ACiB;CDqB;AEE;6CCU;QDG;CFG"}],[{"names":["","parse","lines.reduce$argument_0","parseChrome","parseWinjs","parseGecko","parseJSC","parseNode"],"mappings":"AAA;ACU;sBCE;GDQ;CDC;AGI;CH6B;AII;CJc;AKK;CLwB;AMI;CNc;AOI;CPc"}],[{"names":["","isInternalBytecodeSourceUrl","parseLine","parseHermesStack"],"mappings":"AAA;AC2E;CDG;AEE;CFsC;iBGE;CHoB"}],[{"names":["","ExceptionsManager.reportFatalException","ExceptionsManager.reportSoftException","ExceptionsManager.updateExceptionMessage","ExceptionsManager.dismissRedbox","ExceptionsManager.reportException"],"mappings":"AAA;EC8D;GDM;EEC;GFM;EGC;GHM;EIC;GJK;EKC;GLU"}],[{"names":["","polyfillGlobal$argument_1"],"mappings":"AAA;4BCoC,2BD"}],[{"names":["","polyfillObjectProperty","polyfillGlobal"],"mappings":"AAA;AC2B;CDsB;AEE;CFE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","Promise.prototype._finally","then$argument_0","Promise.resolve.then$argument_0","then$argument_1"],"mappings":"AAA;4BCK;mBCC;qCCC;KDE;GDC,EG;qCDC;KCE;GHC;CDC"}],[{"names":["","noop","getThen","tryCallOne","tryCallTwo","Promise","Promise.prototype.then","safeThen","self.constructor$argument_0","handle","handleResolved","setImmediate$argument_0","resolve","reject","finale","Handler","doResolve","tryCallTwo$argument_1","tryCallTwo$argument_2"],"mappings":"AAA;ACI,kBD;AEqB;CFO;AGE;CHO;AIC;CJO;AKI;CLa;yBMK;CNO;AOE;8BCC;GDI;CPC;ASC;CTsB;AUE;eCC;GDgB;CVC;AYC;CZgC;AaE;CbO;AcC;CdW;AeE;CfI;AgBQ;2BCE;GDI,EE;GFI;ChBK"}],[{"names":["","valuePromise","Promise.resolve","Promise$argument_0","iterableToArray","Promise.all","res","val.then$argument_0","p.then$argument_0","onSettledFulfill","onSettledReject","mapAllSettled","Promise.allSettled","Promise.reject","Promise.race","iterableToArray.forEach$argument_0","Promise.prototype._catch","getAggregateError","promiseAny","resolveOnce","rejectionCheck","promises.forEach$argument_0"],"mappings":"AAA;ACiB;CDK;kBEC;yBCiB;ODE;CFI;sBIE;CJU;cKE;qBFG;IGG;mBCQ;WDE;mBEM;aFE;KHS;GEI;CLC;ASE;CTE;AUC;CVE;AWC;CXY;qBYC;CZE;iBaE;qBVC;GUE;CbC;ecE;qBXC;oCYC;KZE;GWC;CdC;6BgBI;ChBE;AiBE;CjBW;ckBE;qBfC;IgBK;KhBK;IiBE;KjBM;uBkBK;OlBE;GeE;ClBC"}],[{"names":["","hasNativeConstructor$argument_0","polyfillGlobal$argument_1"],"mappings":"AAA;4CCwB,eD;uCEU;GFQ"}],[{"names":["","isNativeFunction","hasNativeConstructor"],"mappings":"AAA;ACiB;CDE;AEM;CFG"}],[{"names":["","","define","wrap","tryCatch","Generator","GeneratorFunction","GeneratorFunctionPrototype","define$argument_2","defineIteratorMethods","forEach$argument_0","exports.isGeneratorFunction","exports.mark","exports.awrap","AsyncIterator","invoke","PromiseImpl.resolve.then$argument_0","PromiseImpl.resolve.then$argument_1","enqueue","callInvokeWithMethodAndArg","PromiseImpl$argument_0","exports.async","iter.next.then$argument_0","makeInvokeMethod","maybeInvokeDelegate","pushTryEntry","resetTryEntry","Context","exports.keys","next","values","doneResult","Context.prototype.reset","Context.prototype.stop","Context.prototype.dispatchException","handle","Context.prototype.abrupt","Context.prototype.complete","Context.prototype.finish","Context.prototype._catch","Context.prototype.delegateYield"],"mappings":"AAA;eCO;ECY;GDQ;aCK;KDE;EEG;GFW;EGa;GHM;EIe,uBJ;EKC,+BL;EMC,wCN;4COK;GPE;EQ6B;wCCC;gCFC;OEE;KDC;GRC;gCUE;GVQ;iBWE;GXS;kBYM;GZE;EaE;ICC;yDCU;WDE,EE;WFE;+CCG;SDM,EE;SFI;KDE;III;MCC;+BCC;SDE;ODC;KJqB;GbK;uDOG;GPE;kBoBM;yBCU;SDE;GpBC;EsBE;WRG;KQwE;GtBC;EuBM;GvB8E;6BOa;GPE;yBOE;GPE;EwBE;GxBa;EyBE;GzBK;E0BE;G1BO;iB2BE;WCU;KDe;G3BC;E6BE;2BDY;SCa;G7BQ;E8BG;G9BE;W+BK;K/BwB;UgCE;KhCU;uBiCE;MCM;ODa;KjCuC;YmCE;KnCgC;coCE;KpCiB;YqCE;KrCS;asCE;KtCgB;mBuCE;KvCc;CDS"}],[{"names":["","defineLazyTimer","polyfillGlobal$argument_1"],"mappings":"AAA;0BCmC;yBCW,wCD;GDC;IEoB,oDF;IEI,sDF;MES,4DF;MEI,4DF;mCEW,uCF;IEK,mDF"}],[{"names":["","_getFreeIndex","_allocateCallback","_callTimer","callback$argument_0.timeRemaining","_callReactNativeMicrotasksPass","_clearIndex","_freeCallback","setTimeout","_allocateCallback$argument_0","setInterval","queueReactNativeMicrotask","requestAnimationFrame","requestIdleCallback","","setTimeout$argument_0","cancelIdleCallback","clearTimeout","clearInterval","clearReactNativeMicrotask","cancelAnimationFrame","callTimers","callIdleCallbacks","errors.forEach$argument_0","callReactNativeMicrotasks","emitTimeDriftWarning","createTimer","deleteTimer","setSendIdleEvents"],"mappings":"AAA;ACgD;CDM;AEE;CFO;AGO;uBC6C;SDQ;CHc;AKM;CLwB;AME;CNI;AOE;CPmB;cQY;MCM,iCD;GRK;eUM;MDM,iCC;GVK;6BWU;MFE,iCE;GXK;yBYK;GZI;uBaO;UCW;WDO;oDEO;OFU;GbI;sBgBE;GhBgB;gBiBE;GjBE;iBkBE;GlBE;6BmBE;GnBM;wBoBE;GpBE;cqBM;aPkB;aOE;GrBO;qBsBE;mBCsB;0BRC;OQE,ID;GtBE;EwBM;mBDG;0BRC;OQE,IC;GxBE;EyBK;GzBM;A0BG;C1BQ;A2BE;C3BG;A4BE;C5BG"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","setImmediate","global.queueMicrotask$argument_0","clearImmediate"],"mappings":"AAA;ACuB;wBCoB;GDO;CDG;AGK;CHE"}],[{"names":["","queueMicrotask","then._catch$argument_0","setTimeout$argument_0"],"mappings":"AAA;eCqB;WCa;iBCE;ODE,ID;CDE"}],[{"names":["","polyfillGlobal$argument_1"],"mappings":"AAA;iCCoB,0CD;2BCC,oCD;wBCE,uCD;0BCC,yCD;0BCC,yCD;2BCC,0CD;4BCC,uCD;uBCC,6BD;uBCC,6BD;6BCC,mCD;sBCC,gCD;kCCC,4CD;ECG,uED;ECI,mED"}],[{"names":["","XMLHttpRequestEventTarget","XMLHttpRequest","setInterceptor","constructor","_reset","get__responseType","set__responseType","get__responseText","get__response","__didCreateRequest","__didUploadProgress","__didReceiveResponse","__didReceiveData","__didReceiveIncrementalData","__didReceiveDataProgress","__didCompleteResponse","_clearSubscriptions","forEach$argument_0","getAllResponseHeaders","sort$argument_0","sortedHeaders.map$argument_0","getResponseHeader","setRequestHeader","setTrackingName","setPerformanceLogger","open","send","RCTNetworking.addListener$argument_1","doSend","abort","setResponseHeaders","Object.keys.reduce$argument_0","setReadyState","addEventListener"],"mappings":"AAA;ACgF;CDQ;AEK;ECqD;GDE;EEE;GFG;EGE;GHkB;EIE;GJE;EKE;GL2B;EME;GNW;EOE;GP8C;EQG;GRU;ESG;GTa;EUE;GV0B;EWE;GXU;EYE;GZoB;EaE;Gbc;EcG;Gd8B;EeE;wCCC;KDI;GfE;EiBE;6DC8B;KDQ;aEK;SFE;GjBG;EoBE;GpBG;EqBE;GrBK;EsBK;GtBG;EuBK;GvBG;EwBE;GxBgB;EyBE;sDCY;yCDC;6DCI;0CDC;yDCI;sCDC;oECI;iDDC;iECI;8CDC;8DCI;2CDC;mBEY;KF8B;GzBM;E4BE;G5BmB;E6BE;OCK;KDG;G7BC;E+BE;G/BiB;EgCG;GhCS;CFC"}],[{"names":["","_get"],"mappings":"AAA;ACC;CDe"}],[{"names":["","_superPropBase"],"mappings":"AAA;ACC;CDM"}],[{"names":["","uuidv4","xxxxxxxxXxxx4xxxYxxxXxxxxxxxxxxx.replace$argument_1","createBlobCollector","BlobManager","createFromParts","parts.map$argument_0","items.reduce$argument_0","createFromOptions","release","addNetworkingHandler","addWebSocketHandler","removeWebSocketHandler","sendOverSocket"],"mappings":"AAA;ACyB;iECC;GDI;CDC;AGS;CHM;AIK;ECS;4BCO;KDoB;8BEC;KFM;GDW;EIM;GJe;EKK;GLQ;EMM;GNI;EOM;GPI;EQM;GRI;ESK;GTI;CJC"}],[{"names":["","getConstants","addNetworkingHandler","addWebSocketHandler","removeWebSocketHandler","sendOverSocket","createFromParts","release"],"mappings":"AAA;IC+B;KDK;IEC;KFE;IGC;KHE;IIC;KJE;IKC;KLE;IMC;KNE;IOC;KPE"}],[{"names":["","Blob","constructor","set__data","get__data","slice","close","get__size","get__type"],"mappings":"AAA;ACmD;ECQ;GDG;EEQ;GFE;EGG;GHM;EIE;GJmC;EKc;GLI;EMM;GNE;EOO;GPE;CDC"}],[{"names":["","register","unregister","has"],"mappings":"AAA;iBCY;CDM;mBEE;CFO;YGE;CHE"}],[{"names":["","pd","setCancelFlag","Event","Event.prototype.get__type","Event.prototype.get__target","Event.prototype.get__currentTarget","Event.prototype.composedPath","Event.prototype.get__NONE","Event.prototype.get__CAPTURING_PHASE","Event.prototype.get__AT_TARGET","Event.prototype.get__BUBBLING_PHASE","Event.prototype.get__eventPhase","Event.prototype.stopPropagation","Event.prototype.stopImmediatePropagation","Event.prototype.get__bubbles","Event.prototype.get__cancelable","Event.prototype.preventDefault","Event.prototype.get__defaultPrevented","Event.prototype.get__composed","Event.prototype.get__timeStamp","Event.prototype.get__srcElement","Event.prototype.get__cancelBubble","Event.prototype.set__cancelBubble","Event.prototype.get__returnValue","Event.prototype.set__returnValue","Event.prototype.initEvent","defineRedirectDescriptor","get","set","defineCallDescriptor","value","defineWrapper","CustomEvent","getWrapper","wrapEvent","isStopped","setEventPhase","setCurrentTarget","setPassiveListener","isObject","getListeners","defineEventAttributeDescriptor","defineEventAttribute","defineCustomEventTarget","CustomEventTarget","EventTarget","EventTarget.prototype.addEventListener","EventTarget.prototype.removeEventListener","EventTarget.prototype.dispatchEvent"],"mappings":"AAA;AC2C;CDQ;AEM;CFqB;AGY;CHwB;IIQ;KJE;IKM;KLE;IMM;KNE;IOK;KPM;IQM;KRE;ISM;KTE;IUM;KVE;IWM;KXE;IYM;KZE;IaM;KbO;IcM;KdQ;IeM;KfE;IgBM;KhBE;IiBM;KjBE;IkBM;KlBE;ImBM;KnBE;IoBM;KpBE;IqBO;KrBE;IsBO;KtBE;IuBC;KvBU;IwBO;KxBE;IyBC;KzBI;I0BS;K1BE;A2BwB;QCE;SDE;QEC;SFE;C3BI;A8BQ;QCE;SDG;C9BI;AgCS;ICO;KDE;ChCuB;AkCQ;ClCW;AmCS;CnCG;AoCQ;CpCE;AqCS;CrCE;AsCS;CtCE;AuCS;CvCE;AwC4B;CxCE;AyCQ;CzCQ;A0CQ;QdE;ScU;QbE;SayC;C1CI;A2CQ;C3CM;A4CQ;ICE;KDE;C5Ce;A8Ce;C9CkB;I+CW;K/C6C;IgDS;KhD+B;IiDO;KjDoE"}],[{"names":["","isLoggingForWebPerformance"],"mappings":"AAA;ACgB;CDK"}],[{"names":["","isLayoutAnimationEnabled","shouldEmitW3CPointerEvents","shouldPressibilityUseW3CPointerEventsForHover","animatedShouldDebounceQueueFlush","animatedShouldUseSingleOp","isGlobalWebPerformanceLoggerEnabled","enableAccessToHostTreeInFabric"],"mappings":"AAA;4BCkD,UD;8BEC,WF;iDGC,WH;oCIC,WJ;6BKC,WL;uCMC,WN;kCOC,WP"}],[{"names":["","PerformanceLogger","PerformanceLogger#constructor","PerformanceLogger#addTimespan","PerformanceLogger#append","PerformanceLogger#clear","PerformanceLogger#clearCompleted","PerformanceLogger#close","PerformanceLogger#currentTimestamp","PerformanceLogger#getExtras","PerformanceLogger#getPoints","PerformanceLogger#getPointExtras","PerformanceLogger#getTimespans","PerformanceLogger#hasTimespan","PerformanceLogger#isClosed","PerformanceLogger#logEverything","PerformanceLogger#markPoint","PerformanceLogger#removeExtra","PerformanceLogger#setExtra","PerformanceLogger#startTimespan","PerformanceLogger#stopTimespan","createPerformanceLogger"],"mappings":"AAA;ACmC;ECQ;GDE;EEE;GFqC;EGE;GHW;EIE;GJO;EKE;GLW;EME;GNE;EOE;GPE;EQE;GRE;ESE;GTE;EUE;GVE;EWE;GXE;EYE;GZE;EaE;GbE;EcE;GdmB;EeE;Gf8B;EgBE;GhBI;EiBE;GjBkB;EkBE;GlBuC;EmBE;GnBkD;CDC;eqBW;CrBI"}],[{"names":["","infoLog"],"mappings":"AAA;ACe;CDE"}],[{"names":["","getLens","byteLength","_byteLength","toByteArray","tripletToBase64","encodeChunk","fromByteArray"],"mappings":"AAA;ACqB;CDiB;AEG;CFK;AGE;CHE;AIE;CJ4C;AKE;CLK;AME;CNW;AOE;CP+B"}],[{"names":["","convertHeadersMapToArray","generateRequestId","RCTNetworking","constructor","sendRequest","body.formData.map$argument_0","abortRequest","clearCookies"],"mappings":"AAA;ACuB;CDM;AEG;CFE;AGO;ECC;GDM;EEE;wCCc;QDG;GFe;EIE;GJE;EKE;GLE;CHC"}],[{"names":["","NativeEventEmitter","constructor","addListener","remove","emit","removeAllListeners","listenerCount"],"mappings":"AAA;eCsC;ECK;GD6B;EEE;cCa;ODO;GFE;EIE;GJO;EKE;GLS;EME;GNE;CDC"}],[{"names":["","convertRequestBody"],"mappings":"AAA;ACwB;CDgB"}],[{"names":["","FormData","constructor","append","getAll","_parts.filter$argument_0","_parts.filter.map$argument_0","getParts","_parts.map$argument_0"],"mappings":"AAA;ACkD;ECG;GDE;EEE;GFO;EGE;cCE,wBD;WEC,oBF;GHC;EME;2BCC;KDoB;GNC;CDC"}],[{"names":["","binaryToBase64"],"mappings":"AAA;ACc;CDc"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","","isDataView","normalizeName","normalizeValue","iteratorFor","iterator.next","iterator.@@iterator","Headers","headers.forEach$argument_0","Object.getOwnPropertyNames.forEach$argument_0","Headers.prototype.append","Headers.prototype._delete","Headers.prototype.get","Headers.prototype.has","Headers.prototype.set","Headers.prototype.forEach","Headers.prototype.keys","forEach$argument_0","Headers.prototype.values","Headers.prototype.entries","consumed","fileReaderReady","Promise$argument_0","reader.onload","reader.onerror","readBlobAsArrayBuffer","readBlobAsText","readArrayBufferAsText","bufferClone","Body","_initBody","blob","arrayBuffer","text","formData","json","normalizeMethod","Request","Request.prototype.clone","decode","body.trim.split.forEach$argument_0","parseHeaders","preProcessedHeaders.split.map$argument_0","preProcessedHeaders.split.map.forEach$argument_0","Response","Response.prototype.clone","Response.error","Response.redirect","exports.DOMException","fetch","abortXhr","xhr.onload","setTimeout$argument_0","xhr.onerror","xhr.ontimeout","xhr.onabort","fixUrl","request.headers.forEach$argument_0","xhr.onreadystatechange"],"mappings":"AAA,CC;CDI,QC;ECyB;GDE;EEsB;GFQ;EGE;GHK;EIG;YCE;ODG;kCEI;OFE;GJI;EOE;sBCI;ODE;sBCE;ODE;kDEE;OFE;GPE;6BUE;GVK;gCWE;GXE;0BYE;GZG;0BaE;GbE;0BcE;GdE;8BeE;GfM;2BgBE;iBCE;KDE;GhBE;6BkBE;iBDE;KCE;GlBE;8BmBE;iBFE;KEE;GnBE;EoBM;GpBK;EqBE;uBCC;sBCC;ODE;uBEC;OFE;KDC;GrBC;EyBE;GzBK;E0BE;G1BK;E2BE;G3BQ;E4BE;G5BQ;E6BE;qBCG;KD0C;kBEG;OFe;yBGE;OHmB;gBIG;KJe;sBKG;OLE;gBMG;KNE;G7BG;EoCK;GpCG;EqCE;GrCwD;4BsCE;GtCE;EuCE;eCK;ODO;GvCE;EyCE;WCU;ODE;eEC;OFO;GzCE;E4CI;G5Ce;6B6CI;G7CO;mB8CE;G9CI;sB+CI;G/CM;2BgDM;KhDK;EiDK;uB3BC;M4BS;O5BE;mB6BE;mBCQ;SDE;O7BC;oB+BE;mBDC;SCE;O/BC;sBgCE;mBFC;SEE;OhCC;oBiCE;mBHC;SGE;OjCC;MkCE;OlCM;yDbuB;SaE;gCmCE;SnCE;iCoCM;SpCK;K2BI;GjDC;CDkB"}],[{"names":["","WebSocket","constructor","get__binaryType","set__binaryType","close","send","ping","_close","_unregisterEvents","_subscriptions.forEach$argument_0","_registerEvents","_eventEmitter.addListener$argument_1"],"mappings":"AAA;ACsE;EC2B;GDmD;EEE;GFE;EGE;GHgB;EIE;GJO;EKE;GLyB;EME;GNM;EOE;GPS;EQE;gCCC,eD;GRE;EUE;yDCE;ODc;sDCC;ODO;wDCC;ODc;wDCC;ODmB;GVE;CDC"}],[{"names":["","_objectWithoutProperties"],"mappings":"AAA;ACC;CDc"}],[{"names":["_objectWithoutPropertiesLoose",""],"mappings":"AAA;CCW"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","WebSocketEvent","constructor"],"mappings":"AAA;ACmB;ECC;GDG;CDC"}],[{"names":["","File","constructor","get__name","get__lastModified"],"mappings":"AAA;ACoB;ECI;GDY;EEK;GFG;EGK;GHE;CDC"}],[{"names":["","FileReader","constructor","_reset","_setReadyState","readAsArrayBuffer","NativeFileReaderModule.readAsDataURL.then$argument_0","NativeFileReaderModule.readAsDataURL.then$argument_1","readAsDataURL","readAsText","NativeFileReaderModule.readAsText.then$argument_0","NativeFileReaderModule.readAsText.then$argument_1","abort","get__readyState","get__error","get__result"],"mappings":"AAA;ACqC;ECc;GDG;EEE;GFI;EGE;GHa;EIE;MCU;ODU;MEC;OFM;GJE;EOE;MFU;OEM;MDC;OCM;GPE;EQE;MCU;ODM;MEC;OFM;GRE;EWE;GXS;EYE;GZE;EaE;GbE;EcE;GdE;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","URLSearchParams","URLSearchParams#constructor","Object.keys.forEach$argument_0","URLSearchParams#append","URLSearchParams#_delete","URLSearchParams#get","URLSearchParams#getAll","URLSearchParams#has","URLSearchParams#set","URLSearchParams#sort","URLSearchParams#@@iterator","URLSearchParams#toString","_searchParams.reduce$argument_0","validateBaseUrl","URL","createObjectURL","revokeObjectURL","constructor","get__hash","get__host","get__hostname","get__href","get__origin","get__password","get__pathname","get__port","get__protocol","get__search","get__searchParams","toJSON","toString","get__username"],"mappings":"AAA;OCwD;ECG;kCCE,oCD;GDE;EGE;GHE;EIE;GJE;EKE;GLE;EME;GNE;EOE;GPE;EQE;GRE;ESE;GTE;EUI;GVE;EWE;qCCK;KDQ;GXC;CDC;AcE;CdK;OeE;ECI;GDK;EEE;GFE;EGG;GH2B;EIE;GJE;EKE;GLE;EME;GNE;EOE;GPE;EQE;GRE;ESE;GTE;EUE;GVE;EWE;GXE;EYE;GZE;EaE;GbE;EcE;GdK;EeE;GfE;EgBE;GhBQ;EiBE;GjBE;CfC"}],[{"names":["","AbortSignal","AbortSignal#constructor","AbortSignal#get__aborted","createAbortSignal","abortSignal","AbortController","AbortController#constructor","AbortController#get__signal","AbortController#abort","getSignal"],"mappings":"AAA;ACc;ICI;KDG;IEI;KFM;CDC;AIK;CJK;AKI;CLM;AMqB;ICI;KDE;IEI;KFE;IGI;KHE;CNC;AUQ;CVM"}],[{"names":["","global.alert"],"mappings":"AAA;iBCiB;GDI"}],[{"names":["","Alert","alert","onAction","onError","prompt","callbackOrButtons.forEach$argument_0","RCTAlertManager.alertWithArgs$argument_1"],"mappings":"AAA;ACyC;ECC;uBCuD;ODY;sBEC,oDF;GDG;EIE;kCCkB;SDe;QEgB;SFG;GJG;CDC"}],[{"names":["","emptyCallback","module.exports.alertWithArgs"],"mappings":"AAA;ACW,2BD;iBEG;GFW"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","polyfillObjectProperty$argument_2"],"mappings":"AAA;+CCoB,mBD"}],[{"names":["","registerModule","registerModule$argument_1"],"mappings":"AAA;mBCiB;oEDc;2BEG,wCF;6BEE,kCF;8BEE,2CF;mCEC;4CFC;yBEE,oCF;EEG,8DF;2CEE;qDFC;0CEE;iDFC;8BEI,uCF;8BEE,+CF"}],[{"names":["","captureHeap"],"mappings":"AAA;eCa;GDY"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","poke"],"mappings":"AAA;QCa;GDsB"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","logIfNoNativeHook","logToConsole","setWarningHandler"],"mappings":"AAA;EC0B;GDU;EEG;GFQ;EGE;GHE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","setup","enable","disable","registerBundle","log"],"mappings":"AAA;ECiB,UD;EEC;GFK;EGC,YH;EIC,mBJ;EKC,QL"}],[{"names":["","__fetchSegment","SegmentFetcher.fetchSegment$argument_2"],"mappings":"AAA;ACmB;ICc;KDc;CDE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","componentProviderInstrumentationHook","setWrapperComponentProvider","enableArchitectureIndicator","registerConfig","config.forEach$argument_0","registerComponent","runnables.appKey.run","registerRunnable","registerSection","getAppKeys","getSectionKeys","getSections","getRunnable","getRegistry","setComponentProviderInstrumentationHook","runApplication","BugReporting.addSource$argument_1","setSurfaceProps","unmountApplicationComponentAtRootTag","registerHeadlessTask","registerCancellableHeadlessTask$argument_2","","registerCancellableHeadlessTask","startHeadlessTask","taskProvider.then$argument_0","taskProvider.then._catch$argument_0","NativeHeadlessJsTaskSupport.notifyTaskRetry.then$argument_0","cancelHeadlessTask","registerComponent$argument_1","NoOp"],"mappings":"AAA;EC+D,6CD;EEW;GFE;EGE;GHE;EIE;mBCC;KDgB;GJC;EMO;WCQ;ODoB;GNM;EQE;GRG;ESE;GTE;EUE;GVE;EWE;GXE;EYE;GZI;EaE;GbE;EcE;GdK;EeE;GfI;EgBO;QCa,SD;GhBa;EkBK;QDc,SC;GlBY;EmBO;GnBE;EoBO;gECE,MC;KFE;GpBC;EuBO;GvBY;EwBO;YCU;ODI;aEC;YCS;aDI;OFG;GxBC;E4BO;G5BM;0C6BM;aCI;ODE;G7BE"}],[{"names":["","defaultExtras","addFileSource$argument_1","BugReporting","_maybeInit","addSource","addFileSource","_addSource","remove","collectExtraData"],"mappings":"AAA;ACuB;oDCC;gCDC;CDE;AGQ;ECM;GDmB;EEU;GFK;EGU;GHK;EIE;cCa;ODE;GJE;EMQ;GNmB;CHC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","dumpReactTree","getReactTree"],"mappings":"AAA;ACyB;CDM;AEE;CFiB"}],[{"names":["","setActiveScene","_listeners.forEach$argument_0","getActiveScene","addActiveSceneChangedListener","remove","_listeners.filter$argument_0"],"mappings":"AAA;ECmB;uBCE,kCD;GDC;EGE;GHE;EIE;cCM;uCCC,iCD;ODC;GJE"}],[{"names":["","HeadlessJsTaskError"],"mappings":"AAA;eCU,0CD"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","renderApplication"],"mappings":"AAA;eC6B;CDyE"}],[{"names":["","usePerformanceLogger"],"mappings":"AAA;OC4B;CDE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","A","B.isMounted","B.enqueueForceUpdate","B.enqueueReplaceState","B.enqueueSetState","E","E.prototype.setState","E.prototype.forceUpdate","F","G","M","N","O","escape","a.replace$argument_1","Q","R","R$argument_4","S","T","b.then$argument_0","b.then$argument_1","exports.Children.forEach","S$argument_1","exports.Children.count","exports.Children.toArray","exports.Children.only","exports.cloneElement","exports.createContext","exports.createFactory","exports.createRef","exports.forwardRef","exports.lazy","exports.memo","exports.startTransition","exports.unstable_act","exports.useCallback","exports.useContext","exports.useDebugValue","exports.useDeferredValue","exports.useEffect","exports.useId","exports.useImperativeHandle","exports.useInsertionEffect","exports.useLayoutEffect","exports.useMemo","exports.useReducer","exports.useRef","exports.useState","exports.useSyncExternalStore","exports.useTransition"],"mappings":"AAA;kXCS,yHD;iBEC,oBF,oBG,YH,qBI,YJ,iBK,YL,uBM,4EN;qBOC,4PP,yBQ,kER,CS,cT,wBU,4EV;AWE,8aX;AYC,6FC,kEC,yEC,wBD,Ed,agB,iGhB;AiBC,0TC,qBD;0ZjBC;AmBC,+DD,mCC,WC,8DC,qED,CE,qEF,uGpB;oJuBC,oBC,mCD,IvB,OyB,wBD,eC,WzB,S0B,uBF,qBE,M1B,M2B,mH3B;qB4BE;iH5BC,uB6B,kM7B,+C8B,mD9B,mB+B,gC/B;mBgCC,wChC,uCiC,uEjC,ckC,kElC,yBmC,+EnC,sBoC,oFpC;oBqCC,gDrC,oBsC,2CtC,uBuC,YvC,0BwC,iDxC,mByC,8CzC,e0C,oC1C,6B2C,4D3C;2B4CC,uD5C,yB6C,oD7C,iB8C,4C9C,oB+C,mD/C,gBgD,uChD,kBiD,yCjD,8BkD,6DlD;sBmDC,4CnD"}],[{"names":["","AppContainer","componentDidMount","RCTDeviceEventEmitter.addListener$argument_1","Inspector.props.onRequestRerenderApp","setState$argument_0","setState$argument_1","componentWillUnmount","render","View.props.ref"],"mappings":"AAA;ACuC;ECa;UCK;sCCK;oBCE,+BD;oBEC,wCF;iBDE;WDI;GDe;EME;GNI;EOE;aCgB;SDE;GP6B;CDC"}],[{"names":["","React.forwardRef$argument_0"],"mappings":"AAA;EC+B;GDwG"}],[{"names":["","flattenStyle"],"mappings":"AAA;ACe;CDuB"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;gDC2G,4BD"}],[{"names":["","setRuntimeConfigProvider","get","ReactNativeViewConfigRegistry.register$argument_1","getWithFallback_DEPRECATED","FallbackNativeComponent","hasNativeViewConfig","unstable_hasStaticViewConfig"],"mappings":"AAA;OCiC;CDY;OEQ;+CCI;GDwC;CFI;OIW;kCCiB;GDE;CJG;AME;CNG;OOQ;CPK"}],[{"names":["","getNativeComponentAttributes","attachDefaultEventTypes","merge","getDifferForType","getProcessorForType"],"mappings":"AAA;ACuB;CD2E;AEE;CFkB;AGG;CH0B;AIE;CJoB;AKE;CLsB"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","processAspectRatio","aspectRatio.split.map$argument_0","matches.some$argument_0"],"mappings":"AAA;ACc;6CCe,aD;2CEa,4BF;CDkB"}],[{"names":["","processColor"],"mappings":"AAA;ACqB;CDoC"}],[{"names":["","normalizeColor"],"mappings":"AAA;ACiB;CDc"}],[{"names":["","normalizeColor","hue2rgb","hslToRgb","hwbToRgb","call","callWithSlashSeparator","commaSeparatedCall","getMatchers","parse255","parse360","parse1","parsePercentage","normalizeKeyword"],"mappings":"AAA;ACc;CDgJ;AEE;CFiB;AGE;CHY;AIE;CJgB;AKK;CLE;AME;CNQ;AOE;CPE;AQI;CR2B;ASE;CTS;AUE;CVG;AWE;CXS;AYE;CZU;AaE;Cb4J"}],[{"names":["","PlatformColor","normalizeColorObject","processColorObject"],"mappings":"AAA;6BCiB;CDE;oCEE;CFO;kCGE;CHI"}],[{"names":["","processFontVariant"],"mappings":"AAA;ACc;CDa"}],[{"names":["","processTransform","_getKeyAndValueFromCSSTransform","_validateTransforms","transform.forEach$argument_0","_validateTransform"],"mappings":"AAA;ACuB;CD0B;yDEqB;CF6E;AGE;oBCC;GDU;CHC;AKE;CLiH"}],[{"names":["","_defineProperty"],"mappings":"AAA;ACC;CDa"}],[{"names":["","sizesDiffer"],"mappings":"AAA;oBCe;CDQ"}],[{"names":["","matricesDiffer"],"mappings":"AAA;uBCqB;CD2B"}],[{"names":["","pointsDiffer"],"mappings":"AAA;qBCoB;CDI"}],[{"names":["","insetsDiffer"],"mappings":"AAA;qBC2B;CDU"}],[{"names":["","processColorArray","processColorElement"],"mappings":"AAA;ACkB;CDI;AEE;CFQ"}],[{"names":["","getSourceCodeScriptURL","getDevServerURL","_coerceLocalScriptURL","getScriptURL","setCustomSourceTransformer","resolveAssetSource"],"mappings":"AAA;ACuB;CDY;AEE;CFc;AGE;CHc;AIE;CJK;AKE;CLI;AMM;CNmB"}],[{"names":["","getConstants"],"mappings":"AAA;ECwB;GDQ"}],[{"names":["","registerAsset","getAssetByID"],"mappings":"AAA;AC2B;CDI;AEE;CFE"}],[{"names":["","getScaledAssetPath","getAssetPathInDrawableFolder","AssetSourceResolver","constructor","isLoadedFromServer","isLoadedFromFileSystem","defaultAsset","assetServerURL","scaledAssetPath","scaledAssetURLNearBundle","resourceIdentifierWithoutScale","drawableFolderInBundle","fromSource"],"mappings":"AAA;ACmC;CDK;AEK;CFK;AGE;ECO;GDI;EEE;GFE;EGE;GHE;EIE;GJY;EKM;GLU;EMM;GNE;EOM;GPQ;EQQ;GRM;ESO;GTG;EUE;GVQ;CHI"}],[{"names":["","pickScale","setUrlCacheBreaker","getUrlCacheBreaker"],"mappings":"AAA;OCe;CDe;OEE;CFE;OGE;CHW"}],[{"names":["","PixelRatio","get","getFontScale","getPixelSizeForLayoutSize","roundToNearestPixel","startDetecting"],"mappings":"AAA;AC0D;ECyB;GDE;EEa;GFE;EGO;GHE;EIQ;GJG;EKG,0BL;CDC"}],[{"names":["","Dimensions","get","set","addEventListener","RCTDeviceEventEmitter.addListener$argument_1"],"mappings":"AAA;AC2B;ECkB;GDG;EEQ;GFiC;EGU;GHU;CDC;IKU;KLE"}],[{"names":["","getConstants"],"mappings":"AAA;EC+C;GDQ"}],[{"names":["","getAndroidAssetSuffix","getAndroidResourceFolderName","getAndroidResourceIdentifier","getBasePath"],"mappings":"AAA;AC6B;CDU;AEc;CFmB;AGE;CHM;AIE;CJG"}],[{"names":["","processEventTypes","exports.register","exports.get"],"mappings":"AAA;AC0C;CD+B;mBEO;CFc;cGO;CH2B"}],[{"names":["","verifyComponentAttributeEquivalence","lefthandObjectDiff","compare","getConfigWithoutViewProps","Object.keys.filter$argument_0","Object.keys.filter.reduce$argument_0","stringifyViewConfig","JSON.stringify$argument_1"],"mappings":"AAA;eCsC;CDsB;AEI;ECG;GDkB;CFe;OIE;YCS,+CD;6BEC;KFG;CJC;OOE;ICG;KDK;CPG"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","DynamicallyInjectedByGestureHandler","ConditionallyIgnoredEventHandlers","isIgnored"],"mappings":"AAA;OCkB;CDG;OEe;CFO;OGE;CHK"}],[{"names":["","validate","stringifyValidationResult","differences.map$argument_0","accumulateDifferences","ifObject"],"mappings":"AAA;OC4C;CD+B;OEE;uBCQ;KDU;CFG;AIE;CJ0D;AKE;CLE"}],[{"names":["","createViewConfig","composeIndexers"],"mappings":"AAA;OCoB;CDsB;AEE;CFO"}],[{"names":["","codegenNativeCommands","options.supportedCommands.forEach$argument_0","commandObj.command"],"mappings":"AAA;ACgB;oCCG;0BCE;KDG;GDC;CDG"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","q"],"mappings":"AAA;ACU,4TD"}],[{"names":["","getAccessibilityRoleFromRole"],"mappings":"AAA;OCkB;CDuI"}],[{"names":["","module.exports.compose","module.exports.setStyleAttributePreprocessor","module.exports.create"],"mappings":"AAA;ECgR;GDS;EEoD;GFyB;EGK;GHY"}],[{"names":["","createRootTag"],"mappings":"AAA;OCwB;CDE"}],[{"names":["","coerceDisplayMode"],"mappings":"AAA;OCoB;CDS"}],[{"names":["","getCachedComponentWithDisplayName","ComponentWithDisplayName"],"mappings":"AAA;eCqB;+BCM,gDD;CDO"}],[{"names":["","RCTDeviceEventEmitter.addListener$argument_1","exitApp","addEventListener","remove","removeEventListener"],"mappings":"AAA;qDCmB;CDQ;WEwC;GFM;oBGO;cCQ,+DD;GHE;uBKK;GLQ"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","module.exports.get__BatchedBridge","module.exports.get__ExceptionsManager","module.exports.get__Platform","module.exports.get__RCTEventEmitter","module.exports.get__ReactNativeViewConfigRegistry","module.exports.get__TextInputState","module.exports.get__UIManager","module.exports.get__deepDiffer","module.exports.get__deepFreezeAndThrowOnMutationInDev","module.exports.get__flattenStyle","module.exports.get__ReactFiberErrorDialog","module.exports.get__legacySendAccessibilityEvent","module.exports.get__RawEventEmitter","module.exports.get__CustomEvent"],"mappings":"AAA;EC6B;GDE;EEC;GFE;EGC;GHE;EIC;GJE;EKC;GLE;EMC;GNE;EOC;GPE;EQC;GRE;ESC;GTI;EUC;GVG;EWC;GXE;EYC;GZE;EaC;GbE;EcC;GdE"}],[{"names":["","register","global.RN$registerCallableModule$argument_1"],"mappings":"AAA;ECe;0DCE,kBD;GDI"}],[{"names":["","currentlyFocusedInput","currentlyFocusedField","focusInput","blurInput","focusField","blurField","focusTextInput","blurTextInput","registerInput","unregisterInput","isTextInput"],"mappings":"AAA;AC2C;CDE;AEM;CFQ;AGE;CHI;AIE;CJI;AKE;CLM;AME;CNM;AOO;CPgC;AQO;CRwB;ASE;CTY;AUE;CVW;AWE;CXY"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;ECivB,4BD"}],[{"names":["","unstable_setLogListeners","deepDiffer"],"mappings":"AAA;ACoB;CDE;mBEK;CFsE"}],[{"names":["","deepFreezeAndThrowOnMutationInDev","throwOnImmutableMutation","identity"],"mappings":"AAA;AC6B;CDyC;AEI;CFS;AGE;CHE"}],[{"names":["","showErrorDialog"],"mappings":"AAA;EC0B;GDgC"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","CustomEvent","constructor"],"mappings":"AAA;ACoB;ECG;GDK;CDC"}],[{"names":["","EventPolyfill","constructor","composedPath","preventDefault","initEvent","stopImmediatePropagation","stopPropagation","setSyntheticEvent"],"mappings":"AAA;ACkI;EC+B;GD8B;EEE;GFE;EGE;GHO;EIE;GJI;EKE;GLE;EME;GNK;EOE;GPE;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","f","h","k","g","l","H","I","K","Q","R","S","P","U","V","M","N","D$argument_0","Z"],"mappings":"AAA;aCS,uHC,4CC,4RH;AIC,uEJ,iGK,0BL,6BK,4BL;gLMC,qJC,kHP;AQC,ubR;ASC,8bC,8BC,sBX;0BYC,kCC,cC,sGd,iCe,gBf,uGe,+Bf,Qe,kBf,CgB,oBC,kBD,IhB;AkBG,8ClB"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","invokeGuardedCallbackImpl","reporter.onError","invokeGuardedCallback","invokeGuardedCallbackAndCatchFirstError","executeDispatch","executeDirectDispatch","functionThatReturnsTrue","functionThatReturnsFalse","SyntheticEvent","assign$argument_1.preventDefault","assign$argument_1.stopPropagation","assign$argument_1.persist","assign$argument_1.destructor","SyntheticEvent.Interface.currentTarget","SyntheticEvent.Interface.timeStamp","SyntheticEvent.extend","E","Class","createOrGetPooledEvent","releasePooledEvent","addEventPoolingTo","SyntheticEvent.extend$argument_0.touchHistory","isStartish","isMoveish","timestampForTouch","getTouchIdentifier","recordTouchStart","recordTouchMove","recordTouchEnd","ResponderTouchHistoryStore.instrument","ResponderTouchHistoryStore.recordTouchTrack","accumulate","accumulateInto","forEachAccumulated","changeResponder","getParent","traverseTwoPhase","getListener","accumulateDirectionalDispatches","accumulateDirectDispatchesSingle","accumulateTwoPhaseDispatchesSingleSkipTarget","accumulateTwoPhaseDispatchesSingle","ResponderEventPlugin._getResponder","ResponderEventPlugin.extractEvents","ResponderEventPlugin.injection.injectGlobalResponderHandler","recomputePluginOrdering","publishRegistrationName","getListeners","stateNode.canonical._eventListeners.mangledImperativeRegistrationName.forEach$argument_0","listenerFnWrapper","listeners.push$argument_0","accumulateListenersAndInstances","accumulateDirectionalDispatches$1","traverseTwoPhase$1","accumulateTwoPhaseDispatchesSingle$1","accumulateDirectDispatchesSingle$1","injectedNamesToPlugins$jscomp$inline_229.ReactNativeBridgeEventPlugin.extractEvents","getInstanceFromTag","batchedUpdatesImpl","batchedUpdates","executeDispatchesAndReleaseTopLevel","_receiveRootNodeIDEvent","batchedUpdates$argument_0","ReactNativePrivateInterface.RCTEventEmitter.register$argument_0.receiveEvent","ReactNativePrivateInterface.RCTEventEmitter.register$argument_0.receiveTouches","getFiberCurrentPropsFromNode","getNodeFromInstance","ResponderEventPlugin.injection.injectGlobalResponderHandler$argument_0.onChange","getIteratorFn","getComponentNameFromType","getComponentNameFromFiber","getNearestMountedFiber","assertIsMounted","findCurrentFiberUsingSlowPath","findCurrentHostFiber","findCurrentHostFiberImpl","defaultDiffer","restoreDeletedValuesInNestedArray","diffNestedProperty","addNestedProperty","clearNestedProperty","diffProperties","mountSafeCallback_NOT_REALLY_SAFE","","ReactNativeFiberHostComponent","_proto.blur","_proto.focus","_proto.measure","_proto.measureInWindow","_proto.measureLayout","_proto.setNativeProps","onCommitRoot","clz32Fallback","getHighestPriorityLanes","getNextLanes","computeExpirationTime","getLanesToRetrySynchronouslyOnError","claimNextTransitionLane","createLaneMap","markRootUpdated","markRootFinished","markRootEntangled","lanesToEventPriority","shim","allocateTag","recursivelyUncacheFiberNode","finalizeInitialChildren","parentInstance._children.map$argument_0","describeComponentFrame","describeFunctionComponentFrame","createCursor","pop","push","getMaskedContext","isContextProvider","popContext","pushTopLevelContextObject","processChildContext","pushContextProvider","invalidateContextProvider","is","flushSyncCallbacks","popTreeContext","shallowEqual","describeFiber","getStackByFiberInDevAndProd","resolveDefaultProps","resetContextDependencies","popProvider","scheduleContextWorkOnParentPath","prepareToReadContext","readContext","pushConcurrentUpdateQueue","enqueueConcurrentHookUpdate","markUpdateLaneFromFiberToRoot","initializeUpdateQueue","cloneUpdateQueue","createUpdate","enqueueUpdate","entangleTransitions","enqueueCapturedUpdate","processUpdateQueue","commitUpdateQueue","applyDerivedStateFromProps","classComponentUpdater.isMounted","classComponentUpdater.enqueueSetState","classComponentUpdater.enqueueReplaceState","classComponentUpdater.enqueueForceUpdate","checkShouldComponentUpdate","constructClassInstance","callComponentWillReceiveProps","mountClassInstance","coerceRef","current","throwOnInvalidObjectType","resolveLazy","ChildReconciler","deleteChild","deleteRemainingChildren","mapRemainingChildren","useFiber","placeChild","placeSingleChild","updateTextNode","updateElement","updatePortal","updateFragment","createChild","updateSlot","updateFromMap","reconcileChildrenArray","oldFiber.forEach$argument_0","reconcileChildrenIterator","reconcileChildFibers","requiredContext","pushHostContainer","popHostContainer","pushHostContext","popHostContext","findFirstSuspended","resetWorkInProgressVersions","throwInvalidHookError","areHookInputsEqual","renderWithHooks","mountWorkInProgressHook","updateWorkInProgressHook","basicStateReducer","updateReducer","rerenderReducer","updateMutableSource","updateSyncExternalStore","pushStoreConsistencyCheck","updateStoreInstance","subscribeToStore","subscribe$argument_0","checkIfSnapshotChanged","forceStoreRerender","mountState","pushEffect","updateRef","mountEffectImpl","updateEffectImpl","mountEffect","updateEffect","updateInsertionEffect","updateLayoutEffect","imperativeHandleEffect","updateImperativeHandle","mountDebugValue","updateCallback","updateMemo","updateDeferredValueImpl","startTransition","updateId","dispatchReducerAction","dispatchSetState","isRenderPhaseUpdate","enqueueRenderPhaseUpdate","entangleTransitionUpdate","HooksDispatcherOnMount.useCallback","HooksDispatcherOnMount.useImperativeHandle","HooksDispatcherOnMount.useLayoutEffect","HooksDispatcherOnMount.useInsertionEffect","HooksDispatcherOnMount.useMemo","HooksDispatcherOnMount.useReducer","HooksDispatcherOnMount.useRef","HooksDispatcherOnMount.useDeferredValue","HooksDispatcherOnMount.useTransition","HooksDispatcherOnMount.useMutableSource","HooksDispatcherOnMount.useSyncExternalStore","HooksDispatcherOnMount.useId","HooksDispatcherOnUpdate.useState","HooksDispatcherOnUpdate.useDeferredValue","HooksDispatcherOnUpdate.useTransition","HooksDispatcherOnRerender.useState","HooksDispatcherOnRerender.useDeferredValue","HooksDispatcherOnRerender.useTransition","createCapturedValueAtFiber","createCapturedValue","logCapturedError","setTimeout$argument_0","createRootErrorUpdate","lane.callback","createClassErrorUpdate","lane.payload","attachPingListener","reconcileChildren","updateForwardRef","updateMemoComponent","updateSimpleMemoComponent","updateOffscreenComponent","markRef","updateFunctionComponent","updateClassComponent","finishClassComponent","pushHostRootContext","mountSuspenseOffscreenState","updateSuspenseComponent","mountSuspensePrimaryChildren","retrySuspenseComponentWithoutHydrating","updateDehydratedSuspenseComponent","scheduleSuspenseWorkOnFiber","initSuspenseListRenderState","updateSuspenseListComponent","resetSuspendedCurrentOnMountInLegacyMode","bailoutOnAlreadyFinishedWork","attemptEarlyBailoutIfNoScheduledUpdate","appendAllChildren","updateHostContainer","updateHostComponent$1","updateHostText$1","cutOffTailIfNeeded","bubbleProperties","completeWork","unwindWork","safelyDetachRef","safelyCallDestroy","commitBeforeMutationEffects","commitHookEffectListUnmount","commitHookEffectListMount","detachFiberAfterEffects","isHostParent","getHostSibling","insertOrAppendPlacementNodeIntoContainer","insertOrAppendPlacementNode","recursivelyTraverseDeletionEffects","commitDeletionEffectsOnFiber","attachSuspenseRetryListeners","wakeables.forEach$argument_0","recursivelyTraverseMutationEffects","commitMutationEffectsOnFiber","commitReconciliationEffects","commitLayoutEffects","requestEventTime","requestUpdateLane","scheduleUpdateOnFiber","ensureRootIsScheduled","performConcurrentWorkOnRoot","recoverFromConcurrentError","queueRecoverableErrors","isRenderConsistentWithExternalStores","markRootSuspended$1","performSyncWorkOnRoot","popRenderLanes","prepareFreshStack","handleError","pushDispatcher","renderDidSuspendDelayIfPossible","renderRootSync","workLoopSync","workLoopConcurrent","performUnitOfWork","completeUnitOfWork","commitRoot","commitRootImpl","scheduleCallback$1$argument_1","flushPassiveEffects","captureCommitPhaseErrorOnRoot","captureCommitPhaseError","pingSuspendedRoot","retryTimedOutBoundary","retryDehydratedSuspenseBoundary","resolveRetryWakeable","beginWork$1","scheduleCallback$1","FiberNode","createFiber","shouldConstruct","resolveLazyComponentTag","createWorkInProgress","createFiberFromTypeAndProps","createFiberFromFragment","createFiberFromOffscreen","createFiberFromText","createFiberFromPortal","FiberRootNode","createPortal","findHostInstance","updateContainer","emptyFindFiberByHostInstance","findNodeHandle","onRecoverableError","unmountComponentAtNode","updateContainer$argument_3","devToolsConfig$jscomp$inline_979.rendererConfig.getInspectorDataForViewTag","internals$jscomp$inline_1247.findHostInstanceByFiber","exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.computeComponentStackForErrorReporting","exports.createPortal","exports.dispatchCommand","exports.findHostInstance_DEPRECATED","exports.render","exports.sendAccessibilityEvent","exports.unmountComponentAtNodeAndRemoveContainer"],"mappings":"AAA;ACkB;CDO;aEM;KFG;AGE;CHI;AIC;CJuB;AKK;CLK;AMC;CNa;AOE;CPE;AQC;CRE;ASC;CTyB;kBUE;GVQ;mBWC;GXO;WYC;GZE;caE;GbO;iBcK;GdE;aeI;GfE;wBgBI;ECC,eD;EEC;GFE;ChBW;AmBE;CnBY;AoBC;CpBO;AqBC;CrBI;gBsBE;GtBE;AuBE;CvBE;AwBC;CxBE;AyBW;CzBE;A0BC;C1BI;A2BC;C3B4B;A4BC;C5BW;A6BC;C7BW;gB8BG;K9BE;sB+BC;K/BgC;AgCG;ChCY;AiCC;CjCY;AkCC;ClCE;AmCG;CnCS;AoCyD;CpCI;AqCC;CrCI;AsCC;CtCc;AuCC;CvCe;AwCC;CxCgB;AyCC;CzCM;A0CC;C1CI;mB2CE;K3CE;mB4CE;K5C0Q;oC6CG;O7CE;A8CK;C9C4D;A+CC;C/CO;AgDI;cCsC;gCCK;SDgB;2BEE;aFS;KDG;ChDM;AoDO;CpDyB;AqDC;CrDQ;AsDC;CtDW;AuDC;CvDS;AwDC;CxDa;qByDc;OzDuC;A0DgC;C1DE;A2DC;C3DE;A4DE;C5DQ;A6DE;C7DkB;A8DE;iBCK;GDqC;C9DC;gBgEE;GhEE;kBiEC;GjE+B;+BkEE;ClEE;sBmEE;CnEM;YoEE;GpEO;AqEuB;CrEM;AsEC;CtE8C;AuEC;CvEuD;AwEC;CxEa;AyEC;CzEG;A0EC;C1E2E;A2EC;C3EG;A4EC;C5EQ;A6EK;C7EQ;A8EC;C9EqC;A+EC;C/EqD;AgFC;ChFgB;AiFC;CjFgB;AkFC;ClFoF;AmFC;SCC;GDM;CnFC;qCoFC;ICC;KDI;kBEE;KFE;mBGC;KHE;qBIC;KJK;6BKC;KLK;2BMC;KNa;4BOC;KPa;GpFE;A4FY;C5FU;A6FI;C7FG;A8FG;C9FgD;A+FC;C/FwC;AgGC;ChGwC;AiGC;CjGG;AkGC;ClGK;AmGC;CnGG;AoGC;CpGO;AqGC;CrGkB;AsGC;CtGS;AuGE;CvGS;AwGC;CxGI;AyGK;CzGK;A0GC;C1GS;A2GC;gDCE;GDE;C3GM;A6GG;C7GI;A8GC;C9GI;A+GI;C/GE;AgHC;ChHG;AiHC;CjHI;AkHK;ClHiB;AmHC;CnHG;AoHC;CpHG;AqHC;CrHO;AsHC;CtHc;AuHC;CvHS;AwHC;CxHkB;AyHC;CzHE;A0HK;C1HwB;A2HO;C3Ha;A4HG;C5HqB;A6HC;C7HqB;A8HC;C9HW;A+HC;C/HU;AgIK;ChIE;AiIC;CjII;AkIC;ClIY;AmIC;CnIQ;AoIC;CpIkB;AqIE;CrII;AsIC;CtIO;AuIC;CvIY;AwIE;CxIQ;AyIC;CzIU;A0IC;C1IS;A2IC;C3IkB;A4IC;C5IS;A6IC;C7I4C;A8IC;C9I+H;A+IC;C/IqB;AgJE;ChJe;aiJE;GjJI;mBkJC;GlJW;uBmJC;GnJY;sBoJC;GpJW;AqJE;CrJe;AsJC;CtJyB;AuJC;CvJa;AwJC;CxJiC;AyJC;gBC+B;ODI;CzJgB;A2JC;C3JS;A4JC;C5JG;A6JC;ECC;GDO;EEC;GFM;EGC;GHO;EIC;GJK;EKC;GLc;EMC;GNK;EOC;GPU;EQC;GRmC;ESC;GTe;EUC;GVe;EWC;GX0D;EYC;GZgC;EaC;GbmD;EcC;uBCsF;ODE;GdE;EgBC;uBDuE;OCE;GhBE;EiBC;GjBqK;C7JE;A+KO;C/KM;AgLC;ChLM;AiLC;CjLI;AkLC;ClLiB;AmLC;CnLG;AoLE;CpLsB;AqLE;CrLI;AsLU;CtLI;AuLC;CvLK;AwLC;CxL2C;AyLC;CzLY;A0LC;C1L6B;A2LC;C3LE;A4LC;C5L6E;A6LC;C7LsB;A8LC,iC9L;A+LC;C/L+B;AgMC;ChMY;AiMC;CjMI;AkMC;mBCC;GDE;ClMC;AoMC;CpMS;AqMC;CrMG;AsMC;CtMmB;AuMC;CvMe;AwMC;CxME;AyMC;CzMS;A0MC;C1Mc;A2MC;C3ME;A4MC;C5ME;A6MC;C7ME;A8MC;C9ME;A+MC;M3HK;O2HE;M3HM;O2HE;C/ME;AgNC;ChNQ;AiNC,6BjN;AkNC;ClNY;AmNC;CnNa;AoNC;CpNY;AqNC;CrNa;AsNC;CtNE;AuNC;CvNkB;AwNC;CxNuC;AyNC;CzNM;A0NC;C1NO;A2NC;C3NQ;iB4NuB;K5NM;yB6NG;K7NQ;qB8NC;K9NE;wB+NC;K/NE;agOC;KhOM;gBiOC;KjOmB;YkOC;KlOI;sBmOG;KnOE;mBoOC;KpOM;sBqOC,arO;0BsOC;KtOwB;WuOC;KvOO;cwOc;KxOE;sByOE;KzOG;mB0OC;K1OI;c2OiB;K3OE;sB4OE;K5OK;mB6OC;K7OI;A8OM;C9OO;A+OC;C/OO;AgPQ;eCU;KDE;ChPE;AkPE;kBCK;GDG;ClPE;AoPC;mBCM;KDE;oBDC;KCE;qBDK;KCU;CpPE;AsPC;CtPc;AuPG;CvPU;AwPC;CxP4B;AyPC;CzPoD;A0PC;C1PgC;A2PC;C3PiD;A4PC;C5PO;A6PC;C7P8B;A8PC;C9PsM;A+PC;C/PuC;AgQC;ChQW;AiQE;CjQE;AkQC;ClQmI;AmQC;CnQS;AoQC;CpQkB;AqQC;CrQ4J;AsQC;CtQK;AuQC;CvQuB;AwQC;CxQsF;AyQC;CzQM;A0QC;C1QoB;A2QC;C3QyE;oB4QK;C5QgB;sB6QC,a7Q;wB8QC;C9QK;mB+QC;C/QE;AgRC;ChRuB;AiRC;CjRuB;AkRC;ClR0U;AmRC;CnRqD;AoRG;CpRU;AqRC;CrRM;AsRE;CtR2D;AuRC;CvRmB;AwRC;CxRa;AyRC;CzRe;A0RC;C1RE;A2RC;C3RkB;A4RC;C5RmB;A6RC;C7R2D;A8RG;C9RQ;A+RC;C/R0I;AgSC;sBCO;KDI;ChSE;AkSC;ClS4C;AmSC;CnSqN;AoSC;CpS6C;AqSC;CrSgH;AsS+B;CtSM;AuSC;CvSY;AwSC;CxSoB;AySC;CzSsE;A0SC;C1SoL;A2SC;C3SU;A4SC;C5SO;A6SC;C7SiC;A8SC;C9SW;A+SC;C/S8B;AgTC;ChTG;AiTC;CjTuE;AkTC;ClTiL;AmTC;CnTI;AoTC;CpTW;AqTC;CrTwB;AsTC;CtTE;AuTC;CvTG;AwTC;CxTK;AyTC;CzTsC;A0TC;C1TiB;A2TC;uCC8B;KDG;C3TsD;A6TC;C7TgJ;A8TC;C9TQ;A+TC;C/T6C;AgUC;ChUe;AiUC;CjUY;AkUC;ClUK;AmUC;CnUkB;coUE;CpUob;AqUC;CrUE;AsUC;CtUa;AuUC;CvUE;AwUC;CxUG;AyUC;CzUS;A0UC;C1UmC;A2UC;C3UyE;A4UC;C5UI;A6UC;C7UM;A8UC;C9UI;A+UC;C/Uc;AgVC;ChVmB;AiVC;CjVU;AkVC;ClVY;AmVC;CnV4D;AoVC;CpVE;AqVC;CrVY;AsVC;CtVE;AuVC;sCCG;KDE;CvVC;qB2DC;C3DW;kCyVQ;OzVI;sCoFC;OpFI;2B0VkB;G1VG;0C2VyB;G3VI;uB4VE;C5VO;0B6VC;C7VW;sC8VC;C9VW;iB+VG;C/V4B;iCgWC;ChWU;mDiWE;CjWG"}],[{"names":["","ActivityIndicator"],"mappings":"AAA;0BC+D;CD2D"}],[{"names":["","ProgressBarAndroid"],"mappings":"AAA;2BCgF;CDkB"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","codegenNativeComponent"],"mappings":"AAA;ACiC;CDuC"}],[{"names":["","requireNativeComponent","createReactNativeComponentClass$argument_1"],"mappings":"AAA;+BC0B;qDCC;iDDC;4BDC"}],[{"names":["","createReactNativeComponentClass"],"mappings":"AAA;wCC4B;CDK"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","Button","render"],"mappings":"AAA;AC4R;ECC;GDwG;CDC"}],[{"names":["","React.forwardRef$argument_0","useMemo$argument_0","onPressIn","onPressOut","onResponderGrant","onResponderMove","onResponderRelease","onResponderTerminate","useLazyInitialization"],"mappings":"AAA;qBCgC;ICsE;YCO;aDG;YEC;aFG;cDK;ICiB;YGI;aHK;YIC;aJK;YKC;aLK;YMC;aNK;WDK;CD2G;ASe;CTM"}],[{"names":["","PressabilityDebugView","isEnabled","setEnabled"],"mappings":"AAA;OCqC;CDgC;OEI;CFK;OGE;CHI"}],[{"names":["","usePressability","useEffect$argument_0",""],"mappings":"AAA;eCqB;YCW;GDI;YCI;aCE;ODE;GDE;CDG"}],[{"names":["","isActiveSignal","isActivationSignal","isPressInSignal","isTerminalSignal","Pressability","constructor","configure","reset","getEventHandlers","setLongPressDeactivationDistance","_createEventHandlers","focusEventHandlers.onBlur","focusEventHandlers.onFocus","responderEventHandlers.onStartShouldSetResponder","responderEventHandlers.onResponderGrant","setTimeout$argument_0","responderEventHandlers.onResponderMove","responderEventHandlers.onResponderRelease","responderEventHandlers.onResponderTerminate","responderEventHandlers.onResponderTerminationRequest","responderEventHandlers.onClick","responderEventHandlers.onStartShouldSetResponder.testOnly_pressabilityConfig","hoverPointerEvents.onPointerEnter","hoverPointerEvents.onPointerLeave","onMouseEnter","onMouseLeave","_receiveSignal","PressabilityPerformanceEventEmitter.emitEvent$argument_0","_performTransitionSideEffects","_activate","_deactivate","_measureResponderRegion","_measureCallback","_isTouchWithinResponderRegion","_handleLongPress","_shouldLongPressCancelPress","_cancelHoverInDelayTimeout","_cancelHoverOutDelayTimeout","_cancelLongPressDelayTimeout","_cancelPressDelayTimeout","_cancelPressOutDelayTimeout","normalizeDelay","getTouchFromPressEvent","convertPointerEventToMouseEvent"],"mappings":"AAA;uBCkQ;6CDE;2BEE;wCFE;wBGE;6CHG;yBIE;qEJC;eK0G;ECuB;GDE;EEE;GFE;EGK;GHU;EIK;GJK;EKE;GLE;EME;cCE;ODK;eEC;OFK;iCGI;OHS;wBIE;+CCW;WDE;iDCU;SDE;OJC;uBME;ONiC;0BOE;OPE;4BQE;ORE;qCSE;OTS;eUE;OVK;QWO,kBX;4CYY;qDPO;eOE;SZK;4CaG;wDRQ;iBQE;SbM;4BcY;6DTW;uBSE;edM;4BeE;6DVW;uBUE;efM;GNQ;EsBM;oDCM;ODK;GtBqB;EwBM;GxB4D;EyBE;GzBQ;E0BE;gDfe;SeE;G1BM;E2BE;G3BU;qB4BE;G5BiB;E6BE;G7B4C;E8BE;G9BO;E+BE;G/BK;EgCE;GhCK;EiCE;GjCK;EkCE;GlCK;EmCE;GnCK;EoCE;GpCK;CLC;A0CE;C1CM;+B2CE;C3CU;A4CE;C5CY"}],[{"names":["","playTouchSound"],"mappings":"AAA;kBCa;GDI"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","PressabilityPerformanceEventEmitter","constructor","addListener","removeListener","emitEvent","_listeners.forEach$argument_0"],"mappings":"AAA;ACmB;ECG,gBD;EEE;GFE;EGE;GHK;EIE;4BCM,2BD;GJC;CDC"}],[{"names":["","enableHover","disableHover","isHoverEnabled"],"mappings":"AAA;wBCiC;KDK;yBEE;KFK;OGQ;CHE"}],[{"names":["","createSquare","normalizeRect"],"mappings":"AAA;OCmB;CDE;OEE;CFE"}],[{"names":["","createReactNativeComponentClass$argument_1"],"mappings":"AAA;8CCuE;oCDC;yDCM;+CDC"}],[{"names":["","module.exports.get__ColorPropType","module.exports.get__EdgeInsetsPropType","module.exports.get__ImagePropTypes","module.exports.get__PointPropType","module.exports.get__TextInputPropTypes","module.exports.get__TextPropTypes","module.exports.get__ViewPropTypes"],"mappings":"AAA;ECa;GDE;EEC;GFE;EGC;GHE;EIC;GJE;EKC;GLE;EMC;GNE;EOC;GPE"}],[{"names":["","colorPropType"],"mappings":"AAA;sBCgB;CD0D"}],[{"names":["","normalizeColor","hue2rgb","hslToRgb","hwbToRgb","call","callWithSlashSeparator","commaSeparatedCall","getMatchers","parse255","parse360","parse1","parsePercentage","normalizeKeyword"],"mappings":"AAA;ACc;CDgJ;AEE;CFiB;AGE;CHY;AIE;CJgB;AKK;CLE;AME;CNQ;AOE;CPE;AQI;CR2B;ASE;CTS;AUE;CVG;AWE;CXS;AYE;CZU;AaE;Cb4J"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","emptyFunction","emptyFunctionWithReset","module.exports","shim","getShim"],"mappings":"AAA;ACW,2BD;AEC,oCF;iBGG;ECC;GDY;EEE;GFE;CHgC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","DeprecatedStyleSheetPropType","","flattenStyle"],"mappings":"AAA;ACa;SCE;GDQ;CDC;AGE;CHmB"}],[{"names":["","deprecatedCreateStrictShapeTypeChecker","checkType","chainedCheckType"],"mappings":"AAA;ACa;ECC;GDqD;EEC;GFE;CDG"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","TouchableNativeFeedback","SelectableBackground","SelectableBackgroundBorderless","Ripple","canUseNativeForeground","_createPressabilityConfig","onPressIn","onPressMove","onPressOut","_dispatchPressedStateChange","_dispatchHotspotUpdate","render","componentDidUpdate","componentWillUnmount",""],"mappings":"AAA;ACiG;QCS;IDI;QEU;IFI;QGgB;GHY;iDIK;uDJC;EKM;iBCkB;ODQ;mBEC;OFI;kBGC;OHO;GLE;ESE;GTY;EUE;GViB;EWE;GX+F;EYE;GZE;EaE;GbE;CDC;MeM;iDfG;MeG,4Cf"}],[{"names":["","TouchableOpacity","_createPressabilityConfig","onBlur","onFocus","onPressIn","onPressOut","_setOpacityTo","_opacityActive","_opacityInactive","_getChildStyleOpacityWithDefault","render","componentDidUpdate","componentWillUnmount","React.forwardRef$argument_0"],"mappings":"AAA;ACmI;ECM;cCa;ODO;eEC;OFO;iBGG;OHS;kBIC;OJK;GDE;EMK;GNO;EOE;GPE;EQE;GRE;ESE;GTI;EUE;GVqF;EWE;GXW;EYE;GZE;CDC;oCcE;CdE"}],[{"names":["","default.get__FlatList","default.get__Image","default.get__ScrollView","default.get__SectionList","default.get__Text","default.get__View"],"mappings":"AAA;EC4B;GDE;EEC;GFE;EGC;GHE;EIC;GJE;EKC;GLE;EMC;GNE"}],[{"names":["","add","subtract","divide","multiply","modulo","diffClamp","_combineCallbacks","","maybeVectorAnim","spring","start","stop","reset","_startNativeLoop","_isUsingNativeDriver","timing","decay","sequence","onComplete","animations.forEach$argument_0","parallel","result.start","cb","result.stop","result.reset","result._startNativeLoop","result._isUsingNativeDriver","delay","stagger","animations.map$argument_0","loop","restart","forkEvent","unforkEvent","event"],"mappings":"AAA;YCiD;CDK;iBEE;CFK;eGE;CHK;iBIE;CJK;eKE;CLE;kBME;CNM;0BOE;WCK;KDG;CPI;wBSE;CTgD;eUE;gBCI;GDsB;aCG;ODE;YEE;OFE;aGE;OHE;wBIE;OJG;4BKE;OLE;CVG;egBE;gBLI;GKsB;aLI;OKE;YJE;OIE;aHE;OGE;wBFE;OEG;4BDE;OCE;ChBG;ciBE;gBNI;GMU;aNI;OME;YLE;OKE;aJE;OIE;wBHE;OGG;4BFE;OEE;CjBG;iBkBE;WPK;yBQC;ORc;KOO;UNE;KMI;WLE;yBOC;OPI;KKE;sBJE;KII;0BHE;KGE;ClBE;iBqBO;WCU;yBFM;mBGC;SHY;OEO;KDC;UGE;yBJC;OIG;KHC;WIE;yBLC;OKI;KJC;sBKE;KLI;0BME;KNE;CrBI;c4BE;C5BQ;gB6BE;mBCK;KDE;C7BE;a+BQ;WpBQ;sBqBC;OrBY;KoBU;UnBE;KmBG;WlBE;KkBI;sBjBE;KiBI;0BhBE;KgBE;C/BE;AiCE;WzBU;KyBG;CjCE;AkCE;ClCO;cmCE;CnCU"}],[{"names":["","DecayAnimation","constructor","__getNativeAnimationConfig","start","onUpdate","stop"],"mappings":"AAA;eCqC;ECW;GDQ;EEE;GFc;EGE;GHmB;EIE;GJoB;EKE;GLK;CDC"}],[{"names":["","","apis.reduce$argument_0","API.getValue","API.setWaitingForIdentifier","API.unsetWaitingForIdentifier","API.disableQueue","API.flushQueue","API.queueOperation","queue.push$argument_0","API.createAnimatedNode","API.updateAnimatedNodeConfig","API.startListeningToAnimatedNodeValue","API.stopListeningToAnimatedNodeValue","API.connectAnimatedNodes","API.disconnectAnimatedNodes","API.startAnimatingNode","API.stopAnimation","API.setAnimatedNodeValue","API.setAnimatedNodeOffset","API.flattenAnimatedNodeOffset","API.extractAnimatedNodeOffset","API.connectAnimatedNodeToView","API.disconnectAnimatedNodeFromView","API.restoreDefaultValues","API.dropAnimatedNode","API.addAnimatedEventToView","API.removeAnimatedEventFromView","setupGlobalEventEmitterListeners","RCTDeviceEventEmitter.addListener$argument_1","addWhitelistedStyleProp","addWhitelistedTransformProp","addWhitelistedInterpolationParam","isSupportedColorStyleProp","isSupportedStyleProp","isSupportedTransformProp","isSupportedInterpolationParam","validateTransform","configs.forEach$argument_0","validateStyles","validateInterpolation","generateNewNodeTag","generateNewAnimationId","assertNativeAnimatedModule","shouldUseNativeDriver","transformDataType","default.get__nativeEventEmitter"],"mappings":"AAA;MC6D;6CCwB;ODK;KDC;YGQ;GHc;2BIC;GJS;6BKC;GLO;gBMC;GNU;cOC;GPyC;kBQC;iBCe,iBD;GRI;sBUC;GVG;4BWC;GXQ;qCYC;GZG;oCaC;GbG;wBcC;GdG;2BeC;GfM;sBgBC;GhB4B;iBiBC;GjBG;wBkBC;GlBG;yBmBC;GnBG;6BoBC;GpBG;6BqBC;GrBG;6BsBC;GtBG;kCuBC;GvBU;wBwBC;GxBM;oByBC;GzBG;0B0BC;G1BY;E2BC;G3BY;A4BG;ICG;KDQ;MCK;ODQ;C5BE;A8BuE;C9BG;A+BE;C/BG;AgCE;ChCG;AiCE;CjCE;AkCE;ClCE;AmCE;CnCE;AoCE;CpCE;AqCE;kBCgB;GDM;CrCC;AuCE;CvCQ;AwCE;CxCU;AyCE;CzCE;A0CE;C1CE;A2CE;C3CE;A4CI;C5C2B;A6CE;C7Ca;E8CqB;G9CU"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","Animation","start","stop","__getNativeAnimationConfig","__debouncedOnEnd","__startNativeAnimation"],"mappings":"AAA;eCiC;ECM;YDM;EEC;GFI;EGC;GHI;EIE;GJI;EKC;GLwB;CDC"}],[{"names":["","SpringAnimation","constructor","__getNativeAnimationConfig","start","getInternalState","onUpdate","stop"],"mappings":"AAA;eCiF;ECuB;GD+D;EEE;GF0B;EGE;GHuC;EIE;GJM;EKuB;GL6F;EME;GNM;CDC"}],[{"names":["","processColor","isRgbaValue","isRgbaAnimatedValue","AnimatedColor","constructor","setValue","_withSuspendedCallbacks$argument_0","setOffset","flattenOffset","extractOffset","stopAnimation","resetAnimation","__getValue","__attach","__detach","_withSuspendedCallbacks","__callListeners","__makeNative","__getNativeConfig"],"mappings":"AAA;ACoD;CDoC;AEE;CFQ;AGE;CHQ;eIE;ECS;GDkC;EEM;iCCS;KDoB;GFiB;EIO;GJK;EKM;GLK;EMM;GNK;EOO;GPM;EQK;GRM;ESE;GTM;EUE;GVM;EWE;GXM;EYE;GZI;EaE;GbI;EcE;GdM;EeE;GfS;CJC"}],[{"names":["","flushValue","findAnimatedStyles","leaves.forEach$argument_0","_executeAsAnimatedBatch","AnimatedValue","constructor","__detach","NativeAnimatedAPI.getValue$argument_1","__getValue","setValue","_executeAsAnimatedBatch$argument_1","setOffset","flattenOffset","extractOffset","stopAnimation","resetAnimation","__onAnimatedValueUpdateReceived","interpolate","animate","animation.start$argument_1","animation.start$argument_2","stopTracking","track","_updateValue","__getNativeConfig"],"mappings":"AAA;OCkD;ECE;GDO;iBEE,qBF;CDC;AIO;CJI;eKU;ECO;GDW;EEE;wDCE;ODE;GFI;EIE;GJE;EKQ;gECU;4EDC;GLG;EOS;GPK;EQQ;GRM;ESQ;GTM;EUS;GVW;EWO;GXS;EYE;GZE;EaM;GbI;EcQ;MCU;ODI;MEC;OFM;GdI;EiBK;GjBG;EkBK;GlBK;EmBE;GnBU;EoBE;GpBM;CLC"}],[{"names":["","runAfterInteractions","Promise$argument_0","cancel","createInteractionHandle","clearInteractionHandle","setDeadline","_scheduleUpdate","_processUpdate","_addInteractionSet.forEach$argument_0","_deleteInteractionSet.forEach$argument_0"],"mappings":"AAA;ECwF;gCCS;KDU;cEI;OFE;GDE;EIK;GJM;EKK;GLM;EMU;GNE;AOc;CPQ;AQK;6BCI,qCD;gCEC,wCF;CR2B"}],[{"names":["","TaskQueue","constructor","enqueue","enqueueTasks","tasks.forEach$argument_0","cancelTasks","_queueStack.map$argument_0","queue.tasks.filter$argument_0","_queueStack.map.filter$argument_0","hasTasksToProcess","processNext","_getCurrentQueue","_genPromise","task.gen.then$argument_0","task.gen.then._catch$argument_0","setTimeout$argument_0"],"mappings":"AAA;AC2C;ECQ;GDG;EEO;GFE;EGE;kBCC,0BD;GHC;EKE;WCG;kCCE,0CD;QDC;cGC,mDH;GLC;ESY;GTE;EUK;GV0B;EWS;GXkB;EYE;YCY;ODQ;aEC;mBCC;SDG;OFC;GZC;CDC"}],[{"names":["","createNumericInterpolation","","interpolate","mapStringToNumericComponents","createStringInterpolation","outputRange.every$argument_0","output.components.every$argument_0","outputRange.map$argument_0","output.components.filter$argument_0","numericComponents._.map$argument_0","numericComponents.map$argument_0","interpolations.map$argument_0","outputRange._.components.map$argument_0","findRange","checkValidRanges","checkValidInputRange","checkInfiniteRange","AnimatedInterpolation","constructor","_getInterpolation","__makeNative","__getValue","__attach","__detach","__getNativeConfig"],"mappings":"AAA;ACuC;SCsB;GDiB;CDC;AGE;CHkE;AIK;CJsC;AKU;wBCS,oCD;QCM,yDD;wBCK;UCE;yEDE;SDC;oBGO;mCCK,0BD,CH;kDKE;yCCG,2BD;MLC;WHG;wCUC,qCV;aWG,8CX;KGE;WHE;wCUC;OVK;KGE;CLE;AcE;CdQ;AeE;CfgB;AgBE;ChBO;AiBE;CjBe;ekBE;ECO;GDY;EEE;GFU;EGE;GHG;EIE;GJO;EfE;GeI;EKE;GLE;EME;GNG;EOE;+DjBU;OiBQ;GPa;ClBC"}],[{"names":["","step0","step1","linear","ease","quad","cubic","poly","","sin","circle","exp","elastic","back","bounce","bezier","_in","out","inOut"],"mappings":"AAA;EC+D;GDE;EEK;GFE;EGQ;GHE;EIQ;GJK;EKQ;GLE;EMQ;GNE;EOQ;WCC,6BD;GPC;ESO;GTE;EUO;GVE;EWO;GXE;EYY;WJE,mEI;GZC;EaQ;WLC,8BK;GbC;EcO;GdiB;EeS;GfQ;EgBK;GhBE;EiBK;WTC,sBS;GjBC;EkBO;WVC;KUK;GlBC"}],[{"names":["","A","B","C","calcBezier","getSlope","binarySubdivide","newtonRaphsonIterate","bezier","getTForX","BezierEasing"],"mappings":"AAA;AC6B;CDE;AEC;CFE;AGC;CHE;AIG;CJE;AKG;CLE;AME;CNyB;AOE;CPgB;eQE;ECoB;GDkC;SEE;GFY;CRC"}],[{"names":["","AnimatedWithChildren","constructor","__makeNative","__addChild","__removeChild","__getChildren","__callListeners"],"mappings":"AAA;eCiB;ECG;GDG;EEE;GFY;EGE;GHa;EIE;GJgB;EKE;GLE;EME;GNU;CDC"}],[{"names":["","AnimatedNode","__attach","__detach","__getValue","__getAnimatedValue","__addChild","__removeChild","__getChildren","constructor","__makeNative","addListener","removeListener","removeAllListeners","hasListeners","_startListeningToNativeValueUpdates","NativeAnimatedHelper.nativeEventEmitter.addListener$argument_1","__onAnimatedValueUpdateReceived","__callListeners","_stopListeningForNativeValueUpdates","__getNativeTag","__getNativeConfig","toJSON","__getPlatformConfig","__setPlatformConfig"],"mappings":"AAA;eCyB;ECI,mBD;EEC;GFM;EGC,oBH;EIC;GJE;EKC,kCL;EMC,qCN;EOC;GPE;EQO;GRE;ESE;GTS;EUS;GVO;EWQ;GXK;EYO;GZK;EaE;GbE;EcE;QCiB;SDK;GdE;EgBE;GhBE;EiBE;GjBI;EkBE;GlBQ;EmBE;GnBqB;EoBC;GpBI;EqBE;GrBE;EsBE;GtBE;EuBC;GvBE;CDC"}],[{"names":["","stiffnessFromOrigamiValue","dampingFromOrigamiValue","fromOrigamiTensionAndFriction","fromBouncinessAndSpeed","normalize","projectNormal","linearInterpolation","quadraticOutInterpolation","b3Friction1","b3Friction2","b3Friction3","b3Nobounce"],"mappings":"AAA;ACkB;CDE;AEE;CFE;OGE;CHQ;OIE;ECI;GDE;EEE;GFE;EGE;GHE;EIE;GJE;EKE;GLE;EME;GNE;EOE;GPO;EQE;GRQ;CJgB"}],[{"names":["","easeInOut","TimingAnimation","constructor","__getNativeAnimationConfig","start","onUpdate","stop"],"mappings":"AAA;ACmD;CDM;eEE;ECa;GDU;EEE;GFe;EGE;GHoC;EIE;GJuB;EKE;GLM;CFC"}],[{"names":["","createAnimatedComponent","React.forwardRef$argument_0"],"mappings":"AAA;eC+B;0BCG;GDyB;CDC"}],[{"names":["","useMergeRefs",""],"mappings":"AAA;eC0B;ICI;KDU;CDG"}],[{"names":["","useAnimatedProps","useReducer$argument_0","useMemo$argument_0","AnimatedProps$argument_1","refEffect","onUpdateRef.current","","reduceAnimatedProps","useAnimatedPropsLifecycle","useEffect$argument_0","useLayoutEffect$argument_0","getEventTarget","isFabricInstance"],"mappings":"AAA;eCiC;sDCG,kBD;IEQ,+BC,6BD,CF;IImB;4BCM;ODsB;aEa;OFM;KJC;CDM;AQE;CRS;ASS;YCI;GDK;kBEE;WJE;KIE;GFC;kBEE;WJS;KIO;GFC;CTC;AYE;CZM;AaG;CbgB"}],[{"names":["","useRefEffect",""],"mappings":"AAA;eC4B;ICK;KDQ;CDG"}],[{"names":["","AnimatedProps","constructor","__getValue","__getAnimatedValue","__attach","__detach","update","__makeNative","setNativeView","__connectAnimatedView","__disconnectAnimatedView","__restoreDefaultValues","__getNativeConfig"],"mappings":"AAA;eCqB;ECK;GDU;EEE;GFc;EGE;GHS;EIE;GJO;EKE;GLW;EME;GNE;EOE;GPoB;EQE;GRQ;ESE;GTW;EUE;GVW;EWE;GXQ;EYE;GZa;CDC"}],[{"names":["","createAnimatedStyle","createStyleWithAnimatedTransform","AnimatedStyle","constructor","_walkStyleAndGetValues","__getValue","_walkStyleAndGetAnimatedValues","__getAnimatedValue","__attach","__detach","__makeNative","__getNativeConfig"],"mappings":"AAA;ACqB;CDe;AEE;CFW;eGE;ECI;GDQ;EEG;GFc;EGE;GHM;EIG;GJY;EKE;GLE;EME;GNO;EOE;GPQ;EQE;GRQ;ESE;GTgB;CHC"}],[{"names":["","AnimatedTransform","constructor","__makeNative","_transforms.forEach$argument_0","__getValue","_get$argument_0","__getAnimatedValue","__attach","__detach","__getNativeConfig","_get","_transforms.map$argument_0","value.map$argument_0"],"mappings":"AAA;eCkB;ECG;GDG;EEE;6BCC;KDO;GFE;EIE;qBCC,yCD;GJC;EME;qBDC,iDC;GNC;EOE;6BJC;KIO;GPC;EQE;6BLC;KKO;GRE;ESE;6BNG;KMiB;GTO;EUE;gCCC;kCCO;WDM;KDe;GVC;CDC"}],[{"names":["","attachNativeEvent","traverse","eventMappings.forEach$argument_0","detach","validateMapping","validate","argMapping.forEach$argument_0","AnimatedEvent","constructor","__addListener","__removeListener","_listeners.filter$argument_0","__attach","__detach","__getHandler","","_argMapping.forEach$argument_0","_callListeners","_listeners.forEach$argument_0"],"mappings":"AAA;OC8B;mBCU;GDgB;0BEY;KFM;IGI;8BDE;SCO;KHE;CDE;AKE;mBCC;GDwC;qBEM;GFE;CLC;OQE;ECO;GDc;EEE;GFE;EGE;6CCC,iCD;GHC;EKE;GLY;EME;GNO;EOE;eCI;SDM;WCO;uBdM;OcqB;+BCC;ODE;KDG;GPC;mBUE;4BCC,6BD;GVC;CRC"}],[{"names":["","AnimatedValueXY","constructor","setValue","setOffset","flattenOffset","extractOffset","__getValue","resetAnimation","stopAnimation","addListener","jointCallback","removeListener","removeAllListeners","getLayout","getTranslateTransform","__attach","__detach","__makeNative"],"mappings":"AAA;eCmC;ECY;GD0B;EEQ;GFG;EGS;GHG;EIQ;GJG;EKQ;GLG;EME;GNS;EOO;GPU;EQS;GRU;ESW;0BCE;KDE;GTM;EWQ;GXI;EYO;GZI;EaO;GbK;EcO;GdE;EeE;GfI;EgBE;GhBI;EiBE;GjBI;CDC"}],[{"names":["","isPublicInstance","isLegacyFabricInstance"],"mappings":"AAA;OCkB;CDQ;AEE;CFS"}],[{"names":["","AnimatedAddition","constructor","__makeNative","__getValue","interpolate","__attach","__detach","__getNativeConfig"],"mappings":"AAA;eCoB;ECI;GDI;EEE;GFI;EGE;GHE;EIE;GJI;EKE;GLG;EME;GNI;EOE;GPK;CDC"}],[{"names":["","AnimatedDiffClamp","constructor","__makeNative","interpolate","__getValue","__attach","__detach","__getNativeConfig"],"mappings":"AAA;eCmB;ECO;GDO;EEE;GFG;EGE;GHI;EIE;GJM;EKE;GLE;EME;GNG;EOE;GPO;CDC"}],[{"names":["","AnimatedDivision","constructor","__makeNative","__getValue","interpolate","__attach","__detach","__getNativeConfig"],"mappings":"AAA;eCoB;ECK;GDO;EEE;GFI;EGE;GHc;EIE;GJI;EKE;GLG;EME;GNI;EOE;GPK;CDC"}],[{"names":["","AnimatedModulo","constructor","__makeNative","__getValue","interpolate","__attach","__detach","__getNativeConfig"],"mappings":"AAA;eCmB;ECI;GDI;EEE;GFG;EGE;GHI;EIE;GJI;EKE;GLE;EME;GNG;EOE;GPM;CDC"}],[{"names":["","AnimatedMultiplication","constructor","__makeNative","__getValue","interpolate","__attach","__detach","__getNativeConfig"],"mappings":"AAA;eCoB;ECI;GDI;EEE;GFI;EGE;GHE;EIE;GJI;EKC;GLG;EME;GNI;EOE;GPK;CDC"}],[{"names":["","AnimatedSubtraction","constructor","__makeNative","__getValue","interpolate","__attach","__detach","__getNativeConfig"],"mappings":"AAA;eCoB;ECI;GDI;EEE;GFI;EGE;GHE;EIE;GJI;EKE;GLG;EME;GNI;EOE;GPK;CDC"}],[{"names":["","AnimatedTracking","constructor","__makeNative","__getValue","__attach","__detach","update","__getNativeConfig"],"mappings":"AAA;eCmB;ECQ;GDgB;EEE;GFK;EGE;GHE;EIE;GJW;EKE;GLG;EME;GNQ;EOE;GPc;CDC"}],[{"names":["","mockAnimationStart","","emptyAnimation.start","emptyAnimation.stop","emptyAnimation.reset","emptyAnimation._startNativeLoop","emptyAnimation._isUsingNativeDriver","mockCompositeAnimation","mockAnimationStart$argument_0","animations.forEach$argument_0","spring","timing","decay","sequence","parallel","delay","stagger","loop"],"mappings":"AAA;ACsC;SCG;GDmB;CDC;SGY,QH;QIC,QJ;SKC,QL;oBMC,QN;wBOC;GPE;+BQG;4BCI;uBCC,8BD;GDE;ERC;eWE;8BFO;KEG;CXE;eYE;8BHO;KGG;CZE;caE;CbK;iBcE;CdI;iBeG;CfK;cgBE;ChBE;gBiBE;CjBK;akBQ;ClBM"}],[{"names":["","React.forwardRef$argument_0"],"mappings":"AAA;ECoB;qEDK"}],[{"names":["","removeClippedSubviewsOrDefault","numColumnsOrDefault","isArrayLike","FlatList","scrollToEnd","scrollToIndex","scrollToItem","scrollToOffset","recordInteraction","flashScrollIndicators","getScrollResponder","getNativeScrollRef","getScrollableNode","setNativeProps","constructor","props.viewabilityConfigCallbackPairs.map$argument_0","componentDidUpdate","_captureRef","_checkProps","_getItem","_getItemCount","_keyExtractor","items.map$argument_0","_pushMultiColumnViewable","v.item.forEach$argument_0","_createOnViewableItemsChanged","","info.viewableItems.forEach$argument_0","info.changed.forEach$argument_0","_renderer","render","renderProp","item.map$argument_0"],"mappings":"AAA;AC+J;CDE;AEG;CFE;AGE;CHG;AIqI;ECK;GDI;EEU;GFU;EGQ;GHU;EIO;GJI;EKO;GLI;EMO;GNI;EOK;GPI;EQK;GRQ;ESE;GTI;EUE;GVI;EWE;sDCK;UDK;GXY;EaG;GbqB;gBcK;GdE;EeG;Gf6B;agBE;GhBkB;kBiBE;GjBa;kBkBE;aCY;4EDC;GlBO;EoBE;mBCG;KDI;GpBC;EsBE;WCQ;qCCU;2DDC;+BEE,8CF;KDM;GtBC;c0BE;mBCU;KDY;uBEE;sBCS;aDU;KFM;G1BK;E2BK;G3BgC;CJC"}],[{"names":["","ponyfill","isEqual","areInputsEqual","memoizeOne","memoized"],"mappings":"AAA;ICG;KDE;AEC;CFQ;AGC;CHU;AIE;ICM;KDa;CJE"}],[{"names":["","module.exports.get__VirtualizedList","module.exports.get__VirtualizedSectionList","module.exports.get__VirtualizedListContextResetter","module.exports.get__ViewabilityHelper","module.exports.get__FillRateHelper"],"mappings":"AAA;ECyC;GDE;EEC;GFE;EGC;GHG;EIC;GJE;EKC;GLE"}],[{"names":["","elementsThatOverlapOffsets","newRangeCount","computeWindowedRenderLimits","keyExtractor"],"mappings":"AAA;OCmB;CD4C;OEQ;CFqB;OGQ;CHmJ;OIE;CJQ"}],[{"names":["","horizontalOrDefault","initialNumToRenderOrDefault","maxToRenderPerBatchOrDefault","onStartReachedThresholdOrDefault","onEndReachedThresholdOrDefault","getScrollingThreshold","scrollEventThrottleOrDefault","windowSizeOrDefault","findLastWhere","VirtualizedList","scrollToEnd","scrollToIndex","scrollToItem","scrollToOffset","recordInteraction","_nestedChildLists.forEach$argument_0","_viewabilityTuples.forEach$argument_0","flashScrollIndicators","getScrollResponder","getScrollableNode","getScrollRef","setNativeProps","_getCellKey","_getScrollMetrics","hasMore","_getOutermostParentListRef","_registerAsNestedChild","_unregisterAsNestedChild","constructor","props.viewabilityConfigCallbackPairs.map$argument_0","_checkProps","_findItemIndexWithKey","_getItemKey","_createRenderMask","_initialRenderRegion","_ensureClosestStickyHeader","_adjustCellsAroundViewport","_findFirstChildWithMore","_nestedChildLists.anyInCell$argument_1","componentDidMount","componentWillUnmount","getDerivedStateFromProps","_pushCells","CellRenderer.props.onCellFocusCapture","CellRenderer.props.ref","_constrainToItemCount","_onUpdateSeparators","keys.forEach$argument_0","_isNestedWithSameOrientation","_getSpacerKey","_keyExtractor","render","React.cloneElement$argument_1.onLayout","findLastWhere$argument_1","ScrollView.Context.Consumer.props.children","componentDidUpdate","_captureScrollRef","_computeBlankness","_defaultRenderScrollComponent","_onCellLayout","_onCellFocusCapture","_onCellUnmount","_triggerRemeasureForChildListsInCell","_nestedChildLists.forEachInCell$argument_1","measureLayoutRelativeToContainingList","_scrollRef.measureLayout$argument_1","_scrollRef.measureLayout$argument_2","_onLayout","_onLayoutEmpty","_getFooterCellKey","_onLayoutFooter","_onLayoutHeader","_renderDebugOverlay","framesInLayout.map$argument_0","_selectLength","_selectOffset","_maybeCallOnEdgeReached","_onContentSizeChange","_convertParentScrollMetrics","_onScroll","setState$argument_0","_scheduleCellsToRenderUpdate","_onScrollBeginDrag","_onScrollEndDrag","_onMomentumScrollBegin","_onMomentumScrollEnd","_updateCellsToRender","_createViewToken","_getOffsetApprox","__getFrameMetricsApprox","_getFrameMetrics","_getNonViewportRenderRegions","_updateViewableItems"],"mappings":"AAA;ACuF;CDE;AEG;CFE;AGG;CHE;AIG;CJE;AKG;CLE;AMG;CNE;AOG;CPE;AQG;CRE;ASE;CTW;AU+B;ECI;GDiC;EEG;GFqE;EGI;GHgB;EIY;GJqB;EKE;mCCC;KDE;oCEC;KFE;GLE;EQE;GRM;ESO;GTI;EUE;GVM;EWE;GXQ;EYE;GZI;EaE;GbE;sBcG;GdE;EeE;GfE;+BgBG;GhBM;2BiBE;GjBQ;6BkBE;GlBI;EmBI;QCY;UDG;GnBiC;EqBE;GrB8C;EsBE;GtBmB;EuBE;GvBW;EwBE;GxB0C;EyBE;GzBkB;E0BE;G1Bc;E2BE;G3ByE;E4BE;0DCK;6BDC;G5BQ;E8BE;G9BO;E+BE;oCxBK;KwBE;G/BE;EgCE;GhC8D;EiCE;8BCmD,kCD;eEE;WFE;GjCS;EoCE;GpCe;wBqCE;iBCC;KDG;GrCC;EuCE;GvCM;kBwCE;mCxCC;EyCE;GzCoB;E0CE;sBCkE;aDK;sDEc,eF;WGmJ;WHkB;G1Cc;E8CE;sCvCK;OuCE;G9Ce;sB+CiD;G/CE;EgDE;GhDM;kCiDI;GjDoC;kBkDE;GlDiC;EmDE;GnDG;mBoDE;GpDM;EqDE;kDCC;KDE;GrDC;EuDE;QCW;2ClDoB;akDE;SDE;QEC;SFK;GvDQ;c0DE;G1Da;mB2DE;G3DE;E4DE;G5DE;oB6DE;G7DG;oB8DE;G9DE;E+DG;4BC6B;SDY;G/DuB;EiEE;GjEU;EkEE;GlEQ;EmEE;GnEgF;yBoEE;GpE6B;gCqEK;GrEkB;csEE;mChEC;KgEE;oBCwD;QDE;GtEY;EwEE;GxEuD;uByEE;mCnEC;KmEE;oClEC;KkEE;GzEG;qB0EE;mCpEC;KoEE;G1EO;2B2EE;mCrEC;KqEE;G3EE;yB4EE;mCtEC;KsEE;G5EI;yB6EE;kBNG;KMqB;G7EC;qB8EE;G9Ec;qB+EM;G/EW;MgFS;GhFoB;qBiFE;GjFyB;iCkFE;GlF2D;EmFE;oC5ES;K4EU;GnFC;CVC"}],[{"names":["","Batchinator","constructor","dispose","schedule","setTimeout$argument_0","InteractionManager.runAfterInteractions$argument_0","_taskHandle.cancel"],"mappings":"AAA;ACoC;ECI;GDG;EEO;GFQ;EGC;qCCI;iECC;ODK;KDC;gCGC,iCH;GHC;CDC"}],[{"names":["","clamp"],"mappings":"AAA;ACY;CDQ"}],[{"names":["","infoLog"],"mappings":"AAA;ACe;CDE"}],[{"names":["","ChildListCollection","add","remove","forEach","forEachInCell","anyInCell","size"],"mappings":"AAA;eCY;ECI;GDW;EEE;GFY;EGE;GHM;EIE;GJK;EKE;GLQ;EME;GNE;CDC"}],[{"names":["","Info","FillRateHelper","addListener","remove","_listeners.filter$argument_0","setSampleRate","setMinSampleCount","constructor","activate","deactivateAndFlush","_listeners.forEach$argument_0","computeBlankness","enabled","_resetData"],"mappings":"AAA;ACgB;CDW;AEuB;ECQ;cCS;uCCC,iCD;ODC;GDE;EIE;GJE;EKE;GLE;EME;GNM;EOE;GPK;EQE;uBCuC,0BD;GRE;EUE;GVmG;EWE;GXE;EYE;GZK;CFC"}],[{"names":["","StateSafePureComponent","constructor","setState","setState$argument_0","_installSetStateHooks","Object.defineProperty$argument_2.get","Object.defineProperty$argument_2.set"],"mappings":"AAA;eCsB;ECM;GDG;EEE;qBCK;ODW;GFI;EIE;MCK;ODM;MEC;OFE;MCG;ODM;MEC;OFE;GJE;CDC"}],[{"names":["","ViewabilityHelper","constructor","dispose","computeViewableItems","onUpdate","_viewableIndices.every$argument_0","setTimeout$argument_0","resetViewableIndices","recordInteraction","_onUpdateSync","viewableIndicesToCheck.filter$argument_0","viewableIndicesToCheck.map$argument_0","_isViewable","_getPixelsVisible","_isEntirelyVisible"],"mappings":"AAA;AC4E;ECO;GDI;EEK;GFK;EGK;GHuE;EIM;kCCiD,oCD;2CEQ;OFW;GJa;EOK;GPE;EQK;GRE;ESE;2DCe;wCDC;iCEI;OFG;GTsB;CDC;AaE;CbgB;AcE;CdO;AeE;CfM"}],[{"names":["","CellRenderer","CellRenderer.getDerivedStateFromProps","CellRenderer#_separators.highlight","CellRenderer#_separators.unhighlight","CellRenderer#_separators.updateProps","CellRenderer#updateSeparatorProps","setState$argument_0","CellRenderer#componentWillUnmount","CellRenderer#_onLayout","CellRenderer#_renderElement","CellRenderer#render"],"mappings":"AAA;eCuD;ECW;GDU;eEM;KFK;iBGC;KHK;iBIC;KJS;EKG;kBCC;MDE;GLC;EOE;GPE;cQE;GRO;ESE;GTuC;EUE;GViE;CDC"}],[{"names":["","VirtualizedListContextResetter","VirtualizedListContextProvider","useMemo$argument_0","VirtualizedListCellContextProvider"],"mappings":"AAA;OC+C;CDU;OEK;ICS;MDO;CFc;OIK;IDU,8DC;CJQ"}],[{"names":["","CellRenderMask","constructor","enumerateRegions","addCells","numCells","equals","_regions.every$argument_0","_findRegion"],"mappings":"AAA;OCkB;ECI;GDmB;EEE;GFE;EGE;GHqE;EIE;GJE;EKE;QCK;wDDG;GLG;EOE;GPkB;CDC"}],[{"names":["","VirtualizedSectionList","scrollToLocation","getListRef","render","VirtualizedList.props.getItem","VirtualizedList.props.getItemCount","_getItem","_keyExtractor","_subExtractor","_convertViewable","_onViewableItemsChanged","_renderItem","","_updatePropsFor","_updateHighlightFor","_setUpdateHighlightFor","_setUpdatePropsFor","_getSeparatorComponent","_captureRef","ItemWithSeparator","React.useEffect$argument_0","separators.highlight","separators.unhighlight","separators.updateProps"],"mappings":"AAA;ACgI;ECG;GDuB;EEE;GFE;EGE;iBCsC;oDDC;sBEE,eF;GHS;EME;GN0B;kBOG;GPG;EQE;GRsD;qBSE;GToB;4BUE;GViB;IWG;ICE;KZiD;oBaE;GbK;wBcE;GdK;2BeE;GfU;uBgBE;GhBM;EiBE;GjBsB;gBkBK;GlBE;CDC;AoBgC;kBCqC;WRK;KQG;GDC;eEQ;KFM;iBGC;KHM;iBIC;KJc;CpB6B"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","generateRequestId","getSize","NativeImageLoaderAndroid.getSize.then$argument_0","","getSizeWithHeaders","NativeImageLoaderAndroid.getSizeWithHeaders.then$argument_0","prefetchWithMetadata","prefetch","abortPrefetch","queryCache","BaseImage","ImageAnalyticsTagContext.Consumer.props.children","TextAncestor.Consumer.props.children"],"mappings":"AAA;AC4B;CDE;AEO;UCM;KDE;QEG;SFE;CFE;AKQ;UCO;KDE;QDG;SCE;CLE;AOE;CPQ;AQE;CRI;ASE;CTE;AUO;CVI;kBWqB;OCgF;aCU;aDmB;ODG;CXG"}],[{"names":["asyncGeneratorStep","","_asyncToGenerator","","Promise$argument_0","_next","_throw"],"mappings":"AAA;CCa;ACC;SCC;uBCG;MCE;ODE;MEC;OFE;KDE;GDC;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;ICoJ,4BD"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;IC+C,4BD"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","getImageSourcesFromImageProps","srcSetList.forEach$argument_0"],"mappings":"AAA;OCqB;uBCqB;KDe;CDsB"}],[{"names":["","convertObjectFitToResizeMode"],"mappings":"AAA;OCY;CDQ"}],[{"names":["","React.forwardRef$argument_0","useMemo$argument_0"],"mappings":"AAA;mBCgC;GD4B;ECG;cCa;ODO;GDuC"}],[{"names":["","RefreshControl","componentDidMount","componentDidUpdate","render","_onRefresh","_setNativeRef"],"mappings":"AAA;AC2H;ECO;GDE;EEE;GFuB;EGE;GHqB;eIE;GJS;kBKE;GLO;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","ScrollView","constructor","componentDidMount","componentDidUpdate","componentWillUnmount","getScrollResponder","getScrollableNode","getInnerViewNode","getInnerViewRef","getNativeScrollRef","scrollTo","scrollToEnd","flashScrollIndicators","scrollResponderScrollNativeHandleToKeyboard","scrollResponderZoomTo","_textInputFocusError","_inputMeasureAndScrollToKeyboard","scrollTextInputIntoVisibleRect","setTimeout$argument_0","_getKeyForIndex","_updateAnimatedNodeAttachment","_setStickyHeaderRef","_onStickyHeaderLayout","_handleScroll","_handleLayout","_handleContentOnLayout","createRefForwarder$argument_0","scrollResponderKeyboardWillShow","scrollResponderKeyboardWillHide","scrollResponderKeyboardDidShow","scrollResponderKeyboardDidHide","_handleMomentumScrollBegin","_handleMomentumScrollEnd","_handleScrollBeginDrag","_handleScrollEndDrag","_isAnimating","_handleResponderGrant","_handleResponderReject","_handleResponderRelease","_handleResponderTerminationRequest","_handleScrollShouldSetResponder","_handleStartShouldSetResponder","_handleStartShouldSetResponderCapture","_keyboardIsDismissible","_softKeyboardIsDetached","_keyboardEventsAreUnreliable","_handleTouchEnd","_handleTouchCancel","_handleTouchStart","_handleTouchMove","render","filter$argument_0","childArray.map$argument_0","StickyHeaderComponent.props.ref","StickyHeaderComponent.props.onLayout","createRefForwarder","memoize$argument_0","","Wrapper"],"mappings":"AAA;AC+sB;ECG;GDO;EEkC;GFiC;EGE;GHY;EIE;GJiB;kDKQ;GLG;qCME;GNE;oCOE;GPE;oDQE;GRE;8DSE;GTE;cUwB;GVmC;gEWU;GXS;sCYO;GZK;cagB;Gb4B;cciB;Gd4B;EeE;GfE;cgBiB;2CCG;KDkB;iBEO;OFE;GhBI;EmBE;GnBG;EoBE;GpBe;EqBE;GrBS;EsBE;GtBwB;kBuBE;GvBkB;kBwBE;GxBO;2ByBE;GzBI;M0BI,4D1B;I0BO;K1B4B;gE2BgC;G3BK;gE4BE;G5BK;+D6BE;G7BK;+D8BE;G9BK;yD+BK;G/BG;uDgCK;GhCI;qDiCS;GjCW;mDkCK;GlCc;gCmCO;GnCQ;mDoCK;GpCI;uCqCY,QrC;qDsCK;GtC4B;sDuCiB;GvCE;mDwCK;GxCM;+DyC2B;GzCiB;sE0Ca;G1CgD;0C2CK;G3CmB;2C4CO;G5CE;gD6CE;G7CI;6C8CO;G9CuB;gD+CO;G/CG;+CgDa;GhDG;8CiDa;GjDE;EkDE;QCc,0CD;gCEyB;mBCW,yCD;wBEI,sDF;OFW;GlD2I;CDC;AwDkC;8BCI;aCC;ODc;KDC;CxDM;A2DI;C3DE"}],[{"names":["","setGlobalOptions","setContext","beginScroll","endScroll"],"mappings":"AAA;oBCmC;GDmB;cEM;GFE;EGM;GHE;EIM;GJE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","splitLayoutProps"],"mappings":"AAA;eCY;CD0D"}],[{"names":["","dismissKeyboard"],"mappings":"AAA;ACgB;CDE"}],[{"names":["","Keyboard","constructor","addListener$argument_1","addListener","removeAllListeners","dismiss","isVisible","metrics","scheduleLayoutAnimation"],"mappings":"AAA;ACyG;ECU;wCCC;KDE;wCCC;KDE;GDC;EG0B;GHM;EIO;GJE;EKK;GLE;EMK;GNE;EOK;GPE;EQM;GRW;CDC"}],[{"names":["","setEnabled","configureNext","onAnimationComplete","","create","checkConfig"],"mappings":"AAA;ACkC;CDE;AEU;8BCmB;GDO;QEc,cF;6BEW,cF;QEE,cF;CFG;AKE;CLW;EMqE;GNE"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;ICkE,4BD"}],[{"names":["","processDecelerationRate"],"mappings":"AAA;ACY;CDe"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;IC4B,4BD"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;IC0K,4BD"}],[{"names":["","ScrollViewStickyHeader","callbackRef","ref.setNextHeaderY","useMemo$argument_0","useState$argument_0","useEffect$argument_0","animatedValueListener","setTimeout$argument_0","","_onLayout"],"mappings":"AAA;qBC2C;sBCiB;yBCI;KDE;GDE;IGM;cHgB;IIK;KJY;YKM;GLI;IMiB;kCCW;ODI;KNC;YKI;WGsF;KHO;GLC;oBSE;GTU;CDkC"}],[{"names":["","React.forwardRef$argument_0"],"mappings":"AAA;ECqB;wEDQ"}],[{"names":["","SectionList","scrollToLocation","recordInteraction","flashScrollIndicators","getScrollResponder","getScrollableNode","setNativeProps","render","VirtualizedSectionList.props.getItemCount","VirtualizedSectionList.props.getItem","_captureRef"],"mappings":"AAA;eC6K;ECe;GDI;EEO;GFG;EGO;GHG;EIK;GJK;EKE;GLK;EME;GNK;EOE;sBCa,qBD;iBEE,8BF;GPG;gBUK;GVE;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","DrawerLayoutAndroid","get__positions","render","_onDrawerSlide","_onDrawerOpen","_onDrawerClose","_onDrawerStateChanged","openDrawer","closeDrawer","blur","focus","measure","measureInWindow","measureLayout","setNativeProps"],"mappings":"AAA;AC4J;ECC;GDM;EEU;GF6D;mBGI;GHQ;kBIE;GJI;mBKE;GLI;0BMI;GNM;EOK;GPE;EQK;GRE;ESyC;GTE;EUE;GVE;EWE;GXE;EYE;GZE;EaE;GbU;EcE;GdE;CDC"}],[{"names":["","mergePropsStack","propsStack.reduce$argument_0","createStackEntry","StatusBar","setHidden","setBarStyle","setNetworkActivityIndicatorVisible","setBackgroundColor","setTranslucent","pushStackEntry","popStackEntry","replaceStackEntry","componentDidMount","componentWillUnmount","componentDidUpdate","_updatePropsStack","setImmediate$argument_0","render"],"mappings":"AAA;AC8G;ICK;KDO;CDG;AGM;CH6B;AIgE;EC4C;GDQ;EEO;GFQ;EGM;GHS;EIO;GJqB;EKM;GLO;EMQ;GNK;EOO;GPM;EQQ;GRQ;ESK;GTM;EUE;GVI;EWE;GXK;6BYK;8CCG;KDqE;GZC;EcE;GdE;CJC"}],[{"names":["","NativeStatusBarManager.getConstants","NativeStatusBarManager.setColor","NativeStatusBarManager.setTranslucent","NativeStatusBarManager.setStyle","NativeStatusBarManager.setHidden"],"mappings":"AAA;ECmC;GDQ;EEE;GFE;EGE;GHE;EIO;GJE;EKE;GLE"}],[{"names":["","NativeStatusBarManager.getConstants","NativeStatusBarManager.getHeight","NativeStatusBarManager.setNetworkActivityIndicatorVisible","NativeStatusBarManager.addListener","NativeStatusBarManager.removeListeners","NativeStatusBarManager.setStyle","NativeStatusBarManager.setHidden"],"mappings":"AAA;EC2C;GDQ;EEG;GFE;EGE;GHE;EIE;GJE;EKE;GLE;EMQ;GNE;EOK;GPE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","ImageBackground","setNativeProps","_captureRef","render"],"mappings":"AAA;AC8C;ECC;GDM;gBEI;GFS;EGE;GHyC;CDC"}],[{"names":["","InputAccessoryView","render"],"mappings":"AAA;ACuF;ECC;GDkB;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","KeyboardAvoidingView","constructor","_relativeKeyboardHeight","_onKeyboardChange","_onLayout","_updateBottomIfNecessary","componentDidMount","componentWillUnmount","_subscriptions.forEach$argument_0","render"],"mappings":"AAA;AC6D;ECO;GDI;EEE;GF+B;sBGE;GHI;cIE;GJe;6BKE;GLwB;EME;GNW;EOE;gCCC;KDE;GPC;ESE;GT0E;CDC"}],[{"names":["","confirmProps","Modal","constructor","componentDidMount","ModalEventEmitter.addListener$argument_1","componentWillUnmount","componentDidUpdate","render","RCTModalHostView.props.onDismiss","_shouldSetResponder"],"mappings":"AAA;ACiK;CDY;AEE;ECW;GDM;EEE;QCK;SDI;GFG;EIE;GJI;EKE;GLI;EME;mBCkC;SDI;GNqB;EQG;GRE;CFC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","getI18nManagerConstants","module.exports.getConstants","module.exports.allowRTL","module.exports.forceRTL","module.exports.swapLeftAndRightInRTL"],"mappings":"AAA;ACkB;CDW;gBEG;GFM;YGE;GHM;YIE;GJM;yBKE;GLM"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","Pressable","useImperativeHandle$argument_1","useMemo$argument_0","onPressIn","onPressOut","usePressState"],"mappings":"AAA;AC0M;oCCmC,qBD;IE2C;MCc;ODQ;MEE;OFQ;MFC;CDkC;AME;CNG"}],[{"names":["","useAndroidRippleForView","useMemo$argument_0","onPressIn","onPressMove","onPressOut"],"mappings":"AAA;eCuC;iBCa;QCwB;SDU;QEC;SFS;QGC;SHK;GDI;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","returnsFalse","returnsTrue","Switch","handleChange","React.useLayoutEffect$argument_0"],"mappings":"AAA;qBCwF,WD;oBEC,UF;qBGiD;uBCuB;GDM;wBEE;GFiB;CHmE"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","emptyFunctionThatReturnsTrue","InternalTextInput","useLayoutEffect$argument_0","","setLocalRef","Object.assign$argument_1.clear","Object.assign$argument_1.isFocused","Object.assign$argument_1.getNativeRef","Object.assign$argument_1.setSelection","_onChange","_onChangeSync","_onSelectionChange","_onFocus","_onBlur","_onScroll","React.useMemo$argument_0","onPress","TextInput"],"mappings":"AAA;qCCi7B,UD;AEiH;kBCuD;GD+B;kBCY;aCM;ODM;GDE;IGG;UC4B;WDU;UEE;WFE;UGC;WHE;UIC;WJU;KHG;oBQS;GRiB;wBSE;GTkB;6BUE;GVa;mBWE;GXK;kBYE;GZK;oBaE;GbE;IckC;eCC;ODM;MdK;CF+I;qBkBuF;ClBkE"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;ICoC,4BD"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;ICwC,4BD"}],[{"names":["","extractSingleTouch","TouchableMixin.componentDidMount","TouchableMixin.componentWillUnmount","TouchableMixin.touchableGetInitialState","TouchableMixin.touchableHandleResponderTerminationRequest","TouchableMixin.touchableHandleStartShouldSetResponder","TouchableMixin.touchableLongPressCancelsPress","TouchableMixin.touchableHandleResponderGrant","TouchableMixin.touchableHandleResponderRelease","TouchableMixin.touchableHandleResponderTerminate","TouchableMixin.touchableHandleResponderMove","TouchableMixin.touchableHandleFocus","TouchableMixin.touchableHandleBlur","TouchableMixin._remeasureMetricsOnActivation","TouchableMixin._handleQueryLayout","TouchableMixin._handleDelay","TouchableMixin._handleLongDelay","TouchableMixin._receiveSignal","TouchableMixin._cancelLongPressDelayTimeout","TouchableMixin._isHighlight","TouchableMixin._savePressInLocation","TouchableMixin._getDistanceBetweenPoints","TouchableMixin._performSideEffectsForTransition","TouchableMixin._startHighlight","TouchableMixin._endHighlight","setTimeout$argument_0","renderDebugView"],"mappings":"AAA;2BCuB;CDsB;qBEyU;GFI;wBGO;GHI;4BIS;GJS;8CKQ;GLE;0CMO;GNE;kCOK;GPE;iCQS;GRoC;mCSO;GTG;qCUO;GVG;gCWO;GX2E;wBYY;GZE;uBaY;GbE;iCcgF;GdW;sBeI;GfwB;gBgBI;GhBG;oBiBI;GjBS;kBkBY;GlBqC;gCmBI;GnBG;gBoBE;GpBK;wBqBI;GrBO;6BsBE;GtBS;oCuBe;GvB2D;mBwBI;GxBG;iByBI;+CCM;SDE;GzBK;mB2BwB;G3BY"}],[{"names":["","BoundingDimensions","prototype.destructor","getPooledFromElement"],"mappings":"AAA;ACqB;CDG;0CEE;CFG;0CGM;CHK"}],[{"names":["","oneArgumentPooler","twoArgumentPooler","threeArgumentPooler","fourArgumentPooler","standardReleaser","addPoolingTo"],"mappings":"AAA;0BCsB;CDS;0BEI;CFS;4BGI;CHS;2BII;CJS;yBKM;CLU;qBMgB;CNoB"}],[{"names":["","Position","prototype.destructor"],"mappings":"AAA;ACsB;CDG;gCEE;CFG"}],[{"names":["","TouchableHighlight","_createPressabilityConfig","onBlur","onFocus","onPress","setTimeout$argument_0","onPressIn","onPressOut","_createExtraStyles","_showUnderlay","_hideUnderlay","_hasPressHandler","render","componentDidMount","componentDidUpdate","componentWillUnmount","React.forwardRef$argument_0"],"mappings":"AAA;AC2J;ECU;cCc;ODO;eEC;OFO;eGE;yCCM;WDE;OHK;iBKC;OLS;kBMC;ONO;GDE;EQE;GRU;ESE;GTQ;EUE;GVc;EWE;GXO;EYE;GZmF;EaE;GbE;EcE;GdE;EeE;GfM;CDC;oCiBE;CjBE"}],[{"names":["","TouchableWithoutFeedback","render","componentDidUpdate","componentWillUnmount","createPressabilityConfig"],"mappings":"AAA;ACqH;ECK;GD8D;EEE;GFE;EGE;GHE;CDC;AKE;CLwB"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","showActionSheetWithOptions","showShareActionSheetWithOptions","dismissActionSheet"],"mappings":"AAA;ECyC;GDwD;EEyB;GFuB;sBGE;GHK"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","nativeEventEmitter.addListener$argument_1","module.exports.getColorScheme","module.exports.setColorScheme","module.exports.addChangeListener"],"mappings":"AAA;ICwC;KDS;EEe;GFqB;EGE;GHW;EIK;GJE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","AppState","constructor","emitter.addListener$argument_1","NativeAppState.getCurrentAppState$argument_0","addEventListener"],"mappings":"AAA;ACqC;ECM;+CCsB;ODG;wCEM;OFO;GDE;EIQ;wDFY;SEE;0DFS;SEO;GJG;CDC"}],[{"names":["","logError"],"mappings":"AAA;iBCiB;CDO"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","module.exports.getString","module.exports.setString"],"mappings":"AAA;ECwB;GDE;EEU;GFE"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","addMenuItem","reload","onFastRefresh","emitter.addListener$argument_1"],"mappings":"AAA;ECqB,yDD;EEC,gCF;EGC,wBH;ICgB;6DGY;OHI;KDE;IEC;KFM;IGC;KHE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","Linking","constructor","addEventListener","openURL","canOpenURL","openSettings","getInitialURL","sendIntent","Promise$argument_0","_validateURL"],"mappings":"AAA;AC6B;ECC;GDE;EEQ;GFM;EGO;GHO;EIO;GJO;EKO;GLM;EMQ;GNI;EOS;yBCW,qDD;GPE;ESE;GTM;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","install","console.error","console.warn","RCTLog.setWarningHandler$argument_0","uninstall","isInstalled","ignoreLogs","ignoreAllLogs","clearAllLogs","addLog","addException","isRCTLogAdviceWarning","isWarningModuleWarning","registerWarning","registerError"],"mappings":"AAA;IC8C;wBCmB;SDE;uBEE;SFE;+BGU;OHE;KDC;IKE;KLa;IME;KNE;IOE;KPE;IQE;KRE;ISE;KTE;IUE;KVI;IWE;KXI;gCYG;GZI;iCaE;GbE;0BcE;Gd0B;wBeI;GfqD;ICG;KDE;IKE;KLE;IME;KNE;IOE;KPE;IQE;KRE;ISE;KTE;IUE;KVE;IWE;KXE"}],[{"names":["","_initializeGestureState","_updateGestureStateOnMove","create","panHandlers.onStartShouldSetResponder","panHandlers.onMoveShouldSetResponder","panHandlers.onStartShouldSetResponderCapture","panHandlers.onMoveShouldSetResponderCapture","panHandlers.onResponderGrant","panHandlers.onResponderReject","panHandlers.onResponderRelease","panHandlers.onResponderStart","panHandlers.onResponderMove","panHandlers.onResponderEnd","panHandlers.onResponderTerminate","panHandlers.onResponderTerminationRequest","getInteractionHandle","clearInteractionHandle"],"mappings":"AAA;ECoS;GDY;EE0B;GFoC;EGkC;MCsB;ODI;MEC;OFI;MGC;OHW;MIE;OJe;MKE;OLgB;MME;ONO;MOE;OPQ;MQE;ORM;MSE;OTgB;MUE;OVS;MWE;OXQ;MYE;OZI;MaI;ObE;GHE;AiBG;CjBa"}],[{"names":["","centroidDimension","currentCentroidXOfTouchesChangedAfter","currentCentroidYOfTouchesChangedAfter","previousCentroidXOfTouchesChangedAfter","previousCentroidYOfTouchesChangedAfter","currentCentroidX","currentCentroidY"],"mappings":"AAA;qBC0B;GDuD;yCEE;GFU;yCGE;GHU;0CIE;GJU;0CKE;GLU;oBME;GNO;oBOE;GPO"}],[{"names":["","PermissionsAndroid","checkPermission","check","requestPermission","request","Promise$argument_0","NativeDialogManagerAndroid.showAlert$argument_1","NativeDialogManagerAndroid.showAlert$argument_2","requestMultiple"],"mappings":"AAA;ACuF;EC2D;GDiB;EEQ;GFc;EGgB;GHgB;EIQ;2BCuB;YCU,kDD;YEC;6EFC;SDE;GJI;EQS;GRgB;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","PushNotificationIOS","presentLocalNotification","scheduleLocalNotification","cancelAllLocalNotifications","removeAllDeliveredNotifications","getDeliveredNotifications","removeDeliveredNotifications","setApplicationIconBadgeNumber","getApplicationIconBadgeNumber","cancelLocalNotifications","getScheduledLocalNotifications","addEventListener","PushNotificationEmitter.addListener$argument_1","removeEventListener","requestPermissions","abandonPermissions","checkPermissions","getInitialNotification","NativePushNotificationManagerIOS.getInitialNotification.then$argument_0","getAuthorizationStatus","constructor","Object.keys.forEach$argument_0","finish","getMessage","getSound","getCategory","getAlert","getContentAvailable","getBadgeCount","getData","getThreadID"],"mappings":"AAA;ACmG;ECuB;GDM;EEO;GFM;EGO;GHM;EIO;GJM;EKO;GLQ;EMO;GNM;EOO;GPM;EQO;GRM;ESO;GTM;EUO;GVM;EWQ;QCe;SDE;QCK;SDE;QCK;SDE;QCK;SDE;GXI;EaQ;GbiB;EcU;Gd8B;EeO;GfM;EgBQ;GhBO;EiBQ;MCM;ODE;GjBE;EmBK;GnBS;EoBQ;uCCW;ODY;GpBS;EsBQ;GtBkB;EuBK;GvBG;EwBO;GxBE;EyBO;GzBE;E0BO;G1BE;E2BO;G3BE;E4BO;G5BE;E6BO;G7BE;E8BO;G9BE;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","get","set","watchKeys","clearWatch"],"mappings":"AAA;ECa;GDG;EEE;GFE;EGE;GHG;EIE;GJE"}],[{"names":["","Share","share","NativeShareModule.share.then$argument_0","Promise$argument_0","NativeActionSheetManager.showShareActionSheetWithOptions$argument_1","NativeActionSheetManager.showShareActionSheetWithOptions$argument_2"],"mappings":"AAA;ACqC;ECqC;QCkC;UDG;yBEG;UCwB,sBD;UEC;WFY;OFE;GDI;CDY"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","show","showWithGravity","showWithGravityAndOffset"],"mappings":"AAA;QC4C;GDE;mBEE;GFM;4BGE;GHc"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","useAnimatedValue"],"mappings":"AAA;eCe;CDS"}],[{"names":["","useColorScheme","useSyncExternalStore$argument_0","","useSyncExternalStore$argument_1"],"mappings":"AAA;eCiB;ICE;aCE,qCD;KDC;IGC,iCH;CDE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","h","q","n$argument_0","m$argument_0","a$argument_0","r"],"mappings":"AAA;oCCS,+DD,iHE,mFC,uDD,YE,sCC,6BD,EF,oBF;AMC,2FN"}],[{"names":["","useWindowDimensions","useState$argument_0","useEffect$argument_0","handleChange",""],"mappings":"AAA;eCiB;+CCG,8BD;YEC;ICC;KDa;WEM;KFE;GFC;CDE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","vibrateByPattern","setTimeout$argument_0","vibrateScheduler","vibrate","cancel"],"mappings":"AAA;ACyB;aCc,iDD;CDC;AGE;IDoB,0DC;CHG;WIQ;GJwB;UKM;GLM"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","YellowBox","YellowBox.ignoreWarnings","YellowBox.install","YellowBox.uninstall","YellowBox#render"],"mappings":"AAA;cCqB;ICC;KDM;IEE;KFK;IGE;KHK;IIE;KJE;GDC;cCE;ICC;KDE;IEE;KFE;IGE;KHE;IIE;KJE;GDC"}],[{"names":["","DynamicColorIOS"],"mappings":"AAA;+BCmB;CDE"}],[{"names":["","Section","App"],"mappings":"AAA;AC+B;CDwB;AEE;CFuC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","Platform.select$argument_0.ios","Platform.select$argument_0._default"],"mappings":"AAA;OCwB;GDM;WEC;GFM"}],[{"names":["","Header"],"mappings":"AAA;eCoB;CD4B"}],[{"names":["","HermesBadge"],"mappings":"AAA;oBCmB;CDkB"}],null,[{"names":[""],"mappings":"AAA"}],[{"names":["","LinkList","links.map$argument_0","TouchableOpacity.props.onPress"],"mappings":"AAA;iBC4E;iBCI;qBCY,4BD;ODc;CDG"}],[{"names":["","openURLInBrowser"],"mappings":"AAA;ACc;CDM"}],[{"names":["","getDevServer"],"mappings":"AAA;AC2B;CDa"}],[{"names":["","Platform.select$argument_0.ios","Platform.select$argument_0._default"],"mappings":"AAA;OCwB;GDK;WEC;GFK"}]],"x_hermes_function_offsets":{"0":[0,13114,13397,13426,13519,13572,13676,13837,13931,13967,13999,14049,14109,14438,14474,14508,14542,15214,15230,15521,15551,15614,15623,16007,16064,16129,16288,16326,16377,16445,16513,16573,16622,16820,16877,16882,16910,16930,17819,17860,18150,18199,18369,18455,19106,19119,19132,19291,19389,19412,19428,19439,19455,19471,19482,19521,19546,19585,19642,19658,19691,19728,19732,19767,19883,19888,19902,19911,19942,19973,20073,20136,20151,20241,20358,20373,20483,20604,20713,20809,20823,22084,22115,22147,22174,22201,22228,22255,22282,22309,22341,22368,22400,22453,22480,22512,22539,22571,22598,22630,22657,22684,22711,22738,22765,22792,22819,22846,22873,22900,22927,22954,22986,23013,23040,23067,23094,23147,23174,23201,23233,23265,23298,23325,23352,23379,23406,23433,23465,23497,23529,23561,23593,23620,23652,23705,23732,23759,23786,23813,23840,23867,23894,23927,23959,23991,24023,24055,24082,24109,24141,24174,24201,24228,24255,24288,24320,24352,24385,24394,24418,24473,24528,24583,24638,25236,25320,25378,25462,25520,25604,25662,25699,25825,25862,25983,26067,26125,26162,26288,26325,26434,26503,26507,26536,26615,26719,26893,26982,27069,27118,27146,27291,27460,27513,27642,27681,27815,27840,28015,28050,28080,28143,28260,28323,28382,28431,28511,28560,28638,28701,28947,28996,29030,29079,29130,29202,29332,29417,29480,29565,29628,29827,29884,30005,30013,30076,30209,30225,30274,30278,30302,30350,30738,30854,30875,31010,31091,31110,31185,31205,31415,31442,31679,32002,32166,32199,32285,32354,32486,32570,32589,32628,32962,32990,33022,33129,33162,33225,33347,33396,33426,33475,34008,34057,34091,34180,34225,34692,34953,35011,35047,35098,35129,35225,35246,35278,35312,35321,35355,35391,35420,35482,35621,35945,35949,35965,36042,36084,36178,36719,36893,36979,37159,37304,37368,37372,37435,37476,37560,37629,37705,37727,37844,37987,38509,38713,38733,38852,38893,38968,39026,39160,39348,39366,39521,39678,39839,39994,40023,40163,40231,40301,40619,40640,40695,40735,40775,40815,40857,40897,40935,40973,41011,41049,41087,41125,41163,41201,41239,41277,41315,41353,41357,41395,41433,41471,41509,41547,41585,41623,41661,41699,41788,41891,42229,42273,42554,42682,42784,42821,42933,42984,43025,43040,43059,43084,43147,43179,43313,43420,43808,43924,43945,43966,44025,44040,44428,44544,44565,44953,45069,45090,45191,45318,45355,45505,45613,45654,45695,45796,45841,45882,45927,45946,46036,51897,51980,52022,52120,52192,52293,52297,52301,52514,52622,52704,52744,52757,52770,52790,52828,53101,53227,53353,53471,53606,53668,53728,53764,53889,53991,54072,54186,54254,54306,54814,54879,55249,55358,55557,55665,55854,55913,56079,56133,56226,56231,56298,56793,57103,57223,57265,57778,57812,57886,57909,57982,58053,58360,58787,58892,58997,59852,59867,59928,60095,60167,60464,60553,60606,61011,61328,61728,61778,61821,61852,61933,62100,62205,62265,62286,62347,62439,62470,62518,62529,62592,62635,62747,62773,62802,62877,63035,63116,63254,63313,63565,63736,63937,64196,64282,64303,64341,64465,64544,64663,64711,64798,64929,64979,65056,65086,65258,65342,65569,66447,66562,66646,66769,66996,67104,67522,67792,67862,67978,68002,68157,68232,68279,68370,68410,68521,68568,68651,68895,69030,69116,69439,69773,70162,70824,70851,71662,71689,72686,72723,72806,72844,72995,73042,73300,73366,73387,73480,73746,73805,74026,74055,74615,74800,74804,75095,75230,75284,75317,75358,75407,75463,75589,75725,75746,75834,76011,76044,76077,76107,76140,76218,76236,76255,76345,76349,76442,76539,76662,76790,76811,76955,77299,77343,77408,77476,77594,77639,77816,77825,77912,77965,78137,78157,78186,78352,78577,78658,78843,79177,79358,79745,79804,80019,81622,81896,82006,82027,82951,83011,83140,84080,84153,84258,84919,84991,85225,85836,85946,86316,86490,86717,89245,89643,89715,89752,90200,90301,90378,90483,90531,90963,91067,91145,91362,92092,92169,92918,93028,93189,93458,94147,95618,95730,95780,96073,96197,96576,96609,97140,98599,98637,98756,98926,98965,99067,99140,99341,99439,100189,100207,101332,101423,101677,101900,102034,102153,102198,102353,102395,102423,102516,102816,103386,103423,103485,103521,103618,103808,103888,104016,104179,104183,104307,104332,104352,104434,104508,104528,104626,104630,104661,104799,104803,104833,104837,104851,105174,105183,106869,106889,107128,107144,107188,107432,107538,107581,107628,107675,107731,107787,107911,107992,108243,108353,108400,108434,108567,108709,108842,108891,108981,109014,109044,109097,109218,109249,109274,109351,109355,109586,109669,109691,109731,109785,109807,109868,109922,110301,110402,110679,110795,113308,113492,113513,113534,113564,113621,113744,113836,114089,114202,114260,114288,114309,114330,114606,114728,114817,115087,115120,115233,115386,115390,115614,115664,115678,115698,115712,115732,115746,115766,115780,115800,115877,115940,116126,116183,116300,116314,116377,116511,116560,116605,116662,116775,116808,116947,116972,117428,117515,117525,117534,117544,117554,117581,117609,117636,117664,117742,117752,117761,117771,117781,117808,117835,117862,117889,117966,118143,118180,118568,118684,118705,119262,119295,119408,119561,119565,119595,119614,119677,119794,119857,119964,120231,120297,120494,120611,120726,120871,121305,121450,121465,121598,121819,122063,122089,122145,122329,122533,122546,122744,122775,122795,122820,122848,122876,122904,122928,122953,123341,123457,123478,123909,123939,124182,124193,124216,124425,124501,124526,124632,124672,124682,124716,124738,124812,124833,124871,125103,125185,125272,125378,125418,126031,126050,126359,126613,126731,126973,127140,127262,127519,127552,127665,127818,127822,127885,128055,128185,128245,128324,128368,128498,128604,128680,128690,128700,128710,128840,128969,129082,129092,129102,129112,129122,129205,129282,129472,129505,129648,129801,129805,129819,129886,130367,130471,130757,130790,130903,130980,131132,131203,131322,131582,131651,131700,131752,131823,131993,132111,132160,132313,132317,132367,132591,132738,132797,133028,133071,133154,133418,133528,133770,133880,133990,134064,134077,134529,134718,135166,135282,135303,135336,135369,135402,135436,135549,135656,135683,135744,135903,135931,135973,136038,136073,136144,136153,136224,136233,136411,136415,136440,136470,136504,136657,136712,136816,137016,137054,137271,137503,137569,137695,137757,137838,137882,137926,138041,138344,138423,138443,138464,138677,138782,139064,139083,139191,139224,139293,139405,139778,139805,139832,139895,139955,139974,140034,140088,140149,140170,140230,140377,140411,140484,140545,140706,140715,140730,140766,140807,140859,140917,141033,141910,141961,142098,142152,142156,142160,142164,142200,142239,142266,142327,142542,142577,142612,142641,142674,142734,142770,142804,142845,143338,143733,143825,143864,143930,144051,144185,144201,144223,144238,144243,144310,144416,144428,144433,144560,144596,144601,144607,144695,144781,144973,145030,145454,145538,145774,145921,146026,146159,146233,146693,146745,146783,146816,146849,146882,146915,146943,146975,147447,147487,147546,147940,148003,148091,148127,148215,148295,148364,148433,148588,148614,148769,148795,148923,148949,149008,149161,149224,149358,149479,149498,149517,149579,149598,149780,149785,149952,149988,149997,150059,150095,150104,150149,150537,150653,150674,150757,151008,151080,151104,151156,151316,151350,151359,151787,151814,151841,151874,151907,151940,151973,152000,152027,152054,152081,152114,152147,152180,152213,152720,152753,152867,153020,153024,153087,153138,153772,154020,154134,154145,154399,154521,154987,155089,155152,155348,155442,155576,155648,155845,155892,155911,156250,156305,156334,156373,156468,156482,156496,156689,157432,157480,157528,157576,157624,157672,157720,157882,157960,157993,158173,158271,158291,158362,158544,158654,158717,158837,159039,159077,159145,159186,159387,159418,159602,159762,159846,160008,160121,160171,160225,160279,160342,160828,160944,160965,161001,161022,161047,161072,161101,161130,161155,161193,161365,161482,161536,161552,161737,161797,161812,161837,161889,161934,161988,162021,163057,163110,163262,163461,163502,163537,163575,163607,163657,163880,163912,164026,164090,164115,164142,164169,164197,164222,164284,164325,164400,164645,164707,164822,164846,165077,165106,165131,165155,165199,165203,165208,165213,165218,165243,165307,165377,165420,165462,165490,165515,165558,165583,165608,165633,165703,165731,165767,165771,166083,166292,166794,166932,167019,167023,167027,167031,167035,167039,167043,167047,167641,167757,167778,167810,168261,168353,168528,168707,168737,168825,168839,168854,168864,168874,168884,168894,168917,168927,168931,169111,169138,169196,169397,169690,169710,169741,169979,170089,170143,170173,170668,170760,170903,171193,171595,171628,171741,171894,171898,171958,171977,172114,172193,172361,172413,172443,172473,172693,172822,173028,173115,173177,173311,173401,173429,173463,173650,173688,173805,173857,173898,173948,174004,174047,174075,174318,174352,174591,174979,175095,175116,175194,175317,176411,176446,176572,176606,176677,176712,176721,176862,176887,176922,176955,177030,177074,177123,177152,177180,177238,177296,177422,177528,177638,178295,178536,178729,178893,178924,178962,179007,179807,179886,180033,180145,180193,180277,180511,180562,181304,181325,181520,181574,181601,181649,181676,181724,181751,181808,181862,181891,181944,182010,182080,182111,182157,182194,182237,182325,182369,182393,182437,182461,182505,182544,182595,182705,182756,182872,182921,183512,183545,183658,183811,183815,184053,184534,184544,184723,184793,185087,185171,185310,185349,185363,185505,185691,185799,185942,186141,186204,186369,186418,186507,186895,187011,187032,187086,187166,187235,187268,187411,187564,187568,187696,187810,187876,187897,188185,188218,188331,188484,188488,188763,188852,188880,189021,189133,189246,189297,189409,189460,189511,189658,189709,189760,189830,189840,189850,189860,190248,190364,190385,190725,190755,190999,191107,191139,191179,191213,191247,191281,191315,191349,191383,191415,191499,191591,192001,192332,192366,192400,192434,192447,192481,192515,192549,192583,192617,192651,192706,192719,192809,192843,192954,192958,193508,193541,193684,193837,193841,193928,194000,194089,194194,194283,194379,194473,194539,194558,194586,194631,194679,194839,194925,194956,195382,195586,195609,196017,196207,196238,196312,196316,196378,196766,196882,196903,196980,196986,197205,197232,197259,197286,197313,197340,197367,197399,197426,197453,197480,197552,197691,198079,198195,198216,198264,198455,198843,198959,198980,199072,199249,199431,199445,199497,199564,199568,199594,199598,199602,199606,199640,199704,199787,200175,200291,200312,200967,200978,200992,201006,201030,201153,201240,201421,201447,201479,201506,201533,201563,201579,201635,201649,201903,201912,202171,202180,202221,202253,202262,202266,202372,202525,202571,202671,202711,202801,202810,202814,203127,203161,203192,203347,203378,203513,203549,203585,203701,203726,204029,204417,204533,204554,204942,205058,205079,205108,205139,205145,205214,205249,205268,205277,205316,205348,205364,205645,205678,205791,205944,205948,206011,206061,206449,206565,206586,206898,207014,207035,207332,207874,208312,208428,208449,208475,208505,209545,209612,209666,209670,209724,210048,210111,210155,210214,210230,210301,211001,211006,211079,211121,211243,211312,211381,211385,211389,211393,211397,211485,211518,211556,211588,211625,211643,211677,211682,211723,212130,212197,212228,212238,212260,212310,212351,212411,212432,212464,212492,212496,212524,212555,212579,212615,212647,212679,212710,212746,212773,212800,212836,212860,213517,213633,213654,213687,213800,213953,213957,214094,214248,214252,214285,214772,214792,215299,215415,215436,216234,216258,216379,216422,216984,217100,217121,217418,217427,217743,217859,217880,218177,218220,218267,218578,218692,218696,218759,218815,218885,219347,219492,219637,219860,220137,220646,220666,220857,220872,220909,220981,221126,221192,221295,221423,222568,222699,222902,223183,223272,223411,223500,223915,223956,223998,224061,224105,227341,227433,227499,227519,227524,227544,227603,227646,227827,228200,228263,228352,228386,228455,228475,228790,228824,228893,228935,229038,229109,229137,229196,229308,229403,229482,229580,229620,229634,229785,230192,230308,230329,230365,230410,230432,230455,230534,230700,230846,231101,231171,231188,231229,231294,231422,231458,231543,231625,231681,231812,231924,232021,232035,232060,232198,232353,232385,232437,232508,232551,232598,232602,232995,233104,233135,233184,233418,233474,233498,233905,234021,234042,234078,234192,234343,234514,234643,234689,234853,234984,235094,235341,235474,235694,235886,235971,236006,236037,236073,236118,236208,236992,237134,237156,237190,237233,237360,237512,237638,237809,238304,238348,238447,238565,238623,238695,238729,238758,238882,238912,239057,239287,239339,240250,240423,240465,240669,240674,241070,241186,241207,241212,241307,241377,241760,241876,241897,241953,241963,242111,242180,242222,242292,242324,242377,242765,242881,242902,243143,243169,243196,243223,243250,243277,243304,243331,243358,243385,243412,243444,243471,243503,243535,243583,243678,243687,243885,243894,243936,243964,243992,243996,244000,244114,244200,244239,244278,244315,245432,245548,245569,245578,245613,245627,246103,246123,246128,246207,246425,246535,246805,246838,246951,247104,247108,247171,247269,247408,247583,247849,247883,247925,247959,247993,248027,248042,248072,249085,249163,249185,249377,249421,249539,249665,250138,250535,250550,250559,250593,250597,250708,250746,250773,250794,250812,250838,250858,250882,250905,250935,256835,256918,256960,257058,257130,257231,257235,257239,257452,257560,257642,257682,257695,257708,257728,257766,258039,258165,258291,258409,258544,258606,258666,258702,258827,258929,259010,259124,259192,259244,259752,259817,260187,260296,260495,260603,260792,260851,261017,261071,261164,261191,261206,261267,261434,261512,261721,261788,262283,262593,262713,262755,263268,263302,263376,263447,263754,264181,264286,264391,265246,265269,265342,265431,265484,265889,266206,266606,266656,266699,266730,266811,266978,267083,267143,267164,267208,267315,267413,267437,267468,267516,267527,267590,267633,267745,267771,267800,267875,268033,268114,268252,268311,268563,268734,268935,269194,269274,269360,269381,269419,269543,269622,269741,269789,269874,270005,270055,270132,270162,270331,270415,270642,271520,271635,271719,271842,272069,272177,272594,272864,272934,273050,273074,273229,273304,273351,273442,273482,273593,273640,273723,273967,274102,274188,274511,274845,275234,275896,275923,276734,276761,277758,277795,277878,277916,278067,278114,278372,278438,278459,278552,278818,278877,279098,279127,279687,279872,279876,280167,280302,280356,280389,280430,280479,280534,280660,280796,280817,280905,281082,281115,281148,281178,281211,281289,281307,281326,281416,281420,281513,281610,281733,281861,281882,282025,282367,282411,282476,282544,282588,282633,282810,282819,282906,282959,283131,283151,283180,283346,283571,283652,283837,284171,284352,284739,284798,285013,286615,286889,286999,287020,287944,288004,288133,289072,289145,289250,289911,289983,290217,290828,291002,291229,293932,294330,294402,294439,294887,294988,295065,295170,295217,295503,295713,296370,296418,297203,297307,297385,297783,299434,299765,300457,300567,300688,300957,301646,303117,303229,303279,303572,303696,304075,304108,304639,306098,306136,306255,306425,306464,306566,306639,306840,306938,307688,307706,308831,308922,309176,309399,309532,309651,309696,309851,309893,309921,310014,310314,310884,310921,310983,311019,311116,311303,311383,311511,311874,311878,312002,312027,312085,312113,312133,312215,312289,312309,312407,312411,312442,312580,312584,312614,312618,312632,312955,312964,314650,314670,314909,314936,315225,315257,315316,315426,315506,315541,315588,315635,315699,315764,315883,315983,316017,316150,316292,316425,316474,316564,316597,316627,316680,316801,316832,316857,316934,316938,317169,317252,317274,317314,317368,317390,317451,317505,317707,317711,317794,317829,320340,320524,320545,320566,320596,320631,320688,320811,320903,321122,321235,321291,321961,322077,322098,322561,322692,322854,322961,323094,323370,323442,323488,323527,323580,323603,323714,324699,324815,324836,324869,324983,325136,325140,325231,325282,326127,326519,326635,326656,326953,327019,328579,328673,328718,328758,328865,328911,328957,329003,329049,329479,329595,329616,329620,329624,329628,329734,329922,329966,329992,330013,330856,330972,330993,331082,331163,331187,331211,331246,331270,331726,331856,331939,331954,332037,332075,332422,332459,332496,332553,332782,332816,332845,333122,333152,333182,333236,333284,333434,333469,333641,333676,333878,333898,334080,334100,334332,334368,334745,334836,335049,335069,335167,335551,335604,335643,335688,335733,335778,335823,335868,335882,335953,336018,336056,336444,336560,336581,336731,336837,336878,336902,336956,337019,337038,337330,337339,337396,337437,337504,337527,337560,337854,337896,337938,338074,338100,338127,338154,338181,338208,338235,338262,338330,338606,338734,339879,340010,340213,340494,340583,340722,340811,341226,341267,341309,341372,341416,344652,344766,344800,344858,344862,344866,345006,345083,345092,345109,345785,347865,348012,348055,348100,348274,348395,348429,348475,349139,349282,349988,350965,351105,351705,352017,352425,352503,353971,355056,355751,356575,356691,356712,356745,356858,357011,357015,357221,357403,357661,357766,357816,357910,358044,358217,359425,359463,359490,359510,359530,359623,359675,359725,359729,360483,360599,360620,360653,360766,360919,360923,361175,361407,361647,361738,361829,361916,361979,362089,362140,362171,362233,363385,363535,363562,363639,363921,363953,363985,364017,364049,364081,364113,364973,365052,365113,365175,365215,365255,365295,365335,365375,365418,365467,365539,365986,366092,366260,366289,366310,366331,366388,366408,366514,366682,366711,366732,366753,366810,366830,366936,367016,367045,367066,367087,367144,367164,367232,367315,367437,367483,367517,367548,367582,367586,367702,367777,367829,367941,367969,368016,368044,368083,368117,368121,368188,368231,368285,368431,368538,368684,368711,368744,368778,368797,368876,369213,369246,369360,369513,369517,369677,369854,369913,370044,370279,370392,371402,371473,371521,371565,371585,371605,371625,371647,371669,371691,371713,371737,371826,371923,372020,372039,372058,372088,372197,372288,372319,372341,372448,372526,372581,372691,373022,373226,373252,373310,373381,373435,373489,373547,373605,373740,373794,373852,373910,373964,374018,374076,374134,374204,374258,374319,374380,374460,374848,374964,374985,375373,375489,375510,375674,375826,375858,375862,375912,375946,375980,376241,376954,377070,377091,377124,377238,377391,377395,377578,378382,378519,378740,378791,378831,379716,379848,380587,380703,380724,380757,380871,381024,381028,381250,381334,381438,381805,382166,382385,382562,382656,382723,382790,382879,382968,383087,383213,383339,383383,383467,383597,383695,384119,384152,384266,384419,384423,384493,384563,384578,384625,385038,385184,385309,385339,385359,385478,385519,385571,385642,385713,385823,385898,385922,385962,386092,386120,386195,386235,386286,386378,386412,386752,386825,387112,387134,387156,387239,387363,387392,387432,387514,387528,387566,387775,387864,387894,387925,387948,388006,388063,388095,388127,388153,388416,388524,388651,388701,388735,388795,389308,389341,389455,389608,389612,389760,389869,390076,390468,390622,390665,390681,390761,390777,390863,390882,390923,391021,391102,391166,391395,391459,391558,391644,391714,391749,391772,391854,392035,392103,392346,392363,392380,392385,392453,392462,392475,392491,392523,392577,392616,392658,392727,392834,392888,392923,393135,393184,393189,393205,393235,393251,393333,393532,393562,393588,393600,393665,393744,393854,393945,394180,394406,394490,394820,394853,394967,395120,395124,395307,395363,395538,395666,395839,395850,395996,396204,396724,396764,396768,396847,396851,396865,396869,396873,396879,396960,397027,397077,397110,397149,397279,397335,397356,397413,397483,397648,397682,397696,397707,397723,397804,397837,397863,397906,398124,398146,398169,398199,398312,398415,398528,398908,398941,399055,399208,399212,399276,399436,399653,399810,399915,400086,400356,400488,401034,401150,401171,401205,401420,401493,401602,401686,401926,402123,402135,402183,402218,402402,402570,402672,402717,402846,402877,402901,402920,402996,403045,403102,403305,403378,403441,403511,403913,403946,404060,404213,404217,404538,404675,404809,404887,404961,405118,405135,405306,405354,405481,405608,405660,405771,406239,406272,406386,406539,406543,406717,406822,407074,407183,407312,407396,407520,407542,407616,407746,407880,408021,408411,408444,408558,408711,408715,408944,408999,409096,409168,409191,409205,409228,409243,409277,409349,409442,409514,409588,409735,409770,410092,410132,410405,410589,410820,410868,410906,410960,411112,411291,411385,411410,411435,411477,411493,411561,411620,411652,411781,411960,411991,412355,412388,412502,412655,412659,413072,413352,413404,413456,413493,413530,413573,413632,413691,413795,413832,413911,413956,413981,414022,414118,414214,414314,414375,414419,414481,414841,414874,414988,415141,415145,415351,415503,415603,415640,415680,415717,415813,415873,416203,416236,416350,416503,416507,416713,416812,416897,416937,417040,417062,417143,417197,417587,417620,417734,417887,417891,418097,418314,418414,418506,418546,418583,418679,418739,419069,419102,419216,419369,419373,419579,419643,419728,419777,419817,419839,419920,419965,420325,420358,420472,420625,420629,420835,420987,421087,421124,421164,421201,421297,421357,421717,421750,421864,422017,422021,422227,422379,422479,422516,422556,422593,422689,422749,423079,423112,423226,423379,423383,423589,423716,423825,423845,423899,423981,424093,424251,424898,424914,424953,425035,425039,425043,425047,425051,425055,425117,425170,425184,425253,425310,425379,425436,425445,425464,425483,425492,425511,425556,426023,426139,426160,426256,426630,426663,426776,426929,426933,426949,426966,427002,427415,427719,427739,427840,427941,428135,428174,428257,428357,428564,428687,428734,428767,428800,428833,428866,428895,428924,428955,428986,429017,429050,429266,429476,429592,429730,429752,429921,429952,429983,430257,430321,430372,430453,430511,430625,430648,430776,430803,430830,430863,430890,430917,431048,431273,431389,432183,432271,433501,433617,433638,433671,433784,433937,433941,433957,433974,433991,434008,434025,434044,434061,434078,434136,435129,436171,436185,436251,436316,436351,436382,436436,436455,436475,436888,437233,437315,437451,437497,437560,437602,437951,438028,438700,438725,438750,438854,438879,438902,439031,439056,439131,439156,439254,439279,439335,439478,439547,439665,439822,439953,440318,440379,440638,441133,441240,441382,441459,441476,441499,441535,441580,441648,441696,441729,441761,441771,442005,442435,442511,442526,442581,442687,442710,443017,443445,443472,443503,443563,445668,445729,445740,445834,445857,445902,445927,445961,445978,446105,446348,446365,446391,446413,446952,447092,447138,447184,447541,447919,447987,448066,448174,448219,448606,448760,448853,449193,449308,449440,449499,449593,449654,449747,449824,449866,449895,449919,449939,449962,449982,450013,450173,450348,450445,450592,450729,450811,450880,450961,450976,451071,451173,451409,451566,451621,451793,451812,452750,452761,452821,452892,452924,452940,452954,452968,453589,453705,453726,453759,453872,454025,454029,454143,454210,454380,454449,454565,454611,454625,454671,454685,454750,454828,454898,454929,455115,455277,455308,455692,456018,456041,456105,456122,456137,456553,456582,456626,457318,457434,457455,457488,457601,457754,457758,457946,458184,458253,458322,458395,458473,458504,458551,458583,458731,459299,459354,459788,459904,459925,459993,460143,460213,460345,460396,460616,460768,460886,460896,461414,461424,461509,461612,461807,462531,462647,462668,462701,462814,462967,462971,463716,463762,463795,463846,463897,464083,464289,464588,464640,464856,465032,465048,465531,465571,465611,465663,465715,465735,465983,465992,466420,466453,466462,466579,466968,467105,467529,467645,467666,468581,468697,468718,468737,468826,468856,468893,468986,469016,469053,469076,469126,469156,469185,469237,469246,469298,470338,470462,470646,470704,470809,470825,470876,470952,470999,471046,471431,471547,471568,471984,472100,472121,473033,473149,473170,473179,473650,473766,473787,473796,474184,474300,474321,474441,474792,475020,475072,475091,475835,475951,475972,476199,476499,476604,476924,477040,477061,477358,477391,477504,477657,477661,477798,477980,478050,478070,478093,478230,478365,478825,478941,478962,479447,479563,479584,480924,481040,481061,481358,481391,481504,481657,481661,481716,481732,481833,481910,482185,482987,483015,483072,483129,483150,483171,483345,483438,483510,483741,483935,484061,484227,484242,484298,484403,484473,484478,484621,484681,484737,484797,484853,484928,485022,485155,485276,485347,485423,485427,485672,485690,485730,485839,486038,486131,486176,486228,486428,486484,486540,486588,486915,487014,487147,487173,487196,487343,487387,487591,489185,489492,489523,489559,489662,489792,489834,489872,489910,490298,490414,490435,490487,490830,490864,490920,491182,491357,491505,491525,491544,491571,491597,491617,491633,491657,491767,492170,492185,492488,492547,492551,492555,492559,492617,492643,493031,493147,493168,493267,493883,493999,494020,494029,494087,494178,494612,494728,494749,494758,495166,495282,495303,495760,495876,495897,496938,497054,497075,497084,497687,497803,497824,498626,498702,498721,498891,498990,499029,499189,499226,499672,499747,499889,500356,500472,500493,500589,501230,501346,501367,501400,501514,501667,501671,501900,502056,502076,502115,502160,502205,502252,502299,502348,502525,502535,502547,502971,503087,503108,503532,503648,503669,504289,504405,504426,504723,504756,504869,505022,505026,505329,505572,505661,505705,505749,505819,506570,506624,506678,506722,506766,506813,506861,506917,506965,506999,507872,507988,508009,508042,508155,508308,508312,508360,508411,508582,508931,509069,509104,509134,509176,509180,509315,509445,509542,509751,509848,509900,509979,510062,510116,510726,511173,511289,511310,511346,511375,511400,511425,511450,511916,512032,512053,512089,512114,512139,512163,512188,512217,512246,512706,512822,512843,513537,513653,513674,513707,513821,513974,513978,514092,514260,514280,514310,514601,515264,515380,515401,515434,515547,515700,515704,515795,515845,516066,516189,517013,517129,517150,517183,517296,517449,517453,517617,517787,517817,517854,517863,518016,518045,518054,518319,518356,518385,518394,518653,518804,518833,518849,519519,520079,520112,520225,520378,520382,520565,520634,520638,520668,520672,521234,521278,521282,521342,521730,521846,521867,521977,522169,522178,522224,522270,522316,522704,522820,522841,523438,523554,523575,524698,524712,524879,524941,525003,525078,525582,525698,525719,525861,526102,526246,526354,526420,526871,526987,527008,527118,527460,527576,527597,527894,527898,527902,528681,528766,528929,529397,529513,529534,530019,530135,530156,531362,531478,531499,533371,533701,533763,533846,533935,533995,534035,534049,534109,534233,534357,534450,534518,534586,534624,534708,534765,534769,535226,535756,535872,535893,535902,536580,537154,537270,537291,537300,538862,538978,538999,539076,539105,539201,539225,539243,539260,539264,539617,539658,539699,540229,540266,540303,540393,540630,540672,540757,541129,541173,541212,541310,541363,541837,541877,541993,542019,542036,542149,542174,542195,542230,542348,542422,542503,542602,542710,542793,542858,542956,542981,543002,543730,543846,543867,543900,544013,544166,544170,544445,544669,544914,545001,545088,545260,545281,545385,545462,545552,545644,545771,545843,546893,546907,546945,547013,547090,547759,547875,547896,547929,548042,548195,548199,548419,548556,548742,549469,549514,549541,549577,549613,549748,550151,550384,550471,550859,550975,550996,551309,551399,551495,551615,551642,552030,552146,552167,552399,552459,552724,552756,552829,553027,553052,553112,553132,553304,553692,553808,553829,553904,553928,553958,554346,554462,554483,554535,554668,554672,554676,554680,555068,555184,555205,555607,555640,555753,555906,555910,556139,556232,556253,556370,556487,556586,556685,556792,556836,556895,557283,557399,557420,557808,557924,557945,558140,558144,558148,558152,558156,558160,558164,558168,558172,558283,558369,558438,558736,558937,558983,559029,559143,559238,559468,559509,559568,559631,559726,559789,559848,559894,559909,560011,560363,560395,560427,560459,560491,560522,560553,560849,561009,561060,561136,561190,561227,561256,561265,561349,561386,561415,561424,561596,561679,561727,561773,561827,562215,562331,562352,562717,563357,563562,563700,563802,563812,563822,563832,563842,563852,563862,563872,563882,563936,563990,564040,564090,564144,564198,564252,564306,564360,564414,564663,564709,564755,564780,564799,564911,565034,565084,565164,565231,565272,565326,565714,565830,565851,565906,565932,565958,565988,566014,566190,566253,566284,566632,566665,567053,567169,567190,567344,567378,567416,567460,567848,567964,567985,568091,568175,568273,568324,568363,568381,568405,568435,568581,568640,568788,568854,568916,568962,569011,569147,569242,569270,569352,569454,569474,569557,569661,569788,569831,570017,570043,570431,570547,570568,570642,570675,570818,570971,570975,571154,571216,571220,571224,571228,571232,571290,571324,571532,571913,572695,573146,573160,573174,573188,573202,573216,573230,573291,573542,573729,573916,574257,574580,574884,575169,575234,575264,576106,576222,576243,576356,576778,576806,576840,576938,577004,577137,577388,577510,577632]},"x_google_ignoreList":[0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,420,421,422,423,424,425,426,427,428,429,430]} diff --git a/features/react-native-android/fixtures/rn0_70/android/app/build/intermediates/merged_manifests/release/AndroidManifest.xml b/features/react-native-android/fixtures/rn0_70/android/app/build/intermediates/merged_manifests/release/AndroidManifest.xml deleted file mode 100644 index 7db3d59c..00000000 --- a/features/react-native-android/fixtures/rn0_70/android/app/build/intermediates/merged_manifests/release/AndroidManifest.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/features/react-native-android/fixtures/rn0_72/android/app/build/generated/assets/createBundleReleaseJsAndAssets/index.android.bundle b/features/react-native-android/fixtures/rn0_72/android/app/build/generated/assets/createBundleReleaseJsAndAssets/index.android.bundle deleted file mode 100644 index e7461a3a..00000000 Binary files a/features/react-native-android/fixtures/rn0_72/android/app/build/generated/assets/createBundleReleaseJsAndAssets/index.android.bundle and /dev/null differ diff --git a/features/react-native-android/fixtures/rn0_72/android/app/build/generated/sourcemaps/react/release/index.android.bundle.map b/features/react-native-android/fixtures/rn0_72/android/app/build/generated/sourcemaps/react/release/index.android.bundle.map deleted file mode 100644 index 97e7b312..00000000 --- a/features/react-native-android/fixtures/rn0_72/android/app/build/generated/sourcemaps/react/release/index.android.bundle.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["/rn0_72/node_modules/metro-runtime/src/polyfills/require.js","/rn0_72/node_modules/@react-native/js-polyfills/console.js","/rn0_72/node_modules/@react-native/js-polyfills/error-guard.js","/rn0_72/node_modules/@react-native/js-polyfills/Object.es8.js","/rn0_72/index.js","/rn0_72/node_modules/react-native/index.js","/rn0_72/node_modules/react-native/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js","/rn0_72/node_modules/@babel/runtime/helpers/interopRequireDefault.js","/rn0_72/node_modules/react-native/Libraries/EventEmitter/RCTDeviceEventEmitter.js","/rn0_72/node_modules/react-native/Libraries/vendor/emitter/EventEmitter.js","/rn0_72/node_modules/@babel/runtime/helpers/toConsumableArray.js","/rn0_72/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","/rn0_72/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","/rn0_72/node_modules/@babel/runtime/helpers/iterableToArray.js","/rn0_72/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","/rn0_72/node_modules/@babel/runtime/helpers/nonIterableSpread.js","/rn0_72/node_modules/@babel/runtime/helpers/classCallCheck.js","/rn0_72/node_modules/@babel/runtime/helpers/createClass.js","/rn0_72/node_modules/@babel/runtime/helpers/toPropertyKey.js","/rn0_72/node_modules/@babel/runtime/helpers/toPrimitive.js","/rn0_72/node_modules/@babel/runtime/helpers/typeof.js","/rn0_72/node_modules/react-native/Libraries/Utilities/Platform.android.js","/rn0_72/node_modules/react-native/Libraries/Utilities/NativePlatformConstantsAndroid.js","/rn0_72/node_modules/react-native/Libraries/TurboModule/TurboModuleRegistry.js","/rn0_72/node_modules/invariant/browser.js","/rn0_72/node_modules/react-native/Libraries/BatchedBridge/NativeModules.js","/rn0_72/node_modules/@babel/runtime/helpers/slicedToArray.js","/rn0_72/node_modules/@babel/runtime/helpers/arrayWithHoles.js","/rn0_72/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","/rn0_72/node_modules/@babel/runtime/helpers/nonIterableRest.js","/rn0_72/node_modules/react-native/Libraries/BatchedBridge/BatchedBridge.js","/rn0_72/node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js","/rn0_72/node_modules/react-native/Libraries/Performance/Systrace.js","/rn0_72/node_modules/react-native/Libraries/vendor/core/ErrorUtils.js","/rn0_72/node_modules/react-native/Libraries/Utilities/stringifySafe.js","/rn0_72/node_modules/react-native/Libraries/Utilities/defineLazyObjectProperty.js","/rn0_72/node_modules/react-native/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/UIManager.js","/rn0_72/node_modules/nullthrows/nullthrows.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/BridgelessUIManager.js","/rn0_72/node_modules/react-native/Libraries/NativeComponent/NativeComponentRegistryUnstable.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/PaperUIManager.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/NativeUIManager.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/UIManagerProperties.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/FabricUIManager.js","/rn0_72/node_modules/react-native/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js","/rn0_72/node_modules/react-native/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/RendererProxy.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/RendererImplementation.js","/rn0_72/node_modules/react-native/Libraries/Renderer/shims/ReactFabric.js","/rn0_72/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-prod.js","/rn0_72/node_modules/react-native/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js","/rn0_72/node_modules/react-native/Libraries/Core/InitializeCore.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpGlobals.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpDOM.js","/rn0_72/node_modules/react-native/Libraries/DOM/Geometry/DOMRect.js","/rn0_72/node_modules/@babel/runtime/helpers/inherits.js","/rn0_72/node_modules/@babel/runtime/helpers/setPrototypeOf.js","/rn0_72/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","/rn0_72/node_modules/@babel/runtime/helpers/assertThisInitialized.js","/rn0_72/node_modules/@babel/runtime/helpers/getPrototypeOf.js","/rn0_72/node_modules/react-native/Libraries/DOM/Geometry/DOMRectReadOnly.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpPerformance.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/NativePerformance.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/Performance.js","/rn0_72/node_modules/react-native/Libraries/Utilities/warnOnce.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/EventCounts.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/NativePerformanceObserver.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/PerformanceObserver.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/RawPerformanceEntry.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/PerformanceEventTiming.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/PerformanceEntry.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/MemoryInfo.js","/rn0_72/node_modules/react-native/Libraries/WebPerformance/ReactNativeStartupTiming.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpErrorHandling.js","/rn0_72/node_modules/react-native/Libraries/Core/ExceptionsManager.js","/rn0_72/node_modules/@babel/runtime/helpers/wrapNativeSuper.js","/rn0_72/node_modules/@babel/runtime/helpers/isNativeFunction.js","/rn0_72/node_modules/@babel/runtime/helpers/construct.js","/rn0_72/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","/rn0_72/node_modules/react-native/Libraries/Core/Devtools/parseErrorStack.js","/rn0_72/node_modules/stacktrace-parser/dist/stack-trace-parser.cjs.js","/rn0_72/node_modules/react-native/Libraries/Core/Devtools/parseHermesStack.js","/rn0_72/node_modules/react-native/Libraries/Core/NativeExceptionsManager.js","/rn0_72/node_modules/react-native/Libraries/Core/polyfillPromise.js","/rn0_72/node_modules/react-native/Libraries/Utilities/PolyfillFunctions.js","/rn0_72/node_modules/react-native/Libraries/Promise.js","/rn0_72/node_modules/promise/setimmediate/finally.js","/rn0_72/node_modules/promise/setimmediate/core.js","/rn0_72/node_modules/promise/setimmediate/es6-extensions.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpRegeneratorRuntime.js","/rn0_72/node_modules/react-native/Libraries/Utilities/FeatureDetection.js","/rn0_72/node_modules/regenerator-runtime/runtime.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpTimers.js","/rn0_72/node_modules/react-native/Libraries/Core/Timers/JSTimers.js","/rn0_72/node_modules/react-native/Libraries/Core/Timers/NativeTiming.js","/rn0_72/node_modules/react-native/Libraries/Core/Timers/immediateShim.js","/rn0_72/node_modules/react-native/Libraries/Core/Timers/queueMicrotask.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpXHR.js","/rn0_72/node_modules/react-native/Libraries/Network/XMLHttpRequest.js","/rn0_72/node_modules/@babel/runtime/helpers/get.js","/rn0_72/node_modules/@babel/runtime/helpers/superPropBase.js","/rn0_72/node_modules/react-native/Libraries/Blob/BlobManager.js","/rn0_72/node_modules/react-native/Libraries/Blob/NativeBlobModule.js","/rn0_72/node_modules/react-native/Libraries/Blob/Blob.js","/rn0_72/node_modules/react-native/Libraries/Blob/BlobRegistry.js","/rn0_72/node_modules/event-target-shim/dist/event-target-shim.js","/rn0_72/node_modules/react-native/Libraries/Utilities/GlobalPerformanceLogger.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/ReactNativeFeatureFlags.js","/rn0_72/node_modules/react-native/Libraries/Utilities/createPerformanceLogger.js","/rn0_72/node_modules/react-native/Libraries/Utilities/infoLog.js","/rn0_72/node_modules/base64-js/index.js","/rn0_72/node_modules/react-native/Libraries/Network/RCTNetworking.android.js","/rn0_72/node_modules/react-native/Libraries/EventEmitter/NativeEventEmitter.js","/rn0_72/node_modules/react-native/Libraries/Network/convertRequestBody.js","/rn0_72/node_modules/react-native/Libraries/Network/FormData.js","/rn0_72/node_modules/react-native/Libraries/Utilities/binaryToBase64.js","/rn0_72/node_modules/react-native/Libraries/Network/NativeNetworkingAndroid.js","/rn0_72/node_modules/react-native/Libraries/Network/fetch.js","/rn0_72/node_modules/whatwg-fetch/dist/fetch.umd.js","/rn0_72/node_modules/react-native/Libraries/WebSocket/WebSocket.js","/rn0_72/node_modules/@babel/runtime/helpers/objectWithoutProperties.js","/rn0_72/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","/rn0_72/node_modules/react-native/Libraries/WebSocket/NativeWebSocketModule.js","/rn0_72/node_modules/react-native/Libraries/WebSocket/WebSocketEvent.js","/rn0_72/node_modules/react-native/Libraries/Blob/File.js","/rn0_72/node_modules/react-native/Libraries/Blob/FileReader.js","/rn0_72/node_modules/react-native/Libraries/Blob/NativeFileReaderModule.js","/rn0_72/node_modules/react-native/Libraries/Blob/URL.js","/rn0_72/node_modules/abort-controller/dist/abort-controller.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpAlert.js","/rn0_72/node_modules/react-native/Libraries/Alert/Alert.js","/rn0_72/node_modules/react-native/Libraries/Alert/RCTAlertManager.android.js","/rn0_72/node_modules/react-native/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpNavigator.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpBatchedBridge.js","/rn0_72/node_modules/react-native/Libraries/HeapCapture/HeapCapture.js","/rn0_72/node_modules/react-native/Libraries/HeapCapture/NativeJSCHeapCapture.js","/rn0_72/node_modules/react-native/Libraries/Performance/SamplingProfiler.js","/rn0_72/node_modules/react-native/Libraries/Performance/NativeJSCSamplingProfiler.js","/rn0_72/node_modules/react-native/Libraries/Utilities/RCTLog.js","/rn0_72/node_modules/react-native/Libraries/EventEmitter/RCTNativeAppEventEmitter.js","/rn0_72/node_modules/react-native/Libraries/Utilities/HMRClientProdShim.js","/rn0_72/node_modules/react-native/Libraries/Core/setUpSegmentFetcher.js","/rn0_72/node_modules/react-native/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/AppRegistry.js","/rn0_72/node_modules/react-native/Libraries/BugReporting/BugReporting.js","/rn0_72/node_modules/react-native/Libraries/NativeModules/specs/NativeRedBox.js","/rn0_72/node_modules/react-native/Libraries/BugReporting/NativeBugReporting.js","/rn0_72/node_modules/react-native/Libraries/BugReporting/dumpReactTree.js","/rn0_72/node_modules/react-native/Libraries/Utilities/SceneTracker.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/HeadlessJsTaskError.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/renderApplication.js","/rn0_72/node_modules/react-native/Libraries/Utilities/PerformanceLoggerContext.js","/rn0_72/node_modules/react/index.js","/rn0_72/node_modules/react/cjs/react.production.min.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/AppContainer.js","/rn0_72/node_modules/react-native/Libraries/Components/View/View.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/flattenStyle.js","/rn0_72/node_modules/react-native/Libraries/Text/TextAncestor.js","/rn0_72/node_modules/react-native/Libraries/Components/View/ViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/NativeComponent/NativeComponentRegistry.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/getNativeComponentAttributes.js","/rn0_72/node_modules/react-native/Libraries/Components/View/ReactNativeStyleAttributes.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/processAspectRatio.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/processColor.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/normalizeColor.js","/rn0_72/node_modules/@react-native/normalize-colors/index.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/PlatformColorValueTypes.android.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/processFontVariant.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/processTransform.js","/rn0_72/node_modules/@babel/runtime/helpers/defineProperty.js","/rn0_72/node_modules/react-native/Libraries/Utilities/differ/sizesDiffer.js","/rn0_72/node_modules/react-native/Libraries/Utilities/differ/matricesDiffer.js","/rn0_72/node_modules/react-native/Libraries/Utilities/differ/pointsDiffer.js","/rn0_72/node_modules/react-native/Libraries/Utilities/differ/insetsDiffer.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/processColorArray.js","/rn0_72/node_modules/react-native/Libraries/Image/resolveAssetSource.js","/rn0_72/node_modules/react-native/Libraries/NativeModules/specs/NativeSourceCode.js","/rn0_72/node_modules/@react-native/assets-registry/registry.js","/rn0_72/node_modules/react-native/Libraries/Image/AssetSourceResolver.js","/rn0_72/node_modules/react-native/Libraries/Image/AssetUtils.js","/rn0_72/node_modules/react-native/Libraries/Utilities/PixelRatio.js","/rn0_72/node_modules/react-native/Libraries/Utilities/Dimensions.js","/rn0_72/node_modules/react-native/Libraries/Utilities/NativeDeviceInfo.js","/rn0_72/node_modules/@react-native/assets-registry/path-support.js","/rn0_72/node_modules/react-native/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js","/rn0_72/node_modules/react-native/Libraries/Utilities/verifyComponentAttributeEquivalence.js","/rn0_72/node_modules/react-native/Libraries/NativeComponent/PlatformBaseViewConfig.js","/rn0_72/node_modules/react-native/Libraries/NativeComponent/BaseViewConfig.android.js","/rn0_72/node_modules/react-native/Libraries/NativeComponent/ViewConfigIgnore.js","/rn0_72/node_modules/react-native/Libraries/NativeComponent/StaticViewConfigValidator.js","/rn0_72/node_modules/react-native/Libraries/NativeComponent/ViewConfig.js","/rn0_72/node_modules/react-native/Libraries/Utilities/codegenNativeCommands.js","/rn0_72/node_modules/react/jsx-runtime.js","/rn0_72/node_modules/react/cjs/react-jsx-runtime.production.min.js","/rn0_72/node_modules/react-native/Libraries/Utilities/AcessibilityMapping.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/StyleSheet.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/RootTag.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/DisplayMode.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/getCachedComponentWithDebugName.js","/rn0_72/node_modules/react-native/Libraries/Utilities/BackHandler.android.js","/rn0_72/node_modules/react-native/Libraries/NativeModules/specs/NativeDeviceEventManager.js","/rn0_72/node_modules/react-native/Libraries/ReactPrivate/ReactNativePrivateInterface.js","/rn0_72/node_modules/react-native/Libraries/EventEmitter/RCTEventEmitter.js","/rn0_72/node_modules/react-native/Libraries/Components/TextInput/TextInputState.js","/rn0_72/node_modules/react-native/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Utilities/differ/deepDiffer.js","/rn0_72/node_modules/react-native/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js","/rn0_72/node_modules/react-native/Libraries/Core/ReactFiberErrorDialog.js","/rn0_72/node_modules/react-native/Libraries/Core/RawEventEmitter.js","/rn0_72/node_modules/react-native/Libraries/Events/CustomEvent.js","/rn0_72/node_modules/react-native/Libraries/Events/EventPolyfill.js","/rn0_72/node_modules/scheduler/index.native.js","/rn0_72/node_modules/scheduler/cjs/scheduler.native.production.min.js","/rn0_72/node_modules/react-native/Libraries/Renderer/shims/ReactNative.js","/rn0_72/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js","/rn0_72/node_modules/react-native/Libraries/Components/ActivityIndicator/ActivityIndicator.js","/rn0_72/node_modules/react-native/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js","/rn0_72/node_modules/react-native/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Utilities/codegenNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/requireNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Renderer/shims/createReactNativeComponentClass.js","/rn0_72/node_modules/react-native/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/Button.js","/rn0_72/node_modules/react-native/Libraries/Text/Text.js","/rn0_72/node_modules/react-native/Libraries/Pressability/PressabilityDebug.js","/rn0_72/node_modules/react-native/Libraries/Pressability/usePressability.js","/rn0_72/node_modules/react-native/Libraries/Pressability/Pressability.js","/rn0_72/node_modules/react-native/Libraries/Components/Sound/SoundManager.js","/rn0_72/node_modules/react-native/Libraries/Components/Sound/NativeSoundManager.js","/rn0_72/node_modules/react-native/Libraries/Pressability/PressabilityPerformanceEventEmitter.js","/rn0_72/node_modules/react-native/Libraries/Pressability/HoverState.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/Rect.js","/rn0_72/node_modules/react-native/Libraries/Text/TextNativeComponent.js","/rn0_72/node_modules/deprecated-react-native-prop-types/index.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedColorPropType.js","/rn0_72/node_modules/deprecated-react-native-prop-types/node_modules/@react-native/normalize-colors/index.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedEdgeInsetsPropType.js","/rn0_72/node_modules/prop-types/index.js","/rn0_72/node_modules/prop-types/factoryWithThrowingShims.js","/rn0_72/node_modules/prop-types/lib/ReactPropTypesSecret.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedImagePropType.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedViewPropTypes.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedViewAccessibility.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedStyleSheetPropType.js","/rn0_72/node_modules/deprecated-react-native-prop-types/deprecatedCreateStrictShapeTypeChecker.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedViewStylePropTypes.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedLayoutPropTypes.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedShadowPropTypesIOS.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedTransformPropTypes.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedImageSourcePropType.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedImageStylePropTypes.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedPointPropType.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedTextInputPropTypes.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedTextPropTypes.js","/rn0_72/node_modules/deprecated-react-native-prop-types/DeprecatedTextStylePropTypes.js","/rn0_72/node_modules/react-native/Libraries/Components/Touchable/TouchableNativeFeedback.js","/rn0_72/node_modules/react-native/Libraries/Components/Touchable/TouchableOpacity.js","/rn0_72/node_modules/react-native/Libraries/Animated/Animated.js","/rn0_72/node_modules/react-native/Libraries/Animated/AnimatedImplementation.js","/rn0_72/node_modules/react-native/Libraries/Animated/animations/DecayAnimation.js","/rn0_72/node_modules/react-native/Libraries/Animated/NativeAnimatedHelper.js","/rn0_72/node_modules/react-native/Libraries/Animated/NativeAnimatedModule.js","/rn0_72/node_modules/react-native/Libraries/Animated/NativeAnimatedTurboModule.js","/rn0_72/node_modules/react-native/Libraries/Animated/animations/Animation.js","/rn0_72/node_modules/react-native/Libraries/Animated/animations/SpringAnimation.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedColor.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedValue.js","/rn0_72/node_modules/react-native/Libraries/Interaction/InteractionManager.js","/rn0_72/node_modules/react-native/Libraries/Interaction/TaskQueue.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedInterpolation.js","/rn0_72/node_modules/react-native/Libraries/Animated/Easing.js","/rn0_72/node_modules/react-native/Libraries/Animated/bezier.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedWithChildren.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedNode.js","/rn0_72/node_modules/react-native/Libraries/Animated/SpringConfig.js","/rn0_72/node_modules/react-native/Libraries/Animated/animations/TimingAnimation.js","/rn0_72/node_modules/react-native/Libraries/Animated/createAnimatedComponent.js","/rn0_72/node_modules/react-native/Libraries/Utilities/useMergeRefs.js","/rn0_72/node_modules/react-native/Libraries/Animated/useAnimatedProps.js","/rn0_72/node_modules/react-native/Libraries/Utilities/useRefEffect.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedProps.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedStyle.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedTransform.js","/rn0_72/node_modules/react-native/Libraries/Animated/AnimatedEvent.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedValueXY.js","/rn0_72/node_modules/react-native/Libraries/Renderer/public/ReactFabricPublicInstanceUtils.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedAddition.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedDiffClamp.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedDivision.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedModulo.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedMultiplication.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedSubtraction.js","/rn0_72/node_modules/react-native/Libraries/Animated/nodes/AnimatedTracking.js","/rn0_72/node_modules/react-native/Libraries/Animated/AnimatedMock.js","/rn0_72/node_modules/react-native/Libraries/Animated/components/AnimatedFlatList.js","/rn0_72/node_modules/react-native/Libraries/Lists/FlatList.js","/rn0_72/node_modules/memoize-one/dist/memoize-one.cjs.js","/rn0_72/node_modules/@react-native/virtualized-lists/index.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/VirtualizeUtils.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/VirtualizedList.js","/rn0_72/node_modules/@react-native/virtualized-lists/Interaction/Batchinator.js","/rn0_72/node_modules/@react-native/virtualized-lists/Utilities/clamp.js","/rn0_72/node_modules/@react-native/virtualized-lists/Utilities/infoLog.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/ChildListCollection.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/FillRateHelper.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/StateSafePureComponent.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/ViewabilityHelper.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/VirtualizedListCellRenderer.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/VirtualizedListContext.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/CellRenderMask.js","/rn0_72/node_modules/@react-native/virtualized-lists/Lists/VirtualizedSectionList.js","/rn0_72/node_modules/react-native/Libraries/Animated/components/AnimatedImage.js","/rn0_72/node_modules/react-native/Libraries/Image/Image.android.js","/rn0_72/node_modules/@babel/runtime/helpers/asyncToGenerator.js","/rn0_72/node_modules/react-native/Libraries/Image/ImageAnalyticsTagContext.js","/rn0_72/node_modules/react-native/Libraries/Image/ImageInjection.js","/rn0_72/node_modules/react-native/Libraries/Image/ImageViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Image/TextInlineImageNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Image/NativeImageLoaderAndroid.js","/rn0_72/node_modules/react-native/Libraries/Image/ImageSourceUtils.js","/rn0_72/node_modules/react-native/Libraries/Image/ImageUtils.js","/rn0_72/node_modules/react-native/Libraries/Animated/components/AnimatedScrollView.js","/rn0_72/node_modules/react-native/Libraries/Components/RefreshControl/RefreshControl.js","/rn0_72/node_modules/react-native/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/ScrollView.js","/rn0_72/node_modules/react-native/Libraries/Interaction/FrameRateLogger.js","/rn0_72/node_modules/react-native/Libraries/Interaction/NativeFrameRateLogger.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/splitLayoutProps.js","/rn0_72/node_modules/react-native/Libraries/Utilities/dismissKeyboard.js","/rn0_72/node_modules/react-native/Libraries/Components/Keyboard/Keyboard.js","/rn0_72/node_modules/react-native/Libraries/LayoutAnimation/LayoutAnimation.js","/rn0_72/node_modules/react-native/Libraries/Components/Keyboard/NativeKeyboardObserver.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/processDecelerationRate.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/ScrollViewCommands.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/ScrollViewContext.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/ScrollViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/ScrollView/ScrollViewStickyHeader.js","/rn0_72/node_modules/react-native/Libraries/Animated/components/AnimatedSectionList.js","/rn0_72/node_modules/react-native/Libraries/Lists/SectionList.js","/rn0_72/node_modules/react-native/Libraries/Animated/components/AnimatedText.js","/rn0_72/node_modules/react-native/Libraries/Animated/components/AnimatedView.js","/rn0_72/node_modules/react-native/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js","/rn0_72/node_modules/react-native/Libraries/Components/StatusBar/StatusBar.js","/rn0_72/node_modules/react-native/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js","/rn0_72/node_modules/react-native/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js","/rn0_72/node_modules/react-native/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Image/ImageBackground.js","/rn0_72/node_modules/react-native/Libraries/Components/TextInput/InputAccessoryView.js","/rn0_72/node_modules/react-native/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/Keyboard/KeyboardAvoidingView.js","/rn0_72/node_modules/react-native/Libraries/Modal/Modal.js","/rn0_72/node_modules/react-native/Libraries/Modal/ModalInjection.js","/rn0_72/node_modules/react-native/Libraries/Modal/NativeModalManager.js","/rn0_72/node_modules/react-native/Libraries/Modal/RCTModalHostViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/I18nManager.js","/rn0_72/node_modules/react-native/Libraries/ReactNative/NativeI18nManager.js","/rn0_72/node_modules/react-native/Libraries/Components/Pressable/Pressable.js","/rn0_72/node_modules/react-native/Libraries/Components/Pressable/useAndroidRippleForView.js","/rn0_72/node_modules/react-native/Libraries/Components/SafeAreaView/SafeAreaView.js","/rn0_72/node_modules/react-native/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/Switch/Switch.js","/rn0_72/node_modules/react-native/Libraries/Components/Switch/AndroidSwitchNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/Switch/SwitchNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/TextInput/TextInput.js","/rn0_72/node_modules/react-native/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/TextInput/RCTTextInputViewConfig.js","/rn0_72/node_modules/react-native/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js","/rn0_72/node_modules/react-native/Libraries/Components/Touchable/Touchable.js","/rn0_72/node_modules/react-native/Libraries/Components/Touchable/BoundingDimensions.js","/rn0_72/node_modules/react-native/Libraries/Components/Touchable/PooledClass.js","/rn0_72/node_modules/react-native/Libraries/Components/Touchable/Position.js","/rn0_72/node_modules/react-native/Libraries/Components/Touchable/TouchableHighlight.js","/rn0_72/node_modules/react-native/Libraries/Components/Touchable/TouchableWithoutFeedback.js","/rn0_72/node_modules/react-native/Libraries/Lists/VirtualizedList.js","/rn0_72/node_modules/react-native/Libraries/Lists/VirtualizedSectionList.js","/rn0_72/node_modules/react-native/Libraries/ActionSheetIOS/ActionSheetIOS.js","/rn0_72/node_modules/react-native/Libraries/ActionSheetIOS/NativeActionSheetManager.js","/rn0_72/node_modules/react-native/Libraries/Utilities/Appearance.js","/rn0_72/node_modules/react-native/Libraries/Utilities/NativeAppearance.js","/rn0_72/node_modules/react-native/Libraries/AppState/AppState.js","/rn0_72/node_modules/react-native/Libraries/Utilities/logError.js","/rn0_72/node_modules/react-native/Libraries/AppState/NativeAppState.js","/rn0_72/node_modules/react-native/Libraries/Components/Clipboard/Clipboard.js","/rn0_72/node_modules/react-native/Libraries/Components/Clipboard/NativeClipboard.js","/rn0_72/node_modules/react-native/Libraries/Utilities/DeviceInfo.js","/rn0_72/node_modules/react-native/Libraries/Utilities/DevSettings.js","/rn0_72/node_modules/react-native/Libraries/NativeModules/specs/NativeDevSettings.js","/rn0_72/node_modules/react-native/Libraries/Linking/Linking.js","/rn0_72/node_modules/react-native/Libraries/Linking/NativeIntentAndroid.js","/rn0_72/node_modules/react-native/Libraries/Linking/NativeLinkingManager.js","/rn0_72/node_modules/react-native/Libraries/LogBox/LogBox.js","/rn0_72/node_modules/react-native/Libraries/Interaction/PanResponder.js","/rn0_72/node_modules/react-native/Libraries/Interaction/TouchHistoryMath.js","/rn0_72/node_modules/react-native/Libraries/PermissionsAndroid/PermissionsAndroid.js","/rn0_72/node_modules/react-native/Libraries/PermissionsAndroid/NativePermissionsAndroid.js","/rn0_72/node_modules/react-native/Libraries/PushNotificationIOS/PushNotificationIOS.js","/rn0_72/node_modules/react-native/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js","/rn0_72/node_modules/react-native/Libraries/Settings/Settings.android.js","/rn0_72/node_modules/react-native/Libraries/Share/Share.js","/rn0_72/node_modules/react-native/Libraries/Share/NativeShareModule.js","/rn0_72/node_modules/react-native/Libraries/Components/ToastAndroid/ToastAndroid.android.js","/rn0_72/node_modules/react-native/Libraries/Components/ToastAndroid/NativeToastAndroid.js","/rn0_72/node_modules/react-native/Libraries/Animated/useAnimatedValue.js","/rn0_72/node_modules/react-native/Libraries/Utilities/useColorScheme.js","/rn0_72/node_modules/use-sync-external-store/shim/index.native.js","/rn0_72/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.native.production.min.js","/rn0_72/node_modules/react-native/Libraries/Utilities/useWindowDimensions.js","/rn0_72/node_modules/react-native/Libraries/UTFSequence.js","/rn0_72/node_modules/react-native/Libraries/Vibration/Vibration.js","/rn0_72/node_modules/react-native/Libraries/Vibration/NativeVibration.js","/rn0_72/node_modules/react-native/Libraries/YellowBox/YellowBoxDeprecated.js","/rn0_72/node_modules/react-native/Libraries/StyleSheet/PlatformColorValueTypesIOS.js","/rn0_72/App.tsx","/rn0_72/node_modules/react-native/Libraries/NewAppScreen/index.js","/rn0_72/node_modules/react-native/Libraries/NewAppScreen/components/Colors.js","/rn0_72/node_modules/react-native/Libraries/NewAppScreen/components/DebugInstructions.js","/rn0_72/node_modules/react-native/Libraries/NewAppScreen/components/Header.js","/rn0_72/node_modules/react-native/Libraries/NewAppScreen/components/HermesBadge.js","/rn0_72/node_modules/react-native/Libraries/NewAppScreen/components/logo.png","/rn0_72/node_modules/react-native/Libraries/Image/AssetRegistry.js","/rn0_72/node_modules/react-native/Libraries/NewAppScreen/components/LearnMoreLinks.js","/rn0_72/node_modules/react-native/Libraries/Core/Devtools/openURLInBrowser.js","/rn0_72/node_modules/react-native/Libraries/Core/Devtools/getDevServer.js","/rn0_72/node_modules/react-native/Libraries/NewAppScreen/components/ReloadInstructions.js"],"names":["window","global","globalThis","__METRO_GLOBAL_PREFIX__","Map","Object","modules","EMPTY","module","guardedLoadModule","metroRequire","exports","hasOwnProperty","inGuard","loadModuleImplementation","ID_MASK_SHIFT","moduleId","LOCAL_ID_MASK","value","moduleDefinersBySegmentID","definingSegmentByModuleID","segmentId","unpackModuleId","unknownModuleError","metroImportDefault","metroImportAll","Error","console","LOG_LEVELS","Array","level","INSPECTOR_LEVELS","INSPECTOR_FRAMES_TO_SKIP","groupStack","groupFormat","inspect","element","OBJECT_COLUMN_NAME","rows","columnWidths","stringRows","space","repeat","cell","Math","msg","GROUP_OPEN","GROUP_PAD","GROUP_CLOSE","stylizeNoColor","formatValue","hash","formatPrimitive","arrayToHash","isError","isFunction","isRegExp","isDate","isArray","RegExp","Date","formatError","formatArray","reduceToSingleString","braces","formatProperty","ctx","recurseTimes","visibleKeys","array","isUndefined","isString","isNumber","isBoolean","isNull","JSON","String","output","name","base","numLinesEst","prev","arg","isObject","objectToString","e","log","_globalHandler","_inGuard","ErrorUtils","fun","context","guardName","TypeError","AppRegistry","appName","App","require","_dependencyMap","_$$_REQUIRE","Platform","Promise","NativeAccessibilityManagerIOS","NativeAccessibilityInfoAndroid","EventNames","deviceEventName","RCTDeviceEventEmitter","legacySendAccessibilityEvent","sendAccessibilityEvent","originalTimeout","obj","EventEmitter","Set","_createClass2","_classCallCheck2","allocate","registration","registrations","_len","_key","_toConsumableArray2","Symbol","instance","descriptor","_defineProperties","hint","Number","_typeof","NativePlatformConstantsAndroid","_getRequireWildcardCache","hasPropertyDescriptor","WeakMap","cacheNodeInterop","nodeInterop","cacheBabelInterop","turboModuleProxy","requireModule","invariant","args","argIndex","bridgeConfig","NativeModules","methods","promiseMethods","arrayContains","syncMethods","isPromise","isSync","genMethod","moduleID","constants","genModule","info","methodID","resolve","reject","updateErrorWithErrorData","enqueueingFrameError","hasErrorCallback","hasSuccessCallback","type","errorData","defineLazyObjectProperty","loadModule","MessageQueue","_this","method","_this2","cbID","queue","_this3","getValue","onFail","onSucc","now","DebuggerInternal","isSuccess","Boolean","TRACE_TAG_REACT_APPS","isEnabled","_asyncCookie","_limits$maxDepth","_limits$maxStringLimi","_limits$maxArrayLimit","_limits$maxObjectKeys","stack","maxDepth","maxObjectKeysLimit","keys","maxArrayLimit","maxStringLimit","replacer","valueSet","setValue","get","object","enumerable","writable","UIManager","reactTag","isFabricReactTag","UIManagerImpl","nullthrows","getFabricUIManager","callback","message","errorMessageForMethod","unstable_hasComponent","componentNameToExists","NativeUIManager","getConstants","UIManagerJS","isNativeUIManagerConstantsSet","NativeUIManagerConstants","viewManagerConfigs","triedLoadingConfig","lazifyViewManagerConfig","viewConfig","viewManager","commands","index","getViewManagerConfig","viewManagerName","key","BatchedBridge","namesToPlugins","pluginName$jscomp$inline_225","isOrderingDirty$jscomp$inline_224","ResponderEventPlugin","nativeFabricUIManager","registerEventHandler","setTimeout","clearTimeout","emptyContextObject","NO_CONTEXT","readContext","mountEffect","mountState","updateReducer","rerenderReducer","WeakSet","Infinity","devToolsConfig$jscomp$inline_938","__REACT_DEVTOOLS_GLOBAL_HOOK__","invokeGuardedCallbackImpl","reporter","invokeGuardedCallback","hasError","caughtError","hasRethrowError","event","getNodeFromInstance","invokeGuardedCallbackAndCatchFirstError","isArrayImpl","dispatchListener","dispatchConfig","functionThatReturnsTrue","functionThatReturnsFalse","createOrGetPooledEvent","releasePooledEvent","touch","getTouchIdentifier","touchBank","touchRecord","timestampForTouch","touchHistory","arr","responderInst","inst","getParent","getFiberCurrentPropsFromNode","getListener","accumulateInto","listener","targetInst","traverseTwoPhase","accumulateDirectionalDispatches","eventPluginOrder","plugins","pluginName","eventNameDispatchConfigs","publishRegistrationName","phasedRegistrationNames","eventName$jscomp$0","registrationNameModules","registrationName","requestedPhaseIsCapture","stateNode","mangledImperativeRegistrationName","listeners","listenerObj","getListeners","accumulateListenersAndInstances","traverseTwoPhase$1","accumulateDirectionalDispatches$1","MAYBE_ITERATOR_SYMBOL","REACT_FRAGMENT_TYPE","REACT_PORTAL_TYPE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_CONTEXT_TYPE","REACT_PROVIDER_TYPE","REACT_FORWARD_REF_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","getComponentNameFromType","innerType","fiber","node","getNearestMountedFiber","alternate","assertIsMounted","a","findCurrentFiberUsingSlowPath","findCurrentHostFiberImpl","deepDifferOptions","removedKeyCount","removedKeys","restoreDeletedValuesInNestedArray","nextProp","prevProp","clearNestedProperty","addNestedProperty","diffProperties","diffNestedProperty","emptyObject","defaultDiffer","updatePayload","undefined","isInsideEventHandler","batchedUpdatesImpl","dispatchListeners","executeDispatch","batchedUpdates","topLevelType","nativeEvent","eventTarget","possiblePlugin","target","eventQueue","forEachAccumulated","executeDispatchesAndReleaseTopLevel","rethrowError","injectedHook","rendererID","root","LN2","lanes","pendingLanes","getHighestPriorityLanes","nonIdlePendingLanes","wipLanes","nextLanes","pingedLanes","clz32","currentTime","nextTransitionLane","lane","nextReactTag","createNode","cloneNodeWithNewProps","fn","describeComponentFrame","valueStack","pop","didPerformWorkStackCursor","contextStackCursor","push","contextKey","getComponentNameFromFiber","assign","processChildContext","didChange","previousContext","x","y","isFlushingSyncQueue","syncQueue","currentUpdatePriority","i","flushSyncCallbacks","treeForkProvider","forkStack","forkStackIndex","treeContextProvider","idStack","idStackIndex","objectIs","describeFunctionComponentFrame","valueCursor","parent","workInProgress","lastFullyObservedContext","lastContextDependency","currentlyRenderingFiber","concurrentQueues","pushConcurrentUpdateQueue","markUpdateLaneFromFiberToRoot","executionContext","markRootEntangled","pendingQueue","renderLanes","workInProgressRootSkippedLanes","ctor","shallowEqual","isContextProvider","getMaskedContext","classComponentUpdater","isLegacyContextConsumer","emptyRefsObject","initializeUpdateQueue","applyDerivedStateFromProps","processUpdateQueue","resolvedInst","refs","stringRef","shouldTrackSideEffects","deleteChild","createWorkInProgress","newIndex","useFiber","createFiberFromText","resolveLazy","createFiberFromTypeAndProps","coerceRef","updateFragment","portal","createFiberFromPortal","createFiberFromFragment","REACT_ELEMENT_TYPE","getIteratorFn","throwOnInvalidObjectType","createChild","updateSlot","newChild","updatePortal","updateElement","updateTextNode","existingChildren","updateFromMap","placeChild","oldFiber","mapRemainingChildren","deleteRemainingChildren","returnFiber","placeSingleChild","reconcileChildrenIterator","reconcileChildrenArray","reconcileChildFibers","rootInstanceStackCursor","contextFiberStackCursor","contextStackCursor$1","requiredContext","shim$1","workInProgressSources","ReactCurrentDispatcher$1","HooksDispatcherOnUpdate","HooksDispatcherOnMount","didScheduleRenderPhaseUpdateDuringThisPass","HooksDispatcherOnRerender","ContextOnlyDispatcher","currentHook","workInProgressHook","currentlyRenderingFiber$1","updateWorkInProgressHook","update","snapshotChanged","updateEffect","subscribeToStore","pushEffect","updateStoreInstance","workInProgressRoot","pushStoreConsistencyCheck","checkIfSnapshotChanged","forceStoreRerender","scheduleUpdateOnFiber","mountWorkInProgressHook","basicStateReducer","dispatchSetState","areHookInputsEqual","mountEffectImpl","updateEffectImpl","ref","imperativeHandleEffect","claimNextTransitionLane","hook","ReactCurrentBatchConfig$1","requestUpdateLane","isRenderPhaseUpdate","enqueueConcurrentHookUpdate","requestEventTime","entangleTransitionUpdate","enqueueRenderPhaseUpdate","describeFiber","createUpdate","hasUncaughtError","error","logCapturedError","errorInfo","getDerivedStateFromError","legacyErrorBoundariesThatAlreadyFailed","PossiblyWeakMap","threadIDs","pingSuspendedRoot","mountChildFibers","prepareToReadContext","renderWithHooks","didReceiveUpdate","bailoutOnAlreadyFinishedWork","reconcileChildren","current","shouldConstruct","updateSimpleMemoComponent","updateFunctionComponent","prevState","subtreeRenderLanesCursor","subtreeRenderLanes","pushContextProvider","cloneUpdateQueue","resolveDefaultProps","oldProps","oldState","callComponentWillReceiveProps","hasForceUpdate","checkShouldComponentUpdate","getDerivedStateFromProps","hasNewLifecycles","oldContext","resetSuspendedCurrentOnMountInLegacyMode","constructClassInstance","mountClassInstance","finishClassComponent","markRef","hasContext","invalidateContextProvider","ReactCurrentOwner$1","didCaptureError","pushTopLevelContextObject","pushHostContainer","suspenseStackCursor","suspenseContext","didSuspend","mountSuspenseOffscreenState","SUSPENDED_MARKER","updateDehydratedSuspenseComponent","showFallback","mountSuspensePrimaryChildren","nextProps","createFiberFromOffscreen","hydrationErrors","renderDidSuspendDelayIfPossible","createCapturedValue","retrySuspenseComponentWithoutHydrating","scheduleContextWorkOnParentPath","scheduleSuspenseWorkOnFiber","initSuspenseListRenderState","findFirstSuspended","updateOffscreenComponent","updateSuspenseListComponent","updateSuspenseComponent","pushHostContext","pushHostRootContext","completedWork","appendChildNodeToSet","appendAllChildrenToContainer","needsVisibilityToggle","cloneHiddenInstance","hasRenderedATailFallback","child$63","popTreeContext","popRenderLanes","bubbleProperties","workInProgressRootRenderTargetTime","cutOffTailIfNeeded","workInProgressRootExitStatus","newProps","popContext","popProvider","popHostContainer","updateHostContainer","queueRecoverableErrors","createTextInstance","updateHostText$1","popHostContext","getViewConfigForType","ReactFabricHostComponent","appendAllChildren","updateHostComponent$1","resetWorkInProgressVersions","captureCommitPhaseError","nextEffect","shouldFireAfterActiveInstanceBlur","safelyCallDestroy","effect","detachFiberAfterEffects","commitDeletionEffectsOnFiber","recursivelyTraverseDeletionEffects","safelyDetachRef","_effect","createChildNodeSet","PossiblyWeakSet","resolveRetryWakeable","finishedWork","retryCache","parentFiber","commitMutationEffectsOnFiber","recursivelyTraverseMutationEffects","commitReconciliationEffects","flags","attachSuspenseRetryListeners","commitHookEffectListUnmount","commitHookEffectListMount","firstChild","commitUpdateQueue","currentEventTime","workInProgressRootRenderLanes","ReactCurrentBatchConfig","fabricGetCurrentEventPriority","FabricDiscretePriority","currentEventTransitionLane","nestedUpdateCount","markRootUpdated","workInProgressRootInterleavedUpdatedLanes","markRootSuspended$1","ensureRootIsScheduled","includesLegacySyncCallbacks","computeExpirationTime","expirationTime","getNextLanes","suspendedLanes","lanesToEventPriority","scheduleCallback$1","performConcurrentWorkOnRoot","performSyncWorkOnRoot","flushPassiveEffects","pushDispatcher","prepareFreshStack","workLoopConcurrent","resetContextDependencies","ReactCurrentDispatcher$2","handleError","renderRootSync","getLanesToRetrySynchronouslyOnError","recoverFromConcurrentError","isRenderConsistentWithExternalStores","workInProgressRootFatalError","commitRoot","workInProgressRootRecoverableErrors","workInProgressTransitions","index$4","ceil","scheduleTimeout","globalMostRecentFallbackTime","prevExecutionContext","workInProgressRootConcurrentErrors","workInProgressRootPingedLanes","cancelTimeout","didScheduleRenderPhaseUpdate","ReactCurrentOwner$2","sourceFiber$jscomp$0","currentSource","b","thrownValue","createCapturedValueAtFiber","createClassErrorUpdate","enqueueCapturedUpdate","createRootErrorUpdate","attachPingListener","enqueueUpdate","suspenseBoundary","completeUnitOfWork","workLoopSync","performUnitOfWork","beginWork$1","unwindWork","completeWork","ReactCurrentBatchConfig$2","commitRootImpl","rootWithPendingPassiveEffects","transitions","markRootFinished","rootDoesHavePassiveEffects","commitBeforeMutationEffects","commitLayoutEffects","onCommitRoot","pendingPassiveEffectsLanes","remainingLanes","rootWithNestedUpdates","firstUncaughtError","child","deletions","captureCommitPhaseErrorOnRoot","boundaryFiber","nextRetryLane","retryTimedOutBoundary","FiberNode","createFiber","REACT_OFFSCREEN_TYPE","mode","createLaneMap","findCurrentHostFiber","entangleTransitions","findHostInstance","componentOrHandle","addEventPoolingTo","Super","instrumentationCallback","isMoveish","isStartish","recordTouchEnd","recordTouchStart","recordTouchMove","trackedTouchCount","ResponderTouchHistoryStore","eventTypes","depthA","tempA","ResponderSyntheticEvent","JSCompiler_temp","accumulateTwoPhaseDispatchesSingle","accumulateTwoPhaseDispatchesSingleSkipTarget","shouldSetEventType","accumulateDirectDispatchesSingle","executeDirectDispatch","accumulate","changeResponder","getInstanceFromNode","customBubblingEventTypes","customDirectEventTypes","SyntheticEvent","bubbleDispatchConfig","accumulateDirectDispatchesSingle$1","accumulateTwoPhaseDispatchesSingle$1","from","fromOrTo","blockNativeResponder","to","fabricMeasure","mountSafeCallback_NOT_REALLY_SAFE","fabricMeasureInWindow","relativeToNativeNode","fabricMeasureLayout","_setNativeProps","optionsObj","eventListeners","capture","dispatchReducerAction","startTransition","globalClientIdCounter","updateDeferredValueImpl","appendChildNode","hadNoMutationsEffects","completeRoot","cloneNodeWithNewChildren","cloneNodeWithNewChildrenAndProps","cloneNode","oldText","attemptEarlyBailoutIfNoScheduledUpdate","updateMemoComponent","updateForwardRef","updateClassComponent","resolveLazyComponentTag","createPortal","roots","concurrentRoot","FiberRootNode","onRecoverableError","updateContainer","containerTag","DOMRect","DOMRectReadOnly","_isNativeReflectConstruct","_getPrototypeOf2","Derived","hasNativeReflectConstruct","Reflect","_possibleConstructorReturn2","_inherits2","_createSuper","_super","superClass","_setPrototypeOf","ReferenceError","_getPrototypeOf","o","castToNumber","NativePerformance","Performance","PerformanceEntry","warnOnce","PerformanceMark","markOptions","getCurrentTimeStamp","PerformanceMeasure","_super2","measureOptions","EventCounts","MemoryInfo","ReactNativeStartupTiming","warnNoNativePerformance","NativePerformanceObserver","warnNoNativePerformanceObserver","RawPerformanceEntryTypeValues","rawToPerformanceEntry","performanceEntryTypeToRaw","entryType","warnedKeys","cachedEventCounts","getCachedEventCounts","registeredObservers","_slicedToArray2","durationThreshold","union","v","PerformanceObserverEntryList","entry","entryResult","entries","observer","droppedEntriesCount","observerConfig","PerformanceObserver","currentEntryTypes","isOnPerformanceEntryCallbackSet","onPerformanceEntry","difference","observerCountPerEntryType","applyDurationThresholds","numberOfObserversForThisType","rawToPerformanceEntryType","PerformanceEventTiming","userExceptionDecorator","inUserExceptionDecorator","exceptionID","namePrefix","preprocessException","decoratedExtraDataKey","SyntheticError","reportException","inExceptionHandler","stringifySafe","reactConsoleErrorHandler","_wrapNativeSuper","_cache","Class","Function","_construct","location","convertHermesStack","frame","parseChrome","parseWinjs","parseGecko","parseNode","parseJSC","chromeRe","parts","chromeEvalRe","UNKNOWN_FUNCTION","isNative","winjsRe","geckoRe","geckoEvalRe","javaScriptCoreRe","nodeRe","sourceUrl","RE_FRAME","RE_SKIPPED","asFrame","isInternalBytecodeSourceUrl","parseLine","lastMessageLine","NativeModule","ExceptionsManager","_ref$configurable","polyfillObjectProperty","f","err","IS_ERROR","noop","doResolve","handle","self","Handler","onFulfilled","onRejected","handleResolved","setImmediate","deferred","tryCallOne","LAST_ERROR","getThen","newValue","finale","tryCallTwo","done","promise","safeThen","item","onSettledFulfill","onSettledReject","AggregateError","valuePromise","EMPTYSTRING","ZERO","FALSE","TRUE","UNDEFINED","NULL","ex","iterableToArray","res","val","remaining","mapAllSettled","values","getAggregateError","hasResolved","rejectionReasons","promises","resolveOnce","rejectionCheck","con","isNativeFunction","$Symbol","define","iteratorSymbol","getProto","hasOwn","Generator","defineProperty","Gp","Context","outerFn","tryLocsList","makeInvokeMethod","prototype","tryCatch","generator","PromiseImpl","invoke","result","previousPromise","GenStateSuspendedStart","state","GenStateExecuting","GenStateCompleted","maybeInvokeDelegate","innerFn","GenStateSuspendedYield","ContinueSentinel","doneResult","pushTryEntry","isNaN","iterable","next","GeneratorFunction","GeneratorFunctionPrototype","toStringTagSymbol","AsyncIterator","wrap","iter","resetTryEntry","record","exception","finallyEntry","_global$HermesInterna","_global$HermesInterna2","hasNativePromise","NativeTiming","JSTimers","timerIDs","GUID","_getFreeIndex","callbacks","types","_clearIndex","errors","FRAME_DURATION","frameTime","reactNativeMicrotasks","_callTimer","deleteTimer","_allocateCallback","createTimer","duration","func","_len2","_key2","_len3","_key3","requestIdleCallbacks","setSendIdleEvents","options","timeout","id","requestIdleCallbackTimeouts","_freeCallback","timersToCall","_callReactNativeMicrotasksPass","hasEmittedTimeDriftWarning","GUIID","clearedImmediates","resolvedPromise","XMLHttpRequestEventTarget","XMLHttpRequest","SUPPORTED_RESPONSE_TYPES","responseType","responseURL","responseHeaders","total","sortedHeaders","header","headers","_get2","_get","arguments","NativeBlobModule","c","r","BlobManager","uuidv4","ArrayBuffer","part","acc","encodeURI","createBlobCollector","Blob","end","registry","Event","wrappers","EventTarget","defineEventAttribute","privateData","retv","defineRedirectDescriptor","pd","defineCallDescriptor","isFunc","BaseEvent","defineWrapper","getWrapper","listenersMap","eventName","ATTRIBUTE","defineEventAttributeDescriptor","defineCustomEventTarget","setCancelFlag","optionsIsObj","BUBBLE","CAPTURE","wrapEvent","setPassiveListener","isStopped","setEventPhase","setCurrentTarget","createPerformanceLogger","ReactNativeFeatureFlags","PerformanceLogger","isLoggingForWebPerformance","startTime","endTime","performance","getCurrentTimestamp","_cookies","Systrace","timespan","Uint8Array","lookup","revLookup","len","validLen","getLens","Arr","_byteLength","placeHoldersLen","tmp","num","tripletToBase64","uint8","encodeChunk","NativeEventEmitter","_requestId","RCTNetworking","NativeNetworkingAndroid","convertRequestBody","generateRequestId","convertHeadersMapToArray","nativeModule","subscription","eventType","body","FormData","data","fetch","Headers","Request","Response","support","DataView","iterator","items","reader","FileReader","fileReaderReady","URLSearchParams","isDataView","isArrayBufferView","bufferClone","consumed","readBlobAsArrayBuffer","readArrayBufferAsText","readBlobAsText","decode","input","normalizeMethod","reQueryString","form","decodeURIComponent","init","xhr","url","abortXhr","request","parseHeaders","normalizeValue","viewClasses","normalizeName","oldValue","iteratorFor","redirectStatuses","RangeError","WebSocket","_ref2$headers","_objectWithoutProperties2","_excluded","NativeWebSocketModule","nextWebSocketId","binaryToBase64","base64","WebSocketEvent","File","NativeFileReaderModule","toByteArray","_this4","_Symbol$iterator","params","encodeURIComponent","last","URL","validateBaseUrl","baseUrl","BLOB_URL_PREFIX","AbortSignal","abortedFlags","signals","controller","AbortController","createAbortSignal","getSignal","abortSignal","Alert","title","buttons","buttonNeutral","buttonNegative","buttonPositive","RCTAlertManager","cancelButtonKey","destructiveButtonKey","preferredButtonKey","callbackOrButtons","btn","cb","NativeDialogManagerAndroid","emptyCallback","NativeJSCHeapCapture","warningHandler","RCTLog","levelsMap","appConfig","runnables","sections","renderApplication","componentProviderInstrumentationHook","componentProvider","scopedPerformanceLogger","wrapperComponentProvider","showArchitectureIndicator","appKey","coerceDisplayMode","infoLog","BugReporting","runCount","SceneTracker","unmountComponentAtNodeAndRemoveContainer","taskProviders","taskCancelProviders","NativeHeadlessJsTaskSupport","taskId","HeadlessJsTaskError","reason","defaultExtras","source","NativeBugReporting","NativeRedBox","getReactTree","_listeners","_activeScene","GlobalPerformanceLogger","_PerformanceLoggerContext","_AppContainer","initialProps","React","DisplayMode","displayMode","useConcurrentRoot","fabric","Renderer","useContext","PerformanceLoggerContext","z","D","B","L","J","m","l","K","escape","n","d","I","A","Q","R","O","N","P","S","C","u","t","M","T","V","U","StyleSheet","AppContainer","_View","styles","createRootTag","ariaLabelledBy","ariaBusy","accessibilityState","ariaChecked","ariaDisabled","ariaExpanded","ariaSelected","ariaValueMax","accessibilityValue","ariaValueMin","ariaValueNow","ariaValueText","flattenStyle","style","_TextAncestor","_ViewNativeComponent","ariaLive","ariaLabel","tabIndex","role","getAccessibilityRoleFromRole","ariaHidden","codegenNativeCommands","__INTERNAL_VIEW_CONFIG","getRuntimeConfig","ReactNativeViewConfigRegistry","native","createViewConfig","viewConfigProvider","getNativeComponentAttributes","verifyComponentAttributeEquivalence","StaticViewConfigValidator","hasNativeViewConfig","getDifferForType","getProcessorForType","diff","process","attachDefaultEventTypes","merge","processColor","processAspectRatio","sizesDiffer","processTransform","processFontVariant","normalizedColor","_normalizeColor","getMatchers","normalizeKeyword","hwbToRgb","parse360","parsePercentage","hslToRgb","parse1","parseInt","match","parse255","color","q","p","hue2rgb","h","g","w","red","green","blue","gray","cachedMatchers","call","commaSeparatedCall","callWithSlashSeparator","parseFloat","int","_getKeyAndValueFromCSSTransform","one","dummySize","two","defaultedOne","dummyPoint","dummyInsets","colors","processColorElement","TRANSPARENT","_sourceCodeScriptURL","_serverURL","getSourceCodeScriptURL","sourceCodeScriptURL","scriptURL","_scriptURL","_coerceLocalScriptURL","getDevServerURL","getScriptURL","_customSourceTransformer","assets","assetId","scale","assetDir","drawableFolder","AssetSourceResolver","getScaledAssetPath","path","getAssetPathInDrawableFolder","PixelRatio","scales","cacheBreaker","layoutSize","NativeDeviceInfo","Dimensions","dimensions","windowPhysicalPixels","screenPhysicalPixels","dimensionsInitialized","eventEmitter","androidScaleSuffix","drawableFileTypes","getAndroidAssetSuffix","getBasePath","basePath","viewConfigCallbacks","viewConfigs","processEventTypes","lefthandObjectDiff","IGNORED_KEYS","PlatformBaseViewConfig","propName","BaseViewConfig","DynamicallyInjectedByGestureHandler","ReactNativeStyleAttributes","ignoredViewConfigProps","accumulateDifferences","ifObject","isIgnored","composeIndexers","maybeA","commandObj","command","k","style1","cache","_backPressSubscriptions","BackHandler","NativeDeviceEventManager","handler","currentlyFocusedInputRef","focusInput","AndroidTextInputCommands","blurInput","inputs","deepDiffer","logListeners","errorValue","handleException","EventPolyfill","CustomEvent","eventInitDict","navigator","MessageChannel","nativeRuntimeScheduler","H","F","G","X","pluginName$jscomp$inline_231","isOrderingDirty$jscomp$inline_230","getInstanceFromTag","devToolsConfig$jscomp$inline_979","unmountComponentAtNode","instanceCache","nativeEventParam","EMPTY_NATIVE_EVENT","tag","instanceProps","recursivelyUncacheFiberNode","shim","getStackByFiberInDevAndProd","allocateTag","ReactNativeFiberHostComponent","finalizeInitialChildren","isHostParent","insertOrAppendPlacementNodeIntoContainer","insertOrAppendPlacementNode","hostParent","hostParentIsContainer","updatePayload$jscomp$0","getHostSibling","JSCompiler_inline_result","index$5","_receiveRootNodeIDEvent","UPDATE_SIGNAL","_ref$animating","_ref$color","_ref$hidesWhenStopped","_ref$size","PlatformActivityIndicator","_ref$styleAttr","_ref$indeterminate","_ProgressBarAndroidNativeComponent","codegenNativeComponent","requireNativeComponent","uiViewClassName","register","Button","disabled","TouchableOpacity","TouchableNativeFeedback","importantForAccessibility","_Text","useState","restProps","_disabled","onPress","onLongPress","onStartShouldSetResponder","useLazyInitialization","useMemo","initialized","pressRetentionOffset","onPressIn","onPressOut","onResponderTerminationRequest","suppressHighlighting","usePressability","eventHandlers","onResponderGrant","onResponderMove","onResponderRelease","onResponderTerminate","TextAncestor","accessible","userSelectToSelectableMap","verticalAlignToTextAlignVerticalMap","props","hasTextAncestor","ellipsizeMode","allowFontScaling","isPressable","setHighlighted","useRef","Pressability","useEffect","pressability","config","delay","signal","pageY","pageX","onStartShouldSetResponder_DEPRECATED","normalizeDelay","DEFAULT_LONG_PRESS_DELAY_MS","delayLongPress","getTouchFromPressEvent","longPressDeactivationDistance","onResponderTerminationRequest_DEPRECATED","onHoverIn","convertPointerEventToMouseEvent","onHoverOut","isHoverEnabled","PressabilityPerformanceEventEmitter","Transitions","nextState","isTerminalSignal","isActivationSignal","isPressInSignal","isActiveSignal","SoundManager","minPressDuration","normalizeRect","pressRectOffset","DEFAULT_PRESS_RECT_OFFSETS","NativeSoundManager","document","lastTouchTimestamp","HOVER_THRESHOLD_MS","createSquare","createReactNativeComponentClass","textViewConfig","virtualTextViewConfig","propFullName","emptyFunctionWithReset","emptyFunction","shapePropType","shapeTypes","checkType","findHostInstance_DEPRECATED","Commands","locationX","locationY","getBackgroundProp","processedColor","useForeground","Animated","Easing","_Animated","AnimatedImplementation","AnimatedMock","AnimatedValue","AnimatedValueXY","AnimatedColor","AnimatedInterpolation","AnimatedNode","createAnimatedComponent","attachNativeEvent","AnimatedEvent","AnimatedAddition","AnimatedSubtraction","AnimatedDivision","AnimatedMultiplication","AnimatedModulo","AnimatedDiffClamp","parallel","maybeVectorAnim","spring","_combineCallbacks","configuration","SpringAnimation","AnimatedTracking","start","timing","TimingAnimation","decay","DecayAnimation","animations","onComplete","doneCount","hasEnded","idx","stopTogether","sequence","time","_ref$iterations","_ref$resetBeforeItera","animation","iterations","isFinished","iterationsSoFar","resetBeforeIteration","restart","Animation","NativeAnimatedHelper","requestAnimationFrame","NativeAnimatedNonTurboModule","NativeAnimatedTurboModule","NativeAnimatedModule","useSingleOpBatching","SUPPORTED_COLOR_STYLES","eventListenerGetValueCallbacks","eventListenerAnimationFinishedCallbacks","SUPPORTED_STYLES","SUPPORTED_TRANSFORMS","SUPPORTED_INTERPOLATION_PARAMS","isSupportedTransformProp","isSupportedStyleProp","isSupportedInterpolationParam","__nativeAnimatedNodeTagCount","__nativeAnimationIdCount","_warnedMissingNativeAnimated","degrees","nativeOps","API","waitingForQueuedOperations","flushQueueTimeout","clearImmediate","singleOpQueue","globalEventEmitterGetValueListener","globalEventEmitterAnimationFinishedListener","setupGlobalEventEmitterListeners","queueOperations","nativeEventEmitter","onEnd","startNativeAnimationNextId","SpringConfig","previousAnimation","animatedValue","zeta","omega0","v0","x0","envelope","omega1","position","AnimatedWithChildren","isRgbaValue","normalizeColor","processColorObject","valueIn","defaultColor","isRgbaAnimatedValue","NativeAnimatedAPI","flushValue","shouldUpdateNodeConfig","findAnimatedStyles","leaves","_executeAsAnimatedBatch","InteractionManager","_nextUpdateHandle","_deadline","_processUpdate","_interactionSet","_addInteractionSet","_deleteInteractionSet","_emitter","_taskQueue","_scheduleUpdate","task","tasks","_inc","TaskQueue","tasksToCancel","stackItem","findRange","inputRange","interpolate","range","outputRange","easing","extrapolateLeft","extrapolateRight","inputMax","outputMax","numericComponentRegex","components","mapStringToNumericComponents","isColor","createNumericInterpolation","numericComponents","interpolations","createStringInterpolation","outputType","ease","bounciness","s","SUBDIVISION_MAX_ITERATIONS","aB","aA","calcBezier","SUBDIVISION_PRECISION","NEWTON_ITERATIONS","getSlope","currentX","float32ArraySupported","kSplineTableSize","Float32Array","kSampleStepSize","sampleValues","aX","currentSample","dist","intervalStart","mX1","mX2","NEWTON_MIN_SLOPE","binarySubdivide","newtonRaphsonIterate","mY1","mY2","getTForX","_uniqueId","oValue","stiffnessFromOrigamiValue","dampingFromOrigamiValue","speed","endValue","_easeInOut","easeInOut","useAnimatedProps","useMergeRefs","passthroughAnimatedPropExplicitValues","Component","useCallback","useReducer","useAnimatedPropsLifecycle","useRefEffect","reduceAnimatedProps","count","AnimatedProps","onUpdateRef","getEventTarget","propValue","isFabricInstance","scheduleUpdate","events","useLayoutEffect","isUnmountingRef","prevNodeRef","isFabricPublicInstance","_instance$getScrollRe","cleanupRef","AnimatedStyle","findNodeHandle","nativeViewTag","createAnimatedStyle","AnimatedTransform","createStyleWithAnimatedTransform","platformConfig","transConfigs","getter","nestedValue","argMapping","eventMappings","traverse","viewTag","recMapping","maybeInstance","isLegacyFabricInstance","inAnimationCallback","emptyAnimation","mockAnimationStart","anyValue","mockCompositeAnimation","_FlatList","removeClippedSubviews","numColumns","FlatList","memoizeOne","numColumnsOrDefault","isArrayLike","defaultKeyExtractor","keyExtractor","ListItemComponent","renderItem","cols","render","columnWrapperStyle","prevProps","onViewableItemsChanged","viewableItems","changed","_this$props$strictMod","strictMode","removeClippedSubviewsOrDefault","safeIsNaN","isEqual","areInputsEqual","calledOnce","lastThis","lastArgs","resultFn","lastResult","itemCount","right","left","mid","_scrollMetrics$zoomSc","visibleBegin","windowSize","velocity","visibleEnd","getFrameMetricsApprox","elementsThatOverlapOffsets","overscanFirst","first","overscanLast","newRangeCount","newCellCount","StateSafePureComponent","VirtualizedListContext","horizontal","initialNumToRender","maxToRenderPerBatch","onStartReachedThreshold","onEndReachedThreshold","threshold","scrollEventThrottle","VirtualizedList","ChildListCollection","FillRateHelper","Batchinator","ViewabilityHelper","_assertThisInitialized2","isVertical","_reactNative","curr","metrics","offset","timestamp","dOffset","remainder","frameMetrics","horizontalOrDefault","getItemCount","viewPosition","viewOffset","windowSizeOrDefault","onEndReachedThresholdOrDefault","contentLength","computeWindowedRenderLimits","maxToRenderPerBatchOrDefault","newCellsAroundViewport","cellsAroundViewport","distanceFromEnd","childIdx","ListHeaderComponent","ii","getItem","stickyIndicesFromProps","stickyOffset","stickyHeaderIndices","cells","getItemLayout","debug","_VirtualizedListCellRenderer","CellRendererComponent","ItemSeparatorComponent","inversionStyle","prevCellKey","shouldListenForLayout","nestedContext","findLastWhere","section","isLastSpacer","constrainToMeasured","clamp","lastMetrics","_defineProperty2","_usedIndexForKey","_keylessItemComponentName","scrollEventThrottleOrDefault","frameLast","normalize","windowTop","windowLen","visTop","visLen","distanceFromStart","isWithinStartThreshold","isWithinEndThreshold","onStartReachedThresholdOrDefault","distTop","getScrollingThreshold","distBottom","_this5","CellRenderMask","additionalRegions","initialNumToRenderOrDefault","firstCellIndex","cellIdx","itemIdx","firstVisibleItemIndex","maintainVisibleContentPositionAdjustment","timeoutHandle","cellKey","Info","_sampleRate","_minSampleCount","firstFrame","lastFrame","blankTop","pixels_blank","partialState","that","_isEntirelyVisible","_getPixelsVisible","viewAreaMode","pixels","percent","top","bottom","viewAreaCoveragePercentThreshold","viewablePercentThreshold","itemVisiblePercentThreshold","renderRange","_isViewable","viewableIndices","createViewToken","CellRenderer","select","onCellLayout","currContext","numCells","newMainRegion","lastIntersectIdx","other","region","firstIdx","middleIdx","LeadingSeparatorComponent","leadingSeparatorProps","SeparatorComponent","separatorProps","leadingSeparator","inverted","setSelfHighlightCallback","setSeparatorHighlighted","setSelfUpdatePropsCallback","setSeparatorProps","setLeadingSeparatorHighlighted","updateHighlightFor","updatePropsFor","setLeadingSeparatorProps","VirtualizedSectionList","viewable","keyExtractorWithNullableIndex","listItemCount","ItemWithSeparator","infoIndex","renderSectionFooter","renderSectionHeader","_VirtualizedList","itemIndex","Image","ImageInjection","resolveAssetSource","NativeImageLoaderAndroid","failure","success","prefetch","_queryCache","_asyncToGenerator2","getImageSourcesFromImageProps","_source$width","_source$height","onLoadStart","defaultSource","loadingIndicatorSource","convertObjectFitToResizeMode","objectFit","_ImageAnalyticsTagContext","analyticTag","nativeProps","_ImageViewNativeComponent","nativePropsWithAnalytics","resizeMode","_TextInlineImageNativeComponent","sources","forwardedRef","asyncGeneratorStep","gen","_next","_throw","ConditionallyIgnoredEventHandlers","shouldUseSrcForDefaultScale","sourceList","width","height","_imageSrc$split2$","ScrollView","AnimatedScrollViewWithoutInvertedRefreshControl","AnimatedScrollViewWithInvertedRefreshControl","_ScrollView","splitLayoutProps","RefreshControl","AndroidSwipeRefreshLayoutCommands","_excluded2","_AndroidSwipeRefreshLayoutNativeComponent","ScrollViewNativeComponent","ScrollContentViewNativeComponent","AndroidHorizontalScrollViewNativeComponent","AndroidHorizontalScrollContentViewNativeComponent","View","ScrollViewContext","memoize","nativeInstance","mutator","createRefForwarder","animated","additionalOffset","keyboardScreenY","scrollTextInputIntoVisibleRect","FrameRateLogger","dismissKeyboard","IS_ANIMATING_TOUCH_START_THRESHOLD_MS","timeSinceLastMomentumScrollEnd","TextInputState","keyboardShouldPersistTaps","currentlyFocusedInput","hasFocusedTextInput","Keyboard","newContentInsetTop","indexOfIndex","previousHeader","NativeVerticalScrollViewTuple","NativeHorizontalScrollViewTuple","_ScrollViewContext","VERTICAL","HORIZONTAL","hasStickyHeaders","processDecelerationRate","ScrollViewStickyHeader","childArray","NativeFrameRateLogger","NativeKeyboardObserver","LayoutAnimation","isLayoutAnimationEnabled","onAnimationComplete","onAnimationDidFail","animationCompletionHasRun","raceWithAnimationId","onAnimationDidEnd","isFabric","translateY","setIsFabric","setNextHeaderLayoutY","hiddenOnScroll","scrollAnimatedValue","layoutY","layoutHeight","_haveReceivedInitialZeroTranslateY","_timer","setTranslateY","measured","nextHeaderLayoutY","collisionPoint","scrollViewHeight","stickStartPoint","animatedValueListener","setAnimatedTranslateY","animatedListenerId","newAnimatedTranslateY","setLayoutY","setLayoutHeight","setMeasured","_SectionList","SectionList","listRef","_stickySectionHeadersEnabled","Text","StatusBar","DrawerLayoutAndroid","DRAWER_STATES","_this$props$drawerBac","drawStatusBar","_StatusBar","_AndroidDrawerLayoutNativeComponent","NativeStatusBarManagerAndroid","NativeStatusBarManagerIOS","createStackEntry","mergePropsStack","mergedProps","ImageBackground","_Image","flattenedStyle","InputAccessoryView","_RCTInputAccessoryViewNativeComponent","KeyboardAvoidingView","_ref","_relativeKeyboardHeight2","AccessibilityInfo","keyboardFrame","_this$props$enabled","enabled","ModalInjection","Modal","uniqueModalIdentifier","_RCTModalHostViewNativeComponent","NativeI18nManager","i18nConstants","useImperativeHandle","useAndroidRippleForView","usePressState","testOnly_pressed","android_rippleConfig","focusable","android_disableSound","cancelable","delayHoverIn","delayHoverOut","hitSlop","setPressed","unstable_pressDelay","viewRef","pressed","rippleConfig","borderless","foreground","radius","trackColor","nativeSwitchRef","ios_backgroundColor","_SwitchNativeComponent","returnsFalse","returnsTrue","_AndroidSwitchNativeComponent","onChange","onValueChange","setNative","SwitchCommands","AndroidSwitchCommands","propsSelection","RCTSinglelineTextInputNativeCommands","RCTMultilineTextInputNativeCommands","mostRecentEventCount","inputRef","lastNativeText","selection","lastNativeSelection","viewCommands","AndroidTextInput","text","RCTSinglelineTextInputView","RCTMultilineTextInputView","useOnChangeSync","emptyFunctionThatReturnsTrue","setLastNativeText","setLastNativeSelection","inputRefValue","setMostRecentEventCount","_ref2$allowFontScalin","_ref2$rejectResponder","_ref2$underlineColorA","_excluded3","InternalTextInput","readOnly","enterKeyHint","enterKeyHintToReturnTypeMap","inputMode","inputModeToKeyboardTypeMap","autoCompleteWebToAutoCompleteAndroidMap","textContentType","autoCompleteWebToTextContentTypeMap","autoComplete","RCTTextInputViewConfig","touches","changedTouches","hasTouches","States","Signals","longDelayMS","extractSingleTouch","positionOnActivate","Position","BoundingDimensions","aY","deltaX","deltaY","curState","IsActive","IsPressingIn","IsLongPressingIn","PooledClass","pooler","DEFAULT_POOLER","standardReleaser","TouchableHighlight","TouchableWithoutFeedback","createPressabilityConfig","PASSTHROUGH_PROPS","RCTActionSheetManager","processedTintColor","processedCancelButtonTintColor","NativeAppearance","colorScheme","nativeColorScheme","AppState","NativeAppState","emitter","logError","eventUpdated","changeHandler","focusOrBlurHandler","NativeClipboard","Linking","NativeLinkingManager","NativeIntentAndroid","gestureState","nextDX","nextDY","PanResponder","interactionState","clearInteractionHandle","ofCurrent","TouchHistoryMath","PermissionsAndroid","PERMISSIONS","PERMISSION_REQUEST_RESULT","NativePermissionsAndroid","_requestPermission","response","_request","rationale","permission","NativePushNotificationManagerIOS","PushNotificationIOS","nativeNotif","PushNotificationEmitter","NOTIF_REGISTRATION_ERROR_EVENT","NOTIF_REGISTER_EVENT","DEVICE_LOCAL_NOTIF_EVENT","DEVICE_NOTIF_EVENT","_notifHandlers","notification","Share","content","NativeShareModule","NativeToastAndroid","useSyncExternalStore","Appearance","appearanceSubscription","setDimensions","_vibrating","_id","NativeVibration","_default_vibration_length","vibrateScheduler","pattern","nextIndex","YellowBox","useColorScheme","Colors","isDarkMode","Section","_ImageBackground","_HermesBadge","links","_react","_TouchableOpacity","openURLInBrowser","link","_cachedDevServerURL","NativeSourceCode","FALLBACK","_cachedFullBundleURL"],"mappings":"A,4B,M,K,M,K,I,I,Q,I,E,Q,M,K,G,E,U,M,K,K,M,G,E,M,K,M,K,M,M,M,MAuYC,MAAA,OAAA,IAAA,MAAA,GAAA,IAAA,KAAA,MAAA,IAAAA,MAAA,EAAAC,MAAA,EAAAC,M,OAAA,KC+OA,MAAA,GAAA,IAAA,MAAA,GAAA,IAAA,KAAA,MAAA,IAAAF,MAAA,EAAAC,MAAA,EAAAC,M,KAAA,KC9f8B,MAAA,GAAA,IAAA,MAAA,GAAA,IAAA,KAAA,GAAA,IAAAF,MAAA,EAAAC,MAAA,EAAAC,M,KAAA,KC/D1B,MAAA,GAAA,IAAA,MAAA,GAAA,IAAA,KAAA,GAAA,IAAAF,MAAA,EAAAC,MAAA,EAAAC,M,KAAA,K,M,OCjD6C,Q,O,M,QC6ZhD,Q,O,M,QCD8B,Q,O,M,QC/ZsF,I,O,M,QC0BjF,Q,O,M,QC0HpC,Q,O,M,QClJiH,Q,O,M,QCHA,Q,O,M,QCCD,I,O,M,QCFD,I,O,M,QCMW,Q,O,M,QCNT,I,O,M,QCEH,I,O,M,QCaH,Q,O,M,QCZE,Q,O,M,QCKF,Q,O,M,QCFL,I,O,M,QCqE7E,Q,O,M,QCxCzB,Q,O,M,QCUA,Q,O,M,QCA0B,I,O,M,QCiKI,Q,O,M,QC1M+E,Q,O,M,QCJC,I,O,M,QCwBM,I,O,M,QCxBL,I,O,M,QCwBjF,Q,O,M,QCscD,Q,O,M,QCvW7B,I,O,M,QClGiD,I,O,M,QCgGtB,Q,O,M,QCvDc,I,O,M,QC/BI,Q,O,M,QC2KnB,Q,O,M,QC/LwC,I,O,M,QCmJjE,Q,O,M,QCpID,I,O,M,QCgK4B,Q,O,M,QCrEsC,Q,O,M,QCvDjE,I,O,M,QCeD,I,O,M,QChDiE,Q,O,M,QCiCG,Q,O,M,QCxC5B,Q,O,M,QCsFxC,Q,O,M,QC9E+C,Q,O,M,QC2tQ9C,Q,O,M,QClvQ8B,Q,O,M,QC8CwB,Q,O,M,QCtBvD,I,O,M,QCjBwC,Q,O,M,QCSW,Q,O,M,QCTqD,Q,O,M,QCVM,I,O,M,QCGW,Q,O,M,QCJJ,I,O,M,QCAP,I,O,M,QCoJ5G,Q,O,M,QCvHF,Q,O,M,QCEoE,Q,O,M,QCiRlE,Q,O,M,QCvRuB,I,O,M,QC6CvB,Q,O,M,QCrBF,Q,O,M,QCsQA,Q,O,M,QCvOA,Q,O,M,QCxE2D,Q,O,M,QC6BzD,Q,O,M,QCSA,Q,O,M,QCWA,Q,O,M,QC/BF,Q,O,M,QCyNC,Q,O,M,QC3N8G,Q,O,M,QC3BC,I,O,M,QCcP,Q,O,M,QCNe,I,O,M,QC+CxF,Q,O,M,QCiFX,I,O,M,QCCpB,I,O,M,QCtC8B,Q,O,M,QCjE/B,Q,O,M,QCkByD,Q,O,M,QCjCjC,Q,O,M,QCPvB,Q,O,M,QCqMD,I,O,M,QC3BC,Q,O,M,QC9ID,Q,O,M,QCbyD,I,O,M,QC0tBzD,I,O,M,QClpBA,Q,O,M,QCgYiC,Q,O,M,QC7cqB,Q,O,M,QC0CxB,I,O,M,QC3B9B,I,O,M,QCAC,Q,O,M,QCknB8B,Q,O,M,QCzoBoE,Q,O,M,QCTU,Q,O,M,QC6KjF,Q,O,M,QC3HG,Q,O,M,QCkGV,Q,O,M,QCvHpB,I,O,M,QCg0BwD,I,O,M,QCn0BjB,Q,O,M,QCyBA,I,O,M,QCwRxC,Q,O,M,QChUwB,I,O,M,QCkIxB,I,O,M,QCxDkC,Q,O,M,QC2BhC,Q,O,M,QC9EiC,Q,O,M,QCuDV,Q,O,M,QCnEM,Q,O,M,QCMoC,Q,O,M,QClBf,Q,O,M,QCylBhD,I,O,M,QCnUsB,Q,O,M,QCxR6F,Q,O,M,QCJK,I,O,M,QCqB5H,Q,O,M,QCP+B,Q,O,M,QC4BV,Q,O,M,QCoIM,Q,O,M,QCrK3B,Q,O,M,QCmHE,Q,O,M,QCXqC,Q,O,M,QCvGvC,Q,O,M,QCuJsB,Q,O,M,QCnJrB,Q,O,M,QCqBmE,Q,O,M,QC1BpE,Q,O,M,QCqCA,Q,O,M,QC9B4B,Q,O,M,QCVkC,Q,O,M,QCoB7B,Q,O,M,QCpBkC,Q,O,M,QCoC5C,Q,O,M,QCrCkB,Q,O,M,QCYP,I,O,M,QCsBI,Q,O,M,QCxBiC,Q,O,M,QCuU3C,Q,O,M,QCvNC,Q,O,M,QCxHyB,Q,O,M,QCCM,Q,O,M,QCkI9B,I,O,M,QC7GD,I,O,M,QC/BwB,Q,O,M,QCSgB,Q,O,M,QCmFrE,Q,O,M,QCtEsC,Q,O,M,QC5BtC,Q,O,M,QCqB2F,I,O,M,QC6H9D,Q,O,M,QCVR,Q,O,M,QCpGQ,I,O,M,QCjBO,Q,O,M,QCsGH,Q,O,M,QC2BjC,Q,O,M,QC2C6C,Q,O,M,QCrBF,Q,O,M,QChHR,I,O,M,QCHT,Q,O,M,QC1BK,Q,O,M,QC2aA,I,O,M,QC1a9B,I,O,M,QCLkC,I,O,M,QCyPF,Q,O,M,QCvQ6E,Q,O,M,QCUlF,I,O,M,QCyBG,I,O,M,QCxBF,I,O,M,QCaA,I,O,M,QCLK,Q,O,M,QC2EC,Q,O,M,QC1EL,Q,O,M,QCEgB,I,O,M,QC8HV,Q,O,M,QCpHpC,Q,O,M,QC+EwB,Q,O,M,QCGA,Q,O,M,QCvEM,Q,O,M,QCiC7B,I,O,M,QCqCA,Q,O,M,QCCD,Q,O,M,QCzGoC,Q,O,M,QC0SO,Q,O,M,QChR3C,Q,O,M,QCgHA,Q,O,M,QC/GA,Q,O,M,QCrBmC,Q,O,M,QC1BnC,Q,O,M,QCM2W,Q,O,M,QC+I3W,I,O,M,QC+NC,Q,O,M,QC9VD,Q,O,M,QCKyB,I,O,M,QCGzB,Q,O,M,QCwE4B,Q,O,M,QCxFsC,Q,O,M,QCwDjE,Q,O,M,QClD+B,Q,O,M,QC6L/B,Q,O,M,QCgiB8C,Q,O,M,QCjpBpB,I,O,M,QCXuB,I,O,M,QC5Bf,Q,O,M,QCvBN,Q,O,M,QCPJ,Q,O,M,QC+ME,Q,O,M,QC1O3B,Q,O,M,QCckS,I,O,M,QCOnP,Q,O,M,QC04QC,Q,O,M,QCptQV,Q,O,M,QCrGkC,Q,O,M,QC1EvE,Q,O,M,QC0CmC,Q,O,M,QC3CA,Q,O,M,QCIY,Q,O,M,QCiB/C,Q,O,M,QC8XoC,Q,O,M,QCvHhB,Q,O,M,QCvOrB,Q,O,M,QCnCA,Q,O,M,QCs5BA,Q,O,M,QCn7B6B,Q,O,M,QCC+B,Q,O,M,QC2BF,Q,O,M,QCO1D,Q,O,M,QC9BA,I,O,M,QCuDa,Q,O,M,QC9CZ,Q,O,M,QC6C6B,Q,O,M,QC6XC,I,O,M,QCrbc,Q,O,M,QCL7C,Q,O,M,QC8CC,Q,O,M,QCrDoC,I,O,M,QC6DG,Q,O,M,QCmFA,Q,O,M,QCxBI,Q,O,M,QCpFC,Q,O,M,QC4BU,Q,O,M,QCjBV,Q,O,M,QCyEH,Q,O,M,QCxGG,Q,O,M,QCQA,Q,O,M,QCIT,Q,O,M,QCQU,Q,O,M,QC1BhB,Q,O,M,QC4Ne,Q,O,M,QCzIL,Q,O,M,QCcK,Q,O,M,QCkPL,Q,O,M,QCpCd,Q,O,M,WCtRd,Q,O,M,WCisBZ,Q,O,M,WC1sBoD,Q,O,M,WCsjBpD,Q,O,M,WCnhBoE,Q,O,M,WCEpE,Q,O,M,WCYE,Q,O,M,WCLmD,Q,O,M,WC6BS,Q,O,M,WC3BA,Q,O,M,WC+H3B,Q,O,M,WC7BT,Q,O,M,WC6IG,Q,O,M,WCzET,Q,O,M,WCtFpB,I,O,M,WClJ6D,Q,O,M,WCkL3D,Q,O,M,WClGF,I,O,M,WCtCqD,Q,O,M,WCCrD,Q,O,M,WCjBA,Q,O,M,WC6JA,Q,O,M,WC5JA,Q,O,M,WCvBsD,Q,O,M,WC8BQ,Q,O,M,WCjCI,Q,O,M,WCwOhE,Q,O,M,WCvN8D,Q,O,M,WCEhE,I,O,M,WCjBiE,Q,O,M,WCDC,Q,O,M,WCCD,Q,O,M,WCDF,Q,O,M,WCCQ,Q,O,M,WCAH,Q,O,M,WCDX,Q,O,M,WC+KzD,Q,O,M,WCpKA,Q,O,M,WCgqByB,Q,O,M,WC5oBE,I,O,M,WCO1B,Q,O,M,WCwMD,Q,O,M,WC6yDgC,Q,O,M,WCn+DJ,Q,O,M,WCrDN,I,O,M,WCHE,I,O,M,WCmDtB,Q,O,M,WCsL6B,Q,O,M,WCnOH,Q,O,M,WC8UM,Q,O,M,WCnHhC,Q,O,M,WCjIF,Q,O,M,WCsCE,Q,O,M,WC+cA,Q,O,M,WCtlBF,Q,O,M,WCoU6C,Q,O,M,WCxTmE,I,O,M,WCT3F,Q,O,M,WCOrB,Q,O,M,WC2HsC,Q,O,M,WCrGT,Q,O,M,WCduC,Q,O,M,WC2CpE,Q,O,M,WC3DA,I,O,M,WC4GgC,Q,O,M,WC2ED,Q,O,M,WClI/B,Q,O,M,WCHC,Q,O,M,WC20D4B,Q,O,M,WCh0DG,Q,O,M,WCzD+B,Q,O,M,WC8C/D,I,O,M,WClDgC,Q,O,M,WCwLW,Q,O,M,WCJX,Q,O,M,WCrLgC,Q,O,M,WCMhE,Q,O,M,WC4CwD,Q,O,M,WCxChB,Q,O,M,WCEM,Q,O,M,WCoB7C,Q,O,M,WC9BgE,Q,O,M,WCwJ1B,Q,O,M,WCqIa,Q,O,M,WChRpD,Q,O,M,WC6I4B,Q,O,M,WC7J5B,Q,O,M,WCF4C,Q,O,M,WCkXR,Q,O,M,WCgHV,Q,O,M,WC/aU,Q,O,M,WCqBA,Q,O,M,WCmCpC,Q,O,M,WCXgC,Q,O,M,WCGG,Q,O,M,WC1FlC,Q,O,M,WCmOiC,Q,O,M,WCsDJ,Q,O,M,WCpS9B,I,O,M,WCM4D,Q,O,M,WCsH3D,Q,O,M,WCxEA,Q,O,M,WCzC0D,Q,O,M,WC4U7B,Q,O,M,WC1P9B,Q,O,M,WC1EsB,Q,O,M,WCTrB,Q,O,M,WCuOmC,Q,O,M,WClMnC,Q,O,M,WCDA,Q,O,M,WCumD0D,Q,O,M,WC3nDT,Q,O,M,WCkIqB,Q,O,M,WC9HtB,Q,O,M,WC65BvB,Q,O,M,WC75BS,Q,O,M,WCwFP,Q,O,M,WClGH,Q,O,M,WCmWC,Q,O,M,WCtKe,Q,O,M,WCzMT,Q,O,M,WCDO,Q,O,M,WCsIR,Q,O,M,WCtGmC,Q,O,M,WCqDjE,Q,O,M,WCvEyD,Q,O,M,WC4Ff,Q,O,M,WCrGlB,I,O,M,WCEwC,Q,O,M,WCWhE,Q,O,M,WCnBiE,Q,O,M,WCRjC,Q,O,M,WC2DL,Q,O,M,WCvCwC,Q,O,M,WCoG3B,Q,O,M,WCvGoB,Q,O,M,WCHC,Q,O,M,WC0OzC,Q,O,M,WCiUK,Q,O,M,WC7aO,I,O,M,WCgJU,Q,O,M,WC7NuB,Q,O,M,WCue9B,Q,O,M,WCpepC,Q,O,M,WC9CyB,I,O,M,WC2IH,Q,O,M,WCrJqC,Q,O,M,WCmD9B,Q,O,M,WCpCwC,Q,O,M,WCbrE,Q,O,M,WCCA,Q,O,M,WCrBA,Q,O,M,WCMgL,Q,O,M,WCoChL,Q,O,M,WCSyB,Q,O,M,WCyDC,Q,O,M,WCzFwC,Q,O,M,WCmDhE,Q,O,M,WCrDD,I,O,M,WCgGgB,Q,O,M,WCtG+C,Q,O,M,WCGhE,I,O,M,WCsB+B,Q,O,M,WCoCX,Q,O,M,WCxBK,Q,O,M,WCpDqM,Q,O,M,WCY5J,Q,O,M,WCgI5C,Q,O,M,WCtHW,Q,O,M,WCoBJ,Q,O,M,WCJG,Q,O,M,W,I,O,M,K,M,K,E,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I9apBvB,QACAC,MAAF,MAAA,aAAA,M,KAA+B,IAC7B,M,KACc,QACL,IAAR,IAIG,EAAH,IAEgB,EAAL,KAAA,IAwII,MAoCJ,MAKC,KAAH,MAYO,KAAH,QAQb,OAiBQ,UACA,IASQ,M,KAIF,MACS,IAAH,IACOC,MAAG,KAAA,OAAA,IAAA,IAAV,IAqI9B,EAtWD,EACYC,MAAa,OAAA,KAAhB,GAAA,IAKP,EAMF,GACMC,GAAAA,IAAO,MAAX,IAqBeC,IAGC,EACH,EADG,IAPJ,KAAA,QAAA,OAAA,KAAA,KAAA,KAAA,KAAA,KAWZD,IAAiB,MAcnB,IA3BI,EA4BJ,GAkCiBA,GAAAA,IAAO,IACfE,GAAgB,MAAhBA,GAEHC,MAAiB,MAFdD,EACG,MAAa,KADvB,EAmBF,GASIF,GAAAA,IAAO,IADT,GAEEA,IAAO,IAAwB,MAAqBC,IAFtD,IAMgBG,MAAY,QAE1BC,GAAkB,QAAlBA,GAAuC,KAGjCL,IAAO,IAAwC,MAAvD,EAPSA,IAAO,IAAwB,MAAtC,EAUJ,GASIA,GAAAA,IAAO,IADT,GAEEA,IAAO,IAAwB,MAAiBC,IAFlD,IAMgBG,MAAY,KAE5B,GAAsB,QAAtB,GAGgB,EAGd,GACE,GAAA,QAAA,SAAA,GACME,IAAmB,KAAA,MAAvB,GAC4B,IAAV,IADlB,EAKe,SAIbN,IAAO,IAAoC,MAAnD,EArBSA,IAAO,IAAwB,MAAtC,EAiDJ,UACOO,GAAAA,IAAL,GAAgBZ,IAAM,MAAtB,KACS,IAGSa,IAAwB,MACxC,EAAE,EAEAb,IAAM,MAA4B,MAAA,KACpC,EACO,IACP,EAEOa,IAAwB,MAA/B,EAKJ,GACiCC,GAAAA,IAAbC,IACSC,IAAXD,IACT,EAAA,KAAA,KAAP,EAMF,GACe,MAAcD,GAAAA,IAAnBG,IAAyC,MAA1C,IAAP,EAKF,UACEC,GAAAA,OAAoC,QAcpC,KACmB,KAAC,KAAD,KAMrB,EANsB,GACXb,GAAAA,IAAO,IAAZ,GAA2Bc,IAA6B,KAAA,KAAxD,GACEA,IAA6B,KAAWC,GAAAA,IAAX,MAD/B,EAGF,EAGJ,iBACE,GAAeF,GAAAA,IAAyB,KAAxC,IACoBC,IAA6B,KAAA,SAAhC,OACCD,IAAyB,IACzC,IACS,KACEb,IAAO,IAChBc,IAAgC,KAAA,KAGdnB,GAAAA,IAAM,SAC5B,GAAA,GACiCqB,IAAc,KAA5B,MAAS,MACb,MACJhB,IAAO,IAHlB,GAKA,GACQiB,IAAkB,KAAxB,KAEQ,SAAV,QAWoB,MACL,MAAe,MAI9B,GAK6B,MAcZ,SAMbtB,IACAS,IACAc,IACAC,IAEY,aANP,IAaS,MACM,MASH,KAAnB,EACA,EACe,MACH,QACQ,MACd,MAAqB,MAC3B,EACQ,EAUV,EA/Ec,KAAZ,EAiFJ,OACgB,MAMPC,YANO,IAMF,KAAZ,EAzLqB,EAMXA,MAAK,KAAA,WAAA,IAAA,IAAf,EAMyB,EAMfA,MAAK,KAAA,WAAA,IAAA,IAAf,E,0B,K,K,KC9Me,KAyWhB,IAGkB,UAMM,IACE,UAAO,IACP,UAAM,IACN,SAAM,IACN,SAAO,IA8Hf,IAAH,IA4BN,MAAV,MAsDkB,KAAX,MACL,KACkB,MAANzB,MAAH,IAEQ,EAAA,KAAA,IAAA,KAAA,KAAA,KAAA,IAOT,KAPS,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAH,QAuBdI,MAAqB,KAACsB,UAA0B,UAA3B,yJAhFS,KAUAC,IAAU,KAAX,KACAA,IAAU,MAAX,KACAA,IAAU,MAAX,KACEA,IAAU,KAAX,KACEA,IAAU,MAAX,KACCA,IAAU,MAAX,KANZ,EAAA,IAAA,KAAA,KAAA,IAAA,KAAA,K,KAAA,K,KAAA,K,KAAA,K,KAAA,K,KAAA,KAAH,QAcdvB,MAAqB,KAACsB,UAA0B,UAA3B,WA6DtB,EAzOD,KAAA,IACS,KAAP,EAAO,IAEQ,MAAb,MAA8C,IAAhB,OAA9B,MAGQE,MAAK,KAAU,KACd,KAAA,EAAA,KAAY,KAAZ,MAGA,SAAA,KAPT,EACiB,IADjB,EAgB0B,IAEXC,GAAAA,IAEb,UADF,IAEgB,QAAA,aAFhB,IAGcF,GAAAA,IAAU,QAHxB,IAQaA,IAAU,KAEnB3B,GAAAA,IAAM,MAAV,GACEA,IAAqB,MACnB8B,IAAgB,IAEhB,IAAE,KAAW,KAAA,EAAA,KACbC,aAJmB,IAOnBC,IAAU,QAAd,GACQC,QAAW,MAEnBjC,IAAwB,MAAA,MAC1B,EApCekC,GAAAA,IAAa,KAAA,UAAN,MAAd,EAuCV,KAAA,MACSN,MAAW,KAAOA,WAAK,OAAZ,MAAoB,KAAC,KAAD,KAAtC,EACSO,GAAAA,IAAP,EAIJ,SAAA,OAEOP,MAAa,KAAA,QAAlB,GAES,IACP,GAGQQ,MAHR,WAAA,SAAA,GACyB,KAAA,KAAvB,GACgB,IACVA,IAAmB,IACd,KAAA,KAHX,EAOI,KAAR,mBAKchC,MAAW,KAACiC,IAAI,IAAL,KAAc,MAAA,IACtB,IAAH,IACK,IAAH,IAID,KAAC,KAAD,KAqBEC,IAAgB,KAAC,KAAD,SAGP,MACN,KACR,IAAA,IAAA,IAEQD,IAAI,OAAxB,IACY,KAASE,IAAU,IAAX,KAAR,KADsB,GAAdF,IAAI,KAAxB,IAQArC,GAAAA,IAAwB,MAAkB,SAAA,KAAjB,IAAyB2B,IAAU,MAApC,MAC1B,EA/CI3B,GAAAA,IAAwB,MAAK2B,IAAU,UAAf,MACxB,EAqBF,UACqB,OAAC,KAAD,KAIXa,MACS,SAACA,IAAAA,IAAD,KAAjB,EALoB,GACAC,GAAAA,IAAYH,GAAAA,OAAY,IAAU,KAAtBA,UAAN,MAAyC,SAAA,KAC1DI,IAAP,EAfY,YACdJ,GAAAA,IAAmB,KAAJ,IACKD,IAAI,OAAxB,IACiBA,IAAI,IAAG,IAAPA,MAA2B,KAAA,IAC1CE,IAA0B,IAAVA,GAAiB,IAApB,IACbA,IAAU,IAAM,IAChBD,IAAkBK,MAAQ,KAACL,IAAY,IAAY,KAAzB,MAAX,IAJiB,GAAdD,IAAI,KAAxB,MAMF,EAcSI,GAAAA,aAAM,MAAuB,SAAA,KAApC,EAuBJ,OAEST,GAAAA,IAAe,KAAA,QAAfA,IAAsCY,MAAAA,IAAtCZ,IAAAA,IAAP,EAIAhC,GAAAA,IAAwB,MAACiC,IAAYY,SAAD,MAAqBlB,IAAU,MAA3C,MACxBK,IAAe,KAACc,IAAD,KACjB,EAGE9C,GAAAA,IAAwB,MAACiC,IAAYc,SAAD,MAAsBpB,IAAU,MAA5C,MACxBK,IAAe,KAACc,IAAD,KACjB,EAGEd,GAAAA,IAAc,MAAA,IACdhC,IAAwB,MAACiC,IAAYc,MAAD,KAAepB,IAAU,MAArC,MAC1B,EAEA,GACE,GACE3B,GAAAA,IAAwB,aAAC,IAA8B2B,IAAU,KAAzC,MAD1B,EAGF,EA9gBiB,EAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAwWf,EA5UaqB,GAAAA,IAHD,EACF,IADE,OAAA,KAAA,KAKHC,OAA0B,WAAf,OAAlB,EAGF,GACE,EAGF,KACa,EAAH,IAEK,KAAC,KAAD,KAIb,EAHEC,GAAAA,SAAS,MACX,EAKF,iBACK,MAAiB,GAAA,MACb,SAAP,OAKgBC,GAAAA,IAAe,MAC/B,QAKW/C,MAAW,KAAA,KACJgD,IAAW,KAK3BC,IAAO,KADT,GAEe,SAAA,OAFf,OAE+C,SAAA,KAF/C,OAQQ,OAAR,IACMC,IAAU,KAAd,MAIIC,IAAQ,KAAZ,MAGIC,IAAM,KAAV,MAGIH,IAAO,KAAX,MAOS,QAGPI,IAAO,OAAX,GAEW,UAIPH,IAAU,QAAd,GACe,QAALrC,GAAyB,SAAZ,IAAbA,IACD,QAAA,IAILsC,IAAQ,KAAZ,GACeG,MAAM,KAAU,KAAc,KAAA,SAApC,IAILF,IAAM,KAAV,GACeG,MAAI,KAAU,MAAiB,KAAA,SAArC,IAILN,IAAO,KAAX,GACeO,IAAW,SAAjB,IAGD,KAAR,IAAA,MAAyC,KAAzC,OAIA,OAQG,MAAU,KAAA,KAGb,uBAGmB,KAAC,KAAD,KAHnB,EACWC,qBAAW,wBAcnB,MAAS,MAAA,IAELC,IAAoB,OAA3B,EA3BMP,IAAQ,KACQ,MADpB,WAGoB,MAAlB,EAFmBG,MAAM,KAAU,KAAc,KAAA,SAA/B,MAAlB,EALW,IAANK,OAAyB,IAAzBA,IAAP,EApCSH,IAAW,KAAlB,EAHkB,MAACD,MAAI,KAAU,KAAc,KAAA,SAA7B,MAAlB,EAHkB,MAACD,MAAM,KAAU,KAAc,KAAA,SAA/B,MAAlB,EAJgB,KAALzC,GAAyB,SAAZ,IACN,UAAC,QAAA,QAAD,MAAlB,EAPK2C,IAAW,KAAlB,EAbA,EANuC,QAA/B,MAAA,aAAA,MAAR,EAyFSI,GAAAA,IACLC,GAAAA,IACAhD,IACAiD,IACAC,IAEAC,SANmB,IAArB,EAgBN,MACMC,GAAAA,MAAW,KAAf,MACIC,IAAQ,KAAZ,GAUIC,IAAQ,KAAZ,GACIC,IAAS,KAAb,GAEIC,IAAM,KAAV,GACF,EADuC,UAAA,MAAlB,EAFqB,aAAA,MAAlB,EADiB,aAAA,MAAlB,IAPjBC,MAAc,MAAA,KACJ,KAAC,kBAAD,MACA,KAAC,kBAAD,MACA,KAAC,kBAAD,UAJV,IAMgB,MANhB,QAMgB,MAAlB,EATwC,UAAA,MAAlB,EAiB1B,EACejD,MAAK,KAAU,KAAc,QAAA,SAAnC,QAAA,IAAP,EAGF,yBACe,IACY,KAGnBuC,KAHN,IACMrD,IAAsBgE,MAAM,KAAd,MACL,QADb,GAYa,KAZb,EAEIX,IAKEW,MAAM,qBALM,IADL,KAF0B,GAAzC,wBAgBY,KAAC,KAAD,KAOLC,IAAP,EAPa,GACG,MAAC,cAAD,KAAd,GACEA,GAAAA,IAAW,KACTZ,GAAAA,IAAeC,IAAKhD,IAAOiD,IAAcC,WAA3B,IADL,KADb,EAKF,EAIF,qBAES/D,MAA+B,KAAA,MAA/BA,GAA4D,IAAb,EAAA,OAC9C,KACE,KADV,KAOE,GACmB,cAAA,MADnB,EALmB,MADnB,WAGmB,MAHnB,UACmB,MAShBO,GAAAA,OAAc,QAAnB,OACS,QAAA,IAET,MACS,MAAa,KAAK,KAAL,OAApB,IA2BmB,cAAA,MA3BnB,KACM8D,IAAM,KACFxB,IAAqB,KAD7B,MAGqCiB,IAAlB,OAHnB,IACmB,OAIJ,SAAA,cAAf,IAGY,MAFV,GAYY,KACF,KAAC,KAAD,KAGC,KAAA,KANP,IAVJ,EAEU,KACF,KAAC,KAAD,KAGC,KAAA,KACE,SAAA,KAgBbG,IAAW,KAAf,MACE,GAAsB,MAAC,cAAD,KAAtB,MAGOK,MAAc,SAAA,KACP,MAAC,cAAD,KAAd,GAKY,KAAC,kBAAD,MACA,KAAC,kBAAD,MACA,KAAC,kBAAD,MACQ,UAAA,MARpB,EACoB,MAAQ,QAAJG,OAAJ,MACA,UAAA,MAFpB,IAYKA,IAAAA,IAAP,EAfI,EAtBW,OACI,IAAP,EASK,OACI,IAAP,EA6BhB,iBACiB,IACW,MAAC,KAAD,SAM1B,IAWa,IAANd,IAAoC,SAAA,SAApCA,IAAAA,OAAyD,IAAzDA,IAAAA,IAAP,EATU,IACLe,QAAmBA,IADpBf,IAGW,SAAA,SAHXA,IAAAA,OAKM,IALNA,IAAAA,IADF,EAPyB,GACzBgB,GAAAA,IAAW,GAAA,IACI,SAAA,OAAf,IAA4BA,IAAW,GAAA,IACd,KAAC,kBAAD,MAAuB,QAAzCC,OAAAA,IAAP,EAmBJ,EACSpD,MAAa,QAAA,KAApB,EAGF,GACS,OAAA,IAAP,EAGF,KACSqD,IAAP,EAOF,GACS,OAAA,IAAP,EAGF,GACS,OAAA,IAAP,EAOF,KACSA,IAAP,EAGF,GACSC,GAAAA,MAAQ,KAARA,GAAgBC,IAAc,SAAdA,IAAvB,EAGF,GACS,OAAA,IAAA,KAA2BF,IAAlC,EAGF,GACSC,GAAAA,MAAQ,KAARA,GAAeC,IAAc,SAAdA,IAAtB,EAGF,GAEID,GAAAA,MAAQ,KAARA,GACCC,IAAc,SAAdA,IAAAA,KAAuD1D,MAAb2D,IAA1CD,GAFH,EAMF,GACS,OAAA,IAAP,EAGF,EACS/E,MAAM,KAAU,KAAc,QAAA,KAArC,EAGF,EACSA,MAAM,KAAU,KAAoB,WAAA,MAA3C,EAkOF,EAAiB,EAUT,GACJ,GACEiF,GAAAA,WAAI,MAAD,KADL,EAGF,E,IC3lBQ,IAUuB,KAAH,IAeb,EACD,KADC,KAID,KAJC,KAON,KAPM,KAUD,KAVC,KAcH,KAdG,KAqCK,KArCL,KAqDV,KArDU,KAwDZ,KAxDY,KAAH,OAoFC,QAAc,EAnGI,GAIjC,EAagB,MAAA,MAChB,EAESC,GAAAA,IAAP,EAGAA,GAAAA,IAAAA,GAAkBA,WAAc,MAAhCA,EACF,EAGEA,GAAAA,IAAAA,GAAkBA,WAAc,MAAhCA,EACF,EACc,GAUVC,GAAAA,IAAQ,GAAA,IAKQ,WAAA,MAIhBA,IAAQ,GAAA,IAJR,EACA,EACAC,GAAAA,IAAsB,MAAA,KAEtBD,IAAQ,GAAA,MAEV,EAHU,EACRA,GAAAA,IAAQ,GAAA,IACV,EAGoB,SAKhBC,GAAAA,IAAkB,MAAA,IAAtB,GAOEA,IAAyB,MAAA,SAE3B,EAJkB,KAAA,MAAhB,EAOOD,GAAAA,IAAD,GAAD,GAAP,EAEG,YAOC,OAAJ,MAIkBV,IAAW,KAAd,OAAA,WAAA,IAXZ,KAwBH,IAhBEnD,MAAY,SAAA,QACZ,EAKF,IAAwC,KAAhBE,MAAA,KAAA,UAAA,IAAA,MAAgB,IAAhB,IAAA,IAAA,GAAgB,IAC/B4D,GAAAA,IAAyB,MAC9BC,GAAAA,IACAC,MAAAA,IAAAA,IAGAC,kBAL8B,IAAhC,E,EChGL,OA8CA,IAAI,EA9CJ,MAGwBvF,MAAM,KAAU,KAM5BA,MAAM,MAAb,OAAJ,cACEA,MAAiB,KAAH,MAoBLA,MAAM,MAAb,GAAJ,IACEA,MAAgB,KAAH,MAejB,EApCqB,KAEf,IAIgB,IAChB,GACMO,GADN,QAAA,SAAA,GACMA,IAAmB,KAAA,MAAvB,GACc,KAAC,IAAA,IAAY,IAAZ,IAAD,KADd,EAIF,IATYiF,MAAS,KAAA,WAAA,IAAA,IAAnB,EAkBY,KAEd,IAIe,IACf,GACMjF,GADN,QAAA,SAAA,GACMA,IAAmB,KAAA,MAAvB,GACa,KAAO,IAAP,KADb,EAIF,IATYiF,MAAS,KAAA,WAAA,IAAA,IAAnB,E,UCzCR,MAAA,QACA,IAAA,QAAA,IAAA,KAAA,KAAA,IAGAC,MAA6B,SAACC,IAAAA,KAAAA,KAAS,KAAV,MAAqB,EAALC,GAAAA,IAAAA,KAAN,E,K,O,IC6FtB,EAEf,WAFe,MAMf,SANe,MAUf,SAVe,MAcf,SAde,MAiBf,SAjBe,MAoBf,SApBe,MAuBf,SAvBe,MA0Bf,SA1Be,MA6Bf,SA7Be,MAiCf,SAjCe,MAoCf,SApCe,MAwCf,SAxCe,MAiDf,SAjDe,MAoDf,SApDe,MAuDf,SAvDe,MA0Df,SA1De,MA6Df,SA7De,MAgEf,SAhEe,MAmEf,SAnEe,MAsEf,SAtEe,MAyEf,SAzEe,MA4Ef,SA5Ee,MA+Ef,SA/Ee,MAkFf,SAlFe,MAqFf,SArFe,MAwFf,SAxFe,MA2Ff,SA3Fe,MA8Ff,SA9Fe,MAmGf,SAnGe,MAsGf,SAtGe,MA2Gf,SA3Ge,MA+Gf,SA/Ge,MAkHf,SAlHe,MAqHf,SArHe,MAwHf,SAxHe,MA2Hf,SA3He,MAoIf,SApIe,MAuIf,SAvIe,MA0If,SA1Ie,MA6If,SA7Ie,MAgJf,SAhJe,MAmJf,SAnJe,MAsJf,SAtJe,MAyJf,SAzJe,MA4Jf,SA5Je,MA+Jf,SA/Je,MAkKf,SAlKe,MAqKf,SArKe,MAyKf,SAzKe,MA4Kf,SA5Ke,MA+Kf,SA/Ke,MAkLf,SAlLe,MAqLf,SArLe,MAwLf,SAxLe,MAiMf,SAjMe,MAoMf,SApMe,MAuMf,SAvMe,MA0Mf,SA1Me,MA8Mf,SA9Me,MAiNf,SAjNe,MAoNf,SApNe,MAuNf,SAvNe,MA8Nf,SA9Ne,MAiOf,SAjOe,MAoOf,SApOe,MAuOf,SAvOe,MA0Of,SA1Oe,MA6Of,SA7Oe,MAkPf,SAlPe,MAqPf,SArPe,MAyPf,SAzPe,MA4Pf,SA5Pe,MA+Pf,SA/Pe,MAkQf,SAlQe,MAsQf,SAtQe,MAyQf,SAzQe,MA8Qf,SA9Qe,MAiRf,SAjRe,MAwRf,SAxRe,MAkSf,SAlSe,MA4Sf,SA5Se,MAsTf,SAtTe,SAAH,MAgUZ,EA7TSC,GAAAA,IAAOC,MAAA,MAAA,KAA8D,KAA5E,EAIOD,GAAAA,IAAOC,OAAA,MAAA,KAA8D,KAA5E,EAIOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAIOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAwD,KAAtE,EAIOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAA8C,KAA5D,EAIAC,GAAAA,IAAAD,OAAA,MAAA,aAAA,SAMc,IAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAoD,KAAlE,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAiC,KAA/C,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAwC,KAAtD,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAKOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAMOD,GAAAA,IAAOC,OAAA,MAAA,KAAiC,KAA/C,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGAC,GAAAA,IAAAD,OAAA,MAAA,aAAA,SAMc,IAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAoC,KAAlD,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAA+B,KAA7C,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAyC,MAAvD,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAA6B,KAA3C,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAA8D,KAA5E,EAIOD,GAAAA,IAAOC,OAAA,MAAA,KAA+C,KAA7D,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAqC,KAAnD,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAwC,KAAtD,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAoC,KAAlD,EAGAC,GAAAA,IAAAD,OAAA,MAAA,aAAA,SAMc,IAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAIOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAMOD,GAAAA,IAAOC,OAAA,MAAA,KAAyC,MAAvD,EAIOD,GAAAA,IAAOC,OAAA,MAAA,KAAyC,KAAvD,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAwC,KAAtD,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAA6C,KAA3D,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAA2B,KAAzC,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAKOD,GAAAA,IAAOC,OAAA,MAAA,KAAkD,KAAhE,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAqD,MAAnE,EAIOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAd,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAkD,MAAhE,EAIOD,GAAAA,IAAOC,OAAA,MAAA,KAAuC,KAArD,EAKOD,GAAAA,IAAOC,OAAA,MAAA,KAAkD,KAAhE,EAGOD,GAAAA,IAAOC,OAAA,MAAA,KAAmC,MAAjD,EAEF,EACS,KAAP,EAAO,EACLvE,MAAY,SAAA,KADP,EAMT,EACEA,MAAa,SAAA,KAONsE,GAAAA,IAAOC,OAAA,MAAA,KAAsC,MAApD,EAEF,EACEvE,MAAa,SAAA,KAONsE,GAAAA,IAAOC,OAAA,MAAA,KAAsC,MAApD,EAEF,EACEvE,MAAa,SAAA,KAONsE,GAAAA,IAAOC,OAAA,MAAA,KAAsC,MAApD,EAEF,EACEvE,MAAa,SAAA,KAONsE,GAAAA,IAAOC,OAAA,MAAA,KAAsC,MAApD,E,a,M,K,I,Q,S,QCrZJ,IAAA,QAAA,IAAA,KAAA,KAEA,IAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,KA8BIE,KAAQ,SAARA,OAOIhG,MAAI,IACN,QADM,IAEN,QAFM,IAGN,QAHM,IAIN,QAJM,IAKN,QALM,IAMN,QANM,IAON,QAPM,IAQN,QARM,IAAD,KAAA,UAAA,IAAA,IAPPgG,EACIhG,MAAI,IACN,QADM,IAEN,QAFM,IAGN,QAHM,IAIN,QAJM,IAAD,KAAA,UAAA,IAAA,IADPgG,4BAAH,IA2ByB,EASP,KATO,KAkCN,KAlCM,KA2DH,KA3DG,KAoFH,KApFG,KAiHG,KAjHH,KA6IG,KA7IH,KAsKH,KAtKG,KAqMK,KArML,KAwPR,KAxPQ,KAyQH,KAzQG,KAgRF,KAhRE,KAiSA,KAjSA,KA+SW,KA/SX,KAsUG,KAtUH,KAwVM,MAAA,EA9UxBA,GAAAA,IAAAA,KAAQ,SAAZ,MAGaC,MAAO,KAAA,MAAC,QAAD,IAAA,IAAlB,IAFOA,MAAe,OAAA,KAAtB,EAEmB,GACbC,GAAAA,IAAAA,OAAJ,MAMQ,KANR,EACEA,IAAAA,KAAqD,SAAA,MADvD,EAQF,EAaEF,GAAAA,IAAAA,KAAQ,SAAZ,MAGaC,MAAO,KAAA,MAAC,QAAD,IAAA,IAAlB,IAFOA,MAAe,OAAA,KAAtB,EAEmB,GACbC,GAAAA,IAAAA,OAAJ,MAMQ,KANR,EACEA,IAAAA,KAAsD,SAAA,MADxD,EAQF,EAaEF,GAAAA,IAAAA,KAAQ,SAAZ,MAGaC,MAAO,KAAA,MAAC,QAAD,IAAA,IAAlB,IAFOA,MAAe,OAAA,KAAtB,EAEmB,GACbC,GAAAA,IAAAA,OAAJ,MAMQ,KANR,EACEA,IAAAA,KAAyD,SAAA,MAD3D,EAQF,EAYiB,EACRD,MAAO,KAAA,MAAC,QAAD,IAAA,IAAlB,EAAmB,MACbD,GAAAA,IAAAA,KAAQ,SAAZ,IAOME,IAAAA,OAAJ,MAMQ,KANR,EACEA,IAAAA,KAAyD,MAAA,MAD3D,EANIC,IAAAA,OAAJ,MAGQ,KAHR,EACEA,IAAAA,KAAoD,MAAA,KADtD,EAeJ,EAWyB,EACdF,MAAO,KAAA,MAAC,QAAD,IAAA,IAAlB,EAAmB,KACbD,GAAAA,IAAAA,KAAQ,SAAZ,IAIIE,IAAAA,SAAAA,IAAAA,IAAAA,KAA6B,MAD/B,IASQ,KATR,EAIEA,IAAAA,KAAwE,SAAA,MAQ9E,IAdWD,MAAe,OAAA,KAAtB,EA0BAD,GAAAA,IAAAA,KAAQ,SAAZ,MAGaC,MAAO,KAAA,MAAC,QAAD,IAAA,IAAlB,IAFOA,MAAe,OAAA,KAAtB,EAEmB,GACbC,GAAAA,IAAAA,OAAJ,MAMQ,KANR,EACEA,IAAAA,KAA+D,SAAA,MADjE,EAQF,EAYiB,EACRD,MAAO,KAAA,MAAC,QAAD,IAAA,IAAlB,EAAmB,MACbD,GAAAA,IAAAA,KAAQ,SAAZ,IAOME,IAAAA,OAAJ,MAMQ,KANR,EACEA,IAAAA,KAAsD,MAAA,MADxD,EANIC,IAAAA,OAAJ,MAGQ,KAHR,EACEA,IAAAA,KAAwD,MAAA,KAD1D,EAeJ,EAa2B,EAChBF,MAAO,KAAA,MAAC,QAAD,IAAA,IAAlB,EAAmB,GACbD,GAAAA,IAAAA,KAAQ,SAAZ,QAUQ,KAVR,EAEIG,IAAAA,OADF,IAEEA,IAAAA,KAA8B,MAFhC,MAMQ,KANR,EAIEA,IAAAA,KAA4D,SAAA,KAJ9D,EAWJ,EA0CwBC,GAAAA,IAAc,QAAA,OAC/BC,IAGHC,IAAAA,KAAiC,QAAA,MAH9BD,EACH,IAAO,KAAP,OADJ,EACW,EAAU,EAWrBE,GAAAA,IAAAA,cAA4B,MAC9B,EAKsB,GAKhBP,GAAAA,IAAAA,KAAQ,SAAZ,QAAA,IAIAQ,IAAAA,OAAAA,MAAAA,KAAAA,SAAsB,MACxB,IAJI,EAWoB,GAClBR,GAAAA,IAAAA,KAAQ,SAAZ,IAGEE,IAAAA,OAAAA,IAAAA,IAAAA,KAAuD,MAAA,KAAvDA,EAFAC,IAAAA,OAAAA,IAAAA,IAAAA,KAAwD,MAAA,KAAxDA,EAIJ,EAQmC,GAI7BH,GAAAA,IAAAA,KAAQ,SAAZ,IAGME,IAAAA,OAAJ,IAAIA,IAAAA,KAA6B,MAAjC,GAMEA,IAAAA,KAAAA,IAAAA,IAAAA,KAAuD,MAAA,KAAvDA,EALAA,IAAAA,KAAAA,IAAAA,IAAAA,KAAkE,SAAA,MAAlEA,EAHFC,IAAAA,OAAAA,IAAAA,IAAAA,KAAwD,MAAA,KAAxDA,EAWJ,EAO2B,KACrBH,GAAAA,IAAAA,KAAQ,SAAZ,MAYSC,MAAe,KAAA,KAAtB,QAXWA,MAAO,KAAA,IAAC,QAAD,IAAA,IAAlB,EAAmB,GACbE,GAAAA,IAAAA,OAAJ,IAAIA,IAAAA,KAA8B,MAAlC,GAMUM,GAAAA,MAAD,KANT,EACEN,IAAAA,KAA0D,MACxDM,GAAAA,IADwD,MAD5D,EAQF,E,K,KCxZQ,MAAiC,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EALtH,GACSC,GAAU,QAAVA,GAA8B,EAAA,OAArC,E,W,M,K,I,Q,S,QCWF,IAAA,QAAA,IAAA,KAAA,KAYMC,KAAY,KAAA,OAAA,IAAA,IAElB1G,MAAqB,KAAoC,EAAA,IAAA,WAApC,OAKgB,MAAA,E,W,K,M,M,K,I,Q,S,Q,I,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,K,IC+BJ,KA0E9B,IAAA,MAiBF,EAdD,MAQ8D,MAC5D,MACsB2G,MAAG,KAAA,OAAA,IAAA,IACJ,OAErB,EA1F+B,EAAA,KAAA,IAGUC,GAAAA,IAAA,KAAA,MAAA,IAMzC,KANyC,IAAA,IAAA,IA+BzC,MAAA,IAOA,KAPA,IA/ByC,IAoDzC,MAAA,IAGA,KAHA,IApDyC,IAiEzC,MAAA,IAGA,KAHA,IAjEyC,MAAA,MAuExC,EA1E8B,EAAAC,GAAAA,IAAA,KAAAH,GAAAA,MAAA,MAGQ,EAA9B,MAAgC,EAMzC,KAKM,OAAJ,cAKsBI,GAAAA,MAChB,SADwB,MAAX,IAIuD,KAAA,IAAA,IAGlE,KAHkE,IAAH,IAOtD,KAACC,IAAD,KACVA,IAAP,IAhBYvB,MAAS,KAAA,WAAA,IAAA,IAAnB,EAYEwB,GAAAA,IAAoB,KAACD,IAAD,OACtB,EAaJ,WAMU,SAAU,MAClB,OAA2B,KALpBvF,QAAAyF,IAAAA,IAAA,KAAA,UAAA,IAAA,OAKoB,OALpB,IAAAC,IAAA,IAAA,GAKoB,IACFC,GAAAA,IAAA,KAAA,KAAvB,GAAA,GAAA,IAAA,GAAA,IACc,KAAe,KAAa,QAAb,MAC7B,EAAA,EAAA,GAAA,EAEJ,EAKA,OAGE,IAGa,MAAX,IAHF,EACmB,EAAH,MADhB,EAKF,EAKA,EACuD,SAAU,QACxDH,IAAyC,KAAhD,E,Q,O,I,KChIU,MAA6B,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAHlH,GACSlB,GAAAA,IAAAD,MAAA,MAAA,KAAA,KAAAC,GAA0BA,IAAAD,OAAA,IAAA,KAAA,KAA1BC,GAAkDA,IAAAD,OAAA,IAAA,KAAA,KAAlDC,GAAqFA,IAAAD,OAAA,IAAA,KAAA,IAA5F,E,Q,O,I,KCDY,MAA6B,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAHlH,KACMrE,MAAa,KAAA,KAAjB,KACF,EADiCsE,GAAAA,IAAAD,MAAA,MAAA,KAAA,KAAP,E,K,KCGZ,MAA4B,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EALjH,QACE,IAA4B,KAA5B,IAA8C,KAA9C,EAC2BrE,MAAK,KAAA,UAAA,IAAA,MAAhC,IAAkE,IAAN,IAAX,GAAjD,IACA,E,K,KCAY,MAA2B,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAHhH,KACM,KAAA,OAAJ,IAA0C4F,MAAM,MAAP,MAAzC,IAA0E,QAA1E,MACF,EAD2G5F,MAAU,MAAA,KAAjB,E,Q,O,I,KCQtF,MAAsC,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAR3H,MACE,KAAQ,EACJ,OAAJ,SACQxB,MAAM,KAAU,KAAc,KAAA,KAAS,cAAA,aAC/C,IAAuB,QAAvB,GAA0C,KAAY,KAAtD,IACA,QAAA,QACA,IAAyB,cAA+C,MAAA,KAAxE,KACF,EADsF8F,GAAAA,IAAAD,MAAA,MAAA,KAAA,MAAP,EADtCrE,MAAU,MAAA,KAAjB,EAHEsE,GAAAA,IAAAD,MAAA,MAAA,KAAA,MAAP,E,K,KCAf,MAA6B,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAHlH,EACYL,MAAS,KAAA,WAAA,IAAA,IAAnB,E,K,KCIY,MAA0B,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAL/G,MACQ6B,IAAN,KACY7B,MAAS,KAAA,WAAA,IAAA,IAAnB,IAEJ,E,Q,O,I,K,I,KCcc,MAAuB,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAjB5G,kBAC2B,KAKOM,KALhC,IACwB,IACY,KAAVwB,KAAH,MACE,MACnB,IAAJ,GAA8C,MAC9CtH,MAAqB,KAAS8F,IAAAD,IAAA,IAAA,KAAwB,KAAxB,KAAT,OALY,GAAV,KAAzB,IAOF,EACA,SACE,GAAgB0B,GAAAA,IAA6B,OAAZ,MACjC,GAAiBA,GAAAA,MAAiB,MAAlC,EACAvH,MAAqB,KAA2B,IAAA,SAA3B,OAGrB,E,Q,O,I,KCVY,MAAyB,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAHlG8F,GAAAA,IAAAD,MAAA,MAAA,YAAA,SACH,IAAA,KAAA,KAAA,YAAAC,MAAkCvB,MAAM,KAA/C,E,Q,O,I,KCOY,MAAuB,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAV5G,UACMuB,GAAAA,IAAAD,MAAA,MAAA,KAAA,KAAA,SAAJ,SAAA,SACiBuB,MAAM,MAAP,IAChB,QAKQI,IAA6BC,MAA7BD,EAAoBjD,MAAe,KAA3C,EAJqB,KAAQiD,MAAR,MACf1B,IAAAD,IAAA,IAAA,KAAA,KAAA,KAAJ,IACUL,MAAS,KAAA,WAAA,IAAA,IAAnB,EAD+B,EAJkB,E,K,I,K,ICOvC,MAAkB,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EATvG,EAGUrF,GAAAA,MAAyC,SAAA,GAAd,IAAkDiH,MAAM,UAAb,GAA3C,IAE/B,KAF+B,EAAoE,KAAvE,IAAV,MAInBjH,IAAM,OAAmB,MAAe,KAA4B,KAAT,MAAoBuH,SAAO,KAJzF,EAAuG,GAC9F,GAAP,EACE,OACKjB,KAAqB,SAAA,GAArBA,IAAyC,KAAiBW,MAA1DX,IAA4EW,MAAM,KAAlFX,IAA0G,GAAjH,E,UCIJ,MAAA,QAAA,IAAA,KAAA,KAAA,IASiB,UAIf,SAJe,MASf,SATe,MAoCf,SApCe,MA4Cf,SA5Ce,MAgDP,KAhDO,QA2DH,MAAY,EAvDxB,EAEa,MAAU,MAArB,EAGF,EAmBU,QAAR,IAEqBkB,GAAAA,IAAAA,KAA2C,KAAA,IAA9C,MAGP,MAAX,EAGF,EAKE,EAGF,EAEa,MAAU,UAAd,IAAP,EAEM,OACN,IAAA,OAGI,IAAA,GAII,KAJJ,EAEI,MALR,EAEQ,MAH6B,E,e,K,I,M,K,I,Q,O,WCvDzC,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAC,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAwB1B,SAAA,KAE/C,MAAA,EA1ByE,IAAA,KAAA,OAAA,cAAA8H,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,c,I,I,I,K,M,M,K,I,Q,O,K,M,K,QCA1E,MAAA,QAAA,IAAA,KAAA,KAAA,IAI+B,MAAT,IAgCrB,EA9BD,GAEMnI,GAAAA,IAAM,QAAV,IAEuBkG,IAAAD,OAAA,MAAA,KAAA,MACrB,IAKEqC,MAAJ,IAKA,EAJqBA,MAAgB,KACnC,EANE,EAaGC,GAAAA,SAAa,KAApB,EAGK,GACUA,GAAAA,MAAa,KAC5BC,IAAAA,OACEjI,MACC,MAAA,aAAA,UAAA,IAFM,MAKT,E,EC3Bc,QA4BF,QAAa,EA5BX,UAOd,MAEE,eAMa,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,IAAH,MACI,MACAkB,MACI,KAAC,cAAO,KAAR,MADC,KAAA,OAAA,IAAA,QAGP,MAXZ,IACcA,MAAK,KAAA,WAAA,IAAA,eAaF,MACjB,EAEJ,EARkDgH,GAAAA,IAAKC,IAAQ,GAAA,GAAA,IAAT,IAAX,E,a,I,I,K,K,K,I,K,I,K,IC+CjB,MA2FmC,EACnD,MAAV,GAEkB,MAAX,GACsB,SAC3B,IAAA,SAAA,SAKwC,IAAA,KAC3B,MAAZC,GAAmC,IAAnCA,oBAA8C,KAC7C,KAD6C,KAR1C,wBADiB,0BA+BPC,OAAH,MAAiB,EAtL/B,UAQE,KACE,EAGF1C,GAAAA,IAAAD,MAAA,IAAA,QAAA,MAAiB,OAAW,OAAS,OAAgB,OAAa,IAClE,IAAA,KACwB,UAAA,KAAtB,GAAA,GAAuD,UAAA,KAAtB,GAAjC,IACA,IAFF,MAOA,GAAA,GAES,EAAA,IAAP,EAGgC,kBAClC4C,KACiB,KAAC,KAAD,KADjBA,EAcAzI,MAAa,KAACG,IAAD,MAETA,IAAM,OAAV,IAGEmB,MAAY,KACT,MAAA,uBAAA,IADS,eAFZnB,IAAsB,KAAH,MAWKA,IAAnB,EAAA,IAAA,KAAP,EA3BkB,eAEXuI,GAAAA,IAAAA,GAAkBC,GAAAA,IAAcD,MAAD,MAA/BA,KAEAE,IAAAA,GAAeD,GAAAA,IAAcC,MAAD,MAA5BA,KACH9C,GAAAA,IAAAD,OAAA,MAAA,KACE,GAAA,GAAc,GAAd,IADF,MAImBgD,GAAwBC,MAAAA,GAC3C3I,IAAqB4I,IAAUC,IAAD,UAAZ,IACpB,EAK4BC,GAAAA,IAAAA,KAAajJ,MAAa,MAAC,EAAD,KAAhC,EAkBxB8F,GAAAA,IAAAD,OAAA,MAAA,KACEjG,IAAM,UADR,MAI+C,SAAA,KAClCsJ,OAAS,SACfC,GAAY,MAAnB,EAGF,eAEE,IAuBO,cAvBP,EACO,0BA2DA,MACP,EA5DO,MAAqD,KAAhB3H,MAAA,KAAA,UAAA,IAAA,MAAgB,IAAhB,IAAA,IAAA,GAAgB,YAIRH,MAAK,KAAA,OAAA,IAAA,IAAZ,IAC9B2E,MAAO,KAAA,IAAC,QAAD,IAAA,IAAlB,EAAmB,KAAA,OAAA,IACjBF,GAAAA,IAAAD,OAAA,MAAA,KAA+B,MAC7BmD,GAAAA,IACAI,IACAf,GAAAA,IACA,KACA,QAL6B,IAajC,EATYgB,GAAAA,SAAO,KAAX,EAEFC,GAAAA,IACEC,GAAAA,IAEEC,GAAAA,SAFsB,MADpB,KADC,EAWV,MAAwD,KAAhBhI,MAAA,KAAA,UAAA,IAAA,MAAgB,IAAhB,IAAA,IAAA,GAAgB,IACvC,OAAJ6G,IAA2B,QAAJA,IAAD,IACZ,UAAJA,IAA2B,QAAJA,IAAD,IACjB,OAAA,IACF,GAAA,IACzBoB,GACE3D,GAAAA,IAAAD,IAAA,IAAA,SAAA,MADF4D,EAMoCC,MAAAA,EAEHD,MAGP,KAAQ,KADZC,IACQrB,IAAJ,MACtBsB,GAAAA,QAAJ,IASE7D,GAAAA,IAAAD,OAAA,IAAA,KAA+B,MAC7BmD,IACAI,gBAF6B,IAQnC,EAhBWtD,GAAAA,IAAAD,OAAA,IAAA,KAAgC,MACrCmD,IACAI,gBAFqC,IAAvC,EAuBR,GACsB,QAAA,WAAbpF,IAAP,EAGF,KAMShE,MAAa,KAAQ4J,GAAa,EAAbA,GAAR,MAApB,EAeE,OAGeV,GAAAA,OAAS,MACtB,GACE,EAGM,MAAR,WAKEW,IAAyBrB,IAAmB,KAAO,EAC5C,KAD4C,IAA3B,OAL1B,EACEA,IAAkB,KAAa,MAAP,YAQ5B,EAHiBsB,GAAAA,IAAWX,GAAAA,IAAI,KAAOH,MAAZ,MAAhB,E,Q,O,I,KCnMD,MAAyB,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAH9G,MACSlD,GAAAA,IAAAD,MAAA,MAAA,KAAA,KAAAC,GAAuBA,IAAAD,OAAA,IAAA,KAAA,MAAvBC,GAAuDA,IAAAD,OAAA,IAAA,KAAA,MAAvDC,GAA6FA,IAAAD,OAAA,IAAA,KAAA,IAApG,E,K,KCFY,MAA0B,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAH/G,KACMrE,MAAa,KAAA,KAAjB,KACF,EAD0B,E,K,KC0BZ,MAAgC,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EA3BrH,0BACW,MAAoC,SAAA,OAAf,GAAoC4F,MAAM,MAAP,IAAnC,GAA2D,MAA3D,GAArB,GACT,IAwBF,EAnBa,QAGT,GACwB,KAAA,QAAK,OAA3B,UAGkC,QAAA,QAAI,QAA/B,MAAoD,QAAG,KAAH,KAAgB,KAApE,SAA2B,QAAA,QAAI,QAA/B,MAAoD,QAAG,KAAH,KAAgB,KAApE,QAFDpH,SAAM,KAAV,MAGJ,EAGE,GACE,MAAqB,KAArB,OAAqD,KAAA,IAAIA,MAAM,KAA/D,IACQ,GACR,GAF6E,KAErE,EADV,GACE,GATuB,KASf,EADA,KACR,GACF,KADU,EANV,IAGA,GACE,MAAqB,KAArB,OAAqD,KAAA,MAAIA,MAAM,KAA/D,IACQ,GACR,GAF6E,KAErE,EADV,GACE,GAGJ,KAHY,EADA,KACR,GACF,KADU,EAJF,EAEN,MAAqB,KAArB,OAAqD,KAAA,MAAIA,MAAM,KAA/D,IACQ,GACR,GAF6E,KAErE,EADV,GACE,GAEJ,KAFY,EADA,EACR,GACF,EADU,E,K,KClBF,MAA2B,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAHhH,EACYwF,MAAS,KAAA,WAAA,IAAA,IAAnB,E,KCakC,SAAA,KAAA,KAAA,OAAA,IAAA,MAQpCxF,MAAqB,KAA8B,IAAA,IAAA,WAA9B,UAKP,MAAiB,E,K,O,O,ICab,OAgEf,OAyXW,MAAgB,EAzbZ,EAAA,KAAA,IA8ChB8F,GAAAA,IAAAD,OAAA,MAAA,KAAA,MAAA,IAoBA,KApBA,IAAA,IAAA,IA8BC,MAAA,IAED,KAFC,IA9BD,IAyCC,MAAA,IAED,KAFC,IAzCD,IAmDC,MAAA,IAED,KAFC,IAnDD,IAuDC,MAAA,IAED,KAFC,IAvDD,IA2DC,MAAA,IAED,KAFC,IA3DD,IAyEC,MAAA,IAED,KAFC,IAzED,IA8EC,MAAA,IAED,KAFC,IA9ED,IAkGC,MAAA,IAED,KAFC,IAlGD,IAqJC,MAAA,IAED,KAFC,IArJD,IA4PC,MAAA,IAED,KAFC,IA5PD,IA2QA,MAAA,IACA,KADA,IA3QA,IAgRA,MAAA,IAIA,KAJA,IAhRA,IAoSA,MAAA,IACA,KADA,IApSA,IA4SC,MAAA,IAED,KAFC,IA5SD,IAoTC,MAAA,IAED,KAFC,IApTD,IAuVC,MAAA,IAED,KAFC,IAvVD,IAwYC,MAAA,IApYD,KAoYC,IAAA,IAAA,IAxYD,OAkBC,EAhDD,GAAcC,GAAAA,IAAAD,MAAA,MAAA,KAAAkE,GAAAA,IAAA,MACgB,EAAH,MACX,IAAC,IAAD,IAAK,IAAL,IAAS,IAAT,IAAA,IAAH,QACkBhK,MAAG,KAAA,OAAA,IAAA,IAAV,MACOA,MAAG,KAAA,OAAA,IAAA,IAAV,MACV,MACG,MACYwD,MAAQ,KAAA,IAAX,QACW,MAW7B,MAAoC,KAAA,KAFP,MAKX,MAAkB,KAAA,KAAzB,MAKX,MAAyC,KAAA,KAFP,MAG1C,EAsBA,QAAA,OAAA,OAAA,IAI+D,IACjD,MAAC,KAAD,KAIY,MAAA,IAAxB,EAHEyG,GAAAA,IAAmB,MAAC7J,IAAQ8J,IAAQ5B,IAAjB,SACrB,EAKF,QAAA,OAAA,IAG+D,IACjD,MAAC,KAAD,KAIY,MAAA,IAAxB,EAHE6B,GAAAA,IAAqB,MAACC,IAAM9B,IAAP,QACvB,EAKF,KAA4E,IAC9D,MAAC,KAAD,KAIM,MACJ,IAAC,IAAD,IAAK,IAAL,IAAS,IAAT,IAAiB,MAAjB,IAAH,QACC,IAAG,OAAR+B,MAAP,EALEC,GAAAA,IAAgC,MAAA,MAClC,EAOF,EACS9G,MAAQ,KAAA,OAAS,MAAjBA,IAAP,EAGF,KAAA,OACM,MAA8B,QAAH,MACjC,EAD0CpD,GAAAA,IAAN,EAGpC,KAEuC,OACjC,MAA8B,QAAH,MASjC,EARQmK,GAAAA,IAAJ,GACWA,MAAQ,IAAX,MACE,IAIHnK,IAAP,EAIJ,GACuB,SAAqB,MACnCmK,KAAmB,IAA1B,EAGF,YAgBuB,wBAAA,IACd1K,GAAAA,IAAyB,MAAA,OAAhC,EAGF,YAOE,GAAA,GA2BE2K,GAAqB,KAAK,SAAJ,IAAD,KAErBC,GAAqB,KAAM,SAAJ,IAAA,IAAF,KACjB,MAAsB,KAAK,MAAL,MACtB,MAAsB,KAAK,MAAL,MAUxB,MAAQ,GAAA,QACd,EAEA,YAOuB,wBAAA,IAEjB,QAAO,IAAiB,KAAA,KACxB,SAAO,IAAiB,KAAA,KA8DxB,SAAO,IAAa,KAAA,OAEZjH,MAAQ,KAAA,IAElB3D,GAAAA,IAAM,MADR,GAEY,MAAV6K,OAFF,IAIoB,MACJ,IAAC,IAAD,IAAK,IAAL,IAAS,IAAT,IAAiB,MAAjB,IAAH,MACI,MACf7K,IAAgC,MAAA,KAElCkG,IAAAD,IAAA,MAAA,KAAqB,MAAmC,MAAO,IAAG,SAA7C,MASN,MAAR,GACK,SAAC,EAAA,IAAA,KAAA,IAAA,KAAD,KAOd,EAEA,EASA,EAKA,MACqC,QACrC,EAMA,MAC+B,MAAA,IAA7B,GAGE,EACI,IACJ,EAAE,EACAC,GAAAA,IAAAD,OAAA,MAAA,KAA2B,MAAA,KAC7B,IANE,IADJ,EASF,EAOA,EAGI,MAAA,OAAA,IAAA,GAEA6E,MAAgB,QAAhBA,IAJF,EAQF,GACE5E,GAAAA,IAAAD,OAAA,MAAA,KAAmB,UAAA,KACX,QAAR,IACqC,MAAA,IAErCC,IAAAD,IAAA,IAAA,KAAiB,MAAA,IACnB,EAEA,sBACoBtC,MAAQ,KAAA,IAAX,MACgB,MAAP,MACL,MACjBuC,GAAAA,IAAAD,IADF,MAGE,MAAA,KAAmB,MAAE,MAAA,uBAAA,IAAF,KAHrB,KACE,MAAA,KAAmB,SAAwB,IAAA,KAAA,KAAA,KAAtB,MAAA,2BAAA,IAAF,KAIb,MAAR,GACY,MAAC,IAAA,IAAA,KAAA,IAAA,KAAD,KAEgC,MAAA,KAC5C,MAC8B7F,MAAW,KAAK,MAAL,KACV,KAC0B,SAAA,KAG9BJ,IAAM,QAANA,OACzBkG,IAAAD,OAAA,MAAA,KAEG,MAAA,4CAAA,MAFH,MAMgB,IAAlB,GACEC,IAAAD,OAAA,MAAA,KAEG,MAAA,uBAAA,MAFH,MAKW,IAAc,KAAA,MAC3BC,IAAAD,OAAA,MAAA,KAAiB,MAAA,IACnB,EAEA,QACoBtC,MAAQ,KAAA,IAAX,MACgB,MAAP,SAIT4G,IAEGA,IACDQ,GAET,MAAsB,KAAA,KAFbA,EACT,MAAsB,KAAA,KA0B9B,KACE,EAGE,MAAyB,KAAA,KACzB,MAAyB,KAAA,KACrB,KAAA7E,GAAAA,IAAAD,OAAA,MAAA,QAAA,KAAA,MAKV,EApYA,KACE,MAQO,IAGLkE,GAAAA,IAAY,KAAgB,MAHvB,EACLA,GAAAA,IAAY,OAAgB,MADvB,EAPLA,GAAAA,IAAY,OAAmB,KAAH,MAD9B,EAaF,EAZmC,iBAC7BzI,MAAW,MACF,OAAJ6H,OAAF,MAAA,SAAA,MACQ,WAAJA,IAA0B,UAAJA,IAA6B,KAArD,MAAA,KAAA,MADF,IAEK7E,MAAc,MAAK,MAAL,KAAjB,MAAA,aAAA,MAFF,IADQ,OAKb,E,Q,I,K,M,M,K,I,Q,O,K,M,K,M,K,M,K,M,K,M,M,K,YCtFoB,MAEV,MA4Gf,EAzFQ1E,GAAAA,IAAM,MAANA,KAEHgL,MAAQhL,IAAM,QAAP,KAFJA,EACHA,IAA2B,MAACiL,IAAD,KAD/B,EAWK,EAA+C,EAM/C,GACDC,GAAAA,MAAS,IAAb,GAEI,UAAA,IAA2C,IAC7ClL,IAA8B,MAACiL,OAAD,OAElC,EAMMC,GAAAA,MAAS,IAAb,GACElL,IAA4B,MAACiL,OAAD,MAEhC,EAOO,GAIUE,GAAAA,IACXD,MAAS,IAAb,GACEC,IAAY,GAAA,IAEV,UAAA,IAA2C,IAC7CnL,IAAmC,MACjCiL,gBADiC,IAOrC,EAOK,GAKDC,GAAAA,MAAS,IAAb,GAEI,UAAA,IAA2C,IAC7ClL,IAAiC,MAC/BiL,gBAD+B,IAOrC,EAKO,GACDC,GAAAA,MAAS,IAAb,GAEI,UAAA,IAA2C,IAC7ClL,IAAM,MAANA,GACEA,IAAyB,MAACiL,OAAD,OAE/B,E,GClGwB,SAAV,QAAoC,E,W,O,M,K,I,Q,O,Q,QCdlD,IAAA,QAAA,IAAA,KAAA,KAAA,IAuGqE,UAAD,KAOxC,MAAA,EAxGrB,KAWK,QAJAG,MAAGvD,MAAM,MAIT,MAHMwD,MAAGxD,MAAM,MAGf,MAFKyD,MAAGzD,MAAM,MAEd,MADU0D,MAAG1D,MAAM,MAAT0D,YAVf,SAUe,IAEQ,IAAH,IAkDlB,KAAP,EA/CA,WACSC,GAAAA,IAAK,KAAZ,GAAgCA,IAAK,IAArC,IACEA,IAAW,MAAA,IADD,KAAZ,GAAgCA,IAAK,IAArC,IAII,OAAJ,WAOA,SAAA,YAKI5J,MAAa,KAAA,KAAjB,MAYE4G,GAAAA,IAAAA,KAAU,QAAD,MACEpI,MAAW,KAAA,KAClBoL,IAAK,KAAWC,IAApB,IAEe,KAAUC,IAAlB,OAEK,EACc,KAAIA,IAAJ,MAAxB,GAAA,GAAA,IAAA,GAAA,IAAA,GACmB,IAAR,IACX,EAAA,EAAA,GAAA,KAE2B,KAAUA,IAAdC,IAAH,MAPf,KAD6B,KAAxB,MAAA,aAAA,MADZ,KAbIH,IAAK,KAAWC,IAApB,IAEgB,KAAUG,IAAnB,IAEG,KAAIA,IAAJ,MACC,KACa,KAAL3K,IAAZ,MAAA,aAAA,MADK,IAAA,IAAD,KAHJ,EAD6B,KAAxB,MAAA,aAAA,MAwBduK,IAAa,MAAA,KACb,EA/BE,EANS,KAAUK,QAAgC,KAAhCA,IAAnB,IAGA,EAFwB,MAAIA,IAAJ,MAAf5K,IAAP,EAuCC,OACL,SAEO,OAEI,OAAJ,SAMmBQ,MAAfwD,IAAJ,GAMSP,MAAc,MAAMoH,GAAAA,IAAN,SAC1B,IAGA,EAFE,IAAO,QAAA,IAAP,EAGF,EACc,KAAV,GAAJ,IAGuB,KAAA,IAAnB,EACA,EAAW,IAIZ,QAAA,IAAP,EAnBY,SAAH7G,IAAqB,KAArBA,IAAP,EALqB,KAAA,IAAnB,EACA,MACA,MALF,MAFA,E,E,QCfQ,QAA4B,EAlD1C,WAAA,IAAA,IAAA,KAAA,IAU0B,KAAd,IACmB,OAAVyC,IAAH,IACW,MAAVA,IAAH,IAGF,MA2BZtH,MAAqB,KAAe,EA1CtC,KA0CsC,IAAA,MAAA,IAAA,IAAf,SAMvB,EA5BS2L,GAAAA,IAAL,KAMU,IACRC,IAASC,MAAG,IAAJ,KAEHhL,IAAP,EAEF,GACO,GAAA,MACG,MACRb,MAAqB,KAAC8L,IAAQrH,IAG5BsH,IACAC,IAJkC,EAAA,IAAA,IAAA,IAAA,KAAf,SAMvB,E,UC7CF,MAAA,QAAA,IAAA,KAAA,KAAA,I,QAwBc,MAAgC,EAlB9C,UAIE,IACEC,GAAAA,IAAAA,KAAgC,MAE9BA,IAAAA,KAAsB,KAAA,IAAE,MAAwB,MAFlB,MADlC,IAMA,IACEA,GAAAA,IAAAA,KAAgC,MAE9BA,IAAAA,KAAsB,KAAA,IAAE,MAAwB,MAFlB,MADlC,EAMF,E,UClBA,MAAA,QAAA,IAAA,KAAA,QA4BQ,QAANrM,OAEW,IAAA,KAFXA,KACW,IAAA,KADXA,Y,SADuC,MAM1BI,MAAA,KACG,EACT,KADS,IA6BD,KA7BC,KAuDH,KAvDG,KA8Fa,KA9Fb,KAiIU,KAjIV,KADH,EAAA,UA8JD,MAAa,EAzK3B,MAESkM,MAAAA,IAAP,EAWO,MAWDC,GAAAA,MAAgB,KAApB,GAaEC,IAAqB,KAAA,MAbvB,EAC0BC,IAAAA,KAAWC,IAAAA,OAAAA,IAAAA,KAAAA,MAAkB,IAAnB,KAEc,MAAA,KAChD,KAGEhL,MAAY,KAAE,MAAA,SAAA,KAAF,KAEJ,IALV,EACyB,KAAA,MAU7B,EAEe,MAST6K,GAAAA,MAAgB,KAApB,GAaEC,IAA6B,MAAA,MAb/B,EAC0BC,IAAAA,KAAWC,IAAAA,OAAAA,IAAAA,KAAAA,MAAkB,IAAnB,KAEc,MAAA,KAChD,KAGEhL,MAAY,KAAE,MAAA,SAAA,KAAF,KAEJ,IALV,EACiC,MAAA,MAUrC,EAEa,YAWP6K,GAAAA,MAAgB,KAApB,GAmBEC,IAA2B,qBAAA,IAnB7B,EAC0BC,IAAAA,KAAWC,IAAAA,OAAAA,IAAAA,KAAAA,MAAkB,IAAnB,KAEc,MAAA,KAEA,MAAA,KAEhD,GAAA,GACE,EAG2B,qBAAA,IAejC,EAE6B,UAUvBH,GAAAA,IAAgB,KAApB,GAiBEC,IAA2C,SAAA,eAhB3C9K,MAAY,SAAA,KAGY+K,IAAAA,KAAWC,IAAAA,OAAAA,IAAAA,KAAAA,MAAkB,IAAnB,KAEc,MAAA,SAChD,KACyB,KAErB,KAFqB,MAe7B,EAZUC,GAAAA,oBAAQ,IACV,EAakB,SAKpBJ,GAAAA,MAAgB,KAApB,GAYEC,IAAwC,MAAA,OAZ1C,EAC0BC,IAAAA,KAAWC,IAAAA,OAAAA,IAAAA,KAAAA,MAAkB,IAAnB,KAEc,MAAA,KAChD,KAIiB,MAAA,SAAA,KACgB,MAAA,OAWrC,E,K,KC/LY,MACR,KAAgB,QAEtBtM,MAAqB,KAAO,KAAwB,IAAA,QAA/B,SAA8C,EAZnE,QACE,MAGgBqB,QAAMmL,QAAkC,IAAnC,KAAA,UAAA,IAAA,OACJ,MACjB,EAJE,E,K,O,ICY0B,KAAH,IAKV,EACO,KADP,KASO,KATP,KAYD,KAZC,IAgBa,KAhBb,KAoBO,KApBP,KAwBC,KAxBD,KA4BH,KA5BG,KAkCH,KAlCG,KAoCR,KApCQ,KAsCT,KAtCS,KAwCA,KAxCA,KAmDa,KAnDb,KAwDN,KAxDM,IAmEE,KAnEF,KAuEK,KAvEL,KA4EA,KA5EA,KAuFgB,KAvFhB,KAkGC,KAlGD,KAoGG,KApGH,KAqGe,KArGf,KA2GoB,KA3GpB,KA6Ga,KA7Gb,KA+GF,KA/GE,KAiHC,KAjHD,KA2HwB,KA3HxB,KAkIS,KAlIT,KAoIA,KApIA,KA0IG,KA1IH,QAAH,QA4IZ,EAjJ4B,OAC5B,QAAA,IAD+C,EAMzB,EACpBlL,MAAa,KACXmL,GAAAA,UAAqB,SAArBA,OAAAA,IADW,OAKb,EAGOC,GAAAA,IAAAA,MAAAA,MAAAA,KAAAA,SAAqB,KAA5B,EAEY,EACZpL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KACN,EAAP,EAE0B,EAC1BnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KACN,EAAP,EAEoB,EACpBnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KACN,IAAP,EAEc,EACdnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KACN,EAAP,EAEU,EAKDnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADT,EAEH,EACVnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KAD+C,EAEvD,EACLnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADU,EAEnB,EACJnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADS,EAET,EAUJnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADb,EAEiB,EAIjBnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADwB,EAEvC,EAUEnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADb,EAEM,EAGNnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADiD,EAErD,EAITnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADoB,EAE7B,EAUJnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADb,EAEoB,EAU7BnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KAFJ,EAGK,EACdnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADkD,EAE/C,EAAa,EACD,EAK5BnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KAFyB,EAGL,EACjCnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADwC,EAE3B,EAC1BnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADqD,EAEvD,EACXnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KAD8C,EAE7C,EAOLnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADQ,EAIO,EACrCnL,MAAa,KACXmL,GAAAA,UAAqB,KADV,KAGf,EAGwB,EACtBnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KAD8C,EAE9C,EAKJnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KAD6B,EAEnC,EAChBnL,MAAa,KAACmL,GAAAA,UAAqB,KAAtB,KADG,E,Q,M,M,K,I,Q,O,K,MCrJkC1M,MAAG,KAAA,OAAA,IAAA,IAAV,MAmB9C,EAXM,GACoB4M,GAAAA,IAAyB,KAAA,OAClD,IACM/M,IAAM,MAAV,KAIS,MAAA,aAAA,MAAP,EAHqBA,IAA8C,MAAA,KACnE+M,IAAyB,KAAA,SAK7B,E,a,I,I,I,K,I,K,I,K,MChBF,IAAA,QAAA,IAAA,KAAA,KAAA,IAOmD,EAAH,MAEjBhG,MAAG,KAAA,OAAA,IAAA,IAAV,IAEO,EAAH,MACK,IA0DhB3G,MAAA,KACZ4M,KAAe,EACR,KADQ,KAeN,KAfM,IAkBE,KAlBF,KAqBE,KArBF,KADH,EAAA,OAgCjBA,KAAkD,MAAd,MA+Cb,IAAE,MAAlB,GACLA,IAAAA,KAA4B,KAAA,IAAE,MAAyB,KAAC,KAAD,KAO9C,UAAX,GACE5M,MAAW,KAAC6M,IAAY,IAAb,KAAwB,KAAC,KAAD,KADrC,EAoBiBC,OAAH,MAAe,EAnKtBC,GAAAA,IAAL,GAC6BH,IAAAA,KAA4B,KAAA,IAA/B,MACK,IAExBI,IAAP,EAGF,GAEIC,GAAAA,IAAkB,MADpB,IAEErN,IAAM,MAFR,GAGEgN,IAAAA,KAAe,MAHjB,GAMIK,IACEL,IAAAA,KAA0C,MAAA,KADT,IAErC,EAAE,IACAtL,MAAa,SACX,QAAA,IADW,MAMb2L,MAAmC,IAIxBA,IAAkB,IACjC,MAMKrN,IAAM,MAAX,GACE,EAIAgN,IAAAA,KAAe,MADjB,GAEGM,IAAsB,KAAA,KAFzB,GAIiBN,IAAAA,KAA8B,MAAA,KAC7CM,IAAsB,KAAA,OACtB,IAA4B,MAA5B,IACEL,IAAY,IAA4B,MAAT,IAC/BM,IAAuB,KAIpBF,IAAkB,IAAzB,EArBE,EA6DJ,OACqBJ,GAAAA,IAAY,IAAE,IACjCI,IAA4B,IACd,UAAd,KACEnH,IAAAD,OAAA,IAAA,KAAyBuH,IAAyB,EAC3C,KAD2C,QAAlD,OAcA,IAAA,KAAyBA,IAAwB,EAC1C,KAD0C,QAAjD,OAgBJ,EA7BW,IACiBtH,GAAAA,IAAAD,OAAA,IAAA,KAAcuH,GAAAA,IAAU,MAAxB,IACiB,UACrCC,OACErN,MAAW,KAACqN,IAAD,KAAqB,KAAC,KAAD,KAM3BpE,IAAP,EANmC,GACjBoE,GAAAA,IAAW,IACrB,OAAJ,IACEpE,IAAc,IADhB,EAGF,EAKC,MACiBnD,GAAAA,IAAAD,OAAA,IAAA,KAAcuH,GAAAA,IAAU,MAAxB,IACiB,UAErCC,eACErN,MAAW,KAACqN,IAAD,KAAqB,KAAC,KAAD,KAM3BC,IAAP,EANmC,GACjBD,GAAAA,IAAW,IACrB,OAAJ,IACEC,IAAgBC,IAAK,GAAA,GAAA,IAAR,IADf,EAGF,EAjDNX,GAAAA,IAAAA,KAA0B,qBAAA,MAC5B,EAESC,GAAAA,MAAY,IAAnB,EAGOW,GAAAA,SAAoB,KAA3B,EAGOA,GAAAA,SAAoB,OAApBA,IAAP,EAyDsD,KAAA,IACtD1H,GAAAA,IAAAD,OAAA,MAAA,KAAyB+G,IAAAA,KAAkC,EACpD,KADoD,IAA3D,OAGF,EAFeA,GAAAA,IAAAA,KAA0C,MAACa,GAAAA,IAAD,KAAhD,EAM2B,OAC7B3H,GAAAA,IAAAD,OAAA,IAAA,KAA4B,MAAA,KAAjC,GACOoH,IAAkB,IAAvB,GACEA,IAAsCJ,IAAY,IAAE,IAAjB,IADrC,IAGA/G,IAAAD,OAAA,IAAA,KAAyB+G,IAAAA,KAAkC,EACpD,KADoD,IAA3D,OAJF,MAeF,EAVW,EACHtL,MAAY,KAC8DmM,GAAAA,IAAvE,MAAA,aAAA,MACgEA,IAA9D,MAAA,aAAA,MADF,IADS,KAKLX,GAAAA,IAAgC,MAACW,IAAD,KAAvC,E,e,K,I,M,K,I,Q,O,WCzKV,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA7F,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OA2G1B,SAAA,KAAmB,MAAA,EA3GO,IAAA,KAAA,OAAA,cAAA8H,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,ECezD,WAAH,QAqCZ,E,Q,MCvDW/H,MAAA,KAAA,IAAA,QAAA,O,KAAA,QAsEZ,EADQJ,GAAAA,IAAM,MAAb,E,e,K,I,M,K,I,Q,O,WCnEF,OAAA,KAA6E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAgI,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAoBtC,SAAA,KAA2B,MAAA,EApBW,IAAA,KAAA,OAAA,cAAA8H,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,e,K,I,M,K,I,Q,O,WCA7E,OAAA,KAA6E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAqDtC,SAAA,KAA8B,MAAA,EArDQ,IAAA,KAAA,OAAA,cAAA8H,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,W,I,I,M,M,K,I,Q,OCa7E/H,MAAA,OAAA,MAAA,KAAA,KAAA,KAAA,KAAA,KAAyC,EAAzC,SAAA,QAAA,IAAAM,GAAAA,IAAAoN,IAAA,GAAApN,IAAA,IAAAwF,IAAAD,MAAA,MAAA,KAAA,IAAA,UAAA7F,MAAA,KAAAM,IAAA,IAAA,IAAA,KAAA,IAAA,SAAA,EAAA,IAAA,EAAAwF,GAAAA,IAAAD,MAAA,MAAA,KAAA6H,GAAAA,IAAA,IAAA,E,Q,O,O,M,M,K,I,Q,O,K,M,K,M,K,M,K,M,K,M,K,M,K,M,K,QCsFC,EAhGM,GACE,MACA,MACE,MACQ,MAQf9H,GAAAA,IAAOC,IADT,MAQS,MAAA,KAAwC,KAAA,MARjD,IACS,MAAA,KAAwC,mBAAA,IADjD,EAUF,EAKSD,GAAAA,IAAOC,OAAA,MAAA,KAA6D,SAAA,KAA3E,EAQOD,GAAAA,IAAOC,OAAA,MAAA,KAAgD,SAAA,KAA9D,EAKK,SAKDjG,GAAAA,IAAM,QAAV,IASSgG,IAAOC,OAAA,MAAA,KAAiD,MAAA,OAA/D,EANOD,IAAOC,MAAA,MAAA,KAAiD,MAAA,OAA/D,EAkBKD,GAAAA,IAAOC,OAAA,MAAA,KAAwD,YAAA,MAAtE,EAaAD,GAAAA,IAAOC,OAAA,MAAA,KAA0E,SAAA,KAGnF,EAOSD,GAAAA,IAAOC,OAAA,MAAA,KAAyD,YAAA,MAAvE,EAMK,EACE+E,UAAO,KAAd,E,WCtFqB,MAAA,KAGb,MAAV,MAGE+C,IAAAA,KAAAA,MAAoC,UAAA,MAHtC,EACqC,MAAd,MADvB,GAMc,MAAkC,E,mB,I,Q,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,OCnBzC,IAAA,QAEU,IAAA,KAUL,IACC,IACI,IACH,IACD,EACA,KADA,KAAH,MAmCQnM,MAAK,KAAR,IACe,IACT,IACA,IAqBRxB,MAAM,KAAT,IAiCW,KAAY,EACf,KADe,KAUd,KAVc,KAkBtB,KAlBsB,KAAA,KAsBnB,KAtBmB,KAA3B,MA+BqB,UAGV,KAHU,MASd,KATc,MAAH,MAeA,KAAH,MAgBJ,KA2BkC,MAAC,EACpC,KADoC,IAAD,KAAxB,IAWH,QACH,QACD,QACN,IAAH,IACM,UAAA,MAAH,IAoEiB,EACf,KADe,KAIT,KAJS,KAAA,IAAH,IAoEX,IACE,IAYQ,EACE,UADF,IAAA,IAOC,EACC,UADD,IAKV,QALU,IAOS,EACR,UADQ,IAKnB,QALmB,IAOX,EACG,UADH,IAAA,IAOR,MAAA,IAAA,IAID,MAAA,IAAA,IAID,MAAA,IAAA,IAII,MAAA,IAAA,IAIW,MAAA,IAEb,IAFa,IAIb,MAAA,IAAsD,IAAtD,IACC,MAAA,IAAuD,IAAvD,IACG,MAAA,IAEJ,IAFI,IAnDL,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAH,IA+YC,EACqB,KADrB,KAjRY,EACR,KADQ,KAAA,KAKR,KALQ,KAAA,KAAA,KAAH,IAgWI,EAAH,OAkFrB,IAAA,KAAA,MAAyD,MAGzD,IAAA,KAAA,MAAyD,UA7J1C,MAsEL,QACe,M,S,S,qB,S,SAmKVwB,MAAK,KAAU,KAAW,KAAC,QAAD,KAA7B,IAIO,IAGW,EAChB,EADgB,KAEb,KAFa,KAFa,EAAA,KAAA,KAgD/C,GAAA,MAAA,iBAAA,SAAA,GAE2D,KAAA,QADzD,GAM4C,IAEvCoM,IAA6B,KAAA,KADhC,GAEEA,IAAc,UAFhB,IAKMA,IAAc,IAAlB,GAKAA,IAEC,SAZH,EAMUvM,UAEDwM,QADH,IADS,KAAX,EAURC,GAA4D,IAI7B,KAAH,IAGT,IACG,KAAH,IAKnBC,IAAoB,MAAuC,MAAC,EAChD,KADgD,KAAD,KA0BlD,MACc3G,MAAU,SAAA,KACXA,MAAU,SAAA,KAAb,IACKA,MAAU,SAAA,KAAb,IACMA,MAAU,SAAA,KAAb,IACAA,MAAU,SAAA,KAAb,IACGA,MAAU,SAAA,KAAb,IACEA,MAAU,SAAA,KAAb,IACOA,MAAU,SAAA,KAAb,IACAA,MAAU,SAAA,KAAb,IACQA,MAAU,SAAA,KAAb,IACNA,MAAU,SAAA,KAAb,IACGA,MAAU,SAAA,KAAb,IACjBA,MAAU,SAAA,KACVA,MAAU,SAAA,KACiBA,MAAU,SAAA,KAAb,IACxBA,MAAU,SAAA,KACVA,MAAU,SAAA,KACVA,MAAU,SAAA,KACkBA,MAAM,MAAT,IAmOP,EAAH,IACF,IACI,IACK,EAAA,KAAH,IAgOK,IAmFZ,IACE,IAYF7E,MAAI,MAAJA,GAAaA,MAAI,MAAjBA,QAAH,IACDA,MAAI,MAAP,IACGA,MAAI,MAAP,OAKiB,UACP,IAuLU,IAgBGyL,MACQ,MAAxB,IACuB,MACe,MAEzB,MACsB,MAAxB,IACqB,MAAxB,IACqB,MACK,MAAxB,IACgB,MACQ,MACP,KACQ,MACF,MACG,MAAxB,IAEC,MADM,IAEU,MAErC,IAAA,KAAA,MAAyD,KADvC,IAER,IACdC,6B,KAA4C,KAA5CA,gB,SACgC,KA2G/B,IA3G2B,IA8HNC,MAAH,IACDC,MAAH,IAwBMnO,MAAM,KAAU,KAAnB,IACH,IAAH,UACL,IAakB,EAAH,IACa,KAAf,IACsB,KAAf,IACPoO,IAAH,IAkFoBpO,MAAM,UAAb,GAAf,IAAkCA,MAAM,MAAxC,Q,S,U,U,U,U,U,U,U,U,e,U,U,U,U,c,U,U,U,U,U,U,UAAH,IACD,IACkB,IACR,IA0BL,IAAH,IACG,IACE,IACN,IAAH,IACK,IACO,IAeF,IAC6B,MAAvB,IAwDK,KAAf,IACU,IACF,IACG,IAkDN,IA2BF,IA+Pa,KAAU,KAAA,OAAA,IAAA,IAAE,MAAxB,IAiBS,EACf,KADe,KAMT,KANS,KAkBL,KAlBK,KA+BN,KA/BM,KAAH,IAyyBiB,KAAlB,IACY,KAAlB,IACH,EAAH,IACyB,KAAf,IACmBqO,IAAD,KAAf,IACgBA,IAAD,KAAf,IA0Ca,KAAf,IAwBK,IAAH,IAM0B,MAAvB,IACsB,MAAvB,IACd,IACc,IACd,IACO,IACU,IACc,IACrB,IAsgBNC,IADW,EAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,IAAA,KAAA,IAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAH,IA8BVC,KAgDDC,KA1Da,EAAA,KAEV,KAFU,KAAA,KAAA,IAWF,KAXE,KAoBN,KApBM,KAuBH,KAvBG,KA0Bd,KA1Bc,IAiCX,KAjCW,KAqDf,KArDe,IAAA,IAAA,KA4DL,KA5DK,KA+DR,KA/DQ,KAsEL,KAtEK,KAuED,KAvEC,KAgGhB,KAhGgB,KAAA,KAAH,IAmHRC,KATY,EAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,IAAA,KAAA,IAWd,KAXc,IAAA,KAeN,KAfM,KAmBT,KAnBS,KAAA,KAAA,KAAA,KAAA,KAAH,IAsCTC,KATc,EAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,IAAA,KAAA,IAWhB,KAXgB,IAAA,KAeR,KAfQ,KAqBX,KArBW,KAAA,KAAA,KAAA,KAAA,KAAH,IA2DlB,IAAA,KAAA,MAAiD,MAAxD,GAFF,OAsBqC,KAAA,GAAf,IAA0C3O,MAA1C,EAAgC+H,MAAhC,oB,UAAH,IAwD2B,MAAvB,IACL,IAmdK,UAAH,IA2iBA,KAAH,IA0EK,KAAH,IAWK,KAAH,IAyCF,KAAH,IAwbqB,MAAA,GAAf,IAA0CnB,MAA1C,EAAgCgI,M,S,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,UAAnC,IACP,IAmByB,IAuc1BpM,MAAI,MAAP,IACyC,MAAvB,IACkB,MAAvB,IAC6B,MAAvB,IACT,IACE,IACJ,IACe,IACX,IACqB,KAAf,IACI,IACA,IACE,IACW,IACZ,IACK,IACC,IACP,IACSqM,MAAH,IACT,IACT,IACE,IACoB,IACZ,IACG,IACH,IACT,IACI,IACL,IACU,IAwlCd,KAAH,IAiuBU,KAAH,IAYF7O,MAAG,KAAA,OAAA,IAAA,IAYmB,KAI1B,KAAA,MAVQ,EACc,KADd,KAAA,KALiB,UAAA,MAAA,KAmBS,MACH,MACY,MACL,MAUN,MAMR,MAAhC8O,MApB+B,EAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAeR,KAfQ,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,SAAA,QA6Bf,UAAA,GAApB,IACgCC,SAEJ,MAD1B,MAEyB,MAFzB,GAKgD,MAAA,KAAjC,IAGI,IACjB,EAAE,E,a,U,U,U,UAEiB,KAAH,MAQM,KAAH,MAYe,KAAH,MAYb,MACa,MAClB,KAAH,MAoCmB,KAAH,MAWR,KAAH,MAOc,KAAH,MAE5B,EAnlIMzN,UAAK,KAAX,EAvpIF,cACiBG,MAAK,KAAU,KAAW,KAAA,EAAA,MAAA,MAE7B,WAAA,MACZ,EAAE,EACY,MAAA,KAEhB,EAWA,IACU,KAAA,MACG,IACXuN,IAA+B,KAACC,IAAD,EAAA,MACjC,EACA,IAWEC,GAAAA,IAA2B,KAAA,EAAA,MAAA,MACvBC,IAAJ,GACMA,IAAJ,KAKQ7N,UAAK,KAAX,EAJY8N,MACJ,MACG,IAKbC,IAAAA,KAAoC,IAAqB,IAE7D,EAKA,OACkB,KAALC,MACWC,GAAAA,SAAmB,KAAtB,MACnBC,iBAAuC,MACpB,MACrB,EACA,KAC8B,KACF,KACtBC,GAAAA,MAAW,KAAf,KAEsBC,GAClBH,IAAmB,KADJ,QAGAG,GAAmC,KACnC,MACK,MACA,MACxB,IARQpO,UAAK,KAAX,EAWJ,EACE,EAEF,EACE,EAEF,qBAMqB,MACH,MACA,QACiC,MAA1B,MACF,KAAY,MACjC,GAAA,QAAA,SAAA,GAC+B,KAAA,KAA7BqO,GAC+B,IAA5B,GAEG,IAE6B,IAAd,OAFf,EACY,SADZ,EAD4B,KAAb,OADlB,EAKyC,MAAnB,IAEP,QAAlB,IAFyB,EACd,MAETC,GAHsB,GAItBC,IAJsB,EAGtBD,IAHmB,MAKKC,IAAH,MACzB,EAiEF,eAMU,MAAU,KAAlB,GAKe,KAAA,mBAAA,IAAA,IAAf,EAJqB,MAAc,MAAA,IACxB,uBAAA,IACT,EAIJ,MACQP,IAAN,KACQhO,YAAK,KAAX,EAGc,MAAA,IACP,MAAU,QAAnB,IAAkC,MAAe,KAAA,KAAjD,EACF,EACA,GAC+BwO,GAAAA,IAAH,MACG,IAAH,MACCC,IAAH,QAC1B,EAMA,OACS,IAAP,EAEF,OACS,IAAP,EAYF,GACc,MAALC,GAAwB,MAA/B,EAEF,GACa,QACX,IACA,IADwB1O,YAAK,KAAX,EAGpB,GACmB2O,GAAAA,MAAkB,KACnBC,IAAS,IACzBC,GAauB,KACA,KACDC,IAAiB,KACd,KACA,KACgB,KACf,KACA,KACgB,KAVtB,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAYfF,IAAqB,IAvB1BC,IAC6B,MACM,KAAR,MACQ,KAAR,MACOC,IAAiB,KAApB,MACM,KAAR,MACQ,KAAR,MACwB,KAApB,MACK,KAAR,MACQ,KAAR,MACwB,KAApB,MAclCC,IAAmCD,IAAiB,KAApB,MAClC,EACA,GACoBF,GAAAA,IAAUD,MAAkB,KAAnB,IAC3BE,KAC2B,MACe,MAAd,MACc,MAAd,MACkB,MAAd,MACG,KAAR,MACQ,KAAR,MACOC,IAAiB,KAApB,MAC5BC,IAAoD,KAApB,MACrC,EACA,GACoBH,GAAAA,IAAUD,MAAkB,KAAnB,IAC3BE,KAC2B,MACe,MAAd,MACc,MAAd,MACkB,MAAd,MACG,KAAR,MACQ,KAAR,MACOC,IAAiB,KAApB,MAC5BC,IAAoD,KAApB,MACrC,EAyCA,QACE,OAIO,IAEHZ,GAAAA,MAAW,KAAXA,GAEAA,IAAW,KAAXA,GAEA,IAAA,IAAA,IAFAA,EACA,IAAA,IAAgB,KAAA,KAHhBA,EACc,KAAA,KADdA,GAFJ,IAHQnO,YAAK,KAAX,EAWJ,QACE,IAIA,IACImO,GAAAA,MAAW,KACTA,IADN,GAKkB,KAAXA,GAA6C,IAAA,IAAA,IAA7CA,EAAoB,IAAA,IAAgB,KAAA,KAA3C,EAJiB,KAAsB,KAArC,GACY,KACZ,EAFgD,KAAA,MAAzB,EAFJ,IAHbnO,YAAK,KAAX,EAWJ,QACEG,MAAa,KAAA,KAAbA,GAA8C6O,GAAc,OAAA,MAAdA,EAAd,OAAA,MAAhC7O,EACF,EAGA,GACyB8O,GAAAA,IACV,IACAvC,IAAoB,QAAjC,IACEA,IAAoB,MAAgC,SAAA,OADtD,EAMF,EAyDA,MACgB,KAAd,GACyB,QADzB,MAEOwC,MAAP,EAEF,qBACkB,IAAqCC,GAArD,GAAqC,KAAA,KAAgBA,IAAS,KAA9D,GACgB,KAAiB,GAAA,GAAjC,IAA8C,IAAL,OAAR,GAAA,GAAjC,IAC0B,OAA1B,IAAkD,IAAL,OAAN,GAAb,KAA1B,IACF,EACA,MACa,OACX,IACOC,GAAAA,MAA4B,KACnC,IACgB,IAAhB,GAAsD,OAAtD,IAQA,IAPQpP,UACJ,QAAA,IAAA,QAAA,IADS,KAAX,EAFiB,EAFA,EAarB,MAEaqP,GAAAA,IAEF,KAAe,QAAwB,MAF1B,MADtB,GAM8BC,IACrB,KADmC,MAAjB,MAKhB,KADmC,MAAjB,MAI/B,EACA,GACE,GAAkB,KAAe,KAAjC,GACkB,MAChB,GAAA,GAA0B,KAAe,KAAzC,GACiBD,GAAAA,IAAuB,KAAe,OAA3B,MAC1BE,GAC+BD,IACtB,KADoC,MAAjB,MAKnB,KADmC,MAAjB,MAL3BC,EAWN,EACA,GACE,GAAkB,KAAe,KAAjC,GACwB,QACTC,GAAaL,GAAAA,MAAS,KACnCM,GAAAA,IAA6BC,MAAb,OAHlB,EAKF,EACA,MACE1B,GACO,KAAe,KADtBA,GAEEyB,GAAAA,IAAsB,MAAcC,MAApB,OAFlB1B,EAGF,EA0RA,QACM2B,GAAAA,IAAJ,MACyBpD,IAAvB,UAAA,0BAAA,YAAA,GACqBA,IAAc,IACjBoD,IAAwB,KAAA,KACxC,OAKKC,IAAO,mBAAZ,GACmB,MAAjB,KACQ5P,UAED6P,QADH,IADS,KAAX,EAIFD,IAAoB,IACM,MAC1B,GAAA,8BAAA,0BAAA,YAAA,GAEkC,IAE5BE,IAAuC,KAAA,KAA3C,MAKAA,IAA4C,IACA,KAC5C,GAYgB,OAAdzB,GACK0B,IACe,KADQ,SAD5B1B,EAXA,GAAA,EAAA,UAAA,SAAA,GACwC,KAAA,KAAtC2B,GAGED,IACyB,IADF,OAHzBC,WAkBJ,QACQhQ,UACJ,QAAA,IAAA,QAAA,IADS,KAAX,IA3BMA,UAEDiQ,QADH,IADS,KAAX,IAjBEjQ,UAED6P,QADH,IADS,KAAX,EAsDR,EACA,GACMK,GAAAA,IAAuB,IAA3B,GAKAA,OAAyC,MAC3C,IALUlQ,UAEDmQ,UADH,IADS,KAAX,EASJ,YAMsB,KACpB,OACOf,GAAAA,IAA4B,KACnC,OACgB,IAAhB,GAAsD,OAAtD,UAQA,GAGa,KAHb,GAIa,KAAU,MAJvB,GAOE,EACc,IAChBF,GAAsB,KAAA,KAAtBA,OAC8B,IACQkB,OAEhC,IAFgCA,EACA,KAAC,kBAAD,UAAhC,IAEG,KAAU,MAAgB,IAAnCC,GAEa,KAAU,MAAgB,IAAmC,OADxE,IADFA,gBAAAA,KAIW,KAAU,MACjBC,IADiC,IAE1B,KAAC,KAAD,KAoCEC,IAAS,SAAf,IAEGA,IAAS,QAAf,IAEAA,IAFA,EACAA,IAAS,IADT,GAFJ,IA/DQvQ,UACJ,QAAA,IAAA,QAAA,IADS,KAAX,EAFiB,EAFK,EA+BZ,OAEc,MAAQ,QAA3B,IAAA,GAAkD,MAAQ,MAC3DoQ,GAAAA,IAFF,UAqBa,MAAQ,UACfG,IAAc,KADlBC,GAjBwB,KA4BN,KAXlBA,EACmB,KAAD,KAYtB,EA9B4B,UACF/L,GAAAA,IAAAD,OAAA,IAAA,KAAA,MAClB8L,GAAAA,IACwB,KAAxB,EAAA,KAFyD,KAAA,UAAA,IAAA,MAIxC,MACQ,MAAA,KAEL,KACXnQ,QAAM,IAAWyF,IAAZ,QAFhB,IAO4B,IAArBC,IAAS,IAFV,GALN,IAQA2K,GAAAA,IAAW,KAAe,KAACA,IAAa,IAAA,IAAkB,KAAA,KAAhC,MAC5B,EAEmB,IACbH,GAAAA,IAAS,KAAuC,MAC9CC,IACAE,GAAAA,IAAW,KACXA,IAAW,MAHmC,OAKhDA,IAAW,MAAXA,GACIA,MAAuB,MACzBA,IAAW,KAAe,KAACA,IAAD,EAAA,MAC9B,EAgBZ,gBACwBD,GAClBpC,GAAAA,MAAW,QAAXA,GACW,KADXA,GAIJ,OAEiCmB,GAAAA,IACtB,OADoC,MAAjB,MAIb,OALf,IAAA,IAUoC,KAALtB,GAA4B,IAA/B,MACtBG,IAAiB,KAAN,KAAXA,GACoC,KAAN,IAAA,IAAH,MAD3BA,EAFJ,IAQO,KAAwB,KAAA,KAFpB,GANX,MAFwB,MAP1B,EAkBJ,EACA,SACUsC,GAAAA,IAED,KAAe,KAAwB,gBAF1B,IAMpBC,IAA+B,OACjC,EACA,wBACkB,IAAhB,GACW,KAAA,QACK,KAAd,GACyB,QADzB,MAEOxB,MAJT,GAMgB,KAAiB,GAAA,GAAjC,IAA8C,IAAL,OAAR,GAAA,GAAjC,OACA,GAE4B,OAA1B,IAAkD,IAAL,OAAN,GAAb,KAA1B,MAFuB,IAAL,OAGtB,EACA,MACElB,GACO,KAAe,KADtBA,GAEE2C,GAAAA,IACO,MACLC,WAFgB,IAFpB5C,EAQF,EACA,GACE,GAAkB,KAAe,KAAjC,GACkB,MAChB,GAAA,GAA0B,KAAe,KAAzC,GACkByC,GAAAA,IAET,KAAe,kBAFM,IAM5BC,IAA+B,OAPjC,EAUJ,EAmFA,GACE,EAyDF,KACE,QAA2C,GAA3C,IAEGG,GAAAA,IAAAA,GAAuCA,IAAD,IAAtCA,GACY,MADZA,IAEmB,KAAf,OAAP,EAJiE,EAMnE,4BACE,cACmB,GAAnB,cACiB,GAAjB,UAEOC,GAAAA,IADP,OAGOC,IAHP,OAKOC,IALP,OAOOC,IAPP,OASOC,IATP,OAWOC,IAXP,cAciB,GAAjB,OACc,KACLC,IADP,OAGOC,IAHP,OAKOC,IALP,IAYOC,IAZP,IAmBOC,IAnBP,OAoBoB,MACL,MAEFC,UAA6B,KAAL,KAA/B,EACA,EAER,KAZyB,KAAJnJ,KAAAA,GACb,IAEImJ,OAA6B,KAAL,KAAxBA,MAFJ,KAFF,KAPoB,KACT,QACXnJ,MACoB,KAAToJ,GAAkC,KAAlCA,MAAAA,GACD,WAAc,QAAA,IAAd,GAFVpJ,GAGA,KAPY,MAAS,KAAbA,MAAAA,IAAD,IAAP,KAFY,KAAJA,MAAAA,IAAD,IAAP,MALF,MAFA,MAFA,MAFA,MAFA,MAFA,KAH0B,KADa,KAAJA,GAAwB,KAAxBA,KAAP,EADd,EA8CpB,yBACkB,KACH,uBAgDU,OAAnB,QAEA,OAA8B,EADjB,KAAJA,GAAwB,KAAxBA,KAAP,MARF,MAFA,MAFA,MAFA,MAFA,MAFA,EAFgB2I,GAAAA,IAAT3I,OAAP,EAFOmJ,GAAAA,MAAwB,KAA/B,MAFA,MAFA,MAFA,EAFA,MAFA,EANe,KACC,KAALE,GAA0B,KAA1BA,MACL,KAAJrJ,GACG,QAAe,QAAA,IAAf,GAJL,MAFA,EAFY,MAAS,KAAbA,MAAAA,IAAD,IAAP,EAFY,KAAJA,MAAAA,IAAD,IAAP,MAFA,EAkDJ,EAEF,WAGW,WAAT,GAKiB,KAAJsJ,IAAP,IAAmD,KACtC,cAHjB,KAH8B,cAAX,GAAiC,KAAtB,cAAX,GASJ,UAAV,OAAP,EAEF,GACMC,GAAAA,MAAsB,KAA1B,IAEF,IADU7R,UAAK,KAAX,EAEJ,OACuB,eACrB,GACc6R,GAAAA,IAAsB,KAClC,MAEOC,OAAP,IADQ9R,UAAK,KAAX,EAIa,iBACf,OACqB,KACrB,OAQW,KAAkB,KAA7B,OAQK,KAAa,iBAAlB,OAE+C,gBAA7C,cACE,eAMA,IAMiB,gBAbnB,eAeA,GACwB,iBAAtB,cACE,eAMA,IAMiB,iBAbnB,eAeA,KACQA,UAAK,KAAX,EAKD,KAAL,SACQA,UAAK,KAAX,EA/CsB,KAAtB,GACE,IACA,IACiB,KAHnB,KAKMA,UAAK,KAAX,EAH4B+R,GAAAA,IAAe,KAAtB,EADOA,GAAAA,IAAe,KAAtB,EATV,cACX,OA0DO,QAAX,IAEQ,KAAU,KAAXC,OAAP,IADQhS,UAAK,KAAX,EAIOiS,GAAAA,SAA6B,OAC/B,IAAkBC,IAAwB,KAAjD,EAEF,OACgB,QAAd,IAAgC,QAAhC,IACgB,KACFA,GADd,IACcA,IAAwB,QACpC,IACW,KAHb,IAKA,EAHsB,EAHgB,EAQxC,KAAA,OAAA,IACS,KAAP,EAAO,IAEHhH,GAAAA,IADF,GAEwBjH,IAAO,UAAd,GAFjB,IAE+CA,IAAO,MAFtD,GAKF,EADWiH,IAAc,KAACjH,IAAD,EAAA,MAArB,EAON,OACsB,KAAb,QAAA,IAEHQ,GAAAA,IAAAD,OAAA,MAAA,KAAsC,MAGpC2N,OAHoC,OAF1C,EAQF,2BAKMhE,GAAAA,IAAW,KAAf,MAOK,MAAgBiE,IAAhB,OACOC,IAAV,IAAA,WAAA,YAAA,GACMA,IAAW,IAAf,GACqB,OACnB,IACuC,UACrC,GACiB,GAAf,MACgB,GAAhB,MACiB,GAAjB,IAGuC,KAAtB,GADZ,IAEkC,KAAtB,MAFZ,IAKoC,KAAtB,MAAf,IAC2B,KAAA,KAEV,OARhB,EADa,OAUlBA,IAAc,IACdD,IAAe,GAAA,OAfjB,KAZW,KAAU,GAAA,GAA3B,GAAqCA,IAArC,IACEE,IAEM,IAF2B,OADR,GAAA,GAA3B,GAAqCF,IAArC,IA+BJ,EACA,cAME,GAAA,IAA6C,EAC7C,GAAA,GACSG,MAEHC,GACAC,GAAAA,IAAmB,OAHhBF,EACHG,GAAAA,IAAiB,OADrB,EAKGvE,GAAAA,IAAW,KAAhB,GAA+BA,IAAW,KAA1C,GACSwE,kBAAc,IAArB,EACExE,IAAW,KAAf,GAA6BA,IAAW,KAAxC,GAyBOA,IAAW,KACdwE,IAEElO,IAAAD,IAHC2J,MAUD,IAAA,KAAwC,MAAA,gBAH5B,IAPXA,KAGD,IAAA,KAAwC,MAAA,gBAF5B,IADlB,EAvBc,KAAkB,KAA1BqE,IAA8D,KAA9DA,EAA4C,KAA5CA,UAEJ,IACkBI,IAEN,IACA,YAHwB,IADR,SAA5B,IAOmB,iBAAnB,IACkBH,IAEN,IAFyB,OADR,GAAV,WAAnB,IAMmB,WAAnB,IACkBC,IAEN,IAFuB,OADN,GAAV,QAAnB,IAMA,EAgBJ,WACE,GAAe,EACVvE,GAAAA,IAAW,KAAhB,GACSwE,IAELE,eAFmB,IAArB,EAM0B,aAA5B,IACkBH,IAEN,IAFuB,OADG,GAAV,QAA5B,IAMA,EAEF,WACE,GAAe,EACVvE,GAAAA,IAAW,KAAhB,GACSwE,IAGLE,eAHmB,IAArB,EAM0B,aAA5B,IACkBJ,IAEN,IAFyB,OADC,GAAV,QAA5B,IAMA,EAEF,kCAEE,GA0BQK,gBA1BR,uBAAA,YAAA,GACwC,UAAtC,GAC0B,IACA,IACT,MAAf,IACmC,GAAf,MAAA,KACJ,MAAhB,IAEkB,GAAhB,MAAA,KACFT,IAAAA,GAAgBA,IAAoB,IACpC,GAA6C,IAA7C,mBAcK,OACc,GAAjB,OAIuC,KAAtB,GADZ,IAEkC,KAAtB,GAFZ,IAkBS,IACM,IACCO,kBAAkB,IAM/BR,IAAJ,IAAA,MAAA,YAAA,MAEGE,IAAiC,OAKtB,gBAPd,KAtBF,IAEwC,KAAtB,GAAf,IAEGQ,IAAa,MAFhB,EACuB,KAAA,MADvB,YAFH,MAOyC,KAAtB,MAAf,IAC2B,KAAA,KAD3B,MAGEC,GAAkC,KAEnC,UAZL,KANAD,IAAa,kBAAbA,YACIC,GAAkC,KAAa,aADnDD,KAfe,GAAjB,IAIyC,KAAtB,GADjB,IAEuC,KAAtB,eAFjB,OAKyC,KAAtB,MAAf,IAC2B,KAAA,KAEJ,aAR3B,KAFsB,gBADxB,KAoDN,GAAA,MAAA,oBAAA,YAAA,GACsB,UAApBE,IACsC,IAAnC,GAAA,MACED,GAAyC,IAAxBC,IAAjBD,GADF,GAAA,MAEuB,OACtBC,IACgB,GAAb,IACoC,KAAtB,GADd,IAEoC,KAAtB,GAFd,IAOoBP,IAAmB,OAPvC,QAGMM,GAAkC,KAAe,IACpDV,IAAAA,GAA8B,EAAH,IAC3BA,IAAW,OAAXA,GACIA,IAAsB,IAAQD,IAAe,GAAA,OADjDC,GANNW,MAHD,MADHA,KAiBF,EAEF,QACW,KAAT,EAGF,MACMC,GAAAA,IAAJ,KACoB,IAEXC,MAAkB,MACjB,EACY,IAFpB,EACQ,IACY,IACtB,IANmC,KAAT,EAS5B,OACE,MAC2B,KACF,KACnB/E,GAAAA,IAAW,KAAf,GAQEgF,GACEC,IAAe,OADjBD,EALuB,KAFvB,IAEyD,MAAA,MAFzD,GAKEC,IAAoC,IAAsB,IAA3C,OAFd,GADoB,KAFvB,IAEyD,MAAA,IAFzD,KASkB,MACA,MACN,MAAA,IAAdzP,GAAqB,KAAoB,MAAA,KAE7C,EACA,SAEE,IACwB,OACtB,IAA6C,KAA7C,sBAEF0P,GAAAA,MAAe,KAAD,KAqChB,EArCiB,IACYC,GAAAA,IAA2BC,IAAxC,EAAA,KAAA,IACZ9O,GAAAA,IAAAD,OAAA,IAAA,KAAA,MAAgD,MAAA,MAChD,IAAA,KAAA,MAAgD,UAAA,MACxCgP,IAE6B5D,IAClB,WAFnB,IAKoC,UAClC6D,GACgD,MAC5CH,IACAI,IACAH,UAH4C,OADhDE,GAAAA,GAOYnE,IAAc,MAVzB,GADgB,WAFnB,IAgBA,IAAgCA,IAAeqE,IAAD,MAAjB,IACrBA,IACE,IACV,GACEC,IAA0BC,IAAR,MACdF,IAAJ,GAII5F,IAAJ,GAMJ,EALsB+F,MACA,IACH,IAFb,IAJM9T,UAAK,KAAX,EAsBR,GACM+T,GAAAA,IAAJ,GAA0CA,IAAY,UAAnB,GAAnC,IAEIA,IAA8B,MAC5BC,IAGa,KAAQ,QAAZC,MAAT,UAJ4B,IAMhC,EAAE,EAAa,EACnB,EAIA,QACG,IACM,IAAuBrQ,GAAAA,MAAG,KAAMsQ,IAATtQ,UAAP,OAAvB,EAIF,GACkB,GAARuQ,IAAR,GAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,IA6CI,EAFA,EAFA,EAFA,EAFA,QAFOA,IAAP,QANOA,IAAP,EAjBA,EAFA,EAFA,EAFA,EAFA,EAFA,EA8CN,gBACyB,KACvB,OAEuB,KACH,WACIC,IACxB,IAQwC,GAAfA,IACrB,MAEI,IACaC,GAAAA,IAAuB,KADpC,EADaA,GAAAA,IAAuB,KADxC,EARgD,GAAtBC,IAC5B,IAEiB,MACb,IACeD,GAAAA,IAAuB,KADtC,EAFaA,GAAAA,IAAuB,KAU1C,OACA,IAAA,IAGSE,IAHT,IAIiC,GAAZC,IACO,GAAXD,IALjB,UAAA,UAOqCE,IAPrC,OAUOD,OAAP,OAAuCJ,IAAJ,IACpB,SACf,IACkB,MAAwB,IACjBM,SADvB,IACuBA,IAAK,KAAV,IAEI,IAAR,IADQ,IAEL,GAAJ,OAJb,IAKF,EATE,EAVmB,EAlBG,EAuC1B,MACE,GAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAqCI,QAFA,QALA,QANOC,IAAP,KApBOA,IAAP,EAoCN,WACa,WAAJV,OACA,IAAoBA,MAAAA,MAAAA,GAA3B,EAGWW,GAAAA,OACO,IAAA,YACXA,IAAP,OAA2D,IAC3D,EAEF,MACqB,MAAoC,KAAA,KAAhB,GAAvC,IACA,EAEF,MACM,KAAa,IAAA,YACjB,MACuB,MAAwB,MACpC,MACOF,GAAAA,MAAK,QAAV,OACG,IAClB,EACA,sBACiC,KAAgB,GAApBT,IACV,MACE,MACH,MACZ,MAAa,IAAA,MACb,MAAiB,IAAA,MACjB,MAAe,IAAA,MACE,MACA,MACL,MACKS,GADrB,IACqBA,IAAK,KAAV,IAES,IACJ,IACN,IAHJ,IAIe,GAAJ,IANtB,IAQF,EACA,cACgC,MAAe,IAAA,MAC7B,MACKA,GADrB,GACqBA,IAAK,KAAV,IACL,IACRG,IAA8B,IAAJZ,IAA1BY,OAAAA,GACM,IAAS,IAAA,IACM,GAAJ,IALpB,GAOF,EAEA,kBACW,GAAJ,IACE,IACH,YACSV,IAAP,OAAA,GADF,GADJ,EAQF,EACQnU,YAAK,KAAX,EA6Ic8U,GAAAA,OACF,IAAA,IAEJC,IAIJ,KAAA,sBAJc,IADX,EAAA,IAAP,EAYF,GACqB,KACYpC,GAAAA,IAE7BE,IACS,MAAA,KAAT,EAAA,IACQ,KAAU,MAAW,cAJc,IAOrCmC,IAAqB,MACR,KAFd,EAAA,IAAA,IAAP,EAKF,WAGwB5R,MAAAA,IAAf,IAAA,IAAP,EAEF,SACS6R,GACHC,GAAAA,IAAyB,KAAFD,GAAoB,KAApBA,KAAAA,EAAD,OAD1B,EAQO,KAAA,IAAP,EAGI/I,GAAAA,MAAJ,IACqBiJ,IAAWjJ,IAAD,OAAb,MAAwBiJ,IAAWjJ,MAAM,IAAUA,IAAK,GAAA,IAD1E,EAEF,EACA,GACEA,GAAAA,IAAK,GAAA,IACLiJ,IAA0B,KAAT,OACH,QAChB,EAKA,MACmC,KAAK,MACtC,GAA0BpI,GAAAA,IAAP,EACU,KAC7B,GAEU,MAFV,IAKc,EAEd,GAAA,QAAA,SAAA,GAAwD,IAAlB,IAAtC,EACA/G,GACmC,KAC0B,MACF,MAC3D,EARiB,MAAf,EAUJ,GACa,QACJ,IAAA,KAAiBgN,IAAxB,EAGAoC,GAAAA,IAAIC,MAAD,KACCC,IAAD,KACL,EAEMA,GAAAA,IAAkB,KAAavI,IAAnC,IAIAwI,IAAKD,SAAD,MACCD,OAAD,MACN,IALUrV,YAAK,KAAX,EAMJ,UACsB,QACT,MACuB,UAAf,GAAnB,IACmC,MAAA,IACnC,GAAA,QAAA,SAAA,GACQwV,IAAN,KACQxV,MACHyV,GAAAA,MAAyB,KAAzBA,MAAAA,IAAD,IAAA,QAAA,IADS,KAAX,EAMGC,GAAAA,MAAO,EAAD,OAAb,EAVoD,EAYtD,GAEqC,QAAhC,GACe,MADf,GAED3I,GAAAA,IACgBuI,GAAAA,IAAkB,KAArB,IACfC,IAAKD,MAAD,MACCD,IAAoD,KAArD,QACJ,EAEF,MAC+B,KAC7B,KACQrV,YAAK,KAAX,EAIqB2V,GADvBC,GAUIR,IAAIC,MAAD,KAVPO,EACuBD,IAGjBE,SAHoC,OAKa,MACnDT,IAAIC,IAAD,KACCC,IAAD,KACHC,IAAKD,IAAD,MAERC,IAAKF,MAAD,MACN,EACA,MACUS,IAAAA,KAAY,IAAA,MAAW,IAAU,IAAV,IAAX,GAAZA,GAA6CA,IAAAA,GAAWC,IAAXD,GAArD,EAMF,gBACOE,GAAAA,IAAL,MAAqCC,IAArC,OACqB,MAEQC,IAEbD,UACc,OAAe,KAAzC,UACsB,IACpB,GAAsB,QAAtB,OAFiD,SAAV,KAAzC,IAKS,MACkB,IAK7B,GACwB,IACA,IACxB,EAPE,EACgBA,IAAT,IAAmCA,IAAe,WAACE,IAAD,KAAlB,IACvC1R,IAAAD,OAAA,IAAA,KAAA,MAAA,IAAA,KAAA,MAAoC4R,IAApC,MADA,EAGQ,EACc,MACA,IACxB,EAEF,EAQF,KAC4BC,GAAAA,IAA1B,IACsBC,IAAYC,IAAF,GAAA,IAAD,IAAZ,IACdD,IAAUC,IAAe,IACxBA,IAAF,GAAA,IACCD,IAAyB,IAJJD,IAA1B,IAK0BG,IAA1B,IACyBC,IAAUC,IAAF,GAAA,IAAD,IAAV,IACjBD,IAAQC,IAAa,IACpBA,IAAF,GAAA,IACCD,IAAqB,IACpBC,IAAF,GAAA,IACCD,IAAqB,IANAD,IAA1B,MAOF,EAGA,QACMG,GAAAA,IAAQ,MAAZ,UAEe,GADf,SAAA,OAGe,GAHf,OAAA,SAOYhY,MAAW,KAAA,KACbA,MAAW,KAAA,KACZ,KAAiB,KAA1B,IAC6B,OAA7B,IACwB,IAEnBO,IAAmB,KAAA,MADtB,GAEGyX,IAAa,IAAkB,IAAvB,MAFX,KAIE,EANuC,GAAd,KAA7B,MAQA,IATmC,IAHjC,IAPwB,EAqB5B,GACe,KAAb,GAAA,UAAA,UAAA,UAAA,MAAA,OAAA,OAAA,OAAA,OAAA,QAkBI,EAFgBC,GAAAA,IAAoC,SAAN,MAA9C,EAFOA,GAAAA,IAAoC,KAAK,SAAX,MAArC,EAFOA,GAAAA,IAAoC,SAAN,MAArC,EAJO1B,GAAAA,YAAsB,OAA7B,EAFOA,GAAAA,YAAsB,OAA7B,EAFOA,GAAAA,YAAsB,OAA7B,EAFOA,GAAAA,IAA4B,SAAN,OAA7B,EAmBN,QACE,GAA0B,MAA1B,GAQA,EAPcQ,GAAAA,IAAO,EAAD,MACG,MACrB,GAAA,QAAA,SAAA,GACsB,IAApB1C,IACkC,IAAZ,IADtBA,EAEF,EASwE,KAAA,IAA1B,IAAxB,MAC1B,EAEqB6D,GAAAA,IAAW,KAC9BzB,IAAIyB,MAAD,QACmB,MACxB,EACA,WACE,IACwB,KACf,KAANC,IAAD,IAGI,IAAA,GACU,KAAThF,IAAD,IADA,GAEU,KAAW,IAAA,MAFrB,EAFQ,KAAW,IAAA,MACnB,IAAgC,KAAW,IAAA,MAI/C,IACe,KATjB,MAWF,EACA,GACyB,GAAA,MACyB,IAAxB,IACO,KAC/B,IAAA,GACyB,MAAvB,IADF,GAEwB,QAAdiF,MAAP,MAA+D,IACpC,MAH9B,EAIF,EACA,GACqB,MACfC,GAAAA,IAAJ,IAEgB,EAAA,IAAA,OAAA,IACHC,IAFX,IAa+BA,IAA0B,MAA7B,IAb5B,EAIeC,IAAb,IAIqB,IACrBA,IAAuC,IAAA,IAAA,KAAH,MAKxC,IATYlX,YAAK,KAAX,EAYR,GACWmX,GAAAA,MAAT,IAEIA,IAAqB,KAAA,KAFzB,EACwB,IAAA,IAAH,IADrB,EAGF,EACA,MACyB,OACvB,IAE+B,KAAd,MAAuC,MAFxD,EACiB,MAAYC,GAAAA,OAAyB,KAErC,MACVC,GAAAA,aAA6B,MAApC,EAEF,QACa,KAAM,IAAA,MACU,KAC3B,IAAgC,KAAM,IAAA,MAER,KAA9B,IACc,KAAW,IAAA,MACG,KACxB,IAAgC,KAAW,IAAA,MAEjB,WAL9B,IAMsB,UAAf,IAA+B,KAAtC,EAGF,GAEoB,KADE,UAAA,MAIV,UAJU,MAAH,QAOnB,EACA,MACmB,KACH,KAAdN,IAEsB,KACM,KACD,KACR,KACC,KALY,EAAA,IAAA,IAAA,IAAA,IAAA,IAAH,MAD7BA,EAQF,EAES,aAAA,SAAA,MAAP,EASF,SACyB,OACvB,OACyB,KACdO,GAAAA,OAAAA,MAAX,IAQqB,KACrB,IAE2B,KAAV,MAA+B,MAFhD,EACiB,MAAYF,OAAyB,KAE/B,MAChBC,OAA6B,MAApC,EAZ2B,KACzB,IAE2B,KAAV,MAA+B,MAFhD,EACgB,MAEG,MACZA,OAA6B,MAApC,EARwB,EAiB5B,SACe,OACb,IAAqC,WAAiBxC,MAAtD,IACwB,KACJ,KAAR,IACN,IACO,MACX0C,GAAAA,MAAiB,MALnB,EAOF,EACA,QAC4B,KACA,KAC1B,IAEqB,KAFrB,IAoCsB,KACtB,IAEwB,MAFxB,EAC0B,MAEN,QACtB,EAnCiB,YACb,IAGsB,MACL,KACD,KACI,KACC,KALL,EAAA,KAAA,IAAA,IAAA,IAAA,IAAA,OAQZ,IAE2B,SACd,WAZf,OAcA,IAE2B,SAGT,KAGH,KACC,KALV,EAAA,IAAA,IAAA,IAAA,IAAA,IAOkB,QAC1B,EAQJ,6CAMqC,KACrB,KAAA,IACa,KACH,KACF,KAAO,QAC7B,IACO,KAAe,MAEoB,KAClB,SACtB,IAEwB,SAEa,QACrC,IACqB,KACI,QACvBC,IACG,IAEqB,MAFrB,EAC2B,MAEL,SAE7B,OACsB,oBAKW,KACG,MAC3BC,IAAL,IAsDqB,KACI,KACC,KALL,EAAA,KAAA,IAAA,IAAA,IAAA,IAAA,UAQjB,IAG2B,YACZ,OA/DnB,QACE,IAIqB,KACI,KACC,KALE,EAAA,KAAA,IAAA,IAAA,IAAA,IAAA,IAAH,SAaT,KAAd,IAAA,IAAA,UAAA,OAyBkB,UAzBlB,EAc0C,KAAdV,IAAAA,IAAJ,MAEG,KAEN,MAAf,IACuB,KAAA,OADvB,MAGF,UAAA,IACWrB,IAAO,EAAD,UACjB,EArBuB,KACJ,SAAnB,IACgC,KAAA,UAwBjB,KAArB,IAAA,GACoB,KAAlB,IADF,qBAAA,GAE2B,KAAM,IAAA,MACZ,KACnB,IAEmB,KAAA,0BAFnB,EACqB,IAAA,IAAH,2BAgBK,gCAC3B,OAC4B,KAAO,KAAjC,IAI8B,KACV,MACK,MACf,KAAe,2BAPzB,KASJ,OACe,MACM,MACD,MACP,KAAO,WACpB,OAIO,IAAkC,KAAa,SAA/C,EAFsB,KAAT,IAA+B,QAAjD,IAGFgC,IAA8B,IAAA,IACD,MACQ,MAEzC,EACA,YAC8B,KACP,MACrB,IAGgC,OAF9B,IAK2B,IACN,KACnB,IACiB,MACI,GAAnB,IAKa,KAAA,KAXF,GADe,KAF9B,MAiBJ,IAPgB1X,UACJ,MADS,KAAX,EASV,GAMuB,aAC8B,WAEjD,OAAA,IAEI0V,GAAAA,IAAO,EAAD,OACgB,MACR,OAApB,IACiB,KAAsB,MACzC,EA6CA,YASiC,KACY,UAArB,GAAf,IAEC,OAAJiC,GAAsB,KAAU,QAAhCA,GACCC,GAAAA,SAAY,MAAb,GAAA,GAAsCA,OAAY,MAAb,GAArC,GAHG,EACiC,SAAA,OADxC,EAMF,QAEsB7K,GAAAA,IACF,UACL,GAAb,IAAA,IAEwB8K,MAAiB,KAAjBA,GAEhBvC,IAAkB,KAFFuC,EAChBhC,IAE2B,MAE7B,IAAA,GAAoC7C,IAD3B,GAGPjG,IAHO,EAEP+K,IAAgB,MAFT,GANf,EACe7K,MAAW,UASX,KAAA,aAAA,IAAA,IAEA,OAAb,IAAsC,SAAtC,IAAmD,KADzB,MAEb8K,IAAH,MACY,MACJ,MACpBC,GACmC,KAC0B,MACF,MAC3D,EAEF,SAM2B,KACK,UAAf,GAAf,IACoC,MAAA,MACN,MAAf,GAAf,IAC2C,MAAA,MACnC,KAARhS,IACE+R,GAAAA,IAAyC,MAAmB,OAAnB,OAD3C/R,EAEF,EACA,SAC+B,KACf,MACiB,KAAjB,MACEiS,GAAAA,IAAH,MACbC,OAAqB,KACC,UACT,GAAb,MAAA,IAEoBL,IAAiB,KAAjBA,GAEZvC,IAAkB,KAFNuC,EACZhC,IAEgBiC,IAAgB,MAAnB,MALrB,EACwB7K,IAAW,KAAd,MAKU,KAAjB,MACI,UACH,GAAf,IACGkL,kBAA0B,IACK,KAAjB,MACS,MAAX,GAAf,IAAA,GACgC,MAAf,GAAf,IADF,GAEiC,MAAf,GAAf,IAAA,GAC+B,MAAf,GAAf,IADD,GAFH,GAImB,KACa,MAAf,GAAf,IAC6B,MAAA,IACC,MAAf,GAAf,IACoC,MAAA,IACnB,KAAjBR,IACEI,IAAyC,MAAmB,OAAnB,OAC3CK,mBAAkB,IACc,KAAjB,MACa,MAAf,GAAf,IACiB,QAAM,IAAA,MACzB,EACA,UACuB,OACrB,IAEiB,OAFjB,QAAA,IAKa,MAAX,OAgCA,IAIY,MAAZ,KACQpY,UACJ,QAAA,IADS,KAAX,EAMJ,IAVUA,UAAK,KAAX,EAhCiB,QACjB,GACmB,QAAjB,IAIkB,KAEpB,KACQA,UACJ,QAAA,IADS,KAAX,KAOF,IAEkB,KAFlB,IAG+B,KAAd,GAHjB,IAIS,KAAI,MAJb,YAOU,KAKQ,MAClB,EAPgB,KAAd,IAnBQA,UAAK,KAAX,EAoBM,GACGqY,GAAAA,IAAY,MACdJ,GAAAA,IAATK,IAAoCD,IAAoB,EAAH,SAArDC,EACA,IAAgDC,IAAU,IAA1D,EAA6BA,IAAZ,IAAjB,EACF,EAiBN,KACgB5Z,MAAM,KAAU,KAAc,KAAA,KACtCqB,UAED,IAC0BrB,MAAW,KAAA,KAAe,SAAA,SAAjD,QAAA,IADH,IADH,UAAA,IADS,KAAX,EAQF,GACqB,MACC,QAAT,KAAX,EAEF,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IA+lBE,EA9lBA,MACM6Z,GAAAA,IAAJ,GAC6B,OAC3B,IAEkB,KAAA,KAFlB,EAC8B,IAAA,IAAH,MAAiC,QAAM,IAAA,MADlE,EAIJ,EACA,UACOA,GAAAA,IAAL,GAA6B,EAC7B,IACEC,IAAW,MAC6B,KAF1C,IAGA,EAEF,OACyB/Z,MAAG,KAAA,OAAA,IAAA,IAA1B,IAC4B,KAA1B,IAEmB,KAAkB,KAAlB,MAFnB,EACmB,KAAkB,KAAlB,MAEqB,KAJ1C,IAKA,EAGQga,GAAAA,aAAoB,QACjB,QACE,MACb,EAEF,SACgB,MACTF,GAAAA,IAAL,GACkB,WAAM,IAAA,MAAtB,EACiB,OACnB,IAOQ,QAAM,IAAA,MACd,EANwB,KACpBG,IACc,QAAM,IAAA,SAHtB,EASJ,GACEH,GAAAA,IAAAA,GACmB,OAAjB,IADFA,GAEW,QAAM,IAAA,MACjB,EAEF,WACE,IAAqC,QAArC,IAMUI,GAAAA,MAAQ,MACJ,MACd,EANeC,GAAAA,KAA4C,UAAzB,OACf,MAFjB,EASJ,YAC2B,KACL/H,GAAAA,IAApB,SAQA,IAEU,KAFV,QAGkB,GAHlB,IAAA,IAKiB,KAAcU,IAL/B,IAMMsH,OAAW,KAAyB,KAN1C,IAcQC,KACC,KACA,KACA,KAEI,cALsB,IAQvBC,KAAS,OAAZ,MACG,MACZ,EAfaJ,GAAAA,IAAyB,OAAjB,MACJI,KAAS,OAAZ,MACG,MAHf,EAfOC,GAAAA,IAGE,KAAM,KAEN,gBALY,IAArB,EAiCJ,WACE,IAEe,QAFf,IAGS,KAAU,KAAyB,KAH5C,IAIS,KAAU,MAA0B,MAJ7C,IAWUL,GAAAA,IAAwB,KAANM,GAAmB,IAAnBA,EAAV,MACJ,MACd,EANeC,GAAAA,KAAyC,UAApB,OACjB,MAFjB,EASJ,WACE,IAAqC,QAArC,IAWUP,GAAAA,MAAQ,MACJ,MACd,EAXeQ,GAAAA,KAEE,gBAFqB,IAMnB,MAPjB,EAcJ,SAEkB,OADhB,QAAA,WAAA,WAaA,MAAA,IACkB,KACTC,GAAAA,IADP,OAeOtI,IAfP,IAyBOS,IAzBP,IA6BIrD,MAAW,KAAf,GAA6BmL,IAAa,KAA1C,GAWAC,KAAwB,MAzC1B,EA2CA,EAXkBH,KAEC,eAFsB,IAMnB,MAPlB,EAJqB,MACZI,GAAAA,IAAsC,QAAT,KAAlB,OAAlB,EAVcL,KAEC,OAFoB,OAKjB,MANlB,EAbWJ,KACC,KACA,KACA,KAEG,cALuB,IAQvBC,KAAS,OAAZ,MACG,MAVf,EAXUH,GAAAA,QAEC,OAFkB,OAKf,MANlB,EAsDJ,gBACY,IAA4B,KAEtB,OADhB,QAAA,WAAA,WAOA,IAAA,IACkB,KACTQ,GAAAA,IADP,OAKOtI,IALP,OASOS,IATP,IAeIrD,MAAW,KAAf,GAA6BmL,IAAa,KAA1C,GAIAC,KAAwB,MAE1B,IALW,IAEHN,GAAAA,oBAAc,IAFlB,EALmB,MACfQ,GAAAA,IAA8C,QAAT,gBAA3B,IAFZ,EAJe,OAARC,IACHC,GAAAA,kBAAY,IADhB,EAJe,OAARD,IACHE,GAAAA,kBAAa,IADjB,IANG,IAEHC,GAAAA,kBAAc,IAFlB,EA2BJ,iBAQkB,OADhB,QAAA,WAAA,WAQA,IAAA,IACkB,KACTR,GAAAA,IADP,OASOtI,IATP,OAiBOS,IAjBP,IA2BIrD,MAAW,KAAf,GAA6BmL,IAAa,KAA1C,GAKAC,KAAwB,MAE1B,EAL8C,KAAA,KAApBO,KACpBb,GAAAA,oBAAc,IAFhB,EAVqB,MACZc,GAAAA,IAIQ,QAAT,mBAJc,IAApB,EAPwB,KACD,QAAjB,IAAyC,KADvB,KAApBD,KAGFH,GAAAA,kBAAY,IALd,EANwB,KACD,QAAjB,IAAyC,KADvB,KAApBG,KAGFF,GAAAA,kBAAa,IALf,EANsC,KAAA,KAApBE,KACpBD,GAAAA,kBAAc,IAFhB,EAyCJ,6BAME,OAM2C,KAoBrBG,yBA1BtB,OASU,sBAARC,IAE4B,QACbR,IAGF,eAHY,IAMzB,OAIAjB,IAAAA,MAAAA,GAEmB,KAAjB,IAFFA,GAGEC,IAAW,MACOuB,IAAU,UAC9B,IAE6B,SAtBvB,kBAPR,IAM2C,mCAN3C,wBAmBI,mBAcsB,KAA1B,OAIA,OAgBaE,GAAAA,IAAoB,MACX,oBAFtB,OAKkBH,IAIH,kBAJgB,gBAO3B,IACGvB,IAAAA,GACsB,KAArB,IADDA,GAEgB,KACQ,QAArB,IAAiD,KADpC,KAGIwB,IAAU,UAK/B,IAE6B,SAF7B,SApBE,GADc,iBAFtB,OA2BAxB,QAAAA,KACkB,KAAC,KAAD,KAGlB,EA7C6B,KAGCwB,SAH5B,IACcR,IAAoC,IAAzB,gBACrB,IACwBQ,IAAU,UAKhC,IAE6B,SAF7B,SARoC,GAAf,iBAA3B,IAYA,EAfEG,GAAAA,IAAuB,MADzB,EA+CS1B,GAAAA,IAAY2B,GAAAA,SAAD,MAAlB,EAIN,kBAMmBd,GAAAA,IAAa,SACX,GAAnB,OAIqC,KAAA,KACrC,OAOmC,KAAA,kBALnC,OAM4B,KAeNU,+BArBtB,MASU,yBAARC,IAE4B,QACbR,IAAsC,gBAA5B,IACzB,OAIAjB,IAAAA,MAAAA,GAEmB,KAAjB,IAFFA,GAGEC,IAAW,MACOuB,IAAU,UAC9B,IAE6B,SAjBvB,GAAmC,KAAA,sBAP3C,IAM4B,yCAN5B,0BAcI,sBAcI,KAAR,MAEA,OAYaE,GAAAA,IAAoB,MAC1B,uBAFP,MAKUH,IAAiD,mBAApC,gBACnB,IACGvB,IAAAA,GACc,KAAb,IADDA,GAEgB,KAAc,QAAb,IAAiC,KAAlC,KACIwB,IAAU,UAC/B,IAE6B,SAF7B,SARE,GAAmC,KAAA,IADpC,oBAFP,MAeAxB,QAAAA,KACkB,KAAC,KAAD,KAGlB,EA7Bc,KAGgBwB,SAH5B,GACUR,IAA6B,KAAlB,gBACjB,IACwBQ,IAAU,UAChC,IAE6B,SAF7B,SAJmB,GAAmC,KAAA,IAAhD,oBAAZ,GAQA,EAVOG,GAAAA,IAAuB,MAA9B,IA9BMna,UAAK,KAAX,IALMA,UAAK,KAAX,EAgESyY,GAAAA,IAAY2B,GAAAA,SAAD,MAAlB,EAIN,oBAMe,GAAb,IAAA,GACE,IADF,GAEU,KAAUtJ,GAAAA,IAAlB4I,IAFF,GAGmB,KAAjB,IAHF,GAAA,GAIsB,KAAM,KACX,GAAjB,IAAA,IACkB,KACTL,GAAAA,IADP,OAsEOtI,IAtEP,OA4GOS,IA5GP,OAuHIrD,IAAW,KAAf,MAOImL,IAAa,KAAjB,MAOAC,KAAwB,MAtI1B,IAwIQ,QAAA,QAAA,IAiBJY,GAAAA,IAAuB,QAjBnB,KAGJ,IAAqD,QAArD,IAKKA,GAAAA,IAAuB,MACHtB,GAAAA,KAER,KAF2B,OAKf,MAX7B,EACKsB,GAAAA,IAAsD,KAA/B,MACHvB,IAAQ,MACJ,SAU7ByB,GAAAA,IAAgB,QAhBpB,EARWC,GAAAA,kBAAyB,IAAhC,EAPOC,GAAAA,kBAAsB,IAA7B,EAVqB,MACjBC,GAAAA,IAGgB,MAAT,gBAHa,IAFtB,EArCuB,KAwBd/B,MAxBP,IACuB,QAArB,IAuBKA,IAAW,MACqB,KAzBvC,MAG6B,QADzB,IAEmB,KAAU,KACjB,KAHZ,IAImB,KAAU,MACjB,MALZ,IAmBE0B,IAAuB,MAMThB,KAEP,KAF4B,OAKjB,MAjC1BnH,EAUQmI,IAEmB,KAFI,MAIHvB,IAEV,KAARc,GAAqB,IAFK,MAIJ,SAkBzBW,IAAgB,KAAvB,EAvGsB,KAqCX5B,MAtCT,OAKW,QAAT,IAiCOA,IAAW,MACL,KAvCf,SAMkB,KACF3H,IAAZ,IAYO,KADA,IAES,GAFT,IAAA,IAIA,KAAcU,IAJd,IAKHsH,KAAW,KAAe,KALvB,IAOLqB,IAA0C,KAAnB,MACHvB,IAAwB,KAAhB,MACJI,KAAS,OAAZ,MAKG,MAExB,KA1Be,QAAf,OA4BFmB,IAAuB,MAKnB,KAAUrJ,IAAlB4I,IAScX,KACA,KACA,KACA,KAEG,YALwB,IAQxBC,KAAS,OAAZ,MAKG,SAtBjBU,EAC0BN,KACZ,KAAM,KACH,KAEH,UAJmC,IAMpB,SAP7BM,EAhCQS,IAA0C,KAAnB,MACHvB,IAEV,KAAM,KAFY,MAIJ,SAoD3ByB,IAAgB,KAAvB,EA6FV,GACYrN,GAAAA,IAAV,IAIA,IAHQhN,YAAK,KAAX,EAMFuV,GAAAA,IAAKkF,SAAD,MACCC,OAAD,MACCC,IAAsB3N,IAAvB,MACJoI,IAAIuF,IAAD,KACEA,IAAsB,IAAA,KAAvB,MACN,EAEEvF,GAAAA,IAAIuF,MAAD,KACCD,IAAD,KACCD,IAAD,KACL,EACA,GACEG,GAAAA,KAAgBH,IAAuB,OAAxB,KACeE,IAAoB,KAArB,KACO,SAElC,IAAA,OACA,IADA,OAEA,IAFA,OAGA,IAHA,OAIA,IAEO,SAAP1W,IACI,EAAA,QAENA,IACGsR,IAAKmF,IAAD,MACAC,IAAD,MACR,EAEED,GAAAA,IAAuB,QAAvBA,IACGtF,IAAIuF,MAAD,KAA4BD,IAAD,KADjCA,EAEF,EAEA,kBAI0DG,QAHxD,OACiB,QAAf,IAIsB,KAAf,IAAsC,KAAc,MAApD,IAEiB,QAAjB,IACD,KAAa,MACN,QACX,KAJe,KAAJjJ,OAAX,IAA8B,EAJd,QAChB,IAAqC,KAArC,IAAoDiJ,IAAM,IAAY,OASxE,IACoB,WAApB,IACmB,KAAjB,IAAgC,KAAhC,IACW,KAFO,WAApB,IAII,KAAsB,KAAP,MACR,QAlBb,GAAA,SAcqD,EAMrD,EAhBM,EAmBR,IACsBC,GAAAA,IAAqB,OAAzC,IACEA,IAAqB,IAAmC,MADP,GAA/BA,IAAqB,KAAzC,IAEAA,IAA4B,QAC9B,EAUA,EACQ9a,YAAK,KAAX,EAIF,YACE,IAC4B,KAA5B,IAAmD,KAC5C2W,KADP,IACOA,IAAiB,IAAa,IAAtB,MAAb,KAAyC,EADkB,GAAjC,KAA5B,IAAmD,KAAnD,MAEA,IAHuB,EAKzB,6BAQa,MAAA,IACc,IACG,MACF,MACN,MACpBoE,IACE,IAAoC,KAApC,IAEIC,IAFJ,EACIC,IAF0B,MAIb,MACfC,MAAJ,GAG8C,IAC1C,OAIe,IACiB,IAAd,IACQ,MAC1BH,IAAmCI,IAAH,MACb,MACZD,IAXT,GAaFH,IAAmCK,IAAH,MACNC,IAAT,IAAA,GAAiCA,IAAW,KAApB,IAC9B,IACiD,IAA5B,IAAd,IACU,IAC5B,GAIA,IAHQrb,UAAK,KAAX,IAhBUA,UAAK,KAAX,EAsBK,UAOFsb,GAAAA,MAAT,IAE0BA,IAAuB,MAA1B,IAFvB,EACKC,IAA4D,IAArB,MAErCD,IAAP,EAEF,EACeD,GAAAA,IAAb,IAIyBA,IAAW,KAJpC,EACwBE,IAAyB,OAE7C,IAA0C,KAA1C,GAGOD,IAAT,IAEIA,IAAkB,KAFtB,EACIC,IAAyB,KAE/B,OAIE,IAEW,IAEiB,KACfF,IAAW,KACXA,IAAW,MACfA,IAAW,KAJF,EAAA,IAAA,IAAA,KAAA,IAAA,IAOTC,IAAT,IAE0BA,IAAuB,MAA1B,IAFvB,EACKC,IAA4D,IAArB,MAD5C,IATQvb,YAAK,KAAX,EAJiB,IACL,IAgBTsb,IAAP,EAEF,OACwB,MAAf,SAAqC,KAA5C,EAEF,SACaE,GAAAA,KAAwB,IACrB,KACd,OAIyB,MACXH,IACO,MACC,QACtB,IACE,IAC2B,KACI,KAAf,MACG,MAEF,MACJ,SAEf,OAC0B,KACP,gBAKQ,KAClB5D,IAAAA,IAAL,IAekB,KACO,MACH,MAJR,EAAA,IAAA,IAAA,KAAA,KAAA,UAOZ,IAG6C,YAC7C8D,IAAyB,KAAM,IAAA,MAC/B7D,IAA8B,IAAA,aAzBhC,KACE,IAGkB,KACO,MACH,MAJwB,EAAA,IAAA,IAAA,KAAA,KAAA,IAAH,SAOxB,MAAN+D,GAEgB,KAAhB,MAFAA,EACD,MADCA,eAkBA,KA7BjB,mBAAA,UA+BA,IAE0B,SAC1B9E,IAAsB,KAAd,MAARA,KAA0D,IACxC,MACJ,MACA,MACS,MAEV,QACf,IAQO,IAAkC,MAAlC,EALsB,KACtB4E,IAAyB,KAAM,IAAA,MAC/B7D,IAA8B,IAAA,IACT,KAJ1B,IAOU,KAAL,IAAA,IAA0B,MAA1B,IAAP,IAxEQ1X,UAAK,KAAX,EA0EJ,KACawb,GAAAA,KAAwB,IACrB,OACd,OAIyB,MACL,MACW,KACd,QACjB,IACe,MAC8C,QACpB,KAAjB,MAA4C,QAAlE,IAEA7E,IAAuB,KAAf,MAARA,KAA2D,IACzC,MACL,MAAb,IAA0C,MACnB,SAElB,IAAA,IAAA,IAAP,IAjBQ3W,UAAK,KAAX,EAmBJ,EAAgC,EAChC,MACcub,GAAAA,IACHC,OAAwB,IACL,IACP7E,IAAa,KAAL,MAAT,GACpB+E,GACsB,QAAmC,IAC9C,KACXC,KAAaC,KAAqB,qBAAA,IAAgC,IAAA,IAAtD,MAIN,MADN,IAAA,GAGYN,IAHZ,OAGkCA,IAAkB,KAAc,QAAhCA,IAHlC,GAKO,WAAM,IAAA,MACXO,KAEEC,KAAwB,sBAAA,aAFhB,IAMGC,IAAb,IAIOtE,OAAAA,MAAP,IACEuE,KAAyB,OAE7B,IANUhc,UAAK,KAAX,EAQN,GACO,WAAM,IAAA,MACH,KAAA,QAAA,IACMub,GAAAA,IAAyB,OACvC,IAIoC,MAChC,IAEyB,KAAA,KAFzB,EAC0B,IAAA,IAAH,MADvB,EAJgB,UACfA,IAAqC,MAChB,IAAA,IAAH,MAHvB,EAQF,EACA,MACY,SACM,MAChBU,GAAAA,OAAsB,KAAtBA,GAAgCC,QAAkB,KACpD,EACA,KAAA,OAAA,SACmB,KAAD,KAAhB,EACED,GAAAA,KAAuB/M,GAAAA,MAAD,KAAtB+M,GAAgCC,KAAmBvK,IAAD,KACpD,EAEF,UAC8B,MACjB,KAEwB,IACzBgF,GAAAA,IAAQ,MAAT,GAAP,EACA,IACA,EAGJ,GACaU,GAAAA,UAA6B,QACxC,IAAiB8E,sBAAqB,IACxC,EACA,GACaC,GAAAA,OAAuB,QACnB,MAAf,IAAkE,IAC/B,MAAjB,MAMKC,KALR,UAAA,KAAA,KAQL,MAC6BC,KAAqB,KAE1Df,MAF0D,OAAxB,MAKxB,KAAL,IAAA,IAAA,IAAP,EAGM,KAAA,OAAA,OAAA,QAAA,OAAA,IACGA,GAAAA,IAAyB,KAClC,IAIsB,KAClB,IAEoB,KACH,MACJ,MACS,MALtB,EACiC,MAAX,MADtB,EAJW,UACVA,IAAqC,MACT,MAAX,MAQtB,EAGOC,GAAAA,OAAwB,IAAE,KAAjC,EAEF,GACaY,GAAAA,OAAuB,IAClCb,IAAyB,QAAM,IAAA,MACVM,WACnB,MAGA7I,OAAAA,aAJ6B,IAAb,MAMpB,EACA,aACawI,GAAAA,KAAwB,MAC5BxI,OAEMqI,MAAb,IACmBA,IAAW,KACR,SACpB,IAAqBkB,KAAmC,MAAjB,SAAvC,GAKFhB,IAAyB,QAAM,IAAA,MACVM,QAAW,eAAD,IAAb,MACpB,EAN2BA,mBAAU,IAAb,MAClB,EAOGW,GAAAA,wBAAe,IAAtB,EAGOC,GAAAA,wBAAgB,IAAvB,EAGOA,GAAAA,qBAAgB,IAAvB,EAGOA,GAAAA,wBAAgB,IAAvB,EAEF,YACqB,GAAnB,MAQA,MAAA,MAQF,MANsB,IACJ,MACZ,KAHF,QAPkB,IACb,KACH,KAHF,EAIIC,GAAAA,QAAG,KACL,EAOEA,GAAAA,MAAW,QACb,EAGN,UACS,QAAA,IAA8C,KAAC,IAAA,IAAD,KAC9CD,GAAAA,KAGLE,KAA2B,QAAA,uBAHN,IAAvB,EAOF,EAA4B,EAC5B,QACanB,GAAAA,OAAwB,MAC5BxI,OACa,KACpB,IAAA,IAGEuJ,QAAkC,IAAhB,MAHpB,GAMqB,IAAA,IAAA,IAAH,MAClB,IAFkB,IAAhB,EAIJ,KACaf,GAAAA,OAAwB,MAC5BxI,OACa,KACpB,IAAA,IAGEuJ,QAAkC,IAAhB,MAHpB,MAMuB,IACF,IAAA,IAAA,IAAH,MAClB,IAHkB,IAAhB,EAKJ,SACa9E,GAAAA,OAAAA,MAAX,IAKAd,MAAQ,MAARA,GACYiG,IAAuB,IAChCrB,IAAyB,KAAM,IAAA,MAC/B7D,IAA8B,IAAA,MAChB,MACjB,EARQ,KAAJmF,KAAkC,QAAyB,IACxC,MAFrB,EAWJ,UACyB3G,GAAAA,YAErB,UAAA,OADmB,MAEX,KACW4G,IAAyB,KAC9CA,IAAuC,EAAH,MACpC,EACY,QAAc,IAC1B,GACwB,IACnBA,OAAoC,MAE3C,EAJY,EACc,IACnBA,IAAoC,MACzC,EAGOtB,GAAAA,OAAwB,IAAE,KAAjC,EAEF,MACauB,GAAAA,OAAiB,KACnB,UAAA,SAAA,MAOLC,KAAmB,KAAvB,GAEaC,mBAA2B,MADnC,IAIaC,KAAgB,IAChCf,gBAAqB,IACrBgB,KAAwB,OANrB,EAD2BC,KAAwB,MAS1D,EACA,oBACaL,GAAAA,KAAiB,KACjB,UAAA,MAAA,SAOPC,KAAmB,KAAvB,MAEuB,KAER,OADb,YAAA,OAEwC,KAFxC,OAGqB,SAHrB,IAM4B,YACA,WACJ,MACH,MACbrG,IAAQ,MAAZ,GAQF,EAP2B,QACvB,OAE+B,KAAd,MAAuC,MAFxD,KACiB,MAAYS,KAAyB,KADtD,GAGiB,MACjB,EAEF,EAGK6F,mBAA2B,SACpC,IACaC,KAAgB,OAC3Bf,mBAAqB,IACrBgB,KAAwB,OAH1B,EAHY,EACV,EAvB4BC,KAAwB,MA8B1D,EACA,GACuB,KAET7B,GAAAA,IAAV5J,IAAAA,KACC,IAAA,GAAoC4J,IAAdzJ,IAAtB,GAFH,EAKF,MAC2E,KAAA,IAA/B,IACvB,OACnB,IAE2B,KAAV,MAA+B,MAFhD,EACgB,MAEH,QACf,EACA,eACa+C,MAAX,IACwB,KACJ,KAAR,IACN,IACO,MACX0C,GAAAA,MAAiB,MALnB,EAOF,EA2LA,WACE,OAGc8F,GAAZ,GAAYA,OAAa,KAAjB,IAAsC,QAA9C,MAGF,EAAE,EAEkC,SAAhC,IAAmD,SAAnD,IAAA,IACJ,GACO,KAAA,IAAA,KAAA,MAAA,KAAP,EAOF,MAIW,MAAA,EACC,MAJH,KAAA,IAAA,KAAA,IAAA,KAAP,EAcF,cAGM5Y,GAAAA,IAAAD,OAAA,MAAA,KAAA,MAAiE,MAC7B,KAAlB,IAAoC,KACpC,OAEd,IAAmC,UAAnC,IAAkD,KAJY,EAAA,KAAA,IAAA,KAAD,OADnE,MAMQvE,MAAa,KAAU,KAAV,KACvB,EAAE,EAAA,MACA4M,QAAW,KAAD,KAGZ,EACF,EAHYlJ,GAAAA,IAAN,EAKN,QAAA,IAAA,IACS2Z,GAAAA,gBAAY,SACX,MACO,IAAA,KAAH,MACS,KAAZ,IACO,KAAH,MAIb,EAHEC,GAAAA,IAAAA,KAAsC,IAA8BC,GAAAA,IAAH,IACjEC,KAAiB9L,GAAAA,IAAO+L,MAAR,MAClB,EAGF,UACSJ,GAAAA,cAAY,SACX,MAC4B,KAAK,UACtB,GAAnB,sCACuB,KAAZ,IACM,KAAH,MAGI,KAAH,MAIC,OAChB,IAAA,GAC4B,MAAX,GAAf,IADF,GAEmB,KAAH,MAWhB,EApBWK,GAAAA,IAAyBH,MAAD,KAA/B,EAGAC,GAAAA,KAAiB9L,GAAAA,IAAO+L,MAAR,MAClB,EAKiB,OACfD,GAAAA,KAAiB9L,GAAAA,IAAO+L,MAAR,MACD,QAAA,GAAf,IACYE,MAAT,IAEGA,IAA0C,KAAA,KAF7C,IACiDtY,MAAI,IAAA,IAAD,KAAA,UAAA,IAAA,IAAV,IAEjCoY,IAAS,KACC,MAACA,IAAS,OACd,OADsB,EAAA,KAAlB,MAGxB,EAGJ,SACsB,QACpB,IAK4B,KAAA,OACxB1K,MACoB1N,MAAG,KAAA,OAAA,IAAA,IAAkB,KAAA,SADzC0N,EAL+B6K,GAAAA,IAAe,KAAA,OAAA,IAAA,IAAtB,QACNvY,MAAG,KAAA,OAAA,IAAA,IACV,KAAA,SAKF,KAAA,KAAbwY,GACgB,KAAA,KACNC,GAAAA,KAAsB,mBAAA,IACjB,KAAA,MAHfD,EAIF,EAGA,cAEI,IAEItD,GAAAA,IAES,gBAFW,IAFxB,EACIwD,GAAAA,iBAAgB,IAFF,QAStB,EACA,YAOuB,KACG,KACxBC,GAAAA,MAAoB,MACRC,mBAAe,MAQ3B,IAAyBC,IAAzB,GAEyC,KAAV,MACZ,WAAM,IAAA,MACb,KAAU,GAAJ,IAAA,MACdC,KAA4B,OAJ9B,EAMY,QAAM,IAAA,MACpBC,mBAAiB,IACI,KAArB,EAEF,iBAOE,OAgCc,KACI,KAAPC,MAAX,IACsB,KACC,MACT,IAAiC1G,GAAAA,IAAjC,EACC,MAAb,GAA8C,KAAuB,KAArE,IAGY,QAAM,IAAA,MACVc,GAAAA,OAAoB,MACF,KAAjB,MACG,MACc,MAA5B,EANW0F,GAAAA,KAA4B,OAAnC,EArCkB,SAEH,GADjB,IAEGG,GAAAA,OAAe,KAFlB,GAGiB,MAHjB,IAIoB,MAJpB,IAKsB,MALtB,OAQuB,MACC,MACpBC,sBAAyB,IAH3B,EAWQzF,GAAAA,KACC,KAIK,kBALqB,IAQT,KAAjB,MACG,MACc,MAA5B,EAgBJ,iBAOE,OACyB,KAErBnB,GAAAA,MAAY,SADd,GAES,KAAuB,QAFhC,MAKsB,IACU,MACd,KAAP0G,MAHT,IAQmC,KAAV,MACrBF,KAA4B,OAF9B,EAFc,WAAPE,OAAP,MAAmD,OAOlDG,GAAAA,sBAAuB,IAA9B,EAQF,WACgC,KACJ,OACZ,IAA0B,KACd,SAA1B,OAqCE,IAC2B,KAATC,IACe,MAE/BnJ,GAAAA,IAAKoJ,IAA0BC,MAA3B,MACHA,IAAkB,IAAA,IA1CvB,KAC2B,QAAd7H,MAAX,aASaU,IAAX,IAiB+B,UAAH,SAKhB,IAA8B,KAC1ClC,GAAAA,IAAKoJ,IAA0BC,MAA3B,MACJA,IAAkB,IAAA,IAjCpB,QAYQ,IACa,KAATF,IAE2C,MAA5B,MACW,UAAA,MAAH,MAKF,MAC3BnJ,GAAAA,IAAKoJ,IAA0BC,MAA3B,MACHA,IAAkB,IAAA,IAbrB,EAT8B,UAAH,MAK3BrJ,GAAAA,IAAKoJ,IAA0BC,MAA3B,MACHA,IAAkB,IAAA,IAmCzBP,GAAAA,mBAAiB,IACI,KAArB,EAEF,MAC0B,OACxB,IAAA,IAAA,IAE8B,KAF9B,IAIgB,WAAM,IAAA,MAJtB,EAKF,EACA,YAOgBxG,GAAAA,MAAiB,KAAjBA,GAEVvC,IAAkB,KAFRuC,EACVhC,IAEMiC,IAAgB,MAC1BmG,IAAoB,MACRC,sBAAe,MAQ3B,IAAyBC,IAAzB,GAEyC,KAAV,MACZ,WAAM,IAAA,MACb,KAAU,GAAJ,IAAA,MACdC,KAA4B,OAJ9B,EAMY,QAAM,IAAA,MACpBC,mBAAiB,IACI,KAArB,EAEF,iBAOMxG,GAAAA,MAAiB,OAArB,GAEEgH,IAAmB,OAErBZ,IAAoB,MACO,OAA3B,OAKK,OA2EsB,KACzBa,KAAgB,MACS,KAET,KAAwB,QAAtC/H,IAEIgI,IAAkC,KAAf,MACX,MACmB,KACd,KACG,UACT,GAAb,IAAA,IAEmBlH,IAAiB,KAAjBA,GAEXvC,IAAkB,KAFPuC,EACXhC,IAEUiC,IAAgB,MALlC,EACkB7K,IAAW,KAKoB,UAEhC,GAAf,OAAA,GAC8B,MAAf,GAAf,IADA,GADF,GAGiC,MAAf,GAAf,IAAA,GAC+B,MAAf,GAAf,IADD,GAHH,GAKI+R,IAAAA,GAAiCC,IAAlC,GACCC,mBAA6B,IAMnB,IACW,KACX,MACd9G,mBAAkB,IACW,KAC7B4G,OAAAA,OAEA3J,IAAyB,KAFzB2J,MAGAG,IAHAH,MAqDmC,MAAf,GAAf,IAAA,GACsB,KAApBA,IAAAA,GACqB,KAApBC,IADDD,GADF,GAGgB,QAAM,IAAA,MACO,MAAf,GAAf,IAAA,GACuB,KAApBA,IAAAA,GACqB,KAApBC,IADDD,GADH,EAAA,MAGiB,WAAM,IAAA,QAHvB,KArDC,GACE7G,kBAA0B,IAMD,KAE1BgH,IAAAA,GACAC,4BAA0B,IAD1BD,KADF,MA2BmC,MAAf,GAAf,IAAA,GACsB,KAApBH,IAAAA,GACqB,KAApBC,IADDD,GADF,GAGgB,QAAM,IAAA,MACO,MAAf,GAAf,IAAA,GACuB,KAApBA,IAAAA,GACqB,KAApBC,IADDD,GADH,GAGiB,WAAM,IAAA,MACM,MACA,MApCjC,KAYKK,GACgC,MAAf,GAAf,IAAA,GAC+B,MAAf,GAAf,IADD,GADFA,GAGgC,MAAf,GAAf,IAC6B,MAAA,OACA,MAAf,GAAf,IACqC,MAAA,OAKT,MAAf,GAAf,IACiB,QAAM,IAAA,MACO,MAAf,GAAf,IACiB,WAAM,IAAA,MAWZ,MACA,MACE,SAnDrBL,KA7G6B,KACF,KACb,MACW,KACA,UACZ,GAAb,IAAA,IAEoBnH,IAAiB,KAAjBA,GAEZvC,IAAkB,KAFNuC,EACZhC,IAEWiC,IAAgB,MALnC,EACmB7K,IAAW,KAKU,UAErB,GAAf,OAAA,GAC8B,MAAf,GAAf,IADA,GAEJqS,GACiC,MAAf,GAAf,IAAA,GAC+B,MAAf,GAAf,IADD,GADHA,GAGIN,IAAAA,GAA0BO,IAA3B,GACCL,mBAA6B,IAMnB,IACe,KACf,MACd9G,mBAAkB,IACS,KAC3B4G,IAAAA,IAEA3J,IAAyB,KAFzB2J,GAGAG,IAHAH,GAwCmC,MAAf,KAAf,OACgB,QAAM,IAAA,QADtB,KApCA,GACE7G,kBAA0B,IAMC,KAE5BgH,IAAAA,GACAC,4BAA0B,IAF5B,GAoBmC,MAAf,GAAf,IACgB,QAAM,IAAA,MACM,MACA,MAvBjC,EAWKE,GACgC,MAAf,GAAf,IAAA,GAC+B,MAAf,GAAf,IADD,GADFA,GAGgC,MAAf,GAAf,IAC4B,MAAA,IACC,MAAf,GAAf,IACoC,MAAA,IACR,MAAf,GAAf,IACiB,QAAM,IAAA,MAKZ,MACA,MACE,SAtCrBN,EAnCAQ,KAAwC,MACtCC,KAAsB,OACtBC,mBAAkB,MA+KfC,yBAAoB,IAA3B,EASF,iBAQEC,GAAAA,OAAO,MACoC,QAAd7I,MAAP,OACtB,GAAA,GAEI8I,GAAcC,MAAyB,OACvC1B,KAA4B,OAF9B,EAI2B,KAC7B2B,IAA2B,MAEzBC,GAAkD,UAAhB,KAAlCA,IAEuB,KAAA,IACX,QAAM,IAAA,MACpB,IAAA,GAaI3B,mBAAiB,IAbrB,EAC6B7D,IAEhB,eAFoC,IAAvB,MAMEA,eAAoB,IAAvB,MAOkB,KAAf,MAC5BqF,GAAcC,MAAyB,OAClB,KAArB,EAEF,GAC2B,KACrB,MAAJ7L,GAMQ,KAAJA,GACAgM,GAAAA,IAA8C,SAArB,OADzBhM,EALAgM,GAAAA,IAEM,MACA,MAAwB,OAA5BhM,IAHuB,OAO7BiM,GAAAA,KAAsC,OAArB,MACnB,EAGS,aAAA,MAAP,EAEF,SACgC,KACVC,GAAAA,IAAmB,KAEH,QAAdpJ,MAAP,OAEf,KAEI,IAAoC,OAApC,OAEWqJ,IAAP,IAFJ,GAGJ,KACK,IAAwC,UAAxC,OACY,MADZ,EADoD,WAAM,IAAA,WAG/D7K,IAAK4K,OAAqBC,MAAtB,QACJ,OA2CyB,KACzB,IAEqC,KAFrC,OAaA,MA0CsB,KACA,KACV1H,KAES,KAF0B,MAAA,IAAA,IAAf,MAIX,KAAd3B,IAAP,IAAmD,MACnC,MACC,MACjB,IACgC,KAC9B,IAEoB,KAAA,KAFpB,EACiC,IAAA,IAAH,MAA8B,QAAM,IAAA,MAEhD,MACQ,MAC5B,EAzD0B,MACG,KACF,KACQ,KAC4B,KAArC,MAAA,IAAA,IACjBsJ,IAAP,IAAwC,KAAxC,IAKkB3H,KAAoB,MACO,WAAf0H,IAAH,SAN3B,EACgC,KACP,MACE,MACE,SAG7B,IAEqBhH,kBAAuB,IAM3B,QAAM,IAAA,MARvB,EACoBV,KAAoB,MAQrB,MACH,MACC,MACG,MAES,KACT,KAAM,KAExB,IAG2B,KAAV2H,IAEY,MAHzB,EAAA,IAAA,KAAA,KAFJ,EACIC,KAA2B,KAMP,MACO,KAAc,GAArBhC,IAAH,MACQiC,IAAH,MAC5B,EAjDOC,2BAAiC,IAAxC,EA/CwB,KACxB,IAAwC,KAAxC,OASsB,KACH,MACZC,GA4BHC,KAA4B,MA5BzBD,KACyB,KACE,KAChB,MAAA,IAAA,IACPE,IAAP,IAAA,IAGoBC,iBAAwB,IAH5C,EAC6B,MACC,SAOnBxH,kBAAuB,IAMd,MACL,MACM,MACA,MACN,KAAuBkH,KAA2B,KAA9B,MAGHC,IAAH,SA1BjC,EATyB,KAAdxJ,IAAP,IAEI8D,IAAM,UAEe,MAFrBA,EADqB,MAF3B,EAkHN,GACoB+F,GAAAA,KAChB,MAAA,OAAA,IACc,cAF0B,IAMpB,MACM,MAA5B,EAEF,QAME,IACYC,GAAAA,IAAT,IAEGA,IAAoB,KAAA,KAFvB,EACsB,IAAA,IAAH,IAEtBrG,GAAAA,OAA4C,iBAAxB,IACVkG,KAEM,KAAa,KAFS,MAI/B,QAAM,IAAA,MACe,MAC5B,EAEF,mCASE,MAiDyB,QAAd3J,IAAX,OAOI8D,GAAAA,MAAM,IAiB+B,KAArBpD,IAChB0G,IAAJ,GAAA,IA8DItD,IAAM,IAQA6F,KAAsD,KAA1B,MAC/B,WAAM,IAAA,MACb,EAvEc3E,MACZ,OACwB,GAAdtE,IAAR,MAAA,UAAA,UAAA,UAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,aAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,MAAA,KAgCI,KAHA,KAQ4B,KAATkJ,IAAdN,MAAP,OAGF,IAAA,GAC8B,MAA5BA,IADF,GAE2B,MACzBhJ,KAA6B,MAC7B8E,sBAAqB,IAEzB2E,KAA+B,IACfC,OACd/gB,UAAK,KAD4B,KAK5BghB,gBAAsC,IAA7C,EA/EOA,GAAAA,kBAAsC,IAA7C,EAjDkB,WAAdjK,IAAJ,MAe2B,OAA3B,OAMyB,MACE,KACf6J,GAAAA,KAC4B,KAAtC,MAAA,IAAA,kBADkC,IAMpBxH,cAAuB,IAM1B,KAAM,IAAA,MACH,MACI,MACH,MACG,MACC,QAAdrC,IAAP,IACEyD,IAA4C,eAAxB,IACR,KAAuB8F,KAA2B,KAA9B,MAGHC,IAAH,MAC5B,EA7BmC,KAAV,MACN,QAAM,IAAA,MAFvB,EAdiB,WAAM,IAAA,MACJQ,GAAAA,OACf/gB,YAAK,KAD6B,KAKpCghB,gBAAsC,IAPxC,EAkJN,MACO,KAAM,IAAA,MACU,OACrB,IAAgC,KAAM,IAAA,MACtCC,GAAAA,IAAqC,UAAN,OACjC,EACA,eAOkC,OAChC,IAS6B,MACH,QACS,MACd,MACA,MACI,MAdzB,EACoC,UAAA,MAAA,IAAA,IAAA,KAAH,MADjC,EAeF,EACA,mBACgC,KACL,MACH,KACtB5C,GAAAA,KAAoD,gBAAnC,IACL8B,IAAmB,QACpBQ,MAAX,OAGE,OAAsC,QAAPrC,IAA/B,OACkC,KAA7B,OACiB,KAAlB,IAGuB,KAAlB,IAEoB,KAApB,IACI,KAAa,MACH,KACjB,EAJA4C,KAA2B,OADxB,EAFa,KAAhB,IACEA,KAA2B,OAQ/B,IACuB,WAAvB,IACsB,KAApB,IAAsC,KAAtC,IAEiB,KAHI,WAAvB,IAKO,KAAyB,KAAV,MACL,KAlBhB,GAAA,UAoBI,IAxBX,KACgBP,IAAAA,IAAoC,QAAM,IAAA,MAyB1DpL,IAAK4K,IAAD,MACqB,QAAdpJ,IAAX,OAEE,IAAA,WAAA,QAAA,IAgDgC,MAhDhC,KA6CIoK,kBAA2B,IAC3B,KAtB4B,KACH,UAAzB,IACuB,WACrB,IAAiCC,KAAkB,KAAnD,IAIqB,KACF,YAPrB,MAGwB,SAQxBD,oBAA2B,IAO3B,EAzC4B,SAC5B,IACwB,KACpB,IAAA,GACWC,KAAkB,KAA3B,IADF,MAG0B,QAL9B,IAOA,IAG+B,KAA+B,MAH9D,EACkC,KACT,MAEzBD,qBAA2B,IAO3B,EAvB2D,MAoD5C,KAArB,EAEF,MACuB,QAAdpK,MAAP,IAAA,KACE,IADF,KAEqB,MACM,MACV,QAAM,IAAA,MAJvB,EAKF,EACA,UACE,IAAA,GAA0D,KAAV,MAChDW,GAAAA,IAAgD,KAAlB,IAAA,IACS,QAA5BD,MAAX,OACA,GAAsC,KAAkB,KAAxD,OAE2B,KAA3B,IAC0B,KACViB,KAAqC,KAAjB,MACd,MACG,MAAmC,cAA1D,IACoB,KACqBA,KAE5B,KAFgD,MAAvB,MAIf,MANmC,cAA1D,IAOmB,MAEA,KAArB,IAdQ1Y,UAAK,KAAX,EAFmD,EAkBvD,WAKwB,KAAtB,GAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,OAAA,OAAA,SA+D2B,MACrBqhB,GAAAA,OAAwB,OAF1B,EApB6C,KAA5B5J,MAAP,IACQ,QAAP6G,IAAX,IACE,GAMc,KAAM,IAAA,MAEI,KAC1B,IACuB,MACN,MACM,MACvB/I,GAAAA,IAAK4K,IAAwC,OAAzC,MACJ,MACK,EAdMmB,GAAAA,OAA2B,OAAlC,EAxBoB,KACxB,IAiBA/L,GAAAA,IAAK4K,IAAwC,KAAnBA,MAAtB,MACJ,KAjBsB,KAApB,IAMuC,KAAM,KAAlC1I,MAAX,IAEAlC,GAAAA,IAAK4K,IAAwC,KAAnBA,MAAtB,MACM/B,KAA4B,SAK/B,IAA0B,KAAjC,EAPSmD,GAAAA,OAAuB,OAA9B,EALEhM,GAAAA,IAAK4K,IAAwC,KAAnBA,MAAtB,MACW,QAAM,IAAA,MAFvB,EATwB,KAAK,MACL,KAAc,KAC1C5K,GAAAA,IAAKsB,IAAoB,QAArB,MACkB,MACtB,EAPAqJ,GAAAA,KAAgD,KAAU,OAAzC,MACjB,EALArI,GAAAA,IAAgC,OAAf,KAAjBA,GACEgH,IAAmB,KADrBhH,EAHA2J,GAAAA,OAAe,KACf,EAJAC,GAAAA,OAAmB,KAiEhBrD,GAAAA,OAA4B,OAAnC,EAEF,gBACE,IAA+B,KAAwB,KAAvD,IACwB,QAAbsD,IAAX,IAC4B,KAA5B,IACoB,KAAPpD,IAAX,IAAmD,KAAPA,IAA5C,IAEiB,KAHnB,MAKA,IAHI,IAHkC,IADyB,EAkDjE,4BAMgC,KAM1BqD,KANJ,OACgB,KAAd,OAMqB,KAAd,IAKc,QAAd,OACU,KAAf,IAAoC,KAApC,IAIsB,QAAjB,OACC,KAAa,MACN,KACX,KANgB,KACd,IAAqC,MACrCC,iBAA4B,OAHhC,EALe,KACf,GAAA,GAEAD,IAAgD,KAA5B,SAJf,IAGG3hB,UAAK,KAAX,EARiB,QACnB6hB,MAAAA,GAAAA,GAEcC,IAAmB,KACjCH,IAAgD,KAA5B,SAgBtB,IACoB,WAApB,IACmB,KAAjB,IAAgC,KAAhC,IACW,KAFO,WAApB,IAII,KAAsB,KAAP,MACR,QA5Bb,GAAA,SAwBgE,EAMlE,EAkEA,KACqB,MAAnB,IAAA,QAAA,OAY8B,SAC1B,IACuB,KAArB,OAC8B,QAFhC,IAGA,IAI4B,MAJ5B,KACII,GAAgD,KAAhDA,IAEc,KAAa,MAF3BA,EACmB,MADnBA,EAfkC,SACtC,IACmC,KAAjC,OAEsD,QAHxD,IAIA,IAEyB,MAFzB,EACqB,MADrB,EAeN,EACA,WAE4B,KAAtB,IAAA,GACa,KAAU,KAAwB,KAA/CL,IAI+B,KADnC,cAQE,OAC4B,KAAiB,KAAzBM,IAAJ,IACa,KAAZ,IACY,KAAZ,IACG,MACI,WALxB,cAPA,IAC4B,KAAiB,KAAzBA,IAAJ,IACa,KAARA,IACQ,KAARA,IADJ,IACA,IACG,MACI,WALxB,IAaW,KAAa,IAAA,MACF,MACxB,EAEF,yBAC+B,KAC7BC,GAAAA,IAAc,KACQ,uBA0TlB,EAFA,EAZEC,KAAc,IACwB,KAAvB,IACf,IAAA,GACmB,KAAhB,IAAA,IADH,GAEiB,WAAM,IAAA,MACvBzK,GAAoC,QAAdV,IAAtBU,IAGI0K,KAAgB,KAHpB1K,EACWmH,UAAAA,IAAP,IACAuD,KAAgB,KARtB,EAzHA/M,IAAI+K,IAAD,KACkB,KACrB,OACgC,QAAdpJ,IAAP,IACS,MACpB,UAmEE,MAEgBqK,KAAkB,KADhC,IAiBM3c,IAAAD,OAAA,IAAA,KAAA,KAAA,OAAJ,IAAgB,MAAhB,IACE4d,IADF,IAAA,SAEE,IAFF,GAAA,MAGkB,KAAM,IAAA,MAEtBC,KAAkB,YACG,QANvB,EAbkB,KAAM,IAAA,MAEJ,KAClB,IAC8B,MACb,QAAM,IAAA,MACvBA,KAAkB,MACL,OARf,IASqB,YATrB,IAUkB,OAVlB,GAYSF,KAAgB,KAAvB,EASF,MAAJ7Z,GAGoB,KAChB,IAEyB,MAFzB,EACoB,MAEV,SAPdA,KAC4C,KAAjB,MACF,SAFzBA,KA3FA,MAGUga,IADR,IAAA,IAEqC,KAAPhE,IAF9B,IAI+B,KAA7B,IACkB8C,KAAkB,QAClC,IAgDiB,KAlDnB,IAoDW,KAAb,IAAA,GACE3c,IAAAD,OAAA,IAAA,KAAA,KAAA,IAAQ4d,IAAR3d,IADF,GAAA,MAEkB,KAAM,IAAA,MAEtB4d,KAAkB,YACG,QALvB,KAjDoB,KAAM,IAAA,MACpBA,KAAkB,MACK,KACvB,IAC8B,MACb,QAAM,IAAA,MACI,MAEM,KAAjC,OAGa,KAAM,IAAA,MACU,KACzB,OAUyC,KAAhB,MACU,KAAhB,MACgB,KAAhB,MACO,MACH,MACoB,KAAhB,MACgB,KAAhB,MACc,KAAhB,MACS,KAAhB,MACO,OAEnB,IAGiB,KACO,MAFpB,EAAA,IAAA,QAHgB,MApB1B,EACyB,MACN,MACA,MACO,MACC,MACA,MACF,MACC,MACH,MAkBG,KAhC9B,OAiCA9M,IACE4K,IACoB,QAAnBA,OAAAA,IAFC,MAIiB,KAArB,EAtDMkC,KAAkB,SAoGjB,KAAjB,IAWAF,KAAgB,KAChB,EAV0B,KACP,MACY,KAAjB,MACiB1d,IAAAD,OAAA,IAAA,KAAA,KAAA,IAAH,MACD,MACZ2b,IAAmB,KAC9B5K,IAAK4K,IAAqBoC,MAA+BjE,IAA/BiE,KAAYjE,OAAAA,IAAlC,MAPN,EAzGwB6D,KAAgB,KAAvB,EAPjBtK,IAAgC,KAAf,KAAjBA,GAA0C2K,IAAU,IACpDL,KAAgB,KAFlB,EALEM,IAA0B,KAAK,MAApB,KACXN,KAAgB,KAFlB,EANEO,KAAgB,IAChBC,IAAmB,MACnBR,KAAgB,KAHlB,EA1CA/M,IAAI+K,IAAD,KACsB,KAEvB,IADF,GAEmB,KAFnB,OAGoB,KAAc,KAHlC,OAKE,IAA0C,KAA1C,IAeWU,MAAT,IACG+B,KAAuB/B,IAAD,KAAmC,MAD5D,EAdA,MAQqB,QAAd9J,IAAP,IAC+B,MACjB,QAAM,IAAA,MACpBoL,KAAgB,OAMlB,GAAgC,WAAdpL,MAAAA,MAAP,EAEY,QAAdA,IAAX,OAEc,IACG,IAAA,GAAoC,KAAhB,IAArCU,IAAAA,MAAAA,GAEkB,KAAM,WAAM,IAAA,MACP,QAAdV,IAAP,IACG,GAA2BoJ,IAAmB,KAAnBA,IAA3B,IAGGW,KAA+B,IAHlC,EACSwB,IAAN,OAC6B,IAEd,KAAvB,IAAsD,QAAM,IAAA,MAC5DH,KAAgB,KAChB,EAZ8B,MAA5B,IAnBUniB,UAAK,KAAX,EAjCN,GAAqC,KAArC,QAQmB,GAAjB,IAA2D,KAA3D,IAIU4a,KAAgBH,IAAuB,KAAxB,KACKE,IAAoB,KAArB,KACFkI,iBAAkB,IAArB,MAd1B,IASU7iB,UAAK,KAAX,EARF8iB,IAGS,gBAHO,IAoBlBX,KAAgB,KAChB,EA1EAY,KAAc,KACAnI,KAAgBH,IAAuB,KAAxB,KACJ,KACzB,IAA8C,KAA9C,OAUE,GAC6B,KAA3B,IAIA0H,KAAgB,KAChB,IAJQniB,UAAK,KAAX,EAMJ4a,KAAgBD,IAAoB,KAArB,KACL7F,OACE,IAAA,IACLkO,IAAoB,KACPrQ,IAElBE,IAEI,YAJ4B,IAMpBkC,IAER,cAFkB,IAOVkO,IAAwB,KAAA,mBAAA,IAAA,IAM5B,EAAA,IAAA,IACVC,gBAAiB,IACO,MACD,KAAvB,IAA8C,WAAM,IAAA,MAApD,EA3CAC,qBAAqB,IAOZ,KAAuB,KAA9B7E,IAAqD,WAAM,IAAA,MAsC/D6D,KAAgB,KAChB,EAvE+B,KAC7BO,KAAgB,IAChBtN,IAAIC,IAAD,KACCC,IAAD,KACH8N,KAA2B,IAChB,MAAX3L,GACqC,MAAd,MACM,MAC5B,IAAA,GAAoC,KAAhB,IAApB,GACC,IADD,GAES,KAAc,MAArB6G,GACsB,WAAdvH,IAAP,IADDuH,GAFF,GAIiB,WAAM,IAAA,MACbuC,IAAT,IACG+B,KAAuB/B,IAAD,KACP,IACpB8B,IAAmB,MACnBR,KAAgB,KAlBlB,EALEtK,IAAgC,KAAf,KAAjBA,GAA0C2K,IAAU,IACpDL,KAAgB,KAFlB,EAFOA,KAAgB,KAAvB,IAiTEniB,MAEY,SADhB,QAAA,IADS,KAAX,EAMF,KACEiiB,GAAAA,MAAc,KACQ,uBA+ClB,EAFOC,KAAc,IAArB,EAHOO,IAA0B,KAAK,MAApB,KAAlB,EAFOC,KAAgB,IAAvB,EAFOtN,IAAI+K,IAAD,KAAV,EAfA/K,IAAI+K,IAAD,KACqB,KACxB,IAEkB,KAFlB,IAGyB,KAHzB,IAQwB,WACjB7B,MAAAA,SACuBA,OAAAA,IAAJ,SAD1B,IAJQte,UAAK,KAAX,EATK+iB,KAAc,KAArB,EAVEL,KAAgB,IAChBtN,IAAIC,IAAD,KACCC,IAAD,KACH8N,KAA2B,IACF,WAClB9E,QAAP,OAAkCA,MAAlC,UAC8BA,IAAAA,IAAJ,SAP5B,EAPEzG,IAAgC,KAAf,KAAjBA,GAA0C2K,IAAU,IAC3B,WACzBlE,MAAAA,SAC8BA,OAAAA,IAAJ,SAJ5B,EA+CA,EAKN,OACmB,UACjB,WACqB,GAAnB,OAMgB,MANhB,EAEO,KACL,EAAE,EACA+E,GAAAA,KAAuB,OAG/B,EAEE,KACS,IACT,EAAE,EACAA,GAAAA,UAAuB,OACzB,EACF,EAEA,2DACiB,GAAA,IAAf,OAEaC,OACS,KACP,KAAJrP,IAHT,OAAA,OAOkBqP,IAAhB,OACSA,IACP,GACoB,KACH,KAAJrP,IAAX,UACc,KAAZ,OAAA,OAAA,OAAA,IAAA,OAAA,OAAA,OAAA,IAAA,MA2BUjU,UAAK,KAAX,KArBA,OACyB,KACF,QACJ,QAC4B,MACrC,KAAqB,KAAzBiU,IAEI8K,OAAwB,QAAL,MAFvB9K,KAAAA,GADyC,SAMD,MAetD,EAAE,EACAoP,QAAkC,KAAX,OACzB,GACiB,QACjB,OAKiB,KAAP,IA7CZ,eAyC4B,KAAP,MACP,IACV,QA7Cc,MAAqB,IANJC,IAAvC,OAuDUC,SACuB,IACjC,EAEF,UAKgC,OAChB,IAAkC,KAChD,IACyC,KAMjCC,QAJO,KAANC,IAAL,IACsB,MACN,SACdzQ,IACEwQ,KAAiB,UAEN,KAPjB,IAUJ,EACA,UAC6B,OACZ,IAAoC,KACnD,IAC2C,QAE5B,KAANC,IAAL,IACwB,KACI,IAAZ,MAED,KALjB,IAQJ,EACA,GACuB,OACrB,IACmB,MAAUC,GAAAA,OAAuB,KACzC,MACI,MACF,MACE,MACH,MACM,MACC,MACA,MACD,MACH,MACE,QACnB,EACA,aAKsB,KAClBC,GADF,IACEA,KAA4B,OACV,KAFpB,IAGF,EACA,qBAKM5P,GAAAA,IAAJ,GAA0CA,IAAY,UAAnB,GAAnC,IAEIA,IAAiC,MAACC,IAAD,MACnC,EAAE,EACgB,uBA6EhB4P,KAAkC,OAKlC,KAZAA,KAAkC,OAKlC,KAtBAC,KAAe,MACW,QACW,UAAlB,GAAnB,IACE,GACmC,KAAf,MACiB,KAAf,MACc,MAAA,IACpC,EAAE,EACAR,KAAuB,OAE3BO,KAAkC,OAKlC,KA5C8B,UAC9B,OAE6B,QAF7B,OAIyC,QAGlB,MACF,KACjB5Q,IACU8Q,IAAP,IAEUA,IAAP,IACAN,KAAiB,OADjB,EADAA,KAAiB,OAOR,QAbjB,IAgBFI,KAAkC,OAKlC,EAtCAG,IAA+B,KAAU,KAAvB,KAClBH,KAAkC,OAKlC,EAjBAC,KAAe,MAEfD,KAAkC,OAKlC,EA2EAA,KAAkC,OAMxC,EACA,OAC8B,OAC5B,cAC0B,MACK,KAC7B,IAC6CI,GAAAA,IAAe,KAAA,OAAA,IAAA,IAAtB,SADtC,QAEiB,KAAC,KAAD,KAMrB,EANsB,GACJC,GAAAA,KAAyB,KAAOC,GAAAA,MAAP,OACrCC,IAAc,KAAA,KAAdA,GACGA,IAAc,KAAA,KAAyB,KAAA,MAD1CA,EAEF,EAGJ,qBAC6B,QAC3B,WAC+B,KAQzBd,GARJ,UAC+B,IAE3BM,WAA4B,OACC,QAC7B,OAAuC,MAAvC,GACoB,MACtB,EAAE,EACAN,QAAuB,OACzB,GATqC,SAAV,KAA7B,OAWa,WAAXe,IAAJ,MACgC,QAC5BC,GADF,IACEA,QAA4B,MACA,QAF9B,IAGJ,EACA,MAC4B,KACJ,KACF,uBAkEhBC,GAAAA,OAAkC,MAClCC,KAA2B,QAC3BC,IAAAA,MAAaC,KAA4B,KAAzCD,KARAF,GAAAA,OAAkC,MAClCC,KAA2B,WAC3BC,IAAAA,MACe,KAA2C,OAArB,IAAH,MADlCA,KAdAF,GAAAA,OAAkC,MAClCC,KAA2B,KACR,KACf,WAAJtQ,IAAAA,GAC2B,OAAb,IACP,KAAmB,MACxB,GAAA,GACgB,KAAb,IAAA,GAAwC,KAAU,KAAvB,IAA3B,GADH,GAEkCxP,IAAAD,OAAA,IAAA,KAAA,KAAA,IAAH,IAF/B,GAGFggB,IAAAA,MAAaC,KAA4B,KAAzCD,KAbAF,GAAAA,OAAkC,MAClCC,KAA2B,KAC3B,KANAD,GAAAA,OAAkC,MAClCC,KAA2B,KAC3B,KANAD,GAAAA,OAAkC,MAClCC,KAA2B,KAC3B,KATAD,GAAAA,OAAkC,MAClCC,KAA2B,WAC3BC,IAAAA,KACE,IADFA,MAEEX,KAAgC,KAAjB,MAFjBW,KATAF,GAAAA,OAAkC,MAClCC,KAA2B,WAC3BC,IAAAA,KACE,IADFA,MAEEX,KAAgC,KAAjB,MAFjBW,KAnBAF,GAAAA,OAAkC,MAClCC,KAA2B,QACvBC,IAAJ,GAEIE,KAAyD,QAA9B,OACzBC,KAAyB,MAC7B,EAAE,EACAtB,KAAkD,KAA3B,OAGvBqB,KAAyD,QAA9B,OAC7B,EAAE,EACArB,KAAkD,KAA3B,OACzB,EAuDFiB,GAAAA,OAAkC,MAChCC,KAA2B,KA1EjC,EA4EF,EACA,GAC0B,QACxBC,IAAAA,GAA0B,WAAM,IAAA,MAAhCA,MACAA,IAAAA,GAA6B,WAAM,IAAA,MAAnCA,EACF,EACA,gDACiB,GAAA,IAAf,OACclB,IACQ,KACJ,KAAL3R,IAAX,OAAA,OAGsC2R,IAApC,OACeA,OACQ,KAAVsB,IAAX,UAC0B,KACxB,GACuB,KAAVA,IAAX,UACoB,0BA4Cd,UAAkC,KAAVA,IAAxB,QACQ5kB,UAAK,KAAX,KAhB6B,QAC/B,YAEyB,KAAvB,OACoB,KAAM,KAAxB,IAAA,OAKwB,KAAM,KAL9B,KAEwB,KAAM,KAAU,KAK1C6kB,WAAiB,OAVnB,QAvByB,KACX,KAAVD,IAAJ,MACE,OAGc,KAA2B,KAArCA,IAEI7F,OACY,QACH,KAFU,MAFvB6F,KACW,KADXA,GAMyB,SAElB,KACC,MAHiB,OAT7B,KAAgD,MAAA,IAAhD,GAe0B,QAC5B,IACEC,WAAiB,OADnB,EArBAF,QAAyB,MACzB,GAgEQ,KAAVC,IAAJ,QAEsB,QACpB,OACoC,KAChB,KAAlB,OAAA,KAE+B,KAC3B,GAIW,GAAf,UAEgB,MAFhB,QACO,KAIb,IArBc5kB,UAAK,KAAX,EAqBN,EACAqjB,QAA8C,KAAvB,OACzB,GAEF,OAIoB,QACpB,OAKuB,KAAb,IA1GZ,eAsG+B,KAAb,MACJ,IACV,EAPU,IACV,KApGc,MAAsB,IAJHC,IAAzC,OAmHF,EAgCgBhM,GAAAA,OAAAA,MAAP,IAEIwN,UAAP,IAEoBrgB,IAAAD,OAAA,MAAA,KAAA,KAAA,IAAH,IAFjB,EACAsgB,IAHG,EACHrgB,IAAAD,OAAA,MAAA,KAAA,KAAA,IADJ,EAMF,WACkB,KAALmN,MAAX,OACW2F,GAAAA,OAAAA,IAAX,IAA0CyN,IAA1C,IAEaC,IAAuB,KAApC,IAMQ9O,IACR,IAEY+O,MAAAA,GACJA,MAA6B,IADzBA,GAGR,IAESC,OADP,OAON,EAlBUC,IAAN,IACgCvI,MAAuB,IAA1B,IAC7BuI,IAHF,EAFOJ,IAAgC,GAAhCA,IAAP,EAF0B,EAyB9B,SACWK,GAAAA,OAAT,OAMAC,MAAe,OACJ/N,OAAAA,MAAX,IAA6CyE,IAA7C,OACWA,IAAT9H,IACUqD,IAAAA,IAAP,IACEgO,IAAyC,IAAA,IACtChD,OAAN,IACEiD,KAA0BR,IAAP,MACrBS,KAAqB,SACrB,IAAA,GACQlO,IAAN,IADF,MAEc,KAAL3F,IAAP,IAFF,GAGyClN,IAAAD,OAAA,IAAA,KAAA,KAAA,UAAAC,IAAH,IACpCghB,IAAAA,GAA+BrP,IAAkB,IACzD,IAlB6B,MACH,MACtBpW,YAAK,KAFL,EAmBJ,wBAEmC,MACR,KACH,KACI,MACV,KASiB0lB,GAdjC,IASqBhR,IAAK,KAAV,IACL,IACyB,OAClC,IAGOiR,IAAsC,MAAa,IAAA,MAAnDA,EAFM9Q,IAAX,IAA4CA,IAA5C,IAC6B6Q,IAAqB,MAAxB,IAEnB,GAAJ,IAhBP,IAkBiBE,IAEN7J,MAAT9H,IAA8B8Q,IAFH,MAI7B,OAKmC,GAAjBc,IACZ,MAFD,OAIH,IAAgCphB,IAAAD,OAAA,IAAA,KAAA,MAAA,KAChC,OAcUshB,IAAoB,KAA5B,UAAA,OAAA,UAAA,IAcwBrhB,IAAAD,OAAA,IAAA,KAAA,MAdxB,EAWwBC,IAAAD,OAAA,IAAA,KAAA,MACpB,EAJoBC,IAAAD,OAAA,IAAA,KAAA,MACpB,EAJoBC,IAAAD,OAAA,IAAA,KAAA,MACpB,EAJoBC,IAAAD,OAAA,IAAA,KAAA,MAcDuhB,KAErBC,KAAgC,KAAA,MAFO,MA9B3C,KACY,KAAV,IAM6BC,KAA0B,KAAA,MAC1ChQ,IAAT,IAEIA,IAAc,KAAA,KAFlB,EACiB,IAAA,IAAH,IADd,EANyBgQ,KAA0B,KAAA,QACvB,IACnBhQ,IAAT,IAEIA,IAAc,KAAA,KAFlB,EACiB,IAAA,IAAH,IAMhBxR,IAAAD,OAAA,IAAA,KAAA,MAAA,IAAA,KAAA,MAAoC4R,IAApC,QAwBiB,MACJ,MAzCd,EAHH,IAAiC3R,IAAAD,OAAA,IAAA,KAAA,MAAA,KACb,MACI,MA4C5B,EACA,uDACkB,SAAA,IACU,IACf8S,OAAAA,IAAX,OAE+B,MAC3B4O,KAAmB,IAAvB,GAAiC,MAAjC,OAEYN,IAED7J,MAAT9H,IAA8B8Q,IAFR,MAIxB,UACW5Q,IAAX,OAA6C,MAAZA,IAAjC,UAAA,SAI6BmD,UACX,IAAA,IACK6O,KAAc,IAEjCpK,IADF,IAEEgJ,OAFF,IAI4B,IACctgB,IAAAD,OAAA,IAAA,KAAA,KAAA,UAAAC,IAAH,IACnC2hB,QAAiB,MAGjBC,KAAkB,IAMtBC,IAAwB,IACxBC,OAAgC,SAChB,IACPxP,IAAT,IAEwB,IACU,IAChBuL,IAJlB,IAAA,EAPI,EACAkE,KAAW,QAlBFC,KAAc,MAD7B,GA+BA,gBACE,IAC2BC,IAAmC,QAC5D,OAEgBC,KAA0B,SAF1C,GAFF,GAKA,UAMA,OAE6B,KAAQ,KAE1BxS,OADT,OAEGyS,QAAoC,QAFvC,MAGiBH,KAAc,YAC7B,IACqBC,IAAmC,WACtD,OAEgBC,KAA0B,SAF1C,GAFF,MAJF,IAWiCE,IAC/BT,KAAiB,MACjBb,KAAmB,MACnBC,KAA4B/gB,IAAAD,OAAA,IAAA,KAAA,KAAA,IAAP,MAHrB,KAKe,MACC,SAClB,OAAA,OAAA,UAAA,UAAA,OAAA,MA+FUxE,UAAK,KAAX,EAPA8mB,KAEEC,IACAC,IAHQ,OAKV,KAlDAzB,KAAmB,YACdpR,IAAL,OACiB,YACjB,IACqBO,IAAK,KAAV,IACG,OACG,UACpBuS,OAAAA,GACS,GAAJ,IALP,OAQQxiB,IAAAD,IAAA,IAAA,KAAA,KAAA,IAAAC,IAEL,IAEG,IAEA,IAEA,IAEA,IAEA,IAEOyiB,UAAK/S,IAAD,KAAX,IAFA,GAFA,GAFA,GAFA,GAFA,GAFJ,OAaF,IAYA2S,KAEEC,IACAC,IAHQ,OAKV,KAhBuBG,IACnBL,KAAe,KAGbC,IACAC,YAJa,IADmB,MAAlB,MASlB,KAnEFzB,KAAmB,YAEhBpR,IADH,IAEiBiT,UAAAA,IAAqC3iB,IAAAD,IAAA,IAAA,KAAA,KAAA,IAArC4iB,UAFjB,IAuBAN,KAEEC,IACAC,IAHQ,OAKV,KAvBYpB,IAAY,MAAtB,OAC2B,QACtByB,IAAL,IAKqBF,IACnBL,KAAe,KAGbC,IACAC,YAJa,IADmB,MAAlB,MASlB,EAbE9J,KAAgB,IACZ,KAAoB,KAAJjJ,IAAJ,IAAA,MAChB,EAlBJ6S,KAEEC,IACAC,IAHQ,OAKV,IAPMhnB,UAAK,KAAX,EAxBgBulB,KAAmB,MAwH3CC,KAA4B/gB,IAAAD,OAAA,IAAA,KAAA,KAAA,IAAP,MACV,QAAJyP,IACH+R,KAAgC,KAAA,MADpC,EA9HmCa,IAC/BT,KAAiB,MACjBb,KAAmB,MACnBC,KAA4B/gB,IAAAD,OAAA,IAAA,KAAA,KAAA,IAAP,MAHrB,EAvCa,EALf,IAHMxE,UAAK,KAAX,EAiLJ,MAC+BsnB,GAAAA,IACzB,KAAQ,KAAc,MAA1BrT,GACGmS,OAAiB,MAAuB,WAAM,IAAA,MAC1CK,OAAc,SACrB,IACsBM,IACgB,MACpC,IAA4BnE,KAAsB,KACpD,EAEF,GACWmE,GAAAA,MAAT,IAEIA,IAAmC,KAAW,KAC5CA,IAD4C,MAFlD,EACwC,IADxC,EAMF,EACA,uBAaiBpQ,MAXL,KAAJ/E,OAAJ,GACwB,QACtB,OAE6B,SAF7B,SAIiC,KAA/B,UACyB,OACF,MACR,KAEN+E,OAAoB,OAAZ,MAAb,GAAqC,EAAA,EACvC,GANuC,SAAV,KAA/B,IAWc,KACV,KAAJ/E,IAAJ,MAAA,IAGE,IACoB,WAApB,IACmB,KAAjB,IAAgC,KAAhC,IACW,KAFO,WAApB,IAII,KAAsB,KAAP,MACR,KATb,OAK8D,IAOhE,KAXuB,MADrB,KANQ,IACA,EAmBZ,mBACqB2V,GAAAA,IAAD,MAAJ,IACKjC,IAAD,GAAJ,IACV,KAAe,IAAA,MACf,KAAgB,GAAJ,IAAA,MACA,MAAhB,IACqB5Q,IAAK,KAAV,IAED,IADJ,IAES,GAAJ,IAJhB,IAMF,EACA,GACa4C,GAAAA,OAAAA,MAAX,OAEA4O,OAAmB,IACPN,IAAY,SACbzR,IAAX,OACiBsS,KAAc,MACjB,WAAd,aAAA,IACwBC,IAAmC,WACzD,IAEgBC,KAA0B,SAE5C,IAMA,IAEwB,KAAQ,KAAf,MACC,MAClBG,KAEEC,IACAC,IAHQ,OAKVxB,KAA4B/gB,IAAAD,OAAA,IAAA,KAAA,KAAA,IAAP,QACrB,IATQxE,UAAK,KAAX,EANqB6mB,IACrBT,KAAiB,MACjBb,KAAmB,MACnBC,KAA4B/gB,IAAAD,OAAA,IAAA,KAAA,KAAA,IAAP,MAHrB,EAT4BghB,KAA4B/gB,IAAAD,OAAA,IAAA,KAAA,KAAA,IAAP,QAA5B,IAHfxE,YAAK,KAAX,EA8BmB2e,GAAAA,IAAwB,KAA3B,IAClBvJ,IAAIuJ,MAAD,KACL,EACA,uCACmB,MACC,MACM,YACxB,IACsB,MAAQ6I,GAAAA,IAAa,KAC9BzQ,GAAAA,IAAb,OACuBA,IAAc,KAAnC,OAEEkL,IAAc,KACS,QAAvB,OAAA,OAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,OA8BIC,KAAc,IA9BlB,KA0BIO,IAA2B,KAAK,MAArB,KACX,KAJArN,IAAI+K,IAAD,KACH,EAJA/K,IAAI+K,IAAD,KACH,EAJAuC,KAAgB,IAChB,EAJAK,KAAc,KACd,EAPAL,KAAgB,IAChBtN,IAAIC,IAAD,KACCC,IAAD,KACH8N,KAA2B,IAC3B,EAViC,KAAK,MACtC,IAAA,GACEpQ,IADF,GAEEwP,IAAU,IA2Ba,KAnC/B,OAqCgB,IACM9J,KAAyB,KAAL,MAA9B,IACoC,IAArB,IACD,IACA,IAC8E,IAAjC,IAA5C,IAC2C,IAArC,IACtBvB,IAAb,IAC0BA,IAAgB,WAAxC,IAEsBA,IAAgB,IACF,KAFlC,IAK2B,MACmB,KACT,KACnC,IAC4C,KACpB,MACF,MAED,YAd6B,GAA9BA,IAAgB,KAAxC,IAgBgB,IAElB,EAEF,6DA4KuB,GA1KDJ,IAEhBuP,IAAwB,IACxBvL,IAAmCK,IAAH,MAC5BqM,IAAJ,GAEelM,IAAyB,QADtC,OAKkB,QAChB,OAAgC,MAAhC,GACW,QAPb,IAS4B,IAEnB,IACiD,IAA5B,IAAd,IACwB,IAC1CmM,IAA2B,SAC3B,UAAgD,KAAhD,aAQ6B,cAGb3C,IACH,WAAM,IAAA,MACjB,cAEe,GAFf,UAG6B,KAAZ,GAHjB,gBAO8B,KAEC,KAApB4C,IADT,OAAA,UAAA,UAAA,OAI0C,WACxCC,GAKsC,MACC,MANvCA,KACsD,KAAhB,MAEnB,KADoB,MAEQ,KAAhB,MAJ/BA,GAUA,GAEoD,KAA3B,OAAvB,MACsC,UAElC,OACsB,OAAlB,MAAA,GADJ,GAHJ,MASA,GAI2C,QAf7C,MAFFC,KAeM,GAMN,UAgCaC,IAAX,SAKQ9nB,UAAK,KAKF+nB,WAA0B,YACnCzF,OAAN,OAC+B,IACtBgF,IAAT,IAEIA,IAAuC,QAAA,KAF3C,KAC0C,IAAA,IAAH,IADvC,GAIA,GACc,KAAZ,OAAA,UAemB,KACE,KAEJ,KAAJrT,IADT,OAE6B,MAAX,GAFlB,OAAA,OAIoC,MAAf,GAJrB,IAKgB2J,IALhB,IAMSA,IAA0C,QAAA,KANnD,MAoBO,QAtCb,YA0BY,WAAM,IAAA,SACK,GAAJ,OACP,KAAM,IAAA,MACMoK,QAAsB,OAKtCC,KAAqB,MACrB,cA/BE,WAAM,IAAA,SACK,GAAJ,OACP,KAAM,IAAA,MACYC,KAAqB,OAK3CD,KAAqB,MACrB,KA7BAE,cAAkB,OAClBrH,KAA+B,IAC/B,QAlCc,WAAM,IAAA,YAGN,KAALthB,IAAX,OAeW,WAAM,IAAA,SAAwB,MAfzC,WACE,UAEO,KAAM,IAAA,SACA,WAAM,IAAA,MACN,WAAM,IAAA,MACI,KAArB,OAC0B,KAAxB,IAEe8d,WAAY,SACf,MACV8K,QAAa,OAJf,QAAmD,MAAnD,GAMS,KAAM,IAAA,MAZnB,KAAgC,WAAM,IAAA,MAAtC,GAec,KAAhBC,IAAAA,GACEF,cAAkB,OADpBE,SAI2B,QAC3B,OAIoB,QAAA,KAJpB,IACwB/iB,MAAG,KAAA,OAAA,IAAA,IACV,QAAA,QACQ,MA8D/BgjB,QAAkB,KACpB,EAjJgC,OACA,IACd,IAwJtB,EATM,EAEAvR,OAAAA,OAAAA,MACE,IADFA,SAE6C,QAA5B,IAFjBA,KASiBwP,GAAAA,IAAwB,KAC7CA,IAAmCnL,IAAH,QACzB,IAA0BA,IAAjC,EAIQkH,GAAAA,MADR,IAEQA,OAFR,IAGQA,OAHR,OAK8B,IACrBvG,MAAT,IAAA,GACUrE,UAAAA,IAAP,IAAA,GACQ4N,IAAAA,IAAP,IADD,GADH,GAGEC,KAAoBxJ,IAAoBgJ,MAArB,MAHrB,EAIF,EACA,UAC6BzN,GAAAA,UACX,IAAA,IACK6O,KAAc,IAC/BpK,IAAJ,IAAmCgJ,IAAnC,MAC4B,IAAUqB,KAAiB,MAGnDmC,KAAY,IAMhBjC,IAAwB,OACR,IAChBC,OAAgC,MACnBxP,MAAb,IAIkB,MACW,IACtBuL,IAAP,IALQtiB,UAAK,KAAX,EARE,EACAwmB,KAAW,QAcjB,IACkBzP,GAAAA,IAAhB,IAAkCyR,KAAkBzR,IAAD,KAAnCA,IAAhB,IACF,EACA,OACkBA,GAAAA,IAAhB,IAAmCtS,IAAAD,IAAA,IAAA,KAAA,MAAA,IAAnC,GACEgkB,KAAkBzR,IAAD,KADHA,IAAhB,IAAmCtS,IAAAD,IAAA,IAAA,KAAA,MAAA,IAAnC,GAEF,EACA,GACaikB,GAAAA,IAAsB,KAAwB7J,MAAnC,OACe,KAAb,QACxB,IAAgE,IAAhE,EAAgB0J,KAAkB,KAClCZ,IAA2B,MAC7B,EACA,eAmCkB,GAhCa,KACD,KACF,KAAbhG,IAAX,IASYgH,KAAU,MACpB,IAKA,OAK8B,IACd,IACd,EANW,KAAM,IAAA,MACS,MACH,MAHzB,EAJS,WAAM,IAAA,MACC,IACd,EAXYC,KAAqC/J,IAAzB,OAD1B,IAwB2B,KAC7B,IAIc,OAjChB,OAmCM0D,IAAN,OAAmE,IACrE,EANoB,IACd,EAvBgB,IACd,EA4BR,EACmCpM,GAAAA,IACd0S,IAAyB,KAEzCA,MAAoC,SACb,IACtBC,iBAAc,IAOfD,OAAoC,SACb,IAE1B,EAJU,EACPA,IAAoC,MACb,IAC1B,EAGF,YAMK1C,GAAAA,KAAmB,IACN4C,IADhB,IAEWxR,OAAAA,IAAX,OAEkB,MACF,MAChB,OACiB,MACC,MACM,KAAxB,OAIiB,MACI,MACW,KAAoB,KAA/ByR,IACrBC,IAAgB,MACPjN,IAAT9H,IACuC,IAArB,IACc,IACb,WAAX8U,IAAP,IAAA,GACmB,KAAXA,IAAP,IADD,GAECE,IAFD,KAG6B,IAC5BlD,KAAkBthB,IAAAD,OAAA,IAAA,KAAA,QAAiB,KAAjB,MAIe,WAAXukB,IACF,KAAXA,IAAX,IAAA,IAgBmB,MAhBnB,KACmBH,IAAyB,KAC1CA,IAAoC,MACb1S,OACF,IACMoB,OACX,IAAA,IAChBoQ,IAA2B,MAC3BwB,KAA2B,MAC3B7E,KAA4B,MAChB,MACZ8E,KAAmB,OACnB1kB,IAAAD,OAAA,IAAA,KAAA,MAAA,IACgB,IACK,IACrBokB,IAAoC,MAEtCK,IAAAA,KAC8B,IACE,IACH,IACR,KACrB,IAA+D,IAC/DG,IAAwB,KAAZ,MACZ5D,KAA4B/gB,IAAAD,OAAA,IAAA,KAAA,KAAA,IAAP,MACrB,IAE8B,MACK,OAFjC,IAK4B,IACC,KACF,KACR,MAFkB,EAAA,KAAA,KAAd,MAHV,GADoB,KAFjC,IAUE+Y,IAAJ,GAKO8L,OAAAA,IAAP,IAAA,GACY,KAAV,IADF,GAEEnD,KAAmB,IACA,KACdoD,IAAP,IAIsB,IAJtB,EACaC,IAATtV,IAEqB,IAA6B,IAFlDA,EACEmR,IAAiB,GAAA,IAGvBhP,IAAkB,IAClB,IAd0B,IAChBoT,IACW,IAFnB,IAxDMxpB,UAAK,KAAX,EAJwB,IAHlBA,UAAK,KAAX,EAsBEkmB,GAAAA,OAAmB,MACnB,EAwDN,yEACe4C,GAAAA,IAAb,MA8IA,EA7IuBhD,IAAqBuD,IAAD,KACtBT,IAAyB,KACvB1S,IAEnB0S,IAAoC,YACZ,OAAH,IACRE,IAAb,OAGmBA,IACY,IACH,IACfxR,OAAAA,IAAX,OAE2BA,UACX,IAAA,OACgB,KAAjB,IAAf,OACcgM,OACG,KACJA,IAAU,KAAVA,IAAX,UACuB,QACrB,YAC+B,KAA7B,aAC+B,OACd,IAAf,OACuBA,OACC,KAAtB,IAAA,IAAA,IAIIoB,QAA2B,OAJ/B,GAMmC,QACnC,IAIkBpB,IAAhB,IACmBA,OACW,KACE,KAC9BI,KAAuB,QACvB,OAIA,OAKU,IAdZ,YAUkB,MACJ,IACV,EANU,IACV,QAVkB,MACT,IAXyBJ,IAA1C,UAFqC,SAAV,KAA7B,UAiCyB,QACzB,OACmC,QACjC,OACqB,MACnB,GACqC,KACd,SAFvB,OAOM,IA9CZ,GAiDc,KAAL3R,IAAX,OAAA,OAGqB2R,IAAhB,OACOA,OACQ,KAAL3R,IAAX,OACe,KAAb,IAAA,IAAA,IAII+S,QAA2C,KAAhB,OAJ/B,GAM0B,QAC5B,OAKkB,KAAR,IAfT,YAWgC,KAAR,MACb,IACV,QAfS,MAAsB,IAvDYpB,IAAnD,UA2EiC,QAClB,IAAf,OACUA,OACc,KACN,KAALmG,IAAX,OAAA,UAGyCnG,IAApC,OACWA,OACQ,KAAToG,IAAX,IACE,GACmB,KAAjB,IAAA,IAAA,IAII/E,QAAyB,MAE/B,EAAE,EACAtB,QAA4C,KAArB,OACzB,MACF,OAIgC,QAChC,OAKsB,KAAZ,IAvBT,YAmBoC,KAAZ,MACb,IACV,EAPU,IACV,QAjBc,MAAsB,IAJHC,IAAzC,OAgCgB,IAChBlN,IAAkB,IAEhBrC,IADF,GAEwBA,IAAY,UAAnB,GAFjB,IAKIA,IAAkC,MAACC,IAAD,MACpC,EAAE,EAAa,EA9HnB,IAOUhU,UAAK,KAAX,IA2HI,GACc,IACnB4oB,OAAoC,MAHvC,EACQ,EACc,IACnBA,IAAoC,MACzC,EAIJ,GACgBb,GAAAA,aAA0B,MAC1BG,QAAqB,OACvBE,KAAa,OACXlL,KAAgB,MAC9B,IACGmI,IAAe,OAChBG,KAAqB,MACzB,EACA,oBACuB,KAArB,OAIwC,KAkB3B5H,KAnBX,OAKkC,QAAhC,OAOuC,KAAhC,IACgC,KAGJ,KAAK,MAAlC,GAFJ,IAGiC,MAAf,MAHlB,IAIcA,IAJd,IAKOA,IAA0C,KAAA,QALjD,GAyB6C,KAvCjD,MAqBoBmK,KAA0B,MAC1BC,KAAsB,OAKXI,KAAa,OAKxBlL,KAAgB,IAC9B,IACGmI,IAAe,OAChBG,KAAqB,MAFvB,EA3BFmE,KAA6B,OAK7B,EAbJA,GAAAA,KAA6B,OA2CjC,EACA,MACsB,QACpB,IAAsC,QAAA,KAC3BzM,GAAAA,OAAgB,IACvB,KAAoB,KAAJjJ,IAAJ,IAAA,MAChB8H,IAAAA,IAAAA,GACGgJ,IAAAA,IAAD,IADFhJ,GAESuG,OAAN,IACMA,OADN,IAEEyC,UAAAA,IACCA,IAHH,IAIOtgB,IAAAD,IAAA,IAAA,KAAA,KAAA,IAAQ4iB,IAAR3iB,UAJP,IAMI8iB,IAA6B,IAAA,IANjC,EAKGnB,OAAiB,MAEvBZ,KAAqB,MACvB,EACA,WACE,IACuB,KAAboE,OAAP,IAEiBC,GAAAA,IACA,IAAA,UACPA,OAAP,UAAmD,OAAnD,GACU3M,GAAAA,OAAgB,IAChB7F,KAA6B,QAC7C,IACGgO,IAAe,OAChBG,KAAqB,MACzB,EAOA,GAEuB,KAArB,GAAA,OAAA,MAUUxlB,YAAK,KAAX,EAH0B,OAC1B,EAN8B,KACG,YACjC,IAAoD,SAApD,EAUJ,IAAwC,QAAA,KACxC8pB,GAAAA,OAAqB,MACvB,EAwbSrlB,GAAAA,IAAAD,OAAA,MAAA,KAAA,YAAA,MAAP,EAEF,MACU,SACA,QAC+E,MAAnB,MAAZ,MAAjB,MAAd,MAAb,QACF,MACF,SACS,MAC6D,MAArB,MAAnB,MAArB,SACR,MACqB,MAAb,MACH,MACc,MAAb,MACD,QAChB,EAEaulB,GAAAA,KAAS,KAAA,mBAAA,IAAA,IAApB,EAEF,GACuB,KACZ,GAAA,GAAwB,MAAV,GAAhB,GAAP,EAEF,UACqB,GAAnB,MAEA,MAAA,IACuB,KACHzY,GAAAA,IAAlB,IACkBC,IAAlB,OAEF,KAFqC,KADO,EAHnCgN,GAAAA,OAAe,OAAfA,MAAP,EAQJ,QAC8B,KAC5B,IAYiC,MACC,KAAV,QACC,MACO,MACH,MAhB7B,EACuByL,GAAAA,KACV,KAEA,KACA,UAJqB,IAMO,KAAV,MACG,KAAV,MACe,KAAV,MACA,MACP,SAMQ,WAAP1L,IAAH,MACe,KAAV,MACK,KAAV,MACU,KAAV,MACkB,KAAV,MACU,KAAV,MACQ,KAAV,MACJ,OAEpB,IAEyB,KAAkC,MAAvD,EAAA,IAAA,QAHqB,MAIK,KAAV,MACQ,KAAV,MACQ,KAAV,MAClB,EAEF,4CAUqB,OAAnB,iBACK,OAGIxN,GAAAA,IADJ,OAGIG,IAHJ,OAOID,IAPJ,OAcIE,IAdJ,OAqBIC,IArBJ,OA4BI8Y,IA5BJ,WA+BC,IAAA,IACc,KACL5Y,aADP,OAIOD,aAJP,OAOOE,aAPP,OAUOC,aAVP,OAaOC,YAbP,SAkBIxR,MAEA,OAAA,IAAD,UADH,IADS,KAAX,EArBO4gB,mBAAwB,IAA/B,EANUoJ,mBAAW,IACC7Y,IAAH,MACN,MAHb,EANU6Y,mBAAW,IACC9Y,IAAH,MACN,MAHb,EANU8Y,KAAmCE,eAAxB,IACClZ,IAAH,MACN,MAHb,EAHI,UACJ,EAJOoI,KAAoC,gBAAb,IAA9B,EAL0BmF,GAAAA,OAAe,cAAfA,YA0D1ByL,GAAAA,mBAAW,IACF,MACP,MACC,MACT,EAGWA,GAAAA,mBAAW,OACR,MACd,EAGeA,GAAAA,mBAAW,IACCC,IAAH,SACN,MACO,IAAA,KAAH,MACtB,EAGUD,GAAAA,kBAAW,OACR,MACb,EAEF,GACSA,GAAAA,KAEU,OAAf,IAA6C,IAA7C,EAAiC,KAC3B,gBAHU,OAMR,MAEa,KAEC,MAHP,EAAA,IAAA,KAAA,KAAH,MAKd,EAEF,MAOU,SACU,QACsD,MAAvB,MAAf,MAAjB,YACC,MACoC,MAAf,MAAtB,QACI,MACHG,GAAAA,MAAa,KAAhB,MACqB,KAAhB,MAC6H,MAApB,MAAtB,MAAnB,MAApB,MAAxB,MAArB,MACe,KAAhB,UACG,SACE,MACzB,EACA,IAEiB,QAAb,IAA4C,MAA5C,IAA2D,IAEjDpZ,GAAAA,MACL,OAFA,EAAA,IAAA,OAAA,OAAA,OAAA,KAAP,EAQF,GACuB,QACrB,IAQYqZ,GAAAA,IAAoB,OACzB,IAAqC,KAA5C,EARqC,SAAhB,GAAnB,MAEYzrB,MAAW,KAAA,KAAgB,SAAA,KACjCqB,UACJ,IADS,KAAX,IAFQA,UAAK,KAAX,EASN,QACyB,KACTkd,GAAAA,OAAgB,IACrBH,KAAiB,KA4CDhQ,IACP,KAAlB,IAE6B,MAF7B,EACsB,MAEVuQ,KAAY,MACJ,KAAA,KAAH,QACNtK,OACX,IAAwC,MAC9BoV,KAAa,OACvB,IACGjM,mBAAqB,IACtBkO,KAAmB,OACrB,EAEF,EACE,EAEF,KACE,QACiB,GAAjB,IACqB,KAArB,GACqB,KAArB,GAAoD,KAAU,KAA9D,GAEoBC,GAAAA,OAAgB,QAC7B,IAEc,KAAjBC,GAEiB,KAFjBA,EACiB,KAAU,KAD3BA,GAFJ,EAF0B,KAAU,KAAlC,EAFwD,KAAxB,EADS,EADZ,EAYjC,EACEtqB,MAAa,QAAA,OACf,EAxjQc,KAAA,OACG,MACb,EAyFc,KACO,MACL,KAChB+N,GACQ,MAALA,GAE6B,UAAZ,GAAd,MAA4D,MAA5D,EADoB,MAAA,IAEGM,GAAAA,IAAH,MAJ1BN,EAKF,EACiB,GACC,KAChBA,GACQ,MAALA,GAE6B,UAAZ,GAAd,MAA8D,MAA9D,EADqB,MAAA,IAEIM,GAAAA,IAAH,MAJ5BN,EAKF,EAEsBM,GAAAA,OAAH,QACnB,EAEY,KACU,KAAY,MAEhC,GAAA,QAAA,SAAA,GAA0C,IAA1C,EACyD,MAAtB,MAAnB,MACsCC,GAAAA,IAAH,MAA1B,MACwB,MAA1B,QACzB,EAKe,EACb,EAKS,GACG,MAALP,KAAmB9L,MAAQ,KAAA,IAAlC,EAKoB,KAAA,KAAA,KAKb,IACU,KAAR,MACU,KAAA,OAAA,IAAA,IACrBwT,GAAAA,IAAuB,OAAjB,MACS,MACV,KAAsB,MACTA,IAAgB,MAAT,KAAD,OAAT,MACK,MAAR,MACZ8U,IAAiB,KACjB,EAbA,EAAc,EACd,EACSC,GAAAA,IAAW,KAAA,EAAA,MAAA,MAAlB,EAyCY,EACZ,EAmFyB,MAAA,MACzB,EACkB,UACRC,GAAAA,IAAR,IACEA,MAAuB,MACrBC,MAAS,KAAb,MAESC,IAAU,KAAd,UAMA,QAAA,OAKW,MAAuB,KAACC,IAAD,KAClC9b,IAA8C,MAAQ,KAAtB,MAC3BA,IAAY,QAHpB,OAOmBH,IAAS,OAF1B,OAMoBA,IAAS,OAD3B,IAEoC,MAFpC,GAFY,GADGA,IAAS,KAF1B,MASIG,IAAqC,MACrC,EAxBK,MAAuB,KAAC+b,IAAD,KAC/B/b,IAA8C,MAAQ,KAAtB,MAC3BA,IAAY,QAAlB,IACGA,IACY,MAAQ,IAAG,MADc,MADxC,EAJS,MAAuB,KAACgc,IAAD,KA4BtC,EA4KS9b,GAAAA,IAAP,EAGa,oBAMT2b,GAAAA,IAAU,KAAd,OACK,QAAA,IAIMI,IAAT,IACK,EADyBA,IAAF,GAAA,IAA5B,EAL4BA,OAAiB,IAAA,IAO/CC,IAA2C,MAAA,UAC3C,UAAA,IAEgD,MAFhD,GAGSD,IAHT,QAAA,IAIIJ,IAAU,KAJd,GAKID,IAAS,SALb,MAO2BC,IAAU,KAAVA,GAErBD,IAAS,KAATA,OAEA,IAEAO,IAAU,MAFV,EACAA,IAAU,MAHVP,EACAO,IAAU,MAHWN,EACrBM,IAAU,MAMVjc,SAAJ,MAE0BA,WACtB,GAKQ,GAFEE,IAAS,QAHnB,UAOA,GACO,GADqCA,IAAS,QAArD,GAEWgc,gBAAX,IACqBhc,IAAS,KAA0B,GAD7Cgc,aAAX,IAEWC,UAAX,IACgBjc,IAAS,KAAoB,GADlCic,OAAX,IAEa,GAAA,MAAb,SACE,IAEgC,WAFhC,IAKkBjc,IAAS,KACL,KAPX,GAAA,MAAb,QAa6BF,IACZoc,IAAiC,oBAAA,IAOpDJ,IAA0B,KADG,MAE/BK,IAKI1X,IAEE2X,IAFgB,MALtBD,EACI1X,IAEE4X,IAFgB,MASgB,KACL,KAC3Brd,IAAW,KAAf,MAcK,GAEY,eAFZ,KAXuB,OAF1B,IAG0C,MAAA,QAH1C,GAO2B,IAA+B,IAA/B,SADzB,GAFM,GAFkB,QAF1B,IAG0C,MAAA,UAH1C,KASgC,OAC5B,OAY6B,MACA,MACN,MAAA,IAA/Bsd,GACoB,KAAoB,MAAA,KADxCA,KAEA,MAA2Cxc,SAA3C,OAE2Boc,IAAiC,KACtDH,IAAU,kBAD4C,IAOtDD,IAA0B,KADI,MAEhCrX,IAEE8X,IAFgB,MAIGC,IAAqB,KAA5B,IACd1c,IAdF,GA6D8B2c,IAAU,MAIpCC,IAAe,SAjEnB,KAiBeR,IAAiC,KAC1CH,IAAU,MACVjc,aAF0C,IAMrBgc,IAA0B,KAA7B,MACpBrX,IAA2B8X,IAAT,MAET,KAAP,GAAA,GAA8BC,IAAqB,KAClC,MAAA,IAAnBR,GAA+B,KAAoB,MAAA,KAG1CE,IAAiC,KACxCH,IAfJ,GA6Bc,kBAD2C,IAOnDD,IAA0B,KADI,MAEhCrX,IAEE8X,IAFgB,MAIUE,IAAU,SAxC1C,EAec,MACV3c,aAFwC,IAMpBgc,IAA0B,KAA7B,MACnBrX,IAA2B8X,IAAT,MACaE,IAE7B,IAAA,IAAA,IAFuC,MAIzCC,IAAe,SA0BF5c,IAAAA,GAAiB2b,IAAU,KAC9B3b,IAAAA,GAAiB0b,IAAS,KAE1C1b,IAAAA,OACC,IAAA,OAAkC,IAAlC,GAEqBwc,GAElBH,KAEA9b,GACA0b,IAAU,MAHVI,EACAJ,IAAU,MAHQO,EAClBP,IAAU,MADQO,GADxB,GASwBJ,IAAiC,KAErDpc,gBAFqD,IAOnDgc,IAA0B,KADI,MAEhCrX,IAEE8X,IAFgB,MAIUE,IAAU,MAIrB3c,IAAAA,OAAiB,IAGlCA,IAAAA,GACA,GADAA,OAEC,IAAA,OAAkC,IAAlC,GAJL,MAOmC,QAA/B,MAA8D,OAA9D,OAGkC,SAFhC,IAM+B,IAAiB,SAD9C,OAAA,OAAA,IAMW6c,IAAmB,KAER7c,OAAlB,QACE,IAEuB,UAFvB,IAOSE,IAAS,QARpB,QADF0Y,KAaA,GAtBa,GADe,UAFhC,IAiCY4D,KAEZnY,GACA4X,IAAU,MAHEO,EACZP,IAAU,MADEO,GADlB,GAOiBJ,IAAiC,KAE9Cpc,gBAF8C,IAMlBgc,IAA0B,KAA7B,MACzBrX,IAAgC8X,IAAd,MACUE,IAAU,MAItCC,IAAe,KACnB,EAKEnf,GAAAA,OAA2C,QAC7C,EAuPe,QAMb,OAC2Bqf,GAAAA,IAAwB,IAC1BC,IAAsB,IAC/C,GAAA,KACQhsB,UACJ,UAAA,IADS,KAAX,EAGaisB,IAAwB,QACrCC,MAAAA,eADqC,IAMvC,GAgBK,GAEA,EADHtY,IAAiCuY,MAAf,MADf,EAfH,IACoB,KAAe,KADnC,IAEY,KAAe,KAAwB,MAFnD,GAWIvY,IAEEwY,MAFgB,MAXtB,KAGI9Y,GACY,KAAe,KAD3BA,GAEA3C,IACc,MACZC,WAFgB,IAaxB,EAhCwB,EAkED,GAClB,KAAU,MAArB,EAGoB,GACT,KAAU,KACZ,KAAT,KAA4B5Q,YAAK,KAAX,EACtB,EAGU,cACOqsB,MAAAA,GACHC,GAAoB,KAAhC,GACQ,KAAU,KADlB,KAcI,IAKA7nB,GAAAA,IAAAD,OAAA,MAAA,KAAA,KAAsD,MAAA,IALtD,KACAC,GAAAA,IAAAD,OAAA,MAAA,KAAA,KAAoD,MAChD,KAAU,KAAU,KAD4B,MADpD,EAZC6nB,KACC1f,MAAsC,MAChC,KAAU,QAEd4f,KAHoC,OAKxCC,KACE7f,MAAsC,MAClC,KAAU,KAEZ4f,KAAAA,EAHoC,OADxCC,EAYN,EAkyB8B,EAAA,KAAA,IAYO,KACvB,KAAH,MAGI,KAAH,MAGK,KAAH,MAQW,KAAH,MAQC,KAAH,MAkBI,KAAH,MAYc,KAAH,MA2BM,KAAH,MAcnC,EAzGA,MAMiB,SACA,SACE,SACW,QAC9B,EAGE/nB,GAAAA,IAAAD,OAAA,MAAA,KAAA,MAAwD,SAAA,KAC1D,EAEEC,GAAAA,IAAAD,OAAA,MAAA,KAAA,MAAyD,SAAA,KAC3D,EACiB,GACK,KAAwB,OAC5C,IACEioB,GAAAA,IACW,KACTC,SAAiC,MAFtB,MADf,EAKF,EACyB,GACH,KAAwB,OAC5C,IACEC,GAAAA,IACW,KACTD,SAAiC,MAFd,MADvB,EAKF,EACuB,UAEN,GADf,IAEkCzJ,GAAAA,IAAhC2J,IAFF,GAIwB,KAAwB,KAExB,KAAwB,OAC9C,IAAA,GACE,IADF,GAEEC,GAAAA,IACa,KACS,KACpBH,SAAiC,SACA,cAJhB,IAFrB,EASJ,EACwB,GACR/Z,GAAAA,IAEZE,IAEI,MAAW,gBAJW,IAMR,KAAwB,KAC5C,IAAA,GACE,IADF,GAEEia,IAAyB,KAAV,MACnB,EACmC,kBAChB,GAAjB,WAEmB,GAAnB,OAGe,OAAb,SAAA,IAA4D,EAA5D,IAEC,IAAmD,MAApD,KACmB,MAAVC,KACY,MAAVA,KACY,MAAJ,GAAwB,EACjC,QAAZ,IAAqD,MACb,IAAdC,GAA6B,IACjC,IAAtB,IAC4B,IACJ,KAGb,EAAA,KAAA,KAAA,KAAA,KAHc,EAAA,IAAA,KAAA,KAAD,OAU1B,IAtBUhtB,YAAK,KAAX,IAFMA,YAAK,KAAX,EAyBkC,aAEnB,OAAb,SAAA,IAA4D,EAA5D,IAEC,IAAmD,MAApD,KAAA,GACW,SAAf,GACuB,OADvB,QAAA,KAEyC,KAAC,KAAD,KAApB,IAMvB,EAN4C,GAEzB,KAAcuP,GAAAA,IAAzBiB,IAAAA,GACW,MAAQ,MAAayc,IAAhCzc,IAFK,GAAP,EAkmBK,GACoB,QAAtB,GACHqB,GAAAA,MAAsB,KAAtBA,IADJ,EAIe,MACJ,MACKqL,GAAAA,OAAgB,IACvBH,KAAiB,KACfO,KAAY,SACT,MACdtK,IAAAA,KAAuB,IAAvBA,GAA4D,MAClDoV,KAAa,SACvB,IACGjM,mBAAqB,IACtBkO,KAAmB,OACvB,EACqB,MACR,MACKnN,GAAAA,OAAgB,IACvBH,KAAiB,KACfO,KAAY,SACb,SACI,MACdtK,IAAAA,KAAuB,IAAvBA,GAA4D,MAClDoV,KAAa,SACvB,IACGjM,mBAAqB,IACtBkO,KAAmB,OACvB,EACoB,MACP,MACKnN,GAAAA,OAAgB,IACvBH,KAAiB,KACfO,KAAY,SACb,MACVtK,IAAAA,KAAuB,IAAvBA,GAA4D,MACjDoV,KAAa,SACxB,IACGjM,mBAAqB,IACtBkO,KAAmB,OACvB,EA+2Ce,MACXjO,GAAAA,OAAuB,IAAmB,IAAA,MAExCpJ,OAFwC,IAAH,MAIvC,EAImB,UACZ,QAAA,IAA8C,KAAC,IAAA,IAAD,KAC9CwJ,GAAAA,KAGLG,KAA2B,QAAA,uBAHP,IAAtB,EAQOH,GAAAA,wBAAe,IAAtB,EAGOA,GAAAA,qBAAe,IAAtB,EAEO,GACIJ,GAAAA,OAAuB,MAC3BpJ,OAAAA,GACgB,IACF,IAAA,IAAA,IAAH,MAClB,EAEU,MACCoJ,GAAAA,OAAuB,OACrBpJ,IAAsB,KACA,MAAjB,MACR,aAAA,KAAA,KAQA,MACmBka,KAA0B,KAErD3R,MAFqD,OAA7B,MAKd,KAAL,IAAA,IAAA,IAAP,EAGWa,GAAAA,OAAuB,IACnB,KAAA,IACW,MAA1B,EAIgB,GACRA,GAAAA,OAAuB,IAAgB,MAA/C,EAGkBjP,GAAAA,SAAU,OACH,IACXggB,KAAoB,QAAkB,MAAlB,MAClC/Q,KAAuB,IAAgB,MAChC,IAAA,IAAA,IAAP,EAEgB,EAAY,EACR,MACRb,GAAAA,IACHa,OAAuB,IACF,IACjBL,MAAb,OAIOtE,OAAAA,MAAP,IACEuE,KAAyB,OACT,MACP,EAAA,IAAA,KACD,MACV9O,KAAY0O,KAAqB,mBAAA,IAAgC,IAAA,IAAtD,MAGN,WAAM,IAAA,MACXC,KAEEC,KAAwB,sBAAA,aAFhB,IAMV,IAlBQ9b,UAAK,KAAX,EAqBSoc,GAAAA,OAAuB,IACbL,IAAkB,MACpBqR,IAAqB,GAAA,GAAA,QAEtC,IAAsD,QAAA,SAAtD,IAAA,IAAA,IACwB,MAA1B,EAgBOhgB,GAAAA,KAAciP,OAAD,KAApB,EAIWb,GAAAA,OAAwB,IAC5B6R,KAA8BhS,IAAW,QAAlB,OAA9B,EAGgBjO,GAAAA,KAAciP,OAAD,OAAmB,IACtCb,KAAwB,IAAE,KAC7B,IAAA,IAAA,IAAP,EAmBOnO,GAAAA,KAAgBgP,OAAD,KAAtB,EAGgB,GACLb,GAAAA,OAAwB,IACnBH,MAAT,IAEHgS,KAA8BhS,IAAW,KAAlB,OAFpB,EACgB,SADvB,EAKgBhO,GAAAA,KAAgBgP,OAAD,OAAmB,IACxCb,KAAwB,IAAE,KAC7B,IAAA,IAAA,IAAP,EA8mCc,4BAMY,KAM1B8R,KANJ,OACgB,KAAd,OAMqB,KAAd,IAKc,QAAd,OACU,KAAf,IAAoC,KAApC,IAIsB,QAAjB,OACC,KAAa,MACN,KACX,KANgB,KACd,IAAqC,MACrCpK,gBAAiB,OAHrB,EALe,KACf,GAAA,GAEAoK,IAAsB,KAAe,KAAtB,SAJV,IAGGttB,UAAK,KAAX,EARiB,QACnB6hB,MAAAA,GAAAA,GAEcC,IAAmB,KACjCwL,IAAsB,KAAe,KAAtB,SAgBjB,IACoB,WAApB,IACmB,KAAjB,IAAgC,KAAhC,IACW,KAFO,WAApB,IAII,KAAsB,KAAP,MACR,QA5Bb,GAAA,SAwBgE,EAMlE,EAsCsB,GACa,KAC5BC,GAAAA,UAAqB,MAA1B,GACwB,KACJxJ,IAAkB,KACpCnC,iBAA4B,IACA,MACd,QAAM,IAAA,MACpB4L,IAAY,MAEhB,EACwB,WACR,KACQ,KAETD,GAAAA,OAAqB,MADlC,GAAA,OAMyC,KACvC3S,KAAgBD,IAAoB,KAArB,OAEfqE,IACerM,IAIO,KAAU,MAAW,eAJd,IAMR,KAAuB,MAE5C2L,GAAAA,OAGoB,KAERA,GAIF,IAEAmP,IAAwB,KAFxB,EACAC,IAAgC,MAL9BpP,EACF,IAEEqP,IAAS,KAFX,EACE3Y,IAAqB,MADvB,GAMW,KART,EAAA,IAAA,IAUiB,MACzBsJ,GAEI4E,gBAAiB,IAFrB5E,EACmB,QAAM,IAAA,MADzBA,EAdyB,MAD7BA,EAdwB,MAiC5B,EACmB,SACjBsP,OAUuC,KAAV,MAV7BA,EACgBhT,GAAAA,KAAgBH,IAAuB,OAAxB,KACAE,IAAoB,KAArB,KACEkI,iBAAkB,IAArB,MAMV,QAAM,IAAA,MATzB+K,EAWF,EA4/Dc,mCACZ,IAqBqB,GAAA,IArBrB,EAEW,KAAiC,KAD1C,IAEEvY,GAAAA,IAAyB,KAF3B,GAOkB,KAAPiJ,MADT,IAEuB,QAAdvH,IAFT,IAYiC,WAAPuH,MAAP,MAAH,IAlBlB,EAWuB,IACjBuP,KAAsC,OAFxC,EANc,GAAA,IAJlB,EAqBkB,MACE,uBAqZXxM,GAAAA,KAAwB,OAA/B,EAFOC,GAAAA,KAA2B,OAAlC,EAxB6B,KACF,KAET,QAAdvK,IAEIgI,GAAAA,IAAmB,MACzBS,GAAAA,KAAwC,MACrB,MACnB3H,IAAiB,OAAjBA,GACqBgH,IAAmB,OAExCZ,IAAoB,MACpBwB,KAAsB,OACtBC,mBAAkB,IAClBC,qBAAoB,IAftB,EAROnB,GAAAA,KAGS,KACA,gBAJgB,IAAhC,EAZ6B,KAChBO,GAAAA,IAA6C,KAA1B,MACU,KAAV,MAC9B+O,mBAAmB,IAJrB,EAV2B,KACE,KAAa,KACxC7P,GAAAA,IAAoB,MACThR,IAAW,KACA,KACP,KAAM,IAAA,MACrBoR,gBAAiB,IACH,KARhB,EA9G4B,KAAK,MACP,KACG,KACL,KACtB9I,GAAAA,IAAKsB,IAAsB,MAAvB,MACoB,MACxB,OACMF,IAAmB,KAAX,MAAZ,MAc+B,KACzB,IAAA,GAAyC,MAAzC,MAFJ,MAMuB,KACrB,OAmC4B,KAArB,OAKmB,KAArB,IAeuB,cAfvB,KACkB,KACrB,IAIQ,KAAM,IAAA,MACC,KACf,IAAsB,KAAM,IAAA,MAC5BsK,IAA+B,OAKV,cAdlB,OAGKjhB,UAAK,KAAX,EANU,KAAwB,OAAlC6f,IAEc,KAFdA,YAFG,KAlCgB,KAEE,kBADvB,OAKgB,KAAd,IA0BuB,iBA/BzB,SAMwB,QAApB,IACevC,KAA+B,GAAd7F,IAAL,MACX,MACc,WAC5B,IAC2B,KACA,KACzB,IAE+B,KAAV,MACJ,MAHjB,EACoB,MAGD,YAGb,KAAM,IAAA,MACO,KACvB,IAAkC,KAAM,IAAA,MACxCwJ,IACY,KADmB,OAK3B,KAAM,IAAA,kBA0BhB,UAEE,SACE,IAIqB,KACrB,IAKmB,QAXrB,MAOgC,KAAX,SAEjB,EAXgC,SAAtC,YA/DF,SAXY,KAAqB,KADjC,IAEG5L,IAAyB,KAF5B,GAImB+I,KAA4B,OAK7C,EAmFNC,KAGS,gBAHQ,IAMc,KAEjC,EAtHEA,GAAAA,KAGgB,KAAa,gBAHZ,IAMH,KAPhB,EATEA,GAAAA,KAGgB,KAAa,gBAHZ,IAMH,KAPhB,EATEA,GAAAA,KAGgB,gBAHC,IAMH,KAPhB,EAf6B,KACF,KAET,QAAdtH,IAEIgI,GAAAA,IAAmB,MACzBgP,GAAAA,sBAAgB,IAPlB,EAhBE7N,GAAAA,KAEgB,KAAU,KAFT,MAIU,KAC3B,IAOI7B,mBAAiB,IAPrB,EAC4B7D,iBAAoB,IAAvB,MAOX,KAdhB,EAFO+G,GAAAA,KAAuB,OAA9B,EAFA,EAPEC,GAAAA,KAAe,KACY,KAAa,KACxC5B,KAAO,MACPvB,gBAAiB,IACH,KALhB,EAlBAoD,GAAAA,KAAmB,KACnB,IAEwB,KACE,KAAc,MACxC3C,KAAgB,MAChB1G,kBAAkB,IACM,KAAc,MACtCnU,IAMKoa,mBAAiB,IACc,KAPpCpa,EACsBma,KAA4B,OAOlD,IAdQpe,UAAK,KAAX,EAjB2B,KACF,KAET,QAAd+W,IAEIgI,GAAAA,IAAmB,MACzBiP,GAAAA,sBAAoB,IAPtB,EAf6B,KACF,KAET,QAAdjX,IAEIgI,GAAAA,IAAmB,MACzBN,GAAAA,sBAAuB,IAPzB,EAvD0B,KAExBe,GAAAA,KAAwC,MAChB,KACL,MACU,MAAV,KACA,MACYyO,KAAuB,KAA1B,MAClBlP,IAAmB,MAC7B,OAAA,OAAA,OAAA,MAsCM/e,UACJ,QAAA,IADS,KAAX,EATqB8tB,KAIf/O,IAA6B,KAAV,mBAJe,IAOpC,EAhBiBgP,qBAAgB,IAOjC,EAhBiBC,qBAAoB,IAOrC,EAhBiBvP,qBAAuB,IA0C9C,EA1G8B,KAC9Be,GAAAA,KAAwC,MAChB,KACV1H,IAEZxC,IAAkB,KAFU,MAI9B2I,IAAoB,MACVC,qBAAe,IAQX,KAAM,IAAA,UAEL,GADf,IAAA,IAG+B,SAAd,GAHjB,IAIoB,KAJpB,IA+BqB,MACjBG,kBAAiB,IACe,KAjCpC,KAMoB,MACU,MACF,MACtBxG,IAAiB,OAArB,GAEEgH,IAAmB,OAGH,OAAhB,IAA4C,OAA5C,IACW,KAFe,MAI5B3G,KAAqB,KACHH,IAAH,MACS,MACD,MACvB2H,mBAAkB,IACDC,qBAAoB,IAYvC,IAkWE3f,MAEY,SADhB,QAAA,IADS,KAAX,EAmT2BsX,GAAAA,UACX,IAAA,IAChB,QACW,KACD,GACS,MACf,IACyC7S,IAAAD,OAAA,IAAA,KAAA,KAAA,UAAAC,IAAH,IACpCghB,IAAAA,GAA+BrP,IAAkB,IALrD,EACQ,KACS,MACf,IACyC3R,IAAAD,OAAA,MAAA,KAAA,KAAA,UAAAC,IAAH,IACpCghB,IAAAA,GAA+BrP,IAAkB,IACvD,EASgC,EACpBpW,YAAK,KAAX,EAI8B,EACxBA,YAAK,KAAX,EAsBIoqB,GAAAA,SAAoB,OACrB,IAA6B,KAApC,EAyBmB,IACd8D,GAAAA,KAIQ,QAAb,IAA4C,MAA5C,IAA2D,IAA3D,aAJiB,IAAnB,EAOwB,SACV,OAAd,IACiB,KAAd,IAIGzpB,GAAAA,IAAAD,OAAA,MAAA,KAAA,KAAgE,MACxD,KADwD,OAJnE,EACoB,KAAwB,KACzC,MACEmI,MAAqC,MAAO,KAAP,OADvC,EAOR,EACsC,KACpC,IACqB,KAArB,GACqB,KAArB,GAAoD,KAAU,KAA9D,GAEoB2d,GAAAA,OAAgB,QAC7B,IAEc,QAAjBC,GACiB,KADjBA,GAFJ,EAF0B,KAAxB,EAFgC,EADH,EAahB,MACJ4D,GAAAA,IAAS,KAAA,KACpBla,WACWma,MACaC,KAKpBC,KALiC,KAAA,qBAAA,IAAA,IAO3BtE,OAA2B,OAAA,YAAhB,IACI,MACR,MACO,UAAH,MAOnB9R,KAAqB,KAErBiW,IAAS,KAAA,SACXI,kBAAe,IACQ,KAAkB,OAAtC,GACc,KAAM,KAArB,GAAA,IAKqB,KAAM,KAL3B,EAEqB,KAAM,KAAU,KAMvC,EAE+B,MACjB,OAAd,IACiB,KAAd,IAIG9pB,GAAAA,IAAAD,OAAA,MAAA,KAAwD,MAChD,KADgD,MAJ3D,EACoB,KAAwB,KACzC,MACEmI,MAA4C,MAAO,KAAP,MAD9C,EAMR,EACsB,OACTwhB,GAAAA,IAAS,KAAA,SACpBla,KACEsa,KAAkC,cAAnB,IAGnB,EAFMJ,GAAAA,IAAY,KAACK,GAAAA,IAAD,OACd,EAE6B,GACf,SAAA,OAClB,E,KClvQA,SAAA,KAAgC,E,QCgBlBtsB,MAAQ,KAAA,MAEf,MAAA,QACA,IAAA,QACA,IAAA,QACA,IAAA,QACA,IAAA,QACA,IAAA,QACA,IAAA,QACA,IAAA,QACA,IAAA,QACA,IAAA,QACA,IAAA,QACA,IAAA,QAOA,IAAA,QAMP,IAAA,KAAiC,MAE/B,IAAA,KAAwC,MAAA,IAAMA,MAAQ,KAAA,IAARA,IAA9CuC,QAF+B,MAIjC,IAAA,KAAiC,UAAA,KAAuB,E,GCxC9C,OAAV,IAEe,MAGL,MAAV,IAEa,MAKU,KAANlG,GAAkB,EAArB,MAER,KAAqB,KAAQ,MAAdA,GAAsB,EAAzB,MACP,KAAQ,MAAI,MAAvB,GAEQ,KAAQ,UAAa,MAC5B,E,WCxBD,MAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,KAGiBkwB,KAAH,MAGWC,KAAH,MAAmB,E,W,K,I,K,M,M,K,I,Q,S,Q,I,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,K,ICDzC,IAAA,QAAA,IAAA,KAAA,KAUqCA,KAAT,KAsDzB,KAtDiD,MAAA,EAVgB,KAAA,IAAAC,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAF,IAAA,KAAA,KAAA,OAAAG,MAAA,KAAA,EAAA,OAAAC,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAD,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAxlB,MAAA,KAAA,KAAA,KAAAwlB,MAAA,KAAAxlB,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAUxC,EAAA,KAAA,IAAA0lB,GAAAA,IAAA,UAAA,MAAAC,IAAA,KAAA,IAAA3pB,IAAA,KAAA,MAAA,IAI1B,KAJ0B,IAQ1B,KAR0B,IAAA,IAAA,IAY1B,MAAA,IAGA,KAHA,IAOA,KAPA,IAZ0B,IAuB1B,MAAA,IAGA,KAHA,IAOA,KAPA,IAvB0B,IAkC1B,MAAA,IAGA,KAHA,IAOA,KAPA,IAlC0B,IA6C1B,MAAA,IAGA,KAHA,IAAA,IAAA,IA7C0B,OAsDzB,EAtDyB,MAAAC,GAAAA,IAAA,KAAAipB,GAAAA,IAAA,MAAAU,IAAA,KAAA,EAAA,MAAA,EAI1B,EAC4B,MAAA,IAA1B,EAGF,EACqB,SAAA,OACrB,EAKA,EAC4B,MAAA,IAA1B,EAGF,EACqB,SAAA,OACrB,EAKA,EACgC,MAAA,IAA9B,EAGF,EACyB,SAAA,OACzB,EAKA,EACiC,MAAA,IAA/B,EAGF,EAC0B,SAAA,OAC1B,EAKA,GAKaV,GAAAA,IAJX,GACoB,KAAA,OAAA,IAAA,IAAlB,EAGqB,KAAQ,KAAQ,KAAY,KAAjC,KAAA,OAAA,IAAA,IAAlB,E,Q,O,I,KC9DU,MAAoB,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAhBzG,MACM,OAAJ,MAAA,SAGqB9vB,MAAa,QAACywB,GAAwB,KAC5C,UAAA,MADwD,EAAA,IAArC,MAAhB,MAOlBzwB,MAAqB,KAAwB,IAAA,SAAxB,OAGrB,GAAgB8F,GAAAA,IAAAD,MAAA,MAAA,KAAA,MAAhB,EACF,IAbcL,MAAS,KAAA,WAAA,IAAA,IAAnB,E,K,I,K,ICIU,MAA0B,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAN7GrF,GAAAA,MAAmCH,MAAM,MAANA,KAAuD,KAAvDA,EAAwBA,MAAM,MAAoB,KAAA,IAArD,IAAlB,MAGXG,IAAM,OAAmB,MAAe,KAA4B,KAAT,MACvDuwB,YAAe,MAAtB,EAJ0F,MAC7E,MACX,E,Q,O,I,KCOU,MAAqC,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAR1H,GACE,GAAa5qB,GAAAA,IAAAD,MAAA,MAAA,KAAA,KAAA,SAAb,IAA2C,OAA3C,MAEO,IAGAC,GAAAA,IAAAD,OAAA,IAAA,QAAA,KAAP,IAFYL,MAAS,KAAA,WAAA,IAAA,IAAnB,EAFA,E,K,KCEU,MAAiC,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EANtH,KACE,IAGA,IAFYmrB,MAAc,KAAA,WAAA,IAAA,IAAxB,E,K,I,K,ICIU,MAA0B,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAL7GxwB,GAAAA,MAAmCH,MAAM,MAANA,KAAuD,KAAvDA,EAAwBA,MAAM,MAAoB,KAAA,IAArD,IAAlB,MAEXG,IAAM,OAAmB,MAAe,KAA4B,KAAT,MACvDywB,SAAe,KAAtB,EAH0F,GAChF,MAADC,KAAe7wB,MAAqB,MAAA,KAA3C,E,W,K,M,M,K,I,Q,S,Q,I,Q,I,K,K,I,I,Q,I,K,K,ICgCgC,KAwHjC,IAAA,MAAA,EAjIH,KACSa,KAAQ4G,QAAM,KAArB,EAQkC,EAAA,KAAA,IAalCb,GAAAA,IAAA,KAAA,MAAA,IAGA,KAHA,IAAA,IAAA,IAOA,MAAA,IAGA,KAHA,IAPA,IAcA,MAAA,IAGA,KAHA,IAdA,IAqBA,MAAA,IAGA,KAHA,IArBA,IA4BA,MAAA,IAGA,KAHA,IA5BA,IA0CA,MAAA,IAGA,KAHA,IA1CA,IAwDA,MAAA,IAGA,KAHA,IAxDA,IAsEA,MAAA,IAGA,KAHA,IAtEA,IAkFC,MAAA,IAED,KAFC,IAlFD,IAkGA,MAAA,IAWA,KAXA,IAlGA,IA+GC,MAAA,IAED,KAFC,IA/GD,IAmHC,MAAA,IAED,KAFC,IAnHD,IAuHC,MAAA,IAED,KAFC,IAvHD,IA2HC,MAAA,IAED,KAFC,IA3HD,IA+HC,MAAA,IAED,KAFC,IA/HD,IAmIC,MAAA,IAED,KAFC,IAnID,IAuIC,MAAA,IAED,KAFC,IAvID,IA2IC,MAAA,IAtCD,KAsCC,IAAA,IAAA,MA3ID,OA2GC,EAlHD,EAAqEC,GAAAA,IAAA,KAAAkpB,GAAAA,MAAA,MAChD,SAAA,KACA,SAAA,KACI,SAAA,KACC,SAAA,KAC1B,EAKA,EACa,MAAX,EAMF,EACa,KAAX,EAMF,EACa,MAAX,EAMF,EACa,MAAX,EAMF,EACqB,MACL,OAEd,IAIA,EAHS3Y,IAAP,EASJ,EACoB,MACJ,QAEd,IAIOD,IAAP,EAHE,EASJ,EACqB,MACL,OAEd,IAIOC,IAAP,EAHE,EASJ,EACoB,MACJ,QAEd,IAIA,EAHSD,IAAP,EAMJ,EAU8D,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACrD,EAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,IAAP,EAcF,EACa,MAAX,EAGF,EACa,KAAX,EAGF,EACa,MAAX,EAGF,EACa,MAAX,EAIU2Z,GAAAA,SAAY,OAAf,MACT,EAGYA,GAAAA,SAAY,OAAf,MACT,EAGgBA,GAAAA,SAAY,OAAf,MACb,EAGiBA,GAAAA,SAAY,OAAf,MACd,EAtCA,GAKaf,GAAAA,IAJX,GAC4B,KAAA,OAAA,IAAA,IAA1B,EAG6B,KAAQ,KAAQ,KAAY,KAAjC,KAAA,OAAA,IAAA,IAA1B,E,eC/IJ,IAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,KAIIgB,KAAJ,GAIa,KAAX,GAEwB,EAAJ,MAOH,KAAY,KAAzB,OAAJ,cAEQ,KAAmB,KAAH,MAFxB,EAXyBC,KAAW,KAAA,OAAA,IAAA,IAAlB,UAkBnB,EAJ4BpxB,GAAAA,IAAM,MAANA,KAA+B2D,MAAI,KAAnC3D,EACF,IAArB,E,e,K,I,M,K,I,Q,O,WCpBN,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAgI,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAyBnC,SAAA,KAA8B,MAAA,EAzBK,IAAA,KAAA,OAAA,cAAA8H,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,gB,M,K,I,Q,S,M,M,Q,I,Q,I,K,K,I,Q,I,K,K,I,Q,I,K,K,I,Q,I,K,K,I,Q,I,K,KCG1E,IAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,KAQA,IAAA,QAAA,IAAA,KAAA,KAc0D,MAANnI,GAEhD,KAFgDA,EAC1C,MAD0CA,Y,yD,S,SAAH,OAIZqxB,IAAAA,KAAAA,MAAT,KAczB,KAdyB,IAAyB,MA0BbA,IAAAA,KAAAA,MAAT,KAc5B,KAd4B,IAAyB,MA6BxB,KAkN7B,IAAA,MAAA,EA3R+D,KAAA,IAAAjB,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAF,IAAA,KAAA,KAAA,OAAAG,MAAA,KAAA,EAAA,OAAAC,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAD,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAxlB,MAAA,KAAA,KAAA,KAAAwlB,MAAA,KAAAxlB,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EA8DhEsmB,GAAAA,IAAAA,eAAQ,MAIV,EAlDI,EAAM3tB,MAAQ,KAAA,IAAd,EAEwB,EAAA,KAAA,IAAA+sB,GAAAA,IAAA,UAAA,MAAAC,IAAA,KAAA,IAczB3pB,IAAA,KAAA,KAAA,EAXD,OAAoEC,GAAAA,IAAA,KAAAsqB,GAAAA,IAAA,MAClEX,IAAA,SAGaY,IAAW,KAAb,IAA4BC,IAAmB,IAHpD,KAAA,QAAA,KAAA,MAAA,IAAN,MAOA,GAC2B,MAAd,MACZ,EAa0B,EAAA,KAAA,IAAAf,GAAAA,IAAA,UAAA,MAAAC,IAAA,KAAA,IAc5B3pB,IAAA,KAAA,KAAA,EAXD,OAA6EC,GAAAA,IAAA,KAAAyqB,GAAAA,IAAA,MAC3EC,IAAA,OAIYC,IAAc,KAAdA,EAAF,OAJJ,aAAA,MAAA,IAAN,MAOA,GAC8B,MAAjB,MACZ,EAgB2B,EAAA,KAAA,IACc5qB,GAAAA,IAAA,KAAA,MAAA,IAG5C,KAH4C,IAAA,IAAA,IA8B5C,MAAA,IACA,KADA,IA9B4C,IAsC3C,MAAA,IAED,KAFC,IAtC2C,IAqD3C,MAAA,IAED,KAFC,IArD2C,IAiE3C,MAAA,IAED,KAFC,IAjE2C,IAsI3C,MAAA,IAED,KAFC,IAtI2C,IAoJ5C,MAAA,IAIA,KAJA,IApJ4C,IA4J5C,MAAA,IAKA,KALA,IA5J4C,IAuK3C,MAAA,IAED,KAFC,IAvK2C,IAwL3C,MAAA,IAED,KAFC,IAxL2C,MAAA,MAiN3C,EAlN6B,EAAAC,GAAAA,IAAA,KAAAmqB,GAAAA,MAAA,MACCS,IAAAA,KAAW,KAAA,OAAA,IAAA,IAA/B,MAAiC,EAItCV,GAAAA,IAAAA,OAAJ,IAAIA,IAAAA,KAAiB,MAArB,GAuBWW,IAAAA,KAAU,KAAA,OAAA,IAAA,IAArB,EAnBqBX,IAAAA,KAAqC,MAAA,IAC3B,SAAA,KAA7B,GAcaW,IAAAA,KAAU,KAAA,OAAA,IAAA,IAArB,EATc,MAAA,MAEHA,IAAAA,KAAW,EAAA,KAAA,KAAA,KAAD,KAAA,UAAA,IAAA,IAArB,EAgBAX,GAAAA,IAAAA,OAAJ,IAAIA,IAAAA,KAAiB,MAArB,GAKWY,IAAAA,KAAwB,KAAA,OAAA,IAAA,IAAnC,EAJaA,IAAAA,KACTZ,IAAAA,KAA6C,MAAA,IADZ,KAAA,OAAA,IAAA,IAAnC,EAOJ,GAImBI,GAAAA,IAAe,KAAA,aAAA,IAAA,IAE5BJ,IAAAA,OAAJ,IAAIA,IAAAA,KAAiB,MAArB,GAGEa,MAAuB,IAHzB,EACEb,IAAAA,KAAsB,MAAe,KAAgB,KAA/B,OAKxB,EAIKc,GAAAA,IAAAA,OAAL,IAAKA,IAAAA,KAAyB,MAA9B,GACEC,IAAAA,OAAAA,MAAAA,KAAAA,MAA+B,IAC/B,EAGFD,IAAAA,KAAAA,IAAAA,IAAAA,KAAuC,MACrCE,IAAAA,OAAAA,MAAAA,KAAAA,MAA6B,SADQ,MAAvCF,EAIF,EAEA,WAYM,qBAAJ,oBAEO,OAEL,OAKW,KAAX,IAA0C,MAA1C,OAMS,KADT,IAES,MAFT,IAGS,KAHT,IAUkB,KAAd,OAAJ,IAGyB,OAHzB,EACqB,OAKH,MAAd,GAAJ,IAGuB,QAHvB,EACmB,SAKD,SAAV,OAAA,kBAlCH,IAiBOrsB,MAAS,KAAA,WAAA,IAAA,IAAnB,IATUA,MAAS,KAAA,WAAA,IAAA,IAAnB,IALUA,MAAS,KAAA,WAAA,IAAA,IAAnB,EAkCgB8rB,GAAAA,IAAkB,KAAA,aAAA,IAAA,IAElCP,IAAAA,OAAJ,IAAIA,IAAAA,KAAiB,KAArB,GAUEa,IAAuB,IAVzB,EACEb,IAAAA,KAAyB,0BAAA,IAY3B,EAIKc,GAAAA,IAAAA,OAAL,IAAKA,IAAAA,KAAyB,MAA9B,GACEC,IAAAA,OAAAA,MAAAA,KAAAA,MAA+B,IAC/B,EAGFD,IAAAA,KAAAA,IAAAA,IAAAA,KAAuC,MACrCE,IAAAA,OAAAA,MAAAA,KAAAA,MAA6B,SADQ,MAAvCF,EAIF,EAOSR,GAAAA,MAAmB,IAA1B,EASKQ,GAAAA,IAAAA,OAAL,IAAKA,IAAAA,KAAyB,MAA9B,GACEC,IAAAA,OAAAA,MAAAA,KAAAA,MAA+B,IACxB,IAAP,EAEKD,IAAAA,KAAoC,MAAA,IAAM,KAACG,IAAAA,OAAAA,MAAAA,KAAAA,MAAD,KAAjD,EAGF,OACE,QAAA,OAOKH,GAAAA,IAAAA,OAAL,IAAKA,IAAAA,KAAyB,MAA9B,GACEC,IAAAA,OAAAA,MAAAA,KAAAA,MAA+B,IACxB,IAAP,EAEKD,IAAAA,KAAoC,MACzCI,IAAAA,OAAAA,MAAAA,KAAAA,MAAyB,KADgB,KAEtC,KAACD,IAAAA,KAAAA,MAAD,KAFL,IAVE1wB,MAAW,MACR,MAAA,SAAA,KADQ,KAGJ,IAAP,EAYJ,KAIE,QAAA,QAAA,OAWKuwB,GAAAA,IAAAA,OAAL,IAAKA,IAAAA,KAAyB,MAA9B,GACEC,IAAAA,OAAAA,IAAAA,KAAAA,MAA+B,IACxB,IAAP,EAEKD,IAAAA,KAAoC,QACzCK,IAAoBD,IAAAA,OAAAA,IAAAA,KAAAA,MAAyB,KAA7CC,GADyC,MAGtC,KAACF,IAAAA,OAAAA,IAAAA,KAAAA,MAAD,KAHL,IAVE1wB,MAAW,MACR,MAAA,SAAA,KADQ,KAGJ,IAAP,E,EC/RuC,EAAH,I,QAmB5B,QAAY,EAV1B,GACM6wB,GAAAA,IAAU,IAAd,KAIA7wB,MAAY,QAAA,KAEZ6wB,MAAe,MACjB,IANI,E,c,I,I,I,K,M,M,K,I,Q,S,Q,I,Q,I,K,K,I,I,Q,I,K,K,ICbJ,IAAA,QAAA,IAAA,KAAA,KAAA,IAsCgC,KA4B7B,IAAA,MAAA,EAtDGC,GAAAA,IAAJ,MAGKP,IAAAA,KAAL,GACEC,IAAAA,OAAAA,MAAAA,KAAAA,MAA+B,MACpB/xB,MAAG,KAAA,OAAA,IAAA,IAAd,IAGsBA,MACtB8xB,IAAAA,KAAwC,MAAA,IADf,KAAA,OAAA,IAAA,IAAV,IAIjBjyB,IAAqB,QAAC,KAAD,KAOdwyB,MAAP,IAAgCryB,MAAG,KAAA,OAAA,IAAA,IAAnC,EAlBSqyB,IAAP,EAgBiB,KAAA,MACnB,EAQ8B,EAAA,KAAA,IAAAxrB,GAAAA,IAAA,KAAA,MAAA,IAE9B,KAF8B,IAAA,IAAA,IAI7B,MAAA,IAED,KAFC,IAJ6B,IAQ7B,MAAA,IAED,KAFC,IAR6B,IAY7B,MAAA,IAED,KAFC,IAZ6B,IAgB7B,MAAA,IAED,KAFC,IAhB6B,IAoB7B,MAAA,IAED,KAFC,IApB6B,IAwB7B,MAAA,IAED,KAFC,IAxB6B,MAAA,MA4B7B,EA5B6BC,GAAAA,IAAA,KAAA4qB,GAAAA,QAAA,MAAA,EAGrBY,GAAAA,MAAoB,IAAE,KAA7B,EAIOA,GAAAA,MAAoB,IAAU,MAAA,IAArC,EAIOA,GAAAA,MAAoB,IAAU,QAAA,KAArC,EAIOA,GAAAA,MAAoB,IAAM,QAAA,KAAjC,EAIOA,GAAAA,MAAoB,IAAM,QAAA,KAAjC,EAIOA,GAAAA,MAAoB,IAAO,KAAA,IAAlC,EAIOA,GAAAA,MAAoB,IAAS,MAAA,IAApC,E,e,K,I,M,K,I,Q,O,WC/DJ,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAzqB,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAyCnC,SAAA,KAEtC,MAAA,EA3CyE,IAAA,KAAA,OAAA,cAAA8H,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,W,I,I,K,I,K,I,K,I,K,M,M,K,I,Q,S,M,M,Q,I,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,K,ICA1E,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IASyC,KA0BtC,IA1BsC,IA0BtC,MAyBsEhI,MAAG,KAAA,OAAA,IAAA,IAAV,IAE5DA,MAAG,KAAA,OAAA,IAAA,IADqE,MAElC,IAGjB,KAAH,IAwEgB,KA8IrC,IAMH,MAHIC,MAAa,MAAC,QAAD,KADW,MAsB3B,EAlNCkxB,GAAAA,IAAAA,eAAQ,MAIV,EAEA,uBACiE1vB,MAAU,MACvE8wB,GAAAA,IAA0B,MAAA,IAD6C,KAGnE,KAAC,KAAD,KACG,MAEDvyB,MAAG,KAAA,OAAA,IAAA,IADP,KADK,MAKT,GAAA,GAAA,IAAA,GAAA,IAAiEwyB,IAAA,KAAA,MAA5C,IAAmB,IACtCV,IAAAA,KAAAA,IAAAA,IAAAA,KAA+C,MAC7CI,IAAAA,IAAAA,IAAAA,KAAAA,SAAyB,UACzBO,OAF6C,MAIjD,EAAA,EAAA,GAAA,EACF,EAZS,GAAgB,MAAV,EAEsBC,GAAAA,YAAK,MAAV,EAqLhC,yBAIkB1yB,MAAG,KAAA,OAAA,IAAA,IACnB,GAAA,GAAwBwyB,GAAxB,IAAA,GAAA,OAAwBA,IAAA,KAAA,MAAX,OAAG,IACJ,KAAA,QAGD,QAHT,MACS,MADT,EAGahwB,MAAQ,UAACmwB,OAAa,QAAA,UAAP,OAAP,MAAZ,MAEX,KAAA,EAAA,GAAA,EACA,EAGF,KAAA,MACa/rB,MAAIQ,GAAAA,IAAA,UAAA,KAAa,KAAC,KAAD,KAAd,KAAA,OAAA,IAAA,IAAd,EAAmC+hB,GAAAA,IAAK,QAAA,KAAN,GAAJ,EAtSS,EAAA,KAAA,IAKtCtiB,GAAAA,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAIA,MAAA,IAED,KAFC,IAJA,IAQA,MAAA,IAED,KAFC,IARA,MAAA,MAqBA,EAvBD,EAA2CC,GAAAA,IAAA,KAAA8rB,GAAAA,MAAA,SAC5B,MACf,EAEA,EACa,MAAX,EAGF,KAAA,MACa,MAAgB,KAAC,KAAD,KAA3B,EAA4B,GAAc,MAAehpB,GAAAA,IAApBipB,IAAJ,EAGnC,YAIE,YAGa,MAAgB,KACzB,KADyB,KAA3B,MAFW,MAAgB,KAAC,KAAD,KAA3B,EAA4B,GAAc,KAAUnuB,GAAAA,IAAfmuB,IAAJ,EAG/B,GAAc,KAAUnuB,GAAAA,IAAfmuB,IAAAA,GAA4B,MAAejpB,IAApBipB,IAA3B,EAkCc,cACpBf,GAAAA,IAAAA,KAAL,GACE,EAEkBA,IAAAA,KAA2C,MAAA,QAC5CgB,IAAW,MAAd,IAA2B,IAA3B,EACYA,IAAW,MACzB,KAAd,mBAG8B,KAACb,IAAAA,OAAAA,IAAAA,KAAAA,MAAD,KAAjB,IAAyC,KACbM,IAA2B,MAAA,IAApE,GAAA,GAAA,IAAA,GAAA,IAAsEC,IAAA,KAAA,MAAlD,IAAA,IAAgB,OAAA,KAAA,EAAA,EAAA,GAAA,EActC,EAjBI,EAEoD,KAAA,IAEHO,GAAAA,IAAc,KAAC,KAAD,KAOxC,KACjBH,GAAAA,IAA4B,KAAA,OAAA,IAAA,IAChCI,IACAC,IAHqB,SAKzB,EAZkE,GACzDC,GAAAA,IAAc,MAAe,KAAM,MAAN,KAAlC,KACE,EAEwBA,IAAc,MAAe,KAAM,MAAN,KAC3C,SAAcT,OAAnBI,IAAP,EAuDkC,EAAA,KAAA,IAMrChsB,GAAAA,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAmEA,MAAA,IAED,KAFC,IAnEA,IAsGA,MAAA,IAED,KAFC,IAtGA,MAAA,MAwIA,EA1ID,EAAmDC,GAAAA,IAAA,KAAAqsB,GAAAA,MAAA,SACnC,MAChB,EAEA,mBACOrB,GAAAA,IAAAA,KAAL,GACEC,IAA+B,IAC/B,EAG0B,MAAA,KAIjB,MAAX,OAMY,QACgB/xB,MAChB,KAAR,IAAA,IAAsB,MAAtB,IAD4B,IAAA,IAAD,KAAA,UAAA,IAAA,IAP/B,MACY,QACgBA,MACjB,MAAe,OAAC,KAAD,KADK,KAAA,OAAA,IAAA,IAYLuyB,IAAuB,KAAA,OAA1B,IAAG,MAAH,GACAa,GACnBV,IAAK,MAIT,GAA0C,KAAwB,KAAlE,OAIAH,IAAuB,KACP,MADc,EAAA,IAAA,KAAP,MAKlBc,IAAL,GACEvB,IAAAA,KAAuD,MACrDwB,IADqD,OAGxB,IAKXF,KAKdxsB,MAA4B,KAAA,IAAzB,KAAA,OAAA,IAAA,IALWwsB,EAClBG,MACM3sB,MAA4B,KAAA,IAAzB,KAAA,OAAA,IAAA,IACHA,MAA0B,KAAA,IAAvB,KAAA,OAAA,IAAA,IAFC,MAKd,GAAA,GAAA,IAAA,GAAA,OAAA,GACO4sB,IAA6B,KAAA,KAAlC,GACkBtB,IAAAA,IAAAA,IAAAA,KAAAA,SAAyB,KACzCJ,IAAAA,KAAwC,MAAA,KAE1C0B,IAA6B,QAEG,KAAA,UAA9B,OAAA,IAF2B,MAI/B,KAAA,EAAA,GAAA,EACAC,IAAuB,IACzB,EAlCI,EAlB8B,OAAA,MAAA,IAAJ,EAsD9B,oBACO3B,GAAAA,IAAAA,KAAL,GACEC,IAA+B,IAC/B,EAGqBQ,IAAuB,KAAA,KAC9C,GACE,EAI+B,MAAgB,KAAA,IAAjD,GAAA,GAAA,IAAA,GAAA,OAAA,GAEIiB,IAA6B,KAAA,UADG,OAAA,GAElC,OAKO,IACLA,IAA6B,WAAOE,IAAP,MADxB,EAJLF,IAAgC,QAAA,KAChC1B,IAAAA,KAAuC,MACrCI,IAAAA,IAAAA,IAAAA,KAAAA,MAAyB,KADY,KAM3C,KAAA,EAAA,GAAA,EAGAK,IAA0B,KAAA,KACtBA,IAAmB,KAAvB,IACET,IAAAA,KAAuD,MAAA,OACxB,IAGjC2B,IAAuB,IACzB,EAEA,KACuD,KAAA,MAAA,MAErD,GAAA,KACYhuB,MAAS,KAAA,WAAA,IAAA,IAAnB,EAKF,GAAA,MAMQ,UAAR,IAAA,GAMQ,UAAR,IAAA,GAMA,KAAA,MAKF,IAJcA,MAAS,KAAA,WAAA,IAAA,IAAnB,IANUnE,MAAK,KAAA,WAAA,IAAA,IAAf,IANUA,MAAK,KAAA,WAAA,IAAA,IAAf,IANUmE,MAAS,KAAA,WAAA,IAAA,IAAnB,E,Q,O,I,K,M,M,K,I,Q,S,M,K,M,K,M,MC5PuC,UAAH,IAKxC,MA8DD,EA5DM,GAGI,MAAeusB,GAAAA,IAA6B,MAArD,IAUad,IAAAA,OAAAA,MAAAA,KAAAA,MACE,KACAyC,IAA+B,MAAN,KACpB,KACD,KAJW,EAAA,IAAA,KAAA,IAAA,IAAD,KAAA,UAAA,IAAA,IAA3B,EATWC,IAAAA,MAAAA,MAAAA,KAAAA,MACE,KACK,KACD,KACO,MACF,MACA,MANY,EAAA,IAAA,IAAA,IAAA,KAAA,KAAA,KAAD,KAAA,UAAA,IAAA,IAAjC,EAkBG,GAIE5B,GAAAA,IAA6B,MADpC,OAGOA,IAA6B,MAHpC,IAKOA,IAA6B,MALpC,IAOOA,IAA6B,MAPpC,MAYcvsB,MACP,MAAA,SAAA,KADgB,KAAA,OAAA,IAAA,IAAnB,IAJUA,MAAS,KAAA,WAAA,IAAA,IAAnB,MAFA,MAFA,MAFA,EAgBC,GAGL,IAAA,QAAA,QAAA,MAUcA,MACP,MAAA,SAAA,KADgB,KAAA,OAAA,IAAA,IAAnB,EAJOusB,GAAAA,IAA6B,MAApC,EAFOA,GAAAA,IAA6B,MAApC,EAFOA,GAAAA,IAA6B,MAApC,E,W,K,I,K,M,M,K,I,Q,S,Q,I,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,K,OC5DsCd,IAAAA,KAAAA,MAAT,KAsBhC,KAtByD,MAAA,E,K,I,G,M,I,I,K,E,M,G,I,K,G,I,K,I,G,K,E,G,M,E,I,K,K,O,M,K,E,O,I,K,M,E,E,K,O,O,M,K,G,M,K,K,G,K,O,I,M,K,K,K,M,K,M,M,K,O,K,E,E,I,I,I,I,E,E,EAAzB,EAAA,KAAA,IAAAX,GAAAA,IAAA,UAAA,MAAAC,IAAA,KAAA,IAsBhC3pB,IAAA,KAAA,KAAA,EAjBD,KAOGC,GAAAA,IAAA,KAAA8sB,GAAAA,MAAA,MACDnD,IAAA,KACY,KAEK,SAAN,OACK,OAAN,OAJJ,EAAA,QAAA,KAAA,IAAA,IAAN,MAM2B,QAAP,OAAA,MACK,QAAP,OAAA,MACO,QAAP,OAAA,MAA2B,E,a,M,K,I,Q,S,Q,I,Q,I,K,K,I,I,Q,I,K,K,ICtBpB,KA8B1B,IAAA,MAAA,EA9B0B,EAAA,KAAA,IAgB1B5pB,GAAAA,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,MAAA,MAcA,EAxBD,KAKGC,GAAAA,IAAA,KAAAoqB,GAAAA,MAAA,MACe,KAAP,MACY,MAAP,MACO,KAAP,MACM,KAAP,MACf,EAEA,EAOc,KACK,MACA,KACD,KAJT,EAAA,IAAA,KAAA,IAAA,IAAP,E,a,M,K,I,Q,S,Q,I,Q,I,K,K,I,I,Q,I,K,K,ICjB2B,KAgC5B,IAAA,MAAA,EAhC4B,EAAA,KAAA,IAa7BrqB,GAAAA,IAAA,KAAA,MAAA,IAGA,KAHA,IAAA,IAAA,IAOA,MAAA,IAGA,KAHA,IAPA,IAcA,MAAA,IAGA,KAHA,IAdA,MAAA,MAmBC,EA3BD,KAAyCC,GAAAA,IAAA,KAAA6qB,GAAAA,MAAA,QACvC,IACoC,MAAb,MACa,MAAb,MACY,MAAb,MAExB,EAKA,EACa,MAAX,EAMF,EACa,MAAX,EAMF,EACa,MAAX,E,a,M,K,I,Q,S,Q,I,Q,I,K,K,I,I,Q,I,K,K,IClCyC,KA8C1C,IAAA,MAAA,EA9C0C,EAAA,KAAA,IAoB3C9qB,GAAAA,IAAA,KAAA,MAAA,IAGA,KAHA,IAAA,IAAA,IAOA,MAAA,IAGA,KAHA,IAPA,IAcA,MAAA,IAGA,KAHA,IAdA,IAqBA,MAAA,IAGA,KAHA,IArBA,MAAA,MA0BC,EArCD,KAA0DC,GAAAA,IAAA,KAAA8qB,GAAAA,MAAA,QALhD,MACF,MAC+B,MACF,QAGnC,IACiC,KAAhB,MACc,MAAhB,MAEE,MAD6B,MAG7B,MAD2B,MAG9C,EAKA,EACa,MAAX,EAMF,EACa,MAAX,EAMF,EACa,MAAX,EAMF,EACa,MAAX,E,YC7CJ,IAAA,KAA6C,MAAA,OAGlC,cAAX,MAU4B,IAAA,KACC,MAVP,KAUO,KAX7B,EAYC,EAXqB,GAEhB7rB,GAAAA,IAAAD,MAAA,MAAA,KAAiC,SAAA,MAKrC,EAJI,IACAvE,MAAW,MAA8B,SAA9B,MACX,E,Q,I,I,K,I,K,I,K,I,K,I,K,OCVa,MAAA,OADUD,MACV,KADC,KACD,KADC,MAOQ,IAKU+F,UAAM,KAAT,MA8BpB,IAsEO,IAoHL,EAAA,K,KAAA,K,KAAA,KAAA,K,KAAA,QAAH,MAMZ,EA/OW,KAAA,IAAA4oB,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAlqB,GAAAA,IAAAD,MAAA,IAAA,KAAAqqB,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAArqB,IAAAD,IAAA,IAAA,KAAA,KAAA,OAAAuqB,MAAA,KAAA,EAAA,OAAAtqB,IAAAD,OAAA,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAuqB,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAxlB,MAAA,KAAA,KAAA,KAAAwlB,MAAA,KAAAxlB,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EA2BW,MAAA,MACxB,EAEA,GACMgpB,GAAAA,IAAJ,GAA+BC,IAA/B,KAC0B,IAEfD,MAAsB,KAGrB,EACgB,IAJxB,EACA,EACA,EAEwB,IAC1B,EAFU,IACgB,IAC1B,EAEF,EAOF,cAK0BhuB,GAAAA,IAAOC,OAAA,IAAA,OACDb,IAAC,KAAF,KACA8uB,IAAF,GAAA,IACF,KAAD9uB,MAEnB,SAAL,IAC8C,QAAhC,MAAA,SAAA,KAAL,IAEW,QAADA,IAAmB,QAAnBA,IAA2C,OAAH,MAAA,SAAA,MAEpC,MAAA,QAAvB,GACY+uB,IAIT,SAAD/uB,IAA0D,QAA1B,MAAA,SAAA,OAErBgvB,MAEMxnB,OACV,OAADxH,IAAmB,OAAnBA,IAA0C,KAEtC,MAAR,SAAA,IAAwC,MAAxC,EAIOhF,MAAA,KAEFi0B,IAAD,IACO,MACA,KAFgB,EAAA,KAAA,KAFpB,EAAA,OATsB,EAAA,IAAA,KAAA,IAAA,KAAA,IAAA,IAAA,KAAA,KAAD,QAiBhC,GAIE3yB,MAAa,KAAK,KAAL,KASR,GAAgB,SAAhB,IAEHsE,IAAOC,OAAA,IAAA,KAA6B,KACtC,GACyC,MAAA,KAG7C,EAeA,SAEmBxE,MAAb2D,IAAJ,GAOckvB,GAAAA,IAAc,KAAA,UAAA,IAAA,IAP5B,KAUoB,KAAA,IAGlBC,UAAe,OACjB,EACoB,IAEtB,EAHY,EACU,KAAA,IACpB,EAKF,QAA2C,KAAF3yB,MAAA,KAAA,UAAA,IAAA,MAAE,IAAF,IAAA,IAAA,GAAE,IAEzCF,MAAO,MAAe,KAAA,MACjBA,MAAO,MAAZ,GACE,EAEE8yB,GAAAA,IAAJ,MAkCqB,MACrB,IAAY,KAAZ,MAIwBxuB,IAAOC,OAAA,IAAA,KAA8B,KACvD,OAAJ,IAAuD,UAAA,KAAvD,OAOM,KAAC,KAAD,KACC,SAAA,KAEKquB,IAAc,KAAA,OAAA,IAAA,QAChB,MAhBZ,EASI,SAUJC,MAAe,OAOjB,EAhCI,EAkBO,GAAQ,UAAA,IAAgCE,GAAAA,MAAa,KAAlD,EAoBd,EAEM/yB,MAAO,MAAX,GAIAA,MAAyBA,MAAO,KAAW,KAACA,MAAD,KAArB,MACtBA,MAAgBgzB,GAAAA,IAAH,MACThzB,MAAO,QAAX,IAGEA,QAAgC,MAEpC,IAVI,EAxNgB,EAAA,KAAA,IAAAwE,GAAAA,IAAAD,OAAA,MAAA,QAAA,MAAA0qB,IAAA,KAAA,OACD,IAAA,KAAA,KAAA,EADC,OAAAzqB,GAAAA,IAAAD,OAAA,IAAA,KAAAquB,GAAAA,IAAA,MAAA,KAAA1yB,MAAA,KAAA,UAAA,IAAA,MAAA,IAAA,IAAA,IAAA,GAAA,IAAAgvB,IAAA,KAAA,KAAAA,IAAA,IAAA,IAAA,KAAA,KAAA,UACd,MAAa,E,Q,I,O,I,K,ICcL,MAA2B,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EA1BhH,MACe,KAAA,SAAA,IAAgCzwB,MAAG,KAAA,OAAA,IAAA,IAAtC,IACVI,GAAAA,IAAoC,KAAH,IAAnB,MAqBL,OAAmB,MAAe,KAA4B,KAAT,MACvDo0B,OAAgB,KAAvB,EAtBoC,OAAA,OAClC,OAAuBzuB,GAAAA,IAAAD,MAAA,IAAA,KAAA,KAAvB,MACI,OAAJ,OAGI,GAAA,IAAA,OAAJ,UACM2uB,IAAU,KAAA,KAAd,OACAA,IAAU,KAAA,MAFZ,EAOoBx0B,MAAa,KAAM,KACxB,UAAA,MADoC,EAAA,IAAlB,MAAhB,MAQV8F,IAAAD,OAAA,IAAA,KAAA,MAAP,EAdgC2uB,IAAU,KAAA,KAAjB,IAHbhvB,MAAS,KAAA,WAAA,IAAA,IAAnB,EAF8C,EAQhD,IACSM,GAAAA,IAAAD,OAAA,IAAA,KAAU4uB,GAAAA,OAAkB,IAAA,OAAA,KAAoB,KAAhD,EAAA,OAAP,E,K,KCbQ,MAA4B,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAHjH,EACSC,MAAQ,KAAc,QAAA,KAAY,SAAA,WAAlCA,IAAP,E,Q,I,O,I,K,ICgBY,MAAqB,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAf1G,IACM5uB,GAAAA,IAAAD,MAAA,IAAA,KAAA,IACF1F,IADF,KAGgC,KAAH,IAAb,MAOL,OAAmB,MAAe,KAA4B,KAAT,MAVhE,IACgCiwB,MAAO,KAAe,KAAA,IAAzB,IAAb,MAAgD,OAAmB,MAAe,KAA4B,KAAT,MAW9GuE,IAAgB,KAAA,EAAA,KAAA,MAAvB,EATgC,GACpB,QACP,KAAW,QAAA,QACMD,MAAQ,KAAW,QAAA,MACP,KAAA,OAAA,IAAA,IAC9B,GAAW5uB,GAAAA,IAAAD,OAAA,MAAA,KAA8B,KAA9B,MACX,E,K,KCDQ,MAAoC,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAXzH,EACM,KAAA,OAAJ,OAAuCuqB,MAAO,KAA9C,GACIA,MAAO,KAAU,KAArB,GACI,KAAA,OAAJ,IAEExlB,MAAO,KAAU,KAAa,KAACwlB,MAAiB,KAACxlB,MAAS,MAAI,KAAd,OAAlB,KAC9B,EAAA,EACA,IACA,IAL+B,IADL,IAD8B,EAIM,EAAa,E,K,O,O,I,K,I,QCqDjE,QAAmB,EAzCjC,2BACoC,OACT,MAAzB,GAAA,GAAA,IAAA,GAAA,OAAA,GACW,KAAT,UAGsC,SAAA,MAC1B,KAAZ,OAA0C,KAA1C,OAGW,WAEK,MACM,MAEV,KAARgqB,OAEY,MAFZA,KACY,MAARA,IANI,EAAA,KAAA,KAAA,KAAA,KAAD,KASb,KAXI,KAJA,KAeJ,EAAA,GAAA,EACA,EAGF,KACE,OAIyBhvB,GAAAA,IAAOC,MAAA,MAAA,OACZrE,MAAa,KAAA,QAAbA,GAEhB5B,IAAM,KAANA,GAEsB,MAAA,KAAgB,OAAC,KAAD,KAFtCA,EACAi1B,IAAmB/uB,IAAAD,OAAA,IAAA,KAAA,KAAD,KADlBjG,GAOJ,EAbS,IAAP,EAQyC,KAAMI,MAAA,KAE9B,QAAL80B,IAA4B,SAALA,IADvB,EAAA,KADmC,EAAA,OAAA,E,K,K,I,K,I,K,I,K,I,K,MChDnD90B,MAAqB,KAAwB,IAAA,QAAxB,WAED,IAkBL,cAAH,IACO,cAAH,IAiCF,cAAH,IAkBG,cAAH,IACO,cAAH,IA4BQ,cAAH,IAkBP,cAAH,I,KAkBG,QAAS,EAjItB,GAC+B,UAAA,KACV,QAAC,KAQjB,IARgB,MAAnB,EAAoB,MACA+0B,GAAAA,MAAW,KAAXA,GAAqBC,IAAU,KAA/BD,GAAyCE,IAAU,KAAnDF,GAA6DG,IAAS,KAAtEH,GAAgFI,IAAQ,KAE1G,GACY,KAAA,KAGZ,EAMJ,EACcC,GAAAA,IAAa,QAAA,KAEzB,GACE,KAGkB,IAALC,GAAiB,IAAW,SAAA,OAAhBA,IAET,IAALA,GAAiB,IAAW,SAAA,OAAhBA,IAEVC,IAAiB,KAAM,IAAN,KAEhC,GAAA,OAEqB,IAAX,IAEW,OAAX,IAEW,OAAX,IANV,EAUQ,GAAiB,IAAjB,GACW,IAALD,GAAYE,IACbC,GAAwB,IAAxBA,EAAiB,IAAN,IAAA,OAAXA,GACM,MAALH,GAAiB,IAAN,GAAXA,GACC,MAALA,GAAiB,IAAN,GALd,EAAA,KAAA,KAAA,KAAA,KAAA,KAAP,EAWF,EACcI,GAAAA,IAAY,QAAA,KAExB,GACE,KAIW,OACM,IAALJ,GAAYE,IAAZF,GAEM,IAAN,MACC,MAALA,GAAiB,IAAN,GALd,EAAA,KAAA,KAGM,IAHN,KAAA,KAAA,KAAP,EAYF,EACcK,GAAAA,IAAY,QAAA,KAExB,GACE,KAGgB,IAALL,GAAiB,IAAW,SAAA,WAAhBA,IACVM,IAAgB,KAAM,IAAN,KAE/B,GAAA,OAEqB,IAAX,OACW,OAAX,OACA,IAIG,OACM,IAALN,GAAYE,IAAZF,GACI,IAALA,GAAiC,IAAjCA,EAAgB,IAAS,UAAA,KAAzBA,GACM,MAALA,GAAiB,IAAN,GAAXA,GACC,MAALA,GAAiB,IAAN,GALd,EAAA,KAAA,KAAA,KAAA,KAAA,KAAP,EAWF,EACcO,GAAAA,IAAqB,QAAA,KAEjC,GACE,KAIW,OACM,IAALP,GAAYE,IAAZF,GAEM,IAAN,MACC,MAALA,GAAiB,IAAN,GALd,EAAA,KAAA,KAGM,IAHN,KAAA,KAAA,KAAP,EAWF,EACcQ,GAAAA,IAAW,QAAA,KAEvB,GACE,KAIW,OACM,IAALR,GAAYE,IAAZF,GAEM,IAAN,MACC,MAALA,GAAiB,IAAN,GALd,EAAA,KAAA,KAGM,IAHN,KAAA,KAAA,KAAP,E,E,K,I,K,IC7DA,cADY,IAKK,cAAH,IA+CC,QAAH,QAoBZ,EAjEF,OAESS,IAAP,EAGF,GAC4B,MAACC,GAAAA,IAAD,KAC1B,GA6B4B,MAACC,IAAD,KAC5B,KAMF,IAHavuB,MAAe,QAAU,OAAV,MAFjB,MAAA,IAAA,KAAP,KA5BuB,OAEZ,QAAPwuB,UAEW,QAAPA,OAgBoB,MACNxuB,MAAe,QAAQ,OAAR,MACbA,MAAe,QAAQ,IAAR,MAJ/B,MAAA,IAAA,KAAA,KAAA,KAdAwuB,KACAC,OAAmC,MAAR,KAA3BA,GASsB,MACNzuB,MAAe,QAAQ,OAAR,MACNA,MAAe,QAAQ,IAAR,MAJtC,MAAA,IAAA,KAAA,KAAA,KAPFyuB,EAGsB,MACNzuB,MAAe,QAAQ,OAAR,MACNA,MAAe,QAAQ,IAAR,MAJtC,MAAA,IAAA,KAAA,KAAA,QADFyuB,GAHJD,EACI,MAAA,OALD,MAAA,IAAA,KAAA,KAAP,EAqCa,aACU,MAAC,cAAD,KAC6C,IAE7C,KAKTE,aALhB,IACoB,UAClB,GAGcA,IAAS,KACvB,GAMU,UAZZ,EAOgB,KAAA,cAPkB,GAAT,iBAAzB,IAc2B,QAAIC,IAAJ,MAA6B,SAAA,KACjD,EAAA,IAAA,KAAP,E,e,K,I,M,K,I,Q,O,WC/HF,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAxuB,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OA+CxC,SAAA,KADhB,IAGQ,EACJ,KADI,KAQL,KARK,KAeF,KAfE,KAsBX,KAtBW,KA4BT,KA5BS,KAAH,IAyCS,MAAA,EA1F0C,IAAA,KAAA,OAAA,cAAA8H,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAuDtEsuB,GAAAA,IAAiC,eAAA,SACnC,EAMEA,GAAAA,IAAgC,eAAA,SAClC,EAMEA,GAAAA,IAAmC,eAAA,SACrC,EAE+BA,GAAAA,IAAY,MAAzC,GAEEA,IAA0B,MAAA,IAF5B,EAIF,EACe,GACTA,GAAAA,IAAY,MAAhB,GAIQ,MACNC,IADF,GAGuC,MAAK,KAAc,KAAY,KAA/B,OAHvC,EACwC,MAAK,KAAc,KAAY,KAA/B,OADxC,EAKF,EARID,IAA4B,MAAA,OAC5B,E,eCpEN,IAAI,KAAJ,IAAI,MAAJ,IAAsC,MAAA,IAAtC,aAYE,IAAA,KAAA,SAA0B,KAA1B,MAZF,EAC8B,aAY7B,EADiCzwB,GAAAA,IAAOC,OAAA,MAAA,KAAb,E,K,O,O,I,K,ICmBX,EAAA,K,KAAA,OAAH,QAA4C,EA5B1D,UAKqB7F,MAA+B,KAAA,SAMGsH,GAAc,EAAlD,KAAU,MAAA,SAAcivB,OACzC,GAAA,GACEj1B,MAAa,SAAC,QAAA,IAAD,KACb,EAGFwE,GAAAA,IAAAD,MAAA,IAAA,KAAuC,KAAA,IAEzBkG,IAFyB,IAG3BC,IAH2B,KAAvC,OAKF,EAGEwqB,GAAAA,IAAuB52B,YAAD,OACxB,E,QCvCO,MAAA,QAQO,IAAA,QAAA,MAAW,E,Q,I,MClBX,MAAA,QAAA,MACd,IAAA,KAAA,KAA4B,KAAH,MAUvB,EAV0B,QAAA,IACV,KAAC,KAId,KAJa,MAAhB,EAAiB,KAAA,IACRkG,GAAAA,IAAAD,MAAA,MAAA,KAAe,KAAC4wB,GAAAA,IAAC,IAAF,KAAU,KAAC,KAAD,KAAhC,EACS51B,GAAAA,IAAP,EAED,KAAA,IACMiF,GAAAA,IAAAD,MAAA,MAAA,KAAe,KAAC4wB,GAAAA,IAAC,IAAF,KAAU,KAAC,KAAD,KAAhC,EACQC,GAAAA,IAAN,E,E,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,MCWQ,IACC,EAAH,OA2BE,MAgBJ,MACA,MACA,MAEH,KAAkB,KAAH,QA6IrB,EAhND,EAAiB,EAsBf,GACY,KAAV,EACA,EACU,GAAA,IACHC,IAAP,EAKF,QACW,KAAT,EACA,EACU,GAAA,IACHA,IAAP,EAIF,WACI,MAKN,EAJI,EACU,GAAA,IACHA,IAAP,EAMJ,MACM,OAAJ,IAGI,OAAJ,MAGO,MACA,QACA,MACA,MACIC,GAAAA,IAAX,IACAC,MAAS,MACX,IAFmB,IANLrxB,MAAS,KAAA,WAAA,IAAA,IAAnB,IAHUA,MAAS,KAAA,WAAA,IAAA,IAAnB,EAyBJ,KAAA,OAAA,OAAA,IACiB,KAAY,KAAA,IAAC,QAAD,IAAA,IAA3B,EACgBQ,GAAAA,IAAQ4wB,IAAD,KAAA,OAAA,IAAA,IACb,WAAA,MACRE,IAAOC,GAAAA,IAAUC,IAAQC,IAAaC,IAAd,KAAA,UAAA,IAAA,MAAlB,MACR,EAEF,SACa,WAAX,IACa,MADF,WAAX,IAGIlxB,GAAAA,IAAO,MAAX,GACEA,IAAU,MAAA,KAEJ,OAAR,IAcAmxB,MAAc,MAChB,EAdY,MAAR,IAKQ,SAAR,IAKI,MAAQ,KAAA,OACZ,KALS,MACQ,MAAL,IAAA,IAAA,IAAH,QACP,KAPO,MACA,QACP,EAaN,KAAA,OAAA,MACEC,QAAa,KAAD,KAiBd,EAhBaL,GAAAA,IAAI,QAAJA,IAAuCM,IAAQ,MAA/CN,EAAgBM,IAAQ,MAAxBN,EACT,IAQUO,GAAAA,IAAeP,IAAI,QAAT,MACRJ,IAAZ,IAGEttB,IAAQguB,IAAQ,MAAT,MAHT,EACE/tB,IAAO+tB,IAAQ,MAAUE,IAAnB,MAIV,EAbQR,IAAI,KAAR,IAGEztB,GAAAA,IAAO+tB,IAAQ,MAAUN,IAAI,QAAvB,MAHR,EACE1tB,GAAAA,IAAQguB,IAAQ,MAAUN,IAAI,QAAvB,MADT,EAKA,EAUN,MAEE,OAMA,GAEG,OAFH,QAAA,IAIaS,GAAAA,MAAO,KACLb,IAAb,IAIe,KADf,IAEsB3wB,IAApByxB,IAFF,GAQW,OAAJ,OAKF,MACA,MACPC,GAAAA,MAAM,KACR,EAPMb,IAAmB,KAAA,KAAV,MACT,KANO,MACA,MACPa,IAAM,KACN,EATOpuB,IAAaiuB,IAAP,MAAb,EAXKjuB,GAAAA,MAED9D,MAAS,KAAA,WAAA,IAAA,MAFF,MAAb,EA+BJ,SACS,MACA,MACHQ,GAAAA,IAAO,MAAX,GACEA,IAAU,MAAA,MAEZ0xB,MAAM,KACR,EACA,KACU,SAAR,IACEZ,GAAAA,IAAiB,MAAX,QACC,MAED,SAAR,IAC0B,MAAG,KACzBA,KADF,IACEA,IAAiB,MAAG,IAAd,MAD6B,GAAb,MAAG,KAA3B,MAGO,MAEX,EAEA,SACqB,SAAA,OAAH,MACE,KAAA,OAAH,SACH,QACd,EAQA,KAAA,MACU,IACEa,GAAAA,SAAe,KAItB,KAJiB,OASfC,IAAL,GAAqBjB,IAArB,MACM,IACJrtB,IAAgBiuB,IAAV,MAEV,EAZQK,GAAAA,IAAJ,KACI,IACJvuB,GAAAA,IAAQwuB,SAAD,MACT,IAHY,EAIND,GAAAA,IAAJ,KACI,IACJtuB,GAAAA,IAAOuuB,SAAD,MACR,IAHY,EArIW,SACf,KAAiB7xB,GAAAA,IAAzB,IAGcA,IAAQ4wB,IAAD,KAAA,OAAA,IAAA,IACrBE,IAAiBE,IAAO,KAAA,gBAAA,IAAA,MAAlB,MACN,EAJSc,MAAQ,OAAf,E,Q,I,I,K,I,K,I,K,I,K,I,K,MCnEU,MAAA,QAAA,QAIS,KAAf,MACgB,KAAf,MACc,KAAf,IACoB,KAAf,IACU,KAAf,QACsB,KAAf,IAQf,IAAA,KAAkB,KAAH,MAyBO,KAAH,IAYnB,IAAA,KAAc,KAAH,MA2DX,IAAA,KAAqB,KAAH,MAIlB,IAAA,KAAiB,KAAH,MAMd,IAAA,KAAe,KAAH,MAUZ,IAAA,KAAA,KAA6B,KAAH,MAiB1B,IAAA,KAAc,KAAH,MA6BT,EAvKQhyB,GAAAA,IAAAD,MAAA,MAAA,KAAY,IAAA,KAAA,MAAZ,KAAA,OAAA,IAAA,OACJ,SACA,MACJ,EAgFO,MAAA,QAAA,IAAP,EAGO,MAAA,QAAA,KAAP,EAEF,GACE,GAAY,OAAZ,QAAA,IACSC,GAAAA,IAAAD,MAAA,MAAA,KAAJkyB,IAAH,GAAkC,KAAUjyB,IAAAD,IAAA,IAAA,KAAA,KAAiB,KAA7D,IAGe,KACX,OAAJ,IAKKmyB,GAAAA,MAAgB,KAAvB,EAJWlyB,IAAAD,IAAA,IAAA,KAAqB,KAAA,KAArB,KAAA,OAAA,IAAA,IAAiC,KAACmyB,IAAkBC,IAAnB,MAAxC,EAJgB,KAACD,IAAkBC,IAAnB,MAAhB,EAkCN,KACK,MAAA,OAAH,IAIgB52B,MAAK,KAAA,WAAA,IAAA,QAEX,MACE,MAEZ,EARa62B,MAAc,KAAA,cAAA,IAAA,IAAzB,EA1Hc,SACPpyB,GAAAA,IAAAD,MAAA,IAAA,KAALhF,IAAJ,QAEA,OACA,SACA,SACA,OACA,WACA,OAEI,OAAJ,QAAA,IAEoB,QACZ,OAAJ,IASGs3B,IAAY,KAAnB,EARaryB,IAAAD,IAAA,IAAA,QAAqB,KAAA,KAArB,KAAA,OAAA,IAAA,IAAP,EAEF,EAAA,IACOC,IAAAD,IAAA,IAAA,KAAA,KAAA,IAAY,QAAZ,IAAA,IAAP,EATqBuyB,IAAP,EADMC,IAAP,EADWC,IAAP,EADMC,IAAP,EADYC,IAAP,EADEC,IAAP,EAFU,EAiBjBC,GAAAA,SAAD,KACR,EAMgB,KACTl3B,MAAK,MAAZ,OAAJ,IAOe,KAAG,KAAH,IACRA,MAAK,KAAU,KAAW,KAAA,KAAjC,EANoBA,MAAK,MAAR,GAAA,IACRA,MAAU,MAAA,KAAjB,EAIgB,EAAsBA,MAAK,KAAU,KAAW,QAAA,KAAjC,EAIrB,EACDm3B,GAAAA,SAAe,KAAlB,IAED7yB,IAAAD,MAAA,IAAA,KAAA,KAAA,IAAY,QAAZ,IAAA,IAAP,EAAmB,SAAA,OAAA,IAAA,KAAA,IACbwC,GAAAA,IAAI,KAAR,IACgBA,IAAI,KAAP,IA6BW,OAAxB,IACEuwB,IAAOvwB,IAAI,IAAR,MAD6B,GAAV,KAAxB,IAGF,EAjCwC,IAAD,KAAd,EAEvB,WACE,GAAY,OAAZ,QAAA,IACSvC,GAAAA,IAAAD,MAAA,MAAA,KAAHgzB,IAAJ,GAAiC,KAAU/yB,IAAAD,IAAA,IAAA,KAAA,KAAiB,KAA5D,OAWgB,KACV,OAAJ,IASJwC,GAAAA,IAAO,IACDywB,GAAAA,IAAF,GAAA,MAAJ,IACEzvB,IAAQhB,MAAD,KADT,EAGF,MAZgBvC,IAAAD,IAAA,IAAA,KAAqB,KAAA,KAArB,KAAA,OAAA,IAAA,IACF,KAEHyD,GAAAA,IAFI,KAAD,MAGN,EAhBQ,WAAV,IACW,MADD,WAAV,IAGO,QAAP,IACO,QAAP,IAAkBA,GAAAA,IAAU,MAAJ,KAAxB,IACQ,KAELA,GAAAA,IAFM,KAAD,MAGR,EALyBsvB,GAAAA,IAAU,MAAP,MAAV,EAGhBA,GAAAA,IAAIphB,GAAAA,SAAD,MACL,EAOIohB,GAAAA,IAAIphB,GAAAA,SAAD,MACL,EAoCH1R,GAAAA,IAAAD,MAAA,MAAA,KAAW,MAAC8yB,OAAe,KAAc,KAACI,IAAD,KAA9B,KAAlB,EAGe,KAAA,IACRjzB,GAAAA,IAAAD,MAAA,MAAA,KAAA,KAAA,IAAY,QAAZ,IAAA,IAAP,EACShF,GAAAA,SAAD,KACR,EAGa,KAAA,IACNiF,GAAAA,IAAAD,MAAA,MAAA,KAAA,KAAA,IAAY,QAAZ,IAAA,IAAP,EAAmB,KAAA,OAAA,IACjB8yB,GAAAA,IAAgBK,GAAAA,MAAD,KAAgB,KAAC,KAAD,KAGjC,EAFIlzB,GAAAA,IAAAD,MAAA,MAAA,KAAe,QAAA,KAAY,KAACwD,GAAAA,IAASC,IAAV,MAC7B,EAMyB,GACX,UAAA,MAAhB,EAgBY,KAAA,IACLxD,GAAAA,IAAAD,MAAA,MAAA,KAAA,KAAA,IAAY,QAAZ,IAAA,IAAP,EAAmB,UAAA,KAAA,KACF8yB,GAAAA,IAAgBK,GAAAA,IAAD,KAEP,IAiBZ,OAAX,kCAGkB,KAAC,KAAD,KAHlB,EACSC,IAAiB,KAAlB,mCAMV,EArBSC,GAAAA,IAAL,KACa,IACX7vB,SAAO,KAFT,EAIF,EAGE8vB,GAAAA,IAAqB,QAAA,KAEjBA,IAAgB,KAAYC,IAAQ,KAAxC,IACE9vB,IAAO2vB,GAAAA,IAAkBE,MAAD,KAAlB,KADR,EAGF,EAMIrzB,GAAAA,IAAAD,MAAA,MAAA,KAAe,QAAA,KAAY,KAACwzB,GAAAA,IAAaC,IAAd,MAC7B,E,iCCjKN,EAGuB,IAAA,KAAA,MAAqB,SAArB,MAEvB,EAAE,IAOF,2BACE,IAAA,KAAA,SAAqC,KAArC,MADF,gCAUC,EAnB2C,EAAA,KAAc,EAAd,SAAc,MAa/C15B,GAAAA,IAAP,KAIOgG,IAAOC,OAAA,MAAA,KAAd,E,E,K,ICXa,EAAA,K,KAAA,QAAH,QAA4C,EAb1D,GACS,OAAA,IAAA,GAAqC,KAAA,IAAU,SAAA,WAApB4wB,IAAlC,EAOF,EACcz2B,MAAqB,SAAA,KAAG,KAC1B,QAAHu5B,IAAAA,GAA6BC,GAAAA,MAAgB,KAApD,E,OCwsBA,OAAA,IAA8C,EAA9C,EAAmC,KAAnC,EA5tBa,KAutBd,QAQD,KACoB,MACpB,EAAE,IAWI,MAAA,GAAJ,IAGE9E,cAAQ,SAA+B,KAHzC,EACE70B,MAA6B,MAIhC,EAjvBc,gCAAA,KAAA,IAAA,KAAA,KAAA,IAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,KAAA,IAAA,KAAA,KAAA,MAGJG,MAAM,QACA,KAAL,IACWA,MAAM,KAANA,GAAyB,KAA5B,IAEJ,KAAA,OAAA,IAAwC,EAAxC,EAA+BoH,MACjB,MAAPqyB,MAAH,IACe,MAAPA,MAAAA,GACK,SAAPA,OAAAA,GAatBC,IAAO,MAAD,MACR,EAAE,EACS,KAAH,IAGR,GAcY,UAoBc,QACA,QACL,QACA,IAIE,EAAH,IAYI,KACxBA,IAA0BC,IAAgB,KAApC,OAIS35B,MAAM,SACS45B,GAAAA,SAAqC,IAAD,KAAP,KAAT,KAApBA,GAC9B,MAAA,IAEIC,IAAW,QAA0BF,IAA1B,MAFf,MAAA,oCASEG,IAAsB95B,MAAa,KAAA,KAAhB,MADwB,MAAvC,IAEqB,MAC3B+5B,IAAeC,IAAmB,EAAA,MAAA,QAApB,OACdD,IAGE,EAAA,IAAA,IAHY,OAKkBL,QAAM,OAAT,MAgBC,KAAH,MAUZ,KAAH,MAeI,KAAH,MAuEsB,KAAd,KACrBA,IAAoB,QAAiC,KAA/C,OAGe,MAKL,KAAH,MAmLSM,IAAD,KAErBN,IAAOM,QAAD,OAONN,IAAOM,IAAIL,IAAgB,KAArB,OAIND,IAAOM,QAAgB,KAAjB,OAmCS,KAAH,MA8DE,MAMdC,IAAoB,EAAA,IAGX,KAHW,KA6BZ,KA7BY,KAyCC,KAzCD,KAqGV,KArGU,KAuIR,KAvIQ,KA0JV,KA1JU,KAqKT,KArKS,KAuLH,KAvLG,KAAH,MA4MjB,EAzsBA,QACEj6B,MAAqB,KAAW,aAAA,MAAX,OAMX,IAAV,EAWF,MAEuBk6B,GAAkB,KAAsBJ,GAAAA,IAA7BI,IAAXA,GAA8DJ,GAAAA,IAA9DI,EACLl6B,MAAa,KAAe,KAAf,KACXi6B,GAAAA,IAAQE,GAAe,IAAhB,KAAA,UAAA,IAAA,IAIzBJ,IAA8CK,YAAgB,OAAzB,EAAA,QAAvB,OAEd,EAcF,GAEyC,WAAA,MAA9B,MAAA,IAAA,IAAP,EACA,EACO,MAAA,IAAA,IAAP,EAiBJ,EAAsB,EACtB,EAA8B,EAC9B,EAAuC,EAoCvC,KAAA,IACE,QAAmC,KAAC,KAAD,OAKrC,EALsC,KAAA,IAClCV,GAAAA,IAAOW,GAAAA,MAAmB,KAApB,OAGR,EAH4B,GACL,MAACpwB,GAAAA,OAAD,MAAnB,EAkCN,KAAA,OAAA,IAAA,KAAA,IAgEE8vB,GAAAA,IAAgC,EAhElC,KAgEkC,aAAlB,OAChB,EAhEE,QACeO,GAAAA,IAASC,GAAAA,OAAS,SAAV,OACX,SAAV,OAGqB,KACD,KAClB,GACI,OADJ,IAEIV,IAAW,SAAA,MAFf,eAUOW,IAAmB,KAAA,KAAY,KAAC,KAMpC,KANmC,MAAtC,UAPSA,IAAmB,KAAM,MAAN,KAAoB,KAAC,KAE5C,KAF2C,MAA9C,EAPW,KAAP,KA0BV,EAlBQC,GAAAA,IAAsBpxB,GAAAA,IAASC,eAAzB,IACR,EACEmxB,GAAAA,IAAqBpxB,GAAAA,IAASC,eAAxB,IACR,EAOAoxB,GAAAA,OAAY,MACZrxB,MAAO,KACT,EAGSoxB,GAAAA,IAAuBpxB,GAAAA,IAASC,aAA1B,IAAb,EAON,EAAA,KAoBIqxB,GAAAA,kBAAAA,KAK8B,IAL9BA,EAAkBA,IAAoB,KAAA,MAblB,IAAtB,EALaH,GAAAA,IAAW,KAAA,MAAC,QAAD,IAAA,IAAtB,EACEC,GAAAA,IAAOxwB,GAAAA,IAAQpF,cAAT,IACR,EAqDN,KAAA,OAAA,OAAA,IACc+1B,GAAAA,IAAH,IAEF,KAAP,EAAO,wBACDC,GAAAA,IAAUC,GAAAA,IAAd,OAIID,IAAUE,IAAd,OAUAz1B,IAAc,MACH,UAGMA,IAAO,MACtB,GACuB01B,IAA8B11B,IAAX,SACxC,MAMEA,IAAO,QAAX,IAKWA,IAAO,KAAX,IAQIA,IAAO,KAAX,IACLA,IAAc,MAAkB,KAAlB,MADT,EAPDu1B,IAAUD,IAAd,IAKAt1B,IAAyB,MAAQ,KAAR,KANpB,EAEKy1B,IAAH,IACCz1B,IAAO,KAAb,EALFA,IAAsC,KAAV,MAAhB,MAcNw1B,IAAH,IAEQR,IAASW,IAASlE,IAAMzxB,IAAhB,OACX,KAAV,IAgBiB,WAAV,OACGy1B,IAAH,IAGLz1B,IAAc,MACM,KAAT,YALN,KAbGA,IAAO,KAAPA,GAEJ41B,IAFI51B,EACJy1B,IADC,IAIK,KAASI,UAAnB,OAKe,KACP71B,IAAO,KAFR,EAAA,IAAA,IAAP,EApCyB61B,OAAvB,OACA,EAlBJ,IAMOC,IAAU,IAAjB,EALE,IALQ/5B,MAAK,KAAA,WAAA,IAAA,IAAf,EA6EN,MAC0B,KACH,MAAS,MAC9B,OA6Bai5B,GAAAA,IAAyB,MAAkB,KAAnC,OAEX,SAAV,OAOiB,KAEjB,GACgB,QACI90B,MAAS,KAAA,WAAA,IAAA,IAAhB,QACK,MACT21B,IAAP,EAGM,KAAR,GAqBE,EAlBgB,MAAmB,KAAP,IAGL,MAAX,MAQD,SAAX,QACgB,MACH,MAFb,EAYc,MACTA,IAAP,EA1CgB,MACM,KAAT,QACK,MACTA,IAAP,IA/BgB,UAGhB,IAAsC,MAAS,KAA/C,OAGgB,MACH,MACXH,GAAAA,IAAmB,MAER,KAAX,QAMF,IACgB,QACIx1B,UAChB,IADyB,KAAA,QACzB,OADyB,IAAA,IAAhB,MAIN21B,GAAAA,IAAP,EATWA,IAAP,EA+ER,KAC4B,IAAd,EAAA,QAER,IAAJ,GACuB,IAAP,MADhB,GAII,IAAJ,GACyB,IAAP,SACK,IAAP,MAFhB,GAKI,MAAgB,KAAA,OACtB,EAEA,GACoB,MAALvI,GAAoB,EAApBA,IACF,MACX,KACgB,QAClB,EAEA,MAIqB,MAAA,KAAD,IAAA,IAAH,MACI,KAACyI,GAAAA,IAAD,MACT,QAAA,OACZ,EA8BA,KACE,GACgC1B,GAAAA,IAAD,IAC7B,GAImB,KAAf,OAAJ,MAIK2B,MAAc,OAAT,KAAV,aACO,IAAc,KAAA,IAeH,MAAhB,EAKWF,GAAAA,IAAR,EAAA,IAAP,EAxBI,EAJ0B,KAAA,KAA1B,EASW5jB,GAAAA,IAAF,GAAA,IAAM+jB,IAAQ,KACf1B,GADN,IACMA,IAAW,KAAC0B,IAAU/jB,IAAX,MAAf,GADOA,IAAF,GAAA,IAAM+jB,IAAQ,KAArB,IAQAC,MAAU,QACD,MAET,EATIA,IAAaD,IAAS/jB,IAAD,IAAX,QACD,MACT,EAoBH,IAAA,MAAA,IAAP,EAjgB4C,GAA2C,WAAP,MAAe,EAoBtF,SACQ,IAAf,EAwDsC,GACxC,EAsC4B,GACjB,OAAA,IAAA,GAAsC,KAAtC,EACJwB,GACMyiB,GAAAA,IAATziB,IAAAA,GAGK,KAAJA,GAAwB,KAAxBA,IAAD,IAHAA,GADJ,EAQa,KACThZ,MAAM,MAGW07B,GAHrB,GAGqBA,IAAH,MAChBhC,IAAeiC,UAAT,OAJR,EACE37B,MAAqB,MAAS07B,IAAT,MAKJ17B,MAAa,KAACg6B,IAAD,KAAhB,MAChB,EAQO,KAAA,KAAP,EAuEmD,GACnD,EAOc,UACd,MAA0Ch0B,MAE3B41B,GAAAA,IACbC,kBAAI,IADsB,KAAA,UAAA,IAAA,IAKrBv7B,IAA2B,MAAA,SAA3BA,GAEM,KAAA,IAAO,KAAC,KAAD,KAFbA,KAAP,EAEqB,GACF,KAANo6B,GAA6BoB,GAAAA,IAAS,KAAA,IAAtCpB,EAAoB,KAA3B,EAiLmB,GACzB,EAGqB,IACrB,EAkCa,IACA16B,WAAM,KACR,IACX,GAAA,QAAA,SAAA,GACW,KAAA,KADX,UAGY,MAAA,IAIL,KAAA,IAAP,EACSuL,GAAAA,IAAI,KAAX,GACYA,IAAQ,MAAA,IACPO,IAAP4B,IAAJ,GAFKnC,IAAI,KAAX,GAYAiwB,MAAS,MACT,EAVIA,IAAU,QACD,MACT,EAuDC,gBACI,MACA,MAGa,MAAb,QACA,QACI,UAEF,MACH,MAEJ,MAAmB,KAACO,GAAAA,IAAD,QAEvB,GACE,GAAA,QAAA,SAAA,GAEiB,MAAA,KAAf,IACIlC,IAAW,KAAA,MADf,GAEKyB,MAAiB,KAAA,KAAX,GAAD,KAFV,GAGY,IAHZ,EAON,EAEM,KACK,MAEW,QAAW,IACL,MACZ,SAAd,IAIW,MAAX,EAHkB,KAAhB,EAMe,wBAAA,KACT,KAAR,MAoBiB,MAAW,QAAf,IAYMzB,OAZnB,OACkB,MAAW,IACT,MAET,MAAT,OAOS,MAAe,MAAxB,OACiBA,IAAW,KAAA,MACTA,IAAW,KAAA,MAE5B,GAAA,MAOO,GAKA,KAMKx4B,MAAK,KAAA,WAAA,IAAA,IAAf,EALQ,MAAa,YAArB,gBACqB,MAAN,KAAb,EANM,MAAa,YAArB,gBACqB,QAAN,MAAb,EARM,MAAa,MAArB,IAEe,MAAa,YAArB,IAlBoC,GAAjD,OAqCF,cAlB6B,MAAN,KAAb,cAFmB,QAAN,MAAb,kBATS,KAAb,EA3BF,EAIF,GACE26B,GAAAA,QAAW,MACXA,IAAaC,IAAH,MACV32B,OAAY,MAEZ,GAGEA,QAAc,MACdA,MAAW,MAGL,GAAD,GAAP,EA0CI,eACW,MAAW,QAAf,IAGPu0B,KAHN,IACkB,MAAW,IAClB,MAAe,MAAxB,IACIA,IAAW,KAAA,MADf,GAEQ,MAAa,SAFrB,IAF+C,KAAjD,OAUA,OAAA,WAAA,IAGgB,SAHhB,IAIuB,SAJvB,MAUaqC,GAAyC,EAAzCA,EAA2B,MAC7B,MACD,MAEV,GAMoB,MAAA,KAApB,MALa,MACa,MAAf,MACFf,IAAP,EAMM,SACE,SAAV,IAIU,SAAV,IACU,SADV,IAGiB,SAAV,IAIU,SAAV,IAAA,GACI,MADJ,EAHwB,KAAT,MAAX,MACE,UACF,MAHJ,EADa,KAAT,MASJA,GAAAA,IAAP,EAdc,KAAZ,EAiBI,QACW,MAAW,QAAf,IAAb,IACkB,MAAW,IAClB,MAAT,IAF+C,GAAjD,MAQF,EALmB,MAAM,MAAkB,MAAxB,MACbY,GAAAA,MAAa,KACNZ,IAAP,EAKG,UACU,MAAW,QAAf,IAAb,IACkB,MAAW,IAClB,MAAT,IAF+C,GAAjD,MAcU95B,MAAK,KAAA,WAAA,IAAA,IAAf,EAXsB,MACR,WAAV,IACqB,KACnB06B,GAAAA,IAAa,KAEf,EASS,GAED/C,GAAAA,SAAM,KADF,EAAA,QAAA,QAAA,KAAH,MAML,SAAR,IAGU,MAGHmC,IAAP,E,aC7rBE,SAAN,IAAA,QAAAgB,IAAiC,MAAA,IAAjCA,GAAA,EAAA,IAAA,GACM,OAAN,IAAA,QAAAC,IAAqC,MAAA,IAArCA,GAAA,IADA,EAGuB,IAAA,KAAA,QAAiBp2B,MAAjB,KACMq2B,MAGrB,MAAV,sBAK0B,SAaT,SACA,SACA,SACA,SACA,SACA,SACA,SACA,KAOjB,GAeY,MAAV,UACE,IAAA,KAAA,SAEE,KAFF,MAIA,IAAA,KAAA,SAEE,KAFF,MALF,KAZA,IAAA,KAAA,SAEE,KAFF,MAIA,IAAA,KAAA,SAEE,KAFF,MAwBF,MAKE,IAAA,KAAA,SAEE,KAFF,mBAHA,IAAA,KAAA,SAAiC,KAAjC,MAOD,EAnEyB,KAAA,IAWtBv2B,GAAAA,IAAAD,OAAA,MAAA,KAAA,KAAqB,KAArB,MACF,EAD6BD,GAAAA,IAAOC,OAAA,MAAA,KAAsBpB,GAAAA,IAAD,IAAlC,EAqBfmB,GAAAA,IAAOC,OAAA,MAAA,KAA0B,MAAvC,EAIMD,GAAAA,IAAOC,OAAA,MAAA,KAA0B,MAAvC,EASQD,GAAAA,IAAOC,OAAA,MAAA,KAAqB,MAAlC,EAIMD,GAAAA,IAAOC,OAAA,MAAA,KAAqB,MAAlC,EAWmCjG,GAAAA,IAAM,SAAZ,IAAM,MAAN,EAKzBgG,GAAAA,IAAOC,OAAA,MAAA,KAA8B,KAA3C,E,W,I,I,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,MC1FJ,MAAA,QAAA,IAAA,KAAA,KAAA,cAqBoB,IAIgB,IAAH,IACE,IAAH,IACC,IAAH,IACa,IAAH,IACE,IAAH,IACsB,EAAH,IAElD,IACqB,IAAH,MAEI,IA4Jb,EAKH,KALG,IAsBF,KAtBE,KA2CY,KA3CZ,KAuDQ,KAvDR,KAkEM,KAlEN,KA2GK,KA3GL,KA6HD,KA7HC,IAiIA,KAjIA,KAqIY,KArIZ,KA6IO,KA7IP,KAqJH,KArJG,KAkLI,KAlLJ,KAmNU,KAnNV,KAgOK,KAhOL,KAAH,IA8QTy2B,KAAL,KACEh7B,MAAY,SAAA,KAGiBi7B,IAAQ,MACRA,IAAQ,MAFjB,EAAA,KAAA,KAHtB,EAQqBA,IARrB,GAWA,IAAA,KAA8C,MAC5CA,IAAQ,MADoC,QAIhC,MAAoB,EArbhBC,GAAAA,IAAgB,OAAA,WAChC,IACcA,IAAQ,KAEtB,EAIWC,GAAAA,IAAI,GAAA,GAAA,IACGC,MAAa,IAC/BF,IAAmB,IACnBG,OAAoB,IACpBC,OAAgB,IAChB,EAQF,kBACgBH,GAAAA,IAAd,MACEn7B,MAAY,SAAA,MAWKk7B,IAAgB,KAAA,WACnC,OAIaI,IAAK,IACDD,IAAS,OAC1B,MAAA,KACEr7B,MAAa,SAAC,IAAD,KACb,SAQF,IAAA,EACEu7B,IAAW,KAGb,OACE,UAAA,cAAA,cAMO,WAEA,MAcLv7B,MAAa,YAAC,IAAD,iCAHE,GAVN,EACQ,KADR,KAUK,GAVL,KAAD,KADH,KADI1B,IAAM,KAAgB,KAAA,IAAvB,oBAFA,iBAmBZ,EAAE,EAEAk9B,IAAW,KAAA,eAMf,EApDI,EA8BmB,EAINv6B,MAAQ,KAEbw6B,GAAAA,IAAkBn9B,IAAM,KAAgB,KAAA,IAAKo9B,GAAAA,IAA3Bp9B,IAAlBm9B,MAFa,MAAf,EAwBV,IACME,GAAAA,IAAqB,KAAzB,IAUkCA,IACV,IAAH,IAIwB,OAA7C,IACEC,IAAoC,IAA1B,MAD0C,GAAT,KAA7C,IAOOD,IAAqB,KAArBA,IAAP,IArBE,EAwBJ,GACET,GAAAA,MAAW,IACXG,IAAY,IACZC,IAAQ,MACV,EAEA,KAGE,IAIcJ,GAAAA,IAAgB,KAAA,WAE9B,IACeI,IAAK,IAClBC,MAAW,SACX,QAAA,IAIEM,IAAW,KAJb,EAOJ,IAfI,EAqQFr3B,GAAAA,IAAAD,OAAA,MAAA,KAAUy2B,IAAAA,SAAV,MACAA,IAAAA,KAAwB,qBAAA,IAC1B,EAGEx2B,GAAAA,IAAAD,OAAA,MAAA,KAAUy2B,IAAAA,SAAV,MACAA,IAAAA,KAAwB,SAAA,KAC1B,EAGEx2B,GAAAA,IAAAD,OAAA,MAAA,KAAUy2B,IAAAA,SAAV,MACAA,IAAAA,KAA8B,SAAA,KAChC,EAtPc,YAIF,KADD96B,QAAAyF,IAAAA,IAAA,KAAA,UAAA,IAAA,OACC,IADD,IAAAC,IAAA,IAAA,GACC,eACGk2B,GAAAA,IACT,SAD0B,MAI5BC,IAAgBC,KAAe/5B,MAAQ,KAAA,cAA5B,IACX,EAJQg6B,GAAAA,IAAU,KAAYl1B,MAAZ,MAAhB,EAWS,YAIH,KADD7G,QAAAg8B,IAAAA,IAAA,KAAA,UAAA,IAAA,OACC,IADD,IAAAC,IAAA,IAAA,GACC,eACGL,GAAAA,IACT,SAD0B,MAI5BC,IAAgBC,KAAe/5B,MAAQ,KAAA,cAA5B,IACX,EAJQg6B,GAAAA,IAAU,KAAYl1B,MAAZ,MAAhB,EAeuB,SAAgD,KAAf7G,QAAAk8B,IAAAA,IAAA,KAAA,UAAA,IAAA,OAAe,IAAf,IAAAC,IAAA,IAAA,GAAe,eAC9DP,GAAAA,IACT,SAD0B,MAI5BH,IAA0B,KAAA,KAC1B,EAJQM,GAAAA,IAAU,KAAYl1B,MAAZ,MAAhB,EAWS+0B,GAAAA,aAAiB,MAC5BC,MAAmB95B,MAAQ,KAAA,cAAhB,IACX,EAQmB,QAIfq6B,GAAAA,IAAoB,OAAxB,IACEC,QAAiB,KADnB,GAIgBC,GAAkB,MACfV,SACjBW,IACI,KADJA,cADkC,MAApB,IAahBH,IAAyB,KAACI,IAAD,KAEzB,IAC4BzB,IAAmB,KAAC,KAAD,MAW7C0B,IAA4BD,IAAG,IAE1BA,IAAP,EA1BkCC,GAAAA,IAA4BD,GAAAA,IAAD,IACrD,GACEzB,IAAqB,KAAA,KACd0B,IAA4BD,IAAnC,IAEKT,SAAI,KAAX,EASkBK,GAAAA,IAA4B,KAACI,GAAAA,IAAD,WAClD,IACEJ,IAA2B,SAAA,MAC3BV,IAAWc,IAAIp+B,IAAM,KAAgB,KAAA,QAA3B,OAELq+B,IAA4BD,IAAnC,IACIJ,IAAoB,OAAxB,IACEC,QAAiB,KADnB,EAGF,EAMgB,GAClBK,GAAAA,MAAa,KACCN,IAA4B,KAAA,WAC1C,IACEA,IAA2B,SAAA,MAGXK,IAA2B,IAC7C,GACE1B,IAAqB,KAAA,KACd0B,IAAP,IAGEL,IAAoB,OAAxB,IACEC,MAAiB,KAErB,EAGEK,GAAAA,SAAa,KACf,EAGEA,GAAAA,SAAa,KACf,EAE2B,GACzBA,GAAAA,MAAa,KACCjB,IAA6B,KAAA,WAC3C,IACEA,IAA4B,SAAA,MAEhC,EAGEiB,GAAAA,SAAa,KACf,EAMY,cACVp4B,GAAAA,IAAAD,OAAA,IAAA,KACc,KAAZs4B,QADF,MAKArB,IAAa,MACmB,OAAhC,IACEI,IAAuB,IAAb,MAD8B,GAAV,KAAhC,IAImBJ,IAAM,KACzB,IAeF,EAdI,IAGE,IACEP,IAAmB,KAChB,KAEM,KAAOO,IAAM,IAAb,MAHU,MADe,GAApC,IASIA,IAAM,IAAZ,EAPO,GACC,EAUO,OAEfC,GAAAA,MAAkBx5B,MAAQ,KAAA,IAARA,IAAlBw5B,OADF,IAOAD,IAAa,MACTc,IAAoB,KAAxB,IAC4BA,IACH,IAAH,IAEiB,OAArC,IACEV,IAA4B,IAAlB,MADkC,GAAT,KAArC,IAKEU,IAAoB,KAAxB,IACEC,MAAiB,KAGnBf,IAAc,OAAC,KAAD,KAKhB,EAtBI,EAiBa,KAAA,IACbP,GAAAA,IAAmB,KAAC,OAAD,MADD,EAEV1d,GAAAA,IAAN,EASmB,EACvBie,GAAAA,MAAa,MACNsB,IAA8B,IAArC,GAAOA,IAA8B,IAArC,GACAtB,IAAc,OAAC,KAAD,KAKhB,EALiB,KAAA,IACbP,GAAAA,IAAmB,KAAC,OAAD,MADD,EAEV1d,GAAAA,IAAN,EASAwf,GAAAA,IAAJ,KAG0B,MAC1B/8B,MAAY,QAAA,OACd,IAJI,E,e,K,I,M,K,I,Q,O,WC/ZN,OAAA,KAA6E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAsG,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAatC,SAAA,KAAgB,MAAA,EAbsB,IAAA,KAAA,OAAA,cAAA8H,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,K,OCCpE,MAGkCpB,MAAG,KAAA,OAAA,IAAA,IAAV,IA8Cd,E,KAAA,K,KAAA,QAKR,QAAiB,EA5C/B,UAAgE,KAAfnF,QAAAyF,IAAAA,IAAA,KAAA,UAAA,IAAA,OAAe,IAAf,IAAAC,IAAA,IAAA,GAAe,IACjD,GAAb,OAKI,OAAJ,IAMWo3B,GAAAA,IAAK,GAAA,GAAA,IAGZC,IAAqB,KAAA,KAAzB,GACEA,IAAwB,KAAA,KAD1B,YAKA3+B,IAAqB,MAAC,KAAD,KASdo+B,IAAP,EAtBYx4B,MAAS,KAAA,WAAA,IAAA,IAAnB,EALUA,MAAS,KAAA,WAAA,IAAA,IAAnB,EAmBK+4B,GAAAA,IAAqB,KAACP,GAAAA,IAAD,KAA1B,GACEzxB,IAAc,KAAYlE,MAAZ,MADhB,EAIEk2B,IAAwB,KAACP,IAAD,KAJ1B,EAMF,EASAO,GAAAA,IAAqB,QAAA,OACvB,E,KClDav+B,MAAA,KAAA,IAAA,QAAA,S,KAAA,QA8BZ,EAnBc,OACA,MAAb,IAKI,OAAJ,IAKCw+B,GAAAA,IAAAA,KAAsCx4B,MAAe,KAAA,IAAlB,OAC7B,KAAA,KACC,QAAC,KAAD,KAMV,IAZcR,MAAS,KAAA,WAAA,IAAA,IAAnB,IALUA,MAAS,KAAA,WAAA,IAAA,IAAnB,EAWO,KAAA,MAEL0I,QAAW,OAAD,MAFA,EAGF2Q,GAAAA,IAAN,E,Q,I,MCjBR,MAAA,KAAA,SAAiC,KAAjC,MACA,IAAA,KAAA,SAA2B,KAA3B,MAEA,IAAA,KAAA,SAAwB,KAAxB,MACA,IAAA,KAAA,SAA0B,KAA1B,MACA,IAAA,KAAA,SAA0B,KAA1B,MACA,IAAA,KAAA,SAA2B,KAA3B,MACA,IAAA,KAAA,SAA4B,KAA5B,MACA,IAAA,KAAA,SAAuB,KAAvB,MACA,IAAA,KAAA,SAAuB,KAAvB,MACA,IAAA,KAAA,SAA6B,KAA7B,MACA,IAAA,KAAA,SAAsB,KAAtB,MACA,IAAA,KAAA,SAAkC,KAAlC,MACA,IAAA,KAAA,SAEE,KAFF,MAIA,IAAA,KAAA,SAEE,KAFF,MAGE,EApBqCjZ,GAAAA,IAAOC,OAAA,MAAA,KAAb,EACAD,GAAAA,IAAOC,OAAA,MAAA,KAAb,EAEGD,GAAAA,IAAOC,OAAA,MAAA,KAAoB,MAAjC,EACQD,GAAAA,IAAOC,OAAA,MAAA,KAAoB,MAAjC,EACMD,GAAAA,IAAOC,OAAA,MAAA,KAAoB,MAAjC,EACOD,GAAAA,IAAOC,OAAA,MAAA,KAAoB,MAAjC,EACOD,GAAAA,IAAOC,OAAA,MAAA,KAAb,EACCD,GAAAA,IAAOC,OAAA,MAAA,KAAb,EACMD,GAAAA,IAAOC,OAAA,MAAA,KAAb,EACYD,GAAAA,IAAOC,OAAA,MAAA,KAAb,EACDD,GAAAA,IAAOC,OAAA,MAAA,KAAe,MAA5B,EACkBD,GAAAA,IAAOC,OAAA,MAAA,KAAe,MAA5B,EAG1BD,GAAAA,IAAOC,OAAA,MAAA,KAA0C,MAAvD,EAIMD,GAAAA,IAAOC,OAAA,MAAA,KAA0C,MAAvD,E,aC7BW,MAAA,QAAA,IAAA,KAAA,KAAA,IAAA,QAAA,IAAA,KAAA,KAAA,IAAA,QAAA,IAAA,KAAA,KAAA,IAAA,QAAA,IAAA,KAAA,KAAA,IAAA,QAAA,IAAA,KAAA,KAAA,IAAA,QAAA,IAAA,KAAA,KAAA,IAAA,QAAA,IAAA,KAAA,QAuCT,IAAA,KAAA,MAAJ,GACE,IAAA,KAAgC,MAAA,IADlC,Q,6C,SAW4B,MACP,MAFY,UAClB,OAAA,IADkB,MAEzB,GAAA,IAFyB,MAAH,IASP,QAUiB,SAAA,QAEC,IAAA,KAAA,KAAA,MAAV,KAAA,KAAA,IAaD,IAAA,KAAA,KAAAsB,IAAA,KAAA,KAAA,MAAV,KAuDjB,KAtDY,MACA,MACU,MACT,MACH,QAEQ,SAsjBP,MAAkB,EAhpBnB,KAAA,IAAA6oB,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAF,IAAA,KAAA,KAAA,OAAAG,MAAA,KAAA,EAAA,OAAAC,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAD,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAxlB,MAAA,KAAA,KAAA,KAAAwlB,MAAA,KAAAxlB,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAsEkB,EAAA,KAAA,IAAA0lB,GAAAA,IAAA,UAAA,MAAAC,IAAA,KAAA,IAAA3pB,IAAA,KAAA,KAAA,EAAA,OAAAC,GAAAA,IAAA,KAAA43B,GAAAA,IAAA,MAAAjO,IAAA,KAAA,EAAA,MAAA,EAaX,EAAA,KAAA,IAAAF,GAAAA,IAAA,UAAA,MAAAC,IAAA,KAAA,IA4DjB3pB,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAoBA,MAAA,IAED,KAFC,IAMD,KANC,IApBA,IAqDA,MAAA,IAED,KAFC,IArDA,IAkEA,MAAA,IAED,KAFC,IAlEA,IAoHD,MAAA,IACA,KADA,IApHC,IAiID,MAAA,IACA,KADA,IAjIC,IA+IA,MAAA,IAED,KAFC,IA/IA,IA2KA,MAAA,IAED,KAFC,IA3KA,IAuLA,MAAA,IAED,KAFC,IAvLA,IA6MA,MAAA,IAED,KAFC,IA7MA,IA+ND,MAAA,IACA,KADA,IA/NC,IA8PA,MAAA,IAED,KAFC,IA9PA,IAuQA,MAAA,IAED,KAFC,IAvQA,IAyTA,MAAA,IAED,KAFC,IAzTA,IA8TA,MAAA,IAED,KAFC,IA9TA,IAuUD,MAAA,IAGA,KAHA,IAvUC,IA+UD,MAAA,IAGA,KAHA,IA/UC,IAqVA,MAAA,IAED,KAFC,IArVA,IAuWA,MAAA,IAED,KAFC,IAvWA,IA+bA,MAAA,IAED,KAFC,IA/bA,IAodA,MAAA,IAED,KAFC,IApdA,IA+dA,MAAA,IAED,KAFC,IA/dA,IAofD,MAAA,IACA,KADA,IApfC,IA8fA,MAAA,IArgBD,KAqgBC,IAAA,IAAA,IA9fA,OALA,EAED,GAAcC,GAAAA,IAAA,KAAA63B,GAAAA,MAAA,MACZnN,IAAA,KAAA,OAjDI,SACA,SACU,SACT,SACH,MAYM,MAEJ,MACC,QAEQ,MAEyBkN,IAAyB,KAAA,OAAA,IAAA,IAA3D,QAKE,MAEC,QAGF,MACC,UAEC,MAEL,MACK,UACI,MACK,MACA34B,IAAAD,OAAA,IAAA,KAAA,MAQL,MAAA,IAAG,EAGhB,GACwB,MAAP,QACK,QACT,MACX,OAEe,MAEK,QACN,MACE,EAAH,UACC,MACI,MACR,MACuB,EAAH,MAEN,MAAA,IACV,MAChB,EAEA,GACa,MAAX,EAGF,MACU,MAAR,MAMK84B,GAAAA,IAAuC,KAAA,KAA5C,KACEr9B,MAAY,KACT,MAAA,aAAA,MADS,OAGZ,EAIFwE,IAAAD,OAAA,MAAA,KACE84B,IAAwB,IAAxBA,OAA0CC,IAA1CD,EACC,MAAA,aAAA,MAFH,UAKA,IACE74B,IAAAD,IAAA,IAAA,QACE,IAAA,KAAA,UADF,MAKgB,MACpB,IAzBcxE,MAAK,KAAA,WAAA,IAAA,IAAf,EA2BJ,GACU,UAAR,IAAqC,UAArC,IAMQ,QAAR,IAGW,MAAX,EAFE,IANUA,MAEoC,MAAzC,MAAA,aAAA,UADH,IADa,KAAA,OAAA,IAAA,IAAf,EAWJ,OAC6B,MAC3B,WAAA,OAIQ,QAAR,OAIQ,QAAR,OAIA,IAAA,WAAA,WAAA,QAAA,MA4BwB,MA5BxB,KAoBI,EACyBiD,MAAU,MAAK,MAAL,KAAb,MACtB,KAAE,IACoB,MACtB,KAde,MAAX,OAAJ,IAA8C,MAA9C,GAEe,MAAR,MAGKjD,MAAwC,MAAjC,MAAA,SAAA,KAAF,KAAA,OAAA,IAAA,IAAf,EAFuByE,GAAAA,IAAAD,OAAA,IAAA,KAA2B,MAAC,IAAD,KAA9B,MADf,EADkBC,GAAAA,IAAAD,OAAA,IAAA,KAA6B,MAAK,MAAL,KAAhC,MADtB,EAJuBC,GAAAA,IAAAD,OAAA,IAAA,KAAkB,MAAK,MAAL,KAAgB,MAArC,MACpB,IALoB,MA6Bb,MAAX,EAlCa,MAAX,IAJA,EAJW,WAAJ,IAAiC,SAAjC,GAAuD,MAA9D,EA8CJ,cACiB,MAEf64B,GAAAA,IAAc,MAAdA,GACEA,IAAc,MAAyB,MAEjC,MAAJ,MACI,MAAJ,MACI,kBAJiC,IADzCA,EAOF,EAGA,GAKwB,SAAtB,IACM,MAAqB,MAAC,aAAA,QAAA,KAAD,KAD3B,EAQF,EAEA,mBAMwB,MAAtB,OACM,QAAJ,IACM,MAAgC,MAAK,MAAL,KAC3B,MACY,MAAA,KACL,MAAK,MAAL,KAClB,GAAA,IAGE,KAHF,EACkB,MAKlBA,GAAAA,IAAc,MAAdA,GACEA,IAAc,MAA8B,MAE1CG,GAAmB,MAAnBA,MAEAC,GAAmB,EAAnBA,eAJ0C,IAD9CJ,EAQJ,EAEA,SACwB,MAAtB,IAGc,QACM,MACF,MAAK,MAAL,KAElBA,GAAAA,IAAc,MAAdA,GACEA,IAAc,MAA0B,MAAA,MAC5C,IARI,EAUJ,SAMwB,MAAtB,IAGS,MAAT,GACgB,MADhB,EAGM,MAAU,IAAA,MAGhBA,GAAAA,IAAc,MAAdA,GACEA,IAAc,MAA0B,MAAA,MAExB,MAAK,MAAL,KACW,YAAA,SAC/B,IAbI,EAeJ,MAKwB,SAAtB,IAGkB,QAEEK,IAFD,MAAA,IAAA,QAAA,KAAA,KAAD,OAMpB,IARI,EAWJ,SAKwB,MAAtB,OACE,GACU,UAAR,IAAqC,UAArC,IACgB,MADhB,EAGc,SACd,GACgB,MAGM,MAAA,MACT,MACG,MAAK,MAAL,KAGhBL,GAAAA,IAAc,MADhB,GAIEA,GACEA,IAAc,MAA6B,MAErC,MAAU,KAF2B,MAD7CA,EAHAA,GACEA,IAAc,MAA2B,MAAA,MAD3CA,EAUN,EAEA,GACO,MAAJ,GAAuB,IAAW,OAAC,KAAD,KAKb,IAAH,QACrB,EANsC,GAClC,GACY,KAAA,IADZ,EAGF,EAIF,uBACW,MAAT,KAEE,EAI0B,WAKpB3+B,MAAG,KAAA,OAAA,IAAA,IACiBC,MAAW,KAAA,KAAvC,GAAA,GAAA,IAAA,GAAA,OAAA,MACqC,IACc,MAAA,UACf,KAAA,QAClC,MAIqB,WAEyB,MAAA,OAFP,EAAA,KAAA,KAAA,KAAlB,MAJrB,KACQ,SAAgB,IAAJ,IAAA,SACC,QAAA,MAQvB,KAAA,EAAA,GAAA,EAGsBmH,GAAAA,IAAA,QAA0B,MAAA,IAA1B,KAAkC,MAAC,KAAD,KAahD,KAAC,KAAD,KAGC,SAAA,KAJP63B,IADF,EAXyD,MAClD,MAAoB,MAAzB,IAGK,MAAoB,MAAzB,MAGA,KAFE,QAHA,EAWK,GACU,UAANC,IAAsC,MAAtCA,IAAP,EAMR,MACoB,MAA6C,MAAA,IAAnB,QACrCp+B,OAAP,EAGF,MACU,KAAoB,MAA5B,IAGI,MAA4B,MAAA,MAAM0D,WAAM,KAAT,IACrC,IAHclD,MAAK,KAAA,WAAA,IAAA,IAAf,EAQJ,MACoB,MAClB,EAMF,MACyB,MACvB,EAGF,YAEU,KAAoB,MAA5B,SAGA,IAAA,KAEYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAEF,KACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAE+B,MAAA,IAArB,MACH,QACI,MACK,MAAK,MAAL,KACpB,IAbcA,MAAK,KAAA,WAAA,IAAA,IAAf,EAeJ,iBACU,KAAoB,MAA5B,OAGQ,MAAR,QAGU,MAEJ,MAAJ,GAAiC,MAAL,GAAD,GAA3B,GAA8D,MAAL,GAAD,GAAxD,IAEE,MAAoB,KACtByE,GAAAA,IAAAD,OAAA,MAAA,KAAA,KAAyB,SAAuB,KAAvB,MADH,KAKpB,MAAoB,KACtB,IAAA,KAAA,KAAyB,SAA8B,KAA9B,MADH,KAKpB,MAAoB,KACtB,IAAA,KAAA,KAAyB,SAA0B,KAA1B,MADH,KAKpB,MAAoB,KACtB,IAAA,KAAA,KAAyB,SAAqC,KAArC,MADH,KAKpB,MAAoB,KACtB,IAAA,KAAA,KAAyB,SAAkC,KAAlC,MADH,KAKpB,MAAoB,KACtB,IAAA,KAAA,KAAyB,SAA+B,KAA/B,MADH,KAOhB,UAAR,OAGQ,MAAR,OAMQ,UAAJqE,IAA4D,MAA5DA,EAAuC,MAAvCA,EAC0C3F,MAAM,SAAlC,IAAH,MACT,MAAiC,MAAK,MAAL,KACrCuB,IAAAD,OAAA,IAAA,KACM,UADN,OAKA,IAAA,KACM,UADN,OAKA,IAAA,KAAA,KAAyB,MACnB,MACA,MACA,MACA,MAMA,MAEA,MAAwB,KAAA,KACxB,qBAbmB,IAqB7B,IAjFcxE,MAAK,KAAA,WAAA,IAAA,IAAf,IAHUA,MAAK,KAAA,WAAA,IAAA,IAAf,EAWE6I,GAAAA,IAAI,MAAoB,KAApB/C,GAAAA,IAAA,UAAA,KAAoB,MAD0B,EAMlD+C,GAAAA,IAAI,MAAqB,KAArB/C,GAAAA,IAAA,UAAA,KAAqB,MADgC,EAMzD+C,GAAAA,IAAI,MAAiB,KAAjB/C,GAAAA,IAAA,UAAA,KAAiB,MADgC,EAMrD+C,GAAAA,IAAI,MAA4B,KAA5B/C,GAAAA,IAAA,UAAA,KAA4B,MADgC,EAMhE+C,GAAAA,IAAI,MAAyB,KAAzB/C,GAAAA,IAAA,UAAA,KAAyB,MADgC,EAM7D+C,GAAAA,IAAI,MAAsB,KAAtB/C,GAAAA,IAAA,UAAA,KAAsB,MADgC,EAmDhE,KACe,MACL,MAAR,GACErB,GAAAA,IAAAD,OAAA,MAAA,KAAA,KAA0B,MAAK,MAAL,KAMpB,KAAoB,MAF5B,IAGS,KAAoB,MAH7B,IAG6C,MAH7C,GAIQ,KAAoB,MAJ5B,IAOa,MAAA,IACO,MAAK,MAAL,KAGT,MAAA,MACb,EAEA,WACyBi5B,KAAH,MACJA,GAAmB,EAAtB,MACoB9+B,MAAW,KAAA,KAAgB,MAEzD,KAGA,EALyD,MAA9B,QAMhC,EAJK,MACkC,MAAA,IAAMk/B,GAAAA,IAAO,IAAV,IACtC,EAIJ,MACiB,MACG,MAAC,MAAA,IAAD,KACG,MAArB,OACU,MAAR,GAEe,MAAR,GAOa,MAAC,MAAA,IAAD,KAPb,EACG,MACY,MAAC,EADrB,OAGqB,IAAD,KAHpB,MACqB,IAAD,KADpB,EAFkB,MAAC,MAAA,IAAD,KAUF,MAAC,MAAA,IAAD,KAZpB,EAcF,EAGA,UAKE,QAAA,MACyB,MAEzBC,GAAAA,IAAA,KAAAlP,IAAA,KAAAyO,GAAAA,IAAA,OAAA,SAAA,OAAA,QAAA,OACF,EApgBEA,GAAAA,OAA2B,QAC7B,E,Q,I,O,I,K,ICnIY,MAAe,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAhBpG,IACM,KAAA,OAAJ,IAAsCtO,MAAO,KAA7C,GAGEjwB,GAAAA,MAAwB,KAAH,IAAP,MAQL,OAAmB,MAAe,KAA4B,KAAT,MAXhE,EACEA,GAAAA,IAAwBiwB,MAAO,KAAS,KAAA,IAAnB,IAAP,MAAoC,OAAmB,MAAe,KAA4B,KAAT,MAYlGgP,GAAAA,IAAU,KAAA,EAAA,KAAA,MAAjB,EAV0B,aACXt5B,GAAAA,IAAAD,MAAA,IAAA,KAAA,MACX,GAAW,IACA7F,MAA+B,KAAA,MAClC,KAAR,GAGW,KAAX,EAFa,KAAS,KAAU,MAATq/B,OAAD,KAApB,E,Q,O,I,KCFM,MAAyB,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAP9G,cACUr/B,MAAM,KAAU,KAAoB,KAAA,MACjC8F,SADX,GACWA,IAAAD,IAAA,IAAA,KAAA,QACT,IAFM7F,MAAM,KAAU,KAAoB,KAAA,YAA5C,GAIA,E,W,I,I,I,K,I,K,M,M,Q,I,K,K,I,I,Q,I,K,K,ICMF,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IAsCiB,KA+Hd,IA3H+Bs/B,KAAD,GAAD,GAAZ,SA8HN,MAAe,EA5J7B,IACuD,KAAC,gBAAS,KAAV,MAArD,EAA+D,EAClD/8B,MAAW,MAAA,OAAXA,iBACLg9B,OAAgBC,OAAAA,IACL,KAAA,KAAjB,EAYE5/B,GAAAA,IAAM,QAAV,IAGSA,IAA8B,SAAA,KAArC,EAFA,EASa,EAAA,KAAA,IAAAgH,GAAAA,IAAA,KAAA,MAAA,IASf,KATe,IAAA,IAAA,IAwDf,MAAA,IAIA,KAJA,IAxDe,IA6Ef,MAAA,IAGA,KAHA,IA7Ee,IA0Ff,MAAA,IAIA,KAJA,IA1Fe,IAoGf,MAAA,IAIA,KAJA,IApGe,IA8Gf,MAAA,IAIA,KAJA,IA9Ge,IAwHf,MAAA,IAGA,KAHA,IAxHe,QAAA,OA+Hd,EA/HcC,GAAAA,IAAA,KAAA44B,GAAAA,QAAA,MAAA,EASf,YAIEr3B,GAAAA,IAAAA,KAAUk3B,IAAAA,WAAD,MAEMI,IAAM,IACE,KAAC,KAAD,KAqBE,MAAC,OAAD,MAQzBJ,KAAgC,MAAA,MAEzBG,GAAAA,IAA6B,MAI5B3B,GAAiB,KACTA,KAAiCv6B,MAAQ,KAAA,IAAzCu6B,EAAiB,MALI,EAAA,KAAA,IAAA,IAAA,IAAA,KAAD,KAApC,EA/BwB,KAEJ6B,MAAhBC,IADF,GAEGhgC,GAAAA,IAAM,MAFT,GAE6CA,IAAM,MAAtBggC,IAF7B,GAQQ95B,IAAAD,OAAA,MAAA,KAAJ+5B,IAAJ,GAOUr7B,MAAM,KADP,EAAA,QAAA,IAAP,EAJY,KADL,EAAA,QAAA,IAAP,EALUlD,MAAK,KAAA,WAAA,IAAA,IAAf,EAgBsB,MAChB,SAAR,IAGmB,KAAK,KAAfw+B,IAAP,EAFajgC,GAAAA,IAAe,QAACkgC,MAAc,OAAL,KAAV,KAAsB,KAA3CD,IAAP,EAqBN,GACE/5B,GAAAA,IAAAD,OAAA,MAAA,KAAqB,MAAQ,MAAR,OAEd7F,MAAa,KAACA,MAAa,QAAC,IAAA,KAAA,KAAD,KAKvB,WAAP89B,IAA2B99B,MAAA,KAGR+/B,IAA2B,MAAR,KADtB,EAAA,KAFW,EAAA,OALqB,EAAA,IAAhC,MAApB,EAiBF,GACE33B,GAAAA,IAAAA,KAAUk3B,IAAAA,WAAD,MAETx5B,IAAAD,OAAA,IAAA,KAAuB,MAAA,KACnB,IAAA,KAAgB,KAAA,KAApB,GAGAy5B,IAAAA,KAAwB,MAAA,KAC1B,EAHI,EAUFl3B,GAAAA,IAAAA,KAAUk3B,IAAAA,WAAD,MAETA,KAAqC,MAAA,IACvC,EAOEl3B,GAAAA,IAAAA,KAAUk3B,IAAAA,WAAD,MAETA,KAAoC,SAAA,KACtC,EAOEl3B,GAAAA,IAAAA,KAAUk3B,IAAAA,WAAD,MAETA,KAAuC,SAAA,KACzC,EAMEl3B,GAAAA,IAAAA,KAAUk3B,IAAAA,WAAD,MAETA,KAA+B,SAAK,QAAL,MACjC,E,e,K,I,M,K,I,Q,O,WCtKF,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA13B,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAY9B,SAAA,KAK5C,wBACqB,EACL,KADK,IAOG,KAPH,KAUE,KAVF,KAaK,KAbL,KAgBH,KAhBG,KAmBF,KAnBE,KAsBV,KAtBU,QA4BW,MAAA,EA9C0C,IAAA,KAAA,OAAA,cAAA8H,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAoBhEkB,GAAAA,MAAJ,IACcotB,IAAyB,KAAA,IAA5B,IAEJptB,IAAP,EAGAotB,GAAAA,IAAiC,MAAA,MACnC,EAEEA,GAAAA,IAAgC,SAAA,OAClC,EAEEA,GAAAA,IAAmC,SAAA,OACrC,EAEEA,GAAAA,IAA2B,YAAA,QAC7B,EAEEA,GAAAA,IAA4B,YAAA,QAC9B,EAEEA,GAAAA,IAAoB,SAAA,OACtB,E,K,O,ICHM,OAsGP,OAGW,MAAQ,EAzGZ,EAAA,KAAA,IAkBRvwB,GAAAA,IAAAD,OAAA,MAAA,KAAA,MAAA,IAMA,KANA,IACA,KADA,IAAA,IAAA,IAGC,MAAA,IAWD,KAXC,IAHD,IAmDA,MAAA,IAYA,KAZA,IAnDA,IAwEA,MAAA,IACA,KADA,IAxEA,IAiFA,MAAA,IACA,KADA,IAjFA,IAAA,MAoFC,EA9FD,OAAuC,KAAAw5B,IAAA,IAAAA,IAAG,IAAHA,EAAA,IAA4B,QAAAA,IAAA,IAAAv5B,GAAAA,IAAAD,IAAA,IAAA,KAAAm6B,GAAAA,IAAA,MACtC,IAAA,KACY,MAAA,MAAgB,KAA9C,MACX,EAaA,GACW,MAAT,KACY3+B,MAAK,KAAA,WAAA,IAAA,IAAf,EAGS,MAAX,EAVF,MACY,QACZ,EAWA,SACsBuE,GAAAA,IAAOC,OAAA,MAAA,KACF,KAAd,KAAM,KAEb,aAAJ,IACE,OAIM,IACF,IAEA,MAAJ,SACE,IAEY,KAAJ,IAEM,KAAd,IAEY,KAELo6B,OAGyB,MACtB,KAAK,MAQA,KAAK,MATa,EAAA,KAAA,IAAA,IAAA,KAAD,KAApC,EAyBF,GACsBr6B,GAAAA,IAAOC,OAAA,MAAA,KACR,MAAK,KAAK,MAAV,OACV,MACX,EAMA,GACa,KAAK,KAAhB,EAQF,OACa,KAAK,KAAT,MAAP,E,EC9I2C,EAAH,IAuB3B,EArBA,KAqBA,KAbE,KAaF,KAJL,KAIK,OAAH,QAIZ,EAzBe,GACXq6B,GAAAA,IAAQ,IACVA,IADF,MAGc,IAHd,EACU,IAAI,GAAA,IADd,EAKF,EAEmB,GACbA,GAAAA,IAAQ,IAAZ,GACEA,IAAQ,IAAI,GAAA,IACA,MAAZ,IACSA,IAAP,IADF,EAIJ,EAEY,GACHA,GAAAA,IAAQ,IAARA,GAAgBA,IAAQ,MAARA,IAAvB,E,Q,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,MCvBFlgC,MAAqB,KAAwB,IAAA,QAAxB,OAqBG8H,MAAO,KAAA,OAAA,IAAA,IAAd,IAOIA,MAAO,KAAA,OAAA,IAAA,IAAd,IAkFI,EAKd,WALc,MAad,SAbc,MAqBd,SArBc,MA4BF,KA5BE,KAwCd,SAxCc,MAgDd,SAhDc,MAwDd,SAxDc,MAgEd,SAhEc,MAwEd,SAxEc,MAgFC,KAhFD,KA6FU,KA7FV,KA2Gd,SA3Gc,MAmHd,SAnHc,MA2HA,KA3HA,KAmId,SAnIc,MA2Id,SA3Ic,MAmJd,SAnJc,MA4Jd,SA5Jc,MAqKd,KAGA,SAxKc,MAyLd,KAGA,SA5Lc,MAyML,KAzMK,KAAH,MA+Mf9H,MAAqB,KAAM,KAA2B,UAAA,UAAjC,OAOjB,KAAA,OAAJ,IAA4CL,MAAM,MAAb,GAArC,IACIK,MAAqB,MAACmgC,IAAK,KAAYxgC,MAAM,MAAM,KAA9B,MAGrBygC,IAAY,KAACzgC,MAAM,MAAM,KAAYwgC,IAAzB,MAJhB,Q,S,S,S,S,SA4KyBr4B,MAAO,KAAA,OAAA,IAAA,IAAd,OAGL,OACD,OACG,IAyKfu4B,IAAwB,EAQJ,KARI,KA8DD,KA9DC,KAoGP,KApGO,KAAH,MA4KrBrgC,MAAqB,KAACqgC,IAAW,KACtBA,IADiD,UAAA,MAAvC,OAQjB,KAAA,GADJ,IAEW1gC,MAAM,MAAb,GAFJ,IAIIK,MAAqB,MAACqgC,IAAW,KAAY1gC,MAAM,MAAY,KAA1C,MAGM2gC,IAAH,MACND,IAAH,MACDA,IAAH,MAEEA,IAAH,MACR,KAA6B,KAAsBA,IAAH,MAA5B,MACpB,KAAgCC,IAAH,MAAuB,EA1zB1D,GACiBC,GAAAA,IAAe,KAAA,OAC5Bj/B,MAAc,QACVk/B,QADU,OAKd,EAOJ,GACY,QAAR,IAYS,KAAM,KAAf,KACI,IAGS,MACE,KAAM,MAAjB,OAAJ,IACQ,KAAqB,MAAA,IAD7B,EAGJ,IAlBY,KAAA,OADJ,IAEWl/B,MAAO,KAAd,OAFJ,IAIIA,MAAa,KAEL,UAFK,MAJjB,EASA,EAsBR,aACIi/B,GAAAA,IAAe,KASK,MAALlxB,GAAmB9L,MAAQ,KAAA,IATpB,UAAA,MAAA,MAAA,MAAA,KAAP,MAafvD,MAAqB,SAAoB,UAApB,OAGRA,MAAW,KAAA,KACA,OAAxB,IACoB,IACV0N,IAAN,GACI1N,MAAqB,KAAYygC,IAAwB,KAApC,OAHI,GAAT,KAAxB,IAMJ,EAsOA,KAAA,IACW,EACA,KADA,IAIA,KAJA,MAAA,IAAA,IAAP,EAEeC,GAAAA,SAAE,KAAM,KAAOhzB,GAAAA,IAAD,IAArB,EAGAgzB,GAAAA,SAAE,KAAM,KAAOhzB,GAAAA,OAAI,IACvB,EAYR,KAAA,IACW,UACE,KADF,MAAP,EACS,IACagzB,GAAAA,OAAE,KAAM,KACThzB,GAAAA,IAAD,IAAW,KAAA,EAAA,MAAvB,EAcZ,kBAAA,KACiB1N,MAAW,KAAA,KAChB,KAAR,WASwBA,MAAa,KAAU,KAC9B,UAAA,MAD0C,EAAA,IAAtB,MAAhB,MAKG,KASN2gC,KATlB,IACoB,IACM,KAAhBjzB,IAAN,GACuB1N,MAA+B,KAAA,MAClB,KAChCA,MAAqB,KACN,KAFA,GAIX4gC,IAEMH,IAAwB,KAF9BG,EACMD,IAAoB,KAJT,OALI,GAAT,KAAxB,IAeA,EA5BI,EAKAE,GAAAA,IAAc,cAAA,SAClB,EA+BJ,KACI,MAA+B7gC,MAAM,KAArC,IAIcogC,GAAAA,IAAY,KAAA,KAC1B,IACcU,IAAcC,IAAW/gC,MAAqB,MAAA,OAAtB,KAAX,MACvBogC,IAAY,KAAA,SAEhB,EARWD,GAAAA,IAAP,EAkBR,GACoBY,GAAAA,MAAW/gC,MAAqB,MAAA,OAAtB,KACR,KAAA,aAAA,IAAA,IAAlB,EAUO0gC,GAAAA,SAAE,KAAO,MAAhB,EAWAA,GAAAA,SAAE,OAAkB,MACxB,EAUIA,GAAAA,SAAE,OAAqB,MAC3B,EAUIA,GAAAA,SAAE,QAAuB,MAC7B,EA4BA,KACWvpB,IAAAA,GAAc,OAAA,IAArB,EAUkB6pB,GAAAA,IAAgB,QAAA,OAClC,IAKA,IAJcx7B,MAAS,KAAA,WAAA,IAAA,IAAnB,EAaR,KAAA,IACW,EACA,KADA,IAaA,KAbA,MAAA,IAAA,IAAP,EACO,EACmBsM,GAAAA,SAAY,KACN,KAACmvB,GAAAA,IAAD,KACxB,IACY,MAAkBC,OAA1B,IAGW,KAJf,IAMA,EAJmB,KAAX,EAOT,KACK,UAAJ,IAAuCp8B,GAAAA,MAAQ,QAA/C,KAGkBgN,GAAAA,SAAY,KAIN,KAACmvB,GAAAA,IAAD,SACxB,IACY,MAAkBC,OAA1B,IAEI,IAEe,KAAR,IAGa,KAACD,IAAD,QAHb,EACU,KAACA,IAAe,KAAhB,SADV,EADa,KAAP,SAUN,WAdf,IAkBA,IAGsBC,IAFF,UAAA,MAAA,MAOhB,IAGa,MAHb,EACiB,KAACD,IAAD,MAKzB,EAYR,KACIjhC,MAAqB,KAEhB,MAAA,SAAA,KACDmhC,GAAAA,MAA8B,QAHb,OAKzB,EAQA,OAAA,OAMkCnhC,MAAa,KAACqgC,GAAAA,IAAW,KACtC,UAAA,MADkD,EAAA,IAAxB,MAAhB,MAQG,OAA9B,IACIC,IAAsC,KAAsB,IAAxC,MADe,GAAT,KAA9B,IAIA,EAfID,GAAAA,IAAgB,QAAA,OACpB,EA8BJ,SAEwBA,GAAAA,IAAhB,IAAJ,MAIa,MAAb,MAA8B7+B,MAAa,KAAU,IAAV,KAA3C,GAGa,GAAb,MAOUgE,MAAS,KAAA,WAAA,IAAA,IAAnB,IANsBhE,MAAe,GAAV,KAAA,OAAA,IAAA,IACM,KAA7B,IACwB,IAAZ,IAD0B,GAAT,GAA7B,IAGO4/B,IAAuB,KAA9B,EAPOA,IAAiC,IAAV,KAA9B,EAJAJ,IAAgB,OAAWjhC,MAAG,KAAA,OAAA,IAAA,IAAd,MAChB,EAzhBO2gC,GAAAA,SAAE,KAAM,KAAM,KAArB,EAQOA,GAAAA,SAAE,KAAM,MAAf,EAQOA,GAAAA,SAAE,KAAM,KAAf,EAOsBA,GAAAA,SAAE,KAAM,OAC9B,IAGO,IAAA,IAAP,EAFW,IAAP,EASR,EACI,EAOJ,GACI,EAOJ,GACI,EAOJ,GACI,EAQOA,GAAAA,SAAE,KAAM,MAAf,EAQaA,GAAAA,SAAE,OAEH,MACG,KAAM,MAAjB,OAAJ,IACQ,KAAsB,MAAA,IAElC,EAOiBA,GAAAA,SAAE,OAEH,MACS,MACN,KAAM,MAAjB,OAAJ,IACQ,KAA+B,MAAA,IAE3C,EAMA,EACW91B,MAAQ81B,GAAAA,SAAE,KAAM,KAAM,MAAf,KAAd,EAOJ,EACW91B,MAAQ81B,GAAAA,SAAE,KAAM,KAAM,KAAf,KAAd,EAQAW,GAAAA,IAAcX,SAAE,KAAH,KACjB,EAOWA,GAAAA,SAAE,KAAM,MAAf,EAOJ,EACW91B,MAAQ81B,GAAAA,SAAE,KAAM,KAAM,MAAf,KAAd,EAQOA,GAAAA,SAAE,KAAM,MAAf,EASOA,GAAAA,SAAE,KAAM,MAAf,EASOA,GAAAA,SAAE,KAAM,MAAf,EAEJ,GACI,KACI,EAESA,GAAAA,SAAE,OAEH,MACG,KAAM,MAAjB,OAAJ,IACQ,KAAmB,MAE/B,EAQYA,GAAAA,SAAE,KAAM,MAAT,GAAP,EAEJ,GACI,GACIW,GAAAA,IAAcX,SAAE,KAAH,KADjB,EAGJ,EASS,EACL,EA8WY,WACZ,OAGI,OAAJ,IAAuC57B,GAAAA,MAAQ,KAA/C,KACcU,MAAS,KAAA,WAAA,IAAA,IAAnB,EAGcsM,GAAAA,SAAY,KACThN,IAAQ,KACbw8B,KAEV12B,MAAO,KAFG02B,IACV12B,MAAe,MAAR,KAEQ0jB,GAAoBiT,IAApBjT,EAAUkT,IAAVlT,GAIRgT,KAAgB12B,MAAe,MAAR,KAC1B02B,KAAgB12B,MAAe,MAAR,KAJjB,EAAA,IAAA,KAAA,KAAA,KAAA,IASQ,KAAA,KACxB,SAOA,IAEY,KADR,IAEQ,MAFR,IAQW,WATf,IAaS,MACb,EARY,EAZS,KAAA,MACb,IAxBA,EAoDW,WACf,OAIkBkH,GAAAA,SAAY,KACdhN,IAAQ,KAARA,KAEV8F,MAAO,KAFG9F,IACV8F,MAAe,MAAR,KAEQ0jB,GAAoBiT,IAApBjT,EAAUkT,IAGP,KAAA,OACxB,IAEY,WADR,IAEQ,MAFR,IAeW,QAhBf,IAkBJ,EAbY,IAEe,KAAR,IAGa,KAAA,KAHb,EACU,KAAgB,KAAhB,MADV,EADa,KAAP,MAMb,IAvBJ,EAoCK,0BACT,OAAiC,KAAZ,OAArB,OAKkB1vB,GAAAA,IAAY,KACP,KACC,KAAA,QACxB,OAKqB2vB,IAAS,WAK9B,UAEY,MAAR,MAAA,EACI,OAEe,KAAR,IAGa,KAAA,QAHb,EACU,QAAgB,KAAhB,SADV,KADa,KAAP,SAWjBC,UAEQ,QAAJzuB,MAAmB,KAFL,SAIH,KAAX,GAAJ,OAYQ,MAAkBiuB,IADnB,OAEQ,KAAS,MAApB,GAFG,OAIC,KAAqB,SAAA,KAJtB,EAVH,GACQ,KAAc,QAAA,MACtB,EAAE,EAEM,KAAA,GADJ,IAEW5/B,MAAO,KAAd,GAFJ,IAIIA,MAAa,QAAA,KAWrBqgC,OAAS,KAAb,MAIW,WA1Cf,OA4CAD,IAAkB,MAClBE,MAAa,MACbC,IAAgB,MAEI,MAAb,GAAP,IAzDI,EARUr8B,MAAS,KAAA,WAAA,IAAA,IAAnB,E,QC/vBZ,MAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,KAgBoDs8B,KAZhD/Q,OAAAA,IAAAA,GACAgR,KAA2D,MAAA,IAWY,QAI7D,MAA2B,E,ECeK,EAClB,KADkB,KAEhB,KAFgB,KAGG,KAHH,KAIV,KAJU,KAKjB,KALiB,KAMP,KANO,KAOZ,KAPY,QAUhC,QAA2B,EATb,EAAA,EACE,EAAA,EACmB,EAAA,EACb,EAAA,EACP,EAAA,EACU,EAAA,EACL,EAAA,E,wB,K,I,M,K,I,Q,O,K,M,Q,I,Q,I,K,K,I,Q,I,K,QCvClC,IAAA,KAjBA,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAn6B,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAkBA,IAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,KAWwBgxB,KAAW,KAAA,OAAA,IAAA,IAG3B,MADsC,IACT,KAAY,KAAS,KAAO,KAAP,KADZ,YAXC,UAWD,IACiC,MAExD,KAgSpB,IAhSoB,IAgTtB,EAnVD,IAAA,KAAA,OAAA,cAAAlpB,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAkVai6B,GAAAA,IAAiB,KAAA,UAAA,IAAA,IAA5B,EA/SqB,EAAA,KAAA,IAUpBp7B,GAAAA,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAuCA,MAAA,IAED,KAFC,IAvCA,IAoDA,MAAA,IAED,KAFC,IApDA,IA6DA,MAAA,IAED,KAFC,IA7DA,IA0EA,MAAA,IAED,KAFC,IA1EA,IA8EA,MAAA,IAED,KAFC,IA9EA,IAkFA,MAAA,IAED,KAFC,IAlFA,IAsFA,MAAA,IAED,KAFC,IAtFA,IA0FA,MAAA,IAED,KAFC,IA1FA,IA8FA,MAAA,IAED,KAFC,IA9FA,IAkGA,MAAA,IAED,KAFC,IAlGA,IAsGA,MAAA,IAED,KAFC,IAtGA,IA0GA,MAAA,IAED,KAFC,IA1GA,IA+HA,MAAA,IAED,KAFC,IA/HA,IA+JA,MAAA,IAED,KAFC,IA/JA,IAqKA,MAAA,IAED,KAFC,IArKA,IAyLA,MAAA,IAED,KAFC,IAzLA,IAkOA,MAAA,IAED,KAFC,IAlOA,MAAA,MAsRA,EAxRD,EAAkDC,GAAAA,IAAA,KAAAm7B,GAAAA,MAAA,MAPT,EAA/B,MAC8B,EAAjC,MAC6B,EAA7B,MACuC,EAAlC,QACL,MACoB,WAGUC,IAAH,MAClC,EAEA,WAOU,MAAR,MAMQ,MAAW,IAAnB,MAUI,SAGoBC,KAAXC,IAHU,EAAA,IAAA,KAAA,QAAA,QAAA,KAAH,IAQZ,MAAR,GACEC,GAAAA,IAAmB,OAAE,MAAA,iBAAA,OAAmC,EAAA,IAAA,KAArC,MADrB,EAMF,IAjBI,IATA,EA4BJ,OACiBpiC,MAAA,KACoB,MAAA,IAC1B,MAFM,EAAA,OAAA,MAIHA,MAAA,KAAkC,MAAA,IAAW,MAA7C,EAAA,OAAA,MACAA,MAAA,KAAkC,MAAA,IAAW,MAA7C,EAAA,OAAA,MACKA,MAAA,KACoB,MAAA,IAC5B,MAFQ,EAAA,OAAA,QAInB,EAEA,EACoB,EAAH,MACA,EAAH,MACG,EAAH,QAId,EAEA,MACwB,MAAtB,QAAA,SAAA,GACU,MAAW,MAAf,IAAA,MAAJ,IACa,MAAX,IADF,EAIa,EAAH,MACG,EAAH,MAId,EAEA,IACc,QACd,EAGSqiC,GAAAA,MAAmB,IAA1B,EAGF,EACa,MAAX,EAGF,EACa,MAAX,EAGF,EACa,MAAX,EAGF,EACa,MAAX,EAGF,EACe,SAAW,IAAhB,GAAD,GAAP,EAGF,EACa,MAAX,EAGF,EAmBA,EAEA,SAEoB,MAAAhD,IAAA,IAAAA,IAAGgD,GAAAA,IAAmB,IAAtBhD,EAAA,IACH,QAAAA,IAAA,IAEP,MAAR,GAMQ,MAAQ,MAAhB,IASI,MAAa,IACjB,GACM,MAAkB,IAGhB,MAAR,GACE+C,GAAAA,IAAgB,QAAE,MAAA,iBAAA,OAAmC,EAAA,IAArC,MAIpB,EAZI,EATA,EAuBJ,KACoB,MAAQ,IACf,MAAX,IACA,EAGF,KACU,MAAR,GAOQ,MAAuB,KAAA,KAA/B,GASI,SAAa,MACnB,IAHI,IAVA,EAeJ,SAEoB,MAAA/C,IAAA,IAAAA,IAAGgD,GAAAA,IAAmB,IAAtBhD,EAAA,IACH,QAAAA,IAAA,IAEP,MAAR,MAUQ,MAAW,IAAnB,GAUI,MAAmB,EAAA,IAAA,KAAH,IAIpBiD,GAAAA,IAAgBC,IAAwB,MAAA,KAA3B,IAKL,MAAR,GACEH,IAAgB,QAAE,MAAA,iBAAA,OAAkD,EAAA,IAApD,MAIpB,EAjBI,EAVA,EA6BJ,SAEoB,MAAA/C,IAAA,IAAAA,IAAGgD,GAAAA,IAAmB,IAAtBhD,EAAA,IACH,QAAAA,IAAA,IAEP,MAAR,MAOqB,MAAW,IAChC,MAAyB,OAAzB,OASY,MAAZ,OAUkB,MACF,MACa,MAAoB,KAARmD,KAApBA,IAAH,MAKdF,GAAAA,IAAQ,IAAZ,IACEC,IAAsB,MAAMD,IAAQ,IAAd,MACtB,IAGM,MAAR,GACEF,IAAmB,OAAE,MAAA,iBAAA,OACX,MAAA,SAAA,OAD8C,EAAA,IAAA,KAArC,MAKvB,EArBI,EATA,EAXA,E,E,QCvQQ,QAAW,EAJzB,IACS9gC,MAAO,MAAI,KAAA,EAAA,MAAlB,E,W,K,I,K,I,K,I,K,I,KCdgB,M,KACC,M,KACE,MAER,IAAH,IACM,IAAH,MACH,MAAA,OAAA,IAAiDE,MAAjD,EAAoCihC,MAAvC,IAGmB,OAA1B,IACEC,IAAgB,IAAP,IACTC,IAAyB,MAAA,KAAI,IAFa,GAA5C,IAOAA,QAAwB,MAAA,QAAI,IAC5BA,QAAwB,MAAA,QAAI,MAkI3B,EAhID,KACe,QAETC,IAAJ,IAM0B,SAAA,WAC1B,OAAA,EAEsBC,IAEbA,IAAL,IAEG,IAAA,IAAA,IAAP,IAZYxhC,MAAK,KAAA,WAAA,IAAA,IAAf,EAiBSyhC,GAAAA,SAAO,OACC,OACO,IACjBD,OAAD,OAAA,IAAA,IAAR,EAGF,MACWA,OAAD,OAAA,IAAA,IAAR,EAGF,mCAEaC,GAAAA,MAAO,KACC,IACO,IAEZC,IAAIC,IAAW,OAAZ,KAAA,OAAA,IAAA,OAKPC,IACNJ,IADMI,QAKV,OAEKN,IAAwB,MAAA,KAAf,IAATA,IACAA,IAAwB,MAACnrB,IAAD,KAAf,IAATmrB,IACAA,IAAwB,MAACnrB,IAAD,KAAf,IAATmrB,IACDA,IAAwB,MAACnrB,IAAD,KAAf,IAHRmrB,IAAAA,IAAAA,IAIQ,GAAOO,IAAAA,IAAJ,IAAH,GACA,GAAOA,IAAAA,IAAJ,IAAH,GACA,GAAA,GAAMA,IAAH,IARM,UAAtB,UAWA,IAEKP,IAAwB,MAAA,KAAf,IAATA,IACAA,IAAwB,MAACnrB,IAAD,KAAf,IAATmrB,IACQ,GAAA,GAFRA,IAEcO,IAAH,IAGhB,IAEKP,IAAwB,MAAA,KAAf,OAATA,IACAA,IAAwB,MAACnrB,IAAD,KAAf,IAATmrB,IACAA,IAAwB,MAACnrB,IAAD,KAAf,IAATmrB,IAFAA,IAAAA,IAGQ,GAAOO,IAAAA,IAAJ,IAAH,GACA,GAAMA,IAAH,IAGhB,EAGF,GACSR,GAAAA,OAAOS,OAAAA,IAAD,IACXT,OAAOS,IAAAA,IAAD,IADDT,IAELA,OAAOS,IAAAA,IAAD,IAFDT,IAGLA,IAAOS,IAAD,IAHDT,IAAP,EAMF,yCAEe,IAMCU,GALd,IAEW,IAALC,IACM7rB,IAAD,IAAL6rB,IACK7rB,IAAD,IAAL6rB,IACQ,KAACD,IAHRC,IACAA,IADF,IAAA,IAGyB,KAAhB,KALiB,IAA9B,IAOkB,SAAA,KAAlB,EAGF,WAEiB,QACET,IACL,IAIWA,IACVU,KADb,IACY,KAACA,IAAuB9rB,OAAAA,OAAZ,OAAZ,QADZ,OAKA,OAOO,OACQorB,IAAD,OAALS,IAA6BT,IAAD,IAA7B,IACI,KACRF,OAAOQ,IAAD,IACNR,OAAQQ,OAAAA,IAAF,IADNR,IAEAA,IAAQQ,IAAAA,IAAF,IAFNR,QAAAA,IADQ,KAFL,EANOE,IAAD,IACD,KACRF,OAAOQ,IAAD,IACNR,OAAQQ,OAAAA,IAAF,IADNR,QAAAA,IADQ,KAeK,SAAA,KAAjB,E,W,K,I,K,I,K,I,K,M,M,K,I,Q,S,Q,I,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,K,ICtIF,IAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IAcc,IAUca,KAAT,KAiDhB,KAG8B,KAAA,OAAA,IAAA,IAAE,MAAA,EA5E6B,KAAA,IAAAvT,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAF,IAAA,KAAA,KAAA,OAAAG,MAAA,KAAA,EAAA,OAAAC,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAD,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAxlB,MAAA,KAAA,KAAA,KAAAwlB,MAAA,KAAAxlB,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAMhE,GACqC,IACnC,GAAA,QAAA,SAAA,GACkB,KAAC,IAAA,IAAc,IAAd,IAAD,KADlB,EAGA,EAKO44B,GAAAA,IAAU,GAAA,GAAA,IAAjB,EAQiB,EAAA,KAAA,IAAAlT,GAAAA,IAAA,UAAA,MAAAC,IAAA,KAAA,IAOhB3pB,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAkCA,MAAA,IAED,KAFC,IAlCA,IAsCA,MAAA,IAED,KAFC,IAtCA,IAAA,MA0CA,EAhDD,EAAcC,GAAAA,IAAA,KAAA48B,GAAAA,MAAA,MAAAjT,IAAA,KAIVzqB,IAAAA,KAAQ,WAARA,IAA+B29B,IAAAA,KAJrB,MAAA,EAoBCC,GAAAA,IAAAA,UAAkB,KAC/B,GAAgB,MAAhB,GACsB,MAAa,OAAC,KAAD,KAApB,MAKGC,IAAiB,IACnCF,IAAAA,KAAmC,MAIjCG,OAAwB,OAAS7jC,MAAA,KACzB,KAAA,KADyB,EAAA,+BAJA,OAW3B,KACV,EAlBsC,KAAIA,MAAA,KAE3B6jC,GAAAA,IAA6B,OAAL,KAD1B,EAAA,IAD6B,EAAA,OAAA,EAqBxCH,GAAAA,IAAAA,KAAoC,SAAA,OACtC,EAGEA,GAAAA,IAAAA,KAAoC,SAAA,OACtC,E,aChFW1jC,MAAA,KAAA,IAAA,QAAA,SAAA,QAAA,IAAA,QAAA,IAAA,KAAA,KAAA,IAAA,IAAA,QAAA,IAAA,KAAA,KAAA,IAOb,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IAmBuC,KAkFpC,IAAA,MAAA,EAlFoC,EAAA,KAAA,IAkCpC4G,GAAAA,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAwBA,MAAA,IAED,KAFC,IAxBA,IAiCA,MAAA,IAED,KAFC,IAjCA,IA4CA,MAAA,IAED,KAFC,IA5CA,MAAA,MAgDA,EA7ED,MAAyCC,GAAAA,IAAA,KAAA08B,GAAAA,MAAA,MACnCx9B,IAAAA,KAAQ,SAAZ,IACEqC,IAAAA,OACE07B,QADO,MAQR,GAAD,GAAA,GAAqC,KAAnB,OAAA,IAGjB,GAAD,GAAA,GAAqC,MAAnB,OAAA,IAEpB,GAAA,GAAA,KAEO,IACL,KACExiC,MAAY,SAAA,KAId,KACEA,MAAY,SAAA,KADd,EAPkB,MAatB,EAEA,QAKM,QAAJ,IAA+B,KAAA,KAA/B,UACuC+E,GAAAA,IAAAA,KAAiC,WAAA,OAApC,IAM7B,EACG,KADH,IAAP,EAEQ09B,GAAAA,MAAJ,IACE/5B,IAAI,MAAJ,IAAmC,SAAA,KAEnC+5B,IAAmB,KAAA,IACP,IAJd,EAMF,EAIJ,OAGQ,KADCviC,QAAAyF,IAAAA,IAAA,KAAA,UAAA,IAAA,OACD,IADC,IAAAC,IAAA,IAAA,GACD,IAGNb,GAAAA,IAAAA,KAAqB,MAAK,KAA1BA,KAAqB,OAAA,IAAe,KAAA,KAAV,MAC5B,EAEA,MAGE+B,GAAAA,IAAAA,OACE47B,UADO,MAIL,MAAJ,IAAmC,MAAmB,MAAA,KAAnB,KACnC39B,IAAAA,KAAwC,MAAA,KAC1C,EAGSA,GAAAA,IAAAA,KAAmC,SAAA,KAA1C,E,K,O,I,QC7EU,QAAsB,EAlBpC,GACM,OAAJ,OAGQP,GAAAA,IAAAD,MAAA,MAAA,KAAJo+B,IAAJ,GAGQn+B,IAAAD,OAAA,IAAA,KAAJo+B,IAAJ,KAGoBtE,MAAhBsE,IAAJ,GAAmCtE,MAAkB,MAAA,KAArD,GAKA,EAFkB75B,IAAAD,OAAA,IAAA,KAAA,KAAT,EAAA,KAAP,EAL+B,MAAA,IAAxB,EAAA,KAAP,EAHkB,KAAX,EAAA,KAAP,EAHO,EAAA,IAAP,E,K,O,ICwBU,OA4CX,OAGW,MAAY,EA/CZ,EAAA,KAAA,IAKXC,GAAAA,IAAAD,OAAA,MAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IASA,MAAA,IAED,KAFC,IATA,IAeA,MAAA,IAED,KAFC,IAfA,IAAA,MAuCA,EAzCD,GAAcC,GAAAA,IAAAD,MAAA,MAAA,KAAAq+B,GAAAA,IAAA,MACE,IAAH,MACb,EAEA,GAMM,MAAY,KAAC,OAAA,OAAA,IAAD,OAClB,EAEA,KAAA,OACa,MACF,KAAC,KAAD,KACH,KAAC,KAAD,KAFN,EACUp+B,GAAAA,IAAAD,OAAA,MAAA,WAAA,QAAM,IAAe6H,GAAAA,IAATjJ,IAAN,EACTqB,GAAAA,IAAAD,OAAA,MAAA,QAAA,SAAS,IAAA,EAGlB,GACa,MAAW,OAAC,KAAD,KAAtB,EAA0CC,GAAAA,IAAAD,OAAA,MAAA,QAAA,QAAb,OAAO,QACP,IAEF,MAFE,IAEF,KAMrB,OAAJ,SAAkCrE,MAAa,KAAA,KAA/C,GAAA,GACkB,KAAZ,OAAJ,IACS,MAAiD,SAAtB,IAAA,IAAJ,IAAA,MAEhB,KAAZ,GAAJ,IACiC,KAAR,MAEzBxB,MAAA,KAAgB,EAAA,IAAA,KAAhB,EAAA,OAAA,IAGcuE,MAAM,KAAf,EAAA,IAAA,IAAA,KAAP,E,K,O,I,QC9DQ,QAAkB,EAhBhC,KACsBo7B,MAAhBwE,OAAJ,GAEa1B,MAAU,KAAA,UAAA,IAAA,IAEHA,MAAhB0B,IAAJ,MAGKxE,MAAkB,MAAA,KAAvB,GACYt+B,MAAK,KAAA,WAAA,IAAA,IAAf,EAGW,MAAY,MAAY,MAC9ByE,GAAAA,IAAAD,MAAA,MAAA,KAAoB,MAAK48B,MAAU,KAAA,UAAA,IAAA,IAAf,KAA3B,EAPS38B,GAAAA,IAAAD,MAAA,MAAA,KAAoB,MAAA,KAA3B,E,e,K,I,M,K,I,Q,O,WCRJ,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA+B,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAwB1B,SAAA,KAAoB,MAAA,EAxBM,IAAA,KAAA,OAAA,cAAA8H,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,KCInE,SAAA,OAEWq8B,MAAOC,MAASC,MAASC,MAA1B,EAAA,KAAA,KAAA,KAAA,QAAH,MAAuC,E,KCd5C,KAHP,OAAA,OAA+B,OAA/B,MACA,MAAA,OAAA,IAAgC7K,MAAM,MAAtC,GAC+B,IAAH,QAApB,KADR,EAA6CA,QAAO,QAAD,MAAnD,IADsE,KAAtE,EA0mBG,EAvmBI,SAAA,MAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,KAAA,IAAA,OAGJ,MAAA,OAAA,IAAA,GAAqC75B,MAArC,GACA,MAAA,GAAA,IAAA,GAA+Bk3B,MAA/B,GADA,GAEA,IAAA,GAAA,IAAA,GAAiCn3B,IAAjC,GAHO,QAMM,IACQA,QAAZ,IAAA,GAAoCwH,UAAd,IAEdxH,QAAhB,IAAA,GACUA,QAAV,IADA,GAIQogC,MAAI,KAAA,IAAA,IACR,IACA,OAIkBpgC,QAAd,IACoBA,QAAjB,IAfD,EAAA,KAAA,KAAA,KAAA,KAAA,KAAH,IAsBA,MAAX,SACoB,QAahB+/B,MAAW,MAAXA,GACA,QADAA,YADmB,IA1ChB,SAAA,SAsGP0E,IAAO,KAAoB,KAAH,MAOxBA,IAAO,KAAuB,KAAH,MAI3BA,IAAO,KAAiB,KAAH,MAKrBA,IAAO,KAAiB,KAAH,MAIrBA,IAAO,KAAiB,KAAH,MAIrBA,IAAO,KAAqB,KAAH,MAQzBA,IAAO,KAAkB,KAAH,MAQtBA,IAAO,KAAoB,KAAH,MAQxBA,IAAO,KAAqB,KAAH,MAQrBG,IAAO,MAAX,GACEH,IAAO,KAAWj9B,MAAM,MAAai9B,IAAO,KAAU,MAApB,IADpC,IA8Kc,QAAH,IAiEXC,IAAO,KAAmB,KAAH,SA4Cd,KAACA,IAAO,KAAR,KAmBA,KAACC,IAAQ,KAAT,KAETA,IAAQ,KAAmB,KAAH,MASxBA,IAAiB,KAAH,MAMS,QAAH,IAEpBA,IAAoB,KAAH,MAQM3kC,IAAM,MAAT,MAEP,MAAa,KAAA,IAAA,IAC1B,EAAE,EACuB,KAAH,MAMb,MAA0BI,MAAa,KAACqB,MAAK,KAAN,KAAhB,MACvB,MAAa,KAAgC,MAAV,MAC5C,GAoGc,MAETzB,IAAM,MAAX,GACEA,OAAY,MACZA,IAAiBykC,IAAH,MACdzkC,IAAiB0kC,IAAH,MACd1kC,IAAkB2kC,IAAH,MAGCF,IAAH,MACGC,IAAH,MACIC,IAAH,MACH,MAEbvkC,MAAqB,KAAwB,EAAA,QAAxB,OAEvB,EA9kBE,MACSyG,KAAOg+B,MAAQ,KAAwB,MAAA,KAA9C,EAuBF,GACM,UAAJ,MACSlgC,QAAM,KAEX,cAAiC,MAAA,KAArC,OAAA,IAGuB,MAAA,IAAvB,IAFYiB,UAAU,IAAD,KAAA,QAAC,OAAD,IAAA,IAAnB,EAKJ,GACM,UAAJ,MACUjB,QAAM,KAEhB,EAIF,KAAA,IACiB,EACP,KADO,IAOXigC,GAAAA,IAAO,UAAX,OACWp9B,MAAM,MAAa,KAAH,IAKpBs9B,IAAP,EAXgBC,GAAAA,IAAW,MAAA,IAChB,IAAO9jC,IAAP,IAAA,IAAP,EAMO6jC,GAAAA,IAAP,EAON,UACa,EAAH,MAEeL,GAAAA,IAAnBnF,IAAJ,KAIW19B,MAAa,KAAA,KAAjB,OAIA,KACLxB,MAA0B,MAAA,KAAiB,KAAC,KAAD,MADtC,EAHU,KAAC,KAAD,YAJA,KAAC,KAAD,UAYnB,EAZoB,GACH,YAAA,QACb,EAEgB,MACH,QAAO,OAAW,IAAlB,QACb,EAE4C,MAC/B,MAAOk/B,GAAAA,IAAO,IAAd,QACb,EAgEJ,GACU,MAAR,KAGa,QACf,IAHWl5B,MAAc,MAAKR,MAAS,KAAA,WAAA,IAAA,IAAd,KAArB,EAKJ,KAAA,MACaQ,MAAO,KAAA,IAAC,QAAD,IAAA,IAAlB,EAAmB,KAAA,OAAA,IACjB4+B,GAAAA,IAAgB,KAAH,MAGI,KAAH,QAGhB,EALIv7B,GAAAA,IAAQu7B,GAAAA,IAAM,QAAP,KACT,EAEEt7B,GAAAA,IAAOs7B,GAAAA,IAAM,OAAP,KACR,EAIJ,EACmBC,MAAU,KAAA,OAAA,IAAA,IACbC,GAAAA,MAAe,KACL,SAAA,KACxB,EAGF,EACmBD,MAAU,KAAA,OAAA,IAAA,IACbC,GAAAA,MAAe,KACZ,SAAA,KACjB,EAGF,EACiBrC,MAAU,KAAA,UAAA,IAAA,IACTjhC,MAAU,KAAL,KAAA,OAAA,IAAA,IAEG,OAAxB,IACa+C,MAAmB,MAAK,IAAL,KAAtB,IADwB,GAAV,KAAxB,IAGiB,SAAA,KAAjB,EAGF,GACS,KAAP,KAGiBk+B,MAAc,MAAJ,KAAA,OAAA,IAAA,IACjB,KAAKA,MAAU,KAAA,UAAA,IAAA,IAAf,KACG,MAAX,EAJgB,OAAA,KAAhB,EAQJ,OACe,MAEI,KAAH,MA4CV+B,GAAAA,IAAO,MAAX,GACc,KAAH,MAiBU,KAAH,MAsBN,KAAH,MAiBLA,IAAO,MAAX,GACkB,KAAH,MAKH,KAAH,MAIT,EA/GiB,MAWK,MAAP,MACC,MACd,OACgB,SADhB,KAEW,OAAJ,OAEIA,GAAAA,IAAO,MAAX,KAAoBxE,MAAI,KAAwB,MAAA,KAAhD,MAEIwE,IAAO,MAAX,KAAwBN,MAAQ,KAAwB,MAAA,KAAxD,MAEIM,IAAO,MAAX,KAA4BO,MAAe,KAAwB,MAAA,KAAnE,MAEIP,IAAO,MAAX,GAA2BA,IAAO,MAAlC,GAA2CQ,MAAU,KAArD,GAIIR,IAAO,MAAX,KAA4B7E,MAAW,KAAwB,MAAA,KAA/D,GAAyEsF,MAAiB,KAA1F,KAGmBjlC,MAAM,KAAU,KAAc,KAAA,KAAxC,SAHT,KACmBklC,MAAW,KAAd,SADhB,KAHmBA,IAAgB,MAAL,KAAd,QAEAlF,MAAU,MAAL,IAAA,IAAD,KAAA,UAAA,IAAA,IAAX,SAHT,EADyB,KAAA,IAAhB,SADT,EADa,SADb,EADS,SADT,EADS,SAiBP,KAAY,SAAA,KAArB,MACM,OAAJ,IAEe,MAAR,GAA0B,MAAU,KAApC,GAEIwE,GAAAA,IAAO,MAAX,KAA4BO,MAAe,KAAwB,MAAA,KAAnE,GACD,KAAY,SAAA,MADX,EADD,KAAY,KAAqB,MAAU,KAA/B,MADX,EADD,KAAY,SAAA,MADlB,EAQJ,EAGc,GACKI,GAAAA,MAAQ,KACvB,MAIQ,MAAR,MAEe,MAAR,GAEQ,MAAR,KAGEn/B,MAAe,KAAKg6B,MAAU,MAAL,IAAA,IAAD,KAAA,UAAA,IAAA,IAAT,KAAtB,IAFU3+B,MAAK,KAAA,WAAA,IAAA,IAAf,IAFO2E,MAAe,KAAKg6B,MAAU,MAAL,IAAA,IAAD,KAAA,UAAA,IAAA,IAAT,KAAtB,IAFOh6B,MAAe,KAAK,MAAL,KAAtB,EAJA,EAce,GACT,MACWm/B,GADnB,GAgBkB,MAAA,IAAO,KAACC,IAAD,KAAvB,EAfiBD,MAAQ,KACzB,QAGIxF,MAAkB,MAAK,MAAL,KAAtB,GAQS35B,MAAe,KAAK,MAAL,KAAtB,EAPOA,MAAe,KAChB,MAAiB,MAAa,KAC5B,MAAiB,MACjB,MAAiB,MAAkB,MAAiB,MAAxD,IAFgC,MADd,KAAtB,EAHA,EAkBI,GACKm/B,GAAAA,MAAQ,KACvB,MAIQ,MAAR,GAEe,MAAR,GAEQ,MAAR,KAGEn/B,MAAe,KAAK,MAAL,KAAtB,IAFU3E,MAAK,KAAA,WAAA,IAAA,IAAf,IAFO2E,MAAe,KAACq/B,IAA0B,MAAL,KAAtB,KAAtB,EAFOC,IAAmB,MAAL,KAArB,EAJA,EAec,GACE,KAAA,IAAO,KAACC,GAAAA,IAAD,KAAvB,EAIQ,GACM,KAAA,IAAO,OAACjhC,MAAI,MAAL,KAAvB,EASJ,GACkC,MAAA,IACzBmE,GAAAA,IAAe,KAAA,WAAfA,OAAP,EAGF,2BACwB67B,GAAAA,IAAhB,IAAN,KACY9+B,MAAS,KAAA,WAAA,IAAA,IAAnB,EAGQs4B,GAAW,EACH,MAEGwG,IAAjBkB,IAAJ,KAiBajhC,QAAM,KAAT,SAjBV,KACW,MAAT,MAGgB,KAAR,MACgB,MAAR,MACJ,KAAZ,GACqB8/B,IAAa,KAAN,KAAA,OAAA,IAAA,IAAd,MAEK,KAAR,MACM,KAAR,MACU,MAAR,SACX,GAAkB,SAAlB,IACc,QACE,MAMQ,MAAPvG,GAA2B,MAA3BA,MAAH,MACL,KAAX,GAA4B,KAA5B,GACqBuG,IAAe,KAAR,KAAA,OAAA,IAAA,IAAd,MAEAoB,IAAuB,KAAP3H,GAAsB,KAAtBA,MAAAA,EAAD,KAAlB,MACQ,KAAPA,GAAoB,KAApBA,KAAH,MACY,MAAPA,GAAsB,MAAzB,MACE,MAEJ,KAAT,IAAkC,SAAlC,IAAA,MAGc,MAAA,KAEN,KAAR,IAAiC,SAAjC,OACa,UAAX,IAA2C,UAA3C,OAEsB,cACE,MAAK,KAAL,KAEL,KAFjB,GAKsB,cACW,MAAK,KAAL,KAAlB4H,MAAAA,EAAuDniC,MAAI,KAAA,OAAA,IAAA,IAAU,MAAA,QAAtE,IAAA,IAAJ,IAAA,MANV,EAE6B,OAA6BA,MAAI,KAAA,OAAA,IAAA,IAAU,MAAA,QAA3B,IAAhB,MAAnB,MAQhB,IAlBciC,MAAS,KAAA,WAAA,IAAA,IAAnB,IA5BYA,MAAS,KAAA,WAAA,IAAA,IAAnB,EAoDN,OACiB0+B,MAAQ,KAAA,OAAA,IAAA,IAAf,IAED,MAAA,IACC,UAAA,KACE,KAAC,KAAD,KAQV,EARW,GACP,MACyB,UAAA,KACD,MAAA,IAAU,KAAC,kBAAD,MACV,KAAA,KAAa,KAAC,cAAD,MACnCyB,GAAAA,IAAW,QAACC,QAAkB,KAAQA,MAAkB,KAA7C,MAJb,EAMF,EAIJ,KACoBvB,GAAAA,IAAO,KAAA,OAAA,IAAA,IAAd,IAGiC,KAAC,kBAAD,MAKpC,UAAA,KACF,KAAC,KAAD,KAGI,KAAC,KAAD,KAQV,EAXO,GACkB,SAAA,UAAdpF,IAA0C,MAAU,QAAV,MAAjD,EAEO,GACe,UAAA,KACD,MAAA,IAAO,MAAA,IAC5B,GACwB,KAAA,KAAU,MAAA,IAChCC,GAAAA,IAAc,MAAA,MAFhB,EAIF,EAMJ,aACwBqF,GAAAA,IAAhB,IAAN,KACY/+B,MAAS,KAAA,WAAA,IAAA,IAAnB,EAEF,GACY,EADZ,IAIS,MACY,WAAPs4B,IAA4C,MAA/C,MACG,MAAJ,IAAA,GAA0B,YAAJ,IAAzB,MACkB,SAAPA,IAAoD,SAAvD,MACIuG,IAAe,KAAR,KAAA,OAAA,IAAA,IAAd,MACM,KAAPvG,MAAH,MACM,SAAA,KAChB,EA2CA,KAAA,OAAA,MACa93B,MAAO,KAAA,IAAC,QAAD,IAAA,IAAlB,EAAmB,eAAA,KACCs+B,GAAAA,IAAQkB,GAAAA,IAAOK,IAAR,KAAA,OAAA,IAAA,IAEd,MAAX,GAA6B,MAAO,MAApC,uBAIcnH,MAAc,KAAA,OAAA,IAAA,IAArB,IAMM,KAAH,MAaVoH,IAAc,KAAH,MAMXA,IAAgB,KAAH,MAMbA,IAAc,KAAH,MAcXA,IAAQ,MAAQ,KAAuB,KAPrC,OACSC,IAAcnmC,IAAM,MAAS,SAA7BmmC,GAAqCnmC,IAAM,MAAS,MAA3D,EACA,OAKI,OAEG,UAAX,IAEkB,UAAX,IACLkmC,MAAmB,MADd,EADLA,IAAmB,MAKCA,QAAlB,IAAJ,GACMtB,IAAO,MAAX,GAGEA,IAAO,MADF,GAEE,KAAY,SAAA,KAFd,GAGE,KAAY,KAAA,KAAwB,SAAA,WAHtC,IAKLsB,QAAgB,MALX,EADLA,QAAgB,MAUhBD,IAAJ,GAAmBA,IAAI,KAAX,OAAZ,IAAkDA,IAAI,KAAoBxB,IAAxBwB,IAAlD,GACE7lC,MAA0B,MAAC6lC,IAAI,KAAL,KAAsB,KAAC,KAAD,KADlD,EAKS,KAAgB,KAAC,KAAD,KAKd,MAAX,iCACS,MAAwB,MAAUG,QAAV,MAE/BF,IAAyB,KAAH,MAQxBA,IAAQ,MAAQG,IAAO,MAAd,SAAA,IAAkDA,IAAO,MAA1D,KACV,EA1FsB3lC,IAAO,MAAa,KAAA,eAAA,IAAA,IAAzB,KAAb,EAMAwlC,GAAAA,IAAS,MAAA,MACX,EAEa,MAEDA,GAAAA,IAAG,MACCA,IAAG,MACNI,GAAAA,IAAaJ,IAAyB,MAAA,IAAzBA,MAAAA,EAAD,KAHT,EAAA,KAAA,KAAA,IAKiBA,QAAjB,IAAA,GAAgD,KAAY,SAAA,KAA5D,EAAuBA,IAAG,MAA7B,MACcA,QAAd,IAAoBA,IAApB,GAAsC,MAAtC,EAAuB,MAAvB,IAAH,MACR53B,MAAW,OAAD,MAGZ,EAFI7E,GAAAA,IAAYk7B,GAAAA,IAASN,GAAAA,IAAMnG,IAAP,KAAA,OAAA,IAAA,MAAb,KACT,EAGY,EACZ5vB,UAAW,OAAD,MAGZ,EAFI5E,GAAAA,MAAW9D,MAAS,KAAA,WAAA,IAAA,MAAd,KACR,EAGc,EACd0I,UAAW,OAAD,MAGZ,EAFI5E,GAAAA,MAAW9D,MAAS,KAAA,WAAA,IAAA,MAAd,KACR,EAGY,EACZ0I,UAAW,OAAD,MAGZ,EAFI5E,GAAAA,IAAWhJ,GAAAA,IAAO,MAAa,KAAA,eAAA,IAAA,MAAzB,KACR,EAgCiD,GAC/CwlC,GAAAA,IAAoB,MAAOK,GAAAA,IAAeN,GAAAA,IAAI,KAAQ,MAAb,KAArB,MACtB,EAGEC,GAAAA,IAAoB,YAAA,QACtB,EAQMA,GAAAA,IAAG,QAAP,IACEG,IAAO,MAA2B,MAAUD,QAAV,MADpC,EAGF,EApiBF,MACSv/B,GAAO2/B,GAAAA,IAAmB,OAACpmC,MAAM,KAAU,KAAc,KAAA,KAA/B,WAAnBomC,IAAd,EAyDqB,GAClBC,GAAAA,SAAa,KACZF,OAAc,KACH,KAAI,IACnB,QAAaG,OAAWA,IAAAA,IAAd,IAChB,EAE8B,GACjB,KAAKD,GAAAA,SAAa,KAA7B,IACF,EAEwB,GACfA,GAAAA,SAAa,KACL,KAAA,OAAR,GAAqB,KAAI,IAAhC,EAGsB,GACX,KAAmB,KAACA,GAAAA,SAAa,KAAd,KAA9B,EAGsB,GAClB,KAAKA,GAAAA,SAAa,KAAUF,OAAc,KAAjB,IAC/B,EAE4B,SACL,KAArB,QAAA,SAAA,GACU,KAAmB,KAAA,KAA3B,GACe,KAAc,KAAI,gBAAlB,IADf,IAIJ,EAEyB,KACX,IAAH,IACG,KAAC,KAAD,KAGLI,GAAAA,MAAW,KAAlB,EAFE5B,GAAAA,IAAU,QAAA,OACZ,EAIyB,KACb,IAAH,IACG,KAAC,KAAD,KAGL4B,GAAAA,MAAW,KAAlB,EAFE5B,GAAAA,IAAU,QAAA,OACZ,EAI0B,KACd,IAAH,IACG,KAAC,KAAD,KAGL4B,GAAAA,MAAW,KAAlB,EAFE5B,GAAAA,IAAU,KAAC,OAAA,OAAA,IAAD,OACZ,EAmPwB,GACbL,GAAAA,IAAyB,MAAX,EAAA,KAAP,KAAA,aAAA,IAAA,IAAlB,EAgEyB,GACdC,GAAAA,IAAa,MACV,MACI,MACHF,IAAY,KAAL,KAAA,OAAA,IAAA,IACX,KAJyB,EAAA,KAAA,KAAA,IAAA,IAAjB,KAAA,aAAA,IAAA,IAAnB,EASmBE,GAAAA,IAAQ,KAAA,MAAO,aAAP,IAAA,QACd,MACb,EAKkB,GACdiC,GAAAA,IAAwB,KAAA,WAA5B,IAIWjC,IAAyC,KAAA,KAA1B,EAAA,KAAA,IAAP,KAAA,YAAA,IAAA,IAAnB,IAHYkC,MAAU,KAAA,WAAA,IAAA,IAApB,EAUqB,MACT,SACH,QACGplC,QAAK,KACC,KAAR,MACZ,E,Q,K,I,K,M,M,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,K,ICveJ,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,KAAA,IAAkC,QAAA,IA6Bf,IAmBMg/B,KAAW,KArBX,QAqBW,MAArB,KA+NZ,KA9NgB,MACN,MACG,MACD,SA8ND,MAAa,EAlRO,KAAA,IAAArQ,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAF,IAAA,KAAA,KAAA,OAAAG,MAAA,KAAA,EAAA,OAAAC,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAD,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAxlB,MAAA,KAAA,KAAA,KAAAwlB,MAAA,KAAAxlB,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAgDnB,EAAA,KAAA,IAAA0lB,GAAAA,IAAA,UAAA,MAAAC,IAAA,KAAA,IA8EZ3pB,IAAA,KAAA,MAAA,IAED,KAFC,IAMD,KANC,IAAA,IAAA,IAsBA,MAAA,IAED,KAFC,IAtBA,IA+BA,MAAA,IAED,KAFC,IA/BA,IA0DA,MAAA,IAED,KAFC,IA1DA,IAkEA,MAAA,IAED,KAFC,IAlEA,IA6EA,MAAA,IAED,KAFC,IA7EA,IAkFA,MAAA,IAED,KAFC,IAlFA,IAAA,MAiJA,EApMD,WAIEC,GAAAA,IAAA,KAAA6/B,GAAAA,MAAA,MACAlW,IAAA,KAAA,OA1BQ,SACN,SACG,SACD,MAeI,MASA,MACJ,UAAJ,IACc,IAAA,OAG0BsN,GAAW,EAAE,KAAvC6I,IAAG,EAAmBC,IAAA,KAAAC,IAAA,MAIpC,GAAuC,MAAnB,GAApB,MACEvlC,MAAY,SAAA,KAMiB,MAAf,MAId,KAXF,EAeItB,MAAW,KAAA,KAAc,KAA7B,IACEsB,MAAY,KAERtB,MAAW,KAAA,KAAmB,SAAA,SADhC,QAAA,QAAA,IADU,KAQTwB,MAAa,KAAA,QAAlB,KAIyB+hC,IAAAA,KAGvBx9B,IAAAA,KAAQ,WAARA,IAA+B+gC,IAAAA,KAHU,KAAA,UAAA,IAAA,IAAzB,MAKDC,IAAe,GAAA,GAAA,IAAlB,MACM,MAAA,IACpBD,IAAAA,KAA6B,MAAiB,EAAA,IAAW,kBAA5B,IAA4C,EAG3E,EACa,MAAX,EAGF,SACE,QAAA,OAGQ,MAAR,IAAA,IACE1+B,GAAAA,IAAAA,KACEq3B,IAAAA,KAAW,YADJ,MAIT,IAGEA,IAAAA,KAAkC,MAAK,MAAL,KAHpC,EACEA,IAAAA,KAA+B,MAAK,MAAL,KAKnB,QAClB,IAdcp+B,MAAK,KAAA,WAAA,IAAA,IAAf,EAgBJ,EACU,KAAoB,MAA5B,IAA4C,KAAoB,MAAhE,IAIsB,MAAP,MACJ,YAAA,QACb,IALI,EAOJ,KACU,KAAoB,MAA5B,OAIoB2+B,GAAAA,IAAAA,KAAhBmE,IAAJ,MASI,OAAJ,MAKoBxE,MAAhBwE,IAAJ,GAAmCxE,MAAkB,MAAA,KAArD,GAKUt+B,MAAK,KAAA,WAAA,IAAA,IAAf,EAJEylC,IAAAA,KAAgC,MAACE,IAAAA,OAAc,KAAY,MAA3B,MAChC,EANAF,IAAAA,KAA0B,MAAW,MAAX,QAC1B,EAVA1+B,IAAAA,KACEq3B,IAAAA,KAAW,YADJ,MAITA,KAA0B,MAAW,MAAX,MAC1B,IATUp+B,MAAK,KAAA,WAAA,IAAA,IAAf,EAyBJ,EACU,KAAoB,MAA5B,IAIAylC,GAAAA,IAAAA,KAA0B,MAAK,MAAL,OAC5B,IAJczlC,MAAK,KAAA,WAAA,IAAA,IAAf,EAMJ,kBAEqB,OAAA,OACC,OAAA,OACpBylC,GAAAA,IAAAA,KAA2B,MAA8B,MAA9B,OAEvBrH,IAAAA,KAAW,MAAf,GAAmC,UAAnC,IACEA,IAAAA,KAAkC,MAAK,MAAL,KADpC,EAGF,EAEA,EACM,MAAuB,OAAC,KAAD,KACL,IAAH,QACrB,EAF8B,GAAa,KAAA,IAAZ,EAI/B,IAAwB,IAEhB,MAA0B,SAAqB,KAArB,MADV,IAAA,IAgBhB,MAA0B,SAAkB,KAAlB,MAhBV,IAwBhB,MAA0B,SAAoB,KAApB,MAxBV,IAuChB,MAA0B,SAAoB,KAApB,MAvCV,IAAH,QA4DrB,EA3DuD,GAC3C,KAAQv1B,GAAAA,IAAI,MAAlB,OAGqD,KAC3C,KAAV,IAAA,QAAA,IAKWu1B,GAAAA,IAAAA,KAA6B,MAAG,KAAH,KACpC,EAJOwH,GAAAA,IAAAA,KAAkB,MAAG,KAAH,KAAS,MAMtC/8B,IAAkB,MAAKg9B,GAAAA,IAAAA,KAA0B,EAAA,IAAZ,KAAA,cAAA,IAAA,IAAnB,OACpB,IAZI,EAa4C,GACxC,KAAQh9B,GAAAA,IAAI,MAAlB,IAGAA,IAAsB,MAAP,MACG,MAAL,MACK,MAAKg9B,GAAAA,IAAAA,KAAc,KAAA,WAAA,IAAA,IAAnB,OACpB,IALI,EAM8C,GAC1C,KAAQh9B,GAAAA,IAAI,MAAlB,IAGAA,IAAsB,MAAP,MACG,MACZg9B,GAAAA,IAAAA,KACM,MACE,MAFgB,EAAA,KAAA,KAAV,KAAA,cAAA,IAAA,IADF,KAOI,MAAA,IACZ,MAAA,MACZ,IAZI,EAa8C,GAC1C,KAAQh9B,GAAAA,IAAI,MAAlB,OAGAA,IAAsB,MAAP,MACG,MACZg9B,GAAAA,IAAAA,KACS,KADe,EAAA,IAAV,KAAA,cAAA,IAAA,IADF,KAKA,MACZA,KAEQ,KAFgB,QAAA,KAAA,KAAV,KAAA,cAAA,IAAA,IADF,KAOI,MAAA,IACZ,MAAA,MACZ,IAjBI,E,Q,O,I,KClQI,MAAmC,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAfxH,YACE,OACaphC,GAAAA,IAAAD,IAAA,MAAA,KAAA,MAET7F,MAAM,MAAV,GACyBA,MAA4B,MAAA,KACnB,OAAhC,IACwB,IACF,KAAA,KAApB,IACKA,MAAM,KAAU,MAA0B,KAAA,MAA/C,GACoB,IAAT,IAJ6B,GAAV,KAAhC,IAOF,EAZ2B,EAAP,E,K,KCUR,MAAwC,OAAmB,MAAe,KAA4B,KAAT,QAAkB,EAZ7H,UACE,IACa,IACIA,MAAW,KAAA,KAEF,OAA1B,IACkB,IACI,KAAA,KAApB,IACoB,IAAT,IAHuB,GAAV,KAA1B,IAKA,EAT2B,EAAP,E,e,K,I,M,K,I,Q,O,WCWtB,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA4H,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAmB1B,SAAA,KAE/C,MAAA,EArByE,IAAA,KAAA,OAAA,cAAA8H,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,Q,I,MCOtD,MAAA,KAClB,KAAA,IADkB,QAON,MAAkB,EAN9B,MAAiCjC,GAAAA,IAAAD,OAAA,MAAA,KAAAqhC,IAAA,MACN,KAAA,IAAhB,QACTlnC,MAAa,QAAA,MACf,E,Q,I,I,K,I,K,OC4BC,MAAA,KA/BO,KA+BP,QAGW,MAAQ,EA5CT,KAAA,IAAAgwB,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAlqB,GAAAA,IAAAD,MAAA,IAAA,KAAAqqB,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAArqB,IAAAD,IAAA,IAAA,KAAA,KAAA,OAAAuqB,MAAA,KAAA,EAAA,OAAAtqB,IAAAD,OAAA,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAuqB,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAxlB,MAAA,KAAA,KAAA,KAAAwlB,MAAA,KAAAxlB,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAUH,EAAA,KAAA,IAAA9E,GAAAA,IAAAD,OAAA,MAAA,QAAA,MAAA0qB,IAAA,KAAA,OAkBR,IAAA,KAAA,MAAA,IAGA,KAHA,IAAA,IAAA,IAQA,MAAA,IAGA,KAHA,IARA,IAAA,MAaC,EA3BD,SAIEzqB,GAAAA,IAAAD,OAAA,MAAA,KAAAshC,GAAAA,IAAA,SACA,IAAA,OACE9R,IAAAA,GAAiB5wB,IAAjB4wB,IADF,MAKA7E,IAAA,QAAA,OACA,KAAc,MAAQ,EAMxB,GACE1qB,GAAAA,IAAAD,OAAA,MAAA,KAAc,KAAK,OAAT,QAAV,MACW,KAAK,KAAhB,EAMF,GACa,KAAK,MAAT,KAAP,E,Q,I,I,K,I,K,M,M,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,K,ICtCJ,IAAA,QAAA,IAAA,KAAA,KAAA,OAyB0B,IAAA,KAAA,KAbJ,QAaI,MAAV,KAkJb,KAjJW,MACE,MACH,SAkJC,MAAc,EA9KkC,KAAA,IAAAmqB,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAF,IAAA,KAAA,KAAA,OAAAG,MAAA,KAAA,EAAA,OAAAC,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAD,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAxlB,MAAA,KAAA,KAAA,KAAAwlB,MAAA,KAAAxlB,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAyB9C,EAAA,KAAA,IAAA0lB,GAAAA,IAAA,UAAA,MAAAC,IAAA,KAAA,IAiBb3pB,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAMA,MAAA,IAED,KAFC,IANA,IAqBA,MAAA,IAED,KAFC,IArBA,IAoDA,MAAA,IAED,KAFC,IApDA,IA+EA,MAAA,IAED,KAFC,IA/EA,IA0GA,MAAA,IAED,KAFC,IA1GA,IAqHA,MAAA,IAED,KAFC,IArHA,IAyHA,MAAA,IAED,KAFC,IAzHA,IA6HA,MAAA,IAED,KAFC,IA7HA,IAAA,MAiIA,EApID,EAAcC,GAAAA,IAAA,KAAAg+B,GAAAA,MAAA,MACZrU,IAAA,KAAA,OAVG,SACE,SACH,QAKI,MAIK,MAAA,IAAG,EAGhB,IACkB,QACL,MACC,QACd,EAEA,KACkB,MACE,MAAC,MAAA,IAAD,QAClB,IACU,MAAR,GAEe,MACK,MAAC,EADd,OAGc,IAAD,KAHb,MACc,IAAD,KADb,EADa,MAAC,MAAA,IAAD,KAMF,MAAC,MAAA,IAAD,KARpB,EAUF,EAEA,SACe,QAEb,QAMA4W,GAAAA,IAAAA,KAAoC,MAAK,KAAL,KAAgB,KAClD,KAWA,KAZkD,QAoBtD,IAzBc5hC,MAAS,KAAA,WAAA,IAAA,IAAnB,EAMA,GACM0E,GAAAA,IAAI,MAAR,GAIyB,UAAA,QAAK,IACXm9B,GAAAA,IAAAA,OAAAA,MAAAA,KAAAA,MAAW,KAE9Bn9B,IAAyB,MAAb,MACO,SAAA,KACrB,IARI,EAUEA,GAAAA,IAAI,MAAR,GAGAA,OAAW,MACQ,SAAA,OACrB,IAJI,EAQR,SACe,QAEb,QAMAk9B,GAAAA,IAAAA,KAAoC,MAAK,KAAL,KAAgB,KAClD,KAOA,KARkD,QAgBtD,IArBc5hC,MAAS,KAAA,WAAA,IAAA,IAAnB,EAOM6E,GAAAA,IAAI,MAAR,GAGAA,OAAY,MACO,SAAA,OACrB,IAJI,EAMEA,GAAAA,IAAI,MAAR,GAGAA,OAAW,MACQ,SAAA,OACrB,IAJI,EAQR,eAAwC,SAAAg1B,IAAA,OAAAA,IAAA,IAAAA,EACzB,QAEb,QAMA+H,GAAAA,IAAAA,KAAiC,MAAK,KAAL,MAA0B,KACzD,KAOA,KARyD,MAgB7D,IArBc5hC,MAAS,KAAA,WAAA,IAAA,IAAnB,EAOM8hC,GAAAA,IAAI,MAAR,GAGAA,OAAY,MACO,SAAA,OACrB,IAJI,EAMEA,GAAAA,IAAI,MAAR,GAGAA,OAAW,MACQ,SAAA,OACrB,IAJI,EAQR,IACe,MAEL,QAAR,IAAsC,SAAtC,IACa,MAAA,IACQ,MAAA,KAGV,MAAA,MACb,EAEA,EACa,MAAX,EAGF,EACa,MAAX,EAGF,EACa,MAAX,E,e,K,I,M,K,I,Q,O,WC1KJ,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA1/B,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAO1B,SAAA,KAE/C,MAAA,EATyE,IAAA,KAAA,OAAA,cAAA8H,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,a,M,K,I,Q,S,M,Q,I,Q,I,K,K,I,Q,I,K,KCA1E,IAAA,QAAA,IAAA,KAAA,KAKEu3B,OADF,GAESA,KAA6B,KAAA,IAAE,MAAtC,SAFF,IAIoBA,KAA6B,KAAA,IAGpB,UAATr2B,IACE,MAAhB,MAAJ,IACmC,MAAb,MAAA,aAAA,MAAL,IADjB,oB,SAuEC7B,MAAM,MAxCT,IAC4B,KAyDzB,IAzDyB,IAyDzB,MAUa,KAab,IAAA,MAAA,EAlBM,cAAsS,SAAA,KAA7S,EA9D0B,EAAA,KAAA,IAOzBR,GAAAA,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAIA,MAAA,IAED,KAFC,IAJA,IAQA,MAAA,IAED,KAFC,IARA,IAYA,MAAA,IAED,KAFC,IAZA,IAgBA,MAAA,IAED,KAFC,IAhBA,IAoBA,MAAA,IAED,KAFC,IApBA,IAwBA,MAAA,IAED,KAFC,IAxBA,IA+BD2gC,IAAA,EAAA,IACA,KADA,IA/BC,IAkCA,MAAA,IAED,KAFC,IAlCA,MAAA,MAkDA,EAtDD,SAAyB1gC,GAAAA,IAAA,KAAAk+B,GAAAA,IAAA,MAFa,IAAzB,MAGP,OAAJ,wBACE/kC,MAAW,KAAA,KAAgB,KAAC,KAAD,KAE/B,EAFgC,GAAOgK,GAAAA,IAAW,MAAMw9B,IAAM,IAAZ,MAAf,EAInC,EACM,MAAmB,KAAC,OAAA,OAAA,IAAD,OACzB,EAEA,EACYnmC,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAKF,EACa,QAAe+F,MAAM,MAAU,IAAA,IAA1C,EAGF,IACU,MAAc,OAAtB,UAGiB,MAAc,QAAlB,IAAH,IACC,MAAqB,MAAC,SAAD,MAAhC,MAHE,EAG+B,aAG7BqgC,QAAuB,MAAL,QADlB5H,IAGA4H,SAAuB,IAAL,SAHlB5H,IAAAA,IAIW6H,GAAAA,OAAVn6B,OAJDsyB,IADF,EAkBU,EAAA,KAAA,IA2Cbj5B,GAAAA,IAAA,KAAA,MAAA,IAED,KAFC,IAAA,IAAA,IAIA,MAAA,IAED,KAFC,IAJA,IAQA,MAAA,IAED,KAFC,IARA,IAYA,MAAA,IAED,KAFC,IAZA,IAgBA,MAAA,IAED,KAFC,IAhBA,IAoBA,MAAA,IAED,KAFC,IApBA,IAwBA,MAAA,IAED,KAFC,IAxBA,IA4BA,MAAA,IAED,KAFC,IA5BA,IAgCA,MAAA,IAED,KAFC,IAhCA,IAoCA,MAAA,IAED,KAFC,IApCA,IAwCA,MAAA,IAED,KAFC,IAxCA,IA+CA,MAAA,IAED,KAFC,IA/CA,IAmDA,MAAA,IAED,KAFC,IAnDA,IA6DA,MAAA,IAED,KAFC,IA7DA,IAiEA,MAAA,IAxGD,KAwGC,IAAA,IAAA,IAnGA,MAAA,IAED,KAFC,IAmGA,MAjEA,OA9BA,EAGD,YAA6CC,GAAAA,IAAA,KAAA8gC,GAAAA,MAAA,QAdxB,MAgBnB,MAAaC,IAAe,KAA5B,MAMM,OAAJ,IAMyB,KAAA,IANzB,EAEOA,IAAe,QAApB,KACYpiC,MAAW,MAAA,SAAA,KAAF,KAAA,OAAA,IAAA,IAAnB,EAKgB,UAAA,WAApB,GACyB,KAAW,QAAPqiC,MAAJ,MAEN,MAAA,QAAnB,KACS,MAAA,KAAA,KAEW,MAAA,KAApB,MAAA,EAGa,MAAA,KAAA,MAAJ,MAvBX,EACW,MACA,MAAc,UAAA,KAAvB,GACM,MAAK,IAAA,MAsBf,EAEA,EACYxmC,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACsB,KAAA,IAApB,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACYA,MAAK,KAAA,WAAA,IAAA,IAAf,EAGF,EACU,QAAR,IACmC0jC,GAAAA,IAAe,KAAA,OAAA,IAAA,IAAtB,MAEjB,MAAX,EAGF,EACsB,KAAA,IAApB,EAGF,UACU,QAAR,IAI2B,MAA+B,KAAA,IACpC,MAAa,KAAA,WAAjB,OACP,MAAJ,IAAA,IAAP,EALa,MAAX,EAQJ,EACY1jC,MAAK,KAAA,WAAA,IAAA,IAAf,EAvGF,GACMymC,GAAAA,MAAJ,IAGUA,IAAsB,KAAK,MAAsB,KAAK,KAAoB,OAA5E,MAAA,iBAAA,IAAR,IAFYzmC,MAAK,KAAA,WAAA,IAAA,IAAf,EAKJ,EACE,E,c,I,I,K,I,K,MCjIJrB,MAAqB,KAAwB,IAAA,QAAxB,UAQK,MAAA,KAAA,MAAT,KAiBZ,KAEL,IAAA,KAAoC,MAAY,SAAZ,MAuBX8H,MAAO,KAAA,OAAA,IAAA,IAAd,IAElB9H,MAAuB,MAAY,KACtB,EAAA,IADkC,EAAA,KAAxB,MAInB,KAAA,OAAJ,IAA2CoH,MAAM,MAAb,OAApC,IACIpH,MAAqB,KAAY,KAAYoH,MAAM,MAAc,UAA5C,OADzB,Q,S,S,SAWqB,KAkBhB,IAKeU,MAAO,KAAA,OAAA,IAAA,IAAd,IAYb9H,MAAuB,MAAgB,KAC3B,EAAA,IACD,EAAA,IAFwC,EAAA,KAAA,KAA5B,MAInB,KAAA,GAAJ,IAA2CoH,MAAM,MAAb,OAApC,IACIpH,MAAqB,KAAgB,KAAYoH,MAAM,MAAc,UAAhD,OAMF,MACD2gC,IAAH,MACJ,MAED,MACR,KAAiC,KAAmB,MAA5B,MACxB,KAAuBA,IAAH,MAAc,EAzH3B,KAAA,IAAA/X,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,OAAAlqB,GAAAA,IAAAD,MAAA,IAAA,KAAAqqB,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAArqB,IAAAD,IAAA,IAAA,KAAA,KAAA,OAAAuqB,MAAA,KAAA,EAAA,OAAAtqB,IAAAD,OAAA,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAuqB,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAxlB,MAAA,KAAA,KAAA,KAAAwlB,MAAA,KAAAxlB,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAiCb,EACmB5K,MAAa,KAAC+nC,GAAAA,IAAW,KAAZ,KAC5BjiC,IAAAD,OAAA,MAAA,KAAA,MAAgC,KAAA,KAChCmiC,IAAgB,OAAA,MAChB,EAKJ,GACQA,GAAAA,IAAgB,KAAA,OAApB,IAGAA,IAAgB,OAAA,MACI,MAAC,MAAA,IAAD,OACxB,IAJQ,EAoDR,OACmBC,GAAAA,IAAW,KAAA,OAC1B,IAGA,IAFcziC,MAAwE0iC,IAA+B,GAA5F,MAAA,SAAA,KAAF,KAAA,OAAA,IAAA,IAAnB,EAzFS,EAAA,KAAA,IAAApiC,GAAAA,IAAAD,OAAA,MAAA,QAAA,MAAA0qB,IAAA,KAAA,OAQb,IAAA,KAAA,MAAA,IAGA,KAHA,IAAA,IAAA,IAAA,MASC,EAbD,GAAczqB,GAAAA,IAAAD,OAAA,MAAA,KAAAkiC,GAAAA,IAAA,MACVvX,IAAA,KAAA,OACUhrB,MAAS,KAAA,WAAA,IAAA,IAAnB,EAKJ,OACoBwiC,GAAAA,IAAgB,KAAA,KAC5B,OAAJ,IAGA,IAFcxiC,QAAoE,IAAyB,GAAlF,MAAA,SAAA,KAAF,KAAA,OAAA,IAAA,IAAnB,EA6CS,EAAA,KAAA,IAOjBM,GAAAA,IAAAD,OAAA,MAAA,KAAA,MAAA,IAGA,KAHA,IAAA,IAAA,IAMA,MAAA,IAGA,KAHA,IANA,IAAA,MAWC,EAdD,GAAcC,GAAAA,IAAAD,OAAA,MAAA,KAAAsiC,GAAAA,IAAA,MACVF,IAAW,KAAOG,IAAiB,IAAxB,MACf,EAKWC,GAAAA,SAAS,KAAhB,EAMAC,GAAAA,IAAYD,SAAS,KAAV,KACf,E,aC3EO,cAAX,GACiB,KAAH,MADd,EAMC,EAFGziC,GAAAA,IAAOC,MAAA,MAAA,KAAwB,gBAAA,MACjC,E,Q,I,M,M,Q,I,K,K,I,I,Q,I,K,K,ICTF,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IA4BW,KAiIR,OAGW,MAAS,EApIZ,EAAA,KAAA,IAAAe,GAAAA,IAAA,KAAA,MAAA,IACT,KADS,IAAA,IAAA,IAwER,MAAA,IAED,KAFC,IAxEQ,QAAA,OAiIR,EAjIQC,GAAAA,IAAA,KAAA0hC,GAAAA,QAAA,MAAA,EACT,wBAMMxiC,GAAAA,IAAAA,KAAQ,SAAZ,OAUWA,IAAAA,KAAQ,SAAZ,6BAEHH,IAAOC,OAAA,IAAA,KAAqD,KAC9D,GACE,EAEuD,KAAA,OAGhD2iC,MAAAA,GACEh8B,MAFmB,EAAA,IAAA,MAAA,IAM9B,GAAsB,KAAtB,GAC6B,KAAV,MAKWi8B,GAEzB,EAAA,IAAD,IAAA,IAF0BA,EACb,UAAA,MAEsB,MAAA,IACA,MAAA,IACD,MAAA,IAEtC,GACsC,KAAbC,MAAH,MAEtB,GACwC,KAAdC,MAAH,MAEvB,GACwC,KAAdC,MAAH,MADvB,oBAoBoC,MADpB,KAbC,KAcmB,OArD/B,EATLL,GAAAA,IAAY,6BAAA,wBAgEhB,EAhBqB,MACAt/B,GAAAA,IAAS,MAAxB,IAQsBA,IAAS,MAAxB,OACL60B,IAAAA,GAAWA,IAAO,MAAlBA,MAAgCA,IAAiB,MAAA,IAAjDA,EARkB70B,IAAS,MAA3B,IAEyBA,IAAS,MAA3B,IAEkBA,IAAS,MAA3B,IACL2/B,IAAc,KAAdA,GAA0BA,IAAsB,KAAA,IAAhDA,EAFAD,IAAc,KAAdA,GAA0BA,IAAsB,KAAA,IAAhDA,EAFAD,IAAa,KAAbA,GAAyBA,IAAqB,KAAA,IAA9CA,EASN,EACgB,EAA0BpnC,MAAY,QAAA,KAAjB,EAKzC,uBAImB,SAAA+9B,IAAA,OAAAA,IAAA,IACI,QAAAA,IAAA,IACA,QAAAA,IAAA,IACJ,QAAAA,IAAA,IAEbt5B,GAAAA,IAAAA,KAAQ,SAAZ,iCAC+B,IACb,IAIZ,OAAJ,MAEWvE,MAAa,KAAA,iBAAjB,6BACoB,KAAC,KAAD,KADpB,EADO,IAAA,4BAoBdqnC,IAAAA,KAA6B,MAElBL,MACEh8B,KACTi8B,IACM9+B,KAENm/B,IACAC,IACAC,QAEoBlL,IAAO,MAAP,KAVtB,EAAA,IAAA,IAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAYA,KAb2B,MAmBjC,EArCgC,UACxBnB,GAAAA,IAAsB,KAAN,IACT,SAAP,IAEc,SAAP,MACkBp4B,QAAM,KAAT,IADf,IADaA,QAAM,KAAT,IAIV,MAAP,KACuBA,QAAM,KAAT,IAEb,KAAP,GAAyB0kC,IAAAA,GAAqB,IAAE,QAAxB,IAAxB,IACqC,EAChB,KAAHC,MAAH,IACbT,IAAY,KAAA,KAHd,EAKF,EAiBa9L,GAAAA,OAAS,IACpBwM,QAAQ,KAARA,EACF,E,Q,K,MC9JR,MAAA,QAAA,IAAA,KAAA,KAAA,IAIiB,EACA,KADA,QAAH,MAaZ,EAfF,EAA0B,EAGT,GAERC,GAAAA,IAAAA,KAAL,KACE,EAGFA,IAAAA,KAAoC,MAElCC,IACA98B,GAAY88B,IAAZ98B,GAHkC,SAKtC,E,e,K,I,M,K,I,Q,O,WCbF,OAAA,KAA6E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA3E,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAmCtC,SAAA,KAA8B,MAAA,EAnCQ,IAAA,KAAA,OAAA,cAAA8H,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,GCErD,QACxB,SAKE,OAAA,KAAA,YAA6C,KAA7C,OALF,EAEqB,MAAA,KAAH,MAIjB,EAD8C,IAAA,E,aCPrC,QAAV,IAA2C,MAA3C,KAG+B,IAAA,KACZ,KAJnB,EACyB,wBAoBE,KAAb,MACF,MAAZ,QAC6B,KAAb,MADhB,IAG8B,KAAhB,UACqB,KAArB,UAGW,KAAX,UAGZ,KAFY,UAI6B,KAA7B,UAG4B,KAA5B,UAOgB,KAAd,MACf,EA3BM4F,GAAAA,IAAwC,YAAA,MADpC,EAIsB/H,GAAAA,IAAOC,OAAA,MAAA,KAAb,EAEQD,GAAAA,IAAOC,OAAA,MAAA,KAAb,EAEOD,GAAAA,IAAOC,OAAA,MAAA,KAAb,EAE5BD,GAAAA,IAAOC,OAAA,MAAA,KAD0B,EAGJD,GAAAA,IAAOC,OAAA,MAAA,KAAb,EAGjBD,GAAAA,IAAOC,OAAA,MAAA,KAAyC,KAAtD,EAGAD,GAAAA,IAAOC,OAAA,MAAA,KADkC,EAIzCD,GAAAA,IAAOC,OAAA,MAAA,KADiC,EAOND,GAAAA,IAAOC,OAAA,MAAA,KAAb,E,W,MC/C9B,MAAA,QAAA,IAAA,KAAA,KAAA,IAEoB,EACL,KADK,QAgBN,MAAe,EAfd,KAGTjG,GAAAA,IAAwB,MAAA,OACxB0B,MAAW,UAAC,IAAD,KACb,EAAE,IACAA,MAAW,MAA+C,KAAA,QAA9C,IAAD,KACO,KAAA,IAEhBgoC,GAAAA,IAAAA,KAAJ,GACEA,IAAAA,KAAoC,MAAA,MADtC,EAGF,E,e,K,I,M,K,I,Q,O,WCbF,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA1hC,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAMnC,SAAA,KAAwB,MAAA,EANW,IAAA,KAAA,OAAA,cAAA8H,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,K,O,O,ICAjD,EACjB,KADiB,QA0BX,QAAoB,EAzB1B,UAIOnI,GAAAA,IAA2B,MAAA,OACpC,MAGE0B,MAAW,UAAA,KAHb,IACEA,MAAW,UAAA,KAIf,EAAE,IACAA,MAAW,MACwD,KAAA,QAAjE,IADS,KAGO,KAAA,IAIlBsE,GAAAA,IAAOC,MAAA,IAAA,KAA+B,QACxC,MAC6C,eAAA,OAE/C,E,e,K,I,M,K,I,Q,O,WCvBF,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA+B,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAMnC,SAAA,KAA6B,MAAA,EANM,IAAA,KAAA,OAAA,cAAA8H,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,K,O,O,ICExD,UAAH,MAQ+B,IAE/B,EAEI,KAFJ,KAeD,KAfC,KAyBI,KAzBJ,KAAH,OA8BE,QAAU,EA5BL,UAA6C,KAAtBvG,QAAAyF,IAAAA,IAAA,KAAA,UAAA,IAAA,OAAsB,IAAtB,IAAAC,IAAA,IAAA,GAAsB,IAEjDtH,GAAAA,IAAM,MAAb,OAAJ,IAIM2pC,IAAJ,OAAA,IACEA,IAAc,KAAA,MADhB,EAHAC,IAAM,MAAa,KAAb,IAAA,IAAmB,KAAA,KAAN,MAOvB,EAGY,YACIC,GAAAA,IAAS,IACvB3jC,IAAAD,IAAA,IAAA,SAEE,MAAsC7F,MAAW,KAAA,KAAoB,KAAA,QAArE,IAAA,IAFF,MAGE,GAL+BwB,MAAAg8B,IAAAA,IAAA,KAAA,UAAA,IAAA,OAK/B,IAL+B,IAAAC,IAAA,IAAA,GAK/B,IAEFn8B,MAAO,IAAO,KAAA,MAChB,EAGgB,MAAA,MAChB,E,QCzCF,MAAA,QAAA,IAAA,KAAA,KAMiC+E,QACnB,MAA4B,E,ECDU,EAC7C,KAD6C,KAE5C,KAF4C,KAQ3C,KAR2C,KASpC,KAToC,KAU/C,KAV+C,QAatC,QAAqB,EAZ5B,EAAI,EACH,EACJ/E,MAAa,SAAA,OAIf,EACO,EAAI,EACG,EAAI,EACf,EAAI,E,K,O,I,QCyBY,QAAkB,EAhCvC,KAAA,IAUIsE,GAAAA,IAAOC,MAAA,MAAA,KAAyC,KACvB,YAGzB,KAHyB,OAmB7B,EAhBI,GAOE,KACoBxE,MAAiB,KAAZ,KAAA,OAAA,IAAA,IACQ,MAAd,MACjBkL,GAAAA,MAAQ,KAGVA,GAAAA,QAAQ,KACV,E,e,K,I,M,K,I,Q,O,WCnCJ,OAAA,KAA6E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA3E,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAe7B,SAAA,KAAwB,MAAA,EAfK,IAAA,KAAA,OAAA,cAAA8H,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,Q,I,MCC7E,MAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IAEA,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IAEA,IAAA,QAAA,IAAA,KAAA,KAAA,IAkC6B,EAAH,IACd,IACgB,EAAH,MAC4BhI,MAAG,KAAA,OAAA,IAAA,IAAV,IACmBA,MAAG,KAAA,OAAA,IAAA,IAAV,IAExD,KAD4E,MAIjD,IAOT,EACS,KADT,KAKS,KALT,KASJ,KATI,KAkCD,KAlCC,KAsEF,KAtEE,KA2EH,KA3EG,KA+ER,KA/EQ,KAmFJ,KAnFI,KAuFP,KAvFO,KA6FP,KA7FO,KAiGP,KAjGO,KAwGqB,KAxGrB,KAmHJ,KAnHI,KAkJH,KAlJG,KAmLkB,KAnLlB,KA4LE,KA5LF,KAwMa,KAxMb,KA2ND,KA3NC,KAkQA,KAlQA,KAAH,OA2QL,QAAZ,IACE4N,KAAoC,MAAgBlI,QAAhB,MAEpCA,IAA6B,UAAW,KAAX,MAWdA,OAAH,MAAe,EAnS3B,KAA2C,IAAd,EAYH,MAAA,MAC1B,EAG2B,MAAA,MAC3B,EAEc,GACE,OAAC,KAAD,OAiBhB,EAjBiB,GACA,MACXA,GADF,GAGE2C,IAAAA,KACW,QAATshC,IAGS,YAJF,OAMTjkC,IAA6B,MAClB,MACA,MACA,KAHkB,OAT/B,EACEA,IAA4B,MAAU,MAAkB,MAA5B,MAD9B,EAeF,EAQe,QAAA,IAAA,IAKeq8B,GAAAA,IAAAA,OAAuB,IAA1B,IAC3B6H,IAAoB,EAAA,KAEb,KAFa,KAAH,OAwBjB,GACEC,IAAmBD,IAAS,IAAZ,IAElB,EAzBO,KAEY,UAAb,IAAA,MAAA,GACa,MACfE,GAAAA,IAAAA,KACEC,IACEC,GAAAA,IACAC,IAFkC,MAIvB,MACA,MACbC,IAAAA,GAA4BA,IAAwB,KACvC,MACbC,IACAF,IACAG,IAEAC,IAAAA,OAAAA,IAAAA,KAAAA,SAAiB,SAFjBD,wBAXe,IAgBnB,EAQY,GACdR,GAAAA,IAAoB,KAAA,KAAH,IACjB,EAIAlkC,GAAAA,IAA6B,cAAA,SAC/B,EAEU,EACDzF,MAAW,KAAC2pC,GAAAA,IAAD,KAAlB,EAGY,EACL3pC,MAAW,KAAC4pC,GAAAA,IAAD,KAAlB,EAGS,EACT5pC,MAAA,KACK4pC,GAAAA,IADL,EAAA,MAAA,EAMOD,GAAAA,OAAS,IAAhB,EAKYlkC,GAAAA,IAA0B,MAAA,MAC3BzF,MAAA,KAAM2pC,IAAN,EAAA,MAFJ,EAAA,KAAA,KAAP,EASoC,MAAA,MACtC,EAOc,WAKZ,kBAIc,IAAH,IACTU,GAAAA,IAAAA,KAAQ7nC,IAAD,KACP8nC,IAAAA,KAAsB,MACWC,IAAQ,GAAA,GAAA,QAAvC,IACA,KAFoB,MAKxBniC,GAAAA,IAAAA,KACEuhC,IAAS,IAATA,GAAqBA,IAAS,IAAQ,MAAtCA,EACC,MAAA,aAAA,UAAA,QAAA,QAAA,IAFM,MAQTa,IAAAA,KAA2B,MAAC,EAAA,IAAD,KAC3Bb,IAAS,IAAY,YAAA,MACvB,EAbYnnC,GAAAA,IAAN,EAkBS,cAKb,kBAEI,MAGA8B,MAAc,MAAA,SAHd,IAAA,IADO,IAKT+lC,GAAAA,IAAAA,KAAQ7nC,IAAD,KACP8nC,IAAAA,KAAsB,MACYC,IAAQ,GAAA,GAAA,QAAxC,IACA,KAFoB,MAKxBniC,GAAAA,IAAAA,KACEuhC,IAAS,IAATA,GAAqBA,IAAS,IAAQ,MAAtCA,EACC,MAAA,aAAA,UAAA,QAAA,QAAA,IAFM,MAQTA,IAAS,IAAY,SAAA,MACvB,EAZYnnC,GAAAA,IAAN,EAoBJioC,GAAAA,IAAAA,OAAAA,MAAAA,KAAAA,SAAwC,KAC1C,EAOoB,EAEkB,cAAwB,KAAxB,SAGtC,EAH8D,EAAM,KAAN,EAAM,EAChE,EAS2B,GAKzBC,GAAAA,IAAiB,KAAA,KAArB,KACEppC,MAAY,KACT,MAAA,aAAA,MADS,KAIdopC,IAAiB,QAAA,MACjBC,IAAuB,QAAA,QACzB,EAOiB,QACMD,GAAAA,IAAiB,KAAA,KACtC,KACEppC,MAAY,KAAE,MAAA,SAAA,KAAF,KACRspC,IAAAA,KAAJ,GACEA,IAAAA,KAA8C,MAAA,KADhD,EAGA,QAEU,OAAE,KACP,KAAC,KAAD,KAKC,MAAC,KAAD,KAiBV,EArBUA,GAAAA,IAAAA,KAAJ,GACEA,IAAAA,KAA8C,MAACC,GAAAA,IAAD,KADhD,EAGF,EACO,KACLvpC,MAAa,KAAA,KAGXspC,GAAAA,IAAAA,KADF,GAEoBE,IAAAA,KAAlBC,IAFF,GAKEH,IAAAA,KAA2C,MAACC,GAAAA,IAAD,KAAa,OACtD,KADsD,KAL1D,EAaF,EAPM,GACE,GACED,GAAAA,IAAAA,KAA8C,MAACC,GAAAA,IAAD,KADhD,EAGF,EAWQ,GACWF,GAAAA,IAAuB,KAAA,KAClD,KACYtpC,MAAO,MAAA,aAAA,MAAF,KAAA,OAAA,IAAA,IAAf,IAEgB,IAAE,IACtB,EAMwC,EAI7B,KAAP,EAAO,EACL,E,Q,I,I,K,M,M,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,K,IClVR,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IAEA,IAAA,QAAA,IAAA,KAAA,KAAA,IAsBkB,KAqGf,IArGe,MACwCtB,MAAG,KAAA,OAAA,IAAA,IAAvC,MACmCA,MAAG,KAAA,OAAA,IAAA,IAAvC,QACC,MACM,SAoGd,MAAgB,EAnH5BuqC,GAAAA,IAA0B,YAAwB,KAAxB,QAG5B,EAFI1kC,GAAAA,IAAOC,OAAA,MAAA,KAAmB,IADsB,EAWlC,EAAA,KAAA,IAAAe,GAAAA,IAAA,KAAA,MAAA,IAMhB,KANgB,IAAA,IAAA,IA2BhB,MAAA,IAQA,KARA,IA3BgB,IA0ChB,MAAA,IAQA,KARA,IA1CgB,IAuDf,MAAA,IAED,KAFC,IAvDe,IA4EhB,MAAA,IAMA,KANA,IA5EgB,QAAA,OAqGf,EArGeC,GAAAA,IAAA,KAAAyjC,GAAAA,QAAA,MAAA,EAOTA,GAAAA,IAAY,MAAjB,GACEA,IAA6BjkC,GAAAA,IAAAA,KAAiC,KAGhD,YAHgD,OAApC,MAM1B2kC,MAAa,IAGVV,IAAY,MAAjB,GACEA,IAAmCjkC,GAAAA,IAAAA,KAAiC,KAGtD,YAHsD,OAApC,MADlC,EAQF,EAUA,EAIwB,MAAgBikC,GAAAA,IAAY,YAA5B,OAAtB,EAWF,EAIwB,MAAgBA,GAAAA,IAAY,YAA5B,OAAtB,EAGF,QAKEA,GAAAA,IAAuB,MAAA,IACT,KAAA,KAAd,KACEhpC,MAAY,KACT,MAAA,aAAA,MADS,KADd,QAKU,QAAA,MACH,EACG,KADH,IAAP,EAEI2pC,GAAAA,IAAa,KAACv9B,IAAD,OACf,EAUJ,YAC+B,EACC48B,GAAAA,IAAY,MAA1C,GAAA,GAA0D/X,GAA1D,IAAA,GAAA,IAA0DA,IAAA,KAAA,MAA3C,IAAU,OACE,IAAX,IAChB,EAAA,EAAA,GAAA,EAC4B,EACE+X,IAAY,MAA1C,GAAA,GAAA,IAAA,GAAA,IAAyD/X,IAAA,KAAA,MAA1C,IAAU,OACC,IAAX,IACf,EAAA,EAAA,GAAA,EAEI2Y,IAAAA,OAAJ,IAAkCA,IAAAA,KAAkB,MAApD,IACEA,IAAAA,KAA+B,YAAA,MAG7BC,IAAAA,KAAJ,IAA4BA,IAAAA,KAAY,MAAxC,IACEA,IAAAA,KAAyB,aAAA,MAD3B,MAIO,EAAA,KAAA,KAAP,E,e,K,I,M,K,I,Q,O,WC3HJ,OAAA,KAA6E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAvjC,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAOtC,SAAA,KAAgB,MAAA,EAPsB,IAAA,KAAA,OAAA,cAAA8H,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,e,K,I,M,K,I,Q,O,WCA7E,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAQnC,SAAA,KAAsB,MAAA,EARa,IAAA,KAAA,OAAA,cAAA8H,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,E,K,I,QC0I5D,QAAiB,EA3HpBqjC,GAAAA,MAAY,IAAnB,IAAA,EACA,MACO,IAAP,EAIJ,IAEE,E,ECrB8C,IAAH,IAE1B,MAAA,IAAH,IAEK,EACL,KADK,KAML,KANK,KAUU,KAVV,QAuBP,QAAgB,EArBd,MAAA,IACZC,IAAkB,OAAC,KAAD,OACpB,EAD0CC,GAAAA,SAAD,KAAZ,EAIpBA,GAAAA,IAAP,EAG2B,KAAA,IAI3BD,GAAAA,IAAe,KAAA,KACR,EACG,KADH,IAAP,EAEiBA,GAAAA,IAAiB,OAAC,KAAD,KAApB,MACZ,EAD6C9+B,GAAAA,OAAAA,IAAJ,E,W,K,I,K,M,M,K,I,Q,S,Q,I,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,K,I,I,Q,I,K,KCzBP,KAASlL,MAAT,KAAA,KAAA,KAAc,MAAA,E,K,I,G,M,I,I,K,E,M,G,I,K,G,I,K,I,G,K,E,G,M,E,I,K,K,O,M,K,E,O,I,K,M,E,E,K,O,O,M,K,G,M,K,K,G,K,O,I,M,K,K,K,M,K,M,M,K,O,K,E,E,I,I,I,I,E,E,EAAd,EAAA,KAAA,IAAAivB,GAAAA,IAAA,UAAA,MAAAC,IAAA,KAAA,IAAA3pB,IAAA,KAAA,KAAA,EAAA,MAAAC,GAAAA,IAAA,KAAAikC,GAAAA,IAAA,MAAAta,IAAA,KAAA,EAAA,MAAA,E,e,K,I,M,K,I,Q,O,WCExC,OAAA,KAA0E,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAA5oB,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAOnC,SAAA,KAA+B,MAAA,EAPI,IAAA,KAAA,OAAA,cAAA8H,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,E,W,I,I,K,I,O,M,K,I,Q,O,K,QCA1E,MAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,QACA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,OAGA,IAAA,KAgFC,EAhFiC,IAAA,KAAA,OAAA,cAAAD,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,aAAA,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,GAAAA,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAA,GAAA,EAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,KAAA,EAAA,EAAA,IAAA,EAAA,EAOnB,kCAcboI,GAAAA,IAAAA,WAAS,SAEiB4hC,IAA2BuB,IAAAA,KAGnDzlC,IAAAD,OAAA,IAAA,KAAA,KAAC2lC,IAAA,KAAwB,MACvB,IAAA,KAAA,KAACC,IAAA,QAKeC,MAAgB1rC,MAAa,MAAC,EAAD,KAE3C8F,IAAAD,IAAA,IAAA,KAAA,OAAc7F,MAAA,KAAiB,EAAA,KAAjB,EAAA,UAAd,MAPW,EAAA,KAAA,QAAA,QAAA,KAAA,QAAA,KAAA,IAAb,MADgC,EAAA,IAAA,IAAlC,YAwBF,MAAA,IAGmC2rC,IAAK,MAGpC7lC,IAAAD,IAAA,IAAA,KAAA,KACwB+lC,IAAAA,KAAW,MAA3BC,OADE,EAAA,IAAA,IAAV,MAO2B,UAAA,KACL,SAExBC,MAAAA,IAFwB,MAIA,MAAoBC,MAAAA,IAApB,MACA,MAExBC,IAA4B,MAAA,QAFJ,MAI1BA,IAAsB,MAGTphC,MAAO,KACCA,MAAO,KAJL,EAAA,KAAA,KAAA,KAAA,KAAD,KAMQ,MAAA,KAChC,E,qB,K,I,M,K,I,Q,O,M,K,QC1FA,IAAA,QAAA,IAAA,KAAA,QACA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAhD,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,OAA/B,IAUqB,MAACurC,KAAD,KAD4C,IAU1B,MAAA,EAnBR,IAAA,KAAA,OAAA,cAAAzjC,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAgBtBkkC,GAAAA,IAAAA,MAAWC,MAAD,KAAjB,E,KC1BwB,SAAA,QAAV,MACf,E,K,K,I,K,K,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,MCKkB9kC,MAAU,SAAA,KAAX,IAA+BA,MAAU,SAAA,KAAX,IAA8BA,MAAU,SAAA,KAAqBA,MAAU,SAAA,KAAwBA,MAAU,SAAA,KAAqBA,MAAU,SAAA,KAAX,IAAgCA,MAAU,SAAA,KAAX,IAA+BA,MAAU,SAAA,KAAX,IAAmCA,MAAU,SAAA,KAAqBA,MAAU,SAAA,KAAX,IAA4BA,MAAU,SAAA,KAAX,IAA4BA,MAAM,MAAP,IAC3V,EAAW,KAAX,KAAmD,KAAnD,KAAoF,KAApF,KAAiH,KAAjH,KAAD,IAAkIpH,MAAM,KAAP,IAAiB,EAAD,IAAiF,KAA4B,EAAD,MACjQ,KAAoB,KAAD,MAA+P,KAAuB,KAAD,MAA+F,KAAF,MAAgH,KAAA,OAAA,IAAA,IAAN,MACne,MAAQ,OAAJ,QAAsC,MAAUwB,MAAK,KAAN,IAAiBxB,MAAM,KAAU,KAAjB,IAAmC,IAAA,IAAD,IAAkB,UAAD,IAEqI,cAAD,IAIjQ,EAAA,IAAD,IAAkB,EAAA,IAAD,IAAqB,EAAA,KAAA,KAAA,KAA0F,EAAA,IAAe,KAAf,IAAiF,KAAjF,KAA4I,KAA5I,KAAoM,KAApM,KAAD,MAA2U,MAAmB,MACld,MAAwB,MAAqB,MAAmB,MAA6D,MACxH,KAAD,MACoH,KAAD,MAAyN,MAAyB,KAAD,MAAuE,KAAD,MAC3a,KAAD,MAAgE,MAAgB,KAAD,MAAsF,KAAD,MAA4F,KAAD,MAAsG,KAAD,MAClW,KAAD,MAAqE,KAAD,MAAmE,KAAD,MAAuC,KAAD,MAAqE,KAAD,MAA8D,KAAD,MAAkE,KAAD,MACtW,KAAD,MAAiF,KAAD,MAAsE,KAAD,MAAiE,KAAD,MAAoE,KAAD,MAA0D,KAAD,MAAwE,KAAD,MAC5Z,KAAD,UAA6D,MAAU,EAhBsR,KAAc,QAAwB,GAAxB,IAA+CmsC,GAAAA,IAAAA,GAAKA,IAAD,IAAJA,GAAU,MAAVA,IAA4C,KAAb,OAAN,EAAvC,EACvQ,SAA4B,SAAe,MAAaC,GAAAA,IAAD,MAAgBpnC,GAAGqnC,IAAJ,QAAK,EACwI,EAAa,EAAyB,SAA4B,SAAe,MAAaD,GAAAA,IAAD,MAAgBpnC,GAAGqnC,IAAJ,QAAK,EAE9d,aAA0B,MAAiB,OAA8B,OAAVh4B,IAAoB,KAAgB,OAAVA,IAAuB,QAAvBA,GAA6Ci4B,SAAhF,cAAA,SAAA,GAAkEC,IAAM,KAAA,MAANA,GAAcD,IAAgB,KAAA,KAAjB,GAAbC,GAA0C,IAAF,IAAxCA,EAA8D,GAATlN,OAAmB,IAA2B,MAAkB79B,MAAK,OAAf,IAA8CgrC,IAAD,IAAV,IAAP,GAA5B,IAA6D,MAArE,KAAR,MAAgF,GAAO,MAAP,GAAiC,SAAZ,QAAA,SAAA,GAAsC,IAAVn4B,IAAsB,IAAF,IAApBA,EAA2Co4B,GAAAA,IAAoCC,IAAC,KAA/C,EAAA,IAAA,IAAA,IAAA,IAAA,IAAA,KAAN,EAC/W,GAAgCD,GAAAA,IAAQ,KAAiB,KAAY,KAAe,MAA9D,EAAA,IAAA,OAAA,IAAA,IAAA,IAAA,KAAN,EAA6E,OAA+B,GAAX,IAAA,KAAqB,IAArB,GAAgC,KAAYA,GAAAA,IAAbp5B,IAArC,EAAoD,KAAyB,UAAD,IAAwC,KAAC,cAAQ,KAAT,UAAb,IAAN,EAA+C6V,GAAAA,OAAC,IAAR,EAA2B,UAAiC,GAAX,MAAA,IAAsC,KAAtC,IAAsE,QAAA,KAAtE,EAA2CyjB,GAAAA,IAAW,UAAL,KAAvD,EAC/R,6BAA4B,OAAS,QAAA,MAAA,EAAkD,IAAsB,IAAA,QAAA,UAAA,IAAuE,KAAgBF,GAAAA,IAAxB,IAA+BG,MAA/B,MAAA,IAAuC,SAA6O,QAAWC,IAASC,GAAAA,IAAC,KAAJ,MACnaC,IAAC,SAAiB,GAAvB,UAAoH,SAAwBxoC,MAAM,KAAIlD,UAAyD,IAA2CrB,MAAW,KAAA,KAAQ,SAAA,SAAxC,QAAA,IAAtB,IAAnD,QAAA,IAAD,KAAvB,EAAxF,KAAA,KAAkB,KAAA,IAAE,cAAhC,MAA2C,KAAWgtC,IAAK,GAAA,GAAJ,MAAHH,IAAcI,kBAAC,IAAH,IAAlC,KAAA,IAAE,WAAhC,KAD+Z,WAAf,IACxd,IAAYD,IAAC,MAAHH,IAAYI,kBAAC,IAAH,IAD4d,GAAT,QAAf,IACxE,EAD3K,KAAM,IAAWD,GAAAA,IAAC,MAAL,IAAaF,GAAAA,IAAC,KAADA,GAAkF,OAAUI,IAAC,QAADA,GAASC,IAAS,QAAF,GAAA,GAAY,KAAQ,QAApB,IAAiC,QAAa,KAACC,QAAD,UAAlB,IAA/BpoC,IAAAA,IAAH,MAA6E,KAAA,KAAjG,KAAvE,IAAqB,KAACooC,QAAD,UAAT/5B,IAAwB45B,MAAW,mBAAV,IAAhDH,GAAxC,EAAkG,GAAY,EAEtU,OAAkB,kBAA0B,MAAI,IAAGG,GAAAA,UAAY,iBAAX,IAAgD,EAAvE,EAAqD/jB,GAAAA,IAAM,KAAClkB,IAAIu6B,IAAC,GAAA,GAAA,OAAN,OAAb,EAAkC,OAAuB,YAAT,cAA0B,MAAY,IAAS,KAAC,KAAsE,KAAvE,MAAoJ,MAAN,MAA0B,MAAY,MAAY,SAAR,IAAiD,MAAP,EAAjB,MAAQ,KAAhB,EAArLlsB,GAAAA,IAAC,QAAR,IAAuBA,IAAC,YAAxB,IAAiCA,OAAS,MAAGA,OAAS,MAAtD,EAAwD,EAAqBA,GAAAA,IAAC,QAAR,IAAuBA,IAAC,YAAxB,IAAiCA,OAAS,MAAGA,OAAS,MAAtD,EAAwD,EAPpS,EAAW,EAA6B,EAAW,EAAsB,EAAW,EAAkB,EAAW,EAC7G,MAA4B,OAAd,QAAA,MAAA,IAAgM,MAAwB,sBAAA,MAAqB,IAAhLhS,YAAK,KAAX,EAAgN,GAAgB,MAA2B,aAAA,SAAsB,EAOvN,KAAA,IAAgBgsC,GAAAA,SAAI,QAAH,OAAyC,EAAtC,IAAWnkB,GAAAA,IAAO,KAAA,EAAA,MAAA,MAAgB,EAAY,IAAiB,IAAGmkB,GAAAA,SAAI,KAAH,MAA2BnkB,IAAP,EAANA,GAAAA,IAAC,GAAA,MAAE,EAAwCmkB,GAAAA,WAAI,KAAH,MAADA,GAA4B,IAAnC,EAAW,GAAY,EAAqB,GAAgBH,GAAAA,MAAC,KAAL,KAAe7rC,UAAK,KAAX,EAAqF,EAE9Z,eAAgB,OAAA,OAAkIisC,GAAAA,IAAM,KAAJ,EAAD,MAAgB,KAAQ,KAAQ,eAAQ,OAAsB,KAAVj5B,IAAoB,KAAOq4B,IAAC,KAAoB,KAAVr4B,IAAuB,QAAU,OAAJ,GAAY,KAAK,QAAjB,GAAsC,KAAK,MAAc,GAAA,SAAA,iBAAA,SAAA,GAAWk4B,IAAM,KAAA,MAANA,GAAcD,IAAgB,KAAA,KAAjB,GAAbC,GAAmD,IAAVl4B,IAAAA,IAAgC,IAAhCA,EAA2B,IAA5B,IAAxCk4B,EAA6F,GAATlN,OAAmB,IAA2B,MAAU79B,MAAK,OACpf,IAAmCgrC,IAAD,IAAV,IAAP,GAAjB,IAAkD,MADmb,KAAR,MACxZC,IAAQ,KAAlB,EAAA,IAAA,IAAA,IAAA,IAAA,IAAA,KAAN,IADcprC,UAAM,QAAA,IAAD,KAAX,EAC2E,GAAwBksC,GAAAA,IAAV,UAAA,MAAA,MAAA,MAAkJC,IAAV,EAAA,IAAA,KAAD,MAA0C,MAAjB,EAAmE,GAAkBC,GAAAA,IAAM,OAAA,MAAe,MAAG,EAA6C,IAAA,IAAN,EAC3Z/a,GAAAA,IAAV,EAAA,OAAA,IAAN,EAA+Ftb,GAAAA,IAAW,QAAA,QAAA,KAA6Bs2B,IAAlD,EAAA,IAAA,KAAA,KAAN,EAAyE,GAA8Bv2B,GAAAA,QAAiB9C,OAA3B,EAAA,OAAA,IAAA,KAAN,EAA6E,IAAkBs5B,GAAAA,IAAC,KAAyB,EAAD,MAAI,GAAK,IAAWA,OAAY,MAAG,EAAhB,EAACA,IAAY,MAAE,EAAwB,EAAiBtsC,YAAK,KAAX,EACzVusC,GAAAA,IAAC,KAAoB,YAAA,MAA5B,EAAyEA,GAAAA,IAAC,KAAmB,SAAA,KAA3B,EAAsD,EAAW,EAA8CA,GAAAA,IAAC,KAAyB,SAAA,KAAjC,EAA6EA,GAAAA,IAAC,KAAkB,WAAA,MAA1B,EAAiEA,GAAAA,IAAC,KAAc,MAAA,IAAtB,EAA6EA,GAAAA,IAAC,KAA4B,eAAA,OAApC,EAClWA,GAAAA,IAAC,KAA2B,YAAA,MAAnC,EAAuFA,GAAAA,IAAC,KAAwB,YAAA,MAAhC,EAA4EA,GAAAA,IAAC,KAAgB,WAAA,MAAxB,EAAyEA,GAAAA,IAAC,KAAmB,eAAA,OAA3B,EAAsEA,GAAAA,IAAC,KAAe,QAAA,KAAvB,EAAgEA,GAAAA,IAAC,KAAiB,QAAA,KAAzB,EAAkFA,GAAAA,IAAC,KAA6B,eAAA,OAArC,EAC3ZA,GAAAA,IAAC,KAAsB,MAAA,IAA9B,E,kB,K,I,K,M,I,Q,I,K,K,I,Q,I,K,K,I,Q,I,K,K,I,Q,I,K,K,I,I,Q,I,K,K,ICbjC,IAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,QAGA,IAAA,KAA+B,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAhmC,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,mC,SAsBC,KAAd,KAsGf,KA3F8B,MA8FlB6tC,KAAiB,KAChB,EAAA,KADiB,EAAA,KAAD,KAApB,OAME,MAAgB,EArIC,IAAA,KAAA,OAAA,cAAA/lC,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,KAAA,IAAAioB,GAAAA,MAAA,IAAA,IAAA,KAAA,EAAA,MAAAC,GAAAA,IAAA,KAAAC,GAAAA,IAAA,KAAAC,IAAA,GAAA,KAAA,EAAA,GAAA,MAAA,EAAAF,IAAA,KAAA,KAAA,OAAAG,MAAA,KAAA,EAAA,OAAAC,IAAA,KAAA,MAAA,EAAA,EAAA,KAAA,OAAA,OAAAD,MAAA,KAAA,GAAAA,MAAA,KAAA,KAAA,GAAA,KAAA,OAAA,IAAAxlB,MAAA,KAAA,KAAA,KAAAwlB,MAAA,KAAAxlB,MAAA,MAAA,KAAA,OAAA,KAAA,EAAA,EAAA,IAAA,IAAA,IAAA,IAAA,EAAA,EAAA,EAsBb,EAAA,KAAA,IAAA0lB,GAAAA,IAAA,UAAA,MAAAC,IAAA,KAAA,IASwB3pB,IAAA,KAAA,MAAA,IAIxC,KAJwC,IAAA,IAAA,IAsCvC,MAAA,IAED,KAFC,IAtCuC,IA4CvC,MAAA,IAED,KAFC,IA5CuC,IAAA,MA6FvC,EAtGe,MAAAC,GAAAA,IAAA,KAAAinC,GAAAA,IAAA,MAAA,KAAAtsC,MAAA,KAAA,UAAA,IAAA,MAAA,IAAA,IAAA,IAAA,GAAA,IAAAgvB,IAAA,KAAA,KAAAA,IAAA,IAAA,IAAA,KAAA,KAAA,MACD,UAAV,QAQQ,MAA2B,EAIxC,EAkCA,EAEA,EACU,QAAR,IACM,MAAqB,KAAA,IAD3B,EAGF,EAEA,IAWI1qB,GAAAA,IAAAD,OAAA,MAAA,KAAA,KAACkoC,IAAA,KACmB,KAAM,MAAX,GAAA,GAA8B,KAAM,MAAX,GAAzB,IAGNC,IAAM,MAIR,KAAM,KARR,EAAA,SAAA,KAAA,IAKE,KALF,IAAA,IAEM,KAAM,MAFjB,OAYkB,KAAM,WAC1B,IAEIloC,IAAAD,IAAA,IAAA,KAAA,KACoB,KAAM,MACZ,KAAM,MAEZ,KAAM,MAJN,EAAA,OAEE,IAFF,KAIJ,IAJI,KAAA,IAAR,MAWFC,IAAAD,IAAA,IAAA,KAAA,QAAC,IAAA,KAAA,MAAc,MAAiBooC,IAAAA,KAAAA,MAAkB,KAAM,MAAX,KAC3C,IAAA,KAAA,KAACF,IAAA,KAAYC,IAAM,MACX,KAAM,MAAX,GAAA,MADuD,IAAA,IAEnD,KAAM,MAF6C,IAGnD,KAAM,MAH6C,IAInD,KAAM,MAJ6C,IAAA,IAArD,EAAA,IAAA,KAAA,IAAL,MADsB,EAAA,IAAA,IAAxB,MADF,EAnBM3jC,GAAAA,OAAa,QACf,E,kB,K,M,I,Q,I,K,KCpGR,IAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,KAEA,IAAA,QAAA,IAAA,KAAA,QACA,IAAA,KAhBA,GAAA,QAAA,MAAA,OAAA,OAAA,QAAA,OAAAzC,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAAA,KAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,SAAA,GAAA,KAAA,SAAA,EAAA,KAAA,OAAA,EAAA,+BAgB+B,QAAA,IAcX,MAClB,KADkB,SA4GJ,SAEF,MAAQ,EA5ItB,IAAA,KAAA,OAAA,cAAA8H,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EA+BE,aAE+B,MACT,KACK,MACA,MACN,KACC,KACA,KACG,MACM,MACE,MACA,MACJ,MACF,MACU,MACZ,MACQ,MACA,MACA,MACA,MACE,MACtB,MACP,KACuB,MACjB,KACK,MACT,MACI,MACK6+B,GAAAA,IAAA,KAAAC,IAAA,UAKbqH,IAAqB,MAAC,cAAD,KADO,OAI9B,IAAA,IAAA,IAAA,IAAA,MAAA,OASUC,MAAYC,IAAkB,MAAlBA,GACTC,MAAeD,IAAkB,MAAlBA,GACdE,MAAgBF,IAAkB,KAAlBA,GAChBG,MAAgBH,IAAkB,MAAlBA,GAChBI,MAAgBJ,IAAkB,MAAlBA,GALN,EAAA,KAAA,KAAA,IAAA,KAAA,QASxB,IAAA,IAAA,IAAA,MAAA,IAQSK,MAAgBC,IAAkB,KAAlBA,GAChBC,MAAgBD,IAAkB,KAAlBA,GAChBE,MAAgBF,IAAkB,KAAlBA,GACfG,MAAiBH,IAAkB,KAAlBA,GAJH,EAAA,IAAA,IAAA,IAAA,OASZI,IAAAA,KAAuB,KAAX,OAECC,IAAK,MAAL,MAGvBjpC,IAAAD,OAAA,IAAA,KAAA,KAACmpC,IAAA,KAAY,MACX,IAAA,KAAA,KAACC,IAAA,OAAmBjvC,MAAA,SAGhBkvC,IAA8BA,OAAAA,GAEZC,OACTC,IAAyB,GAGlCC,GAAOC,IAAAA,OAAAA,IAAAA,KAAAA,MAA4B,KAGnCC,OAAAA,EAKAA,OAIQvR,OApBI,EAAA,KAAA,IAAA,KAAA,IAAA,IAAA,KAAA,KAAA,IAAA,KAAA,IAAA,IAAA,QAAA,IADI,EAAA,OAApB,MADoB,IAAA,IAAA,IAAtB,MADF,E,E,K,OCjEU,QAAgB,EAzB9B,OAIE,IAAsB,OAAtB,MAIKx8B,MAAa,KAAA,KAAlB,GACE,EAGqC,EACJ,KAEXstC,KAFxB,IAEwBA,IAAkB,IAAN,KAClC,GACE,GAAA,QAAA,SAAA,GAC6B,IAAhB,IADb,EAJyD,GAA7D,IASA,EAjBE,E,KCRiB,SAAA,KAK2B,QAAA,QAMlC,MAAuB,E,W,K,I,O,M,K,I,Q,S,M,M,QCRrC,IAAA,KAAA,QACA,IAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,QAEA,IAAA,KAAA,KAGE/oC,KAAQ,SAARA,IAgFI,MAAA,IAhFJA,QA6C0B,IAAA,KAAiC,KADtC,EAAA,IAIK,IAAA,KAAiC,KADlC,EAAA,IAIC,IAAA,KAAiC,KADjC,EAAA,IAIA,IAAA,KAAiC,KADnC,EAAA,IAIE,IAAA,KAAiC,KADhC,EAAA,IAID,IAAA,KAAiC,KADjC,EAAA,IAIA,IAAA,KAAiC,KADnC,EAAA,IAIE,IAAA,KAAiC,KADjC,EAAA,IAIA,IAAA,KAAiC,KAD9B,EAAA,IAIH,IAAA,KAAiC,KAD5B,EAAA,IApER,UAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAFnB,MAAA,IAAA,OAFgD,IAmF9C,MAGqB,SAAmB,KAAnB,MAcWypC,KAAsC,EACzD,QADyD,KAAjB,KAE1D,MAE+B,MAAA,EA1GH,IAAA,KAAA,OAAA,cAAA1nC,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,aAAA,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,GAAAA,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAA,GAAA,EAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,KAAA,EAAA,EAAA,IAAA,EAAA,EAwFuByvC,GAAAA,IAAN,E,W,I,I,K,I,K,K,I,K,M,M,K,I,Q,O,M,K,M,K,M,K,QC5FhD,MAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,IACA,IAAA,QAAA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAAA,IAEA,IAAA,QAAA,IAAA,KAAA,KAAA,OACA,IAAA,KAAA,KAkIC,EAlI8B,IAAA,KAAA,OAAA,cAAA3nC,MAAA,KAAA,OAAA,IAAA,IAAA,IAAAA,MAAA,KAAA,OAAA,IAAA,IAAA,IAAA,KAAA,GAAA,OAAA,KAAA,IAAA,EAAAC,MAAAC,GAAAC,IAAAD,EAAAD,IAAA,EAAA,aAAA,GAAA,KAAA,MAAA,OAAA,OAAA,QAAA,OAAAH,GAAAA,IAAA,KAAA,GAAA,KAAA,KAAA,MAAA,EAAA5H,MAAA,KAAAA,GAAAA,MAAA,KAAA,GAAA,EAAA,WAAA,SAAA,GAAA,IAAAA,MAAA,KAAA,KAAA,KAAA,MAAA,KAAA6H,GAAA7H,MAAA,KAAA,MAAA,GAAA,KAAA,GAAA,KAAA,GAAA,IAAA,OAAA,EAAAA,MAAA,KAAA,UAAA,EAAA,MAAA,GAAA,KAAA,MAAA,EAAA,KAAA,KAAA,EAAA,EAAA,IAAA,EAAA,EAkB7BoI,GAAAA,IAAAA,KACEsnC,MAAAA,UADO,SAIO,IAClB,EAQO,KAAA,OAAA,IAILC,GAAAA,IAAAA,KAAsC,MAAO,KAAP,MA2CtC,EA3C6C,EACVD,GAAAA,QAAAA,IAAAA,IAAmBjrC,GAAAA,IAAH,KAAjD,IAA6D,UAAhD,MAAQ,MAAQ,MAMVmrC,GAEfC,IAAAA,OAAAA,IAAAA,KAAAA,MAAiBC,GAAAA,IAAkB,IAAnB,KAFDF,EACfG,IAAAA,KAA6BtrC,GAAAA,IAAD,KAGhC,SAC2BmrC,GAErBG,IAAAA,KAA6BtrC,GAAAA,IAAD,KAFPmrC,GAGAA,GACrBC,IAAAA,OAAAA,IAAAA,KAAAA,MAAiBC,GAAAA,IAAkB,IAAnB,KAGpB,GAgBEE,IAAAA,KAAmC,MAhBrC,EAC2BC,IAAkC,MACzDxrC,GAAAA,IADyD,OAMvC,SAApB,MACEnD,MAAa,KACX2uC,IAAmD,MACjDxrC,IADiD,MADxC,KAYnB,EAgBG,MAIDirC,GAAAA,MAAJ,IAQMA,MAAgB,KAApB,IACS7jC,IAAG,MAAV,EANEqkC,MAAmB,KAAvB,KAU8B,OAGO,MAAA,aAAA,MAAJ,MACnC,EAbWrkC,IAAG,MAAV,EAS4B,EAC9B,EAOFzD,GAAAA,IAAAA,KAAUsnC,MAAAA,UAAD,MACFzjC,IAAAA,KAA8B,SAAA,KAA9BA,IAAP,EASK,EACYyjC,GAAAA,QAAAA,IAAAA,OAAgB,KAAjC,IAA6C,IAAA,QAAhC,MAGN,GAAP,E,K,O,I,K,I,K,I,K,I,K,I,QC4CY,QAAgC,EA5K9C,WACqB5pC,GAAAA,IAAAD,IAAA,IAAA,KAA8B,MAAA,QAEjD,IAAA,KACEuH,IAAAA,GAAgC,MAAVA,IAAtBA,IADF,OAQuE,MAAA,KAAA,KAC3C,MAEV,IAAyB,EAC3B,IAAuB,EAAvB,kBAEhB,MACqBtH,IAAAD,IAAA,IAAA,KAA8B,MAAA,gBACjD,GAGoB7F,MAAA,KACH,KADG,EAAA,OAIFA,MAAA,KACD,KADC,EAAA,OAILA,MAAA,KACI,MADJ,EAAA,OAIgB,MAf7B,kBAFF,MAqB2C,EAE3C,GAAA,QAAA,SAAA,GAC8B,IACfmwC,IAAgB,KACbC,IAAmB,KAOjCC,IAIIC,IAEA,EAAA,IAAA,IAFAA,EACA,EAAA,OALJD,IACIC,IAEE,EAAA,OAFFA,GAFc,IATtB,EAuBqBxqC,IAAAD,OAAA,IAAA,KAAA,MAErB7F,MAAa,KAAa,EAAA,IAAA,IAAA,IAAA,IAAb,MAObuwC,IAAuB,KAEvB,EAGF,GAIoBzqC,GAAAA,IAAAD,MAAA,MAAA,KAAsB,KAAA,IAC3B,MAAb,GAA2C,MAA3C,GAIkC2qC,IACpB,KACD,MAF0B,MAAR,MAKjB,KACD,MAFwB,MAAR,MAR7B,EAEeA,IAAkB1qC,IAAAD,IAAA,IAAA,KAA8B,MAAA,IAA3C,MAWtB,EAGA,YACE,GACE,EAEF,GACE,EAGF,GAYoB2qC,OAZpB,WAAA,SAAA,GAC4B,KAAA,QAA1B,GAIwB,IACM,KAAA,QAA9B,GACsC,IAElC,SADF,IAEE,SAFF,IAIgBA,IAAK,SAGP,OAflB,EAiBA,EAGF,GAGE,IAAA,WAAA,WAAA,QAAA,QAAA,QAAA,MAgBA,EAFI1qC,GAAAA,IAAAD,OAAA,MAAA,KAAA,EAFAC,GAAAA,IAAAD,OAAA,MAAA,KAAA,EAHAC,GAAAA,IAAAD,OAAA,MAAA,KAAA,EAFAC,GAAAA,IAAAD,OAAA,MAAA,KAAA,EAFAC,GAAAA,IAAAD,OAAA,MAAA,KAAA,EAFAC,GAAAA,IAAAD,OAAA,MAAA,KAAA,EAgBN,GACE,IAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,QAAA,QAAA,QAAA,MAoBA,EAFIC,GAAAA,IAAAD,OAAA,MAAA,KAAA,EAFAC,GAAAA,IAAAD,OAAA,MAAA,KAAA,EAFAC,GAAAA,IAAAD,OAAA,MAAA,KAAA,KAAA,EAHAC,GAAAA,IAAAD,OAAA,MAAA,KAAA,EAJAC,GAAAA,IAAAD,OAAA,MAAA,KAAA,EAHAC,GAAAA,IAAAD,OAAA,MAAA,KAAA,KAAA,E,QCpKN,MAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,KACA,IAAA,QAAA,IAAA,KAAA,KAEkC4qC,KAAV,EAAA,IASCC,KAAV,EAAA,IAuEQC,KAAP,EAAA,IAOOC,KAAV,EAAA,IA0CYC,KAAV,EAAA,IA/HuD,UAAA,MAAA,MAAA,MAAA,OAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,QA0JxD,MAA8B,E,E,QChH9B,QAAsB,EAhDpC,KACM,OAAJ,WAGA,OAWiC,UAAA,KAAS,KAAC,KAAD,KAEtB,UAAA,KAApB,GAWwC,MAAC,KAAD,KASxC,GAIW,QAAX,MAIOppC,QAAc,MAAR,KAAb,IAHSA,QAAc,MAAR,KAAeA,SAAc,IAAR,KAA3BA,IAAP,IAJA,IAbA,IAbA,EAVA,EAayC,GAAW,MAAA,IAAV,EAaH,EAAKA,MAAY,MAACA,WAAM,KAAP,KAAhB,E,Q,O,MChC/BzH,MAAA,KAAA,IAAA,QAAA,SAAA,M,KAiDc,MAAA,EAtC3B,KACE,SAAA,OAIsB8F,GAAAA,IAAAD,MAAA,IAAA,KAAA,KACtB,IAAA,IAII,OAAJ,IAEID,IAAOC,OAAA,IAAA,KAA6B,MAEM,KAE5C,QAKF,OAKoBirC,OAA0BA,IAA1BA,IAAF,OASlB,EAbE,EALE,EAVF,EALA,E,Q,I,MCRJ,MAAA,QAAA,IAAA,KAAA,KAAA,I,QAkBc,MAAkB,EAhBhC,GAGM,OAAJ,MAAA,IACiClrC,GAAAA,IAAOC,OAAA,MAAA,KAAX,MACiB,KAC5C,QAKF,QAAA,MAGF,EAFWkrC,GAAAA,IAAAA,OAAe,KAAtB,EALE,E,E,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,QCobQ,QAAkB,EA9bhC,GACM,OAAJ,WAOA,OAIiBC,GAAAA,MAAW,IAIP,MAAU,KAAA,KAA/B,MAIyBC,IAAgB,OACzC,OAIqB,MAAS,KAAA,KAA9B,MAUqB,MAAU,KAAA,KAA/B,MAsBqB,MAAU,KAAA,KAA/B,MAgBqB,MAAU,KAAA,KAA/B,MAIqB,MAAU,KAAA,KAA/B,MAgBqB,MAAS,KAAA,KAA9B,MAYqB,MAAU,KAAA,KAA/B,GA0BqB,MAAS,KAAA,KAA9B,GAYA,EAVKC,IACCC,OAAc,IAAN,KACRC,OAAqB,IAAN,QACM,IAAN,KAHR,UAARF,MAAD,IADF,KAzBS,IAAT,IAcGG,IACCF,OAAc,IAAN,KACRC,OAAqB,IAAN,QACM,IAAN,KAHR,OAKPE,OAAY,IAAN,KALPD,MAAD,IADF,EAXKA,IACCF,IAAc,IAAN,KACRC,OAAqB,IAAN,QACM,IAAN,KAHR,OAKPE,OAAY,IAAN,KALPD,MAAD,IADF,EAbCA,IACCF,OAAc,IAAN,KACRC,OAAqB,IAAN,QACM,IAAN,KAHR,UAARC,MAAD,IADF,IAfEE,SACO,IACE,IADPC,OAEO,IAFPA,IAGO,IAHPA,OAIO,IAJPA,IAKO,IALPA,OAMO,IANPA,IAOO,IAPPA,OADM,QAARD,IADF,IAJOA,SAAc,OAAN,QAARA,IAAP,IAfEA,SACO,IACE,IADPC,OAEO,IAFPA,IAGO,IAHPA,OAIO,IAJPA,IAKO,IALPA,QAAAA,OADM,QAARD,IADF,KArBS,IAAT,IAYIE,OAAc,IAAN,QAARA,OACe,IAAN,QAARA,OACc,IAAN,QAARA,IACDH,OAAY,IAAN,KAHNG,IAAAA,IAAAA,MAAF,IADF,EATMA,IAAc,IAAN,QAARA,OACe,IAAN,QAARA,OACc,IAAN,KAARA,IACDH,OAAY,IAAN,KAHNG,IAAAA,IAAAA,MAAF,IADF,EAXEA,OAAc,IAAN,QAARA,OACe,IAAN,QAARA,OACc,IAAN,QAARA,IAFDA,IAAAA,OAAAA,MAAF,IADF,EAJA,IALOF,SAAc,QAALC,OAAD,QAARD,IAAP,IARA,IAPIG,IAAJ,IAAA,cAAA,MAGA,EAFE,EA+IN,cACE,OACG,IADH,MAGA,IACG,IADH,UAGA,cAGA,cAGA,IAGA,EAFcC,IAAU,IAAX,OAAA,IAAJC,IAAP,EAHA,EAHYD,OAAD,IAAA,IAAJC,IAAP,EAWJ,mBACYnF,IAAwBA,IAAQA,IAARA,IAAxBA,KAAe,IAALA,IAAVA,GACA,IAAA,IACAoF,GAAAA,cAAcC,MAAP,OACA,OACOA,IAAP,SAGdvvC,MAAU,QAACi9B,IAAD,QAAVj9B,IACAA,MAAU,KAACwvC,IAAD,QAAVxvC,IACAA,MAAU,KAAC2mB,IAAD,QAAV3mB,IAFAA,IAAAA,IADH,EAOF,SACMyvC,OAAJ,OAMYH,GAAAA,cAAcC,QAAP,OAAqB,IAAA,IAA5BD,IAAAA,IACS,OAAa,IAAA,IAApBA,IAAAA,IACaC,IAAP,OAAqB,IAAA,IAA5BD,IAAAA,MAGVtvC,MAAU,QAAC0vC,IAAD,QAAV1vC,IACAA,MAAU,KAAC2vC,IAAD,QAAV3vC,IACAA,MAAU,KAAC4vC,IAAD,QAAV5vC,IAFAA,IAAAA,IADH,IATeA,MAAU,QAAEyvC,IAAYA,IAAZA,IAAF,QAEfI,OAAeA,OAAeA,IAA9BA,IAAAA,IAAR,EAiBJ,EAAuB,KAAF5wC,MAAA,KAAA,UAAA,IAAA,MAAE,IAAF,IAAA,IAAA,GAAE,IACQ,SAAA,SAAtB,QAAA,IAAP,EAGF,IAAyC,KAAFA,MAAA,KAAA,UAAA,IAAA,MAAE,IAAF,IAAA,IAAA,GAAE,IAG3B,KAAQ,QAAJ6G,IAAJ,MAAyB,SAAA,SADnC,IAGS,KAAJA,IAAD,QAHJ,IAAA,QAAA,IADF,EASF,EAAqC,KAAF7G,MAAA,KAAA,UAAA,IAAA,MAAE,IAAF,IAAA,IAAA,GAAE,IACN,SAAA,SAAtB,QAAA,IAAP,EAMI6wC,GAAAA,MAAJ,SAEa/uC,MAAegvC,QAAI,WAAZ,IAAD,KAAA,OAAA,IAAA,IACLhvC,MAENivC,kBAAkB,IAElBC,IAAsB,IAJV,KAAA,QACd,QAAA,IAAA,QAAA,OADc,IAAA,IAOPlvC,UAAmB,WAAZ,IAAD,KAAA,OAAA,IAAA,IACLA,iBAEY,IAEI,IAJV,KAAA,QACd,IAAA,IAAA,IAAA,OADc,IAAA,IAOPA,MAAmB,WAAZ,IAAD,KAAA,OAAA,IAAA,IAjBA,EAAA,KAAA,KAAA,KAAA,KAAA,KAkBT,cAlBS,KAmBT,cAnBS,KAoBT,cApBS,KAqBT,cArBS,KAAH,IAwBT+uC,IAAP,EAGF,EACcd,cAAQ,QACpB,OAGA,IAGA,EAFE,EAHA,EAQJ,EACckB,WAAU,WACZC,IAAAA,IAAF,IAAA,IAAR,EAGF,EACcD,WAAU,OACtB,OAGA,IAGOlwC,MAAU,QAAC4gC,IAAD,KAAjB,KAFE,EAHA,EAQJ,EAEcsP,WAAU,OACtB,OAGA,IAGOC,IAAP,KAFE,EAHA,EAQJ,GAEE,IAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,QAAA,QAAA,QAAA,QAAA,QAAA,MAyJA,YAFsB,YADL,YADI,YADL,YADA,YADC,QADG,YADH,YADC,QADH,YADD,QADM,QADE,YADP,QADK,QADA,QADA,YADF,YADD,YADA,YADE,QADA,YADE,YADJ,YADK,QADF,YADA,YADN,QADU,YADP,YADI,YADN,YADA,YADA,YADK,YADC,YADG,YADA,YADJ,YADI,YADP,YADG,YADH,QADG,YADJ,YADE,QADH,YADO,YADH,YADC,YADA,QADG,YADG,QADA,QADE,QADF,QADD,YADF,YADA,QADF,QADM,YADV,YADC,YADF,QADI,QADL,YADO,YADG,QADA,QADA,YADF,QADC,YADF,YADF,YADA,YADC,YADD,YADW,YADX,YADC,YADD,YADG,QADH,YADI,YADL,YADH,YADA,QADC,YADG,YADF,YADC,YADJ,YADO,QADN,YADD,YADK,YADL,YADM,YADD,YADF,QADI,YADA,YADF,QADC,QADH,QADA,QADI,YADH,YADE,QADG,QADA,QADA,QADA,YADD,YADF,YADH,YADG,YADA,QADI,YADH,YADF,YADD,QADC,YADD,YADK,QADL,QADA,QADJ,YADG,YADC,QADM,YADT,YADI,QADC,QADD,YADE,YADF,YADJ,YADK,QADN,YADU,KADT,YADC,YADD,YADA,QADK,QADN,YADQ,YADH,IAFE,E,O,M,K,I,Q,S,M,M,MChSK,KAE3B,MAEkC,KAOlC,MAEgC,KAIhC,MAAA,EAjB2B,EAAyC,KAAhClxC,MAAA,KAAA,UAAA,IAAA,MAAgC,IAAhC,IAAA,IAAA,GAAgC,IAC7D,EAAA,KAAP,EAGkC,OAG9B,IAAJ,KAGA,EAFE,EAK8B,GAGhC,E,E,QCJY,QAAsB,EAfpC,KAGMA,MAAa,KAAA,KAAjB,GAMQ,UAAA,KACC,KAACoJ,MAAD,KAET,EARE,E,K,O,ICoDqD,KAAH,I,QAgNxC,QAAoB,EA/PlC,aAGM,UAAJ,SACoBtH,MAAM,KAAA,IAAC,iBAAD,IAAA,IACY,IAGR,KAAA,KAOLwC,MAPvB,GACuB6sC,IACZ,IACA,IAF2C,MAA1C,KAAO,KAKjB,IACqB,KAAA7sC,IAAAD,IAAA,IAAA,KAAA,EAAA,OAAA,KAPK,KAAA,QAA5B,GAiBF,EAsBuD,gBACxBvC,MAAM,KAAA,IAAC,iBAAD,IAAA,IAErC,IAAA,WAAA,WAAA,WAAA,QAAA,QAAA,IAwEyBg4B,MAAK,QAAN,GAAe7zB,MAAM,KAAlC,EAAA,IAAA,IAAP,EApB0C,KAAA,OAE1C,IAAe,KA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,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,I,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,OCXzC,IAAA,QAEU,IAAA,KAUL,MACC,IACI,IACH,IACD,EACA,KADA,KAAH,MAmCQnsC,MAAK,KAAR,IACe,IACT,IACA,IAqBRxB,MAAM,KAAT,IAiCW,KAAY,EACf,KADe,KAUd,KAVc,KAkBtB,KAlBsB,KAAA,KAsBnB,KAtBmB,KAA3B,MA+BqB,UAGV,KAHU,MASd,KATc,MAAH,MAeA,KAAH,MAgBJ,KA2BkC,MAAC,EACpC,KADoC,IAAD,KAAxB,IAWH,QACH,QACD,QACN,IAAH,IACM,UAAA,MAAH,IAoEiB,EACf,KADe,KAIT,KAJS,KAAA,IAAH,IAoEX,IACE,IAYQ,EACE,UADF,IAAA,IAOC,EACC,UADD,IAKV,QALU,IAOS,EACR,UADQ,IAKnB,QALmB,IAOX,EACG,UADH,IAAA,IAOR,MAAA,IAAA,IAID,MAAA,IAAA,IAID,MAAA,IAAA,IAII,MAAA,IAAA,IAIW,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AAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,WAAA,QAAA,QAAA,QAAA,QAAA,QAAA,MAyJA,YAFsB,YADL,YADI,YADL,YADA,YADC,QADG,YADH,YADC,QADH,YADD,QADM,QADE,YADP,QADK,QADA,QADA,YADF,YADD,YADA,YADE,QADA,YADE,YADJ,YADK,QADF,YADA,YADN,QADU,YADP,YADI,YADN,YADA,YADA,YADK,YADC,YADG,YADA,YADJ,YADI,YADP,YADG,YADH,QADG,YADJ,YADE,QADH,YADO,YADH,YADC,YADA,QADG,YADG,QADA,QADE,QADF,QADD,YADF,YADA,QADF,QADM,YADV,YADC,YADF,QADI,QADL,YADO,YADG,QADA,QADA,YADF,QADC,YADF,YADF,YADA,YADC,YADD,YADW,YADX,YADC,YADD,YADG,QADH,YADI,YADL,YADH,YADA,QADC,YADG,YADF,YADC,YADJ,YADO,QADN,YADD,YADK,YADL,YADM,YADD,YADF,QADI,YADA,YADF,QADC,QADH,QADA,QADI,YADH,YADE,QADG,QADA,QADA,QADA,YADD,YADF,YADH,YADG,YADA,QADI,YADH,YADF,YADD,QADC,YADD,YADK,QADL,QADA,QADJ,YADG,YADC,QADM,YADT,YADI,QADC,QADD,YADE,YADF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","sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n *\n * @format\n * @oncall react_native\n * @polyfill\n */\n\n\"use strict\";\n\n/* eslint-disable no-bitwise */\n// A simpler $ArrayLike. Not iterable and doesn't have a `length`.\n// This is compatible with actual arrays as well as with objects that look like\n// {0: 'value', 1: '...'}\nglobal.__r = metroRequire;\nglobal[`${__METRO_GLOBAL_PREFIX__}__d`] = define;\nglobal.__c = clear;\nglobal.__registerSegment = registerSegment;\nvar modules = clear();\n\n// Don't use a Symbol here, it would pull in an extra polyfill with all sorts of\n// additional stuff (e.g. Array.from).\nconst EMPTY = {};\nconst CYCLE_DETECTED = {};\nconst { hasOwnProperty } = {};\nif (__DEV__) {\n global.$RefreshReg$ = () => {};\n global.$RefreshSig$ = () => (type) => type;\n}\nfunction clear() {\n modules = Object.create(null);\n\n // We return modules here so that we can assign an initial value to modules\n // when defining it. Otherwise, we would have to do \"let modules = null\",\n // which will force us to add \"nullthrows\" everywhere.\n return modules;\n}\nif (__DEV__) {\n var verboseNamesToModuleIds = Object.create(null);\n var initializingModuleIds = [];\n}\nfunction define(factory, moduleId, dependencyMap) {\n if (modules[moduleId] != null) {\n if (__DEV__) {\n // (We take `inverseDependencies` from `arguments` to avoid an unused\n // named parameter in `define` in production.\n const inverseDependencies = arguments[4];\n\n // If the module has already been defined and the define method has been\n // called with inverseDependencies, we can hot reload it.\n if (inverseDependencies) {\n global.__accept(moduleId, factory, dependencyMap, inverseDependencies);\n }\n }\n\n // prevent repeated calls to `global.nativeRequire` to overwrite modules\n // that are already loaded\n return;\n }\n const mod = {\n dependencyMap,\n factory,\n hasError: false,\n importedAll: EMPTY,\n importedDefault: EMPTY,\n isInitialized: false,\n publicModule: {\n exports: {},\n },\n };\n modules[moduleId] = mod;\n if (__DEV__) {\n // HMR\n mod.hot = createHotReloadingObject();\n\n // DEBUGGABLE MODULES NAMES\n // we take `verboseName` from `arguments` to avoid an unused named parameter\n // in `define` in production.\n const verboseName = arguments[3];\n if (verboseName) {\n mod.verboseName = verboseName;\n verboseNamesToModuleIds[verboseName] = moduleId;\n }\n }\n}\nfunction metroRequire(moduleId) {\n if (__DEV__ && typeof moduleId === \"string\") {\n const verboseName = moduleId;\n moduleId = verboseNamesToModuleIds[verboseName];\n if (moduleId == null) {\n throw new Error(`Unknown named module: \"${verboseName}\"`);\n } else {\n console.warn(\n `Requiring module \"${verboseName}\" by name is only supported for ` +\n \"debugging purposes and will BREAK IN PRODUCTION!\"\n );\n }\n }\n\n //$FlowFixMe: at this point we know that moduleId is a number\n const moduleIdReallyIsNumber = moduleId;\n if (__DEV__) {\n const initializingIndex = initializingModuleIds.indexOf(\n moduleIdReallyIsNumber\n );\n if (initializingIndex !== -1) {\n const cycle = initializingModuleIds\n .slice(initializingIndex)\n .map((id) => (modules[id] ? modules[id].verboseName : \"[unknown]\"));\n if (shouldPrintRequireCycle(cycle)) {\n cycle.push(cycle[0]); // We want to print A -> B -> A:\n console.warn(\n `Require cycle: ${cycle.join(\" -> \")}\\n\\n` +\n \"Require cycles are allowed, but can result in uninitialized values. \" +\n \"Consider refactoring to remove the need for a cycle.\"\n );\n }\n }\n }\n const module = modules[moduleIdReallyIsNumber];\n return module && module.isInitialized\n ? module.publicModule.exports\n : guardedLoadModule(moduleIdReallyIsNumber, module);\n}\n\n// We print require cycles unless they match a pattern in the\n// `requireCycleIgnorePatterns` configuration.\nfunction shouldPrintRequireCycle(modules) {\n const regExps =\n global[__METRO_GLOBAL_PREFIX__ + \"__requireCycleIgnorePatterns\"];\n if (!Array.isArray(regExps)) {\n return true;\n }\n const isIgnored = (module) =>\n module != null && regExps.some((regExp) => regExp.test(module));\n\n // Print the cycle unless any part of it is ignored\n return modules.every((module) => !isIgnored(module));\n}\nfunction metroImportDefault(moduleId) {\n if (__DEV__ && typeof moduleId === \"string\") {\n const verboseName = moduleId;\n moduleId = verboseNamesToModuleIds[verboseName];\n }\n\n //$FlowFixMe: at this point we know that moduleId is a number\n const moduleIdReallyIsNumber = moduleId;\n if (\n modules[moduleIdReallyIsNumber] &&\n modules[moduleIdReallyIsNumber].importedDefault !== EMPTY\n ) {\n return modules[moduleIdReallyIsNumber].importedDefault;\n }\n const exports = metroRequire(moduleIdReallyIsNumber);\n const importedDefault =\n exports && exports.__esModule ? exports.default : exports;\n\n // $FlowFixMe The metroRequire call above will throw if modules[id] is null\n return (modules[moduleIdReallyIsNumber].importedDefault = importedDefault);\n}\nmetroRequire.importDefault = metroImportDefault;\nfunction metroImportAll(moduleId) {\n if (__DEV__ && typeof moduleId === \"string\") {\n const verboseName = moduleId;\n moduleId = verboseNamesToModuleIds[verboseName];\n }\n\n //$FlowFixMe: at this point we know that moduleId is a number\n const moduleIdReallyIsNumber = moduleId;\n if (\n modules[moduleIdReallyIsNumber] &&\n modules[moduleIdReallyIsNumber].importedAll !== EMPTY\n ) {\n return modules[moduleIdReallyIsNumber].importedAll;\n }\n const exports = metroRequire(moduleIdReallyIsNumber);\n let importedAll;\n if (exports && exports.__esModule) {\n importedAll = exports;\n } else {\n importedAll = {};\n\n // Refrain from using Object.assign, it has to work in ES3 environments.\n if (exports) {\n for (const key in exports) {\n if (hasOwnProperty.call(exports, key)) {\n importedAll[key] = exports[key];\n }\n }\n }\n importedAll.default = exports;\n }\n\n // $FlowFixMe The metroRequire call above will throw if modules[id] is null\n return (modules[moduleIdReallyIsNumber].importedAll = importedAll);\n}\nmetroRequire.importAll = metroImportAll;\n\n// The `require.context()` syntax is never executed in the runtime because it is converted\n// to `require()` in `metro/src/ModuleGraph/worker/collectDependencies.js` after collecting\n// dependencies. If the feature flag is not enabled then the conversion never takes place and this error is thrown (development only).\nmetroRequire.context = function fallbackRequireContext() {\n if (__DEV__) {\n throw new Error(\n \"The experimental Metro feature `require.context` is not enabled in your project.\\nThis can be enabled by setting the `transformer.unstable_allowRequireContext` property to `true` in your Metro configuration.\"\n );\n }\n throw new Error(\n \"The experimental Metro feature `require.context` is not enabled in your project.\"\n );\n};\n\n// `require.resolveWeak()` is a compile-time primitive (see collectDependencies.js)\nmetroRequire.resolveWeak = function fallbackRequireResolveWeak() {\n if (__DEV__) {\n throw new Error(\n \"require.resolveWeak cannot be called dynamically. Ensure you are using the same version of `metro` and `metro-runtime`.\"\n );\n }\n throw new Error(\"require.resolveWeak cannot be called dynamically.\");\n};\nlet inGuard = false;\nfunction guardedLoadModule(moduleId, module) {\n if (!inGuard && global.ErrorUtils) {\n inGuard = true;\n let returnValue;\n try {\n returnValue = loadModuleImplementation(moduleId, module);\n } catch (e) {\n // TODO: (moti) T48204692 Type this use of ErrorUtils.\n global.ErrorUtils.reportFatalError(e);\n }\n inGuard = false;\n return returnValue;\n } else {\n return loadModuleImplementation(moduleId, module);\n }\n}\nconst ID_MASK_SHIFT = 16;\nconst LOCAL_ID_MASK = ~0 >>> ID_MASK_SHIFT;\nfunction unpackModuleId(moduleId) {\n const segmentId = moduleId >>> ID_MASK_SHIFT;\n const localId = moduleId & LOCAL_ID_MASK;\n return {\n segmentId,\n localId,\n };\n}\nmetroRequire.unpackModuleId = unpackModuleId;\nfunction packModuleId(value) {\n return (value.segmentId << ID_MASK_SHIFT) + value.localId;\n}\nmetroRequire.packModuleId = packModuleId;\nconst moduleDefinersBySegmentID = [];\nconst definingSegmentByModuleID = new Map();\nfunction registerSegment(segmentId, moduleDefiner, moduleIds) {\n moduleDefinersBySegmentID[segmentId] = moduleDefiner;\n if (__DEV__) {\n if (segmentId === 0 && moduleIds) {\n throw new Error(\n \"registerSegment: Expected moduleIds to be null for main segment\"\n );\n }\n if (segmentId !== 0 && !moduleIds) {\n throw new Error(\n \"registerSegment: Expected moduleIds to be passed for segment #\" +\n segmentId\n );\n }\n }\n if (moduleIds) {\n moduleIds.forEach((moduleId) => {\n if (!modules[moduleId] && !definingSegmentByModuleID.has(moduleId)) {\n definingSegmentByModuleID.set(moduleId, segmentId);\n }\n });\n }\n}\nfunction loadModuleImplementation(moduleId, module) {\n if (!module && moduleDefinersBySegmentID.length > 0) {\n const segmentId = definingSegmentByModuleID.get(moduleId) ?? 0;\n const definer = moduleDefinersBySegmentID[segmentId];\n if (definer != null) {\n definer(moduleId);\n module = modules[moduleId];\n definingSegmentByModuleID.delete(moduleId);\n }\n }\n const nativeRequire = global.nativeRequire;\n if (!module && nativeRequire) {\n const { segmentId, localId } = unpackModuleId(moduleId);\n nativeRequire(localId, segmentId);\n module = modules[moduleId];\n }\n if (!module) {\n throw unknownModuleError(moduleId);\n }\n if (module.hasError) {\n throw module.error;\n }\n if (__DEV__) {\n var Systrace = requireSystrace();\n var Refresh = requireRefresh();\n }\n\n // We must optimistically mark module as initialized before running the\n // factory to keep any require cycles inside the factory from causing an\n // infinite require loop.\n module.isInitialized = true;\n const { factory, dependencyMap } = module;\n if (__DEV__) {\n initializingModuleIds.push(moduleId);\n }\n try {\n if (__DEV__) {\n // $FlowIgnore: we know that __DEV__ is const and `Systrace` exists\n Systrace.beginEvent(\"JS_require_\" + (module.verboseName || moduleId));\n }\n const moduleObject = module.publicModule;\n if (__DEV__) {\n moduleObject.hot = module.hot;\n var prevRefreshReg = global.$RefreshReg$;\n var prevRefreshSig = global.$RefreshSig$;\n if (Refresh != null) {\n const RefreshRuntime = Refresh;\n global.$RefreshReg$ = (type, id) => {\n RefreshRuntime.register(type, moduleId + \" \" + id);\n };\n global.$RefreshSig$ =\n RefreshRuntime.createSignatureFunctionForTransform;\n }\n }\n moduleObject.id = moduleId;\n\n // keep args in sync with with defineModuleCode in\n // metro/src/Resolver/index.js\n // and metro/src/ModuleGraph/worker.js\n factory(\n global,\n metroRequire,\n metroImportDefault,\n metroImportAll,\n moduleObject,\n moduleObject.exports,\n dependencyMap\n );\n\n // avoid removing factory in DEV mode as it breaks HMR\n if (!__DEV__) {\n // $FlowFixMe: This is only sound because we never access `factory` again\n module.factory = undefined;\n module.dependencyMap = undefined;\n }\n if (__DEV__) {\n // $FlowIgnore: we know that __DEV__ is const and `Systrace` exists\n Systrace.endEvent();\n if (Refresh != null) {\n registerExportsForReactRefresh(Refresh, moduleObject.exports, moduleId);\n }\n }\n return moduleObject.exports;\n } catch (e) {\n module.hasError = true;\n module.error = e;\n module.isInitialized = false;\n module.publicModule.exports = undefined;\n throw e;\n } finally {\n if (__DEV__) {\n if (initializingModuleIds.pop() !== moduleId) {\n throw new Error(\n \"initializingModuleIds is corrupt; something is terribly wrong\"\n );\n }\n global.$RefreshReg$ = prevRefreshReg;\n global.$RefreshSig$ = prevRefreshSig;\n }\n }\n}\nfunction unknownModuleError(id) {\n let message = 'Requiring unknown module \"' + id + '\".';\n if (__DEV__) {\n message +=\n \" If you are sure the module exists, try restarting Metro. \" +\n \"You may also want to run `yarn` or `npm install`.\";\n }\n return Error(message);\n}\nif (__DEV__) {\n // $FlowFixMe[prop-missing]\n metroRequire.Systrace = {\n beginEvent: () => {},\n endEvent: () => {},\n };\n // $FlowFixMe[prop-missing]\n metroRequire.getModules = () => {\n return modules;\n };\n\n // HOT MODULE RELOADING\n var createHotReloadingObject = function () {\n const hot = {\n _acceptCallback: null,\n _disposeCallback: null,\n _didAccept: false,\n accept: (callback) => {\n hot._didAccept = true;\n hot._acceptCallback = callback;\n },\n dispose: (callback) => {\n hot._disposeCallback = callback;\n },\n };\n return hot;\n };\n let reactRefreshTimeout = null;\n const metroHotUpdateModule = function (\n id,\n factory,\n dependencyMap,\n inverseDependencies\n ) {\n const mod = modules[id];\n if (!mod) {\n if (factory) {\n // New modules are going to be handled by the define() method.\n return;\n }\n throw unknownModuleError(id);\n }\n if (!mod.hasError && !mod.isInitialized) {\n // The module hasn't actually been executed yet,\n // so we can always safely replace it.\n mod.factory = factory;\n mod.dependencyMap = dependencyMap;\n return;\n }\n const Refresh = requireRefresh();\n const refreshBoundaryIDs = new Set();\n\n // In this loop, we will traverse the dependency tree upwards from the\n // changed module. Updates \"bubble\" up to the closest accepted parent.\n //\n // If we reach the module root and nothing along the way accepted the update,\n // we know hot reload is going to fail. In that case we return false.\n //\n // The main purpose of this loop is to figure out whether it's safe to apply\n // a hot update. It is only safe when the update was accepted somewhere\n // along the way upwards for each of its parent dependency module chains.\n //\n // We perform a topological sort because we may discover the same\n // module more than once in the list of things to re-execute, and\n // we want to execute modules before modules that depend on them.\n //\n // If we didn't have this check, we'd risk re-evaluating modules that\n // have side effects and lead to confusing and meaningless crashes.\n\n let didBailOut = false;\n let updatedModuleIDs;\n try {\n updatedModuleIDs = topologicalSort(\n [id],\n // Start with the changed module and go upwards\n (pendingID) => {\n const pendingModule = modules[pendingID];\n if (pendingModule == null) {\n // Nothing to do.\n return [];\n }\n const pendingHot = pendingModule.hot;\n if (pendingHot == null) {\n throw new Error(\n \"[Refresh] Expected module.hot to always exist in DEV.\"\n );\n }\n // A module can be accepted manually from within itself.\n let canAccept = pendingHot._didAccept;\n if (!canAccept && Refresh != null) {\n // Or React Refresh may mark it accepted based on exports.\n const isBoundary = isReactRefreshBoundary(\n Refresh,\n pendingModule.publicModule.exports\n );\n if (isBoundary) {\n canAccept = true;\n refreshBoundaryIDs.add(pendingID);\n }\n }\n if (canAccept) {\n // Don't look at parents.\n return [];\n }\n // If we bubble through the roof, there is no way to do a hot update.\n // Bail out altogether. This is the failure case.\n const parentIDs = inverseDependencies[pendingID];\n if (parentIDs.length === 0) {\n // Reload the app because the hot reload can't succeed.\n // This should work both on web and React Native.\n performFullRefresh(\"No root boundary\", {\n source: mod,\n failed: pendingModule,\n });\n didBailOut = true;\n return [];\n }\n // This module can't handle the update but maybe all its parents can?\n // Put them all in the queue to run the same set of checks.\n return parentIDs;\n },\n () => didBailOut // Should we stop?\n ).reverse();\n } catch (e) {\n if (e === CYCLE_DETECTED) {\n performFullRefresh(\"Dependency cycle\", {\n source: mod,\n });\n return;\n }\n throw e;\n }\n if (didBailOut) {\n return;\n }\n\n // If we reached here, it is likely that hot reload will be successful.\n // Run the actual factories.\n const seenModuleIDs = new Set();\n for (let i = 0; i < updatedModuleIDs.length; i++) {\n const updatedID = updatedModuleIDs[i];\n if (seenModuleIDs.has(updatedID)) {\n continue;\n }\n seenModuleIDs.add(updatedID);\n const updatedMod = modules[updatedID];\n if (updatedMod == null) {\n throw new Error(\"[Refresh] Expected to find the updated module.\");\n }\n const prevExports = updatedMod.publicModule.exports;\n const didError = runUpdatedModule(\n updatedID,\n updatedID === id ? factory : undefined,\n updatedID === id ? dependencyMap : undefined\n );\n const nextExports = updatedMod.publicModule.exports;\n if (didError) {\n // The user was shown a redbox about module initialization.\n // There's nothing for us to do here until it's fixed.\n return;\n }\n if (refreshBoundaryIDs.has(updatedID)) {\n // Since we just executed the code for it, it's possible\n // that the new exports make it ineligible for being a boundary.\n const isNoLongerABoundary = !isReactRefreshBoundary(\n Refresh,\n nextExports\n );\n // It can also become ineligible if its exports are incompatible\n // with the previous exports.\n // For example, if you add/remove/change exports, we'll want\n // to re-execute the importing modules, and force those components\n // to re-render. Similarly, if you convert a class component\n // to a function, we want to invalidate the boundary.\n const didInvalidate = shouldInvalidateReactRefreshBoundary(\n Refresh,\n prevExports,\n nextExports\n );\n if (isNoLongerABoundary || didInvalidate) {\n // We'll be conservative. The only case in which we won't do a full\n // reload is if all parent modules are also refresh boundaries.\n // In that case we'll add them to the current queue.\n const parentIDs = inverseDependencies[updatedID];\n if (parentIDs.length === 0) {\n // Looks like we bubbled to the root. Can't recover from that.\n performFullRefresh(\n isNoLongerABoundary\n ? \"No longer a boundary\"\n : \"Invalidated boundary\",\n {\n source: mod,\n failed: updatedMod,\n }\n );\n return;\n }\n // Schedule all parent refresh boundaries to re-run in this loop.\n for (let j = 0; j < parentIDs.length; j++) {\n const parentID = parentIDs[j];\n const parentMod = modules[parentID];\n if (parentMod == null) {\n throw new Error(\"[Refresh] Expected to find parent module.\");\n }\n const canAcceptParent = isReactRefreshBoundary(\n Refresh,\n parentMod.publicModule.exports\n );\n if (canAcceptParent) {\n // All parents will have to re-run too.\n refreshBoundaryIDs.add(parentID);\n updatedModuleIDs.push(parentID);\n } else {\n performFullRefresh(\"Invalidated boundary\", {\n source: mod,\n failed: parentMod,\n });\n return;\n }\n }\n }\n }\n }\n if (Refresh != null) {\n // Debounce a little in case there are multiple updates queued up.\n // This is also useful because __accept may be called multiple times.\n if (reactRefreshTimeout == null) {\n reactRefreshTimeout = setTimeout(() => {\n reactRefreshTimeout = null;\n // Update React components.\n Refresh.performReactRefresh();\n }, 30);\n }\n }\n };\n const topologicalSort = function (roots, getEdges, earlyStop) {\n const result = [];\n const visited = new Set();\n const stack = new Set();\n function traverseDependentNodes(node) {\n if (stack.has(node)) {\n throw CYCLE_DETECTED;\n }\n if (visited.has(node)) {\n return;\n }\n visited.add(node);\n stack.add(node);\n const dependentNodes = getEdges(node);\n if (earlyStop(node)) {\n stack.delete(node);\n return;\n }\n dependentNodes.forEach((dependent) => {\n traverseDependentNodes(dependent);\n });\n stack.delete(node);\n result.push(node);\n }\n roots.forEach((root) => {\n traverseDependentNodes(root);\n });\n return result;\n };\n const runUpdatedModule = function (id, factory, dependencyMap) {\n const mod = modules[id];\n if (mod == null) {\n throw new Error(\"[Refresh] Expected to find the module.\");\n }\n const { hot } = mod;\n if (!hot) {\n throw new Error(\"[Refresh] Expected module.hot to always exist in DEV.\");\n }\n if (hot._disposeCallback) {\n try {\n hot._disposeCallback();\n } catch (error) {\n console.error(\n `Error while calling dispose handler for module ${id}: `,\n error\n );\n }\n }\n if (factory) {\n mod.factory = factory;\n }\n if (dependencyMap) {\n mod.dependencyMap = dependencyMap;\n }\n mod.hasError = false;\n mod.error = undefined;\n mod.importedAll = EMPTY;\n mod.importedDefault = EMPTY;\n mod.isInitialized = false;\n const prevExports = mod.publicModule.exports;\n mod.publicModule.exports = {};\n hot._didAccept = false;\n hot._acceptCallback = null;\n hot._disposeCallback = null;\n metroRequire(id);\n if (mod.hasError) {\n // This error has already been reported via a redbox.\n // We know it's likely a typo or some mistake that was just introduced.\n // Our goal now is to keep the rest of the application working so that by\n // the time user fixes the error, the app isn't completely destroyed\n // underneath the redbox. So we'll revert the module object to the last\n // successful export and stop propagating this update.\n mod.hasError = false;\n mod.isInitialized = true;\n mod.error = null;\n mod.publicModule.exports = prevExports;\n // We errored. Stop the update.\n return true;\n }\n if (hot._acceptCallback) {\n try {\n hot._acceptCallback();\n } catch (error) {\n console.error(\n `Error while calling accept handler for module ${id}: `,\n error\n );\n }\n }\n // No error.\n return false;\n };\n const performFullRefresh = (reason, modules) => {\n /* global window */\n if (\n typeof window !== \"undefined\" &&\n window.location != null &&\n typeof window.location.reload === \"function\"\n ) {\n window.location.reload();\n } else {\n const Refresh = requireRefresh();\n if (Refresh != null) {\n const sourceName = modules.source?.verboseName ?? \"unknown\";\n const failedName = modules.failed?.verboseName ?? \"unknown\";\n Refresh.performFullRefresh(\n `Fast Refresh - ${reason} <${sourceName}> <${failedName}>`\n );\n } else {\n console.warn(\"Could not reload the application after an edit.\");\n }\n }\n };\n\n // Modules that only export components become React Refresh boundaries.\n var isReactRefreshBoundary = function (Refresh, moduleExports) {\n if (Refresh.isLikelyComponentType(moduleExports)) {\n return true;\n }\n if (moduleExports == null || typeof moduleExports !== \"object\") {\n // Exit if we can't iterate over exports.\n return false;\n }\n let hasExports = false;\n let areAllExportsComponents = true;\n for (const key in moduleExports) {\n hasExports = true;\n if (key === \"__esModule\") {\n continue;\n }\n const desc = Object.getOwnPropertyDescriptor(moduleExports, key);\n if (desc && desc.get) {\n // Don't invoke getters as they may have side effects.\n return false;\n }\n const exportValue = moduleExports[key];\n if (!Refresh.isLikelyComponentType(exportValue)) {\n areAllExportsComponents = false;\n }\n }\n return hasExports && areAllExportsComponents;\n };\n var shouldInvalidateReactRefreshBoundary = (\n Refresh,\n prevExports,\n nextExports\n ) => {\n const prevSignature = getRefreshBoundarySignature(Refresh, prevExports);\n const nextSignature = getRefreshBoundarySignature(Refresh, nextExports);\n if (prevSignature.length !== nextSignature.length) {\n return true;\n }\n for (let i = 0; i < nextSignature.length; i++) {\n if (prevSignature[i] !== nextSignature[i]) {\n return true;\n }\n }\n return false;\n };\n\n // When this signature changes, it's unsafe to stop at this refresh boundary.\n var getRefreshBoundarySignature = (Refresh, moduleExports) => {\n const signature = [];\n signature.push(Refresh.getFamilyByType(moduleExports));\n if (moduleExports == null || typeof moduleExports !== \"object\") {\n // Exit if we can't iterate over exports.\n // (This is important for legacy environments.)\n return signature;\n }\n for (const key in moduleExports) {\n if (key === \"__esModule\") {\n continue;\n }\n const desc = Object.getOwnPropertyDescriptor(moduleExports, key);\n if (desc && desc.get) {\n continue;\n }\n const exportValue = moduleExports[key];\n signature.push(key);\n signature.push(Refresh.getFamilyByType(exportValue));\n }\n return signature;\n };\n var registerExportsForReactRefresh = (Refresh, moduleExports, moduleID) => {\n Refresh.register(moduleExports, moduleID + \" %exports%\");\n if (moduleExports == null || typeof moduleExports !== \"object\") {\n // Exit if we can't iterate over exports.\n // (This is important for legacy environments.)\n return;\n }\n for (const key in moduleExports) {\n const desc = Object.getOwnPropertyDescriptor(moduleExports, key);\n if (desc && desc.get) {\n // Don't invoke getters as they may have side effects.\n continue;\n }\n const exportValue = moduleExports[key];\n const typeID = moduleID + \" %exports% \" + key;\n Refresh.register(exportValue, typeID);\n }\n };\n global.__accept = metroHotUpdateModule;\n}\nif (__DEV__) {\n // The metro require polyfill can not have module dependencies.\n // The Systrace and ReactRefresh dependencies are, therefore, made publicly\n // available. Ideally, the dependency would be inversed in a way that\n // Systrace / ReactRefresh could integrate into Metro rather than\n // having to make them publicly available.\n\n var requireSystrace = function requireSystrace() {\n return (\n // $FlowFixMe[prop-missing]\n global[__METRO_GLOBAL_PREFIX__ + \"__SYSTRACE\"] || metroRequire.Systrace\n );\n };\n var requireRefresh = function requireRefresh() {\n return (\n // $FlowFixMe[prop-missing]\n global[__METRO_GLOBAL_PREFIX__ + \"__ReactRefresh\"] || metroRequire.Refresh\n );\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @polyfill\n * @nolint\n * @format\n */\n\n/* eslint-disable no-shadow, eqeqeq, curly, no-unused-vars, no-void, no-control-regex */\n\n/**\n * This pipes all of our console logging functions to native logging so that\n * JavaScript errors in required modules show up in Xcode via NSLog.\n */\nconst inspect = (function () {\n // Copyright Joyent, Inc. and other Node contributors.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a\n // copy of this software and associated documentation files (the\n // \"Software\"), to deal in the Software without restriction, including\n // without limitation the rights to use, copy, modify, merge, publish,\n // distribute, sublicense, and/or sell copies of the Software, and to permit\n // persons to whom the Software is furnished to do so, subject to the\n // following conditions:\n //\n // The above copyright notice and this permission notice shall be included\n // in all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n // USE OR OTHER DEALINGS IN THE SOFTWARE.\n //\n // https://github.com/joyent/node/blob/master/lib/util.js\n\n function inspect(obj, opts) {\n var ctx = {\n seen: [],\n formatValueCalls: 0,\n stylize: stylizeNoColor,\n };\n return formatValue(ctx, obj, opts.depth);\n }\n\n function stylizeNoColor(str, styleType) {\n return str;\n }\n\n function arrayToHash(array) {\n var hash = {};\n\n array.forEach(function (val, idx) {\n hash[val] = true;\n });\n\n return hash;\n }\n\n function formatValue(ctx, value, recurseTimes) {\n ctx.formatValueCalls++;\n if (ctx.formatValueCalls > 200) {\n return `[TOO BIG formatValueCalls ${ctx.formatValueCalls} exceeded limit of 200]`;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (\n isError(value) &&\n (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)\n ) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '',\n array = false,\n braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function (key) {\n return formatProperty(\n ctx,\n value,\n recurseTimes,\n visibleKeys,\n key,\n array,\n );\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n }\n\n function formatPrimitive(ctx, value) {\n if (isUndefined(value)) return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple =\n \"'\" +\n JSON.stringify(value)\n .replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') +\n \"'\";\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value)) return ctx.stylize('' + value, 'number');\n if (isBoolean(value)) return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value)) return ctx.stylize('null', 'null');\n }\n\n function formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n }\n\n function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(\n formatProperty(\n ctx,\n value,\n recurseTimes,\n visibleKeys,\n String(i),\n true,\n ),\n );\n } else {\n output.push('');\n }\n }\n keys.forEach(function (key) {\n if (!key.match(/^\\d+$/)) {\n output.push(\n formatProperty(ctx, value, recurseTimes, visibleKeys, key, true),\n );\n }\n });\n return output;\n }\n\n function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || {value: value[key]};\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str\n .split('\\n')\n .map(function (line) {\n return ' ' + line;\n })\n .join('\\n')\n .substr(2);\n } else {\n str =\n '\\n' +\n str\n .split('\\n')\n .map(function (line) {\n return ' ' + line;\n })\n .join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n }\n\n function reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function (prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return (\n braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1]\n );\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n }\n\n // NOTE: These type checking functions intentionally don't use `instanceof`\n // because it is fragile and can be easily faked with `Object.create()`.\n function isArray(ar) {\n return Array.isArray(ar);\n }\n\n function isBoolean(arg) {\n return typeof arg === 'boolean';\n }\n\n function isNull(arg) {\n return arg === null;\n }\n\n function isNullOrUndefined(arg) {\n return arg == null;\n }\n\n function isNumber(arg) {\n return typeof arg === 'number';\n }\n\n function isString(arg) {\n return typeof arg === 'string';\n }\n\n function isSymbol(arg) {\n return typeof arg === 'symbol';\n }\n\n function isUndefined(arg) {\n return arg === void 0;\n }\n\n function isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n }\n\n function isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n }\n\n function isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n }\n\n function isError(e) {\n return (\n isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error)\n );\n }\n\n function isFunction(arg) {\n return typeof arg === 'function';\n }\n\n function objectToString(o) {\n return Object.prototype.toString.call(o);\n }\n\n function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n return inspect;\n})();\n\nconst OBJECT_COLUMN_NAME = '(index)';\nconst LOG_LEVELS = {\n trace: 0,\n info: 1,\n warn: 2,\n error: 3,\n};\nconst INSPECTOR_LEVELS = [];\nINSPECTOR_LEVELS[LOG_LEVELS.trace] = 'debug';\nINSPECTOR_LEVELS[LOG_LEVELS.info] = 'log';\nINSPECTOR_LEVELS[LOG_LEVELS.warn] = 'warning';\nINSPECTOR_LEVELS[LOG_LEVELS.error] = 'error';\n\n// Strip the inner function in getNativeLogFunction(), if in dev also\n// strip method printing to originalConsole.\nconst INSPECTOR_FRAMES_TO_SKIP = __DEV__ ? 2 : 1;\n\nfunction getNativeLogFunction(level) {\n return function () {\n let str;\n if (arguments.length === 1 && typeof arguments[0] === 'string') {\n str = arguments[0];\n } else {\n str = Array.prototype.map\n .call(arguments, function (arg) {\n return inspect(arg, {depth: 10});\n })\n .join(', ');\n }\n\n // TRICKY\n // If more than one argument is provided, the code above collapses them all\n // into a single formatted string. This transform wraps string arguments in\n // single quotes (e.g. \"foo\" -> \"'foo'\") which then breaks the \"Warning:\"\n // check below. So it's important that we look at the first argument, rather\n // than the formatted argument string.\n const firstArg = arguments[0];\n\n let logLevel = level;\n if (\n typeof firstArg === 'string' &&\n firstArg.slice(0, 9) === 'Warning: ' &&\n logLevel >= LOG_LEVELS.error\n ) {\n // React warnings use console.error so that a stack trace is shown,\n // but we don't (currently) want these to show a redbox\n // (Note: Logic duplicated in ExceptionsManager.js.)\n logLevel = LOG_LEVELS.warn;\n }\n if (global.__inspectorLog) {\n global.__inspectorLog(\n INSPECTOR_LEVELS[logLevel],\n str,\n [].slice.call(arguments),\n INSPECTOR_FRAMES_TO_SKIP,\n );\n }\n if (groupStack.length) {\n str = groupFormat('', str);\n }\n global.nativeLoggingHook(str, logLevel);\n };\n}\n\nfunction repeat(element, n) {\n return Array.apply(null, Array(n)).map(function () {\n return element;\n });\n}\n\nfunction consoleTablePolyfill(rows) {\n // convert object -> array\n if (!Array.isArray(rows)) {\n var data = rows;\n rows = [];\n for (var key in data) {\n if (data.hasOwnProperty(key)) {\n var row = data[key];\n row[OBJECT_COLUMN_NAME] = key;\n rows.push(row);\n }\n }\n }\n if (rows.length === 0) {\n global.nativeLoggingHook('', LOG_LEVELS.info);\n return;\n }\n\n var columns = Object.keys(rows[0]).sort();\n var stringRows = [];\n var columnWidths = [];\n\n // Convert each cell to a string. Also\n // figure out max cell width for each column\n columns.forEach(function (k, i) {\n columnWidths[i] = k.length;\n for (var j = 0; j < rows.length; j++) {\n var cellStr = (rows[j][k] || '?').toString();\n stringRows[j] = stringRows[j] || [];\n stringRows[j][i] = cellStr;\n columnWidths[i] = Math.max(columnWidths[i], cellStr.length);\n }\n });\n\n // Join all elements in the row into a single string with | separators\n // (appends extra spaces to each cell to make separators | aligned)\n function joinRow(row, space) {\n var cells = row.map(function (cell, i) {\n var extraSpaces = repeat(' ', columnWidths[i] - cell.length).join('');\n return cell + extraSpaces;\n });\n space = space || ' ';\n return cells.join(space + '|' + space);\n }\n\n var separators = columnWidths.map(function (columnWidth) {\n return repeat('-', columnWidth).join('');\n });\n var separatorRow = joinRow(separators, '-');\n var header = joinRow(columns);\n var table = [header, separatorRow];\n\n for (var i = 0; i < rows.length; i++) {\n table.push(joinRow(stringRows[i]));\n }\n\n // Notice extra empty line at the beginning.\n // Native logging hook adds \"RCTLog >\" at the front of every\n // logged string, which would shift the header and screw up\n // the table\n global.nativeLoggingHook('\\n' + table.join('\\n'), LOG_LEVELS.info);\n}\n\nconst GROUP_PAD = '\\u2502'; // Box light vertical\nconst GROUP_OPEN = '\\u2510'; // Box light down+left\nconst GROUP_CLOSE = '\\u2518'; // Box light up+left\n\nconst groupStack = [];\n\nfunction groupFormat(prefix, msg) {\n // Insert group formatting before the console message\n return groupStack.join('') + prefix + ' ' + (msg || '');\n}\n\nfunction consoleGroupPolyfill(label) {\n global.nativeLoggingHook(groupFormat(GROUP_OPEN, label), LOG_LEVELS.info);\n groupStack.push(GROUP_PAD);\n}\n\nfunction consoleGroupCollapsedPolyfill(label) {\n global.nativeLoggingHook(groupFormat(GROUP_CLOSE, label), LOG_LEVELS.info);\n groupStack.push(GROUP_PAD);\n}\n\nfunction consoleGroupEndPolyfill() {\n groupStack.pop();\n global.nativeLoggingHook(groupFormat(GROUP_CLOSE), LOG_LEVELS.info);\n}\n\nfunction consoleAssertPolyfill(expression, label) {\n if (!expression) {\n global.nativeLoggingHook('Assertion failed: ' + label, LOG_LEVELS.error);\n }\n}\n\nif (global.nativeLoggingHook) {\n const originalConsole = global.console;\n // Preserve the original `console` as `originalConsole`\n if (__DEV__ && originalConsole) {\n const descriptor = Object.getOwnPropertyDescriptor(global, 'console');\n if (descriptor) {\n Object.defineProperty(global, 'originalConsole', descriptor);\n }\n }\n\n global.console = {\n error: getNativeLogFunction(LOG_LEVELS.error),\n info: getNativeLogFunction(LOG_LEVELS.info),\n log: getNativeLogFunction(LOG_LEVELS.info),\n warn: getNativeLogFunction(LOG_LEVELS.warn),\n trace: getNativeLogFunction(LOG_LEVELS.trace),\n debug: getNativeLogFunction(LOG_LEVELS.trace),\n table: consoleTablePolyfill,\n group: consoleGroupPolyfill,\n groupEnd: consoleGroupEndPolyfill,\n groupCollapsed: consoleGroupCollapsedPolyfill,\n assert: consoleAssertPolyfill,\n };\n\n Object.defineProperty(console, '_isPolyfilled', {\n value: true,\n enumerable: false,\n });\n\n // If available, also call the original `console` method since that is\n // sometimes useful. Ex: on OS X, this will let you see rich output in\n // the Safari Web Inspector console.\n if (__DEV__ && originalConsole) {\n Object.keys(console).forEach(methodName => {\n const reactNativeMethod = console[methodName];\n if (originalConsole[methodName]) {\n console[methodName] = function () {\n originalConsole[methodName](...arguments);\n reactNativeMethod.apply(console, arguments);\n };\n }\n });\n\n // The following methods are not supported by this polyfill but\n // we still should pass them to original console if they are\n // supported by it.\n ['clear', 'dir', 'dirxml', 'profile', 'profileEnd'].forEach(methodName => {\n if (typeof originalConsole[methodName] === 'function') {\n console[methodName] = function () {\n originalConsole[methodName](...arguments);\n };\n }\n });\n }\n} else if (!global.console) {\n function stub() {}\n const log = global.print || stub;\n\n global.console = {\n debug: log,\n error: log,\n info: log,\n log: log,\n trace: log,\n warn: log,\n assert(expression, label) {\n if (!expression) {\n log('Assertion failed: ' + label);\n }\n },\n clear: stub,\n dir: stub,\n dirxml: stub,\n group: stub,\n groupCollapsed: stub,\n groupEnd: stub,\n profile: stub,\n profileEnd: stub,\n table: stub,\n };\n\n Object.defineProperty(console, '_isPolyfilled', {\n value: true,\n enumerable: false,\n });\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n * @polyfill\n */\n\nlet _inGuard = 0;\n\ntype ErrorHandler = (error: mixed, isFatal: boolean) => void;\ntype Fn = (...Args) => Return;\n\n/**\n * This is the error handler that is called when we encounter an exception\n * when loading a module. This will report any errors encountered before\n * ExceptionsManager is configured.\n */\nlet _globalHandler: ErrorHandler = function onError(\n e: mixed,\n isFatal: boolean,\n) {\n throw e;\n};\n\n/**\n * The particular require runtime that we are using looks for a global\n * `ErrorUtils` object and if it exists, then it requires modules with the\n * error handler specified via ErrorUtils.setGlobalHandler by calling the\n * require function with applyWithGuard. Since the require module is loaded\n * before any of the modules, this ErrorUtils must be defined (and the handler\n * set) globally before requiring anything.\n */\nconst ErrorUtils = {\n setGlobalHandler(fun: ErrorHandler): void {\n _globalHandler = fun;\n },\n getGlobalHandler(): ErrorHandler {\n return _globalHandler;\n },\n reportError(error: mixed): void {\n _globalHandler && _globalHandler(error, false);\n },\n reportFatalError(error: mixed): void {\n // NOTE: This has an untyped call site in Metro.\n _globalHandler && _globalHandler(error, true);\n },\n applyWithGuard, TOut>(\n fun: Fn,\n context?: ?mixed,\n args?: ?TArgs,\n // Unused, but some code synced from www sets it to null.\n unused_onError?: null,\n // Some callers pass a name here, which we ignore.\n unused_name?: ?string,\n ): ?TOut {\n try {\n _inGuard++;\n /* $FlowFixMe[incompatible-call] : TODO T48204745 (1) apply(context,\n * null) is fine. (2) array -> rest array should work */\n /* $FlowFixMe[incompatible-type] : TODO T48204745 (1) apply(context,\n * null) is fine. (2) array -> rest array should work */\n return fun.apply(context, args);\n } catch (e) {\n ErrorUtils.reportError(e);\n } finally {\n _inGuard--;\n }\n return null;\n },\n applyWithGuardIfNeeded, TOut>(\n fun: Fn,\n context?: ?mixed,\n args?: ?TArgs,\n ): ?TOut {\n if (ErrorUtils.inGuard()) {\n /* $FlowFixMe[incompatible-call] : TODO T48204745 (1) apply(context,\n * null) is fine. (2) array -> rest array should work */\n /* $FlowFixMe[incompatible-type] : TODO T48204745 (1) apply(context,\n * null) is fine. (2) array -> rest array should work */\n return fun.apply(context, args);\n } else {\n ErrorUtils.applyWithGuard(fun, context, args);\n }\n return null;\n },\n inGuard(): boolean {\n return !!_inGuard;\n },\n guard, TOut>(\n fun: Fn,\n name?: ?string,\n context?: ?mixed,\n ): ?(...TArgs) => ?TOut {\n // TODO: (moti) T48204753 Make sure this warning is never hit and remove it - types\n // should be sufficient.\n if (typeof fun !== 'function') {\n console.warn('A function must be passed to ErrorUtils.guard, got ', fun);\n return null;\n }\n const guardName = name ?? fun.name ?? '';\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n function guarded(...args: TArgs): ?TOut {\n return ErrorUtils.applyWithGuard(\n fun,\n context ?? this,\n args,\n null,\n guardName,\n );\n }\n\n return guarded;\n },\n};\n\nglobal.ErrorUtils = ErrorUtils;\n\nexport type ErrorUtilsT = typeof ErrorUtils;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @polyfill\n * @nolint\n */\n\n(function () {\n 'use strict';\n\n const hasOwnProperty = Object.prototype.hasOwnProperty;\n\n /**\n * Returns an array of the given object's own enumerable entries.\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries\n */\n if (typeof Object.entries !== 'function') {\n Object.entries = function (object) {\n // `null` and `undefined` values are not allowed.\n if (object == null) {\n throw new TypeError('Object.entries called on non-object');\n }\n\n const entries = [];\n for (const key in object) {\n if (hasOwnProperty.call(object, key)) {\n entries.push([key, object[key]]);\n }\n }\n return entries;\n };\n }\n\n /**\n * Returns an array of the given object's own enumerable entries.\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values\n */\n if (typeof Object.values !== 'function') {\n Object.values = function (object) {\n // `null` and `undefined` values are not allowed.\n if (object == null) {\n throw new TypeError('Object.values called on non-object');\n }\n\n const values = [];\n for (const key in object) {\n if (hasOwnProperty.call(object, key)) {\n values.push(object[key]);\n }\n }\n return values;\n };\n }\n})();\n","/**\n * @format\n */\n\nimport {AppRegistry} from 'react-native';\nimport App from './App';\nimport {name as appName} from './app.json';\n\nAppRegistry.registerComponent(appName, () => App);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\n// Components\nimport typeof AccessibilityInfo from './Libraries/Components/AccessibilityInfo/AccessibilityInfo';\nimport typeof ActivityIndicator from './Libraries/Components/ActivityIndicator/ActivityIndicator';\nimport typeof Button from './Libraries/Components/Button';\nimport typeof DrawerLayoutAndroid from './Libraries/Components/DrawerAndroid/DrawerLayoutAndroid';\nimport typeof FlatList from './Libraries/Lists/FlatList';\nimport typeof Image from './Libraries/Image/Image';\nimport typeof ImageBackground from './Libraries/Image/ImageBackground';\nimport typeof InputAccessoryView from './Libraries/Components/TextInput/InputAccessoryView';\nimport typeof KeyboardAvoidingView from './Libraries/Components/Keyboard/KeyboardAvoidingView';\nimport typeof Modal from './Libraries/Modal/Modal';\nimport typeof Pressable from './Libraries/Components/Pressable/Pressable';\nimport typeof ProgressBarAndroid from './Libraries/Components/ProgressBarAndroid/ProgressBarAndroid';\nimport typeof RefreshControl from './Libraries/Components/RefreshControl/RefreshControl';\nimport typeof SafeAreaView from './Libraries/Components/SafeAreaView/SafeAreaView';\nimport typeof ScrollView from './Libraries/Components/ScrollView/ScrollView';\nimport typeof SectionList from './Libraries/Lists/SectionList';\nimport typeof StatusBar from './Libraries/Components/StatusBar/StatusBar';\nimport typeof Switch from './Libraries/Components/Switch/Switch';\nimport typeof Text from './Libraries/Text/Text';\nimport typeof TextInput from './Libraries/Components/TextInput/TextInput';\nimport typeof Touchable from './Libraries/Components/Touchable/Touchable';\nimport typeof TouchableHighlight from './Libraries/Components/Touchable/TouchableHighlight';\nimport typeof TouchableNativeFeedback from './Libraries/Components/Touchable/TouchableNativeFeedback';\nimport typeof TouchableOpacity from './Libraries/Components/Touchable/TouchableOpacity';\nimport typeof TouchableWithoutFeedback from './Libraries/Components/Touchable/TouchableWithoutFeedback';\nimport typeof View from './Libraries/Components/View/View';\nimport typeof VirtualizedList from './Libraries/Lists/VirtualizedList';\nimport typeof VirtualizedSectionList from './Libraries/Lists/VirtualizedSectionList';\n\n// APIs\nimport typeof ActionSheetIOS from './Libraries/ActionSheetIOS/ActionSheetIOS';\nimport typeof Alert from './Libraries/Alert/Alert';\nimport typeof Animated from './Libraries/Animated/Animated';\nimport typeof * as AnimatedModule from './Libraries/Animated/Animated';\nimport typeof Appearance from './Libraries/Utilities/Appearance';\nimport typeof AppRegistry from './Libraries/ReactNative/AppRegistry';\nimport typeof AppState from './Libraries/AppState/AppState';\nimport typeof BackHandler from './Libraries/Utilities/BackHandler';\nimport typeof Clipboard from './Libraries/Components/Clipboard/Clipboard';\nimport typeof DeviceInfo from './Libraries/Utilities/DeviceInfo';\nimport typeof DevSettings from './Libraries/Utilities/DevSettings';\nimport typeof Dimensions from './Libraries/Utilities/Dimensions';\nimport typeof Easing from './Libraries/Animated/Easing';\nimport typeof ReactNative from './Libraries/Renderer/shims/ReactNative';\nimport typeof I18nManager from './Libraries/ReactNative/I18nManager';\nimport typeof InteractionManager from './Libraries/Interaction/InteractionManager';\nimport typeof Keyboard from './Libraries/Components/Keyboard/Keyboard';\nimport typeof LayoutAnimation from './Libraries/LayoutAnimation/LayoutAnimation';\nimport typeof Linking from './Libraries/Linking/Linking';\nimport typeof LogBox from './Libraries/LogBox/LogBox';\nimport typeof NativeDialogManagerAndroid from './Libraries/NativeModules/specs/NativeDialogManagerAndroid';\nimport typeof NativeEventEmitter from './Libraries/EventEmitter/NativeEventEmitter';\nimport typeof Networking from './Libraries/Network/RCTNetworking';\nimport typeof PanResponder from './Libraries/Interaction/PanResponder';\nimport typeof PermissionsAndroid from './Libraries/PermissionsAndroid/PermissionsAndroid';\nimport typeof PixelRatio from './Libraries/Utilities/PixelRatio';\nimport typeof PushNotificationIOS from './Libraries/PushNotificationIOS/PushNotificationIOS';\nimport typeof Settings from './Libraries/Settings/Settings';\nimport typeof Share from './Libraries/Share/Share';\nimport typeof StyleSheet from './Libraries/StyleSheet/StyleSheet';\nimport typeof * as Systrace from './Libraries/Performance/Systrace';\nimport typeof ToastAndroid from './Libraries/Components/ToastAndroid/ToastAndroid';\nimport typeof * as TurboModuleRegistry from './Libraries/TurboModule/TurboModuleRegistry';\nimport typeof UIManager from './Libraries/ReactNative/UIManager';\nimport typeof useAnimatedValue from './Libraries/Animated/useAnimatedValue';\nimport typeof useColorScheme from './Libraries/Utilities/useColorScheme';\nimport typeof useWindowDimensions from './Libraries/Utilities/useWindowDimensions';\nimport typeof UTFSequence from './Libraries/UTFSequence';\nimport typeof Vibration from './Libraries/Vibration/Vibration';\nimport typeof YellowBox from './Libraries/YellowBox/YellowBoxDeprecated';\n\n// Plugins\nimport typeof {DynamicColorIOS} from './Libraries/StyleSheet/PlatformColorValueTypesIOS';\nimport typeof NativeModules from './Libraries/BatchedBridge/NativeModules';\nimport typeof Platform from './Libraries/Utilities/Platform';\nimport typeof {PlatformColor} from './Libraries/StyleSheet/PlatformColorValueTypes';\nimport typeof processColor from './Libraries/StyleSheet/processColor';\nimport typeof RCTDeviceEventEmitter from './Libraries/EventEmitter/RCTDeviceEventEmitter';\nimport typeof RCTNativeAppEventEmitter from './Libraries/EventEmitter/RCTNativeAppEventEmitter';\nimport typeof {RootTagContext} from './Libraries/ReactNative/RootTag';\n\nimport type {HostComponent as _HostComponentInternal} from './Libraries/Renderer/shims/ReactNativeTypes';\n\nexport type HostComponent = _HostComponentInternal;\n\nconst invariant = require('invariant');\nconst warnOnce = require('./Libraries/Utilities/warnOnce');\n\nmodule.exports = {\n // Components\n get AccessibilityInfo(): AccessibilityInfo {\n return require('./Libraries/Components/AccessibilityInfo/AccessibilityInfo')\n .default;\n },\n get ActivityIndicator(): ActivityIndicator {\n return require('./Libraries/Components/ActivityIndicator/ActivityIndicator')\n .default;\n },\n get Button(): Button {\n return require('./Libraries/Components/Button');\n },\n // $FlowFixMe[value-as-type]\n get DrawerLayoutAndroid(): DrawerLayoutAndroid {\n return require('./Libraries/Components/DrawerAndroid/DrawerLayoutAndroid');\n },\n get FlatList(): FlatList {\n return require('./Libraries/Lists/FlatList');\n },\n get Image(): Image {\n return require('./Libraries/Image/Image');\n },\n get ImageBackground(): ImageBackground {\n return require('./Libraries/Image/ImageBackground');\n },\n get InputAccessoryView(): InputAccessoryView {\n return require('./Libraries/Components/TextInput/InputAccessoryView');\n },\n get KeyboardAvoidingView(): KeyboardAvoidingView {\n return require('./Libraries/Components/Keyboard/KeyboardAvoidingView')\n .default;\n },\n get Modal(): Modal {\n return require('./Libraries/Modal/Modal');\n },\n get Pressable(): Pressable {\n return require('./Libraries/Components/Pressable/Pressable').default;\n },\n // $FlowFixMe[value-as-type]\n get ProgressBarAndroid(): ProgressBarAndroid {\n warnOnce(\n 'progress-bar-android-moved',\n 'ProgressBarAndroid has been extracted from react-native core and will be removed in a future release. ' +\n \"It can now be installed and imported from '@react-native-community/progress-bar-android' instead of 'react-native'. \" +\n 'See https://github.com/react-native-progress-view/progress-bar-android',\n );\n return require('./Libraries/Components/ProgressBarAndroid/ProgressBarAndroid');\n },\n get RefreshControl(): RefreshControl {\n return require('./Libraries/Components/RefreshControl/RefreshControl');\n },\n get SafeAreaView(): SafeAreaView {\n return require('./Libraries/Components/SafeAreaView/SafeAreaView').default;\n },\n get ScrollView(): ScrollView {\n return require('./Libraries/Components/ScrollView/ScrollView');\n },\n get SectionList(): SectionList {\n return require('./Libraries/Lists/SectionList').default;\n },\n get StatusBar(): StatusBar {\n return require('./Libraries/Components/StatusBar/StatusBar');\n },\n get Switch(): Switch {\n return require('./Libraries/Components/Switch/Switch').default;\n },\n get Text(): Text {\n return require('./Libraries/Text/Text');\n },\n get TextInput(): TextInput {\n return require('./Libraries/Components/TextInput/TextInput');\n },\n get Touchable(): Touchable {\n return require('./Libraries/Components/Touchable/Touchable');\n },\n get TouchableHighlight(): TouchableHighlight {\n return require('./Libraries/Components/Touchable/TouchableHighlight');\n },\n get TouchableNativeFeedback(): TouchableNativeFeedback {\n return require('./Libraries/Components/Touchable/TouchableNativeFeedback');\n },\n get TouchableOpacity(): TouchableOpacity {\n return require('./Libraries/Components/Touchable/TouchableOpacity');\n },\n get TouchableWithoutFeedback(): TouchableWithoutFeedback {\n return require('./Libraries/Components/Touchable/TouchableWithoutFeedback');\n },\n get View(): View {\n return require('./Libraries/Components/View/View');\n },\n get VirtualizedList(): VirtualizedList {\n return require('./Libraries/Lists/VirtualizedList');\n },\n get VirtualizedSectionList(): VirtualizedSectionList {\n return require('./Libraries/Lists/VirtualizedSectionList');\n },\n\n // APIs\n get ActionSheetIOS(): ActionSheetIOS {\n return require('./Libraries/ActionSheetIOS/ActionSheetIOS');\n },\n get Alert(): Alert {\n return require('./Libraries/Alert/Alert');\n },\n // Include any types exported in the Animated module together with its default export, so\n // you can references types such as Animated.Numeric\n get Animated(): {...$Diff, ...Animated} {\n // $FlowExpectedError[prop-missing]: we only return the default export, all other exports are types\n return require('./Libraries/Animated/Animated').default;\n },\n get Appearance(): Appearance {\n return require('./Libraries/Utilities/Appearance');\n },\n get AppRegistry(): AppRegistry {\n return require('./Libraries/ReactNative/AppRegistry');\n },\n get AppState(): AppState {\n return require('./Libraries/AppState/AppState');\n },\n get BackHandler(): BackHandler {\n return require('./Libraries/Utilities/BackHandler');\n },\n get Clipboard(): Clipboard {\n warnOnce(\n 'clipboard-moved',\n 'Clipboard has been extracted from react-native core and will be removed in a future release. ' +\n \"It can now be installed and imported from '@react-native-clipboard/clipboard' instead of 'react-native'. \" +\n 'See https://github.com/react-native-clipboard/clipboard',\n );\n return require('./Libraries/Components/Clipboard/Clipboard');\n },\n get DeviceInfo(): DeviceInfo {\n return require('./Libraries/Utilities/DeviceInfo');\n },\n get DevSettings(): DevSettings {\n return require('./Libraries/Utilities/DevSettings');\n },\n get Dimensions(): Dimensions {\n return require('./Libraries/Utilities/Dimensions').default;\n },\n get Easing(): Easing {\n return require('./Libraries/Animated/Easing').default;\n },\n get findNodeHandle(): $PropertyType {\n return require('./Libraries/ReactNative/RendererProxy').findNodeHandle;\n },\n get I18nManager(): I18nManager {\n return require('./Libraries/ReactNative/I18nManager');\n },\n get InteractionManager(): InteractionManager {\n return require('./Libraries/Interaction/InteractionManager');\n },\n get Keyboard(): Keyboard {\n return require('./Libraries/Components/Keyboard/Keyboard');\n },\n get LayoutAnimation(): LayoutAnimation {\n return require('./Libraries/LayoutAnimation/LayoutAnimation');\n },\n get Linking(): Linking {\n return require('./Libraries/Linking/Linking');\n },\n get LogBox(): LogBox {\n return require('./Libraries/LogBox/LogBox').default;\n },\n get NativeDialogManagerAndroid(): NativeDialogManagerAndroid {\n return require('./Libraries/NativeModules/specs/NativeDialogManagerAndroid')\n .default;\n },\n get NativeEventEmitter(): NativeEventEmitter {\n return require('./Libraries/EventEmitter/NativeEventEmitter').default;\n },\n get Networking(): Networking {\n return require('./Libraries/Network/RCTNetworking').default;\n },\n get PanResponder(): PanResponder {\n return require('./Libraries/Interaction/PanResponder').default;\n },\n get PermissionsAndroid(): PermissionsAndroid {\n return require('./Libraries/PermissionsAndroid/PermissionsAndroid');\n },\n get PixelRatio(): PixelRatio {\n return require('./Libraries/Utilities/PixelRatio').default;\n },\n get PushNotificationIOS(): PushNotificationIOS {\n warnOnce(\n 'pushNotificationIOS-moved',\n 'PushNotificationIOS has been extracted from react-native core and will be removed in a future release. ' +\n \"It can now be installed and imported from '@react-native-community/push-notification-ios' instead of 'react-native'. \" +\n 'See https://github.com/react-native-push-notification-ios/push-notification-ios',\n );\n return require('./Libraries/PushNotificationIOS/PushNotificationIOS');\n },\n get Settings(): Settings {\n return require('./Libraries/Settings/Settings');\n },\n get Share(): Share {\n return require('./Libraries/Share/Share');\n },\n get StyleSheet(): StyleSheet {\n return require('./Libraries/StyleSheet/StyleSheet');\n },\n get Systrace(): Systrace {\n return require('./Libraries/Performance/Systrace');\n },\n // $FlowFixMe[value-as-type]\n get ToastAndroid(): ToastAndroid {\n return require('./Libraries/Components/ToastAndroid/ToastAndroid');\n },\n get TurboModuleRegistry(): TurboModuleRegistry {\n return require('./Libraries/TurboModule/TurboModuleRegistry');\n },\n get UIManager(): UIManager {\n return require('./Libraries/ReactNative/UIManager');\n },\n get unstable_batchedUpdates(): $PropertyType<\n ReactNative,\n 'unstable_batchedUpdates',\n > {\n return require('./Libraries/ReactNative/RendererProxy')\n .unstable_batchedUpdates;\n },\n get useAnimatedValue(): useAnimatedValue {\n return require('./Libraries/Animated/useAnimatedValue').default;\n },\n get useColorScheme(): useColorScheme {\n return require('./Libraries/Utilities/useColorScheme').default;\n },\n get useWindowDimensions(): useWindowDimensions {\n return require('./Libraries/Utilities/useWindowDimensions').default;\n },\n get UTFSequence(): UTFSequence {\n return require('./Libraries/UTFSequence').default;\n },\n get Vibration(): Vibration {\n return require('./Libraries/Vibration/Vibration');\n },\n get YellowBox(): YellowBox {\n return require('./Libraries/YellowBox/YellowBoxDeprecated');\n },\n\n // Plugins\n get DeviceEventEmitter(): RCTDeviceEventEmitter {\n return require('./Libraries/EventEmitter/RCTDeviceEventEmitter').default;\n },\n get DynamicColorIOS(): DynamicColorIOS {\n return require('./Libraries/StyleSheet/PlatformColorValueTypesIOS')\n .DynamicColorIOS;\n },\n get NativeAppEventEmitter(): RCTNativeAppEventEmitter {\n return require('./Libraries/EventEmitter/RCTNativeAppEventEmitter');\n },\n get NativeModules(): NativeModules {\n return require('./Libraries/BatchedBridge/NativeModules');\n },\n get Platform(): Platform {\n return require('./Libraries/Utilities/Platform');\n },\n get PlatformColor(): PlatformColor {\n return require('./Libraries/StyleSheet/PlatformColorValueTypes')\n .PlatformColor;\n },\n get processColor(): processColor {\n return require('./Libraries/StyleSheet/processColor').default;\n },\n get requireNativeComponent(): (\n uiViewClassName: string,\n ) => HostComponent {\n return require('./Libraries/ReactNative/requireNativeComponent').default;\n },\n get RootTagContext(): RootTagContext {\n return require('./Libraries/ReactNative/RootTag').RootTagContext;\n },\n get unstable_enableLogBox(): () => void {\n return () =>\n console.warn(\n 'LogBox is enabled by default so there is no need to call unstable_enableLogBox() anymore. This is a no op and will be removed in the next version.',\n );\n },\n // Deprecated Prop Types\n get ColorPropType(): $FlowFixMe {\n console.error(\n 'ColorPropType will be removed from React Native, along with all ' +\n 'other PropTypes. We recommend that you migrate away from PropTypes ' +\n 'and switch to a type system like TypeScript. If you need to ' +\n 'continue using ColorPropType, migrate to the ' +\n \"'deprecated-react-native-prop-types' package.\",\n );\n return require('deprecated-react-native-prop-types').ColorPropType;\n },\n get EdgeInsetsPropType(): $FlowFixMe {\n console.error(\n 'EdgeInsetsPropType will be removed from React Native, along with all ' +\n 'other PropTypes. We recommend that you migrate away from PropTypes ' +\n 'and switch to a type system like TypeScript. If you need to ' +\n 'continue using EdgeInsetsPropType, migrate to the ' +\n \"'deprecated-react-native-prop-types' package.\",\n );\n return require('deprecated-react-native-prop-types').EdgeInsetsPropType;\n },\n get PointPropType(): $FlowFixMe {\n console.error(\n 'PointPropType will be removed from React Native, along with all ' +\n 'other PropTypes. We recommend that you migrate away from PropTypes ' +\n 'and switch to a type system like TypeScript. If you need to ' +\n 'continue using PointPropType, migrate to the ' +\n \"'deprecated-react-native-prop-types' package.\",\n );\n return require('deprecated-react-native-prop-types').PointPropType;\n },\n get ViewPropTypes(): $FlowFixMe {\n console.error(\n 'ViewPropTypes will be removed from React Native, along with all ' +\n 'other PropTypes. We recommend that you migrate away from PropTypes ' +\n 'and switch to a type system like TypeScript. If you need to ' +\n 'continue using ViewPropTypes, migrate to the ' +\n \"'deprecated-react-native-prop-types' package.\",\n );\n return require('deprecated-react-native-prop-types').ViewPropTypes;\n },\n};\n\nif (__DEV__) {\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ART. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ART. */\n Object.defineProperty(module.exports, 'ART', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ART has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/art' instead of 'react-native'. \" +\n 'See https://github.com/react-native-art/art',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ListView. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ListView. */\n Object.defineProperty(module.exports, 'ListView', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ListView has been removed from React Native. ' +\n 'See https://fb.me/nolistview for more information or use ' +\n '`deprecated-react-native-listview`.',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access SwipeableListView. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access SwipeableListView. */\n Object.defineProperty(module.exports, 'SwipeableListView', {\n configurable: true,\n get() {\n invariant(\n false,\n 'SwipeableListView has been removed from React Native. ' +\n 'See https://fb.me/nolistview for more information or use ' +\n '`deprecated-react-native-swipeable-listview`.',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access WebView. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access WebView. */\n Object.defineProperty(module.exports, 'WebView', {\n configurable: true,\n get() {\n invariant(\n false,\n 'WebView has been removed from React Native. ' +\n \"It can now be installed and imported from 'react-native-webview' instead of 'react-native'. \" +\n 'See https://github.com/react-native-webview/react-native-webview',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access NetInfo. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access NetInfo. */\n Object.defineProperty(module.exports, 'NetInfo', {\n configurable: true,\n get() {\n invariant(\n false,\n 'NetInfo has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/netinfo' instead of 'react-native'. \" +\n 'See https://github.com/react-native-netinfo/react-native-netinfo',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access CameraRoll. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access CameraRoll. */\n Object.defineProperty(module.exports, 'CameraRoll', {\n configurable: true,\n get() {\n invariant(\n false,\n 'CameraRoll has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/cameraroll' instead of 'react-native'. \" +\n 'See https://github.com/react-native-cameraroll/react-native-cameraroll',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ImageStore. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ImageStore. */\n Object.defineProperty(module.exports, 'ImageStore', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ImageStore has been removed from React Native. ' +\n 'To get a base64-encoded string from a local image use either of the following third-party libraries:' +\n \"* expo-file-system: `readAsStringAsync(filepath, 'base64')`\" +\n \"* react-native-fs: `readFile(filepath, 'base64')`\",\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ImageEditor. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ImageEditor. */\n Object.defineProperty(module.exports, 'ImageEditor', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ImageEditor has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/image-editor' instead of 'react-native'. \" +\n 'See https://github.com/callstack/react-native-image-editor',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access TimePickerAndroid. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access TimePickerAndroid. */\n Object.defineProperty(module.exports, 'TimePickerAndroid', {\n configurable: true,\n get() {\n invariant(\n false,\n 'TimePickerAndroid has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/datetimepicker' instead of 'react-native'. \" +\n 'See https://github.com/react-native-datetimepicker/datetimepicker',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ToolbarAndroid. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ToolbarAndroid. */\n Object.defineProperty(module.exports, 'ToolbarAndroid', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ToolbarAndroid has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/toolbar-android' instead of 'react-native'. \" +\n 'See https://github.com/react-native-toolbar-android/toolbar-android',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ViewPagerAndroid. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ViewPagerAndroid. */\n Object.defineProperty(module.exports, 'ViewPagerAndroid', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ViewPagerAndroid has been removed from React Native. ' +\n \"It can now be installed and imported from 'react-native-pager-view' instead of 'react-native'. \" +\n 'See https://github.com/callstack/react-native-pager-view',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access CheckBox. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access CheckBox. */\n Object.defineProperty(module.exports, 'CheckBox', {\n configurable: true,\n get() {\n invariant(\n false,\n 'CheckBox has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/checkbox' instead of 'react-native'. \" +\n 'See https://github.com/react-native-checkbox/react-native-checkbox',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access SegmentedControlIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access SegmentedControlIOS. */\n Object.defineProperty(module.exports, 'SegmentedControlIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'SegmentedControlIOS has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/segmented-checkbox' instead of 'react-native'.\" +\n 'See https://github.com/react-native-segmented-control/segmented-control',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access StatusBarIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access StatusBarIOS. */\n Object.defineProperty(module.exports, 'StatusBarIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'StatusBarIOS has been removed from React Native. ' +\n 'Has been merged with StatusBar. ' +\n 'See https://reactnative.dev/docs/statusbar',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access PickerIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access PickerIOS. */\n Object.defineProperty(module.exports, 'PickerIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'PickerIOS has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-picker/picker' instead of 'react-native'. \" +\n 'See https://github.com/react-native-picker/picker',\n );\n },\n });\n\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access Picker. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access Picker. */\n Object.defineProperty(module.exports, 'Picker', {\n configurable: true,\n get() {\n invariant(\n false,\n 'Picker has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-picker/picker' instead of 'react-native'. \" +\n 'See https://github.com/react-native-picker/picker',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access DatePickerAndroid. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access DatePickerAndroid. */\n Object.defineProperty(module.exports, 'DatePickerAndroid', {\n configurable: true,\n get() {\n invariant(\n false,\n 'DatePickerAndroid has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/datetimepicker' instead of 'react-native'. \" +\n 'See https://github.com/react-native-datetimepicker/datetimepicker',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access MaskedViewIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access MaskedViewIOS. */\n Object.defineProperty(module.exports, 'MaskedViewIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'MaskedViewIOS has been removed from React Native. ' +\n \"It can now be installed and imported from '@react-native-community/react-native-masked-view' instead of 'react-native'. \" +\n 'See https://github.com/react-native-masked-view/masked-view',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access AsyncStorage. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access AsyncStorage. */\n Object.defineProperty(module.exports, 'AsyncStorage', {\n configurable: true,\n get() {\n invariant(\n false,\n 'AsyncStorage has been removed from react-native core. ' +\n \"It can now be installed and imported from '@react-native-async-storage/async-storage' instead of 'react-native'. \" +\n 'See https://github.com/react-native-async-storage/async-storage',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ImagePickerIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ImagePickerIOS. */\n Object.defineProperty(module.exports, 'ImagePickerIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ImagePickerIOS has been removed from React Native. ' +\n \"Please upgrade to use either '@react-native-community/react-native-image-picker' or 'expo-image-picker'. \" +\n \"If you cannot upgrade to a different library, please install the deprecated '@react-native-community/image-picker-ios' package. \" +\n 'See https://github.com/rnc-archive/react-native-image-picker-ios',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access ProgressViewIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access ProgressViewIOS. */\n Object.defineProperty(module.exports, 'ProgressViewIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'ProgressViewIOS has been removed from react-native core. ' +\n \"It can now be installed and imported from '@react-native-community/progress-view' instead of 'react-native'. \" +\n 'See https://github.com/react-native-progress-view/progress-view',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access DatePickerIOS. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access DatePickerIOS. */\n Object.defineProperty(module.exports, 'DatePickerIOS', {\n configurable: true,\n get() {\n invariant(\n false,\n 'DatePickerIOS has been removed from react-native core. ' +\n \"It can now be installed and imported from '@react-native-community/datetimepicker' instead of 'react-native'. \" +\n 'See https://github.com/react-native-datetimepicker/datetimepicker',\n );\n },\n });\n /* $FlowFixMe[prop-missing] This is intentional: Flow will error when\n * attempting to access Slider. */\n /* $FlowFixMe[invalid-export] This is intentional: Flow will error when\n * attempting to access Slider. */\n Object.defineProperty(module.exports, 'Slider', {\n configurable: true,\n get() {\n invariant(\n false,\n 'Slider has been removed from react-native core. ' +\n \"It can now be installed and imported from '@react-native-community/slider' instead of 'react-native'. \" +\n 'See https://github.com/callstack/react-native-slider',\n );\n },\n });\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {EventSubscription} from '../../vendor/emitter/EventEmitter';\nimport type {ElementRef} from 'react';\n\nimport RCTDeviceEventEmitter from '../../EventEmitter/RCTDeviceEventEmitter';\nimport {sendAccessibilityEvent} from '../../ReactNative/RendererProxy';\nimport Platform from '../../Utilities/Platform';\nimport legacySendAccessibilityEvent from './legacySendAccessibilityEvent';\nimport NativeAccessibilityInfoAndroid from './NativeAccessibilityInfo';\nimport NativeAccessibilityManagerIOS from './NativeAccessibilityManager';\n\n// Events that are only supported on Android.\ntype AccessibilityEventDefinitionsAndroid = {\n accessibilityServiceChanged: [boolean],\n};\n\n// Events that are only supported on iOS.\ntype AccessibilityEventDefinitionsIOS = {\n announcementFinished: [{announcement: string, success: boolean}],\n boldTextChanged: [boolean],\n grayscaleChanged: [boolean],\n invertColorsChanged: [boolean],\n reduceTransparencyChanged: [boolean],\n};\n\ntype AccessibilityEventDefinitions = {\n ...AccessibilityEventDefinitionsAndroid,\n ...AccessibilityEventDefinitionsIOS,\n change: [boolean], // screenReaderChanged\n reduceMotionChanged: [boolean],\n screenReaderChanged: [boolean],\n};\n\ntype AccessibilityEventTypes = 'click' | 'focus' | 'viewHoverEnter';\n\n// Mapping of public event names to platform-specific event names.\nconst EventNames: Map<\n $Keys,\n string,\n> = Platform.OS === 'android'\n ? new Map([\n ['change', 'touchExplorationDidChange'],\n ['reduceMotionChanged', 'reduceMotionDidChange'],\n ['screenReaderChanged', 'touchExplorationDidChange'],\n ['accessibilityServiceChanged', 'accessibilityServiceDidChange'],\n ])\n : new Map([\n ['announcementFinished', 'announcementFinished'],\n ['boldTextChanged', 'boldTextChanged'],\n ['change', 'screenReaderChanged'],\n ['grayscaleChanged', 'grayscaleChanged'],\n ['invertColorsChanged', 'invertColorsChanged'],\n ['reduceMotionChanged', 'reduceMotionChanged'],\n ['reduceTransparencyChanged', 'reduceTransparencyChanged'],\n ['screenReaderChanged', 'screenReaderChanged'],\n ]);\n\n/**\n * Sometimes it's useful to know whether or not the device has a screen reader\n * that is currently active. The `AccessibilityInfo` API is designed for this\n * purpose. You can use it to query the current state of the screen reader as\n * well as to register to be notified when the state of the screen reader\n * changes.\n *\n * See https://reactnative.dev/docs/accessibilityinfo\n */\nconst AccessibilityInfo = {\n /**\n * Query whether bold text is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when bold text is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#isBoldTextEnabled\n */\n isBoldTextEnabled(): Promise {\n if (Platform.OS === 'android') {\n return Promise.resolve(false);\n } else {\n return new Promise((resolve, reject) => {\n if (NativeAccessibilityManagerIOS != null) {\n NativeAccessibilityManagerIOS.getCurrentBoldTextState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n });\n }\n },\n\n /**\n * Query whether grayscale is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when grayscale is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#isGrayscaleEnabled\n */\n isGrayscaleEnabled(): Promise {\n if (Platform.OS === 'android') {\n return Promise.resolve(false);\n } else {\n return new Promise((resolve, reject) => {\n if (NativeAccessibilityManagerIOS != null) {\n NativeAccessibilityManagerIOS.getCurrentGrayscaleState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n });\n }\n },\n\n /**\n * Query whether inverted colors are currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when invert color is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#isInvertColorsEnabled\n */\n isInvertColorsEnabled(): Promise {\n if (Platform.OS === 'android') {\n return Promise.resolve(false);\n } else {\n return new Promise((resolve, reject) => {\n if (NativeAccessibilityManagerIOS != null) {\n NativeAccessibilityManagerIOS.getCurrentInvertColorsState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n });\n }\n },\n\n /**\n * Query whether reduced motion is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when a reduce motion is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#isReduceMotionEnabled\n */\n isReduceMotionEnabled(): Promise {\n return new Promise((resolve, reject) => {\n if (Platform.OS === 'android') {\n if (NativeAccessibilityInfoAndroid != null) {\n NativeAccessibilityInfoAndroid.isReduceMotionEnabled(resolve);\n } else {\n reject(null);\n }\n } else {\n if (NativeAccessibilityManagerIOS != null) {\n NativeAccessibilityManagerIOS.getCurrentReduceMotionState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n }\n });\n },\n\n /**\n * Query whether reduce motion and prefer cross-fade transitions settings are currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when prefer cross-fade transitions is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#prefersCrossFadeTransitions\n */\n prefersCrossFadeTransitions(): Promise {\n return new Promise((resolve, reject) => {\n if (Platform.OS === 'android') {\n return Promise.resolve(false);\n } else {\n if (\n NativeAccessibilityManagerIOS?.getCurrentPrefersCrossFadeTransitionsState !=\n null\n ) {\n NativeAccessibilityManagerIOS.getCurrentPrefersCrossFadeTransitionsState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n }\n });\n },\n\n /**\n * Query whether reduced transparency is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when a reduce transparency is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#isReduceTransparencyEnabled\n */\n isReduceTransparencyEnabled(): Promise {\n if (Platform.OS === 'android') {\n return Promise.resolve(false);\n } else {\n return new Promise((resolve, reject) => {\n if (NativeAccessibilityManagerIOS != null) {\n NativeAccessibilityManagerIOS.getCurrentReduceTransparencyState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n });\n }\n },\n\n /**\n * Query whether a screen reader is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when a screen reader is enabled and `false` otherwise.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#isScreenReaderEnabled\n */\n isScreenReaderEnabled(): Promise {\n return new Promise((resolve, reject) => {\n if (Platform.OS === 'android') {\n if (NativeAccessibilityInfoAndroid != null) {\n NativeAccessibilityInfoAndroid.isTouchExplorationEnabled(resolve);\n } else {\n reject(null);\n }\n } else {\n if (NativeAccessibilityManagerIOS != null) {\n NativeAccessibilityManagerIOS.getCurrentVoiceOverState(\n resolve,\n reject,\n );\n } else {\n reject(null);\n }\n }\n });\n },\n\n /**\n * Query whether Accessibility Service is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when any service is enabled and `false` otherwise.\n *\n * @platform android\n *\n * See https://reactnative.dev/docs/accessibilityinfo/#isaccessibilityserviceenabled-android\n */\n isAccessibilityServiceEnabled(): Promise {\n return new Promise((resolve, reject) => {\n if (Platform.OS === 'android') {\n if (\n NativeAccessibilityInfoAndroid != null &&\n NativeAccessibilityInfoAndroid.isAccessibilityServiceEnabled != null\n ) {\n NativeAccessibilityInfoAndroid.isAccessibilityServiceEnabled(resolve);\n } else {\n reject(null);\n }\n } else {\n reject(null);\n }\n });\n },\n\n /**\n * Add an event handler. Supported events:\n *\n * - `reduceMotionChanged`: Fires when the state of the reduce motion toggle changes.\n * The argument to the event handler is a boolean. The boolean is `true` when a reduce\n * motion is enabled (or when \"Transition Animation Scale\" in \"Developer options\" is\n * \"Animation off\") and `false` otherwise.\n * - `screenReaderChanged`: Fires when the state of the screen reader changes. The argument\n * to the event handler is a boolean. The boolean is `true` when a screen\n * reader is enabled and `false` otherwise.\n *\n * These events are only supported on iOS:\n *\n * - `boldTextChanged`: iOS-only event. Fires when the state of the bold text toggle changes.\n * The argument to the event handler is a boolean. The boolean is `true` when a bold text\n * is enabled and `false` otherwise.\n * - `grayscaleChanged`: iOS-only event. Fires when the state of the gray scale toggle changes.\n * The argument to the event handler is a boolean. The boolean is `true` when a gray scale\n * is enabled and `false` otherwise.\n * - `invertColorsChanged`: iOS-only event. Fires when the state of the invert colors toggle\n * changes. The argument to the event handler is a boolean. The boolean is `true` when a invert\n * colors is enabled and `false` otherwise.\n * - `reduceTransparencyChanged`: iOS-only event. Fires when the state of the reduce transparency\n * toggle changes. The argument to the event handler is a boolean. The boolean is `true`\n * when a reduce transparency is enabled and `false` otherwise.\n * - `announcementFinished`: iOS-only event. Fires when the screen reader has\n * finished making an announcement. The argument to the event handler is a\n * dictionary with these keys:\n * - `announcement`: The string announced by the screen reader.\n * - `success`: A boolean indicating whether the announcement was\n * successfully made.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#addeventlistener\n */\n addEventListener>(\n eventName: K,\n // $FlowIssue[incompatible-type] - Flow bug with unions and generics (T128099423)\n handler: (...$ElementType) => void,\n ): EventSubscription {\n const deviceEventName = EventNames.get(eventName);\n return deviceEventName == null\n ? {remove(): void {}}\n : // $FlowFixMe[incompatible-call]\n RCTDeviceEventEmitter.addListener(deviceEventName, handler);\n },\n\n /**\n * Set accessibility focus to a React component.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#setaccessibilityfocus\n */\n setAccessibilityFocus(reactTag: number): void {\n legacySendAccessibilityEvent(reactTag, 'focus');\n },\n\n /**\n * Send a named accessibility event to a HostComponent.\n */\n sendAccessibilityEvent(\n handle: ElementRef>,\n eventType: AccessibilityEventTypes,\n ) {\n // iOS only supports 'focus' event types\n if (Platform.OS === 'ios' && eventType === 'click') {\n return;\n }\n // route through React renderer to distinguish between Fabric and non-Fabric handles\n sendAccessibilityEvent(handle, eventType);\n },\n\n /**\n * Post a string to be announced by the screen reader.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#announceforaccessibility\n */\n announceForAccessibility(announcement: string): void {\n if (Platform.OS === 'android') {\n NativeAccessibilityInfoAndroid?.announceForAccessibility(announcement);\n } else {\n NativeAccessibilityManagerIOS?.announceForAccessibility(announcement);\n }\n },\n\n /**\n * Post a string to be announced by the screen reader.\n * - `announcement`: The string announced by the screen reader.\n * - `options`: An object that configures the reading options.\n * - `queue`: The announcement will be queued behind existing announcements. iOS only.\n */\n announceForAccessibilityWithOptions(\n announcement: string,\n options: {queue?: boolean},\n ): void {\n if (Platform.OS === 'android') {\n NativeAccessibilityInfoAndroid?.announceForAccessibility(announcement);\n } else {\n if (NativeAccessibilityManagerIOS?.announceForAccessibilityWithOptions) {\n NativeAccessibilityManagerIOS?.announceForAccessibilityWithOptions(\n announcement,\n options,\n );\n } else {\n NativeAccessibilityManagerIOS?.announceForAccessibility(announcement);\n }\n }\n },\n\n /**\n * Get the recommended timeout for changes to the UI needed by this user.\n *\n * See https://reactnative.dev/docs/accessibilityinfo#getrecommendedtimeoutmillis\n */\n getRecommendedTimeoutMillis(originalTimeout: number): Promise {\n if (Platform.OS === 'android') {\n return new Promise((resolve, reject) => {\n if (NativeAccessibilityInfoAndroid?.getRecommendedTimeoutMillis) {\n NativeAccessibilityInfoAndroid.getRecommendedTimeoutMillis(\n originalTimeout,\n resolve,\n );\n } else {\n resolve(originalTimeout);\n }\n });\n } else {\n return Promise.resolve(originalTimeout);\n }\n },\n};\n\nexport default AccessibilityInfo;\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {IEventEmitter} from '../vendor/emitter/EventEmitter';\n\nimport EventEmitter from '../vendor/emitter/EventEmitter';\n\n// FIXME: use typed events\ntype RCTDeviceEventDefinitions = $FlowFixMe;\n\n/**\n * Global EventEmitter used by the native platform to emit events to JavaScript.\n * Events are identified by globally unique event names.\n *\n * NativeModules that emit events should instead subclass `NativeEventEmitter`.\n */\nconst RCTDeviceEventEmitter: IEventEmitter =\n new EventEmitter();\n\nObject.defineProperty(global, '__rctDeviceEventEmitter', {\n configurable: true,\n value: RCTDeviceEventEmitter,\n});\n\nexport default (RCTDeviceEventEmitter: IEventEmitter);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nexport interface EventSubscription {\n remove(): void;\n}\n\nexport interface IEventEmitter {\n addListener>(\n eventType: TEvent,\n listener: (...args: $ElementType) => mixed,\n context?: mixed,\n ): EventSubscription;\n\n emit>(\n eventType: TEvent,\n ...args: $ElementType\n ): void;\n\n removeAllListeners>(eventType?: ?TEvent): void;\n\n listenerCount>(eventType: TEvent): number;\n}\n\ninterface Registration {\n +context: mixed;\n +listener: (...args: TArgs) => mixed;\n +remove: () => void;\n}\n\ntype Registry = $ObjMap<\n TEventToArgsMap,\n (TArgs) => Set>,\n>;\n\n/**\n * EventEmitter manages listeners and publishes events to them.\n *\n * EventEmitter accepts a single type parameter that defines the valid events\n * and associated listener argument(s).\n *\n * @example\n *\n * const emitter = new EventEmitter<{\n * success: [number, string],\n * error: [Error],\n * }>();\n *\n * emitter.on('success', (statusCode, responseText) => {...});\n * emitter.emit('success', 200, '...');\n *\n * emitter.on('error', error => {...});\n * emitter.emit('error', new Error('Resource not found'));\n *\n */\nexport default class EventEmitter\n implements IEventEmitter\n{\n _registry: Registry = {};\n\n /**\n * Registers a listener that is called when the supplied event is emitted.\n * Returns a subscription that has a `remove` method to undo registration.\n */\n addListener>(\n eventType: TEvent,\n listener: (...args: $ElementType) => mixed,\n context: mixed,\n ): EventSubscription {\n if (typeof listener !== 'function') {\n throw new TypeError(\n 'EventEmitter.addListener(...): 2nd argument must be a function.',\n );\n }\n const registrations = allocate<_, _, TEventToArgsMap[TEvent]>(\n this._registry,\n eventType,\n );\n const registration: Registration<$ElementType> = {\n context,\n listener,\n remove(): void {\n registrations.delete(registration);\n },\n };\n registrations.add(registration);\n return registration;\n }\n\n /**\n * Emits the supplied event. Additional arguments supplied to `emit` will be\n * passed through to each of the registered listeners.\n *\n * If a listener modifies the listeners registered for the same event, those\n * changes will not be reflected in the current invocation of `emit`.\n */\n emit>(\n eventType: TEvent,\n ...args: $ElementType\n ): void {\n const registrations: ?Set<\n Registration<$ElementType>,\n > = this._registry[eventType];\n if (registrations != null) {\n for (const registration of [...registrations]) {\n registration.listener.apply(registration.context, args);\n }\n }\n }\n\n /**\n * Removes all registered listeners.\n */\n removeAllListeners>(\n eventType?: ?TEvent,\n ): void {\n if (eventType == null) {\n this._registry = {};\n } else {\n delete this._registry[eventType];\n }\n }\n\n /**\n * Returns the number of registered listeners for the supplied event.\n */\n listenerCount>(eventType: TEvent): number {\n const registrations: ?Set> = this._registry[eventType];\n return registrations == null ? 0 : registrations.size;\n }\n}\n\nfunction allocate<\n TEventToArgsMap: {...},\n TEvent: $Keys,\n TEventArgs: $ElementType,\n>(\n registry: Registry,\n eventType: TEvent,\n): Set> {\n let registrations: ?Set> = registry[eventType];\n if (registrations == null) {\n registrations = new Set();\n registry[eventType] = registrations;\n }\n return registrations;\n}\n","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport NativePlatformConstantsAndroid from './NativePlatformConstantsAndroid';\n\nexport type PlatformSelectSpec = {\n android?: T,\n native?: T,\n default?: T,\n ...\n};\n\nconst Platform = {\n __constants: null,\n OS: 'android',\n // $FlowFixMe[unsafe-getters-setters]\n get Version(): number {\n // $FlowFixMe[object-this-reference]\n return this.constants.Version;\n },\n // $FlowFixMe[unsafe-getters-setters]\n get constants(): {|\n isTesting: boolean,\n reactNativeVersion: {|\n major: number,\n minor: number,\n patch: number,\n prerelease: ?number,\n |},\n Version: number,\n Release: string,\n Serial: string,\n Fingerprint: string,\n Model: string,\n ServerHost?: string,\n uiMode: string,\n Brand: string,\n Manufacturer: string,\n |} {\n // $FlowFixMe[object-this-reference]\n if (this.__constants == null) {\n // $FlowFixMe[object-this-reference]\n this.__constants = NativePlatformConstantsAndroid.getConstants();\n }\n // $FlowFixMe[object-this-reference]\n return this.__constants;\n },\n // $FlowFixMe[unsafe-getters-setters]\n get isTesting(): boolean {\n if (__DEV__) {\n // $FlowFixMe[object-this-reference]\n return this.constants.isTesting;\n }\n return false;\n },\n // $FlowFixMe[unsafe-getters-setters]\n get isTV(): boolean {\n // $FlowFixMe[object-this-reference]\n return this.constants.uiMode === 'tv';\n },\n select: (spec: PlatformSelectSpec): T =>\n 'android' in spec\n ? // $FlowFixMe[incompatible-return]\n spec.android\n : 'native' in spec\n ? // $FlowFixMe[incompatible-return]\n spec.native\n : // $FlowFixMe[incompatible-return]\n spec.default,\n};\n\nmodule.exports = Platform;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n isTesting: boolean,\n reactNativeVersion: {|\n major: number,\n minor: number,\n patch: number,\n prerelease: ?number,\n |},\n Version: number,\n Release: string,\n Serial: string,\n Fingerprint: string,\n Model: string,\n ServerHost?: string,\n uiMode: string,\n Brand: string,\n Manufacturer: string,\n |};\n +getAndroidID: () => string;\n}\n\nexport default (TurboModuleRegistry.getEnforcing(\n 'PlatformConstants',\n): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from './RCTExport';\n\nimport invariant from 'invariant';\n\nconst NativeModules = require('../BatchedBridge/NativeModules');\n\nconst turboModuleProxy = global.__turboModuleProxy;\n\nfunction requireModule(name: string): ?T {\n // Bridgeless mode requires TurboModules\n if (global.RN$Bridgeless !== true) {\n // Backward compatibility layer during migration.\n const legacyModule = NativeModules[name];\n if (legacyModule != null) {\n return ((legacyModule: $FlowFixMe): T);\n }\n }\n\n if (turboModuleProxy != null) {\n const module: ?T = turboModuleProxy(name);\n return module;\n }\n\n return null;\n}\n\nexport function get(name: string): ?T {\n return requireModule(name);\n}\n\nexport function getEnforcing(name: string): T {\n const module = requireModule(name);\n invariant(\n module != null,\n `TurboModuleRegistry.getEnforcing(...): '${name}' could not be found. ` +\n 'Verify that a module by this name is registered in the native binary.',\n );\n return module;\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nimport type {ExtendedError} from '../Core/ExtendedError';\n\nconst BatchedBridge = require('./BatchedBridge');\nconst invariant = require('invariant');\n\nexport type ModuleConfig = [\n string /* name */,\n ?{...} /* constants */,\n ?$ReadOnlyArray /* functions */,\n ?$ReadOnlyArray /* promise method IDs */,\n ?$ReadOnlyArray /* sync method IDs */,\n];\n\nexport type MethodType = 'async' | 'promise' | 'sync';\n\nfunction genModule(\n config: ?ModuleConfig,\n moduleID: number,\n): ?{\n name: string,\n module?: {...},\n ...\n} {\n if (!config) {\n return null;\n }\n\n const [moduleName, constants, methods, promiseMethods, syncMethods] = config;\n invariant(\n !moduleName.startsWith('RCT') && !moduleName.startsWith('RK'),\n \"Module name prefixes should've been stripped by the native side \" +\n \"but wasn't for \" +\n moduleName,\n );\n\n if (!constants && !methods) {\n // Module contents will be filled in lazily later\n return {name: moduleName};\n }\n\n const module: {[string]: mixed} = {};\n methods &&\n methods.forEach((methodName, methodID) => {\n const isPromise =\n (promiseMethods && arrayContains(promiseMethods, methodID)) || false;\n const isSync =\n (syncMethods && arrayContains(syncMethods, methodID)) || false;\n invariant(\n !isPromise || !isSync,\n 'Cannot have a method that is both async and a sync hook',\n );\n const methodType = isPromise ? 'promise' : isSync ? 'sync' : 'async';\n module[methodName] = genMethod(moduleID, methodID, methodType);\n });\n\n Object.assign(module, constants);\n\n if (module.getConstants == null) {\n module.getConstants = () => constants || Object.freeze({});\n } else {\n console.warn(\n `Unable to define method 'getConstants()' on NativeModule '${moduleName}'. NativeModule '${moduleName}' already has a constant or method called 'getConstants'. Please remove it.`,\n );\n }\n\n if (__DEV__) {\n BatchedBridge.createDebugLookup(moduleID, moduleName, methods);\n }\n\n return {name: moduleName, module};\n}\n\n// export this method as a global so we can call it from native\nglobal.__fbGenNativeModule = genModule;\n\nfunction loadModule(name: string, moduleID: number): ?{...} {\n invariant(\n global.nativeRequireModuleConfig,\n \"Can't lazily create module without nativeRequireModuleConfig\",\n );\n const config = global.nativeRequireModuleConfig(name);\n const info = genModule(config, moduleID);\n return info && info.module;\n}\n\nfunction genMethod(moduleID: number, methodID: number, type: MethodType) {\n let fn = null;\n if (type === 'promise') {\n fn = function promiseMethodWrapper(...args: Array) {\n // In case we reject, capture a useful stack trace here.\n /* $FlowFixMe[class-object-subtyping] added when improving typing for\n * this parameters */\n const enqueueingFrameError: ExtendedError = new Error();\n return new Promise((resolve, reject) => {\n BatchedBridge.enqueueNativeCall(\n moduleID,\n methodID,\n args,\n data => resolve(data),\n errorData =>\n reject(\n updateErrorWithErrorData(\n (errorData: $FlowFixMe),\n enqueueingFrameError,\n ),\n ),\n );\n });\n };\n } else {\n fn = function nonPromiseMethodWrapper(...args: Array) {\n const lastArg = args.length > 0 ? args[args.length - 1] : null;\n const secondLastArg = args.length > 1 ? args[args.length - 2] : null;\n const hasSuccessCallback = typeof lastArg === 'function';\n const hasErrorCallback = typeof secondLastArg === 'function';\n hasErrorCallback &&\n invariant(\n hasSuccessCallback,\n 'Cannot have a non-function arg after a function arg.',\n );\n // $FlowFixMe[incompatible-type]\n const onSuccess: ?(mixed) => void = hasSuccessCallback ? lastArg : null;\n // $FlowFixMe[incompatible-type]\n const onFail: ?(mixed) => void = hasErrorCallback ? secondLastArg : null;\n // $FlowFixMe[unsafe-addition]\n const callbackCount = hasSuccessCallback + hasErrorCallback;\n const newArgs = args.slice(0, args.length - callbackCount);\n if (type === 'sync') {\n return BatchedBridge.callNativeSyncHook(\n moduleID,\n methodID,\n newArgs,\n onFail,\n onSuccess,\n );\n } else {\n BatchedBridge.enqueueNativeCall(\n moduleID,\n methodID,\n newArgs,\n onFail,\n onSuccess,\n );\n }\n };\n }\n // $FlowFixMe[prop-missing]\n fn.type = type;\n return fn;\n}\n\nfunction arrayContains(array: $ReadOnlyArray, value: T): boolean {\n return array.indexOf(value) !== -1;\n}\n\nfunction updateErrorWithErrorData(\n errorData: {message: string, ...},\n error: ExtendedError,\n): ExtendedError {\n /* $FlowFixMe[class-object-subtyping] added when improving typing for this\n * parameters */\n return Object.assign(error, errorData || {});\n}\n\nlet NativeModules: {[moduleName: string]: $FlowFixMe, ...} = {};\nif (global.nativeModuleProxy) {\n NativeModules = global.nativeModuleProxy;\n} else if (!global.nativeExtensions) {\n const bridgeConfig = global.__fbBatchedBridgeConfig;\n invariant(\n bridgeConfig,\n '__fbBatchedBridgeConfig is not set, cannot invoke native modules',\n );\n\n const defineLazyObjectProperty = require('../Utilities/defineLazyObjectProperty');\n (bridgeConfig.remoteModuleConfig || []).forEach(\n (config: ModuleConfig, moduleID: number) => {\n // Initially this config will only contain the module name when running in JSC. The actual\n // configuration of the module will be lazily loaded.\n const info = genModule(config, moduleID);\n if (!info) {\n return;\n }\n\n if (info.module) {\n NativeModules[info.name] = info.module;\n }\n // If there's no module config, define a lazy getter\n else {\n defineLazyObjectProperty(NativeModules, info.name, {\n get: () => loadModule(info.name, moduleID),\n });\n }\n },\n );\n}\n\nmodule.exports = NativeModules;\n","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nconst MessageQueue = require('./MessageQueue');\n\nconst BatchedBridge: MessageQueue = new MessageQueue();\n\n// Wire up the batched bridge on the global object so that we can call into it.\n// Ideally, this would be the inverse relationship. I.e. the native environment\n// provides this global directly with its script embedded. Then this module\n// would export it. A possible fix would be to trim the dependencies in\n// MessageQueue to its minimal features and embed that in the native runtime.\n\nObject.defineProperty(global, '__fbBatchedBridge', {\n configurable: true,\n value: BatchedBridge,\n});\n\nmodule.exports = BatchedBridge;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nconst Systrace = require('../Performance/Systrace');\nconst deepFreezeAndThrowOnMutationInDev = require('../Utilities/deepFreezeAndThrowOnMutationInDev');\nconst stringifySafe = require('../Utilities/stringifySafe').default;\nconst warnOnce = require('../Utilities/warnOnce');\nconst ErrorUtils = require('../vendor/core/ErrorUtils');\nconst invariant = require('invariant');\n\nexport type SpyData = {\n type: number,\n module: ?string,\n method: string | number,\n args: mixed[],\n ...\n};\n\nconst TO_JS = 0;\nconst TO_NATIVE = 1;\n\nconst MODULE_IDS = 0;\nconst METHOD_IDS = 1;\nconst PARAMS = 2;\nconst MIN_TIME_BETWEEN_FLUSHES_MS = 5;\n\n// eslint-disable-next-line no-bitwise\nconst TRACE_TAG_REACT_APPS = 1 << 17;\n\nconst DEBUG_INFO_LIMIT = 32;\n\nclass MessageQueue {\n _lazyCallableModules: {[key: string]: (void) => {...}, ...};\n _queue: [number[], number[], mixed[], number];\n _successCallbacks: Map void>;\n _failureCallbacks: Map void>;\n _callID: number;\n _lastFlush: number;\n _eventLoopStartTime: number;\n _reactNativeMicrotasksCallback: ?() => void;\n\n _debugInfo: {[number]: [number, number], ...};\n _remoteModuleTable: {[number]: string, ...};\n _remoteMethodTable: {[number]: $ReadOnlyArray, ...};\n\n __spy: ?(data: SpyData) => void;\n\n constructor() {\n this._lazyCallableModules = {};\n this._queue = [[], [], [], 0];\n this._successCallbacks = new Map();\n this._failureCallbacks = new Map();\n this._callID = 0;\n this._lastFlush = 0;\n this._eventLoopStartTime = Date.now();\n this._reactNativeMicrotasksCallback = null;\n\n if (__DEV__) {\n this._debugInfo = {};\n this._remoteModuleTable = {};\n this._remoteMethodTable = {};\n }\n\n // $FlowFixMe[cannot-write]\n this.callFunctionReturnFlushedQueue =\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.callFunctionReturnFlushedQueue.bind(this);\n // $FlowFixMe[cannot-write]\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.flushedQueue = this.flushedQueue.bind(this);\n\n // $FlowFixMe[cannot-write]\n this.invokeCallbackAndReturnFlushedQueue =\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.invokeCallbackAndReturnFlushedQueue.bind(this);\n }\n\n /**\n * Public APIs\n */\n\n static spy(spyOrToggle: boolean | ((data: SpyData) => void)) {\n if (spyOrToggle === true) {\n MessageQueue.prototype.__spy = info => {\n console.log(\n `${info.type === TO_JS ? 'N->JS' : 'JS->N'} : ` +\n `${info.module != null ? info.module + '.' : ''}${info.method}` +\n `(${JSON.stringify(info.args)})`,\n );\n };\n } else if (spyOrToggle === false) {\n MessageQueue.prototype.__spy = null;\n } else {\n MessageQueue.prototype.__spy = spyOrToggle;\n }\n }\n\n callFunctionReturnFlushedQueue(\n module: string,\n method: string,\n args: mixed[],\n ): null | [Array, Array, Array, number] {\n this.__guard(() => {\n this.__callFunction(module, method, args);\n });\n\n return this.flushedQueue();\n }\n\n invokeCallbackAndReturnFlushedQueue(\n cbID: number,\n args: mixed[],\n ): null | [Array, Array, Array, number] {\n this.__guard(() => {\n this.__invokeCallback(cbID, args);\n });\n\n return this.flushedQueue();\n }\n\n flushedQueue(): null | [Array, Array, Array, number] {\n this.__guard(() => {\n this.__callReactNativeMicrotasks();\n });\n\n const queue = this._queue;\n this._queue = [[], [], [], this._callID];\n return queue[0].length ? queue : null;\n }\n\n getEventLoopRunningTime(): number {\n return Date.now() - this._eventLoopStartTime;\n }\n\n registerCallableModule(name: string, module: {...}) {\n this._lazyCallableModules[name] = () => module;\n }\n\n registerLazyCallableModule(name: string, factory: void => interface {}) {\n let module: interface {};\n let getValue: ?(void) => interface {} = factory;\n this._lazyCallableModules[name] = () => {\n if (getValue) {\n module = getValue();\n getValue = null;\n }\n /* $FlowFixMe[class-object-subtyping] added when improving typing for\n * this parameters */\n return module;\n };\n }\n\n getCallableModule(name: string): {...} | null {\n const getValue = this._lazyCallableModules[name];\n return getValue ? getValue() : null;\n }\n\n callNativeSyncHook(\n moduleID: number,\n methodID: number,\n params: mixed[],\n onFail: ?(...mixed[]) => void,\n onSucc: ?(...mixed[]) => void,\n ): mixed {\n if (__DEV__) {\n invariant(\n global.nativeCallSyncHook,\n 'Calling synchronous methods on native ' +\n 'modules is not supported in Chrome.\\n\\n Consider providing alternative ' +\n 'methods to expose this method in debug mode, e.g. by exposing constants ' +\n 'ahead-of-time.',\n );\n }\n this.processCallbacks(moduleID, methodID, params, onFail, onSucc);\n return global.nativeCallSyncHook(moduleID, methodID, params);\n }\n\n processCallbacks(\n moduleID: number,\n methodID: number,\n params: mixed[],\n onFail: ?(...mixed[]) => void,\n onSucc: ?(...mixed[]) => void,\n ): void {\n if (onFail || onSucc) {\n if (__DEV__) {\n this._debugInfo[this._callID] = [moduleID, methodID];\n if (this._callID > DEBUG_INFO_LIMIT) {\n delete this._debugInfo[this._callID - DEBUG_INFO_LIMIT];\n }\n if (this._successCallbacks.size > 500) {\n const info: {[number]: {method: string, module: string}} = {};\n this._successCallbacks.forEach((_, callID) => {\n const debug = this._debugInfo[callID];\n const module = debug && this._remoteModuleTable[debug[0]];\n const method = debug && this._remoteMethodTable[debug[0]][debug[1]];\n info[callID] = {module, method};\n });\n warnOnce(\n 'excessive-number-of-pending-callbacks',\n `Excessive number of pending callbacks: ${\n this._successCallbacks.size\n }. Some pending callbacks that might have leaked by never being called from native code: ${stringifySafe(\n info,\n )}`,\n );\n }\n }\n // Encode callIDs into pairs of callback identifiers by shifting left and using the rightmost bit\n // to indicate fail (0) or success (1)\n // eslint-disable-next-line no-bitwise\n onFail && params.push(this._callID << 1);\n // eslint-disable-next-line no-bitwise\n onSucc && params.push((this._callID << 1) | 1);\n this._successCallbacks.set(this._callID, onSucc);\n this._failureCallbacks.set(this._callID, onFail);\n }\n if (__DEV__) {\n global.nativeTraceBeginAsyncFlow &&\n global.nativeTraceBeginAsyncFlow(\n TRACE_TAG_REACT_APPS,\n 'native',\n this._callID,\n );\n }\n this._callID++;\n }\n\n enqueueNativeCall(\n moduleID: number,\n methodID: number,\n params: mixed[],\n onFail: ?(...mixed[]) => void,\n onSucc: ?(...mixed[]) => void,\n ): void {\n this.processCallbacks(moduleID, methodID, params, onFail, onSucc);\n\n this._queue[MODULE_IDS].push(moduleID);\n this._queue[METHOD_IDS].push(methodID);\n\n if (__DEV__) {\n // Validate that parameters passed over the bridge are\n // folly-convertible. As a special case, if a prop value is a\n // function it is permitted here, and special-cased in the\n // conversion.\n const isValidArgument = (val: mixed): boolean => {\n switch (typeof val) {\n case 'undefined':\n case 'boolean':\n case 'string':\n return true;\n case 'number':\n return isFinite(val);\n case 'object':\n if (val == null) {\n return true;\n }\n\n if (Array.isArray(val)) {\n return val.every(isValidArgument);\n }\n\n for (const k in val) {\n if (typeof val[k] !== 'function' && !isValidArgument(val[k])) {\n return false;\n }\n }\n\n return true;\n case 'function':\n return false;\n default:\n return false;\n }\n };\n\n // Replacement allows normally non-JSON-convertible values to be\n // seen. There is ambiguity with string values, but in context,\n // it should at least be a strong hint.\n const replacer = (key: string, val: $FlowFixMe) => {\n const t = typeof val;\n if (t === 'function') {\n return '<>';\n } else if (t === 'number' && !isFinite(val)) {\n return '<<' + val.toString() + '>>';\n } else {\n return val;\n }\n };\n\n // Note that JSON.stringify\n invariant(\n isValidArgument(params),\n '%s is not usable as a native method argument',\n JSON.stringify(params, replacer),\n );\n\n // The params object should not be mutated after being queued\n deepFreezeAndThrowOnMutationInDev(params);\n }\n this._queue[PARAMS].push(params);\n\n const now = Date.now();\n if (\n global.nativeFlushQueueImmediate &&\n now - this._lastFlush >= MIN_TIME_BETWEEN_FLUSHES_MS\n ) {\n const queue = this._queue;\n this._queue = [[], [], [], this._callID];\n this._lastFlush = now;\n global.nativeFlushQueueImmediate(queue);\n }\n Systrace.counterEvent('pending_js_to_native_queue', this._queue[0].length);\n if (__DEV__ && this.__spy && isFinite(moduleID)) {\n // $FlowFixMe[not-a-function]\n this.__spy({\n type: TO_NATIVE,\n module: this._remoteModuleTable[moduleID],\n method: this._remoteMethodTable[moduleID][methodID],\n args: params,\n });\n } else if (this.__spy) {\n this.__spy({\n type: TO_NATIVE,\n module: moduleID + '',\n method: methodID,\n args: params,\n });\n }\n }\n\n createDebugLookup(\n moduleID: number,\n name: string,\n methods: ?$ReadOnlyArray,\n ) {\n if (__DEV__) {\n this._remoteModuleTable[moduleID] = name;\n this._remoteMethodTable[moduleID] = methods || [];\n }\n }\n\n // For JSTimers to register its callback. Otherwise a circular dependency\n // between modules is introduced. Note that only one callback may be\n // registered at a time.\n setReactNativeMicrotasksCallback(fn: () => void) {\n this._reactNativeMicrotasksCallback = fn;\n }\n\n /**\n * Private methods\n */\n\n __guard(fn: () => void) {\n if (this.__shouldPauseOnThrow()) {\n fn();\n } else {\n try {\n fn();\n } catch (error) {\n ErrorUtils.reportFatalError(error);\n }\n }\n }\n\n // MessageQueue installs a global handler to catch all exceptions where JS users can register their own behavior\n // This handler makes all exceptions to be propagated from inside MessageQueue rather than by the VM at their origin\n // This makes stacktraces to be placed at MessageQueue rather than at where they were launched\n // The parameter DebuggerInternal.shouldPauseOnThrow is used to check before catching all exceptions and\n // can be configured by the VM or any Inspector\n __shouldPauseOnThrow(): boolean {\n return (\n // $FlowFixMe[cannot-resolve-name]\n typeof DebuggerInternal !== 'undefined' &&\n // $FlowFixMe[cannot-resolve-name]\n DebuggerInternal.shouldPauseOnThrow === true\n );\n }\n\n __callReactNativeMicrotasks() {\n Systrace.beginEvent('JSTimers.callReactNativeMicrotasks()');\n if (this._reactNativeMicrotasksCallback != null) {\n this._reactNativeMicrotasksCallback();\n }\n Systrace.endEvent();\n }\n\n __callFunction(module: string, method: string, args: mixed[]): void {\n this._lastFlush = Date.now();\n this._eventLoopStartTime = this._lastFlush;\n if (__DEV__ || this.__spy) {\n Systrace.beginEvent(`${module}.${method}(${stringifySafe(args)})`);\n } else {\n Systrace.beginEvent(`${module}.${method}(...)`);\n }\n if (this.__spy) {\n this.__spy({type: TO_JS, module, method, args});\n }\n const moduleMethods = this.getCallableModule(module);\n if (!moduleMethods) {\n const callableModuleNames = Object.keys(this._lazyCallableModules);\n const n = callableModuleNames.length;\n const callableModuleNameList = callableModuleNames.join(', ');\n\n // TODO(T122225939): Remove after investigation: Why are we getting to this line in bridgeless mode?\n const isBridgelessMode = global.RN$Bridgeless === true ? 'true' : 'false';\n invariant(\n false,\n `Failed to call into JavaScript module method ${module}.${method}(). Module has not been registered as callable. Bridgeless Mode: ${isBridgelessMode}. Registered callable JavaScript modules (n = ${n}): ${callableModuleNameList}.\n A frequent cause of the error is that the application entry file path is incorrect. This can also happen when the JS bundle is corrupt or there is an early initialization error when loading React Native.`,\n );\n }\n if (!moduleMethods[method]) {\n invariant(\n false,\n `Failed to call into JavaScript module method ${module}.${method}(). Module exists, but the method is undefined.`,\n );\n }\n moduleMethods[method].apply(moduleMethods, args);\n Systrace.endEvent();\n }\n\n __invokeCallback(cbID: number, args: mixed[]): void {\n this._lastFlush = Date.now();\n this._eventLoopStartTime = this._lastFlush;\n\n // The rightmost bit of cbID indicates fail (0) or success (1), the other bits are the callID shifted left.\n // eslint-disable-next-line no-bitwise\n const callID = cbID >>> 1;\n // eslint-disable-next-line no-bitwise\n const isSuccess = cbID & 1;\n const callback = isSuccess\n ? this._successCallbacks.get(callID)\n : this._failureCallbacks.get(callID);\n\n if (__DEV__) {\n const debug = this._debugInfo[callID];\n const module = debug && this._remoteModuleTable[debug[0]];\n const method = debug && this._remoteMethodTable[debug[0]][debug[1]];\n invariant(\n callback,\n `No callback found with cbID ${cbID} and callID ${callID} for ` +\n (method\n ? ` ${module}.${method} - most likely the callback was already invoked`\n : `module ${module || ''}`) +\n `. Args: '${stringifySafe(args)}'`,\n );\n const profileName = debug\n ? ''\n : cbID;\n if (callback && this.__spy) {\n this.__spy({type: TO_JS, module: null, method: profileName, args});\n }\n Systrace.beginEvent(\n `MessageQueue.invokeCallback(${profileName}, ${stringifySafe(args)})`,\n );\n }\n\n if (!callback) {\n return;\n }\n\n this._successCallbacks.delete(callID);\n this._failureCallbacks.delete(callID);\n callback(...args);\n\n if (__DEV__) {\n Systrace.endEvent();\n }\n }\n}\n\nmodule.exports = MessageQueue;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport typeof * as SystraceModule from './Systrace';\n\nconst TRACE_TAG_REACT_APPS = 1 << 17; // eslint-disable-line no-bitwise\n\nlet _asyncCookie = 0;\n\ntype EventName = string | (() => string);\ntype EventArgs = ?{[string]: string};\n\n/**\n * Indicates if the application is currently being traced.\n *\n * Calling methods on this module when the application isn't being traced is\n * cheap, but this method can be used to avoid computing expensive values for\n * those functions.\n *\n * @example\n * if (Systrace.isEnabled()) {\n * const expensiveArgs = computeExpensiveArgs();\n * Systrace.beginEvent('myEvent', expensiveArgs);\n * }\n */\nexport function isEnabled(): boolean {\n return global.nativeTraceIsTracing\n ? global.nativeTraceIsTracing(TRACE_TAG_REACT_APPS)\n : Boolean(global.__RCTProfileIsProfiling);\n}\n\n/**\n * @deprecated This function is now a no-op but it's left for backwards\n * compatibility. `isEnabled` will now synchronously check if we're actively\n * profiling or not. This is necessary because we don't have callbacks to know\n * when profiling has started/stopped on Android APIs.\n */\nexport function setEnabled(_doEnable: boolean): void {}\n\n/**\n * Marks the start of a synchronous event that should end in the same stack\n * frame. The end of this event should be marked using the `endEvent` function.\n */\nexport function beginEvent(eventName: EventName, args?: EventArgs): void {\n if (isEnabled()) {\n const eventNameString =\n typeof eventName === 'function' ? eventName() : eventName;\n global.nativeTraceBeginSection(TRACE_TAG_REACT_APPS, eventNameString, args);\n }\n}\n\n/**\n * Marks the end of a synchronous event started in the same stack frame.\n */\nexport function endEvent(args?: EventArgs): void {\n if (isEnabled()) {\n global.nativeTraceEndSection(TRACE_TAG_REACT_APPS, args);\n }\n}\n\n/**\n * Marks the start of a potentially asynchronous event. The end of this event\n * should be marked calling the `endAsyncEvent` function with the cookie\n * returned by this function.\n */\nexport function beginAsyncEvent(\n eventName: EventName,\n args?: EventArgs,\n): number {\n const cookie = _asyncCookie;\n if (isEnabled()) {\n _asyncCookie++;\n const eventNameString =\n typeof eventName === 'function' ? eventName() : eventName;\n global.nativeTraceBeginAsyncSection(\n TRACE_TAG_REACT_APPS,\n eventNameString,\n cookie,\n args,\n );\n }\n return cookie;\n}\n\n/**\n * Marks the end of a potentially asynchronous event, which was started with\n * the given cookie.\n */\nexport function endAsyncEvent(\n eventName: EventName,\n cookie: number,\n args?: EventArgs,\n): void {\n if (isEnabled()) {\n const eventNameString =\n typeof eventName === 'function' ? eventName() : eventName;\n global.nativeTraceEndAsyncSection(\n TRACE_TAG_REACT_APPS,\n eventNameString,\n cookie,\n args,\n );\n }\n}\n\n/**\n * Registers a new value for a counter event.\n */\nexport function counterEvent(eventName: EventName, value: number): void {\n if (isEnabled()) {\n const eventNameString =\n typeof eventName === 'function' ? eventName() : eventName;\n global.nativeTraceCounter &&\n global.nativeTraceCounter(TRACE_TAG_REACT_APPS, eventNameString, value);\n }\n}\n\nif (__DEV__) {\n const Systrace: SystraceModule = {\n isEnabled,\n setEnabled,\n beginEvent,\n endEvent,\n beginAsyncEvent,\n endAsyncEvent,\n counterEvent,\n };\n\n // The metro require polyfill can not have dependencies (true for all polyfills).\n // Ensure that `Systrace` is available in polyfill by exposing it globally.\n global[(global.__METRO_GLOBAL_PREFIX__ || '') + '__SYSTRACE'] = Systrace;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport type {ErrorUtilsT} from '@react-native/js-polyfills/error-guard';\n\n/**\n * The particular require runtime that we are using looks for a global\n * `ErrorUtils` object and if it exists, then it requires modules with the\n * error handler specified via ErrorUtils.setGlobalHandler by calling the\n * require function with applyWithGuard. Since the require module is loaded\n * before any of the modules, this ErrorUtils must be defined (and the handler\n * set) globally before requiring anything.\n *\n * However, we still want to treat ErrorUtils as a module so that other modules\n * that use it aren't just using a global variable, so simply export the global\n * variable here. ErrorUtils is originally defined in a file named error-guard.js.\n */\nmodule.exports = (global.ErrorUtils: ErrorUtilsT);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport invariant from 'invariant';\n\n/**\n * Tries to stringify with JSON.stringify and toString, but catches exceptions\n * (e.g. from circular objects) and always returns a string and never throws.\n */\nexport function createStringifySafeWithLimits(limits: {|\n maxDepth?: number,\n maxStringLimit?: number,\n maxArrayLimit?: number,\n maxObjectKeysLimit?: number,\n|}): mixed => string {\n const {\n maxDepth = Number.POSITIVE_INFINITY,\n maxStringLimit = Number.POSITIVE_INFINITY,\n maxArrayLimit = Number.POSITIVE_INFINITY,\n maxObjectKeysLimit = Number.POSITIVE_INFINITY,\n } = limits;\n const stack: Array = [];\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n function replacer(key: string, value: mixed): mixed {\n while (stack.length && this !== stack[0]) {\n stack.shift();\n }\n\n if (typeof value === 'string') {\n const truncatedString = '...(truncated)...';\n if (value.length > maxStringLimit + truncatedString.length) {\n return value.substring(0, maxStringLimit) + truncatedString;\n }\n return value;\n }\n if (typeof value !== 'object' || value === null) {\n return value;\n }\n\n let retval: mixed = value;\n if (Array.isArray(value)) {\n if (stack.length >= maxDepth) {\n retval = `[ ... array with ${value.length} values ... ]`;\n } else if (value.length > maxArrayLimit) {\n retval = value\n .slice(0, maxArrayLimit)\n .concat([\n `... extra ${value.length - maxArrayLimit} values truncated ...`,\n ]);\n }\n } else {\n // Add refinement after Array.isArray call.\n invariant(typeof value === 'object', 'This was already found earlier');\n let keys = Object.keys(value);\n if (stack.length >= maxDepth) {\n retval = `{ ... object with ${keys.length} keys ... }`;\n } else if (keys.length > maxObjectKeysLimit) {\n // Return a sample of the keys.\n retval = ({}: {[string]: mixed});\n for (let k of keys.slice(0, maxObjectKeysLimit)) {\n retval[k] = value[k];\n }\n const truncatedKey = '...(truncated keys)...';\n retval[truncatedKey] = keys.length - maxObjectKeysLimit;\n }\n }\n stack.unshift(retval);\n return retval;\n }\n\n return function stringifySafe(arg: mixed): string {\n if (arg === undefined) {\n return 'undefined';\n } else if (arg === null) {\n return 'null';\n } else if (typeof arg === 'function') {\n try {\n return arg.toString();\n } catch (e) {\n return '[function unknown]';\n }\n } else if (arg instanceof Error) {\n return arg.name + ': ' + arg.message;\n } else {\n // Perform a try catch, just in case the object has a circular\n // reference or stringify throws for some other reason.\n try {\n const ret = JSON.stringify(arg, replacer);\n if (ret === undefined) {\n return '[\"' + typeof arg + '\" failed to stringify]';\n }\n return ret;\n } catch (e) {\n if (typeof arg.toString === 'function') {\n try {\n // $FlowFixMe[incompatible-use] : toString shouldn't take any arguments in general.\n return arg.toString();\n } catch (E) {}\n }\n }\n }\n return '[\"' + typeof arg + '\" failed to stringify]';\n };\n}\n\nconst stringifySafe: mixed => string = createStringifySafeWithLimits({\n maxDepth: 10,\n maxStringLimit: 100,\n maxArrayLimit: 50,\n maxObjectKeysLimit: 50,\n});\n\nexport default stringifySafe;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\n/**\n * Defines a lazily evaluated property on the supplied `object`.\n */\nfunction defineLazyObjectProperty(\n object: interface {},\n name: string,\n descriptor: {\n get: () => T,\n enumerable?: boolean,\n writable?: boolean,\n ...\n },\n): void {\n const {get} = descriptor;\n const enumerable = descriptor.enumerable !== false;\n const writable = descriptor.writable !== false;\n\n let value;\n let valueSet = false;\n function getValue(): T {\n // WORKAROUND: A weird infinite loop occurs where calling `getValue` calls\n // `setValue` which calls `Object.defineProperty` which somehow triggers\n // `getValue` again. Adding `valueSet` breaks this loop.\n if (!valueSet) {\n // Calling `get()` here can trigger an infinite loop if it fails to\n // remove the getter on the property, which can happen when executing\n // JS in a V8 context. `valueSet = true` will break this loop, and\n // sets the value of the property to undefined, until the code in `get()`\n // finishes, at which point the property is set to the correct value.\n valueSet = true;\n setValue(get());\n }\n return value;\n }\n function setValue(newValue: T): void {\n value = newValue;\n valueSet = true;\n Object.defineProperty(object, name, {\n value: newValue,\n configurable: true,\n enumerable,\n writable,\n });\n }\n\n Object.defineProperty(object, name, {\n get: getValue,\n set: setValue,\n configurable: true,\n enumerable,\n });\n}\n\nmodule.exports = defineLazyObjectProperty;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport UIManager from '../../ReactNative/UIManager';\n\n/**\n * This is a function exposed to the React Renderer that can be used by the\n * pre-Fabric renderer to emit accessibility events to pre-Fabric nodes.\n */\nfunction legacySendAccessibilityEvent(\n reactTag: number,\n eventType: string,\n): void {\n if (eventType === 'focus') {\n UIManager.sendAccessibilityEvent(\n reactTag,\n UIManager.getConstants().AccessibilityEventTypes.typeViewFocused,\n );\n }\n if (eventType === 'click') {\n UIManager.sendAccessibilityEvent(\n reactTag,\n UIManager.getConstants().AccessibilityEventTypes.typeViewClicked,\n );\n }\n}\n\nmodule.exports = legacySendAccessibilityEvent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {RootTag} from '../Types/RootTagTypes';\nimport type {Spec} from './NativeUIManager';\n\nimport {getFabricUIManager} from './FabricUIManager';\nimport nullthrows from 'nullthrows';\n\nexport interface UIManagerJSInterface extends Spec {\n +getViewManagerConfig: (viewManagerName: string) => Object;\n +hasViewManagerConfig: (viewManagerName: string) => boolean;\n +createView: (\n reactTag: ?number,\n viewName: string,\n rootTag: RootTag,\n props: Object,\n ) => void;\n +updateView: (reactTag: number, viewName: string, props: Object) => void;\n +manageChildren: (\n containerTag: ?number,\n moveFromIndices: Array,\n moveToIndices: Array,\n addChildReactTags: Array,\n addAtIndices: Array,\n removeAtIndices: Array,\n ) => void;\n}\n\nfunction isFabricReactTag(reactTag: number): boolean {\n // React reserves even numbers for Fabric.\n return reactTag % 2 === 0;\n}\n\nconst UIManagerImpl: UIManagerJSInterface =\n global.RN$Bridgeless === true\n ? require('./BridgelessUIManager')\n : require('./PaperUIManager');\n\n// $FlowFixMe[cannot-spread-interface]\nconst UIManager = {\n ...UIManagerImpl,\n measure(\n reactTag: number,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number,\n ) => void,\n ): void {\n if (isFabricReactTag(reactTag)) {\n const FabricUIManager = nullthrows(getFabricUIManager());\n const shadowNode =\n FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag);\n if (shadowNode) {\n FabricUIManager.measure(shadowNode, callback);\n } else {\n console.warn(`measure cannot find view with tag #${reactTag}`);\n // $FlowFixMe[incompatible-call]\n callback();\n }\n } else {\n // Paper\n UIManagerImpl.measure(reactTag, callback);\n }\n },\n\n measureInWindow(\n reactTag: number,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ): void {\n if (isFabricReactTag(reactTag)) {\n const FabricUIManager = nullthrows(getFabricUIManager());\n const shadowNode =\n FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag);\n if (shadowNode) {\n FabricUIManager.measureInWindow(shadowNode, callback);\n } else {\n console.warn(`measure cannot find view with tag #${reactTag}`);\n // $FlowFixMe[incompatible-call]\n callback();\n }\n } else {\n // Paper\n UIManagerImpl.measureInWindow(reactTag, callback);\n }\n },\n\n measureLayout(\n reactTag: number,\n ancestorReactTag: number,\n errorCallback: (error: Object) => void,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ): void {\n if (isFabricReactTag(reactTag)) {\n const FabricUIManager = nullthrows(getFabricUIManager());\n const shadowNode =\n FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag);\n const ancestorShadowNode =\n FabricUIManager.findShadowNodeByTag_DEPRECATED(ancestorReactTag);\n\n if (!shadowNode || !ancestorShadowNode) {\n return;\n }\n\n FabricUIManager.measureLayout(\n shadowNode,\n ancestorShadowNode,\n errorCallback,\n callback,\n );\n } else {\n // Paper\n UIManagerImpl.measureLayout(\n reactTag,\n ancestorReactTag,\n errorCallback,\n callback,\n );\n }\n },\n\n measureLayoutRelativeToParent(\n reactTag: number,\n errorCallback: (error: Object) => void,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ): void {\n if (isFabricReactTag(reactTag)) {\n console.warn(\n 'RCTUIManager.measureLayoutRelativeToParent method is deprecated and it will not be implemented in newer versions of RN (Fabric) - T47686450',\n );\n const FabricUIManager = nullthrows(getFabricUIManager());\n const shadowNode =\n FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag);\n if (shadowNode) {\n FabricUIManager.measure(\n shadowNode,\n (left, top, width, height, pageX, pageY) => {\n callback(left, top, width, height);\n },\n );\n }\n } else {\n // Paper\n UIManagerImpl.measureLayoutRelativeToParent(\n reactTag,\n errorCallback,\n callback,\n );\n }\n },\n\n dispatchViewManagerCommand(\n reactTag: number,\n commandName: number | string,\n commandArgs: any[],\n ) {\n if (isFabricReactTag(reactTag)) {\n const FabricUIManager = nullthrows(getFabricUIManager());\n const shadowNode =\n FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag);\n if (shadowNode) {\n // Transform the accidental CommandID into a CommandName which is the stringified number.\n // The interop layer knows how to convert this number into the right method name.\n // Stringify a string is a no-op, so it's safe.\n commandName = `${commandName}`;\n FabricUIManager.dispatchCommand(shadowNode, commandName, commandArgs);\n }\n } else {\n UIManagerImpl.dispatchViewManagerCommand(\n reactTag,\n // We have some legacy components that are actually already using strings. Β―\\_(ツ)_/Β―\n // $FlowFixMe[incompatible-call]\n commandName,\n commandArgs,\n );\n }\n },\n};\n\nmodule.exports = UIManager;\n","'use strict';\n\nfunction nullthrows(x, message) {\n if (x != null) {\n return x;\n }\n var error = new Error(message !== undefined ? message : 'Got unexpected ' + x);\n error.framesToPop = 1; // Skip nullthrows's own stack frame.\n throw error;\n}\n\nmodule.exports = nullthrows;\nmodule.exports.default = nullthrows;\n\nObject.defineProperty(module.exports, '__esModule', {value: true});\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {RootTag} from '../Types/RootTagTypes';\n\nimport {unstable_hasComponent} from '../NativeComponent/NativeComponentRegistryUnstable';\n\nconst errorMessageForMethod = (methodName: string): string =>\n \"[ReactNative Architecture][JS] '\" +\n methodName +\n \"' is not available in the new React Native architecture.\";\n\nmodule.exports = {\n getViewManagerConfig: (viewManagerName: string): mixed => {\n console.error(\n errorMessageForMethod('getViewManagerConfig') +\n 'Use hasViewManagerConfig instead. viewManagerName: ' +\n viewManagerName,\n );\n return null;\n },\n hasViewManagerConfig: (viewManagerName: string): boolean => {\n return unstable_hasComponent(viewManagerName);\n },\n getConstants: (): Object => {\n console.error(errorMessageForMethod('getConstants'));\n return {};\n },\n getConstantsForViewManager: (viewManagerName: string): Object => {\n console.error(errorMessageForMethod('getConstantsForViewManager'));\n return {};\n },\n getDefaultEventTypes: (): Array => {\n console.error(errorMessageForMethod('getDefaultEventTypes'));\n return [];\n },\n lazilyLoadView: (name: string): Object => {\n console.error(errorMessageForMethod('lazilyLoadView'));\n return {};\n },\n createView: (\n reactTag: ?number,\n viewName: string,\n rootTag: RootTag,\n props: Object,\n ): void => console.error(errorMessageForMethod('createView')),\n updateView: (reactTag: number, viewName: string, props: Object): void =>\n console.error(errorMessageForMethod('updateView')),\n focus: (reactTag: ?number): void =>\n console.error(errorMessageForMethod('focus')),\n blur: (reactTag: ?number): void =>\n console.error(errorMessageForMethod('blur')),\n findSubviewIn: (\n reactTag: ?number,\n point: Array,\n callback: (\n nativeViewTag: number,\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ): void => console.error(errorMessageForMethod('findSubviewIn')),\n dispatchViewManagerCommand: (\n reactTag: ?number,\n commandID: number,\n commandArgs: ?Array,\n ): void => console.error(errorMessageForMethod('dispatchViewManagerCommand')),\n measure: (\n reactTag: ?number,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number,\n ) => void,\n ): void => console.error(errorMessageForMethod('measure')),\n measureInWindow: (\n reactTag: ?number,\n callback: (x: number, y: number, width: number, height: number) => void,\n ): void => console.error(errorMessageForMethod('measureInWindow')),\n viewIsDescendantOf: (\n reactTag: ?number,\n ancestorReactTag: ?number,\n callback: (result: Array) => void,\n ): void => console.error(errorMessageForMethod('viewIsDescendantOf')),\n measureLayout: (\n reactTag: ?number,\n ancestorReactTag: ?number,\n errorCallback: (error: Object) => void,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ): void => console.error(errorMessageForMethod('measureLayout')),\n measureLayoutRelativeToParent: (\n reactTag: ?number,\n errorCallback: (error: Object) => void,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ): void =>\n console.error(errorMessageForMethod('measureLayoutRelativeToParent')),\n setJSResponder: (reactTag: ?number, blockNativeResponder: boolean): void =>\n console.error(errorMessageForMethod('setJSResponder')),\n clearJSResponder: (): void => {}, // Don't log error here because we're aware it gets called\n configureNextLayoutAnimation: (\n config: Object,\n callback: () => void,\n errorCallback: (error: Object) => void,\n ): void =>\n console.error(errorMessageForMethod('configureNextLayoutAnimation')),\n removeSubviewsFromContainerWithID: (containerID: number): void =>\n console.error(errorMessageForMethod('removeSubviewsFromContainerWithID')),\n replaceExistingNonRootView: (reactTag: ?number, newReactTag: ?number): void =>\n console.error(errorMessageForMethod('replaceExistingNonRootView')),\n setChildren: (containerTag: ?number, reactTags: Array): void =>\n console.error(errorMessageForMethod('setChildren')),\n manageChildren: (\n containerTag: ?number,\n moveFromIndices: Array,\n moveToIndices: Array,\n addChildReactTags: Array,\n addAtIndices: Array,\n removeAtIndices: Array,\n ): void => console.error(errorMessageForMethod('manageChildren')),\n\n // Android only\n setLayoutAnimationEnabledExperimental: (enabled: boolean): void => {\n console.error(\n errorMessageForMethod('setLayoutAnimationEnabledExperimental'),\n );\n },\n // Please use AccessibilityInfo.sendAccessibilityEvent instead.\n // See SetAccessibilityFocusExample in AccessibilityExample.js for a migration example.\n sendAccessibilityEvent: (reactTag: ?number, eventType: number): void =>\n console.error(errorMessageForMethod('sendAccessibilityEvent')),\n showPopupMenu: (\n reactTag: ?number,\n items: Array,\n error: (error: Object) => void,\n success: (event: string, selected?: number) => void,\n ): void => console.error(errorMessageForMethod('showPopupMenu')),\n dismissPopupMenu: (): void =>\n console.error(errorMessageForMethod('dismissPopupMenu')),\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nlet componentNameToExists: Map = new Map();\n\n/**\n * Unstable API. Do not use!\n *\n * This method returns if the component with name received as a parameter\n * is registered in the native platform.\n */\nexport function unstable_hasComponent(name: string): boolean {\n let hasNativeComponent = componentNameToExists.get(name);\n if (hasNativeComponent == null) {\n if (global.__nativeComponentRegistry__hasComponent) {\n hasNativeComponent = global.__nativeComponentRegistry__hasComponent(name);\n componentNameToExists.set(name, hasNativeComponent);\n } else {\n throw `unstable_hasComponent('${name}'): Global function is not registered`;\n }\n }\n return hasNativeComponent;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {RootTag} from '../Types/RootTagTypes';\n\nimport NativeUIManager from './NativeUIManager';\n\nconst NativeModules = require('../BatchedBridge/NativeModules');\nconst defineLazyObjectProperty = require('../Utilities/defineLazyObjectProperty');\nconst Platform = require('../Utilities/Platform');\nconst UIManagerProperties = require('./UIManagerProperties');\n\nconst viewManagerConfigs: {[string]: any | null} = {};\n\nconst triedLoadingConfig = new Set();\n\nlet NativeUIManagerConstants = {};\nlet isNativeUIManagerConstantsSet = false;\nfunction getConstants(): Object {\n if (!isNativeUIManagerConstantsSet) {\n NativeUIManagerConstants = NativeUIManager.getConstants();\n isNativeUIManagerConstantsSet = true;\n }\n return NativeUIManagerConstants;\n}\n\nfunction getViewManagerConfig(viewManagerName: string): any {\n if (\n viewManagerConfigs[viewManagerName] === undefined &&\n global.nativeCallSyncHook && // If we're in the Chrome Debugger, let's not even try calling the sync method\n NativeUIManager.getConstantsForViewManager\n ) {\n try {\n viewManagerConfigs[viewManagerName] =\n NativeUIManager.getConstantsForViewManager(viewManagerName);\n } catch (e) {\n console.error(\n \"NativeUIManager.getConstantsForViewManager('\" +\n viewManagerName +\n \"') threw an exception.\",\n e,\n );\n viewManagerConfigs[viewManagerName] = null;\n }\n }\n\n const config = viewManagerConfigs[viewManagerName];\n if (config) {\n return config;\n }\n\n // If we're in the Chrome Debugger, let's not even try calling the sync\n // method.\n if (!global.nativeCallSyncHook) {\n return config;\n }\n\n if (\n NativeUIManager.lazilyLoadView &&\n !triedLoadingConfig.has(viewManagerName)\n ) {\n const result = NativeUIManager.lazilyLoadView(viewManagerName);\n triedLoadingConfig.add(viewManagerName);\n if (result != null && result.viewConfig != null) {\n getConstants()[viewManagerName] = result.viewConfig;\n lazifyViewManagerConfig(viewManagerName);\n }\n }\n\n return viewManagerConfigs[viewManagerName];\n}\n\n/* $FlowFixMe[cannot-spread-interface] (>=0.123.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.123.0 was deployed. To see\n * the error, delete this comment and run Flow. */\nconst UIManagerJS = {\n ...NativeUIManager,\n createView(\n reactTag: ?number,\n viewName: string,\n rootTag: RootTag,\n props: Object,\n ): void {\n if (Platform.OS === 'ios' && viewManagerConfigs[viewName] === undefined) {\n // This is necessary to force the initialization of native viewManager\n // classes in iOS when using static ViewConfigs\n getViewManagerConfig(viewName);\n }\n\n NativeUIManager.createView(reactTag, viewName, rootTag, props);\n },\n getConstants(): Object {\n return getConstants();\n },\n getViewManagerConfig(viewManagerName: string): any {\n return getViewManagerConfig(viewManagerName);\n },\n hasViewManagerConfig(viewManagerName: string): boolean {\n return getViewManagerConfig(viewManagerName) != null;\n },\n};\n\n// TODO (T45220498): Remove this.\n// 3rd party libs may be calling `NativeModules.UIManager.getViewManagerConfig()`\n// instead of `UIManager.getViewManagerConfig()` off UIManager.js.\n// This is a workaround for now.\n// $FlowFixMe[prop-missing]\nNativeUIManager.getViewManagerConfig = UIManagerJS.getViewManagerConfig;\n\nfunction lazifyViewManagerConfig(viewName: string) {\n const viewConfig = getConstants()[viewName];\n viewManagerConfigs[viewName] = viewConfig;\n if (viewConfig.Manager) {\n defineLazyObjectProperty(viewConfig, 'Constants', {\n get: () => {\n const viewManager = NativeModules[viewConfig.Manager];\n const constants: {[string]: mixed} = {};\n viewManager &&\n Object.keys(viewManager).forEach(key => {\n const value = viewManager[key];\n if (typeof value !== 'function') {\n constants[key] = value;\n }\n });\n return constants;\n },\n });\n defineLazyObjectProperty(viewConfig, 'Commands', {\n get: () => {\n const viewManager = NativeModules[viewConfig.Manager];\n const commands: {[string]: number} = {};\n let index = 0;\n viewManager &&\n Object.keys(viewManager).forEach(key => {\n const value = viewManager[key];\n if (typeof value === 'function') {\n commands[key] = index++;\n }\n });\n return commands;\n },\n });\n }\n}\n\n/**\n * Copies the ViewManager constants and commands into UIManager. This is\n * only needed for iOS, which puts the constants in the ViewManager\n * namespace instead of UIManager, unlike Android.\n */\nif (Platform.OS === 'ios') {\n Object.keys(getConstants()).forEach(viewName => {\n lazifyViewManagerConfig(viewName);\n });\n} else if (getConstants().ViewManagerNames) {\n NativeUIManager.getConstants().ViewManagerNames.forEach(viewManagerName => {\n defineLazyObjectProperty(NativeUIManager, viewManagerName, {\n get: () => NativeUIManager.getConstantsForViewManager(viewManagerName),\n });\n });\n}\n\nif (!global.nativeCallSyncHook) {\n Object.keys(getConstants()).forEach(viewManagerName => {\n if (!UIManagerProperties.includes(viewManagerName)) {\n if (!viewManagerConfigs[viewManagerName]) {\n viewManagerConfigs[viewManagerName] = getConstants()[viewManagerName];\n }\n defineLazyObjectProperty(NativeUIManager, viewManagerName, {\n get: () => {\n console.warn(\n `Accessing view manager configs directly off UIManager via UIManager['${viewManagerName}'] ` +\n `is no longer supported. Use UIManager.getViewManagerConfig('${viewManagerName}') instead.`,\n );\n\n return UIManagerJS.getViewManagerConfig(viewManagerName);\n },\n });\n }\n });\n}\n\nmodule.exports = UIManagerJS;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {RootTag} from '../TurboModule/RCTExport';\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => Object;\n +getConstantsForViewManager: (viewManagerName: string) => Object;\n +getDefaultEventTypes: () => Array;\n +lazilyLoadView: (name: string) => Object; // revisit return\n +createView: (\n reactTag: ?number,\n viewName: string,\n rootTag: RootTag,\n props: Object,\n ) => void;\n +updateView: (reactTag: number, viewName: string, props: Object) => void;\n +focus: (reactTag: ?number) => void;\n +blur: (reactTag: ?number) => void;\n +findSubviewIn: (\n reactTag: ?number,\n point: Array,\n callback: (\n nativeViewTag: number,\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ) => void;\n +dispatchViewManagerCommand: (\n reactTag: ?number,\n commandID: number,\n commandArgs: ?Array,\n ) => void;\n +measure: (\n reactTag: number,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number,\n ) => void,\n ) => void;\n +measureInWindow: (\n reactTag: number,\n callback: (x: number, y: number, width: number, height: number) => void,\n ) => void;\n +viewIsDescendantOf: (\n reactTag: ?number,\n ancestorReactTag: ?number,\n callback: (result: Array) => void,\n ) => void;\n +measureLayout: (\n reactTag: number,\n ancestorReactTag: number,\n errorCallback: (error: Object) => void,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ) => void;\n +measureLayoutRelativeToParent: (\n reactTag: number,\n errorCallback: (error: Object) => void,\n callback: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void,\n ) => void;\n +setJSResponder: (reactTag: ?number, blockNativeResponder: boolean) => void;\n +clearJSResponder: () => void;\n +configureNextLayoutAnimation: (\n config: Object,\n callback: () => void, // check what is returned here\n errorCallback: (error: Object) => void,\n ) => void;\n +removeSubviewsFromContainerWithID: (containerID: number) => void;\n +replaceExistingNonRootView: (\n reactTag: ?number,\n newReactTag: ?number,\n ) => void;\n +setChildren: (containerTag: ?number, reactTags: Array) => void;\n +manageChildren: (\n containerTag: ?number,\n moveFromIndices: Array,\n moveToIndices: Array,\n addChildReactTags: Array,\n addAtIndices: Array,\n removeAtIndices: Array,\n ) => void;\n\n // Android only\n +setLayoutAnimationEnabledExperimental: (enabled: boolean) => void;\n +sendAccessibilityEvent: (reactTag: ?number, eventType: number) => void;\n +showPopupMenu: (\n reactTag: ?number,\n items: Array,\n error: (error: Object) => void,\n success: (event: string, selected?: number) => void,\n ) => void;\n +dismissPopupMenu: () => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('UIManager'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\n/**\n * The list of non-ViewManager related UIManager properties.\n *\n * In an effort to improve startup performance by lazily loading view managers,\n * the interface to access view managers will change from\n * UIManager['viewManagerName'] to UIManager.getViewManagerConfig('viewManagerName').\n * By using a function call instead of a property access, the UIManager will\n * be able to initialize and load the required view manager from native\n * synchronously. All of React Native's core components have been updated to\n * use getViewManagerConfig(). For the next few releases, any usage of\n * UIManager['viewManagerName'] will result in a warning. Because React Native\n * does not support Proxy objects, a view manager access is implied if any of\n * UIManager's properties that are not one of the properties below is being\n * accessed. Once UIManager property accesses for view managers has been fully\n * deprecated, this file will also be removed.\n */\nmodule.exports = [\n 'clearJSResponder',\n 'configureNextLayoutAnimation',\n 'createView',\n 'dismissPopupMenu',\n 'dispatchViewManagerCommand',\n 'findSubviewIn',\n 'getConstantsForViewManager',\n 'getDefaultEventTypes',\n 'manageChildren',\n 'measure',\n 'measureInWindow',\n 'measureLayout',\n 'measureLayoutRelativeToParent',\n 'removeRootView',\n 'removeSubviewsFromContainerWithID',\n 'replaceExistingNonRootView',\n 'sendAccessibilityEvent',\n 'setChildren',\n 'setJSResponder',\n 'setLayoutAnimationEnabledExperimental',\n 'showPopupMenu',\n 'updateView',\n 'viewIsDescendantOf',\n 'PopupMenu',\n 'LazyViewManagersEnabled',\n 'ViewManagerNames',\n 'StyleConstants',\n 'AccessibilityEventTypes',\n 'UIView',\n 'getViewManagerConfig',\n 'hasViewManagerConfig',\n 'blur',\n 'focus',\n 'genericBubblingEventTypes',\n 'genericDirectEventTypes',\n 'lazilyLoadView',\n];\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nimport type {\n LayoutAnimationConfig,\n MeasureInWindowOnSuccessCallback,\n MeasureLayoutOnSuccessCallback,\n MeasureOnSuccessCallback,\n} from '../Renderer/shims/ReactNativeTypes';\nimport type {RootTag} from '../Types/RootTagTypes';\n\n// TODO: type these properly.\nexport opaque type Node = {...};\ntype NodeSet = Array;\ntype NodeProps = {...};\ntype InstanceHandle = {...};\nexport type Spec = {|\n +createNode: (\n reactTag: number,\n viewName: string,\n rootTag: RootTag,\n props: NodeProps,\n instanceHandle: InstanceHandle,\n ) => Node,\n +cloneNode: (node: Node) => Node,\n +cloneNodeWithNewChildren: (node: Node) => Node,\n +cloneNodeWithNewProps: (node: Node, newProps: NodeProps) => Node,\n +cloneNodeWithNewChildrenAndProps: (node: Node, newProps: NodeProps) => Node,\n +createChildSet: (rootTag: RootTag) => NodeSet,\n +appendChild: (parentNode: Node, child: Node) => Node,\n +appendChildToSet: (childSet: NodeSet, child: Node) => void,\n +completeRoot: (rootTag: RootTag, childSet: NodeSet) => void,\n +measure: (node: Node, callback: MeasureOnSuccessCallback) => void,\n +measureInWindow: (\n node: Node,\n callback: MeasureInWindowOnSuccessCallback,\n ) => void,\n +measureLayout: (\n node: Node,\n relativeNode: Node,\n onFail: () => void,\n onSuccess: MeasureLayoutOnSuccessCallback,\n ) => void,\n +configureNextLayoutAnimation: (\n config: LayoutAnimationConfig,\n callback: () => void, // check what is returned here\n errorCallback: () => void,\n ) => void,\n +sendAccessibilityEvent: (node: Node, eventType: string) => void,\n +findShadowNodeByTag_DEPRECATED: (reactTag: number) => ?Node,\n +getBoundingClientRect: (\n node: Node,\n ) => [\n /* x:*/ number,\n /* y:*/ number,\n /* width:*/ number,\n /* height:*/ number,\n ],\n +setNativeProps: (node: Node, newProps: NodeProps) => void,\n +dispatchCommand: (\n node: Node,\n commandName: string,\n args: Array,\n ) => void,\n|};\n\n// This is exposed as a getter because apps using the legacy renderer AND\n// Fabric can define the binding lazily. If we evaluated the global and cached\n// it in the module we might be caching an `undefined` value before it is set.\nexport function getFabricUIManager(): ?Spec {\n return global.nativeFabricUIManager;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +isReduceMotionEnabled: (\n onSuccess: (isReduceMotionEnabled: boolean) => void,\n ) => void;\n +isTouchExplorationEnabled: (\n onSuccess: (isScreenReaderEnabled: boolean) => void,\n ) => void;\n +isAccessibilityServiceEnabled?: ?(\n onSuccess: (isAccessibilityServiceEnabled: boolean) => void,\n ) => void;\n +setAccessibilityFocus: (reactTag: number) => void;\n +announceForAccessibility: (announcement: string) => void;\n +getRecommendedTimeoutMillis?: (\n mSec: number,\n onSuccess: (recommendedTimeoutMillis: number) => void,\n ) => void;\n}\n\nexport default (TurboModuleRegistry.get('AccessibilityInfo'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getCurrentBoldTextState: (\n onSuccess: (isBoldTextEnabled: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +getCurrentGrayscaleState: (\n onSuccess: (isGrayscaleEnabled: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +getCurrentInvertColorsState: (\n onSuccess: (isInvertColorsEnabled: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +getCurrentReduceMotionState: (\n onSuccess: (isReduceMotionEnabled: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +getCurrentPrefersCrossFadeTransitionsState?: (\n onSuccess: (prefersCrossFadeTransitions: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +getCurrentReduceTransparencyState: (\n onSuccess: (isReduceTransparencyEnabled: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +getCurrentVoiceOverState: (\n onSuccess: (isScreenReaderEnabled: boolean) => void,\n onError: (error: Object) => void,\n ) => void;\n +setAccessibilityContentSizeMultipliers: (JSMultipliers: {|\n +extraSmall?: ?number,\n +small?: ?number,\n +medium?: ?number,\n +large?: ?number,\n +extraLarge?: ?number,\n +extraExtraLarge?: ?number,\n +extraExtraExtraLarge?: ?number,\n +accessibilityMedium?: ?number,\n +accessibilityLarge?: ?number,\n +accessibilityExtraLarge?: ?number,\n +accessibilityExtraExtraLarge?: ?number,\n +accessibilityExtraExtraExtraLarge?: ?number,\n |}) => void;\n +setAccessibilityFocus: (reactTag: number) => void;\n +announceForAccessibility: (announcement: string) => void;\n +announceForAccessibilityWithOptions?: (\n announcement: string,\n options: {queue?: boolean},\n ) => void;\n}\n\nexport default (TurboModuleRegistry.get('AccessibilityManager'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n/**\n * This module exists to allow apps to select their renderer implementation\n * (e.g.: Fabric-only, Paper-only) without having to pull all the renderer\n * implementations into their app bundle, which affects app size.\n *\n * By default, the setup will be:\n * -> RendererProxy\n * -> RendererImplementation (which uses Fabric or Paper depending on a flag at runtime)\n *\n * But this will allow a setup like this without duplicating logic:\n * -> RendererProxy (fork)\n * -> RendererImplementation (which uses Fabric or Paper depending on a flag at runtime)\n * or -> OtherImplementation (which uses Fabric only)\n */\n\nexport * from './RendererImplementation';\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../Renderer/shims/ReactNativeTypes';\nimport type {Element, ElementRef, ElementType} from 'react';\n\nimport {type RootTag} from './RootTag';\n\nexport function renderElement({\n element,\n rootTag,\n useFabric,\n useConcurrentRoot,\n}: {\n element: Element,\n rootTag: number,\n useFabric: boolean,\n useConcurrentRoot: boolean,\n}): void {\n if (useFabric) {\n require('../Renderer/shims/ReactFabric').render(\n element,\n rootTag,\n null,\n useConcurrentRoot,\n );\n } else {\n require('../Renderer/shims/ReactNative').render(element, rootTag);\n }\n}\n\nexport function findHostInstance_DEPRECATED(\n componentOrHandle: ?(ElementRef | number),\n): ?ElementRef> {\n return require('../Renderer/shims/ReactNative').findHostInstance_DEPRECATED(\n componentOrHandle,\n );\n}\n\nexport function findNodeHandle(\n componentOrHandle: ?(ElementRef | number),\n): ?number {\n return require('../Renderer/shims/ReactNative').findNodeHandle(\n componentOrHandle,\n );\n}\n\nexport function dispatchCommand(\n handle: ElementRef>,\n command: string,\n args: Array,\n): void {\n if (global.RN$Bridgeless === true) {\n // Note: this function has the same implementation in the legacy and new renderer.\n // However, evaluating the old renderer comes with some side effects.\n return require('../Renderer/shims/ReactFabric').dispatchCommand(\n handle,\n command,\n args,\n );\n } else {\n return require('../Renderer/shims/ReactNative').dispatchCommand(\n handle,\n command,\n args,\n );\n }\n}\n\nexport function sendAccessibilityEvent(\n handle: ElementRef>,\n eventType: string,\n): void {\n return require('../Renderer/shims/ReactNative').sendAccessibilityEvent(\n handle,\n eventType,\n );\n}\n\n/**\n * This method is used by AppRegistry to unmount a root when using the old\n * React Native renderer (Paper).\n */\nexport function unmountComponentAtNodeAndRemoveContainer(rootTag: RootTag) {\n // $FlowExpectedError[incompatible-type] rootTag is an opaque type so we can't really cast it as is.\n const rootTagAsNumber: number = rootTag;\n require('../Renderer/shims/ReactNative').unmountComponentAtNodeAndRemoveContainer(\n rootTagAsNumber,\n );\n}\n\nexport function unstable_batchedUpdates(\n fn: T => void,\n bookkeeping: T,\n): void {\n // This doesn't actually do anything when batching updates for a Fabric root.\n return require('../Renderer/shims/ReactNative').unstable_batchedUpdates(\n fn,\n bookkeeping,\n );\n}\n\nexport function isProfilingRenderer(): boolean {\n return Boolean(__DEV__);\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @noformat\n * @flow\n * @generated SignedSource<>\n *\n * This file was sync'd from the facebook/react repository.\n */\n\n'use strict';\n\nimport {BatchedBridge} from 'react-native/Libraries/ReactPrivate/ReactNativePrivateInterface';\n\nimport type {ReactFabricType} from './ReactNativeTypes';\n\nlet ReactFabric;\n\nif (__DEV__) {\n ReactFabric = require('../implementations/ReactFabric-dev');\n} else {\n ReactFabric = require('../implementations/ReactFabric-prod');\n}\n\nif (global.RN$Bridgeless) {\n global.RN$stopSurface = ReactFabric.stopSurface;\n} else {\n BatchedBridge.registerCallableModule('ReactFabric', ReactFabric);\n}\n\nmodule.exports = (ReactFabric: ReactFabricType);\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @noflow\n * @nolint\n * @providesModule ReactFabric-prod\n * @preventMunge\n * @generated SignedSource<>\n */\n\n\"use strict\";\nrequire(\"react-native/Libraries/ReactPrivate/ReactNativePrivateInitializeCore\");\nvar ReactNativePrivateInterface = require(\"react-native/Libraries/ReactPrivate/ReactNativePrivateInterface\"),\n React = require(\"react\"),\n Scheduler = require(\"scheduler\");\nfunction invokeGuardedCallbackImpl(name, func, context, a, b, c, d, e, f) {\n var funcArgs = Array.prototype.slice.call(arguments, 3);\n try {\n func.apply(context, funcArgs);\n } catch (error) {\n this.onError(error);\n }\n}\nvar hasError = !1,\n caughtError = null,\n hasRethrowError = !1,\n rethrowError = null,\n reporter = {\n onError: function(error) {\n hasError = !0;\n caughtError = error;\n }\n };\nfunction invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {\n hasError = !1;\n caughtError = null;\n invokeGuardedCallbackImpl.apply(reporter, arguments);\n}\nfunction invokeGuardedCallbackAndCatchFirstError(\n name,\n func,\n context,\n a,\n b,\n c,\n d,\n e,\n f\n) {\n invokeGuardedCallback.apply(this, arguments);\n if (hasError) {\n if (hasError) {\n var error = caughtError;\n hasError = !1;\n caughtError = null;\n } else\n throw Error(\n \"clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.\"\n );\n hasRethrowError || ((hasRethrowError = !0), (rethrowError = error));\n }\n}\nvar isArrayImpl = Array.isArray,\n getFiberCurrentPropsFromNode = null,\n getInstanceFromNode = null,\n getNodeFromInstance = null;\nfunction executeDispatch(event, listener, inst) {\n var type = event.type || \"unknown-event\";\n event.currentTarget = getNodeFromInstance(inst);\n invokeGuardedCallbackAndCatchFirstError(type, listener, void 0, event);\n event.currentTarget = null;\n}\nfunction executeDirectDispatch(event) {\n var dispatchListener = event._dispatchListeners,\n dispatchInstance = event._dispatchInstances;\n if (isArrayImpl(dispatchListener))\n throw Error(\"executeDirectDispatch(...): Invalid `event`.\");\n event.currentTarget = dispatchListener\n ? getNodeFromInstance(dispatchInstance)\n : null;\n dispatchListener = dispatchListener ? dispatchListener(event) : null;\n event.currentTarget = null;\n event._dispatchListeners = null;\n event._dispatchInstances = null;\n return dispatchListener;\n}\nvar assign = Object.assign;\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction SyntheticEvent(\n dispatchConfig,\n targetInst,\n nativeEvent,\n nativeEventTarget\n) {\n this.dispatchConfig = dispatchConfig;\n this._targetInst = targetInst;\n this.nativeEvent = nativeEvent;\n this._dispatchInstances = this._dispatchListeners = null;\n dispatchConfig = this.constructor.Interface;\n for (var propName in dispatchConfig)\n dispatchConfig.hasOwnProperty(propName) &&\n ((targetInst = dispatchConfig[propName])\n ? (this[propName] = targetInst(nativeEvent))\n : \"target\" === propName\n ? (this.target = nativeEventTarget)\n : (this[propName] = nativeEvent[propName]));\n this.isDefaultPrevented = (null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue)\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n}\nassign(SyntheticEvent.prototype, {\n preventDefault: function() {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function() {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble && (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function() {\n this.isPersistent = functionThatReturnsTrue;\n },\n isPersistent: functionThatReturnsFalse,\n destructor: function() {\n var Interface = this.constructor.Interface,\n propName;\n for (propName in Interface) this[propName] = null;\n this.nativeEvent = this._targetInst = this.dispatchConfig = null;\n this.isPropagationStopped = this.isDefaultPrevented = functionThatReturnsFalse;\n this._dispatchInstances = this._dispatchListeners = null;\n }\n});\nSyntheticEvent.Interface = {\n type: null,\n target: null,\n currentTarget: function() {\n return null;\n },\n eventPhase: null,\n bubbles: null,\n cancelable: null,\n timeStamp: function(event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: null,\n isTrusted: null\n};\nSyntheticEvent.extend = function(Interface) {\n function E() {}\n function Class() {\n return Super.apply(this, arguments);\n }\n var Super = this;\n E.prototype = Super.prototype;\n var prototype = new E();\n assign(prototype, Class.prototype);\n Class.prototype = prototype;\n Class.prototype.constructor = Class;\n Class.Interface = assign({}, Super.Interface, Interface);\n Class.extend = Super.extend;\n addEventPoolingTo(Class);\n return Class;\n};\naddEventPoolingTo(SyntheticEvent);\nfunction createOrGetPooledEvent(\n dispatchConfig,\n targetInst,\n nativeEvent,\n nativeInst\n) {\n if (this.eventPool.length) {\n var instance = this.eventPool.pop();\n this.call(instance, dispatchConfig, targetInst, nativeEvent, nativeInst);\n return instance;\n }\n return new this(dispatchConfig, targetInst, nativeEvent, nativeInst);\n}\nfunction releasePooledEvent(event) {\n if (!(event instanceof this))\n throw Error(\n \"Trying to release an event instance into a pool of a different type.\"\n );\n event.destructor();\n 10 > this.eventPool.length && this.eventPool.push(event);\n}\nfunction addEventPoolingTo(EventConstructor) {\n EventConstructor.getPooled = createOrGetPooledEvent;\n EventConstructor.eventPool = [];\n EventConstructor.release = releasePooledEvent;\n}\nvar ResponderSyntheticEvent = SyntheticEvent.extend({\n touchHistory: function() {\n return null;\n }\n});\nfunction isStartish(topLevelType) {\n return \"topTouchStart\" === topLevelType;\n}\nfunction isMoveish(topLevelType) {\n return \"topTouchMove\" === topLevelType;\n}\nvar startDependencies = [\"topTouchStart\"],\n moveDependencies = [\"topTouchMove\"],\n endDependencies = [\"topTouchCancel\", \"topTouchEnd\"],\n touchBank = [],\n touchHistory = {\n touchBank: touchBank,\n numberActiveTouches: 0,\n indexOfSingleActiveTouch: -1,\n mostRecentTimeStamp: 0\n };\nfunction timestampForTouch(touch) {\n return touch.timeStamp || touch.timestamp;\n}\nfunction getTouchIdentifier(_ref) {\n _ref = _ref.identifier;\n if (null == _ref) throw Error(\"Touch object is missing identifier.\");\n return _ref;\n}\nfunction recordTouchStart(touch) {\n var identifier = getTouchIdentifier(touch),\n touchRecord = touchBank[identifier];\n touchRecord\n ? ((touchRecord.touchActive = !0),\n (touchRecord.startPageX = touch.pageX),\n (touchRecord.startPageY = touch.pageY),\n (touchRecord.startTimeStamp = timestampForTouch(touch)),\n (touchRecord.currentPageX = touch.pageX),\n (touchRecord.currentPageY = touch.pageY),\n (touchRecord.currentTimeStamp = timestampForTouch(touch)),\n (touchRecord.previousPageX = touch.pageX),\n (touchRecord.previousPageY = touch.pageY),\n (touchRecord.previousTimeStamp = timestampForTouch(touch)))\n : ((touchRecord = {\n touchActive: !0,\n startPageX: touch.pageX,\n startPageY: touch.pageY,\n startTimeStamp: timestampForTouch(touch),\n currentPageX: touch.pageX,\n currentPageY: touch.pageY,\n currentTimeStamp: timestampForTouch(touch),\n previousPageX: touch.pageX,\n previousPageY: touch.pageY,\n previousTimeStamp: timestampForTouch(touch)\n }),\n (touchBank[identifier] = touchRecord));\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n}\nfunction recordTouchMove(touch) {\n var touchRecord = touchBank[getTouchIdentifier(touch)];\n touchRecord &&\n ((touchRecord.touchActive = !0),\n (touchRecord.previousPageX = touchRecord.currentPageX),\n (touchRecord.previousPageY = touchRecord.currentPageY),\n (touchRecord.previousTimeStamp = touchRecord.currentTimeStamp),\n (touchRecord.currentPageX = touch.pageX),\n (touchRecord.currentPageY = touch.pageY),\n (touchRecord.currentTimeStamp = timestampForTouch(touch)),\n (touchHistory.mostRecentTimeStamp = timestampForTouch(touch)));\n}\nfunction recordTouchEnd(touch) {\n var touchRecord = touchBank[getTouchIdentifier(touch)];\n touchRecord &&\n ((touchRecord.touchActive = !1),\n (touchRecord.previousPageX = touchRecord.currentPageX),\n (touchRecord.previousPageY = touchRecord.currentPageY),\n (touchRecord.previousTimeStamp = touchRecord.currentTimeStamp),\n (touchRecord.currentPageX = touch.pageX),\n (touchRecord.currentPageY = touch.pageY),\n (touchRecord.currentTimeStamp = timestampForTouch(touch)),\n (touchHistory.mostRecentTimeStamp = timestampForTouch(touch)));\n}\nvar instrumentationCallback,\n ResponderTouchHistoryStore = {\n instrument: function(callback) {\n instrumentationCallback = callback;\n },\n recordTouchTrack: function(topLevelType, nativeEvent) {\n null != instrumentationCallback &&\n instrumentationCallback(topLevelType, nativeEvent);\n if (isMoveish(topLevelType))\n nativeEvent.changedTouches.forEach(recordTouchMove);\n else if (isStartish(topLevelType))\n nativeEvent.changedTouches.forEach(recordTouchStart),\n (touchHistory.numberActiveTouches = nativeEvent.touches.length),\n 1 === touchHistory.numberActiveTouches &&\n (touchHistory.indexOfSingleActiveTouch =\n nativeEvent.touches[0].identifier);\n else if (\n \"topTouchEnd\" === topLevelType ||\n \"topTouchCancel\" === topLevelType\n )\n if (\n (nativeEvent.changedTouches.forEach(recordTouchEnd),\n (touchHistory.numberActiveTouches = nativeEvent.touches.length),\n 1 === touchHistory.numberActiveTouches)\n )\n for (\n topLevelType = 0;\n topLevelType < touchBank.length;\n topLevelType++\n )\n if (\n ((nativeEvent = touchBank[topLevelType]),\n null != nativeEvent && nativeEvent.touchActive)\n ) {\n touchHistory.indexOfSingleActiveTouch = topLevelType;\n break;\n }\n },\n touchHistory: touchHistory\n };\nfunction accumulate(current, next) {\n if (null == next)\n throw Error(\n \"accumulate(...): Accumulated items must not be null or undefined.\"\n );\n return null == current\n ? next\n : isArrayImpl(current)\n ? current.concat(next)\n : isArrayImpl(next)\n ? [current].concat(next)\n : [current, next];\n}\nfunction accumulateInto(current, next) {\n if (null == next)\n throw Error(\n \"accumulateInto(...): Accumulated items must not be null or undefined.\"\n );\n if (null == current) return next;\n if (isArrayImpl(current)) {\n if (isArrayImpl(next)) return current.push.apply(current, next), current;\n current.push(next);\n return current;\n }\n return isArrayImpl(next) ? [current].concat(next) : [current, next];\n}\nfunction forEachAccumulated(arr, cb, scope) {\n Array.isArray(arr) ? arr.forEach(cb, scope) : arr && cb.call(scope, arr);\n}\nvar responderInst = null,\n trackedTouchCount = 0;\nfunction changeResponder(nextResponderInst, blockHostResponder) {\n var oldResponderInst = responderInst;\n responderInst = nextResponderInst;\n if (null !== ResponderEventPlugin.GlobalResponderHandler)\n ResponderEventPlugin.GlobalResponderHandler.onChange(\n oldResponderInst,\n nextResponderInst,\n blockHostResponder\n );\n}\nvar eventTypes = {\n startShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onStartShouldSetResponder\",\n captured: \"onStartShouldSetResponderCapture\"\n },\n dependencies: startDependencies\n },\n scrollShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onScrollShouldSetResponder\",\n captured: \"onScrollShouldSetResponderCapture\"\n },\n dependencies: [\"topScroll\"]\n },\n selectionChangeShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onSelectionChangeShouldSetResponder\",\n captured: \"onSelectionChangeShouldSetResponderCapture\"\n },\n dependencies: [\"topSelectionChange\"]\n },\n moveShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onMoveShouldSetResponder\",\n captured: \"onMoveShouldSetResponderCapture\"\n },\n dependencies: moveDependencies\n },\n responderStart: {\n registrationName: \"onResponderStart\",\n dependencies: startDependencies\n },\n responderMove: {\n registrationName: \"onResponderMove\",\n dependencies: moveDependencies\n },\n responderEnd: {\n registrationName: \"onResponderEnd\",\n dependencies: endDependencies\n },\n responderRelease: {\n registrationName: \"onResponderRelease\",\n dependencies: endDependencies\n },\n responderTerminationRequest: {\n registrationName: \"onResponderTerminationRequest\",\n dependencies: []\n },\n responderGrant: { registrationName: \"onResponderGrant\", dependencies: [] },\n responderReject: { registrationName: \"onResponderReject\", dependencies: [] },\n responderTerminate: {\n registrationName: \"onResponderTerminate\",\n dependencies: []\n }\n};\nfunction getParent(inst) {\n do inst = inst.return;\n while (inst && 5 !== inst.tag);\n return inst ? inst : null;\n}\nfunction traverseTwoPhase(inst, fn, arg) {\n for (var path = []; inst; ) path.push(inst), (inst = getParent(inst));\n for (inst = path.length; 0 < inst--; ) fn(path[inst], \"captured\", arg);\n for (inst = 0; inst < path.length; inst++) fn(path[inst], \"bubbled\", arg);\n}\nfunction getListener(inst, registrationName) {\n inst = inst.stateNode;\n if (null === inst) return null;\n inst = getFiberCurrentPropsFromNode(inst);\n if (null === inst) return null;\n if ((inst = inst[registrationName]) && \"function\" !== typeof inst)\n throw Error(\n \"Expected `\" +\n registrationName +\n \"` listener to be a function, instead got a value of `\" +\n typeof inst +\n \"` type.\"\n );\n return inst;\n}\nfunction accumulateDirectionalDispatches(inst, phase, event) {\n if (\n (phase = getListener(\n inst,\n event.dispatchConfig.phasedRegistrationNames[phase]\n ))\n )\n (event._dispatchListeners = accumulateInto(\n event._dispatchListeners,\n phase\n )),\n (event._dispatchInstances = accumulateInto(\n event._dispatchInstances,\n inst\n ));\n}\nfunction accumulateDirectDispatchesSingle(event) {\n if (event && event.dispatchConfig.registrationName) {\n var inst = event._targetInst;\n if (inst && event && event.dispatchConfig.registrationName) {\n var listener = getListener(inst, event.dispatchConfig.registrationName);\n listener &&\n ((event._dispatchListeners = accumulateInto(\n event._dispatchListeners,\n listener\n )),\n (event._dispatchInstances = accumulateInto(\n event._dispatchInstances,\n inst\n )));\n }\n }\n}\nfunction accumulateTwoPhaseDispatchesSingleSkipTarget(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n var targetInst = event._targetInst;\n targetInst = targetInst ? getParent(targetInst) : null;\n traverseTwoPhase(targetInst, accumulateDirectionalDispatches, event);\n }\n}\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n event &&\n event.dispatchConfig.phasedRegistrationNames &&\n traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);\n}\nvar ResponderEventPlugin = {\n _getResponder: function() {\n return responderInst;\n },\n eventTypes: eventTypes,\n extractEvents: function(\n topLevelType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n if (isStartish(topLevelType)) trackedTouchCount += 1;\n else if (\n \"topTouchEnd\" === topLevelType ||\n \"topTouchCancel\" === topLevelType\n )\n if (0 <= trackedTouchCount) --trackedTouchCount;\n else return null;\n ResponderTouchHistoryStore.recordTouchTrack(topLevelType, nativeEvent);\n if (\n targetInst &&\n ((\"topScroll\" === topLevelType && !nativeEvent.responderIgnoreScroll) ||\n (0 < trackedTouchCount && \"topSelectionChange\" === topLevelType) ||\n isStartish(topLevelType) ||\n isMoveish(topLevelType))\n ) {\n var shouldSetEventType = isStartish(topLevelType)\n ? eventTypes.startShouldSetResponder\n : isMoveish(topLevelType)\n ? eventTypes.moveShouldSetResponder\n : \"topSelectionChange\" === topLevelType\n ? eventTypes.selectionChangeShouldSetResponder\n : eventTypes.scrollShouldSetResponder;\n if (responderInst)\n b: {\n var JSCompiler_temp = responderInst;\n for (\n var depthA = 0, tempA = JSCompiler_temp;\n tempA;\n tempA = getParent(tempA)\n )\n depthA++;\n tempA = 0;\n for (var tempB = targetInst; tempB; tempB = getParent(tempB))\n tempA++;\n for (; 0 < depthA - tempA; )\n (JSCompiler_temp = getParent(JSCompiler_temp)), depthA--;\n for (; 0 < tempA - depthA; )\n (targetInst = getParent(targetInst)), tempA--;\n for (; depthA--; ) {\n if (\n JSCompiler_temp === targetInst ||\n JSCompiler_temp === targetInst.alternate\n )\n break b;\n JSCompiler_temp = getParent(JSCompiler_temp);\n targetInst = getParent(targetInst);\n }\n JSCompiler_temp = null;\n }\n else JSCompiler_temp = targetInst;\n targetInst = JSCompiler_temp;\n JSCompiler_temp = targetInst === responderInst;\n shouldSetEventType = ResponderSyntheticEvent.getPooled(\n shouldSetEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory;\n JSCompiler_temp\n ? forEachAccumulated(\n shouldSetEventType,\n accumulateTwoPhaseDispatchesSingleSkipTarget\n )\n : forEachAccumulated(\n shouldSetEventType,\n accumulateTwoPhaseDispatchesSingle\n );\n b: {\n JSCompiler_temp = shouldSetEventType._dispatchListeners;\n targetInst = shouldSetEventType._dispatchInstances;\n if (isArrayImpl(JSCompiler_temp))\n for (\n depthA = 0;\n depthA < JSCompiler_temp.length &&\n !shouldSetEventType.isPropagationStopped();\n depthA++\n ) {\n if (\n JSCompiler_temp[depthA](shouldSetEventType, targetInst[depthA])\n ) {\n JSCompiler_temp = targetInst[depthA];\n break b;\n }\n }\n else if (\n JSCompiler_temp &&\n JSCompiler_temp(shouldSetEventType, targetInst)\n ) {\n JSCompiler_temp = targetInst;\n break b;\n }\n JSCompiler_temp = null;\n }\n shouldSetEventType._dispatchInstances = null;\n shouldSetEventType._dispatchListeners = null;\n shouldSetEventType.isPersistent() ||\n shouldSetEventType.constructor.release(shouldSetEventType);\n if (JSCompiler_temp && JSCompiler_temp !== responderInst)\n if (\n ((shouldSetEventType = ResponderSyntheticEvent.getPooled(\n eventTypes.responderGrant,\n JSCompiler_temp,\n nativeEvent,\n nativeEventTarget\n )),\n (shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(\n shouldSetEventType,\n accumulateDirectDispatchesSingle\n ),\n (targetInst = !0 === executeDirectDispatch(shouldSetEventType)),\n responderInst)\n )\n if (\n ((depthA = ResponderSyntheticEvent.getPooled(\n eventTypes.responderTerminationRequest,\n responderInst,\n nativeEvent,\n nativeEventTarget\n )),\n (depthA.touchHistory = ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(depthA, accumulateDirectDispatchesSingle),\n (tempA =\n !depthA._dispatchListeners || executeDirectDispatch(depthA)),\n depthA.isPersistent() || depthA.constructor.release(depthA),\n tempA)\n ) {\n depthA = ResponderSyntheticEvent.getPooled(\n eventTypes.responderTerminate,\n responderInst,\n nativeEvent,\n nativeEventTarget\n );\n depthA.touchHistory = ResponderTouchHistoryStore.touchHistory;\n forEachAccumulated(depthA, accumulateDirectDispatchesSingle);\n var JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n [shouldSetEventType, depthA]\n );\n changeResponder(JSCompiler_temp, targetInst);\n } else\n (shouldSetEventType = ResponderSyntheticEvent.getPooled(\n eventTypes.responderReject,\n JSCompiler_temp,\n nativeEvent,\n nativeEventTarget\n )),\n (shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(\n shouldSetEventType,\n accumulateDirectDispatchesSingle\n ),\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n shouldSetEventType\n ));\n else\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n shouldSetEventType\n )),\n changeResponder(JSCompiler_temp, targetInst);\n else JSCompiler_temp$jscomp$0 = null;\n } else JSCompiler_temp$jscomp$0 = null;\n shouldSetEventType = responderInst && isStartish(topLevelType);\n JSCompiler_temp = responderInst && isMoveish(topLevelType);\n targetInst =\n responderInst &&\n (\"topTouchEnd\" === topLevelType || \"topTouchCancel\" === topLevelType);\n if (\n (shouldSetEventType = shouldSetEventType\n ? eventTypes.responderStart\n : JSCompiler_temp\n ? eventTypes.responderMove\n : targetInst\n ? eventTypes.responderEnd\n : null)\n )\n (shouldSetEventType = ResponderSyntheticEvent.getPooled(\n shouldSetEventType,\n responderInst,\n nativeEvent,\n nativeEventTarget\n )),\n (shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(\n shouldSetEventType,\n accumulateDirectDispatchesSingle\n ),\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n shouldSetEventType\n ));\n shouldSetEventType = responderInst && \"topTouchCancel\" === topLevelType;\n if (\n (topLevelType =\n responderInst &&\n !shouldSetEventType &&\n (\"topTouchEnd\" === topLevelType || \"topTouchCancel\" === topLevelType))\n )\n a: {\n if ((topLevelType = nativeEvent.touches) && 0 !== topLevelType.length)\n for (\n JSCompiler_temp = 0;\n JSCompiler_temp < topLevelType.length;\n JSCompiler_temp++\n )\n if (\n ((targetInst = topLevelType[JSCompiler_temp].target),\n null !== targetInst &&\n void 0 !== targetInst &&\n 0 !== targetInst)\n ) {\n depthA = getInstanceFromNode(targetInst);\n b: {\n for (targetInst = responderInst; depthA; ) {\n if (\n targetInst === depthA ||\n targetInst === depthA.alternate\n ) {\n targetInst = !0;\n break b;\n }\n depthA = getParent(depthA);\n }\n targetInst = !1;\n }\n if (targetInst) {\n topLevelType = !1;\n break a;\n }\n }\n topLevelType = !0;\n }\n if (\n (topLevelType = shouldSetEventType\n ? eventTypes.responderTerminate\n : topLevelType\n ? eventTypes.responderRelease\n : null)\n )\n (nativeEvent = ResponderSyntheticEvent.getPooled(\n topLevelType,\n responderInst,\n nativeEvent,\n nativeEventTarget\n )),\n (nativeEvent.touchHistory = ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(nativeEvent, accumulateDirectDispatchesSingle),\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n nativeEvent\n )),\n changeResponder(null);\n return JSCompiler_temp$jscomp$0;\n },\n GlobalResponderHandler: null,\n injection: {\n injectGlobalResponderHandler: function(GlobalResponderHandler) {\n ResponderEventPlugin.GlobalResponderHandler = GlobalResponderHandler;\n }\n }\n },\n eventPluginOrder = null,\n namesToPlugins = {};\nfunction recomputePluginOrdering() {\n if (eventPluginOrder)\n for (var pluginName in namesToPlugins) {\n var pluginModule = namesToPlugins[pluginName],\n pluginIndex = eventPluginOrder.indexOf(pluginName);\n if (-1 >= pluginIndex)\n throw Error(\n \"EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `\" +\n (pluginName + \"`.\")\n );\n if (!plugins[pluginIndex]) {\n if (!pluginModule.extractEvents)\n throw Error(\n \"EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `\" +\n (pluginName + \"` does not.\")\n );\n plugins[pluginIndex] = pluginModule;\n pluginIndex = pluginModule.eventTypes;\n for (var eventName in pluginIndex) {\n var JSCompiler_inline_result = void 0;\n var dispatchConfig = pluginIndex[eventName],\n eventName$jscomp$0 = eventName;\n if (eventNameDispatchConfigs.hasOwnProperty(eventName$jscomp$0))\n throw Error(\n \"EventPluginRegistry: More than one plugin attempted to publish the same event name, `\" +\n (eventName$jscomp$0 + \"`.\")\n );\n eventNameDispatchConfigs[eventName$jscomp$0] = dispatchConfig;\n var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n if (phasedRegistrationNames) {\n for (JSCompiler_inline_result in phasedRegistrationNames)\n phasedRegistrationNames.hasOwnProperty(\n JSCompiler_inline_result\n ) &&\n publishRegistrationName(\n phasedRegistrationNames[JSCompiler_inline_result],\n pluginModule,\n eventName$jscomp$0\n );\n JSCompiler_inline_result = !0;\n } else\n dispatchConfig.registrationName\n ? (publishRegistrationName(\n dispatchConfig.registrationName,\n pluginModule,\n eventName$jscomp$0\n ),\n (JSCompiler_inline_result = !0))\n : (JSCompiler_inline_result = !1);\n if (!JSCompiler_inline_result)\n throw Error(\n \"EventPluginRegistry: Failed to publish event `\" +\n eventName +\n \"` for plugin `\" +\n pluginName +\n \"`.\"\n );\n }\n }\n }\n}\nfunction publishRegistrationName(registrationName, pluginModule) {\n if (registrationNameModules[registrationName])\n throw Error(\n \"EventPluginRegistry: More than one plugin attempted to publish the same registration name, `\" +\n (registrationName + \"`.\")\n );\n registrationNameModules[registrationName] = pluginModule;\n}\nvar plugins = [],\n eventNameDispatchConfigs = {},\n registrationNameModules = {};\nfunction getListeners(\n inst,\n registrationName,\n phase,\n dispatchToImperativeListeners\n) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n inst = getFiberCurrentPropsFromNode(stateNode);\n if (null === inst) return null;\n if ((inst = inst[registrationName]) && \"function\" !== typeof inst)\n throw Error(\n \"Expected `\" +\n registrationName +\n \"` listener to be a function, instead got a value of `\" +\n typeof inst +\n \"` type.\"\n );\n if (\n !(\n dispatchToImperativeListeners &&\n stateNode.canonical &&\n stateNode.canonical._eventListeners\n )\n )\n return inst;\n var listeners = [];\n inst && listeners.push(inst);\n var requestedPhaseIsCapture = \"captured\" === phase,\n mangledImperativeRegistrationName = requestedPhaseIsCapture\n ? \"rn:\" + registrationName.replace(/Capture$/, \"\")\n : \"rn:\" + registrationName;\n stateNode.canonical._eventListeners[mangledImperativeRegistrationName] &&\n 0 <\n stateNode.canonical._eventListeners[mangledImperativeRegistrationName]\n .length &&\n stateNode.canonical._eventListeners[\n mangledImperativeRegistrationName\n ].forEach(function(listenerObj) {\n if (\n (null != listenerObj.options.capture && listenerObj.options.capture) ===\n requestedPhaseIsCapture\n ) {\n var listenerFnWrapper = function(syntheticEvent) {\n var eventInst = new ReactNativePrivateInterface.CustomEvent(\n mangledImperativeRegistrationName,\n { detail: syntheticEvent.nativeEvent }\n );\n eventInst.isTrusted = !0;\n eventInst.setSyntheticEvent(syntheticEvent);\n for (\n var _len = arguments.length,\n args = Array(1 < _len ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n )\n args[_key - 1] = arguments[_key];\n listenerObj.listener.apply(listenerObj, [eventInst].concat(args));\n };\n listenerObj.options.once\n ? listeners.push(function() {\n stateNode.canonical.removeEventListener_unstable(\n mangledImperativeRegistrationName,\n listenerObj.listener,\n listenerObj.capture\n );\n listenerObj.invalidated ||\n ((listenerObj.invalidated = !0),\n listenerObj.listener.apply(listenerObj, arguments));\n })\n : listeners.push(listenerFnWrapper);\n }\n });\n return 0 === listeners.length\n ? null\n : 1 === listeners.length\n ? listeners[0]\n : listeners;\n}\nvar customBubblingEventTypes =\n ReactNativePrivateInterface.ReactNativeViewConfigRegistry\n .customBubblingEventTypes,\n customDirectEventTypes =\n ReactNativePrivateInterface.ReactNativeViewConfigRegistry\n .customDirectEventTypes;\nfunction accumulateListenersAndInstances(inst, event, listeners) {\n var listenersLength = listeners\n ? isArrayImpl(listeners)\n ? listeners.length\n : 1\n : 0;\n if (0 < listenersLength)\n if (\n ((event._dispatchListeners = accumulateInto(\n event._dispatchListeners,\n listeners\n )),\n null == event._dispatchInstances && 1 === listenersLength)\n )\n event._dispatchInstances = inst;\n else\n for (\n event._dispatchInstances = event._dispatchInstances || [],\n isArrayImpl(event._dispatchInstances) ||\n (event._dispatchInstances = [event._dispatchInstances]),\n listeners = 0;\n listeners < listenersLength;\n listeners++\n )\n event._dispatchInstances.push(inst);\n}\nfunction accumulateDirectionalDispatches$1(inst, phase, event) {\n phase = getListeners(\n inst,\n event.dispatchConfig.phasedRegistrationNames[phase],\n phase,\n !0\n );\n accumulateListenersAndInstances(inst, event, phase);\n}\nfunction traverseTwoPhase$1(inst, fn, arg, skipBubbling) {\n for (var path = []; inst; ) {\n path.push(inst);\n do inst = inst.return;\n while (inst && 5 !== inst.tag);\n inst = inst ? inst : null;\n }\n for (inst = path.length; 0 < inst--; ) fn(path[inst], \"captured\", arg);\n if (skipBubbling) fn(path[0], \"bubbled\", arg);\n else\n for (inst = 0; inst < path.length; inst++) fn(path[inst], \"bubbled\", arg);\n}\nfunction accumulateTwoPhaseDispatchesSingle$1(event) {\n event &&\n event.dispatchConfig.phasedRegistrationNames &&\n traverseTwoPhase$1(\n event._targetInst,\n accumulateDirectionalDispatches$1,\n event,\n !1\n );\n}\nfunction accumulateDirectDispatchesSingle$1(event) {\n if (event && event.dispatchConfig.registrationName) {\n var inst = event._targetInst;\n if (inst && event && event.dispatchConfig.registrationName) {\n var listeners = getListeners(\n inst,\n event.dispatchConfig.registrationName,\n \"bubbled\",\n !1\n );\n accumulateListenersAndInstances(inst, event, listeners);\n }\n }\n}\nif (eventPluginOrder)\n throw Error(\n \"EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.\"\n );\neventPluginOrder = Array.prototype.slice.call([\n \"ResponderEventPlugin\",\n \"ReactNativeBridgeEventPlugin\"\n]);\nrecomputePluginOrdering();\nvar injectedNamesToPlugins$jscomp$inline_223 = {\n ResponderEventPlugin: ResponderEventPlugin,\n ReactNativeBridgeEventPlugin: {\n eventTypes: {},\n extractEvents: function(\n topLevelType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n if (null == targetInst) return null;\n var bubbleDispatchConfig = customBubblingEventTypes[topLevelType],\n directDispatchConfig = customDirectEventTypes[topLevelType];\n if (!bubbleDispatchConfig && !directDispatchConfig)\n throw Error(\n 'Unsupported top level event type \"' + topLevelType + '\" dispatched'\n );\n topLevelType = SyntheticEvent.getPooled(\n bubbleDispatchConfig || directDispatchConfig,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n if (bubbleDispatchConfig)\n null != topLevelType &&\n null != topLevelType.dispatchConfig.phasedRegistrationNames &&\n topLevelType.dispatchConfig.phasedRegistrationNames.skipBubbling\n ? topLevelType &&\n topLevelType.dispatchConfig.phasedRegistrationNames &&\n traverseTwoPhase$1(\n topLevelType._targetInst,\n accumulateDirectionalDispatches$1,\n topLevelType,\n !0\n )\n : forEachAccumulated(\n topLevelType,\n accumulateTwoPhaseDispatchesSingle$1\n );\n else if (directDispatchConfig)\n forEachAccumulated(topLevelType, accumulateDirectDispatchesSingle$1);\n else return null;\n return topLevelType;\n }\n }\n },\n isOrderingDirty$jscomp$inline_224 = !1,\n pluginName$jscomp$inline_225;\nfor (pluginName$jscomp$inline_225 in injectedNamesToPlugins$jscomp$inline_223)\n if (\n injectedNamesToPlugins$jscomp$inline_223.hasOwnProperty(\n pluginName$jscomp$inline_225\n )\n ) {\n var pluginModule$jscomp$inline_226 =\n injectedNamesToPlugins$jscomp$inline_223[pluginName$jscomp$inline_225];\n if (\n !namesToPlugins.hasOwnProperty(pluginName$jscomp$inline_225) ||\n namesToPlugins[pluginName$jscomp$inline_225] !==\n pluginModule$jscomp$inline_226\n ) {\n if (namesToPlugins[pluginName$jscomp$inline_225])\n throw Error(\n \"EventPluginRegistry: Cannot inject two different event plugins using the same name, `\" +\n (pluginName$jscomp$inline_225 + \"`.\")\n );\n namesToPlugins[\n pluginName$jscomp$inline_225\n ] = pluginModule$jscomp$inline_226;\n isOrderingDirty$jscomp$inline_224 = !0;\n }\n }\nisOrderingDirty$jscomp$inline_224 && recomputePluginOrdering();\nfunction getInstanceFromInstance(instanceHandle) {\n return instanceHandle;\n}\ngetFiberCurrentPropsFromNode = function(inst) {\n return inst.canonical.currentProps;\n};\ngetInstanceFromNode = getInstanceFromInstance;\ngetNodeFromInstance = function(inst) {\n inst = inst.stateNode.canonical;\n if (!inst._nativeTag) throw Error(\"All native instances should have a tag.\");\n return inst;\n};\nResponderEventPlugin.injection.injectGlobalResponderHandler({\n onChange: function(from, to, blockNativeResponder) {\n var fromOrTo = from || to;\n (fromOrTo = fromOrTo && fromOrTo.stateNode) &&\n fromOrTo.canonical._internalInstanceHandle\n ? (from &&\n nativeFabricUIManager.setIsJSResponder(\n from.stateNode.node,\n !1,\n blockNativeResponder || !1\n ),\n to &&\n nativeFabricUIManager.setIsJSResponder(\n to.stateNode.node,\n !0,\n blockNativeResponder || !1\n ))\n : null !== to\n ? ReactNativePrivateInterface.UIManager.setJSResponder(\n to.stateNode.canonical._nativeTag,\n blockNativeResponder\n )\n : ReactNativePrivateInterface.UIManager.clearJSResponder();\n }\n});\nvar ReactSharedInternals =\n React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,\n REACT_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_PROVIDER_TYPE = Symbol.for(\"react.provider\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nSymbol.for(\"react.debug_trace_mode\");\nvar REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.cache\");\nSymbol.for(\"react.tracing_marker\");\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type) return type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Consumer\";\n case REACT_PROVIDER_TYPE:\n return (type._context.displayName || \"Context\") + \".Provider\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nfunction getComponentNameFromFiber(fiber) {\n var type = fiber.type;\n switch (fiber.tag) {\n case 24:\n return \"Cache\";\n case 9:\n return (type.displayName || \"Context\") + \".Consumer\";\n case 10:\n return (type._context.displayName || \"Context\") + \".Provider\";\n case 18:\n return \"DehydratedFragment\";\n case 11:\n return (\n (fiber = type.render),\n (fiber = fiber.displayName || fiber.name || \"\"),\n type.displayName ||\n (\"\" !== fiber ? \"ForwardRef(\" + fiber + \")\" : \"ForwardRef\")\n );\n case 7:\n return \"Fragment\";\n case 5:\n return type;\n case 4:\n return \"Portal\";\n case 3:\n return \"Root\";\n case 6:\n return \"Text\";\n case 16:\n return getComponentNameFromType(type);\n case 8:\n return type === REACT_STRICT_MODE_TYPE ? \"StrictMode\" : \"Mode\";\n case 22:\n return \"Offscreen\";\n case 12:\n return \"Profiler\";\n case 21:\n return \"Scope\";\n case 13:\n return \"Suspense\";\n case 19:\n return \"SuspenseList\";\n case 25:\n return \"TracingMarker\";\n case 1:\n case 0:\n case 17:\n case 2:\n case 14:\n case 15:\n if (\"function\" === typeof type)\n return type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n }\n return null;\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(\"Unable to find node on an unmounted component.\");\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate)\n throw Error(\"Unable to find node on an unmounted component.\");\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(\"Unable to find node on an unmounted component.\");\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$0 = parentA.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) {\n for (child$0 = parentB.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild)\n throw Error(\n \"Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.\"\n );\n }\n }\n if (a.alternate !== b)\n throw Error(\n \"Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (3 !== a.tag)\n throw Error(\"Unable to find node on an unmounted component.\");\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiber(parent) {\n parent = findCurrentFiberUsingSlowPath(parent);\n return null !== parent ? findCurrentHostFiberImpl(parent) : null;\n}\nfunction findCurrentHostFiberImpl(node) {\n if (5 === node.tag || 6 === node.tag) return node;\n for (node = node.child; null !== node; ) {\n var match = findCurrentHostFiberImpl(node);\n if (null !== match) return match;\n node = node.sibling;\n }\n return null;\n}\nfunction mountSafeCallback_NOT_REALLY_SAFE(context, callback) {\n return function() {\n if (\n callback &&\n (\"boolean\" !== typeof context.__isMounted || context.__isMounted)\n )\n return callback.apply(context, arguments);\n };\n}\nvar emptyObject = {},\n removedKeys = null,\n removedKeyCount = 0,\n deepDifferOptions = { unsafelyIgnoreFunctions: !0 };\nfunction defaultDiffer(prevProp, nextProp) {\n return \"object\" !== typeof nextProp || null === nextProp\n ? !0\n : ReactNativePrivateInterface.deepDiffer(\n prevProp,\n nextProp,\n deepDifferOptions\n );\n}\nfunction restoreDeletedValuesInNestedArray(\n updatePayload,\n node,\n validAttributes\n) {\n if (isArrayImpl(node))\n for (var i = node.length; i-- && 0 < removedKeyCount; )\n restoreDeletedValuesInNestedArray(\n updatePayload,\n node[i],\n validAttributes\n );\n else if (node && 0 < removedKeyCount)\n for (i in removedKeys)\n if (removedKeys[i]) {\n var nextProp = node[i];\n if (void 0 !== nextProp) {\n var attributeConfig = validAttributes[i];\n if (attributeConfig) {\n \"function\" === typeof nextProp && (nextProp = !0);\n \"undefined\" === typeof nextProp && (nextProp = null);\n if (\"object\" !== typeof attributeConfig)\n updatePayload[i] = nextProp;\n else if (\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n )\n (nextProp =\n \"function\" === typeof attributeConfig.process\n ? attributeConfig.process(nextProp)\n : nextProp),\n (updatePayload[i] = nextProp);\n removedKeys[i] = !1;\n removedKeyCount--;\n }\n }\n }\n}\nfunction diffNestedProperty(\n updatePayload,\n prevProp,\n nextProp,\n validAttributes\n) {\n if (!updatePayload && prevProp === nextProp) return updatePayload;\n if (!prevProp || !nextProp)\n return nextProp\n ? addNestedProperty(updatePayload, nextProp, validAttributes)\n : prevProp\n ? clearNestedProperty(updatePayload, prevProp, validAttributes)\n : updatePayload;\n if (!isArrayImpl(prevProp) && !isArrayImpl(nextProp))\n return diffProperties(updatePayload, prevProp, nextProp, validAttributes);\n if (isArrayImpl(prevProp) && isArrayImpl(nextProp)) {\n var minLength =\n prevProp.length < nextProp.length ? prevProp.length : nextProp.length,\n i;\n for (i = 0; i < minLength; i++)\n updatePayload = diffNestedProperty(\n updatePayload,\n prevProp[i],\n nextProp[i],\n validAttributes\n );\n for (; i < prevProp.length; i++)\n updatePayload = clearNestedProperty(\n updatePayload,\n prevProp[i],\n validAttributes\n );\n for (; i < nextProp.length; i++)\n updatePayload = addNestedProperty(\n updatePayload,\n nextProp[i],\n validAttributes\n );\n return updatePayload;\n }\n return isArrayImpl(prevProp)\n ? diffProperties(\n updatePayload,\n ReactNativePrivateInterface.flattenStyle(prevProp),\n nextProp,\n validAttributes\n )\n : diffProperties(\n updatePayload,\n prevProp,\n ReactNativePrivateInterface.flattenStyle(nextProp),\n validAttributes\n );\n}\nfunction addNestedProperty(updatePayload, nextProp, validAttributes) {\n if (!nextProp) return updatePayload;\n if (!isArrayImpl(nextProp))\n return diffProperties(\n updatePayload,\n emptyObject,\n nextProp,\n validAttributes\n );\n for (var i = 0; i < nextProp.length; i++)\n updatePayload = addNestedProperty(\n updatePayload,\n nextProp[i],\n validAttributes\n );\n return updatePayload;\n}\nfunction clearNestedProperty(updatePayload, prevProp, validAttributes) {\n if (!prevProp) return updatePayload;\n if (!isArrayImpl(prevProp))\n return diffProperties(\n updatePayload,\n prevProp,\n emptyObject,\n validAttributes\n );\n for (var i = 0; i < prevProp.length; i++)\n updatePayload = clearNestedProperty(\n updatePayload,\n prevProp[i],\n validAttributes\n );\n return updatePayload;\n}\nfunction diffProperties(updatePayload, prevProps, nextProps, validAttributes) {\n var attributeConfig, propKey;\n for (propKey in nextProps)\n if ((attributeConfig = validAttributes[propKey])) {\n var prevProp = prevProps[propKey];\n var nextProp = nextProps[propKey];\n \"function\" === typeof nextProp &&\n ((nextProp = !0), \"function\" === typeof prevProp && (prevProp = !0));\n \"undefined\" === typeof nextProp &&\n ((nextProp = null),\n \"undefined\" === typeof prevProp && (prevProp = null));\n removedKeys && (removedKeys[propKey] = !1);\n if (updatePayload && void 0 !== updatePayload[propKey])\n if (\"object\" !== typeof attributeConfig)\n updatePayload[propKey] = nextProp;\n else {\n if (\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n )\n (attributeConfig =\n \"function\" === typeof attributeConfig.process\n ? attributeConfig.process(nextProp)\n : nextProp),\n (updatePayload[propKey] = attributeConfig);\n }\n else if (prevProp !== nextProp)\n if (\"object\" !== typeof attributeConfig)\n defaultDiffer(prevProp, nextProp) &&\n ((updatePayload || (updatePayload = {}))[propKey] = nextProp);\n else if (\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n ) {\n if (\n void 0 === prevProp ||\n (\"function\" === typeof attributeConfig.diff\n ? attributeConfig.diff(prevProp, nextProp)\n : defaultDiffer(prevProp, nextProp))\n )\n (attributeConfig =\n \"function\" === typeof attributeConfig.process\n ? attributeConfig.process(nextProp)\n : nextProp),\n ((updatePayload || (updatePayload = {}))[\n propKey\n ] = attributeConfig);\n } else\n (removedKeys = null),\n (removedKeyCount = 0),\n (updatePayload = diffNestedProperty(\n updatePayload,\n prevProp,\n nextProp,\n attributeConfig\n )),\n 0 < removedKeyCount &&\n updatePayload &&\n (restoreDeletedValuesInNestedArray(\n updatePayload,\n nextProp,\n attributeConfig\n ),\n (removedKeys = null));\n }\n for (var propKey$2 in prevProps)\n void 0 === nextProps[propKey$2] &&\n (!(attributeConfig = validAttributes[propKey$2]) ||\n (updatePayload && void 0 !== updatePayload[propKey$2]) ||\n ((prevProp = prevProps[propKey$2]),\n void 0 !== prevProp &&\n (\"object\" !== typeof attributeConfig ||\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n ? (((updatePayload || (updatePayload = {}))[propKey$2] = null),\n removedKeys || (removedKeys = {}),\n removedKeys[propKey$2] ||\n ((removedKeys[propKey$2] = !0), removedKeyCount++))\n : (updatePayload = clearNestedProperty(\n updatePayload,\n prevProp,\n attributeConfig\n )))));\n return updatePayload;\n}\nfunction batchedUpdatesImpl(fn, bookkeeping) {\n return fn(bookkeeping);\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates(fn, bookkeeping) {\n if (isInsideEventHandler) return fn(bookkeeping);\n isInsideEventHandler = !0;\n try {\n return batchedUpdatesImpl(fn, bookkeeping);\n } finally {\n isInsideEventHandler = !1;\n }\n}\nvar eventQueue = null;\nfunction executeDispatchesAndReleaseTopLevel(e) {\n if (e) {\n var dispatchListeners = e._dispatchListeners,\n dispatchInstances = e._dispatchInstances;\n if (isArrayImpl(dispatchListeners))\n for (\n var i = 0;\n i < dispatchListeners.length && !e.isPropagationStopped();\n i++\n )\n executeDispatch(e, dispatchListeners[i], dispatchInstances[i]);\n else\n dispatchListeners &&\n executeDispatch(e, dispatchListeners, dispatchInstances);\n e._dispatchListeners = null;\n e._dispatchInstances = null;\n e.isPersistent() || e.constructor.release(e);\n }\n}\nfunction dispatchEvent(target, topLevelType, nativeEvent) {\n var eventTarget = null;\n if (null != target) {\n var stateNode = target.stateNode;\n null != stateNode && (eventTarget = stateNode.canonical);\n }\n batchedUpdates(function() {\n var event = { eventName: topLevelType, nativeEvent: nativeEvent };\n ReactNativePrivateInterface.RawEventEmitter.emit(topLevelType, event);\n ReactNativePrivateInterface.RawEventEmitter.emit(\"*\", event);\n event = eventTarget;\n for (\n var events = null, legacyPlugins = plugins, i = 0;\n i < legacyPlugins.length;\n i++\n ) {\n var possiblePlugin = legacyPlugins[i];\n possiblePlugin &&\n (possiblePlugin = possiblePlugin.extractEvents(\n topLevelType,\n target,\n nativeEvent,\n event\n )) &&\n (events = accumulateInto(events, possiblePlugin));\n }\n event = events;\n null !== event && (eventQueue = accumulateInto(eventQueue, event));\n event = eventQueue;\n eventQueue = null;\n if (event) {\n forEachAccumulated(event, executeDispatchesAndReleaseTopLevel);\n if (eventQueue)\n throw Error(\n \"processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.\"\n );\n if (hasRethrowError)\n throw ((event = rethrowError),\n (hasRethrowError = !1),\n (rethrowError = null),\n event);\n }\n });\n}\nvar scheduleCallback = Scheduler.unstable_scheduleCallback,\n cancelCallback = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority = Scheduler.unstable_NormalPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n rendererID = null,\n injectedHook = null;\nfunction onCommitRoot(root) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n root,\n void 0,\n 128 === (root.current.flags & 128)\n );\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionLane = 64,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 4194240;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n return lanes & 130023424;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 1073741824;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n nonIdlePendingLanes = pendingLanes & 268435455;\n if (0 !== nonIdlePendingLanes) {\n var nonIdleUnblockedLanes = nonIdlePendingLanes & ~suspendedLanes;\n 0 !== nonIdleUnblockedLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdleUnblockedLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes &&\n (nextLanes = getHighestPriorityLanes(pingedLanes)));\n } else\n (nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes &&\n (nextLanes = getHighestPriorityLanes(pingedLanes));\n if (0 === nextLanes) return 0;\n if (\n 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (pingedLanes = wipLanes & -wipLanes),\n suspendedLanes >= pingedLanes ||\n (16 === suspendedLanes && 0 !== (pingedLanes & 4194240)))\n )\n return wipLanes;\n 0 !== (nextLanes & 4) && (nextLanes |= pendingLanes & 16);\n wipLanes = root.entangledLanes;\n if (0 !== wipLanes)\n for (root = root.entanglements, wipLanes &= nextLanes; 0 < wipLanes; )\n (pendingLanes = 31 - clz32(wipLanes)),\n (suspendedLanes = 1 << pendingLanes),\n (nextLanes |= root[pendingLanes]),\n (wipLanes &= ~suspendedLanes);\n return nextLanes;\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n return currentTime + 250;\n case 8:\n case 16:\n case 32:\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n return -1;\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction getLanesToRetrySynchronouslyOnError(root) {\n root = root.pendingLanes & -1073741825;\n return 0 !== root ? root : root & 1073741824 ? 1073741824 : 0;\n}\nfunction claimNextTransitionLane() {\n var lane = nextTransitionLane;\n nextTransitionLane <<= 1;\n 0 === (nextTransitionLane & 4194240) && (nextTransitionLane = 64);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated(root, updateLane, eventTime) {\n root.pendingLanes |= updateLane;\n 536870912 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0));\n root = root.eventTimes;\n updateLane = 31 - clz32(updateLane);\n root[updateLane] = eventTime;\n}\nfunction markRootFinished(root, remainingLanes) {\n var noLongerPendingLanes = root.pendingLanes & ~remainingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.mutableReadLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n remainingLanes = root.entanglements;\n var eventTimes = root.eventTimes;\n for (root = root.expirationTimes; 0 < noLongerPendingLanes; ) {\n var index$7 = 31 - clz32(noLongerPendingLanes),\n lane = 1 << index$7;\n remainingLanes[index$7] = 0;\n eventTimes[index$7] = -1;\n root[index$7] = -1;\n noLongerPendingLanes &= ~lane;\n }\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$8 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$8;\n (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n (root[index$8] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nvar currentUpdatePriority = 0;\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 1 < lanes\n ? 4 < lanes\n ? 0 !== (lanes & 268435455)\n ? 16\n : 536870912\n : 4\n : 1;\n}\nfunction shim$1() {\n throw Error(\n \"The current renderer does not support hydration. This error is likely caused by a bug in React. Please file an issue.\"\n );\n}\nvar _nativeFabricUIManage = nativeFabricUIManager,\n createNode = _nativeFabricUIManage.createNode,\n cloneNode = _nativeFabricUIManage.cloneNode,\n cloneNodeWithNewChildren = _nativeFabricUIManage.cloneNodeWithNewChildren,\n cloneNodeWithNewChildrenAndProps =\n _nativeFabricUIManage.cloneNodeWithNewChildrenAndProps,\n cloneNodeWithNewProps = _nativeFabricUIManage.cloneNodeWithNewProps,\n createChildNodeSet = _nativeFabricUIManage.createChildSet,\n appendChildNode = _nativeFabricUIManage.appendChild,\n appendChildNodeToSet = _nativeFabricUIManage.appendChildToSet,\n completeRoot = _nativeFabricUIManage.completeRoot,\n registerEventHandler = _nativeFabricUIManage.registerEventHandler,\n fabricMeasure = _nativeFabricUIManage.measure,\n fabricMeasureInWindow = _nativeFabricUIManage.measureInWindow,\n fabricMeasureLayout = _nativeFabricUIManage.measureLayout,\n FabricDiscretePriority = _nativeFabricUIManage.unstable_DiscreteEventPriority,\n fabricGetCurrentEventPriority =\n _nativeFabricUIManage.unstable_getCurrentEventPriority,\n _setNativeProps = _nativeFabricUIManage.setNativeProps,\n getViewConfigForType =\n ReactNativePrivateInterface.ReactNativeViewConfigRegistry.get,\n nextReactTag = 2;\nregisterEventHandler && registerEventHandler(dispatchEvent);\nvar ReactFabricHostComponent = (function() {\n function ReactFabricHostComponent(\n tag,\n viewConfig,\n props,\n internalInstanceHandle\n ) {\n this._nativeTag = tag;\n this.viewConfig = viewConfig;\n this.currentProps = props;\n this._internalInstanceHandle = internalInstanceHandle;\n }\n var _proto = ReactFabricHostComponent.prototype;\n _proto.blur = function() {\n ReactNativePrivateInterface.TextInputState.blurTextInput(this);\n };\n _proto.focus = function() {\n ReactNativePrivateInterface.TextInputState.focusTextInput(this);\n };\n _proto.measure = function(callback) {\n var stateNode = this._internalInstanceHandle.stateNode;\n null != stateNode &&\n fabricMeasure(\n stateNode.node,\n mountSafeCallback_NOT_REALLY_SAFE(this, callback)\n );\n };\n _proto.measureInWindow = function(callback) {\n var stateNode = this._internalInstanceHandle.stateNode;\n null != stateNode &&\n fabricMeasureInWindow(\n stateNode.node,\n mountSafeCallback_NOT_REALLY_SAFE(this, callback)\n );\n };\n _proto.measureLayout = function(relativeToNativeNode, onSuccess, onFail) {\n if (\n \"number\" !== typeof relativeToNativeNode &&\n relativeToNativeNode instanceof ReactFabricHostComponent\n ) {\n var toStateNode = this._internalInstanceHandle.stateNode;\n relativeToNativeNode =\n relativeToNativeNode._internalInstanceHandle.stateNode;\n null != toStateNode &&\n null != relativeToNativeNode &&\n fabricMeasureLayout(\n toStateNode.node,\n relativeToNativeNode.node,\n mountSafeCallback_NOT_REALLY_SAFE(this, onFail),\n mountSafeCallback_NOT_REALLY_SAFE(this, onSuccess)\n );\n }\n };\n _proto.setNativeProps = function(nativeProps) {\n nativeProps = diffProperties(\n null,\n emptyObject,\n nativeProps,\n this.viewConfig.validAttributes\n );\n var stateNode = this._internalInstanceHandle.stateNode;\n null != stateNode &&\n null != nativeProps &&\n _setNativeProps(stateNode.node, nativeProps);\n };\n _proto.addEventListener_unstable = function(eventType, listener, options) {\n if (\"string\" !== typeof eventType)\n throw Error(\"addEventListener_unstable eventType must be a string\");\n if (\"function\" !== typeof listener)\n throw Error(\"addEventListener_unstable listener must be a function\");\n var optionsObj =\n \"object\" === typeof options && null !== options ? options : {};\n options =\n (\"boolean\" === typeof options ? options : optionsObj.capture) || !1;\n var once = optionsObj.once || !1;\n optionsObj = optionsObj.passive || !1;\n var eventListeners = this._eventListeners || {};\n null == this._eventListeners && (this._eventListeners = eventListeners);\n var namedEventListeners = eventListeners[eventType] || [];\n null == eventListeners[eventType] &&\n (eventListeners[eventType] = namedEventListeners);\n namedEventListeners.push({\n listener: listener,\n invalidated: !1,\n options: {\n capture: options,\n once: once,\n passive: optionsObj,\n signal: null\n }\n });\n };\n _proto.removeEventListener_unstable = function(eventType, listener, options) {\n var optionsObj =\n \"object\" === typeof options && null !== options ? options : {},\n capture =\n (\"boolean\" === typeof options ? options : optionsObj.capture) || !1;\n (options = this._eventListeners) &&\n (optionsObj = options[eventType]) &&\n (options[eventType] = optionsObj.filter(function(listenerObj) {\n return !(\n listenerObj.listener === listener &&\n listenerObj.options.capture === capture\n );\n }));\n };\n return ReactFabricHostComponent;\n})();\nfunction createTextInstance(\n text,\n rootContainerInstance,\n hostContext,\n internalInstanceHandle\n) {\n hostContext = nextReactTag;\n nextReactTag += 2;\n return {\n node: createNode(\n hostContext,\n \"RCTRawText\",\n rootContainerInstance,\n { text: text },\n internalInstanceHandle\n )\n };\n}\nvar scheduleTimeout = setTimeout,\n cancelTimeout = clearTimeout;\nfunction cloneHiddenInstance(instance) {\n var node = instance.node;\n var JSCompiler_inline_result = diffProperties(\n null,\n emptyObject,\n { style: { display: \"none\" } },\n instance.canonical.viewConfig.validAttributes\n );\n return {\n node: cloneNodeWithNewProps(node, JSCompiler_inline_result),\n canonical: instance.canonical\n };\n}\nfunction describeComponentFrame(name, source, ownerName) {\n source = \"\";\n ownerName && (source = \" (created by \" + ownerName + \")\");\n return \"\\n in \" + (name || \"Unknown\") + source;\n}\nfunction describeFunctionComponentFrame(fn, source) {\n return fn\n ? describeComponentFrame(fn.displayName || fn.name || null, source, null)\n : \"\";\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar emptyContextObject = {},\n contextStackCursor = createCursor(emptyContextObject),\n didPerformWorkStackCursor = createCursor(!1),\n previousContext = emptyContextObject;\nfunction getMaskedContext(workInProgress, unmaskedContext) {\n var contextTypes = workInProgress.type.contextTypes;\n if (!contextTypes) return emptyContextObject;\n var instance = workInProgress.stateNode;\n if (\n instance &&\n instance.__reactInternalMemoizedUnmaskedChildContext === unmaskedContext\n )\n return instance.__reactInternalMemoizedMaskedChildContext;\n var context = {},\n key;\n for (key in contextTypes) context[key] = unmaskedContext[key];\n instance &&\n ((workInProgress = workInProgress.stateNode),\n (workInProgress.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext),\n (workInProgress.__reactInternalMemoizedMaskedChildContext = context));\n return context;\n}\nfunction isContextProvider(type) {\n type = type.childContextTypes;\n return null !== type && void 0 !== type;\n}\nfunction popContext() {\n pop(didPerformWorkStackCursor);\n pop(contextStackCursor);\n}\nfunction pushTopLevelContextObject(fiber, context, didChange) {\n if (contextStackCursor.current !== emptyContextObject)\n throw Error(\n \"Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.\"\n );\n push(contextStackCursor, context);\n push(didPerformWorkStackCursor, didChange);\n}\nfunction processChildContext(fiber, type, parentContext) {\n var instance = fiber.stateNode;\n type = type.childContextTypes;\n if (\"function\" !== typeof instance.getChildContext) return parentContext;\n instance = instance.getChildContext();\n for (var contextKey in instance)\n if (!(contextKey in type))\n throw Error(\n (getComponentNameFromFiber(fiber) || \"Unknown\") +\n '.getChildContext(): key \"' +\n contextKey +\n '\" is not defined in childContextTypes.'\n );\n return assign({}, parentContext, instance);\n}\nfunction pushContextProvider(workInProgress) {\n workInProgress =\n ((workInProgress = workInProgress.stateNode) &&\n workInProgress.__reactInternalMemoizedMergedChildContext) ||\n emptyContextObject;\n previousContext = contextStackCursor.current;\n push(contextStackCursor, workInProgress);\n push(didPerformWorkStackCursor, didPerformWorkStackCursor.current);\n return !0;\n}\nfunction invalidateContextProvider(workInProgress, type, didChange) {\n var instance = workInProgress.stateNode;\n if (!instance)\n throw Error(\n \"Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.\"\n );\n didChange\n ? ((workInProgress = processChildContext(\n workInProgress,\n type,\n previousContext\n )),\n (instance.__reactInternalMemoizedMergedChildContext = workInProgress),\n pop(didPerformWorkStackCursor),\n pop(contextStackCursor),\n push(contextStackCursor, workInProgress))\n : pop(didPerformWorkStackCursor);\n push(didPerformWorkStackCursor, didChange);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n syncQueue = null,\n includesLegacySyncCallbacks = !1,\n isFlushingSyncQueue = !1;\nfunction flushSyncCallbacks() {\n if (!isFlushingSyncQueue && null !== syncQueue) {\n isFlushingSyncQueue = !0;\n var i = 0,\n previousUpdatePriority = currentUpdatePriority;\n try {\n var queue = syncQueue;\n for (currentUpdatePriority = 1; i < queue.length; i++) {\n var callback = queue[i];\n do callback = callback(!0);\n while (null !== callback);\n }\n syncQueue = null;\n includesLegacySyncCallbacks = !1;\n } catch (error) {\n throw (null !== syncQueue && (syncQueue = syncQueue.slice(i + 1)),\n scheduleCallback(ImmediatePriority, flushSyncCallbacks),\n error);\n } finally {\n (currentUpdatePriority = previousUpdatePriority),\n (isFlushingSyncQueue = !1);\n }\n }\n return null;\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null;\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n --forkStackIndex,\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n --idStackIndex,\n (idStack[idStackIndex] = null),\n --idStackIndex,\n (idStack[idStackIndex] = null);\n}\nvar hydrationErrors = null,\n ReactCurrentBatchConfig = ReactSharedInternals.ReactCurrentBatchConfig;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction describeFiber(fiber) {\n switch (fiber.tag) {\n case 5:\n return describeComponentFrame(fiber.type, null, null);\n case 16:\n return describeComponentFrame(\"Lazy\", null, null);\n case 13:\n return describeComponentFrame(\"Suspense\", null, null);\n case 19:\n return describeComponentFrame(\"SuspenseList\", null, null);\n case 0:\n case 2:\n case 15:\n return describeFunctionComponentFrame(fiber.type, null);\n case 11:\n return describeFunctionComponentFrame(fiber.type.render, null);\n case 1:\n return (fiber = describeFunctionComponentFrame(fiber.type, null)), fiber;\n default:\n return \"\";\n }\n}\nfunction resolveDefaultProps(Component, baseProps) {\n if (Component && Component.defaultProps) {\n baseProps = assign({}, baseProps);\n Component = Component.defaultProps;\n for (var propName in Component)\n void 0 === baseProps[propName] &&\n (baseProps[propName] = Component[propName]);\n return baseProps;\n }\n return baseProps;\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber = null,\n lastContextDependency = null,\n lastFullyObservedContext = null;\nfunction resetContextDependencies() {\n lastFullyObservedContext = lastContextDependency = currentlyRenderingFiber = null;\n}\nfunction popProvider(context) {\n var currentValue = valueCursor.current;\n pop(valueCursor);\n context._currentValue2 = currentValue;\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction prepareToReadContext(workInProgress, renderLanes) {\n currentlyRenderingFiber = workInProgress;\n lastFullyObservedContext = lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress &&\n null !== workInProgress.firstContext &&\n (0 !== (workInProgress.lanes & renderLanes) && (didReceiveUpdate = !0),\n (workInProgress.firstContext = null));\n}\nfunction readContext(context) {\n var value = context._currentValue2;\n if (lastFullyObservedContext !== context)\n if (\n ((context = { context: context, memoizedValue: value, next: null }),\n null === lastContextDependency)\n ) {\n if (null === currentlyRenderingFiber)\n throw Error(\n \"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\"\n );\n lastContextDependency = context;\n currentlyRenderingFiber.dependencies = {\n lanes: 0,\n firstContext: context\n };\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar concurrentQueues = null;\nfunction pushConcurrentUpdateQueue(queue) {\n null === concurrentQueues\n ? (concurrentQueues = [queue])\n : concurrentQueues.push(queue);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n var interleaved = queue.interleaved;\n null === interleaved\n ? ((update.next = update), pushConcurrentUpdateQueue(queue))\n : ((update.next = interleaved.next), (interleaved.next = update));\n queue.interleaved = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n alternate = sourceFiber;\n for (sourceFiber = sourceFiber.return; null !== sourceFiber; )\n (sourceFiber.childLanes |= lane),\n (alternate = sourceFiber.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n (alternate = sourceFiber),\n (sourceFiber = sourceFiber.return);\n return 3 === alternate.tag ? alternate.stateNode : null;\n}\nvar hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, interleaved: null, lanes: 0 },\n effects: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n effects: current.effects\n });\n}\nfunction createUpdate(eventTime, lane) {\n return {\n eventTime: eventTime,\n lane: lane,\n tag: 0,\n payload: null,\n callback: null,\n next: null\n };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n }\n pending = updateQueue.interleaved;\n null === pending\n ? ((update.next = update), pushConcurrentUpdateQueue(updateQueue))\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.interleaved = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194240))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n eventTime: queue.eventTime,\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: queue.callback,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n effects: current.effects\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance,\n renderLanes\n) {\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane,\n updateEventTime = pendingQueue.eventTime;\n if ((renderLanes & updateLane) === updateLane) {\n null !== current &&\n (current = current.next = {\n eventTime: updateEventTime,\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n updateEventTime = instance;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(\n updateEventTime,\n newState,\n updateLane\n );\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(updateEventTime, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n null !== pendingQueue.callback &&\n 0 !== pendingQueue.lane &&\n ((workInProgress$jscomp$0.flags |= 64),\n (updateLane = queue.effects),\n null === updateLane\n ? (queue.effects = [pendingQueue])\n : updateLane.push(pendingQueue));\n } else\n (updateEventTime = {\n eventTime: updateEventTime,\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = updateEventTime),\n (lastPendingUpdate = newState))\n : (current = current.next = updateEventTime),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (updateLane = pendingQueue),\n (pendingQueue = updateLane.next),\n (updateLane.next = null),\n (queue.lastBaseUpdate = updateLane),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n props = queue.shared.interleaved;\n if (null !== props) {\n queue = props;\n do (lastBaseUpdate |= queue.lane), (queue = queue.next);\n while (queue !== props);\n } else null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction commitUpdateQueue(finishedWork, finishedQueue, instance) {\n finishedWork = finishedQueue.effects;\n finishedQueue.effects = null;\n if (null !== finishedWork)\n for (\n finishedQueue = 0;\n finishedQueue < finishedWork.length;\n finishedQueue++\n ) {\n var effect = finishedWork[finishedQueue],\n callback = effect.callback;\n if (null !== callback) {\n effect.callback = null;\n if (\"function\" !== typeof callback)\n throw Error(\n \"Invalid argument passed as callback. Expected a function. Instead received: \" +\n callback\n );\n callback.call(instance);\n }\n }\n}\nvar emptyRefsObject = new React.Component().refs;\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n isMounted: function(component) {\n return (component = component._reactInternals)\n ? getNearestMountedFiber(component) === component\n : !1;\n },\n enqueueSetState: function(inst, payload, callback) {\n inst = inst._reactInternals;\n var eventTime = requestEventTime(),\n lane = requestUpdateLane(inst),\n update = createUpdate(eventTime, lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane, eventTime),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function(inst, payload, callback) {\n inst = inst._reactInternals;\n var eventTime = requestEventTime(),\n lane = requestUpdateLane(inst),\n update = createUpdate(eventTime, lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane, eventTime),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function(inst, callback) {\n inst = inst._reactInternals;\n var eventTime = requestEventTime(),\n lane = requestUpdateLane(inst),\n update = createUpdate(eventTime, lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane, eventTime),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction constructClassInstance(workInProgress, ctor, props) {\n var isLegacyContextConsumer = !1,\n unmaskedContext = emptyContextObject;\n var context = ctor.contextType;\n \"object\" === typeof context && null !== context\n ? (context = readContext(context))\n : ((unmaskedContext = isContextProvider(ctor)\n ? previousContext\n : contextStackCursor.current),\n (isLegacyContextConsumer = ctor.contextTypes),\n (context = (isLegacyContextConsumer =\n null !== isLegacyContextConsumer && void 0 !== isLegacyContextConsumer)\n ? getMaskedContext(workInProgress, unmaskedContext)\n : emptyContextObject));\n ctor = new ctor(props, context);\n workInProgress.memoizedState =\n null !== ctor.state && void 0 !== ctor.state ? ctor.state : null;\n ctor.updater = classComponentUpdater;\n workInProgress.stateNode = ctor;\n ctor._reactInternals = workInProgress;\n isLegacyContextConsumer &&\n ((workInProgress = workInProgress.stateNode),\n (workInProgress.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext),\n (workInProgress.__reactInternalMemoizedMaskedChildContext = context));\n return ctor;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction mountClassInstance(workInProgress, ctor, newProps, renderLanes) {\n var instance = workInProgress.stateNode;\n instance.props = newProps;\n instance.state = workInProgress.memoizedState;\n instance.refs = emptyRefsObject;\n initializeUpdateQueue(workInProgress);\n var contextType = ctor.contextType;\n \"object\" === typeof contextType && null !== contextType\n ? (instance.context = readContext(contextType))\n : ((contextType = isContextProvider(ctor)\n ? previousContext\n : contextStackCursor.current),\n (instance.context = getMaskedContext(workInProgress, contextType)));\n instance.state = workInProgress.memoizedState;\n contextType = ctor.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(workInProgress, ctor, contextType, newProps),\n (instance.state = workInProgress.memoizedState));\n \"function\" === typeof ctor.getDerivedStateFromProps ||\n \"function\" === typeof instance.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof instance.UNSAFE_componentWillMount &&\n \"function\" !== typeof instance.componentWillMount) ||\n ((ctor = instance.state),\n \"function\" === typeof instance.componentWillMount &&\n instance.componentWillMount(),\n \"function\" === typeof instance.UNSAFE_componentWillMount &&\n instance.UNSAFE_componentWillMount(),\n ctor !== instance.state &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null),\n processUpdateQueue(workInProgress, newProps, instance, renderLanes),\n (instance.state = workInProgress.memoizedState));\n \"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4);\n}\nfunction coerceRef(returnFiber, current, element) {\n returnFiber = element.ref;\n if (\n null !== returnFiber &&\n \"function\" !== typeof returnFiber &&\n \"object\" !== typeof returnFiber\n ) {\n if (element._owner) {\n element = element._owner;\n if (element) {\n if (1 !== element.tag)\n throw Error(\n \"Function components cannot have string refs. We recommend using useRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref\"\n );\n var inst = element.stateNode;\n }\n if (!inst)\n throw Error(\n \"Missing owner for string ref \" +\n returnFiber +\n \". This error is likely caused by a bug in React. Please file an issue.\"\n );\n var resolvedInst = inst,\n stringRef = \"\" + returnFiber;\n if (\n null !== current &&\n null !== current.ref &&\n \"function\" === typeof current.ref &&\n current.ref._stringRef === stringRef\n )\n return current.ref;\n current = function(value) {\n var refs = resolvedInst.refs;\n refs === emptyRefsObject && (refs = resolvedInst.refs = {});\n null === value ? delete refs[stringRef] : (refs[stringRef] = value);\n };\n current._stringRef = stringRef;\n return current;\n }\n if (\"string\" !== typeof returnFiber)\n throw Error(\n \"Expected ref to be a function, a string, an object returned by React.createRef(), or null.\"\n );\n if (!element._owner)\n throw Error(\n \"Element ref was specified as a string (\" +\n returnFiber +\n \") but no owner was set. This could happen for one of the following reasons:\\n1. You may be adding a ref to a function component\\n2. You may be adding a ref to a component that was not created inside a component's render method\\n3. You have multiple copies of React loaded\\nSee https://reactjs.org/link/refs-must-have-owner for more information.\"\n );\n }\n return returnFiber;\n}\nfunction throwOnInvalidObjectType(returnFiber, newChild) {\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n}\nfunction resolveLazy(lazyType) {\n var init = lazyType._init;\n return init(lazyType._payload);\n}\nfunction ChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(returnFiber, currentFirstChild) {\n for (returnFiber = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? returnFiber.set(currentFirstChild.key, currentFirstChild)\n : returnFiber.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return returnFiber;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 2), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 2;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 2);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (lanes = useFiber(current, element.props)),\n (lanes.ref = coerceRef(returnFiber, current, element)),\n (lanes.return = returnFiber),\n lanes\n );\n lanes = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n lanes.ref = coerceRef(returnFiber, current, element);\n lanes.return = returnFiber;\n return lanes;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n (lanes.ref = coerceRef(returnFiber, null, newChild)),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n return createChild(returnFiber, init(newChild._payload), lanes);\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (key = newChild._init),\n updateSlot(returnFiber, oldFiber, key(newChild._payload), lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n init(newChild._payload),\n lanes\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber), resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(returnFiber, oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function(child) {\n return deleteChild(returnFiber, child);\n });\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildrenIterable,\n lanes\n ) {\n var iteratorFn = getIteratorFn(newChildrenIterable);\n if (\"function\" !== typeof iteratorFn)\n throw Error(\n \"An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.\"\n );\n newChildrenIterable = iteratorFn.call(newChildrenIterable);\n if (null == newChildrenIterable)\n throw Error(\"An iterable object provided no iterator.\");\n for (\n var previousNewFiber = (iteratorFn = null),\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildrenIterable.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildrenIterable.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (iteratorFn = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return deleteRemainingChildren(returnFiber, oldFiber), iteratorFn;\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildrenIterable.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (iteratorFn = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n return iteratorFn;\n }\n for (\n oldFiber = mapRemainingChildren(returnFiber, oldFiber);\n !step.done;\n newIdx++, step = newChildrenIterable.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (iteratorFn = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function(child) {\n return deleteChild(returnFiber, child);\n });\n return iteratorFn;\n }\n function reconcileChildFibers(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (\n var key = newChild.key, child = currentFirstChild;\n null !== child;\n\n ) {\n if (child.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === child.tag) {\n deleteRemainingChildren(returnFiber, child.sibling);\n currentFirstChild = useFiber(\n child,\n newChild.props.children\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n break a;\n }\n } else if (\n child.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === child.type)\n ) {\n deleteRemainingChildren(returnFiber, child.sibling);\n currentFirstChild = useFiber(child, newChild.props);\n currentFirstChild.ref = coerceRef(\n returnFiber,\n child,\n newChild\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n break a;\n }\n deleteRemainingChildren(returnFiber, child);\n break;\n } else deleteChild(returnFiber, child);\n child = child.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((currentFirstChild = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (currentFirstChild.return = returnFiber),\n (returnFiber = currentFirstChild))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n (lanes.ref = coerceRef(\n returnFiber,\n currentFirstChild,\n newChild\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (child = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === child)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n currentFirstChild = useFiber(\n currentFirstChild,\n newChild.children || []\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n currentFirstChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (child = newChild._init),\n reconcileChildFibers(\n returnFiber,\n currentFirstChild,\n child(newChild._payload),\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild))\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (currentFirstChild = useFiber(currentFirstChild, newChild)),\n (currentFirstChild.return = returnFiber),\n (returnFiber = currentFirstChild))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (currentFirstChild = createFiberFromText(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (currentFirstChild.return = returnFiber),\n (returnFiber = currentFirstChild)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return reconcileChildFibers;\n}\nvar reconcileChildFibers = ChildReconciler(!0),\n mountChildFibers = ChildReconciler(!1),\n NO_CONTEXT = {},\n contextStackCursor$1 = createCursor(NO_CONTEXT),\n contextFiberStackCursor = createCursor(NO_CONTEXT),\n rootInstanceStackCursor = createCursor(NO_CONTEXT);\nfunction requiredContext(c) {\n if (c === NO_CONTEXT)\n throw Error(\n \"Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.\"\n );\n return c;\n}\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor$1, NO_CONTEXT);\n pop(contextStackCursor$1);\n push(contextStackCursor$1, { isInAParentText: !1 });\n}\nfunction popHostContainer() {\n pop(contextStackCursor$1);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n requiredContext(rootInstanceStackCursor.current);\n var context = requiredContext(contextStackCursor$1.current);\n var JSCompiler_inline_result = fiber.type;\n JSCompiler_inline_result =\n \"AndroidTextInput\" === JSCompiler_inline_result ||\n \"RCTMultilineTextInputView\" === JSCompiler_inline_result ||\n \"RCTSinglelineTextInputView\" === JSCompiler_inline_result ||\n \"RCTText\" === JSCompiler_inline_result ||\n \"RCTVirtualText\" === JSCompiler_inline_result;\n JSCompiler_inline_result =\n context.isInAParentText !== JSCompiler_inline_result\n ? { isInAParentText: JSCompiler_inline_result }\n : context;\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor$1, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor$1), pop(contextFiberStackCursor));\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (null !== state && (null === state.dehydrated || shim$1() || shim$1()))\n return node;\n } else if (19 === node.tag && void 0 !== node.memoizedProps.revealOrder) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar workInProgressSources = [];\nfunction resetWorkInProgressVersions() {\n for (var i = 0; i < workInProgressSources.length; i++)\n workInProgressSources[i]._workInProgressVersionSecondary = null;\n workInProgressSources.length = 0;\n}\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher,\n ReactCurrentBatchConfig$1 = ReactSharedInternals.ReactCurrentBatchConfig,\n renderLanes = 0,\n currentlyRenderingFiber$1 = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber$1 = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactCurrentDispatcher$1.current =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n current = Component(props, secondArg);\n if (didScheduleRenderPhaseUpdateDuringThisPass) {\n nextRenderLanes = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= nextRenderLanes)\n throw Error(\n \"Too many re-renders. React limits the number of renders to prevent an infinite loop.\"\n );\n nextRenderLanes += 1;\n workInProgressHook = currentHook = null;\n workInProgress.updateQueue = null;\n ReactCurrentDispatcher$1.current = HooksDispatcherOnRerender;\n current = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n }\n ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n workInProgress = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber$1 = null;\n didScheduleRenderPhaseUpdate = !1;\n if (workInProgress)\n throw Error(\n \"Rendered fewer hooks than expected. This may be caused by an accidental early return statement.\"\n );\n return current;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber$1.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber$1.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber$1.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook)\n throw Error(\"Rendered more hooks than during the previous render.\");\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber$1.memoizedState = workInProgressHook = nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue)\n throw Error(\n \"Should have a queue. This is likely a bug in React. Please file an issue.\"\n );\n queue.lastRenderedReducer = reducer;\n var current = currentHook,\n baseQueue = current.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n if (null !== baseQueue) {\n pendingQueue = baseQueue.next;\n current = current.baseState;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = pendingQueue;\n do {\n var updateLane = update.lane;\n if ((renderLanes & updateLane) === updateLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next = {\n lane: 0,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n (current = update.hasEagerState\n ? update.eagerState\n : reducer(current, update.action));\n else {\n var clone = {\n lane: updateLane,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n };\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = clone),\n (baseFirst = current))\n : (newBaseQueueLast = newBaseQueueLast.next = clone);\n currentlyRenderingFiber$1.lanes |= updateLane;\n workInProgressRootSkippedLanes |= updateLane;\n }\n update = update.next;\n } while (null !== update && update !== pendingQueue);\n null === newBaseQueueLast\n ? (baseFirst = current)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n objectIs(current, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = current;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = current;\n }\n reducer = queue.interleaved;\n if (null !== reducer) {\n baseQueue = reducer;\n do\n (pendingQueue = baseQueue.lane),\n (currentlyRenderingFiber$1.lanes |= pendingQueue),\n (workInProgressRootSkippedLanes |= pendingQueue),\n (baseQueue = baseQueue.next);\n while (baseQueue !== reducer);\n } else null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue)\n throw Error(\n \"Should have a queue. This is likely a bug in React. Please file an issue.\"\n );\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateMutableSource() {}\nfunction updateSyncExternalStore(subscribe, getSnapshot) {\n var fiber = currentlyRenderingFiber$1,\n hook = updateWorkInProgressHook(),\n nextSnapshot = getSnapshot(),\n snapshotChanged = !objectIs(hook.memoizedState, nextSnapshot);\n snapshotChanged &&\n ((hook.memoizedState = nextSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushEffect(\n 9,\n updateStoreInstance.bind(null, fiber, hook, nextSnapshot, getSnapshot),\n void 0,\n null\n );\n if (null === workInProgressRoot)\n throw Error(\n \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\"\n );\n 0 !== (renderLanes & 30) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot);\n }\n return nextSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber$1.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = { lastEffect: null, stores: null }),\n (currentlyRenderingFiber$1.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function() {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = markUpdateLaneFromFiberToRoot(fiber, 1);\n null !== root && scheduleUpdateOnFiber(root, fiber, 1, -1);\n}\nfunction mountState(initialState) {\n var hook = mountWorkInProgressHook();\n \"function\" === typeof initialState && (initialState = initialState());\n hook.memoizedState = hook.baseState = initialState;\n initialState = {\n pending: null,\n interleaved: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n hook.queue = initialState;\n initialState = initialState.dispatch = dispatchSetState.bind(\n null,\n currentlyRenderingFiber$1,\n initialState\n );\n return [hook.memoizedState, initialState];\n}\nfunction pushEffect(tag, create, destroy, deps) {\n tag = { tag: tag, create: create, destroy: destroy, deps: deps, next: null };\n create = currentlyRenderingFiber$1.updateQueue;\n null === create\n ? ((create = { lastEffect: null, stores: null }),\n (currentlyRenderingFiber$1.updateQueue = create),\n (create.lastEffect = tag.next = tag))\n : ((destroy = create.lastEffect),\n null === destroy\n ? (create.lastEffect = tag.next = tag)\n : ((deps = destroy.next),\n (destroy.next = tag),\n (tag.next = deps),\n (create.lastEffect = tag)));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(\n 1 | hookFlags,\n create,\n void 0,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var destroy = void 0;\n if (null !== currentHook) {\n var prevEffect = currentHook.memoizedState;\n destroy = prevEffect.destroy;\n if (null !== deps && areHookInputsEqual(deps, prevEffect.deps)) {\n hook.memoizedState = pushEffect(hookFlags, create, destroy, deps);\n return;\n }\n }\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(1 | hookFlags, create, destroy, deps);\n}\nfunction mountEffect(create, deps) {\n return mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n return updateEffectImpl(2048, 8, create, deps);\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref)\n return (\n (create = create()),\n ref(create),\n function() {\n ref(null);\n }\n );\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function() {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n return updateEffectImpl(\n 4,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (\n null !== prevState &&\n null !== deps &&\n areHookInputsEqual(deps, prevState[1])\n )\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (\n null !== prevState &&\n null !== deps &&\n areHookInputsEqual(deps, prevState[1])\n )\n return prevState[0];\n nextCreate = nextCreate();\n hook.memoizedState = [nextCreate, deps];\n return nextCreate;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value) {\n if (0 === (renderLanes & 21))\n return (\n hook.baseState && ((hook.baseState = !1), (didReceiveUpdate = !0)),\n (hook.memoizedState = value)\n );\n objectIs(value, prevValue) ||\n ((value = claimNextTransitionLane()),\n (currentlyRenderingFiber$1.lanes |= value),\n (workInProgressRootSkippedLanes |= value),\n (hook.baseState = !0));\n return prevValue;\n}\nfunction startTransition(setPending, callback) {\n var previousPriority = currentUpdatePriority;\n currentUpdatePriority =\n 0 !== previousPriority && 4 > previousPriority ? previousPriority : 4;\n setPending(!0);\n var prevTransition = ReactCurrentBatchConfig$1.transition;\n ReactCurrentBatchConfig$1.transition = {};\n try {\n setPending(!1), callback();\n } finally {\n (currentUpdatePriority = previousPriority),\n (ReactCurrentBatchConfig$1.transition = prevTransition);\n }\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane(fiber);\n action = {\n lane: lane,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, action);\n else if (\n ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action)\n ) {\n var eventTime = requestEventTime();\n scheduleUpdateOnFiber(action, fiber, lane, eventTime);\n entangleTransitionUpdate(action, queue, lane);\n }\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane(fiber),\n update = {\n lane: lane,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState)) {\n var interleaved = queue.interleaved;\n null === interleaved\n ? ((update.next = update), pushConcurrentUpdateQueue(queue))\n : ((update.next = interleaved.next), (interleaved.next = update));\n queue.interleaved = update;\n return;\n }\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n null !== action &&\n ((update = requestEventTime()),\n scheduleUpdateOnFiber(action, fiber, lane, update),\n entangleTransitionUpdate(action, queue, lane));\n }\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber$1 ||\n (null !== alternate && alternate === currentlyRenderingFiber$1)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate = !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194240)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useMutableSource: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n unstable_isNewReconciler: !1\n },\n HooksDispatcherOnMount = {\n readContext: readContext,\n useCallback: function(callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n return mountEffectImpl(\n 4,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function(create, deps) {\n return mountEffectImpl(4, 4, create, deps);\n },\n useInsertionEffect: function(create, deps) {\n return mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function(nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n nextCreate = nextCreate();\n hook.memoizedState = [nextCreate, deps];\n return nextCreate;\n },\n useReducer: function(reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n initialArg = void 0 !== init ? init(initialArg) : initialArg;\n hook.memoizedState = hook.baseState = initialArg;\n reducer = {\n pending: null,\n interleaved: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialArg\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber$1,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function(initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: mountState,\n useDebugValue: mountDebugValue,\n useDeferredValue: function(value) {\n return (mountWorkInProgressHook().memoizedState = value);\n },\n useTransition: function() {\n var _mountState = mountState(!1),\n isPending = _mountState[0];\n _mountState = startTransition.bind(null, _mountState[1]);\n mountWorkInProgressHook().memoizedState = _mountState;\n return [isPending, _mountState];\n },\n useMutableSource: function() {},\n useSyncExternalStore: function(subscribe, getSnapshot) {\n var fiber = currentlyRenderingFiber$1,\n hook = mountWorkInProgressHook();\n var nextSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(\n \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\"\n );\n 0 !== (renderLanes & 30) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot);\n hook.memoizedState = nextSnapshot;\n var inst = { value: nextSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushEffect(\n 9,\n updateStoreInstance.bind(null, fiber, inst, nextSnapshot, getSnapshot),\n void 0,\n null\n );\n return nextSnapshot;\n },\n useId: function() {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix,\n globalClientId = globalClientIdCounter++;\n identifierPrefix =\n \":\" + identifierPrefix + \"r\" + globalClientId.toString(32) + \":\";\n return (hook.memoizedState = identifierPrefix);\n },\n unstable_isNewReconciler: !1\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function() {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function(value) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(hook, currentHook.memoizedState, value);\n },\n useTransition: function() {\n var isPending = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [isPending, start];\n },\n useMutableSource: updateMutableSource,\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n unstable_isNewReconciler: !1\n },\n HooksDispatcherOnRerender = {\n readContext: readContext,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function() {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function(value) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? (hook.memoizedState = value)\n : updateDeferredValueImpl(hook, currentHook.memoizedState, value);\n },\n useTransition: function() {\n var isPending = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [isPending, start];\n },\n useMutableSource: updateMutableSource,\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n unstable_isNewReconciler: !1\n };\nfunction createCapturedValueAtFiber(value, source) {\n try {\n var info = \"\",\n node = source;\n do (info += describeFiber(node)), (node = node.return);\n while (node);\n var JSCompiler_inline_result = info;\n } catch (x) {\n JSCompiler_inline_result =\n \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n return {\n value: value,\n source: source,\n stack: JSCompiler_inline_result,\n digest: null\n };\n}\nfunction createCapturedValue(value, digest, stack) {\n return {\n value: value,\n source: null,\n stack: null != stack ? stack : null,\n digest: null != digest ? digest : null\n };\n}\nif (\n \"function\" !==\n typeof ReactNativePrivateInterface.ReactFiberErrorDialog.showErrorDialog\n)\n throw Error(\n \"Expected ReactFiberErrorDialog.showErrorDialog to be a function.\"\n );\nfunction logCapturedError(boundary, errorInfo) {\n try {\n !1 !==\n ReactNativePrivateInterface.ReactFiberErrorDialog.showErrorDialog({\n componentStack: null !== errorInfo.stack ? errorInfo.stack : \"\",\n error: errorInfo.value,\n errorBoundary:\n null !== boundary && 1 === boundary.tag ? boundary.stateNode : null\n }) && console.error(errorInfo.value);\n } catch (e) {\n setTimeout(function() {\n throw e;\n });\n }\n}\nvar PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map;\nfunction createRootErrorUpdate(fiber, errorInfo, lane) {\n lane = createUpdate(-1, lane);\n lane.tag = 3;\n lane.payload = { element: null };\n var error = errorInfo.value;\n lane.callback = function() {\n hasUncaughtError || ((hasUncaughtError = !0), (firstUncaughtError = error));\n logCapturedError(fiber, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(fiber, errorInfo, lane) {\n lane = createUpdate(-1, lane);\n lane.tag = 3;\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n lane.payload = function() {\n return getDerivedStateFromError(error);\n };\n lane.callback = function() {\n logCapturedError(fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (lane.callback = function() {\n logCapturedError(fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n return lane;\n}\nfunction attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n if (null === pingCache) {\n pingCache = root.pingCache = new PossiblyWeakMap();\n var threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else\n (threadIDs = pingCache.get(wakeable)),\n void 0 === threadIDs &&\n ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n threadIDs.has(lanes) ||\n (threadIDs.add(lanes),\n (root = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n wakeable.then(root, root));\n}\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner,\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n prepareToReadContext(workInProgress, renderLanes);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n ref,\n renderLanes\n );\n if (null !== current && !didReceiveUpdate)\n return (\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.flags &= -2053),\n (current.lanes &= ~renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare &&\n void 0 === Component.defaultProps\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (0 === (current.lanes & renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n 0 !== (current.lanes & renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n if (\"hidden\" === nextProps.mode)\n if (0 === (workInProgress.mode & 1))\n (workInProgress.memoizedState = {\n baseLanes: 0,\n cachePool: null,\n transitions: null\n }),\n push(subtreeRenderLanesCursor, subtreeRenderLanes),\n (subtreeRenderLanes |= renderLanes);\n else {\n if (0 === (renderLanes & 1073741824))\n return (\n (current =\n null !== prevState\n ? prevState.baseLanes | renderLanes\n : renderLanes),\n (workInProgress.lanes = workInProgress.childLanes = 1073741824),\n (workInProgress.memoizedState = {\n baseLanes: current,\n cachePool: null,\n transitions: null\n }),\n (workInProgress.updateQueue = null),\n push(subtreeRenderLanesCursor, subtreeRenderLanes),\n (subtreeRenderLanes |= current),\n null\n );\n workInProgress.memoizedState = {\n baseLanes: 0,\n cachePool: null,\n transitions: null\n };\n nextProps = null !== prevState ? prevState.baseLanes : renderLanes;\n push(subtreeRenderLanesCursor, subtreeRenderLanes);\n subtreeRenderLanes |= nextProps;\n }\n else\n null !== prevState\n ? ((nextProps = prevState.baseLanes | renderLanes),\n (workInProgress.memoizedState = null))\n : (nextProps = renderLanes),\n push(subtreeRenderLanesCursor, subtreeRenderLanes),\n (subtreeRenderLanes |= nextProps);\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (\n (null === current && null !== ref) ||\n (null !== current && current.ref !== ref)\n )\n workInProgress.flags |= 512;\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n var context = isContextProvider(Component)\n ? previousContext\n : contextStackCursor.current;\n context = getMaskedContext(workInProgress, context);\n prepareToReadContext(workInProgress, renderLanes);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n context,\n renderLanes\n );\n if (null !== current && !didReceiveUpdate)\n return (\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.flags &= -2053),\n (current.lanes &= ~renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (isContextProvider(Component)) {\n var hasContext = !0;\n pushContextProvider(workInProgress);\n } else hasContext = !1;\n prepareToReadContext(workInProgress, renderLanes);\n if (null === workInProgress.stateNode)\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress),\n constructClassInstance(workInProgress, Component, nextProps),\n mountClassInstance(workInProgress, Component, nextProps, renderLanes),\n (nextProps = !0);\n else if (null === current) {\n var instance = workInProgress.stateNode,\n oldProps = workInProgress.memoizedProps;\n instance.props = oldProps;\n var oldContext = instance.context,\n contextType = Component.contextType;\n \"object\" === typeof contextType && null !== contextType\n ? (contextType = readContext(contextType))\n : ((contextType = isContextProvider(Component)\n ? previousContext\n : contextStackCursor.current),\n (contextType = getMaskedContext(workInProgress, contextType)));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps,\n hasNewLifecycles =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof instance.getSnapshotBeforeUpdate;\n hasNewLifecycles ||\n (\"function\" !== typeof instance.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof instance.componentWillReceiveProps) ||\n ((oldProps !== nextProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n instance,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n instance.state = oldState;\n processUpdateQueue(workInProgress, nextProps, instance, renderLanes);\n oldContext = workInProgress.memoizedState;\n oldProps !== nextProps ||\n oldState !== oldContext ||\n didPerformWorkStackCursor.current ||\n hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (hasNewLifecycles ||\n (\"function\" !== typeof instance.UNSAFE_componentWillMount &&\n \"function\" !== typeof instance.componentWillMount) ||\n (\"function\" === typeof instance.componentWillMount &&\n instance.componentWillMount(),\n \"function\" === typeof instance.UNSAFE_componentWillMount &&\n instance.UNSAFE_componentWillMount()),\n \"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4))\n : (\"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (instance.props = nextProps),\n (instance.state = oldContext),\n (instance.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4),\n (nextProps = !1));\n } else {\n instance = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n oldProps = workInProgress.memoizedProps;\n contextType =\n workInProgress.type === workInProgress.elementType\n ? oldProps\n : resolveDefaultProps(workInProgress.type, oldProps);\n instance.props = contextType;\n hasNewLifecycles = workInProgress.pendingProps;\n oldState = instance.context;\n oldContext = Component.contextType;\n \"object\" === typeof oldContext && null !== oldContext\n ? (oldContext = readContext(oldContext))\n : ((oldContext = isContextProvider(Component)\n ? previousContext\n : contextStackCursor.current),\n (oldContext = getMaskedContext(workInProgress, oldContext)));\n var getDerivedStateFromProps$jscomp$0 = Component.getDerivedStateFromProps;\n (getDerivedStateFromProps =\n \"function\" === typeof getDerivedStateFromProps$jscomp$0 ||\n \"function\" === typeof instance.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof instance.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof instance.componentWillReceiveProps) ||\n ((oldProps !== hasNewLifecycles || oldState !== oldContext) &&\n callComponentWillReceiveProps(\n workInProgress,\n instance,\n nextProps,\n oldContext\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n instance.state = oldState;\n processUpdateQueue(workInProgress, nextProps, instance, renderLanes);\n var newState = workInProgress.memoizedState;\n oldProps !== hasNewLifecycles ||\n oldState !== newState ||\n didPerformWorkStackCursor.current ||\n hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps$jscomp$0 &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps$jscomp$0,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType,\n nextProps,\n oldState,\n newState,\n oldContext\n ) ||\n !1)\n ? (getDerivedStateFromProps ||\n (\"function\" !== typeof instance.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof instance.componentWillUpdate) ||\n (\"function\" === typeof instance.componentWillUpdate &&\n instance.componentWillUpdate(nextProps, newState, oldContext),\n \"function\" === typeof instance.UNSAFE_componentWillUpdate &&\n instance.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldContext\n )),\n \"function\" === typeof instance.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof instance.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof instance.componentDidUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof instance.getSnapshotBeforeUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (instance.props = nextProps),\n (instance.state = newState),\n (instance.context = oldContext),\n (nextProps = contextType))\n : (\"function\" !== typeof instance.componentDidUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof instance.getSnapshotBeforeUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n return finishClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n hasContext,\n renderLanes\n );\n}\nfunction finishClassComponent(\n current,\n workInProgress,\n Component,\n shouldUpdate,\n hasContext,\n renderLanes\n) {\n markRef(current, workInProgress);\n var didCaptureError = 0 !== (workInProgress.flags & 128);\n if (!shouldUpdate && !didCaptureError)\n return (\n hasContext && invalidateContextProvider(workInProgress, Component, !1),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n shouldUpdate = workInProgress.stateNode;\n ReactCurrentOwner$1.current = workInProgress;\n var nextChildren =\n didCaptureError && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : shouldUpdate.render();\n workInProgress.flags |= 1;\n null !== current && didCaptureError\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n nextChildren,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n workInProgress.memoizedState = shouldUpdate.state;\n hasContext && invalidateContextProvider(workInProgress, Component, !0);\n return workInProgress.child;\n}\nfunction pushHostRootContext(workInProgress) {\n var root = workInProgress.stateNode;\n root.pendingContext\n ? pushTopLevelContextObject(\n workInProgress,\n root.pendingContext,\n root.pendingContext !== root.context\n )\n : root.context &&\n pushTopLevelContextObject(workInProgress, root.context, !1);\n pushHostContainer(workInProgress, root.containerInfo);\n}\nvar SUSPENDED_MARKER = { dehydrated: null, treeContext: null, retryLane: 0 };\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: null, transitions: null };\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n suspenseContext = suspenseStackCursor.current,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseContext & 2));\n if (JSCompiler_temp) (showFallback = !0), (workInProgress.flags &= -129);\n else if (null === current || null !== current.memoizedState)\n suspenseContext |= 1;\n push(suspenseStackCursor, suspenseContext & 1);\n if (null === current) {\n current = workInProgress.memoizedState;\n if (null !== current && null !== current.dehydrated)\n return (\n 0 === (workInProgress.mode & 1)\n ? (workInProgress.lanes = 1)\n : shim$1()\n ? (workInProgress.lanes = 8)\n : (workInProgress.lanes = 1073741824),\n null\n );\n didSuspend = nextProps.children;\n current = nextProps.fallback;\n return showFallback\n ? ((nextProps = workInProgress.mode),\n (showFallback = workInProgress.child),\n (didSuspend = { mode: \"hidden\", children: didSuspend }),\n 0 === (nextProps & 1) && null !== showFallback\n ? ((showFallback.childLanes = 0),\n (showFallback.pendingProps = didSuspend))\n : (showFallback = createFiberFromOffscreen(\n didSuspend,\n nextProps,\n 0,\n null\n )),\n (current = createFiberFromFragment(\n current,\n nextProps,\n renderLanes,\n null\n )),\n (showFallback.return = workInProgress),\n (current.return = workInProgress),\n (showFallback.sibling = current),\n (workInProgress.child = showFallback),\n (workInProgress.child.memoizedState = mountSuspenseOffscreenState(\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n current)\n : mountSuspensePrimaryChildren(workInProgress, didSuspend);\n }\n suspenseContext = current.memoizedState;\n if (\n null !== suspenseContext &&\n ((JSCompiler_temp = suspenseContext.dehydrated), null !== JSCompiler_temp)\n )\n return updateDehydratedSuspenseComponent(\n current,\n workInProgress,\n didSuspend,\n nextProps,\n JSCompiler_temp,\n suspenseContext,\n renderLanes\n );\n if (showFallback) {\n showFallback = nextProps.fallback;\n didSuspend = workInProgress.mode;\n suspenseContext = current.child;\n JSCompiler_temp = suspenseContext.sibling;\n var primaryChildProps = { mode: \"hidden\", children: nextProps.children };\n 0 === (didSuspend & 1) && workInProgress.child !== suspenseContext\n ? ((nextProps = workInProgress.child),\n (nextProps.childLanes = 0),\n (nextProps.pendingProps = primaryChildProps),\n (workInProgress.deletions = null))\n : ((nextProps = createWorkInProgress(suspenseContext, primaryChildProps)),\n (nextProps.subtreeFlags = suspenseContext.subtreeFlags & 14680064));\n null !== JSCompiler_temp\n ? (showFallback = createWorkInProgress(JSCompiler_temp, showFallback))\n : ((showFallback = createFiberFromFragment(\n showFallback,\n didSuspend,\n renderLanes,\n null\n )),\n (showFallback.flags |= 2));\n showFallback.return = workInProgress;\n nextProps.return = workInProgress;\n nextProps.sibling = showFallback;\n workInProgress.child = nextProps;\n nextProps = showFallback;\n showFallback = workInProgress.child;\n didSuspend = current.child.memoizedState;\n didSuspend =\n null === didSuspend\n ? mountSuspenseOffscreenState(renderLanes)\n : {\n baseLanes: didSuspend.baseLanes | renderLanes,\n cachePool: null,\n transitions: didSuspend.transitions\n };\n showFallback.memoizedState = didSuspend;\n showFallback.childLanes = current.childLanes & ~renderLanes;\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return nextProps;\n }\n showFallback = current.child;\n current = showFallback.sibling;\n nextProps = createWorkInProgress(showFallback, {\n mode: \"visible\",\n children: nextProps.children\n });\n 0 === (workInProgress.mode & 1) && (nextProps.lanes = renderLanes);\n nextProps.return = workInProgress;\n nextProps.sibling = null;\n null !== current &&\n ((renderLanes = workInProgress.deletions),\n null === renderLanes\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : renderLanes.push(current));\n workInProgress.child = nextProps;\n workInProgress.memoizedState = null;\n return nextProps;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = createFiberFromOffscreen(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode,\n 0,\n null\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n recoverableError\n) {\n null !== recoverableError &&\n (null === hydrationErrors\n ? (hydrationErrors = [recoverableError])\n : hydrationErrors.push(recoverableError));\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction updateDehydratedSuspenseComponent(\n current,\n workInProgress,\n didSuspend,\n nextProps,\n suspenseInstance,\n suspenseState,\n renderLanes\n) {\n if (didSuspend) {\n if (workInProgress.flags & 256)\n return (\n (workInProgress.flags &= -257),\n (suspenseState = createCapturedValue(\n Error(\n \"There was an error while hydrating this Suspense boundary. Switched to client rendering.\"\n )\n )),\n retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n suspenseState\n )\n );\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n null\n );\n suspenseState = nextProps.fallback;\n didSuspend = workInProgress.mode;\n nextProps = createFiberFromOffscreen(\n { mode: \"visible\", children: nextProps.children },\n didSuspend,\n 0,\n null\n );\n suspenseState = createFiberFromFragment(\n suspenseState,\n didSuspend,\n renderLanes,\n null\n );\n suspenseState.flags |= 2;\n nextProps.return = workInProgress;\n suspenseState.return = workInProgress;\n nextProps.sibling = suspenseState;\n workInProgress.child = nextProps;\n 0 !== (workInProgress.mode & 1) &&\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n workInProgress.child.memoizedState = mountSuspenseOffscreenState(\n renderLanes\n );\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return suspenseState;\n }\n if (0 === (workInProgress.mode & 1))\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n null\n );\n if (shim$1())\n return (\n (suspenseState = shim$1().digest),\n (suspenseState = createCapturedValue(\n Error(\n \"The server could not finish this Suspense boundary, likely due to an error during server rendering. Switched to client rendering.\"\n ),\n suspenseState,\n void 0\n )),\n retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n suspenseState\n )\n );\n didSuspend = 0 !== (renderLanes & current.childLanes);\n if (didReceiveUpdate || didSuspend) {\n nextProps = workInProgressRoot;\n if (null !== nextProps) {\n switch (renderLanes & -renderLanes) {\n case 4:\n didSuspend = 2;\n break;\n case 16:\n didSuspend = 8;\n break;\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n didSuspend = 32;\n break;\n case 536870912:\n didSuspend = 268435456;\n break;\n default:\n didSuspend = 0;\n }\n didSuspend =\n 0 !== (didSuspend & (nextProps.suspendedLanes | renderLanes))\n ? 0\n : didSuspend;\n 0 !== didSuspend &&\n didSuspend !== suspenseState.retryLane &&\n ((suspenseState.retryLane = didSuspend),\n markUpdateLaneFromFiberToRoot(current, didSuspend),\n scheduleUpdateOnFiber(nextProps, current, didSuspend, -1));\n }\n renderDidSuspendDelayIfPossible();\n suspenseState = createCapturedValue(\n Error(\n \"This Suspense boundary received an update before it finished hydrating. This caused the boundary to switch to client rendering. The usual way to fix this is to wrap the original update in startTransition.\"\n )\n );\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n suspenseState\n );\n }\n if (shim$1())\n return (\n (workInProgress.flags |= 128),\n (workInProgress.child = current.child),\n retryDehydratedSuspenseBoundary.bind(null, current),\n shim$1(),\n null\n );\n current = mountSuspensePrimaryChildren(workInProgress, nextProps.children);\n current.flags |= 4096;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n reconcileChildren(current, workInProgress, nextProps.children, renderLanes);\n nextProps = suspenseStackCursor.current;\n if (0 !== (nextProps & 2))\n (nextProps = (nextProps & 1) | 2), (workInProgress.flags |= 128);\n else {\n if (null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n nextProps &= 1;\n }\n push(suspenseStackCursor, nextProps);\n if (0 === (workInProgress.mode & 1)) workInProgress.memoizedState = null;\n else\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child),\n (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode\n );\n break;\n case \"backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode\n );\n break;\n case \"together\":\n initSuspenseListRenderState(workInProgress, !1, null, null, void 0);\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress) {\n 0 === (workInProgress.mode & 1) &&\n null !== current &&\n ((current.alternate = null),\n (workInProgress.alternate = null),\n (workInProgress.flags |= 2));\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes)) return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(\"Resuming work not yet implemented.\");\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling = createWorkInProgress(\n current,\n current.pendingProps\n )),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostRootContext(workInProgress);\n break;\n case 5:\n pushHostContext(workInProgress);\n break;\n case 1:\n isContextProvider(workInProgress.type) &&\n pushContextProvider(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n var context = workInProgress.type._context,\n nextValue = workInProgress.memoizedProps.value;\n push(valueCursor, context._currentValue2);\n context._currentValue2 = nextValue;\n break;\n case 13:\n context = workInProgress.memoizedState;\n if (null !== context) {\n if (null !== context.dehydrated)\n return (\n push(suspenseStackCursor, suspenseStackCursor.current & 1),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n break;\n case 19:\n context = 0 !== (renderLanes & workInProgress.childLanes);\n if (0 !== (current.flags & 128)) {\n if (context)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n nextValue = workInProgress.memoizedState;\n null !== nextValue &&\n ((nextValue.rendering = null),\n (nextValue.tail = null),\n (nextValue.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (context) break;\n else return null;\n case 22:\n case 23:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(current, workInProgress, renderLanes)\n );\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction hadNoMutationsEffects(current, completedWork) {\n if (null !== current && current.child === completedWork.child) return !0;\n if (0 !== (completedWork.flags & 16)) return !1;\n for (current = completedWork.child; null !== current; ) {\n if (0 !== (current.flags & 12854) || 0 !== (current.subtreeFlags & 12854))\n return !1;\n current = current.sibling;\n }\n return !0;\n}\nvar appendAllChildren,\n updateHostContainer,\n updateHostComponent$1,\n updateHostText$1;\nappendAllChildren = function(\n parent,\n workInProgress,\n needsVisibilityToggle,\n isHidden\n) {\n for (var node = workInProgress.child; null !== node; ) {\n if (5 === node.tag) {\n var instance = node.stateNode;\n needsVisibilityToggle &&\n isHidden &&\n (instance = cloneHiddenInstance(instance));\n appendChildNode(parent.node, instance.node);\n } else if (6 === node.tag) {\n instance = node.stateNode;\n if (needsVisibilityToggle && isHidden)\n throw Error(\"Not yet implemented.\");\n appendChildNode(parent.node, instance.node);\n } else if (4 !== node.tag)\n if (22 === node.tag && null !== node.memoizedState)\n (instance = node.child),\n null !== instance && (instance.return = node),\n appendAllChildren(parent, node, !0, !0);\n else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === workInProgress) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === workInProgress) return;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n};\nfunction appendAllChildrenToContainer(\n containerChildSet,\n workInProgress,\n needsVisibilityToggle,\n isHidden\n) {\n for (var node = workInProgress.child; null !== node; ) {\n if (5 === node.tag) {\n var instance = node.stateNode;\n needsVisibilityToggle &&\n isHidden &&\n (instance = cloneHiddenInstance(instance));\n appendChildNodeToSet(containerChildSet, instance.node);\n } else if (6 === node.tag) {\n instance = node.stateNode;\n if (needsVisibilityToggle && isHidden)\n throw Error(\"Not yet implemented.\");\n appendChildNodeToSet(containerChildSet, instance.node);\n } else if (4 !== node.tag)\n if (22 === node.tag && null !== node.memoizedState)\n (instance = node.child),\n null !== instance && (instance.return = node),\n appendAllChildrenToContainer(containerChildSet, node, !0, !0);\n else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === workInProgress) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === workInProgress) return;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n}\nupdateHostContainer = function(current, workInProgress) {\n var portalOrRoot = workInProgress.stateNode;\n if (!hadNoMutationsEffects(current, workInProgress)) {\n current = portalOrRoot.containerInfo;\n var newChildSet = createChildNodeSet(current);\n appendAllChildrenToContainer(newChildSet, workInProgress, !1, !1);\n portalOrRoot.pendingChildren = newChildSet;\n workInProgress.flags |= 4;\n completeRoot(current, newChildSet);\n }\n};\nupdateHostComponent$1 = function(current, workInProgress, type, newProps) {\n type = current.stateNode;\n var oldProps = current.memoizedProps;\n if (\n (current = hadNoMutationsEffects(current, workInProgress)) &&\n oldProps === newProps\n )\n workInProgress.stateNode = type;\n else {\n var recyclableInstance = workInProgress.stateNode;\n requiredContext(contextStackCursor$1.current);\n var updatePayload = null;\n oldProps !== newProps &&\n ((oldProps = diffProperties(\n null,\n oldProps,\n newProps,\n recyclableInstance.canonical.viewConfig.validAttributes\n )),\n (recyclableInstance.canonical.currentProps = newProps),\n (updatePayload = oldProps));\n current && null === updatePayload\n ? (workInProgress.stateNode = type)\n : ((newProps = updatePayload),\n (oldProps = type.node),\n (type = {\n node: current\n ? null !== newProps\n ? cloneNodeWithNewProps(oldProps, newProps)\n : cloneNode(oldProps)\n : null !== newProps\n ? cloneNodeWithNewChildrenAndProps(oldProps, newProps)\n : cloneNodeWithNewChildren(oldProps),\n canonical: type.canonical\n }),\n (workInProgress.stateNode = type),\n current\n ? (workInProgress.flags |= 4)\n : appendAllChildren(type, workInProgress, !1, !1));\n }\n};\nupdateHostText$1 = function(current, workInProgress, oldText, newText) {\n oldText !== newText\n ? ((current = requiredContext(rootInstanceStackCursor.current)),\n (oldText = requiredContext(contextStackCursor$1.current)),\n (workInProgress.stateNode = createTextInstance(\n newText,\n current,\n oldText,\n workInProgress\n )),\n (workInProgress.flags |= 4))\n : (workInProgress.stateNode = current.stateNode);\n};\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$62 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$62 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$62\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$62.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$63 = completedWork.child; null !== child$63; )\n (newChildLanes |= child$63.lanes | child$63.childLanes),\n (subtreeFlags |= child$63.subtreeFlags & 14680064),\n (subtreeFlags |= child$63.flags & 14680064),\n (child$63.return = completedWork),\n (child$63 = child$63.sibling);\n else\n for (child$63 = completedWork.child; null !== child$63; )\n (newChildLanes |= child$63.lanes | child$63.childLanes),\n (subtreeFlags |= child$63.subtreeFlags),\n (subtreeFlags |= child$63.flags),\n (child$63.return = completedWork),\n (child$63 = child$63.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 2:\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return (\n isContextProvider(workInProgress.type) && popContext(),\n bubbleProperties(workInProgress),\n null\n );\n case 3:\n return (\n (renderLanes = workInProgress.stateNode),\n popHostContainer(),\n pop(didPerformWorkStackCursor),\n pop(contextStackCursor),\n resetWorkInProgressVersions(),\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null)),\n (null !== current && null !== current.child) ||\n null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n null !== hydrationErrors &&\n (queueRecoverableErrors(hydrationErrors),\n (hydrationErrors = null))),\n updateHostContainer(current, workInProgress),\n bubbleProperties(workInProgress),\n null\n );\n case 5:\n popHostContext(workInProgress);\n renderLanes = requiredContext(rootInstanceStackCursor.current);\n var type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n updateHostComponent$1(\n current,\n workInProgress,\n type,\n newProps,\n renderLanes\n ),\n current.ref !== workInProgress.ref && (workInProgress.flags |= 512);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(\n \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\"\n );\n bubbleProperties(workInProgress);\n return null;\n }\n requiredContext(contextStackCursor$1.current);\n current = nextReactTag;\n nextReactTag += 2;\n type = getViewConfigForType(type);\n var updatePayload = diffProperties(\n null,\n emptyObject,\n newProps,\n type.validAttributes\n );\n renderLanes = createNode(\n current,\n type.uiViewClassName,\n renderLanes,\n updatePayload,\n workInProgress\n );\n current = new ReactFabricHostComponent(\n current,\n type,\n newProps,\n workInProgress\n );\n current = { node: renderLanes, canonical: current };\n appendAllChildren(current, workInProgress, !1, !1);\n workInProgress.stateNode = current;\n null !== workInProgress.ref && (workInProgress.flags |= 512);\n }\n bubbleProperties(workInProgress);\n return null;\n case 6:\n if (current && null != workInProgress.stateNode)\n updateHostText$1(\n current,\n workInProgress,\n current.memoizedProps,\n newProps\n );\n else {\n if (\"string\" !== typeof newProps && null === workInProgress.stateNode)\n throw Error(\n \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\"\n );\n current = requiredContext(rootInstanceStackCursor.current);\n renderLanes = requiredContext(contextStackCursor$1.current);\n workInProgress.stateNode = createTextInstance(\n newProps,\n current,\n renderLanes,\n workInProgress\n );\n }\n bubbleProperties(workInProgress);\n return null;\n case 13:\n pop(suspenseStackCursor);\n newProps = workInProgress.memoizedState;\n if (\n null === current ||\n (null !== current.memoizedState &&\n null !== current.memoizedState.dehydrated)\n ) {\n if (null !== newProps && null !== newProps.dehydrated) {\n if (null === current) {\n throw Error(\n \"A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.\"\n );\n throw Error(\n \"Expected prepareToHydrateHostSuspenseInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null);\n workInProgress.flags |= 4;\n bubbleProperties(workInProgress);\n type = !1;\n } else\n null !== hydrationErrors &&\n (queueRecoverableErrors(hydrationErrors), (hydrationErrors = null)),\n (type = !0);\n if (!type) return workInProgress.flags & 65536 ? workInProgress : null;\n }\n if (0 !== (workInProgress.flags & 128))\n return (workInProgress.lanes = renderLanes), workInProgress;\n renderLanes = null !== newProps;\n renderLanes !== (null !== current && null !== current.memoizedState) &&\n renderLanes &&\n ((workInProgress.child.flags |= 8192),\n 0 !== (workInProgress.mode & 1) &&\n (null === current || 0 !== (suspenseStackCursor.current & 1)\n ? 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3)\n : renderDidSuspendDelayIfPossible()));\n null !== workInProgress.updateQueue && (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n return null;\n case 4:\n return (\n popHostContainer(),\n updateHostContainer(current, workInProgress),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type._context),\n bubbleProperties(workInProgress),\n null\n );\n case 17:\n return (\n isContextProvider(workInProgress.type) && popContext(),\n bubbleProperties(workInProgress),\n null\n );\n case 19:\n pop(suspenseStackCursor);\n type = workInProgress.memoizedState;\n if (null === type) return bubbleProperties(workInProgress), null;\n newProps = 0 !== (workInProgress.flags & 128);\n updatePayload = type.rendering;\n if (null === updatePayload)\n if (newProps) cutOffTailIfNeeded(type, !1);\n else {\n if (\n 0 !== workInProgressRootExitStatus ||\n (null !== current && 0 !== (current.flags & 128))\n )\n for (current = workInProgress.child; null !== current; ) {\n updatePayload = findFirstSuspended(current);\n if (null !== updatePayload) {\n workInProgress.flags |= 128;\n cutOffTailIfNeeded(type, !1);\n current = updatePayload.updateQueue;\n null !== current &&\n ((workInProgress.updateQueue = current),\n (workInProgress.flags |= 4));\n workInProgress.subtreeFlags = 0;\n current = renderLanes;\n for (renderLanes = workInProgress.child; null !== renderLanes; )\n (newProps = renderLanes),\n (type = current),\n (newProps.flags &= 14680066),\n (updatePayload = newProps.alternate),\n null === updatePayload\n ? ((newProps.childLanes = 0),\n (newProps.lanes = type),\n (newProps.child = null),\n (newProps.subtreeFlags = 0),\n (newProps.memoizedProps = null),\n (newProps.memoizedState = null),\n (newProps.updateQueue = null),\n (newProps.dependencies = null),\n (newProps.stateNode = null))\n : ((newProps.childLanes = updatePayload.childLanes),\n (newProps.lanes = updatePayload.lanes),\n (newProps.child = updatePayload.child),\n (newProps.subtreeFlags = 0),\n (newProps.deletions = null),\n (newProps.memoizedProps = updatePayload.memoizedProps),\n (newProps.memoizedState = updatePayload.memoizedState),\n (newProps.updateQueue = updatePayload.updateQueue),\n (newProps.type = updatePayload.type),\n (type = updatePayload.dependencies),\n (newProps.dependencies =\n null === type\n ? null\n : {\n lanes: type.lanes,\n firstContext: type.firstContext\n })),\n (renderLanes = renderLanes.sibling);\n push(\n suspenseStackCursor,\n (suspenseStackCursor.current & 1) | 2\n );\n return workInProgress.child;\n }\n current = current.sibling;\n }\n null !== type.tail &&\n now() > workInProgressRootRenderTargetTime &&\n ((workInProgress.flags |= 128),\n (newProps = !0),\n cutOffTailIfNeeded(type, !1),\n (workInProgress.lanes = 4194304));\n }\n else {\n if (!newProps)\n if (\n ((current = findFirstSuspended(updatePayload)), null !== current)\n ) {\n if (\n ((workInProgress.flags |= 128),\n (newProps = !0),\n (current = current.updateQueue),\n null !== current &&\n ((workInProgress.updateQueue = current),\n (workInProgress.flags |= 4)),\n cutOffTailIfNeeded(type, !0),\n null === type.tail &&\n \"hidden\" === type.tailMode &&\n !updatePayload.alternate)\n )\n return bubbleProperties(workInProgress), null;\n } else\n 2 * now() - type.renderingStartTime >\n workInProgressRootRenderTargetTime &&\n 1073741824 !== renderLanes &&\n ((workInProgress.flags |= 128),\n (newProps = !0),\n cutOffTailIfNeeded(type, !1),\n (workInProgress.lanes = 4194304));\n type.isBackwards\n ? ((updatePayload.sibling = workInProgress.child),\n (workInProgress.child = updatePayload))\n : ((current = type.last),\n null !== current\n ? (current.sibling = updatePayload)\n : (workInProgress.child = updatePayload),\n (type.last = updatePayload));\n }\n if (null !== type.tail)\n return (\n (workInProgress = type.tail),\n (type.rendering = workInProgress),\n (type.tail = workInProgress.sibling),\n (type.renderingStartTime = now()),\n (workInProgress.sibling = null),\n (current = suspenseStackCursor.current),\n push(suspenseStackCursor, newProps ? (current & 1) | 2 : current & 1),\n workInProgress\n );\n bubbleProperties(workInProgress);\n return null;\n case 22:\n case 23:\n return (\n popRenderLanes(),\n (renderLanes = null !== workInProgress.memoizedState),\n null !== current &&\n (null !== current.memoizedState) !== renderLanes &&\n (workInProgress.flags |= 8192),\n renderLanes && 0 !== (workInProgress.mode & 1)\n ? 0 !== (subtreeRenderLanes & 1073741824) &&\n bubbleProperties(workInProgress)\n : bubbleProperties(workInProgress),\n null\n );\n case 24:\n return null;\n case 25:\n return null;\n }\n throw Error(\n \"Unknown unit of work tag (\" +\n workInProgress.tag +\n \"). This error is likely caused by a bug in React. Please file an issue.\"\n );\n}\nfunction unwindWork(current, workInProgress) {\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 1:\n return (\n isContextProvider(workInProgress.type) && popContext(),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 3:\n return (\n popHostContainer(),\n pop(didPerformWorkStackCursor),\n pop(contextStackCursor),\n resetWorkInProgressVersions(),\n (current = workInProgress.flags),\n 0 !== (current & 65536) && 0 === (current & 128)\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 5:\n return popHostContext(workInProgress), null;\n case 13:\n pop(suspenseStackCursor);\n current = workInProgress.memoizedState;\n if (\n null !== current &&\n null !== current.dehydrated &&\n null === workInProgress.alternate\n )\n throw Error(\n \"Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.\"\n );\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 19:\n return pop(suspenseStackCursor), null;\n case 4:\n return popHostContainer(), null;\n case 10:\n return popProvider(workInProgress.type._context), null;\n case 22:\n case 23:\n return popRenderLanes(), null;\n case 24:\n return null;\n default:\n return null;\n }\n}\nvar PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null;\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref;\n if (null !== ref)\n if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n else ref.current = null;\n}\nfunction safelyCallDestroy(current, nearestMountedAncestor, destroy) {\n try {\n destroy();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nvar shouldFireAfterActiveInstanceBlur = !1;\nfunction commitBeforeMutationEffects(root, firstChild) {\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((root = nextEffect),\n (firstChild = root.child),\n 0 !== (root.subtreeFlags & 1028) && null !== firstChild)\n )\n (firstChild.return = root), (nextEffect = firstChild);\n else\n for (; null !== nextEffect; ) {\n root = nextEffect;\n try {\n var current = root.alternate;\n if (0 !== (root.flags & 1024))\n switch (root.tag) {\n case 0:\n case 11:\n case 15:\n break;\n case 1:\n if (null !== current) {\n var prevProps = current.memoizedProps,\n prevState = current.memoizedState,\n instance = root.stateNode,\n snapshot = instance.getSnapshotBeforeUpdate(\n root.elementType === root.type\n ? prevProps\n : resolveDefaultProps(root.type, prevProps),\n prevState\n );\n instance.__reactInternalSnapshotBeforeUpdate = snapshot;\n }\n break;\n case 3:\n break;\n case 5:\n case 6:\n case 4:\n case 17:\n break;\n default:\n throw Error(\n \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n } catch (error) {\n captureCommitPhaseError(root, root.return, error);\n }\n firstChild = root.sibling;\n if (null !== firstChild) {\n firstChild.return = root.return;\n nextEffect = firstChild;\n break;\n }\n nextEffect = root.return;\n }\n current = shouldFireAfterActiveInstanceBlur;\n shouldFireAfterActiveInstanceBlur = !1;\n return current;\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor\n) {\n var updateQueue = finishedWork.updateQueue;\n updateQueue = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== updateQueue) {\n var effect = (updateQueue = updateQueue.next);\n do {\n if ((effect.tag & flags) === flags) {\n var destroy = effect.destroy;\n effect.destroy = void 0;\n void 0 !== destroy &&\n safelyCallDestroy(finishedWork, nearestMountedAncestor, destroy);\n }\n effect = effect.next;\n } while (effect !== updateQueue);\n }\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n finishedWork = finishedWork.updateQueue;\n finishedWork = null !== finishedWork ? finishedWork.lastEffect : null;\n if (null !== finishedWork) {\n var effect = (finishedWork = finishedWork.next);\n do {\n if ((effect.tag & flags) === flags) {\n var create$75 = effect.create;\n effect.destroy = create$75();\n }\n effect = effect.next;\n } while (effect !== finishedWork);\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 5:\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 18:\n break;\n case 4:\n createChildNodeSet(deletedFiber.stateNode.containerInfo);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n var updateQueue = deletedFiber.updateQueue;\n if (\n null !== updateQueue &&\n ((updateQueue = updateQueue.lastEffect), null !== updateQueue)\n ) {\n var effect = (updateQueue = updateQueue.next);\n do {\n var _effect = effect,\n destroy = _effect.destroy;\n _effect = _effect.tag;\n void 0 !== destroy &&\n (0 !== (_effect & 2)\n ? safelyCallDestroy(deletedFiber, nearestMountedAncestor, destroy)\n : 0 !== (_effect & 4) &&\n safelyCallDestroy(\n deletedFiber,\n nearestMountedAncestor,\n destroy\n ));\n effect = effect.next;\n } while (effect !== updateQueue);\n }\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n updateQueue = deletedFiber.stateNode;\n if (\"function\" === typeof updateQueue.componentWillUnmount)\n try {\n (updateQueue.props = deletedFiber.memoizedProps),\n (updateQueue.state = deletedFiber.memoizedState),\n updateQueue.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(deletedFiber, nearestMountedAncestor, error);\n }\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork) {\n var wakeables = finishedWork.updateQueue;\n if (null !== wakeables) {\n finishedWork.updateQueue = null;\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n wakeables.forEach(function(wakeable) {\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n retryCache.has(wakeable) ||\n (retryCache.add(wakeable), wakeable.then(retry, retry));\n });\n }\n}\nfunction recursivelyTraverseMutationEffects(root, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n try {\n commitDeletionEffectsOnFiber(root, parentFiber, childToDelete);\n var alternate = childToDelete.alternate;\n null !== alternate && (alternate.return = null);\n childToDelete.return = null;\n } catch (error) {\n captureCommitPhaseError(childToDelete, parentFiber, error);\n }\n }\n if (parentFiber.subtreeFlags & 12854)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n try {\n commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n try {\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return);\n } catch (error$79) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error$79);\n }\n }\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n null !== current &&\n safelyDetachRef(current, current.return);\n break;\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n null !== current &&\n safelyDetachRef(current, current.return);\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 3:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 4:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n root = finishedWork.child;\n root.flags & 8192 &&\n ((current = null !== root.memoizedState),\n (root.stateNode.isHidden = current),\n !current ||\n (null !== root.alternate && null !== root.alternate.memoizedState) ||\n (globalMostRecentFallbackTime = now()));\n flags & 4 && attachSuspenseRetryListeners(finishedWork);\n break;\n case 22:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 8192 &&\n (finishedWork.stateNode.isHidden = null !== finishedWork.memoizedState);\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 && attachSuspenseRetryListeners(finishedWork);\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n flags & 2 && (finishedWork.flags &= -3);\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction commitLayoutEffects(finishedWork) {\n for (nextEffect = finishedWork; null !== nextEffect; ) {\n var fiber = nextEffect,\n firstChild = fiber.child;\n if (0 !== (fiber.subtreeFlags & 8772) && null !== firstChild)\n (firstChild.return = fiber), (nextEffect = firstChild);\n else\n for (fiber = finishedWork; null !== nextEffect; ) {\n firstChild = nextEffect;\n if (0 !== (firstChild.flags & 8772)) {\n var current = firstChild.alternate;\n try {\n if (0 !== (firstChild.flags & 8772))\n switch (firstChild.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListMount(5, firstChild);\n break;\n case 1:\n var instance = firstChild.stateNode;\n if (firstChild.flags & 4)\n if (null === current) instance.componentDidMount();\n else {\n var prevProps =\n firstChild.elementType === firstChild.type\n ? current.memoizedProps\n : resolveDefaultProps(\n firstChild.type,\n current.memoizedProps\n );\n instance.componentDidUpdate(\n prevProps,\n current.memoizedState,\n instance.__reactInternalSnapshotBeforeUpdate\n );\n }\n var updateQueue = firstChild.updateQueue;\n null !== updateQueue &&\n commitUpdateQueue(firstChild, updateQueue, instance);\n break;\n case 3:\n var updateQueue$76 = firstChild.updateQueue;\n if (null !== updateQueue$76) {\n current = null;\n if (null !== firstChild.child)\n switch (firstChild.child.tag) {\n case 5:\n current = firstChild.child.stateNode.canonical;\n break;\n case 1:\n current = firstChild.child.stateNode;\n }\n commitUpdateQueue(firstChild, updateQueue$76, current);\n }\n break;\n case 5:\n if (null === current && firstChild.flags & 4)\n throw Error(\n \"The current renderer does not support mutation. This error is likely caused by a bug in React. Please file an issue.\"\n );\n break;\n case 6:\n break;\n case 4:\n break;\n case 12:\n break;\n case 13:\n break;\n case 19:\n case 17:\n case 21:\n case 22:\n case 23:\n case 25:\n break;\n default:\n throw Error(\n \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (firstChild.flags & 512) {\n current = void 0;\n var ref = firstChild.ref;\n if (null !== ref) {\n var instance$jscomp$0 = firstChild.stateNode;\n switch (firstChild.tag) {\n case 5:\n current = instance$jscomp$0.canonical;\n break;\n default:\n current = instance$jscomp$0;\n }\n \"function\" === typeof ref\n ? ref(current)\n : (ref.current = current);\n }\n }\n } catch (error) {\n captureCommitPhaseError(firstChild, firstChild.return, error);\n }\n }\n if (firstChild === fiber) {\n nextEffect = null;\n break;\n }\n current = firstChild.sibling;\n if (null !== current) {\n current.return = firstChild.return;\n nextEffect = current;\n break;\n }\n nextEffect = firstChild.return;\n }\n }\n}\nvar ceil = Math.ceil,\n ReactCurrentDispatcher$2 = ReactSharedInternals.ReactCurrentDispatcher,\n ReactCurrentOwner$2 = ReactSharedInternals.ReactCurrentOwner,\n ReactCurrentBatchConfig$2 = ReactSharedInternals.ReactCurrentBatchConfig,\n executionContext = 0,\n workInProgressRoot = null,\n workInProgress = null,\n workInProgressRootRenderLanes = 0,\n subtreeRenderLanes = 0,\n subtreeRenderLanesCursor = createCursor(0),\n workInProgressRootExitStatus = 0,\n workInProgressRootFatalError = null,\n workInProgressRootSkippedLanes = 0,\n workInProgressRootInterleavedUpdatedLanes = 0,\n workInProgressRootPingedLanes = 0,\n workInProgressRootConcurrentErrors = null,\n workInProgressRootRecoverableErrors = null,\n globalMostRecentFallbackTime = 0,\n workInProgressRootRenderTargetTime = Infinity,\n workInProgressTransitions = null,\n hasUncaughtError = !1,\n firstUncaughtError = null,\n legacyErrorBoundariesThatAlreadyFailed = null,\n rootDoesHavePassiveEffects = !1,\n rootWithPendingPassiveEffects = null,\n pendingPassiveEffectsLanes = 0,\n nestedUpdateCount = 0,\n rootWithNestedUpdates = null,\n currentEventTime = -1,\n currentEventTransitionLane = 0;\nfunction requestEventTime() {\n return 0 !== (executionContext & 6)\n ? now()\n : -1 !== currentEventTime\n ? currentEventTime\n : (currentEventTime = now());\n}\nfunction requestUpdateLane(fiber) {\n if (0 === (fiber.mode & 1)) return 1;\n if (0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes)\n return workInProgressRootRenderLanes & -workInProgressRootRenderLanes;\n if (null !== ReactCurrentBatchConfig.transition)\n return (\n 0 === currentEventTransitionLane &&\n (currentEventTransitionLane = claimNextTransitionLane()),\n currentEventTransitionLane\n );\n fiber = currentUpdatePriority;\n if (0 === fiber)\n a: {\n fiber = fabricGetCurrentEventPriority\n ? fabricGetCurrentEventPriority()\n : null;\n if (null != fiber)\n switch (fiber) {\n case FabricDiscretePriority:\n fiber = 1;\n break a;\n }\n fiber = 16;\n }\n return fiber;\n}\nfunction scheduleUpdateOnFiber(root, fiber, lane, eventTime) {\n if (50 < nestedUpdateCount)\n throw ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(\n \"Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\"\n ));\n markRootUpdated(root, lane, eventTime);\n if (0 === (executionContext & 2) || root !== workInProgressRoot)\n root === workInProgressRoot &&\n (0 === (executionContext & 2) &&\n (workInProgressRootInterleavedUpdatedLanes |= lane),\n 4 === workInProgressRootExitStatus &&\n markRootSuspended$1(root, workInProgressRootRenderLanes)),\n ensureRootIsScheduled(root, eventTime),\n 1 === lane &&\n 0 === executionContext &&\n 0 === (fiber.mode & 1) &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n includesLegacySyncCallbacks && flushSyncCallbacks());\n}\nfunction ensureRootIsScheduled(root, currentTime) {\n for (\n var existingCallbackNode = root.callbackNode,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n expirationTimes = root.expirationTimes,\n lanes = root.pendingLanes;\n 0 < lanes;\n\n ) {\n var index$5 = 31 - clz32(lanes),\n lane = 1 << index$5,\n expirationTime = expirationTimes[index$5];\n if (-1 === expirationTime) {\n if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n expirationTimes[index$5] = computeExpirationTime(lane, currentTime);\n } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n lanes &= ~lane;\n }\n suspendedLanes = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes : 0\n );\n if (0 === suspendedLanes)\n null !== existingCallbackNode && cancelCallback(existingCallbackNode),\n (root.callbackNode = null),\n (root.callbackPriority = 0);\n else if (\n ((currentTime = suspendedLanes & -suspendedLanes),\n root.callbackPriority !== currentTime)\n ) {\n null != existingCallbackNode && cancelCallback(existingCallbackNode);\n if (1 === currentTime)\n 0 === root.tag\n ? ((existingCallbackNode = performSyncWorkOnRoot.bind(null, root)),\n (includesLegacySyncCallbacks = !0),\n null === syncQueue\n ? (syncQueue = [existingCallbackNode])\n : syncQueue.push(existingCallbackNode))\n : ((existingCallbackNode = performSyncWorkOnRoot.bind(null, root)),\n null === syncQueue\n ? (syncQueue = [existingCallbackNode])\n : syncQueue.push(existingCallbackNode)),\n scheduleCallback(ImmediatePriority, flushSyncCallbacks),\n (existingCallbackNode = null);\n else {\n switch (lanesToEventPriority(suspendedLanes)) {\n case 1:\n existingCallbackNode = ImmediatePriority;\n break;\n case 4:\n existingCallbackNode = UserBlockingPriority;\n break;\n case 16:\n existingCallbackNode = NormalPriority;\n break;\n case 536870912:\n existingCallbackNode = IdlePriority;\n break;\n default:\n existingCallbackNode = NormalPriority;\n }\n existingCallbackNode = scheduleCallback$1(\n existingCallbackNode,\n performConcurrentWorkOnRoot.bind(null, root)\n );\n }\n root.callbackPriority = currentTime;\n root.callbackNode = existingCallbackNode;\n }\n}\nfunction performConcurrentWorkOnRoot(root, didTimeout) {\n currentEventTime = -1;\n currentEventTransitionLane = 0;\n if (0 !== (executionContext & 6))\n throw Error(\"Should not already be working.\");\n var originalCallbackNode = root.callbackNode;\n if (flushPassiveEffects() && root.callbackNode !== originalCallbackNode)\n return null;\n var lanes = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes : 0\n );\n if (0 === lanes) return null;\n if (0 !== (lanes & 30) || 0 !== (lanes & root.expiredLanes) || didTimeout)\n didTimeout = renderRootSync(root, lanes);\n else {\n didTimeout = lanes;\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher();\n if (\n workInProgressRoot !== root ||\n workInProgressRootRenderLanes !== didTimeout\n )\n (workInProgressTransitions = null),\n (workInProgressRootRenderTargetTime = now() + 500),\n prepareFreshStack(root, didTimeout);\n do\n try {\n workLoopConcurrent();\n break;\n } catch (thrownValue) {\n handleError(root, thrownValue);\n }\n while (1);\n resetContextDependencies();\n ReactCurrentDispatcher$2.current = prevDispatcher;\n executionContext = prevExecutionContext;\n null !== workInProgress\n ? (didTimeout = 0)\n : ((workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0),\n (didTimeout = workInProgressRootExitStatus));\n }\n if (0 !== didTimeout) {\n 2 === didTimeout &&\n ((prevExecutionContext = getLanesToRetrySynchronouslyOnError(root)),\n 0 !== prevExecutionContext &&\n ((lanes = prevExecutionContext),\n (didTimeout = recoverFromConcurrentError(root, prevExecutionContext))));\n if (1 === didTimeout)\n throw ((originalCallbackNode = workInProgressRootFatalError),\n prepareFreshStack(root, 0),\n markRootSuspended$1(root, lanes),\n ensureRootIsScheduled(root, now()),\n originalCallbackNode);\n if (6 === didTimeout) markRootSuspended$1(root, lanes);\n else {\n prevExecutionContext = root.current.alternate;\n if (\n 0 === (lanes & 30) &&\n !isRenderConsistentWithExternalStores(prevExecutionContext) &&\n ((didTimeout = renderRootSync(root, lanes)),\n 2 === didTimeout &&\n ((prevDispatcher = getLanesToRetrySynchronouslyOnError(root)),\n 0 !== prevDispatcher &&\n ((lanes = prevDispatcher),\n (didTimeout = recoverFromConcurrentError(root, prevDispatcher)))),\n 1 === didTimeout)\n )\n throw ((originalCallbackNode = workInProgressRootFatalError),\n prepareFreshStack(root, 0),\n markRootSuspended$1(root, lanes),\n ensureRootIsScheduled(root, now()),\n originalCallbackNode);\n root.finishedWork = prevExecutionContext;\n root.finishedLanes = lanes;\n switch (didTimeout) {\n case 0:\n case 1:\n throw Error(\"Root did not complete. This is a bug in React.\");\n case 2:\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n case 3:\n markRootSuspended$1(root, lanes);\n if (\n (lanes & 130023424) === lanes &&\n ((didTimeout = globalMostRecentFallbackTime + 500 - now()),\n 10 < didTimeout)\n ) {\n if (0 !== getNextLanes(root, 0)) break;\n prevExecutionContext = root.suspendedLanes;\n if ((prevExecutionContext & lanes) !== lanes) {\n requestEventTime();\n root.pingedLanes |= root.suspendedLanes & prevExecutionContext;\n break;\n }\n root.timeoutHandle = scheduleTimeout(\n commitRoot.bind(\n null,\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n ),\n didTimeout\n );\n break;\n }\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n case 4:\n markRootSuspended$1(root, lanes);\n if ((lanes & 4194240) === lanes) break;\n didTimeout = root.eventTimes;\n for (prevExecutionContext = -1; 0 < lanes; ) {\n var index$4 = 31 - clz32(lanes);\n prevDispatcher = 1 << index$4;\n index$4 = didTimeout[index$4];\n index$4 > prevExecutionContext && (prevExecutionContext = index$4);\n lanes &= ~prevDispatcher;\n }\n lanes = prevExecutionContext;\n lanes = now() - lanes;\n lanes =\n (120 > lanes\n ? 120\n : 480 > lanes\n ? 480\n : 1080 > lanes\n ? 1080\n : 1920 > lanes\n ? 1920\n : 3e3 > lanes\n ? 3e3\n : 4320 > lanes\n ? 4320\n : 1960 * ceil(lanes / 1960)) - lanes;\n if (10 < lanes) {\n root.timeoutHandle = scheduleTimeout(\n commitRoot.bind(\n null,\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n ),\n lanes\n );\n break;\n }\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n case 5:\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n default:\n throw Error(\"Unknown root exit status.\");\n }\n }\n }\n ensureRootIsScheduled(root, now());\n return root.callbackNode === originalCallbackNode\n ? performConcurrentWorkOnRoot.bind(null, root)\n : null;\n}\nfunction recoverFromConcurrentError(root, errorRetryLanes) {\n var errorsFromFirstAttempt = workInProgressRootConcurrentErrors;\n root.current.memoizedState.isDehydrated &&\n (prepareFreshStack(root, errorRetryLanes).flags |= 256);\n root = renderRootSync(root, errorRetryLanes);\n 2 !== root &&\n ((errorRetryLanes = workInProgressRootRecoverableErrors),\n (workInProgressRootRecoverableErrors = errorsFromFirstAttempt),\n null !== errorRetryLanes && queueRecoverableErrors(errorRetryLanes));\n return root;\n}\nfunction queueRecoverableErrors(errors) {\n null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = errors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n errors\n );\n}\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n for (var node = finishedWork; ; ) {\n if (node.flags & 16384) {\n var updateQueue = node.updateQueue;\n if (\n null !== updateQueue &&\n ((updateQueue = updateQueue.stores), null !== updateQueue)\n )\n for (var i = 0; i < updateQueue.length; i++) {\n var check = updateQueue[i],\n getSnapshot = check.getSnapshot;\n check = check.value;\n try {\n if (!objectIs(getSnapshot(), check)) return !1;\n } catch (error) {\n return !1;\n }\n }\n }\n updateQueue = node.child;\n if (node.subtreeFlags & 16384 && null !== updateQueue)\n (updateQueue.return = node), (node = updateQueue);\n else {\n if (node === finishedWork) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === finishedWork) return !0;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n return !0;\n}\nfunction markRootSuspended$1(root, suspendedLanes) {\n suspendedLanes &= ~workInProgressRootPingedLanes;\n suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes;\n for (root = root.expirationTimes; 0 < suspendedLanes; ) {\n var index$6 = 31 - clz32(suspendedLanes),\n lane = 1 << index$6;\n root[index$6] = -1;\n suspendedLanes &= ~lane;\n }\n}\nfunction performSyncWorkOnRoot(root) {\n if (0 !== (executionContext & 6))\n throw Error(\"Should not already be working.\");\n flushPassiveEffects();\n var lanes = getNextLanes(root, 0);\n if (0 === (lanes & 1)) return ensureRootIsScheduled(root, now()), null;\n var exitStatus = renderRootSync(root, lanes);\n if (0 !== root.tag && 2 === exitStatus) {\n var errorRetryLanes = getLanesToRetrySynchronouslyOnError(root);\n 0 !== errorRetryLanes &&\n ((lanes = errorRetryLanes),\n (exitStatus = recoverFromConcurrentError(root, errorRetryLanes)));\n }\n if (1 === exitStatus)\n throw ((exitStatus = workInProgressRootFatalError),\n prepareFreshStack(root, 0),\n markRootSuspended$1(root, lanes),\n ensureRootIsScheduled(root, now()),\n exitStatus);\n if (6 === exitStatus)\n throw Error(\"Root did not complete. This is a bug in React.\");\n root.finishedWork = root.current.alternate;\n root.finishedLanes = lanes;\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n ensureRootIsScheduled(root, now());\n return null;\n}\nfunction popRenderLanes() {\n subtreeRenderLanes = subtreeRenderLanesCursor.current;\n pop(subtreeRenderLanesCursor);\n}\nfunction prepareFreshStack(root, lanes) {\n root.finishedWork = null;\n root.finishedLanes = 0;\n var timeoutHandle = root.timeoutHandle;\n -1 !== timeoutHandle &&\n ((root.timeoutHandle = -1), cancelTimeout(timeoutHandle));\n if (null !== workInProgress)\n for (timeoutHandle = workInProgress.return; null !== timeoutHandle; ) {\n var interruptedWork = timeoutHandle;\n popTreeContext(interruptedWork);\n switch (interruptedWork.tag) {\n case 1:\n interruptedWork = interruptedWork.type.childContextTypes;\n null !== interruptedWork &&\n void 0 !== interruptedWork &&\n popContext();\n break;\n case 3:\n popHostContainer();\n pop(didPerformWorkStackCursor);\n pop(contextStackCursor);\n resetWorkInProgressVersions();\n break;\n case 5:\n popHostContext(interruptedWork);\n break;\n case 4:\n popHostContainer();\n break;\n case 13:\n pop(suspenseStackCursor);\n break;\n case 19:\n pop(suspenseStackCursor);\n break;\n case 10:\n popProvider(interruptedWork.type._context);\n break;\n case 22:\n case 23:\n popRenderLanes();\n }\n timeoutHandle = timeoutHandle.return;\n }\n workInProgressRoot = root;\n workInProgress = root = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = subtreeRenderLanes = lanes;\n workInProgressRootExitStatus = 0;\n workInProgressRootFatalError = null;\n workInProgressRootPingedLanes = workInProgressRootInterleavedUpdatedLanes = workInProgressRootSkippedLanes = 0;\n workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors = null;\n if (null !== concurrentQueues) {\n for (lanes = 0; lanes < concurrentQueues.length; lanes++)\n if (\n ((timeoutHandle = concurrentQueues[lanes]),\n (interruptedWork = timeoutHandle.interleaved),\n null !== interruptedWork)\n ) {\n timeoutHandle.interleaved = null;\n var firstInterleavedUpdate = interruptedWork.next,\n lastPendingUpdate = timeoutHandle.pending;\n if (null !== lastPendingUpdate) {\n var firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = firstInterleavedUpdate;\n interruptedWork.next = firstPendingUpdate;\n }\n timeoutHandle.pending = interruptedWork;\n }\n concurrentQueues = null;\n }\n return root;\n}\nfunction handleError(root$jscomp$0, thrownValue) {\n do {\n var erroredWork = workInProgress;\n try {\n resetContextDependencies();\n ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n if (didScheduleRenderPhaseUpdate) {\n for (\n var hook = currentlyRenderingFiber$1.memoizedState;\n null !== hook;\n\n ) {\n var queue = hook.queue;\n null !== queue && (queue.pending = null);\n hook = hook.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber$1 = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n ReactCurrentOwner$2.current = null;\n if (null === erroredWork || null === erroredWork.return) {\n workInProgressRootExitStatus = 1;\n workInProgressRootFatalError = thrownValue;\n workInProgress = null;\n break;\n }\n a: {\n var root = root$jscomp$0,\n returnFiber = erroredWork.return,\n sourceFiber = erroredWork,\n value = thrownValue;\n thrownValue = workInProgressRootRenderLanes;\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n var wakeable = value,\n sourceFiber$jscomp$0 = sourceFiber,\n tag = sourceFiber$jscomp$0.tag;\n if (\n 0 === (sourceFiber$jscomp$0.mode & 1) &&\n (0 === tag || 11 === tag || 15 === tag)\n ) {\n var currentSource = sourceFiber$jscomp$0.alternate;\n currentSource\n ? ((sourceFiber$jscomp$0.updateQueue = currentSource.updateQueue),\n (sourceFiber$jscomp$0.memoizedState =\n currentSource.memoizedState),\n (sourceFiber$jscomp$0.lanes = currentSource.lanes))\n : ((sourceFiber$jscomp$0.updateQueue = null),\n (sourceFiber$jscomp$0.memoizedState = null));\n }\n b: {\n sourceFiber$jscomp$0 = returnFiber;\n do {\n var JSCompiler_temp;\n if ((JSCompiler_temp = 13 === sourceFiber$jscomp$0.tag)) {\n var nextState = sourceFiber$jscomp$0.memoizedState;\n JSCompiler_temp =\n null !== nextState\n ? null !== nextState.dehydrated\n ? !0\n : !1\n : !0;\n }\n if (JSCompiler_temp) {\n var suspenseBoundary = sourceFiber$jscomp$0;\n break b;\n }\n sourceFiber$jscomp$0 = sourceFiber$jscomp$0.return;\n } while (null !== sourceFiber$jscomp$0);\n suspenseBoundary = null;\n }\n if (null !== suspenseBoundary) {\n suspenseBoundary.flags &= -257;\n value = suspenseBoundary;\n sourceFiber$jscomp$0 = thrownValue;\n if (0 === (value.mode & 1))\n if (value === returnFiber) value.flags |= 65536;\n else {\n value.flags |= 128;\n sourceFiber.flags |= 131072;\n sourceFiber.flags &= -52805;\n if (1 === sourceFiber.tag)\n if (null === sourceFiber.alternate) sourceFiber.tag = 17;\n else {\n var update = createUpdate(-1, 1);\n update.tag = 2;\n enqueueUpdate(sourceFiber, update, 1);\n }\n sourceFiber.lanes |= 1;\n }\n else (value.flags |= 65536), (value.lanes = sourceFiber$jscomp$0);\n suspenseBoundary.mode & 1 &&\n attachPingListener(root, wakeable, thrownValue);\n thrownValue = suspenseBoundary;\n root = wakeable;\n var wakeables = thrownValue.updateQueue;\n if (null === wakeables) {\n var updateQueue = new Set();\n updateQueue.add(root);\n thrownValue.updateQueue = updateQueue;\n } else wakeables.add(root);\n break a;\n } else {\n if (0 === (thrownValue & 1)) {\n attachPingListener(root, wakeable, thrownValue);\n renderDidSuspendDelayIfPossible();\n break a;\n }\n value = Error(\n \"A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition.\"\n );\n }\n }\n root = value = createCapturedValueAtFiber(value, sourceFiber);\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [root])\n : workInProgressRootConcurrentErrors.push(root);\n root = returnFiber;\n do {\n switch (root.tag) {\n case 3:\n wakeable = value;\n root.flags |= 65536;\n thrownValue &= -thrownValue;\n root.lanes |= thrownValue;\n var update$jscomp$0 = createRootErrorUpdate(\n root,\n wakeable,\n thrownValue\n );\n enqueueCapturedUpdate(root, update$jscomp$0);\n break a;\n case 1:\n wakeable = value;\n var ctor = root.type,\n instance = root.stateNode;\n if (\n 0 === (root.flags & 128) &&\n (\"function\" === typeof ctor.getDerivedStateFromError ||\n (null !== instance &&\n \"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance))))\n ) {\n root.flags |= 65536;\n thrownValue &= -thrownValue;\n root.lanes |= thrownValue;\n var update$32 = createClassErrorUpdate(\n root,\n wakeable,\n thrownValue\n );\n enqueueCapturedUpdate(root, update$32);\n break a;\n }\n }\n root = root.return;\n } while (null !== root);\n }\n completeUnitOfWork(erroredWork);\n } catch (yetAnotherThrownValue) {\n thrownValue = yetAnotherThrownValue;\n workInProgress === erroredWork &&\n null !== erroredWork &&\n (workInProgress = erroredWork = erroredWork.return);\n continue;\n }\n break;\n } while (1);\n}\nfunction pushDispatcher() {\n var prevDispatcher = ReactCurrentDispatcher$2.current;\n ReactCurrentDispatcher$2.current = ContextOnlyDispatcher;\n return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n}\nfunction renderDidSuspendDelayIfPossible() {\n if (\n 0 === workInProgressRootExitStatus ||\n 3 === workInProgressRootExitStatus ||\n 2 === workInProgressRootExitStatus\n )\n workInProgressRootExitStatus = 4;\n null === workInProgressRoot ||\n (0 === (workInProgressRootSkippedLanes & 268435455) &&\n 0 === (workInProgressRootInterleavedUpdatedLanes & 268435455)) ||\n markRootSuspended$1(workInProgressRoot, workInProgressRootRenderLanes);\n}\nfunction renderRootSync(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher();\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes)\n (workInProgressTransitions = null), prepareFreshStack(root, lanes);\n do\n try {\n workLoopSync();\n break;\n } catch (thrownValue) {\n handleError(root, thrownValue);\n }\n while (1);\n resetContextDependencies();\n executionContext = prevExecutionContext;\n ReactCurrentDispatcher$2.current = prevDispatcher;\n if (null !== workInProgress)\n throw Error(\n \"Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue.\"\n );\n workInProgressRoot = null;\n workInProgressRootRenderLanes = 0;\n return workInProgressRootExitStatus;\n}\nfunction workLoopSync() {\n for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n}\nfunction workLoopConcurrent() {\n for (; null !== workInProgress && !shouldYield(); )\n performUnitOfWork(workInProgress);\n}\nfunction performUnitOfWork(unitOfWork) {\n var next = beginWork$1(unitOfWork.alternate, unitOfWork, subtreeRenderLanes);\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n ReactCurrentOwner$2.current = null;\n}\nfunction completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n do {\n var current = completedWork.alternate;\n unitOfWork = completedWork.return;\n if (0 === (completedWork.flags & 32768)) {\n if (\n ((current = completeWork(current, completedWork, subtreeRenderLanes)),\n null !== current)\n ) {\n workInProgress = current;\n return;\n }\n } else {\n current = unwindWork(current, completedWork);\n if (null !== current) {\n current.flags &= 32767;\n workInProgress = current;\n return;\n }\n if (null !== unitOfWork)\n (unitOfWork.flags |= 32768),\n (unitOfWork.subtreeFlags = 0),\n (unitOfWork.deletions = null);\n else {\n workInProgressRootExitStatus = 6;\n workInProgress = null;\n return;\n }\n }\n completedWork = completedWork.sibling;\n if (null !== completedWork) {\n workInProgress = completedWork;\n return;\n }\n workInProgress = completedWork = unitOfWork;\n } while (null !== completedWork);\n 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);\n}\nfunction commitRoot(root, recoverableErrors, transitions) {\n var previousUpdateLanePriority = currentUpdatePriority,\n prevTransition = ReactCurrentBatchConfig$2.transition;\n try {\n (ReactCurrentBatchConfig$2.transition = null),\n (currentUpdatePriority = 1),\n commitRootImpl(\n root,\n recoverableErrors,\n transitions,\n previousUpdateLanePriority\n );\n } finally {\n (ReactCurrentBatchConfig$2.transition = prevTransition),\n (currentUpdatePriority = previousUpdateLanePriority);\n }\n return null;\n}\nfunction commitRootImpl(\n root,\n recoverableErrors,\n transitions,\n renderPriorityLevel\n) {\n do flushPassiveEffects();\n while (null !== rootWithPendingPassiveEffects);\n if (0 !== (executionContext & 6))\n throw Error(\"Should not already be working.\");\n transitions = root.finishedWork;\n var lanes = root.finishedLanes;\n if (null === transitions) return null;\n root.finishedWork = null;\n root.finishedLanes = 0;\n if (transitions === root.current)\n throw Error(\n \"Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.\"\n );\n root.callbackNode = null;\n root.callbackPriority = 0;\n var remainingLanes = transitions.lanes | transitions.childLanes;\n markRootFinished(root, remainingLanes);\n root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n (0 === (transitions.subtreeFlags & 2064) &&\n 0 === (transitions.flags & 2064)) ||\n rootDoesHavePassiveEffects ||\n ((rootDoesHavePassiveEffects = !0),\n scheduleCallback$1(NormalPriority, function() {\n flushPassiveEffects();\n return null;\n }));\n remainingLanes = 0 !== (transitions.flags & 15990);\n if (0 !== (transitions.subtreeFlags & 15990) || remainingLanes) {\n remainingLanes = ReactCurrentBatchConfig$2.transition;\n ReactCurrentBatchConfig$2.transition = null;\n var previousPriority = currentUpdatePriority;\n currentUpdatePriority = 1;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n ReactCurrentOwner$2.current = null;\n commitBeforeMutationEffects(root, transitions);\n commitMutationEffectsOnFiber(transitions, root);\n root.current = transitions;\n commitLayoutEffects(transitions, root, lanes);\n requestPaint();\n executionContext = prevExecutionContext;\n currentUpdatePriority = previousPriority;\n ReactCurrentBatchConfig$2.transition = remainingLanes;\n } else root.current = transitions;\n rootDoesHavePassiveEffects &&\n ((rootDoesHavePassiveEffects = !1),\n (rootWithPendingPassiveEffects = root),\n (pendingPassiveEffectsLanes = lanes));\n remainingLanes = root.pendingLanes;\n 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);\n onCommitRoot(transitions.stateNode, renderPriorityLevel);\n ensureRootIsScheduled(root, now());\n if (null !== recoverableErrors)\n for (\n renderPriorityLevel = root.onRecoverableError, transitions = 0;\n transitions < recoverableErrors.length;\n transitions++\n )\n (lanes = recoverableErrors[transitions]),\n renderPriorityLevel(lanes.value, {\n componentStack: lanes.stack,\n digest: lanes.digest\n });\n if (hasUncaughtError)\n throw ((hasUncaughtError = !1),\n (root = firstUncaughtError),\n (firstUncaughtError = null),\n root);\n 0 !== (pendingPassiveEffectsLanes & 1) &&\n 0 !== root.tag &&\n flushPassiveEffects();\n remainingLanes = root.pendingLanes;\n 0 !== (remainingLanes & 1)\n ? root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n : (nestedUpdateCount = 0);\n flushSyncCallbacks();\n return null;\n}\nfunction flushPassiveEffects() {\n if (null !== rootWithPendingPassiveEffects) {\n var renderPriority = lanesToEventPriority(pendingPassiveEffectsLanes),\n prevTransition = ReactCurrentBatchConfig$2.transition,\n previousPriority = currentUpdatePriority;\n try {\n ReactCurrentBatchConfig$2.transition = null;\n currentUpdatePriority = 16 > renderPriority ? 16 : renderPriority;\n if (null === rootWithPendingPassiveEffects)\n var JSCompiler_inline_result = !1;\n else {\n renderPriority = rootWithPendingPassiveEffects;\n rootWithPendingPassiveEffects = null;\n pendingPassiveEffectsLanes = 0;\n if (0 !== (executionContext & 6))\n throw Error(\"Cannot flush passive effects while already rendering.\");\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n for (nextEffect = renderPriority.current; null !== nextEffect; ) {\n var fiber = nextEffect,\n child = fiber.child;\n if (0 !== (nextEffect.flags & 16)) {\n var deletions = fiber.deletions;\n if (null !== deletions) {\n for (var i = 0; i < deletions.length; i++) {\n var fiberToDelete = deletions[i];\n for (nextEffect = fiberToDelete; null !== nextEffect; ) {\n var fiber$jscomp$0 = nextEffect;\n switch (fiber$jscomp$0.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber$jscomp$0, fiber);\n }\n var child$jscomp$0 = fiber$jscomp$0.child;\n if (null !== child$jscomp$0)\n (child$jscomp$0.return = fiber$jscomp$0),\n (nextEffect = child$jscomp$0);\n else\n for (; null !== nextEffect; ) {\n fiber$jscomp$0 = nextEffect;\n var sibling = fiber$jscomp$0.sibling,\n returnFiber = fiber$jscomp$0.return;\n detachFiberAfterEffects(fiber$jscomp$0);\n if (fiber$jscomp$0 === fiberToDelete) {\n nextEffect = null;\n break;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break;\n }\n nextEffect = returnFiber;\n }\n }\n }\n var previousFiber = fiber.alternate;\n if (null !== previousFiber) {\n var detachedChild = previousFiber.child;\n if (null !== detachedChild) {\n previousFiber.child = null;\n do {\n var detachedSibling = detachedChild.sibling;\n detachedChild.sibling = null;\n detachedChild = detachedSibling;\n } while (null !== detachedChild);\n }\n }\n nextEffect = fiber;\n }\n }\n if (0 !== (fiber.subtreeFlags & 2064) && null !== child)\n (child.return = fiber), (nextEffect = child);\n else\n b: for (; null !== nextEffect; ) {\n fiber = nextEffect;\n if (0 !== (fiber.flags & 2048))\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(9, fiber, fiber.return);\n }\n var sibling$jscomp$0 = fiber.sibling;\n if (null !== sibling$jscomp$0) {\n sibling$jscomp$0.return = fiber.return;\n nextEffect = sibling$jscomp$0;\n break b;\n }\n nextEffect = fiber.return;\n }\n }\n var finishedWork = renderPriority.current;\n for (nextEffect = finishedWork; null !== nextEffect; ) {\n child = nextEffect;\n var firstChild = child.child;\n if (0 !== (child.subtreeFlags & 2064) && null !== firstChild)\n (firstChild.return = child), (nextEffect = firstChild);\n else\n b: for (child = finishedWork; null !== nextEffect; ) {\n deletions = nextEffect;\n if (0 !== (deletions.flags & 2048))\n try {\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListMount(9, deletions);\n }\n } catch (error) {\n captureCommitPhaseError(deletions, deletions.return, error);\n }\n if (deletions === child) {\n nextEffect = null;\n break b;\n }\n var sibling$jscomp$1 = deletions.sibling;\n if (null !== sibling$jscomp$1) {\n sibling$jscomp$1.return = deletions.return;\n nextEffect = sibling$jscomp$1;\n break b;\n }\n nextEffect = deletions.return;\n }\n }\n executionContext = prevExecutionContext;\n flushSyncCallbacks();\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onPostCommitFiberRoot\n )\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, renderPriority);\n } catch (err) {}\n JSCompiler_inline_result = !0;\n }\n return JSCompiler_inline_result;\n } finally {\n (currentUpdatePriority = previousPriority),\n (ReactCurrentBatchConfig$2.transition = prevTransition);\n }\n }\n return !1;\n}\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createRootErrorUpdate(rootFiber, sourceFiber, 1);\n rootFiber = enqueueUpdate(rootFiber, sourceFiber, 1);\n sourceFiber = requestEventTime();\n null !== rootFiber &&\n (markRootUpdated(rootFiber, 1, sourceFiber),\n ensureRootIsScheduled(rootFiber, sourceFiber));\n}\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {\n if (3 === sourceFiber.tag)\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n else\n for (\n nearestMountedAncestor = sourceFiber.return;\n null !== nearestMountedAncestor;\n\n ) {\n if (3 === nearestMountedAncestor.tag) {\n captureCommitPhaseErrorOnRoot(\n nearestMountedAncestor,\n sourceFiber,\n error\n );\n break;\n } else if (1 === nearestMountedAncestor.tag) {\n var instance = nearestMountedAncestor.stateNode;\n if (\n \"function\" ===\n typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n (\"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n ) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createClassErrorUpdate(\n nearestMountedAncestor,\n sourceFiber,\n 1\n );\n nearestMountedAncestor = enqueueUpdate(\n nearestMountedAncestor,\n sourceFiber,\n 1\n );\n sourceFiber = requestEventTime();\n null !== nearestMountedAncestor &&\n (markRootUpdated(nearestMountedAncestor, 1, sourceFiber),\n ensureRootIsScheduled(nearestMountedAncestor, sourceFiber));\n break;\n }\n }\n nearestMountedAncestor = nearestMountedAncestor.return;\n }\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n null !== pingCache && pingCache.delete(wakeable);\n wakeable = requestEventTime();\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n workInProgressRoot === root &&\n (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n (4 === workInProgressRootExitStatus ||\n (3 === workInProgressRootExitStatus &&\n (workInProgressRootRenderLanes & 130023424) ===\n workInProgressRootRenderLanes &&\n 500 > now() - globalMostRecentFallbackTime)\n ? prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes));\n ensureRootIsScheduled(root, wakeable);\n}\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n 0 === retryLane &&\n (0 === (boundaryFiber.mode & 1)\n ? (retryLane = 1)\n : ((retryLane = nextRetryLane),\n (nextRetryLane <<= 1),\n 0 === (nextRetryLane & 130023424) && (nextRetryLane = 4194304)));\n var eventTime = requestEventTime();\n boundaryFiber = markUpdateLaneFromFiberToRoot(boundaryFiber, retryLane);\n null !== boundaryFiber &&\n (markRootUpdated(boundaryFiber, retryLane, eventTime),\n ensureRootIsScheduled(boundaryFiber, eventTime));\n}\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState,\n retryLane = 0;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = 0;\n switch (boundaryFiber.tag) {\n case 13:\n var retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n break;\n case 19:\n retryCache = boundaryFiber.stateNode;\n break;\n default:\n throw Error(\n \"Pinged unknown suspense boundary type. This is probably a bug in React.\"\n );\n }\n null !== retryCache && retryCache.delete(wakeable);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nvar beginWork$1;\nbeginWork$1 = function(current, workInProgress, renderLanes) {\n if (null !== current)\n if (\n current.memoizedProps !== workInProgress.pendingProps ||\n didPerformWorkStackCursor.current\n )\n didReceiveUpdate = !0;\n else {\n if (\n 0 === (current.lanes & renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else didReceiveUpdate = !1;\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 2:\n var Component = workInProgress.type;\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress);\n current = workInProgress.pendingProps;\n var context = getMaskedContext(\n workInProgress,\n contextStackCursor.current\n );\n prepareToReadContext(workInProgress, renderLanes);\n context = renderWithHooks(\n null,\n workInProgress,\n Component,\n current,\n context,\n renderLanes\n );\n workInProgress.flags |= 1;\n if (\n \"object\" === typeof context &&\n null !== context &&\n \"function\" === typeof context.render &&\n void 0 === context.$$typeof\n ) {\n workInProgress.tag = 1;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n if (isContextProvider(Component)) {\n var hasContext = !0;\n pushContextProvider(workInProgress);\n } else hasContext = !1;\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state\n ? context.state\n : null;\n initializeUpdateQueue(workInProgress);\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n mountClassInstance(workInProgress, Component, current, renderLanes);\n workInProgress = finishClassComponent(\n null,\n workInProgress,\n Component,\n !0,\n hasContext,\n renderLanes\n );\n } else\n (workInProgress.tag = 0),\n reconcileChildren(null, workInProgress, context, renderLanes),\n (workInProgress = workInProgress.child);\n return workInProgress;\n case 16:\n Component = workInProgress.elementType;\n a: {\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress);\n current = workInProgress.pendingProps;\n context = Component._init;\n Component = context(Component._payload);\n workInProgress.type = Component;\n context = workInProgress.tag = resolveLazyComponentTag(Component);\n current = resolveDefaultProps(Component, current);\n switch (context) {\n case 0:\n workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n Component,\n current,\n renderLanes\n );\n break a;\n case 1:\n workInProgress = updateClassComponent(\n null,\n workInProgress,\n Component,\n current,\n renderLanes\n );\n break a;\n case 11:\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n Component,\n current,\n renderLanes\n );\n break a;\n case 14:\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n Component,\n resolveDefaultProps(Component.type, current),\n renderLanes\n );\n break a;\n }\n throw Error(\n \"Element type is invalid. Received a promise that resolves to: \" +\n Component +\n \". Lazy element type must resolve to a class or function.\"\n );\n }\n return workInProgress;\n case 0:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n updateFunctionComponent(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 1:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n updateClassComponent(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 3:\n pushHostRootContext(workInProgress);\n if (null === current)\n throw Error(\"Should have a current fiber. This is a bug in React.\");\n context = workInProgress.pendingProps;\n Component = workInProgress.memoizedState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, context, null, renderLanes);\n context = workInProgress.memoizedState.element;\n context === Component\n ? (workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ))\n : (reconcileChildren(current, workInProgress, context, renderLanes),\n (workInProgress = workInProgress.child));\n return workInProgress;\n case 5:\n return (\n pushHostContext(workInProgress),\n (Component = workInProgress.pendingProps.children),\n markRef(current, workInProgress),\n reconcileChildren(current, workInProgress, Component, renderLanes),\n workInProgress.child\n );\n case 6:\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (Component = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n ))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n workInProgress.child\n );\n case 11:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n updateForwardRef(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n a: {\n Component = workInProgress.type._context;\n context = workInProgress.pendingProps;\n hasContext = workInProgress.memoizedProps;\n var newValue = context.value;\n push(valueCursor, Component._currentValue2);\n Component._currentValue2 = newValue;\n if (null !== hasContext)\n if (objectIs(hasContext.value, newValue)) {\n if (\n hasContext.children === context.children &&\n !didPerformWorkStackCursor.current\n ) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n } else\n for (\n hasContext = workInProgress.child,\n null !== hasContext && (hasContext.return = workInProgress);\n null !== hasContext;\n\n ) {\n var list = hasContext.dependencies;\n if (null !== list) {\n newValue = hasContext.child;\n for (\n var dependency = list.firstContext;\n null !== dependency;\n\n ) {\n if (dependency.context === Component) {\n if (1 === hasContext.tag) {\n dependency = createUpdate(-1, renderLanes & -renderLanes);\n dependency.tag = 2;\n var updateQueue = hasContext.updateQueue;\n if (null !== updateQueue) {\n updateQueue = updateQueue.shared;\n var pending = updateQueue.pending;\n null === pending\n ? (dependency.next = dependency)\n : ((dependency.next = pending.next),\n (pending.next = dependency));\n updateQueue.pending = dependency;\n }\n }\n hasContext.lanes |= renderLanes;\n dependency = hasContext.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n hasContext.return,\n renderLanes,\n workInProgress\n );\n list.lanes |= renderLanes;\n break;\n }\n dependency = dependency.next;\n }\n } else if (10 === hasContext.tag)\n newValue =\n hasContext.type === workInProgress.type\n ? null\n : hasContext.child;\n else if (18 === hasContext.tag) {\n newValue = hasContext.return;\n if (null === newValue)\n throw Error(\n \"We just came from a parent so we must have had a parent. This is a bug in React.\"\n );\n newValue.lanes |= renderLanes;\n list = newValue.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n newValue,\n renderLanes,\n workInProgress\n );\n newValue = hasContext.sibling;\n } else newValue = hasContext.child;\n if (null !== newValue) newValue.return = hasContext;\n else\n for (newValue = hasContext; null !== newValue; ) {\n if (newValue === workInProgress) {\n newValue = null;\n break;\n }\n hasContext = newValue.sibling;\n if (null !== hasContext) {\n hasContext.return = newValue.return;\n newValue = hasContext;\n break;\n }\n newValue = newValue.return;\n }\n hasContext = newValue;\n }\n reconcileChildren(\n current,\n workInProgress,\n context.children,\n renderLanes\n );\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 9:\n return (\n (context = workInProgress.type),\n (Component = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress, renderLanes),\n (context = readContext(context)),\n (Component = Component(context)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, Component, renderLanes),\n workInProgress.child\n );\n case 14:\n return (\n (Component = workInProgress.type),\n (context = resolveDefaultProps(Component, workInProgress.pendingProps)),\n (context = resolveDefaultProps(Component.type, context)),\n updateMemoComponent(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 17:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress),\n (workInProgress.tag = 1),\n isContextProvider(Component)\n ? ((current = !0), pushContextProvider(workInProgress))\n : (current = !1),\n prepareToReadContext(workInProgress, renderLanes),\n constructClassInstance(workInProgress, Component, context),\n mountClassInstance(workInProgress, Component, context, renderLanes),\n finishClassComponent(\n null,\n workInProgress,\n Component,\n !0,\n current,\n renderLanes\n )\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(current, workInProgress, renderLanes);\n }\n throw Error(\n \"Unknown unit of work tag (\" +\n workInProgress.tag +\n \"). This error is likely caused by a bug in React. Please file an issue.\"\n );\n};\nfunction scheduleCallback$1(priorityLevel, callback) {\n return scheduleCallback(priorityLevel, callback);\n}\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null;\n this.index = 0;\n this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiber(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction resolveLazyComponentTag(Component) {\n if (\"function\" === typeof Component)\n return shouldConstruct(Component) ? 1 : 0;\n if (void 0 !== Component && null !== Component) {\n Component = Component.$$typeof;\n if (Component === REACT_FORWARD_REF_TYPE) return 11;\n if (Component === REACT_MEMO_TYPE) return 14;\n }\n return 2;\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiber(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 14680064;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 2;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type) fiberTag = 5;\n else\n a: switch (type) {\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 8;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiber(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiber(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiber(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_OFFSCREEN_TYPE:\n return createFiberFromOffscreen(pendingProps, mode, lanes, key);\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_PROVIDER_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONTEXT_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n throw Error(\n \"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: \" +\n ((null == type ? type : typeof type) + \".\")\n );\n }\n key = createFiber(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiber(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromOffscreen(pendingProps, mode, lanes, key) {\n pendingProps = createFiber(22, pendingProps, key, mode);\n pendingProps.elementType = REACT_OFFSCREEN_TYPE;\n pendingProps.lanes = lanes;\n pendingProps.stateNode = { isHidden: !1 };\n return pendingProps;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiber(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiber(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nfunction FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onRecoverableError\n) {\n this.tag = tag;\n this.containerInfo = containerInfo;\n this.finishedWork = this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = -1;\n this.callbackNode = this.pendingContext = this.context = null;\n this.callbackPriority = 0;\n this.eventTimes = createLaneMap(0);\n this.expirationTimes = createLaneMap(-1);\n this.entangledLanes = this.finishedLanes = this.mutableReadLanes = this.expiredLanes = this.pingedLanes = this.suspendedLanes = this.pendingLanes = 0;\n this.entanglements = createLaneMap(0);\n this.identifierPrefix = identifierPrefix;\n this.onRecoverableError = onRecoverableError;\n}\nfunction createPortal(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\nfunction findHostInstance(component) {\n var fiber = component._reactInternals;\n if (void 0 === fiber) {\n if (\"function\" === typeof component.render)\n throw Error(\"Unable to find node on an unmounted component.\");\n component = Object.keys(component).join(\",\");\n throw Error(\n \"Argument appears to not be a ReactComponent. Keys: \" + component\n );\n }\n component = findCurrentHostFiber(fiber);\n return null === component ? null : component.stateNode;\n}\nfunction updateContainer(element, container, parentComponent, callback) {\n var current = container.current,\n eventTime = requestEventTime(),\n lane = requestUpdateLane(current);\n a: if (parentComponent) {\n parentComponent = parentComponent._reactInternals;\n b: {\n if (\n getNearestMountedFiber(parentComponent) !== parentComponent ||\n 1 !== parentComponent.tag\n )\n throw Error(\n \"Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.\"\n );\n var JSCompiler_inline_result = parentComponent;\n do {\n switch (JSCompiler_inline_result.tag) {\n case 3:\n JSCompiler_inline_result =\n JSCompiler_inline_result.stateNode.context;\n break b;\n case 1:\n if (isContextProvider(JSCompiler_inline_result.type)) {\n JSCompiler_inline_result =\n JSCompiler_inline_result.stateNode\n .__reactInternalMemoizedMergedChildContext;\n break b;\n }\n }\n JSCompiler_inline_result = JSCompiler_inline_result.return;\n } while (null !== JSCompiler_inline_result);\n throw Error(\n \"Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (1 === parentComponent.tag) {\n var Component = parentComponent.type;\n if (isContextProvider(Component)) {\n parentComponent = processChildContext(\n parentComponent,\n Component,\n JSCompiler_inline_result\n );\n break a;\n }\n }\n parentComponent = JSCompiler_inline_result;\n } else parentComponent = emptyContextObject;\n null === container.context\n ? (container.context = parentComponent)\n : (container.pendingContext = parentComponent);\n container = createUpdate(eventTime, lane);\n container.payload = { element: element };\n callback = void 0 === callback ? null : callback;\n null !== callback && (container.callback = callback);\n element = enqueueUpdate(current, container, lane);\n null !== element &&\n (scheduleUpdateOnFiber(element, current, lane, eventTime),\n entangleTransitions(element, current, lane));\n return lane;\n}\nfunction emptyFindFiberByHostInstance() {\n return null;\n}\nfunction findNodeHandle(componentOrHandle) {\n if (null == componentOrHandle) return null;\n if (\"number\" === typeof componentOrHandle) return componentOrHandle;\n if (componentOrHandle._nativeTag) return componentOrHandle._nativeTag;\n if (componentOrHandle.canonical && componentOrHandle.canonical._nativeTag)\n return componentOrHandle.canonical._nativeTag;\n componentOrHandle = findHostInstance(componentOrHandle);\n return null == componentOrHandle\n ? componentOrHandle\n : componentOrHandle.canonical\n ? componentOrHandle.canonical._nativeTag\n : componentOrHandle._nativeTag;\n}\nfunction onRecoverableError(error) {\n console.error(error);\n}\nbatchedUpdatesImpl = function(fn, a) {\n var prevExecutionContext = executionContext;\n executionContext |= 1;\n try {\n return fn(a);\n } finally {\n (executionContext = prevExecutionContext),\n 0 === executionContext &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n includesLegacySyncCallbacks && flushSyncCallbacks());\n }\n};\nvar roots = new Map(),\n devToolsConfig$jscomp$inline_938 = {\n findFiberByHostInstance: getInstanceFromInstance,\n bundleType: 0,\n version: \"18.2.0-next-9e3b772b8-20220608\",\n rendererPackageName: \"react-native-renderer\",\n rendererConfig: {\n getInspectorDataForViewTag: function() {\n throw Error(\n \"getInspectorDataForViewTag() is not available in production\"\n );\n },\n getInspectorDataForViewAtPoint: function() {\n throw Error(\n \"getInspectorDataForViewAtPoint() is not available in production.\"\n );\n }.bind(null, findNodeHandle)\n }\n };\nvar internals$jscomp$inline_1180 = {\n bundleType: devToolsConfig$jscomp$inline_938.bundleType,\n version: devToolsConfig$jscomp$inline_938.version,\n rendererPackageName: devToolsConfig$jscomp$inline_938.rendererPackageName,\n rendererConfig: devToolsConfig$jscomp$inline_938.rendererConfig,\n overrideHookState: null,\n overrideHookStateDeletePath: null,\n overrideHookStateRenamePath: null,\n overrideProps: null,\n overridePropsDeletePath: null,\n overridePropsRenamePath: null,\n setErrorHandler: null,\n setSuspenseHandler: null,\n scheduleUpdate: null,\n currentDispatcherRef: ReactSharedInternals.ReactCurrentDispatcher,\n findHostInstanceByFiber: function(fiber) {\n fiber = findCurrentHostFiber(fiber);\n return null === fiber ? null : fiber.stateNode;\n },\n findFiberByHostInstance:\n devToolsConfig$jscomp$inline_938.findFiberByHostInstance ||\n emptyFindFiberByHostInstance,\n findHostInstancesForRefresh: null,\n scheduleRefresh: null,\n scheduleRoot: null,\n setRefreshHandler: null,\n getCurrentFiber: null,\n reconcilerVersion: \"18.2.0-next-9e3b772b8-20220608\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var hook$jscomp$inline_1181 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (\n !hook$jscomp$inline_1181.isDisabled &&\n hook$jscomp$inline_1181.supportsFiber\n )\n try {\n (rendererID = hook$jscomp$inline_1181.inject(\n internals$jscomp$inline_1180\n )),\n (injectedHook = hook$jscomp$inline_1181);\n } catch (err) {}\n}\nexports.createPortal = function(children, containerTag) {\n return createPortal(\n children,\n containerTag,\n null,\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null\n );\n};\nexports.dispatchCommand = function(handle, command, args) {\n null != handle._nativeTag &&\n (null != handle._internalInstanceHandle\n ? ((handle = handle._internalInstanceHandle.stateNode),\n null != handle &&\n nativeFabricUIManager.dispatchCommand(handle.node, command, args))\n : ReactNativePrivateInterface.UIManager.dispatchViewManagerCommand(\n handle._nativeTag,\n command,\n args\n ));\n};\nexports.findHostInstance_DEPRECATED = function(componentOrHandle) {\n if (null == componentOrHandle) return null;\n if (componentOrHandle._nativeTag) return componentOrHandle;\n if (componentOrHandle.canonical && componentOrHandle.canonical._nativeTag)\n return componentOrHandle.canonical;\n componentOrHandle = findHostInstance(componentOrHandle);\n return null == componentOrHandle\n ? componentOrHandle\n : componentOrHandle.canonical\n ? componentOrHandle.canonical\n : componentOrHandle;\n};\nexports.findNodeHandle = findNodeHandle;\nexports.getInspectorDataForInstance = void 0;\nexports.render = function(element, containerTag, callback, concurrentRoot) {\n var root = roots.get(containerTag);\n root ||\n ((root = concurrentRoot ? 1 : 0),\n (concurrentRoot = new FiberRootNode(\n containerTag,\n root,\n !1,\n \"\",\n onRecoverableError\n )),\n (root = createFiber(3, null, null, 1 === root ? 1 : 0)),\n (concurrentRoot.current = root),\n (root.stateNode = concurrentRoot),\n (root.memoizedState = {\n element: null,\n isDehydrated: !1,\n cache: null,\n transitions: null,\n pendingSuspenseBoundaries: null\n }),\n initializeUpdateQueue(root),\n (root = concurrentRoot),\n roots.set(containerTag, root));\n updateContainer(element, root, null, callback);\n a: if (((element = root.current), element.child))\n switch (element.child.tag) {\n case 5:\n element = element.child.stateNode.canonical;\n break a;\n default:\n element = element.child.stateNode;\n }\n else element = null;\n return element;\n};\nexports.sendAccessibilityEvent = function(handle, eventType) {\n null != handle._nativeTag &&\n (null != handle._internalInstanceHandle\n ? ((handle = handle._internalInstanceHandle.stateNode),\n null != handle &&\n nativeFabricUIManager.sendAccessibilityEvent(handle.node, eventType))\n : ReactNativePrivateInterface.legacySendAccessibilityEvent(\n handle._nativeTag,\n eventType\n ));\n};\nexports.stopSurface = function(containerTag) {\n var root = roots.get(containerTag);\n root &&\n updateContainer(null, root, null, function() {\n roots.delete(containerTag);\n });\n};\nexports.unmountComponentAtNode = function(containerTag) {\n this.stopSurface(containerTag);\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport '../Core/InitializeCore';\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n/**\n * Sets up global variables typical in most JavaScript environments.\n *\n * 1. Global timers (via `setTimeout` etc).\n * 2. Global console object.\n * 3. Hooks for printing stack traces with source maps.\n *\n * Leaves enough room in the environment for implementing your own:\n *\n * 1. Require system.\n * 2. Bridged modules.\n *\n */\n\n'use strict';\n\nconst start = Date.now();\n\nrequire('./setUpGlobals');\nrequire('./setUpDOM');\nrequire('./setUpPerformance');\nrequire('./setUpErrorHandling');\nrequire('./polyfillPromise');\nrequire('./setUpRegeneratorRuntime');\nrequire('./setUpTimers');\nrequire('./setUpXHR');\nrequire('./setUpAlert');\nrequire('./setUpNavigator');\nrequire('./setUpBatchedBridge');\nrequire('./setUpSegmentFetcher');\nif (__DEV__) {\n require('./checkNativeVersion');\n require('./setUpDeveloperTools');\n require('../LogBox/LogBox').default.install();\n}\n\nrequire('../ReactNative/AppRegistry');\n\nconst GlobalPerformanceLogger = require('../Utilities/GlobalPerformanceLogger');\n// We could just call GlobalPerformanceLogger.markPoint at the top of the file,\n// but then we'd be excluding the time it took to require the logger.\n// Instead, we just use Date.now and backdate the timestamp.\nGlobalPerformanceLogger.markPoint(\n 'initializeCore_start',\n GlobalPerformanceLogger.currentTimestamp() - (Date.now() - start),\n);\nGlobalPerformanceLogger.markPoint('initializeCore_end');\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\n/**\n * Sets up global variables for React Native.\n * You can use this module directly, or just require InitializeCore.\n */\nif (global.window === undefined) {\n // $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.\n global.window = global;\n}\n\nif (global.self === undefined) {\n // $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.\n global.self = global;\n}\n\n// Set up process\n// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.\nglobal.process = global.process || {};\n// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.\nglobal.process.env = global.process.env || {};\nif (!global.process.env.NODE_ENV) {\n // $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.\n global.process.env.NODE_ENV = __DEV__ ? 'development' : 'production';\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport DOMRect from '../DOM/Geometry/DOMRect';\nimport DOMRectReadOnly from '../DOM/Geometry/DOMRectReadOnly';\n\n// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it\nglobal.DOMRect = DOMRect;\n\n// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it\nglobal.DOMRectReadOnly = DOMRectReadOnly;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n/**\n * The JSDoc comments in this file have been extracted from [DOMRect](https://developer.mozilla.org/en-US/docs/Web/API/DOMRect).\n * Content by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/DOMRect/contributors.txt),\n * licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).\n */\n\nimport DOMRectReadOnly, {type DOMRectLike} from './DOMRectReadOnly';\n\n// flowlint unsafe-getters-setters:off\n\n/**\n * A `DOMRect` describes the size and position of a rectangle.\n * The type of box represented by the `DOMRect` is specified by the method or property that returned it.\n *\n * This is a (mostly) spec-compliant version of `DOMRect` (https://developer.mozilla.org/en-US/docs/Web/API/DOMRect).\n */\nexport default class DOMRect extends DOMRectReadOnly {\n /**\n * The x coordinate of the `DOMRect`'s origin.\n */\n get x(): number {\n return this.__getInternalX();\n }\n\n set x(x: ?number) {\n this.__setInternalX(x);\n }\n\n /**\n * The y coordinate of the `DOMRect`'s origin.\n */\n get y(): number {\n return this.__getInternalY();\n }\n\n set y(y: ?number) {\n this.__setInternalY(y);\n }\n\n /**\n * The width of the `DOMRect`.\n */\n get width(): number {\n return this.__getInternalWidth();\n }\n\n set width(width: ?number) {\n this.__setInternalWidth(width);\n }\n\n /**\n * The height of the `DOMRect`.\n */\n get height(): number {\n return this.__getInternalHeight();\n }\n\n set height(height: ?number) {\n this.__setInternalHeight(height);\n }\n\n /**\n * Creates a new `DOMRect` object with a given location and dimensions.\n */\n static fromRect(rect?: ?DOMRectLike): DOMRect {\n if (!rect) {\n return new DOMRect();\n }\n\n return new DOMRect(rect.x, rect.y, rect.width, rect.height);\n }\n}\n","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n/**\n * The JSDoc comments in this file have been extracted from [DOMRectReadOnly](https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly).\n * Content by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly/contributors.txt),\n * licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).\n */\n\n// flowlint sketchy-null:off, unsafe-getters-setters:off\n\nexport interface DOMRectLike {\n x?: ?number;\n y?: ?number;\n width?: ?number;\n height?: ?number;\n}\n\nfunction castToNumber(value: mixed): number {\n return value ? Number(value) : 0;\n}\n\n/**\n * The `DOMRectReadOnly` interface specifies the standard properties used by `DOMRect` to define a rectangle whose properties are immutable.\n *\n * This is a (mostly) spec-compliant version of `DOMRectReadOnly` (https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly).\n */\nexport default class DOMRectReadOnly {\n _x: number;\n _y: number;\n _width: number;\n _height: number;\n\n constructor(x: ?number, y: ?number, width: ?number, height: ?number) {\n this.__setInternalX(x);\n this.__setInternalY(y);\n this.__setInternalWidth(width);\n this.__setInternalHeight(height);\n }\n\n /**\n * The x coordinate of the `DOMRectReadOnly`'s origin.\n */\n get x(): number {\n return this._x;\n }\n\n /**\n * The y coordinate of the `DOMRectReadOnly`'s origin.\n */\n get y(): number {\n return this._y;\n }\n\n /**\n * The width of the `DOMRectReadOnly`.\n */\n get width(): number {\n return this._width;\n }\n\n /**\n * The height of the `DOMRectReadOnly`.\n */\n get height(): number {\n return this._height;\n }\n\n /**\n * Returns the top coordinate value of the `DOMRect` (has the same value as `y`, or `y + height` if `height` is negative).\n */\n get top(): number {\n const height = this._height;\n const y = this._y;\n\n if (height < 0) {\n return y + height;\n }\n\n return y;\n }\n\n /**\n * Returns the right coordinate value of the `DOMRect` (has the same value as ``x + width`, or `x` if `width` is negative).\n */\n get right(): number {\n const width = this._width;\n const x = this._x;\n\n if (width < 0) {\n return x;\n }\n\n return x + width;\n }\n\n /**\n * Returns the bottom coordinate value of the `DOMRect` (has the same value as `y + height`, or `y` if `height` is negative).\n */\n get bottom(): number {\n const height = this._height;\n const y = this._y;\n\n if (height < 0) {\n return y;\n }\n\n return y + height;\n }\n\n /**\n * Returns the left coordinate value of the `DOMRect` (has the same value as `x`, or `x + width` if `width` is negative).\n */\n get left(): number {\n const width = this._width;\n const x = this._x;\n\n if (width < 0) {\n return x + width;\n }\n\n return x;\n }\n\n toJSON(): {\n x: number,\n y: number,\n width: number,\n height: number,\n top: number,\n left: number,\n bottom: number,\n right: number,\n } {\n const {x, y, width, height, top, left, bottom, right} = this;\n return {x, y, width, height, top, left, bottom, right};\n }\n\n /**\n * Creates a new `DOMRectReadOnly` object with a given location and dimensions.\n */\n static fromRect(rect?: ?DOMRectLike): DOMRectReadOnly {\n if (!rect) {\n return new DOMRectReadOnly();\n }\n\n return new DOMRectReadOnly(rect.x, rect.y, rect.width, rect.height);\n }\n\n __getInternalX(): number {\n return this._x;\n }\n\n __getInternalY(): number {\n return this._y;\n }\n\n __getInternalWidth(): number {\n return this._width;\n }\n\n __getInternalHeight(): number {\n return this._height;\n }\n\n __setInternalX(x: ?number) {\n this._x = castToNumber(x);\n }\n\n __setInternalY(y: ?number) {\n this._y = castToNumber(y);\n }\n\n __setInternalWidth(width: ?number) {\n this._width = castToNumber(width);\n }\n\n __setInternalHeight(height: ?number) {\n this._height = castToNumber(height);\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport NativePerformance from '../WebPerformance/NativePerformance';\nimport Performance from '../WebPerformance/Performance';\n\n// In case if the native implementation of the Performance API is available, use it,\n// otherwise fall back to the legacy/default one, which only defines 'Performance.now()'\nif (NativePerformance) {\n // $FlowExpectedError[cannot-write]\n global.performance = new Performance();\n} else {\n if (!global.performance) {\n // $FlowExpectedError[cannot-write]\n global.performance = ({}: {now?: () => number});\n }\n\n /**\n * Returns a double, measured in milliseconds.\n * https://developer.mozilla.org/en-US/docs/Web/API/Performance/now\n */\n if (typeof global.performance.now !== 'function') {\n // $FlowExpectedError[cannot-write]\n global.performance.now = function () {\n const performanceNow = global.nativePerformanceNow || Date.now;\n return performanceNow();\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport type NativeMemoryInfo = {[key: string]: number};\n\nexport type ReactNativeStartupTiming = {|\n startTime: number,\n endTime: number,\n executeJavaScriptBundleEntryPointStart: number,\n executeJavaScriptBundleEntryPointEnd: number,\n|};\n\nexport interface Spec extends TurboModule {\n +mark: (name: string, startTime: number, duration: number) => void;\n +measure: (\n name: string,\n startTime: number,\n endTime: number,\n duration?: number,\n startMark?: string,\n endMark?: string,\n ) => void;\n +getSimpleMemoryInfo: () => NativeMemoryInfo;\n +getReactNativeStartupTiming: () => ReactNativeStartupTiming;\n}\n\nexport default (TurboModuleRegistry.get('NativePerformanceCxx'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n// flowlint unsafe-getters-setters:off\n\nimport type {HighResTimeStamp, PerformanceEntryType} from './PerformanceEntry';\nimport type {PerformanceEntryList} from './PerformanceObserver';\n\nimport warnOnce from '../Utilities/warnOnce';\nimport EventCounts from './EventCounts';\nimport MemoryInfo from './MemoryInfo';\nimport NativePerformance from './NativePerformance';\nimport NativePerformanceObserver from './NativePerformanceObserver';\nimport {PerformanceEntry} from './PerformanceEntry';\nimport {warnNoNativePerformanceObserver} from './PerformanceObserver';\nimport {\n performanceEntryTypeToRaw,\n rawToPerformanceEntry,\n} from './RawPerformanceEntry';\nimport {RawPerformanceEntryTypeValues} from './RawPerformanceEntry';\nimport ReactNativeStartupTiming from './ReactNativeStartupTiming';\n\ntype DetailType = mixed;\n\nexport type PerformanceMarkOptions = {\n detail?: DetailType,\n startTime?: HighResTimeStamp,\n};\n\ndeclare var global: {\n // This value is defined directly via JSI, if available.\n +nativePerformanceNow?: ?() => number,\n};\n\nconst getCurrentTimeStamp: () => HighResTimeStamp = global.nativePerformanceNow\n ? global.nativePerformanceNow\n : () => Date.now();\n\nexport class PerformanceMark extends PerformanceEntry {\n detail: DetailType;\n\n constructor(markName: string, markOptions?: PerformanceMarkOptions) {\n super({\n name: markName,\n entryType: 'mark',\n startTime: markOptions?.startTime ?? getCurrentTimeStamp(),\n duration: 0,\n });\n\n if (markOptions) {\n this.detail = markOptions.detail;\n }\n }\n}\n\nexport type TimeStampOrName = HighResTimeStamp | string;\n\nexport type PerformanceMeasureOptions = {\n detail?: DetailType,\n start?: TimeStampOrName,\n end?: TimeStampOrName,\n duration?: HighResTimeStamp,\n};\n\nexport class PerformanceMeasure extends PerformanceEntry {\n detail: DetailType;\n\n constructor(measureName: string, measureOptions?: PerformanceMeasureOptions) {\n super({\n name: measureName,\n entryType: 'measure',\n startTime: 0,\n duration: measureOptions?.duration ?? 0,\n });\n\n if (measureOptions) {\n this.detail = measureOptions.detail;\n }\n }\n}\n\nfunction warnNoNativePerformance() {\n warnOnce(\n 'missing-native-performance',\n 'Missing native implementation of Performance',\n );\n}\n\n/**\n * Partial implementation of the Performance interface for RN,\n * corresponding to the standard in\n * https://www.w3.org/TR/user-timing/#extensions-performance-interface\n */\nexport default class Performance {\n eventCounts: EventCounts = new EventCounts();\n\n // Get the current JS memory information.\n get memory(): MemoryInfo {\n if (NativePerformance?.getSimpleMemoryInfo) {\n // JSI API implementations may have different variants of names for the JS\n // heap information we need here. We will parse the result based on our\n // guess of the implementation for now.\n const memoryInfo = NativePerformance.getSimpleMemoryInfo();\n if (memoryInfo.hasOwnProperty('hermes_heapSize')) {\n // We got memory information from Hermes\n const {\n hermes_heapSize: totalJSHeapSize,\n hermes_allocatedBytes: usedJSHeapSize,\n } = memoryInfo;\n\n return new MemoryInfo({\n jsHeapSizeLimit: null, // We don't know the heap size limit from Hermes.\n totalJSHeapSize,\n usedJSHeapSize,\n });\n } else {\n // JSC and V8 has no native implementations for memory information in JSI::Instrumentation\n return new MemoryInfo();\n }\n }\n\n return new MemoryInfo();\n }\n\n // Startup metrics is not used in web, but only in React Native.\n get reactNativeStartupTiming(): ReactNativeStartupTiming {\n if (NativePerformance?.getReactNativeStartupTiming) {\n return new ReactNativeStartupTiming(\n NativePerformance.getReactNativeStartupTiming(),\n );\n }\n return new ReactNativeStartupTiming();\n }\n\n mark(\n markName: string,\n markOptions?: PerformanceMarkOptions,\n ): PerformanceMark {\n const mark = new PerformanceMark(markName, markOptions);\n\n if (NativePerformance?.mark) {\n NativePerformance.mark(markName, mark.startTime, mark.duration);\n } else {\n warnNoNativePerformance();\n }\n\n return mark;\n }\n\n clearMarks(markName?: string): void {\n if (!NativePerformanceObserver?.clearEntries) {\n warnNoNativePerformanceObserver();\n return;\n }\n\n NativePerformanceObserver?.clearEntries(\n RawPerformanceEntryTypeValues.MARK,\n markName,\n );\n }\n\n measure(\n measureName: string,\n startMarkOrOptions?: string | PerformanceMeasureOptions,\n endMark?: string,\n ): PerformanceMeasure {\n let options;\n let startMarkName,\n endMarkName = endMark,\n duration,\n startTime = 0,\n endTime = 0;\n\n if (typeof startMarkOrOptions === 'string') {\n startMarkName = startMarkOrOptions;\n } else if (startMarkOrOptions !== undefined) {\n options = startMarkOrOptions;\n if (endMark !== undefined) {\n throw new TypeError(\n \"Performance.measure: Can't have both options and endMark\",\n );\n }\n if (options.start === undefined && options.end === undefined) {\n throw new TypeError(\n 'Performance.measure: Must have at least one of start/end specified in options',\n );\n }\n if (\n options.start !== undefined &&\n options.end !== undefined &&\n options.duration !== undefined\n ) {\n throw new TypeError(\n \"Performance.measure: Can't have both start/end and duration explicitly in options\",\n );\n }\n\n if (typeof options.start === 'number') {\n startTime = options.start;\n } else {\n startMarkName = options.start;\n }\n\n if (typeof options.end === 'number') {\n endTime = options.end;\n } else {\n endMarkName = options.end;\n }\n\n duration = options.duration ?? duration;\n }\n\n const measure = new PerformanceMeasure(measureName, options);\n\n if (NativePerformance?.measure) {\n NativePerformance.measure(\n measureName,\n startTime,\n endTime,\n duration,\n startMarkName,\n endMarkName,\n );\n } else {\n warnNoNativePerformance();\n }\n\n return measure;\n }\n\n clearMeasures(measureName?: string): void {\n if (!NativePerformanceObserver?.clearEntries) {\n warnNoNativePerformanceObserver();\n return;\n }\n\n NativePerformanceObserver?.clearEntries(\n RawPerformanceEntryTypeValues.MEASURE,\n measureName,\n );\n }\n\n /**\n * Returns a double, measured in milliseconds.\n * https://developer.mozilla.org/en-US/docs/Web/API/Performance/now\n */\n now(): HighResTimeStamp {\n return getCurrentTimeStamp();\n }\n\n /**\n * An extension that allows to get back to JS all currently logged marks/measures\n * (in our case, be it from JS or native), see\n * https://www.w3.org/TR/performance-timeline/#extensions-to-the-performance-interface\n */\n getEntries(): PerformanceEntryList {\n if (!NativePerformanceObserver?.clearEntries) {\n warnNoNativePerformanceObserver();\n return [];\n }\n return NativePerformanceObserver.getEntries().map(rawToPerformanceEntry);\n }\n\n getEntriesByType(entryType: PerformanceEntryType): PerformanceEntryList {\n if (entryType !== 'mark' && entryType !== 'measure') {\n console.log(\n `Performance.getEntriesByType: Only valid for 'mark' and 'measure' entry types, got ${entryType}`,\n );\n return [];\n }\n\n if (!NativePerformanceObserver?.clearEntries) {\n warnNoNativePerformanceObserver();\n return [];\n }\n return NativePerformanceObserver.getEntries(\n performanceEntryTypeToRaw(entryType),\n ).map(rawToPerformanceEntry);\n }\n\n getEntriesByName(\n entryName: string,\n entryType?: PerformanceEntryType,\n ): PerformanceEntryList {\n if (\n entryType !== undefined &&\n entryType !== 'mark' &&\n entryType !== 'measure'\n ) {\n console.log(\n `Performance.getEntriesByName: Only valid for 'mark' and 'measure' entry types, got ${entryType}`,\n );\n return [];\n }\n\n if (!NativePerformanceObserver?.clearEntries) {\n warnNoNativePerformanceObserver();\n return [];\n }\n return NativePerformanceObserver.getEntries(\n entryType != null ? performanceEntryTypeToRaw(entryType) : undefined,\n entryName,\n ).map(rawToPerformanceEntry);\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nconst warnedKeys: {[string]: boolean, ...} = {};\n\n/**\n * A simple function that prints a warning message once per session.\n *\n * @param {string} key - The key used to ensure the message is printed once.\n * This should be unique to the callsite.\n * @param {string} message - The message to print\n */\nfunction warnOnce(key: string, message: string) {\n if (warnedKeys[key]) {\n return;\n }\n\n console.warn(message);\n\n warnedKeys[key] = true;\n}\n\nmodule.exports = warnOnce;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport NativePerformanceObserver from './NativePerformanceObserver';\nimport {warnNoNativePerformanceObserver} from './PerformanceObserver';\n\ntype EventCountsForEachCallbackType =\n | (() => void)\n | ((value: number) => void)\n | ((value: number, key: string) => void)\n | ((value: number, key: string, map: Map) => void);\n\nlet cachedEventCounts: ?Map;\n\nfunction getCachedEventCounts(): Map {\n if (cachedEventCounts) {\n return cachedEventCounts;\n }\n if (!NativePerformanceObserver) {\n warnNoNativePerformanceObserver();\n return new Map();\n }\n\n cachedEventCounts = new Map(\n NativePerformanceObserver.getEventCounts(),\n );\n // $FlowFixMe[incompatible-call]\n global.queueMicrotask(() => {\n // To be consistent with the calls to the API from the same task,\n // but also not to refetch the data from native too often,\n // schedule to invalidate the cache later,\n // after the current task is guaranteed to have finished.\n cachedEventCounts = null;\n });\n return cachedEventCounts ?? new Map();\n}\n/**\n * Implementation of the EventCounts Web Performance API\n * corresponding to the standard in\n * https://www.w3.org/TR/event-timing/#eventcounts\n */\nexport default class EventCounts {\n // flowlint unsafe-getters-setters:off\n get size(): number {\n return getCachedEventCounts().size;\n }\n\n entries(): Iterator<[string, number]> {\n return getCachedEventCounts().entries();\n }\n\n forEach(callback: EventCountsForEachCallbackType): void {\n return getCachedEventCounts().forEach(callback);\n }\n\n get(key: string): ?number {\n return getCachedEventCounts().get(key);\n }\n\n has(key: string): boolean {\n return getCachedEventCounts().has(key);\n }\n\n keys(): Iterator {\n return getCachedEventCounts().keys();\n }\n\n values(): Iterator {\n return getCachedEventCounts().values();\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport type RawPerformanceEntryType = number;\n\nexport type RawPerformanceEntry = {|\n name: string,\n entryType: RawPerformanceEntryType,\n startTime: number,\n duration: number,\n // For \"event\" entries only:\n processingStart?: number,\n processingEnd?: number,\n interactionId?: number,\n|};\n\nexport type GetPendingEntriesResult = {|\n entries: $ReadOnlyArray,\n droppedEntriesCount: number,\n|};\n\nexport interface Spec extends TurboModule {\n +startReporting: (entryType: RawPerformanceEntryType) => void;\n +stopReporting: (entryType: RawPerformanceEntryType) => void;\n +popPendingEntries: () => GetPendingEntriesResult;\n +setOnPerformanceEntryCallback: (callback?: () => void) => void;\n +logRawEntry: (entry: RawPerformanceEntry) => void;\n +getEventCounts: () => $ReadOnlyArray<[string, number]>;\n +setDurationThreshold: (\n entryType: RawPerformanceEntryType,\n durationThreshold: number,\n ) => void;\n +clearEntries: (\n entryType: RawPerformanceEntryType,\n entryName?: string,\n ) => void;\n +getEntries: (\n entryType?: RawPerformanceEntryType,\n entryName?: string,\n ) => $ReadOnlyArray;\n}\n\nexport default (TurboModuleRegistry.get(\n 'NativePerformanceObserverCxx',\n): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport type {HighResTimeStamp, PerformanceEntryType} from './PerformanceEntry';\n\nimport warnOnce from '../Utilities/warnOnce';\nimport NativePerformanceObserver from './NativePerformanceObserver';\nimport {PerformanceEntry} from './PerformanceEntry';\nimport {\n performanceEntryTypeToRaw,\n rawToPerformanceEntry,\n} from './RawPerformanceEntry';\n\nexport type PerformanceEntryList = $ReadOnlyArray;\n\nexport class PerformanceObserverEntryList {\n _entries: PerformanceEntryList;\n\n constructor(entries: PerformanceEntryList) {\n this._entries = entries;\n }\n\n getEntries(): PerformanceEntryList {\n return this._entries;\n }\n\n getEntriesByType(type: PerformanceEntryType): PerformanceEntryList {\n return this._entries.filter(entry => entry.entryType === type);\n }\n\n getEntriesByName(\n name: string,\n type?: PerformanceEntryType,\n ): PerformanceEntryList {\n if (type === undefined) {\n return this._entries.filter(entry => entry.name === name);\n } else {\n return this._entries.filter(\n entry => entry.name === name && entry.entryType === type,\n );\n }\n }\n}\n\nexport type PerformanceObserverCallback = (\n list: PerformanceObserverEntryList,\n observer: PerformanceObserver,\n // The number of buffered entries which got dropped from the buffer due to the buffer being full:\n droppedEntryCount?: number,\n) => void;\n\nexport type PerformanceObserverInit =\n | {\n entryTypes: Array,\n }\n | {\n type: PerformanceEntryType,\n durationThreshold?: HighResTimeStamp,\n };\n\ntype PerformanceObserverConfig = {|\n callback: PerformanceObserverCallback,\n // Map of {entryType: durationThreshold}\n entryTypes: $ReadOnlyMap,\n|};\n\nconst observerCountPerEntryType: Map = new Map();\nconst registeredObservers: Map =\n new Map();\nlet isOnPerformanceEntryCallbackSet: boolean = false;\n\n// This is a callback that gets scheduled and periodically called from the native side\nconst onPerformanceEntry = () => {\n if (!NativePerformanceObserver) {\n return;\n }\n const entryResult = NativePerformanceObserver.popPendingEntries();\n const rawEntries = entryResult?.entries ?? [];\n const droppedEntriesCount = entryResult?.droppedEntriesCount;\n if (rawEntries.length === 0) {\n return;\n }\n const entries = rawEntries.map(rawToPerformanceEntry);\n for (const [observer, observerConfig] of registeredObservers.entries()) {\n const entriesForObserver: PerformanceEntryList = entries.filter(entry => {\n if (!observerConfig.entryTypes.has(entry.entryType)) {\n return false;\n }\n const durationThreshold = observerConfig.entryTypes.get(entry.entryType);\n return entry.duration >= (durationThreshold ?? 0);\n });\n observerConfig.callback(\n new PerformanceObserverEntryList(entriesForObserver),\n observer,\n droppedEntriesCount,\n );\n }\n};\n\nexport function warnNoNativePerformanceObserver() {\n warnOnce(\n 'missing-native-performance-observer',\n 'Missing native implementation of PerformanceObserver',\n );\n}\n\nfunction applyDurationThresholds() {\n const durationThresholds: Map = Array.from(\n registeredObservers.values(),\n )\n .map(config => config.entryTypes)\n .reduce(\n (accumulator, currentValue) => union(accumulator, currentValue),\n new Map(),\n );\n\n for (const [entryType, durationThreshold] of durationThresholds) {\n NativePerformanceObserver?.setDurationThreshold(\n performanceEntryTypeToRaw(entryType),\n durationThreshold ?? 0,\n );\n }\n}\n\n/**\n * Implementation of the PerformanceObserver interface for RN,\n * corresponding to the standard in https://www.w3.org/TR/performance-timeline/\n *\n * @example\n * const observer = new PerformanceObserver((list, _observer) => {\n * const entries = list.getEntries();\n * entries.forEach(entry => {\n * reportEvent({\n * eventName: entry.name,\n * startTime: entry.startTime,\n * endTime: entry.startTime + entry.duration,\n * processingStart: entry.processingStart,\n * processingEnd: entry.processingEnd,\n * interactionId: entry.interactionId,\n * });\n * });\n * });\n * observer.observe({ type: \"event\" });\n */\nexport default class PerformanceObserver {\n _callback: PerformanceObserverCallback;\n _type: 'single' | 'multiple' | void;\n\n constructor(callback: PerformanceObserverCallback) {\n this._callback = callback;\n }\n\n observe(options: PerformanceObserverInit): void {\n if (!NativePerformanceObserver) {\n warnNoNativePerformanceObserver();\n return;\n }\n\n this._validateObserveOptions(options);\n\n let requestedEntryTypes;\n\n if (options.entryTypes) {\n this._type = 'multiple';\n requestedEntryTypes = new Map(\n options.entryTypes.map(t => [t, undefined]),\n );\n } else {\n this._type = 'single';\n requestedEntryTypes = new Map([\n [options.type, options.durationThreshold],\n ]);\n }\n\n // The same observer may receive multiple calls to \"observe\", so we need\n // to check what is new on this call vs. previous ones.\n const currentEntryTypes = registeredObservers.get(this)?.entryTypes;\n const nextEntryTypes = currentEntryTypes\n ? union(requestedEntryTypes, currentEntryTypes)\n : requestedEntryTypes;\n\n // This `observe` call is a no-op because there are no new things to observe.\n if (currentEntryTypes && currentEntryTypes.size === nextEntryTypes.size) {\n return;\n }\n\n registeredObservers.set(this, {\n callback: this._callback,\n entryTypes: nextEntryTypes,\n });\n\n if (!isOnPerformanceEntryCallbackSet) {\n NativePerformanceObserver.setOnPerformanceEntryCallback(\n onPerformanceEntry,\n );\n isOnPerformanceEntryCallbackSet = true;\n }\n\n // We only need to start listenening to new entry types being observed in\n // this observer.\n const newEntryTypes = currentEntryTypes\n ? difference(\n new Set(requestedEntryTypes.keys()),\n new Set(currentEntryTypes.keys()),\n )\n : new Set(requestedEntryTypes.keys());\n for (const type of newEntryTypes) {\n if (!observerCountPerEntryType.has(type)) {\n const rawType = performanceEntryTypeToRaw(type);\n NativePerformanceObserver.startReporting(rawType);\n }\n observerCountPerEntryType.set(\n type,\n (observerCountPerEntryType.get(type) ?? 0) + 1,\n );\n }\n applyDurationThresholds();\n }\n\n disconnect(): void {\n if (!NativePerformanceObserver) {\n warnNoNativePerformanceObserver();\n return;\n }\n\n const observerConfig = registeredObservers.get(this);\n if (!observerConfig) {\n return;\n }\n\n // Disconnect this observer\n for (const type of observerConfig.entryTypes.keys()) {\n const numberOfObserversForThisType =\n observerCountPerEntryType.get(type) ?? 0;\n if (numberOfObserversForThisType === 1) {\n observerCountPerEntryType.delete(type);\n NativePerformanceObserver.stopReporting(\n performanceEntryTypeToRaw(type),\n );\n } else if (numberOfObserversForThisType !== 0) {\n observerCountPerEntryType.set(type, numberOfObserversForThisType - 1);\n }\n }\n\n // Disconnect all observers if this was the last one\n registeredObservers.delete(this);\n if (registeredObservers.size === 0) {\n NativePerformanceObserver.setOnPerformanceEntryCallback(undefined);\n isOnPerformanceEntryCallbackSet = false;\n }\n\n applyDurationThresholds();\n }\n\n _validateObserveOptions(options: PerformanceObserverInit): void {\n const {type, entryTypes, durationThreshold} = options;\n\n if (!type && !entryTypes) {\n throw new TypeError(\n \"Failed to execute 'observe' on 'PerformanceObserver': An observe() call must not include both entryTypes and type arguments.\",\n );\n }\n\n if (entryTypes && type) {\n throw new TypeError(\n \"Failed to execute 'observe' on 'PerformanceObserver': An observe() call must include either entryTypes or type arguments.\",\n );\n }\n\n if (this._type === 'multiple' && type) {\n throw new Error(\n \"Failed to execute 'observe' on 'PerformanceObserver': This observer has performed observe({entryTypes:...}, therefore it cannot perform observe({type:...})\",\n );\n }\n\n if (this._type === 'single' && entryTypes) {\n throw new Error(\n \"Failed to execute 'observe' on 'PerformanceObserver': This PerformanceObserver has performed observe({type:...}, therefore it cannot perform observe({entryTypes:...})\",\n );\n }\n\n if (entryTypes && durationThreshold !== undefined) {\n throw new TypeError(\n \"Failed to execute 'observe' on 'PerformanceObserver': An observe() call must not include both entryTypes and durationThreshold arguments.\",\n );\n }\n }\n\n static supportedEntryTypes: $ReadOnlyArray =\n Object.freeze(['mark', 'measure', 'event']);\n}\n\n// As a Set union, except if value exists in both, we take minimum\nfunction union(\n a: $ReadOnlyMap,\n b: $ReadOnlyMap,\n): Map {\n const res = new Map();\n for (const [k, v] of a) {\n if (!b.has(k)) {\n res.set(k, v);\n } else {\n res.set(k, Math.min(v ?? 0, b.get(k) ?? 0));\n }\n }\n return res;\n}\n\nfunction difference(a: $ReadOnlySet, b: $ReadOnlySet): Set {\n return new Set([...a].filter(x => !b.has(x)));\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport type {\n RawPerformanceEntry,\n RawPerformanceEntryType,\n} from './NativePerformanceObserver';\nimport type {PerformanceEntryType} from './PerformanceEntry';\n\nimport {PerformanceEntry} from './PerformanceEntry';\nimport {PerformanceEventTiming} from './PerformanceEventTiming';\n\nexport const RawPerformanceEntryTypeValues = {\n UNDEFINED: 0,\n MARK: 1,\n MEASURE: 2,\n EVENT: 3,\n};\n\nexport function rawToPerformanceEntry(\n entry: RawPerformanceEntry,\n): PerformanceEntry {\n if (entry.entryType === RawPerformanceEntryTypeValues.EVENT) {\n return new PerformanceEventTiming({\n name: entry.name,\n startTime: entry.startTime,\n duration: entry.duration,\n processingStart: entry.processingStart,\n processingEnd: entry.processingEnd,\n interactionId: entry.interactionId,\n });\n } else {\n return new PerformanceEntry({\n name: entry.name,\n entryType: rawToPerformanceEntryType(entry.entryType),\n startTime: entry.startTime,\n duration: entry.duration,\n });\n }\n}\n\nexport function rawToPerformanceEntryType(\n type: RawPerformanceEntryType,\n): PerformanceEntryType {\n switch (type) {\n case RawPerformanceEntryTypeValues.MARK:\n return 'mark';\n case RawPerformanceEntryTypeValues.MEASURE:\n return 'measure';\n case RawPerformanceEntryTypeValues.EVENT:\n return 'event';\n case RawPerformanceEntryTypeValues.UNDEFINED:\n throw new TypeError(\n \"rawToPerformanceEntryType: UNDEFINED can't be cast to PerformanceEntryType\",\n );\n default:\n throw new TypeError(\n `rawToPerformanceEntryType: unexpected performance entry type received: ${type}`,\n );\n }\n}\n\nexport function performanceEntryTypeToRaw(\n type: PerformanceEntryType,\n): RawPerformanceEntryType {\n switch (type) {\n case 'mark':\n return RawPerformanceEntryTypeValues.MARK;\n case 'measure':\n return RawPerformanceEntryTypeValues.MEASURE;\n case 'event':\n return RawPerformanceEntryTypeValues.EVENT;\n default:\n // Verify exhaustive check with Flow\n (type: empty);\n throw new TypeError(\n `performanceEntryTypeToRaw: unexpected performance entry type received: ${type}`,\n );\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport type {HighResTimeStamp} from './PerformanceEntry';\n\nimport {PerformanceEntry} from './PerformanceEntry';\n\nexport class PerformanceEventTiming extends PerformanceEntry {\n processingStart: HighResTimeStamp;\n processingEnd: HighResTimeStamp;\n interactionId: number;\n\n constructor(init: {\n name: string,\n startTime?: HighResTimeStamp,\n duration?: HighResTimeStamp,\n processingStart?: HighResTimeStamp,\n processingEnd?: HighResTimeStamp,\n interactionId?: number,\n }) {\n super({\n name: init.name,\n entryType: 'event',\n startTime: init.startTime ?? 0,\n duration: init.duration ?? 0,\n });\n this.processingStart = init.processingStart ?? 0;\n this.processingEnd = init.processingEnd ?? 0;\n this.interactionId = init.interactionId ?? 0;\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nexport type HighResTimeStamp = number;\nexport type PerformanceEntryType = 'mark' | 'measure' | 'event';\n\nexport class PerformanceEntry {\n name: string;\n entryType: PerformanceEntryType;\n startTime: HighResTimeStamp;\n duration: HighResTimeStamp;\n\n constructor(init: {\n name: string,\n entryType: PerformanceEntryType,\n startTime: HighResTimeStamp,\n duration: HighResTimeStamp,\n }) {\n this.name = init.name;\n this.entryType = init.entryType;\n this.startTime = init.startTime;\n this.duration = init.duration;\n }\n\n toJSON(): {\n name: string,\n entryType: PerformanceEntryType,\n startTime: HighResTimeStamp,\n duration: HighResTimeStamp,\n } {\n return {\n name: this.name,\n entryType: this.entryType,\n startTime: this.startTime,\n duration: this.duration,\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n * @oncall react_native\n */\n\n// flowlint unsafe-getters-setters:off\n\nexport type MemoryInfoLike = {\n jsHeapSizeLimit: ?number,\n totalJSHeapSize: ?number,\n usedJSHeapSize: ?number,\n};\n\n// Read-only object with JS memory information. This is returned by the performance.memory API.\nexport default class MemoryInfo {\n _jsHeapSizeLimit: ?number;\n _totalJSHeapSize: ?number;\n _usedJSHeapSize: ?number;\n\n constructor(memoryInfo: ?MemoryInfoLike) {\n if (memoryInfo != null) {\n this._jsHeapSizeLimit = memoryInfo.jsHeapSizeLimit;\n this._totalJSHeapSize = memoryInfo.totalJSHeapSize;\n this._usedJSHeapSize = memoryInfo.usedJSHeapSize;\n }\n }\n\n /**\n * The maximum size of the heap, in bytes, that is available to the context\n */\n get jsHeapSizeLimit(): ?number {\n return this._jsHeapSizeLimit;\n }\n\n /**\n * The total allocated heap size, in bytes\n */\n get totalJSHeapSize(): ?number {\n return this._totalJSHeapSize;\n }\n\n /**\n * The currently active segment of JS heap, in bytes.\n */\n get usedJSHeapSize(): ?number {\n return this._usedJSHeapSize;\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n * @oncall react_native\n */\n\n// flowlint unsafe-getters-setters:off\n\nimport type {ReactNativeStartupTiming as ReactNativeStartupTimingType} from './NativePerformance';\n\n// Read-only object with RN startup timing information.\n// This is returned by the performance.reactNativeStartup API.\nexport default class ReactNativeStartupTiming {\n // All time information here are in ms. To match web spec,\n // the default value for timings are zero if not present.\n // See https://www.w3.org/TR/performance-timeline/#performancetiming-interface\n _startTime = 0;\n _endTime = 0;\n _executeJavaScriptBundleEntryPointStart = 0;\n _executeJavaScriptBundleEntryPointEnd = 0;\n\n constructor(startUpTiming: ?ReactNativeStartupTimingType) {\n if (startUpTiming != null) {\n this._startTime = startUpTiming.startTime;\n this._endTime = startUpTiming.endTime;\n this._executeJavaScriptBundleEntryPointStart =\n startUpTiming.executeJavaScriptBundleEntryPointStart;\n this._executeJavaScriptBundleEntryPointEnd =\n startUpTiming.executeJavaScriptBundleEntryPointEnd;\n }\n }\n\n /**\n * Start time of the RN app startup process. This is provided by the platform by implementing the `ReactMarker.setAppStartTime` API in the native platform code.\n */\n get startTime(): number {\n return this._startTime;\n }\n\n /**\n * End time of the RN app startup process. This is equal to `executeJavaScriptBundleEntryPointEnd`.\n */\n get endTime(): number {\n return this._endTime;\n }\n\n /**\n * Start time of JS bundle being executed. This indicates the RN JS bundle is loaded and start to be evaluated.\n */\n get executeJavaScriptBundleEntryPointStart(): number {\n return this._executeJavaScriptBundleEntryPointStart;\n }\n\n /**\n * End time of JS bundle being executed. This indicates all the synchronous entry point jobs are finished.\n */\n get executeJavaScriptBundleEntryPointEnd(): number {\n return this._executeJavaScriptBundleEntryPointEnd;\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\n/**\n * Sets up the console and exception handling (redbox) for React Native.\n * You can use this module directly, or just require InitializeCore.\n */\nconst ExceptionsManager = require('./ExceptionsManager');\nExceptionsManager.installConsoleErrorReporter();\n\n// Set up error handler\nif (!global.__fbDisableExceptionsManager) {\n const handleError = (e: mixed, isFatal: boolean) => {\n try {\n ExceptionsManager.handleException(e, isFatal);\n } catch (ee) {\n console.log('Failed to print error: ', ee.message);\n throw e;\n }\n };\n\n const ErrorUtils = require('../vendor/core/ErrorUtils');\n ErrorUtils.setGlobalHandler(handleError);\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nimport type {ExtendedError} from './ExtendedError';\nimport type {ExceptionData} from './NativeExceptionsManager';\n\nclass SyntheticError extends Error {\n name: string = '';\n}\n\ntype ExceptionDecorator = ExceptionData => ExceptionData;\n\nlet userExceptionDecorator: ?ExceptionDecorator;\nlet inUserExceptionDecorator = false;\n\n// This Symbol is used to decorate an ExtendedError with extra data in select usecases.\n// Note that data passed using this method should be strictly contained,\n// as data that's not serializable/too large may cause issues with passing the error to the native code.\nconst decoratedExtraDataKey: symbol = Symbol('decoratedExtraDataKey');\n\n/**\n * Allows the app to add information to the exception report before it is sent\n * to native. This API is not final.\n */\n\nfunction unstable_setExceptionDecorator(\n exceptionDecorator: ?ExceptionDecorator,\n) {\n userExceptionDecorator = exceptionDecorator;\n}\n\nfunction preprocessException(data: ExceptionData): ExceptionData {\n if (userExceptionDecorator && !inUserExceptionDecorator) {\n inUserExceptionDecorator = true;\n try {\n return userExceptionDecorator(data);\n } catch {\n // Fall through\n } finally {\n inUserExceptionDecorator = false;\n }\n }\n return data;\n}\n\n/**\n * Handles the developer-visible aspect of errors and exceptions\n */\nlet exceptionID = 0;\nfunction reportException(\n e: ExtendedError,\n isFatal: boolean,\n reportToConsole: boolean, // only true when coming from handleException; the error has not yet been logged\n) {\n const parseErrorStack = require('./Devtools/parseErrorStack');\n const stack = parseErrorStack(e?.stack);\n const currentExceptionID = ++exceptionID;\n const originalMessage = e.message || '';\n let message = originalMessage;\n if (e.componentStack != null) {\n message += `\\n\\nThis error is located at:${e.componentStack}`;\n }\n const namePrefix = e.name == null || e.name === '' ? '' : `${e.name}: `;\n\n if (!message.startsWith(namePrefix)) {\n message = namePrefix + message;\n }\n\n message =\n e.jsEngine == null ? message : `${message}, js engine: ${e.jsEngine}`;\n\n const data = preprocessException({\n message,\n originalMessage: message === originalMessage ? null : originalMessage,\n name: e.name == null || e.name === '' ? null : e.name,\n componentStack:\n typeof e.componentStack === 'string' ? e.componentStack : null,\n stack,\n id: currentExceptionID,\n isFatal,\n extraData: {\n // $FlowFixMe[incompatible-use] we can't define a type with a Symbol-keyed field in flow\n ...e[decoratedExtraDataKey],\n jsEngine: e.jsEngine,\n rawStack: e.stack,\n },\n });\n\n if (reportToConsole) {\n // we feed back into console.error, to make sure any methods that are\n // monkey patched on top of console.error are called when coming from\n // handleException\n console.error(data.message);\n }\n\n if (__DEV__) {\n const LogBox = require('../LogBox/LogBox').default;\n LogBox.addException({\n ...data,\n isComponentError: !!e.isComponentError,\n });\n } else if (isFatal || e.type !== 'warn') {\n const NativeExceptionsManager =\n require('./NativeExceptionsManager').default;\n if (NativeExceptionsManager) {\n NativeExceptionsManager.reportException(data);\n }\n }\n}\n\ndeclare var console: typeof console & {\n _errorOriginal: typeof console.error,\n reportErrorsAsExceptions: boolean,\n ...\n};\n\n// If we trigger console.error _from_ handleException,\n// we do want to make sure that console.error doesn't trigger error reporting again\nlet inExceptionHandler = false;\n\n/**\n * Logs exceptions to the (native) console and displays them\n */\nfunction handleException(e: mixed, isFatal: boolean) {\n let error: Error;\n if (e instanceof Error) {\n error = e;\n } else {\n // Workaround for reporting errors caused by `throw 'some string'`\n // Unfortunately there is no way to figure out the stacktrace in this\n // case, so if you ended up here trying to trace an error, look for\n // `throw ''` somewhere in your codebase.\n error = new SyntheticError(e);\n }\n try {\n inExceptionHandler = true;\n /* $FlowFixMe[class-object-subtyping] added when improving typing for this\n * parameters */\n reportException(error, isFatal, /*reportToConsole*/ true);\n } finally {\n inExceptionHandler = false;\n }\n}\n\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\nfunction reactConsoleErrorHandler(...args) {\n // bubble up to any original handlers\n console._errorOriginal(...args);\n if (!console.reportErrorsAsExceptions) {\n return;\n }\n if (inExceptionHandler) {\n // The fundamental trick here is that are multiple entry point to logging errors:\n // (see D19743075 for more background)\n //\n // 1. An uncaught exception being caught by the global handler\n // 2. An error being logged throw console.error\n //\n // However, console.error is monkey patched multiple times: by this module, and by the\n // DevTools setup that sends messages to Metro.\n // The patching order cannot be relied upon.\n //\n // So, some scenarios that are handled by this flag:\n //\n // Logging an error:\n // 1. console.error called from user code\n // 2. (possibly) arrives _first_ at DevTool handler, send to Metro\n // 3. Bubbles to here\n // 4. goes into report Exception.\n // 5. should not trigger console.error again, to avoid looping / logging twice\n // 6. should still bubble up to original console\n // (which might either be console.log, or the DevTools handler in case it patched _earlier_ and (2) didn't happen)\n //\n // Throwing an uncaught exception:\n // 1. exception thrown\n // 2. picked up by handleException\n // 3. should be sent to console.error (not console._errorOriginal, as DevTools might have patched _later_ and it needs to send it to Metro)\n // 4. that _might_ bubble again to the `reactConsoleErrorHandle` defined here\n // -> should not handle exception _again_, to avoid looping / showing twice (this code branch)\n // 5. should still bubble up to original console (which might either be console.log, or the DevTools handler in case that one patched _earlier_)\n return;\n }\n\n let error;\n\n const firstArg = args[0];\n if (firstArg?.stack) {\n // reportException will console.error this with high enough fidelity.\n error = firstArg;\n } else {\n const stringifySafe = require('../Utilities/stringifySafe').default;\n if (typeof firstArg === 'string' && firstArg.startsWith('Warning: ')) {\n // React warnings use console.error so that a stack trace is shown, but\n // we don't (currently) want these to show a redbox\n // (Note: Logic duplicated in polyfills/console.js.)\n return;\n }\n const message = args\n .map(arg => (typeof arg === 'string' ? arg : stringifySafe(arg)))\n .join(' ');\n\n error = new SyntheticError(message);\n error.name = 'console.error';\n }\n\n reportException(\n /* $FlowFixMe[class-object-subtyping] added when improving typing for this\n * parameters */\n error,\n false, // isFatal\n false, // reportToConsole\n );\n}\n\n/**\n * Shows a redbox with stacktrace for all console.error messages. Disable by\n * setting `console.reportErrorsAsExceptions = false;` in your app.\n */\nfunction installConsoleErrorReporter() {\n // Enable reportErrorsAsExceptions\n if (console._errorOriginal) {\n return; // already installed\n }\n // Flow doesn't like it when you set arbitrary values on a global object\n console._errorOriginal = console.error.bind(console);\n console.error = reactConsoleErrorHandler;\n if (console.reportErrorsAsExceptions === undefined) {\n // Individual apps can disable this\n // Flow doesn't like it when you set arbitrary values on a global object\n console.reportErrorsAsExceptions = true;\n }\n}\n\nmodule.exports = {\n decoratedExtraDataKey,\n handleException,\n installConsoleErrorReporter,\n SyntheticError,\n unstable_setExceptionDecorator,\n};\n","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nvar setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeFunction = require(\"./isNativeFunction.js\");\nvar construct = require(\"./construct.js\");\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _wrapNativeSuper(Class);\n}\nmodule.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nmodule.exports = _isNativeFunction, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct.bind(), module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n return _construct.apply(null, arguments);\n}\nmodule.exports = _construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nimport type {StackFrame} from '../NativeExceptionsManager';\nimport type {HermesParsedStack} from './parseHermesStack';\n\nconst parseHermesStack = require('./parseHermesStack');\n\nfunction convertHermesStack(stack: HermesParsedStack): Array {\n const frames: Array = [];\n for (const entry of stack.entries) {\n if (entry.type !== 'FRAME') {\n continue;\n }\n const {location, functionName} = entry;\n if (location.type === 'NATIVE' || location.type === 'INTERNAL_BYTECODE') {\n continue;\n }\n frames.push({\n methodName: functionName,\n file: location.sourceUrl,\n lineNumber: location.line1Based,\n column:\n location.type === 'SOURCE'\n ? location.column1Based - 1\n : location.virtualOffset0Based,\n });\n }\n return frames;\n}\n\nfunction parseErrorStack(errorStack?: string): Array {\n if (errorStack == null) {\n return [];\n }\n\n const stacktraceParser = require('stacktrace-parser');\n const parsedStack = Array.isArray(errorStack)\n ? errorStack\n : global.HermesInternal\n ? convertHermesStack(parseHermesStack(errorStack))\n : stacktraceParser.parse(errorStack).map((frame): StackFrame => ({\n ...frame,\n column: frame.column != null ? frame.column - 1 : null,\n }));\n\n return parsedStack;\n}\n\nmodule.exports = parseErrorStack;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar UNKNOWN_FUNCTION = '';\n/**\n * This parses the different stack traces and puts them into one format\n * This borrows heavily from TraceKit (https://github.com/csnover/TraceKit)\n */\n\nfunction parse(stackString) {\n var lines = stackString.split('\\n');\n return lines.reduce(function (stack, line) {\n var parseResult = parseChrome(line) || parseWinjs(line) || parseGecko(line) || parseNode(line) || parseJSC(line);\n\n if (parseResult) {\n stack.push(parseResult);\n }\n\n return stack;\n }, []);\n}\nvar chromeRe = /^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack||\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nvar chromeEvalRe = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nfunction parseChrome(line) {\n var parts = chromeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n var submatch = chromeEvalRe.exec(parts[2]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n\n parts[3] = submatch[2]; // line\n\n parts[4] = submatch[3]; // column\n }\n\n return {\n file: !isNative ? parts[2] : null,\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: isNative ? [parts[2]] : [],\n lineNumber: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null\n };\n}\n\nvar winjsRe = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseWinjs(line) {\n var parts = winjsRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n}\n\nvar geckoRe = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar geckoEvalRe = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nfunction parseGecko(line) {\n var parts = geckoRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n var submatch = geckoEvalRe.exec(parts[3]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = null; // no column when eval\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: parts[2] ? parts[2].split(',') : [],\n lineNumber: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null\n };\n}\n\nvar javaScriptCoreRe = /^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i;\n\nfunction parseJSC(line) {\n var parts = javaScriptCoreRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[4],\n column: parts[5] ? +parts[5] : null\n };\n}\n\nvar nodeRe = /^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseNode(line) {\n var parts = nodeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n}\n\nexports.parse = parse;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\ntype HermesStackLocationNative = $ReadOnly<{\n type: 'NATIVE',\n}>;\n\ntype HermesStackLocationSource = $ReadOnly<{\n type: 'SOURCE',\n sourceUrl: string,\n line1Based: number,\n column1Based: number,\n}>;\n\ntype HermesStackLocationInternalBytecode = $ReadOnly<{\n type: 'INTERNAL_BYTECODE',\n sourceUrl: string,\n line1Based: number,\n virtualOffset0Based: number,\n}>;\n\ntype HermesStackLocationBytecode = $ReadOnly<{\n type: 'BYTECODE',\n sourceUrl: string,\n line1Based: number,\n virtualOffset0Based: number,\n}>;\n\ntype HermesStackLocation =\n | HermesStackLocationNative\n | HermesStackLocationSource\n | HermesStackLocationInternalBytecode\n | HermesStackLocationBytecode;\n\ntype HermesStackEntryFrame = $ReadOnly<{\n type: 'FRAME',\n location: HermesStackLocation,\n functionName: string,\n}>;\n\ntype HermesStackEntrySkipped = $ReadOnly<{\n type: 'SKIPPED',\n count: number,\n}>;\n\ntype HermesStackEntry = HermesStackEntryFrame | HermesStackEntrySkipped;\n\nexport type HermesParsedStack = $ReadOnly<{\n message: string,\n entries: $ReadOnlyArray,\n}>;\n\n// Capturing groups:\n// 1. function name\n// 2. is this a native stack frame?\n// 3. is this a bytecode address or a source location?\n// 4. source URL (filename)\n// 5. line number (1 based)\n// 6. column number (1 based) or virtual offset (0 based)\nconst RE_FRAME =\n /^ {4}at (.+?)(?: \\((native)\\)?| \\((address at )?(.*?):(\\d+):(\\d+)\\))$/;\n\n// Capturing groups:\n// 1. count of skipped frames\nconst RE_SKIPPED = /^ {4}... skipping (\\d+) frames$/;\n\nfunction isInternalBytecodeSourceUrl(sourceUrl: string): boolean {\n // See https://github.com/facebook/hermes/blob/3332fa020cae0bab751f648db7c94e1d687eeec7/lib/VM/Runtime.cpp#L1100\n return sourceUrl === 'InternalBytecode.js';\n}\n\nfunction parseLine(line: string): ?HermesStackEntry {\n const asFrame = line.match(RE_FRAME);\n if (asFrame) {\n return {\n type: 'FRAME',\n functionName: asFrame[1],\n location:\n asFrame[2] === 'native'\n ? {type: 'NATIVE'}\n : asFrame[3] === 'address at '\n ? isInternalBytecodeSourceUrl(asFrame[4])\n ? {\n type: 'INTERNAL_BYTECODE',\n sourceUrl: asFrame[4],\n line1Based: Number.parseInt(asFrame[5], 10),\n virtualOffset0Based: Number.parseInt(asFrame[6], 10),\n }\n : {\n type: 'BYTECODE',\n sourceUrl: asFrame[4],\n line1Based: Number.parseInt(asFrame[5], 10),\n virtualOffset0Based: Number.parseInt(asFrame[6], 10),\n }\n : {\n type: 'SOURCE',\n sourceUrl: asFrame[4],\n line1Based: Number.parseInt(asFrame[5], 10),\n column1Based: Number.parseInt(asFrame[6], 10),\n },\n };\n }\n const asSkipped = line.match(RE_SKIPPED);\n if (asSkipped) {\n return {\n type: 'SKIPPED',\n count: Number.parseInt(asSkipped[1], 10),\n };\n }\n}\n\nmodule.exports = function parseHermesStack(stack: string): HermesParsedStack {\n const lines = stack.split(/\\n/);\n let entries: Array = [];\n let lastMessageLine = -1;\n for (let i = 0; i < lines.length; ++i) {\n const line = lines[i];\n if (!line) {\n continue;\n }\n const entry = parseLine(line);\n if (entry) {\n entries.push(entry);\n continue;\n }\n // No match - we're still in the message\n lastMessageLine = i;\n entries = [];\n }\n const message = lines.slice(0, lastMessageLine + 1).join('\\n');\n return {message, entries};\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nconst Platform = require('../Utilities/Platform');\n\nexport type StackFrame = {|\n column: ?number,\n file: ?string,\n lineNumber: ?number,\n methodName: string,\n collapse?: boolean,\n|};\nexport type ExceptionData = {\n message: string,\n originalMessage: ?string,\n name: ?string,\n componentStack: ?string,\n stack: Array,\n id: number,\n isFatal: boolean,\n // flowlint-next-line unclear-type:off\n extraData?: Object,\n ...\n};\nexport interface Spec extends TurboModule {\n // Deprecated: Use `reportException`\n +reportFatalException: (\n message: string,\n stack: Array,\n exceptionId: number,\n ) => void;\n // Deprecated: Use `reportException`\n +reportSoftException: (\n message: string,\n stack: Array,\n exceptionId: number,\n ) => void;\n +reportException?: (data: ExceptionData) => void;\n +updateExceptionMessage: (\n message: string,\n stack: Array,\n exceptionId: number,\n ) => void;\n // TODO(T53311281): This is a noop on iOS now. Implement it.\n +dismissRedbox?: () => void;\n}\n\nconst NativeModule =\n TurboModuleRegistry.getEnforcing('ExceptionsManager');\n\nconst ExceptionsManager = {\n reportFatalException(\n message: string,\n stack: Array,\n exceptionId: number,\n ) {\n NativeModule.reportFatalException(message, stack, exceptionId);\n },\n reportSoftException(\n message: string,\n stack: Array,\n exceptionId: number,\n ) {\n NativeModule.reportSoftException(message, stack, exceptionId);\n },\n updateExceptionMessage(\n message: string,\n stack: Array,\n exceptionId: number,\n ) {\n NativeModule.updateExceptionMessage(message, stack, exceptionId);\n },\n dismissRedbox(): void {\n if (Platform.OS !== 'ios' && NativeModule.dismissRedbox) {\n // TODO(T53311281): This is a noop on iOS now. Implement it.\n NativeModule.dismissRedbox();\n }\n },\n reportException(data: ExceptionData): void {\n if (NativeModule.reportException) {\n NativeModule.reportException(data);\n return;\n }\n if (data.isFatal) {\n ExceptionsManager.reportFatalException(data.message, data.stack, data.id);\n } else {\n ExceptionsManager.reportSoftException(data.message, data.stack, data.id);\n }\n },\n};\n\nexport default ExceptionsManager;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nconst {polyfillGlobal} = require('../Utilities/PolyfillFunctions');\n\n/**\n * Set up Promise. The native Promise implementation throws the following error:\n * ERROR: Event loop not supported.\n *\n * If you don't need these polyfills, don't use InitializeCore; just directly\n * require the modules you need from InitializeCore for setup.\n */\n\n// If global.Promise is provided by Hermes, we are confident that it can provide\n// all the methods needed by React Native, so we can directly use it.\nif (global?.HermesInternal?.hasPromise?.()) {\n const HermesPromise = global.Promise;\n\n if (__DEV__) {\n if (typeof HermesPromise !== 'function') {\n console.error('HermesPromise does not exist');\n }\n global.HermesInternal?.enablePromiseRejectionTracker?.(\n require('../promiseRejectionTrackingOptions').default,\n );\n }\n} else {\n polyfillGlobal('Promise', () => require('../Promise'));\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nconst defineLazyObjectProperty = require('./defineLazyObjectProperty');\n\n/**\n * Sets an object's property. If a property with the same name exists, this will\n * replace it but maintain its descriptor configuration. The property will be\n * replaced with a lazy getter.\n *\n * In DEV mode the original property value will be preserved as `original[PropertyName]`\n * so that, if necessary, it can be restored. For example, if you want to route\n * network requests through DevTools (to trace them):\n *\n * global.XMLHttpRequest = global.originalXMLHttpRequest;\n *\n * @see https://github.com/facebook/react-native/issues/934\n */\nfunction polyfillObjectProperty(\n object: {...},\n name: string,\n getValue: () => T,\n): void {\n const descriptor = Object.getOwnPropertyDescriptor<$FlowFixMe>(object, name);\n if (__DEV__ && descriptor) {\n const backupName = `original${name[0].toUpperCase()}${name.substr(1)}`;\n Object.defineProperty(object, backupName, descriptor);\n }\n\n const {enumerable, writable, configurable = false} = descriptor || {};\n if (descriptor && !configurable) {\n console.error('Failed to set polyfill. ' + name + ' is not configurable.');\n return;\n }\n\n defineLazyObjectProperty(object, name, {\n get: getValue,\n enumerable: enumerable !== false,\n writable: writable !== false,\n });\n}\n\nfunction polyfillGlobal(name: string, getValue: () => T): void {\n polyfillObjectProperty(global, name, getValue);\n}\n\nmodule.exports = {polyfillObjectProperty, polyfillGlobal};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nconst Promise = require('promise/setimmediate/es6-extensions');\n\nrequire('promise/setimmediate/finally');\n\nif (__DEV__) {\n require('promise/setimmediate/rejection-tracking').enable(\n require('./promiseRejectionTrackingOptions').default,\n );\n}\n\nmodule.exports = Promise;\n","'use strict';\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\nPromise.prototype.finally = function (f) {\n return this.then(function (value) {\n return Promise.resolve(f()).then(function () {\n return value;\n });\n }, function (err) {\n return Promise.resolve(f()).then(function () {\n throw err;\n });\n });\n};\n","'use strict';\n\n\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n try {\n return obj.then;\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nfunction tryCallOne(fn, a) {\n try {\n return fn(a);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\nfunction tryCallTwo(fn, a, b) {\n try {\n fn(a, b);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('Promise constructor\\'s argument is not a function');\n }\n this._x = 0;\n this._y = 0;\n this._z = null;\n this._A = null;\n if (fn === noop) return;\n doResolve(fn, this);\n}\nPromise._B = null;\nPromise._C = null;\nPromise._D = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n if (this.constructor !== Promise) {\n return safeThen(this, onFulfilled, onRejected);\n }\n var res = new Promise(noop);\n handle(this, new Handler(onFulfilled, onRejected, res));\n return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n return new self.constructor(function (resolve, reject) {\n var res = new Promise(noop);\n res.then(resolve, reject);\n handle(self, new Handler(onFulfilled, onRejected, res));\n });\n}\nfunction handle(self, deferred) {\n while (self._y === 3) {\n self = self._z;\n }\n if (Promise._B) {\n Promise._B(self);\n }\n if (self._y === 0) {\n if (self._x === 0) {\n self._x = 1;\n self._A = deferred;\n return;\n }\n if (self._x === 1) {\n self._x = 2;\n self._A = [self._A, deferred];\n return;\n }\n self._A.push(deferred);\n return;\n }\n handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n setImmediate(function() {\n var cb = self._y === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n if (self._y === 1) {\n resolve(deferred.promise, self._z);\n } else {\n reject(deferred.promise, self._z);\n }\n return;\n }\n var ret = tryCallOne(cb, self._z);\n if (ret === IS_ERROR) {\n reject(deferred.promise, LAST_ERROR);\n } else {\n resolve(deferred.promise, ret);\n }\n });\n}\nfunction resolve(self, newValue) {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self) {\n return reject(\n self,\n new TypeError('A promise cannot be resolved with itself.')\n );\n }\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = getThen(newValue);\n if (then === IS_ERROR) {\n return reject(self, LAST_ERROR);\n }\n if (\n then === self.then &&\n newValue instanceof Promise\n ) {\n self._y = 3;\n self._z = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(then.bind(newValue), self);\n return;\n }\n }\n self._y = 1;\n self._z = newValue;\n finale(self);\n}\n\nfunction reject(self, newValue) {\n self._y = 2;\n self._z = newValue;\n if (Promise._C) {\n Promise._C(self, newValue);\n }\n finale(self);\n}\nfunction finale(self) {\n if (self._x === 1) {\n handle(self, self._A);\n self._A = null;\n }\n if (self._x === 2) {\n for (var i = 0; i < self._A.length; i++) {\n handle(self, self._A[i]);\n }\n self._A = null;\n }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n var done = false;\n var res = tryCallTwo(fn, function (value) {\n if (done) return;\n done = true;\n resolve(promise, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(promise, reason);\n });\n if (!done && res === IS_ERROR) {\n done = true;\n reject(promise, LAST_ERROR);\n }\n}\n","'use strict';\n\n//This file contains the ES6 extensions to the core Promises/A+ API\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\n\n/* Static Functions */\n\nvar TRUE = valuePromise(true);\nvar FALSE = valuePromise(false);\nvar NULL = valuePromise(null);\nvar UNDEFINED = valuePromise(undefined);\nvar ZERO = valuePromise(0);\nvar EMPTYSTRING = valuePromise('');\n\nfunction valuePromise(value) {\n var p = new Promise(Promise._D);\n p._y = 1;\n p._z = value;\n return p;\n}\nPromise.resolve = function (value) {\n if (value instanceof Promise) return value;\n\n if (value === null) return NULL;\n if (value === undefined) return UNDEFINED;\n if (value === true) return TRUE;\n if (value === false) return FALSE;\n if (value === 0) return ZERO;\n if (value === '') return EMPTYSTRING;\n\n if (typeof value === 'object' || typeof value === 'function') {\n try {\n var then = value.then;\n if (typeof then === 'function') {\n return new Promise(then.bind(value));\n }\n } catch (ex) {\n return new Promise(function (resolve, reject) {\n reject(ex);\n });\n }\n }\n return valuePromise(value);\n};\n\nvar iterableToArray = function (iterable) {\n if (typeof Array.from === 'function') {\n // ES2015+, iterables exist\n iterableToArray = Array.from;\n return Array.from(iterable);\n }\n\n // ES5, only arrays and array-likes exist\n iterableToArray = function (x) { return Array.prototype.slice.call(x); };\n return Array.prototype.slice.call(iterable);\n}\n\nPromise.all = function (arr) {\n var args = iterableToArray(arr);\n\n return new Promise(function (resolve, reject) {\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n if (val instanceof Promise && val.then === Promise.prototype.then) {\n while (val._y === 3) {\n val = val._z;\n }\n if (val._y === 1) return res(i, val._z);\n if (val._y === 2) reject(val._z);\n val.then(function (val) {\n res(i, val);\n }, reject);\n return;\n } else {\n var then = val.then;\n if (typeof then === 'function') {\n var p = new Promise(then.bind(val));\n p.then(function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nfunction onSettledFulfill(value) {\n return { status: 'fulfilled', value: value };\n}\nfunction onSettledReject(reason) {\n return { status: 'rejected', reason: reason };\n}\nfunction mapAllSettled(item) {\n if(item && (typeof item === 'object' || typeof item === 'function')){\n if(item instanceof Promise && item.then === Promise.prototype.then){\n return item.then(onSettledFulfill, onSettledReject);\n }\n var then = item.then;\n if (typeof then === 'function') {\n return new Promise(then.bind(item)).then(onSettledFulfill, onSettledReject)\n }\n }\n\n return onSettledFulfill(item);\n}\nPromise.allSettled = function (iterable) {\n return Promise.all(iterableToArray(iterable).map(mapAllSettled));\n};\n\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n iterableToArray(values).forEach(function(value){\n Promise.resolve(value).then(resolve, reject);\n });\n });\n};\n\n/* Prototype Methods */\n\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\n\nfunction getAggregateError(errors){\n if(typeof AggregateError === 'function'){\n return new AggregateError(errors,'All promises were rejected');\n }\n\n var error = new Error('All promises were rejected');\n\n error.name = 'AggregateError';\n error.errors = errors;\n\n return error;\n}\n\nPromise.any = function promiseAny(values) {\n return new Promise(function(resolve, reject) {\n var promises = iterableToArray(values);\n var hasResolved = false;\n var rejectionReasons = [];\n\n function resolveOnce(value) {\n if (!hasResolved) {\n hasResolved = true;\n resolve(value);\n }\n }\n\n function rejectionCheck(reason) {\n rejectionReasons.push(reason);\n\n if (rejectionReasons.length === promises.length) {\n reject(getAggregateError(rejectionReasons));\n }\n }\n\n if(promises.length === 0){\n reject(getAggregateError(rejectionReasons));\n } else {\n promises.forEach(function(value){\n Promise.resolve(value).then(resolveOnce, rejectionCheck);\n });\n }\n });\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nconst {hasNativeConstructor} = require('../Utilities/FeatureDetection');\nconst {polyfillGlobal} = require('../Utilities/PolyfillFunctions');\n\n/**\n * Set up regenerator.\n * You can use this module directly, or just require InitializeCore.\n */\n\nlet hasNativeGenerator;\ntry {\n // If this function was lowered by regenerator-transform, it will try to\n // access `global.regeneratorRuntime` which doesn't exist yet and will throw.\n hasNativeGenerator = hasNativeConstructor(function* () {},\n 'GeneratorFunction');\n} catch {\n // In this case, we know generators are not provided natively.\n hasNativeGenerator = false;\n}\n\n// If generators are provided natively, which suggests that there was no\n// regenerator-transform, then there is no need to set up the runtime.\nif (!hasNativeGenerator) {\n polyfillGlobal('regeneratorRuntime', () => {\n // The require just sets up the global, so make sure when we first\n // invoke it the global does not exist\n delete global.regeneratorRuntime;\n\n // regenerator-runtime/runtime exports the regeneratorRuntime object, so we\n // can return it safely.\n return require('regenerator-runtime/runtime'); // flowlint-line untyped-import:off\n });\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n/**\n * @return whether or not a @param {function} f is provided natively by calling\n * `toString` and check if the result includes `[native code]` in it.\n *\n * Note that a polyfill can technically fake this behavior but few does it.\n * Therefore, this is usually good enough for our purpose.\n */\nfunction isNativeFunction(f: Function): boolean {\n return typeof f === 'function' && f.toString().indexOf('[native code]') > -1;\n}\n\n/**\n * @return whether or not the constructor of @param {object} o is an native\n * function named with @param {string} expectedName.\n */\nfunction hasNativeConstructor(o: Object, expectedName: string): boolean {\n const con = Object.getPrototypeOf(o).constructor;\n return con.name === expectedName && isNativeFunction(con);\n}\n\nmodule.exports = {isNativeFunction, hasNativeConstructor};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next mehtod, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nconst {isNativeFunction} = require('../Utilities/FeatureDetection');\nconst {polyfillGlobal} = require('../Utilities/PolyfillFunctions');\n\nif (__DEV__) {\n if (typeof global.Promise !== 'function') {\n console.error('Promise should exist before setting up timers.');\n }\n}\n\n// Currently, Hermes `Promise` is implemented via Internal Bytecode.\nconst hasHermesPromiseQueuedToJSVM =\n global.HermesInternal?.hasPromise?.() === true &&\n global.HermesInternal?.useEngineQueue?.() === true;\n\nconst hasNativePromise = isNativeFunction(Promise);\nconst hasPromiseQueuedToJSVM = hasNativePromise || hasHermesPromiseQueuedToJSVM;\n\n// In bridgeless mode, timers are host functions installed from cpp.\nif (global.RN$Bridgeless !== true) {\n /**\n * Set up timers.\n * You can use this module directly, or just require InitializeCore.\n */\n const defineLazyTimer = (\n name:\n | $TEMPORARY$string<'cancelAnimationFrame'>\n | $TEMPORARY$string<'cancelIdleCallback'>\n | $TEMPORARY$string<'clearInterval'>\n | $TEMPORARY$string<'clearTimeout'>\n | $TEMPORARY$string<'requestAnimationFrame'>\n | $TEMPORARY$string<'requestIdleCallback'>\n | $TEMPORARY$string<'setInterval'>\n | $TEMPORARY$string<'setTimeout'>,\n ) => {\n polyfillGlobal(name, () => require('./Timers/JSTimers')[name]);\n };\n defineLazyTimer('setTimeout');\n defineLazyTimer('clearTimeout');\n defineLazyTimer('setInterval');\n defineLazyTimer('clearInterval');\n defineLazyTimer('requestAnimationFrame');\n defineLazyTimer('cancelAnimationFrame');\n defineLazyTimer('requestIdleCallback');\n defineLazyTimer('cancelIdleCallback');\n}\n\n/**\n * Set up immediate APIs, which is required to use the same microtask queue\n * as the Promise.\n */\nif (hasPromiseQueuedToJSVM) {\n // When promise queues to the JSVM microtasks queue, we shim the immediate\n // APIs via `queueMicrotask` to maintain the backward compatibility.\n polyfillGlobal(\n 'setImmediate',\n () => require('./Timers/immediateShim').setImmediate,\n );\n polyfillGlobal(\n 'clearImmediate',\n () => require('./Timers/immediateShim').clearImmediate,\n );\n} else {\n // When promise was polyfilled hence is queued to the RN microtask queue,\n // we polyfill the immediate APIs as aliases to the ReactNativeMicrotask APIs.\n // Note that in bridgeless mode, immediate APIs are installed from cpp.\n if (global.RN$Bridgeless !== true) {\n polyfillGlobal(\n 'setImmediate',\n () => require('./Timers/JSTimers').queueReactNativeMicrotask,\n );\n polyfillGlobal(\n 'clearImmediate',\n () => require('./Timers/JSTimers').clearReactNativeMicrotask,\n );\n }\n}\n\n/**\n * Set up the microtask queueing API, which is required to use the same\n * microtask queue as the Promise.\n */\nif (hasHermesPromiseQueuedToJSVM) {\n // Fast path for Hermes.\n polyfillGlobal('queueMicrotask', () => global.HermesInternal?.enqueueJob);\n} else {\n // Polyfill it with promise (regardless it's polyfilled or native) otherwise.\n polyfillGlobal(\n 'queueMicrotask',\n () => require('./Timers/queueMicrotask.js').default,\n );\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport NativeTiming from './NativeTiming';\n\nconst BatchedBridge = require('../../BatchedBridge/BatchedBridge');\nconst Systrace = require('../../Performance/Systrace');\nconst invariant = require('invariant');\n\n/**\n * JS implementation of timer functions. Must be completely driven by an\n * external clock signal, all that's stored here is timerID, timer type, and\n * callback.\n */\n\nexport type JSTimerType =\n | 'setTimeout'\n | 'setInterval'\n | 'requestAnimationFrame'\n | 'queueReactNativeMicrotask'\n | 'requestIdleCallback';\n\n// These timing constants should be kept in sync with the ones in native ios and\n// android `RCTTiming` module.\nconst FRAME_DURATION = 1000 / 60;\nconst IDLE_CALLBACK_FRAME_DEADLINE = 1;\n\n// Parallel arrays\nconst callbacks: Array = [];\nconst types: Array = [];\nconst timerIDs: Array = [];\nlet reactNativeMicrotasks: Array = [];\nlet requestIdleCallbacks: Array = [];\nconst requestIdleCallbackTimeouts: {[number]: number, ...} = {};\n\nlet GUID = 1;\nconst errors: Array = [];\n\nlet hasEmittedTimeDriftWarning = false;\n\n// Returns a free index if one is available, and the next consecutive index otherwise.\nfunction _getFreeIndex(): number {\n let freeIndex = timerIDs.indexOf(null);\n if (freeIndex === -1) {\n freeIndex = timerIDs.length;\n }\n return freeIndex;\n}\n\nfunction _allocateCallback(func: Function, type: JSTimerType): number {\n const id = GUID++;\n const freeIndex = _getFreeIndex();\n timerIDs[freeIndex] = id;\n callbacks[freeIndex] = func;\n types[freeIndex] = type;\n return id;\n}\n\n/**\n * Calls the callback associated with the ID. Also unregister that callback\n * if it was a one time timer (setTimeout), and not unregister it if it was\n * recurring (setInterval).\n */\nfunction _callTimer(timerID: number, frameTime: number, didTimeout: ?boolean) {\n if (timerID > GUID) {\n console.warn(\n 'Tried to call timer with ID %s but no such timer exists.',\n timerID,\n );\n }\n\n // timerIndex of -1 means that no timer with that ID exists. There are\n // two situations when this happens, when a garbage timer ID was given\n // and when a previously existing timer was deleted before this callback\n // fired. In both cases we want to ignore the timer id, but in the former\n // case we warn as well.\n const timerIndex = timerIDs.indexOf(timerID);\n if (timerIndex === -1) {\n return;\n }\n\n const type = types[timerIndex];\n const callback = callbacks[timerIndex];\n if (!callback || !type) {\n console.error('No callback found for timerID ' + timerID);\n return;\n }\n\n if (__DEV__) {\n Systrace.beginEvent(type + ' [invoke]');\n }\n\n // Clear the metadata\n if (type !== 'setInterval') {\n _clearIndex(timerIndex);\n }\n\n try {\n if (\n type === 'setTimeout' ||\n type === 'setInterval' ||\n type === 'queueReactNativeMicrotask'\n ) {\n callback();\n } else if (type === 'requestAnimationFrame') {\n callback(global.performance.now());\n } else if (type === 'requestIdleCallback') {\n callback({\n timeRemaining: function () {\n // TODO: Optimisation: allow running for longer than one frame if\n // there are no pending JS calls on the bridge from native. This\n // would require a way to check the bridge queue synchronously.\n return Math.max(\n 0,\n FRAME_DURATION - (global.performance.now() - frameTime),\n );\n },\n didTimeout: !!didTimeout,\n });\n } else {\n console.error('Tried to call a callback with invalid type: ' + type);\n }\n } catch (e) {\n // Don't rethrow so that we can run all timers.\n errors.push(e);\n }\n\n if (__DEV__) {\n Systrace.endEvent();\n }\n}\n\n/**\n * Performs a single pass over the enqueued reactNativeMicrotasks. Returns whether\n * more reactNativeMicrotasks are queued up (can be used as a condition a while loop).\n */\nfunction _callReactNativeMicrotasksPass() {\n if (reactNativeMicrotasks.length === 0) {\n return false;\n }\n\n if (__DEV__) {\n Systrace.beginEvent('callReactNativeMicrotasksPass()');\n }\n\n // The main reason to extract a single pass is so that we can track\n // in the system trace\n const passReactNativeMicrotasks = reactNativeMicrotasks;\n reactNativeMicrotasks = [];\n\n // Use for loop rather than forEach as per @vjeux's advice\n // https://github.com/facebook/react-native/commit/c8fd9f7588ad02d2293cac7224715f4af7b0f352#commitcomment-14570051\n for (let i = 0; i < passReactNativeMicrotasks.length; ++i) {\n _callTimer(passReactNativeMicrotasks[i], 0);\n }\n\n if (__DEV__) {\n Systrace.endEvent();\n }\n return reactNativeMicrotasks.length > 0;\n}\n\nfunction _clearIndex(i: number) {\n timerIDs[i] = null;\n callbacks[i] = null;\n types[i] = null;\n}\n\nfunction _freeCallback(timerID: number) {\n // timerIDs contains nulls after timers have been removed;\n // ignore nulls upfront so indexOf doesn't find them\n if (timerID == null) {\n return;\n }\n\n const index = timerIDs.indexOf(timerID);\n // See corresponding comment in `callTimers` for reasoning behind this\n if (index !== -1) {\n const type = types[index];\n _clearIndex(index);\n if (\n type !== 'queueReactNativeMicrotask' &&\n type !== 'requestIdleCallback'\n ) {\n deleteTimer(timerID);\n }\n }\n}\n\n/**\n * JS implementation of timer functions. Must be completely driven by an\n * external clock signal, all that's stored here is timerID, timer type, and\n * callback.\n */\nconst JSTimers = {\n /**\n * @param {function} func Callback to be invoked after `duration` ms.\n * @param {number} duration Number of milliseconds.\n */\n setTimeout: function (\n func: Function,\n duration: number,\n ...args: any\n ): number {\n const id = _allocateCallback(\n () => func.apply(undefined, args),\n 'setTimeout',\n );\n createTimer(id, duration || 0, Date.now(), /* recurring */ false);\n return id;\n },\n\n /**\n * @param {function} func Callback to be invoked every `duration` ms.\n * @param {number} duration Number of milliseconds.\n */\n setInterval: function (\n func: Function,\n duration: number,\n ...args: any\n ): number {\n const id = _allocateCallback(\n () => func.apply(undefined, args),\n 'setInterval',\n );\n createTimer(id, duration || 0, Date.now(), /* recurring */ true);\n return id;\n },\n\n /**\n * The React Native microtask mechanism is used to back public APIs e.g.\n * `queueMicrotask`, `clearImmediate`, and `setImmediate` (which is used by\n * the Promise polyfill) when the JSVM microtask mechanism is not used.\n *\n * @param {function} func Callback to be invoked before the end of the\n * current JavaScript execution loop.\n */\n queueReactNativeMicrotask: function (func: Function, ...args: any): number {\n const id = _allocateCallback(\n () => func.apply(undefined, args),\n 'queueReactNativeMicrotask',\n );\n reactNativeMicrotasks.push(id);\n return id;\n },\n\n /**\n * @param {function} func Callback to be invoked every frame.\n */\n requestAnimationFrame: function (func: Function): any | number {\n const id = _allocateCallback(func, 'requestAnimationFrame');\n createTimer(id, 1, Date.now(), /* recurring */ false);\n return id;\n },\n\n /**\n * @param {function} func Callback to be invoked every frame and provided\n * with time remaining in frame.\n * @param {?object} options\n */\n requestIdleCallback: function (\n func: Function,\n options: ?Object,\n ): any | number {\n if (requestIdleCallbacks.length === 0) {\n setSendIdleEvents(true);\n }\n\n const timeout = options && options.timeout;\n const id: number = _allocateCallback(\n timeout != null\n ? (deadline: any) => {\n const timeoutId: number = requestIdleCallbackTimeouts[id];\n if (timeoutId) {\n JSTimers.clearTimeout(timeoutId);\n delete requestIdleCallbackTimeouts[id];\n }\n return func(deadline);\n }\n : func,\n 'requestIdleCallback',\n );\n requestIdleCallbacks.push(id);\n\n if (timeout != null) {\n const timeoutId: number = JSTimers.setTimeout(() => {\n const index: number = requestIdleCallbacks.indexOf(id);\n if (index > -1) {\n requestIdleCallbacks.splice(index, 1);\n _callTimer(id, global.performance.now(), true);\n }\n delete requestIdleCallbackTimeouts[id];\n if (requestIdleCallbacks.length === 0) {\n setSendIdleEvents(false);\n }\n }, timeout);\n requestIdleCallbackTimeouts[id] = timeoutId;\n }\n return id;\n },\n\n cancelIdleCallback: function (timerID: number) {\n _freeCallback(timerID);\n const index = requestIdleCallbacks.indexOf(timerID);\n if (index !== -1) {\n requestIdleCallbacks.splice(index, 1);\n }\n\n const timeoutId = requestIdleCallbackTimeouts[timerID];\n if (timeoutId) {\n JSTimers.clearTimeout(timeoutId);\n delete requestIdleCallbackTimeouts[timerID];\n }\n\n if (requestIdleCallbacks.length === 0) {\n setSendIdleEvents(false);\n }\n },\n\n clearTimeout: function (timerID: number) {\n _freeCallback(timerID);\n },\n\n clearInterval: function (timerID: number) {\n _freeCallback(timerID);\n },\n\n clearReactNativeMicrotask: function (timerID: number) {\n _freeCallback(timerID);\n const index = reactNativeMicrotasks.indexOf(timerID);\n if (index !== -1) {\n reactNativeMicrotasks.splice(index, 1);\n }\n },\n\n cancelAnimationFrame: function (timerID: number) {\n _freeCallback(timerID);\n },\n\n /**\n * This is called from the native side. We are passed an array of timerIDs,\n * and\n */\n callTimers: function (timersToCall: Array): any | void {\n invariant(\n timersToCall.length !== 0,\n 'Cannot call `callTimers` with an empty list of IDs.',\n );\n\n errors.length = 0;\n for (let i = 0; i < timersToCall.length; i++) {\n _callTimer(timersToCall[i], 0);\n }\n\n const errorCount = errors.length;\n if (errorCount > 0) {\n if (errorCount > 1) {\n // Throw all the other errors in a setTimeout, which will throw each\n // error one at a time\n for (let ii = 1; ii < errorCount; ii++) {\n JSTimers.setTimeout(\n ((error: Error) => {\n throw error;\n }).bind(null, errors[ii]),\n 0,\n );\n }\n }\n throw errors[0];\n }\n },\n\n callIdleCallbacks: function (frameTime: number) {\n if (\n FRAME_DURATION - (Date.now() - frameTime) <\n IDLE_CALLBACK_FRAME_DEADLINE\n ) {\n return;\n }\n\n errors.length = 0;\n if (requestIdleCallbacks.length > 0) {\n const passIdleCallbacks = requestIdleCallbacks;\n requestIdleCallbacks = [];\n\n for (let i = 0; i < passIdleCallbacks.length; ++i) {\n _callTimer(passIdleCallbacks[i], frameTime);\n }\n }\n\n if (requestIdleCallbacks.length === 0) {\n setSendIdleEvents(false);\n }\n\n errors.forEach(error =>\n JSTimers.setTimeout(() => {\n throw error;\n }, 0),\n );\n },\n\n /**\n * This is called after we execute any command we receive from native but\n * before we hand control back to native.\n */\n callReactNativeMicrotasks() {\n errors.length = 0;\n while (_callReactNativeMicrotasksPass()) {}\n errors.forEach(error =>\n JSTimers.setTimeout(() => {\n throw error;\n }, 0),\n );\n },\n\n /**\n * Called from native (in development) when environment times are out-of-sync.\n */\n emitTimeDriftWarning(warningMessage: string) {\n if (hasEmittedTimeDriftWarning) {\n return;\n }\n hasEmittedTimeDriftWarning = true;\n console.warn(warningMessage);\n },\n};\n\nfunction createTimer(\n callbackID: number,\n duration: number,\n jsSchedulingTime: number,\n repeats: boolean,\n): void {\n invariant(NativeTiming, 'NativeTiming is available');\n NativeTiming.createTimer(callbackID, duration, jsSchedulingTime, repeats);\n}\n\nfunction deleteTimer(timerID: number): void {\n invariant(NativeTiming, 'NativeTiming is available');\n NativeTiming.deleteTimer(timerID);\n}\n\nfunction setSendIdleEvents(sendIdleEvents: boolean): void {\n invariant(NativeTiming, 'NativeTiming is available');\n NativeTiming.setSendIdleEvents(sendIdleEvents);\n}\n\nlet ExportedJSTimers: {|\n callIdleCallbacks: (frameTime: number) => any | void,\n callReactNativeMicrotasks: () => void,\n callTimers: (timersToCall: Array) => any | void,\n cancelAnimationFrame: (timerID: number) => void,\n cancelIdleCallback: (timerID: number) => void,\n clearReactNativeMicrotask: (timerID: number) => void,\n clearInterval: (timerID: number) => void,\n clearTimeout: (timerID: number) => void,\n emitTimeDriftWarning: (warningMessage: string) => any | void,\n requestAnimationFrame: (func: any) => any | number,\n requestIdleCallback: (func: any, options: ?any) => any | number,\n queueReactNativeMicrotask: (func: any, ...args: any) => number,\n setInterval: (func: any, duration: number, ...args: any) => number,\n setTimeout: (func: any, duration: number, ...args: any) => number,\n|};\n\nif (!NativeTiming) {\n console.warn(\"Timing native module is not available, can't set timers.\");\n // $FlowFixMe[prop-missing] : we can assume timers are generally available\n ExportedJSTimers = ({\n callReactNativeMicrotasks: JSTimers.callReactNativeMicrotasks,\n queueReactNativeMicrotask: JSTimers.queueReactNativeMicrotask,\n }: typeof JSTimers);\n} else {\n ExportedJSTimers = JSTimers;\n}\n\nBatchedBridge.setReactNativeMicrotasksCallback(\n JSTimers.callReactNativeMicrotasks,\n);\n\nmodule.exports = ExportedJSTimers;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +createTimer: (\n callbackID: number,\n duration: number,\n jsSchedulingTime: number,\n repeats: boolean,\n ) => void;\n +deleteTimer: (timerID: number) => void;\n +setSendIdleEvents: (sendIdleEvents: boolean) => void;\n}\n\nexport default (TurboModuleRegistry.get('Timing'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\n// Globally Unique Immediate ID.\nlet GUIID = 1;\n\n// A global set of the currently cleared immediates.\nconst clearedImmediates: Set = new Set();\n\n/**\n * Shim the setImmediate API on top of queueMicrotask.\n * @param {function} func Callback to be invoked before the end of the\n * current JavaScript execution loop.\n */\nfunction setImmediate(callback: Function, ...args: any): number {\n if (arguments.length < 1) {\n throw new TypeError(\n 'setImmediate must be called with at least one argument (a function to call)',\n );\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\n 'The first argument to setImmediate must be a function.',\n );\n }\n\n const id = GUIID++;\n // This is an edgey case in which the sequentially assigned ID has been\n // \"guessed\" and \"cleared\" ahead of time, so we need to clear it up first.\n if (clearedImmediates.has(id)) {\n clearedImmediates.delete(id);\n }\n\n // $FlowFixMe[incompatible-call]\n global.queueMicrotask(() => {\n if (!clearedImmediates.has(id)) {\n callback.apply(undefined, args);\n } else {\n // Free up the Set entry.\n clearedImmediates.delete(id);\n }\n });\n\n return id;\n}\n\n/**\n * @param {number} immediateID The ID of the immediate to be clearred.\n */\nfunction clearImmediate(immediateID: number) {\n clearedImmediates.add(immediateID);\n}\n\nconst immediateShim = {\n setImmediate: setImmediate,\n clearImmediate: clearImmediate,\n};\n\nmodule.exports = immediateShim;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nlet resolvedPromise;\n\n/**\n * Polyfill for the microtask queueing API defined by WHATWG HTML spec.\n * https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask\n *\n * The method must queue a microtask to invoke @param {function} callback, and\n * if the callback throws an exception, report the exception.\n */\nexport default function queueMicrotask(callback: Function) {\n if (arguments.length < 1) {\n throw new TypeError(\n 'queueMicrotask must be called with at least one argument (a function to call)',\n );\n }\n if (typeof callback !== 'function') {\n throw new TypeError('The argument to queueMicrotask must be a function.');\n }\n\n // Try to reuse a lazily allocated resolved promise from closure.\n (resolvedPromise || (resolvedPromise = Promise.resolve()))\n .then(callback)\n .catch(error =>\n // Report the exception until the next tick.\n setTimeout(() => {\n throw error;\n }, 0),\n );\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nconst {polyfillGlobal} = require('../Utilities/PolyfillFunctions');\n\n/**\n * Set up XMLHttpRequest. The native XMLHttpRequest in Chrome dev tools is CORS\n * aware and won't let you fetch anything from the internet.\n *\n * You can use this module directly, or just require InitializeCore.\n */\npolyfillGlobal('XMLHttpRequest', () => require('../Network/XMLHttpRequest'));\npolyfillGlobal('FormData', () => require('../Network/FormData'));\n\npolyfillGlobal('fetch', () => require('../Network/fetch').fetch);\npolyfillGlobal('Headers', () => require('../Network/fetch').Headers);\npolyfillGlobal('Request', () => require('../Network/fetch').Request);\npolyfillGlobal('Response', () => require('../Network/fetch').Response);\npolyfillGlobal('WebSocket', () => require('../WebSocket/WebSocket'));\npolyfillGlobal('Blob', () => require('../Blob/Blob'));\npolyfillGlobal('File', () => require('../Blob/File'));\npolyfillGlobal('FileReader', () => require('../Blob/FileReader'));\npolyfillGlobal('URL', () => require('../Blob/URL').URL); // flowlint-line untyped-import:off\npolyfillGlobal('URLSearchParams', () => require('../Blob/URL').URLSearchParams); // flowlint-line untyped-import:off\npolyfillGlobal(\n 'AbortController',\n () => require('abort-controller/dist/abort-controller').AbortController, // flowlint-line untyped-import:off\n);\npolyfillGlobal(\n 'AbortSignal',\n () => require('abort-controller/dist/abort-controller').AbortSignal, // flowlint-line untyped-import:off\n);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nimport type {IPerformanceLogger} from '../Utilities/createPerformanceLogger';\n\nimport {type EventSubscription} from '../vendor/emitter/EventEmitter';\n\nconst BlobManager = require('../Blob/BlobManager');\nconst GlobalPerformanceLogger = require('../Utilities/GlobalPerformanceLogger');\nconst RCTNetworking = require('./RCTNetworking').default;\nconst base64 = require('base64-js');\nconst EventTarget = require('event-target-shim');\nconst invariant = require('invariant');\n\nconst DEBUG_NETWORK_SEND_DELAY: false = false; // Set to a number of milliseconds when debugging\n\nexport type NativeResponseType = 'base64' | 'blob' | 'text';\nexport type ResponseType =\n | ''\n | 'arraybuffer'\n | 'blob'\n | 'document'\n | 'json'\n | 'text';\nexport type Response = ?Object | string;\n\ntype XHRInterceptor = interface {\n requestSent(id: number, url: string, method: string, headers: Object): void,\n responseReceived(\n id: number,\n url: string,\n status: number,\n headers: Object,\n ): void,\n dataReceived(id: number, data: string): void,\n loadingFinished(id: number, encodedDataLength: number): void,\n loadingFailed(id: number, error: string): void,\n};\n\n// The native blob module is optional so inject it here if available.\nif (BlobManager.isAvailable) {\n BlobManager.addNetworkingHandler();\n}\n\nconst UNSENT = 0;\nconst OPENED = 1;\nconst HEADERS_RECEIVED = 2;\nconst LOADING = 3;\nconst DONE = 4;\n\nconst SUPPORTED_RESPONSE_TYPES = {\n arraybuffer: typeof global.ArrayBuffer === 'function',\n blob: typeof global.Blob === 'function',\n document: false,\n json: true,\n text: true,\n '': true,\n};\n\nconst REQUEST_EVENTS = [\n 'abort',\n 'error',\n 'load',\n 'loadstart',\n 'progress',\n 'timeout',\n 'loadend',\n];\n\nconst XHR_EVENTS = REQUEST_EVENTS.concat('readystatechange');\n\nclass XMLHttpRequestEventTarget extends (EventTarget(...REQUEST_EVENTS): any) {\n onload: ?Function;\n onloadstart: ?Function;\n onprogress: ?Function;\n ontimeout: ?Function;\n onerror: ?Function;\n onabort: ?Function;\n onloadend: ?Function;\n}\n\n/**\n * Shared base for platform-specific XMLHttpRequest implementations.\n */\nclass XMLHttpRequest extends (EventTarget(...XHR_EVENTS): any) {\n static UNSENT: number = UNSENT;\n static OPENED: number = OPENED;\n static HEADERS_RECEIVED: number = HEADERS_RECEIVED;\n static LOADING: number = LOADING;\n static DONE: number = DONE;\n\n static _interceptor: ?XHRInterceptor = null;\n\n UNSENT: number = UNSENT;\n OPENED: number = OPENED;\n HEADERS_RECEIVED: number = HEADERS_RECEIVED;\n LOADING: number = LOADING;\n DONE: number = DONE;\n\n // EventTarget automatically initializes these to `null`.\n onload: ?Function;\n onloadstart: ?Function;\n onprogress: ?Function;\n ontimeout: ?Function;\n onerror: ?Function;\n onabort: ?Function;\n onloadend: ?Function;\n onreadystatechange: ?Function;\n\n readyState: number = UNSENT;\n responseHeaders: ?Object;\n status: number = 0;\n timeout: number = 0;\n responseURL: ?string;\n withCredentials: boolean = true;\n\n upload: XMLHttpRequestEventTarget = new XMLHttpRequestEventTarget();\n\n _requestId: ?number;\n _subscriptions: Array;\n\n _aborted: boolean = false;\n _cachedResponse: Response;\n _hasError: boolean = false;\n _headers: Object;\n _lowerCaseResponseHeaders: Object;\n _method: ?string = null;\n _perfKey: ?string = null;\n _responseType: ResponseType;\n _response: string = '';\n _sent: boolean;\n _url: ?string = null;\n _timedOut: boolean = false;\n _trackingName: string = 'unknown';\n _incrementalEvents: boolean = false;\n _performanceLogger: IPerformanceLogger = GlobalPerformanceLogger;\n\n static setInterceptor(interceptor: ?XHRInterceptor) {\n XMLHttpRequest._interceptor = interceptor;\n }\n\n constructor() {\n super();\n this._reset();\n }\n\n _reset(): void {\n this.readyState = this.UNSENT;\n this.responseHeaders = undefined;\n this.status = 0;\n delete this.responseURL;\n\n this._requestId = null;\n\n this._cachedResponse = undefined;\n this._hasError = false;\n this._headers = {};\n this._response = '';\n this._responseType = '';\n this._sent = false;\n this._lowerCaseResponseHeaders = {};\n\n this._clearSubscriptions();\n this._timedOut = false;\n }\n\n get responseType(): ResponseType {\n return this._responseType;\n }\n\n set responseType(responseType: ResponseType): void {\n if (this._sent) {\n throw new Error(\n \"Failed to set the 'responseType' property on 'XMLHttpRequest': The \" +\n 'response type cannot be set after the request has been sent.',\n );\n }\n if (!SUPPORTED_RESPONSE_TYPES.hasOwnProperty(responseType)) {\n console.warn(\n `The provided value '${responseType}' is not a valid 'responseType'.`,\n );\n return;\n }\n\n // redboxes early, e.g. for 'arraybuffer' on ios 7\n invariant(\n SUPPORTED_RESPONSE_TYPES[responseType] || responseType === 'document',\n `The provided value '${responseType}' is unsupported in this environment.`,\n );\n\n if (responseType === 'blob') {\n invariant(\n BlobManager.isAvailable,\n 'Native module BlobModule is required for blob support',\n );\n }\n this._responseType = responseType;\n }\n\n get responseText(): string {\n if (this._responseType !== '' && this._responseType !== 'text') {\n throw new Error(\n \"The 'responseText' property is only available if 'responseType' \" +\n `is set to '' or 'text', but it is '${this._responseType}'.`,\n );\n }\n if (this.readyState < LOADING) {\n return '';\n }\n return this._response;\n }\n\n get response(): Response {\n const {responseType} = this;\n if (responseType === '' || responseType === 'text') {\n return this.readyState < LOADING || this._hasError ? '' : this._response;\n }\n\n if (this.readyState !== DONE) {\n return null;\n }\n\n if (this._cachedResponse !== undefined) {\n return this._cachedResponse;\n }\n\n switch (responseType) {\n case 'document':\n this._cachedResponse = null;\n break;\n\n case 'arraybuffer':\n this._cachedResponse = base64.toByteArray(this._response).buffer;\n break;\n\n case 'blob':\n if (typeof this._response === 'object' && this._response) {\n this._cachedResponse = BlobManager.createFromOptions(this._response);\n } else if (this._response === '') {\n this._cachedResponse = BlobManager.createFromParts([]);\n } else {\n throw new Error(`Invalid response for blob: ${this._response}`);\n }\n break;\n\n case 'json':\n try {\n this._cachedResponse = JSON.parse(this._response);\n } catch (_) {\n this._cachedResponse = null;\n }\n break;\n\n default:\n this._cachedResponse = null;\n }\n\n return this._cachedResponse;\n }\n\n // exposed for testing\n __didCreateRequest(requestId: number): void {\n this._requestId = requestId;\n\n XMLHttpRequest._interceptor &&\n XMLHttpRequest._interceptor.requestSent(\n requestId,\n this._url || '',\n this._method || 'GET',\n this._headers,\n );\n }\n\n // exposed for testing\n __didUploadProgress(\n requestId: number,\n progress: number,\n total: number,\n ): void {\n if (requestId === this._requestId) {\n this.upload.dispatchEvent({\n type: 'progress',\n lengthComputable: true,\n loaded: progress,\n total,\n });\n }\n }\n\n __didReceiveResponse(\n requestId: number,\n status: number,\n responseHeaders: ?Object,\n responseURL: ?string,\n ): void {\n if (requestId === this._requestId) {\n this._perfKey != null &&\n this._performanceLogger.stopTimespan(this._perfKey);\n this.status = status;\n this.setResponseHeaders(responseHeaders);\n this.setReadyState(this.HEADERS_RECEIVED);\n if (responseURL || responseURL === '') {\n this.responseURL = responseURL;\n } else {\n delete this.responseURL;\n }\n\n XMLHttpRequest._interceptor &&\n XMLHttpRequest._interceptor.responseReceived(\n requestId,\n responseURL || this._url || '',\n status,\n responseHeaders || {},\n );\n }\n }\n\n __didReceiveData(requestId: number, response: string): void {\n if (requestId !== this._requestId) {\n return;\n }\n this._response = response;\n this._cachedResponse = undefined; // force lazy recomputation\n this.setReadyState(this.LOADING);\n\n XMLHttpRequest._interceptor &&\n XMLHttpRequest._interceptor.dataReceived(requestId, response);\n }\n\n __didReceiveIncrementalData(\n requestId: number,\n responseText: string,\n progress: number,\n total: number,\n ) {\n if (requestId !== this._requestId) {\n return;\n }\n if (!this._response) {\n this._response = responseText;\n } else {\n this._response += responseText;\n }\n\n XMLHttpRequest._interceptor &&\n XMLHttpRequest._interceptor.dataReceived(requestId, responseText);\n\n this.setReadyState(this.LOADING);\n this.__didReceiveDataProgress(requestId, progress, total);\n }\n\n __didReceiveDataProgress(\n requestId: number,\n loaded: number,\n total: number,\n ): void {\n if (requestId !== this._requestId) {\n return;\n }\n this.dispatchEvent({\n type: 'progress',\n lengthComputable: total >= 0,\n loaded,\n total,\n });\n }\n\n // exposed for testing\n __didCompleteResponse(\n requestId: number,\n error: string,\n timeOutError: boolean,\n ): void {\n if (requestId === this._requestId) {\n if (error) {\n if (this._responseType === '' || this._responseType === 'text') {\n this._response = error;\n }\n this._hasError = true;\n if (timeOutError) {\n this._timedOut = true;\n }\n }\n this._clearSubscriptions();\n this._requestId = null;\n this.setReadyState(this.DONE);\n\n if (error) {\n XMLHttpRequest._interceptor &&\n XMLHttpRequest._interceptor.loadingFailed(requestId, error);\n } else {\n XMLHttpRequest._interceptor &&\n XMLHttpRequest._interceptor.loadingFinished(\n requestId,\n this._response.length,\n );\n }\n }\n }\n\n _clearSubscriptions(): void {\n (this._subscriptions || []).forEach(sub => {\n if (sub) {\n sub.remove();\n }\n });\n this._subscriptions = [];\n }\n\n getAllResponseHeaders(): ?string {\n if (!this.responseHeaders) {\n // according to the spec, return null if no response has been received\n return null;\n }\n\n // Assign to non-nullable local variable.\n const responseHeaders = this.responseHeaders;\n\n const unsortedHeaders: Map<\n string,\n {lowerHeaderName: string, upperHeaderName: string, headerValue: string},\n > = new Map();\n for (const rawHeaderName of Object.keys(responseHeaders)) {\n const headerValue = responseHeaders[rawHeaderName];\n const lowerHeaderName = rawHeaderName.toLowerCase();\n const header = unsortedHeaders.get(lowerHeaderName);\n if (header) {\n header.headerValue += ', ' + headerValue;\n unsortedHeaders.set(lowerHeaderName, header);\n } else {\n unsortedHeaders.set(lowerHeaderName, {\n lowerHeaderName,\n upperHeaderName: rawHeaderName.toUpperCase(),\n headerValue,\n });\n }\n }\n\n // Sort in ascending order, with a being less than b if a's name is legacy-uppercased-byte less than b's name.\n const sortedHeaders = [...unsortedHeaders.values()].sort((a, b) => {\n if (a.upperHeaderName < b.upperHeaderName) {\n return -1;\n }\n if (a.upperHeaderName > b.upperHeaderName) {\n return 1;\n }\n return 0;\n });\n\n // Combine into single text response.\n return (\n sortedHeaders\n .map(header => {\n return header.lowerHeaderName + ': ' + header.headerValue;\n })\n .join('\\r\\n') + '\\r\\n'\n );\n }\n\n getResponseHeader(header: string): ?string {\n const value = this._lowerCaseResponseHeaders[header.toLowerCase()];\n return value !== undefined ? value : null;\n }\n\n setRequestHeader(header: string, value: any): void {\n if (this.readyState !== this.OPENED) {\n throw new Error('Request has not been opened');\n }\n this._headers[header.toLowerCase()] = String(value);\n }\n\n /**\n * Custom extension for tracking origins of request.\n */\n setTrackingName(trackingName: string): XMLHttpRequest {\n this._trackingName = trackingName;\n return this;\n }\n\n /**\n * Custom extension for setting a custom performance logger\n */\n setPerformanceLogger(performanceLogger: IPerformanceLogger): XMLHttpRequest {\n this._performanceLogger = performanceLogger;\n return this;\n }\n\n open(method: string, url: string, async: ?boolean): void {\n /* Other optional arguments are not supported yet */\n if (this.readyState !== this.UNSENT) {\n throw new Error('Cannot open, already sending');\n }\n if (async !== undefined && !async) {\n // async is default\n throw new Error('Synchronous http requests are not supported');\n }\n if (!url) {\n throw new Error('Cannot load an empty url');\n }\n this._method = method.toUpperCase();\n this._url = url;\n this._aborted = false;\n this.setReadyState(this.OPENED);\n }\n\n send(data: any): void {\n if (this.readyState !== this.OPENED) {\n throw new Error('Request has not been opened');\n }\n if (this._sent) {\n throw new Error('Request has already been sent');\n }\n this._sent = true;\n const incrementalEvents =\n this._incrementalEvents || !!this.onreadystatechange || !!this.onprogress;\n\n this._subscriptions.push(\n RCTNetworking.addListener('didSendNetworkData', args =>\n this.__didUploadProgress(...args),\n ),\n );\n this._subscriptions.push(\n RCTNetworking.addListener('didReceiveNetworkResponse', args =>\n this.__didReceiveResponse(...args),\n ),\n );\n this._subscriptions.push(\n RCTNetworking.addListener('didReceiveNetworkData', args =>\n this.__didReceiveData(...args),\n ),\n );\n this._subscriptions.push(\n RCTNetworking.addListener('didReceiveNetworkIncrementalData', args =>\n this.__didReceiveIncrementalData(...args),\n ),\n );\n this._subscriptions.push(\n RCTNetworking.addListener('didReceiveNetworkDataProgress', args =>\n this.__didReceiveDataProgress(...args),\n ),\n );\n this._subscriptions.push(\n RCTNetworking.addListener('didCompleteNetworkResponse', args =>\n this.__didCompleteResponse(...args),\n ),\n );\n\n let nativeResponseType: NativeResponseType = 'text';\n if (this._responseType === 'arraybuffer') {\n nativeResponseType = 'base64';\n }\n if (this._responseType === 'blob') {\n nativeResponseType = 'blob';\n }\n\n const doSend = () => {\n const friendlyName =\n this._trackingName !== 'unknown' ? this._trackingName : this._url;\n this._perfKey = 'network_XMLHttpRequest_' + String(friendlyName);\n this._performanceLogger.startTimespan(this._perfKey);\n invariant(\n this._method,\n 'XMLHttpRequest method needs to be defined (%s).',\n friendlyName,\n );\n invariant(\n this._url,\n 'XMLHttpRequest URL needs to be defined (%s).',\n friendlyName,\n );\n RCTNetworking.sendRequest(\n this._method,\n this._trackingName,\n this._url,\n this._headers,\n data,\n /* $FlowFixMe(>=0.78.0 site=react_native_android_fb) This issue was found\n * when making Flow check .android.js files. */\n nativeResponseType,\n incrementalEvents,\n this.timeout,\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.__didCreateRequest.bind(this),\n this.withCredentials,\n );\n };\n if (DEBUG_NETWORK_SEND_DELAY) {\n setTimeout(doSend, DEBUG_NETWORK_SEND_DELAY);\n } else {\n doSend();\n }\n }\n\n abort(): void {\n this._aborted = true;\n if (this._requestId) {\n RCTNetworking.abortRequest(this._requestId);\n }\n // only call onreadystatechange if there is something to abort,\n // below logic is per spec\n if (\n !(\n this.readyState === this.UNSENT ||\n (this.readyState === this.OPENED && !this._sent) ||\n this.readyState === this.DONE\n )\n ) {\n this._reset();\n this.setReadyState(this.DONE);\n }\n // Reset again after, in case modified in handler\n this._reset();\n }\n\n setResponseHeaders(responseHeaders: ?Object): void {\n this.responseHeaders = responseHeaders || null;\n const headers = responseHeaders || {};\n this._lowerCaseResponseHeaders = Object.keys(headers).reduce<{\n [string]: any,\n }>((lcaseHeaders, headerName) => {\n lcaseHeaders[headerName.toLowerCase()] = headers[headerName];\n return lcaseHeaders;\n }, {});\n }\n\n setReadyState(newState: number): void {\n this.readyState = newState;\n this.dispatchEvent({type: 'readystatechange'});\n if (newState === this.DONE) {\n if (this._aborted) {\n this.dispatchEvent({type: 'abort'});\n } else if (this._hasError) {\n if (this._timedOut) {\n this.dispatchEvent({type: 'timeout'});\n } else {\n this.dispatchEvent({type: 'error'});\n }\n } else {\n this.dispatchEvent({type: 'load'});\n }\n this.dispatchEvent({type: 'loadend'});\n }\n }\n\n /* global EventListener */\n addEventListener(type: string, listener: EventListener): void {\n // If we dont' have a 'readystatechange' event handler, we don't\n // have to send repeated LOADING events with incremental updates\n // to responseText, which will avoid a bunch of native -> JS\n // bridge traffic.\n if (type === 'readystatechange' || type === 'progress') {\n this._incrementalEvents = true;\n }\n super.addEventListener(type, listener);\n }\n}\n\nmodule.exports = XMLHttpRequest;\n","var superPropBase = require(\"./superPropBase.js\");\nfunction _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get.bind(), module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n return _get.apply(this, arguments);\n}\nmodule.exports = _get, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n}\nmodule.exports = _superPropBase, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {BlobCollector, BlobData, BlobOptions} from './BlobTypes';\n\nimport NativeBlobModule from './NativeBlobModule';\nimport invariant from 'invariant';\n\nconst Blob = require('./Blob');\nconst BlobRegistry = require('./BlobRegistry');\n\n/*eslint-disable no-bitwise */\n/*eslint-disable eqeqeq */\n\n/**\n * Based on the rfc4122-compliant solution posted at\n * http://stackoverflow.com/questions/105034\n */\nfunction uuidv4(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\n const r = (Math.random() * 16) | 0,\n v = c == 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\n// **Temporary workaround**\n// TODO(#24654): Use turbomodules for the Blob module.\n// Blob collector is a jsi::HostObject that is used by native to know\n// when the a Blob instance is deallocated. This allows to free the\n// underlying native resources. This is a hack to workaround the fact\n// that the current bridge infra doesn't allow to track js objects\n// deallocation. Ideally the whole Blob object should be a jsi::HostObject.\nfunction createBlobCollector(blobId: string): BlobCollector | null {\n if (global.__blobCollectorProvider == null) {\n return null;\n } else {\n return global.__blobCollectorProvider(blobId);\n }\n}\n\n/**\n * Module to manage blobs. Wrapper around the native blob module.\n */\nclass BlobManager {\n /**\n * If the native blob module is available.\n */\n static isAvailable: boolean = !!NativeBlobModule;\n\n /**\n * Create blob from existing array of blobs.\n */\n static createFromParts(\n parts: Array,\n options?: BlobOptions,\n ): Blob {\n invariant(NativeBlobModule, 'NativeBlobModule is available.');\n\n const blobId = uuidv4();\n const items = parts.map(part => {\n if (\n part instanceof ArrayBuffer ||\n (global.ArrayBufferView && part instanceof global.ArrayBufferView)\n ) {\n throw new Error(\n \"Creating blobs from 'ArrayBuffer' and 'ArrayBufferView' are not supported\",\n );\n }\n if (part instanceof Blob) {\n return {\n data: part.data,\n type: 'blob',\n };\n } else {\n return {\n data: String(part),\n type: 'string',\n };\n }\n });\n const size = items.reduce((acc, curr) => {\n if (curr.type === 'string') {\n return acc + global.unescape(encodeURI(curr.data)).length;\n } else {\n return acc + curr.data.size;\n }\n }, 0);\n\n NativeBlobModule.createFromParts(items, blobId);\n\n return BlobManager.createFromOptions({\n blobId,\n offset: 0,\n size,\n type: options ? options.type : '',\n lastModified: options ? options.lastModified : Date.now(),\n });\n }\n\n /**\n * Create blob instance from blob data from native.\n * Used internally by modules like XHR, WebSocket, etc.\n */\n static createFromOptions(options: BlobData): Blob {\n BlobRegistry.register(options.blobId);\n // $FlowFixMe[prop-missing]\n return Object.assign(Object.create(Blob.prototype), {\n data:\n // Reuse the collector instance when creating from an existing blob.\n // This will make sure that the underlying resource is only deallocated\n // when all blobs that refer to it are deallocated.\n options.__collector == null\n ? {\n ...options,\n __collector: createBlobCollector(options.blobId),\n }\n : options,\n });\n }\n\n /**\n * Deallocate resources for a blob.\n */\n static release(blobId: string): void {\n invariant(NativeBlobModule, 'NativeBlobModule is available.');\n\n BlobRegistry.unregister(blobId);\n if (BlobRegistry.has(blobId)) {\n return;\n }\n NativeBlobModule.release(blobId);\n }\n\n /**\n * Inject the blob content handler in the networking module to support blob\n * requests and responses.\n */\n static addNetworkingHandler(): void {\n invariant(NativeBlobModule, 'NativeBlobModule is available.');\n\n NativeBlobModule.addNetworkingHandler();\n }\n\n /**\n * Indicate the websocket should return a blob for incoming binary\n * messages.\n */\n static addWebSocketHandler(socketId: number): void {\n invariant(NativeBlobModule, 'NativeBlobModule is available.');\n\n NativeBlobModule.addWebSocketHandler(socketId);\n }\n\n /**\n * Indicate the websocket should no longer return a blob for incoming\n * binary messages.\n */\n static removeWebSocketHandler(socketId: number): void {\n invariant(NativeBlobModule, 'NativeBlobModule is available.');\n\n NativeBlobModule.removeWebSocketHandler(socketId);\n }\n\n /**\n * Send a blob message to a websocket.\n */\n static sendOverSocket(blob: Blob, socketId: number): void {\n invariant(NativeBlobModule, 'NativeBlobModule is available.');\n\n NativeBlobModule.sendOverSocket(blob.data, socketId);\n }\n}\n\nmodule.exports = BlobManager;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|BLOB_URI_SCHEME: ?string, BLOB_URI_HOST: ?string|};\n +addNetworkingHandler: () => void;\n +addWebSocketHandler: (id: number) => void;\n +removeWebSocketHandler: (id: number) => void;\n +sendOverSocket: (blob: Object, socketID: number) => void;\n +createFromParts: (parts: Array, withId: string) => void;\n +release: (blobId: string) => void;\n}\n\nconst NativeModule = TurboModuleRegistry.get('BlobModule');\n\nlet constants = null;\nlet NativeBlobModule = null;\n\nif (NativeModule != null) {\n NativeBlobModule = {\n getConstants(): {|BLOB_URI_SCHEME: ?string, BLOB_URI_HOST: ?string|} {\n if (constants == null) {\n constants = NativeModule.getConstants();\n }\n return constants;\n },\n addNetworkingHandler(): void {\n NativeModule.addNetworkingHandler();\n },\n addWebSocketHandler(id: number): void {\n NativeModule.addWebSocketHandler(id);\n },\n removeWebSocketHandler(id: number): void {\n NativeModule.removeWebSocketHandler(id);\n },\n sendOverSocket(blob: Object, socketID: number): void {\n NativeModule.sendOverSocket(blob, socketID);\n },\n createFromParts(parts: Array, withId: string): void {\n NativeModule.createFromParts(parts, withId);\n },\n release(blobId: string): void {\n NativeModule.release(blobId);\n },\n };\n}\n\nexport default (NativeBlobModule: ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nimport type {BlobData, BlobOptions} from './BlobTypes';\n\n/**\n * Opaque JS representation of some binary data in native.\n *\n * The API is modeled after the W3C Blob API, with one caveat\n * regarding explicit deallocation. Refer to the `close()`\n * method for further details.\n *\n * Example usage in a React component:\n *\n * class WebSocketImage extends React.Component {\n * state = {blob: null};\n * componentDidMount() {\n * let ws = this.ws = new WebSocket(...);\n * ws.binaryType = 'blob';\n * ws.onmessage = (event) => {\n * if (this.state.blob) {\n * this.state.blob.close();\n * }\n * this.setState({blob: event.data});\n * };\n * }\n * componentUnmount() {\n * if (this.state.blob) {\n * this.state.blob.close();\n * }\n * this.ws.close();\n * }\n * render() {\n * if (!this.state.blob) {\n * return ;\n * }\n * return ;\n * }\n * }\n *\n * Reference: https://developer.mozilla.org/en-US/docs/Web/API/Blob\n */\nclass Blob {\n _data: ?BlobData;\n\n /**\n * Constructor for JS consumers.\n * Currently we only support creating Blobs from other Blobs.\n * Reference: https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob\n */\n constructor(parts: Array = [], options?: BlobOptions) {\n const BlobManager = require('./BlobManager');\n this.data = BlobManager.createFromParts(parts, options).data;\n }\n\n /*\n * This method is used to create a new Blob object containing\n * the data in the specified range of bytes of the source Blob.\n * Reference: https://developer.mozilla.org/en-US/docs/Web/API/Blob/slice\n */\n // $FlowFixMe[unsafe-getters-setters]\n set data(data: ?BlobData) {\n this._data = data;\n }\n\n // $FlowFixMe[unsafe-getters-setters]\n get data(): BlobData {\n if (!this._data) {\n throw new Error('Blob has been closed and is no longer available');\n }\n\n return this._data;\n }\n\n slice(start?: number, end?: number): Blob {\n const BlobManager = require('./BlobManager');\n let {offset, size} = this.data;\n\n if (typeof start === 'number') {\n if (start > size) {\n // $FlowFixMe[reassign-const]\n start = size;\n }\n offset += start;\n size -= start;\n\n if (typeof end === 'number') {\n if (end < 0) {\n // $FlowFixMe[reassign-const]\n end = this.size + end;\n }\n if (end > this.size) {\n // $FlowFixMe[reassign-const]\n end = this.size;\n }\n size = end - start;\n }\n }\n return BlobManager.createFromOptions({\n blobId: this.data.blobId,\n offset,\n size,\n /* Since `blob.slice()` creates a new view onto the same binary\n * data as the original blob, we should re-use the same collector\n * object so that the underlying resource gets deallocated when\n * the last view into the data is released, not the first.\n */\n __collector: this.data.__collector,\n });\n }\n\n /**\n * This method is in the standard, but not actually implemented by\n * any browsers at this point. It's important for how Blobs work in\n * React Native, however, since we cannot de-allocate resources automatically,\n * so consumers need to explicitly de-allocate them.\n *\n * Note that the semantics around Blobs created via `blob.slice()`\n * and `new Blob([blob])` are different. `blob.slice()` creates a\n * new *view* onto the same binary data, so calling `close()` on any\n * of those views is enough to deallocate the data, whereas\n * `new Blob([blob, ...])` actually copies the data in memory.\n */\n close() {\n const BlobManager = require('./BlobManager');\n BlobManager.release(this.data.blobId);\n this.data = null;\n }\n\n /**\n * Size of the data contained in the Blob object, in bytes.\n */\n // $FlowFixMe[unsafe-getters-setters]\n get size(): number {\n return this.data.size;\n }\n\n /*\n * String indicating the MIME type of the data contained in the Blob.\n * If the type is unknown, this string is empty.\n */\n // $FlowFixMe[unsafe-getters-setters]\n get type(): string {\n return this.data.type || '';\n }\n}\n\nmodule.exports = Blob;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nconst registry: {[key: string]: number, ...} = {};\n\nconst register = (id: string) => {\n if (registry[id]) {\n registry[id]++;\n } else {\n registry[id] = 1;\n }\n};\n\nconst unregister = (id: string) => {\n if (registry[id]) {\n registry[id]--;\n if (registry[id] <= 0) {\n delete registry[id];\n }\n }\n};\n\nconst has = (id: string): number | boolean => {\n return registry[id] && registry[id] > 0;\n};\n\nmodule.exports = {\n register,\n unregister,\n has,\n};\n","/**\n * @author Toru Nagashima \n * @copyright 2015 Toru Nagashima. All rights reserved.\n * See LICENSE file in root directory for full license.\n */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/**\n * @typedef {object} PrivateData\n * @property {EventTarget} eventTarget The event target.\n * @property {{type:string}} event The original event object.\n * @property {number} eventPhase The current event phase.\n * @property {EventTarget|null} currentTarget The current event target.\n * @property {boolean} canceled The flag to prevent default.\n * @property {boolean} stopped The flag to stop propagation.\n * @property {boolean} immediateStopped The flag to stop propagation immediately.\n * @property {Function|null} passiveListener The listener if the current listener is passive. Otherwise this is null.\n * @property {number} timeStamp The unix time.\n * @private\n */\n\n/**\n * Private data for event wrappers.\n * @type {WeakMap}\n * @private\n */\nconst privateData = new WeakMap();\n\n/**\n * Cache for wrapper classes.\n * @type {WeakMap}\n * @private\n */\nconst wrappers = new WeakMap();\n\n/**\n * Get private data.\n * @param {Event} event The event object to get private data.\n * @returns {PrivateData} The private data of the event.\n * @private\n */\nfunction pd(event) {\n const retv = privateData.get(event);\n console.assert(\n retv != null,\n \"'this' is expected an Event object, but got\",\n event\n );\n return retv\n}\n\n/**\n * https://dom.spec.whatwg.org/#set-the-canceled-flag\n * @param data {PrivateData} private data.\n */\nfunction setCancelFlag(data) {\n if (data.passiveListener != null) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(\n \"Unable to preventDefault inside passive event listener invocation.\",\n data.passiveListener\n );\n }\n return\n }\n if (!data.event.cancelable) {\n return\n }\n\n data.canceled = true;\n if (typeof data.event.preventDefault === \"function\") {\n data.event.preventDefault();\n }\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#interface-event\n * @private\n */\n/**\n * The event wrapper.\n * @constructor\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Event|{type:string}} event The original event to wrap.\n */\nfunction Event(eventTarget, event) {\n privateData.set(this, {\n eventTarget,\n event,\n eventPhase: 2,\n currentTarget: eventTarget,\n canceled: false,\n stopped: false,\n immediateStopped: false,\n passiveListener: null,\n timeStamp: event.timeStamp || Date.now(),\n });\n\n // https://heycam.github.io/webidl/#Unforgeable\n Object.defineProperty(this, \"isTrusted\", { value: false, enumerable: true });\n\n // Define accessors\n const keys = Object.keys(event);\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (!(key in this)) {\n Object.defineProperty(this, key, defineRedirectDescriptor(key));\n }\n }\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEvent.prototype = {\n /**\n * The type of this event.\n * @type {string}\n */\n get type() {\n return pd(this).event.type\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get target() {\n return pd(this).eventTarget\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get currentTarget() {\n return pd(this).currentTarget\n },\n\n /**\n * @returns {EventTarget[]} The composed path of this event.\n */\n composedPath() {\n const currentTarget = pd(this).currentTarget;\n if (currentTarget == null) {\n return []\n }\n return [currentTarget]\n },\n\n /**\n * Constant of NONE.\n * @type {number}\n */\n get NONE() {\n return 0\n },\n\n /**\n * Constant of CAPTURING_PHASE.\n * @type {number}\n */\n get CAPTURING_PHASE() {\n return 1\n },\n\n /**\n * Constant of AT_TARGET.\n * @type {number}\n */\n get AT_TARGET() {\n return 2\n },\n\n /**\n * Constant of BUBBLING_PHASE.\n * @type {number}\n */\n get BUBBLING_PHASE() {\n return 3\n },\n\n /**\n * The target of this event.\n * @type {number}\n */\n get eventPhase() {\n return pd(this).eventPhase\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopPropagation() {\n const data = pd(this);\n\n data.stopped = true;\n if (typeof data.event.stopPropagation === \"function\") {\n data.event.stopPropagation();\n }\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopImmediatePropagation() {\n const data = pd(this);\n\n data.stopped = true;\n data.immediateStopped = true;\n if (typeof data.event.stopImmediatePropagation === \"function\") {\n data.event.stopImmediatePropagation();\n }\n },\n\n /**\n * The flag to be bubbling.\n * @type {boolean}\n */\n get bubbles() {\n return Boolean(pd(this).event.bubbles)\n },\n\n /**\n * The flag to be cancelable.\n * @type {boolean}\n */\n get cancelable() {\n return Boolean(pd(this).event.cancelable)\n },\n\n /**\n * Cancel this event.\n * @returns {void}\n */\n preventDefault() {\n setCancelFlag(pd(this));\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n */\n get defaultPrevented() {\n return pd(this).canceled\n },\n\n /**\n * The flag to be composed.\n * @type {boolean}\n */\n get composed() {\n return Boolean(pd(this).event.composed)\n },\n\n /**\n * The unix time of this event.\n * @type {number}\n */\n get timeStamp() {\n return pd(this).timeStamp\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n * @deprecated\n */\n get srcElement() {\n return pd(this).eventTarget\n },\n\n /**\n * The flag to stop event bubbling.\n * @type {boolean}\n * @deprecated\n */\n get cancelBubble() {\n return pd(this).stopped\n },\n set cancelBubble(value) {\n if (!value) {\n return\n }\n const data = pd(this);\n\n data.stopped = true;\n if (typeof data.event.cancelBubble === \"boolean\") {\n data.event.cancelBubble = true;\n }\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n * @deprecated\n */\n get returnValue() {\n return !pd(this).canceled\n },\n set returnValue(value) {\n if (!value) {\n setCancelFlag(pd(this));\n }\n },\n\n /**\n * Initialize this event object. But do nothing under event dispatching.\n * @param {string} type The event type.\n * @param {boolean} [bubbles=false] The flag to be possible to bubble up.\n * @param {boolean} [cancelable=false] The flag to be possible to cancel.\n * @deprecated\n */\n initEvent() {\n // Do nothing.\n },\n};\n\n// `constructor` is not enumerable.\nObject.defineProperty(Event.prototype, \"constructor\", {\n value: Event,\n configurable: true,\n writable: true,\n});\n\n// Ensure `event instanceof window.Event` is `true`.\nif (typeof window !== \"undefined\" && typeof window.Event !== \"undefined\") {\n Object.setPrototypeOf(Event.prototype, window.Event.prototype);\n\n // Make association for wrappers.\n wrappers.set(window.Event.prototype, Event);\n}\n\n/**\n * Get the property descriptor to redirect a given property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to redirect the property.\n * @private\n */\nfunction defineRedirectDescriptor(key) {\n return {\n get() {\n return pd(this).event[key]\n },\n set(value) {\n pd(this).event[key] = value;\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Get the property descriptor to call a given method property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to call the method property.\n * @private\n */\nfunction defineCallDescriptor(key) {\n return {\n value() {\n const event = pd(this).event;\n return event[key].apply(event, arguments)\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define new wrapper class.\n * @param {Function} BaseEvent The base wrapper class.\n * @param {Object} proto The prototype of the original event.\n * @returns {Function} The defined wrapper class.\n * @private\n */\nfunction defineWrapper(BaseEvent, proto) {\n const keys = Object.keys(proto);\n if (keys.length === 0) {\n return BaseEvent\n }\n\n /** CustomEvent */\n function CustomEvent(eventTarget, event) {\n BaseEvent.call(this, eventTarget, event);\n }\n\n CustomEvent.prototype = Object.create(BaseEvent.prototype, {\n constructor: { value: CustomEvent, configurable: true, writable: true },\n });\n\n // Define accessors.\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (!(key in BaseEvent.prototype)) {\n const descriptor = Object.getOwnPropertyDescriptor(proto, key);\n const isFunc = typeof descriptor.value === \"function\";\n Object.defineProperty(\n CustomEvent.prototype,\n key,\n isFunc\n ? defineCallDescriptor(key)\n : defineRedirectDescriptor(key)\n );\n }\n }\n\n return CustomEvent\n}\n\n/**\n * Get the wrapper class of a given prototype.\n * @param {Object} proto The prototype of the original event to get its wrapper.\n * @returns {Function} The wrapper class.\n * @private\n */\nfunction getWrapper(proto) {\n if (proto == null || proto === Object.prototype) {\n return Event\n }\n\n let wrapper = wrappers.get(proto);\n if (wrapper == null) {\n wrapper = defineWrapper(getWrapper(Object.getPrototypeOf(proto)), proto);\n wrappers.set(proto, wrapper);\n }\n return wrapper\n}\n\n/**\n * Wrap a given event to management a dispatching.\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Object} event The event to wrap.\n * @returns {Event} The wrapper instance.\n * @private\n */\nfunction wrapEvent(eventTarget, event) {\n const Wrapper = getWrapper(Object.getPrototypeOf(event));\n return new Wrapper(eventTarget, event)\n}\n\n/**\n * Get the immediateStopped flag of a given event.\n * @param {Event} event The event to get.\n * @returns {boolean} The flag to stop propagation immediately.\n * @private\n */\nfunction isStopped(event) {\n return pd(event).immediateStopped\n}\n\n/**\n * Set the current event phase of a given event.\n * @param {Event} event The event to set current target.\n * @param {number} eventPhase New event phase.\n * @returns {void}\n * @private\n */\nfunction setEventPhase(event, eventPhase) {\n pd(event).eventPhase = eventPhase;\n}\n\n/**\n * Set the current target of a given event.\n * @param {Event} event The event to set current target.\n * @param {EventTarget|null} currentTarget New current target.\n * @returns {void}\n * @private\n */\nfunction setCurrentTarget(event, currentTarget) {\n pd(event).currentTarget = currentTarget;\n}\n\n/**\n * Set a passive listener of a given event.\n * @param {Event} event The event to set current target.\n * @param {Function|null} passiveListener New passive listener.\n * @returns {void}\n * @private\n */\nfunction setPassiveListener(event, passiveListener) {\n pd(event).passiveListener = passiveListener;\n}\n\n/**\n * @typedef {object} ListenerNode\n * @property {Function} listener\n * @property {1|2|3} listenerType\n * @property {boolean} passive\n * @property {boolean} once\n * @property {ListenerNode|null} next\n * @private\n */\n\n/**\n * @type {WeakMap>}\n * @private\n */\nconst listenersMap = new WeakMap();\n\n// Listener types\nconst CAPTURE = 1;\nconst BUBBLE = 2;\nconst ATTRIBUTE = 3;\n\n/**\n * Check whether a given value is an object or not.\n * @param {any} x The value to check.\n * @returns {boolean} `true` if the value is an object.\n */\nfunction isObject(x) {\n return x !== null && typeof x === \"object\" //eslint-disable-line no-restricted-syntax\n}\n\n/**\n * Get listeners.\n * @param {EventTarget} eventTarget The event target to get.\n * @returns {Map} The listeners.\n * @private\n */\nfunction getListeners(eventTarget) {\n const listeners = listenersMap.get(eventTarget);\n if (listeners == null) {\n throw new TypeError(\n \"'this' is expected an EventTarget object, but got another value.\"\n )\n }\n return listeners\n}\n\n/**\n * Get the property descriptor for the event attribute of a given event.\n * @param {string} eventName The event name to get property descriptor.\n * @returns {PropertyDescriptor} The property descriptor.\n * @private\n */\nfunction defineEventAttributeDescriptor(eventName) {\n return {\n get() {\n const listeners = getListeners(this);\n let node = listeners.get(eventName);\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n return node.listener\n }\n node = node.next;\n }\n return null\n },\n\n set(listener) {\n if (typeof listener !== \"function\" && !isObject(listener)) {\n listener = null; // eslint-disable-line no-param-reassign\n }\n const listeners = getListeners(this);\n\n // Traverse to the tail while removing old value.\n let prev = null;\n let node = listeners.get(eventName);\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n // Remove old value.\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n } else {\n prev = node;\n }\n\n node = node.next;\n }\n\n // Add new value.\n if (listener !== null) {\n const newNode = {\n listener,\n listenerType: ATTRIBUTE,\n passive: false,\n once: false,\n next: null,\n };\n if (prev === null) {\n listeners.set(eventName, newNode);\n } else {\n prev.next = newNode;\n }\n }\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define an event attribute (e.g. `eventTarget.onclick`).\n * @param {Object} eventTargetPrototype The event target prototype to define an event attrbite.\n * @param {string} eventName The event name to define.\n * @returns {void}\n */\nfunction defineEventAttribute(eventTargetPrototype, eventName) {\n Object.defineProperty(\n eventTargetPrototype,\n `on${eventName}`,\n defineEventAttributeDescriptor(eventName)\n );\n}\n\n/**\n * Define a custom EventTarget with event attributes.\n * @param {string[]} eventNames Event names for event attributes.\n * @returns {EventTarget} The custom EventTarget.\n * @private\n */\nfunction defineCustomEventTarget(eventNames) {\n /** CustomEventTarget */\n function CustomEventTarget() {\n EventTarget.call(this);\n }\n\n CustomEventTarget.prototype = Object.create(EventTarget.prototype, {\n constructor: {\n value: CustomEventTarget,\n configurable: true,\n writable: true,\n },\n });\n\n for (let i = 0; i < eventNames.length; ++i) {\n defineEventAttribute(CustomEventTarget.prototype, eventNames[i]);\n }\n\n return CustomEventTarget\n}\n\n/**\n * EventTarget.\n *\n * - This is constructor if no arguments.\n * - This is a function which returns a CustomEventTarget constructor if there are arguments.\n *\n * For example:\n *\n * class A extends EventTarget {}\n * class B extends EventTarget(\"message\") {}\n * class C extends EventTarget(\"message\", \"error\") {}\n * class D extends EventTarget([\"message\", \"error\"]) {}\n */\nfunction EventTarget() {\n /*eslint-disable consistent-return */\n if (this instanceof EventTarget) {\n listenersMap.set(this, new Map());\n return\n }\n if (arguments.length === 1 && Array.isArray(arguments[0])) {\n return defineCustomEventTarget(arguments[0])\n }\n if (arguments.length > 0) {\n const types = new Array(arguments.length);\n for (let i = 0; i < arguments.length; ++i) {\n types[i] = arguments[i];\n }\n return defineCustomEventTarget(types)\n }\n throw new TypeError(\"Cannot call a class as a function\")\n /*eslint-enable consistent-return */\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEventTarget.prototype = {\n /**\n * Add a given listener to this event target.\n * @param {string} eventName The event name to add.\n * @param {Function} listener The listener to add.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n addEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n if (typeof listener !== \"function\" && !isObject(listener)) {\n throw new TypeError(\"'listener' should be a function or an object.\")\n }\n\n const listeners = getListeners(this);\n const optionsIsObj = isObject(options);\n const capture = optionsIsObj\n ? Boolean(options.capture)\n : Boolean(options);\n const listenerType = capture ? CAPTURE : BUBBLE;\n const newNode = {\n listener,\n listenerType,\n passive: optionsIsObj && Boolean(options.passive),\n once: optionsIsObj && Boolean(options.once),\n next: null,\n };\n\n // Set it as the first node if the first node is null.\n let node = listeners.get(eventName);\n if (node === undefined) {\n listeners.set(eventName, newNode);\n return\n }\n\n // Traverse to the tail while checking duplication..\n let prev = null;\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n // Should ignore duplication.\n return\n }\n prev = node;\n node = node.next;\n }\n\n // Add it.\n prev.next = newNode;\n },\n\n /**\n * Remove a given listener from this event target.\n * @param {string} eventName The event name to remove.\n * @param {Function} listener The listener to remove.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n removeEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n\n const listeners = getListeners(this);\n const capture = isObject(options)\n ? Boolean(options.capture)\n : Boolean(options);\n const listenerType = capture ? CAPTURE : BUBBLE;\n\n let prev = null;\n let node = listeners.get(eventName);\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n return\n }\n\n prev = node;\n node = node.next;\n }\n },\n\n /**\n * Dispatch a given event.\n * @param {Event|{type:string}} event The event to dispatch.\n * @returns {boolean} `false` if canceled.\n */\n dispatchEvent(event) {\n if (event == null || typeof event.type !== \"string\") {\n throw new TypeError('\"event.type\" should be a string.')\n }\n\n // If listeners aren't registered, terminate.\n const listeners = getListeners(this);\n const eventName = event.type;\n let node = listeners.get(eventName);\n if (node == null) {\n return true\n }\n\n // Since we cannot rewrite several properties, so wrap object.\n const wrappedEvent = wrapEvent(this, event);\n\n // This doesn't process capturing phase and bubbling phase.\n // This isn't participating in a tree.\n let prev = null;\n while (node != null) {\n // Remove this listener if it's once\n if (node.once) {\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n } else {\n prev = node;\n }\n\n // Call this listener\n setPassiveListener(\n wrappedEvent,\n node.passive ? node.listener : null\n );\n if (typeof node.listener === \"function\") {\n try {\n node.listener.call(this, wrappedEvent);\n } catch (err) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(err);\n }\n }\n } else if (\n node.listenerType !== ATTRIBUTE &&\n typeof node.listener.handleEvent === \"function\"\n ) {\n node.listener.handleEvent(wrappedEvent);\n }\n\n // Break if `event.stopImmediatePropagation` was called.\n if (isStopped(wrappedEvent)) {\n break\n }\n\n node = node.next;\n }\n setPassiveListener(wrappedEvent, null);\n setEventPhase(wrappedEvent, 0);\n setCurrentTarget(wrappedEvent, null);\n\n return !wrappedEvent.defaultPrevented\n },\n};\n\n// `constructor` is not enumerable.\nObject.defineProperty(EventTarget.prototype, \"constructor\", {\n value: EventTarget,\n configurable: true,\n writable: true,\n});\n\n// Ensure `eventTarget instanceof window.EventTarget` is `true`.\nif (\n typeof window !== \"undefined\" &&\n typeof window.EventTarget !== \"undefined\"\n) {\n Object.setPrototypeOf(EventTarget.prototype, window.EventTarget.prototype);\n}\n\nexports.defineEventAttribute = defineEventAttribute;\nexports.EventTarget = EventTarget;\nexports.default = EventTarget;\n\nmodule.exports = EventTarget\nmodule.exports.EventTarget = module.exports[\"default\"] = EventTarget\nmodule.exports.defineEventAttribute = defineEventAttribute\n//# sourceMappingURL=event-target-shim.js.map\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {IPerformanceLogger} from './createPerformanceLogger';\n\nimport ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';\nimport NativePerformance from '../WebPerformance/NativePerformance';\nimport createPerformanceLogger from './createPerformanceLogger';\n\nfunction isLoggingForWebPerformance(): boolean {\n return (\n NativePerformance != null &&\n ReactNativeFeatureFlags.isGlobalWebPerformanceLoggerEnabled()\n );\n}\n\n/**\n * This is a global shared instance of IPerformanceLogger that is created with\n * createPerformanceLogger().\n * This logger should be used only for global performance metrics like the ones\n * that are logged during loading bundle. If you want to log something from your\n * React component you should use PerformanceLoggerContext instead.\n */\nconst GlobalPerformanceLogger: IPerformanceLogger = createPerformanceLogger(\n isLoggingForWebPerformance(),\n);\n\nmodule.exports = GlobalPerformanceLogger;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nexport type FeatureFlags = {|\n /**\n * Function used to enable / disabled Layout Animations in React Native.\n * Default value = true.\n */\n isLayoutAnimationEnabled: () => boolean,\n /**\n * Function used to enable / disable W3C pointer event emitting in React Native.\n * If enabled you must also flip the equivalent native flags on each platform:\n * iOS -> RCTSetDispatchW3CPointerEvents\n * Android -> ReactFeatureFlags.dispatchPointerEvents\n */\n shouldEmitW3CPointerEvents: () => boolean,\n /**\n * Function used to enable / disable Pressibility from using W3C Pointer Events\n * for its hover callbacks\n */\n shouldPressibilityUseW3CPointerEventsForHover: () => boolean,\n /**\n * Enables an experimental flush-queue debouncing in Animated.js.\n */\n animatedShouldDebounceQueueFlush: () => boolean,\n /**\n * Enables an experimental mega-operation for Animated.js that replaces\n * many calls to native with a single call into native, to reduce JSI/JNI\n * traffic.\n */\n animatedShouldUseSingleOp: () => boolean,\n /**\n * Enables GlobalPerformanceLogger replacement with a WebPerformance API based\n * implementation\n */\n isGlobalWebPerformanceLoggerEnabled: () => boolean,\n /**\n * Enables access to the host tree in Fabric using DOM-compatible APIs.\n */\n enableAccessToHostTreeInFabric: () => boolean,\n|};\n\nconst ReactNativeFeatureFlags: FeatureFlags = {\n isLayoutAnimationEnabled: () => true,\n shouldEmitW3CPointerEvents: () => false,\n shouldPressibilityUseW3CPointerEventsForHover: () => false,\n animatedShouldDebounceQueueFlush: () => false,\n animatedShouldUseSingleOp: () => false,\n isGlobalWebPerformanceLoggerEnabled: () => false,\n enableAccessToHostTreeInFabric: () => false,\n};\n\nmodule.exports = ReactNativeFeatureFlags;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {\n Extras,\n ExtraValue,\n IPerformanceLogger,\n Timespan,\n} from './IPerformanceLogger';\n\nimport * as Systrace from '../Performance/Systrace';\nimport Performance from '../WebPerformance/Performance';\nimport infoLog from './infoLog';\n\nconst _cookies: {[key: string]: number, ...} = {};\n\nconst PRINT_TO_CONSOLE: false = false; // Type as false to prevent accidentally committing `true`;\n\n// This is the prefix for optional logging points/timespans as marks/measures via Performance API,\n// used to separate these internally from other marks/measures\nconst WEB_PERFORMANCE_PREFIX = 'global_perf_';\n\n// TODO: Remove once T143070419 is done\nconst performance = new Performance();\n\nexport const getCurrentTimestamp: () => number =\n global.nativeQPLTimestamp ?? global.performance.now.bind(global.performance);\n\nclass PerformanceLogger implements IPerformanceLogger {\n _timespans: {[key: string]: ?Timespan} = {};\n _extras: {[key: string]: ?ExtraValue} = {};\n _points: {[key: string]: ?number} = {};\n _pointExtras: {[key: string]: ?Extras, ...} = {};\n _closed: boolean = false;\n _isLoggingForWebPerformance: boolean = false;\n\n constructor(isLoggingForWebPerformance?: boolean) {\n this._isLoggingForWebPerformance = isLoggingForWebPerformance === true;\n }\n\n addTimespan(\n key: string,\n startTime: number,\n endTime: number,\n startExtras?: Extras,\n endExtras?: Extras,\n ) {\n if (this._closed) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog('PerformanceLogger: addTimespan - has closed ignoring: ', key);\n }\n return;\n }\n if (this._timespans[key]) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: Attempting to add a timespan that already exists ',\n key,\n );\n }\n return;\n }\n\n this._timespans[key] = {\n startTime,\n endTime,\n totalTime: endTime - (startTime || 0),\n startExtras,\n endExtras,\n };\n\n if (this._isLoggingForWebPerformance) {\n performance.measure(`${WEB_PERFORMANCE_PREFIX}_${key}`, {\n start: startTime,\n end: endTime,\n });\n }\n }\n\n append(performanceLogger: IPerformanceLogger) {\n this._timespans = {\n ...performanceLogger.getTimespans(),\n ...this._timespans,\n };\n this._extras = {...performanceLogger.getExtras(), ...this._extras};\n this._points = {...performanceLogger.getPoints(), ...this._points};\n this._pointExtras = {\n ...performanceLogger.getPointExtras(),\n ...this._pointExtras,\n };\n }\n\n clear() {\n this._timespans = {};\n this._extras = {};\n this._points = {};\n if (PRINT_TO_CONSOLE) {\n infoLog('PerformanceLogger.js', 'clear');\n }\n }\n\n clearCompleted() {\n for (const key in this._timespans) {\n if (this._timespans[key]?.totalTime != null) {\n delete this._timespans[key];\n }\n }\n this._extras = {};\n this._points = {};\n if (PRINT_TO_CONSOLE) {\n infoLog('PerformanceLogger.js', 'clearCompleted');\n }\n }\n\n close() {\n this._closed = true;\n }\n\n currentTimestamp(): number {\n return getCurrentTimestamp();\n }\n\n getExtras(): {[key: string]: ?ExtraValue} {\n return this._extras;\n }\n\n getPoints(): {[key: string]: ?number} {\n return this._points;\n }\n\n getPointExtras(): {[key: string]: ?Extras} {\n return this._pointExtras;\n }\n\n getTimespans(): {[key: string]: ?Timespan} {\n return this._timespans;\n }\n\n hasTimespan(key: string): boolean {\n return !!this._timespans[key];\n }\n\n isClosed(): boolean {\n return this._closed;\n }\n\n logEverything() {\n if (PRINT_TO_CONSOLE) {\n // log timespans\n for (const key in this._timespans) {\n if (this._timespans[key]?.totalTime != null) {\n infoLog(key + ': ' + this._timespans[key].totalTime + 'ms');\n }\n }\n\n // log extras\n infoLog(this._extras);\n\n // log points\n for (const key in this._points) {\n if (this._points[key] != null) {\n infoLog(key + ': ' + this._points[key] + 'ms');\n }\n }\n }\n }\n\n markPoint(\n key: string,\n timestamp?: number = getCurrentTimestamp(),\n extras?: Extras,\n ) {\n if (this._closed) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog('PerformanceLogger: markPoint - has closed ignoring: ', key);\n }\n return;\n }\n if (this._points[key] != null) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: Attempting to mark a point that has been already logged ',\n key,\n );\n }\n return;\n }\n this._points[key] = timestamp;\n if (extras) {\n this._pointExtras[key] = extras;\n }\n\n if (this._isLoggingForWebPerformance) {\n performance.mark(`${WEB_PERFORMANCE_PREFIX}_${key}`, {\n startTime: timestamp,\n });\n }\n }\n\n removeExtra(key: string): ?ExtraValue {\n const value = this._extras[key];\n delete this._extras[key];\n return value;\n }\n\n setExtra(key: string, value: ExtraValue) {\n if (this._closed) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog('PerformanceLogger: setExtra - has closed ignoring: ', key);\n }\n return;\n }\n\n if (this._extras.hasOwnProperty(key)) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: Attempting to set an extra that already exists ',\n {key, currentValue: this._extras[key], attemptedValue: value},\n );\n }\n return;\n }\n this._extras[key] = value;\n }\n\n startTimespan(\n key: string,\n timestamp?: number = getCurrentTimestamp(),\n extras?: Extras,\n ) {\n if (this._closed) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: startTimespan - has closed ignoring: ',\n key,\n );\n }\n return;\n }\n\n if (this._timespans[key]) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: Attempting to start a timespan that already exists ',\n key,\n );\n }\n return;\n }\n\n this._timespans[key] = {\n startTime: timestamp,\n startExtras: extras,\n };\n _cookies[key] = Systrace.beginAsyncEvent(key);\n if (PRINT_TO_CONSOLE) {\n infoLog('PerformanceLogger.js', 'start: ' + key);\n }\n\n if (this._isLoggingForWebPerformance) {\n performance.mark(`${WEB_PERFORMANCE_PREFIX}_timespan_start_${key}`, {\n startTime: timestamp,\n });\n }\n }\n\n stopTimespan(\n key: string,\n timestamp?: number = getCurrentTimestamp(),\n extras?: Extras,\n ) {\n if (this._closed) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog('PerformanceLogger: stopTimespan - has closed ignoring: ', key);\n }\n return;\n }\n\n const timespan = this._timespans[key];\n if (!timespan || timespan.startTime == null) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: Attempting to end a timespan that has not started ',\n key,\n );\n }\n return;\n }\n if (timespan.endTime != null) {\n if (PRINT_TO_CONSOLE && __DEV__) {\n infoLog(\n 'PerformanceLogger: Attempting to end a timespan that has already ended ',\n key,\n );\n }\n return;\n }\n\n timespan.endExtras = extras;\n timespan.endTime = timestamp;\n timespan.totalTime = timespan.endTime - (timespan.startTime || 0);\n if (PRINT_TO_CONSOLE) {\n infoLog('PerformanceLogger.js', 'end: ' + key);\n }\n\n if (_cookies[key] != null) {\n Systrace.endAsyncEvent(key, _cookies[key]);\n delete _cookies[key];\n }\n\n if (this._isLoggingForWebPerformance) {\n performance.measure(`${WEB_PERFORMANCE_PREFIX}_${key}`, {\n start: `${WEB_PERFORMANCE_PREFIX}_timespan_start_${key}`,\n end: timestamp,\n });\n }\n }\n}\n\n// Re-exporting for backwards compatibility with all the clients that\n// may still import it from this module.\nexport type {Extras, ExtraValue, IPerformanceLogger, Timespan};\n\n/**\n * This function creates performance loggers that can be used to collect and log\n * various performance data such as timespans, points and extras.\n * The loggers need to have minimal overhead since they're used in production.\n */\nexport default function createPerformanceLogger(\n isLoggingForWebPerformance?: boolean,\n): IPerformanceLogger {\n return new PerformanceLogger(isLoggingForWebPerformance);\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\n/**\n * Intentional info-level logging for clear separation from ad-hoc console debug logging.\n */\nfunction infoLog(...args: Array): void {\n return console.log(...args);\n}\n\nmodule.exports = infoLog;\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {RequestBody} from './convertRequestBody';\n\n// Do not require the native RCTNetworking module directly! Use this wrapper module instead.\n// It will add the necessary requestId, so that you don't have to generate it yourself.\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport Platform from '../Utilities/Platform';\nimport convertRequestBody from './convertRequestBody';\nimport NativeNetworkingAndroid from './NativeNetworkingAndroid';\n\ntype Header = [string, string];\n\n// Convert FormData headers to arrays, which are easier to consume in\n// native on Android.\nfunction convertHeadersMapToArray(headers: Object): Array
{\n const headerArray: Array
= [];\n for (const name in headers) {\n headerArray.push([name, headers[name]]);\n }\n return headerArray;\n}\n\nlet _requestId = 1;\nfunction generateRequestId(): number {\n return _requestId++;\n}\n\n/**\n * This class is a wrapper around the native RCTNetworking module. It adds a necessary unique\n * requestId to each network request that can be used to abort that request later on.\n */\n// FIXME: use typed events\nclass RCTNetworking extends NativeEventEmitter<$FlowFixMe> {\n constructor() {\n super(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeNetworkingAndroid,\n );\n }\n\n sendRequest(\n method: string,\n trackingName: string,\n url: string,\n headers: Object,\n data: RequestBody,\n responseType: 'text' | 'base64',\n incrementalUpdates: boolean,\n timeout: number,\n callback: (requestId: number) => mixed,\n withCredentials: boolean,\n ) {\n const body = convertRequestBody(data);\n if (body && body.formData) {\n body.formData = body.formData.map(part => ({\n ...part,\n headers: convertHeadersMapToArray(part.headers),\n }));\n }\n const requestId = generateRequestId();\n NativeNetworkingAndroid.sendRequest(\n method,\n url,\n requestId,\n convertHeadersMapToArray(headers),\n {...body, trackingName},\n responseType,\n incrementalUpdates,\n timeout,\n withCredentials,\n );\n callback(requestId);\n }\n\n abortRequest(requestId: number) {\n NativeNetworkingAndroid.abortRequest(requestId);\n }\n\n clearCookies(callback: (result: boolean) => any) {\n NativeNetworkingAndroid.clearCookies(callback);\n }\n}\n\nexport default (new RCTNetworking(): RCTNetworking);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nimport type {\n EventSubscription,\n IEventEmitter,\n} from '../vendor/emitter/EventEmitter';\n\nimport Platform from '../Utilities/Platform';\nimport RCTDeviceEventEmitter from './RCTDeviceEventEmitter';\nimport invariant from 'invariant';\n\ninterface NativeModule {\n addListener(eventType: string): void;\n removeListeners(count: number): void;\n}\n\nexport type {EventSubscription};\n\n/**\n * `NativeEventEmitter` is intended for use by Native Modules to emit events to\n * JavaScript listeners. If a `NativeModule` is supplied to the constructor, it\n * will be notified (via `addListener` and `removeListeners`) when the listener\n * count changes to manage \"native memory\".\n *\n * Currently, all native events are fired via a global `RCTDeviceEventEmitter`.\n * This means event names must be globally unique, and it means that call sites\n * can theoretically listen to `RCTDeviceEventEmitter` (although discouraged).\n */\nexport default class NativeEventEmitter\n implements IEventEmitter\n{\n _nativeModule: ?NativeModule;\n\n constructor(nativeModule: ?NativeModule) {\n if (Platform.OS === 'ios') {\n invariant(\n nativeModule != null,\n '`new NativeEventEmitter()` requires a non-null argument.',\n );\n }\n\n const hasAddListener =\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n !!nativeModule && typeof nativeModule.addListener === 'function';\n const hasRemoveListeners =\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n !!nativeModule && typeof nativeModule.removeListeners === 'function';\n\n if (nativeModule && hasAddListener && hasRemoveListeners) {\n this._nativeModule = nativeModule;\n } else if (nativeModule != null) {\n if (!hasAddListener) {\n console.warn(\n '`new NativeEventEmitter()` was called with a non-null argument without the required `addListener` method.',\n );\n }\n if (!hasRemoveListeners) {\n console.warn(\n '`new NativeEventEmitter()` was called with a non-null argument without the required `removeListeners` method.',\n );\n }\n }\n }\n\n addListener>(\n eventType: TEvent,\n listener: (...args: $ElementType) => mixed,\n context?: mixed,\n ): EventSubscription {\n this._nativeModule?.addListener(eventType);\n let subscription: ?EventSubscription = RCTDeviceEventEmitter.addListener(\n eventType,\n listener,\n context,\n );\n\n return {\n remove: () => {\n if (subscription != null) {\n this._nativeModule?.removeListeners(1);\n // $FlowFixMe[incompatible-use]\n subscription.remove();\n subscription = null;\n }\n },\n };\n }\n\n emit>(\n eventType: TEvent,\n ...args: $ElementType\n ): void {\n // Generally, `RCTDeviceEventEmitter` is directly invoked. But this is\n // included for completeness.\n RCTDeviceEventEmitter.emit(eventType, ...args);\n }\n\n removeAllListeners>(\n eventType?: ?TEvent,\n ): void {\n invariant(\n eventType != null,\n '`NativeEventEmitter.removeAllListener()` requires a non-null argument.',\n );\n this._nativeModule?.removeListeners(this.listenerCount(eventType));\n RCTDeviceEventEmitter.removeAllListeners(eventType);\n }\n\n listenerCount>(eventType: TEvent): number {\n return RCTDeviceEventEmitter.listenerCount(eventType);\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nconst Blob = require('../Blob/Blob');\nconst binaryToBase64 = require('../Utilities/binaryToBase64');\nconst FormData = require('./FormData');\n\nexport type RequestBody =\n | string\n | Blob\n | FormData\n | {uri: string, ...}\n | ArrayBuffer\n | $ArrayBufferView;\n\nfunction convertRequestBody(body: RequestBody): Object {\n if (typeof body === 'string') {\n return {string: body};\n }\n if (body instanceof Blob) {\n return {blob: body.data};\n }\n if (body instanceof FormData) {\n return {formData: body.getParts()};\n }\n if (body instanceof ArrayBuffer || ArrayBuffer.isView(body)) {\n /* $FlowFixMe[incompatible-call] : no way to assert that 'body' is indeed\n * an ArrayBufferView */\n return {base64: binaryToBase64(body)};\n }\n return body;\n}\n\nmodule.exports = convertRequestBody;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\ntype FormDataValue = string | {name?: string, type?: string, uri: string};\ntype FormDataNameValuePair = [string, FormDataValue];\n\ntype Headers = {[name: string]: string, ...};\ntype FormDataPart =\n | {\n string: string,\n headers: Headers,\n ...\n }\n | {\n uri: string,\n headers: Headers,\n name?: string,\n type?: string,\n ...\n };\n\n/**\n * Polyfill for XMLHttpRequest2 FormData API, allowing multipart POST requests\n * with mixed data (string, native files) to be submitted via XMLHttpRequest.\n *\n * Example:\n *\n * var photo = {\n * uri: uriFromCameraRoll,\n * type: 'image/jpeg',\n * name: 'photo.jpg',\n * };\n *\n * var body = new FormData();\n * body.append('authToken', 'secret');\n * body.append('photo', photo);\n * body.append('title', 'A beautiful photo!');\n *\n * xhr.open('POST', serverURL);\n * xhr.send(body);\n */\nclass FormData {\n _parts: Array;\n\n constructor() {\n this._parts = [];\n }\n\n append(key: string, value: FormDataValue) {\n // The XMLHttpRequest spec doesn't specify if duplicate keys are allowed.\n // MDN says that any new values should be appended to existing values.\n // In any case, major browsers allow duplicate keys, so that's what we'll do\n // too. They'll simply get appended as additional form data parts in the\n // request body, leaving the server to deal with them.\n this._parts.push([key, value]);\n }\n\n getAll(key: string): Array {\n return this._parts\n .filter(([name]) => name === key)\n .map(([, value]) => value);\n }\n\n getParts(): Array {\n return this._parts.map(([name, value]) => {\n const contentDisposition = 'form-data; name=\"' + name + '\"';\n\n const headers: Headers = {'content-disposition': contentDisposition};\n\n // The body part is a \"blob\", which in React Native just means\n // an object with a `uri` attribute. Optionally, it can also\n // have a `name` and `type` attribute to specify filename and\n // content type (cf. web Blob interface.)\n if (typeof value === 'object' && !Array.isArray(value) && value) {\n if (typeof value.name === 'string') {\n headers['content-disposition'] += '; filename=\"' + value.name + '\"';\n }\n if (typeof value.type === 'string') {\n headers['content-type'] = value.type;\n }\n return {...value, headers, fieldName: name};\n }\n // Convert non-object values to strings as per FormData.append() spec\n return {string: String(value), headers, fieldName: name};\n });\n }\n}\n\nmodule.exports = FormData;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nconst base64 = require('base64-js');\n\nfunction binaryToBase64(data: ArrayBuffer | $ArrayBufferView): string {\n if (data instanceof ArrayBuffer) {\n // $FlowFixMe[reassign-const]\n data = new Uint8Array(data);\n }\n if (data instanceof Uint8Array) {\n return base64.fromByteArray(data);\n }\n if (!ArrayBuffer.isView(data)) {\n throw new Error('data must be ArrayBuffer or typed array');\n }\n // Already checked that `data` is `DataView` in `ArrayBuffer.isView(data)`\n const {buffer, byteOffset, byteLength} = ((data: $FlowFixMe): DataView);\n return base64.fromByteArray(new Uint8Array(buffer, byteOffset, byteLength));\n}\n\nmodule.exports = binaryToBase64;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\ntype Header = [string, string];\n\nexport interface Spec extends TurboModule {\n +sendRequest: (\n method: string,\n url: string,\n requestId: number,\n headers: Array
,\n data: Object,\n responseType: string,\n useIncrementalUpdates: boolean,\n timeout: number,\n withCredentials: boolean,\n ) => void;\n +abortRequest: (requestId: number) => void;\n +clearCookies: (callback: (result: boolean) => void) => void;\n\n // RCTEventEmitter\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('Networking'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n/* globals Headers, Request, Response */\n\n'use strict';\n\n// side-effectful require() to put fetch,\n// Headers, Request, Response in global scope\nrequire('whatwg-fetch');\n\nmodule.exports = {fetch, Headers, Request, Response};\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (factory((global.WHATWGFetch = {})));\n}(this, (function (exports) { 'use strict';\n\n var global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n (typeof global !== 'undefined' && global);\n\n var support = {\n searchParams: 'URLSearchParams' in global,\n iterable: 'Symbol' in global && 'iterator' in Symbol,\n blob:\n 'FileReader' in global &&\n 'Blob' in global &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in global,\n arrayBuffer: 'ArrayBuffer' in global\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n this.bodyUsed = this.bodyUsed;\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this);\n if (isConsumed) {\n return isConsumed\n }\n if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/;\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime());\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/;\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime();\n }\n }\n }\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText;\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = global.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n setTimeout(function() {\n resolve(new Response(body, options));\n }, 0);\n };\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n }, 0);\n };\n\n function fixUrl(url) {\n try {\n return url === '' && global.location.href ? global.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob';\n } else if (\n support.arrayBuffer &&\n request.headers.get('Content-Type') &&\n request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1\n ) {\n xhr.responseType = 'arraybuffer';\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) {\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]));\n });\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!global.fetch) {\n global.fetch = fetch;\n global.Headers = Headers;\n global.Request = Request;\n global.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {BlobData} from '../Blob/BlobTypes';\nimport type {EventSubscription} from '../vendor/emitter/EventEmitter';\n\nimport Blob from '../Blob/Blob';\nimport BlobManager from '../Blob/BlobManager';\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport binaryToBase64 from '../Utilities/binaryToBase64';\nimport Platform from '../Utilities/Platform';\nimport NativeWebSocketModule from './NativeWebSocketModule';\nimport WebSocketEvent from './WebSocketEvent';\nimport base64 from 'base64-js';\nimport EventTarget from 'event-target-shim';\nimport invariant from 'invariant';\n\ntype ArrayBufferView =\n | Int8Array\n | Uint8Array\n | Uint8ClampedArray\n | Int16Array\n | Uint16Array\n | Int32Array\n | Uint32Array\n | Float32Array\n | Float64Array\n | DataView;\n\ntype BinaryType = 'blob' | 'arraybuffer';\n\nconst CONNECTING = 0;\nconst OPEN = 1;\nconst CLOSING = 2;\nconst CLOSED = 3;\n\nconst CLOSE_NORMAL = 1000;\n\n// Abnormal closure where no code is provided in a control frame\n// https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5\nconst CLOSE_ABNORMAL = 1006;\n\nconst WEBSOCKET_EVENTS = ['close', 'error', 'message', 'open'];\n\nlet nextWebSocketId = 0;\n\ntype WebSocketEventDefinitions = {\n websocketOpen: [{id: number, protocol: string}],\n websocketClosed: [{id: number, code: number, reason: string}],\n websocketMessage: [\n | {type: 'binary', id: number, data: string}\n | {type: 'text', id: number, data: string}\n | {type: 'blob', id: number, data: BlobData},\n ],\n websocketFailed: [{id: number, message: string}],\n};\n\n/**\n * Browser-compatible WebSockets implementation.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/WebSocket\n * See https://github.com/websockets/ws\n */\nclass WebSocket extends (EventTarget(...WEBSOCKET_EVENTS): any) {\n static CONNECTING: number = CONNECTING;\n static OPEN: number = OPEN;\n static CLOSING: number = CLOSING;\n static CLOSED: number = CLOSED;\n\n CONNECTING: number = CONNECTING;\n OPEN: number = OPEN;\n CLOSING: number = CLOSING;\n CLOSED: number = CLOSED;\n\n _socketId: number;\n _eventEmitter: NativeEventEmitter;\n _subscriptions: Array;\n _binaryType: ?BinaryType;\n\n onclose: ?Function;\n onerror: ?Function;\n onmessage: ?Function;\n onopen: ?Function;\n\n bufferedAmount: number;\n extension: ?string;\n protocol: ?string;\n readyState: number = CONNECTING;\n url: ?string;\n\n constructor(\n url: string,\n protocols: ?string | ?Array,\n options: ?{headers?: {origin?: string, ...}, ...},\n ) {\n super();\n this.url = url;\n if (typeof protocols === 'string') {\n protocols = [protocols];\n }\n\n const {headers = {}, ...unrecognized} = options || {};\n\n // Preserve deprecated backwards compatibility for the 'origin' option\n // $FlowFixMe[prop-missing]\n if (unrecognized && typeof unrecognized.origin === 'string') {\n console.warn(\n 'Specifying `origin` as a WebSocket connection option is deprecated. Include it under `headers` instead.',\n );\n /* $FlowFixMe[prop-missing] (>=0.54.0 site=react_native_fb,react_native_\n * oss) This comment suppresses an error found when Flow v0.54 was\n * deployed. To see the error delete this comment and run Flow. */\n headers.origin = unrecognized.origin;\n /* $FlowFixMe[prop-missing] (>=0.54.0 site=react_native_fb,react_native_\n * oss) This comment suppresses an error found when Flow v0.54 was\n * deployed. To see the error delete this comment and run Flow. */\n delete unrecognized.origin;\n }\n\n // Warn about and discard anything else\n if (Object.keys(unrecognized).length > 0) {\n console.warn(\n 'Unrecognized WebSocket connection option(s) `' +\n Object.keys(unrecognized).join('`, `') +\n '`. ' +\n 'Did you mean to put these under `headers`?',\n );\n }\n\n if (!Array.isArray(protocols)) {\n protocols = null;\n }\n\n this._eventEmitter = new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeWebSocketModule,\n );\n this._socketId = nextWebSocketId++;\n this._registerEvents();\n NativeWebSocketModule.connect(url, protocols, {headers}, this._socketId);\n }\n\n get binaryType(): ?BinaryType {\n return this._binaryType;\n }\n\n set binaryType(binaryType: BinaryType): void {\n if (binaryType !== 'blob' && binaryType !== 'arraybuffer') {\n throw new Error(\"binaryType must be either 'blob' or 'arraybuffer'\");\n }\n if (this._binaryType === 'blob' || binaryType === 'blob') {\n invariant(\n BlobManager.isAvailable,\n 'Native module BlobModule is required for blob support',\n );\n if (binaryType === 'blob') {\n BlobManager.addWebSocketHandler(this._socketId);\n } else {\n BlobManager.removeWebSocketHandler(this._socketId);\n }\n }\n this._binaryType = binaryType;\n }\n\n close(code?: number, reason?: string): void {\n if (this.readyState === this.CLOSING || this.readyState === this.CLOSED) {\n return;\n }\n\n this.readyState = this.CLOSING;\n this._close(code, reason);\n }\n\n send(data: string | ArrayBuffer | ArrayBufferView | Blob): void {\n if (this.readyState === this.CONNECTING) {\n throw new Error('INVALID_STATE_ERR');\n }\n\n if (data instanceof Blob) {\n invariant(\n BlobManager.isAvailable,\n 'Native module BlobModule is required for blob support',\n );\n BlobManager.sendOverSocket(data, this._socketId);\n return;\n }\n\n if (typeof data === 'string') {\n NativeWebSocketModule.send(data, this._socketId);\n return;\n }\n\n if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) {\n NativeWebSocketModule.sendBinary(binaryToBase64(data), this._socketId);\n return;\n }\n\n throw new Error('Unsupported data type');\n }\n\n ping(): void {\n if (this.readyState === this.CONNECTING) {\n throw new Error('INVALID_STATE_ERR');\n }\n\n NativeWebSocketModule.ping(this._socketId);\n }\n\n _close(code?: number, reason?: string): void {\n // See https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent\n const statusCode = typeof code === 'number' ? code : CLOSE_NORMAL;\n const closeReason = typeof reason === 'string' ? reason : '';\n NativeWebSocketModule.close(statusCode, closeReason, this._socketId);\n\n if (BlobManager.isAvailable && this._binaryType === 'blob') {\n BlobManager.removeWebSocketHandler(this._socketId);\n }\n }\n\n _unregisterEvents(): void {\n this._subscriptions.forEach(e => e.remove());\n this._subscriptions = [];\n }\n\n _registerEvents(): void {\n this._subscriptions = [\n this._eventEmitter.addListener('websocketMessage', ev => {\n if (ev.id !== this._socketId) {\n return;\n }\n let data: Blob | BlobData | ArrayBuffer | string = ev.data;\n switch (ev.type) {\n case 'binary':\n data = base64.toByteArray(ev.data).buffer;\n break;\n case 'blob':\n data = BlobManager.createFromOptions(ev.data);\n break;\n }\n this.dispatchEvent(new WebSocketEvent('message', {data}));\n }),\n this._eventEmitter.addListener('websocketOpen', ev => {\n if (ev.id !== this._socketId) {\n return;\n }\n this.readyState = this.OPEN;\n this.protocol = ev.protocol;\n this.dispatchEvent(new WebSocketEvent('open'));\n }),\n this._eventEmitter.addListener('websocketClosed', ev => {\n if (ev.id !== this._socketId) {\n return;\n }\n this.readyState = this.CLOSED;\n this.dispatchEvent(\n new WebSocketEvent('close', {\n code: ev.code,\n reason: ev.reason,\n // TODO: missing `wasClean` (exposed on iOS as `clean` but missing on Android)\n }),\n );\n this._unregisterEvents();\n this.close();\n }),\n this._eventEmitter.addListener('websocketFailed', ev => {\n if (ev.id !== this._socketId) {\n return;\n }\n this.readyState = this.CLOSED;\n this.dispatchEvent(\n new WebSocketEvent('error', {\n message: ev.message,\n }),\n );\n this.dispatchEvent(\n new WebSocketEvent('close', {\n code: CLOSE_ABNORMAL,\n reason: ev.message,\n // TODO: Expose `wasClean`\n }),\n );\n this._unregisterEvents();\n this.close();\n }),\n ];\n }\n}\n\nmodule.exports = WebSocket;\n","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +connect: (\n url: string,\n protocols: ?Array,\n options: {|headers?: Object|},\n socketID: number,\n ) => void;\n +send: (message: string, forSocketID: number) => void;\n +sendBinary: (base64String: string, forSocketID: number) => void;\n +ping: (socketID: number) => void;\n +close: (code: number, reason: string, socketID: number) => void;\n\n // RCTEventEmitter\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing(\n 'WebSocketModule',\n): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\n/**\n * Event object passed to the `onopen`, `onclose`, `onmessage`, `onerror`\n * callbacks of `WebSocket`.\n *\n * The `type` property is \"open\", \"close\", \"message\", \"error\" respectively.\n *\n * In case of \"message\", the `data` property contains the incoming data.\n */\nclass WebSocketEvent {\n constructor(type, eventInitDict) {\n this.type = type.toString();\n Object.assign(this, eventInitDict);\n }\n}\n\nmodule.exports = WebSocketEvent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {BlobOptions} from './BlobTypes';\n\nconst Blob = require('./Blob');\nconst invariant = require('invariant');\n\n/**\n * The File interface provides information about files.\n */\nclass File extends Blob {\n /**\n * Constructor for JS consumers.\n */\n constructor(\n parts: Array,\n name: string,\n options?: BlobOptions,\n ) {\n invariant(\n parts != null && name != null,\n 'Failed to construct `File`: Must pass both `parts` and `name` arguments.',\n );\n\n super(parts, options);\n this.data.name = name;\n }\n\n /**\n * Name of the file.\n */\n get name(): string {\n invariant(this.data.name != null, 'Files must have a name set.');\n return this.data.name;\n }\n\n /*\n * Last modified time of the file.\n */\n get lastModified(): number {\n return this.data.lastModified || 0;\n }\n}\n\nmodule.exports = File;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type Blob from './Blob';\n\nimport NativeFileReaderModule from './NativeFileReaderModule';\nimport {toByteArray} from 'base64-js';\n\nconst EventTarget = require('event-target-shim');\n\ntype ReadyState =\n | 0 // EMPTY\n | 1 // LOADING\n | 2; // DONE\n\ntype ReaderResult = string | ArrayBuffer;\n\nconst READER_EVENTS = [\n 'abort',\n 'error',\n 'load',\n 'loadstart',\n 'loadend',\n 'progress',\n];\n\nconst EMPTY = 0;\nconst LOADING = 1;\nconst DONE = 2;\n\nclass FileReader extends (EventTarget(...READER_EVENTS): any) {\n static EMPTY: number = EMPTY;\n static LOADING: number = LOADING;\n static DONE: number = DONE;\n\n EMPTY: number = EMPTY;\n LOADING: number = LOADING;\n DONE: number = DONE;\n\n _readyState: ReadyState;\n _error: ?Error;\n _result: ?ReaderResult;\n _aborted: boolean = false;\n\n constructor() {\n super();\n this._reset();\n }\n\n _reset(): void {\n this._readyState = EMPTY;\n this._error = null;\n this._result = null;\n }\n\n _setReadyState(newState: ReadyState) {\n this._readyState = newState;\n this.dispatchEvent({type: 'readystatechange'});\n if (newState === DONE) {\n if (this._aborted) {\n this.dispatchEvent({type: 'abort'});\n } else if (this._error) {\n this.dispatchEvent({type: 'error'});\n } else {\n this.dispatchEvent({type: 'load'});\n }\n this.dispatchEvent({type: 'loadend'});\n }\n }\n\n readAsArrayBuffer(blob: ?Blob): void {\n this._aborted = false;\n\n if (blob == null) {\n throw new TypeError(\n \"Failed to execute 'readAsArrayBuffer' on 'FileReader': parameter 1 is not of type 'Blob'\",\n );\n }\n\n NativeFileReaderModule.readAsDataURL(blob.data).then(\n (text: string) => {\n if (this._aborted) {\n return;\n }\n\n const base64 = text.split(',')[1];\n const typedArray = toByteArray(base64);\n\n this._result = typedArray.buffer;\n this._setReadyState(DONE);\n },\n error => {\n if (this._aborted) {\n return;\n }\n this._error = error;\n this._setReadyState(DONE);\n },\n );\n }\n\n readAsDataURL(blob: ?Blob): void {\n this._aborted = false;\n\n if (blob == null) {\n throw new TypeError(\n \"Failed to execute 'readAsDataURL' on 'FileReader': parameter 1 is not of type 'Blob'\",\n );\n }\n\n NativeFileReaderModule.readAsDataURL(blob.data).then(\n (text: string) => {\n if (this._aborted) {\n return;\n }\n this._result = text;\n this._setReadyState(DONE);\n },\n error => {\n if (this._aborted) {\n return;\n }\n this._error = error;\n this._setReadyState(DONE);\n },\n );\n }\n\n readAsText(blob: ?Blob, encoding: string = 'UTF-8'): void {\n this._aborted = false;\n\n if (blob == null) {\n throw new TypeError(\n \"Failed to execute 'readAsText' on 'FileReader': parameter 1 is not of type 'Blob'\",\n );\n }\n\n NativeFileReaderModule.readAsText(blob.data, encoding).then(\n (text: string) => {\n if (this._aborted) {\n return;\n }\n this._result = text;\n this._setReadyState(DONE);\n },\n error => {\n if (this._aborted) {\n return;\n }\n this._error = error;\n this._setReadyState(DONE);\n },\n );\n }\n\n abort() {\n this._aborted = true;\n // only call onreadystatechange if there is something to abort, as per spec\n if (this._readyState !== EMPTY && this._readyState !== DONE) {\n this._reset();\n this._setReadyState(DONE);\n }\n // Reset again after, in case modified in handler\n this._reset();\n }\n\n get readyState(): ReadyState {\n return this._readyState;\n }\n\n get error(): ?Error {\n return this._error;\n }\n\n get result(): ?ReaderResult {\n return this._result;\n }\n}\n\nmodule.exports = FileReader;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +readAsDataURL: (data: Object) => Promise;\n +readAsText: (data: Object, encoding: string) => Promise;\n}\n\nexport default (TurboModuleRegistry.getEnforcing(\n 'FileReaderModule',\n): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type Blob from './Blob';\n\nimport NativeBlobModule from './NativeBlobModule';\n\nlet BLOB_URL_PREFIX = null;\n\nif (\n NativeBlobModule &&\n typeof NativeBlobModule.getConstants().BLOB_URI_SCHEME === 'string'\n) {\n const constants = NativeBlobModule.getConstants();\n // $FlowFixMe[incompatible-type] asserted above\n // $FlowFixMe[unsafe-addition]\n BLOB_URL_PREFIX = constants.BLOB_URI_SCHEME + ':';\n if (typeof constants.BLOB_URI_HOST === 'string') {\n BLOB_URL_PREFIX += `//${constants.BLOB_URI_HOST}/`;\n }\n}\n\n/**\n * To allow Blobs be accessed via `content://` URIs,\n * you need to register `BlobProvider` as a ContentProvider in your app's `AndroidManifest.xml`:\n *\n * ```xml\n * \n * \n * \n * \n * \n * ```\n * And then define the `blob_provider_authority` string in `res/values/strings.xml`.\n * Use a dotted name that's entirely unique to your app:\n *\n * ```xml\n * \n * your.app.package.blobs\n * \n * ```\n */\n\n// Small subset from whatwg-url: https://github.com/jsdom/whatwg-url/tree/master/src\n// The reference code bloat comes from Unicode issues with URLs, so those won't work here.\nexport class URLSearchParams {\n _searchParams: Array> = [];\n\n constructor(params: any) {\n if (typeof params === 'object') {\n Object.keys(params).forEach(key => this.append(key, params[key]));\n }\n }\n\n append(key: string, value: string): void {\n this._searchParams.push([key, value]);\n }\n\n delete(name: string): void {\n throw new Error('URLSearchParams.delete is not implemented');\n }\n\n get(name: string): void {\n throw new Error('URLSearchParams.get is not implemented');\n }\n\n getAll(name: string): void {\n throw new Error('URLSearchParams.getAll is not implemented');\n }\n\n has(name: string): void {\n throw new Error('URLSearchParams.has is not implemented');\n }\n\n set(name: string, value: string): void {\n throw new Error('URLSearchParams.set is not implemented');\n }\n\n sort(): void {\n throw new Error('URLSearchParams.sort is not implemented');\n }\n\n // $FlowFixMe[unsupported-syntax]\n // $FlowFixMe[missing-local-annot]\n [Symbol.iterator]() {\n return this._searchParams[Symbol.iterator]();\n }\n\n toString(): string {\n if (this._searchParams.length === 0) {\n return '';\n }\n const last = this._searchParams.length - 1;\n return this._searchParams.reduce((acc, curr, index) => {\n return (\n acc +\n encodeURIComponent(curr[0]) +\n '=' +\n encodeURIComponent(curr[1]) +\n (index === last ? '' : '&')\n );\n }, '');\n }\n}\n\nfunction validateBaseUrl(url: string) {\n // from this MIT-licensed gist: https://gist.github.com/dperini/729294\n return /^(?:(?:(?:https?|ftp):)?\\/\\/)(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)*(?:[a-z\\u00a1-\\uffff]{2,}\\.?))(?::\\d{2,5})?(?:[/?#]\\S*)?$/.test(\n url,\n );\n}\n\nexport class URL {\n _url: string;\n _searchParamsInstance: ?URLSearchParams = null;\n\n static createObjectURL(blob: Blob): string {\n if (BLOB_URL_PREFIX === null) {\n throw new Error('Cannot create URL for blob!');\n }\n return `${BLOB_URL_PREFIX}${blob.data.blobId}?offset=${blob.data.offset}&size=${blob.size}`;\n }\n\n static revokeObjectURL(url: string) {\n // Do nothing.\n }\n\n // $FlowFixMe[missing-local-annot]\n constructor(url: string, base: string | URL) {\n let baseUrl = null;\n if (!base || validateBaseUrl(url)) {\n this._url = url;\n if (!this._url.endsWith('/')) {\n this._url += '/';\n }\n } else {\n if (typeof base === 'string') {\n baseUrl = base;\n if (!validateBaseUrl(baseUrl)) {\n throw new TypeError(`Invalid base URL: ${baseUrl}`);\n }\n } else {\n baseUrl = base.toString();\n }\n if (baseUrl.endsWith('/')) {\n baseUrl = baseUrl.slice(0, baseUrl.length - 1);\n }\n if (!url.startsWith('/')) {\n url = `/${url}`;\n }\n if (baseUrl.endsWith(url)) {\n url = '';\n }\n this._url = `${baseUrl}${url}`;\n }\n }\n\n get hash(): string {\n throw new Error('URL.hash is not implemented');\n }\n\n get host(): string {\n throw new Error('URL.host is not implemented');\n }\n\n get hostname(): string {\n throw new Error('URL.hostname is not implemented');\n }\n\n get href(): string {\n return this.toString();\n }\n\n get origin(): string {\n throw new Error('URL.origin is not implemented');\n }\n\n get password(): string {\n throw new Error('URL.password is not implemented');\n }\n\n get pathname(): string {\n throw new Error('URL.pathname not implemented');\n }\n\n get port(): string {\n throw new Error('URL.port is not implemented');\n }\n\n get protocol(): string {\n throw new Error('URL.protocol is not implemented');\n }\n\n get search(): string {\n throw new Error('URL.search is not implemented');\n }\n\n get searchParams(): URLSearchParams {\n if (this._searchParamsInstance == null) {\n this._searchParamsInstance = new URLSearchParams();\n }\n return this._searchParamsInstance;\n }\n\n toJSON(): string {\n return this.toString();\n }\n\n toString(): string {\n if (this._searchParamsInstance === null) {\n return this._url;\n }\n // $FlowFixMe[incompatible-use]\n const instanceString = this._searchParamsInstance.toString();\n const separator = this._url.indexOf('?') > -1 ? '&' : '?';\n return this._url + separator + instanceString;\n }\n\n get username(): string {\n throw new Error('URL.username is not implemented');\n }\n}\n","/**\n * @author Toru Nagashima \n * See LICENSE file in root directory for full license.\n */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar eventTargetShim = require('event-target-shim');\n\n/**\n * The signal class.\n * @see https://dom.spec.whatwg.org/#abortsignal\n */\nclass AbortSignal extends eventTargetShim.EventTarget {\n /**\n * AbortSignal cannot be constructed directly.\n */\n constructor() {\n super();\n throw new TypeError(\"AbortSignal cannot be constructed directly\");\n }\n /**\n * Returns `true` if this `AbortSignal`'s `AbortController` has signaled to abort, and `false` otherwise.\n */\n get aborted() {\n const aborted = abortedFlags.get(this);\n if (typeof aborted !== \"boolean\") {\n throw new TypeError(`Expected 'this' to be an 'AbortSignal' object, but got ${this === null ? \"null\" : typeof this}`);\n }\n return aborted;\n }\n}\neventTargetShim.defineEventAttribute(AbortSignal.prototype, \"abort\");\n/**\n * Create an AbortSignal object.\n */\nfunction createAbortSignal() {\n const signal = Object.create(AbortSignal.prototype);\n eventTargetShim.EventTarget.call(signal);\n abortedFlags.set(signal, false);\n return signal;\n}\n/**\n * Abort a given signal.\n */\nfunction abortSignal(signal) {\n if (abortedFlags.get(signal) !== false) {\n return;\n }\n abortedFlags.set(signal, true);\n signal.dispatchEvent({ type: \"abort\" });\n}\n/**\n * Aborted flag for each instances.\n */\nconst abortedFlags = new WeakMap();\n// Properties should be enumerable.\nObject.defineProperties(AbortSignal.prototype, {\n aborted: { enumerable: true },\n});\n// `toString()` should return `\"[object AbortSignal]\"`\nif (typeof Symbol === \"function\" && typeof Symbol.toStringTag === \"symbol\") {\n Object.defineProperty(AbortSignal.prototype, Symbol.toStringTag, {\n configurable: true,\n value: \"AbortSignal\",\n });\n}\n\n/**\n * The AbortController.\n * @see https://dom.spec.whatwg.org/#abortcontroller\n */\nclass AbortController {\n /**\n * Initialize this controller.\n */\n constructor() {\n signals.set(this, createAbortSignal());\n }\n /**\n * Returns the `AbortSignal` object associated with this object.\n */\n get signal() {\n return getSignal(this);\n }\n /**\n * Abort and signal to any observers that the associated activity is to be aborted.\n */\n abort() {\n abortSignal(getSignal(this));\n }\n}\n/**\n * Associated signals.\n */\nconst signals = new WeakMap();\n/**\n * Get the associated signal of a given controller.\n */\nfunction getSignal(controller) {\n const signal = signals.get(controller);\n if (signal == null) {\n throw new TypeError(`Expected 'this' to be an 'AbortController' object, but got ${controller === null ? \"null\" : typeof controller}`);\n }\n return signal;\n}\n// Properties should be enumerable.\nObject.defineProperties(AbortController.prototype, {\n signal: { enumerable: true },\n abort: { enumerable: true },\n});\nif (typeof Symbol === \"function\" && typeof Symbol.toStringTag === \"symbol\") {\n Object.defineProperty(AbortController.prototype, Symbol.toStringTag, {\n configurable: true,\n value: \"AbortController\",\n });\n}\n\nexports.AbortController = AbortController;\nexports.AbortSignal = AbortSignal;\nexports.default = AbortController;\n\nmodule.exports = AbortController\nmodule.exports.AbortController = module.exports[\"default\"] = AbortController\nmodule.exports.AbortSignal = AbortSignal\n//# sourceMappingURL=abort-controller.js.map\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\n/**\n * Set up alert().\n * You can use this module directly, or just require InitializeCore.\n */\nif (!global.alert) {\n global.alert = function (text: string) {\n // Require Alert on demand. Requiring it too early can lead to issues\n // with things like Platform not being fully initialized.\n require('../Alert/Alert').alert('Alert', '' + text);\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {DialogOptions} from '../NativeModules/specs/NativeDialogManagerAndroid';\n\nimport Platform from '../Utilities/Platform';\nimport RCTAlertManager from './RCTAlertManager';\n\nexport type AlertType =\n | 'default'\n | 'plain-text'\n | 'secure-text'\n | 'login-password';\nexport type AlertButtonStyle = 'default' | 'cancel' | 'destructive';\nexport type Buttons = Array<{\n text?: string,\n onPress?: ?Function,\n isPreferred?: boolean,\n style?: AlertButtonStyle,\n ...\n}>;\n\ntype Options = {\n cancelable?: ?boolean,\n userInterfaceStyle?: 'unspecified' | 'light' | 'dark',\n onDismiss?: ?() => void,\n ...\n};\n\n/**\n * Launches an alert dialog with the specified title and message.\n *\n * See https://reactnative.dev/docs/alert\n */\nclass Alert {\n static alert(\n title: ?string,\n message?: ?string,\n buttons?: Buttons,\n options?: Options,\n ): void {\n if (Platform.OS === 'ios') {\n Alert.prompt(\n title,\n message,\n buttons,\n 'default',\n undefined,\n undefined,\n options,\n );\n } else if (Platform.OS === 'android') {\n const NativeDialogManagerAndroid =\n require('../NativeModules/specs/NativeDialogManagerAndroid').default;\n if (!NativeDialogManagerAndroid) {\n return;\n }\n const constants = NativeDialogManagerAndroid.getConstants();\n\n const config: DialogOptions = {\n title: title || '',\n message: message || '',\n cancelable: false,\n };\n\n if (options && options.cancelable) {\n config.cancelable = options.cancelable;\n }\n // At most three buttons (neutral, negative, positive). Ignore rest.\n // The text 'OK' should be probably localized. iOS Alert does that in native.\n const defaultPositiveText = 'OK';\n const validButtons: Buttons = buttons\n ? buttons.slice(0, 3)\n : [{text: defaultPositiveText}];\n const buttonPositive = validButtons.pop();\n const buttonNegative = validButtons.pop();\n const buttonNeutral = validButtons.pop();\n\n if (buttonNeutral) {\n config.buttonNeutral = buttonNeutral.text || '';\n }\n if (buttonNegative) {\n config.buttonNegative = buttonNegative.text || '';\n }\n if (buttonPositive) {\n config.buttonPositive = buttonPositive.text || defaultPositiveText;\n }\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n const onAction = (action, buttonKey) => {\n if (action === constants.buttonClicked) {\n if (buttonKey === constants.buttonNeutral) {\n buttonNeutral.onPress && buttonNeutral.onPress();\n } else if (buttonKey === constants.buttonNegative) {\n buttonNegative.onPress && buttonNegative.onPress();\n } else if (buttonKey === constants.buttonPositive) {\n buttonPositive.onPress && buttonPositive.onPress();\n }\n } else if (action === constants.dismissed) {\n options && options.onDismiss && options.onDismiss();\n }\n };\n const onError = (errorMessage: string) => console.warn(errorMessage);\n NativeDialogManagerAndroid.showAlert(config, onError, onAction);\n }\n }\n\n static prompt(\n title: ?string,\n message?: ?string,\n callbackOrButtons?: ?(((text: string) => void) | Buttons),\n type?: ?AlertType = 'plain-text',\n defaultValue?: string,\n keyboardType?: string,\n options?: Options,\n ): void {\n if (Platform.OS === 'ios') {\n let callbacks: Array = [];\n const buttons = [];\n let cancelButtonKey;\n let destructiveButtonKey;\n let preferredButtonKey;\n if (typeof callbackOrButtons === 'function') {\n callbacks = [callbackOrButtons];\n } else if (Array.isArray(callbackOrButtons)) {\n callbackOrButtons.forEach((btn, index) => {\n callbacks[index] = btn.onPress;\n if (btn.style === 'cancel') {\n cancelButtonKey = String(index);\n } else if (btn.style === 'destructive') {\n destructiveButtonKey = String(index);\n }\n if (btn.isPreferred) {\n preferredButtonKey = String(index);\n }\n if (btn.text || index < (callbackOrButtons || []).length - 1) {\n const btnDef: {[number]: string} = {};\n btnDef[index] = btn.text || '';\n buttons.push(btnDef);\n }\n });\n }\n\n RCTAlertManager.alertWithArgs(\n {\n title: title || '',\n message: message || undefined,\n buttons,\n type: type || undefined,\n defaultValue,\n cancelButtonKey,\n destructiveButtonKey,\n preferredButtonKey,\n keyboardType,\n userInterfaceStyle: options?.userInterfaceStyle || undefined,\n },\n (id, value) => {\n const cb = callbacks[id];\n cb && cb(value);\n },\n );\n }\n }\n}\n\nmodule.exports = Alert;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport NativeDialogManagerAndroid from '../NativeModules/specs/NativeDialogManagerAndroid';\n\nfunction emptyCallback() {}\n\nmodule.exports = {\n alertWithArgs: function (args, callback) {\n // TODO(5998984): Polyfill it correctly with DialogManagerAndroid\n if (!NativeDialogManagerAndroid) {\n return;\n }\n\n NativeDialogManagerAndroid.showAlert(\n args,\n emptyCallback,\n callback || emptyCallback,\n );\n },\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\n/* 'buttonClicked' | 'dismissed' */\ntype DialogAction = string;\n/*\n buttonPositive = -1,\n buttonNegative = -2,\n buttonNeutral = -3\n*/\ntype DialogButtonKey = number;\nexport type DialogOptions = {|\n title?: string,\n message?: string,\n buttonPositive?: string,\n buttonNegative?: string,\n buttonNeutral?: string,\n items?: Array,\n cancelable?: boolean,\n|};\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n +buttonClicked: DialogAction,\n +dismissed: DialogAction,\n +buttonPositive: DialogButtonKey,\n +buttonNegative: DialogButtonKey,\n +buttonNeutral: DialogButtonKey,\n |};\n +showAlert: (\n config: DialogOptions,\n onError: (error: string) => void,\n onAction: (action: DialogAction, buttonKey?: DialogButtonKey) => void,\n ) => void;\n}\n\nexport default (TurboModuleRegistry.get('DialogManagerAndroid'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nconst {polyfillObjectProperty} = require('../Utilities/PolyfillFunctions');\n\nconst navigator = global.navigator;\nif (navigator === undefined) {\n // $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.\n global.navigator = {product: 'ReactNative'};\n} else {\n // see https://github.com/facebook/react-native/issues/10881\n polyfillObjectProperty(navigator, 'product', () => 'ReactNative');\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nlet registerModule;\nif (global.RN$Bridgeless === true && global.RN$registerCallableModule) {\n registerModule = global.RN$registerCallableModule;\n} else {\n const BatchedBridge = require('../BatchedBridge/BatchedBridge');\n registerModule = (\n moduleName:\n | $TEMPORARY$string<'GlobalPerformanceLogger'>\n | $TEMPORARY$string<'HMRClient'>\n | $TEMPORARY$string<'HeapCapture'>\n | $TEMPORARY$string<'JSTimers'>\n | $TEMPORARY$string<'RCTDeviceEventEmitter'>\n | $TEMPORARY$string<'RCTLog'>\n | $TEMPORARY$string<'RCTNativeAppEventEmitter'>\n | $TEMPORARY$string<'SamplingProfiler'>\n | $TEMPORARY$string<'Systrace'>,\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n factory,\n ) => BatchedBridge.registerLazyCallableModule(moduleName, factory);\n}\n\nregisterModule('Systrace', () => require('../Performance/Systrace'));\nif (!(global.RN$Bridgeless === true)) {\n registerModule('JSTimers', () => require('./Timers/JSTimers'));\n}\nregisterModule('HeapCapture', () => require('../HeapCapture/HeapCapture'));\nregisterModule('SamplingProfiler', () =>\n require('../Performance/SamplingProfiler'),\n);\nregisterModule('RCTLog', () => require('../Utilities/RCTLog'));\nregisterModule(\n 'RCTDeviceEventEmitter',\n () => require('../EventEmitter/RCTDeviceEventEmitter').default,\n);\nregisterModule('RCTNativeAppEventEmitter', () =>\n require('../EventEmitter/RCTNativeAppEventEmitter'),\n);\nregisterModule('GlobalPerformanceLogger', () =>\n require('../Utilities/GlobalPerformanceLogger'),\n);\n\nif (__DEV__) {\n registerModule('HMRClient', () => require('../Utilities/HMRClient'));\n} else {\n registerModule('HMRClient', () => require('../Utilities/HMRClientProdShim'));\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport NativeJSCHeapCapture from './NativeJSCHeapCapture';\n\nconst HeapCapture = {\n captureHeap: function (path: string) {\n let error = null;\n try {\n global.nativeCaptureHeap(path);\n console.log('HeapCapture.captureHeap succeeded: ' + path);\n } catch (e) {\n console.log('HeapCapture.captureHeap error: ' + e.toString());\n error = e.toString();\n }\n if (NativeJSCHeapCapture) {\n NativeJSCHeapCapture.captureComplete(path, error);\n }\n },\n};\n\nmodule.exports = HeapCapture;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +captureComplete: (path: string, error: ?string) => void;\n}\n\nexport default (TurboModuleRegistry.get('JSCHeapCapture'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nconst SamplingProfiler = {\n poke: function (token: number): void {\n let error = null;\n let result = null;\n try {\n result = global.pokeSamplingProfiler();\n if (result === null) {\n console.log('The JSC Sampling Profiler has started');\n } else {\n console.log('The JSC Sampling Profiler has stopped');\n }\n } catch (e) {\n console.log(\n 'Error occurred when restarting Sampling Profiler: ' + e.toString(),\n );\n error = e.toString();\n }\n\n const NativeJSCSamplingProfiler =\n require('./NativeJSCSamplingProfiler').default;\n if (NativeJSCSamplingProfiler) {\n NativeJSCSamplingProfiler.operationComplete(token, result, error);\n }\n },\n};\n\nmodule.exports = SamplingProfiler;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +operationComplete: (token: number, result: ?string, error: ?string) => void;\n}\n\nexport default (TurboModuleRegistry.get('JSCSamplingProfiler'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nconst invariant = require('invariant');\n\nconst levelsMap = {\n log: 'log',\n info: 'info',\n warn: 'warn',\n error: 'error',\n fatal: 'error',\n};\n\nlet warningHandler: ?(...Array) => void = null;\n\nconst RCTLog = {\n // level one of log, info, warn, error, mustfix\n logIfNoNativeHook(level: string, ...args: Array): void {\n // We already printed in the native console, so only log here if using a js debugger\n if (typeof global.nativeLoggingHook === 'undefined') {\n RCTLog.logToConsole(level, ...args);\n } else {\n // Report native warnings to LogBox\n if (warningHandler && level === 'warn') {\n warningHandler(...args);\n }\n }\n },\n\n // Log to console regardless of nativeLoggingHook\n logToConsole(level: string, ...args: Array): void {\n const logFn = levelsMap[level];\n invariant(\n logFn,\n 'Level \"' + level + '\" not one of ' + Object.keys(levelsMap).toString(),\n );\n\n console[logFn](...args);\n },\n\n setWarningHandler(handler: typeof warningHandler): void {\n warningHandler = handler;\n },\n};\n\nmodule.exports = RCTLog;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport RCTDeviceEventEmitter from './RCTDeviceEventEmitter';\n\n/**\n * Deprecated - subclass NativeEventEmitter to create granular event modules instead of\n * adding all event listeners directly to RCTNativeAppEventEmitter.\n */\nconst RCTNativeAppEventEmitter = RCTDeviceEventEmitter;\nmodule.exports = RCTNativeAppEventEmitter;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n'use strict';\n\nimport type {HMRClientNativeInterface} from './HMRClient';\n\n// This shim ensures DEV binary builds don't crash in JS\n// when they're combined with a PROD JavaScript build.\nconst HMRClientProdShim: HMRClientNativeInterface = {\n setup() {},\n enable() {\n console.error(\n 'Fast Refresh is disabled in JavaScript bundles built in production mode. ' +\n 'Did you forget to run Metro?',\n );\n },\n disable() {},\n registerBundle() {},\n log() {},\n};\n\nmodule.exports = HMRClientProdShim;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nexport type FetchSegmentFunction = typeof __fetchSegment;\n\n/**\n * Set up SegmentFetcher.\n * You can use this module directly, or just require InitializeCore.\n */\n\nfunction __fetchSegment(\n segmentId: number,\n options: $ReadOnly<{\n otaBuildNumber: ?string,\n requestedModuleName: string,\n segmentHash: string,\n }>,\n callback: (?Error) => void,\n) {\n const SegmentFetcher =\n require('./SegmentFetcher/NativeSegmentFetcher').default;\n SegmentFetcher.fetchSegment(\n segmentId,\n options,\n (\n errorObject: ?{\n message: string,\n code: string,\n ...\n },\n ) => {\n if (errorObject) {\n const error = new Error(errorObject.message);\n (error: any).code = errorObject.code; // flowlint-line unclear-type: off\n callback(error);\n }\n\n callback(null);\n },\n );\n}\n\nglobal.__fetchSegment = __fetchSegment;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +fetchSegment: (\n segmentId: number,\n options: Object, // flowlint-line unclear-type: off\n callback: (error: ?Object) => void, // flowlint-line unclear-type: off\n ) => void;\n +getSegment?: (\n segmentId: number,\n options: Object, // flowlint-line unclear-type: off\n callback: (error: ?Object, path: ?string) => void, // flowlint-line unclear-type: off\n ) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('SegmentFetcher'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {RootTag} from '../Types/RootTagTypes';\nimport type {IPerformanceLogger} from '../Utilities/createPerformanceLogger';\n\nimport BatchedBridge from '../BatchedBridge/BatchedBridge';\nimport BugReporting from '../BugReporting/BugReporting';\nimport createPerformanceLogger from '../Utilities/createPerformanceLogger';\nimport infoLog from '../Utilities/infoLog';\nimport SceneTracker from '../Utilities/SceneTracker';\nimport {coerceDisplayMode} from './DisplayMode';\nimport HeadlessJsTaskError from './HeadlessJsTaskError';\nimport NativeHeadlessJsTaskSupport from './NativeHeadlessJsTaskSupport';\nimport renderApplication from './renderApplication';\nimport {unmountComponentAtNodeAndRemoveContainer} from './RendererProxy';\nimport invariant from 'invariant';\n\ntype Task = (taskData: any) => Promise;\nexport type TaskProvider = () => Task;\ntype TaskCanceller = () => void;\ntype TaskCancelProvider = () => TaskCanceller;\n\nexport type ComponentProvider = () => React$ComponentType;\nexport type ComponentProviderInstrumentationHook = (\n component: ComponentProvider,\n scopedPerformanceLogger: IPerformanceLogger,\n) => React$ComponentType;\nexport type AppConfig = {\n appKey: string,\n component?: ComponentProvider,\n run?: Function,\n section?: boolean,\n ...\n};\nexport type Runnable = {\n component?: ComponentProvider,\n run: Function,\n ...\n};\nexport type Runnables = {[appKey: string]: Runnable, ...};\nexport type Registry = {\n sections: Array,\n runnables: Runnables,\n ...\n};\nexport type WrapperComponentProvider = (\n appParameters: any,\n) => React$ComponentType;\n\nconst runnables: Runnables = {};\nlet runCount = 1;\nconst sections: Runnables = {};\nconst taskProviders: Map = new Map();\nconst taskCancelProviders: Map = new Map();\nlet componentProviderInstrumentationHook: ComponentProviderInstrumentationHook =\n (component: ComponentProvider) => component();\n\nlet wrapperComponentProvider: ?WrapperComponentProvider;\nlet showArchitectureIndicator = false;\n\n/**\n * `AppRegistry` is the JavaScript entry point to running all React Native apps.\n *\n * See https://reactnative.dev/docs/appregistry\n */\nconst AppRegistry = {\n setWrapperComponentProvider(provider: WrapperComponentProvider) {\n wrapperComponentProvider = provider;\n },\n\n enableArchitectureIndicator(enabled: boolean): void {\n showArchitectureIndicator = enabled;\n },\n\n registerConfig(config: Array): void {\n config.forEach(appConfig => {\n if (appConfig.run) {\n AppRegistry.registerRunnable(appConfig.appKey, appConfig.run);\n } else {\n invariant(\n appConfig.component != null,\n 'AppRegistry.registerConfig(...): Every config is expected to set ' +\n 'either `run` or `component`, but `%s` has neither.',\n appConfig.appKey,\n );\n AppRegistry.registerComponent(\n appConfig.appKey,\n appConfig.component,\n appConfig.section,\n );\n }\n });\n },\n\n /**\n * Registers an app's root component.\n *\n * See https://reactnative.dev/docs/appregistry#registercomponent\n */\n registerComponent(\n appKey: string,\n componentProvider: ComponentProvider,\n section?: boolean,\n ): string {\n let scopedPerformanceLogger = createPerformanceLogger();\n runnables[appKey] = {\n componentProvider,\n run: (appParameters, displayMode) => {\n const concurrentRootEnabled =\n appParameters.initialProps?.concurrentRoot ||\n appParameters.concurrentRoot;\n renderApplication(\n componentProviderInstrumentationHook(\n componentProvider,\n scopedPerformanceLogger,\n ),\n appParameters.initialProps,\n appParameters.rootTag,\n wrapperComponentProvider && wrapperComponentProvider(appParameters),\n appParameters.fabric,\n showArchitectureIndicator,\n scopedPerformanceLogger,\n appKey === 'LogBox',\n appKey,\n coerceDisplayMode(displayMode),\n concurrentRootEnabled,\n );\n },\n };\n if (section) {\n sections[appKey] = runnables[appKey];\n }\n return appKey;\n },\n\n registerRunnable(appKey: string, run: Function): string {\n runnables[appKey] = {run};\n return appKey;\n },\n\n registerSection(appKey: string, component: ComponentProvider): void {\n AppRegistry.registerComponent(appKey, component, true);\n },\n\n getAppKeys(): Array {\n return Object.keys(runnables);\n },\n\n getSectionKeys(): Array {\n return Object.keys(sections);\n },\n\n getSections(): Runnables {\n return {\n ...sections,\n };\n },\n\n getRunnable(appKey: string): ?Runnable {\n return runnables[appKey];\n },\n\n getRegistry(): Registry {\n return {\n sections: AppRegistry.getSectionKeys(),\n runnables: {...runnables},\n };\n },\n\n setComponentProviderInstrumentationHook(\n hook: ComponentProviderInstrumentationHook,\n ) {\n componentProviderInstrumentationHook = hook;\n },\n\n /**\n * Loads the JavaScript bundle and runs the app.\n *\n * See https://reactnative.dev/docs/appregistry#runapplication\n */\n runApplication(\n appKey: string,\n appParameters: any,\n displayMode?: number,\n ): void {\n if (appKey !== 'LogBox') {\n const logParams = __DEV__\n ? '\" with ' + JSON.stringify(appParameters)\n : '';\n const msg = 'Running \"' + appKey + logParams;\n infoLog(msg);\n BugReporting.addSource(\n 'AppRegistry.runApplication' + runCount++,\n () => msg,\n );\n }\n invariant(\n runnables[appKey] && runnables[appKey].run,\n `\"${appKey}\" has not been registered. This can happen if:\\n` +\n '* Metro (the local dev server) is run from the wrong folder. ' +\n 'Check if Metro is running, stop it and restart it in the current project.\\n' +\n \"* A module failed to load due to an error and `AppRegistry.registerComponent` wasn't called.\",\n );\n\n SceneTracker.setActiveScene({name: appKey});\n runnables[appKey].run(appParameters, displayMode);\n },\n\n /**\n * Update initial props for a surface that's already rendered\n */\n setSurfaceProps(\n appKey: string,\n appParameters: any,\n displayMode?: number,\n ): void {\n if (appKey !== 'LogBox') {\n const msg =\n 'Updating props for Surface \"' +\n appKey +\n '\" with ' +\n JSON.stringify(appParameters);\n infoLog(msg);\n BugReporting.addSource(\n 'AppRegistry.setSurfaceProps' + runCount++,\n () => msg,\n );\n }\n invariant(\n runnables[appKey] && runnables[appKey].run,\n `\"${appKey}\" has not been registered. This can happen if:\\n` +\n '* Metro (the local dev server) is run from the wrong folder. ' +\n 'Check if Metro is running, stop it and restart it in the current project.\\n' +\n \"* A module failed to load due to an error and `AppRegistry.registerComponent` wasn't called.\",\n );\n\n runnables[appKey].run(appParameters, displayMode);\n },\n\n /**\n * Stops an application when a view should be destroyed.\n *\n * See https://reactnative.dev/docs/appregistry#unmountapplicationcomponentatroottag\n */\n unmountApplicationComponentAtRootTag(rootTag: RootTag): void {\n unmountComponentAtNodeAndRemoveContainer(rootTag);\n },\n\n /**\n * Register a headless task. A headless task is a bit of code that runs without a UI.\n *\n * See https://reactnative.dev/docs/appregistry#registerheadlesstask\n */\n registerHeadlessTask(taskKey: string, taskProvider: TaskProvider): void {\n // $FlowFixMe[object-this-reference]\n this.registerCancellableHeadlessTask(taskKey, taskProvider, () => () => {\n /* Cancel is no-op */\n });\n },\n\n /**\n * Register a cancellable headless task. A headless task is a bit of code that runs without a UI.\n *\n * See https://reactnative.dev/docs/appregistry#registercancellableheadlesstask\n */\n registerCancellableHeadlessTask(\n taskKey: string,\n taskProvider: TaskProvider,\n taskCancelProvider: TaskCancelProvider,\n ): void {\n if (taskProviders.has(taskKey)) {\n console.warn(\n `registerHeadlessTask or registerCancellableHeadlessTask called multiple times for same key '${taskKey}'`,\n );\n }\n taskProviders.set(taskKey, taskProvider);\n taskCancelProviders.set(taskKey, taskCancelProvider);\n },\n\n /**\n * Only called from native code. Starts a headless task.\n *\n * See https://reactnative.dev/docs/appregistry#startheadlesstask\n */\n startHeadlessTask(taskId: number, taskKey: string, data: any): void {\n const taskProvider = taskProviders.get(taskKey);\n if (!taskProvider) {\n console.warn(`No task registered for key ${taskKey}`);\n if (NativeHeadlessJsTaskSupport) {\n NativeHeadlessJsTaskSupport.notifyTaskFinished(taskId);\n }\n return;\n }\n taskProvider()(data)\n .then(() => {\n if (NativeHeadlessJsTaskSupport) {\n NativeHeadlessJsTaskSupport.notifyTaskFinished(taskId);\n }\n })\n .catch(reason => {\n console.error(reason);\n\n if (\n NativeHeadlessJsTaskSupport &&\n reason instanceof HeadlessJsTaskError\n ) {\n // $FlowFixMe[unused-promise]\n NativeHeadlessJsTaskSupport.notifyTaskRetry(taskId).then(\n retryPosted => {\n if (!retryPosted) {\n NativeHeadlessJsTaskSupport.notifyTaskFinished(taskId);\n }\n },\n );\n }\n });\n },\n\n /**\n * Only called from native code. Cancels a headless task.\n *\n * See https://reactnative.dev/docs/appregistry#cancelheadlesstask\n */\n cancelHeadlessTask(taskId: number, taskKey: string): void {\n const taskCancelProvider = taskCancelProviders.get(taskKey);\n if (!taskCancelProvider) {\n throw new Error(`No task canceller registered for key '${taskKey}'`);\n }\n taskCancelProvider()();\n },\n};\n\nif (!(global.RN$Bridgeless === true)) {\n BatchedBridge.registerCallableModule('AppRegistry', AppRegistry);\n\n AppRegistry.registerComponent('LogBox', () => {\n if (__DEV__) {\n return require('../LogBox/LogBoxInspectorContainer').default;\n } else {\n return function NoOp() {\n return null;\n };\n }\n });\n}\n\nmodule.exports = AppRegistry;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter';\nimport NativeRedBox from '../NativeModules/specs/NativeRedBox';\nimport {type EventSubscription} from '../vendor/emitter/EventEmitter';\nimport NativeBugReporting from './NativeBugReporting';\n\ntype ExtraData = {[key: string]: string, ...};\ntype SourceCallback = () => string;\ntype DebugData = {\n extras: ExtraData,\n files: ExtraData,\n ...\n};\n\nfunction defaultExtras() {\n BugReporting.addFileSource('react_hierarchy.txt', () =>\n require('./dumpReactTree')(),\n );\n}\n\n/**\n * A simple class for collecting bug report data. Components can add sources that will be queried when a bug report\n * is created via `collectExtraData`. For example, a list component might add a source that provides the list of rows\n * that are currently visible on screen. Components should also remember to call `remove()` on the object that is\n * returned by `addSource` when they are unmounted.\n */\nclass BugReporting {\n static _extraSources: Map = new Map();\n static _fileSources: Map = new Map();\n static _subscription: ?EventSubscription = null;\n static _redboxSubscription: ?EventSubscription = null;\n\n static _maybeInit() {\n if (!BugReporting._subscription) {\n BugReporting._subscription = RCTDeviceEventEmitter.addListener(\n 'collectBugExtraData',\n // $FlowFixMe[method-unbinding]\n BugReporting.collectExtraData,\n null,\n );\n defaultExtras();\n }\n\n if (!BugReporting._redboxSubscription) {\n BugReporting._redboxSubscription = RCTDeviceEventEmitter.addListener(\n 'collectRedBoxExtraData',\n // $FlowFixMe[method-unbinding]\n BugReporting.collectExtraData,\n null,\n );\n }\n }\n\n /**\n * Maps a string key to a simple callback that should return a string payload to be attached\n * to a bug report. Source callbacks are called when `collectExtraData` is called.\n *\n * Returns an object to remove the source when the component unmounts.\n *\n * Conflicts trample with a warning.\n */\n static addSource(\n key: string,\n callback: SourceCallback,\n ): {remove: () => void, ...} {\n return this._addSource(key, callback, BugReporting._extraSources);\n }\n\n /**\n * Maps a string key to a simple callback that should return a string payload to be attached\n * to a bug report. Source callbacks are called when `collectExtraData` is called.\n *\n * Returns an object to remove the source when the component unmounts.\n *\n * Conflicts trample with a warning.\n */\n static addFileSource(\n key: string,\n callback: SourceCallback,\n ): {remove: () => void, ...} {\n return this._addSource(key, callback, BugReporting._fileSources);\n }\n\n static _addSource(\n key: string,\n callback: SourceCallback,\n source: Map,\n ): {remove: () => void, ...} {\n BugReporting._maybeInit();\n if (source.has(key)) {\n console.warn(\n `BugReporting.add* called multiple times for same key '${key}'`,\n );\n }\n source.set(key, callback);\n return {\n remove: () => {\n source.delete(key);\n },\n };\n }\n\n /**\n * This can be called from a native bug reporting flow, or from JS code.\n *\n * If available, this will call `NativeModules.BugReporting.setExtraData(extraData)`\n * after collecting `extraData`.\n */\n static collectExtraData(): DebugData {\n const extraData: ExtraData = {};\n for (const [key, callback] of BugReporting._extraSources) {\n extraData[key] = callback();\n }\n const fileData: ExtraData = {};\n for (const [key, callback] of BugReporting._fileSources) {\n fileData[key] = callback();\n }\n\n if (NativeBugReporting != null && NativeBugReporting.setExtraData != null) {\n NativeBugReporting.setExtraData(extraData, fileData);\n }\n\n if (NativeRedBox != null && NativeRedBox.setExtraData != null) {\n NativeRedBox.setExtraData(extraData, 'From BugReporting.js');\n }\n\n return {extras: extraData, files: fileData};\n }\n}\n\nmodule.exports = BugReporting;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +setExtraData: (extraData: Object, forIdentifier: string) => void;\n +dismiss: () => void;\n}\n\nexport default (TurboModuleRegistry.get('RedBox'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +startReportAProblemFlow: () => void;\n +setExtraData: (extraData: Object, extraFiles: Object) => void;\n +setCategoryID: (categoryID: string) => void;\n}\n\nexport default (TurboModuleRegistry.get('BugReporting'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\n/*\nconst getReactData = require('getReactData');\n\nconst INDENTATION_SIZE = 2;\nconst MAX_DEPTH = 2;\nconst MAX_STRING_LENGTH = 50;\n*/\n\n/**\n * Dump all React Native root views and their content. This function tries\n * it best to get the content but ultimately relies on implementation details\n * of React and will fail in future versions.\n */\nfunction dumpReactTree(): string {\n try {\n return getReactTree();\n } catch (e) {\n return 'Failed to dump react tree: ' + e;\n }\n}\n\nfunction getReactTree() {\n // TODO(sema): Reenable tree dumps using the Fiber tree structure. #15945684\n return (\n 'React tree dumps have been temporarily disabled while React is ' +\n 'upgraded to Fiber.'\n );\n /*\n let output = '';\n const rootIds = Object.getOwnPropertyNames(ReactNativeMount._instancesByContainerID);\n for (const rootId of rootIds) {\n const instance = ReactNativeMount._instancesByContainerID[rootId];\n output += `============ Root ID: ${rootId} ============\\n`;\n output += dumpNode(instance, 0);\n output += `============ End root ID: ${rootId} ============\\n`;\n }\n return output;\n*/\n}\n\n/*\nfunction dumpNode(node: Object, indentation: number) {\n const data = getReactData(node);\n if (data.nodeType === 'Text') {\n return indent(indentation) + data.text + '\\n';\n } else if (data.nodeType === 'Empty') {\n return '';\n }\n let output = indent(indentation) + `<${data.name}`;\n if (data.nodeType === 'Composite') {\n for (const propName of Object.getOwnPropertyNames(data.props || {})) {\n if (isNormalProp(propName)) {\n try {\n const value = convertValue(data.props[propName]);\n if (value) {\n output += ` ${propName}=${value}`;\n }\n } catch (e) {\n const message = `[Failed to get property: ${e}]`;\n output += ` ${propName}=${message}`;\n }\n }\n }\n }\n let childOutput = '';\n for (const child of data.children || []) {\n childOutput += dumpNode(child, indentation + 1);\n }\n\n if (childOutput) {\n output += '>\\n' + childOutput + indent(indentation) + `\\n`;\n } else {\n output += ' />\\n';\n }\n\n return output;\n}\n\nfunction isNormalProp(name: string): boolean {\n switch (name) {\n case 'children':\n case 'key':\n case 'ref':\n return false;\n default:\n return true;\n }\n}\n\nfunction convertObject(object: Object, depth: number) {\n if (depth >= MAX_DEPTH) {\n return '[...omitted]';\n }\n let output = '{';\n let first = true;\n for (const key of Object.getOwnPropertyNames(object)) {\n if (!first) {\n output += ', ';\n }\n output += `${key}: ${convertValue(object[key], depth + 1)}`;\n first = false;\n }\n return output + '}';\n}\n\nfunction convertValue(value, depth = 0): ?string {\n if (!value) {\n return null;\n }\n\n switch (typeof value) {\n case 'string':\n return JSON.stringify(possiblyEllipsis(value).replace('\\n', '\\\\n'));\n case 'boolean':\n case 'number':\n return JSON.stringify(value);\n case 'function':\n return '[function]';\n case 'object':\n return convertObject(value, depth);\n default:\n return null;\n }\n}\n\nfunction possiblyEllipsis(value: string) {\n if (value.length > MAX_STRING_LENGTH) {\n return value.slice(0, MAX_STRING_LENGTH) + '...';\n } else {\n return value;\n }\n}\n\nfunction indent(size: number) {\n return ' '.repeat(size * INDENTATION_SIZE);\n}\n*/\n\nmodule.exports = dumpReactTree;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nexport type Scene = {name: string, ...};\n\nlet _listeners: Array<(scene: Scene) => void> = [];\n\nlet _activeScene = {name: 'default'};\n\nconst SceneTracker = {\n setActiveScene(scene: Scene) {\n _activeScene = scene;\n _listeners.forEach(listener => listener(_activeScene));\n },\n\n getActiveScene(): Scene {\n return _activeScene;\n },\n\n addActiveSceneChangedListener(callback: (scene: Scene) => void): {\n remove: () => void,\n ...\n } {\n _listeners.push(callback);\n return {\n remove: () => {\n _listeners = _listeners.filter(listener => callback !== listener);\n },\n };\n },\n};\n\nmodule.exports = SceneTracker;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nexport default class HeadlessJsTaskError extends Error {}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +notifyTaskFinished: (taskId: number) => void;\n +notifyTaskRetry: (taskId: number) => Promise;\n}\n\nexport default (TurboModuleRegistry.get('HeadlessJsTaskSupport'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {IPerformanceLogger} from '../Utilities/createPerformanceLogger';\n\nimport GlobalPerformanceLogger from '../Utilities/GlobalPerformanceLogger';\nimport PerformanceLoggerContext from '../Utilities/PerformanceLoggerContext';\nimport AppContainer from './AppContainer';\nimport DisplayMode, {type DisplayModeType} from './DisplayMode';\nimport getCachedComponentWithDebugName from './getCachedComponentWithDebugName';\nimport * as Renderer from './RendererProxy';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\n// require BackHandler so it sets the default handler that exits the app if no listeners respond\nimport '../Utilities/BackHandler';\n\ntype OffscreenType = React.AbstractComponent<{\n mode: 'visible' | 'hidden',\n children: React.Node,\n}>;\n\nexport default function renderApplication(\n RootComponent: React.ComponentType,\n initialProps: Props,\n rootTag: any,\n WrapperComponent?: ?React.ComponentType,\n fabric?: boolean,\n showArchitectureIndicator?: boolean,\n scopedPerformanceLogger?: IPerformanceLogger,\n isLogBox?: boolean,\n debugName?: string,\n displayMode?: ?DisplayModeType,\n useConcurrentRoot?: boolean,\n useOffscreen?: boolean,\n) {\n invariant(rootTag, 'Expect to have a valid rootTag, instead got ', rootTag);\n\n const performanceLogger = scopedPerformanceLogger ?? GlobalPerformanceLogger;\n\n let renderable: React.MixedElement = (\n \n \n \n \n \n );\n\n if (__DEV__ && debugName) {\n const RootComponentWithMeaningfulName = getCachedComponentWithDebugName(\n `${debugName}(RootComponent)`,\n );\n renderable = (\n \n {renderable}\n \n );\n }\n\n if (useOffscreen && displayMode != null) {\n // $FlowFixMe[incompatible-type]\n // $FlowFixMe[prop-missing]\n const Offscreen: OffscreenType = React.unstable_Offscreen;\n\n renderable = (\n \n {renderable}\n \n );\n }\n\n performanceLogger.startTimespan('renderApplication_React_render');\n performanceLogger.setExtra(\n 'usedReactConcurrentRoot',\n useConcurrentRoot ? '1' : '0',\n );\n performanceLogger.setExtra('usedReactFabric', fabric ? '1' : '0');\n performanceLogger.setExtra(\n 'usedReactProfiler',\n Renderer.isProfilingRenderer(),\n );\n Renderer.renderElement({\n element: renderable,\n rootTag,\n useFabric: Boolean(fabric),\n useConcurrentRoot: Boolean(useConcurrentRoot),\n });\n performanceLogger.stopTimespan('renderApplication_React_render');\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {IPerformanceLogger} from './createPerformanceLogger';\n\nimport GlobalPerformanceLogger from './GlobalPerformanceLogger';\nimport * as React from 'react';\nimport {useContext} from 'react';\n\n/**\n * This is a React Context that provides a scoped instance of IPerformanceLogger.\n * We wrap every with a Provider for this context so the logger\n * should be available in every component.\n * See React docs about using Context: https://reactjs.org/docs/context.html\n */\nconst PerformanceLoggerContext: React.Context =\n React.createContext(GlobalPerformanceLogger);\nif (__DEV__) {\n PerformanceLoggerContext.displayName = 'PerformanceLoggerContext';\n}\n\nexport function usePerformanceLogger(): IPerformanceLogger {\n return useContext(PerformanceLoggerContext);\n}\n\nexport default PerformanceLoggerContext;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1,\n internal_excludeLogBox?: ?boolean,\n internal_excludeInspector?: ?boolean,\n|}>;\n\ntype State = {|\n inspector: ?React.Node,\n devtoolsOverlay: ?React.Node,\n traceUpdateOverlay: ?React.Node,\n mainKey: number,\n hasError: boolean,\n|};\n\nclass AppContainer extends React.Component {\n state: State = {\n inspector: null,\n devtoolsOverlay: null,\n traceUpdateOverlay: null,\n mainKey: 1,\n hasError: false,\n };\n _mainRef: ?React.ElementRef;\n _subscription: ?EventSubscription = null;\n\n static getDerivedStateFromError: any = undefined;\n\n componentDidMount(): void {\n if (__DEV__) {\n if (!this.props.internal_excludeInspector) {\n this._subscription = RCTDeviceEventEmitter.addListener(\n 'toggleElementInspector',\n () => {\n const Inspector = require('../Inspector/Inspector');\n const inspector = this.state.inspector ? null : (\n {\n this.setState(\n s => ({mainKey: s.mainKey + 1}),\n () => updateInspectedView(this._mainRef),\n );\n }}\n />\n );\n this.setState({inspector});\n },\n );\n if (window.__REACT_DEVTOOLS_GLOBAL_HOOK__ != null) {\n const DevtoolsOverlay =\n require('../Inspector/DevtoolsOverlay').default;\n const devtoolsOverlay = (\n \n );\n const TraceUpdateOverlay =\n require('../Components/TraceUpdateOverlay/TraceUpdateOverlay').default;\n const traceUpdateOverlay = ;\n this.setState({devtoolsOverlay, traceUpdateOverlay});\n }\n }\n }\n }\n\n componentWillUnmount(): void {\n if (this._subscription != null) {\n this._subscription.remove();\n }\n }\n\n render(): React.Node {\n let logBox = null;\n if (__DEV__) {\n if (!this.props.internal_excludeLogBox) {\n const LogBoxNotificationContainer =\n require('../LogBox/LogBoxNotificationContainer').default;\n logBox = ;\n }\n }\n\n let innerView: React.Node = (\n {\n this._mainRef = ref;\n }}>\n {this.props.children}\n \n );\n\n const Wrapper = this.props.WrapperComponent;\n if (Wrapper != null) {\n innerView = (\n \n {innerView}\n \n );\n }\n return (\n \n \n {!this.state.hasError && innerView}\n {this.state.traceUpdateOverlay}\n {this.state.devtoolsOverlay}\n {this.state.inspector}\n {logBox}\n \n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n appContainer: {\n flex: 1,\n },\n});\n\nmodule.exports = AppContainer;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {ViewProps} from './ViewPropTypes';\n\nimport flattenStyle from '../../StyleSheet/flattenStyle';\nimport TextAncestor from '../../Text/TextAncestor';\nimport {getAccessibilityRoleFromRole} from '../../Utilities/AcessibilityMapping';\nimport ViewNativeComponent from './ViewNativeComponent';\nimport * as React from 'react';\n\nexport type Props = ViewProps;\n\n/**\n * The most fundamental component for building a UI, View is a container that\n * supports layout with flexbox, style, some touch handling, and accessibility\n * controls.\n *\n * @see https://reactnative.dev/docs/view\n */\nconst View: React.AbstractComponent<\n ViewProps,\n React.ElementRef,\n> = React.forwardRef(\n (\n {\n accessibilityElementsHidden,\n accessibilityLabel,\n accessibilityLabelledBy,\n accessibilityLiveRegion,\n accessibilityRole,\n accessibilityState,\n accessibilityValue,\n 'aria-busy': ariaBusy,\n 'aria-checked': ariaChecked,\n 'aria-disabled': ariaDisabled,\n 'aria-expanded': ariaExpanded,\n 'aria-hidden': ariaHidden,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-live': ariaLive,\n 'aria-selected': ariaSelected,\n 'aria-valuemax': ariaValueMax,\n 'aria-valuemin': ariaValueMin,\n 'aria-valuenow': ariaValueNow,\n 'aria-valuetext': ariaValueText,\n focusable,\n id,\n importantForAccessibility,\n nativeID,\n pointerEvents,\n role,\n tabIndex,\n ...otherProps\n }: ViewProps,\n forwardedRef,\n ) => {\n const _accessibilityLabelledBy =\n ariaLabelledBy?.split(/\\s*,\\s*/g) ?? accessibilityLabelledBy;\n\n let _accessibilityState;\n if (\n accessibilityState != null ||\n ariaBusy != null ||\n ariaChecked != null ||\n ariaDisabled != null ||\n ariaExpanded != null ||\n ariaSelected != null\n ) {\n _accessibilityState = {\n busy: ariaBusy ?? accessibilityState?.busy,\n checked: ariaChecked ?? accessibilityState?.checked,\n disabled: ariaDisabled ?? accessibilityState?.disabled,\n expanded: ariaExpanded ?? accessibilityState?.expanded,\n selected: ariaSelected ?? accessibilityState?.selected,\n };\n }\n let _accessibilityValue;\n if (\n accessibilityValue != null ||\n ariaValueMax != null ||\n ariaValueMin != null ||\n ariaValueNow != null ||\n ariaValueText != null\n ) {\n _accessibilityValue = {\n max: ariaValueMax ?? accessibilityValue?.max,\n min: ariaValueMin ?? accessibilityValue?.min,\n now: ariaValueNow ?? accessibilityValue?.now,\n text: ariaValueText ?? accessibilityValue?.text,\n };\n }\n\n // $FlowFixMe[underconstrained-implicit-instantiation]\n let style = flattenStyle(otherProps.style);\n\n const newPointerEvents = style?.pointerEvents || pointerEvents;\n\n return (\n \n \n \n );\n },\n);\n\nView.displayName = 'View';\n\nmodule.exports = View;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nimport type {DangerouslyImpreciseStyleProp} from './StyleSheet';\nimport type {____FlattenStyleProp_Internal} from './StyleSheetTypes';\n\nfunction flattenStyle<+TStyleProp: DangerouslyImpreciseStyleProp>(\n style: ?TStyleProp,\n // $FlowFixMe[underconstrained-implicit-instantiation]\n): ?____FlattenStyleProp_Internal {\n if (style === null || typeof style !== 'object') {\n return undefined;\n }\n\n if (!Array.isArray(style)) {\n return style;\n }\n\n const result: {[string]: $FlowFixMe} = {};\n for (let i = 0, styleLength = style.length; i < styleLength; ++i) {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n const computedStyle = flattenStyle(style[i]);\n if (computedStyle) {\n for (const key in computedStyle) {\n result[key] = computedStyle[key];\n }\n }\n }\n return result;\n}\n\nmodule.exports = flattenStyle;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nconst React = require('react');\n\n/**\n * Whether the current element is the descendant of a element.\n */\nconst TextAncestorContext = (React.createContext(\n false,\n): React$Context<$FlowFixMe>);\nif (__DEV__) {\n TextAncestorContext.displayName = 'TextAncestorContext';\n}\nmodule.exports = TextAncestorContext;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport Platform from '../../Utilities/Platform';\nimport {type ViewProps as Props} from './ViewPropTypes';\nimport * as React from 'react';\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig =\n Platform.OS === 'android'\n ? {\n uiViewClassName: 'RCTView',\n validAttributes: {\n // ReactClippingViewManager @ReactProps\n removeClippedSubviews: true,\n\n // ReactViewManager @ReactProps\n accessible: true,\n hasTVPreferredFocus: true,\n nextFocusDown: true,\n nextFocusForward: true,\n nextFocusLeft: true,\n nextFocusRight: true,\n nextFocusUp: true,\n\n borderRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderBottomRightRadius: true,\n borderBottomLeftRadius: true,\n borderTopStartRadius: true,\n borderTopEndRadius: true,\n borderBottomStartRadius: true,\n borderBottomEndRadius: true,\n borderEndEndRadius: true,\n borderEndStartRadius: true,\n borderStartEndRadius: true,\n borderStartStartRadius: true,\n borderStyle: true,\n hitSlop: true,\n pointerEvents: true,\n nativeBackgroundAndroid: true,\n nativeForegroundAndroid: true,\n needsOffscreenAlphaCompositing: true,\n\n borderWidth: true,\n borderLeftWidth: true,\n borderRightWidth: true,\n borderTopWidth: true,\n borderBottomWidth: true,\n borderStartWidth: true,\n borderEndWidth: true,\n\n borderColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderLeftColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderRightColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderTopColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderBottomColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderStartColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderEndColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderBlockColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderBlockEndColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderBlockStartColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n\n focusable: true,\n overflow: true,\n backfaceVisibility: true,\n },\n }\n : {\n uiViewClassName: 'RCTView',\n };\n\nconst ViewNativeComponent: HostComponent =\n NativeComponentRegistry.get('RCTView', () => __INTERNAL_VIEW_CONFIG);\n\ninterface NativeCommands {\n +hotspotUpdate: (\n viewRef: React.ElementRef>,\n x: number,\n y: number,\n ) => void;\n +setPressed: (\n viewRef: React.ElementRef>,\n pressed: boolean,\n ) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['hotspotUpdate', 'setPressed'],\n});\n\nexport default ViewNativeComponent;\n\nexport type ViewNativeComponentType = HostComponent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../Renderer/shims/ReactNativeTypes';\n\nimport getNativeComponentAttributes from '../ReactNative/getNativeComponentAttributes';\nimport UIManager from '../ReactNative/UIManager';\nimport ReactNativeViewConfigRegistry from '../Renderer/shims/ReactNativeViewConfigRegistry';\nimport verifyComponentAttributeEquivalence from '../Utilities/verifyComponentAttributeEquivalence';\nimport * as StaticViewConfigValidator from './StaticViewConfigValidator';\nimport {createViewConfig} from './ViewConfig';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\nlet getRuntimeConfig;\n\n/**\n * Configures a function that is called to determine whether a given component\n * should be registered using reflection of the native component at runtime.\n *\n * The provider should return null if the native component is unavailable in\n * the current environment.\n */\nexport function setRuntimeConfigProvider(\n runtimeConfigProvider: (name: string) => ?{\n native: boolean,\n strict: boolean,\n verify: boolean,\n },\n): void {\n invariant(\n getRuntimeConfig == null,\n 'NativeComponentRegistry.setRuntimeConfigProvider() called more than once.',\n );\n getRuntimeConfig = runtimeConfigProvider;\n}\n\n/**\n * Gets a `NativeComponent` that can be rendered by React Native.\n *\n * The supplied `viewConfigProvider` may or may not be invoked and utilized,\n * depending on how `setRuntimeConfigProvider` is configured.\n */\nexport function get(\n name: string,\n viewConfigProvider: () => PartialViewConfig,\n): HostComponent {\n ReactNativeViewConfigRegistry.register(name, () => {\n const {native, strict, verify} = getRuntimeConfig?.(name) ?? {\n native: true,\n strict: false,\n verify: false,\n };\n\n const viewConfig = native\n ? getNativeComponentAttributes(name)\n : createViewConfig(viewConfigProvider());\n\n if (verify) {\n const nativeViewConfig = native\n ? viewConfig\n : getNativeComponentAttributes(name);\n const staticViewConfig = native\n ? createViewConfig(viewConfigProvider())\n : viewConfig;\n\n if (strict) {\n const validationOutput = StaticViewConfigValidator.validate(\n name,\n nativeViewConfig,\n staticViewConfig,\n );\n\n if (validationOutput.type === 'invalid') {\n console.error(\n StaticViewConfigValidator.stringifyValidationResult(\n name,\n validationOutput,\n ),\n );\n }\n } else {\n verifyComponentAttributeEquivalence(nativeViewConfig, staticViewConfig);\n }\n }\n\n return viewConfig;\n });\n\n // $FlowFixMe[incompatible-return] `NativeComponent` is actually string!\n return name;\n}\n\n/**\n * Same as `NativeComponentRegistry.get(...)`, except this will check either\n * the `setRuntimeConfigProvider` configuration or use native reflection (slow)\n * to determine whether this native component is available.\n *\n * If the native component is not available, a stub component is returned. Note\n * that the return value of this is not `HostComponent` because the returned\n * component instance is not guaranteed to have native methods.\n */\nexport function getWithFallback_DEPRECATED(\n name: string,\n viewConfigProvider: () => PartialViewConfig,\n): React.AbstractComponent {\n if (getRuntimeConfig == null) {\n // `getRuntimeConfig == null` when static view configs are disabled\n // If `setRuntimeConfigProvider` is not configured, use native reflection.\n if (hasNativeViewConfig(name)) {\n return get(name, viewConfigProvider);\n }\n } else {\n // If there is no runtime config, then the native component is unavailable.\n if (getRuntimeConfig(name) != null) {\n return get(name, viewConfigProvider);\n }\n }\n\n const FallbackNativeComponent = function (props: Config): React.Node {\n return null;\n };\n FallbackNativeComponent.displayName = `Fallback(${name})`;\n return FallbackNativeComponent;\n}\n\nfunction hasNativeViewConfig(name: string): boolean {\n invariant(getRuntimeConfig == null, 'Unexpected invocation!');\n return UIManager.getViewManagerConfig(name) != null;\n}\n\n/**\n * Unstable API. Do not use!\n *\n * This method returns if there is a StaticViewConfig registered for the\n * component name received as a parameter.\n */\nexport function unstable_hasStaticViewConfig(name: string): boolean {\n const {native} = getRuntimeConfig?.(name) ?? {\n native: true,\n };\n return !native;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nconst ReactNativeStyleAttributes = require('../Components/View/ReactNativeStyleAttributes');\nconst resolveAssetSource = require('../Image/resolveAssetSource');\nconst processColor = require('../StyleSheet/processColor').default;\nconst processColorArray = require('../StyleSheet/processColorArray');\nconst insetsDiffer = require('../Utilities/differ/insetsDiffer');\nconst matricesDiffer = require('../Utilities/differ/matricesDiffer');\nconst pointsDiffer = require('../Utilities/differ/pointsDiffer');\nconst sizesDiffer = require('../Utilities/differ/sizesDiffer');\nconst UIManager = require('./UIManager');\nconst invariant = require('invariant');\n\nfunction getNativeComponentAttributes(uiViewClassName: string): any {\n const viewConfig = UIManager.getViewManagerConfig(uiViewClassName);\n\n invariant(\n viewConfig != null && viewConfig.NativeProps != null,\n 'requireNativeComponent: \"%s\" was not found in the UIManager.',\n uiViewClassName,\n );\n\n // TODO: This seems like a whole lot of runtime initialization for every\n // native component that can be either avoided or simplified.\n let {baseModuleName, bubblingEventTypes, directEventTypes} = viewConfig;\n let nativeProps = viewConfig.NativeProps;\n\n bubblingEventTypes = bubblingEventTypes ?? {};\n directEventTypes = directEventTypes ?? {};\n\n while (baseModuleName) {\n const baseModule = UIManager.getViewManagerConfig(baseModuleName);\n if (!baseModule) {\n baseModuleName = null;\n } else {\n bubblingEventTypes = {\n ...baseModule.bubblingEventTypes,\n ...bubblingEventTypes,\n };\n directEventTypes = {\n ...baseModule.directEventTypes,\n ...directEventTypes,\n };\n nativeProps = {\n ...baseModule.NativeProps,\n ...nativeProps,\n };\n baseModuleName = baseModule.baseModuleName;\n }\n }\n\n const validAttributes: {[string]: mixed} = {};\n\n for (const key in nativeProps) {\n const typeName = nativeProps[key];\n const diff = getDifferForType(typeName);\n const process = getProcessorForType(typeName);\n\n // If diff or process == null, omit the corresponding property from the Attribute\n // Why:\n // 1. Consistency with AttributeType flow type\n // 2. Consistency with Static View Configs, which omit the null properties\n validAttributes[key] =\n diff == null\n ? process == null\n ? true\n : {process}\n : process == null\n ? {diff}\n : {diff, process};\n }\n\n // Unfortunately, the current setup declares style properties as top-level\n // props. This makes it so we allow style properties in the `style` prop.\n // TODO: Move style properties into a `style` prop and disallow them as\n // top-level props on the native side.\n validAttributes.style = ReactNativeStyleAttributes;\n\n Object.assign(viewConfig, {\n uiViewClassName,\n validAttributes,\n bubblingEventTypes,\n directEventTypes,\n });\n\n attachDefaultEventTypes(viewConfig);\n\n return viewConfig;\n}\n\nfunction attachDefaultEventTypes(viewConfig: any) {\n // This is supported on UIManager platforms (ex: Android),\n // as lazy view managers are not implemented for all platforms.\n // See [UIManager] for details on constants and implementations.\n const constants = UIManager.getConstants();\n if (constants.ViewManagerNames || constants.LazyViewManagersEnabled) {\n // Lazy view managers enabled.\n viewConfig = merge(viewConfig, UIManager.getDefaultEventTypes());\n } else {\n viewConfig.bubblingEventTypes = merge(\n viewConfig.bubblingEventTypes,\n constants.genericBubblingEventTypes,\n );\n viewConfig.directEventTypes = merge(\n viewConfig.directEventTypes,\n constants.genericDirectEventTypes,\n );\n }\n}\n\n// TODO: Figure out how to avoid all this runtime initialization cost.\nfunction merge(destination: ?Object, source: ?Object): ?Object {\n if (!source) {\n return destination;\n }\n if (!destination) {\n return source;\n }\n\n for (const key in source) {\n if (!source.hasOwnProperty(key)) {\n continue;\n }\n\n let sourceValue = source[key];\n if (destination.hasOwnProperty(key)) {\n const destinationValue = destination[key];\n if (\n typeof sourceValue === 'object' &&\n typeof destinationValue === 'object'\n ) {\n sourceValue = merge(destinationValue, sourceValue);\n }\n }\n destination[key] = sourceValue;\n }\n return destination;\n}\n\nfunction getDifferForType(\n typeName: string,\n): ?(prevProp: any, nextProp: any) => boolean {\n switch (typeName) {\n // iOS Types\n case 'CATransform3D':\n return matricesDiffer;\n case 'CGPoint':\n return pointsDiffer;\n case 'CGSize':\n return sizesDiffer;\n case 'UIEdgeInsets':\n return insetsDiffer;\n // Android Types\n case 'Point':\n return pointsDiffer;\n case 'EdgeInsets':\n return insetsDiffer;\n }\n return null;\n}\n\nfunction getProcessorForType(typeName: string): ?(nextProp: any) => any {\n switch (typeName) {\n // iOS Types\n case 'CGColor':\n case 'UIColor':\n return processColor;\n case 'CGColorArray':\n case 'UIColorArray':\n return processColorArray;\n case 'CGImage':\n case 'UIImage':\n case 'RCTImageSource':\n return resolveAssetSource;\n // Android Types\n case 'Color':\n return processColor;\n case 'ColorArray':\n return processColorArray;\n case 'ImageSource':\n return resolveAssetSource;\n }\n return null;\n}\n\nmodule.exports = getNativeComponentAttributes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format strict-local\n * @flow\n */\n\nimport type {AnyAttributeType} from '../../Renderer/shims/ReactNativeTypes';\n\nimport processAspectRatio from '../../StyleSheet/processAspectRatio';\nimport processColor from '../../StyleSheet/processColor';\nimport processFontVariant from '../../StyleSheet/processFontVariant';\nimport processTransform from '../../StyleSheet/processTransform';\nimport sizesDiffer from '../../Utilities/differ/sizesDiffer';\n\nconst colorAttributes = {process: processColor};\n\nconst ReactNativeStyleAttributes: {[string]: AnyAttributeType, ...} = {\n /**\n * Layout\n */\n alignContent: true,\n alignItems: true,\n alignSelf: true,\n aspectRatio: {process: processAspectRatio},\n borderBottomWidth: true,\n borderEndWidth: true,\n borderLeftWidth: true,\n borderRightWidth: true,\n borderStartWidth: true,\n borderTopWidth: true,\n columnGap: true,\n borderWidth: true,\n bottom: true,\n direction: true,\n display: true,\n end: true,\n flex: true,\n flexBasis: true,\n flexDirection: true,\n flexGrow: true,\n flexShrink: true,\n flexWrap: true,\n gap: true,\n height: true,\n justifyContent: true,\n left: true,\n margin: true,\n marginBlock: true,\n marginBlockEnd: true,\n marginBlockStart: true,\n marginBottom: true,\n marginEnd: true,\n marginHorizontal: true,\n marginInline: true,\n marginInlineEnd: true,\n marginInlineStart: true,\n marginLeft: true,\n marginRight: true,\n marginStart: true,\n marginTop: true,\n marginVertical: true,\n maxHeight: true,\n maxWidth: true,\n minHeight: true,\n minWidth: true,\n overflow: true,\n padding: true,\n paddingBlock: true,\n paddingBlockEnd: true,\n paddingBlockStart: true,\n paddingBottom: true,\n paddingEnd: true,\n paddingHorizontal: true,\n paddingInline: true,\n paddingInlineEnd: true,\n paddingInlineStart: true,\n paddingLeft: true,\n paddingRight: true,\n paddingStart: true,\n paddingTop: true,\n paddingVertical: true,\n position: true,\n right: true,\n rowGap: true,\n start: true,\n top: true,\n width: true,\n zIndex: true,\n\n /**\n * Shadow\n */\n elevation: true,\n shadowColor: colorAttributes,\n shadowOffset: {diff: sizesDiffer},\n shadowOpacity: true,\n shadowRadius: true,\n\n /**\n * Transform\n */\n transform: {process: processTransform},\n\n /**\n * View\n */\n backfaceVisibility: true,\n backgroundColor: colorAttributes,\n borderBlockColor: colorAttributes,\n borderBlockEndColor: colorAttributes,\n borderBlockStartColor: colorAttributes,\n borderBottomColor: colorAttributes,\n borderBottomEndRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderBottomStartRadius: true,\n borderColor: colorAttributes,\n borderCurve: true,\n borderEndColor: colorAttributes,\n borderEndEndRadius: true,\n borderEndStartRadius: true,\n borderLeftColor: colorAttributes,\n borderRadius: true,\n borderRightColor: colorAttributes,\n borderStartColor: colorAttributes,\n borderStartEndRadius: true,\n borderStartStartRadius: true,\n borderStyle: true,\n borderTopColor: colorAttributes,\n borderTopEndRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderTopStartRadius: true,\n opacity: true,\n pointerEvents: true,\n\n /**\n * Text\n */\n color: colorAttributes,\n fontFamily: true,\n fontSize: true,\n fontStyle: true,\n fontVariant: {process: processFontVariant},\n fontWeight: true,\n includeFontPadding: true,\n letterSpacing: true,\n lineHeight: true,\n textAlign: true,\n textAlignVertical: true,\n textDecorationColor: colorAttributes,\n textDecorationLine: true,\n textDecorationStyle: true,\n textShadowColor: colorAttributes,\n textShadowOffset: true,\n textShadowRadius: true,\n textTransform: true,\n userSelect: true,\n verticalAlign: true,\n writingDirection: true,\n\n /**\n * Image\n */\n overlayColor: colorAttributes,\n resizeMode: true,\n tintColor: colorAttributes,\n objectFit: true,\n};\n\nmodule.exports = ReactNativeStyleAttributes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nconst invariant = require('invariant');\n\nfunction processAspectRatio(aspectRatio?: number | string): ?number {\n if (typeof aspectRatio === 'number') {\n return aspectRatio;\n }\n if (typeof aspectRatio !== 'string') {\n if (__DEV__) {\n invariant(\n !aspectRatio,\n 'aspectRatio must either be a number, a ratio string or `auto`. You passed: %s',\n aspectRatio,\n );\n }\n return;\n }\n\n const matches = aspectRatio.split('/').map(s => s.trim());\n\n if (matches.includes('auto')) {\n if (__DEV__) {\n invariant(\n matches.length,\n 'aspectRatio does not support `auto `. You passed: %s',\n aspectRatio,\n );\n }\n return;\n }\n\n const hasNonNumericValues = matches.some(n => Number.isNaN(Number(n)));\n if (__DEV__) {\n invariant(\n !hasNonNumericValues && (matches.length === 1 || matches.length === 2),\n 'aspectRatio must either be a number, a ratio string or `auto`. You passed: %s',\n aspectRatio,\n );\n }\n\n if (hasNonNumericValues) {\n return;\n }\n\n if (matches.length === 2) {\n return Number(matches[0]) / Number(matches[1]);\n }\n\n return Number(matches[0]);\n}\n\nmodule.exports = processAspectRatio;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n'use strict';\n\nimport type {NativeColorValue} from './PlatformColorValueTypes';\nimport type {ColorValue} from './StyleSheet';\n\nconst Platform = require('../Utilities/Platform');\nconst normalizeColor = require('./normalizeColor');\n\nexport type ProcessedColorValue = number | NativeColorValue;\n\n/* eslint no-bitwise: 0 */\nfunction processColor(color?: ?(number | ColorValue)): ?ProcessedColorValue {\n if (color === undefined || color === null) {\n return color;\n }\n\n let normalizedColor = normalizeColor(color);\n if (normalizedColor === null || normalizedColor === undefined) {\n return undefined;\n }\n\n if (typeof normalizedColor === 'object') {\n const processColorObject =\n require('./PlatformColorValueTypes').processColorObject;\n\n const processedColorObj = processColorObject(normalizedColor);\n\n if (processedColorObj != null) {\n return processedColorObj;\n }\n }\n\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n\n // Converts 0xrrggbbaa into 0xaarrggbb\n normalizedColor = ((normalizedColor << 24) | (normalizedColor >>> 8)) >>> 0;\n\n if (Platform.OS === 'android') {\n // Android use 32 bit *signed* integer to represent the color\n // We utilize the fact that bitwise operations in JS also operates on\n // signed 32 bit integers, so that we can use those to convert from\n // *unsigned* to *signed* 32bit int that way.\n normalizedColor = normalizedColor | 0x0;\n }\n return normalizedColor;\n}\n\nexport default processColor;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n/* eslint no-bitwise: 0 */\n\nimport type {ProcessedColorValue} from './processColor';\nimport type {ColorValue} from './StyleSheet';\n\nimport _normalizeColor from '@react-native/normalize-colors';\n\nfunction normalizeColor(\n color: ?(ColorValue | ProcessedColorValue),\n): ?ProcessedColorValue {\n if (typeof color === 'object' && color != null) {\n const {normalizeColorObject} = require('./PlatformColorValueTypes');\n const normalizedColor = normalizeColorObject(color);\n if (normalizedColor != null) {\n return normalizedColor;\n }\n }\n\n if (typeof color === 'string' || typeof color === 'number') {\n return _normalizeColor(color);\n }\n}\n\nmodule.exports = normalizeColor;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @noflow\n */\n\n/* eslint no-bitwise: 0 */\n\n'use strict';\n\nfunction normalizeColor(color) {\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color;\n }\n return null;\n }\n\n if (typeof color !== 'string') {\n return null;\n }\n\n const matchers = getMatchers();\n let match;\n\n // Ordered based on occurrences on Facebook codebase\n if ((match = matchers.hex6.exec(color))) {\n return parseInt(match[1] + 'ff', 16) >>> 0;\n }\n\n const colorFromKeyword = normalizeKeyword(color);\n if (colorFromKeyword != null) {\n return colorFromKeyword;\n }\n\n if ((match = matchers.rgb.exec(color))) {\n return (\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) | // b\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers.rgba.exec(color))) {\n // rgba(R G B / A) notation\n if (match[6] !== undefined) {\n return (\n ((parse255(match[6]) << 24) | // r\n (parse255(match[7]) << 16) | // g\n (parse255(match[8]) << 8) | // b\n parse1(match[9])) >>> // a\n 0\n );\n }\n\n // rgba(R, G, B, A) notation\n return (\n ((parse255(match[2]) << 24) | // r\n (parse255(match[3]) << 16) | // g\n (parse255(match[4]) << 8) | // b\n parse1(match[5])) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hex3.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n 'ff', // a\n 16,\n ) >>> 0\n );\n }\n\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = matchers.hex8.exec(color))) {\n return parseInt(match[1], 16) >>> 0;\n }\n\n if ((match = matchers.hex4.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n match[4] +\n match[4], // a\n 16,\n ) >>> 0\n );\n }\n\n if ((match = matchers.hsl.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]), // l\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hsla.exec(color))) {\n // hsla(H S L / A) notation\n if (match[6] !== undefined) {\n return (\n (hslToRgb(\n parse360(match[6]), // h\n parsePercentage(match[7]), // s\n parsePercentage(match[8]), // l\n ) |\n parse1(match[9])) >>> // a\n 0\n );\n }\n\n // hsla(H, S, L, A) notation\n return (\n (hslToRgb(\n parse360(match[2]), // h\n parsePercentage(match[3]), // s\n parsePercentage(match[4]), // l\n ) |\n parse1(match[5])) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hwb.exec(color))) {\n return (\n (hwbToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // w\n parsePercentage(match[3]), // b\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n return null;\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n\nfunction hslToRgb(h, s, l) {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n\n return (\n (Math.round(r * 255) << 24) |\n (Math.round(g * 255) << 16) |\n (Math.round(b * 255) << 8)\n );\n}\n\nfunction hwbToRgb(h, w, b) {\n if (w + b >= 1) {\n const gray = Math.round((w * 255) / (w + b));\n\n return (gray << 24) | (gray << 16) | (gray << 8);\n }\n\n const red = hue2rgb(0, 1, h + 1 / 3) * (1 - w - b) + w;\n const green = hue2rgb(0, 1, h) * (1 - w - b) + w;\n const blue = hue2rgb(0, 1, h - 1 / 3) * (1 - w - b) + w;\n\n return (\n (Math.round(red * 255) << 24) |\n (Math.round(green * 255) << 16) |\n (Math.round(blue * 255) << 8)\n );\n}\n\nconst NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nconst PERCENTAGE = NUMBER + '%';\n\nfunction call(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,?\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nfunction callWithSlashSeparator(...args) {\n return (\n '\\\\(\\\\s*(' +\n args.slice(0, args.length - 1).join(')\\\\s*,?\\\\s*(') +\n ')\\\\s*/\\\\s*(' +\n args[args.length - 1] +\n ')\\\\s*\\\\)'\n );\n}\n\nfunction commaSeparatedCall(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nlet cachedMatchers;\n\nfunction getMatchers() {\n if (cachedMatchers === undefined) {\n cachedMatchers = {\n rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)),\n rgba: new RegExp(\n 'rgba(' +\n commaSeparatedCall(NUMBER, NUMBER, NUMBER, NUMBER) +\n '|' +\n callWithSlashSeparator(NUMBER, NUMBER, NUMBER, NUMBER) +\n ')',\n ),\n hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hsla: new RegExp(\n 'hsla(' +\n commaSeparatedCall(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +\n '|' +\n callWithSlashSeparator(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +\n ')',\n ),\n hwb: new RegExp('hwb' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#([0-9a-fA-F]{6})$/,\n hex8: /^#([0-9a-fA-F]{8})$/,\n };\n }\n return cachedMatchers;\n}\n\nfunction parse255(str) {\n const int = parseInt(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 255) {\n return 255;\n }\n return int;\n}\n\nfunction parse360(str) {\n const int = parseFloat(str);\n return (((int % 360) + 360) % 360) / 360;\n}\n\nfunction parse1(str) {\n const num = parseFloat(str);\n if (num < 0) {\n return 0;\n }\n if (num > 1) {\n return 255;\n }\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n // parseFloat conveniently ignores the final %\n const int = parseFloat(str);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\n\nfunction normalizeKeyword(name) {\n // prettier-ignore\n switch (name) {\n case 'transparent': return 0x00000000;\n // http://www.w3.org/TR/css3-color/#svg-color\n case 'aliceblue': return 0xf0f8ffff;\n case 'antiquewhite': return 0xfaebd7ff;\n case 'aqua': return 0x00ffffff;\n case 'aquamarine': return 0x7fffd4ff;\n case 'azure': return 0xf0ffffff;\n case 'beige': return 0xf5f5dcff;\n case 'bisque': return 0xffe4c4ff;\n case 'black': return 0x000000ff;\n case 'blanchedalmond': return 0xffebcdff;\n case 'blue': return 0x0000ffff;\n case 'blueviolet': return 0x8a2be2ff;\n case 'brown': return 0xa52a2aff;\n case 'burlywood': return 0xdeb887ff;\n case 'burntsienna': return 0xea7e5dff;\n case 'cadetblue': return 0x5f9ea0ff;\n case 'chartreuse': return 0x7fff00ff;\n case 'chocolate': return 0xd2691eff;\n case 'coral': return 0xff7f50ff;\n case 'cornflowerblue': return 0x6495edff;\n case 'cornsilk': return 0xfff8dcff;\n case 'crimson': return 0xdc143cff;\n case 'cyan': return 0x00ffffff;\n case 'darkblue': return 0x00008bff;\n case 'darkcyan': return 0x008b8bff;\n case 'darkgoldenrod': return 0xb8860bff;\n case 'darkgray': return 0xa9a9a9ff;\n case 'darkgreen': return 0x006400ff;\n case 'darkgrey': return 0xa9a9a9ff;\n case 'darkkhaki': return 0xbdb76bff;\n case 'darkmagenta': return 0x8b008bff;\n case 'darkolivegreen': return 0x556b2fff;\n case 'darkorange': return 0xff8c00ff;\n case 'darkorchid': return 0x9932ccff;\n case 'darkred': return 0x8b0000ff;\n case 'darksalmon': return 0xe9967aff;\n case 'darkseagreen': return 0x8fbc8fff;\n case 'darkslateblue': return 0x483d8bff;\n case 'darkslategray': return 0x2f4f4fff;\n case 'darkslategrey': return 0x2f4f4fff;\n case 'darkturquoise': return 0x00ced1ff;\n case 'darkviolet': return 0x9400d3ff;\n case 'deeppink': return 0xff1493ff;\n case 'deepskyblue': return 0x00bfffff;\n case 'dimgray': return 0x696969ff;\n case 'dimgrey': return 0x696969ff;\n case 'dodgerblue': return 0x1e90ffff;\n case 'firebrick': return 0xb22222ff;\n case 'floralwhite': return 0xfffaf0ff;\n case 'forestgreen': return 0x228b22ff;\n case 'fuchsia': return 0xff00ffff;\n case 'gainsboro': return 0xdcdcdcff;\n case 'ghostwhite': return 0xf8f8ffff;\n case 'gold': return 0xffd700ff;\n case 'goldenrod': return 0xdaa520ff;\n case 'gray': return 0x808080ff;\n case 'green': return 0x008000ff;\n case 'greenyellow': return 0xadff2fff;\n case 'grey': return 0x808080ff;\n case 'honeydew': return 0xf0fff0ff;\n case 'hotpink': return 0xff69b4ff;\n case 'indianred': return 0xcd5c5cff;\n case 'indigo': return 0x4b0082ff;\n case 'ivory': return 0xfffff0ff;\n case 'khaki': return 0xf0e68cff;\n case 'lavender': return 0xe6e6faff;\n case 'lavenderblush': return 0xfff0f5ff;\n case 'lawngreen': return 0x7cfc00ff;\n case 'lemonchiffon': return 0xfffacdff;\n case 'lightblue': return 0xadd8e6ff;\n case 'lightcoral': return 0xf08080ff;\n case 'lightcyan': return 0xe0ffffff;\n case 'lightgoldenrodyellow': return 0xfafad2ff;\n case 'lightgray': return 0xd3d3d3ff;\n case 'lightgreen': return 0x90ee90ff;\n case 'lightgrey': return 0xd3d3d3ff;\n case 'lightpink': return 0xffb6c1ff;\n case 'lightsalmon': return 0xffa07aff;\n case 'lightseagreen': return 0x20b2aaff;\n case 'lightskyblue': return 0x87cefaff;\n case 'lightslategray': return 0x778899ff;\n case 'lightslategrey': return 0x778899ff;\n case 'lightsteelblue': return 0xb0c4deff;\n case 'lightyellow': return 0xffffe0ff;\n case 'lime': return 0x00ff00ff;\n case 'limegreen': return 0x32cd32ff;\n case 'linen': return 0xfaf0e6ff;\n case 'magenta': return 0xff00ffff;\n case 'maroon': return 0x800000ff;\n case 'mediumaquamarine': return 0x66cdaaff;\n case 'mediumblue': return 0x0000cdff;\n case 'mediumorchid': return 0xba55d3ff;\n case 'mediumpurple': return 0x9370dbff;\n case 'mediumseagreen': return 0x3cb371ff;\n case 'mediumslateblue': return 0x7b68eeff;\n case 'mediumspringgreen': return 0x00fa9aff;\n case 'mediumturquoise': return 0x48d1ccff;\n case 'mediumvioletred': return 0xc71585ff;\n case 'midnightblue': return 0x191970ff;\n case 'mintcream': return 0xf5fffaff;\n case 'mistyrose': return 0xffe4e1ff;\n case 'moccasin': return 0xffe4b5ff;\n case 'navajowhite': return 0xffdeadff;\n case 'navy': return 0x000080ff;\n case 'oldlace': return 0xfdf5e6ff;\n case 'olive': return 0x808000ff;\n case 'olivedrab': return 0x6b8e23ff;\n case 'orange': return 0xffa500ff;\n case 'orangered': return 0xff4500ff;\n case 'orchid': return 0xda70d6ff;\n case 'palegoldenrod': return 0xeee8aaff;\n case 'palegreen': return 0x98fb98ff;\n case 'paleturquoise': return 0xafeeeeff;\n case 'palevioletred': return 0xdb7093ff;\n case 'papayawhip': return 0xffefd5ff;\n case 'peachpuff': return 0xffdab9ff;\n case 'peru': return 0xcd853fff;\n case 'pink': return 0xffc0cbff;\n case 'plum': return 0xdda0ddff;\n case 'powderblue': return 0xb0e0e6ff;\n case 'purple': return 0x800080ff;\n case 'rebeccapurple': return 0x663399ff;\n case 'red': return 0xff0000ff;\n case 'rosybrown': return 0xbc8f8fff;\n case 'royalblue': return 0x4169e1ff;\n case 'saddlebrown': return 0x8b4513ff;\n case 'salmon': return 0xfa8072ff;\n case 'sandybrown': return 0xf4a460ff;\n case 'seagreen': return 0x2e8b57ff;\n case 'seashell': return 0xfff5eeff;\n case 'sienna': return 0xa0522dff;\n case 'silver': return 0xc0c0c0ff;\n case 'skyblue': return 0x87ceebff;\n case 'slateblue': return 0x6a5acdff;\n case 'slategray': return 0x708090ff;\n case 'slategrey': return 0x708090ff;\n case 'snow': return 0xfffafaff;\n case 'springgreen': return 0x00ff7fff;\n case 'steelblue': return 0x4682b4ff;\n case 'tan': return 0xd2b48cff;\n case 'teal': return 0x008080ff;\n case 'thistle': return 0xd8bfd8ff;\n case 'tomato': return 0xff6347ff;\n case 'turquoise': return 0x40e0d0ff;\n case 'violet': return 0xee82eeff;\n case 'wheat': return 0xf5deb3ff;\n case 'white': return 0xffffffff;\n case 'whitesmoke': return 0xf5f5f5ff;\n case 'yellow': return 0xffff00ff;\n case 'yellowgreen': return 0x9acd32ff;\n }\n return null;\n}\n\nmodule.exports = normalizeColor;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {ProcessedColorValue} from './processColor';\nimport type {ColorValue} from './StyleSheet';\n\nexport opaque type NativeColorValue = {\n resource_paths?: Array,\n};\n\nexport const PlatformColor = (...names: Array): ColorValue => {\n return {resource_paths: names};\n};\n\nexport const normalizeColorObject = (\n color: NativeColorValue,\n): ?ProcessedColorValue => {\n if ('resource_paths' in color) {\n return color;\n }\n return null;\n};\n\nexport const processColorObject = (\n color: NativeColorValue,\n): ?NativeColorValue => {\n return color;\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nimport type {____FontVariantArray_Internal} from './StyleSheetTypes';\n\nfunction processFontVariant(\n fontVariant: ____FontVariantArray_Internal | string,\n): ?____FontVariantArray_Internal {\n if (Array.isArray(fontVariant)) {\n return fontVariant;\n }\n\n // $FlowFixMe[incompatible-type]\n const match: ?____FontVariantArray_Internal = fontVariant\n .split(' ')\n .filter(Boolean);\n\n return match;\n}\n\nmodule.exports = processFontVariant;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nconst stringifySafe = require('../Utilities/stringifySafe').default;\nconst invariant = require('invariant');\n\n/**\n * Generate a transform matrix based on the provided transforms, and use that\n * within the style object instead.\n *\n * This allows us to provide an API that is similar to CSS, where transforms may\n * be applied in an arbitrary order, and yet have a universal, singular\n * interface to native code.\n */\nfunction processTransform(\n transform: Array | string,\n): Array | Array {\n if (typeof transform === 'string') {\n const regex = new RegExp(/(\\w+)\\(([^)]+)\\)/g);\n let transformArray: Array = [];\n let matches;\n\n while ((matches = regex.exec(transform))) {\n const {key, value} = _getKeyAndValueFromCSSTransform(\n matches[1],\n matches[2],\n );\n\n if (value !== undefined) {\n transformArray.push({[key]: value});\n }\n }\n transform = transformArray;\n }\n\n if (__DEV__) {\n _validateTransforms(transform);\n }\n\n return transform;\n}\n\nconst _getKeyAndValueFromCSSTransform: (\n key:\n | string\n | $TEMPORARY$string<'matrix'>\n | $TEMPORARY$string<'perspective'>\n | $TEMPORARY$string<'rotate'>\n | $TEMPORARY$string<'rotateX'>\n | $TEMPORARY$string<'rotateY'>\n | $TEMPORARY$string<'rotateZ'>\n | $TEMPORARY$string<'scale'>\n | $TEMPORARY$string<'scaleX'>\n | $TEMPORARY$string<'scaleY'>\n | $TEMPORARY$string<'skewX'>\n | $TEMPORARY$string<'skewY'>\n | $TEMPORARY$string<'translate'>\n | $TEMPORARY$string<'translate3d'>\n | $TEMPORARY$string<'translateX'>\n | $TEMPORARY$string<'translateY'>,\n args: string,\n) => {key: string, value?: number[] | number | string} = (key, args) => {\n const argsWithUnitsRegex = new RegExp(/([+-]?\\d+(\\.\\d+)?)([a-zA-Z]+)?/g);\n\n switch (key) {\n case 'matrix':\n return {key, value: args.match(/[+-]?\\d+(\\.\\d+)?/g)?.map(Number)};\n case 'translate':\n case 'translate3d':\n const parsedArgs = [];\n let missingUnitOfMeasurement = false;\n\n let matches;\n while ((matches = argsWithUnitsRegex.exec(args))) {\n const value = Number(matches[1]);\n const unitOfMeasurement = matches[3];\n\n if (value !== 0 && !unitOfMeasurement) {\n missingUnitOfMeasurement = true;\n }\n\n parsedArgs.push(value);\n }\n\n if (__DEV__) {\n invariant(\n !missingUnitOfMeasurement,\n `Transform with key ${key} must have units unless the provided value is 0, found %s`,\n `${key}(${args})`,\n );\n\n if (key === 'translate') {\n invariant(\n parsedArgs?.length === 1 || parsedArgs?.length === 2,\n 'Transform with key translate must be an string with 1 or 2 parameters, found %s: %s',\n parsedArgs?.length,\n `${key}(${args})`,\n );\n } else {\n invariant(\n parsedArgs?.length === 3,\n 'Transform with key translate3d must be an string with 3 parameters, found %s: %s',\n parsedArgs?.length,\n `${key}(${args})`,\n );\n }\n }\n\n if (parsedArgs?.length === 1) {\n parsedArgs.push(0);\n }\n\n return {key: 'translate', value: parsedArgs};\n case 'translateX':\n case 'translateY':\n case 'perspective':\n const argMatches = argsWithUnitsRegex.exec(args);\n\n if (!argMatches?.length) {\n return {key, value: undefined};\n }\n\n const value = Number(argMatches[1]);\n const unitOfMeasurement = argMatches[3];\n\n if (__DEV__) {\n invariant(\n value === 0 || unitOfMeasurement,\n `Transform with key ${key} must have units unless the provided value is 0, found %s`,\n `${key}(${args})`,\n );\n }\n\n return {key, value};\n\n default:\n return {key, value: !isNaN(args) ? Number(args) : args};\n }\n};\n\nfunction _validateTransforms(transform: Array): void {\n transform.forEach(transformation => {\n const keys = Object.keys(transformation);\n invariant(\n keys.length === 1,\n 'You must specify exactly one property per transform object. Passed properties: %s',\n stringifySafe(transformation),\n );\n const key = keys[0];\n const value = transformation[key];\n _validateTransform(key, value, transformation);\n });\n}\n\nfunction _validateTransform(\n key:\n | string\n | $TEMPORARY$string<'matrix'>\n | $TEMPORARY$string<'perspective'>\n | $TEMPORARY$string<'rotate'>\n | $TEMPORARY$string<'rotateX'>\n | $TEMPORARY$string<'rotateY'>\n | $TEMPORARY$string<'rotateZ'>\n | $TEMPORARY$string<'scale'>\n | $TEMPORARY$string<'scaleX'>\n | $TEMPORARY$string<'scaleY'>\n | $TEMPORARY$string<'skewX'>\n | $TEMPORARY$string<'skewY'>\n | $TEMPORARY$string<'translate'>\n | $TEMPORARY$string<'translateX'>\n | $TEMPORARY$string<'translateY'>,\n value: any | number | string,\n transformation: any,\n) {\n invariant(\n !value.getValue,\n 'You passed an Animated.Value to a normal component. ' +\n 'You need to wrap that component in an Animated. For example, ' +\n 'replace by .',\n );\n\n const multivalueTransforms = ['matrix', 'translate'];\n if (multivalueTransforms.indexOf(key) !== -1) {\n invariant(\n Array.isArray(value),\n 'Transform with key of %s must have an array as the value: %s',\n key,\n stringifySafe(transformation),\n );\n }\n switch (key) {\n case 'matrix':\n invariant(\n value.length === 9 || value.length === 16,\n 'Matrix transform must have a length of 9 (2d) or 16 (3d). ' +\n 'Provided matrix has a length of %s: %s',\n /* $FlowFixMe[prop-missing] (>=0.84.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.84 was deployed. To\n * see the error, delete this comment and run Flow. */\n value.length,\n stringifySafe(transformation),\n );\n break;\n case 'translate':\n invariant(\n value.length === 2 || value.length === 3,\n 'Transform with key translate must be an array of length 2 or 3, found %s: %s',\n /* $FlowFixMe[prop-missing] (>=0.84.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.84 was deployed. To\n * see the error, delete this comment and run Flow. */\n value.length,\n stringifySafe(transformation),\n );\n break;\n case 'rotateX':\n case 'rotateY':\n case 'rotateZ':\n case 'rotate':\n case 'skewX':\n case 'skewY':\n invariant(\n typeof value === 'string',\n 'Transform with key of \"%s\" must be a string: %s',\n key,\n stringifySafe(transformation),\n );\n invariant(\n value.indexOf('deg') > -1 || value.indexOf('rad') > -1,\n 'Rotate transform must be expressed in degrees (deg) or radians ' +\n '(rad): %s',\n stringifySafe(transformation),\n );\n break;\n case 'perspective':\n invariant(\n typeof value === 'number',\n 'Transform with key of \"%s\" must be a number: %s',\n key,\n stringifySafe(transformation),\n );\n invariant(\n value !== 0,\n 'Transform with key of \"%s\" cannot be zero: %s',\n key,\n stringifySafe(transformation),\n );\n break;\n case 'translateX':\n case 'translateY':\n case 'scale':\n case 'scaleX':\n case 'scaleY':\n invariant(\n typeof value === 'number',\n 'Transform with key of \"%s\" must be a number: %s',\n key,\n stringifySafe(transformation),\n );\n break;\n default:\n invariant(\n false,\n 'Invalid transform %s: %s',\n key,\n stringifySafe(transformation),\n );\n }\n}\n\nmodule.exports = processTransform;\n","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nconst dummySize = {width: undefined, height: undefined};\ntype Size = {width: ?number, height: ?number};\n\nconst sizesDiffer = function (one: Size, two: Size): boolean {\n const defaultedOne = one || dummySize;\n const defaultedTwo = two || dummySize;\n return (\n defaultedOne !== defaultedTwo &&\n (defaultedOne.width !== defaultedTwo.width ||\n defaultedOne.height !== defaultedTwo.height)\n );\n};\n\nmodule.exports = sizesDiffer;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\n/**\n * Unrolls an array comparison specially for matrices. Prioritizes\n * checking of indices that are most likely to change so that the comparison\n * bails as early as possible.\n *\n * @param {MatrixMath.Matrix} one First matrix.\n * @param {MatrixMath.Matrix} two Second matrix.\n * @return {boolean} Whether or not the two matrices differ.\n */\nconst matricesDiffer = function (\n one: ?Array,\n two: ?Array,\n): boolean {\n if (one === two) {\n return false;\n }\n return (\n !one ||\n !two ||\n one[12] !== two[12] ||\n one[13] !== two[13] ||\n one[14] !== two[14] ||\n one[5] !== two[5] ||\n one[10] !== two[10] ||\n one[0] !== two[0] ||\n one[1] !== two[1] ||\n one[2] !== two[2] ||\n one[3] !== two[3] ||\n one[4] !== two[4] ||\n one[6] !== two[6] ||\n one[7] !== two[7] ||\n one[8] !== two[8] ||\n one[9] !== two[9] ||\n one[11] !== two[11] ||\n one[15] !== two[15]\n );\n};\n\nmodule.exports = matricesDiffer;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\ntype Point = {\n x: ?number,\n y: ?number,\n ...\n};\n\nconst dummyPoint = {x: undefined, y: undefined};\n\nconst pointsDiffer = function (one: ?Point, two: ?Point): boolean {\n one = one || dummyPoint;\n two = two || dummyPoint;\n return one !== two && (one.x !== two.x || one.y !== two.y);\n};\n\nmodule.exports = pointsDiffer;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\ntype Inset = {\n top: ?number,\n left: ?number,\n right: ?number,\n bottom: ?number,\n ...\n};\n\nconst dummyInsets = {\n top: undefined,\n left: undefined,\n right: undefined,\n bottom: undefined,\n};\n\nconst insetsDiffer = function (one: Inset, two: Inset): boolean {\n one = one || dummyInsets;\n two = two || dummyInsets;\n return (\n one !== two &&\n (one.top !== two.top ||\n one.left !== two.left ||\n one.right !== two.right ||\n one.bottom !== two.bottom)\n );\n};\n\nmodule.exports = insetsDiffer;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n'use strict';\n\nimport type {ColorValue} from './StyleSheet';\n\nimport processColor, {type ProcessedColorValue} from './processColor';\n\nconst TRANSPARENT = 0; // rgba(0, 0, 0, 0)\n\nfunction processColorArray(\n colors: ?$ReadOnlyArray,\n): ?$ReadOnlyArray {\n return colors == null ? null : colors.map(processColorElement);\n}\n\nfunction processColorElement(color: ColorValue): ProcessedColorValue {\n const value = processColor(color);\n // For invalid colors, fallback to transparent.\n if (value == null) {\n console.error('Invalid value in color array:', color);\n return TRANSPARENT;\n }\n return value;\n}\n\nmodule.exports = processColorArray;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n// Resolves an asset into a `source` for `Image`.\n\n'use strict';\n\nimport type {ResolvedAssetSource} from './AssetSourceResolver';\n\nconst AssetSourceResolver = require('./AssetSourceResolver');\nconst {pickScale} = require('./AssetUtils');\nconst AssetRegistry = require('@react-native/assets-registry/registry');\n\nlet _customSourceTransformer, _serverURL, _scriptURL;\n\nlet _sourceCodeScriptURL: ?string;\nfunction getSourceCodeScriptURL(): ?string {\n if (_sourceCodeScriptURL) {\n return _sourceCodeScriptURL;\n }\n\n let sourceCode =\n global.nativeExtensions && global.nativeExtensions.SourceCode;\n if (!sourceCode) {\n sourceCode = require('../NativeModules/specs/NativeSourceCode').default;\n }\n _sourceCodeScriptURL = sourceCode.getConstants().scriptURL;\n return _sourceCodeScriptURL;\n}\n\nfunction getDevServerURL(): ?string {\n if (_serverURL === undefined) {\n const sourceCodeScriptURL = getSourceCodeScriptURL();\n const match =\n sourceCodeScriptURL && sourceCodeScriptURL.match(/^https?:\\/\\/.*?\\//);\n if (match) {\n // jsBundle was loaded from network\n _serverURL = match[0];\n } else {\n // jsBundle was loaded from file\n _serverURL = null;\n }\n }\n return _serverURL;\n}\n\nfunction _coerceLocalScriptURL(scriptURL: ?string): ?string {\n if (scriptURL) {\n if (scriptURL.startsWith('assets://')) {\n // android: running from within assets, no offline path to use\n return null;\n }\n scriptURL = scriptURL.substring(0, scriptURL.lastIndexOf('/') + 1);\n if (!scriptURL.includes('://')) {\n // Add file protocol in case we have an absolute file path and not a URL.\n // This shouldn't really be necessary. scriptURL should be a URL.\n scriptURL = 'file://' + scriptURL;\n }\n }\n return scriptURL;\n}\n\nfunction getScriptURL(): ?string {\n if (_scriptURL === undefined) {\n _scriptURL = _coerceLocalScriptURL(getSourceCodeScriptURL());\n }\n return _scriptURL;\n}\n\nfunction setCustomSourceTransformer(\n transformer: (resolver: AssetSourceResolver) => ResolvedAssetSource,\n): void {\n _customSourceTransformer = transformer;\n}\n\n/**\n * `source` is either a number (opaque type returned by require('./foo.png'))\n * or an `ImageSource` like { uri: '' }\n */\nfunction resolveAssetSource(source: any): ?ResolvedAssetSource {\n if (typeof source === 'object') {\n return source;\n }\n\n const asset = AssetRegistry.getAssetByID(source);\n if (!asset) {\n return null;\n }\n\n const resolver = new AssetSourceResolver(\n getDevServerURL(),\n getScriptURL(),\n asset,\n );\n if (_customSourceTransformer) {\n return _customSourceTransformer(resolver);\n }\n return resolver.defaultAsset();\n}\n\nresolveAssetSource.pickScale = pickScale;\nresolveAssetSource.setCustomSourceTransformer = setCustomSourceTransformer;\nmodule.exports = resolveAssetSource;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n scriptURL: string,\n |};\n}\n\nconst NativeModule = TurboModuleRegistry.getEnforcing('SourceCode');\nlet constants = null;\n\nconst NativeSourceCode = {\n getConstants(): {|\n scriptURL: string,\n |} {\n if (constants == null) {\n constants = NativeModule.getConstants();\n }\n\n return constants;\n },\n};\n\nexport default NativeSourceCode;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nexport type PackagerAsset = {\n +__packager_asset: boolean,\n +fileSystemLocation: string,\n +httpServerLocation: string,\n +width: ?number,\n +height: ?number,\n +scales: Array,\n +hash: string,\n +name: string,\n +type: string,\n ...\n};\n\nconst assets: Array = [];\n\nfunction registerAsset(asset: PackagerAsset): number {\n // `push` returns new array length, so the first asset will\n // get id 1 (not 0) to make the value truthy\n return assets.push(asset);\n}\n\nfunction getAssetByID(assetId: number): PackagerAsset {\n return assets[assetId - 1];\n}\n\nmodule.exports = {registerAsset, getAssetByID};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nexport type ResolvedAssetSource = {|\n +__packager_asset: boolean,\n +width: ?number,\n +height: ?number,\n +uri: string,\n +scale: number,\n|};\n\nimport type {PackagerAsset} from '@react-native/assets-registry/registry';\n\nconst PixelRatio = require('../Utilities/PixelRatio').default;\nconst Platform = require('../Utilities/Platform');\nconst {pickScale} = require('./AssetUtils');\nconst {\n getAndroidResourceFolderName,\n getAndroidResourceIdentifier,\n getBasePath,\n} = require('@react-native/assets-registry/path-support');\nconst invariant = require('invariant');\n\n/**\n * Returns a path like 'assets/AwesomeModule/icon@2x.png'\n */\nfunction getScaledAssetPath(asset: PackagerAsset): string {\n const scale = pickScale(asset.scales, PixelRatio.get());\n const scaleSuffix = scale === 1 ? '' : '@' + scale + 'x';\n const assetDir = getBasePath(asset);\n return assetDir + '/' + asset.name + scaleSuffix + '.' + asset.type;\n}\n\n/**\n * Returns a path like 'drawable-mdpi/icon.png'\n */\nfunction getAssetPathInDrawableFolder(asset: PackagerAsset): string {\n const scale = pickScale(asset.scales, PixelRatio.get());\n const drawableFolder = getAndroidResourceFolderName(asset, scale);\n const fileName = getAndroidResourceIdentifier(asset);\n return drawableFolder + '/' + fileName + '.' + asset.type;\n}\n\nclass AssetSourceResolver {\n serverUrl: ?string;\n // where the jsbundle is being run from\n jsbundleUrl: ?string;\n // the asset to resolve\n asset: PackagerAsset;\n\n constructor(serverUrl: ?string, jsbundleUrl: ?string, asset: PackagerAsset) {\n this.serverUrl = serverUrl;\n this.jsbundleUrl = jsbundleUrl;\n this.asset = asset;\n }\n\n isLoadedFromServer(): boolean {\n return !!this.serverUrl;\n }\n\n isLoadedFromFileSystem(): boolean {\n return !!(this.jsbundleUrl && this.jsbundleUrl.startsWith('file://'));\n }\n\n defaultAsset(): ResolvedAssetSource {\n if (this.isLoadedFromServer()) {\n return this.assetServerURL();\n }\n\n if (Platform.OS === 'android') {\n return this.isLoadedFromFileSystem()\n ? this.drawableFolderInBundle()\n : this.resourceIdentifierWithoutScale();\n } else {\n return this.scaledAssetURLNearBundle();\n }\n }\n\n /**\n * Returns an absolute URL which can be used to fetch the asset\n * from the devserver\n */\n assetServerURL(): ResolvedAssetSource {\n invariant(!!this.serverUrl, 'need server to load from');\n return this.fromSource(\n this.serverUrl +\n getScaledAssetPath(this.asset) +\n '?platform=' +\n Platform.OS +\n '&hash=' +\n this.asset.hash,\n );\n }\n\n /**\n * Resolves to just the scaled asset filename\n * E.g. 'assets/AwesomeModule/icon@2x.png'\n */\n scaledAssetPath(): ResolvedAssetSource {\n return this.fromSource(getScaledAssetPath(this.asset));\n }\n\n /**\n * Resolves to where the bundle is running from, with a scaled asset filename\n * E.g. 'file:///sdcard/bundle/assets/AwesomeModule/icon@2x.png'\n */\n scaledAssetURLNearBundle(): ResolvedAssetSource {\n const path = this.jsbundleUrl || 'file://';\n return this.fromSource(\n // Assets can have relative paths outside of the project root.\n // When bundling them we replace `../` with `_` to make sure they\n // don't end up outside of the expected assets directory.\n path + getScaledAssetPath(this.asset).replace(/\\.\\.\\//g, '_'),\n );\n }\n\n /**\n * The default location of assets bundled with the app, located by\n * resource identifier\n * The Android resource system picks the correct scale.\n * E.g. 'assets_awesomemodule_icon'\n */\n resourceIdentifierWithoutScale(): ResolvedAssetSource {\n invariant(\n Platform.OS === 'android',\n 'resource identifiers work on Android',\n );\n return this.fromSource(getAndroidResourceIdentifier(this.asset));\n }\n\n /**\n * If the jsbundle is running from a sideload location, this resolves assets\n * relative to its location\n * E.g. 'file:///sdcard/AwesomeModule/drawable-mdpi/icon.png'\n */\n drawableFolderInBundle(): ResolvedAssetSource {\n const path = this.jsbundleUrl || 'file://';\n return this.fromSource(path + getAssetPathInDrawableFolder(this.asset));\n }\n\n fromSource(source: string): ResolvedAssetSource {\n return {\n __packager_asset: true,\n width: this.asset.width,\n height: this.asset.height,\n uri: source,\n scale: pickScale(this.asset.scales, PixelRatio.get()),\n };\n }\n\n static pickScale: (scales: Array, deviceScale?: number) => number =\n pickScale;\n}\n\nmodule.exports = AssetSourceResolver;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport PixelRatio from '../Utilities/PixelRatio';\n\nlet cacheBreaker;\nlet warnIfCacheBreakerUnset = true;\n\nexport function pickScale(scales: Array, deviceScale?: number): number {\n if (deviceScale == null) {\n deviceScale = PixelRatio.get();\n }\n // Packager guarantees that `scales` array is sorted\n for (let i = 0; i < scales.length; i++) {\n if (scales[i] >= deviceScale) {\n return scales[i];\n }\n }\n\n // If nothing matches, device scale is larger than any available\n // scales, so we return the biggest one. Unless the array is empty,\n // in which case we default to 1\n return scales[scales.length - 1] || 1;\n}\n\nexport function setUrlCacheBreaker(appendage: string) {\n cacheBreaker = appendage;\n}\n\nexport function getUrlCacheBreaker(): string {\n if (cacheBreaker == null) {\n if (__DEV__ && warnIfCacheBreakerUnset) {\n warnIfCacheBreakerUnset = false;\n console.warn(\n 'AssetUtils.getUrlCacheBreaker: Cache breaker value is unset',\n );\n }\n return '';\n }\n return cacheBreaker;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n'use strict';\n\nconst Dimensions = require('./Dimensions').default;\n\n/**\n * PixelRatio class gives access to the device pixel density.\n *\n * ## Fetching a correctly sized image\n *\n * You should get a higher resolution image if you are on a high pixel density\n * device. A good rule of thumb is to multiply the size of the image you display\n * by the pixel ratio.\n *\n * ```\n * var image = getImage({\n * width: PixelRatio.getPixelSizeForLayoutSize(200),\n * height: PixelRatio.getPixelSizeForLayoutSize(100),\n * });\n * \n * ```\n *\n * ## Pixel grid snapping\n *\n * In iOS, you can specify positions and dimensions for elements with arbitrary\n * precision, for example 29.674825. But, ultimately the physical display only\n * have a fixed number of pixels, for example 640Γ—960 for iPhone 4 or 750Γ—1334\n * for iPhone 6. iOS tries to be as faithful as possible to the user value by\n * spreading one original pixel into multiple ones to trick the eye. The\n * downside of this technique is that it makes the resulting element look\n * blurry.\n *\n * In practice, we found out that developers do not want this feature and they\n * have to work around it by doing manual rounding in order to avoid having\n * blurry elements. In React Native, we are rounding all the pixels\n * automatically.\n *\n * We have to be careful when to do this rounding. You never want to work with\n * rounded and unrounded values at the same time as you're going to accumulate\n * rounding errors. Having even one rounding error is deadly because a one\n * pixel border may vanish or be twice as big.\n *\n * In React Native, everything in JavaScript and within the layout engine works\n * with arbitrary precision numbers. It's only when we set the position and\n * dimensions of the native element on the main thread that we round. Also,\n * rounding is done relative to the root rather than the parent, again to avoid\n * accumulating rounding errors.\n *\n */\nclass PixelRatio {\n /**\n * Returns the device pixel density. Some examples:\n *\n * - PixelRatio.get() === 1\n * - mdpi Android devices (160 dpi)\n * - PixelRatio.get() === 1.5\n * - hdpi Android devices (240 dpi)\n * - PixelRatio.get() === 2\n * - iPhone 4, 4S\n * - iPhone 5, 5c, 5s\n * - iPhone 6\n * - iPhone 7\n * - iPhone 8\n * - iPhone SE\n * - xhdpi Android devices (320 dpi)\n * - PixelRatio.get() === 3\n * - iPhone 6 Plus\n * - iPhone 7 Plus\n * - iPhone 8 Plus\n * - iPhone X\n * - xxhdpi Android devices (480 dpi)\n * - PixelRatio.get() === 3.5\n * - Nexus 6\n */\n static get(): number {\n return Dimensions.get('window').scale;\n }\n\n /**\n * Returns the scaling factor for font sizes. This is the ratio that is used to calculate the\n * absolute font size, so any elements that heavily depend on that should use this to do\n * calculations.\n *\n * If a font scale is not set, this returns the device pixel ratio.\n *\n * This reflects the user preference set in:\n * - Settings > Display > Font size on Android,\n * - Settings > Display & Brightness > Text Size on iOS.\n */\n static getFontScale(): number {\n return Dimensions.get('window').fontScale || PixelRatio.get();\n }\n\n /**\n * Converts a layout size (dp) to pixel size (px).\n *\n * Guaranteed to return an integer number.\n */\n static getPixelSizeForLayoutSize(layoutSize: number): number {\n return Math.round(layoutSize * PixelRatio.get());\n }\n\n /**\n * Rounds a layout size (dp) to the nearest layout size that corresponds to\n * an integer number of pixels. For example, on a device with a PixelRatio\n * of 3, `PixelRatio.roundToNearestPixel(8.4) = 8.33`, which corresponds to\n * exactly (8.33 * 3) = 25 pixels.\n */\n static roundToNearestPixel(layoutSize: number): number {\n const ratio = PixelRatio.get();\n return Math.round(layoutSize * ratio) / ratio;\n }\n\n // No-op for iOS, but used on the web. Should not be documented.\n static startDetecting() {}\n}\n\nexport default PixelRatio;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter';\nimport EventEmitter, {\n type EventSubscription,\n} from '../vendor/emitter/EventEmitter';\nimport NativeDeviceInfo, {\n type DimensionsPayload,\n type DisplayMetrics,\n type DisplayMetricsAndroid,\n} from './NativeDeviceInfo';\nimport invariant from 'invariant';\n\nconst eventEmitter = new EventEmitter<{\n change: [DimensionsPayload],\n}>();\nlet dimensionsInitialized = false;\nlet dimensions: DimensionsPayload;\n\nclass Dimensions {\n /**\n * NOTE: `useWindowDimensions` is the preferred API for React components.\n *\n * Initial dimensions are set before `runApplication` is called so they should\n * be available before any other require's are run, but may be updated later.\n *\n * Note: Although dimensions are available immediately, they may change (e.g\n * due to device rotation) so any rendering logic or styles that depend on\n * these constants should try to call this function on every render, rather\n * than caching the value (for example, using inline styles rather than\n * setting a value in a `StyleSheet`).\n *\n * Example: `const {height, width} = Dimensions.get('window');`\n *\n * @param {string} dim Name of dimension as defined when calling `set`.\n * @returns {DisplayMetrics? | DisplayMetricsAndroid?} Value for the dimension.\n */\n static get(dim: string): DisplayMetrics | DisplayMetricsAndroid {\n invariant(dimensions[dim], 'No dimension set for key ' + dim);\n return dimensions[dim];\n }\n\n /**\n * This should only be called from native code by sending the\n * didUpdateDimensions event.\n *\n * @param {DimensionsPayload} dims Simple string-keyed object of dimensions to set\n */\n static set(dims: $ReadOnly): void {\n // We calculate the window dimensions in JS so that we don't encounter loss of\n // precision in transferring the dimensions (which could be non-integers) over\n // the bridge.\n let {screen, window} = dims;\n const {windowPhysicalPixels} = dims;\n if (windowPhysicalPixels) {\n window = {\n width: windowPhysicalPixels.width / windowPhysicalPixels.scale,\n height: windowPhysicalPixels.height / windowPhysicalPixels.scale,\n scale: windowPhysicalPixels.scale,\n fontScale: windowPhysicalPixels.fontScale,\n };\n }\n const {screenPhysicalPixels} = dims;\n if (screenPhysicalPixels) {\n screen = {\n width: screenPhysicalPixels.width / screenPhysicalPixels.scale,\n height: screenPhysicalPixels.height / screenPhysicalPixels.scale,\n scale: screenPhysicalPixels.scale,\n fontScale: screenPhysicalPixels.fontScale,\n };\n } else if (screen == null) {\n screen = window;\n }\n\n dimensions = {window, screen};\n if (dimensionsInitialized) {\n // Don't fire 'change' the first time the dimensions are set.\n eventEmitter.emit('change', dimensions);\n } else {\n dimensionsInitialized = true;\n }\n }\n\n /**\n * Add an event handler. Supported events:\n *\n * - `change`: Fires when a property within the `Dimensions` object changes. The argument\n * to the event handler is an object with `window` and `screen` properties whose values\n * are the same as the return values of `Dimensions.get('window')` and\n * `Dimensions.get('screen')`, respectively.\n */\n static addEventListener(\n type: 'change',\n handler: Function,\n ): EventSubscription {\n invariant(\n type === 'change',\n 'Trying to subscribe to unknown event: \"%s\"',\n type,\n );\n return eventEmitter.addListener(type, handler);\n }\n}\n\nlet initialDims: ?$ReadOnly =\n global.nativeExtensions &&\n global.nativeExtensions.DeviceInfo &&\n global.nativeExtensions.DeviceInfo.Dimensions;\nif (!initialDims) {\n // Subscribe before calling getConstants to make sure we don't miss any updates in between.\n RCTDeviceEventEmitter.addListener(\n 'didUpdateDimensions',\n (update: DimensionsPayload) => {\n Dimensions.set(update);\n },\n );\n initialDims = NativeDeviceInfo.getConstants().Dimensions;\n}\n\nDimensions.set(initialDims);\n\nexport default Dimensions;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport type DisplayMetricsAndroid = {|\n width: number,\n height: number,\n scale: number,\n fontScale: number,\n densityDpi: number,\n|};\n\nexport type DisplayMetrics = {|\n width: number,\n height: number,\n scale: number,\n fontScale: number,\n|};\n\nexport type DimensionsPayload = {|\n window?: DisplayMetrics,\n screen?: DisplayMetrics,\n windowPhysicalPixels?: DisplayMetricsAndroid,\n screenPhysicalPixels?: DisplayMetricsAndroid,\n|};\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n +Dimensions: DimensionsPayload,\n +isIPhoneX_deprecated?: boolean,\n |};\n}\n\nconst NativeModule: Spec = TurboModuleRegistry.getEnforcing('DeviceInfo');\nlet constants = null;\n\nconst NativeDeviceInfo = {\n getConstants(): {|\n +Dimensions: DimensionsPayload,\n +isIPhoneX_deprecated?: boolean,\n |} {\n if (constants == null) {\n constants = NativeModule.getConstants();\n }\n return constants;\n },\n};\n\nexport default NativeDeviceInfo;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nimport type {PackagerAsset} from './registry.js';\n\nconst androidScaleSuffix = {\n '0.75': 'ldpi',\n '1': 'mdpi',\n '1.5': 'hdpi',\n '2': 'xhdpi',\n '3': 'xxhdpi',\n '4': 'xxxhdpi',\n};\n\nconst ANDROID_BASE_DENSITY = 160;\n\n/**\n * FIXME: using number to represent discrete scale numbers is fragile in essence because of\n * floating point numbers imprecision.\n */\nfunction getAndroidAssetSuffix(scale: number): string {\n if (scale.toString() in androidScaleSuffix) {\n return androidScaleSuffix[scale.toString()];\n }\n // NOTE: Android Gradle Plugin does not fully support the nnndpi format.\n // See https://issuetracker.google.com/issues/72884435\n if (Number.isFinite(scale) && scale > 0) {\n return Math.round(scale * ANDROID_BASE_DENSITY) + 'dpi';\n }\n throw new Error('no such scale ' + scale.toString());\n}\n\n// See https://developer.android.com/guide/topics/resources/drawable-resource.html\nconst drawableFileTypes = new Set([\n 'gif',\n 'jpeg',\n 'jpg',\n 'ktx',\n 'png',\n 'svg',\n 'webp',\n 'xml',\n]);\n\nfunction getAndroidResourceFolderName(\n asset: PackagerAsset,\n scale: number,\n): string | $TEMPORARY$string<'raw'> {\n if (!drawableFileTypes.has(asset.type)) {\n return 'raw';\n }\n const suffix = getAndroidAssetSuffix(scale);\n if (!suffix) {\n throw new Error(\n \"Don't know which android drawable suffix to use for scale: \" +\n scale +\n '\\nAsset: ' +\n JSON.stringify(asset, null, '\\t') +\n '\\nPossible scales are:' +\n JSON.stringify(androidScaleSuffix, null, '\\t'),\n );\n }\n return 'drawable-' + suffix;\n}\n\nfunction getAndroidResourceIdentifier(asset: PackagerAsset): string {\n return (getBasePath(asset) + '/' + asset.name)\n .toLowerCase()\n .replace(/\\//g, '_') // Encode folder structure in file name\n .replace(/([^a-z0-9_])/g, '') // Remove illegal chars\n .replace(/^assets_/, ''); // Remove \"assets_\" prefix\n}\n\nfunction getBasePath(asset: PackagerAsset): string {\n const basePath = asset.httpServerLocation;\n return basePath.startsWith('/') ? basePath.substr(1) : basePath;\n}\n\nmodule.exports = {\n getAndroidResourceFolderName,\n getAndroidResourceIdentifier,\n getBasePath,\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @noformat\n * @flow strict-local\n * @generated SignedSource<<47ba85d7f43c9b591d6804827322d00e>>\n *\n * This file was sync'd from the facebook/react repository.\n */\n\n'use strict';\n\nimport {type ViewConfig} from './ReactNativeTypes';\nimport invariant from 'invariant';\n\n// Event configs\nconst customBubblingEventTypes: {\n [eventName: string]: $ReadOnly<{\n phasedRegistrationNames: $ReadOnly<{\n captured: string,\n bubbled: string,\n skipBubbling?: ?boolean,\n }>,\n }>,\n ...\n} = {};\nconst customDirectEventTypes: {\n [eventName: string]: $ReadOnly<{\n registrationName: string,\n }>,\n ...\n} = {};\n\nexports.customBubblingEventTypes = customBubblingEventTypes;\nexports.customDirectEventTypes = customDirectEventTypes;\n\nconst viewConfigCallbacks = new Map ViewConfig>();\nconst viewConfigs = new Map();\n\nfunction processEventTypes(viewConfig: ViewConfig): void {\n const {bubblingEventTypes, directEventTypes} = viewConfig;\n\n if (__DEV__) {\n if (bubblingEventTypes != null && directEventTypes != null) {\n for (const topLevelType in directEventTypes) {\n invariant(\n bubblingEventTypes[topLevelType] == null,\n 'Event cannot be both direct and bubbling: %s',\n topLevelType,\n );\n }\n }\n }\n\n if (bubblingEventTypes != null) {\n for (const topLevelType in bubblingEventTypes) {\n if (customBubblingEventTypes[topLevelType] == null) {\n customBubblingEventTypes[topLevelType] =\n bubblingEventTypes[topLevelType];\n }\n }\n }\n\n if (directEventTypes != null) {\n for (const topLevelType in directEventTypes) {\n if (customDirectEventTypes[topLevelType] == null) {\n customDirectEventTypes[topLevelType] = directEventTypes[topLevelType];\n }\n }\n }\n}\n\n/**\n * Registers a native view/component by name.\n * A callback is provided to load the view config from UIManager.\n * The callback is deferred until the view is actually rendered.\n */\nexports.register = function (name: string, callback: () => ViewConfig): string {\n invariant(\n !viewConfigCallbacks.has(name),\n 'Tried to register two views with the same name %s',\n name,\n );\n invariant(\n typeof callback === 'function',\n 'View config getter callback for component `%s` must be a function (received `%s`)',\n name,\n callback === null ? 'null' : typeof callback,\n );\n viewConfigCallbacks.set(name, callback);\n return name;\n};\n\n/**\n * Retrieves a config for the specified view.\n * If this is the first time the view has been used,\n * This configuration will be lazy-loaded from UIManager.\n */\nexports.get = function (name: string): ViewConfig {\n let viewConfig;\n if (!viewConfigs.has(name)) {\n const callback = viewConfigCallbacks.get(name);\n if (typeof callback !== 'function') {\n invariant(\n false,\n 'View config getter callback for component `%s` must be a function (received `%s`).%s',\n name,\n callback === null ? 'null' : typeof callback,\n typeof name[0] === 'string' && /[a-z]/.test(name[0])\n ? ' Make sure to start component names with a capital letter.'\n : '',\n );\n }\n viewConfig = callback();\n processEventTypes(viewConfig);\n viewConfigs.set(name, viewConfig);\n\n // Clear the callback after the config is set so that\n // we don't mask any errors during registration.\n viewConfigCallbacks.set(name, null);\n } else {\n viewConfig = viewConfigs.get(name);\n }\n invariant(viewConfig, 'View config not found for name %s', name);\n return viewConfig;\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport PlatformBaseViewConfig from '../NativeComponent/PlatformBaseViewConfig';\nimport {type ViewConfig} from '../Renderer/shims/ReactNativeTypes';\n\nconst IGNORED_KEYS = ['transform', 'hitSlop'];\n\n/**\n * The purpose of this function is to validate that the view config that\n * native exposes for a given view manager is the same as the view config\n * that is specified for that view manager in JS.\n *\n * In order to improve perf, we want to avoid calling into native to get\n * the view config when each view manager is used. To do this, we are moving\n * the configs to JS. In the future we will use these JS based view configs\n * to codegen the view manager on native to ensure they stay in sync without\n * this runtime check.\n *\n * If this function fails, that likely means a change was made to the native\n * view manager without updating the JS config as well. Ideally you can make\n * that direct change to the JS config. If you don't know what the differences\n * are, the best approach I've found is to create a view that prints\n * the return value of getNativeComponentAttributes, and then copying that\n * text and pasting it back into JS:\n * {JSON.stringify(getNativeComponentAttributes('RCTView'))}\n *\n * This is meant to be a stopgap until the time comes when we only have a\n * single source of truth. I wonder if this message will still be here two\n * years from now...\n */\nexport default function verifyComponentAttributeEquivalence(\n nativeViewConfig: ViewConfig,\n staticViewConfig: ViewConfig,\n) {\n for (const prop of [\n 'validAttributes',\n 'bubblingEventTypes',\n 'directEventTypes',\n ]) {\n const diff = Object.keys(\n lefthandObjectDiff(nativeViewConfig[prop], staticViewConfig[prop]),\n );\n\n if (diff.length > 0) {\n const name =\n staticViewConfig.uiViewClassName ?? nativeViewConfig.uiViewClassName;\n console.error(\n `'${name}' has a view config that does not match native. ` +\n `'${prop}' is missing: ${diff.join(', ')}`,\n );\n }\n }\n}\n\n// Return the different key-value pairs of the right object, by iterating through the keys in the left object\n// Note it won't return a difference where a key is missing in the left but exists the right.\nfunction lefthandObjectDiff(leftObj: Object, rightObj: Object): Object {\n const differentKeys: {[string]: any | {...}} = {};\n\n function compare(leftItem: any, rightItem: any, key: string) {\n if (typeof leftItem !== typeof rightItem && leftItem != null) {\n differentKeys[key] = rightItem;\n return;\n }\n\n if (typeof leftItem === 'object') {\n const objDiff = lefthandObjectDiff(leftItem, rightItem);\n if (Object.keys(objDiff).length > 1) {\n differentKeys[key] = objDiff;\n }\n return;\n }\n\n if (leftItem !== rightItem) {\n differentKeys[key] = rightItem;\n return;\n }\n }\n\n for (const key in leftObj) {\n if (IGNORED_KEYS.includes(key)) {\n continue;\n }\n\n if (!rightObj) {\n differentKeys[key] = {};\n } else if (leftObj.hasOwnProperty(key)) {\n compare(leftObj[key], rightObj[key], key);\n }\n }\n\n return differentKeys;\n}\n\nexport function getConfigWithoutViewProps(\n viewConfig: ViewConfig,\n propName: string,\n): {...} {\n if (!viewConfig[propName]) {\n return {};\n }\n\n return Object.keys(viewConfig[propName])\n .filter(prop => !PlatformBaseViewConfig[propName][prop])\n .reduce<{[string]: any}>((obj, prop) => {\n obj[prop] = viewConfig[propName][prop];\n return obj;\n }, {});\n}\n\nexport function stringifyViewConfig(viewConfig: any): string {\n return JSON.stringify(\n viewConfig,\n (key, val) => {\n if (typeof val === 'function') {\n return `Ζ’ ${val.name}`;\n }\n return val;\n },\n 2,\n );\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {PartialViewConfig} from '../Renderer/shims/ReactNativeTypes';\n\nimport BaseViewConfig from './BaseViewConfig';\n\nexport type PartialViewConfigWithoutName = $Rest<\n PartialViewConfig,\n {uiViewClassName: string},\n>;\n\nconst PlatformBaseViewConfig: PartialViewConfigWithoutName = BaseViewConfig;\n\n// In Wilde/FB4A, use RNHostComponentListRoute in Bridge mode to verify\n// whether the JS props defined here match the native props defined\n// in RCTViewManagers in iOS, and ViewManagers in Android.\nexport default PlatformBaseViewConfig;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {PartialViewConfigWithoutName} from './PlatformBaseViewConfig';\n\nimport ReactNativeStyleAttributes from '../Components/View/ReactNativeStyleAttributes';\nimport {DynamicallyInjectedByGestureHandler} from './ViewConfigIgnore';\n\nconst bubblingEventTypes = {\n // Bubbling events from UIManagerModuleConstants.java\n topChange: {\n phasedRegistrationNames: {\n captured: 'onChangeCapture',\n bubbled: 'onChange',\n },\n },\n topSelect: {\n phasedRegistrationNames: {\n captured: 'onSelectCapture',\n bubbled: 'onSelect',\n },\n },\n topTouchEnd: {\n phasedRegistrationNames: {\n captured: 'onTouchEndCapture',\n bubbled: 'onTouchEnd',\n },\n },\n topTouchCancel: {\n phasedRegistrationNames: {\n captured: 'onTouchCancelCapture',\n bubbled: 'onTouchCancel',\n },\n },\n topTouchStart: {\n phasedRegistrationNames: {\n captured: 'onTouchStartCapture',\n bubbled: 'onTouchStart',\n },\n },\n topTouchMove: {\n phasedRegistrationNames: {\n captured: 'onTouchMoveCapture',\n bubbled: 'onTouchMove',\n },\n },\n\n // Experimental/Work in Progress Pointer Events (not yet ready for use)\n topPointerCancel: {\n phasedRegistrationNames: {\n captured: 'onPointerCancelCapture',\n bubbled: 'onPointerCancel',\n },\n },\n topPointerDown: {\n phasedRegistrationNames: {\n captured: 'onPointerDownCapture',\n bubbled: 'onPointerDown',\n },\n },\n topPointerEnter: {\n phasedRegistrationNames: {\n captured: 'onPointerEnterCapture',\n bubbled: 'onPointerEnter',\n skipBubbling: true,\n },\n },\n topPointerLeave: {\n phasedRegistrationNames: {\n captured: 'onPointerLeaveCapture',\n bubbled: 'onPointerLeave',\n skipBubbling: true,\n },\n },\n topPointerMove: {\n phasedRegistrationNames: {\n captured: 'onPointerMoveCapture',\n bubbled: 'onPointerMove',\n },\n },\n topPointerUp: {\n phasedRegistrationNames: {\n captured: 'onPointerUpCapture',\n bubbled: 'onPointerUp',\n },\n },\n topPointerOut: {\n phasedRegistrationNames: {\n captured: 'onPointerOutCapture',\n bubbled: 'onPointerOut',\n },\n },\n topPointerOver: {\n phasedRegistrationNames: {\n captured: 'onPointerOverCapture',\n bubbled: 'onPointerOver',\n },\n },\n};\n\nconst directEventTypes = {\n topAccessibilityAction: {\n registrationName: 'onAccessibilityAction',\n },\n onGestureHandlerEvent: DynamicallyInjectedByGestureHandler({\n registrationName: 'onGestureHandlerEvent',\n }),\n onGestureHandlerStateChange: DynamicallyInjectedByGestureHandler({\n registrationName: 'onGestureHandlerStateChange',\n }),\n\n // Direct events from UIManagerModuleConstants.java\n topContentSizeChange: {\n registrationName: 'onContentSizeChange',\n },\n topScrollBeginDrag: {\n registrationName: 'onScrollBeginDrag',\n },\n topMessage: {\n registrationName: 'onMessage',\n },\n topSelectionChange: {\n registrationName: 'onSelectionChange',\n },\n topLoadingFinish: {\n registrationName: 'onLoadingFinish',\n },\n topMomentumScrollEnd: {\n registrationName: 'onMomentumScrollEnd',\n },\n topClick: {\n registrationName: 'onClick',\n },\n topLoadingStart: {\n registrationName: 'onLoadingStart',\n },\n topLoadingError: {\n registrationName: 'onLoadingError',\n },\n topMomentumScrollBegin: {\n registrationName: 'onMomentumScrollBegin',\n },\n topScrollEndDrag: {\n registrationName: 'onScrollEndDrag',\n },\n topScroll: {\n registrationName: 'onScroll',\n },\n topLayout: {\n registrationName: 'onLayout',\n },\n};\n\nconst validAttributesForNonEventProps = {\n // @ReactProps from BaseViewManager\n backgroundColor: {process: require('../StyleSheet/processColor').default},\n transform: true,\n opacity: true,\n elevation: true,\n shadowColor: {process: require('../StyleSheet/processColor').default},\n zIndex: true,\n renderToHardwareTextureAndroid: true,\n testID: true,\n nativeID: true,\n accessibilityLabelledBy: true,\n accessibilityLabel: true,\n accessibilityHint: true,\n accessibilityRole: true,\n accessibilityCollection: true,\n accessibilityCollectionItem: true,\n accessibilityState: true,\n accessibilityActions: true,\n accessibilityValue: true,\n importantForAccessibility: true,\n rotation: true,\n scaleX: true,\n scaleY: true,\n translateX: true,\n translateY: true,\n accessibilityLiveRegion: true,\n\n // @ReactProps from LayoutShadowNode\n width: true,\n minWidth: true,\n collapsable: true,\n maxWidth: true,\n height: true,\n minHeight: true,\n maxHeight: true,\n flex: true,\n flexGrow: true,\n rowGap: true,\n columnGap: true,\n gap: true,\n flexShrink: true,\n flexBasis: true,\n aspectRatio: true,\n flexDirection: true,\n flexWrap: true,\n alignSelf: true,\n alignItems: true,\n alignContent: true,\n justifyContent: true,\n overflow: true,\n display: true,\n\n margin: true,\n marginBlock: true,\n marginBlockEnd: true,\n marginBlockStart: true,\n marginBottom: true,\n marginEnd: true,\n marginHorizontal: true,\n marginInline: true,\n marginInlineEnd: true,\n marginInlineStart: true,\n marginLeft: true,\n marginRight: true,\n marginStart: true,\n marginTop: true,\n marginVertical: true,\n\n padding: true,\n paddingBlock: true,\n paddingBlockEnd: true,\n paddingBlockStart: true,\n paddingBottom: true,\n paddingEnd: true,\n paddingHorizontal: true,\n paddingInline: true,\n paddingInlineEnd: true,\n paddingInlineStart: true,\n paddingLeft: true,\n paddingRight: true,\n paddingStart: true,\n paddingTop: true,\n paddingVertical: true,\n\n borderWidth: true,\n borderStartWidth: true,\n borderEndWidth: true,\n borderTopWidth: true,\n borderBottomWidth: true,\n borderLeftWidth: true,\n borderRightWidth: true,\n\n start: true,\n end: true,\n left: true,\n right: true,\n top: true,\n bottom: true,\n\n position: true,\n\n style: ReactNativeStyleAttributes,\n};\n\n// Props for bubbling and direct events\nconst validAttributesForEventProps = {\n onLayout: true,\n\n // PanResponder handlers\n onMoveShouldSetResponder: true,\n onMoveShouldSetResponderCapture: true,\n onStartShouldSetResponder: true,\n onStartShouldSetResponderCapture: true,\n onResponderGrant: true,\n onResponderReject: true,\n onResponderStart: true,\n onResponderEnd: true,\n onResponderRelease: true,\n onResponderMove: true,\n onResponderTerminate: true,\n onResponderTerminationRequest: true,\n onShouldBlockNativeResponder: true,\n\n // Touch events\n onTouchStart: true,\n onTouchMove: true,\n onTouchEnd: true,\n onTouchCancel: true,\n\n // Pointer events\n onPointerEnter: true,\n onPointerEnterCapture: true,\n onPointerLeave: true,\n onPointerLeaveCapture: true,\n onPointerMove: true,\n onPointerMoveCapture: true,\n onPointerOut: true,\n onPointerOutCapture: true,\n onPointerOver: true,\n onPointerOverCapture: true,\n};\n\n/**\n * On Android, Props are derived from a ViewManager and its ShadowNode.\n *\n * Where did we find these base platform props from?\n * - Nearly all component ViewManagers descend from BaseViewManager,\n * - and BaseViewManagers' ShadowNodes descend from LayoutShadowNode.\n * - Also, all components inherit ViewConfigs from UIManagerModuleConstants.java.\n *\n * So, these ViewConfigs are generated from LayoutShadowNode and BaseViewManager.\n */\nconst PlatformBaseViewConfigAndroid: PartialViewConfigWithoutName = {\n directEventTypes,\n bubblingEventTypes,\n validAttributes: {\n ...validAttributesForNonEventProps,\n ...validAttributesForEventProps,\n },\n};\n\nexport default PlatformBaseViewConfigAndroid;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport Platform from '../Utilities/Platform';\n\nconst ignoredViewConfigProps = new WeakSet<{...}>();\n\n/**\n * Decorates ViewConfig values that are dynamically injected by the library,\n * react-native-gesture-handler. (T45765076)\n */\nexport function DynamicallyInjectedByGestureHandler(object: T): T {\n ignoredViewConfigProps.add(object);\n return object;\n}\n\n/**\n * On iOS, ViewManager event declarations generate {eventName}: true entries\n * in ViewConfig valueAttributes. These entries aren't generated for Android.\n * This annotation allows Static ViewConfigs to insert these entries into\n * iOS but not Android.\n *\n * In the future, we want to remove this platform-inconsistency. We want\n * to set RN$ViewConfigEventValidAttributesDisabled = true server-side,\n * so that iOS does not generate validAttributes from event props in iOS RCTViewManager,\n * since Android does not generate validAttributes from events props in Android ViewManager.\n *\n * TODO(T110872225): Remove this logic, after achieving platform-consistency\n */\nexport function ConditionallyIgnoredEventHandlers(\n value: T,\n): T | void {\n if (Platform.OS === 'ios') {\n return value;\n }\n return undefined;\n}\n\nexport function isIgnored(value: mixed): boolean {\n if (typeof value === 'object' && value != null) {\n return ignoredViewConfigProps.has(value);\n }\n return false;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport {type ViewConfig} from '../Renderer/shims/ReactNativeTypes';\nimport {isIgnored} from './ViewConfigIgnore';\n\nexport type Difference =\n | {\n type: 'missing',\n path: Array,\n nativeValue: mixed,\n }\n | {\n type: 'unequal',\n path: Array,\n nativeValue: mixed,\n staticValue: mixed,\n }\n | {\n type: 'unexpected',\n path: Array,\n staticValue: mixed,\n };\n\nexport type ValidationResult = ValidResult | InvalidResult;\ntype ValidResult = {\n type: 'valid',\n};\ntype InvalidResult = {\n type: 'invalid',\n differences: Array,\n};\n\n/**\n * During the migration from native view configs to static view configs, this is\n * used to validate that the two are equivalent.\n */\nexport function validate(\n name: string,\n nativeViewConfig: ViewConfig,\n staticViewConfig: ViewConfig,\n): ValidationResult {\n const differences: Array = [];\n accumulateDifferences(\n differences,\n [],\n {\n bubblingEventTypes: nativeViewConfig.bubblingEventTypes,\n directEventTypes: nativeViewConfig.directEventTypes,\n uiViewClassName: nativeViewConfig.uiViewClassName,\n validAttributes: nativeViewConfig.validAttributes,\n },\n {\n bubblingEventTypes: staticViewConfig.bubblingEventTypes,\n directEventTypes: staticViewConfig.directEventTypes,\n uiViewClassName: staticViewConfig.uiViewClassName,\n validAttributes: staticViewConfig.validAttributes,\n },\n );\n\n if (differences.length === 0) {\n return {type: 'valid'};\n }\n\n return {\n type: 'invalid',\n differences,\n };\n}\n\nexport function stringifyValidationResult(\n name: string,\n validationResult: InvalidResult,\n): string {\n const {differences} = validationResult;\n return [\n `StaticViewConfigValidator: Invalid static view config for '${name}'.`,\n '',\n ...differences.map(difference => {\n const {type, path} = difference;\n switch (type) {\n case 'missing':\n return `- '${path.join('.')}' is missing.`;\n case 'unequal':\n return `- '${path.join('.')}' is the wrong value.`;\n case 'unexpected':\n return `- '${path.join('.')}' is present but not expected to be.`;\n }\n }),\n '',\n ].join('\\n');\n}\n\nfunction accumulateDifferences(\n differences: Array,\n path: Array,\n nativeObject: {...},\n staticObject: {...},\n): void {\n for (const nativeKey in nativeObject) {\n const nativeValue = nativeObject[nativeKey];\n\n if (!staticObject.hasOwnProperty(nativeKey)) {\n differences.push({\n path: [...path, nativeKey],\n type: 'missing',\n nativeValue,\n });\n continue;\n }\n\n const staticValue = staticObject[nativeKey];\n\n const nativeValueIfObject = ifObject(nativeValue);\n if (nativeValueIfObject != null) {\n const staticValueIfObject = ifObject(staticValue);\n if (staticValueIfObject != null) {\n path.push(nativeKey);\n accumulateDifferences(\n differences,\n path,\n nativeValueIfObject,\n staticValueIfObject,\n );\n path.pop();\n continue;\n }\n }\n\n if (nativeValue !== staticValue) {\n differences.push({\n path: [...path, nativeKey],\n type: 'unequal',\n nativeValue,\n staticValue,\n });\n }\n }\n\n for (const staticKey in staticObject) {\n if (\n !nativeObject.hasOwnProperty(staticKey) &&\n !isIgnored(staticObject[staticKey])\n ) {\n differences.push({\n path: [...path, staticKey],\n type: 'unexpected',\n staticValue: staticObject[staticKey],\n });\n }\n }\n}\n\nfunction ifObject(value: mixed): ?{...} {\n return typeof value === 'object' && !Array.isArray(value) ? value : null;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n PartialViewConfig,\n ViewConfig,\n} from '../Renderer/shims/ReactNativeTypes';\n\nimport PlatformBaseViewConfig from './PlatformBaseViewConfig';\n\n/**\n * Creates a complete `ViewConfig` from a `PartialViewConfig`.\n */\nexport function createViewConfig(\n partialViewConfig: PartialViewConfig,\n): ViewConfig {\n return {\n uiViewClassName: partialViewConfig.uiViewClassName,\n Commands: {},\n bubblingEventTypes: composeIndexers(\n PlatformBaseViewConfig.bubblingEventTypes,\n partialViewConfig.bubblingEventTypes,\n ),\n directEventTypes: composeIndexers(\n PlatformBaseViewConfig.directEventTypes,\n partialViewConfig.directEventTypes,\n ),\n // $FlowFixMe[incompatible-return]\n validAttributes: composeIndexers(\n // $FlowFixMe[incompatible-call] `style` property confuses Flow.\n PlatformBaseViewConfig.validAttributes,\n // $FlowFixMe[incompatible-call] `style` property confuses Flow.\n partialViewConfig.validAttributes,\n ),\n };\n}\n\nfunction composeIndexers(\n maybeA: ?{+[string]: T},\n maybeB: ?{+[string]: T},\n): {+[string]: T} {\n return maybeA == null || maybeB == null\n ? maybeA ?? maybeB ?? {}\n : {...maybeA, ...maybeB};\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nconst {dispatchCommand} = require('../ReactNative/RendererProxy');\n\ntype Options = $ReadOnly<{|\n supportedCommands: $ReadOnlyArray,\n|}>;\n\nfunction codegenNativeCommands(options: Options<$Keys>): T {\n const commandObj: {[$Keys]: (...$ReadOnlyArray) => void} = {};\n\n options.supportedCommands.forEach(command => {\n // $FlowFixMe[missing-local-annot]\n commandObj[command] = (ref, ...args) => {\n // $FlowFixMe[incompatible-call]\n dispatchCommand(ref, command, args);\n };\n });\n\n return ((commandObj: any): T);\n}\n\nexport default codegenNativeCommands;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nimport type {\n AccessibilityRole,\n Role,\n} from '../Components/View/ViewAccessibility';\n\n// Map role values to AccessibilityRole values\nexport function getAccessibilityRoleFromRole(role: Role): ?AccessibilityRole {\n switch (role) {\n case 'alert':\n return 'alert';\n case 'alertdialog':\n return undefined;\n case 'application':\n return undefined;\n case 'article':\n return undefined;\n case 'banner':\n return undefined;\n case 'button':\n return 'button';\n case 'cell':\n return undefined;\n case 'checkbox':\n return 'checkbox';\n case 'columnheader':\n return undefined;\n case 'combobox':\n return 'combobox';\n case 'complementary':\n return undefined;\n case 'contentinfo':\n return undefined;\n case 'definition':\n return undefined;\n case 'dialog':\n return undefined;\n case 'directory':\n return undefined;\n case 'document':\n return undefined;\n case 'feed':\n return undefined;\n case 'figure':\n return undefined;\n case 'form':\n return undefined;\n case 'grid':\n return 'grid';\n case 'group':\n return undefined;\n case 'heading':\n return 'header';\n case 'img':\n return 'image';\n case 'link':\n return 'link';\n case 'list':\n return 'list';\n case 'listitem':\n return undefined;\n case 'log':\n return undefined;\n case 'main':\n return undefined;\n case 'marquee':\n return undefined;\n case 'math':\n return undefined;\n case 'menu':\n return 'menu';\n case 'menubar':\n return 'menubar';\n case 'menuitem':\n return 'menuitem';\n case 'meter':\n return undefined;\n case 'navigation':\n return undefined;\n case 'none':\n return 'none';\n case 'note':\n return undefined;\n case 'option':\n return undefined;\n case 'presentation':\n return 'none';\n case 'progressbar':\n return 'progressbar';\n case 'radio':\n return 'radio';\n case 'radiogroup':\n return 'radiogroup';\n case 'region':\n return undefined;\n case 'row':\n return undefined;\n case 'rowgroup':\n return undefined;\n case 'rowheader':\n return undefined;\n case 'scrollbar':\n return 'scrollbar';\n case 'searchbox':\n return 'search';\n case 'separator':\n return undefined;\n case 'slider':\n return 'adjustable';\n case 'spinbutton':\n return 'spinbutton';\n case 'status':\n return undefined;\n case 'summary':\n return 'summary';\n case 'switch':\n return 'switch';\n case 'tab':\n return 'tab';\n case 'table':\n return undefined;\n case 'tablist':\n return 'tablist';\n case 'tabpanel':\n return undefined;\n case 'term':\n return undefined;\n case 'timer':\n return 'timer';\n case 'toolbar':\n return 'toolbar';\n case 'tooltip':\n return undefined;\n case 'tree':\n return undefined;\n case 'treegrid':\n return undefined;\n case 'treeitem':\n return undefined;\n }\n\n return undefined;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {\n ____ColorValue_Internal,\n ____DangerouslyImpreciseStyle_Internal,\n ____DangerouslyImpreciseStyleProp_Internal,\n ____ImageStyle_Internal,\n ____ImageStyleProp_Internal,\n ____Styles_Internal,\n ____TextStyle_Internal,\n ____TextStyleProp_Internal,\n ____ViewStyle_Internal,\n ____ViewStyleProp_Internal,\n} from './StyleSheetTypes';\n\nconst ReactNativeStyleAttributes = require('../Components/View/ReactNativeStyleAttributes');\nconst PixelRatio = require('../Utilities/PixelRatio').default;\nconst flatten = require('./flattenStyle');\n\n/**\n * This type should be used as the type for anything that is a color. It is\n * most useful when using DynamicColorIOS which can be a string or a dynamic\n * color object.\n *\n * type props = {backgroundColor: ColorValue};\n */\nexport type ColorValue = ____ColorValue_Internal;\n\n/**\n * This type should be used as the type for a prop that is passed through\n * to a 's `style` prop. This ensures call sites of the component\n * can't pass styles that View doesn't support such as `fontSize`.`\n *\n * type Props = {style: ViewStyleProp}\n * const MyComponent = (props: Props) => \n */\nexport type ViewStyleProp = ____ViewStyleProp_Internal;\n\n/**\n * This type should be used as the type for a prop that is passed through\n * to a 's `style` prop. This ensures call sites of the component\n * can't pass styles that Text doesn't support such as `resizeMode`.`\n *\n * type Props = {style: TextStyleProp}\n * const MyComponent = (props: Props) => \n */\nexport type TextStyleProp = ____TextStyleProp_Internal;\n\n/**\n * This type should be used as the type for a prop that is passed through\n * to an 's `style` prop. This ensures call sites of the component\n * can't pass styles that Image doesn't support such as `fontSize`.`\n *\n * type Props = {style: ImageStyleProp}\n * const MyComponent = (props: Props) => \n */\nexport type ImageStyleProp = ____ImageStyleProp_Internal;\n\n/**\n * WARNING: You probably shouldn't be using this type. This type\n * is similar to the ones above except it allows styles that are accepted\n * by all of View, Text, or Image. It is therefore very unsafe to pass this\n * through to an underlying component. Using this is almost always a mistake\n * and using one of the other more restrictive types is likely the right choice.\n */\nexport type DangerouslyImpreciseStyleProp =\n ____DangerouslyImpreciseStyleProp_Internal;\n\n/**\n * Utility type for getting the values for specific style keys.\n *\n * The following is bad because position is more restrictive than 'string':\n * ```\n * type Props = {position: string};\n * ```\n *\n * You should use the following instead:\n *\n * ```\n * type Props = {position: TypeForStyleKey<'position'>};\n * ```\n *\n * This will correctly give you the type 'absolute' | 'relative'\n */\nexport type TypeForStyleKey<\n +key: $Keys<____DangerouslyImpreciseStyle_Internal>,\n> = $ElementType<____DangerouslyImpreciseStyle_Internal, key>;\n\n/**\n * This type is an object of the different possible style\n * properties that can be specified for View.\n *\n * Note that this isn't a safe way to type a style prop for a component as\n * results from StyleSheet.create return an internal identifier, not\n * an object of styles.\n *\n * If you want to type the style prop of a function,\n * consider using ViewStyleProp.\n *\n * A reasonable usage of this type is for helper functions that return an\n * object of styles to pass to a View that can't be precomputed with\n * StyleSheet.create.\n */\nexport type ViewStyle = ____ViewStyle_Internal;\n\n/**\n * This type is an object of the different possible style\n * properties that can be specified for Text.\n *\n * Note that this isn't a safe way to type a style prop for a component as\n * results from StyleSheet.create return an internal identifier, not\n * an object of styles.\n *\n * If you want to type the style prop of a function,\n * consider using TextStyleProp.\n *\n * A reasonable usage of this type is for helper functions that return an\n * object of styles to pass to a Text that can't be precomputed with\n * StyleSheet.create.\n */\nexport type TextStyle = ____TextStyle_Internal;\n\n/**\n * This type is an object of the different possible style\n * properties that can be specified for Image.\n *\n * Note that this isn't a safe way to type a style prop for a component as\n * results from StyleSheet.create return an internal identifier, not\n * an object of styles.\n *\n * If you want to type the style prop of a function,\n * consider using ImageStyleProp.\n *\n * A reasonable usage of this type is for helper functions that return an\n * object of styles to pass to an Image that can't be precomputed with\n * StyleSheet.create.\n */\nexport type ImageStyle = ____ImageStyle_Internal;\n\n/**\n * WARNING: You probably shouldn't be using this type. This type is an object\n * with all possible style keys and their values. Note that this isn't\n * a safe way to type a style prop for a component as results from\n * StyleSheet.create return an internal identifier, not an object of styles.\n *\n * If you want to type the style prop of a function, consider using\n * ViewStyleProp, TextStyleProp, or ImageStyleProp.\n *\n * This should only be used by very core utilities that operate on an object\n * containing any possible style value.\n */\nexport type DangerouslyImpreciseStyle = ____DangerouslyImpreciseStyle_Internal;\n\nlet hairlineWidth: number = PixelRatio.roundToNearestPixel(0.4);\nif (hairlineWidth === 0) {\n hairlineWidth = 1 / PixelRatio.get();\n}\n\nconst absoluteFill = {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n};\nif (__DEV__) {\n Object.freeze(absoluteFill);\n}\n\n/**\n * A StyleSheet is an abstraction similar to CSS StyleSheets\n *\n * Create a new StyleSheet:\n *\n * ```\n * const styles = StyleSheet.create({\n * container: {\n * borderRadius: 4,\n * borderWidth: 0.5,\n * borderColor: '#d6d7da',\n * },\n * title: {\n * fontSize: 19,\n * fontWeight: 'bold',\n * },\n * activeTitle: {\n * color: 'red',\n * },\n * });\n * ```\n *\n * Use a StyleSheet:\n *\n * ```\n * \n * \n * \n * ```\n *\n * Code quality:\n *\n * - By moving styles away from the render function, you're making the code\n * easier to understand.\n * - Naming the styles is a good way to add meaning to the low level components\n * in the render function.\n *\n * Performance:\n *\n * - Making a stylesheet from a style object makes it possible to refer to it\n * by ID instead of creating a new style object every time.\n * - It also allows to send the style only once through the bridge. All\n * subsequent uses are going to refer an id (not implemented yet).\n */\nmodule.exports = {\n /**\n * This is defined as the width of a thin line on the platform. It can be\n * used as the thickness of a border or division between two elements.\n * Example:\n * ```\n * {\n * borderBottomColor: '#bbb',\n * borderBottomWidth: StyleSheet.hairlineWidth\n * }\n * ```\n *\n * This constant will always be a round number of pixels (so a line defined\n * by it look crisp) and will try to match the standard width of a thin line\n * on the underlying platform. However, you should not rely on it being a\n * constant size, because on different platforms and screen densities its\n * value may be calculated differently.\n *\n * A line with hairline width may not be visible if your simulator is downscaled.\n */\n hairlineWidth,\n\n /**\n * A very common pattern is to create overlays with position absolute and zero positioning,\n * so `absoluteFill` can be used for convenience and to reduce duplication of these repeated\n * styles.\n */\n absoluteFill: (absoluteFill: any), // TODO: This should be updated after we fix downstream Flow sites.\n\n /**\n * Sometimes you may want `absoluteFill` but with a couple tweaks - `absoluteFillObject` can be\n * used to create a customized entry in a `StyleSheet`, e.g.:\n *\n * const styles = StyleSheet.create({\n * wrapper: {\n * ...StyleSheet.absoluteFillObject,\n * top: 10,\n * backgroundColor: 'transparent',\n * },\n * });\n */\n absoluteFillObject: absoluteFill,\n\n /**\n * Combines two styles such that `style2` will override any styles in `style1`.\n * If either style is falsy, the other one is returned without allocating an\n * array, saving allocations and maintaining reference equality for\n * PureComponent checks.\n */\n compose(\n style1: ?T,\n style2: ?T,\n ): ?T | $ReadOnlyArray {\n if (style1 != null && style2 != null) {\n return ([style1, style2]: $ReadOnlyArray);\n } else {\n return style1 != null ? style1 : style2;\n }\n },\n\n /**\n * Flattens an array of style objects, into one aggregated style object.\n * Alternatively, this method can be used to lookup IDs, returned by\n * StyleSheet.register.\n *\n * > **NOTE**: Exercise caution as abusing this can tax you in terms of\n * > optimizations.\n * >\n * > IDs enable optimizations through the bridge and memory in general. Referring\n * > to style objects directly will deprive you of these optimizations.\n *\n * Example:\n * ```\n * const styles = StyleSheet.create({\n * listItem: {\n * flex: 1,\n * fontSize: 16,\n * color: 'white'\n * },\n * selectedListItem: {\n * color: 'green'\n * }\n * });\n *\n * StyleSheet.flatten([styles.listItem, styles.selectedListItem])\n * // returns { flex: 1, fontSize: 16, color: 'green' }\n * ```\n * Alternative use:\n * ```\n * StyleSheet.flatten(styles.listItem);\n * // return { flex: 1, fontSize: 16, color: 'white' }\n * // Simply styles.listItem would return its ID (number)\n * ```\n * This method internally uses `StyleSheetRegistry.getStyleByID(style)`\n * to resolve style objects represented by IDs. Thus, an array of style\n * objects (instances of StyleSheet.create), are individually resolved to,\n * their respective objects, merged as one and then returned. This also explains\n * the alternative use.\n */\n flatten,\n\n /**\n * WARNING: EXPERIMENTAL. Breaking changes will probably happen a lot and will\n * not be reliably announced. The whole thing might be deleted, who knows? Use\n * at your own risk.\n *\n * Sets a function to use to pre-process a style property value. This is used\n * internally to process color and transform values. You should not use this\n * unless you really know what you are doing and have exhausted other options.\n */\n setStyleAttributePreprocessor(\n property: string,\n process: (nextProp: mixed) => mixed,\n ) {\n let value;\n\n if (ReactNativeStyleAttributes[property] === true) {\n value = {process};\n } else if (typeof ReactNativeStyleAttributes[property] === 'object') {\n value = {...ReactNativeStyleAttributes[property], process};\n } else {\n console.error(`${property} is not a valid style attribute`);\n return;\n }\n\n if (\n __DEV__ &&\n typeof value.process === 'function' &&\n typeof ReactNativeStyleAttributes[property]?.process === 'function' &&\n value.process !== ReactNativeStyleAttributes[property]?.process\n ) {\n console.warn(`Overwriting ${property} style attribute preprocessor`);\n }\n\n ReactNativeStyleAttributes[property] = value;\n },\n\n /**\n * Creates a StyleSheet style reference from the given object.\n */\n create<+S: ____Styles_Internal>(obj: S): $ReadOnly {\n // TODO: This should return S as the return type. But first,\n // we need to codemod all the callsites that are typing this\n // return value as a number (even though it was opaque).\n if (__DEV__) {\n for (const key in obj) {\n if (obj[key]) {\n Object.freeze(obj[key]);\n }\n }\n }\n return obj;\n },\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport * as React from 'react';\n\nexport opaque type RootTag = number;\n\nexport const RootTagContext: React$Context =\n React.createContext(0);\n\nif (__DEV__) {\n RootTagContext.displayName = 'RootTagContext';\n}\n\n/**\n * Intended to only be used by `AppContainer`.\n */\nexport function createRootTag(rootTag: number | RootTag): RootTag {\n return rootTag;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nexport opaque type DisplayModeType = number;\n\n/** DisplayMode should be in sync with the method displayModeToInt from\n * react/renderer/uimanager/primitives.h. */\nconst DisplayMode: {[string]: DisplayModeType} = Object.freeze({\n VISIBLE: 1,\n SUSPENDED: 2,\n HIDDEN: 3,\n});\n\nexport function coerceDisplayMode(value: ?number): DisplayModeType {\n switch (value) {\n case DisplayMode.SUSPENDED:\n return DisplayMode.SUSPENDED;\n case DisplayMode.HIDDEN:\n return DisplayMode.HIDDEN;\n default:\n return DisplayMode.VISIBLE;\n }\n}\n\nexport default DisplayMode;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {AbstractComponent} from 'react';\n\nimport * as React from 'react';\n\ntype NoopComponent = AbstractComponent<{children: React.Node}>;\n\nconst cache: Map<\n string, // displayName\n NoopComponent, // ComponentWithDisplayName\n> = new Map();\n\nexport default function getCachedComponentWithDisplayName(\n displayName: string,\n): NoopComponent {\n let ComponentWithDisplayName = cache.get(displayName);\n\n if (!ComponentWithDisplayName) {\n ComponentWithDisplayName = ({children}: {children: React.Node}) => children;\n // $FlowFixMe[prop-missing]\n ComponentWithDisplayName.displayName = displayName;\n cache.set(displayName, ComponentWithDisplayName);\n }\n\n return ComponentWithDisplayName;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport NativeDeviceEventManager from '../../Libraries/NativeModules/specs/NativeDeviceEventManager';\nimport RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter';\n\nconst DEVICE_BACK_EVENT = 'hardwareBackPress';\n\ntype BackPressEventName = 'backPress' | 'hardwareBackPress';\n\nconst _backPressSubscriptions = [];\n\nRCTDeviceEventEmitter.addListener(DEVICE_BACK_EVENT, function () {\n for (let i = _backPressSubscriptions.length - 1; i >= 0; i--) {\n if (_backPressSubscriptions[i]()) {\n return;\n }\n }\n\n BackHandler.exitApp();\n});\n\n/**\n * Detect hardware button presses for back navigation.\n *\n * Android: Detect hardware back button presses, and programmatically invoke the default back button\n * functionality to exit the app if there are no listeners or if none of the listeners return true.\n *\n * iOS: Not applicable.\n *\n * The event subscriptions are called in reverse order (i.e. last registered subscription first),\n * and if one subscription returns true then subscriptions registered earlier will not be called.\n *\n * Example:\n *\n * ```javascript\n * BackHandler.addEventListener('hardwareBackPress', function() {\n * // this.onMainScreen and this.goBack are just examples, you need to use your own implementation here\n * // Typically you would use the navigator here to go to the last state.\n *\n * if (!this.onMainScreen()) {\n * this.goBack();\n * return true;\n * }\n * return false;\n * });\n * ```\n */\ntype TBackHandler = {|\n +exitApp: () => void,\n +addEventListener: (\n eventName: BackPressEventName,\n handler: () => ?boolean,\n ) => {remove: () => void, ...},\n +removeEventListener: (\n eventName: BackPressEventName,\n handler: () => ?boolean,\n ) => void,\n|};\nconst BackHandler: TBackHandler = {\n exitApp: function (): void {\n if (!NativeDeviceEventManager) {\n return;\n }\n\n NativeDeviceEventManager.invokeDefaultBackPressHandler();\n },\n\n /**\n * Adds an event handler. Supported events:\n *\n * - `hardwareBackPress`: Fires when the Android hardware back button is pressed.\n */\n addEventListener: function (\n eventName: BackPressEventName,\n handler: () => ?boolean,\n ): {remove: () => void, ...} {\n if (_backPressSubscriptions.indexOf(handler) === -1) {\n _backPressSubscriptions.push(handler);\n }\n return {\n remove: (): void => BackHandler.removeEventListener(eventName, handler),\n };\n },\n\n /**\n * Removes the event handler.\n */\n removeEventListener: function (\n eventName: BackPressEventName,\n handler: () => ?boolean,\n ): void {\n const index = _backPressSubscriptions.indexOf(handler);\n if (index !== -1) {\n _backPressSubscriptions.splice(index, 1);\n }\n },\n};\n\nmodule.exports = BackHandler;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +invokeDefaultBackPressHandler: () => void;\n}\n\nexport default (TurboModuleRegistry.get('DeviceEventManager'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport typeof BatchedBridge from '../BatchedBridge/BatchedBridge';\nimport typeof legacySendAccessibilityEvent from '../Components/AccessibilityInfo/legacySendAccessibilityEvent';\nimport typeof TextInputState from '../Components/TextInput/TextInputState';\nimport typeof ExceptionsManager from '../Core/ExceptionsManager';\nimport typeof RawEventEmitter from '../Core/RawEventEmitter';\nimport typeof ReactFiberErrorDialog from '../Core/ReactFiberErrorDialog';\nimport typeof RCTEventEmitter from '../EventEmitter/RCTEventEmitter';\nimport typeof CustomEvent from '../Events/CustomEvent';\nimport typeof UIManager from '../ReactNative/UIManager';\nimport typeof ReactNativeViewConfigRegistry from '../Renderer/shims/ReactNativeViewConfigRegistry';\nimport typeof flattenStyle from '../StyleSheet/flattenStyle';\nimport typeof deepFreezeAndThrowOnMutationInDev from '../Utilities/deepFreezeAndThrowOnMutationInDev';\nimport typeof deepDiffer from '../Utilities/differ/deepDiffer';\nimport typeof Platform from '../Utilities/Platform';\n\nimport {type DangerouslyImpreciseStyleProp} from '../StyleSheet/StyleSheet';\n\n// flowlint unsafe-getters-setters:off\nmodule.exports = {\n get BatchedBridge(): BatchedBridge {\n return require('../BatchedBridge/BatchedBridge');\n },\n get ExceptionsManager(): ExceptionsManager {\n return require('../Core/ExceptionsManager');\n },\n get Platform(): Platform {\n return require('../Utilities/Platform');\n },\n get RCTEventEmitter(): RCTEventEmitter {\n return require('../EventEmitter/RCTEventEmitter');\n },\n get ReactNativeViewConfigRegistry(): ReactNativeViewConfigRegistry {\n return require('../Renderer/shims/ReactNativeViewConfigRegistry');\n },\n get TextInputState(): TextInputState {\n return require('../Components/TextInput/TextInputState');\n },\n get UIManager(): UIManager {\n return require('../ReactNative/UIManager');\n },\n get deepDiffer(): deepDiffer {\n return require('../Utilities/differ/deepDiffer');\n },\n get deepFreezeAndThrowOnMutationInDev(): deepFreezeAndThrowOnMutationInDev<\n {...} | Array,\n > {\n return require('../Utilities/deepFreezeAndThrowOnMutationInDev');\n },\n get flattenStyle(): flattenStyle {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n return require('../StyleSheet/flattenStyle');\n },\n get ReactFiberErrorDialog(): ReactFiberErrorDialog {\n return require('../Core/ReactFiberErrorDialog').default;\n },\n get legacySendAccessibilityEvent(): legacySendAccessibilityEvent {\n return require('../Components/AccessibilityInfo/legacySendAccessibilityEvent');\n },\n get RawEventEmitter(): RawEventEmitter {\n return require('../Core/RawEventEmitter').default;\n },\n get CustomEvent(): CustomEvent {\n return require('../Events/CustomEvent').default;\n },\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nconst BatchedBridge = require('../BatchedBridge/BatchedBridge');\n\nconst RCTEventEmitter = {\n register(eventEmitter: any) {\n if (global.RN$Bridgeless) {\n global.RN$registerCallableModule('RCTEventEmitter', () => eventEmitter);\n } else {\n BatchedBridge.registerCallableModule('RCTEventEmitter', eventEmitter);\n }\n },\n};\n\nmodule.exports = RCTEventEmitter;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n// This class is responsible for coordinating the \"focused\" state for\n// TextInputs. All calls relating to the keyboard should be funneled\n// through here.\n\nimport type {\n HostComponent,\n MeasureInWindowOnSuccessCallback,\n MeasureLayoutOnSuccessCallback,\n MeasureOnSuccessCallback,\n} from '../../Renderer/shims/ReactNativeTypes';\n\nimport {Commands as AndroidTextInputCommands} from '../../Components/TextInput/AndroidTextInputNativeComponent';\nimport {Commands as iOSTextInputCommands} from '../../Components/TextInput/RCTSingelineTextInputNativeComponent';\n\nconst {findNodeHandle} = require('../../ReactNative/RendererProxy');\nconst Platform = require('../../Utilities/Platform');\nconst React = require('react');\ntype ComponentRef = React.ElementRef>;\n\nlet currentlyFocusedInputRef: ?ComponentRef = null;\nconst inputs = new Set<{\n blur(): void,\n focus(): void,\n measure(callback: MeasureOnSuccessCallback): void,\n measureInWindow(callback: MeasureInWindowOnSuccessCallback): void,\n measureLayout(\n relativeToNativeNode: number | React.ElementRef>,\n onSuccess: MeasureLayoutOnSuccessCallback,\n onFail?: () => void,\n ): void,\n setNativeProps(nativeProps: {...}): void,\n}>();\n\nfunction currentlyFocusedInput(): ?ComponentRef {\n return currentlyFocusedInputRef;\n}\n\n/**\n * Returns the ID of the currently focused text field, if one exists\n * If no text field is focused it returns null\n */\nfunction currentlyFocusedField(): ?number {\n if (__DEV__) {\n console.error(\n 'currentlyFocusedField is deprecated and will be removed in a future release. Use currentlyFocusedInput',\n );\n }\n\n return findNodeHandle(currentlyFocusedInputRef);\n}\n\nfunction focusInput(textField: ?ComponentRef): void {\n if (currentlyFocusedInputRef !== textField && textField != null) {\n currentlyFocusedInputRef = textField;\n }\n}\n\nfunction blurInput(textField: ?ComponentRef): void {\n if (currentlyFocusedInputRef === textField && textField != null) {\n currentlyFocusedInputRef = null;\n }\n}\n\nfunction focusField(textFieldID: ?number): void {\n if (__DEV__) {\n console.error('focusField no longer works. Use focusInput');\n }\n\n return;\n}\n\nfunction blurField(textFieldID: ?number) {\n if (__DEV__) {\n console.error('blurField no longer works. Use blurInput');\n }\n\n return;\n}\n\n/**\n * @param {number} TextInputID id of the text field to focus\n * Focuses the specified text field\n * noop if the text field was already focused or if the field is not editable\n */\nfunction focusTextInput(textField: ?ComponentRef) {\n if (typeof textField === 'number') {\n if (__DEV__) {\n console.error(\n 'focusTextInput must be called with a host component. Passing a react tag is deprecated.',\n );\n }\n\n return;\n }\n\n if (textField != null) {\n const fieldCanBeFocused =\n currentlyFocusedInputRef !== textField &&\n // $FlowFixMe - `currentProps` is missing in `NativeMethods`\n textField.currentProps?.editable !== false;\n\n if (!fieldCanBeFocused) {\n return;\n }\n focusInput(textField);\n if (Platform.OS === 'ios') {\n // This isn't necessarily a single line text input\n // But commands don't actually care as long as the thing being passed in\n // actually has a command with that name. So this should work with single\n // and multiline text inputs. Ideally we'll merge them into one component\n // in the future.\n iOSTextInputCommands.focus(textField);\n } else if (Platform.OS === 'android') {\n AndroidTextInputCommands.focus(textField);\n }\n }\n}\n\n/**\n * @param {number} textFieldID id of the text field to unfocus\n * Unfocuses the specified text field\n * noop if it wasn't focused\n */\nfunction blurTextInput(textField: ?ComponentRef) {\n if (typeof textField === 'number') {\n if (__DEV__) {\n console.error(\n 'blurTextInput must be called with a host component. Passing a react tag is deprecated.',\n );\n }\n\n return;\n }\n\n if (currentlyFocusedInputRef === textField && textField != null) {\n blurInput(textField);\n if (Platform.OS === 'ios') {\n // This isn't necessarily a single line text input\n // But commands don't actually care as long as the thing being passed in\n // actually has a command with that name. So this should work with single\n // and multiline text inputs. Ideally we'll merge them into one component\n // in the future.\n iOSTextInputCommands.blur(textField);\n } else if (Platform.OS === 'android') {\n AndroidTextInputCommands.blur(textField);\n }\n }\n}\n\nfunction registerInput(textField: ComponentRef) {\n if (typeof textField === 'number') {\n if (__DEV__) {\n console.error(\n 'registerInput must be called with a host component. Passing a react tag is deprecated.',\n );\n }\n\n return;\n }\n\n inputs.add(textField);\n}\n\nfunction unregisterInput(textField: ComponentRef) {\n if (typeof textField === 'number') {\n if (__DEV__) {\n console.error(\n 'unregisterInput must be called with a host component. Passing a react tag is deprecated.',\n );\n }\n\n return;\n }\n inputs.delete(textField);\n}\n\nfunction isTextInput(textField: ComponentRef): boolean {\n if (typeof textField === 'number') {\n if (__DEV__) {\n console.error(\n 'isTextInput must be called with a host component. Passing a react tag is deprecated.',\n );\n }\n\n return false;\n }\n\n return inputs.has(textField);\n}\n\nmodule.exports = {\n currentlyFocusedInput,\n focusInput,\n blurInput,\n\n currentlyFocusedField,\n focusField,\n blurField,\n focusTextInput,\n blurTextInput,\n registerInput,\n unregisterInput,\n isTextInput,\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {\n ColorValue,\n TextStyleProp,\n ViewStyleProp,\n} from '../../StyleSheet/StyleSheet';\nimport type {\n BubblingEventHandler,\n DirectEventHandler,\n Double,\n Float,\n Int32,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\nimport type {TextInputNativeCommands} from './TextInputNativeCommands';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\n\nexport type KeyboardType =\n // Cross Platform\n | 'default'\n | 'email-address'\n | 'numeric'\n | 'phone-pad'\n | 'number-pad'\n | 'decimal-pad'\n | 'url'\n // iOS-only\n | 'ascii-capable'\n | 'numbers-and-punctuation'\n | 'name-phone-pad'\n | 'twitter'\n | 'web-search'\n // Android-only\n | 'visible-password';\n\nexport type ReturnKeyType =\n // Cross Platform\n | 'done'\n | 'go'\n | 'next'\n | 'search'\n | 'send'\n // Android-only\n | 'none'\n | 'previous'\n // iOS-only\n | 'default'\n | 'emergency-call'\n | 'google'\n | 'join'\n | 'route'\n | 'yahoo';\n\nexport type SubmitBehavior = 'submit' | 'blurAndSubmit' | 'newline';\n\nexport type NativeProps = $ReadOnly<{|\n // This allows us to inherit everything from ViewProps except for style (see below)\n // This must be commented for Fabric codegen to work.\n ...$Diff>,\n\n /**\n * Android props after this\n */\n /**\n * Specifies autocomplete hints for the system, so it can provide autofill. On Android, the system will always attempt to offer autofill by using heuristics to identify the type of content.\n * To disable autocomplete, set `autoComplete` to `off`.\n *\n * *Android Only*\n *\n * Possible values for `autoComplete` are:\n *\n * - `birthdate-day`\n * - `birthdate-full`\n * - `birthdate-month`\n * - `birthdate-year`\n * - `cc-csc`\n * - `cc-exp`\n * - `cc-exp-day`\n * - `cc-exp-month`\n * - `cc-exp-year`\n * - `cc-number`\n * - `email`\n * - `gender`\n * - `name`\n * - `name-family`\n * - `name-given`\n * - `name-middle`\n * - `name-middle-initial`\n * - `name-prefix`\n * - `name-suffix`\n * - `password`\n * - `password-new`\n * - `postal-address`\n * - `postal-address-country`\n * - `postal-address-extended`\n * - `postal-address-extended-postal-code`\n * - `postal-address-locality`\n * - `postal-address-region`\n * - `postal-code`\n * - `street-address`\n * - `sms-otp`\n * - `tel`\n * - `tel-country-code`\n * - `tel-national`\n * - `tel-device`\n * - `username`\n * - `username-new`\n * - `off`\n *\n * @platform android\n */\n autoComplete?: WithDefault<\n | 'birthdate-day'\n | 'birthdate-full'\n | 'birthdate-month'\n | 'birthdate-year'\n | 'cc-csc'\n | 'cc-exp'\n | 'cc-exp-day'\n | 'cc-exp-month'\n | 'cc-exp-year'\n | 'cc-number'\n | 'email'\n | 'gender'\n | 'name'\n | 'name-family'\n | 'name-given'\n | 'name-middle'\n | 'name-middle-initial'\n | 'name-prefix'\n | 'name-suffix'\n | 'password'\n | 'password-new'\n | 'postal-address'\n | 'postal-address-country'\n | 'postal-address-extended'\n | 'postal-address-extended-postal-code'\n | 'postal-address-locality'\n | 'postal-address-region'\n | 'postal-code'\n | 'street-address'\n | 'sms-otp'\n | 'tel'\n | 'tel-country-code'\n | 'tel-national'\n | 'tel-device'\n | 'username'\n | 'username-new'\n | 'off',\n 'off',\n >,\n\n /**\n * Sets the return key to the label. Use it instead of `returnKeyType`.\n * @platform android\n */\n returnKeyLabel?: ?string,\n\n /**\n * Sets the number of lines for a `TextInput`. Use it with multiline set to\n * `true` to be able to fill the lines.\n * @platform android\n */\n numberOfLines?: ?Int32,\n\n /**\n * When `false`, if there is a small amount of space available around a text input\n * (e.g. landscape orientation on a phone), the OS may choose to have the user edit\n * the text inside of a full screen text input mode. When `true`, this feature is\n * disabled and users will always edit the text directly inside of the text input.\n * Defaults to `false`.\n * @platform android\n */\n disableFullscreenUI?: ?boolean,\n\n /**\n * Set text break strategy on Android API Level 23+, possible values are `simple`, `highQuality`, `balanced`\n * The default value is `simple`.\n * @platform android\n */\n textBreakStrategy?: WithDefault<\n 'simple' | 'highQuality' | 'balanced',\n 'simple',\n >,\n\n /**\n * The color of the `TextInput` underline.\n * @platform android\n */\n underlineColorAndroid?: ?ColorValue,\n\n /**\n * If defined, the provided image resource will be rendered on the left.\n * The image resource must be inside `/android/app/src/main/res/drawable` and referenced\n * like\n * ```\n * \n * ```\n * @platform android\n */\n inlineImageLeft?: ?string,\n\n /**\n * Padding between the inline image, if any, and the text input itself.\n * @platform android\n */\n inlineImagePadding?: ?Int32,\n\n importantForAutofill?: string /*?(\n | 'auto'\n | 'no'\n | 'noExcludeDescendants'\n | 'yes'\n | 'yesExcludeDescendants'\n ),*/,\n\n /**\n * When `false`, it will prevent the soft keyboard from showing when the field is focused.\n * Defaults to `true`.\n */\n showSoftInputOnFocus?: ?boolean,\n\n /**\n * TextInput props after this\n */\n /**\n * Can tell `TextInput` to automatically capitalize certain characters.\n *\n * - `characters`: all characters.\n * - `words`: first letter of each word.\n * - `sentences`: first letter of each sentence (*default*).\n * - `none`: don't auto capitalize anything.\n */\n autoCapitalize?: WithDefault<\n 'none' | 'sentences' | 'words' | 'characters',\n 'none',\n >,\n\n /**\n * If `false`, disables auto-correct. The default value is `true`.\n */\n autoCorrect?: ?boolean,\n\n /**\n * If `true`, focuses the input on `componentDidMount`.\n * The default value is `false`.\n */\n autoFocus?: ?boolean,\n\n /**\n * Specifies whether fonts should scale to respect Text Size accessibility settings. The\n * default is `true`.\n */\n allowFontScaling?: ?boolean,\n\n /**\n * Specifies largest possible scale a font can reach when `allowFontScaling` is enabled.\n * Possible values:\n * `null/undefined` (default): inherit from the parent node or the global default (0)\n * `0`: no max, ignore parent/global default\n * `>= 1`: sets the maxFontSizeMultiplier of this node to this value\n */\n maxFontSizeMultiplier?: ?Float,\n\n /**\n * If `false`, text is not editable. The default value is `true`.\n */\n editable?: ?boolean,\n\n /**\n * Determines which keyboard to open, e.g.`numeric`.\n *\n * The following values work across platforms:\n *\n * - `default`\n * - `numeric`\n * - `number-pad`\n * - `decimal-pad`\n * - `email-address`\n * - `phone-pad`\n * - `url`\n *\n * *Android Only*\n *\n * The following values work on Android only:\n *\n * - `visible-password`\n */\n keyboardType?: WithDefault,\n\n /**\n * Determines how the return key should look. On Android you can also use\n * `returnKeyLabel`.\n *\n * *Cross platform*\n *\n * The following values work across platforms:\n *\n * - `done`\n * - `go`\n * - `next`\n * - `search`\n * - `send`\n *\n * *Android Only*\n *\n * The following values work on Android only:\n *\n * - `none`\n * - `previous`\n */\n returnKeyType?: WithDefault,\n\n /**\n * Limits the maximum number of characters that can be entered. Use this\n * instead of implementing the logic in JS to avoid flicker.\n */\n maxLength?: ?Int32,\n\n /**\n * If `true`, the text input can be multiple lines.\n * The default value is `false`.\n */\n multiline?: ?boolean,\n\n /**\n * Callback that is called when the text input is blurred.\n * `target` is the reactTag of the element\n */\n onBlur?: ?BubblingEventHandler<$ReadOnly<{|target: Int32|}>>,\n\n /**\n * Callback that is called when the text input is focused.\n * `target` is the reactTag of the element\n */\n onFocus?: ?BubblingEventHandler<$ReadOnly<{|target: Int32|}>>,\n\n /**\n * Callback that is called when the text input's text changes.\n * `target` is the reactTag of the element\n * TODO: differentiate between onChange and onChangeText\n */\n onChange?: ?BubblingEventHandler<\n $ReadOnly<{|target: Int32, eventCount: Int32, text: string|}>,\n >,\n\n /**\n * Callback that is called when the text input's text changes.\n * Changed text is passed as an argument to the callback handler.\n * TODO: differentiate between onChange and onChangeText\n */\n onChangeText?: ?BubblingEventHandler<\n $ReadOnly<{|target: Int32, eventCount: Int32, text: string|}>,\n >,\n\n /**\n * Callback that is called when the text input's content size changes.\n * This will be called with\n * `{ nativeEvent: { contentSize: { width, height } } }`.\n *\n * Only called for multiline text inputs.\n */\n onContentSizeChange?: ?DirectEventHandler<\n $ReadOnly<{|\n target: Int32,\n contentSize: $ReadOnly<{|width: Double, height: Double|}>,\n |}>,\n >,\n\n onTextInput?: ?BubblingEventHandler<\n $ReadOnly<{|\n target: Int32,\n text: string,\n previousText: string,\n range: $ReadOnly<{|start: Double, end: Double|}>,\n |}>,\n >,\n\n /**\n * Callback that is called when text input ends.\n */\n onEndEditing?: ?BubblingEventHandler<\n $ReadOnly<{|target: Int32, text: string|}>,\n >,\n\n /**\n * Callback that is called when the text input selection is changed.\n * This will be called with\n * `{ nativeEvent: { selection: { start, end } } }`.\n */\n onSelectionChange?: ?DirectEventHandler<\n $ReadOnly<{|\n target: Int32,\n selection: $ReadOnly<{|start: Double, end: Double|}>,\n |}>,\n >,\n\n /**\n * Callback that is called when the text input's submit button is pressed.\n * Invalid if `multiline={true}` is specified.\n */\n onSubmitEditing?: ?BubblingEventHandler<\n $ReadOnly<{|target: Int32, text: string|}>,\n >,\n\n /**\n * Callback that is called when a key is pressed.\n * This will be called with `{ nativeEvent: { key: keyValue } }`\n * where `keyValue` is `'Enter'` or `'Backspace'` for respective keys and\n * the typed-in character otherwise including `' '` for space.\n * Fires before `onChange` callbacks.\n */\n onKeyPress?: ?BubblingEventHandler<$ReadOnly<{|target: Int32, key: string|}>>,\n\n /**\n * Invoked on content scroll with `{ nativeEvent: { contentOffset: { x, y } } }`.\n * May also contain other properties from ScrollEvent but on Android contentSize\n * is not provided for performance reasons.\n */\n onScroll?: ?DirectEventHandler<\n $ReadOnly<{|\n target: Int32,\n responderIgnoreScroll: boolean,\n contentInset: $ReadOnly<{|\n top: Double, // always 0 on Android\n bottom: Double, // always 0 on Android\n left: Double, // always 0 on Android\n right: Double, // always 0 on Android\n |}>,\n contentOffset: $ReadOnly<{|\n x: Double,\n y: Double,\n |}>,\n contentSize: $ReadOnly<{|\n width: Double, // always 0 on Android\n height: Double, // always 0 on Android\n |}>,\n layoutMeasurement: $ReadOnly<{|\n width: Double,\n height: Double,\n |}>,\n velocity: $ReadOnly<{|\n x: Double, // always 0 on Android\n y: Double, // always 0 on Android\n |}>,\n |}>,\n >,\n\n /**\n * The string that will be rendered before text input has been entered.\n */\n placeholder?: ?Stringish,\n\n /**\n * The text color of the placeholder string.\n */\n placeholderTextColor?: ?ColorValue,\n\n /**\n * If `true`, the text input obscures the text entered so that sensitive text\n * like passwords stay secure. The default value is `false`. Does not work with 'multiline={true}'.\n */\n secureTextEntry?: ?boolean,\n\n /**\n * The highlight and cursor color of the text input.\n */\n selectionColor?: ?ColorValue,\n\n /**\n * The start and end of the text input's selection. Set start and end to\n * the same value to position the cursor.\n */\n selection?: ?$ReadOnly<{|\n start: Int32,\n end?: ?Int32,\n |}>,\n\n /**\n * The value to show for the text input. `TextInput` is a controlled\n * component, which means the native value will be forced to match this\n * value prop if provided. For most uses, this works great, but in some\n * cases this may cause flickering - one common cause is preventing edits\n * by keeping value the same. In addition to simply setting the same value,\n * either set `editable={false}`, or set/update `maxLength` to prevent\n * unwanted edits without flicker.\n */\n value?: ?string,\n\n /**\n * Provides an initial value that will change when the user starts typing.\n * Useful for simple use-cases where you do not want to deal with listening\n * to events and updating the value prop to keep the controlled state in sync.\n */\n defaultValue?: ?string,\n\n /**\n * If `true`, all text will automatically be selected on focus.\n */\n selectTextOnFocus?: ?boolean,\n\n /**\n * If `true`, the text field will blur when submitted.\n * The default value is true for single-line fields and false for\n * multiline fields. Note that for multiline fields, setting `blurOnSubmit`\n * to `true` means that pressing return will blur the field and trigger the\n * `onSubmitEditing` event instead of inserting a newline into the field.\n *\n * @deprecated\n * Note that `submitBehavior` now takes the place of `blurOnSubmit` and will\n * override any behavior defined by `blurOnSubmit`.\n * @see submitBehavior\n */\n blurOnSubmit?: ?boolean,\n\n /**\n * When the return key is pressed,\n *\n * For single line inputs:\n *\n * - `'newline`' defaults to `'blurAndSubmit'`\n * - `undefined` defaults to `'blurAndSubmit'`\n *\n * For multiline inputs:\n *\n * - `'newline'` adds a newline\n * - `undefined` defaults to `'newline'`\n *\n * For both single line and multiline inputs:\n *\n * - `'submit'` will only send a submit event and not blur the input\n * - `'blurAndSubmit`' will both blur the input and send a submit event\n */\n submitBehavior?: ?SubmitBehavior,\n\n /**\n * Note that not all Text styles are supported, an incomplete list of what is not supported includes:\n *\n * - `borderLeftWidth`\n * - `borderTopWidth`\n * - `borderRightWidth`\n * - `borderBottomWidth`\n * - `borderTopLeftRadius`\n * - `borderTopRightRadius`\n * - `borderBottomRightRadius`\n * - `borderBottomLeftRadius`\n *\n * see [Issue#7070](https://github.com/facebook/react-native/issues/7070)\n * for more detail.\n *\n * [Styles](docs/style.html)\n */\n // TODO: figure out what to do with this style prop for codegen/Fabric purposes\n // This must be commented for Fabric codegen to work; it's currently not possible\n // to override the default View style prop in codegen.\n style?: ?TextStyleProp,\n\n /**\n * If `true`, caret is hidden. The default value is `false`.\n * This property is supported only for single-line TextInput component on iOS.\n */\n caretHidden?: ?boolean,\n\n /*\n * If `true`, contextMenuHidden is hidden. The default value is `false`.\n */\n contextMenuHidden?: ?boolean,\n\n /**\n * The following are props that `BaseTextShadowNode` takes. It is unclear if they\n * are used by TextInput.\n */\n textShadowColor?: ?ColorValue,\n textShadowRadius?: ?Float,\n textDecorationLine?: ?string,\n fontStyle?: ?string,\n textShadowOffset?: ?$ReadOnly<{|width?: ?Double, height?: ?Double|}>,\n lineHeight?: ?Float,\n textTransform?: ?string,\n color?: ?Int32,\n letterSpacing?: ?Float,\n fontSize?: ?Float,\n textAlign?: ?string,\n includeFontPadding?: ?boolean,\n fontWeight?: ?string,\n fontFamily?: ?string,\n\n /**\n * I cannot find where these are defined but JS complains without them.\n */\n textAlignVertical?: ?string,\n cursorColor?: ?ColorValue,\n\n /**\n * \"Private\" fields used by TextInput.js and not users of this component directly\n */\n mostRecentEventCount: Int32,\n text?: ?string,\n|}>;\n\ntype NativeType = HostComponent;\n\ntype NativeCommands = TextInputNativeCommands;\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['focus', 'blur', 'setTextAndSelection'],\n});\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {\n uiViewClassName: 'AndroidTextInput',\n bubblingEventTypes: {\n topBlur: {\n phasedRegistrationNames: {\n bubbled: 'onBlur',\n captured: 'onBlurCapture',\n },\n },\n topEndEditing: {\n phasedRegistrationNames: {\n bubbled: 'onEndEditing',\n captured: 'onEndEditingCapture',\n },\n },\n topFocus: {\n phasedRegistrationNames: {\n bubbled: 'onFocus',\n captured: 'onFocusCapture',\n },\n },\n topKeyPress: {\n phasedRegistrationNames: {\n bubbled: 'onKeyPress',\n captured: 'onKeyPressCapture',\n },\n },\n topSubmitEditing: {\n phasedRegistrationNames: {\n bubbled: 'onSubmitEditing',\n captured: 'onSubmitEditingCapture',\n },\n },\n topTextInput: {\n phasedRegistrationNames: {\n bubbled: 'onTextInput',\n captured: 'onTextInputCapture',\n },\n },\n },\n directEventTypes: {\n topScroll: {\n registrationName: 'onScroll',\n },\n },\n validAttributes: {\n maxFontSizeMultiplier: true,\n adjustsFontSizeToFit: true,\n minimumFontScale: true,\n autoFocus: true,\n placeholder: true,\n inlineImagePadding: true,\n contextMenuHidden: true,\n textShadowColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n maxLength: true,\n selectTextOnFocus: true,\n textShadowRadius: true,\n underlineColorAndroid: {\n process: require('../../StyleSheet/processColor').default,\n },\n textDecorationLine: true,\n submitBehavior: true,\n textAlignVertical: true,\n fontStyle: true,\n textShadowOffset: true,\n selectionColor: {process: require('../../StyleSheet/processColor').default},\n placeholderTextColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n importantForAutofill: true,\n lineHeight: true,\n textTransform: true,\n returnKeyType: true,\n keyboardType: true,\n multiline: true,\n color: {process: require('../../StyleSheet/processColor').default},\n autoComplete: true,\n numberOfLines: true,\n letterSpacing: true,\n returnKeyLabel: true,\n fontSize: true,\n onKeyPress: true,\n cursorColor: {process: require('../../StyleSheet/processColor').default},\n text: true,\n showSoftInputOnFocus: true,\n textAlign: true,\n autoCapitalize: true,\n autoCorrect: true,\n caretHidden: true,\n secureTextEntry: true,\n textBreakStrategy: true,\n onScroll: true,\n onContentSizeChange: true,\n disableFullscreenUI: true,\n includeFontPadding: true,\n fontWeight: true,\n fontFamily: true,\n allowFontScaling: true,\n onSelectionChange: true,\n mostRecentEventCount: true,\n inlineImageLeft: true,\n editable: true,\n fontVariant: true,\n borderBottomRightRadius: true,\n borderBottomColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderRadius: true,\n borderRightColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderColor: {process: require('../../StyleSheet/processColor').default},\n borderTopRightRadius: true,\n borderStyle: true,\n borderBottomLeftRadius: true,\n borderLeftColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderTopLeftRadius: true,\n borderTopColor: {process: require('../../StyleSheet/processColor').default},\n },\n};\n\nlet AndroidTextInputNativeComponent = NativeComponentRegistry.get(\n 'AndroidTextInput',\n () => __INTERNAL_VIEW_CONFIG,\n);\n\n// flowlint-next-line unclear-type:off\nexport default ((AndroidTextInputNativeComponent: any): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nlet logListeners;\n\ntype LogListeners = {|\n +onDifferentFunctionsIgnored: (nameOne: ?string, nameTwo: ?string) => void,\n|};\n\ntype Options = {|+unsafelyIgnoreFunctions?: boolean|};\n\nfunction unstable_setLogListeners(listeners: ?LogListeners) {\n logListeners = listeners;\n}\n\n/*\n * @returns {bool} true if different, false if equal\n */\nconst deepDiffer = function (\n one: any,\n two: any,\n maxDepthOrOptions: Options | number = -1,\n maybeOptions?: Options,\n): boolean {\n const options =\n typeof maxDepthOrOptions === 'number' ? maybeOptions : maxDepthOrOptions;\n const maxDepth =\n typeof maxDepthOrOptions === 'number' ? maxDepthOrOptions : -1;\n if (maxDepth === 0) {\n return true;\n }\n if (one === two) {\n // Short circuit on identical object references instead of traversing them.\n return false;\n }\n if (typeof one === 'function' && typeof two === 'function') {\n // We consider all functions equal unless explicitly configured otherwise\n let unsafelyIgnoreFunctions = options?.unsafelyIgnoreFunctions;\n if (unsafelyIgnoreFunctions == null) {\n if (\n logListeners &&\n logListeners.onDifferentFunctionsIgnored &&\n (!options || !('unsafelyIgnoreFunctions' in options))\n ) {\n logListeners.onDifferentFunctionsIgnored(one.name, two.name);\n }\n unsafelyIgnoreFunctions = true;\n }\n return !unsafelyIgnoreFunctions;\n }\n if (typeof one !== 'object' || one === null) {\n // Primitives can be directly compared\n return one !== two;\n }\n if (typeof two !== 'object' || two === null) {\n // We know they are different because the previous case would have triggered\n // otherwise.\n return true;\n }\n if (one.constructor !== two.constructor) {\n return true;\n }\n if (Array.isArray(one)) {\n // We know two is also an array because the constructors are equal\n const len = one.length;\n if (two.length !== len) {\n return true;\n }\n for (let ii = 0; ii < len; ii++) {\n if (deepDiffer(one[ii], two[ii], maxDepth - 1, options)) {\n return true;\n }\n }\n } else {\n for (const key in one) {\n if (deepDiffer(one[key], two[key], maxDepth - 1, options)) {\n return true;\n }\n }\n for (const twoKey in two) {\n // The only case we haven't checked yet is keys that are in two but aren't\n // in one, which means they are different.\n if (one[twoKey] === undefined && two[twoKey] !== undefined) {\n return true;\n }\n }\n }\n return false;\n};\n\ndeepDiffer.unstable_setLogListeners = unstable_setLogListeners;\nmodule.exports = deepDiffer;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\n/**\n * If your application is accepting different values for the same field over\n * time and is doing a diff on them, you can either (1) create a copy or\n * (2) ensure that those values are not mutated behind two passes.\n * This function helps you with (2) by freezing the object and throwing if\n * the user subsequently modifies the value.\n *\n * There are two caveats with this function:\n * - If the call site is not in strict mode, it will only throw when\n * mutating existing fields, adding a new one\n * will unfortunately fail silently :(\n * - If the object is already frozen or sealed, it will not continue the\n * deep traversal and will leave leaf nodes unfrozen.\n *\n * Freezing the object and adding the throw mechanism is expensive and will\n * only be used in DEV.\n */\nfunction deepFreezeAndThrowOnMutationInDev>(\n object: T,\n): T {\n if (__DEV__) {\n if (\n typeof object !== 'object' ||\n object === null ||\n Object.isFrozen(object) ||\n Object.isSealed(object)\n ) {\n return object;\n }\n\n // $FlowFixMe[not-an-object] `object` can be an array, but Object.keys works with arrays too\n const keys = Object.keys((object: {...} | Array));\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n const hasOwnProperty = Object.prototype.hasOwnProperty;\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (hasOwnProperty.call(object, key)) {\n Object.defineProperty(object, key, {\n get: identity.bind(null, object[key]),\n });\n Object.defineProperty(object, key, {\n set: throwOnImmutableMutation.bind(null, key),\n });\n }\n }\n\n Object.freeze(object);\n Object.seal(object);\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (hasOwnProperty.call(object, key)) {\n deepFreezeAndThrowOnMutationInDev(object[key]);\n }\n }\n }\n return object;\n}\n\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\nfunction throwOnImmutableMutation(key: empty, value) {\n throw Error(\n 'You attempted to set the key `' +\n key +\n '` with the value `' +\n JSON.stringify(value) +\n '` on an object that is meant to be immutable ' +\n 'and has been frozen.',\n );\n}\n\nfunction identity(value: mixed) {\n return value;\n}\n\nmodule.exports = deepFreezeAndThrowOnMutationInDev;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {ExtendedError} from './ExtendedError';\n\nimport {SyntheticError, handleException} from './ExceptionsManager';\n\nexport type CapturedError = {\n +componentStack: string,\n +error: mixed,\n +errorBoundary: ?{...},\n ...\n};\n\nconst ReactFiberErrorDialog = {\n /**\n * Intercept lifecycle errors and ensure they are shown with the correct stack\n * trace within the native redbox component.\n */\n showErrorDialog({componentStack, error: errorValue}: CapturedError): boolean {\n let error: ?ExtendedError;\n\n // Typically, `errorValue` should be an error. However, other values such as\n // strings (or even null) are sometimes thrown.\n if (errorValue instanceof Error) {\n /* $FlowFixMe[class-object-subtyping] added when improving typing for\n * this parameters */\n error = (errorValue: ExtendedError);\n } else if (typeof errorValue === 'string') {\n /* $FlowFixMe[class-object-subtyping] added when improving typing for\n * this parameters */\n error = (new SyntheticError(errorValue): ExtendedError);\n } else {\n /* $FlowFixMe[class-object-subtyping] added when improving typing for\n * this parameters */\n error = (new SyntheticError('Unspecified error'): ExtendedError);\n }\n try {\n error.componentStack = componentStack;\n error.isComponentError = true;\n } catch {\n // Ignored.\n }\n\n handleException(error, false);\n\n // Return false here to prevent ReactFiberErrorLogger default behavior of\n // logging error details to console.error. Calls to console.error are\n // automatically routed to the native redbox controller, which we've already\n // done above by calling ExceptionsManager.\n return false;\n },\n};\n\nexport default ReactFiberErrorDialog;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {IEventEmitter} from '../vendor/emitter/EventEmitter';\n\nimport EventEmitter from '../vendor/emitter/EventEmitter';\n\nexport type RawEventEmitterEvent = $ReadOnly<{|\n eventName: string,\n // We expect, but do not/cannot require, that nativeEvent is an object\n // with the properties: key, elementType (string), type (string), tag (numeric),\n // and a stateNode of the native element/Fiber the event was emitted to.\n nativeEvent: {[string]: mixed},\n|}>;\n\ntype RawEventDefinitions = {\n [eventChannel: string]: [RawEventEmitterEvent],\n};\n\nconst RawEventEmitter: IEventEmitter =\n new EventEmitter();\n\n// See the React renderer / react repo for how this is used.\n// Raw events are emitted here when they are received in JS\n// and before any event Plugins process them or before components\n// have a chance to respond to them. This allows you to implement\n// app-specific perf monitoring, which is unimplemented by default,\n// making this entire RawEventEmitter do nothing by default until\n// *you* add listeners for your own app.\n// Besides perf monitoring and maybe debugging, this RawEventEmitter\n// should not be used.\nexport default RawEventEmitter;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n// Make sure global Event is defined\nimport EventPolyfill from './EventPolyfill';\n\ntype CustomEvent$Options = $ReadOnly<{|\n bubbles?: boolean,\n cancelable?: boolean,\n composed?: boolean,\n detail?: {...},\n|}>;\n\nclass CustomEvent extends EventPolyfill {\n detail: ?{...};\n\n constructor(typeArg: string, options: CustomEvent$Options) {\n const {bubbles, cancelable, composed} = options;\n super(typeArg, {bubbles, cancelable, composed});\n\n this.detail = options.detail; // this would correspond to `NativeEvent` in SyntheticEvent\n }\n}\n\nexport default CustomEvent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n// https://dom.spec.whatwg.org/#dictdef-eventinit\ntype Event$Init = {\n bubbles?: boolean,\n cancelable?: boolean,\n composed?: boolean,\n /** Non-standard. See `composed` instead. */\n scoped?: boolean,\n ...\n};\n\n/**\n * This is a copy of the Event interface defined in Flow:\n * https://github.com/facebook/flow/blob/741104e69c43057ebd32804dd6bcc1b5e97548ea/lib/dom.js\n * which is itself a faithful interface of the W3 spec:\n * https://dom.spec.whatwg.org/#interface-event\n *\n * Since Flow assumes that Event is provided and is on the global object,\n * we must provide an implementation of Event for CustomEvent (and future\n * alignment of React Native's event system with the W3 spec).\n */\ninterface IEvent {\n constructor(type: string, eventInitDict?: Event$Init): void;\n /**\n * Returns the type of event, e.g. \"click\", \"hashchange\", or \"submit\".\n */\n +type: string;\n /**\n * Returns the object to which event is dispatched (its target).\n */\n +target: EventTarget; // TODO: nullable\n /** @deprecated */\n +srcElement: Element; // TODO: nullable\n /**\n * Returns the object whose event listener's callback is currently being invoked.\n */\n +currentTarget: EventTarget; // TODO: nullable\n /**\n * Returns the invocation target objects of event's path (objects on which\n * listeners will be invoked), except for any nodes in shadow trees of which\n * the shadow root's mode is \"closed\" that are not reachable from event's\n * currentTarget.\n */\n composedPath(): Array;\n\n +NONE: number;\n +AT_TARGET: number;\n +BUBBLING_PHASE: number;\n +CAPTURING_PHASE: number;\n /**\n * Returns the event's phase, which is one of NONE, CAPTURING_PHASE, AT_TARGET,\n * and BUBBLING_PHASE.\n */\n +eventPhase: number;\n\n /**\n * When dispatched in a tree, invoking this method prevents event from reaching\n * any objects other than the current object.\n */\n stopPropagation(): void;\n /**\n * Invoking this method prevents event from reaching any registered event\n * listeners after the current one finishes running and, when dispatched in a\n * tree, also prevents event from reaching any other objects.\n */\n stopImmediatePropagation(): void;\n\n /**\n * Returns true or false depending on how event was initialized. True if\n * event goes through its target's ancestors in reverse tree order, and\n * false otherwise.\n */\n +bubbles: boolean;\n /**\n * Returns true or false depending on how event was initialized. Its\n * return value does not always carry meaning, but true can indicate\n * that part of the operation during which event was dispatched, can\n * be canceled by invoking the preventDefault() method.\n */\n +cancelable: boolean;\n // returnValue: boolean; // legacy, and some subclasses still define it as a string!\n /**\n * If invoked when the cancelable attribute value is true, and while\n * executing a listener for the event with passive set to false, signals to\n * the operation that caused event to be dispatched that it needs to be\n * canceled.\n */\n preventDefault(): void;\n /**\n * Returns true if preventDefault() was invoked successfully to indicate\n * cancelation, and false otherwise.\n */\n +defaultPrevented: boolean;\n /**\n * Returns true or false depending on how event was initialized. True if\n * event invokes listeners past a ShadowRoot node that is the root of its\n * target, and false otherwise.\n */\n +composed: boolean;\n\n /**\n * Returns true if event was dispatched by the user agent, and false otherwise.\n */\n +isTrusted: boolean;\n /**\n * Returns the event's timestamp as the number of milliseconds measured relative\n * to the time origin.\n */\n +timeStamp: number;\n\n /** Non-standard. See Event.prototype.composedPath */\n +deepPath?: () => EventTarget[];\n /** Non-standard. See Event.prototype.composed */\n +scoped: boolean;\n\n /**\n * @deprecated\n */\n initEvent(type: string, bubbles: boolean, cancelable: boolean): void;\n}\n\nclass EventPolyfill implements IEvent {\n type: string;\n bubbles: boolean;\n cancelable: boolean;\n composed: boolean;\n // Non-standard. See `composed` instead.\n scoped: boolean;\n isTrusted: boolean;\n defaultPrevented: boolean;\n timeStamp: number;\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Event/eventPhase\n NONE: number;\n AT_TARGET: number;\n BUBBLING_PHASE: number;\n CAPTURING_PHASE: number;\n\n eventPhase: number;\n\n currentTarget: EventTarget; // TODO: nullable\n target: EventTarget; // TODO: nullable\n /** @deprecated */\n srcElement: Element; // TODO: nullable\n\n // React Native-specific: proxy data to a SyntheticEvent when\n // certain methods are called.\n // SyntheticEvent will also have a reference to this instance -\n // it is circular - and both classes use this reference to keep\n // data with the other in sync.\n _syntheticEvent: mixed;\n\n constructor(type: string, eventInitDict?: Event$Init) {\n this.type = type;\n this.bubbles = !!(eventInitDict?.bubbles || false);\n this.cancelable = !!(eventInitDict?.cancelable || false);\n this.composed = !!(eventInitDict?.composed || false);\n this.scoped = !!(eventInitDict?.scoped || false);\n\n // TODO: somehow guarantee that only \"private\" instantiations of Event\n // can set this to true\n this.isTrusted = false;\n\n // TODO: in the future we'll want to make sure this has the same\n // time-basis as events originating from native\n this.timeStamp = Date.now();\n\n this.defaultPrevented = false;\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Event/eventPhase\n this.NONE = 0;\n this.AT_TARGET = 1;\n this.BUBBLING_PHASE = 2;\n this.CAPTURING_PHASE = 3;\n this.eventPhase = this.NONE;\n\n // $FlowFixMe\n this.currentTarget = null;\n // $FlowFixMe\n this.target = null;\n // $FlowFixMe\n this.srcElement = null;\n }\n\n composedPath(): Array {\n throw new Error('TODO: not yet implemented');\n }\n\n preventDefault(): void {\n this.defaultPrevented = true;\n\n if (this._syntheticEvent != null) {\n // $FlowFixMe\n this._syntheticEvent.preventDefault();\n }\n }\n\n initEvent(type: string, bubbles: boolean, cancelable: boolean): void {\n throw new Error(\n 'TODO: not yet implemented. This method is also deprecated.',\n );\n }\n\n stopImmediatePropagation(): void {\n throw new Error('TODO: not yet implemented');\n }\n\n stopPropagation(): void {\n if (this._syntheticEvent != null) {\n // $FlowFixMe\n this._syntheticEvent.stopPropagation();\n }\n }\n\n setSyntheticEvent(value: mixed): void {\n this._syntheticEvent = value;\n }\n}\n\n// Assertion magic for polyfill follows.\ndeclare var checkEvent: Event; // eslint-disable-line no-unused-vars\n\n/*::\n// This can be a strict mode error at runtime so put it in a Flow comment.\n(checkEvent: IEvent);\n*/\n\nglobal.Event = EventPolyfill;\n\nexport default EventPolyfill;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.native.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.native.development.js');\n}\n","/**\n * @license React\n * scheduler.native.production.min.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(E,c))ng(A,E)?(a[d]=A,a[n]=c,d=n):(a[d]=E,a[m]=c,d=m);else if(ng(A,c))a[d]=A,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var l;if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var p=performance;l=function(){return p.now()}}else{var q=Date,r=q.now();l=function(){return q.now()-r}}var u=[],v=[],w=1,x=null,y=3,z=!1,B=!1,C=!1,D=\"function\"===typeof setTimeout?setTimeout:null,F=\"function\"===typeof clearTimeout?clearTimeout:null,G=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending?navigator.scheduling.isInputPending.bind(navigator.scheduling):null;function H(a){for(var b=h(v);null!==b;){if(null===b.callback)k(v);else if(b.startTime<=a)k(v),b.sortIndex=b.expirationTime,f(u,b);else break;b=h(v)}}function I(a){C=!1;H(a);if(!B)if(null!==h(u))B=!0,J=K,L||(L=!0,M());else{var b=h(v);null!==b&&N(I,b.startTime-a)}}\nfunction K(a,b){B=!1;C&&(C=!1,F(O),O=-1);z=!0;var c=y;try{a:{H(b);for(x=h(u);null!==x&&(!(x.expirationTime>b)||a&&!P());){var d=x.callback;if(\"function\"===typeof d){x.callback=null;y=x.priorityLevel;var e=d(x.expirationTime<=b);b=l();if(\"function\"===typeof e){x.callback=e;H(b);var t=!0;break a}else x===h(u)&&k(u),H(b)}else k(u);x=h(u)}if(null!==x)t=!0;else{var m=h(v);null!==m&&N(I,m.startTime-b);t=!1}}return t}finally{x=null,y=c,z=!1}}\nfunction Q(a,b,c){var d=l();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,f(v,a),null===h(u)&&a===h(v)&&(C?(F(O),O=-1):C=!0,N(I,c-d))):(a.sortIndex=e,f(u,a),B||z||(B=!0,J=K,L||(L=!0,M())));return a}function R(a){a.callback=null}function S(){return y}\nvar L=!1,J=null,O=-1,T=-1;function P(){return 5>l()-T?!1:!0}function U(){}function V(){if(null!==J){var a=l();T=a;var b=!0;try{b=J(!0,a)}finally{b?M():(L=!1,J=null)}}else L=!1}var M;if(\"function\"===typeof G)M=function(){G(V)};else if(\"undefined\"!==typeof MessageChannel){var W=new MessageChannel,X=W.port2;W.port1.onmessage=V;M=function(){X.postMessage(null)}}else M=function(){D(V,0)};function N(a,b){O=D(function(){a(l())},b)}\nvar Y=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_UserBlockingPriority:2,aa=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_NormalPriority:3,ba=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_LowPriority:4,ca=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_ImmediatePriority:1,da=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_scheduleCallback:Q,ea=\"undefined\"!==\ntypeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_cancelCallback:R,fa=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_getCurrentPriorityLevel:S,ha=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_shouldYield:P,ia=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_requestPaint:U,ja=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_now:l;\nfunction Z(){throw Error(\"Not implemented.\");}exports.unstable_IdlePriority=\"undefined\"!==typeof nativeRuntimeScheduler?nativeRuntimeScheduler.unstable_IdlePriority:5;exports.unstable_ImmediatePriority=ca;exports.unstable_LowPriority=ba;exports.unstable_NormalPriority=aa;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=Y;exports.unstable_cancelCallback=ea;exports.unstable_continueExecution=Z;exports.unstable_forceFrameRate=Z;exports.unstable_getCurrentPriorityLevel=fa;\nexports.unstable_getFirstCallbackNode=Z;exports.unstable_next=Z;exports.unstable_now=ja;exports.unstable_pauseExecution=Z;exports.unstable_requestPaint=ia;exports.unstable_runWithPriority=Z;exports.unstable_scheduleCallback=da;exports.unstable_shouldYield=ha;exports.unstable_wrapCallback=Z;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @noformat\n * @flow\n * @generated SignedSource<<744176db456e2656dac661d36e55f42a>>\n *\n * This file was sync'd from the facebook/react repository.\n */\n\n'use strict';\n\nimport type {ReactNativeType} from './ReactNativeTypes';\n\nlet ReactNative;\n\nif (__DEV__) {\n ReactNative = require('../implementations/ReactNativeRenderer-dev');\n} else {\n ReactNative = require('../implementations/ReactNativeRenderer-prod');\n}\n\nmodule.exports = (ReactNative: ReactNativeType);\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @noflow\n * @nolint\n * @providesModule ReactNativeRenderer-prod\n * @preventMunge\n * @generated SignedSource<<07cf699c0d1c149943b7a02432aa1550>>\n */\n\n\"use strict\";\nrequire(\"react-native/Libraries/ReactPrivate/ReactNativePrivateInitializeCore\");\nvar ReactNativePrivateInterface = require(\"react-native/Libraries/ReactPrivate/ReactNativePrivateInterface\"),\n React = require(\"react\"),\n Scheduler = require(\"scheduler\");\nfunction invokeGuardedCallbackImpl(name, func, context, a, b, c, d, e, f) {\n var funcArgs = Array.prototype.slice.call(arguments, 3);\n try {\n func.apply(context, funcArgs);\n } catch (error) {\n this.onError(error);\n }\n}\nvar hasError = !1,\n caughtError = null,\n hasRethrowError = !1,\n rethrowError = null,\n reporter = {\n onError: function(error) {\n hasError = !0;\n caughtError = error;\n }\n };\nfunction invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {\n hasError = !1;\n caughtError = null;\n invokeGuardedCallbackImpl.apply(reporter, arguments);\n}\nfunction invokeGuardedCallbackAndCatchFirstError(\n name,\n func,\n context,\n a,\n b,\n c,\n d,\n e,\n f\n) {\n invokeGuardedCallback.apply(this, arguments);\n if (hasError) {\n if (hasError) {\n var error = caughtError;\n hasError = !1;\n caughtError = null;\n } else\n throw Error(\n \"clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.\"\n );\n hasRethrowError || ((hasRethrowError = !0), (rethrowError = error));\n }\n}\nvar isArrayImpl = Array.isArray,\n getFiberCurrentPropsFromNode = null,\n getInstanceFromNode = null,\n getNodeFromInstance = null;\nfunction executeDispatch(event, listener, inst) {\n var type = event.type || \"unknown-event\";\n event.currentTarget = getNodeFromInstance(inst);\n invokeGuardedCallbackAndCatchFirstError(type, listener, void 0, event);\n event.currentTarget = null;\n}\nfunction executeDirectDispatch(event) {\n var dispatchListener = event._dispatchListeners,\n dispatchInstance = event._dispatchInstances;\n if (isArrayImpl(dispatchListener))\n throw Error(\"executeDirectDispatch(...): Invalid `event`.\");\n event.currentTarget = dispatchListener\n ? getNodeFromInstance(dispatchInstance)\n : null;\n dispatchListener = dispatchListener ? dispatchListener(event) : null;\n event.currentTarget = null;\n event._dispatchListeners = null;\n event._dispatchInstances = null;\n return dispatchListener;\n}\nvar assign = Object.assign;\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction SyntheticEvent(\n dispatchConfig,\n targetInst,\n nativeEvent,\n nativeEventTarget\n) {\n this.dispatchConfig = dispatchConfig;\n this._targetInst = targetInst;\n this.nativeEvent = nativeEvent;\n this._dispatchInstances = this._dispatchListeners = null;\n dispatchConfig = this.constructor.Interface;\n for (var propName in dispatchConfig)\n dispatchConfig.hasOwnProperty(propName) &&\n ((targetInst = dispatchConfig[propName])\n ? (this[propName] = targetInst(nativeEvent))\n : \"target\" === propName\n ? (this.target = nativeEventTarget)\n : (this[propName] = nativeEvent[propName]));\n this.isDefaultPrevented = (null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue)\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n}\nassign(SyntheticEvent.prototype, {\n preventDefault: function() {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function() {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble && (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function() {\n this.isPersistent = functionThatReturnsTrue;\n },\n isPersistent: functionThatReturnsFalse,\n destructor: function() {\n var Interface = this.constructor.Interface,\n propName;\n for (propName in Interface) this[propName] = null;\n this.nativeEvent = this._targetInst = this.dispatchConfig = null;\n this.isPropagationStopped = this.isDefaultPrevented = functionThatReturnsFalse;\n this._dispatchInstances = this._dispatchListeners = null;\n }\n});\nSyntheticEvent.Interface = {\n type: null,\n target: null,\n currentTarget: function() {\n return null;\n },\n eventPhase: null,\n bubbles: null,\n cancelable: null,\n timeStamp: function(event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: null,\n isTrusted: null\n};\nSyntheticEvent.extend = function(Interface) {\n function E() {}\n function Class() {\n return Super.apply(this, arguments);\n }\n var Super = this;\n E.prototype = Super.prototype;\n var prototype = new E();\n assign(prototype, Class.prototype);\n Class.prototype = prototype;\n Class.prototype.constructor = Class;\n Class.Interface = assign({}, Super.Interface, Interface);\n Class.extend = Super.extend;\n addEventPoolingTo(Class);\n return Class;\n};\naddEventPoolingTo(SyntheticEvent);\nfunction createOrGetPooledEvent(\n dispatchConfig,\n targetInst,\n nativeEvent,\n nativeInst\n) {\n if (this.eventPool.length) {\n var instance = this.eventPool.pop();\n this.call(instance, dispatchConfig, targetInst, nativeEvent, nativeInst);\n return instance;\n }\n return new this(dispatchConfig, targetInst, nativeEvent, nativeInst);\n}\nfunction releasePooledEvent(event) {\n if (!(event instanceof this))\n throw Error(\n \"Trying to release an event instance into a pool of a different type.\"\n );\n event.destructor();\n 10 > this.eventPool.length && this.eventPool.push(event);\n}\nfunction addEventPoolingTo(EventConstructor) {\n EventConstructor.getPooled = createOrGetPooledEvent;\n EventConstructor.eventPool = [];\n EventConstructor.release = releasePooledEvent;\n}\nvar ResponderSyntheticEvent = SyntheticEvent.extend({\n touchHistory: function() {\n return null;\n }\n});\nfunction isStartish(topLevelType) {\n return \"topTouchStart\" === topLevelType;\n}\nfunction isMoveish(topLevelType) {\n return \"topTouchMove\" === topLevelType;\n}\nvar startDependencies = [\"topTouchStart\"],\n moveDependencies = [\"topTouchMove\"],\n endDependencies = [\"topTouchCancel\", \"topTouchEnd\"],\n touchBank = [],\n touchHistory = {\n touchBank: touchBank,\n numberActiveTouches: 0,\n indexOfSingleActiveTouch: -1,\n mostRecentTimeStamp: 0\n };\nfunction timestampForTouch(touch) {\n return touch.timeStamp || touch.timestamp;\n}\nfunction getTouchIdentifier(_ref) {\n _ref = _ref.identifier;\n if (null == _ref) throw Error(\"Touch object is missing identifier.\");\n return _ref;\n}\nfunction recordTouchStart(touch) {\n var identifier = getTouchIdentifier(touch),\n touchRecord = touchBank[identifier];\n touchRecord\n ? ((touchRecord.touchActive = !0),\n (touchRecord.startPageX = touch.pageX),\n (touchRecord.startPageY = touch.pageY),\n (touchRecord.startTimeStamp = timestampForTouch(touch)),\n (touchRecord.currentPageX = touch.pageX),\n (touchRecord.currentPageY = touch.pageY),\n (touchRecord.currentTimeStamp = timestampForTouch(touch)),\n (touchRecord.previousPageX = touch.pageX),\n (touchRecord.previousPageY = touch.pageY),\n (touchRecord.previousTimeStamp = timestampForTouch(touch)))\n : ((touchRecord = {\n touchActive: !0,\n startPageX: touch.pageX,\n startPageY: touch.pageY,\n startTimeStamp: timestampForTouch(touch),\n currentPageX: touch.pageX,\n currentPageY: touch.pageY,\n currentTimeStamp: timestampForTouch(touch),\n previousPageX: touch.pageX,\n previousPageY: touch.pageY,\n previousTimeStamp: timestampForTouch(touch)\n }),\n (touchBank[identifier] = touchRecord));\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n}\nfunction recordTouchMove(touch) {\n var touchRecord = touchBank[getTouchIdentifier(touch)];\n touchRecord &&\n ((touchRecord.touchActive = !0),\n (touchRecord.previousPageX = touchRecord.currentPageX),\n (touchRecord.previousPageY = touchRecord.currentPageY),\n (touchRecord.previousTimeStamp = touchRecord.currentTimeStamp),\n (touchRecord.currentPageX = touch.pageX),\n (touchRecord.currentPageY = touch.pageY),\n (touchRecord.currentTimeStamp = timestampForTouch(touch)),\n (touchHistory.mostRecentTimeStamp = timestampForTouch(touch)));\n}\nfunction recordTouchEnd(touch) {\n var touchRecord = touchBank[getTouchIdentifier(touch)];\n touchRecord &&\n ((touchRecord.touchActive = !1),\n (touchRecord.previousPageX = touchRecord.currentPageX),\n (touchRecord.previousPageY = touchRecord.currentPageY),\n (touchRecord.previousTimeStamp = touchRecord.currentTimeStamp),\n (touchRecord.currentPageX = touch.pageX),\n (touchRecord.currentPageY = touch.pageY),\n (touchRecord.currentTimeStamp = timestampForTouch(touch)),\n (touchHistory.mostRecentTimeStamp = timestampForTouch(touch)));\n}\nvar instrumentationCallback,\n ResponderTouchHistoryStore = {\n instrument: function(callback) {\n instrumentationCallback = callback;\n },\n recordTouchTrack: function(topLevelType, nativeEvent) {\n null != instrumentationCallback &&\n instrumentationCallback(topLevelType, nativeEvent);\n if (isMoveish(topLevelType))\n nativeEvent.changedTouches.forEach(recordTouchMove);\n else if (isStartish(topLevelType))\n nativeEvent.changedTouches.forEach(recordTouchStart),\n (touchHistory.numberActiveTouches = nativeEvent.touches.length),\n 1 === touchHistory.numberActiveTouches &&\n (touchHistory.indexOfSingleActiveTouch =\n nativeEvent.touches[0].identifier);\n else if (\n \"topTouchEnd\" === topLevelType ||\n \"topTouchCancel\" === topLevelType\n )\n if (\n (nativeEvent.changedTouches.forEach(recordTouchEnd),\n (touchHistory.numberActiveTouches = nativeEvent.touches.length),\n 1 === touchHistory.numberActiveTouches)\n )\n for (\n topLevelType = 0;\n topLevelType < touchBank.length;\n topLevelType++\n )\n if (\n ((nativeEvent = touchBank[topLevelType]),\n null != nativeEvent && nativeEvent.touchActive)\n ) {\n touchHistory.indexOfSingleActiveTouch = topLevelType;\n break;\n }\n },\n touchHistory: touchHistory\n };\nfunction accumulate(current, next) {\n if (null == next)\n throw Error(\n \"accumulate(...): Accumulated items must not be null or undefined.\"\n );\n return null == current\n ? next\n : isArrayImpl(current)\n ? current.concat(next)\n : isArrayImpl(next)\n ? [current].concat(next)\n : [current, next];\n}\nfunction accumulateInto(current, next) {\n if (null == next)\n throw Error(\n \"accumulateInto(...): Accumulated items must not be null or undefined.\"\n );\n if (null == current) return next;\n if (isArrayImpl(current)) {\n if (isArrayImpl(next)) return current.push.apply(current, next), current;\n current.push(next);\n return current;\n }\n return isArrayImpl(next) ? [current].concat(next) : [current, next];\n}\nfunction forEachAccumulated(arr, cb, scope) {\n Array.isArray(arr) ? arr.forEach(cb, scope) : arr && cb.call(scope, arr);\n}\nvar responderInst = null,\n trackedTouchCount = 0;\nfunction changeResponder(nextResponderInst, blockHostResponder) {\n var oldResponderInst = responderInst;\n responderInst = nextResponderInst;\n if (null !== ResponderEventPlugin.GlobalResponderHandler)\n ResponderEventPlugin.GlobalResponderHandler.onChange(\n oldResponderInst,\n nextResponderInst,\n blockHostResponder\n );\n}\nvar eventTypes = {\n startShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onStartShouldSetResponder\",\n captured: \"onStartShouldSetResponderCapture\"\n },\n dependencies: startDependencies\n },\n scrollShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onScrollShouldSetResponder\",\n captured: \"onScrollShouldSetResponderCapture\"\n },\n dependencies: [\"topScroll\"]\n },\n selectionChangeShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onSelectionChangeShouldSetResponder\",\n captured: \"onSelectionChangeShouldSetResponderCapture\"\n },\n dependencies: [\"topSelectionChange\"]\n },\n moveShouldSetResponder: {\n phasedRegistrationNames: {\n bubbled: \"onMoveShouldSetResponder\",\n captured: \"onMoveShouldSetResponderCapture\"\n },\n dependencies: moveDependencies\n },\n responderStart: {\n registrationName: \"onResponderStart\",\n dependencies: startDependencies\n },\n responderMove: {\n registrationName: \"onResponderMove\",\n dependencies: moveDependencies\n },\n responderEnd: {\n registrationName: \"onResponderEnd\",\n dependencies: endDependencies\n },\n responderRelease: {\n registrationName: \"onResponderRelease\",\n dependencies: endDependencies\n },\n responderTerminationRequest: {\n registrationName: \"onResponderTerminationRequest\",\n dependencies: []\n },\n responderGrant: { registrationName: \"onResponderGrant\", dependencies: [] },\n responderReject: { registrationName: \"onResponderReject\", dependencies: [] },\n responderTerminate: {\n registrationName: \"onResponderTerminate\",\n dependencies: []\n }\n};\nfunction getParent(inst) {\n do inst = inst.return;\n while (inst && 5 !== inst.tag);\n return inst ? inst : null;\n}\nfunction traverseTwoPhase(inst, fn, arg) {\n for (var path = []; inst; ) path.push(inst), (inst = getParent(inst));\n for (inst = path.length; 0 < inst--; ) fn(path[inst], \"captured\", arg);\n for (inst = 0; inst < path.length; inst++) fn(path[inst], \"bubbled\", arg);\n}\nfunction getListener(inst, registrationName) {\n inst = inst.stateNode;\n if (null === inst) return null;\n inst = getFiberCurrentPropsFromNode(inst);\n if (null === inst) return null;\n if ((inst = inst[registrationName]) && \"function\" !== typeof inst)\n throw Error(\n \"Expected `\" +\n registrationName +\n \"` listener to be a function, instead got a value of `\" +\n typeof inst +\n \"` type.\"\n );\n return inst;\n}\nfunction accumulateDirectionalDispatches(inst, phase, event) {\n if (\n (phase = getListener(\n inst,\n event.dispatchConfig.phasedRegistrationNames[phase]\n ))\n )\n (event._dispatchListeners = accumulateInto(\n event._dispatchListeners,\n phase\n )),\n (event._dispatchInstances = accumulateInto(\n event._dispatchInstances,\n inst\n ));\n}\nfunction accumulateDirectDispatchesSingle(event) {\n if (event && event.dispatchConfig.registrationName) {\n var inst = event._targetInst;\n if (inst && event && event.dispatchConfig.registrationName) {\n var listener = getListener(inst, event.dispatchConfig.registrationName);\n listener &&\n ((event._dispatchListeners = accumulateInto(\n event._dispatchListeners,\n listener\n )),\n (event._dispatchInstances = accumulateInto(\n event._dispatchInstances,\n inst\n )));\n }\n }\n}\nfunction accumulateTwoPhaseDispatchesSingleSkipTarget(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n var targetInst = event._targetInst;\n targetInst = targetInst ? getParent(targetInst) : null;\n traverseTwoPhase(targetInst, accumulateDirectionalDispatches, event);\n }\n}\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n event &&\n event.dispatchConfig.phasedRegistrationNames &&\n traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);\n}\nvar ResponderEventPlugin = {\n _getResponder: function() {\n return responderInst;\n },\n eventTypes: eventTypes,\n extractEvents: function(\n topLevelType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n if (isStartish(topLevelType)) trackedTouchCount += 1;\n else if (\n \"topTouchEnd\" === topLevelType ||\n \"topTouchCancel\" === topLevelType\n )\n if (0 <= trackedTouchCount) --trackedTouchCount;\n else return null;\n ResponderTouchHistoryStore.recordTouchTrack(topLevelType, nativeEvent);\n if (\n targetInst &&\n ((\"topScroll\" === topLevelType && !nativeEvent.responderIgnoreScroll) ||\n (0 < trackedTouchCount && \"topSelectionChange\" === topLevelType) ||\n isStartish(topLevelType) ||\n isMoveish(topLevelType))\n ) {\n var shouldSetEventType = isStartish(topLevelType)\n ? eventTypes.startShouldSetResponder\n : isMoveish(topLevelType)\n ? eventTypes.moveShouldSetResponder\n : \"topSelectionChange\" === topLevelType\n ? eventTypes.selectionChangeShouldSetResponder\n : eventTypes.scrollShouldSetResponder;\n if (responderInst)\n b: {\n var JSCompiler_temp = responderInst;\n for (\n var depthA = 0, tempA = JSCompiler_temp;\n tempA;\n tempA = getParent(tempA)\n )\n depthA++;\n tempA = 0;\n for (var tempB = targetInst; tempB; tempB = getParent(tempB))\n tempA++;\n for (; 0 < depthA - tempA; )\n (JSCompiler_temp = getParent(JSCompiler_temp)), depthA--;\n for (; 0 < tempA - depthA; )\n (targetInst = getParent(targetInst)), tempA--;\n for (; depthA--; ) {\n if (\n JSCompiler_temp === targetInst ||\n JSCompiler_temp === targetInst.alternate\n )\n break b;\n JSCompiler_temp = getParent(JSCompiler_temp);\n targetInst = getParent(targetInst);\n }\n JSCompiler_temp = null;\n }\n else JSCompiler_temp = targetInst;\n targetInst = JSCompiler_temp;\n JSCompiler_temp = targetInst === responderInst;\n shouldSetEventType = ResponderSyntheticEvent.getPooled(\n shouldSetEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory;\n JSCompiler_temp\n ? forEachAccumulated(\n shouldSetEventType,\n accumulateTwoPhaseDispatchesSingleSkipTarget\n )\n : forEachAccumulated(\n shouldSetEventType,\n accumulateTwoPhaseDispatchesSingle\n );\n b: {\n JSCompiler_temp = shouldSetEventType._dispatchListeners;\n targetInst = shouldSetEventType._dispatchInstances;\n if (isArrayImpl(JSCompiler_temp))\n for (\n depthA = 0;\n depthA < JSCompiler_temp.length &&\n !shouldSetEventType.isPropagationStopped();\n depthA++\n ) {\n if (\n JSCompiler_temp[depthA](shouldSetEventType, targetInst[depthA])\n ) {\n JSCompiler_temp = targetInst[depthA];\n break b;\n }\n }\n else if (\n JSCompiler_temp &&\n JSCompiler_temp(shouldSetEventType, targetInst)\n ) {\n JSCompiler_temp = targetInst;\n break b;\n }\n JSCompiler_temp = null;\n }\n shouldSetEventType._dispatchInstances = null;\n shouldSetEventType._dispatchListeners = null;\n shouldSetEventType.isPersistent() ||\n shouldSetEventType.constructor.release(shouldSetEventType);\n if (JSCompiler_temp && JSCompiler_temp !== responderInst)\n if (\n ((shouldSetEventType = ResponderSyntheticEvent.getPooled(\n eventTypes.responderGrant,\n JSCompiler_temp,\n nativeEvent,\n nativeEventTarget\n )),\n (shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(\n shouldSetEventType,\n accumulateDirectDispatchesSingle\n ),\n (targetInst = !0 === executeDirectDispatch(shouldSetEventType)),\n responderInst)\n )\n if (\n ((depthA = ResponderSyntheticEvent.getPooled(\n eventTypes.responderTerminationRequest,\n responderInst,\n nativeEvent,\n nativeEventTarget\n )),\n (depthA.touchHistory = ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(depthA, accumulateDirectDispatchesSingle),\n (tempA =\n !depthA._dispatchListeners || executeDirectDispatch(depthA)),\n depthA.isPersistent() || depthA.constructor.release(depthA),\n tempA)\n ) {\n depthA = ResponderSyntheticEvent.getPooled(\n eventTypes.responderTerminate,\n responderInst,\n nativeEvent,\n nativeEventTarget\n );\n depthA.touchHistory = ResponderTouchHistoryStore.touchHistory;\n forEachAccumulated(depthA, accumulateDirectDispatchesSingle);\n var JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n [shouldSetEventType, depthA]\n );\n changeResponder(JSCompiler_temp, targetInst);\n } else\n (shouldSetEventType = ResponderSyntheticEvent.getPooled(\n eventTypes.responderReject,\n JSCompiler_temp,\n nativeEvent,\n nativeEventTarget\n )),\n (shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(\n shouldSetEventType,\n accumulateDirectDispatchesSingle\n ),\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n shouldSetEventType\n ));\n else\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n shouldSetEventType\n )),\n changeResponder(JSCompiler_temp, targetInst);\n else JSCompiler_temp$jscomp$0 = null;\n } else JSCompiler_temp$jscomp$0 = null;\n shouldSetEventType = responderInst && isStartish(topLevelType);\n JSCompiler_temp = responderInst && isMoveish(topLevelType);\n targetInst =\n responderInst &&\n (\"topTouchEnd\" === topLevelType || \"topTouchCancel\" === topLevelType);\n if (\n (shouldSetEventType = shouldSetEventType\n ? eventTypes.responderStart\n : JSCompiler_temp\n ? eventTypes.responderMove\n : targetInst\n ? eventTypes.responderEnd\n : null)\n )\n (shouldSetEventType = ResponderSyntheticEvent.getPooled(\n shouldSetEventType,\n responderInst,\n nativeEvent,\n nativeEventTarget\n )),\n (shouldSetEventType.touchHistory =\n ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(\n shouldSetEventType,\n accumulateDirectDispatchesSingle\n ),\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n shouldSetEventType\n ));\n shouldSetEventType = responderInst && \"topTouchCancel\" === topLevelType;\n if (\n (topLevelType =\n responderInst &&\n !shouldSetEventType &&\n (\"topTouchEnd\" === topLevelType || \"topTouchCancel\" === topLevelType))\n )\n a: {\n if ((topLevelType = nativeEvent.touches) && 0 !== topLevelType.length)\n for (\n JSCompiler_temp = 0;\n JSCompiler_temp < topLevelType.length;\n JSCompiler_temp++\n )\n if (\n ((targetInst = topLevelType[JSCompiler_temp].target),\n null !== targetInst &&\n void 0 !== targetInst &&\n 0 !== targetInst)\n ) {\n depthA = getInstanceFromNode(targetInst);\n b: {\n for (targetInst = responderInst; depthA; ) {\n if (\n targetInst === depthA ||\n targetInst === depthA.alternate\n ) {\n targetInst = !0;\n break b;\n }\n depthA = getParent(depthA);\n }\n targetInst = !1;\n }\n if (targetInst) {\n topLevelType = !1;\n break a;\n }\n }\n topLevelType = !0;\n }\n if (\n (topLevelType = shouldSetEventType\n ? eventTypes.responderTerminate\n : topLevelType\n ? eventTypes.responderRelease\n : null)\n )\n (nativeEvent = ResponderSyntheticEvent.getPooled(\n topLevelType,\n responderInst,\n nativeEvent,\n nativeEventTarget\n )),\n (nativeEvent.touchHistory = ResponderTouchHistoryStore.touchHistory),\n forEachAccumulated(nativeEvent, accumulateDirectDispatchesSingle),\n (JSCompiler_temp$jscomp$0 = accumulate(\n JSCompiler_temp$jscomp$0,\n nativeEvent\n )),\n changeResponder(null);\n return JSCompiler_temp$jscomp$0;\n },\n GlobalResponderHandler: null,\n injection: {\n injectGlobalResponderHandler: function(GlobalResponderHandler) {\n ResponderEventPlugin.GlobalResponderHandler = GlobalResponderHandler;\n }\n }\n },\n eventPluginOrder = null,\n namesToPlugins = {};\nfunction recomputePluginOrdering() {\n if (eventPluginOrder)\n for (var pluginName in namesToPlugins) {\n var pluginModule = namesToPlugins[pluginName],\n pluginIndex = eventPluginOrder.indexOf(pluginName);\n if (-1 >= pluginIndex)\n throw Error(\n \"EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `\" +\n (pluginName + \"`.\")\n );\n if (!plugins[pluginIndex]) {\n if (!pluginModule.extractEvents)\n throw Error(\n \"EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `\" +\n (pluginName + \"` does not.\")\n );\n plugins[pluginIndex] = pluginModule;\n pluginIndex = pluginModule.eventTypes;\n for (var eventName in pluginIndex) {\n var JSCompiler_inline_result = void 0;\n var dispatchConfig = pluginIndex[eventName],\n eventName$jscomp$0 = eventName;\n if (eventNameDispatchConfigs.hasOwnProperty(eventName$jscomp$0))\n throw Error(\n \"EventPluginRegistry: More than one plugin attempted to publish the same event name, `\" +\n (eventName$jscomp$0 + \"`.\")\n );\n eventNameDispatchConfigs[eventName$jscomp$0] = dispatchConfig;\n var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n if (phasedRegistrationNames) {\n for (JSCompiler_inline_result in phasedRegistrationNames)\n phasedRegistrationNames.hasOwnProperty(\n JSCompiler_inline_result\n ) &&\n publishRegistrationName(\n phasedRegistrationNames[JSCompiler_inline_result],\n pluginModule,\n eventName$jscomp$0\n );\n JSCompiler_inline_result = !0;\n } else\n dispatchConfig.registrationName\n ? (publishRegistrationName(\n dispatchConfig.registrationName,\n pluginModule,\n eventName$jscomp$0\n ),\n (JSCompiler_inline_result = !0))\n : (JSCompiler_inline_result = !1);\n if (!JSCompiler_inline_result)\n throw Error(\n \"EventPluginRegistry: Failed to publish event `\" +\n eventName +\n \"` for plugin `\" +\n pluginName +\n \"`.\"\n );\n }\n }\n }\n}\nfunction publishRegistrationName(registrationName, pluginModule) {\n if (registrationNameModules[registrationName])\n throw Error(\n \"EventPluginRegistry: More than one plugin attempted to publish the same registration name, `\" +\n (registrationName + \"`.\")\n );\n registrationNameModules[registrationName] = pluginModule;\n}\nvar plugins = [],\n eventNameDispatchConfigs = {},\n registrationNameModules = {};\nfunction getListeners(\n inst,\n registrationName,\n phase,\n dispatchToImperativeListeners\n) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n inst = getFiberCurrentPropsFromNode(stateNode);\n if (null === inst) return null;\n if ((inst = inst[registrationName]) && \"function\" !== typeof inst)\n throw Error(\n \"Expected `\" +\n registrationName +\n \"` listener to be a function, instead got a value of `\" +\n typeof inst +\n \"` type.\"\n );\n if (\n !(\n dispatchToImperativeListeners &&\n stateNode.canonical &&\n stateNode.canonical._eventListeners\n )\n )\n return inst;\n var listeners = [];\n inst && listeners.push(inst);\n var requestedPhaseIsCapture = \"captured\" === phase,\n mangledImperativeRegistrationName = requestedPhaseIsCapture\n ? \"rn:\" + registrationName.replace(/Capture$/, \"\")\n : \"rn:\" + registrationName;\n stateNode.canonical._eventListeners[mangledImperativeRegistrationName] &&\n 0 <\n stateNode.canonical._eventListeners[mangledImperativeRegistrationName]\n .length &&\n stateNode.canonical._eventListeners[\n mangledImperativeRegistrationName\n ].forEach(function(listenerObj) {\n if (\n (null != listenerObj.options.capture && listenerObj.options.capture) ===\n requestedPhaseIsCapture\n ) {\n var listenerFnWrapper = function(syntheticEvent) {\n var eventInst = new ReactNativePrivateInterface.CustomEvent(\n mangledImperativeRegistrationName,\n { detail: syntheticEvent.nativeEvent }\n );\n eventInst.isTrusted = !0;\n eventInst.setSyntheticEvent(syntheticEvent);\n for (\n var _len = arguments.length,\n args = Array(1 < _len ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n )\n args[_key - 1] = arguments[_key];\n listenerObj.listener.apply(listenerObj, [eventInst].concat(args));\n };\n listenerObj.options.once\n ? listeners.push(function() {\n stateNode.canonical.removeEventListener_unstable(\n mangledImperativeRegistrationName,\n listenerObj.listener,\n listenerObj.capture\n );\n listenerObj.invalidated ||\n ((listenerObj.invalidated = !0),\n listenerObj.listener.apply(listenerObj, arguments));\n })\n : listeners.push(listenerFnWrapper);\n }\n });\n return 0 === listeners.length\n ? null\n : 1 === listeners.length\n ? listeners[0]\n : listeners;\n}\nvar customBubblingEventTypes =\n ReactNativePrivateInterface.ReactNativeViewConfigRegistry\n .customBubblingEventTypes,\n customDirectEventTypes =\n ReactNativePrivateInterface.ReactNativeViewConfigRegistry\n .customDirectEventTypes;\nfunction accumulateListenersAndInstances(inst, event, listeners) {\n var listenersLength = listeners\n ? isArrayImpl(listeners)\n ? listeners.length\n : 1\n : 0;\n if (0 < listenersLength)\n if (\n ((event._dispatchListeners = accumulateInto(\n event._dispatchListeners,\n listeners\n )),\n null == event._dispatchInstances && 1 === listenersLength)\n )\n event._dispatchInstances = inst;\n else\n for (\n event._dispatchInstances = event._dispatchInstances || [],\n isArrayImpl(event._dispatchInstances) ||\n (event._dispatchInstances = [event._dispatchInstances]),\n listeners = 0;\n listeners < listenersLength;\n listeners++\n )\n event._dispatchInstances.push(inst);\n}\nfunction accumulateDirectionalDispatches$1(inst, phase, event) {\n phase = getListeners(\n inst,\n event.dispatchConfig.phasedRegistrationNames[phase],\n phase,\n !0\n );\n accumulateListenersAndInstances(inst, event, phase);\n}\nfunction traverseTwoPhase$1(inst, fn, arg, skipBubbling) {\n for (var path = []; inst; ) {\n path.push(inst);\n do inst = inst.return;\n while (inst && 5 !== inst.tag);\n inst = inst ? inst : null;\n }\n for (inst = path.length; 0 < inst--; ) fn(path[inst], \"captured\", arg);\n if (skipBubbling) fn(path[0], \"bubbled\", arg);\n else\n for (inst = 0; inst < path.length; inst++) fn(path[inst], \"bubbled\", arg);\n}\nfunction accumulateTwoPhaseDispatchesSingle$1(event) {\n event &&\n event.dispatchConfig.phasedRegistrationNames &&\n traverseTwoPhase$1(\n event._targetInst,\n accumulateDirectionalDispatches$1,\n event,\n !1\n );\n}\nfunction accumulateDirectDispatchesSingle$1(event) {\n if (event && event.dispatchConfig.registrationName) {\n var inst = event._targetInst;\n if (inst && event && event.dispatchConfig.registrationName) {\n var listeners = getListeners(\n inst,\n event.dispatchConfig.registrationName,\n \"bubbled\",\n !1\n );\n accumulateListenersAndInstances(inst, event, listeners);\n }\n }\n}\nif (eventPluginOrder)\n throw Error(\n \"EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.\"\n );\neventPluginOrder = Array.prototype.slice.call([\n \"ResponderEventPlugin\",\n \"ReactNativeBridgeEventPlugin\"\n]);\nrecomputePluginOrdering();\nvar injectedNamesToPlugins$jscomp$inline_229 = {\n ResponderEventPlugin: ResponderEventPlugin,\n ReactNativeBridgeEventPlugin: {\n eventTypes: {},\n extractEvents: function(\n topLevelType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n if (null == targetInst) return null;\n var bubbleDispatchConfig = customBubblingEventTypes[topLevelType],\n directDispatchConfig = customDirectEventTypes[topLevelType];\n if (!bubbleDispatchConfig && !directDispatchConfig)\n throw Error(\n 'Unsupported top level event type \"' + topLevelType + '\" dispatched'\n );\n topLevelType = SyntheticEvent.getPooled(\n bubbleDispatchConfig || directDispatchConfig,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n if (bubbleDispatchConfig)\n null != topLevelType &&\n null != topLevelType.dispatchConfig.phasedRegistrationNames &&\n topLevelType.dispatchConfig.phasedRegistrationNames.skipBubbling\n ? topLevelType &&\n topLevelType.dispatchConfig.phasedRegistrationNames &&\n traverseTwoPhase$1(\n topLevelType._targetInst,\n accumulateDirectionalDispatches$1,\n topLevelType,\n !0\n )\n : forEachAccumulated(\n topLevelType,\n accumulateTwoPhaseDispatchesSingle$1\n );\n else if (directDispatchConfig)\n forEachAccumulated(topLevelType, accumulateDirectDispatchesSingle$1);\n else return null;\n return topLevelType;\n }\n }\n },\n isOrderingDirty$jscomp$inline_230 = !1,\n pluginName$jscomp$inline_231;\nfor (pluginName$jscomp$inline_231 in injectedNamesToPlugins$jscomp$inline_229)\n if (\n injectedNamesToPlugins$jscomp$inline_229.hasOwnProperty(\n pluginName$jscomp$inline_231\n )\n ) {\n var pluginModule$jscomp$inline_232 =\n injectedNamesToPlugins$jscomp$inline_229[pluginName$jscomp$inline_231];\n if (\n !namesToPlugins.hasOwnProperty(pluginName$jscomp$inline_231) ||\n namesToPlugins[pluginName$jscomp$inline_231] !==\n pluginModule$jscomp$inline_232\n ) {\n if (namesToPlugins[pluginName$jscomp$inline_231])\n throw Error(\n \"EventPluginRegistry: Cannot inject two different event plugins using the same name, `\" +\n (pluginName$jscomp$inline_231 + \"`.\")\n );\n namesToPlugins[\n pluginName$jscomp$inline_231\n ] = pluginModule$jscomp$inline_232;\n isOrderingDirty$jscomp$inline_230 = !0;\n }\n }\nisOrderingDirty$jscomp$inline_230 && recomputePluginOrdering();\nvar instanceCache = new Map(),\n instanceProps = new Map();\nfunction getInstanceFromTag(tag) {\n return instanceCache.get(tag) || null;\n}\nfunction batchedUpdatesImpl(fn, bookkeeping) {\n return fn(bookkeeping);\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates(fn, bookkeeping) {\n if (isInsideEventHandler) return fn(bookkeeping);\n isInsideEventHandler = !0;\n try {\n return batchedUpdatesImpl(fn, bookkeeping);\n } finally {\n isInsideEventHandler = !1;\n }\n}\nvar eventQueue = null;\nfunction executeDispatchesAndReleaseTopLevel(e) {\n if (e) {\n var dispatchListeners = e._dispatchListeners,\n dispatchInstances = e._dispatchInstances;\n if (isArrayImpl(dispatchListeners))\n for (\n var i = 0;\n i < dispatchListeners.length && !e.isPropagationStopped();\n i++\n )\n executeDispatch(e, dispatchListeners[i], dispatchInstances[i]);\n else\n dispatchListeners &&\n executeDispatch(e, dispatchListeners, dispatchInstances);\n e._dispatchListeners = null;\n e._dispatchInstances = null;\n e.isPersistent() || e.constructor.release(e);\n }\n}\nvar EMPTY_NATIVE_EVENT = {};\nfunction _receiveRootNodeIDEvent(rootNodeID, topLevelType, nativeEventParam) {\n var nativeEvent = nativeEventParam || EMPTY_NATIVE_EVENT,\n inst = getInstanceFromTag(rootNodeID),\n target = null;\n null != inst && (target = inst.stateNode);\n batchedUpdates(function() {\n var JSCompiler_inline_result = target;\n for (\n var events = null, legacyPlugins = plugins, i = 0;\n i < legacyPlugins.length;\n i++\n ) {\n var possiblePlugin = legacyPlugins[i];\n possiblePlugin &&\n (possiblePlugin = possiblePlugin.extractEvents(\n topLevelType,\n inst,\n nativeEvent,\n JSCompiler_inline_result\n )) &&\n (events = accumulateInto(events, possiblePlugin));\n }\n JSCompiler_inline_result = events;\n null !== JSCompiler_inline_result &&\n (eventQueue = accumulateInto(eventQueue, JSCompiler_inline_result));\n JSCompiler_inline_result = eventQueue;\n eventQueue = null;\n if (JSCompiler_inline_result) {\n forEachAccumulated(\n JSCompiler_inline_result,\n executeDispatchesAndReleaseTopLevel\n );\n if (eventQueue)\n throw Error(\n \"processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.\"\n );\n if (hasRethrowError)\n throw ((JSCompiler_inline_result = rethrowError),\n (hasRethrowError = !1),\n (rethrowError = null),\n JSCompiler_inline_result);\n }\n });\n}\nReactNativePrivateInterface.RCTEventEmitter.register({\n receiveEvent: function(rootNodeID, topLevelType, nativeEventParam) {\n _receiveRootNodeIDEvent(rootNodeID, topLevelType, nativeEventParam);\n },\n receiveTouches: function(eventTopLevelType, touches, changedIndices) {\n if (\n \"topTouchEnd\" === eventTopLevelType ||\n \"topTouchCancel\" === eventTopLevelType\n ) {\n var JSCompiler_temp = [];\n for (var i = 0; i < changedIndices.length; i++) {\n var index$0 = changedIndices[i];\n JSCompiler_temp.push(touches[index$0]);\n touches[index$0] = null;\n }\n for (i = changedIndices = 0; i < touches.length; i++)\n (index$0 = touches[i]),\n null !== index$0 && (touches[changedIndices++] = index$0);\n touches.length = changedIndices;\n } else\n for (JSCompiler_temp = [], i = 0; i < changedIndices.length; i++)\n JSCompiler_temp.push(touches[changedIndices[i]]);\n for (\n changedIndices = 0;\n changedIndices < JSCompiler_temp.length;\n changedIndices++\n ) {\n i = JSCompiler_temp[changedIndices];\n i.changedTouches = JSCompiler_temp;\n i.touches = touches;\n index$0 = null;\n var target = i.target;\n null === target || void 0 === target || 1 > target || (index$0 = target);\n _receiveRootNodeIDEvent(index$0, eventTopLevelType, i);\n }\n }\n});\ngetFiberCurrentPropsFromNode = function(stateNode) {\n return instanceProps.get(stateNode._nativeTag) || null;\n};\ngetInstanceFromNode = getInstanceFromTag;\ngetNodeFromInstance = function(inst) {\n inst = inst.stateNode;\n var tag = inst._nativeTag;\n void 0 === tag && ((inst = inst.canonical), (tag = inst._nativeTag));\n if (!tag) throw Error(\"All native instances should have a tag.\");\n return inst;\n};\nResponderEventPlugin.injection.injectGlobalResponderHandler({\n onChange: function(from, to, blockNativeResponder) {\n null !== to\n ? ReactNativePrivateInterface.UIManager.setJSResponder(\n to.stateNode._nativeTag,\n blockNativeResponder\n )\n : ReactNativePrivateInterface.UIManager.clearJSResponder();\n }\n});\nvar ReactSharedInternals =\n React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,\n REACT_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_PROVIDER_TYPE = Symbol.for(\"react.provider\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nSymbol.for(\"react.debug_trace_mode\");\nvar REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.cache\");\nSymbol.for(\"react.tracing_marker\");\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type) return type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Consumer\";\n case REACT_PROVIDER_TYPE:\n return (type._context.displayName || \"Context\") + \".Provider\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nfunction getComponentNameFromFiber(fiber) {\n var type = fiber.type;\n switch (fiber.tag) {\n case 24:\n return \"Cache\";\n case 9:\n return (type.displayName || \"Context\") + \".Consumer\";\n case 10:\n return (type._context.displayName || \"Context\") + \".Provider\";\n case 18:\n return \"DehydratedFragment\";\n case 11:\n return (\n (fiber = type.render),\n (fiber = fiber.displayName || fiber.name || \"\"),\n type.displayName ||\n (\"\" !== fiber ? \"ForwardRef(\" + fiber + \")\" : \"ForwardRef\")\n );\n case 7:\n return \"Fragment\";\n case 5:\n return type;\n case 4:\n return \"Portal\";\n case 3:\n return \"Root\";\n case 6:\n return \"Text\";\n case 16:\n return getComponentNameFromType(type);\n case 8:\n return type === REACT_STRICT_MODE_TYPE ? \"StrictMode\" : \"Mode\";\n case 22:\n return \"Offscreen\";\n case 12:\n return \"Profiler\";\n case 21:\n return \"Scope\";\n case 13:\n return \"Suspense\";\n case 19:\n return \"SuspenseList\";\n case 25:\n return \"TracingMarker\";\n case 1:\n case 0:\n case 17:\n case 2:\n case 14:\n case 15:\n if (\"function\" === typeof type)\n return type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n }\n return null;\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(\"Unable to find node on an unmounted component.\");\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate)\n throw Error(\"Unable to find node on an unmounted component.\");\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(\"Unable to find node on an unmounted component.\");\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$1 = parentA.child; child$1; ) {\n if (child$1 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$1 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$1 = child$1.sibling;\n }\n if (!didFindChild) {\n for (child$1 = parentB.child; child$1; ) {\n if (child$1 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$1 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$1 = child$1.sibling;\n }\n if (!didFindChild)\n throw Error(\n \"Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.\"\n );\n }\n }\n if (a.alternate !== b)\n throw Error(\n \"Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (3 !== a.tag)\n throw Error(\"Unable to find node on an unmounted component.\");\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiber(parent) {\n parent = findCurrentFiberUsingSlowPath(parent);\n return null !== parent ? findCurrentHostFiberImpl(parent) : null;\n}\nfunction findCurrentHostFiberImpl(node) {\n if (5 === node.tag || 6 === node.tag) return node;\n for (node = node.child; null !== node; ) {\n var match = findCurrentHostFiberImpl(node);\n if (null !== match) return match;\n node = node.sibling;\n }\n return null;\n}\nvar emptyObject = {},\n removedKeys = null,\n removedKeyCount = 0,\n deepDifferOptions = { unsafelyIgnoreFunctions: !0 };\nfunction defaultDiffer(prevProp, nextProp) {\n return \"object\" !== typeof nextProp || null === nextProp\n ? !0\n : ReactNativePrivateInterface.deepDiffer(\n prevProp,\n nextProp,\n deepDifferOptions\n );\n}\nfunction restoreDeletedValuesInNestedArray(\n updatePayload,\n node,\n validAttributes\n) {\n if (isArrayImpl(node))\n for (var i = node.length; i-- && 0 < removedKeyCount; )\n restoreDeletedValuesInNestedArray(\n updatePayload,\n node[i],\n validAttributes\n );\n else if (node && 0 < removedKeyCount)\n for (i in removedKeys)\n if (removedKeys[i]) {\n var nextProp = node[i];\n if (void 0 !== nextProp) {\n var attributeConfig = validAttributes[i];\n if (attributeConfig) {\n \"function\" === typeof nextProp && (nextProp = !0);\n \"undefined\" === typeof nextProp && (nextProp = null);\n if (\"object\" !== typeof attributeConfig)\n updatePayload[i] = nextProp;\n else if (\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n )\n (nextProp =\n \"function\" === typeof attributeConfig.process\n ? attributeConfig.process(nextProp)\n : nextProp),\n (updatePayload[i] = nextProp);\n removedKeys[i] = !1;\n removedKeyCount--;\n }\n }\n }\n}\nfunction diffNestedProperty(\n updatePayload,\n prevProp,\n nextProp,\n validAttributes\n) {\n if (!updatePayload && prevProp === nextProp) return updatePayload;\n if (!prevProp || !nextProp)\n return nextProp\n ? addNestedProperty(updatePayload, nextProp, validAttributes)\n : prevProp\n ? clearNestedProperty(updatePayload, prevProp, validAttributes)\n : updatePayload;\n if (!isArrayImpl(prevProp) && !isArrayImpl(nextProp))\n return diffProperties(updatePayload, prevProp, nextProp, validAttributes);\n if (isArrayImpl(prevProp) && isArrayImpl(nextProp)) {\n var minLength =\n prevProp.length < nextProp.length ? prevProp.length : nextProp.length,\n i;\n for (i = 0; i < minLength; i++)\n updatePayload = diffNestedProperty(\n updatePayload,\n prevProp[i],\n nextProp[i],\n validAttributes\n );\n for (; i < prevProp.length; i++)\n updatePayload = clearNestedProperty(\n updatePayload,\n prevProp[i],\n validAttributes\n );\n for (; i < nextProp.length; i++)\n updatePayload = addNestedProperty(\n updatePayload,\n nextProp[i],\n validAttributes\n );\n return updatePayload;\n }\n return isArrayImpl(prevProp)\n ? diffProperties(\n updatePayload,\n ReactNativePrivateInterface.flattenStyle(prevProp),\n nextProp,\n validAttributes\n )\n : diffProperties(\n updatePayload,\n prevProp,\n ReactNativePrivateInterface.flattenStyle(nextProp),\n validAttributes\n );\n}\nfunction addNestedProperty(updatePayload, nextProp, validAttributes) {\n if (!nextProp) return updatePayload;\n if (!isArrayImpl(nextProp))\n return diffProperties(\n updatePayload,\n emptyObject,\n nextProp,\n validAttributes\n );\n for (var i = 0; i < nextProp.length; i++)\n updatePayload = addNestedProperty(\n updatePayload,\n nextProp[i],\n validAttributes\n );\n return updatePayload;\n}\nfunction clearNestedProperty(updatePayload, prevProp, validAttributes) {\n if (!prevProp) return updatePayload;\n if (!isArrayImpl(prevProp))\n return diffProperties(\n updatePayload,\n prevProp,\n emptyObject,\n validAttributes\n );\n for (var i = 0; i < prevProp.length; i++)\n updatePayload = clearNestedProperty(\n updatePayload,\n prevProp[i],\n validAttributes\n );\n return updatePayload;\n}\nfunction diffProperties(updatePayload, prevProps, nextProps, validAttributes) {\n var attributeConfig, propKey;\n for (propKey in nextProps)\n if ((attributeConfig = validAttributes[propKey])) {\n var prevProp = prevProps[propKey];\n var nextProp = nextProps[propKey];\n \"function\" === typeof nextProp &&\n ((nextProp = !0), \"function\" === typeof prevProp && (prevProp = !0));\n \"undefined\" === typeof nextProp &&\n ((nextProp = null),\n \"undefined\" === typeof prevProp && (prevProp = null));\n removedKeys && (removedKeys[propKey] = !1);\n if (updatePayload && void 0 !== updatePayload[propKey])\n if (\"object\" !== typeof attributeConfig)\n updatePayload[propKey] = nextProp;\n else {\n if (\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n )\n (attributeConfig =\n \"function\" === typeof attributeConfig.process\n ? attributeConfig.process(nextProp)\n : nextProp),\n (updatePayload[propKey] = attributeConfig);\n }\n else if (prevProp !== nextProp)\n if (\"object\" !== typeof attributeConfig)\n defaultDiffer(prevProp, nextProp) &&\n ((updatePayload || (updatePayload = {}))[propKey] = nextProp);\n else if (\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n ) {\n if (\n void 0 === prevProp ||\n (\"function\" === typeof attributeConfig.diff\n ? attributeConfig.diff(prevProp, nextProp)\n : defaultDiffer(prevProp, nextProp))\n )\n (attributeConfig =\n \"function\" === typeof attributeConfig.process\n ? attributeConfig.process(nextProp)\n : nextProp),\n ((updatePayload || (updatePayload = {}))[\n propKey\n ] = attributeConfig);\n } else\n (removedKeys = null),\n (removedKeyCount = 0),\n (updatePayload = diffNestedProperty(\n updatePayload,\n prevProp,\n nextProp,\n attributeConfig\n )),\n 0 < removedKeyCount &&\n updatePayload &&\n (restoreDeletedValuesInNestedArray(\n updatePayload,\n nextProp,\n attributeConfig\n ),\n (removedKeys = null));\n }\n for (var propKey$3 in prevProps)\n void 0 === nextProps[propKey$3] &&\n (!(attributeConfig = validAttributes[propKey$3]) ||\n (updatePayload && void 0 !== updatePayload[propKey$3]) ||\n ((prevProp = prevProps[propKey$3]),\n void 0 !== prevProp &&\n (\"object\" !== typeof attributeConfig ||\n \"function\" === typeof attributeConfig.diff ||\n \"function\" === typeof attributeConfig.process\n ? (((updatePayload || (updatePayload = {}))[propKey$3] = null),\n removedKeys || (removedKeys = {}),\n removedKeys[propKey$3] ||\n ((removedKeys[propKey$3] = !0), removedKeyCount++))\n : (updatePayload = clearNestedProperty(\n updatePayload,\n prevProp,\n attributeConfig\n )))));\n return updatePayload;\n}\nfunction mountSafeCallback_NOT_REALLY_SAFE(context, callback) {\n return function() {\n if (\n callback &&\n (\"boolean\" !== typeof context.__isMounted || context.__isMounted)\n )\n return callback.apply(context, arguments);\n };\n}\nvar ReactNativeFiberHostComponent = (function() {\n function ReactNativeFiberHostComponent(tag, viewConfig) {\n this._nativeTag = tag;\n this._children = [];\n this.viewConfig = viewConfig;\n }\n var _proto = ReactNativeFiberHostComponent.prototype;\n _proto.blur = function() {\n ReactNativePrivateInterface.TextInputState.blurTextInput(this);\n };\n _proto.focus = function() {\n ReactNativePrivateInterface.TextInputState.focusTextInput(this);\n };\n _proto.measure = function(callback) {\n ReactNativePrivateInterface.UIManager.measure(\n this._nativeTag,\n mountSafeCallback_NOT_REALLY_SAFE(this, callback)\n );\n };\n _proto.measureInWindow = function(callback) {\n ReactNativePrivateInterface.UIManager.measureInWindow(\n this._nativeTag,\n mountSafeCallback_NOT_REALLY_SAFE(this, callback)\n );\n };\n _proto.measureLayout = function(relativeToNativeNode, onSuccess, onFail) {\n if (\"number\" === typeof relativeToNativeNode)\n var relativeNode = relativeToNativeNode;\n else\n relativeToNativeNode._nativeTag &&\n (relativeNode = relativeToNativeNode._nativeTag);\n null != relativeNode &&\n ReactNativePrivateInterface.UIManager.measureLayout(\n this._nativeTag,\n relativeNode,\n mountSafeCallback_NOT_REALLY_SAFE(this, onFail),\n mountSafeCallback_NOT_REALLY_SAFE(this, onSuccess)\n );\n };\n _proto.setNativeProps = function(nativeProps) {\n nativeProps = diffProperties(\n null,\n emptyObject,\n nativeProps,\n this.viewConfig.validAttributes\n );\n null != nativeProps &&\n ReactNativePrivateInterface.UIManager.updateView(\n this._nativeTag,\n this.viewConfig.uiViewClassName,\n nativeProps\n );\n };\n return ReactNativeFiberHostComponent;\n })(),\n scheduleCallback = Scheduler.unstable_scheduleCallback,\n cancelCallback = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority = Scheduler.unstable_NormalPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n rendererID = null,\n injectedHook = null;\nfunction onCommitRoot(root) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n root,\n void 0,\n 128 === (root.current.flags & 128)\n );\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionLane = 64,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 4194240;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n return lanes & 130023424;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 1073741824;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n nonIdlePendingLanes = pendingLanes & 268435455;\n if (0 !== nonIdlePendingLanes) {\n var nonIdleUnblockedLanes = nonIdlePendingLanes & ~suspendedLanes;\n 0 !== nonIdleUnblockedLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdleUnblockedLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes &&\n (nextLanes = getHighestPriorityLanes(pingedLanes)));\n } else\n (nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes &&\n (nextLanes = getHighestPriorityLanes(pingedLanes));\n if (0 === nextLanes) return 0;\n if (\n 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (pingedLanes = wipLanes & -wipLanes),\n suspendedLanes >= pingedLanes ||\n (16 === suspendedLanes && 0 !== (pingedLanes & 4194240)))\n )\n return wipLanes;\n 0 !== (nextLanes & 4) && (nextLanes |= pendingLanes & 16);\n wipLanes = root.entangledLanes;\n if (0 !== wipLanes)\n for (root = root.entanglements, wipLanes &= nextLanes; 0 < wipLanes; )\n (pendingLanes = 31 - clz32(wipLanes)),\n (suspendedLanes = 1 << pendingLanes),\n (nextLanes |= root[pendingLanes]),\n (wipLanes &= ~suspendedLanes);\n return nextLanes;\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n return currentTime + 250;\n case 8:\n case 16:\n case 32:\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n return -1;\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction getLanesToRetrySynchronouslyOnError(root) {\n root = root.pendingLanes & -1073741825;\n return 0 !== root ? root : root & 1073741824 ? 1073741824 : 0;\n}\nfunction claimNextTransitionLane() {\n var lane = nextTransitionLane;\n nextTransitionLane <<= 1;\n 0 === (nextTransitionLane & 4194240) && (nextTransitionLane = 64);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated(root, updateLane, eventTime) {\n root.pendingLanes |= updateLane;\n 536870912 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0));\n root = root.eventTimes;\n updateLane = 31 - clz32(updateLane);\n root[updateLane] = eventTime;\n}\nfunction markRootFinished(root, remainingLanes) {\n var noLongerPendingLanes = root.pendingLanes & ~remainingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.mutableReadLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n remainingLanes = root.entanglements;\n var eventTimes = root.eventTimes;\n for (root = root.expirationTimes; 0 < noLongerPendingLanes; ) {\n var index$8 = 31 - clz32(noLongerPendingLanes),\n lane = 1 << index$8;\n remainingLanes[index$8] = 0;\n eventTimes[index$8] = -1;\n root[index$8] = -1;\n noLongerPendingLanes &= ~lane;\n }\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$9 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$9;\n (lane & entangledLanes) | (root[index$9] & entangledLanes) &&\n (root[index$9] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nvar currentUpdatePriority = 0;\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 1 < lanes\n ? 4 < lanes\n ? 0 !== (lanes & 268435455)\n ? 16\n : 536870912\n : 4\n : 1;\n}\nfunction shim() {\n throw Error(\n \"The current renderer does not support hydration. This error is likely caused by a bug in React. Please file an issue.\"\n );\n}\nvar getViewConfigForType =\n ReactNativePrivateInterface.ReactNativeViewConfigRegistry.get,\n UPDATE_SIGNAL = {},\n nextReactTag = 3;\nfunction allocateTag() {\n var tag = nextReactTag;\n 1 === tag % 10 && (tag += 2);\n nextReactTag = tag + 2;\n return tag;\n}\nfunction recursivelyUncacheFiberNode(node) {\n if (\"number\" === typeof node)\n instanceCache.delete(node), instanceProps.delete(node);\n else {\n var tag = node._nativeTag;\n instanceCache.delete(tag);\n instanceProps.delete(tag);\n node._children.forEach(recursivelyUncacheFiberNode);\n }\n}\nfunction finalizeInitialChildren(parentInstance) {\n if (0 === parentInstance._children.length) return !1;\n var nativeTags = parentInstance._children.map(function(child) {\n return \"number\" === typeof child ? child : child._nativeTag;\n });\n ReactNativePrivateInterface.UIManager.setChildren(\n parentInstance._nativeTag,\n nativeTags\n );\n return !1;\n}\nvar scheduleTimeout = setTimeout,\n cancelTimeout = clearTimeout;\nfunction describeComponentFrame(name, source, ownerName) {\n source = \"\";\n ownerName && (source = \" (created by \" + ownerName + \")\");\n return \"\\n in \" + (name || \"Unknown\") + source;\n}\nfunction describeFunctionComponentFrame(fn, source) {\n return fn\n ? describeComponentFrame(fn.displayName || fn.name || null, source, null)\n : \"\";\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar emptyContextObject = {},\n contextStackCursor = createCursor(emptyContextObject),\n didPerformWorkStackCursor = createCursor(!1),\n previousContext = emptyContextObject;\nfunction getMaskedContext(workInProgress, unmaskedContext) {\n var contextTypes = workInProgress.type.contextTypes;\n if (!contextTypes) return emptyContextObject;\n var instance = workInProgress.stateNode;\n if (\n instance &&\n instance.__reactInternalMemoizedUnmaskedChildContext === unmaskedContext\n )\n return instance.__reactInternalMemoizedMaskedChildContext;\n var context = {},\n key;\n for (key in contextTypes) context[key] = unmaskedContext[key];\n instance &&\n ((workInProgress = workInProgress.stateNode),\n (workInProgress.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext),\n (workInProgress.__reactInternalMemoizedMaskedChildContext = context));\n return context;\n}\nfunction isContextProvider(type) {\n type = type.childContextTypes;\n return null !== type && void 0 !== type;\n}\nfunction popContext() {\n pop(didPerformWorkStackCursor);\n pop(contextStackCursor);\n}\nfunction pushTopLevelContextObject(fiber, context, didChange) {\n if (contextStackCursor.current !== emptyContextObject)\n throw Error(\n \"Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.\"\n );\n push(contextStackCursor, context);\n push(didPerformWorkStackCursor, didChange);\n}\nfunction processChildContext(fiber, type, parentContext) {\n var instance = fiber.stateNode;\n type = type.childContextTypes;\n if (\"function\" !== typeof instance.getChildContext) return parentContext;\n instance = instance.getChildContext();\n for (var contextKey in instance)\n if (!(contextKey in type))\n throw Error(\n (getComponentNameFromFiber(fiber) || \"Unknown\") +\n '.getChildContext(): key \"' +\n contextKey +\n '\" is not defined in childContextTypes.'\n );\n return assign({}, parentContext, instance);\n}\nfunction pushContextProvider(workInProgress) {\n workInProgress =\n ((workInProgress = workInProgress.stateNode) &&\n workInProgress.__reactInternalMemoizedMergedChildContext) ||\n emptyContextObject;\n previousContext = contextStackCursor.current;\n push(contextStackCursor, workInProgress);\n push(didPerformWorkStackCursor, didPerformWorkStackCursor.current);\n return !0;\n}\nfunction invalidateContextProvider(workInProgress, type, didChange) {\n var instance = workInProgress.stateNode;\n if (!instance)\n throw Error(\n \"Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.\"\n );\n didChange\n ? ((workInProgress = processChildContext(\n workInProgress,\n type,\n previousContext\n )),\n (instance.__reactInternalMemoizedMergedChildContext = workInProgress),\n pop(didPerformWorkStackCursor),\n pop(contextStackCursor),\n push(contextStackCursor, workInProgress))\n : pop(didPerformWorkStackCursor);\n push(didPerformWorkStackCursor, didChange);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n syncQueue = null,\n includesLegacySyncCallbacks = !1,\n isFlushingSyncQueue = !1;\nfunction flushSyncCallbacks() {\n if (!isFlushingSyncQueue && null !== syncQueue) {\n isFlushingSyncQueue = !0;\n var i = 0,\n previousUpdatePriority = currentUpdatePriority;\n try {\n var queue = syncQueue;\n for (currentUpdatePriority = 1; i < queue.length; i++) {\n var callback = queue[i];\n do callback = callback(!0);\n while (null !== callback);\n }\n syncQueue = null;\n includesLegacySyncCallbacks = !1;\n } catch (error) {\n throw (null !== syncQueue && (syncQueue = syncQueue.slice(i + 1)),\n scheduleCallback(ImmediatePriority, flushSyncCallbacks),\n error);\n } finally {\n (currentUpdatePriority = previousUpdatePriority),\n (isFlushingSyncQueue = !1);\n }\n }\n return null;\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null;\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n --forkStackIndex,\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n --idStackIndex,\n (idStack[idStackIndex] = null),\n --idStackIndex,\n (idStack[idStackIndex] = null);\n}\nvar hydrationErrors = null,\n ReactCurrentBatchConfig = ReactSharedInternals.ReactCurrentBatchConfig;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction describeFiber(fiber) {\n switch (fiber.tag) {\n case 5:\n return describeComponentFrame(fiber.type, null, null);\n case 16:\n return describeComponentFrame(\"Lazy\", null, null);\n case 13:\n return describeComponentFrame(\"Suspense\", null, null);\n case 19:\n return describeComponentFrame(\"SuspenseList\", null, null);\n case 0:\n case 2:\n case 15:\n return describeFunctionComponentFrame(fiber.type, null);\n case 11:\n return describeFunctionComponentFrame(fiber.type.render, null);\n case 1:\n return (fiber = describeFunctionComponentFrame(fiber.type, null)), fiber;\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\";\n do\n (info += describeFiber(workInProgress)),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nfunction resolveDefaultProps(Component, baseProps) {\n if (Component && Component.defaultProps) {\n baseProps = assign({}, baseProps);\n Component = Component.defaultProps;\n for (var propName in Component)\n void 0 === baseProps[propName] &&\n (baseProps[propName] = Component[propName]);\n return baseProps;\n }\n return baseProps;\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber = null,\n lastContextDependency = null,\n lastFullyObservedContext = null;\nfunction resetContextDependencies() {\n lastFullyObservedContext = lastContextDependency = currentlyRenderingFiber = null;\n}\nfunction popProvider(context) {\n var currentValue = valueCursor.current;\n pop(valueCursor);\n context._currentValue = currentValue;\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction prepareToReadContext(workInProgress, renderLanes) {\n currentlyRenderingFiber = workInProgress;\n lastFullyObservedContext = lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress &&\n null !== workInProgress.firstContext &&\n (0 !== (workInProgress.lanes & renderLanes) && (didReceiveUpdate = !0),\n (workInProgress.firstContext = null));\n}\nfunction readContext(context) {\n var value = context._currentValue;\n if (lastFullyObservedContext !== context)\n if (\n ((context = { context: context, memoizedValue: value, next: null }),\n null === lastContextDependency)\n ) {\n if (null === currentlyRenderingFiber)\n throw Error(\n \"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\"\n );\n lastContextDependency = context;\n currentlyRenderingFiber.dependencies = {\n lanes: 0,\n firstContext: context\n };\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar concurrentQueues = null;\nfunction pushConcurrentUpdateQueue(queue) {\n null === concurrentQueues\n ? (concurrentQueues = [queue])\n : concurrentQueues.push(queue);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n var interleaved = queue.interleaved;\n null === interleaved\n ? ((update.next = update), pushConcurrentUpdateQueue(queue))\n : ((update.next = interleaved.next), (interleaved.next = update));\n queue.interleaved = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n alternate = sourceFiber;\n for (sourceFiber = sourceFiber.return; null !== sourceFiber; )\n (sourceFiber.childLanes |= lane),\n (alternate = sourceFiber.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n (alternate = sourceFiber),\n (sourceFiber = sourceFiber.return);\n return 3 === alternate.tag ? alternate.stateNode : null;\n}\nvar hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, interleaved: null, lanes: 0 },\n effects: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n effects: current.effects\n });\n}\nfunction createUpdate(eventTime, lane) {\n return {\n eventTime: eventTime,\n lane: lane,\n tag: 0,\n payload: null,\n callback: null,\n next: null\n };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n }\n pending = updateQueue.interleaved;\n null === pending\n ? ((update.next = update), pushConcurrentUpdateQueue(updateQueue))\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.interleaved = update;\n return markUpdateLaneFromFiberToRoot(fiber, lane);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194240))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n eventTime: queue.eventTime,\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: queue.callback,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n effects: current.effects\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance,\n renderLanes\n) {\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane,\n updateEventTime = pendingQueue.eventTime;\n if ((renderLanes & updateLane) === updateLane) {\n null !== current &&\n (current = current.next = {\n eventTime: updateEventTime,\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n updateEventTime = instance;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(\n updateEventTime,\n newState,\n updateLane\n );\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(updateEventTime, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n null !== pendingQueue.callback &&\n 0 !== pendingQueue.lane &&\n ((workInProgress$jscomp$0.flags |= 64),\n (updateLane = queue.effects),\n null === updateLane\n ? (queue.effects = [pendingQueue])\n : updateLane.push(pendingQueue));\n } else\n (updateEventTime = {\n eventTime: updateEventTime,\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = updateEventTime),\n (lastPendingUpdate = newState))\n : (current = current.next = updateEventTime),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (updateLane = pendingQueue),\n (pendingQueue = updateLane.next),\n (updateLane.next = null),\n (queue.lastBaseUpdate = updateLane),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n props = queue.shared.interleaved;\n if (null !== props) {\n queue = props;\n do (lastBaseUpdate |= queue.lane), (queue = queue.next);\n while (queue !== props);\n } else null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction commitUpdateQueue(finishedWork, finishedQueue, instance) {\n finishedWork = finishedQueue.effects;\n finishedQueue.effects = null;\n if (null !== finishedWork)\n for (\n finishedQueue = 0;\n finishedQueue < finishedWork.length;\n finishedQueue++\n ) {\n var effect = finishedWork[finishedQueue],\n callback = effect.callback;\n if (null !== callback) {\n effect.callback = null;\n if (\"function\" !== typeof callback)\n throw Error(\n \"Invalid argument passed as callback. Expected a function. Instead received: \" +\n callback\n );\n callback.call(instance);\n }\n }\n}\nvar emptyRefsObject = new React.Component().refs;\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n isMounted: function(component) {\n return (component = component._reactInternals)\n ? getNearestMountedFiber(component) === component\n : !1;\n },\n enqueueSetState: function(inst, payload, callback) {\n inst = inst._reactInternals;\n var eventTime = requestEventTime(),\n lane = requestUpdateLane(inst),\n update = createUpdate(eventTime, lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane, eventTime),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function(inst, payload, callback) {\n inst = inst._reactInternals;\n var eventTime = requestEventTime(),\n lane = requestUpdateLane(inst),\n update = createUpdate(eventTime, lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane, eventTime),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function(inst, callback) {\n inst = inst._reactInternals;\n var eventTime = requestEventTime(),\n lane = requestUpdateLane(inst),\n update = createUpdate(eventTime, lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane, eventTime),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction constructClassInstance(workInProgress, ctor, props) {\n var isLegacyContextConsumer = !1,\n unmaskedContext = emptyContextObject;\n var context = ctor.contextType;\n \"object\" === typeof context && null !== context\n ? (context = readContext(context))\n : ((unmaskedContext = isContextProvider(ctor)\n ? previousContext\n : contextStackCursor.current),\n (isLegacyContextConsumer = ctor.contextTypes),\n (context = (isLegacyContextConsumer =\n null !== isLegacyContextConsumer && void 0 !== isLegacyContextConsumer)\n ? getMaskedContext(workInProgress, unmaskedContext)\n : emptyContextObject));\n ctor = new ctor(props, context);\n workInProgress.memoizedState =\n null !== ctor.state && void 0 !== ctor.state ? ctor.state : null;\n ctor.updater = classComponentUpdater;\n workInProgress.stateNode = ctor;\n ctor._reactInternals = workInProgress;\n isLegacyContextConsumer &&\n ((workInProgress = workInProgress.stateNode),\n (workInProgress.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext),\n (workInProgress.__reactInternalMemoizedMaskedChildContext = context));\n return ctor;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction mountClassInstance(workInProgress, ctor, newProps, renderLanes) {\n var instance = workInProgress.stateNode;\n instance.props = newProps;\n instance.state = workInProgress.memoizedState;\n instance.refs = emptyRefsObject;\n initializeUpdateQueue(workInProgress);\n var contextType = ctor.contextType;\n \"object\" === typeof contextType && null !== contextType\n ? (instance.context = readContext(contextType))\n : ((contextType = isContextProvider(ctor)\n ? previousContext\n : contextStackCursor.current),\n (instance.context = getMaskedContext(workInProgress, contextType)));\n instance.state = workInProgress.memoizedState;\n contextType = ctor.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(workInProgress, ctor, contextType, newProps),\n (instance.state = workInProgress.memoizedState));\n \"function\" === typeof ctor.getDerivedStateFromProps ||\n \"function\" === typeof instance.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof instance.UNSAFE_componentWillMount &&\n \"function\" !== typeof instance.componentWillMount) ||\n ((ctor = instance.state),\n \"function\" === typeof instance.componentWillMount &&\n instance.componentWillMount(),\n \"function\" === typeof instance.UNSAFE_componentWillMount &&\n instance.UNSAFE_componentWillMount(),\n ctor !== instance.state &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null),\n processUpdateQueue(workInProgress, newProps, instance, renderLanes),\n (instance.state = workInProgress.memoizedState));\n \"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4);\n}\nfunction coerceRef(returnFiber, current, element) {\n returnFiber = element.ref;\n if (\n null !== returnFiber &&\n \"function\" !== typeof returnFiber &&\n \"object\" !== typeof returnFiber\n ) {\n if (element._owner) {\n element = element._owner;\n if (element) {\n if (1 !== element.tag)\n throw Error(\n \"Function components cannot have string refs. We recommend using useRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref\"\n );\n var inst = element.stateNode;\n }\n if (!inst)\n throw Error(\n \"Missing owner for string ref \" +\n returnFiber +\n \". This error is likely caused by a bug in React. Please file an issue.\"\n );\n var resolvedInst = inst,\n stringRef = \"\" + returnFiber;\n if (\n null !== current &&\n null !== current.ref &&\n \"function\" === typeof current.ref &&\n current.ref._stringRef === stringRef\n )\n return current.ref;\n current = function(value) {\n var refs = resolvedInst.refs;\n refs === emptyRefsObject && (refs = resolvedInst.refs = {});\n null === value ? delete refs[stringRef] : (refs[stringRef] = value);\n };\n current._stringRef = stringRef;\n return current;\n }\n if (\"string\" !== typeof returnFiber)\n throw Error(\n \"Expected ref to be a function, a string, an object returned by React.createRef(), or null.\"\n );\n if (!element._owner)\n throw Error(\n \"Element ref was specified as a string (\" +\n returnFiber +\n \") but no owner was set. This could happen for one of the following reasons:\\n1. You may be adding a ref to a function component\\n2. You may be adding a ref to a component that was not created inside a component's render method\\n3. You have multiple copies of React loaded\\nSee https://reactjs.org/link/refs-must-have-owner for more information.\"\n );\n }\n return returnFiber;\n}\nfunction throwOnInvalidObjectType(returnFiber, newChild) {\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n}\nfunction resolveLazy(lazyType) {\n var init = lazyType._init;\n return init(lazyType._payload);\n}\nfunction ChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(returnFiber, currentFirstChild) {\n for (returnFiber = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? returnFiber.set(currentFirstChild.key, currentFirstChild)\n : returnFiber.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return returnFiber;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 2), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 2;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 2);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (lanes = useFiber(current, element.props)),\n (lanes.ref = coerceRef(returnFiber, current, element)),\n (lanes.return = returnFiber),\n lanes\n );\n lanes = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n lanes.ref = coerceRef(returnFiber, current, element);\n lanes.return = returnFiber;\n return lanes;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n (lanes.ref = coerceRef(returnFiber, null, newChild)),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n return createChild(returnFiber, init(newChild._payload), lanes);\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (key = newChild._init),\n updateSlot(returnFiber, oldFiber, key(newChild._payload), lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n init(newChild._payload),\n lanes\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber), resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(returnFiber, oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function(child) {\n return deleteChild(returnFiber, child);\n });\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildrenIterable,\n lanes\n ) {\n var iteratorFn = getIteratorFn(newChildrenIterable);\n if (\"function\" !== typeof iteratorFn)\n throw Error(\n \"An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.\"\n );\n newChildrenIterable = iteratorFn.call(newChildrenIterable);\n if (null == newChildrenIterable)\n throw Error(\"An iterable object provided no iterator.\");\n for (\n var previousNewFiber = (iteratorFn = null),\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildrenIterable.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildrenIterable.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (iteratorFn = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return deleteRemainingChildren(returnFiber, oldFiber), iteratorFn;\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildrenIterable.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (iteratorFn = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n return iteratorFn;\n }\n for (\n oldFiber = mapRemainingChildren(returnFiber, oldFiber);\n !step.done;\n newIdx++, step = newChildrenIterable.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (iteratorFn = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function(child) {\n return deleteChild(returnFiber, child);\n });\n return iteratorFn;\n }\n function reconcileChildFibers(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (\n var key = newChild.key, child = currentFirstChild;\n null !== child;\n\n ) {\n if (child.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === child.tag) {\n deleteRemainingChildren(returnFiber, child.sibling);\n currentFirstChild = useFiber(\n child,\n newChild.props.children\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n break a;\n }\n } else if (\n child.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === child.type)\n ) {\n deleteRemainingChildren(returnFiber, child.sibling);\n currentFirstChild = useFiber(child, newChild.props);\n currentFirstChild.ref = coerceRef(\n returnFiber,\n child,\n newChild\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n break a;\n }\n deleteRemainingChildren(returnFiber, child);\n break;\n } else deleteChild(returnFiber, child);\n child = child.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((currentFirstChild = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (currentFirstChild.return = returnFiber),\n (returnFiber = currentFirstChild))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n (lanes.ref = coerceRef(\n returnFiber,\n currentFirstChild,\n newChild\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (child = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === child)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n currentFirstChild = useFiber(\n currentFirstChild,\n newChild.children || []\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n currentFirstChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n );\n currentFirstChild.return = returnFiber;\n returnFiber = currentFirstChild;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (child = newChild._init),\n reconcileChildFibers(\n returnFiber,\n currentFirstChild,\n child(newChild._payload),\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild))\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (currentFirstChild = useFiber(currentFirstChild, newChild)),\n (currentFirstChild.return = returnFiber),\n (returnFiber = currentFirstChild))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (currentFirstChild = createFiberFromText(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (currentFirstChild.return = returnFiber),\n (returnFiber = currentFirstChild)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return reconcileChildFibers;\n}\nvar reconcileChildFibers = ChildReconciler(!0),\n mountChildFibers = ChildReconciler(!1),\n NO_CONTEXT = {},\n contextStackCursor$1 = createCursor(NO_CONTEXT),\n contextFiberStackCursor = createCursor(NO_CONTEXT),\n rootInstanceStackCursor = createCursor(NO_CONTEXT);\nfunction requiredContext(c) {\n if (c === NO_CONTEXT)\n throw Error(\n \"Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.\"\n );\n return c;\n}\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor$1, NO_CONTEXT);\n pop(contextStackCursor$1);\n push(contextStackCursor$1, { isInAParentText: !1 });\n}\nfunction popHostContainer() {\n pop(contextStackCursor$1);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n requiredContext(rootInstanceStackCursor.current);\n var context = requiredContext(contextStackCursor$1.current);\n var JSCompiler_inline_result = fiber.type;\n JSCompiler_inline_result =\n \"AndroidTextInput\" === JSCompiler_inline_result ||\n \"RCTMultilineTextInputView\" === JSCompiler_inline_result ||\n \"RCTSinglelineTextInputView\" === JSCompiler_inline_result ||\n \"RCTText\" === JSCompiler_inline_result ||\n \"RCTVirtualText\" === JSCompiler_inline_result;\n JSCompiler_inline_result =\n context.isInAParentText !== JSCompiler_inline_result\n ? { isInAParentText: JSCompiler_inline_result }\n : context;\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor$1, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor$1), pop(contextFiberStackCursor));\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (null !== state && (null === state.dehydrated || shim() || shim()))\n return node;\n } else if (19 === node.tag && void 0 !== node.memoizedProps.revealOrder) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar workInProgressSources = [];\nfunction resetWorkInProgressVersions() {\n for (var i = 0; i < workInProgressSources.length; i++)\n workInProgressSources[i]._workInProgressVersionPrimary = null;\n workInProgressSources.length = 0;\n}\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher,\n ReactCurrentBatchConfig$1 = ReactSharedInternals.ReactCurrentBatchConfig,\n renderLanes = 0,\n currentlyRenderingFiber$1 = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber$1 = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactCurrentDispatcher$1.current =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n current = Component(props, secondArg);\n if (didScheduleRenderPhaseUpdateDuringThisPass) {\n nextRenderLanes = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= nextRenderLanes)\n throw Error(\n \"Too many re-renders. React limits the number of renders to prevent an infinite loop.\"\n );\n nextRenderLanes += 1;\n workInProgressHook = currentHook = null;\n workInProgress.updateQueue = null;\n ReactCurrentDispatcher$1.current = HooksDispatcherOnRerender;\n current = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n }\n ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n workInProgress = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber$1 = null;\n didScheduleRenderPhaseUpdate = !1;\n if (workInProgress)\n throw Error(\n \"Rendered fewer hooks than expected. This may be caused by an accidental early return statement.\"\n );\n return current;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber$1.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber$1.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber$1.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook)\n throw Error(\"Rendered more hooks than during the previous render.\");\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber$1.memoizedState = workInProgressHook = nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue)\n throw Error(\n \"Should have a queue. This is likely a bug in React. Please file an issue.\"\n );\n queue.lastRenderedReducer = reducer;\n var current = currentHook,\n baseQueue = current.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n if (null !== baseQueue) {\n pendingQueue = baseQueue.next;\n current = current.baseState;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = pendingQueue;\n do {\n var updateLane = update.lane;\n if ((renderLanes & updateLane) === updateLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next = {\n lane: 0,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n (current = update.hasEagerState\n ? update.eagerState\n : reducer(current, update.action));\n else {\n var clone = {\n lane: updateLane,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n };\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = clone),\n (baseFirst = current))\n : (newBaseQueueLast = newBaseQueueLast.next = clone);\n currentlyRenderingFiber$1.lanes |= updateLane;\n workInProgressRootSkippedLanes |= updateLane;\n }\n update = update.next;\n } while (null !== update && update !== pendingQueue);\n null === newBaseQueueLast\n ? (baseFirst = current)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n objectIs(current, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = current;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = current;\n }\n reducer = queue.interleaved;\n if (null !== reducer) {\n baseQueue = reducer;\n do\n (pendingQueue = baseQueue.lane),\n (currentlyRenderingFiber$1.lanes |= pendingQueue),\n (workInProgressRootSkippedLanes |= pendingQueue),\n (baseQueue = baseQueue.next);\n while (baseQueue !== reducer);\n } else null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue)\n throw Error(\n \"Should have a queue. This is likely a bug in React. Please file an issue.\"\n );\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateMutableSource() {}\nfunction updateSyncExternalStore(subscribe, getSnapshot) {\n var fiber = currentlyRenderingFiber$1,\n hook = updateWorkInProgressHook(),\n nextSnapshot = getSnapshot(),\n snapshotChanged = !objectIs(hook.memoizedState, nextSnapshot);\n snapshotChanged &&\n ((hook.memoizedState = nextSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushEffect(\n 9,\n updateStoreInstance.bind(null, fiber, hook, nextSnapshot, getSnapshot),\n void 0,\n null\n );\n if (null === workInProgressRoot)\n throw Error(\n \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\"\n );\n 0 !== (renderLanes & 30) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot);\n }\n return nextSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber$1.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = { lastEffect: null, stores: null }),\n (currentlyRenderingFiber$1.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function() {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = markUpdateLaneFromFiberToRoot(fiber, 1);\n null !== root && scheduleUpdateOnFiber(root, fiber, 1, -1);\n}\nfunction mountState(initialState) {\n var hook = mountWorkInProgressHook();\n \"function\" === typeof initialState && (initialState = initialState());\n hook.memoizedState = hook.baseState = initialState;\n initialState = {\n pending: null,\n interleaved: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n hook.queue = initialState;\n initialState = initialState.dispatch = dispatchSetState.bind(\n null,\n currentlyRenderingFiber$1,\n initialState\n );\n return [hook.memoizedState, initialState];\n}\nfunction pushEffect(tag, create, destroy, deps) {\n tag = { tag: tag, create: create, destroy: destroy, deps: deps, next: null };\n create = currentlyRenderingFiber$1.updateQueue;\n null === create\n ? ((create = { lastEffect: null, stores: null }),\n (currentlyRenderingFiber$1.updateQueue = create),\n (create.lastEffect = tag.next = tag))\n : ((destroy = create.lastEffect),\n null === destroy\n ? (create.lastEffect = tag.next = tag)\n : ((deps = destroy.next),\n (destroy.next = tag),\n (tag.next = deps),\n (create.lastEffect = tag)));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(\n 1 | hookFlags,\n create,\n void 0,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var destroy = void 0;\n if (null !== currentHook) {\n var prevEffect = currentHook.memoizedState;\n destroy = prevEffect.destroy;\n if (null !== deps && areHookInputsEqual(deps, prevEffect.deps)) {\n hook.memoizedState = pushEffect(hookFlags, create, destroy, deps);\n return;\n }\n }\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(1 | hookFlags, create, destroy, deps);\n}\nfunction mountEffect(create, deps) {\n return mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n return updateEffectImpl(2048, 8, create, deps);\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref)\n return (\n (create = create()),\n ref(create),\n function() {\n ref(null);\n }\n );\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function() {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n return updateEffectImpl(\n 4,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (\n null !== prevState &&\n null !== deps &&\n areHookInputsEqual(deps, prevState[1])\n )\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (\n null !== prevState &&\n null !== deps &&\n areHookInputsEqual(deps, prevState[1])\n )\n return prevState[0];\n nextCreate = nextCreate();\n hook.memoizedState = [nextCreate, deps];\n return nextCreate;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value) {\n if (0 === (renderLanes & 21))\n return (\n hook.baseState && ((hook.baseState = !1), (didReceiveUpdate = !0)),\n (hook.memoizedState = value)\n );\n objectIs(value, prevValue) ||\n ((value = claimNextTransitionLane()),\n (currentlyRenderingFiber$1.lanes |= value),\n (workInProgressRootSkippedLanes |= value),\n (hook.baseState = !0));\n return prevValue;\n}\nfunction startTransition(setPending, callback) {\n var previousPriority = currentUpdatePriority;\n currentUpdatePriority =\n 0 !== previousPriority && 4 > previousPriority ? previousPriority : 4;\n setPending(!0);\n var prevTransition = ReactCurrentBatchConfig$1.transition;\n ReactCurrentBatchConfig$1.transition = {};\n try {\n setPending(!1), callback();\n } finally {\n (currentUpdatePriority = previousPriority),\n (ReactCurrentBatchConfig$1.transition = prevTransition);\n }\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane(fiber);\n action = {\n lane: lane,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, action);\n else if (\n ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action)\n ) {\n var eventTime = requestEventTime();\n scheduleUpdateOnFiber(action, fiber, lane, eventTime);\n entangleTransitionUpdate(action, queue, lane);\n }\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane(fiber),\n update = {\n lane: lane,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState)) {\n var interleaved = queue.interleaved;\n null === interleaved\n ? ((update.next = update), pushConcurrentUpdateQueue(queue))\n : ((update.next = interleaved.next), (interleaved.next = update));\n queue.interleaved = update;\n return;\n }\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n null !== action &&\n ((update = requestEventTime()),\n scheduleUpdateOnFiber(action, fiber, lane, update),\n entangleTransitionUpdate(action, queue, lane));\n }\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber$1 ||\n (null !== alternate && alternate === currentlyRenderingFiber$1)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate = !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194240)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useMutableSource: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n unstable_isNewReconciler: !1\n },\n HooksDispatcherOnMount = {\n readContext: readContext,\n useCallback: function(callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n return mountEffectImpl(\n 4,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function(create, deps) {\n return mountEffectImpl(4, 4, create, deps);\n },\n useInsertionEffect: function(create, deps) {\n return mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function(nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n nextCreate = nextCreate();\n hook.memoizedState = [nextCreate, deps];\n return nextCreate;\n },\n useReducer: function(reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n initialArg = void 0 !== init ? init(initialArg) : initialArg;\n hook.memoizedState = hook.baseState = initialArg;\n reducer = {\n pending: null,\n interleaved: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialArg\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber$1,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function(initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: mountState,\n useDebugValue: mountDebugValue,\n useDeferredValue: function(value) {\n return (mountWorkInProgressHook().memoizedState = value);\n },\n useTransition: function() {\n var _mountState = mountState(!1),\n isPending = _mountState[0];\n _mountState = startTransition.bind(null, _mountState[1]);\n mountWorkInProgressHook().memoizedState = _mountState;\n return [isPending, _mountState];\n },\n useMutableSource: function() {},\n useSyncExternalStore: function(subscribe, getSnapshot) {\n var fiber = currentlyRenderingFiber$1,\n hook = mountWorkInProgressHook();\n var nextSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(\n \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\"\n );\n 0 !== (renderLanes & 30) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot);\n hook.memoizedState = nextSnapshot;\n var inst = { value: nextSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushEffect(\n 9,\n updateStoreInstance.bind(null, fiber, inst, nextSnapshot, getSnapshot),\n void 0,\n null\n );\n return nextSnapshot;\n },\n useId: function() {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix,\n globalClientId = globalClientIdCounter++;\n identifierPrefix =\n \":\" + identifierPrefix + \"r\" + globalClientId.toString(32) + \":\";\n return (hook.memoizedState = identifierPrefix);\n },\n unstable_isNewReconciler: !1\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function() {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function(value) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(hook, currentHook.memoizedState, value);\n },\n useTransition: function() {\n var isPending = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [isPending, start];\n },\n useMutableSource: updateMutableSource,\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n unstable_isNewReconciler: !1\n },\n HooksDispatcherOnRerender = {\n readContext: readContext,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function() {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function(value) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? (hook.memoizedState = value)\n : updateDeferredValueImpl(hook, currentHook.memoizedState, value);\n },\n useTransition: function() {\n var isPending = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [isPending, start];\n },\n useMutableSource: updateMutableSource,\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n unstable_isNewReconciler: !1\n };\nfunction createCapturedValueAtFiber(value, source) {\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source),\n digest: null\n };\n}\nfunction createCapturedValue(value, digest, stack) {\n return {\n value: value,\n source: null,\n stack: null != stack ? stack : null,\n digest: null != digest ? digest : null\n };\n}\nif (\n \"function\" !==\n typeof ReactNativePrivateInterface.ReactFiberErrorDialog.showErrorDialog\n)\n throw Error(\n \"Expected ReactFiberErrorDialog.showErrorDialog to be a function.\"\n );\nfunction logCapturedError(boundary, errorInfo) {\n try {\n !1 !==\n ReactNativePrivateInterface.ReactFiberErrorDialog.showErrorDialog({\n componentStack: null !== errorInfo.stack ? errorInfo.stack : \"\",\n error: errorInfo.value,\n errorBoundary:\n null !== boundary && 1 === boundary.tag ? boundary.stateNode : null\n }) && console.error(errorInfo.value);\n } catch (e) {\n setTimeout(function() {\n throw e;\n });\n }\n}\nvar PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map;\nfunction createRootErrorUpdate(fiber, errorInfo, lane) {\n lane = createUpdate(-1, lane);\n lane.tag = 3;\n lane.payload = { element: null };\n var error = errorInfo.value;\n lane.callback = function() {\n hasUncaughtError || ((hasUncaughtError = !0), (firstUncaughtError = error));\n logCapturedError(fiber, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(fiber, errorInfo, lane) {\n lane = createUpdate(-1, lane);\n lane.tag = 3;\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n lane.payload = function() {\n return getDerivedStateFromError(error);\n };\n lane.callback = function() {\n logCapturedError(fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (lane.callback = function() {\n logCapturedError(fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n return lane;\n}\nfunction attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n if (null === pingCache) {\n pingCache = root.pingCache = new PossiblyWeakMap();\n var threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else\n (threadIDs = pingCache.get(wakeable)),\n void 0 === threadIDs &&\n ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n threadIDs.has(lanes) ||\n (threadIDs.add(lanes),\n (root = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n wakeable.then(root, root));\n}\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner,\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n prepareToReadContext(workInProgress, renderLanes);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n ref,\n renderLanes\n );\n if (null !== current && !didReceiveUpdate)\n return (\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.flags &= -2053),\n (current.lanes &= ~renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare &&\n void 0 === Component.defaultProps\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (0 === (current.lanes & renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n 0 !== (current.lanes & renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n if (\"hidden\" === nextProps.mode)\n if (0 === (workInProgress.mode & 1))\n (workInProgress.memoizedState = {\n baseLanes: 0,\n cachePool: null,\n transitions: null\n }),\n push(subtreeRenderLanesCursor, subtreeRenderLanes),\n (subtreeRenderLanes |= renderLanes);\n else {\n if (0 === (renderLanes & 1073741824))\n return (\n (current =\n null !== prevState\n ? prevState.baseLanes | renderLanes\n : renderLanes),\n (workInProgress.lanes = workInProgress.childLanes = 1073741824),\n (workInProgress.memoizedState = {\n baseLanes: current,\n cachePool: null,\n transitions: null\n }),\n (workInProgress.updateQueue = null),\n push(subtreeRenderLanesCursor, subtreeRenderLanes),\n (subtreeRenderLanes |= current),\n null\n );\n workInProgress.memoizedState = {\n baseLanes: 0,\n cachePool: null,\n transitions: null\n };\n nextProps = null !== prevState ? prevState.baseLanes : renderLanes;\n push(subtreeRenderLanesCursor, subtreeRenderLanes);\n subtreeRenderLanes |= nextProps;\n }\n else\n null !== prevState\n ? ((nextProps = prevState.baseLanes | renderLanes),\n (workInProgress.memoizedState = null))\n : (nextProps = renderLanes),\n push(subtreeRenderLanesCursor, subtreeRenderLanes),\n (subtreeRenderLanes |= nextProps);\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (\n (null === current && null !== ref) ||\n (null !== current && current.ref !== ref)\n )\n workInProgress.flags |= 512;\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n var context = isContextProvider(Component)\n ? previousContext\n : contextStackCursor.current;\n context = getMaskedContext(workInProgress, context);\n prepareToReadContext(workInProgress, renderLanes);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n context,\n renderLanes\n );\n if (null !== current && !didReceiveUpdate)\n return (\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.flags &= -2053),\n (current.lanes &= ~renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (isContextProvider(Component)) {\n var hasContext = !0;\n pushContextProvider(workInProgress);\n } else hasContext = !1;\n prepareToReadContext(workInProgress, renderLanes);\n if (null === workInProgress.stateNode)\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress),\n constructClassInstance(workInProgress, Component, nextProps),\n mountClassInstance(workInProgress, Component, nextProps, renderLanes),\n (nextProps = !0);\n else if (null === current) {\n var instance = workInProgress.stateNode,\n oldProps = workInProgress.memoizedProps;\n instance.props = oldProps;\n var oldContext = instance.context,\n contextType = Component.contextType;\n \"object\" === typeof contextType && null !== contextType\n ? (contextType = readContext(contextType))\n : ((contextType = isContextProvider(Component)\n ? previousContext\n : contextStackCursor.current),\n (contextType = getMaskedContext(workInProgress, contextType)));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps,\n hasNewLifecycles =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof instance.getSnapshotBeforeUpdate;\n hasNewLifecycles ||\n (\"function\" !== typeof instance.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof instance.componentWillReceiveProps) ||\n ((oldProps !== nextProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n instance,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n instance.state = oldState;\n processUpdateQueue(workInProgress, nextProps, instance, renderLanes);\n oldContext = workInProgress.memoizedState;\n oldProps !== nextProps ||\n oldState !== oldContext ||\n didPerformWorkStackCursor.current ||\n hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (hasNewLifecycles ||\n (\"function\" !== typeof instance.UNSAFE_componentWillMount &&\n \"function\" !== typeof instance.componentWillMount) ||\n (\"function\" === typeof instance.componentWillMount &&\n instance.componentWillMount(),\n \"function\" === typeof instance.UNSAFE_componentWillMount &&\n instance.UNSAFE_componentWillMount()),\n \"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4))\n : (\"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (instance.props = nextProps),\n (instance.state = oldContext),\n (instance.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof instance.componentDidMount &&\n (workInProgress.flags |= 4),\n (nextProps = !1));\n } else {\n instance = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n oldProps = workInProgress.memoizedProps;\n contextType =\n workInProgress.type === workInProgress.elementType\n ? oldProps\n : resolveDefaultProps(workInProgress.type, oldProps);\n instance.props = contextType;\n hasNewLifecycles = workInProgress.pendingProps;\n oldState = instance.context;\n oldContext = Component.contextType;\n \"object\" === typeof oldContext && null !== oldContext\n ? (oldContext = readContext(oldContext))\n : ((oldContext = isContextProvider(Component)\n ? previousContext\n : contextStackCursor.current),\n (oldContext = getMaskedContext(workInProgress, oldContext)));\n var getDerivedStateFromProps$jscomp$0 = Component.getDerivedStateFromProps;\n (getDerivedStateFromProps =\n \"function\" === typeof getDerivedStateFromProps$jscomp$0 ||\n \"function\" === typeof instance.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof instance.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof instance.componentWillReceiveProps) ||\n ((oldProps !== hasNewLifecycles || oldState !== oldContext) &&\n callComponentWillReceiveProps(\n workInProgress,\n instance,\n nextProps,\n oldContext\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n instance.state = oldState;\n processUpdateQueue(workInProgress, nextProps, instance, renderLanes);\n var newState = workInProgress.memoizedState;\n oldProps !== hasNewLifecycles ||\n oldState !== newState ||\n didPerformWorkStackCursor.current ||\n hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps$jscomp$0 &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps$jscomp$0,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType,\n nextProps,\n oldState,\n newState,\n oldContext\n ) ||\n !1)\n ? (getDerivedStateFromProps ||\n (\"function\" !== typeof instance.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof instance.componentWillUpdate) ||\n (\"function\" === typeof instance.componentWillUpdate &&\n instance.componentWillUpdate(nextProps, newState, oldContext),\n \"function\" === typeof instance.UNSAFE_componentWillUpdate &&\n instance.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldContext\n )),\n \"function\" === typeof instance.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof instance.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof instance.componentDidUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof instance.getSnapshotBeforeUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (instance.props = nextProps),\n (instance.state = newState),\n (instance.context = oldContext),\n (nextProps = contextType))\n : (\"function\" !== typeof instance.componentDidUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof instance.getSnapshotBeforeUpdate ||\n (oldProps === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n return finishClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n hasContext,\n renderLanes\n );\n}\nfunction finishClassComponent(\n current,\n workInProgress,\n Component,\n shouldUpdate,\n hasContext,\n renderLanes\n) {\n markRef(current, workInProgress);\n var didCaptureError = 0 !== (workInProgress.flags & 128);\n if (!shouldUpdate && !didCaptureError)\n return (\n hasContext && invalidateContextProvider(workInProgress, Component, !1),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n shouldUpdate = workInProgress.stateNode;\n ReactCurrentOwner$1.current = workInProgress;\n var nextChildren =\n didCaptureError && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : shouldUpdate.render();\n workInProgress.flags |= 1;\n null !== current && didCaptureError\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n nextChildren,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n workInProgress.memoizedState = shouldUpdate.state;\n hasContext && invalidateContextProvider(workInProgress, Component, !0);\n return workInProgress.child;\n}\nfunction pushHostRootContext(workInProgress) {\n var root = workInProgress.stateNode;\n root.pendingContext\n ? pushTopLevelContextObject(\n workInProgress,\n root.pendingContext,\n root.pendingContext !== root.context\n )\n : root.context &&\n pushTopLevelContextObject(workInProgress, root.context, !1);\n pushHostContainer(workInProgress, root.containerInfo);\n}\nvar SUSPENDED_MARKER = { dehydrated: null, treeContext: null, retryLane: 0 };\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: null, transitions: null };\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n suspenseContext = suspenseStackCursor.current,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseContext & 2));\n if (JSCompiler_temp) (showFallback = !0), (workInProgress.flags &= -129);\n else if (null === current || null !== current.memoizedState)\n suspenseContext |= 1;\n push(suspenseStackCursor, suspenseContext & 1);\n if (null === current) {\n current = workInProgress.memoizedState;\n if (null !== current && null !== current.dehydrated)\n return (\n 0 === (workInProgress.mode & 1)\n ? (workInProgress.lanes = 1)\n : shim()\n ? (workInProgress.lanes = 8)\n : (workInProgress.lanes = 1073741824),\n null\n );\n didSuspend = nextProps.children;\n current = nextProps.fallback;\n return showFallback\n ? ((nextProps = workInProgress.mode),\n (showFallback = workInProgress.child),\n (didSuspend = { mode: \"hidden\", children: didSuspend }),\n 0 === (nextProps & 1) && null !== showFallback\n ? ((showFallback.childLanes = 0),\n (showFallback.pendingProps = didSuspend))\n : (showFallback = createFiberFromOffscreen(\n didSuspend,\n nextProps,\n 0,\n null\n )),\n (current = createFiberFromFragment(\n current,\n nextProps,\n renderLanes,\n null\n )),\n (showFallback.return = workInProgress),\n (current.return = workInProgress),\n (showFallback.sibling = current),\n (workInProgress.child = showFallback),\n (workInProgress.child.memoizedState = mountSuspenseOffscreenState(\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n current)\n : mountSuspensePrimaryChildren(workInProgress, didSuspend);\n }\n suspenseContext = current.memoizedState;\n if (\n null !== suspenseContext &&\n ((JSCompiler_temp = suspenseContext.dehydrated), null !== JSCompiler_temp)\n )\n return updateDehydratedSuspenseComponent(\n current,\n workInProgress,\n didSuspend,\n nextProps,\n JSCompiler_temp,\n suspenseContext,\n renderLanes\n );\n if (showFallback) {\n showFallback = nextProps.fallback;\n didSuspend = workInProgress.mode;\n suspenseContext = current.child;\n JSCompiler_temp = suspenseContext.sibling;\n var primaryChildProps = { mode: \"hidden\", children: nextProps.children };\n 0 === (didSuspend & 1) && workInProgress.child !== suspenseContext\n ? ((nextProps = workInProgress.child),\n (nextProps.childLanes = 0),\n (nextProps.pendingProps = primaryChildProps),\n (workInProgress.deletions = null))\n : ((nextProps = createWorkInProgress(suspenseContext, primaryChildProps)),\n (nextProps.subtreeFlags = suspenseContext.subtreeFlags & 14680064));\n null !== JSCompiler_temp\n ? (showFallback = createWorkInProgress(JSCompiler_temp, showFallback))\n : ((showFallback = createFiberFromFragment(\n showFallback,\n didSuspend,\n renderLanes,\n null\n )),\n (showFallback.flags |= 2));\n showFallback.return = workInProgress;\n nextProps.return = workInProgress;\n nextProps.sibling = showFallback;\n workInProgress.child = nextProps;\n nextProps = showFallback;\n showFallback = workInProgress.child;\n didSuspend = current.child.memoizedState;\n didSuspend =\n null === didSuspend\n ? mountSuspenseOffscreenState(renderLanes)\n : {\n baseLanes: didSuspend.baseLanes | renderLanes,\n cachePool: null,\n transitions: didSuspend.transitions\n };\n showFallback.memoizedState = didSuspend;\n showFallback.childLanes = current.childLanes & ~renderLanes;\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return nextProps;\n }\n showFallback = current.child;\n current = showFallback.sibling;\n nextProps = createWorkInProgress(showFallback, {\n mode: \"visible\",\n children: nextProps.children\n });\n 0 === (workInProgress.mode & 1) && (nextProps.lanes = renderLanes);\n nextProps.return = workInProgress;\n nextProps.sibling = null;\n null !== current &&\n ((renderLanes = workInProgress.deletions),\n null === renderLanes\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : renderLanes.push(current));\n workInProgress.child = nextProps;\n workInProgress.memoizedState = null;\n return nextProps;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = createFiberFromOffscreen(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode,\n 0,\n null\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n recoverableError\n) {\n null !== recoverableError &&\n (null === hydrationErrors\n ? (hydrationErrors = [recoverableError])\n : hydrationErrors.push(recoverableError));\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction updateDehydratedSuspenseComponent(\n current,\n workInProgress,\n didSuspend,\n nextProps,\n suspenseInstance,\n suspenseState,\n renderLanes\n) {\n if (didSuspend) {\n if (workInProgress.flags & 256)\n return (\n (workInProgress.flags &= -257),\n (suspenseState = createCapturedValue(\n Error(\n \"There was an error while hydrating this Suspense boundary. Switched to client rendering.\"\n )\n )),\n retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n suspenseState\n )\n );\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n null\n );\n suspenseState = nextProps.fallback;\n didSuspend = workInProgress.mode;\n nextProps = createFiberFromOffscreen(\n { mode: \"visible\", children: nextProps.children },\n didSuspend,\n 0,\n null\n );\n suspenseState = createFiberFromFragment(\n suspenseState,\n didSuspend,\n renderLanes,\n null\n );\n suspenseState.flags |= 2;\n nextProps.return = workInProgress;\n suspenseState.return = workInProgress;\n nextProps.sibling = suspenseState;\n workInProgress.child = nextProps;\n 0 !== (workInProgress.mode & 1) &&\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n workInProgress.child.memoizedState = mountSuspenseOffscreenState(\n renderLanes\n );\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return suspenseState;\n }\n if (0 === (workInProgress.mode & 1))\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n null\n );\n if (shim())\n return (\n (suspenseState = shim().digest),\n (suspenseState = createCapturedValue(\n Error(\n \"The server could not finish this Suspense boundary, likely due to an error during server rendering. Switched to client rendering.\"\n ),\n suspenseState,\n void 0\n )),\n retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n suspenseState\n )\n );\n didSuspend = 0 !== (renderLanes & current.childLanes);\n if (didReceiveUpdate || didSuspend) {\n nextProps = workInProgressRoot;\n if (null !== nextProps) {\n switch (renderLanes & -renderLanes) {\n case 4:\n didSuspend = 2;\n break;\n case 16:\n didSuspend = 8;\n break;\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n didSuspend = 32;\n break;\n case 536870912:\n didSuspend = 268435456;\n break;\n default:\n didSuspend = 0;\n }\n didSuspend =\n 0 !== (didSuspend & (nextProps.suspendedLanes | renderLanes))\n ? 0\n : didSuspend;\n 0 !== didSuspend &&\n didSuspend !== suspenseState.retryLane &&\n ((suspenseState.retryLane = didSuspend),\n markUpdateLaneFromFiberToRoot(current, didSuspend),\n scheduleUpdateOnFiber(nextProps, current, didSuspend, -1));\n }\n renderDidSuspendDelayIfPossible();\n suspenseState = createCapturedValue(\n Error(\n \"This Suspense boundary received an update before it finished hydrating. This caused the boundary to switch to client rendering. The usual way to fix this is to wrap the original update in startTransition.\"\n )\n );\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes,\n suspenseState\n );\n }\n if (shim())\n return (\n (workInProgress.flags |= 128),\n (workInProgress.child = current.child),\n retryDehydratedSuspenseBoundary.bind(null, current),\n shim(),\n null\n );\n current = mountSuspensePrimaryChildren(workInProgress, nextProps.children);\n current.flags |= 4096;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n reconcileChildren(current, workInProgress, nextProps.children, renderLanes);\n nextProps = suspenseStackCursor.current;\n if (0 !== (nextProps & 2))\n (nextProps = (nextProps & 1) | 2), (workInProgress.flags |= 128);\n else {\n if (null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n nextProps &= 1;\n }\n push(suspenseStackCursor, nextProps);\n if (0 === (workInProgress.mode & 1)) workInProgress.memoizedState = null;\n else\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child),\n (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode\n );\n break;\n case \"backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode\n );\n break;\n case \"together\":\n initSuspenseListRenderState(workInProgress, !1, null, null, void 0);\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress) {\n 0 === (workInProgress.mode & 1) &&\n null !== current &&\n ((current.alternate = null),\n (workInProgress.alternate = null),\n (workInProgress.flags |= 2));\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes)) return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(\"Resuming work not yet implemented.\");\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling = createWorkInProgress(\n current,\n current.pendingProps\n )),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostRootContext(workInProgress);\n break;\n case 5:\n pushHostContext(workInProgress);\n break;\n case 1:\n isContextProvider(workInProgress.type) &&\n pushContextProvider(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n var context = workInProgress.type._context,\n nextValue = workInProgress.memoizedProps.value;\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n break;\n case 13:\n context = workInProgress.memoizedState;\n if (null !== context) {\n if (null !== context.dehydrated)\n return (\n push(suspenseStackCursor, suspenseStackCursor.current & 1),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n break;\n case 19:\n context = 0 !== (renderLanes & workInProgress.childLanes);\n if (0 !== (current.flags & 128)) {\n if (context)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n nextValue = workInProgress.memoizedState;\n null !== nextValue &&\n ((nextValue.rendering = null),\n (nextValue.tail = null),\n (nextValue.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (context) break;\n else return null;\n case 22:\n case 23:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(current, workInProgress, renderLanes)\n );\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nvar appendAllChildren,\n updateHostContainer,\n updateHostComponent$1,\n updateHostText$1;\nappendAllChildren = function(parent, workInProgress) {\n for (var node = workInProgress.child; null !== node; ) {\n if (5 === node.tag || 6 === node.tag) parent._children.push(node.stateNode);\n else if (4 !== node.tag && null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === workInProgress) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === workInProgress) return;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n};\nupdateHostContainer = function() {};\nupdateHostComponent$1 = function(current, workInProgress, type, newProps) {\n current.memoizedProps !== newProps &&\n (requiredContext(contextStackCursor$1.current),\n (workInProgress.updateQueue = UPDATE_SIGNAL)) &&\n (workInProgress.flags |= 4);\n};\nupdateHostText$1 = function(current, workInProgress, oldText, newText) {\n oldText !== newText && (workInProgress.flags |= 4);\n};\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$62 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$62 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$62\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$62.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$63 = completedWork.child; null !== child$63; )\n (newChildLanes |= child$63.lanes | child$63.childLanes),\n (subtreeFlags |= child$63.subtreeFlags & 14680064),\n (subtreeFlags |= child$63.flags & 14680064),\n (child$63.return = completedWork),\n (child$63 = child$63.sibling);\n else\n for (child$63 = completedWork.child; null !== child$63; )\n (newChildLanes |= child$63.lanes | child$63.childLanes),\n (subtreeFlags |= child$63.subtreeFlags),\n (subtreeFlags |= child$63.flags),\n (child$63.return = completedWork),\n (child$63 = child$63.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 2:\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return (\n isContextProvider(workInProgress.type) && popContext(),\n bubbleProperties(workInProgress),\n null\n );\n case 3:\n return (\n (renderLanes = workInProgress.stateNode),\n popHostContainer(),\n pop(didPerformWorkStackCursor),\n pop(contextStackCursor),\n resetWorkInProgressVersions(),\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null)),\n (null !== current && null !== current.child) ||\n null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n null !== hydrationErrors &&\n (queueRecoverableErrors(hydrationErrors),\n (hydrationErrors = null))),\n updateHostContainer(current, workInProgress),\n bubbleProperties(workInProgress),\n null\n );\n case 5:\n popHostContext(workInProgress);\n renderLanes = requiredContext(rootInstanceStackCursor.current);\n var type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n updateHostComponent$1(\n current,\n workInProgress,\n type,\n newProps,\n renderLanes\n ),\n current.ref !== workInProgress.ref && (workInProgress.flags |= 512);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(\n \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\"\n );\n bubbleProperties(workInProgress);\n return null;\n }\n requiredContext(contextStackCursor$1.current);\n current = allocateTag();\n type = getViewConfigForType(type);\n var updatePayload = diffProperties(\n null,\n emptyObject,\n newProps,\n type.validAttributes\n );\n ReactNativePrivateInterface.UIManager.createView(\n current,\n type.uiViewClassName,\n renderLanes,\n updatePayload\n );\n renderLanes = new ReactNativeFiberHostComponent(\n current,\n type,\n workInProgress\n );\n instanceCache.set(current, workInProgress);\n instanceProps.set(current, newProps);\n appendAllChildren(renderLanes, workInProgress, !1, !1);\n workInProgress.stateNode = renderLanes;\n finalizeInitialChildren(renderLanes) && (workInProgress.flags |= 4);\n null !== workInProgress.ref && (workInProgress.flags |= 512);\n }\n bubbleProperties(workInProgress);\n return null;\n case 6:\n if (current && null != workInProgress.stateNode)\n updateHostText$1(\n current,\n workInProgress,\n current.memoizedProps,\n newProps\n );\n else {\n if (\"string\" !== typeof newProps && null === workInProgress.stateNode)\n throw Error(\n \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\"\n );\n current = requiredContext(rootInstanceStackCursor.current);\n if (!requiredContext(contextStackCursor$1.current).isInAParentText)\n throw Error(\n \"Text strings must be rendered within a component.\"\n );\n renderLanes = allocateTag();\n ReactNativePrivateInterface.UIManager.createView(\n renderLanes,\n \"RCTRawText\",\n current,\n { text: newProps }\n );\n instanceCache.set(renderLanes, workInProgress);\n workInProgress.stateNode = renderLanes;\n }\n bubbleProperties(workInProgress);\n return null;\n case 13:\n pop(suspenseStackCursor);\n newProps = workInProgress.memoizedState;\n if (\n null === current ||\n (null !== current.memoizedState &&\n null !== current.memoizedState.dehydrated)\n ) {\n if (null !== newProps && null !== newProps.dehydrated) {\n if (null === current) {\n throw Error(\n \"A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.\"\n );\n throw Error(\n \"Expected prepareToHydrateHostSuspenseInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null);\n workInProgress.flags |= 4;\n bubbleProperties(workInProgress);\n type = !1;\n } else\n null !== hydrationErrors &&\n (queueRecoverableErrors(hydrationErrors), (hydrationErrors = null)),\n (type = !0);\n if (!type) return workInProgress.flags & 65536 ? workInProgress : null;\n }\n if (0 !== (workInProgress.flags & 128))\n return (workInProgress.lanes = renderLanes), workInProgress;\n renderLanes = null !== newProps;\n renderLanes !== (null !== current && null !== current.memoizedState) &&\n renderLanes &&\n ((workInProgress.child.flags |= 8192),\n 0 !== (workInProgress.mode & 1) &&\n (null === current || 0 !== (suspenseStackCursor.current & 1)\n ? 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3)\n : renderDidSuspendDelayIfPossible()));\n null !== workInProgress.updateQueue && (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n return null;\n case 4:\n return (\n popHostContainer(),\n updateHostContainer(current, workInProgress),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type._context),\n bubbleProperties(workInProgress),\n null\n );\n case 17:\n return (\n isContextProvider(workInProgress.type) && popContext(),\n bubbleProperties(workInProgress),\n null\n );\n case 19:\n pop(suspenseStackCursor);\n type = workInProgress.memoizedState;\n if (null === type) return bubbleProperties(workInProgress), null;\n newProps = 0 !== (workInProgress.flags & 128);\n updatePayload = type.rendering;\n if (null === updatePayload)\n if (newProps) cutOffTailIfNeeded(type, !1);\n else {\n if (\n 0 !== workInProgressRootExitStatus ||\n (null !== current && 0 !== (current.flags & 128))\n )\n for (current = workInProgress.child; null !== current; ) {\n updatePayload = findFirstSuspended(current);\n if (null !== updatePayload) {\n workInProgress.flags |= 128;\n cutOffTailIfNeeded(type, !1);\n current = updatePayload.updateQueue;\n null !== current &&\n ((workInProgress.updateQueue = current),\n (workInProgress.flags |= 4));\n workInProgress.subtreeFlags = 0;\n current = renderLanes;\n for (renderLanes = workInProgress.child; null !== renderLanes; )\n (newProps = renderLanes),\n (type = current),\n (newProps.flags &= 14680066),\n (updatePayload = newProps.alternate),\n null === updatePayload\n ? ((newProps.childLanes = 0),\n (newProps.lanes = type),\n (newProps.child = null),\n (newProps.subtreeFlags = 0),\n (newProps.memoizedProps = null),\n (newProps.memoizedState = null),\n (newProps.updateQueue = null),\n (newProps.dependencies = null),\n (newProps.stateNode = null))\n : ((newProps.childLanes = updatePayload.childLanes),\n (newProps.lanes = updatePayload.lanes),\n (newProps.child = updatePayload.child),\n (newProps.subtreeFlags = 0),\n (newProps.deletions = null),\n (newProps.memoizedProps = updatePayload.memoizedProps),\n (newProps.memoizedState = updatePayload.memoizedState),\n (newProps.updateQueue = updatePayload.updateQueue),\n (newProps.type = updatePayload.type),\n (type = updatePayload.dependencies),\n (newProps.dependencies =\n null === type\n ? null\n : {\n lanes: type.lanes,\n firstContext: type.firstContext\n })),\n (renderLanes = renderLanes.sibling);\n push(\n suspenseStackCursor,\n (suspenseStackCursor.current & 1) | 2\n );\n return workInProgress.child;\n }\n current = current.sibling;\n }\n null !== type.tail &&\n now() > workInProgressRootRenderTargetTime &&\n ((workInProgress.flags |= 128),\n (newProps = !0),\n cutOffTailIfNeeded(type, !1),\n (workInProgress.lanes = 4194304));\n }\n else {\n if (!newProps)\n if (\n ((current = findFirstSuspended(updatePayload)), null !== current)\n ) {\n if (\n ((workInProgress.flags |= 128),\n (newProps = !0),\n (current = current.updateQueue),\n null !== current &&\n ((workInProgress.updateQueue = current),\n (workInProgress.flags |= 4)),\n cutOffTailIfNeeded(type, !0),\n null === type.tail &&\n \"hidden\" === type.tailMode &&\n !updatePayload.alternate)\n )\n return bubbleProperties(workInProgress), null;\n } else\n 2 * now() - type.renderingStartTime >\n workInProgressRootRenderTargetTime &&\n 1073741824 !== renderLanes &&\n ((workInProgress.flags |= 128),\n (newProps = !0),\n cutOffTailIfNeeded(type, !1),\n (workInProgress.lanes = 4194304));\n type.isBackwards\n ? ((updatePayload.sibling = workInProgress.child),\n (workInProgress.child = updatePayload))\n : ((current = type.last),\n null !== current\n ? (current.sibling = updatePayload)\n : (workInProgress.child = updatePayload),\n (type.last = updatePayload));\n }\n if (null !== type.tail)\n return (\n (workInProgress = type.tail),\n (type.rendering = workInProgress),\n (type.tail = workInProgress.sibling),\n (type.renderingStartTime = now()),\n (workInProgress.sibling = null),\n (current = suspenseStackCursor.current),\n push(suspenseStackCursor, newProps ? (current & 1) | 2 : current & 1),\n workInProgress\n );\n bubbleProperties(workInProgress);\n return null;\n case 22:\n case 23:\n return (\n popRenderLanes(),\n (renderLanes = null !== workInProgress.memoizedState),\n null !== current &&\n (null !== current.memoizedState) !== renderLanes &&\n (workInProgress.flags |= 8192),\n renderLanes && 0 !== (workInProgress.mode & 1)\n ? 0 !== (subtreeRenderLanes & 1073741824) &&\n (bubbleProperties(workInProgress),\n workInProgress.subtreeFlags & 6 && (workInProgress.flags |= 8192))\n : bubbleProperties(workInProgress),\n null\n );\n case 24:\n return null;\n case 25:\n return null;\n }\n throw Error(\n \"Unknown unit of work tag (\" +\n workInProgress.tag +\n \"). This error is likely caused by a bug in React. Please file an issue.\"\n );\n}\nfunction unwindWork(current, workInProgress) {\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 1:\n return (\n isContextProvider(workInProgress.type) && popContext(),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 3:\n return (\n popHostContainer(),\n pop(didPerformWorkStackCursor),\n pop(contextStackCursor),\n resetWorkInProgressVersions(),\n (current = workInProgress.flags),\n 0 !== (current & 65536) && 0 === (current & 128)\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 5:\n return popHostContext(workInProgress), null;\n case 13:\n pop(suspenseStackCursor);\n current = workInProgress.memoizedState;\n if (\n null !== current &&\n null !== current.dehydrated &&\n null === workInProgress.alternate\n )\n throw Error(\n \"Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.\"\n );\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 19:\n return pop(suspenseStackCursor), null;\n case 4:\n return popHostContainer(), null;\n case 10:\n return popProvider(workInProgress.type._context), null;\n case 22:\n case 23:\n return popRenderLanes(), null;\n case 24:\n return null;\n default:\n return null;\n }\n}\nvar PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null;\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref;\n if (null !== ref)\n if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n else ref.current = null;\n}\nfunction safelyCallDestroy(current, nearestMountedAncestor, destroy) {\n try {\n destroy();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nvar shouldFireAfterActiveInstanceBlur = !1;\nfunction commitBeforeMutationEffects(root, firstChild) {\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((root = nextEffect),\n (firstChild = root.child),\n 0 !== (root.subtreeFlags & 1028) && null !== firstChild)\n )\n (firstChild.return = root), (nextEffect = firstChild);\n else\n for (; null !== nextEffect; ) {\n root = nextEffect;\n try {\n var current = root.alternate;\n if (0 !== (root.flags & 1024))\n switch (root.tag) {\n case 0:\n case 11:\n case 15:\n break;\n case 1:\n if (null !== current) {\n var prevProps = current.memoizedProps,\n prevState = current.memoizedState,\n instance = root.stateNode,\n snapshot = instance.getSnapshotBeforeUpdate(\n root.elementType === root.type\n ? prevProps\n : resolveDefaultProps(root.type, prevProps),\n prevState\n );\n instance.__reactInternalSnapshotBeforeUpdate = snapshot;\n }\n break;\n case 3:\n break;\n case 5:\n case 6:\n case 4:\n case 17:\n break;\n default:\n throw Error(\n \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n } catch (error) {\n captureCommitPhaseError(root, root.return, error);\n }\n firstChild = root.sibling;\n if (null !== firstChild) {\n firstChild.return = root.return;\n nextEffect = firstChild;\n break;\n }\n nextEffect = root.return;\n }\n current = shouldFireAfterActiveInstanceBlur;\n shouldFireAfterActiveInstanceBlur = !1;\n return current;\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor\n) {\n var updateQueue = finishedWork.updateQueue;\n updateQueue = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== updateQueue) {\n var effect = (updateQueue = updateQueue.next);\n do {\n if ((effect.tag & flags) === flags) {\n var destroy = effect.destroy;\n effect.destroy = void 0;\n void 0 !== destroy &&\n safelyCallDestroy(finishedWork, nearestMountedAncestor, destroy);\n }\n effect = effect.next;\n } while (effect !== updateQueue);\n }\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n finishedWork = finishedWork.updateQueue;\n finishedWork = null !== finishedWork ? finishedWork.lastEffect : null;\n if (null !== finishedWork) {\n var effect = (finishedWork = finishedWork.next);\n do {\n if ((effect.tag & flags) === flags) {\n var create$75 = effect.create;\n effect.destroy = create$75();\n }\n effect = effect.next;\n } while (effect !== finishedWork);\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nfunction isHostParent(fiber) {\n return 5 === fiber.tag || 3 === fiber.tag || 4 === fiber.tag;\n}\nfunction getHostSibling(fiber) {\n a: for (;;) {\n for (; null === fiber.sibling; ) {\n if (null === fiber.return || isHostParent(fiber.return)) return null;\n fiber = fiber.return;\n }\n fiber.sibling.return = fiber.return;\n for (\n fiber = fiber.sibling;\n 5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;\n\n ) {\n if (fiber.flags & 2) continue a;\n if (null === fiber.child || 4 === fiber.tag) continue a;\n else (fiber.child.return = fiber), (fiber = fiber.child);\n }\n if (!(fiber.flags & 2)) return fiber.stateNode;\n }\n}\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n if (((node = node.stateNode), before)) {\n if (\"number\" === typeof parent)\n throw Error(\"Container does not support insertBefore operation\");\n } else\n ReactNativePrivateInterface.UIManager.setChildren(parent, [\n \"number\" === typeof node ? node : node._nativeTag\n ]);\n else if (4 !== tag && ((node = node.child), null !== node))\n for (\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n (node = node.sibling);\n}\nfunction insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n if (((node = node.stateNode), before)) {\n tag = parent._children;\n var index = tag.indexOf(node);\n 0 <= index\n ? (tag.splice(index, 1),\n (before = tag.indexOf(before)),\n tag.splice(before, 0, node),\n ReactNativePrivateInterface.UIManager.manageChildren(\n parent._nativeTag,\n [index],\n [before],\n [],\n [],\n []\n ))\n : ((before = tag.indexOf(before)),\n tag.splice(before, 0, node),\n ReactNativePrivateInterface.UIManager.manageChildren(\n parent._nativeTag,\n [],\n [],\n [\"number\" === typeof node ? node : node._nativeTag],\n [before],\n []\n ));\n } else\n (before = \"number\" === typeof node ? node : node._nativeTag),\n (tag = parent._children),\n (index = tag.indexOf(node)),\n 0 <= index\n ? (tag.splice(index, 1),\n tag.push(node),\n ReactNativePrivateInterface.UIManager.manageChildren(\n parent._nativeTag,\n [index],\n [tag.length - 1],\n [],\n [],\n []\n ))\n : (tag.push(node),\n ReactNativePrivateInterface.UIManager.manageChildren(\n parent._nativeTag,\n [],\n [],\n [before],\n [tag.length - 1],\n []\n ));\n else if (4 !== tag && ((node = node.child), null !== node))\n for (\n insertOrAppendPlacementNode(node, before, parent), node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(node, before, parent), (node = node.sibling);\n}\nvar hostParent = null,\n hostParentIsContainer = !1;\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 5:\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n var prevHostParent = hostParent,\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = null;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n null !== hostParent &&\n (hostParentIsContainer\n ? ((finishedRoot = hostParent),\n recursivelyUncacheFiberNode(deletedFiber.stateNode),\n ReactNativePrivateInterface.UIManager.manageChildren(\n finishedRoot,\n [],\n [],\n [],\n [],\n [0]\n ))\n : ((finishedRoot = hostParent),\n (nearestMountedAncestor = deletedFiber.stateNode),\n recursivelyUncacheFiberNode(nearestMountedAncestor),\n (deletedFiber = finishedRoot._children),\n (nearestMountedAncestor = deletedFiber.indexOf(\n nearestMountedAncestor\n )),\n deletedFiber.splice(nearestMountedAncestor, 1),\n ReactNativePrivateInterface.UIManager.manageChildren(\n finishedRoot._nativeTag,\n [],\n [],\n [],\n [],\n [nearestMountedAncestor]\n )));\n break;\n case 18:\n null !== hostParent && shim(hostParent, deletedFiber.stateNode);\n break;\n case 4:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode.containerInfo;\n hostParentIsContainer = !0;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n prevHostParent = deletedFiber.updateQueue;\n if (\n null !== prevHostParent &&\n ((prevHostParent = prevHostParent.lastEffect), null !== prevHostParent)\n ) {\n prevHostParentIsContainer = prevHostParent = prevHostParent.next;\n do {\n var _effect = prevHostParentIsContainer,\n destroy = _effect.destroy;\n _effect = _effect.tag;\n void 0 !== destroy &&\n (0 !== (_effect & 2)\n ? safelyCallDestroy(deletedFiber, nearestMountedAncestor, destroy)\n : 0 !== (_effect & 4) &&\n safelyCallDestroy(\n deletedFiber,\n nearestMountedAncestor,\n destroy\n ));\n prevHostParentIsContainer = prevHostParentIsContainer.next;\n } while (prevHostParentIsContainer !== prevHostParent);\n }\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n prevHostParent = deletedFiber.stateNode;\n if (\"function\" === typeof prevHostParent.componentWillUnmount)\n try {\n (prevHostParent.props = deletedFiber.memoizedProps),\n (prevHostParent.state = deletedFiber.memoizedState),\n prevHostParent.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(deletedFiber, nearestMountedAncestor, error);\n }\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork) {\n var wakeables = finishedWork.updateQueue;\n if (null !== wakeables) {\n finishedWork.updateQueue = null;\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n wakeables.forEach(function(wakeable) {\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n retryCache.has(wakeable) ||\n (retryCache.add(wakeable), wakeable.then(retry, retry));\n });\n }\n}\nfunction recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n try {\n var root = root$jscomp$0,\n returnFiber = parentFiber,\n parent = returnFiber;\n a: for (; null !== parent; ) {\n switch (parent.tag) {\n case 5:\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n case 3:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n case 4:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n }\n parent = parent.return;\n }\n if (null === hostParent)\n throw Error(\n \"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.\"\n );\n commitDeletionEffectsOnFiber(root, returnFiber, childToDelete);\n hostParent = null;\n hostParentIsContainer = !1;\n var alternate = childToDelete.alternate;\n null !== alternate && (alternate.return = null);\n childToDelete.return = null;\n } catch (error) {\n captureCommitPhaseError(childToDelete, parentFiber, error);\n }\n }\n if (parentFiber.subtreeFlags & 12854)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n try {\n commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n try {\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return);\n } catch (error$85) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error$85);\n }\n }\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n null !== current &&\n safelyDetachRef(current, current.return);\n break;\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n null !== current &&\n safelyDetachRef(current, current.return);\n if (flags & 4) {\n var instance$87 = finishedWork.stateNode;\n if (null != instance$87) {\n var newProps = finishedWork.memoizedProps,\n oldProps = null !== current ? current.memoizedProps : newProps,\n updatePayload = finishedWork.updateQueue;\n finishedWork.updateQueue = null;\n if (null !== updatePayload)\n try {\n var viewConfig = instance$87.viewConfig;\n instanceProps.set(instance$87._nativeTag, newProps);\n var updatePayload$jscomp$0 = diffProperties(\n null,\n oldProps,\n newProps,\n viewConfig.validAttributes\n );\n null != updatePayload$jscomp$0 &&\n ReactNativePrivateInterface.UIManager.updateView(\n instance$87._nativeTag,\n viewConfig.uiViewClassName,\n updatePayload$jscomp$0\n );\n } catch (error$88) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$88\n );\n }\n }\n }\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(\n \"This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue.\"\n );\n viewConfig = finishedWork.stateNode;\n updatePayload$jscomp$0 = finishedWork.memoizedProps;\n try {\n ReactNativePrivateInterface.UIManager.updateView(\n viewConfig,\n \"RCTRawText\",\n { text: updatePayload$jscomp$0 }\n );\n } catch (error$89) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error$89);\n }\n }\n break;\n case 3:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 4:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n viewConfig = finishedWork.child;\n viewConfig.flags & 8192 &&\n ((updatePayload$jscomp$0 = null !== viewConfig.memoizedState),\n (viewConfig.stateNode.isHidden = updatePayload$jscomp$0),\n !updatePayload$jscomp$0 ||\n (null !== viewConfig.alternate &&\n null !== viewConfig.alternate.memoizedState) ||\n (globalMostRecentFallbackTime = now()));\n flags & 4 && attachSuspenseRetryListeners(finishedWork);\n break;\n case 22:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 8192)\n a: for (\n viewConfig = null !== finishedWork.memoizedState,\n finishedWork.stateNode.isHidden = viewConfig,\n updatePayload$jscomp$0 = null,\n current = finishedWork;\n ;\n\n ) {\n if (5 === current.tag) {\n if (null === updatePayload$jscomp$0) {\n updatePayload$jscomp$0 = current;\n try {\n if (((instance$87 = current.stateNode), viewConfig))\n (newProps = instance$87.viewConfig),\n (oldProps = diffProperties(\n null,\n emptyObject,\n { style: { display: \"none\" } },\n newProps.validAttributes\n )),\n ReactNativePrivateInterface.UIManager.updateView(\n instance$87._nativeTag,\n newProps.uiViewClassName,\n oldProps\n );\n else {\n updatePayload = current.stateNode;\n var props = current.memoizedProps,\n viewConfig$jscomp$0 = updatePayload.viewConfig,\n prevProps = assign({}, props, {\n style: [props.style, { display: \"none\" }]\n });\n var updatePayload$jscomp$1 = diffProperties(\n null,\n prevProps,\n props,\n viewConfig$jscomp$0.validAttributes\n );\n ReactNativePrivateInterface.UIManager.updateView(\n updatePayload._nativeTag,\n viewConfig$jscomp$0.uiViewClassName,\n updatePayload$jscomp$1\n );\n }\n } catch (error) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error\n );\n }\n }\n } else if (6 === current.tag) {\n if (null === updatePayload$jscomp$0)\n try {\n throw Error(\"Not yet implemented.\");\n } catch (error$80) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$80\n );\n }\n } else if (\n ((22 !== current.tag && 23 !== current.tag) ||\n null === current.memoizedState ||\n current === finishedWork) &&\n null !== current.child\n ) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === finishedWork) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === finishedWork)\n break a;\n updatePayload$jscomp$0 === current &&\n (updatePayload$jscomp$0 = null);\n current = current.return;\n }\n updatePayload$jscomp$0 === current && (updatePayload$jscomp$0 = null);\n current.sibling.return = current.return;\n current = current.sibling;\n }\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 && attachSuspenseRetryListeners(finishedWork);\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n if (flags & 2) {\n try {\n a: {\n for (var parent = finishedWork.return; null !== parent; ) {\n if (isHostParent(parent)) {\n var JSCompiler_inline_result = parent;\n break a;\n }\n parent = parent.return;\n }\n throw Error(\n \"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n switch (JSCompiler_inline_result.tag) {\n case 5:\n var parent$jscomp$0 = JSCompiler_inline_result.stateNode;\n JSCompiler_inline_result.flags & 32 &&\n (JSCompiler_inline_result.flags &= -33);\n var before = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before, parent$jscomp$0);\n break;\n case 3:\n case 4:\n var parent$81 = JSCompiler_inline_result.stateNode.containerInfo,\n before$82 = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n before$82,\n parent$81\n );\n break;\n default:\n throw Error(\n \"Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n finishedWork.flags &= -3;\n }\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction commitLayoutEffects(finishedWork) {\n for (nextEffect = finishedWork; null !== nextEffect; ) {\n var fiber = nextEffect,\n firstChild = fiber.child;\n if (0 !== (fiber.subtreeFlags & 8772) && null !== firstChild)\n (firstChild.return = fiber), (nextEffect = firstChild);\n else\n for (fiber = finishedWork; null !== nextEffect; ) {\n firstChild = nextEffect;\n if (0 !== (firstChild.flags & 8772)) {\n var current = firstChild.alternate;\n try {\n if (0 !== (firstChild.flags & 8772))\n switch (firstChild.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListMount(5, firstChild);\n break;\n case 1:\n var instance = firstChild.stateNode;\n if (firstChild.flags & 4)\n if (null === current) instance.componentDidMount();\n else {\n var prevProps =\n firstChild.elementType === firstChild.type\n ? current.memoizedProps\n : resolveDefaultProps(\n firstChild.type,\n current.memoizedProps\n );\n instance.componentDidUpdate(\n prevProps,\n current.memoizedState,\n instance.__reactInternalSnapshotBeforeUpdate\n );\n }\n var updateQueue = firstChild.updateQueue;\n null !== updateQueue &&\n commitUpdateQueue(firstChild, updateQueue, instance);\n break;\n case 3:\n var updateQueue$76 = firstChild.updateQueue;\n if (null !== updateQueue$76) {\n current = null;\n if (null !== firstChild.child)\n switch (firstChild.child.tag) {\n case 5:\n current = firstChild.child.stateNode;\n break;\n case 1:\n current = firstChild.child.stateNode;\n }\n commitUpdateQueue(firstChild, updateQueue$76, current);\n }\n break;\n case 5:\n break;\n case 6:\n break;\n case 4:\n break;\n case 12:\n break;\n case 13:\n break;\n case 19:\n case 17:\n case 21:\n case 22:\n case 23:\n case 25:\n break;\n default:\n throw Error(\n \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (firstChild.flags & 512) {\n current = void 0;\n var ref = firstChild.ref;\n if (null !== ref) {\n var instance$jscomp$0 = firstChild.stateNode;\n switch (firstChild.tag) {\n case 5:\n current = instance$jscomp$0;\n break;\n default:\n current = instance$jscomp$0;\n }\n \"function\" === typeof ref\n ? ref(current)\n : (ref.current = current);\n }\n }\n } catch (error) {\n captureCommitPhaseError(firstChild, firstChild.return, error);\n }\n }\n if (firstChild === fiber) {\n nextEffect = null;\n break;\n }\n current = firstChild.sibling;\n if (null !== current) {\n current.return = firstChild.return;\n nextEffect = current;\n break;\n }\n nextEffect = firstChild.return;\n }\n }\n}\nvar ceil = Math.ceil,\n ReactCurrentDispatcher$2 = ReactSharedInternals.ReactCurrentDispatcher,\n ReactCurrentOwner$2 = ReactSharedInternals.ReactCurrentOwner,\n ReactCurrentBatchConfig$2 = ReactSharedInternals.ReactCurrentBatchConfig,\n executionContext = 0,\n workInProgressRoot = null,\n workInProgress = null,\n workInProgressRootRenderLanes = 0,\n subtreeRenderLanes = 0,\n subtreeRenderLanesCursor = createCursor(0),\n workInProgressRootExitStatus = 0,\n workInProgressRootFatalError = null,\n workInProgressRootSkippedLanes = 0,\n workInProgressRootInterleavedUpdatedLanes = 0,\n workInProgressRootPingedLanes = 0,\n workInProgressRootConcurrentErrors = null,\n workInProgressRootRecoverableErrors = null,\n globalMostRecentFallbackTime = 0,\n workInProgressRootRenderTargetTime = Infinity,\n workInProgressTransitions = null,\n hasUncaughtError = !1,\n firstUncaughtError = null,\n legacyErrorBoundariesThatAlreadyFailed = null,\n rootDoesHavePassiveEffects = !1,\n rootWithPendingPassiveEffects = null,\n pendingPassiveEffectsLanes = 0,\n nestedUpdateCount = 0,\n rootWithNestedUpdates = null,\n currentEventTime = -1,\n currentEventTransitionLane = 0;\nfunction requestEventTime() {\n return 0 !== (executionContext & 6)\n ? now()\n : -1 !== currentEventTime\n ? currentEventTime\n : (currentEventTime = now());\n}\nfunction requestUpdateLane(fiber) {\n if (0 === (fiber.mode & 1)) return 1;\n if (0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes)\n return workInProgressRootRenderLanes & -workInProgressRootRenderLanes;\n if (null !== ReactCurrentBatchConfig.transition)\n return (\n 0 === currentEventTransitionLane &&\n (currentEventTransitionLane = claimNextTransitionLane()),\n currentEventTransitionLane\n );\n fiber = currentUpdatePriority;\n return 0 !== fiber ? fiber : 16;\n}\nfunction scheduleUpdateOnFiber(root, fiber, lane, eventTime) {\n if (50 < nestedUpdateCount)\n throw ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(\n \"Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\"\n ));\n markRootUpdated(root, lane, eventTime);\n if (0 === (executionContext & 2) || root !== workInProgressRoot)\n root === workInProgressRoot &&\n (0 === (executionContext & 2) &&\n (workInProgressRootInterleavedUpdatedLanes |= lane),\n 4 === workInProgressRootExitStatus &&\n markRootSuspended$1(root, workInProgressRootRenderLanes)),\n ensureRootIsScheduled(root, eventTime),\n 1 === lane &&\n 0 === executionContext &&\n 0 === (fiber.mode & 1) &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n includesLegacySyncCallbacks && flushSyncCallbacks());\n}\nfunction ensureRootIsScheduled(root, currentTime) {\n for (\n var existingCallbackNode = root.callbackNode,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n expirationTimes = root.expirationTimes,\n lanes = root.pendingLanes;\n 0 < lanes;\n\n ) {\n var index$6 = 31 - clz32(lanes),\n lane = 1 << index$6,\n expirationTime = expirationTimes[index$6];\n if (-1 === expirationTime) {\n if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n expirationTimes[index$6] = computeExpirationTime(lane, currentTime);\n } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n lanes &= ~lane;\n }\n suspendedLanes = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes : 0\n );\n if (0 === suspendedLanes)\n null !== existingCallbackNode && cancelCallback(existingCallbackNode),\n (root.callbackNode = null),\n (root.callbackPriority = 0);\n else if (\n ((currentTime = suspendedLanes & -suspendedLanes),\n root.callbackPriority !== currentTime)\n ) {\n null != existingCallbackNode && cancelCallback(existingCallbackNode);\n if (1 === currentTime)\n 0 === root.tag\n ? ((existingCallbackNode = performSyncWorkOnRoot.bind(null, root)),\n (includesLegacySyncCallbacks = !0),\n null === syncQueue\n ? (syncQueue = [existingCallbackNode])\n : syncQueue.push(existingCallbackNode))\n : ((existingCallbackNode = performSyncWorkOnRoot.bind(null, root)),\n null === syncQueue\n ? (syncQueue = [existingCallbackNode])\n : syncQueue.push(existingCallbackNode)),\n scheduleCallback(ImmediatePriority, flushSyncCallbacks),\n (existingCallbackNode = null);\n else {\n switch (lanesToEventPriority(suspendedLanes)) {\n case 1:\n existingCallbackNode = ImmediatePriority;\n break;\n case 4:\n existingCallbackNode = UserBlockingPriority;\n break;\n case 16:\n existingCallbackNode = NormalPriority;\n break;\n case 536870912:\n existingCallbackNode = IdlePriority;\n break;\n default:\n existingCallbackNode = NormalPriority;\n }\n existingCallbackNode = scheduleCallback$1(\n existingCallbackNode,\n performConcurrentWorkOnRoot.bind(null, root)\n );\n }\n root.callbackPriority = currentTime;\n root.callbackNode = existingCallbackNode;\n }\n}\nfunction performConcurrentWorkOnRoot(root, didTimeout) {\n currentEventTime = -1;\n currentEventTransitionLane = 0;\n if (0 !== (executionContext & 6))\n throw Error(\"Should not already be working.\");\n var originalCallbackNode = root.callbackNode;\n if (flushPassiveEffects() && root.callbackNode !== originalCallbackNode)\n return null;\n var lanes = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes : 0\n );\n if (0 === lanes) return null;\n if (0 !== (lanes & 30) || 0 !== (lanes & root.expiredLanes) || didTimeout)\n didTimeout = renderRootSync(root, lanes);\n else {\n didTimeout = lanes;\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher();\n if (\n workInProgressRoot !== root ||\n workInProgressRootRenderLanes !== didTimeout\n )\n (workInProgressTransitions = null),\n (workInProgressRootRenderTargetTime = now() + 500),\n prepareFreshStack(root, didTimeout);\n do\n try {\n workLoopConcurrent();\n break;\n } catch (thrownValue) {\n handleError(root, thrownValue);\n }\n while (1);\n resetContextDependencies();\n ReactCurrentDispatcher$2.current = prevDispatcher;\n executionContext = prevExecutionContext;\n null !== workInProgress\n ? (didTimeout = 0)\n : ((workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0),\n (didTimeout = workInProgressRootExitStatus));\n }\n if (0 !== didTimeout) {\n 2 === didTimeout &&\n ((prevExecutionContext = getLanesToRetrySynchronouslyOnError(root)),\n 0 !== prevExecutionContext &&\n ((lanes = prevExecutionContext),\n (didTimeout = recoverFromConcurrentError(root, prevExecutionContext))));\n if (1 === didTimeout)\n throw ((originalCallbackNode = workInProgressRootFatalError),\n prepareFreshStack(root, 0),\n markRootSuspended$1(root, lanes),\n ensureRootIsScheduled(root, now()),\n originalCallbackNode);\n if (6 === didTimeout) markRootSuspended$1(root, lanes);\n else {\n prevExecutionContext = root.current.alternate;\n if (\n 0 === (lanes & 30) &&\n !isRenderConsistentWithExternalStores(prevExecutionContext) &&\n ((didTimeout = renderRootSync(root, lanes)),\n 2 === didTimeout &&\n ((prevDispatcher = getLanesToRetrySynchronouslyOnError(root)),\n 0 !== prevDispatcher &&\n ((lanes = prevDispatcher),\n (didTimeout = recoverFromConcurrentError(root, prevDispatcher)))),\n 1 === didTimeout)\n )\n throw ((originalCallbackNode = workInProgressRootFatalError),\n prepareFreshStack(root, 0),\n markRootSuspended$1(root, lanes),\n ensureRootIsScheduled(root, now()),\n originalCallbackNode);\n root.finishedWork = prevExecutionContext;\n root.finishedLanes = lanes;\n switch (didTimeout) {\n case 0:\n case 1:\n throw Error(\"Root did not complete. This is a bug in React.\");\n case 2:\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n case 3:\n markRootSuspended$1(root, lanes);\n if (\n (lanes & 130023424) === lanes &&\n ((didTimeout = globalMostRecentFallbackTime + 500 - now()),\n 10 < didTimeout)\n ) {\n if (0 !== getNextLanes(root, 0)) break;\n prevExecutionContext = root.suspendedLanes;\n if ((prevExecutionContext & lanes) !== lanes) {\n requestEventTime();\n root.pingedLanes |= root.suspendedLanes & prevExecutionContext;\n break;\n }\n root.timeoutHandle = scheduleTimeout(\n commitRoot.bind(\n null,\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n ),\n didTimeout\n );\n break;\n }\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n case 4:\n markRootSuspended$1(root, lanes);\n if ((lanes & 4194240) === lanes) break;\n didTimeout = root.eventTimes;\n for (prevExecutionContext = -1; 0 < lanes; ) {\n var index$5 = 31 - clz32(lanes);\n prevDispatcher = 1 << index$5;\n index$5 = didTimeout[index$5];\n index$5 > prevExecutionContext && (prevExecutionContext = index$5);\n lanes &= ~prevDispatcher;\n }\n lanes = prevExecutionContext;\n lanes = now() - lanes;\n lanes =\n (120 > lanes\n ? 120\n : 480 > lanes\n ? 480\n : 1080 > lanes\n ? 1080\n : 1920 > lanes\n ? 1920\n : 3e3 > lanes\n ? 3e3\n : 4320 > lanes\n ? 4320\n : 1960 * ceil(lanes / 1960)) - lanes;\n if (10 < lanes) {\n root.timeoutHandle = scheduleTimeout(\n commitRoot.bind(\n null,\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n ),\n lanes\n );\n break;\n }\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n case 5:\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n break;\n default:\n throw Error(\"Unknown root exit status.\");\n }\n }\n }\n ensureRootIsScheduled(root, now());\n return root.callbackNode === originalCallbackNode\n ? performConcurrentWorkOnRoot.bind(null, root)\n : null;\n}\nfunction recoverFromConcurrentError(root, errorRetryLanes) {\n var errorsFromFirstAttempt = workInProgressRootConcurrentErrors;\n root.current.memoizedState.isDehydrated &&\n (prepareFreshStack(root, errorRetryLanes).flags |= 256);\n root = renderRootSync(root, errorRetryLanes);\n 2 !== root &&\n ((errorRetryLanes = workInProgressRootRecoverableErrors),\n (workInProgressRootRecoverableErrors = errorsFromFirstAttempt),\n null !== errorRetryLanes && queueRecoverableErrors(errorRetryLanes));\n return root;\n}\nfunction queueRecoverableErrors(errors) {\n null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = errors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n errors\n );\n}\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n for (var node = finishedWork; ; ) {\n if (node.flags & 16384) {\n var updateQueue = node.updateQueue;\n if (\n null !== updateQueue &&\n ((updateQueue = updateQueue.stores), null !== updateQueue)\n )\n for (var i = 0; i < updateQueue.length; i++) {\n var check = updateQueue[i],\n getSnapshot = check.getSnapshot;\n check = check.value;\n try {\n if (!objectIs(getSnapshot(), check)) return !1;\n } catch (error) {\n return !1;\n }\n }\n }\n updateQueue = node.child;\n if (node.subtreeFlags & 16384 && null !== updateQueue)\n (updateQueue.return = node), (node = updateQueue);\n else {\n if (node === finishedWork) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === finishedWork) return !0;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n return !0;\n}\nfunction markRootSuspended$1(root, suspendedLanes) {\n suspendedLanes &= ~workInProgressRootPingedLanes;\n suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes;\n for (root = root.expirationTimes; 0 < suspendedLanes; ) {\n var index$7 = 31 - clz32(suspendedLanes),\n lane = 1 << index$7;\n root[index$7] = -1;\n suspendedLanes &= ~lane;\n }\n}\nfunction performSyncWorkOnRoot(root) {\n if (0 !== (executionContext & 6))\n throw Error(\"Should not already be working.\");\n flushPassiveEffects();\n var lanes = getNextLanes(root, 0);\n if (0 === (lanes & 1)) return ensureRootIsScheduled(root, now()), null;\n var exitStatus = renderRootSync(root, lanes);\n if (0 !== root.tag && 2 === exitStatus) {\n var errorRetryLanes = getLanesToRetrySynchronouslyOnError(root);\n 0 !== errorRetryLanes &&\n ((lanes = errorRetryLanes),\n (exitStatus = recoverFromConcurrentError(root, errorRetryLanes)));\n }\n if (1 === exitStatus)\n throw ((exitStatus = workInProgressRootFatalError),\n prepareFreshStack(root, 0),\n markRootSuspended$1(root, lanes),\n ensureRootIsScheduled(root, now()),\n exitStatus);\n if (6 === exitStatus)\n throw Error(\"Root did not complete. This is a bug in React.\");\n root.finishedWork = root.current.alternate;\n root.finishedLanes = lanes;\n commitRoot(\n root,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions\n );\n ensureRootIsScheduled(root, now());\n return null;\n}\nfunction popRenderLanes() {\n subtreeRenderLanes = subtreeRenderLanesCursor.current;\n pop(subtreeRenderLanesCursor);\n}\nfunction prepareFreshStack(root, lanes) {\n root.finishedWork = null;\n root.finishedLanes = 0;\n var timeoutHandle = root.timeoutHandle;\n -1 !== timeoutHandle &&\n ((root.timeoutHandle = -1), cancelTimeout(timeoutHandle));\n if (null !== workInProgress)\n for (timeoutHandle = workInProgress.return; null !== timeoutHandle; ) {\n var interruptedWork = timeoutHandle;\n popTreeContext(interruptedWork);\n switch (interruptedWork.tag) {\n case 1:\n interruptedWork = interruptedWork.type.childContextTypes;\n null !== interruptedWork &&\n void 0 !== interruptedWork &&\n popContext();\n break;\n case 3:\n popHostContainer();\n pop(didPerformWorkStackCursor);\n pop(contextStackCursor);\n resetWorkInProgressVersions();\n break;\n case 5:\n popHostContext(interruptedWork);\n break;\n case 4:\n popHostContainer();\n break;\n case 13:\n pop(suspenseStackCursor);\n break;\n case 19:\n pop(suspenseStackCursor);\n break;\n case 10:\n popProvider(interruptedWork.type._context);\n break;\n case 22:\n case 23:\n popRenderLanes();\n }\n timeoutHandle = timeoutHandle.return;\n }\n workInProgressRoot = root;\n workInProgress = root = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = subtreeRenderLanes = lanes;\n workInProgressRootExitStatus = 0;\n workInProgressRootFatalError = null;\n workInProgressRootPingedLanes = workInProgressRootInterleavedUpdatedLanes = workInProgressRootSkippedLanes = 0;\n workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors = null;\n if (null !== concurrentQueues) {\n for (lanes = 0; lanes < concurrentQueues.length; lanes++)\n if (\n ((timeoutHandle = concurrentQueues[lanes]),\n (interruptedWork = timeoutHandle.interleaved),\n null !== interruptedWork)\n ) {\n timeoutHandle.interleaved = null;\n var firstInterleavedUpdate = interruptedWork.next,\n lastPendingUpdate = timeoutHandle.pending;\n if (null !== lastPendingUpdate) {\n var firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = firstInterleavedUpdate;\n interruptedWork.next = firstPendingUpdate;\n }\n timeoutHandle.pending = interruptedWork;\n }\n concurrentQueues = null;\n }\n return root;\n}\nfunction handleError(root$jscomp$0, thrownValue) {\n do {\n var erroredWork = workInProgress;\n try {\n resetContextDependencies();\n ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n if (didScheduleRenderPhaseUpdate) {\n for (\n var hook = currentlyRenderingFiber$1.memoizedState;\n null !== hook;\n\n ) {\n var queue = hook.queue;\n null !== queue && (queue.pending = null);\n hook = hook.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber$1 = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n ReactCurrentOwner$2.current = null;\n if (null === erroredWork || null === erroredWork.return) {\n workInProgressRootExitStatus = 1;\n workInProgressRootFatalError = thrownValue;\n workInProgress = null;\n break;\n }\n a: {\n var root = root$jscomp$0,\n returnFiber = erroredWork.return,\n sourceFiber = erroredWork,\n value = thrownValue;\n thrownValue = workInProgressRootRenderLanes;\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n var wakeable = value,\n sourceFiber$jscomp$0 = sourceFiber,\n tag = sourceFiber$jscomp$0.tag;\n if (\n 0 === (sourceFiber$jscomp$0.mode & 1) &&\n (0 === tag || 11 === tag || 15 === tag)\n ) {\n var currentSource = sourceFiber$jscomp$0.alternate;\n currentSource\n ? ((sourceFiber$jscomp$0.updateQueue = currentSource.updateQueue),\n (sourceFiber$jscomp$0.memoizedState =\n currentSource.memoizedState),\n (sourceFiber$jscomp$0.lanes = currentSource.lanes))\n : ((sourceFiber$jscomp$0.updateQueue = null),\n (sourceFiber$jscomp$0.memoizedState = null));\n }\n b: {\n sourceFiber$jscomp$0 = returnFiber;\n do {\n var JSCompiler_temp;\n if ((JSCompiler_temp = 13 === sourceFiber$jscomp$0.tag)) {\n var nextState = sourceFiber$jscomp$0.memoizedState;\n JSCompiler_temp =\n null !== nextState\n ? null !== nextState.dehydrated\n ? !0\n : !1\n : !0;\n }\n if (JSCompiler_temp) {\n var suspenseBoundary = sourceFiber$jscomp$0;\n break b;\n }\n sourceFiber$jscomp$0 = sourceFiber$jscomp$0.return;\n } while (null !== sourceFiber$jscomp$0);\n suspenseBoundary = null;\n }\n if (null !== suspenseBoundary) {\n suspenseBoundary.flags &= -257;\n value = suspenseBoundary;\n sourceFiber$jscomp$0 = thrownValue;\n if (0 === (value.mode & 1))\n if (value === returnFiber) value.flags |= 65536;\n else {\n value.flags |= 128;\n sourceFiber.flags |= 131072;\n sourceFiber.flags &= -52805;\n if (1 === sourceFiber.tag)\n if (null === sourceFiber.alternate) sourceFiber.tag = 17;\n else {\n var update = createUpdate(-1, 1);\n update.tag = 2;\n enqueueUpdate(sourceFiber, update, 1);\n }\n sourceFiber.lanes |= 1;\n }\n else (value.flags |= 65536), (value.lanes = sourceFiber$jscomp$0);\n suspenseBoundary.mode & 1 &&\n attachPingListener(root, wakeable, thrownValue);\n thrownValue = suspenseBoundary;\n root = wakeable;\n var wakeables = thrownValue.updateQueue;\n if (null === wakeables) {\n var updateQueue = new Set();\n updateQueue.add(root);\n thrownValue.updateQueue = updateQueue;\n } else wakeables.add(root);\n break a;\n } else {\n if (0 === (thrownValue & 1)) {\n attachPingListener(root, wakeable, thrownValue);\n renderDidSuspendDelayIfPossible();\n break a;\n }\n value = Error(\n \"A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition.\"\n );\n }\n }\n root = value = createCapturedValueAtFiber(value, sourceFiber);\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [root])\n : workInProgressRootConcurrentErrors.push(root);\n root = returnFiber;\n do {\n switch (root.tag) {\n case 3:\n wakeable = value;\n root.flags |= 65536;\n thrownValue &= -thrownValue;\n root.lanes |= thrownValue;\n var update$jscomp$0 = createRootErrorUpdate(\n root,\n wakeable,\n thrownValue\n );\n enqueueCapturedUpdate(root, update$jscomp$0);\n break a;\n case 1:\n wakeable = value;\n var ctor = root.type,\n instance = root.stateNode;\n if (\n 0 === (root.flags & 128) &&\n (\"function\" === typeof ctor.getDerivedStateFromError ||\n (null !== instance &&\n \"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance))))\n ) {\n root.flags |= 65536;\n thrownValue &= -thrownValue;\n root.lanes |= thrownValue;\n var update$34 = createClassErrorUpdate(\n root,\n wakeable,\n thrownValue\n );\n enqueueCapturedUpdate(root, update$34);\n break a;\n }\n }\n root = root.return;\n } while (null !== root);\n }\n completeUnitOfWork(erroredWork);\n } catch (yetAnotherThrownValue) {\n thrownValue = yetAnotherThrownValue;\n workInProgress === erroredWork &&\n null !== erroredWork &&\n (workInProgress = erroredWork = erroredWork.return);\n continue;\n }\n break;\n } while (1);\n}\nfunction pushDispatcher() {\n var prevDispatcher = ReactCurrentDispatcher$2.current;\n ReactCurrentDispatcher$2.current = ContextOnlyDispatcher;\n return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n}\nfunction renderDidSuspendDelayIfPossible() {\n if (\n 0 === workInProgressRootExitStatus ||\n 3 === workInProgressRootExitStatus ||\n 2 === workInProgressRootExitStatus\n )\n workInProgressRootExitStatus = 4;\n null === workInProgressRoot ||\n (0 === (workInProgressRootSkippedLanes & 268435455) &&\n 0 === (workInProgressRootInterleavedUpdatedLanes & 268435455)) ||\n markRootSuspended$1(workInProgressRoot, workInProgressRootRenderLanes);\n}\nfunction renderRootSync(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher();\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes)\n (workInProgressTransitions = null), prepareFreshStack(root, lanes);\n do\n try {\n workLoopSync();\n break;\n } catch (thrownValue) {\n handleError(root, thrownValue);\n }\n while (1);\n resetContextDependencies();\n executionContext = prevExecutionContext;\n ReactCurrentDispatcher$2.current = prevDispatcher;\n if (null !== workInProgress)\n throw Error(\n \"Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue.\"\n );\n workInProgressRoot = null;\n workInProgressRootRenderLanes = 0;\n return workInProgressRootExitStatus;\n}\nfunction workLoopSync() {\n for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n}\nfunction workLoopConcurrent() {\n for (; null !== workInProgress && !shouldYield(); )\n performUnitOfWork(workInProgress);\n}\nfunction performUnitOfWork(unitOfWork) {\n var next = beginWork$1(unitOfWork.alternate, unitOfWork, subtreeRenderLanes);\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n ReactCurrentOwner$2.current = null;\n}\nfunction completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n do {\n var current = completedWork.alternate;\n unitOfWork = completedWork.return;\n if (0 === (completedWork.flags & 32768)) {\n if (\n ((current = completeWork(current, completedWork, subtreeRenderLanes)),\n null !== current)\n ) {\n workInProgress = current;\n return;\n }\n } else {\n current = unwindWork(current, completedWork);\n if (null !== current) {\n current.flags &= 32767;\n workInProgress = current;\n return;\n }\n if (null !== unitOfWork)\n (unitOfWork.flags |= 32768),\n (unitOfWork.subtreeFlags = 0),\n (unitOfWork.deletions = null);\n else {\n workInProgressRootExitStatus = 6;\n workInProgress = null;\n return;\n }\n }\n completedWork = completedWork.sibling;\n if (null !== completedWork) {\n workInProgress = completedWork;\n return;\n }\n workInProgress = completedWork = unitOfWork;\n } while (null !== completedWork);\n 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);\n}\nfunction commitRoot(root, recoverableErrors, transitions) {\n var previousUpdateLanePriority = currentUpdatePriority,\n prevTransition = ReactCurrentBatchConfig$2.transition;\n try {\n (ReactCurrentBatchConfig$2.transition = null),\n (currentUpdatePriority = 1),\n commitRootImpl(\n root,\n recoverableErrors,\n transitions,\n previousUpdateLanePriority\n );\n } finally {\n (ReactCurrentBatchConfig$2.transition = prevTransition),\n (currentUpdatePriority = previousUpdateLanePriority);\n }\n return null;\n}\nfunction commitRootImpl(\n root,\n recoverableErrors,\n transitions,\n renderPriorityLevel\n) {\n do flushPassiveEffects();\n while (null !== rootWithPendingPassiveEffects);\n if (0 !== (executionContext & 6))\n throw Error(\"Should not already be working.\");\n transitions = root.finishedWork;\n var lanes = root.finishedLanes;\n if (null === transitions) return null;\n root.finishedWork = null;\n root.finishedLanes = 0;\n if (transitions === root.current)\n throw Error(\n \"Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.\"\n );\n root.callbackNode = null;\n root.callbackPriority = 0;\n var remainingLanes = transitions.lanes | transitions.childLanes;\n markRootFinished(root, remainingLanes);\n root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n (0 === (transitions.subtreeFlags & 2064) &&\n 0 === (transitions.flags & 2064)) ||\n rootDoesHavePassiveEffects ||\n ((rootDoesHavePassiveEffects = !0),\n scheduleCallback$1(NormalPriority, function() {\n flushPassiveEffects();\n return null;\n }));\n remainingLanes = 0 !== (transitions.flags & 15990);\n if (0 !== (transitions.subtreeFlags & 15990) || remainingLanes) {\n remainingLanes = ReactCurrentBatchConfig$2.transition;\n ReactCurrentBatchConfig$2.transition = null;\n var previousPriority = currentUpdatePriority;\n currentUpdatePriority = 1;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n ReactCurrentOwner$2.current = null;\n commitBeforeMutationEffects(root, transitions);\n commitMutationEffectsOnFiber(transitions, root);\n root.current = transitions;\n commitLayoutEffects(transitions, root, lanes);\n requestPaint();\n executionContext = prevExecutionContext;\n currentUpdatePriority = previousPriority;\n ReactCurrentBatchConfig$2.transition = remainingLanes;\n } else root.current = transitions;\n rootDoesHavePassiveEffects &&\n ((rootDoesHavePassiveEffects = !1),\n (rootWithPendingPassiveEffects = root),\n (pendingPassiveEffectsLanes = lanes));\n remainingLanes = root.pendingLanes;\n 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);\n onCommitRoot(transitions.stateNode, renderPriorityLevel);\n ensureRootIsScheduled(root, now());\n if (null !== recoverableErrors)\n for (\n renderPriorityLevel = root.onRecoverableError, transitions = 0;\n transitions < recoverableErrors.length;\n transitions++\n )\n (lanes = recoverableErrors[transitions]),\n renderPriorityLevel(lanes.value, {\n componentStack: lanes.stack,\n digest: lanes.digest\n });\n if (hasUncaughtError)\n throw ((hasUncaughtError = !1),\n (root = firstUncaughtError),\n (firstUncaughtError = null),\n root);\n 0 !== (pendingPassiveEffectsLanes & 1) &&\n 0 !== root.tag &&\n flushPassiveEffects();\n remainingLanes = root.pendingLanes;\n 0 !== (remainingLanes & 1)\n ? root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n : (nestedUpdateCount = 0);\n flushSyncCallbacks();\n return null;\n}\nfunction flushPassiveEffects() {\n if (null !== rootWithPendingPassiveEffects) {\n var renderPriority = lanesToEventPriority(pendingPassiveEffectsLanes),\n prevTransition = ReactCurrentBatchConfig$2.transition,\n previousPriority = currentUpdatePriority;\n try {\n ReactCurrentBatchConfig$2.transition = null;\n currentUpdatePriority = 16 > renderPriority ? 16 : renderPriority;\n if (null === rootWithPendingPassiveEffects)\n var JSCompiler_inline_result = !1;\n else {\n renderPriority = rootWithPendingPassiveEffects;\n rootWithPendingPassiveEffects = null;\n pendingPassiveEffectsLanes = 0;\n if (0 !== (executionContext & 6))\n throw Error(\"Cannot flush passive effects while already rendering.\");\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n for (nextEffect = renderPriority.current; null !== nextEffect; ) {\n var fiber = nextEffect,\n child = fiber.child;\n if (0 !== (nextEffect.flags & 16)) {\n var deletions = fiber.deletions;\n if (null !== deletions) {\n for (var i = 0; i < deletions.length; i++) {\n var fiberToDelete = deletions[i];\n for (nextEffect = fiberToDelete; null !== nextEffect; ) {\n var fiber$jscomp$0 = nextEffect;\n switch (fiber$jscomp$0.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber$jscomp$0, fiber);\n }\n var child$jscomp$0 = fiber$jscomp$0.child;\n if (null !== child$jscomp$0)\n (child$jscomp$0.return = fiber$jscomp$0),\n (nextEffect = child$jscomp$0);\n else\n for (; null !== nextEffect; ) {\n fiber$jscomp$0 = nextEffect;\n var sibling = fiber$jscomp$0.sibling,\n returnFiber = fiber$jscomp$0.return;\n detachFiberAfterEffects(fiber$jscomp$0);\n if (fiber$jscomp$0 === fiberToDelete) {\n nextEffect = null;\n break;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break;\n }\n nextEffect = returnFiber;\n }\n }\n }\n var previousFiber = fiber.alternate;\n if (null !== previousFiber) {\n var detachedChild = previousFiber.child;\n if (null !== detachedChild) {\n previousFiber.child = null;\n do {\n var detachedSibling = detachedChild.sibling;\n detachedChild.sibling = null;\n detachedChild = detachedSibling;\n } while (null !== detachedChild);\n }\n }\n nextEffect = fiber;\n }\n }\n if (0 !== (fiber.subtreeFlags & 2064) && null !== child)\n (child.return = fiber), (nextEffect = child);\n else\n b: for (; null !== nextEffect; ) {\n fiber = nextEffect;\n if (0 !== (fiber.flags & 2048))\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(9, fiber, fiber.return);\n }\n var sibling$jscomp$0 = fiber.sibling;\n if (null !== sibling$jscomp$0) {\n sibling$jscomp$0.return = fiber.return;\n nextEffect = sibling$jscomp$0;\n break b;\n }\n nextEffect = fiber.return;\n }\n }\n var finishedWork = renderPriority.current;\n for (nextEffect = finishedWork; null !== nextEffect; ) {\n child = nextEffect;\n var firstChild = child.child;\n if (0 !== (child.subtreeFlags & 2064) && null !== firstChild)\n (firstChild.return = child), (nextEffect = firstChild);\n else\n b: for (child = finishedWork; null !== nextEffect; ) {\n deletions = nextEffect;\n if (0 !== (deletions.flags & 2048))\n try {\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListMount(9, deletions);\n }\n } catch (error) {\n captureCommitPhaseError(deletions, deletions.return, error);\n }\n if (deletions === child) {\n nextEffect = null;\n break b;\n }\n var sibling$jscomp$1 = deletions.sibling;\n if (null !== sibling$jscomp$1) {\n sibling$jscomp$1.return = deletions.return;\n nextEffect = sibling$jscomp$1;\n break b;\n }\n nextEffect = deletions.return;\n }\n }\n executionContext = prevExecutionContext;\n flushSyncCallbacks();\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onPostCommitFiberRoot\n )\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, renderPriority);\n } catch (err) {}\n JSCompiler_inline_result = !0;\n }\n return JSCompiler_inline_result;\n } finally {\n (currentUpdatePriority = previousPriority),\n (ReactCurrentBatchConfig$2.transition = prevTransition);\n }\n }\n return !1;\n}\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createRootErrorUpdate(rootFiber, sourceFiber, 1);\n rootFiber = enqueueUpdate(rootFiber, sourceFiber, 1);\n sourceFiber = requestEventTime();\n null !== rootFiber &&\n (markRootUpdated(rootFiber, 1, sourceFiber),\n ensureRootIsScheduled(rootFiber, sourceFiber));\n}\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {\n if (3 === sourceFiber.tag)\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n else\n for (\n nearestMountedAncestor = sourceFiber.return;\n null !== nearestMountedAncestor;\n\n ) {\n if (3 === nearestMountedAncestor.tag) {\n captureCommitPhaseErrorOnRoot(\n nearestMountedAncestor,\n sourceFiber,\n error\n );\n break;\n } else if (1 === nearestMountedAncestor.tag) {\n var instance = nearestMountedAncestor.stateNode;\n if (\n \"function\" ===\n typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n (\"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n ) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createClassErrorUpdate(\n nearestMountedAncestor,\n sourceFiber,\n 1\n );\n nearestMountedAncestor = enqueueUpdate(\n nearestMountedAncestor,\n sourceFiber,\n 1\n );\n sourceFiber = requestEventTime();\n null !== nearestMountedAncestor &&\n (markRootUpdated(nearestMountedAncestor, 1, sourceFiber),\n ensureRootIsScheduled(nearestMountedAncestor, sourceFiber));\n break;\n }\n }\n nearestMountedAncestor = nearestMountedAncestor.return;\n }\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n null !== pingCache && pingCache.delete(wakeable);\n wakeable = requestEventTime();\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n workInProgressRoot === root &&\n (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n (4 === workInProgressRootExitStatus ||\n (3 === workInProgressRootExitStatus &&\n (workInProgressRootRenderLanes & 130023424) ===\n workInProgressRootRenderLanes &&\n 500 > now() - globalMostRecentFallbackTime)\n ? prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes));\n ensureRootIsScheduled(root, wakeable);\n}\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n 0 === retryLane &&\n (0 === (boundaryFiber.mode & 1)\n ? (retryLane = 1)\n : ((retryLane = nextRetryLane),\n (nextRetryLane <<= 1),\n 0 === (nextRetryLane & 130023424) && (nextRetryLane = 4194304)));\n var eventTime = requestEventTime();\n boundaryFiber = markUpdateLaneFromFiberToRoot(boundaryFiber, retryLane);\n null !== boundaryFiber &&\n (markRootUpdated(boundaryFiber, retryLane, eventTime),\n ensureRootIsScheduled(boundaryFiber, eventTime));\n}\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState,\n retryLane = 0;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = 0;\n switch (boundaryFiber.tag) {\n case 13:\n var retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n break;\n case 19:\n retryCache = boundaryFiber.stateNode;\n break;\n default:\n throw Error(\n \"Pinged unknown suspense boundary type. This is probably a bug in React.\"\n );\n }\n null !== retryCache && retryCache.delete(wakeable);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nvar beginWork$1;\nbeginWork$1 = function(current, workInProgress, renderLanes) {\n if (null !== current)\n if (\n current.memoizedProps !== workInProgress.pendingProps ||\n didPerformWorkStackCursor.current\n )\n didReceiveUpdate = !0;\n else {\n if (\n 0 === (current.lanes & renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else didReceiveUpdate = !1;\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 2:\n var Component = workInProgress.type;\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress);\n current = workInProgress.pendingProps;\n var context = getMaskedContext(\n workInProgress,\n contextStackCursor.current\n );\n prepareToReadContext(workInProgress, renderLanes);\n context = renderWithHooks(\n null,\n workInProgress,\n Component,\n current,\n context,\n renderLanes\n );\n workInProgress.flags |= 1;\n if (\n \"object\" === typeof context &&\n null !== context &&\n \"function\" === typeof context.render &&\n void 0 === context.$$typeof\n ) {\n workInProgress.tag = 1;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n if (isContextProvider(Component)) {\n var hasContext = !0;\n pushContextProvider(workInProgress);\n } else hasContext = !1;\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state\n ? context.state\n : null;\n initializeUpdateQueue(workInProgress);\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n mountClassInstance(workInProgress, Component, current, renderLanes);\n workInProgress = finishClassComponent(\n null,\n workInProgress,\n Component,\n !0,\n hasContext,\n renderLanes\n );\n } else\n (workInProgress.tag = 0),\n reconcileChildren(null, workInProgress, context, renderLanes),\n (workInProgress = workInProgress.child);\n return workInProgress;\n case 16:\n Component = workInProgress.elementType;\n a: {\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress);\n current = workInProgress.pendingProps;\n context = Component._init;\n Component = context(Component._payload);\n workInProgress.type = Component;\n context = workInProgress.tag = resolveLazyComponentTag(Component);\n current = resolveDefaultProps(Component, current);\n switch (context) {\n case 0:\n workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n Component,\n current,\n renderLanes\n );\n break a;\n case 1:\n workInProgress = updateClassComponent(\n null,\n workInProgress,\n Component,\n current,\n renderLanes\n );\n break a;\n case 11:\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n Component,\n current,\n renderLanes\n );\n break a;\n case 14:\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n Component,\n resolveDefaultProps(Component.type, current),\n renderLanes\n );\n break a;\n }\n throw Error(\n \"Element type is invalid. Received a promise that resolves to: \" +\n Component +\n \". Lazy element type must resolve to a class or function.\"\n );\n }\n return workInProgress;\n case 0:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n updateFunctionComponent(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 1:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n updateClassComponent(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 3:\n pushHostRootContext(workInProgress);\n if (null === current)\n throw Error(\"Should have a current fiber. This is a bug in React.\");\n context = workInProgress.pendingProps;\n Component = workInProgress.memoizedState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, context, null, renderLanes);\n context = workInProgress.memoizedState.element;\n context === Component\n ? (workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ))\n : (reconcileChildren(current, workInProgress, context, renderLanes),\n (workInProgress = workInProgress.child));\n return workInProgress;\n case 5:\n return (\n pushHostContext(workInProgress),\n (Component = workInProgress.pendingProps.children),\n markRef(current, workInProgress),\n reconcileChildren(current, workInProgress, Component, renderLanes),\n workInProgress.child\n );\n case 6:\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (Component = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n ))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n workInProgress.child\n );\n case 11:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n updateForwardRef(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n a: {\n Component = workInProgress.type._context;\n context = workInProgress.pendingProps;\n hasContext = workInProgress.memoizedProps;\n var newValue = context.value;\n push(valueCursor, Component._currentValue);\n Component._currentValue = newValue;\n if (null !== hasContext)\n if (objectIs(hasContext.value, newValue)) {\n if (\n hasContext.children === context.children &&\n !didPerformWorkStackCursor.current\n ) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n } else\n for (\n hasContext = workInProgress.child,\n null !== hasContext && (hasContext.return = workInProgress);\n null !== hasContext;\n\n ) {\n var list = hasContext.dependencies;\n if (null !== list) {\n newValue = hasContext.child;\n for (\n var dependency = list.firstContext;\n null !== dependency;\n\n ) {\n if (dependency.context === Component) {\n if (1 === hasContext.tag) {\n dependency = createUpdate(-1, renderLanes & -renderLanes);\n dependency.tag = 2;\n var updateQueue = hasContext.updateQueue;\n if (null !== updateQueue) {\n updateQueue = updateQueue.shared;\n var pending = updateQueue.pending;\n null === pending\n ? (dependency.next = dependency)\n : ((dependency.next = pending.next),\n (pending.next = dependency));\n updateQueue.pending = dependency;\n }\n }\n hasContext.lanes |= renderLanes;\n dependency = hasContext.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n hasContext.return,\n renderLanes,\n workInProgress\n );\n list.lanes |= renderLanes;\n break;\n }\n dependency = dependency.next;\n }\n } else if (10 === hasContext.tag)\n newValue =\n hasContext.type === workInProgress.type\n ? null\n : hasContext.child;\n else if (18 === hasContext.tag) {\n newValue = hasContext.return;\n if (null === newValue)\n throw Error(\n \"We just came from a parent so we must have had a parent. This is a bug in React.\"\n );\n newValue.lanes |= renderLanes;\n list = newValue.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n newValue,\n renderLanes,\n workInProgress\n );\n newValue = hasContext.sibling;\n } else newValue = hasContext.child;\n if (null !== newValue) newValue.return = hasContext;\n else\n for (newValue = hasContext; null !== newValue; ) {\n if (newValue === workInProgress) {\n newValue = null;\n break;\n }\n hasContext = newValue.sibling;\n if (null !== hasContext) {\n hasContext.return = newValue.return;\n newValue = hasContext;\n break;\n }\n newValue = newValue.return;\n }\n hasContext = newValue;\n }\n reconcileChildren(\n current,\n workInProgress,\n context.children,\n renderLanes\n );\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 9:\n return (\n (context = workInProgress.type),\n (Component = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress, renderLanes),\n (context = readContext(context)),\n (Component = Component(context)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, Component, renderLanes),\n workInProgress.child\n );\n case 14:\n return (\n (Component = workInProgress.type),\n (context = resolveDefaultProps(Component, workInProgress.pendingProps)),\n (context = resolveDefaultProps(Component.type, context)),\n updateMemoComponent(\n current,\n workInProgress,\n Component,\n context,\n renderLanes\n )\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 17:\n return (\n (Component = workInProgress.type),\n (context = workInProgress.pendingProps),\n (context =\n workInProgress.elementType === Component\n ? context\n : resolveDefaultProps(Component, context)),\n resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress),\n (workInProgress.tag = 1),\n isContextProvider(Component)\n ? ((current = !0), pushContextProvider(workInProgress))\n : (current = !1),\n prepareToReadContext(workInProgress, renderLanes),\n constructClassInstance(workInProgress, Component, context),\n mountClassInstance(workInProgress, Component, context, renderLanes),\n finishClassComponent(\n null,\n workInProgress,\n Component,\n !0,\n current,\n renderLanes\n )\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(current, workInProgress, renderLanes);\n }\n throw Error(\n \"Unknown unit of work tag (\" +\n workInProgress.tag +\n \"). This error is likely caused by a bug in React. Please file an issue.\"\n );\n};\nfunction scheduleCallback$1(priorityLevel, callback) {\n return scheduleCallback(priorityLevel, callback);\n}\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null;\n this.index = 0;\n this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiber(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction resolveLazyComponentTag(Component) {\n if (\"function\" === typeof Component)\n return shouldConstruct(Component) ? 1 : 0;\n if (void 0 !== Component && null !== Component) {\n Component = Component.$$typeof;\n if (Component === REACT_FORWARD_REF_TYPE) return 11;\n if (Component === REACT_MEMO_TYPE) return 14;\n }\n return 2;\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiber(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 14680064;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 2;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type) fiberTag = 5;\n else\n a: switch (type) {\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 8;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiber(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiber(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiber(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_OFFSCREEN_TYPE:\n return createFiberFromOffscreen(pendingProps, mode, lanes, key);\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_PROVIDER_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONTEXT_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n throw Error(\n \"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: \" +\n ((null == type ? type : typeof type) + \".\")\n );\n }\n key = createFiber(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiber(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromOffscreen(pendingProps, mode, lanes, key) {\n pendingProps = createFiber(22, pendingProps, key, mode);\n pendingProps.elementType = REACT_OFFSCREEN_TYPE;\n pendingProps.lanes = lanes;\n pendingProps.stateNode = { isHidden: !1 };\n return pendingProps;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiber(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiber(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nfunction FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onRecoverableError\n) {\n this.tag = tag;\n this.containerInfo = containerInfo;\n this.finishedWork = this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = -1;\n this.callbackNode = this.pendingContext = this.context = null;\n this.callbackPriority = 0;\n this.eventTimes = createLaneMap(0);\n this.expirationTimes = createLaneMap(-1);\n this.entangledLanes = this.finishedLanes = this.mutableReadLanes = this.expiredLanes = this.pingedLanes = this.suspendedLanes = this.pendingLanes = 0;\n this.entanglements = createLaneMap(0);\n this.identifierPrefix = identifierPrefix;\n this.onRecoverableError = onRecoverableError;\n}\nfunction createPortal(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\nfunction findHostInstance(component) {\n var fiber = component._reactInternals;\n if (void 0 === fiber) {\n if (\"function\" === typeof component.render)\n throw Error(\"Unable to find node on an unmounted component.\");\n component = Object.keys(component).join(\",\");\n throw Error(\n \"Argument appears to not be a ReactComponent. Keys: \" + component\n );\n }\n component = findCurrentHostFiber(fiber);\n return null === component ? null : component.stateNode;\n}\nfunction updateContainer(element, container, parentComponent, callback) {\n var current = container.current,\n eventTime = requestEventTime(),\n lane = requestUpdateLane(current);\n a: if (parentComponent) {\n parentComponent = parentComponent._reactInternals;\n b: {\n if (\n getNearestMountedFiber(parentComponent) !== parentComponent ||\n 1 !== parentComponent.tag\n )\n throw Error(\n \"Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.\"\n );\n var JSCompiler_inline_result = parentComponent;\n do {\n switch (JSCompiler_inline_result.tag) {\n case 3:\n JSCompiler_inline_result =\n JSCompiler_inline_result.stateNode.context;\n break b;\n case 1:\n if (isContextProvider(JSCompiler_inline_result.type)) {\n JSCompiler_inline_result =\n JSCompiler_inline_result.stateNode\n .__reactInternalMemoizedMergedChildContext;\n break b;\n }\n }\n JSCompiler_inline_result = JSCompiler_inline_result.return;\n } while (null !== JSCompiler_inline_result);\n throw Error(\n \"Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (1 === parentComponent.tag) {\n var Component = parentComponent.type;\n if (isContextProvider(Component)) {\n parentComponent = processChildContext(\n parentComponent,\n Component,\n JSCompiler_inline_result\n );\n break a;\n }\n }\n parentComponent = JSCompiler_inline_result;\n } else parentComponent = emptyContextObject;\n null === container.context\n ? (container.context = parentComponent)\n : (container.pendingContext = parentComponent);\n container = createUpdate(eventTime, lane);\n container.payload = { element: element };\n callback = void 0 === callback ? null : callback;\n null !== callback && (container.callback = callback);\n element = enqueueUpdate(current, container, lane);\n null !== element &&\n (scheduleUpdateOnFiber(element, current, lane, eventTime),\n entangleTransitions(element, current, lane));\n return lane;\n}\nfunction emptyFindFiberByHostInstance() {\n return null;\n}\nfunction findNodeHandle(componentOrHandle) {\n if (null == componentOrHandle) return null;\n if (\"number\" === typeof componentOrHandle) return componentOrHandle;\n if (componentOrHandle._nativeTag) return componentOrHandle._nativeTag;\n if (componentOrHandle.canonical && componentOrHandle.canonical._nativeTag)\n return componentOrHandle.canonical._nativeTag;\n componentOrHandle = findHostInstance(componentOrHandle);\n return null == componentOrHandle\n ? componentOrHandle\n : componentOrHandle.canonical\n ? componentOrHandle.canonical._nativeTag\n : componentOrHandle._nativeTag;\n}\nfunction onRecoverableError(error) {\n console.error(error);\n}\nfunction unmountComponentAtNode(containerTag) {\n var root = roots.get(containerTag);\n root &&\n updateContainer(null, root, null, function() {\n roots.delete(containerTag);\n });\n}\nbatchedUpdatesImpl = function(fn, a) {\n var prevExecutionContext = executionContext;\n executionContext |= 1;\n try {\n return fn(a);\n } finally {\n (executionContext = prevExecutionContext),\n 0 === executionContext &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n includesLegacySyncCallbacks && flushSyncCallbacks());\n }\n};\nvar roots = new Map(),\n devToolsConfig$jscomp$inline_979 = {\n findFiberByHostInstance: getInstanceFromTag,\n bundleType: 0,\n version: \"18.2.0-next-9e3b772b8-20220608\",\n rendererPackageName: \"react-native-renderer\",\n rendererConfig: {\n getInspectorDataForViewTag: function() {\n throw Error(\n \"getInspectorDataForViewTag() is not available in production\"\n );\n },\n getInspectorDataForViewAtPoint: function() {\n throw Error(\n \"getInspectorDataForViewAtPoint() is not available in production.\"\n );\n }.bind(null, findNodeHandle)\n }\n };\nvar internals$jscomp$inline_1247 = {\n bundleType: devToolsConfig$jscomp$inline_979.bundleType,\n version: devToolsConfig$jscomp$inline_979.version,\n rendererPackageName: devToolsConfig$jscomp$inline_979.rendererPackageName,\n rendererConfig: devToolsConfig$jscomp$inline_979.rendererConfig,\n overrideHookState: null,\n overrideHookStateDeletePath: null,\n overrideHookStateRenamePath: null,\n overrideProps: null,\n overridePropsDeletePath: null,\n overridePropsRenamePath: null,\n setErrorHandler: null,\n setSuspenseHandler: null,\n scheduleUpdate: null,\n currentDispatcherRef: ReactSharedInternals.ReactCurrentDispatcher,\n findHostInstanceByFiber: function(fiber) {\n fiber = findCurrentHostFiber(fiber);\n return null === fiber ? null : fiber.stateNode;\n },\n findFiberByHostInstance:\n devToolsConfig$jscomp$inline_979.findFiberByHostInstance ||\n emptyFindFiberByHostInstance,\n findHostInstancesForRefresh: null,\n scheduleRefresh: null,\n scheduleRoot: null,\n setRefreshHandler: null,\n getCurrentFiber: null,\n reconcilerVersion: \"18.2.0-next-9e3b772b8-20220608\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var hook$jscomp$inline_1248 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (\n !hook$jscomp$inline_1248.isDisabled &&\n hook$jscomp$inline_1248.supportsFiber\n )\n try {\n (rendererID = hook$jscomp$inline_1248.inject(\n internals$jscomp$inline_1247\n )),\n (injectedHook = hook$jscomp$inline_1248);\n } catch (err) {}\n}\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = {\n computeComponentStackForErrorReporting: function(reactTag) {\n return (reactTag = getInstanceFromTag(reactTag))\n ? getStackByFiberInDevAndProd(reactTag)\n : \"\";\n }\n};\nexports.createPortal = function(children, containerTag) {\n return createPortal(\n children,\n containerTag,\n null,\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null\n );\n};\nexports.dispatchCommand = function(handle, command, args) {\n null != handle._nativeTag &&\n (null != handle._internalInstanceHandle\n ? ((handle = handle._internalInstanceHandle.stateNode),\n null != handle &&\n nativeFabricUIManager.dispatchCommand(handle.node, command, args))\n : ReactNativePrivateInterface.UIManager.dispatchViewManagerCommand(\n handle._nativeTag,\n command,\n args\n ));\n};\nexports.findHostInstance_DEPRECATED = function(componentOrHandle) {\n if (null == componentOrHandle) return null;\n if (componentOrHandle._nativeTag) return componentOrHandle;\n if (componentOrHandle.canonical && componentOrHandle.canonical._nativeTag)\n return componentOrHandle.canonical;\n componentOrHandle = findHostInstance(componentOrHandle);\n return null == componentOrHandle\n ? componentOrHandle\n : componentOrHandle.canonical\n ? componentOrHandle.canonical\n : componentOrHandle;\n};\nexports.findNodeHandle = findNodeHandle;\nexports.getInspectorDataForInstance = void 0;\nexports.render = function(element, containerTag, callback) {\n var root = roots.get(containerTag);\n if (!root) {\n root = new FiberRootNode(containerTag, 0, !1, \"\", onRecoverableError);\n var JSCompiler_inline_result = createFiber(3, null, null, 0);\n root.current = JSCompiler_inline_result;\n JSCompiler_inline_result.stateNode = root;\n JSCompiler_inline_result.memoizedState = {\n element: null,\n isDehydrated: !1,\n cache: null,\n transitions: null,\n pendingSuspenseBoundaries: null\n };\n initializeUpdateQueue(JSCompiler_inline_result);\n roots.set(containerTag, root);\n }\n updateContainer(element, root, null, callback);\n a: if (((element = root.current), element.child))\n switch (element.child.tag) {\n case 5:\n element = element.child.stateNode;\n break a;\n default:\n element = element.child.stateNode;\n }\n else element = null;\n return element;\n};\nexports.sendAccessibilityEvent = function(handle, eventType) {\n null != handle._nativeTag &&\n (null != handle._internalInstanceHandle\n ? ((handle = handle._internalInstanceHandle.stateNode),\n null != handle &&\n nativeFabricUIManager.sendAccessibilityEvent(handle.node, eventType))\n : ReactNativePrivateInterface.legacySendAccessibilityEvent(\n handle._nativeTag,\n eventType\n ));\n};\nexports.unmountComponentAtNode = unmountComponentAtNode;\nexports.unmountComponentAtNodeAndRemoveContainer = function(containerTag) {\n unmountComponentAtNode(containerTag);\n ReactNativePrivateInterface.UIManager.removeRootView(containerTag);\n};\nexports.unstable_batchedUpdates = batchedUpdates;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n * @generate-docs\n */\n\n'use strict';\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport StyleSheet, {type ColorValue} from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport View from '../View/View';\nimport * as React from 'react';\n\nconst PlatformActivityIndicator =\n Platform.OS === 'android'\n ? require('../ProgressBarAndroid/ProgressBarAndroid')\n : require('./ActivityIndicatorViewNativeComponent').default;\n\nconst GRAY = '#999999';\n\ntype IndicatorSize = number | 'small' | 'large';\n\ntype IOSProps = $ReadOnly<{|\n /**\n Whether the indicator should hide when not animating.\n\n @platform ios\n */\n hidesWhenStopped?: ?boolean,\n|}>;\ntype Props = $ReadOnly<{|\n ...ViewProps,\n ...IOSProps,\n\n /**\n \tWhether to show the indicator (`true`) or hide it (`false`).\n */\n animating?: ?boolean,\n\n /**\n The foreground color of the spinner.\n\n @default {@platform android} `null` (system accent default color)\n @default {@platform ios} '#999999'\n */\n color?: ?ColorValue,\n\n /**\n Size of the indicator.\n\n @type enum(`'small'`, `'large'`)\n @type {@platform android} number\n */\n size?: ?IndicatorSize,\n|}>;\n\nconst ActivityIndicator = (\n {\n animating = true,\n color = Platform.OS === 'ios' ? GRAY : null,\n hidesWhenStopped = true,\n onLayout,\n size = 'small',\n style,\n ...restProps\n }: Props,\n forwardedRef?: any,\n) => {\n let sizeStyle;\n let sizeProp;\n\n switch (size) {\n case 'small':\n sizeStyle = styles.sizeSmall;\n sizeProp = 'small';\n break;\n case 'large':\n sizeStyle = styles.sizeLarge;\n sizeProp = 'large';\n break;\n default:\n sizeStyle = {height: size, width: size};\n break;\n }\n\n const nativeProps = {\n animating,\n color,\n hidesWhenStopped,\n ...restProps,\n ref: forwardedRef,\n style: sizeStyle,\n size: sizeProp,\n };\n\n const androidProps = {\n styleAttr: 'Normal',\n indeterminate: true,\n };\n\n return (\n \n {Platform.OS === 'android' ? (\n // $FlowFixMe[prop-missing] Flow doesn't know when this is the android component\n \n ) : (\n /* $FlowFixMe[prop-missing] (>=0.106.0 site=react_native_android_fb) This comment\n * suppresses an error found when Flow v0.106 was deployed. To see the\n * error, delete this comment and run Flow. */\n \n )}\n \n );\n};\n\n/**\n Displays a circular loading indicator.\n\n ```SnackPlayer name=ActivityIndicator%20Function%20Component%20Example\n import React from \"react\";\n import { ActivityIndicator, StyleSheet, Text, View } from \"react-native\";\n\n const App = () => (\n \n \n \n \n \n \n );\n\n const styles = StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: \"center\"\n },\n horizontal: {\n flexDirection: \"row\",\n justifyContent: \"space-around\",\n padding: 10\n }\n });\n export default App;\n ```\n\n ```SnackPlayer name=ActivityIndicator%20Class%20Component%20Example\n import React, { Component } from \"react\";\n import { ActivityIndicator, StyleSheet, Text, View } from \"react-native\";\n\n class App extends Component {\n render() {\n return (\n \n \n \n \n \n \n );\n }\n }\n\n const styles = StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: \"center\"\n },\n horizontal: {\n flexDirection: \"row\",\n justifyContent: \"space-around\",\n padding: 10\n }\n });\n export default App;\n ```\n*/\n\nconst ActivityIndicatorWithRef: React.AbstractComponent<\n Props,\n HostComponent,\n> = React.forwardRef(ActivityIndicator);\nActivityIndicatorWithRef.displayName = 'ActivityIndicator';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n sizeSmall: {\n width: 20,\n height: 20,\n },\n sizeLarge: {\n width: 36,\n height: 36,\n },\n});\n\nexport default ActivityIndicatorWithRef;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport ProgressBarAndroidNativeComponent from './ProgressBarAndroidNativeComponent';\n\nconst React = require('react');\n\nexport type ProgressBarAndroidProps = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * Style of the ProgressBar and whether it shows indeterminate progress (e.g. spinner).\n *\n * `indeterminate` can only be false if `styleAttr` is Horizontal, and requires a\n * `progress` value.\n */\n ...\n | {|\n styleAttr: 'Horizontal',\n indeterminate: false,\n progress: number,\n |}\n | {|\n typeAttr:\n | 'Horizontal'\n | 'Normal'\n | 'Small'\n | 'Large'\n | 'Inverse'\n | 'SmallInverse'\n | 'LargeInverse',\n indeterminate: true,\n |},\n /**\n * Whether to show the ProgressBar (true, the default) or hide it (false).\n */\n animating?: ?boolean,\n /**\n * Color of the progress bar.\n */\n color?: ?ColorValue,\n /**\n * Used to locate this view in end-to-end tests.\n */\n testID?: ?string,\n|}>;\n\n/**\n * React component that wraps the Android-only `ProgressBar`. This component is\n * used to indicate that the app is loading or there is activity in the app.\n *\n * Example:\n *\n * ```\n * render: function() {\n * var progressBar =\n * \n * \n * ;\n\n * return (\n * \n * );\n * },\n * ```\n */\nconst ProgressBarAndroid = (\n {\n styleAttr = 'Normal',\n indeterminate = true,\n animating = true,\n ...restProps\n }: ProgressBarAndroidProps,\n forwardedRef: ?React.Ref,\n) => {\n return (\n \n );\n};\n\nconst ProgressBarAndroidToExport = React.forwardRef(ProgressBarAndroid);\n\nmodule.exports =\n /* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\n (ProgressBarAndroidToExport: typeof ProgressBarAndroidNativeComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {Double, WithDefault} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n //Props\n styleAttr?: string,\n typeAttr?: string,\n indeterminate: boolean,\n progress?: WithDefault,\n animating?: WithDefault,\n color?: ?ColorValue,\n testID?: WithDefault,\n|}>;\n\nexport default (codegenNativeComponent('AndroidProgressBar', {\n interfaceOnly: true,\n}): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n// TODO: move this file to shims/ReactNative (requires React update and sync)\n\nimport type {HostComponent} from '../../Libraries/Renderer/shims/ReactNativeTypes';\n\nimport requireNativeComponent from '../../Libraries/ReactNative/requireNativeComponent';\nimport UIManager from '../ReactNative/UIManager';\n\n// TODO: import from CodegenSchema once workspaces are enabled\ntype Options = $ReadOnly<{|\n interfaceOnly?: boolean,\n paperComponentName?: string,\n paperComponentNameDeprecated?: string,\n excludedPlatforms?: $ReadOnlyArray<'iOS' | 'android'>,\n|}>;\n\nexport type NativeComponentType = HostComponent;\n\n// If this function runs then that means the view configs were not\n// generated at build time using `GenerateViewConfigJs.js`. Thus\n// we need to `requireNativeComponent` to get the view configs from view managers.\n// `requireNativeComponent` is not available in Bridgeless mode.\n// e.g. This function runs at runtime if `codegenNativeComponent` was not called\n// from a file suffixed with NativeComponent.js.\nfunction codegenNativeComponent(\n componentName: string,\n options?: Options,\n): NativeComponentType {\n if (global.RN$Bridgeless === true) {\n const errorMessage =\n \"Native Component '\" +\n componentName +\n \"' that calls codegenNativeComponent was not code generated at build time. Please check its definition.\";\n console.error(errorMessage);\n }\n\n let componentNameInUse =\n options && options.paperComponentName != null\n ? options.paperComponentName\n : componentName;\n\n if (options != null && options.paperComponentNameDeprecated != null) {\n if (UIManager.hasViewManagerConfig(componentName)) {\n componentNameInUse = componentName;\n } else if (\n options.paperComponentNameDeprecated != null &&\n UIManager.hasViewManagerConfig(options.paperComponentNameDeprecated)\n ) {\n // $FlowFixMe[incompatible-type]\n componentNameInUse = options.paperComponentNameDeprecated;\n } else {\n throw new Error(\n `Failed to find native component for either ${componentName} or ${\n options.paperComponentNameDeprecated ?? '(unknown)'\n }`,\n );\n }\n }\n\n return (requireNativeComponent(\n // $FlowFixMe[incompatible-call]\n componentNameInUse,\n ): HostComponent);\n}\n\nexport default codegenNativeComponent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {HostComponent} from '../Renderer/shims/ReactNativeTypes';\n\nconst createReactNativeComponentClass = require('../Renderer/shims/createReactNativeComponentClass');\nconst getNativeComponentAttributes = require('./getNativeComponentAttributes');\n\n/**\n * Creates values that can be used like React components which represent native\n * view managers. You should create JavaScript modules that wrap these values so\n * that the results are memoized. Example:\n *\n * const View = requireNativeComponent('RCTView');\n *\n */\n\nconst requireNativeComponent = (uiViewClassName: string): HostComponent =>\n ((createReactNativeComponentClass(uiViewClassName, () =>\n getNativeComponentAttributes(uiViewClassName),\n ): any): HostComponent);\n\nexport default requireNativeComponent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @noformat\n * @flow strict-local\n * @generated SignedSource<>\n *\n * This file was sync'd from the facebook/react repository.\n */\n\n'use strict';\n\nimport {ReactNativeViewConfigRegistry} from 'react-native/Libraries/ReactPrivate/ReactNativePrivateInterface';\nimport {type ViewConfig} from './ReactNativeTypes';\n\nconst {register} = ReactNativeViewConfigRegistry;\n\n/**\n * Creates a renderable ReactNative host component.\n * Use this method for view configs that are loaded from UIManager.\n * Use createReactNativeComponentClass() for view configs defined within JavaScript.\n *\n * @param {string} config iOS View configuration.\n * @private\n */\nconst createReactNativeComponentClass = function (\n name: string,\n callback: () => ViewConfig,\n): string {\n return register(name, callback);\n};\n\nmodule.exports = createReactNativeComponentClass;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {WithDefault} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * Whether the indicator should hide when not animating (true by default).\n *\n * See https://reactnative.dev/docs/activityindicator#hideswhenstopped\n */\n hidesWhenStopped?: WithDefault,\n\n /**\n * Whether to show the indicator (true, the default) or hide it (false).\n *\n * See https://reactnative.dev/docs/activityindicator#animating\n */\n animating?: WithDefault,\n\n /**\n * The foreground color of the spinner (default is gray).\n *\n * See https://reactnative.dev/docs/activityindicator#color\n */\n color?: ?ColorValue,\n\n /**\n * Size of the indicator (default is 'small').\n * Passing a number to the size prop is only supported on Android.\n *\n * See https://reactnative.dev/docs/activityindicator#size\n */\n size?: WithDefault<'small' | 'large', 'small'>,\n|}>;\n\nexport default (codegenNativeComponent('ActivityIndicatorView', {\n paperComponentName: 'RCTActivityIndicatorView',\n}): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n * @generate-docs\n */\n\n'use strict';\n\nimport type {TextStyleProp, ViewStyleProp} from '../StyleSheet/StyleSheet';\nimport type {PressEvent} from '../Types/CoreEventTypes';\nimport type {Button as ButtonType} from './Button.flow';\nimport type {\n AccessibilityActionEvent,\n AccessibilityActionInfo,\n AccessibilityState,\n} from './View/ViewAccessibility';\n\nimport StyleSheet, {type ColorValue} from '../StyleSheet/StyleSheet';\nimport Text from '../Text/Text';\nimport Platform from '../Utilities/Platform';\nimport TouchableNativeFeedback from './Touchable/TouchableNativeFeedback';\nimport TouchableOpacity from './Touchable/TouchableOpacity';\nimport View from './View/View';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\ntype ButtonProps = $ReadOnly<{|\n /**\n Text to display inside the button. On Android the given title will be\n converted to the uppercased form.\n */\n title: string,\n\n /**\n Handler to be called when the user taps the button. The first function\n argument is an event in form of [PressEvent](pressevent).\n */\n onPress: (event?: PressEvent) => mixed,\n\n /**\n If `true`, doesn't play system sound on touch.\n\n @platform android\n\n @default false\n */\n touchSoundDisabled?: ?boolean,\n\n /**\n Color of the text (iOS), or background color of the button (Android).\n\n @default {@platform android} '#2196F3'\n @default {@platform ios} '#007AFF'\n */\n color?: ?ColorValue,\n\n /**\n TV preferred focus.\n\n @platform tv\n\n @default false\n */\n hasTVPreferredFocus?: ?boolean,\n\n /**\n Designates the next view to receive focus when the user navigates down. See\n the [Android documentation][android:nextFocusDown].\n\n [android:nextFocusDown]:\n https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusDown\n\n @platform android, tv\n */\n nextFocusDown?: ?number,\n\n /**\n Designates the next view to receive focus when the user navigates forward.\n See the [Android documentation][android:nextFocusForward].\n\n [android:nextFocusForward]:\n https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusForward\n\n @platform android, tv\n */\n nextFocusForward?: ?number,\n\n /**\n Designates the next view to receive focus when the user navigates left. See\n the [Android documentation][android:nextFocusLeft].\n\n [android:nextFocusLeft]:\n https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusLeft\n\n @platform android, tv\n */\n nextFocusLeft?: ?number,\n\n /**\n Designates the next view to receive focus when the user navigates right. See\n the [Android documentation][android:nextFocusRight].\n\n [android:nextFocusRight]:\n https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusRight\n\n @platform android, tv\n */\n nextFocusRight?: ?number,\n\n /**\n Designates the next view to receive focus when the user navigates up. See\n the [Android documentation][android:nextFocusUp].\n\n [android:nextFocusUp]:\n https://developer.android.com/reference/android/view/View.html#attr_android:nextFocusUp\n\n @platform android, tv\n */\n nextFocusUp?: ?number,\n\n /**\n Text to display for blindness accessibility features.\n */\n accessibilityLabel?: ?string,\n /**\n * Alias for accessibilityLabel https://reactnative.dev/docs/view#accessibilitylabel\n * https://github.com/facebook/react-native/issues/34424\n */\n 'aria-label'?: ?string,\n /**\n If `true`, disable all interactions for this component.\n\n @default false\n */\n disabled?: ?boolean,\n\n /**\n Used to locate this view in end-to-end tests.\n */\n testID?: ?string,\n\n /**\n * Accessibility props.\n */\n accessible?: ?boolean,\n accessibilityActions?: ?$ReadOnlyArray,\n onAccessibilityAction?: ?(event: AccessibilityActionEvent) => mixed,\n accessibilityState?: ?AccessibilityState,\n\n /**\n * alias for accessibilityState\n *\n * see https://reactnative.dev/docs/accessibility#accessibilitystate\n */\n 'aria-busy'?: ?boolean,\n 'aria-checked'?: ?boolean | 'mixed',\n 'aria-disabled'?: ?boolean,\n 'aria-expanded'?: ?boolean,\n 'aria-selected'?: ?boolean,\n\n /**\n * [Android] Controlling if a view fires accessibility events and if it is reported to accessibility services.\n */\n importantForAccessibility?: ?('auto' | 'yes' | 'no' | 'no-hide-descendants'),\n accessibilityHint?: ?string,\n accessibilityLanguage?: ?Stringish,\n|}>;\n\n/**\n A basic button component that should render nicely on any platform. Supports a\n minimal level of customization.\n\n If this button doesn't look right for your app, you can build your own button\n using [TouchableOpacity](touchableopacity) or\n [TouchableWithoutFeedback](touchablewithoutfeedback). For inspiration, look at\n the [source code for this button component][button:source]. Or, take a look at\n the [wide variety of button components built by the community]\n [button:examples].\n\n [button:source]:\n https://github.com/facebook/react-native/blob/HEAD/Libraries/Components/Button.js\n\n [button:examples]:\n https://js.coach/?menu%5Bcollections%5D=React%20Native&page=1&query=button\n\n ```jsx\n \n ```\n\n ```SnackPlayer name=Button%20Example\n import React from 'react';\n import { StyleSheet, Button, View, SafeAreaView, Text, Alert } from 'react-native';\n\n const Separator = () => (\n \n );\n\n const App = () => (\n \n \n \n The title and onPress handler are required. It is recommended to set accessibilityLabel to help make your app usable by everyone.\n \n Alert.alert('Simple Button pressed')}\n />\n \n \n \n \n Adjust the color in a way that looks standard on each platform. On iOS, the color prop controls the color of the text. On Android, the color adjusts the background color of the button.\n \n Alert.alert('Button with adjusted color pressed')}\n />\n \n \n \n \n All interaction for the component are disabled.\n \n Alert.alert('Cannot press this one')}\n />\n \n \n \n \n This layout strategy lets the title define the width of the button.\n \n \n Alert.alert('Left button pressed')}\n />\n Alert.alert('Right button pressed')}\n />\n \n \n \n );\n\n const styles = StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: 'center',\n marginHorizontal: 16,\n },\n title: {\n textAlign: 'center',\n marginVertical: 8,\n },\n fixToText: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n separator: {\n marginVertical: 8,\n borderBottomColor: '#737373',\n borderBottomWidth: StyleSheet.hairlineWidth,\n },\n });\n\n export default App;\n ```\n */\n\nclass Button extends React.Component {\n render(): React.Node {\n const {\n accessibilityLabel,\n accessibilityState,\n 'aria-busy': ariaBusy,\n 'aria-checked': ariaChecked,\n 'aria-disabled': ariaDisabled,\n 'aria-expanded': ariaExpanded,\n 'aria-label': ariaLabel,\n 'aria-selected': ariaSelected,\n importantForAccessibility,\n color,\n onPress,\n touchSoundDisabled,\n title,\n hasTVPreferredFocus,\n nextFocusDown,\n nextFocusForward,\n nextFocusLeft,\n nextFocusRight,\n nextFocusUp,\n testID,\n accessible,\n accessibilityActions,\n accessibilityHint,\n accessibilityLanguage,\n onAccessibilityAction,\n } = this.props;\n const buttonStyles: Array = [styles.button];\n const textStyles: Array = [styles.text];\n if (color) {\n if (Platform.OS === 'ios') {\n textStyles.push({color: color});\n } else {\n buttonStyles.push({backgroundColor: color});\n }\n }\n\n let _accessibilityState = {\n busy: ariaBusy ?? accessibilityState?.busy,\n checked: ariaChecked ?? accessibilityState?.checked,\n disabled: ariaDisabled ?? accessibilityState?.disabled,\n expanded: ariaExpanded ?? accessibilityState?.expanded,\n selected: ariaSelected ?? accessibilityState?.selected,\n };\n\n const disabled =\n this.props.disabled != null\n ? this.props.disabled\n : _accessibilityState?.disabled;\n\n _accessibilityState =\n disabled !== _accessibilityState?.disabled\n ? {..._accessibilityState, disabled}\n : _accessibilityState;\n\n if (disabled) {\n buttonStyles.push(styles.buttonDisabled);\n textStyles.push(styles.textDisabled);\n }\n\n invariant(\n typeof title === 'string',\n 'The title prop of a Button must be a string',\n );\n const formattedTitle =\n Platform.OS === 'android' ? title.toUpperCase() : title;\n const Touchable =\n Platform.OS === 'android' ? TouchableNativeFeedback : TouchableOpacity;\n\n // If `no` is specified for `importantForAccessibility`, it will be changed to `no-hide-descendants` because the text inside should not be focused.\n const _importantForAccessibility =\n importantForAccessibility === 'no'\n ? 'no-hide-descendants'\n : importantForAccessibility;\n\n return (\n \n \n \n {formattedTitle}\n \n \n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n button: Platform.select({\n ios: {},\n android: {\n elevation: 4,\n // Material design blue from https://material.google.com/style/color.html#color-color-palette\n backgroundColor: '#2196F3',\n borderRadius: 2,\n },\n }),\n text: {\n textAlign: 'center',\n margin: 8,\n ...Platform.select({\n ios: {\n // iOS blue from https://developer.apple.com/ios/human-interface-guidelines/visual-design/color/\n color: '#007AFF',\n fontSize: 18,\n },\n android: {\n color: 'white',\n fontWeight: '500',\n },\n }),\n },\n buttonDisabled: Platform.select({\n ios: {},\n android: {\n elevation: 0,\n backgroundColor: '#dfdfdf',\n },\n }),\n textDisabled: Platform.select({\n ios: {\n color: '#cdcdcd',\n },\n android: {\n color: '#a1a1a1',\n },\n }),\n});\n\nmodule.exports = (Button: ButtonType);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {PressEvent} from '../Types/CoreEventTypes';\nimport type {TextProps} from './TextProps';\n\nimport * as PressabilityDebug from '../Pressability/PressabilityDebug';\nimport usePressability from '../Pressability/usePressability';\nimport flattenStyle from '../StyleSheet/flattenStyle';\nimport processColor from '../StyleSheet/processColor';\nimport {getAccessibilityRoleFromRole} from '../Utilities/AcessibilityMapping';\nimport Platform from '../Utilities/Platform';\nimport TextAncestor from './TextAncestor';\nimport {NativeText, NativeVirtualText} from './TextNativeComponent';\nimport * as React from 'react';\nimport {useContext, useMemo, useState} from 'react';\n\n/**\n * Text is the fundamental component for displaying text.\n *\n * @see https://reactnative.dev/docs/text\n */\nconst Text: React.AbstractComponent<\n TextProps,\n React.ElementRef,\n> = React.forwardRef((props: TextProps, forwardedRef) => {\n const {\n accessible,\n accessibilityLabel,\n accessibilityRole,\n accessibilityState,\n allowFontScaling,\n 'aria-busy': ariaBusy,\n 'aria-checked': ariaChecked,\n 'aria-disabled': ariaDisabled,\n 'aria-expanded': ariaExpanded,\n 'aria-label': ariaLabel,\n 'aria-selected': ariaSelected,\n ellipsizeMode,\n id,\n nativeID,\n onLongPress,\n onPress,\n onPressIn,\n onPressOut,\n onResponderGrant,\n onResponderMove,\n onResponderRelease,\n onResponderTerminate,\n onResponderTerminationRequest,\n onStartShouldSetResponder,\n pressRetentionOffset,\n role,\n suppressHighlighting,\n ...restProps\n } = props;\n\n const [isHighlighted, setHighlighted] = useState(false);\n\n let _accessibilityState;\n if (\n accessibilityState != null ||\n ariaBusy != null ||\n ariaChecked != null ||\n ariaDisabled != null ||\n ariaExpanded != null ||\n ariaSelected != null\n ) {\n _accessibilityState = {\n busy: ariaBusy ?? accessibilityState?.busy,\n checked: ariaChecked ?? accessibilityState?.checked,\n disabled: ariaDisabled ?? accessibilityState?.disabled,\n expanded: ariaExpanded ?? accessibilityState?.expanded,\n selected: ariaSelected ?? accessibilityState?.selected,\n };\n }\n\n const _disabled =\n restProps.disabled != null\n ? restProps.disabled\n : _accessibilityState?.disabled;\n\n const nativeTextAccessibilityState =\n _disabled !== _accessibilityState?.disabled\n ? {..._accessibilityState, disabled: _disabled}\n : _accessibilityState;\n\n const isPressable =\n (onPress != null ||\n onLongPress != null ||\n onStartShouldSetResponder != null) &&\n _disabled !== true;\n\n const initialized = useLazyInitialization(isPressable);\n const config = useMemo(\n () =>\n initialized\n ? {\n disabled: !isPressable,\n pressRectOffset: pressRetentionOffset,\n onLongPress,\n onPress,\n onPressIn(event: PressEvent) {\n setHighlighted(!suppressHighlighting);\n onPressIn?.(event);\n },\n onPressOut(event: PressEvent) {\n setHighlighted(false);\n onPressOut?.(event);\n },\n onResponderTerminationRequest_DEPRECATED:\n onResponderTerminationRequest,\n onStartShouldSetResponder_DEPRECATED: onStartShouldSetResponder,\n }\n : null,\n [\n initialized,\n isPressable,\n pressRetentionOffset,\n onLongPress,\n onPress,\n onPressIn,\n onPressOut,\n onResponderTerminationRequest,\n onStartShouldSetResponder,\n suppressHighlighting,\n ],\n );\n\n const eventHandlers = usePressability(config);\n const eventHandlersForText = useMemo(\n () =>\n eventHandlers == null\n ? null\n : {\n onResponderGrant(event: PressEvent) {\n eventHandlers.onResponderGrant(event);\n if (onResponderGrant != null) {\n onResponderGrant(event);\n }\n },\n onResponderMove(event: PressEvent) {\n eventHandlers.onResponderMove(event);\n if (onResponderMove != null) {\n onResponderMove(event);\n }\n },\n onResponderRelease(event: PressEvent) {\n eventHandlers.onResponderRelease(event);\n if (onResponderRelease != null) {\n onResponderRelease(event);\n }\n },\n onResponderTerminate(event: PressEvent) {\n eventHandlers.onResponderTerminate(event);\n if (onResponderTerminate != null) {\n onResponderTerminate(event);\n }\n },\n onClick: eventHandlers.onClick,\n onResponderTerminationRequest:\n eventHandlers.onResponderTerminationRequest,\n onStartShouldSetResponder: eventHandlers.onStartShouldSetResponder,\n },\n [\n eventHandlers,\n onResponderGrant,\n onResponderMove,\n onResponderRelease,\n onResponderTerminate,\n ],\n );\n\n // TODO: Move this processing to the view configuration.\n const selectionColor =\n restProps.selectionColor == null\n ? null\n : processColor(restProps.selectionColor);\n\n let style = restProps.style;\n\n if (__DEV__) {\n if (PressabilityDebug.isEnabled() && onPress != null) {\n style = [restProps.style, {color: 'magenta'}];\n }\n }\n\n let numberOfLines = restProps.numberOfLines;\n if (numberOfLines != null && !(numberOfLines >= 0)) {\n console.error(\n `'numberOfLines' in must be a non-negative number, received: ${numberOfLines}. The value will be set to 0.`,\n );\n numberOfLines = 0;\n }\n\n const hasTextAncestor = useContext(TextAncestor);\n\n const _accessible = Platform.select({\n ios: accessible !== false,\n default: accessible,\n });\n\n // $FlowFixMe[underconstrained-implicit-instantiation]\n style = flattenStyle(style);\n\n if (typeof style?.fontWeight === 'number') {\n style.fontWeight = style?.fontWeight.toString();\n }\n\n let _selectable = restProps.selectable;\n if (style?.userSelect != null) {\n _selectable = userSelectToSelectableMap[style.userSelect];\n delete style.userSelect;\n }\n\n if (style?.verticalAlign != null) {\n style.textAlignVertical =\n verticalAlignToTextAlignVerticalMap[style.verticalAlign];\n delete style.verticalAlign;\n }\n\n const _hasOnPressOrOnLongPress =\n props.onPress != null || props.onLongPress != null;\n\n return hasTextAncestor ? (\n \n ) : (\n \n \n \n );\n});\n\nText.displayName = 'Text';\n\n/**\n * Switch to `deprecated-react-native-prop-types` for compatibility with future\n * releases. This is deprecated and will be removed in the future.\n */\nText.propTypes = require('deprecated-react-native-prop-types').TextPropTypes;\n\n/**\n * Returns false until the first time `newValue` is true, after which this will\n * always return true. This is necessary to lazily initialize `Pressability` so\n * we do not eagerly create one for every pressable `Text` component.\n */\nfunction useLazyInitialization(newValue: boolean): boolean {\n const [oldValue, setValue] = useState(newValue);\n if (!oldValue && newValue) {\n setValue(newValue);\n }\n return oldValue;\n}\n\nconst userSelectToSelectableMap = {\n auto: true,\n text: true,\n none: false,\n contain: true,\n all: true,\n};\n\nconst verticalAlignToTextAlignVerticalMap = {\n auto: 'auto',\n top: 'top',\n bottom: 'bottom',\n middle: 'center',\n};\n\nmodule.exports = Text;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {ColorValue} from '../StyleSheet/StyleSheet';\n\nimport View from '../Components/View/View';\nimport normalizeColor from '../StyleSheet/normalizeColor';\nimport {type RectOrSize, normalizeRect} from '../StyleSheet/Rect';\nimport * as React from 'react';\n\ntype Props = $ReadOnly<{|\n color: ColorValue,\n hitSlop: ?RectOrSize,\n|}>;\n\n/**\n * Displays a debug overlay to visualize press targets when enabled via the\n * React Native Inspector. Calls to this module should be guarded by `__DEV__`,\n * for example:\n *\n * return (\n * \n * {children}\n * {__DEV__ ? (\n * \n * ) : null}\n * \n * );\n *\n */\nexport function PressabilityDebugView(props: Props): React.Node {\n if (__DEV__) {\n if (isEnabled()) {\n const normalizedColor = normalizeColor(props.color);\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n const baseColor =\n '#' + (normalizedColor ?? 0).toString(16).padStart(8, '0');\n const hitSlop = normalizeRect(props.hitSlop);\n return (\n \n );\n }\n }\n return null;\n}\n\nlet isDebugEnabled = false;\n\nexport function isEnabled(): boolean {\n if (__DEV__) {\n return isDebugEnabled;\n }\n return false;\n}\n\nexport function setEnabled(value: boolean): void {\n if (__DEV__) {\n isDebugEnabled = value;\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport Pressability, {\n type EventHandlers,\n type PressabilityConfig,\n} from './Pressability';\nimport {useEffect, useRef} from 'react';\n\n/**\n * Creates a persistent instance of `Pressability` that automatically configures\n * itself and resets. Accepts null `config` to support lazy initialization. Once\n * initialized, will not un-initialize until the component has been unmounted.\n */\nexport default function usePressability(\n config: ?PressabilityConfig,\n): ?EventHandlers {\n const pressabilityRef = useRef(null);\n if (config != null && pressabilityRef.current == null) {\n pressabilityRef.current = new Pressability(config);\n }\n const pressability = pressabilityRef.current;\n\n // On the initial mount, this is a no-op. On updates, `pressability` will be\n // re-configured to use the new configuration.\n useEffect(() => {\n if (config != null && pressability != null) {\n pressability.configure(config);\n }\n }, [config, pressability]);\n\n // On unmount, reset pending state and timers inside `pressability`. This is\n // a separate effect because we do not want to reset when `config` changes.\n useEffect(() => {\n if (pressability != null) {\n return () => {\n pressability.reset();\n };\n }\n }, [pressability]);\n\n return pressability == null ? null : pressability.getEventHandlers();\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {HostComponent} from '../Renderer/shims/ReactNativeTypes';\nimport type {\n BlurEvent,\n FocusEvent,\n MouseEvent,\n PressEvent,\n} from '../Types/CoreEventTypes';\n\nimport SoundManager from '../Components/Sound/SoundManager';\nimport ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';\nimport UIManager from '../ReactNative/UIManager';\nimport {type RectOrSize, normalizeRect} from '../StyleSheet/Rect';\nimport {type PointerEvent} from '../Types/CoreEventTypes';\nimport Platform from '../Utilities/Platform';\nimport {isHoverEnabled} from './HoverState';\nimport PressabilityPerformanceEventEmitter from './PressabilityPerformanceEventEmitter.js';\nimport {type PressabilityTouchSignal as TouchSignal} from './PressabilityTypes.js';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\nexport type PressabilityConfig = $ReadOnly<{|\n /**\n * Whether a press gesture can be interrupted by a parent gesture such as a\n * scroll event. Defaults to true.\n */\n cancelable?: ?boolean,\n\n /**\n * Whether to disable initialization of the press gesture.\n */\n disabled?: ?boolean,\n\n /**\n * Amount to extend the `VisualRect` by to create `HitRect`.\n */\n hitSlop?: ?RectOrSize,\n\n /**\n * Amount to extend the `HitRect` by to create `PressRect`.\n */\n pressRectOffset?: ?RectOrSize,\n\n /**\n * Whether to disable the systemm sound when `onPress` fires on Android.\n **/\n android_disableSound?: ?boolean,\n\n /**\n * Duration to wait after hover in before calling `onHoverIn`.\n */\n delayHoverIn?: ?number,\n\n /**\n * Duration to wait after hover out before calling `onHoverOut`.\n */\n delayHoverOut?: ?number,\n\n /**\n * Duration (in addition to `delayPressIn`) after which a press gesture is\n * considered a long press gesture. Defaults to 500 (milliseconds).\n */\n delayLongPress?: ?number,\n\n /**\n * Duration to wait after press down before calling `onPressIn`.\n */\n delayPressIn?: ?number,\n\n /**\n * Duration to wait after letting up before calling `onPressOut`.\n */\n delayPressOut?: ?number,\n\n /**\n * Minimum duration to wait between calling `onPressIn` and `onPressOut`.\n */\n minPressDuration?: ?number,\n\n /**\n * Called after the element loses focus.\n */\n onBlur?: ?(event: BlurEvent) => mixed,\n\n /**\n * Called after the element is focused.\n */\n onFocus?: ?(event: FocusEvent) => mixed,\n\n /**\n * Called when the hover is activated to provide visual feedback.\n */\n onHoverIn?: ?(event: MouseEvent) => mixed,\n\n /**\n * Called when the hover is deactivated to undo visual feedback.\n */\n onHoverOut?: ?(event: MouseEvent) => mixed,\n\n /**\n * Called when a long press gesture has been triggered.\n */\n onLongPress?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when a press gesture has been triggered.\n */\n onPress?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when the press is activated to provide visual feedback.\n */\n onPressIn?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when the press location moves. (This should rarely be used.)\n */\n onPressMove?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when the press is deactivated to undo visual feedback.\n */\n onPressOut?: ?(event: PressEvent) => mixed,\n\n /**\n * Returns whether a long press gesture should cancel the press gesture.\n * Defaults to true.\n */\n onLongPressShouldCancelPress_DEPRECATED?: ?() => boolean,\n\n /**\n * If `cancelable` is set, this will be ignored.\n *\n * Returns whether to yield to a lock termination request (e.g. if a native\n * scroll gesture attempts to steal the responder lock).\n */\n onResponderTerminationRequest_DEPRECATED?: ?() => boolean,\n\n /**\n * If `disabled` is set, this will be ignored.\n *\n * Returns whether to start a press gesture.\n *\n * @deprecated\n */\n onStartShouldSetResponder_DEPRECATED?: ?() => boolean,\n|}>;\n\nexport type EventHandlers = $ReadOnly<{|\n onBlur: (event: BlurEvent) => void,\n onClick: (event: PressEvent) => void,\n onFocus: (event: FocusEvent) => void,\n onMouseEnter?: (event: MouseEvent) => void,\n onMouseLeave?: (event: MouseEvent) => void,\n onPointerEnter?: (event: PointerEvent) => void,\n onPointerLeave?: (event: PointerEvent) => void,\n onResponderGrant: (event: PressEvent) => void,\n onResponderMove: (event: PressEvent) => void,\n onResponderRelease: (event: PressEvent) => void,\n onResponderTerminate: (event: PressEvent) => void,\n onResponderTerminationRequest: () => boolean,\n onStartShouldSetResponder: () => boolean,\n|}>;\n\ntype TouchState =\n | 'NOT_RESPONDER'\n | 'RESPONDER_INACTIVE_PRESS_IN'\n | 'RESPONDER_INACTIVE_PRESS_OUT'\n | 'RESPONDER_ACTIVE_PRESS_IN'\n | 'RESPONDER_ACTIVE_PRESS_OUT'\n | 'RESPONDER_ACTIVE_LONG_PRESS_IN'\n | 'RESPONDER_ACTIVE_LONG_PRESS_OUT'\n | 'ERROR';\n\nconst Transitions = Object.freeze({\n NOT_RESPONDER: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'RESPONDER_INACTIVE_PRESS_IN',\n RESPONDER_RELEASE: 'ERROR',\n RESPONDER_TERMINATED: 'ERROR',\n ENTER_PRESS_RECT: 'ERROR',\n LEAVE_PRESS_RECT: 'ERROR',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_INACTIVE_PRESS_IN: {\n DELAY: 'RESPONDER_ACTIVE_PRESS_IN',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_INACTIVE_PRESS_OUT: {\n DELAY: 'RESPONDER_ACTIVE_PRESS_OUT',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_INACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_ACTIVE_PRESS_IN: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n },\n RESPONDER_ACTIVE_PRESS_OUT: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n RESPONDER_ACTIVE_LONG_PRESS_IN: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',\n LONG_PRESS_DETECTED: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n },\n RESPONDER_ACTIVE_LONG_PRESS_OUT: {\n DELAY: 'ERROR',\n RESPONDER_GRANT: 'ERROR',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n LEAVE_PRESS_RECT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',\n LONG_PRESS_DETECTED: 'ERROR',\n },\n ERROR: {\n DELAY: 'NOT_RESPONDER',\n RESPONDER_GRANT: 'RESPONDER_INACTIVE_PRESS_IN',\n RESPONDER_RELEASE: 'NOT_RESPONDER',\n RESPONDER_TERMINATED: 'NOT_RESPONDER',\n ENTER_PRESS_RECT: 'NOT_RESPONDER',\n LEAVE_PRESS_RECT: 'NOT_RESPONDER',\n LONG_PRESS_DETECTED: 'NOT_RESPONDER',\n },\n});\n\nconst isActiveSignal = (signal: TouchState) =>\n signal === 'RESPONDER_ACTIVE_PRESS_IN' ||\n signal === 'RESPONDER_ACTIVE_LONG_PRESS_IN';\n\nconst isActivationSignal = (signal: TouchState) =>\n signal === 'RESPONDER_ACTIVE_PRESS_OUT' ||\n signal === 'RESPONDER_ACTIVE_PRESS_IN';\n\nconst isPressInSignal = (signal: TouchState) =>\n signal === 'RESPONDER_INACTIVE_PRESS_IN' ||\n signal === 'RESPONDER_ACTIVE_PRESS_IN' ||\n signal === 'RESPONDER_ACTIVE_LONG_PRESS_IN';\n\nconst isTerminalSignal = (signal: TouchSignal) =>\n signal === 'RESPONDER_TERMINATED' || signal === 'RESPONDER_RELEASE';\n\nconst DEFAULT_LONG_PRESS_DELAY_MS = 500;\nconst DEFAULT_PRESS_RECT_OFFSETS = {\n bottom: 30,\n left: 20,\n right: 20,\n top: 20,\n};\nconst DEFAULT_MIN_PRESS_DURATION = 130;\n\nconst DEFAULT_LONG_PRESS_DEACTIVATION_DISTANCE = 10;\nlet longPressDeactivationDistance = DEFAULT_LONG_PRESS_DEACTIVATION_DISTANCE;\n/**\n * Pressability implements press handling capabilities.\n *\n * =========================== Pressability Tutorial ===========================\n *\n * The `Pressability` class helps you create press interactions by analyzing the\n * geometry of elements and observing when another responder (e.g. ScrollView)\n * has stolen the touch lock. It offers hooks for your component to provide\n * interaction feedback to the user:\n *\n * - When a press has activated (e.g. highlight an element)\n * - When a press has deactivated (e.g. un-highlight an element)\n * - When a press sould trigger an action, meaning it activated and deactivated\n * while within the geometry of the element without the lock being stolen.\n *\n * A high quality interaction isn't as simple as you might think. There should\n * be a slight delay before activation. Moving your finger beyond an element's\n * bounds should trigger deactivation, but moving the same finger back within an\n * element's bounds should trigger reactivation.\n *\n * In order to use `Pressability`, do the following:\n *\n * 1. Instantiate `Pressability` and store it on your component's state.\n *\n * state = {\n * pressability: new Pressability({\n * // ...\n * }),\n * };\n *\n * 2. Choose the rendered component who should collect the press events. On that\n * element, spread `pressability.getEventHandlers()` into its props.\n *\n * return (\n * \n * );\n *\n * 3. Reset `Pressability` when your component unmounts.\n *\n * componentWillUnmount() {\n * this.state.pressability.reset();\n * }\n *\n * ==================== Pressability Implementation Details ====================\n *\n * `Pressability` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * # Geometry\n *\n * β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n * β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ - Presses start anywhere within `HitRect`, which\n * β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ is expanded via the prop `hitSlop`.\n * β”‚ β”‚ β”‚ VisualRect β”‚ β”‚ β”‚\n * β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ - When pressed down for sufficient amount of time\n * β”‚ β”‚ HitRect β”‚ β”‚ before letting up, `VisualRect` activates for\n * β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ as long as the press stays within `PressRect`.\n * β”‚ PressRect o β”‚\n * β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”‚β”€β”€β”€β”˜\n * Out Region └────── `PressRect`, which is expanded via the prop\n * `pressRectOffset`, allows presses to move\n * beyond `HitRect` while maintaining activation\n * and being eligible for a \"press\".\n *\n * # State Machine\n *\n * β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” ◀──── RESPONDER_RELEASE\n * β”‚ NOT_RESPONDER β”‚\n * β””β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ◀──── RESPONDER_TERMINATED\n * β”‚\n * β”‚ RESPONDER_GRANT (HitRect)\n * β”‚\n * β–Ό\n * β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n * β”‚ RESPONDER_INACTIVE_ β”‚ DELAY β”‚ RESPONDER_ACTIVE_ β”‚ T + DELAY β”‚ RESPONDER_ACTIVE_ β”‚\n * β”‚ PRESS_IN β”œβ”€β”€β”€β”€β”€β”€β”€β”€β–Ά β”‚ PRESS_IN β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Ά β”‚ LONG_PRESS_IN β”‚\n * β””β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜\n * β”‚ β–² β”‚ β–² β”‚ β–²\n * β”‚LEAVE_ β”‚ β”‚LEAVE_ β”‚ β”‚LEAVE_ β”‚\n * β”‚PRESS_RECT β”‚ENTER_ β”‚PRESS_RECT β”‚ENTER_ β”‚PRESS_RECT β”‚ENTER_\n * β”‚ β”‚PRESS_RECT β”‚ β”‚PRESS_RECT β”‚ β”‚PRESS_RECT\n * β–Ό β”‚ β–Ό β”‚ β–Ό β”‚\n * β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”\n * β”‚ RESPONDER_INACTIVE_ β”‚ DELAY β”‚ RESPONDER_ACTIVE_ β”‚ β”‚ RESPONDER_ACTIVE_ β”‚\n * β”‚ PRESS_OUT β”œβ”€β”€β”€β”€β”€β”€β”€β”€β–Ά β”‚ PRESS_OUT β”‚ β”‚ LONG_PRESS_OUT β”‚\n * β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜\n *\n * T + DELAY => LONG_PRESS_DELAY + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the invocation of `onPress` and `onLongPress` that occur when a\n * responder is release while in the \"press in\" states.\n */\nexport default class Pressability {\n _config: PressabilityConfig;\n _eventHandlers: ?EventHandlers = null;\n _hoverInDelayTimeout: ?TimeoutID = null;\n _hoverOutDelayTimeout: ?TimeoutID = null;\n _isHovered: boolean = false;\n _longPressDelayTimeout: ?TimeoutID = null;\n _pressDelayTimeout: ?TimeoutID = null;\n _pressOutDelayTimeout: ?TimeoutID = null;\n _responderID: ?number | React.ElementRef> = null;\n _responderRegion: ?$ReadOnly<{|\n bottom: number,\n left: number,\n right: number,\n top: number,\n |}> = null;\n _touchActivatePosition: ?$ReadOnly<{|\n pageX: number,\n pageY: number,\n |}>;\n _touchActivateTime: ?number;\n _touchState: TouchState = 'NOT_RESPONDER';\n\n constructor(config: PressabilityConfig) {\n this.configure(config);\n }\n\n configure(config: PressabilityConfig): void {\n this._config = config;\n }\n\n /**\n * Resets any pending timers. This should be called on unmount.\n */\n reset(): void {\n this._cancelHoverInDelayTimeout();\n this._cancelHoverOutDelayTimeout();\n this._cancelLongPressDelayTimeout();\n this._cancelPressDelayTimeout();\n this._cancelPressOutDelayTimeout();\n\n // Ensure that, if any async event handlers are fired after unmount\n // due to a race, we don't call any configured callbacks.\n this._config = Object.freeze({});\n }\n\n /**\n * Returns a set of props to spread into the interactive element.\n */\n getEventHandlers(): EventHandlers {\n if (this._eventHandlers == null) {\n this._eventHandlers = this._createEventHandlers();\n }\n return this._eventHandlers;\n }\n\n static setLongPressDeactivationDistance(distance: number): void {\n longPressDeactivationDistance = distance;\n }\n\n _createEventHandlers(): EventHandlers {\n const focusEventHandlers = {\n onBlur: (event: BlurEvent): void => {\n const {onBlur} = this._config;\n if (onBlur != null) {\n onBlur(event);\n }\n },\n onFocus: (event: FocusEvent): void => {\n const {onFocus} = this._config;\n if (onFocus != null) {\n onFocus(event);\n }\n },\n };\n\n const responderEventHandlers = {\n onStartShouldSetResponder: (): boolean => {\n const {disabled} = this._config;\n if (disabled == null) {\n const {onStartShouldSetResponder_DEPRECATED} = this._config;\n return onStartShouldSetResponder_DEPRECATED == null\n ? true\n : onStartShouldSetResponder_DEPRECATED();\n }\n return !disabled;\n },\n\n onResponderGrant: (event: PressEvent): void => {\n event.persist();\n\n this._cancelPressOutDelayTimeout();\n\n this._responderID = event.currentTarget;\n this._touchState = 'NOT_RESPONDER';\n this._receiveSignal('RESPONDER_GRANT', event);\n\n const delayPressIn = normalizeDelay(this._config.delayPressIn);\n if (delayPressIn > 0) {\n this._pressDelayTimeout = setTimeout(() => {\n this._receiveSignal('DELAY', event);\n }, delayPressIn);\n } else {\n this._receiveSignal('DELAY', event);\n }\n\n const delayLongPress = normalizeDelay(\n this._config.delayLongPress,\n 10,\n DEFAULT_LONG_PRESS_DELAY_MS - delayPressIn,\n );\n this._longPressDelayTimeout = setTimeout(() => {\n this._handleLongPress(event);\n }, delayLongPress + delayPressIn);\n },\n\n onResponderMove: (event: PressEvent): void => {\n const {onPressMove} = this._config;\n if (onPressMove != null) {\n onPressMove(event);\n }\n\n // Region may not have finished being measured, yet.\n const responderRegion = this._responderRegion;\n if (responderRegion == null) {\n return;\n }\n\n const touch = getTouchFromPressEvent(event);\n if (touch == null) {\n this._cancelLongPressDelayTimeout();\n this._receiveSignal('LEAVE_PRESS_RECT', event);\n return;\n }\n\n if (this._touchActivatePosition != null) {\n const deltaX = this._touchActivatePosition.pageX - touch.pageX;\n const deltaY = this._touchActivatePosition.pageY - touch.pageY;\n if (Math.hypot(deltaX, deltaY) > longPressDeactivationDistance) {\n this._cancelLongPressDelayTimeout();\n }\n }\n\n if (this._isTouchWithinResponderRegion(touch, responderRegion)) {\n this._receiveSignal('ENTER_PRESS_RECT', event);\n } else {\n this._cancelLongPressDelayTimeout();\n this._receiveSignal('LEAVE_PRESS_RECT', event);\n }\n },\n\n onResponderRelease: (event: PressEvent): void => {\n this._receiveSignal('RESPONDER_RELEASE', event);\n },\n\n onResponderTerminate: (event: PressEvent): void => {\n this._receiveSignal('RESPONDER_TERMINATED', event);\n },\n\n onResponderTerminationRequest: (): boolean => {\n const {cancelable} = this._config;\n if (cancelable == null) {\n const {onResponderTerminationRequest_DEPRECATED} = this._config;\n return onResponderTerminationRequest_DEPRECATED == null\n ? true\n : onResponderTerminationRequest_DEPRECATED();\n }\n return cancelable;\n },\n\n onClick: (event: PressEvent): void => {\n const {onPress, disabled} = this._config;\n if (onPress != null && disabled !== true) {\n onPress(event);\n }\n },\n };\n\n if (process.env.NODE_ENV === 'test') {\n // We are setting this in order to find this node in ReactNativeTestTools\n // $FlowFixMe[prop-missing]\n responderEventHandlers.onStartShouldSetResponder.testOnly_pressabilityConfig =\n () => this._config;\n }\n\n if (\n ReactNativeFeatureFlags.shouldPressibilityUseW3CPointerEventsForHover()\n ) {\n const hoverPointerEvents = {\n onPointerEnter: (undefined: void | (PointerEvent => void)),\n onPointerLeave: (undefined: void | (PointerEvent => void)),\n };\n const {onHoverIn, onHoverOut} = this._config;\n if (onHoverIn != null) {\n hoverPointerEvents.onPointerEnter = (event: PointerEvent) => {\n this._isHovered = true;\n this._cancelHoverOutDelayTimeout();\n if (onHoverIn != null) {\n const delayHoverIn = normalizeDelay(this._config.delayHoverIn);\n if (delayHoverIn > 0) {\n event.persist();\n this._hoverInDelayTimeout = setTimeout(() => {\n onHoverIn(convertPointerEventToMouseEvent(event));\n }, delayHoverIn);\n } else {\n onHoverIn(convertPointerEventToMouseEvent(event));\n }\n }\n };\n }\n if (onHoverOut != null) {\n hoverPointerEvents.onPointerLeave = (event: PointerEvent) => {\n if (this._isHovered) {\n this._isHovered = false;\n this._cancelHoverInDelayTimeout();\n if (onHoverOut != null) {\n const delayHoverOut = normalizeDelay(this._config.delayHoverOut);\n if (delayHoverOut > 0) {\n event.persist();\n this._hoverOutDelayTimeout = setTimeout(() => {\n onHoverOut(convertPointerEventToMouseEvent(event));\n }, delayHoverOut);\n } else {\n onHoverOut(convertPointerEventToMouseEvent(event));\n }\n }\n }\n };\n }\n return {\n ...focusEventHandlers,\n ...responderEventHandlers,\n ...hoverPointerEvents,\n };\n } else {\n const mouseEventHandlers =\n Platform.OS === 'ios' || Platform.OS === 'android'\n ? null\n : {\n onMouseEnter: (event: MouseEvent): void => {\n if (isHoverEnabled()) {\n this._isHovered = true;\n this._cancelHoverOutDelayTimeout();\n const {onHoverIn} = this._config;\n if (onHoverIn != null) {\n const delayHoverIn = normalizeDelay(\n this._config.delayHoverIn,\n );\n if (delayHoverIn > 0) {\n event.persist();\n this._hoverInDelayTimeout = setTimeout(() => {\n onHoverIn(event);\n }, delayHoverIn);\n } else {\n onHoverIn(event);\n }\n }\n }\n },\n\n onMouseLeave: (event: MouseEvent): void => {\n if (this._isHovered) {\n this._isHovered = false;\n this._cancelHoverInDelayTimeout();\n const {onHoverOut} = this._config;\n if (onHoverOut != null) {\n const delayHoverOut = normalizeDelay(\n this._config.delayHoverOut,\n );\n if (delayHoverOut > 0) {\n event.persist();\n this._hoverInDelayTimeout = setTimeout(() => {\n onHoverOut(event);\n }, delayHoverOut);\n } else {\n onHoverOut(event);\n }\n }\n }\n },\n };\n return {\n ...focusEventHandlers,\n ...responderEventHandlers,\n ...mouseEventHandlers,\n };\n }\n }\n\n /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n */\n _receiveSignal(signal: TouchSignal, event: PressEvent): void {\n // Especially on iOS, not all events have timestamps associated.\n // For telemetry purposes, this doesn't matter too much, as long as *some* do.\n // Since the native timestamp is integral for logging telemetry, just skip\n // events if they don't have a timestamp attached.\n if (event.nativeEvent.timestamp != null) {\n PressabilityPerformanceEventEmitter.emitEvent(() => {\n return {\n signal,\n nativeTimestamp: event.nativeEvent.timestamp,\n };\n });\n }\n\n const prevState = this._touchState;\n const nextState = Transitions[prevState]?.[signal];\n if (this._responderID == null && signal === 'RESPONDER_RELEASE') {\n return;\n }\n invariant(\n nextState != null && nextState !== 'ERROR',\n 'Pressability: Invalid signal `%s` for state `%s` on responder: %s',\n signal,\n prevState,\n typeof this._responderID === 'number'\n ? this._responderID\n : '<>',\n );\n if (prevState !== nextState) {\n this._performTransitionSideEffects(prevState, nextState, signal, event);\n this._touchState = nextState;\n }\n }\n\n /**\n * Performs a transition between touchable states and identify any activations\n * or deactivations (and callback invocations).\n */\n _performTransitionSideEffects(\n prevState: TouchState,\n nextState: TouchState,\n signal: TouchSignal,\n event: PressEvent,\n ): void {\n if (isTerminalSignal(signal)) {\n this._touchActivatePosition = null;\n this._cancelLongPressDelayTimeout();\n }\n\n const isInitialTransition =\n prevState === 'NOT_RESPONDER' &&\n nextState === 'RESPONDER_INACTIVE_PRESS_IN';\n\n const isActivationTransition =\n !isActivationSignal(prevState) && isActivationSignal(nextState);\n\n if (isInitialTransition || isActivationTransition) {\n this._measureResponderRegion();\n }\n\n if (isPressInSignal(prevState) && signal === 'LONG_PRESS_DETECTED') {\n const {onLongPress} = this._config;\n if (onLongPress != null) {\n onLongPress(event);\n }\n }\n\n const isPrevActive = isActiveSignal(prevState);\n const isNextActive = isActiveSignal(nextState);\n\n if (!isPrevActive && isNextActive) {\n this._activate(event);\n } else if (isPrevActive && !isNextActive) {\n this._deactivate(event);\n }\n\n if (isPressInSignal(prevState) && signal === 'RESPONDER_RELEASE') {\n // If we never activated (due to delays), activate and deactivate now.\n if (!isNextActive && !isPrevActive) {\n this._activate(event);\n this._deactivate(event);\n }\n const {onLongPress, onPress, android_disableSound} = this._config;\n if (onPress != null) {\n const isPressCanceledByLongPress =\n onLongPress != null &&\n prevState === 'RESPONDER_ACTIVE_LONG_PRESS_IN' &&\n this._shouldLongPressCancelPress();\n if (!isPressCanceledByLongPress) {\n if (Platform.OS === 'android' && android_disableSound !== true) {\n SoundManager.playTouchSound();\n }\n onPress(event);\n }\n }\n }\n\n this._cancelPressDelayTimeout();\n }\n\n _activate(event: PressEvent): void {\n const {onPressIn} = this._config;\n const {pageX, pageY} = getTouchFromPressEvent(event);\n this._touchActivatePosition = {pageX, pageY};\n this._touchActivateTime = Date.now();\n if (onPressIn != null) {\n onPressIn(event);\n }\n }\n\n _deactivate(event: PressEvent): void {\n const {onPressOut} = this._config;\n if (onPressOut != null) {\n const minPressDuration = normalizeDelay(\n this._config.minPressDuration,\n 0,\n DEFAULT_MIN_PRESS_DURATION,\n );\n const pressDuration = Date.now() - (this._touchActivateTime ?? 0);\n const delayPressOut = Math.max(\n minPressDuration - pressDuration,\n normalizeDelay(this._config.delayPressOut),\n );\n if (delayPressOut > 0) {\n event.persist();\n this._pressOutDelayTimeout = setTimeout(() => {\n onPressOut(event);\n }, delayPressOut);\n } else {\n onPressOut(event);\n }\n }\n this._touchActivateTime = null;\n }\n\n _measureResponderRegion(): void {\n if (this._responderID == null) {\n return;\n }\n\n if (typeof this._responderID === 'number') {\n UIManager.measure(this._responderID, this._measureCallback);\n } else {\n this._responderID.measure(this._measureCallback);\n }\n }\n\n _measureCallback = (\n left: number,\n top: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number,\n ) => {\n if (!left && !top && !width && !height && !pageX && !pageY) {\n return;\n }\n this._responderRegion = {\n bottom: pageY + height,\n left: pageX,\n right: pageX + width,\n top: pageY,\n };\n };\n\n _isTouchWithinResponderRegion(\n touch: $PropertyType,\n responderRegion: $ReadOnly<{|\n bottom: number,\n left: number,\n right: number,\n top: number,\n |}>,\n ): boolean {\n const hitSlop = normalizeRect(this._config.hitSlop);\n const pressRectOffset = normalizeRect(this._config.pressRectOffset);\n\n let regionBottom = responderRegion.bottom;\n let regionLeft = responderRegion.left;\n let regionRight = responderRegion.right;\n let regionTop = responderRegion.top;\n\n if (hitSlop != null) {\n if (hitSlop.bottom != null) {\n regionBottom += hitSlop.bottom;\n }\n if (hitSlop.left != null) {\n regionLeft -= hitSlop.left;\n }\n if (hitSlop.right != null) {\n regionRight += hitSlop.right;\n }\n if (hitSlop.top != null) {\n regionTop -= hitSlop.top;\n }\n }\n\n regionBottom +=\n pressRectOffset?.bottom ?? DEFAULT_PRESS_RECT_OFFSETS.bottom;\n regionLeft -= pressRectOffset?.left ?? DEFAULT_PRESS_RECT_OFFSETS.left;\n regionRight += pressRectOffset?.right ?? DEFAULT_PRESS_RECT_OFFSETS.right;\n regionTop -= pressRectOffset?.top ?? DEFAULT_PRESS_RECT_OFFSETS.top;\n\n return (\n touch.pageX > regionLeft &&\n touch.pageX < regionRight &&\n touch.pageY > regionTop &&\n touch.pageY < regionBottom\n );\n }\n\n _handleLongPress(event: PressEvent): void {\n if (\n this._touchState === 'RESPONDER_ACTIVE_PRESS_IN' ||\n this._touchState === 'RESPONDER_ACTIVE_LONG_PRESS_IN'\n ) {\n this._receiveSignal('LONG_PRESS_DETECTED', event);\n }\n }\n\n _shouldLongPressCancelPress(): boolean {\n return (\n this._config.onLongPressShouldCancelPress_DEPRECATED == null ||\n this._config.onLongPressShouldCancelPress_DEPRECATED()\n );\n }\n\n _cancelHoverInDelayTimeout(): void {\n if (this._hoverInDelayTimeout != null) {\n clearTimeout(this._hoverInDelayTimeout);\n this._hoverInDelayTimeout = null;\n }\n }\n\n _cancelHoverOutDelayTimeout(): void {\n if (this._hoverOutDelayTimeout != null) {\n clearTimeout(this._hoverOutDelayTimeout);\n this._hoverOutDelayTimeout = null;\n }\n }\n\n _cancelLongPressDelayTimeout(): void {\n if (this._longPressDelayTimeout != null) {\n clearTimeout(this._longPressDelayTimeout);\n this._longPressDelayTimeout = null;\n }\n }\n\n _cancelPressDelayTimeout(): void {\n if (this._pressDelayTimeout != null) {\n clearTimeout(this._pressDelayTimeout);\n this._pressDelayTimeout = null;\n }\n }\n\n _cancelPressOutDelayTimeout(): void {\n if (this._pressOutDelayTimeout != null) {\n clearTimeout(this._pressOutDelayTimeout);\n this._pressOutDelayTimeout = null;\n }\n }\n}\n\nfunction normalizeDelay(\n delay: ?number,\n min: number = 0,\n fallback: number = 0,\n): number {\n return Math.max(min, delay ?? fallback);\n}\n\nconst getTouchFromPressEvent = (event: PressEvent) => {\n const {changedTouches, touches} = event.nativeEvent;\n\n if (touches != null && touches.length > 0) {\n return touches[0];\n }\n if (changedTouches != null && changedTouches.length > 0) {\n return changedTouches[0];\n }\n return event.nativeEvent;\n};\n\nfunction convertPointerEventToMouseEvent(input: PointerEvent): MouseEvent {\n const {clientX, clientY} = input.nativeEvent;\n return {\n ...input,\n nativeEvent: {\n clientX,\n clientY,\n pageX: clientX,\n pageY: clientY,\n timestamp: input.timeStamp,\n },\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport NativeSoundManager from './NativeSoundManager';\n\nconst SoundManager = {\n playTouchSound: function (): void {\n if (NativeSoundManager) {\n NativeSoundManager.playTouchSound();\n }\n },\n};\n\nmodule.exports = SoundManager;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\n/**\n * Native Module used for playing sounds in native platform.\n */\nexport interface Spec extends TurboModule {\n +playTouchSound: () => void;\n}\n\nexport default (TurboModuleRegistry.get('SoundManager'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport {type PressabilityTouchSignal as TouchSignal} from './PressabilityTypes.js';\n\nexport type PressabilityPerformanceEvent = $ReadOnly<{|\n signal: TouchSignal,\n nativeTimestamp: number,\n|}>;\nexport type PressabilityPerformanceEventListener =\n PressabilityPerformanceEvent => void;\n\nclass PressabilityPerformanceEventEmitter {\n _listeners: Array = [];\n\n constructor() {}\n\n addListener(listener: PressabilityPerformanceEventListener): void {\n this._listeners.push(listener);\n }\n\n removeListener(listener: PressabilityPerformanceEventListener): void {\n const index = this._listeners.indexOf(listener);\n if (index > -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n emitEvent(constructEvent: () => PressabilityPerformanceEvent): void {\n if (this._listeners.length === 0) {\n return;\n }\n\n const event = constructEvent();\n this._listeners.forEach(listener => listener(event));\n }\n}\n\nconst PressabilityPerformanceEventEmitterSingleton: PressabilityPerformanceEventEmitter =\n new PressabilityPerformanceEventEmitter();\n\nexport default PressabilityPerformanceEventEmitterSingleton;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport Platform from '../Utilities/Platform';\n\nlet isEnabled = false;\n\nif (Platform.OS === 'web') {\n const canUseDOM = Boolean(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement,\n );\n\n if (canUseDOM) {\n /**\n * Web browsers emulate mouse events (and hover states) after touch events.\n * This code infers when the currently-in-use modality supports hover\n * (including for multi-modality devices) and considers \"hover\" to be enabled\n * if a mouse movement occurs more than 1 second after the last touch event.\n * This threshold is long enough to account for longer delays between the\n * browser firing touch and mouse events on low-powered devices.\n */\n const HOVER_THRESHOLD_MS = 1000;\n let lastTouchTimestamp = 0;\n\n const enableHover = () => {\n if (isEnabled || Date.now() - lastTouchTimestamp < HOVER_THRESHOLD_MS) {\n return;\n }\n isEnabled = true;\n };\n\n const disableHover = () => {\n lastTouchTimestamp = Date.now();\n if (isEnabled) {\n isEnabled = false;\n }\n };\n\n document.addEventListener('touchstart', disableHover, true);\n document.addEventListener('touchmove', disableHover, true);\n document.addEventListener('mousemove', enableHover, true);\n }\n}\n\nexport function isHoverEnabled(): boolean {\n return isEnabled;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nexport type Rect = $ReadOnly<{|\n bottom?: ?number,\n left?: ?number,\n right?: ?number,\n top?: ?number,\n|}>;\n\nexport type RectOrSize = Rect | number;\n\nexport function createSquare(size: number): Rect {\n return {bottom: size, left: size, right: size, top: size};\n}\n\nexport function normalizeRect(rectOrSize: ?RectOrSize): ?Rect {\n return typeof rectOrSize === 'number' ? createSquare(rectOrSize) : rectOrSize;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport {createViewConfig} from '../NativeComponent/ViewConfig';\nimport UIManager from '../ReactNative/UIManager';\nimport createReactNativeComponentClass from '../Renderer/shims/createReactNativeComponentClass';\nimport {type HostComponent} from '../Renderer/shims/ReactNativeTypes';\nimport {type ProcessedColorValue} from '../StyleSheet/processColor';\nimport {type PressEvent} from '../Types/CoreEventTypes';\nimport {type TextProps} from './TextProps';\n\ntype NativeTextProps = $ReadOnly<{\n ...TextProps,\n isHighlighted?: ?boolean,\n selectionColor?: ?ProcessedColorValue,\n onClick?: ?(event: PressEvent) => mixed,\n // This is only needed for platforms that optimize text hit testing, e.g.,\n // react-native-windows. It can be used to only hit test virtual text spans\n // that have pressable events attached to them.\n isPressable?: ?boolean,\n}>;\n\nconst textViewConfig = {\n validAttributes: {\n isHighlighted: true,\n isPressable: true,\n numberOfLines: true,\n ellipsizeMode: true,\n allowFontScaling: true,\n dynamicTypeRamp: true,\n maxFontSizeMultiplier: true,\n disabled: true,\n selectable: true,\n selectionColor: true,\n adjustsFontSizeToFit: true,\n minimumFontScale: true,\n textBreakStrategy: true,\n onTextLayout: true,\n onInlineViewLayout: true,\n dataDetectorType: true,\n android_hyphenationFrequency: true,\n lineBreakStrategyIOS: true,\n },\n directEventTypes: {\n topTextLayout: {\n registrationName: 'onTextLayout',\n },\n topInlineViewLayout: {\n registrationName: 'onInlineViewLayout',\n },\n },\n uiViewClassName: 'RCTText',\n};\n\nconst virtualTextViewConfig = {\n validAttributes: {\n isHighlighted: true,\n isPressable: true,\n maxFontSizeMultiplier: true,\n },\n uiViewClassName: 'RCTVirtualText',\n};\n\nexport const NativeText: HostComponent =\n (createReactNativeComponentClass('RCTText', () =>\n createViewConfig(textViewConfig),\n ): any);\n\nexport const NativeVirtualText: HostComponent =\n !global.RN$Bridgeless && !UIManager.hasViewManagerConfig('RCTVirtualText')\n ? NativeText\n : (createReactNativeComponentClass('RCTVirtualText', () =>\n createViewConfig(virtualTextViewConfig),\n ): any);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nmodule.exports = {\n get ColorPropType() {\n return require('./DeprecatedColorPropType');\n },\n get EdgeInsetsPropType() {\n return require('./DeprecatedEdgeInsetsPropType');\n },\n get ImagePropTypes() {\n return require('./DeprecatedImagePropType');\n },\n get PointPropType() {\n return require('./DeprecatedPointPropType');\n },\n get TextInputPropTypes() {\n return require('./DeprecatedTextInputPropTypes');\n },\n get TextPropTypes() {\n return require('./DeprecatedTextPropTypes');\n },\n get ViewPropTypes() {\n return require('./DeprecatedViewPropTypes');\n },\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst normalizeColor = require('@react-native/normalize-colors');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst colorPropType = function(\n isRequired,\n props,\n propName,\n componentName,\n location,\n propFullName,\n) {\n const color = props[propName];\n\n if (color == null) {\n if (isRequired) {\n return new Error(\n 'Required ' +\n location +\n ' `' +\n (propFullName || propName) +\n '` was not specified in `' +\n componentName +\n '`.',\n );\n }\n return;\n }\n\n if (typeof color === 'number') {\n // Developers should not use a number, but we are using the prop type\n // both for user provided colors and for transformed ones. This isn't ideal\n // and should be fixed but will do for now...\n return;\n }\n\n if (typeof color === 'string' && normalizeColor(color) === null) {\n return new Error(\n 'Invalid ' +\n location +\n ' `' +\n (propFullName || propName) +\n '` supplied to `' +\n componentName +\n '`: ' +\n color +\n '\\n' +\n `Valid color formats are\n - '#f0f' (#rgb)\n - '#f0fc' (#rgba)\n - '#ff00ff' (#rrggbb)\n - '#ff00ff00' (#rrggbbaa)\n - 'rgb(255, 255, 255)'\n - 'rgba(255, 255, 255, 1.0)'\n - 'hsl(360, 100%, 100%)'\n - 'hsla(360, 100%, 100%, 1.0)'\n - 'transparent'\n - 'red'\n - 0xff00ff00 (0xrrggbbaa)\n`,\n );\n }\n};\n\nconst ColorPropType = colorPropType.bind(null, false /* isRequired */);\nColorPropType.isRequired = colorPropType.bind(null, true /* isRequired */);\n\nmodule.exports = ColorPropType;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @noflow\n */\n\n/* eslint no-bitwise: 0 */\n\n'use strict';\n\nfunction normalizeColor(color) {\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color;\n }\n return null;\n }\n\n if (typeof color !== 'string') {\n return null;\n }\n\n const matchers = getMatchers();\n let match;\n\n // Ordered based on occurrences on Facebook codebase\n if ((match = matchers.hex6.exec(color))) {\n return parseInt(match[1] + 'ff', 16) >>> 0;\n }\n\n const colorFromKeyword = normalizeKeyword(color);\n if (colorFromKeyword != null) {\n return colorFromKeyword;\n }\n\n if ((match = matchers.rgb.exec(color))) {\n return (\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) | // b\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers.rgba.exec(color))) {\n // rgba(R G B / A) notation\n if (match[6] !== undefined) {\n return (\n ((parse255(match[6]) << 24) | // r\n (parse255(match[7]) << 16) | // g\n (parse255(match[8]) << 8) | // b\n parse1(match[9])) >>> // a\n 0\n );\n }\n\n // rgba(R, G, B, A) notation\n return (\n ((parse255(match[2]) << 24) | // r\n (parse255(match[3]) << 16) | // g\n (parse255(match[4]) << 8) | // b\n parse1(match[5])) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hex3.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n 'ff', // a\n 16,\n ) >>> 0\n );\n }\n\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = matchers.hex8.exec(color))) {\n return parseInt(match[1], 16) >>> 0;\n }\n\n if ((match = matchers.hex4.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n match[4] +\n match[4], // a\n 16,\n ) >>> 0\n );\n }\n\n if ((match = matchers.hsl.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]), // l\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hsla.exec(color))) {\n // hsla(H S L / A) notation\n if (match[6] !== undefined) {\n return (\n (hslToRgb(\n parse360(match[6]), // h\n parsePercentage(match[7]), // s\n parsePercentage(match[8]), // l\n ) |\n parse1(match[9])) >>> // a\n 0\n );\n }\n\n // hsla(H, S, L, A) notation\n return (\n (hslToRgb(\n parse360(match[2]), // h\n parsePercentage(match[3]), // s\n parsePercentage(match[4]), // l\n ) |\n parse1(match[5])) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hwb.exec(color))) {\n return (\n (hwbToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // w\n parsePercentage(match[3]), // b\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n return null;\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n\nfunction hslToRgb(h, s, l) {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n\n return (\n (Math.round(r * 255) << 24) |\n (Math.round(g * 255) << 16) |\n (Math.round(b * 255) << 8)\n );\n}\n\nfunction hwbToRgb(h, w, b) {\n if (w + b >= 1) {\n const gray = Math.round((w * 255) / (w + b));\n\n return (gray << 24) | (gray << 16) | (gray << 8);\n }\n\n const red = hue2rgb(0, 1, h + 1 / 3) * (1 - w - b) + w;\n const green = hue2rgb(0, 1, h) * (1 - w - b) + w;\n const blue = hue2rgb(0, 1, h - 1 / 3) * (1 - w - b) + w;\n\n return (\n (Math.round(red * 255) << 24) |\n (Math.round(green * 255) << 16) |\n (Math.round(blue * 255) << 8)\n );\n}\n\nconst NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nconst PERCENTAGE = NUMBER + '%';\n\nfunction call(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,?\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nfunction callWithSlashSeparator(...args) {\n return (\n '\\\\(\\\\s*(' +\n args.slice(0, args.length - 1).join(')\\\\s*,?\\\\s*(') +\n ')\\\\s*/\\\\s*(' +\n args[args.length - 1] +\n ')\\\\s*\\\\)'\n );\n}\n\nfunction commaSeparatedCall(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nlet cachedMatchers;\n\nfunction getMatchers() {\n if (cachedMatchers === undefined) {\n cachedMatchers = {\n rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)),\n rgba: new RegExp(\n 'rgba(' +\n commaSeparatedCall(NUMBER, NUMBER, NUMBER, NUMBER) +\n '|' +\n callWithSlashSeparator(NUMBER, NUMBER, NUMBER, NUMBER) +\n ')',\n ),\n hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hsla: new RegExp(\n 'hsla(' +\n commaSeparatedCall(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +\n '|' +\n callWithSlashSeparator(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +\n ')',\n ),\n hwb: new RegExp('hwb' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#([0-9a-fA-F]{6})$/,\n hex8: /^#([0-9a-fA-F]{8})$/,\n };\n }\n return cachedMatchers;\n}\n\nfunction parse255(str) {\n const int = parseInt(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 255) {\n return 255;\n }\n return int;\n}\n\nfunction parse360(str) {\n const int = parseFloat(str);\n return (((int % 360) + 360) % 360) / 360;\n}\n\nfunction parse1(str) {\n const num = parseFloat(str);\n if (num < 0) {\n return 0;\n }\n if (num > 1) {\n return 255;\n }\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n // parseFloat conveniently ignores the final %\n const int = parseFloat(str);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\n\nfunction normalizeKeyword(name) {\n // prettier-ignore\n switch (name) {\n case 'transparent': return 0x00000000;\n // http://www.w3.org/TR/css3-color/#svg-color\n case 'aliceblue': return 0xf0f8ffff;\n case 'antiquewhite': return 0xfaebd7ff;\n case 'aqua': return 0x00ffffff;\n case 'aquamarine': return 0x7fffd4ff;\n case 'azure': return 0xf0ffffff;\n case 'beige': return 0xf5f5dcff;\n case 'bisque': return 0xffe4c4ff;\n case 'black': return 0x000000ff;\n case 'blanchedalmond': return 0xffebcdff;\n case 'blue': return 0x0000ffff;\n case 'blueviolet': return 0x8a2be2ff;\n case 'brown': return 0xa52a2aff;\n case 'burlywood': return 0xdeb887ff;\n case 'burntsienna': return 0xea7e5dff;\n case 'cadetblue': return 0x5f9ea0ff;\n case 'chartreuse': return 0x7fff00ff;\n case 'chocolate': return 0xd2691eff;\n case 'coral': return 0xff7f50ff;\n case 'cornflowerblue': return 0x6495edff;\n case 'cornsilk': return 0xfff8dcff;\n case 'crimson': return 0xdc143cff;\n case 'cyan': return 0x00ffffff;\n case 'darkblue': return 0x00008bff;\n case 'darkcyan': return 0x008b8bff;\n case 'darkgoldenrod': return 0xb8860bff;\n case 'darkgray': return 0xa9a9a9ff;\n case 'darkgreen': return 0x006400ff;\n case 'darkgrey': return 0xa9a9a9ff;\n case 'darkkhaki': return 0xbdb76bff;\n case 'darkmagenta': return 0x8b008bff;\n case 'darkolivegreen': return 0x556b2fff;\n case 'darkorange': return 0xff8c00ff;\n case 'darkorchid': return 0x9932ccff;\n case 'darkred': return 0x8b0000ff;\n case 'darksalmon': return 0xe9967aff;\n case 'darkseagreen': return 0x8fbc8fff;\n case 'darkslateblue': return 0x483d8bff;\n case 'darkslategray': return 0x2f4f4fff;\n case 'darkslategrey': return 0x2f4f4fff;\n case 'darkturquoise': return 0x00ced1ff;\n case 'darkviolet': return 0x9400d3ff;\n case 'deeppink': return 0xff1493ff;\n case 'deepskyblue': return 0x00bfffff;\n case 'dimgray': return 0x696969ff;\n case 'dimgrey': return 0x696969ff;\n case 'dodgerblue': return 0x1e90ffff;\n case 'firebrick': return 0xb22222ff;\n case 'floralwhite': return 0xfffaf0ff;\n case 'forestgreen': return 0x228b22ff;\n case 'fuchsia': return 0xff00ffff;\n case 'gainsboro': return 0xdcdcdcff;\n case 'ghostwhite': return 0xf8f8ffff;\n case 'gold': return 0xffd700ff;\n case 'goldenrod': return 0xdaa520ff;\n case 'gray': return 0x808080ff;\n case 'green': return 0x008000ff;\n case 'greenyellow': return 0xadff2fff;\n case 'grey': return 0x808080ff;\n case 'honeydew': return 0xf0fff0ff;\n case 'hotpink': return 0xff69b4ff;\n case 'indianred': return 0xcd5c5cff;\n case 'indigo': return 0x4b0082ff;\n case 'ivory': return 0xfffff0ff;\n case 'khaki': return 0xf0e68cff;\n case 'lavender': return 0xe6e6faff;\n case 'lavenderblush': return 0xfff0f5ff;\n case 'lawngreen': return 0x7cfc00ff;\n case 'lemonchiffon': return 0xfffacdff;\n case 'lightblue': return 0xadd8e6ff;\n case 'lightcoral': return 0xf08080ff;\n case 'lightcyan': return 0xe0ffffff;\n case 'lightgoldenrodyellow': return 0xfafad2ff;\n case 'lightgray': return 0xd3d3d3ff;\n case 'lightgreen': return 0x90ee90ff;\n case 'lightgrey': return 0xd3d3d3ff;\n case 'lightpink': return 0xffb6c1ff;\n case 'lightsalmon': return 0xffa07aff;\n case 'lightseagreen': return 0x20b2aaff;\n case 'lightskyblue': return 0x87cefaff;\n case 'lightslategray': return 0x778899ff;\n case 'lightslategrey': return 0x778899ff;\n case 'lightsteelblue': return 0xb0c4deff;\n case 'lightyellow': return 0xffffe0ff;\n case 'lime': return 0x00ff00ff;\n case 'limegreen': return 0x32cd32ff;\n case 'linen': return 0xfaf0e6ff;\n case 'magenta': return 0xff00ffff;\n case 'maroon': return 0x800000ff;\n case 'mediumaquamarine': return 0x66cdaaff;\n case 'mediumblue': return 0x0000cdff;\n case 'mediumorchid': return 0xba55d3ff;\n case 'mediumpurple': return 0x9370dbff;\n case 'mediumseagreen': return 0x3cb371ff;\n case 'mediumslateblue': return 0x7b68eeff;\n case 'mediumspringgreen': return 0x00fa9aff;\n case 'mediumturquoise': return 0x48d1ccff;\n case 'mediumvioletred': return 0xc71585ff;\n case 'midnightblue': return 0x191970ff;\n case 'mintcream': return 0xf5fffaff;\n case 'mistyrose': return 0xffe4e1ff;\n case 'moccasin': return 0xffe4b5ff;\n case 'navajowhite': return 0xffdeadff;\n case 'navy': return 0x000080ff;\n case 'oldlace': return 0xfdf5e6ff;\n case 'olive': return 0x808000ff;\n case 'olivedrab': return 0x6b8e23ff;\n case 'orange': return 0xffa500ff;\n case 'orangered': return 0xff4500ff;\n case 'orchid': return 0xda70d6ff;\n case 'palegoldenrod': return 0xeee8aaff;\n case 'palegreen': return 0x98fb98ff;\n case 'paleturquoise': return 0xafeeeeff;\n case 'palevioletred': return 0xdb7093ff;\n case 'papayawhip': return 0xffefd5ff;\n case 'peachpuff': return 0xffdab9ff;\n case 'peru': return 0xcd853fff;\n case 'pink': return 0xffc0cbff;\n case 'plum': return 0xdda0ddff;\n case 'powderblue': return 0xb0e0e6ff;\n case 'purple': return 0x800080ff;\n case 'rebeccapurple': return 0x663399ff;\n case 'red': return 0xff0000ff;\n case 'rosybrown': return 0xbc8f8fff;\n case 'royalblue': return 0x4169e1ff;\n case 'saddlebrown': return 0x8b4513ff;\n case 'salmon': return 0xfa8072ff;\n case 'sandybrown': return 0xf4a460ff;\n case 'seagreen': return 0x2e8b57ff;\n case 'seashell': return 0xfff5eeff;\n case 'sienna': return 0xa0522dff;\n case 'silver': return 0xc0c0c0ff;\n case 'skyblue': return 0x87ceebff;\n case 'slateblue': return 0x6a5acdff;\n case 'slategray': return 0x708090ff;\n case 'slategrey': return 0x708090ff;\n case 'snow': return 0xfffafaff;\n case 'springgreen': return 0x00ff7fff;\n case 'steelblue': return 0x4682b4ff;\n case 'tan': return 0xd2b48cff;\n case 'teal': return 0x008080ff;\n case 'thistle': return 0xd8bfd8ff;\n case 'tomato': return 0xff6347ff;\n case 'turquoise': return 0x40e0d0ff;\n case 'violet': return 0xee82eeff;\n case 'wheat': return 0xf5deb3ff;\n case 'white': return 0xffffffff;\n case 'whitesmoke': return 0xf5f5f5ff;\n case 'yellow': return 0xffff00ff;\n case 'yellowgreen': return 0x9acd32ff;\n }\n return null;\n}\n\nmodule.exports = normalizeColor;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/Rect.js\n */\nconst DeprecatedEdgeInsetsPropType = PropTypes.shape({\n bottom: PropTypes.number,\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n});\n\nmodule.exports = DeprecatedEdgeInsetsPropType;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst DeprecatedEdgeInsetsPropType = require('./DeprecatedEdgeInsetsPropType');\nconst DeprecatedImageSourcePropType = require('./DeprecatedImageSourcePropType');\nconst DeprecatedImageStylePropTypes = require('./DeprecatedImageStylePropTypes');\nconst DeprecatedStyleSheetPropType = require('./DeprecatedStyleSheetPropType');\nconst DeprecatedViewPropTypes = require('./DeprecatedViewPropTypes');\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/Image/ImageProps.js\n */\nconst DeprecatedImagePropType = {\n ...DeprecatedViewPropTypes,\n alt: PropTypes.string,\n blurRadius: PropTypes.number,\n capInsets: DeprecatedEdgeInsetsPropType,\n crossOrigin: PropTypes.oneOf(['anonymous', 'use-credentials']),\n defaultSource: DeprecatedImageSourcePropType,\n fadeDuration: PropTypes.number,\n height: PropTypes.number,\n internal_analyticTag: PropTypes.string,\n loadingIndicatorSource: PropTypes.oneOfType([\n PropTypes.shape({\n uri: PropTypes.string,\n }),\n PropTypes.number,\n ]),\n onError: PropTypes.func,\n onLoad: PropTypes.func,\n onLoadEnd: PropTypes.func,\n onLoadStart: PropTypes.func,\n onPartialLoad: PropTypes.func,\n onProgress: PropTypes.func,\n progressiveRenderingEnabled: PropTypes.bool,\n referrerPolicy: PropTypes.oneOf([\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'origin',\n 'origin-when-cross-origin',\n 'same-origin',\n 'strict-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url',\n ]),\n resizeMethod: PropTypes.oneOf(['auto', 'resize', 'scale']),\n resizeMode: PropTypes.oneOf([\n 'cover',\n 'contain',\n 'stretch',\n 'repeat',\n 'center',\n ]),\n source: DeprecatedImageSourcePropType,\n src: PropTypes.string,\n srcSet: PropTypes.string,\n style: DeprecatedStyleSheetPropType(DeprecatedImageStylePropTypes),\n testID: PropTypes.string,\n tintColor: DeprecatedColorPropType,\n width: PropTypes.number,\n};\n\nmodule.exports = DeprecatedImagePropType;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst DeprecatedEdgeInsetsPropType = require('./DeprecatedEdgeInsetsPropType');\nconst DeprecatedStyleSheetPropType = require('./DeprecatedStyleSheetPropType');\nconst {\n AccessibilityActionInfoPropType,\n AccessibilityRolePropType,\n AccessibilityStatePropType,\n AccessibilityValuePropType,\n RolePropType,\n} = require('./DeprecatedViewAccessibility');\nconst DeprecatedViewStylePropTypes = require('./DeprecatedViewStylePropTypes');\nconst PropTypes = require('prop-types');\n\nconst MouseEventPropTypes = {\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n};\n\n// Experimental/Work in Progress Pointer Event Callbacks (not yet ready for use)\nconst PointerEventPropTypes = {\n onPointerEnter: PropTypes.func,\n onPointerEnterCapture: PropTypes.func,\n onPointerLeave: PropTypes.func,\n onPointerLeaveCapture: PropTypes.func,\n onPointerMove: PropTypes.func,\n onPointerMoveCapture: PropTypes.func,\n onPointerCancel: PropTypes.func,\n onPointerCancelCapture: PropTypes.func,\n onPointerDown: PropTypes.func,\n onPointerDownCapture: PropTypes.func,\n onPointerUp: PropTypes.func,\n onPointerUpCapture: PropTypes.func,\n onPointerOver: PropTypes.func,\n onPointerOverCapture: PropTypes.func,\n onPointerOut: PropTypes.func,\n onPointerOutCapture: PropTypes.func,\n};\n\nconst FocusEventPropTypes = {\n onBlur: PropTypes.func,\n onBlurCapture: PropTypes.func,\n onFocus: PropTypes.func,\n onFocusCapture: PropTypes.func,\n};\n\nconst TouchEventPropTypes = {\n onTouchCancel: PropTypes.func,\n onTouchCancelCapture: PropTypes.func,\n onTouchEnd: PropTypes.func,\n onTouchEndCapture: PropTypes.func,\n onTouchMove: PropTypes.func,\n onTouchMoveCapture: PropTypes.func,\n onTouchStart: PropTypes.func,\n onTouchStartCapture: PropTypes.func,\n};\n\nconst GestureResponderEventPropTypes = {\n onMoveShouldSetResponder: PropTypes.func,\n onMoveShouldSetResponderCapture: PropTypes.func,\n onResponderEnd: PropTypes.func,\n onResponderGrant: PropTypes.func,\n onResponderMove: PropTypes.func,\n onResponderReject: PropTypes.func,\n onResponderRelease: PropTypes.func,\n onResponderStart: PropTypes.func,\n onResponderTerminate: PropTypes.func,\n onResponderTerminationRequest: PropTypes.func,\n onStartShouldSetResponder: PropTypes.func,\n onStartShouldSetResponderCapture: PropTypes.func,\n};\n\n/**\n * @see facebook/react-native/Libraries/Components/View/ViewPropTypes.js\n */\nconst DeprecatedViewPropTypes = {\n ...MouseEventPropTypes,\n ...PointerEventPropTypes,\n ...FocusEventPropTypes,\n ...TouchEventPropTypes,\n ...GestureResponderEventPropTypes,\n 'aria-busy': PropTypes.bool,\n 'aria-checked': PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.oneOf(['mixed']),\n ]),\n 'aria-disabled': PropTypes.bool,\n 'aria-expanded': PropTypes.bool,\n 'aria-hidden': PropTypes.bool,\n 'aria-label': PropTypes.string,\n 'aria-labelledby': PropTypes.string,\n 'aria-live': PropTypes.oneOf(['polite', 'assertive', 'off']),\n 'aria-modal': PropTypes.bool,\n 'aria-selected': PropTypes.bool,\n 'aria-valuemax': PropTypes.number,\n 'aria-valuemin': PropTypes.number,\n 'aria-valuenow': PropTypes.number,\n 'aria-valuetext': PropTypes.string,\n accessibilityActions: PropTypes.arrayOf(AccessibilityActionInfoPropType),\n accessibilityElementsHidden: PropTypes.bool,\n accessibilityHint: PropTypes.string,\n accessibilityIgnoresInvertColors: PropTypes.bool,\n accessibilityLabel: PropTypes.node,\n accessibilityLabelledBy: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n accessibilityLanguage: PropTypes.string,\n accessibilityLiveRegion: PropTypes.oneOf(['assertive', 'none', 'polite']),\n accessibilityRole: AccessibilityRolePropType,\n accessibilityState: AccessibilityStatePropType,\n accessibilityValue: AccessibilityValuePropType,\n accessibilityViewIsModal: PropTypes.bool,\n accessible: PropTypes.bool,\n collapsable: PropTypes.bool,\n focusable: PropTypes.bool,\n hitSlop: PropTypes.oneOfType([\n DeprecatedEdgeInsetsPropType,\n PropTypes.number,\n ]),\n importantForAccessibility: PropTypes.oneOf([\n 'auto',\n 'no',\n 'no-hide-descendants',\n 'yes',\n ]),\n nativeBackgroundAndroid: PropTypes.object,\n nativeForegroundAndroid: PropTypes.object,\n nativeID: PropTypes.string,\n needsOffscreenAlphaCompositing: PropTypes.bool,\n onAccessibilityAction: PropTypes.func,\n onAccessibilityEscape: PropTypes.func,\n onAccessibilityTap: PropTypes.func,\n onClick: PropTypes.func,\n onLayout: PropTypes.func,\n onMagicTap: PropTypes.func,\n pointerEvents: PropTypes.oneOf(['auto', 'box-none', 'box-only', 'none']),\n removeClippedSubviews: PropTypes.bool,\n renderToHardwareTextureAndroid: PropTypes.bool,\n role: RolePropType,\n shouldRasterizeIOS: PropTypes.bool,\n style: DeprecatedStyleSheetPropType(DeprecatedViewStylePropTypes),\n tabIndex: PropTypes.oneOf([0, -1]),\n testID: PropTypes.string,\n};\n\nmodule.exports = DeprecatedViewPropTypes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/Components/View/ViewAccessibility.js\n */\nconst DeprecatedViewAccessibility = {\n AccessibilityRolePropType: PropTypes.oneOf([\n 'adjustable',\n 'alert',\n 'button',\n 'checkbox',\n 'combobox',\n 'drawerlayout',\n 'dropdownlist',\n 'grid',\n 'header',\n 'horizontalscrollview',\n 'iconmenu',\n 'image',\n 'imagebutton',\n 'keyboardkey',\n 'link',\n 'list',\n 'menu',\n 'menubar',\n 'menuitem',\n 'none',\n 'pager',\n 'progressbar',\n 'radio',\n 'radiogroup',\n 'scrollbar',\n 'scrollview',\n 'search',\n 'slidingdrawer',\n 'spinbutton',\n 'summary',\n 'switch',\n 'tab',\n 'tabbar',\n 'tablist',\n 'text',\n 'timer',\n 'togglebutton',\n 'toolbar',\n 'viewgroup',\n 'webview',\n ]),\n AccessibilityStatePropType: PropTypes.object,\n AccessibilityActionInfoPropType: PropTypes.object,\n AccessibilityValuePropType: PropTypes.object,\n RolePropType: PropTypes.oneOf([\n 'alert',\n 'alertdialog',\n 'application',\n 'article',\n 'banner',\n 'button',\n 'cell',\n 'checkbox',\n 'columnheader',\n 'combobox',\n 'complementary',\n 'contentinfo',\n 'definition',\n 'dialog',\n 'directory',\n 'document',\n 'feed',\n 'figure',\n 'form',\n 'grid',\n 'group',\n 'heading',\n 'img',\n 'link',\n 'list',\n 'listitem',\n 'log',\n 'main',\n 'marquee',\n 'math',\n 'menu',\n 'menubar',\n 'menuitem',\n 'meter',\n 'navigation',\n 'none',\n 'note',\n 'option',\n 'presentation',\n 'progressbar',\n 'radio',\n 'radiogroup',\n 'region',\n 'row',\n 'rowgroup',\n 'rowheader',\n 'scrollbar',\n 'searchbox',\n 'separator',\n 'slider',\n 'spinbutton',\n 'status',\n 'summary',\n 'switch',\n 'tab',\n 'table',\n 'tablist',\n 'tabpanel',\n 'term',\n 'timer',\n 'toolbar',\n 'tooltip',\n 'tree',\n 'treegrid',\n 'treeitem',\n ]),\n};\n\nmodule.exports = DeprecatedViewAccessibility;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst deprecatedCreateStrictShapeTypeChecker = require('./deprecatedCreateStrictShapeTypeChecker');\n\nfunction DeprecatedStyleSheetPropType(shape) {\n const shapePropType = deprecatedCreateStrictShapeTypeChecker(shape);\n return function(props, propName, componentName, location, ...rest) {\n let newProps = props;\n if (props[propName]) {\n // Just make a dummy prop object with only the flattened style\n newProps = {};\n newProps[propName] = flattenStyle(props[propName]);\n }\n return shapePropType(newProps, propName, componentName, location, ...rest);\n };\n}\n\nfunction flattenStyle(style) {\n if (style === null || typeof style !== 'object') {\n return undefined;\n }\n\n if (!Array.isArray(style)) {\n return style;\n }\n\n const result = {};\n for (let i = 0, styleLength = style.length; i < styleLength; ++i) {\n const computedStyle = flattenStyle(style[i]);\n if (computedStyle) {\n for (const key in computedStyle) {\n result[key] = computedStyle[key];\n }\n }\n }\n return result;\n}\n\nmodule.exports = DeprecatedStyleSheetPropType;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst invariant = require('invariant');\n\nfunction deprecatedCreateStrictShapeTypeChecker(shapeTypes) {\n function checkType(\n isRequired,\n props,\n propName,\n componentName,\n location,\n ...rest\n ) {\n if (!props[propName]) {\n if (isRequired) {\n invariant(\n false,\n `Required object \\`${propName}\\` was not specified in ` +\n `\\`${componentName}\\`.`,\n );\n }\n return;\n }\n const propValue = props[propName];\n const propType = typeof propValue;\n const locationName = location || '(unknown)';\n if (propType !== 'object') {\n invariant(\n false,\n `Invalid ${locationName} \\`${propName}\\` of type \\`${propType}\\` ` +\n `supplied to \\`${componentName}\\`, expected \\`object\\`.`,\n );\n }\n // We need to check all keys in case some are required but missing from\n // props.\n const allKeys = {...props[propName], ...shapeTypes};\n for (const key in allKeys) {\n const checker = shapeTypes[key];\n if (!checker) {\n invariant(\n false,\n `Invalid props.${propName} key \\`${key}\\` supplied to \\`${componentName}\\`.` +\n '\\nBad object: ' +\n JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' +\n JSON.stringify(Object.keys(shapeTypes), null, ' '),\n );\n }\n const error = checker(propValue, key, componentName, location, ...rest);\n if (error) {\n invariant(\n false,\n error.message +\n '\\nBad object: ' +\n JSON.stringify(props[propName], null, ' '),\n );\n }\n }\n }\n function chainedCheckType(props, propName, componentName, location, ...rest) {\n return checkType(false, props, propName, componentName, location, ...rest);\n }\n chainedCheckType.isRequired = checkType.bind(null, true);\n return chainedCheckType;\n}\n\nmodule.exports = deprecatedCreateStrictShapeTypeChecker;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst DeprecatedLayoutPropTypes = require('./DeprecatedLayoutPropTypes');\nconst DeprecatedShadowPropTypesIOS = require('./DeprecatedShadowPropTypesIOS');\nconst DeprecatedTransformPropTypes = require('./DeprecatedTransformPropTypes');\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst DeprecatedViewStylePropTypes = {\n ...DeprecatedLayoutPropTypes,\n ...DeprecatedShadowPropTypesIOS,\n ...DeprecatedTransformPropTypes,\n backfaceVisibility: PropTypes.oneOf(['hidden', 'visible']),\n backgroundColor: DeprecatedColorPropType,\n borderBottomColor: DeprecatedColorPropType,\n borderBottomEndRadius: PropTypes.number,\n borderBottomLeftRadius: PropTypes.number,\n borderBottomRightRadius: PropTypes.number,\n borderBottomStartRadius: PropTypes.number,\n borderBottomWidth: PropTypes.number,\n borderColor: DeprecatedColorPropType,\n borderCurve: PropTypes.oneOf(['circular', 'continuous']),\n borderEndColor: DeprecatedColorPropType,\n borderEndEndRadius: PropTypes.number,\n borderEndStartRadius: PropTypes.number,\n borderLeftColor: DeprecatedColorPropType,\n borderLeftWidth: PropTypes.number,\n borderRadius: PropTypes.number,\n borderRightColor: DeprecatedColorPropType,\n borderRightWidth: PropTypes.number,\n borderStartColor: DeprecatedColorPropType,\n borderStartEndRadius: PropTypes.number,\n borderStartStartRadius: PropTypes.number,\n borderStyle: PropTypes.oneOf(['dashed', 'dotted', 'solid']),\n borderTopColor: DeprecatedColorPropType,\n borderTopEndRadius: PropTypes.number,\n borderTopLeftRadius: PropTypes.number,\n borderTopRightRadius: PropTypes.number,\n borderTopStartRadius: PropTypes.number,\n borderTopWidth: PropTypes.number,\n borderWidth: PropTypes.number,\n elevation: PropTypes.number,\n opacity: PropTypes.number,\n pointerEvents: PropTypes.oneOf(['auto', 'box-none', 'box-only', 'none']),\n};\n\nmodule.exports = DeprecatedViewStylePropTypes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst PropTypes = require('prop-types');\n\nconst DimensionValuePropType = PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n]);\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst DeprecatedLayoutPropTypes = {\n alignContent: PropTypes.oneOf([\n 'center',\n 'flex-end',\n 'flex-start',\n 'space-around',\n 'space-between',\n 'stretch',\n ]),\n alignItems: PropTypes.oneOf([\n 'baseline',\n 'center',\n 'flex-end',\n 'flex-start',\n 'stretch',\n ]),\n alignSelf: PropTypes.oneOf([\n 'auto',\n 'baseline',\n 'center',\n 'flex-end',\n 'flex-start',\n 'stretch',\n ]),\n aspectRatio: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n borderBottomWidth: PropTypes.number,\n borderEndWidth: PropTypes.number,\n borderLeftWidth: PropTypes.number,\n borderRightWidth: PropTypes.number,\n borderStartWidth: PropTypes.number,\n borderTopWidth: PropTypes.number,\n borderWidth: PropTypes.number,\n bottom: DimensionValuePropType,\n columnGap: PropTypes.number,\n direction: PropTypes.oneOf(['inherit', 'ltr', 'rtl']),\n display: PropTypes.oneOf(['flex', 'none']),\n end: DimensionValuePropType,\n flex: PropTypes.number,\n flexBasis: DimensionValuePropType,\n flexDirection: PropTypes.oneOf([\n 'column',\n 'column-reverse',\n 'row',\n 'row-reverse',\n ]),\n flexGrow: PropTypes.number,\n flexShrink: PropTypes.number,\n flexWrap: PropTypes.oneOf(['nowrap', 'wrap', 'wrap-reverse']),\n gap: PropTypes.number,\n height: DimensionValuePropType,\n inset: DimensionValuePropType,\n insetBlock: DimensionValuePropType,\n insetBlockEnd: DimensionValuePropType,\n insetBlockStart: DimensionValuePropType,\n insetInline: DimensionValuePropType,\n insetInlineEnd: DimensionValuePropType,\n insetInlineStart: DimensionValuePropType,\n justifyContent: PropTypes.oneOf([\n 'center',\n 'flex-end',\n 'flex-start',\n 'space-around',\n 'space-between',\n 'space-evenly',\n ]),\n left: DimensionValuePropType,\n margin: DimensionValuePropType,\n marginBlock: DimensionValuePropType,\n marginBlockEnd: DimensionValuePropType,\n marginBlockStart: DimensionValuePropType,\n marginBottom: DimensionValuePropType,\n marginEnd: DimensionValuePropType,\n marginHorizontal: DimensionValuePropType,\n marginInline: DimensionValuePropType,\n marginInlineEnd: DimensionValuePropType,\n marginInlineStart: DimensionValuePropType,\n marginLeft: DimensionValuePropType,\n marginRight: DimensionValuePropType,\n marginStart: DimensionValuePropType,\n marginTop: DimensionValuePropType,\n marginVertical: DimensionValuePropType,\n maxHeight: DimensionValuePropType,\n maxWidth: DimensionValuePropType,\n minHeight: DimensionValuePropType,\n minWidth: DimensionValuePropType,\n overflow: PropTypes.oneOf(['hidden', 'scroll', 'visible']),\n padding: DimensionValuePropType,\n paddingBlock: DimensionValuePropType,\n paddingBlockEnd: DimensionValuePropType,\n paddingBlockStart: DimensionValuePropType,\n paddingBottom: DimensionValuePropType,\n paddingEnd: DimensionValuePropType,\n paddingHorizontal: DimensionValuePropType,\n paddingInline: DimensionValuePropType,\n paddingInlineEnd: DimensionValuePropType,\n paddingInlineStart: DimensionValuePropType,\n paddingLeft: DimensionValuePropType,\n paddingRight: DimensionValuePropType,\n paddingStart: DimensionValuePropType,\n paddingTop: DimensionValuePropType,\n paddingVertical: DimensionValuePropType,\n position: PropTypes.oneOf(['absolute', 'relative']),\n right: DimensionValuePropType,\n rowGap: PropTypes.number,\n start: DimensionValuePropType,\n top: DimensionValuePropType,\n width: DimensionValuePropType,\n zIndex: PropTypes.number,\n};\n\nmodule.exports = DeprecatedLayoutPropTypes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst DeprecatedShadowPropTypesIOS = {\n shadowColor: DeprecatedColorPropType,\n shadowOffset: PropTypes.shape({\n height: PropTypes.number,\n width: PropTypes.number,\n }),\n shadowOpacity: PropTypes.number,\n shadowRadius: PropTypes.number,\n};\n\nmodule.exports = DeprecatedShadowPropTypesIOS;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/private/_TransformStyle.js\n */\nconst DeprecatedTransformPropTypes = {\n transform: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.shape({perspective: PropTypes.number}),\n PropTypes.shape({rotate: PropTypes.string}),\n PropTypes.shape({rotateX: PropTypes.string}),\n PropTypes.shape({rotateY: PropTypes.string}),\n PropTypes.shape({rotateZ: PropTypes.string}),\n PropTypes.shape({scale: PropTypes.number}),\n PropTypes.shape({scaleX: PropTypes.number}),\n PropTypes.shape({scaleY: PropTypes.number}),\n PropTypes.shape({skewX: PropTypes.string}),\n PropTypes.shape({skewY: PropTypes.string}),\n PropTypes.shape({translateX: PropTypes.number}),\n PropTypes.shape({translateY: PropTypes.number}),\n ]),\n ),\n};\n\nmodule.exports = DeprecatedTransformPropTypes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/Image/ImageSource.js\n */\nconst ImageURISourcePropType = PropTypes.shape({\n body: PropTypes.string,\n bundle: PropTypes.string,\n cache: PropTypes.oneOf([\n 'default',\n 'force-cache',\n 'only-if-cached',\n 'reload',\n ]),\n headers: PropTypes.objectOf(PropTypes.string),\n height: PropTypes.number,\n method: PropTypes.string,\n scale: PropTypes.number,\n uri: PropTypes.string,\n width: PropTypes.number,\n});\n\nconst ImageSourcePropType = PropTypes.oneOfType([\n ImageURISourcePropType,\n PropTypes.number,\n PropTypes.arrayOf(ImageURISourcePropType),\n]);\n\nmodule.exports = ImageSourcePropType;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst DeprecatedLayoutPropTypes = require('./DeprecatedLayoutPropTypes');\nconst DeprecatedShadowPropTypesIOS = require('./DeprecatedShadowPropTypesIOS');\nconst DeprecatedTransformPropTypes = require('./DeprecatedTransformPropTypes');\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst DeprecatedImageStylePropTypes = {\n ...DeprecatedLayoutPropTypes,\n ...DeprecatedShadowPropTypesIOS,\n ...DeprecatedTransformPropTypes,\n backfaceVisibility: PropTypes.oneOf(['hidden', 'visible']),\n backgroundColor: DeprecatedColorPropType,\n borderBottomLeftRadius: PropTypes.number,\n borderBottomRightRadius: PropTypes.number,\n borderColor: DeprecatedColorPropType,\n borderRadius: PropTypes.number,\n borderTopLeftRadius: PropTypes.number,\n borderTopRightRadius: PropTypes.number,\n borderWidth: PropTypes.number,\n objectFit: PropTypes.oneOf(['contain', 'cover', 'fill', 'scale-down']),\n opacity: PropTypes.number,\n overflow: PropTypes.oneOf(['hidden', 'visible']),\n overlayColor: PropTypes.string,\n tintColor: DeprecatedColorPropType,\n resizeMode: PropTypes.oneOf([\n 'center',\n 'contain',\n 'cover',\n 'repeat',\n 'stretch',\n ]),\n};\n\nmodule.exports = DeprecatedImageStylePropTypes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst PointPropType = PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n});\n\nmodule.exports = PointPropType;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst DeprecatedTextPropTypes = require('./DeprecatedTextPropTypes');\nconst DeprecatedViewPropTypes = require('./DeprecatedViewPropTypes');\nconst PropTypes = require('prop-types');\n\nconst DataDetectorTypes = [\n 'address',\n 'all',\n 'calendarEvent',\n 'link',\n 'none',\n 'phoneNumber',\n];\n\n/**\n * @see facebook/react-native/Libraries/TextInput/TextInput.js\n */\nconst DeprecatedTextInputPropTypes = {\n ...DeprecatedViewPropTypes,\n allowFontScaling: PropTypes.bool,\n autoCapitalize: PropTypes.oneOf(['none', 'sentences', 'words', 'characters']),\n autoComplete: PropTypes.oneOf([\n 'additional-name',\n 'address-line1',\n 'address-line2',\n 'bday',\n 'bday-day',\n 'bday-month',\n 'bday-year',\n 'birthdate-day',\n 'birthdate-full',\n 'birthdate-month',\n 'birthdate-year',\n 'cc-csc',\n 'cc-exp',\n 'cc-exp-day',\n 'cc-exp-month',\n 'cc-exp-year',\n 'cc-number',\n 'country',\n 'current-password',\n 'email',\n 'family-name',\n 'gender',\n 'given-name',\n 'honorific-prefix',\n 'honorific-suffix',\n 'name',\n 'name-family',\n 'name-given',\n 'name-middle',\n 'name-middle-initial',\n 'name-prefix',\n 'name-suffix',\n 'new-password',\n 'nickname',\n 'off',\n 'one-time-code',\n 'organization',\n 'organization-title',\n 'password',\n 'password-new',\n 'postal-address',\n 'postal-address-country',\n 'postal-address-extended',\n 'postal-address-extended-postal-code',\n 'postal-address-locality',\n 'postal-address-region',\n 'postal-code',\n 'sex',\n 'sms-otp',\n 'street-address',\n 'tel',\n 'tel-country-code',\n 'tel-device',\n 'tel-national',\n 'url',\n 'username',\n 'username-new',\n ]),\n autoCorrect: PropTypes.bool,\n autoFocus: PropTypes.bool,\n blurOnSubmit: PropTypes.bool,\n caretHidden: PropTypes.bool,\n clearButtonMode: PropTypes.oneOf([\n 'always',\n 'never',\n 'unless-editing',\n 'while-editing',\n ]),\n clearTextOnFocus: PropTypes.bool,\n cursorColor: DeprecatedColorPropType,\n contextMenuHidden: PropTypes.bool,\n dataDetectorTypes: PropTypes.oneOfType([\n PropTypes.oneOf(DataDetectorTypes),\n PropTypes.arrayOf(PropTypes.oneOf(DataDetectorTypes)),\n ]),\n defaultValue: PropTypes.string,\n disableFullscreenUI: PropTypes.bool,\n editable: PropTypes.bool,\n enablesReturnKeyAutomatically: PropTypes.bool,\n enterKeyHint: PropTypes.oneOf([\n 'done',\n 'enter',\n 'go',\n 'next',\n 'previous',\n 'search',\n 'send',\n ]),\n inlineImageLeft: PropTypes.string,\n inlineImagePadding: PropTypes.number,\n inputAccessoryViewID: PropTypes.string,\n inputMode: PropTypes.oneOf([\n 'decimal',\n 'email',\n 'none',\n 'numeric',\n 'search',\n 'tel',\n 'text',\n 'url',\n ]),\n keyboardAppearance: PropTypes.oneOf(['default', 'dark', 'light']),\n keyboardType: PropTypes.oneOf([\n 'ascii-capable',\n 'ascii-capable-number-pad',\n 'decimal-pad',\n 'default',\n 'email-address',\n 'name-phone-pad',\n 'number-pad',\n 'numbers-and-punctuation',\n 'numeric',\n 'phone-pad',\n 'twitter',\n 'url',\n 'visible-password',\n 'web-search',\n ]),\n lineBreakStrategyIOS: PropTypes.oneOf([\n 'hangul-word',\n 'none',\n 'push-out',\n 'standard',\n ]),\n maxFontSizeMultiplier: PropTypes.number,\n maxLength: PropTypes.number,\n multiline: PropTypes.bool,\n numberOfLines: PropTypes.number,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onChangeText: PropTypes.func,\n onContentSizeChange: PropTypes.func,\n onEndEditing: PropTypes.func,\n onFocus: PropTypes.func,\n onKeyPress: PropTypes.func,\n onLayout: PropTypes.func,\n onScroll: PropTypes.func,\n onSelectionChange: PropTypes.func,\n onSubmitEditing: PropTypes.func,\n onTextInput: PropTypes.func,\n placeholder: PropTypes.string,\n placeholderTextColor: DeprecatedColorPropType,\n readOnly: PropTypes.bool,\n rejectResponderTermination: PropTypes.bool,\n returnKeyLabel: PropTypes.string,\n returnKeyType: PropTypes.oneOf([\n 'default',\n 'done',\n 'emergency-call',\n 'go',\n 'google',\n 'join',\n 'next',\n 'none',\n 'previous',\n 'route',\n 'search',\n 'send',\n 'yahoo',\n ]),\n rows: PropTypes.number,\n scrollEnabled: PropTypes.bool,\n secureTextEntry: PropTypes.bool,\n selection: PropTypes.shape({\n end: PropTypes.number,\n start: PropTypes.number.isRequired,\n }),\n selectionColor: DeprecatedColorPropType,\n selectTextOnFocus: PropTypes.bool,\n showSoftInputOnFocus: PropTypes.bool,\n spellCheck: PropTypes.bool,\n style: DeprecatedTextPropTypes.style,\n submitBehavior: PropTypes.oneOf(['blurAndSubmit', 'newline', 'submit']),\n textBreakStrategy: PropTypes.oneOf(['balanced', 'highQuality', 'simple']),\n textContentType: PropTypes.oneOf([\n 'addressCity',\n 'addressCityAndState',\n 'addressState',\n 'countryName',\n 'creditCardNumber',\n 'emailAddress',\n 'familyName',\n 'fullStreetAddress',\n 'givenName',\n 'jobTitle',\n 'location',\n 'middleName',\n 'name',\n 'namePrefix',\n 'nameSuffix',\n 'newPassword',\n 'nickname',\n 'none',\n 'oneTimeCode',\n 'organizationName',\n 'password',\n 'postalCode',\n 'streetAddressLine1',\n 'streetAddressLine2',\n 'sublocality',\n 'telephoneNumber',\n 'URL',\n 'username',\n ]),\n underlineColorAndroid: DeprecatedColorPropType,\n value: PropTypes.string,\n};\n\nmodule.exports = DeprecatedTextInputPropTypes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst DeprecatedEdgeInsetsPropType = require('./DeprecatedEdgeInsetsPropType');\nconst DeprecatedStyleSheetPropType = require('./DeprecatedStyleSheetPropType');\nconst DeprecatedTextStylePropTypes = require('./DeprecatedTextStylePropTypes');\nconst {\n AccessibilityActionInfoPropType,\n AccessibilityRolePropType,\n AccessibilityStatePropType,\n AccessibilityValuePropType,\n RolePropType,\n} = require('./DeprecatedViewAccessibility');\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/Text/TextProps.js\n */\nconst DeprecatedTextPropTypes = {\n 'aria-busy': PropTypes.bool,\n 'aria-checked': PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.oneOf(['mixed']),\n ]),\n 'aria-disabled': PropTypes.bool,\n 'aria-expanded': PropTypes.bool,\n 'aria-label': PropTypes.string,\n 'aria-labelledby': PropTypes.string,\n 'aria-selected': PropTypes.bool,\n accessibilityActions: PropTypes.arrayOf(AccessibilityActionInfoPropType),\n accessibilityHint: PropTypes.string,\n accessibilityLabel: PropTypes.string,\n accessibilityLanguage: PropTypes.string,\n accessibilityRole: AccessibilityRolePropType,\n accessibilityState: AccessibilityStatePropType,\n accessible: PropTypes.bool,\n adjustsFontSizeToFit: PropTypes.bool,\n allowFontScaling: PropTypes.bool,\n dataDetectorType: PropTypes.oneOf([\n 'all',\n 'email',\n 'link',\n 'none',\n 'phoneNumber',\n ]),\n disabled: PropTypes.bool,\n dynamicTypeRamp: PropTypes.oneOf([\n 'body',\n 'callout',\n 'caption1',\n 'caption2',\n 'footnote',\n 'headline',\n 'largeTitle',\n 'subheadline',\n 'title1',\n 'title2',\n 'title3',\n ]),\n ellipsizeMode: PropTypes.oneOf(['clip', 'head', 'middle', 'tail']),\n id: PropTypes.string,\n lineBreakStrategyIOS: PropTypes.oneOf([\n 'hangul-word',\n 'none',\n 'push-out',\n 'standard',\n ]),\n maxFontSizeMultiplier: PropTypes.number,\n minimumFontScale: PropTypes.number,\n nativeID: PropTypes.string,\n numberOfLines: PropTypes.number,\n onAccessibilityAction: PropTypes.func,\n onLayout: PropTypes.func,\n onLongPress: PropTypes.func,\n onMoveShouldSetResponder: PropTypes.func,\n onPress: PropTypes.func,\n onPressIn: PropTypes.func,\n onPressOut: PropTypes.func,\n onResponderGrant: PropTypes.func,\n onResponderMove: PropTypes.func,\n onResponderRelease: PropTypes.func,\n onResponderTerminate: PropTypes.func,\n onResponderTerminationRequest: PropTypes.func,\n onStartShouldSetResponder: PropTypes.func,\n onTextLayout: PropTypes.func,\n pressRetentionOffset: DeprecatedEdgeInsetsPropType,\n role: RolePropType,\n selectable: PropTypes.bool,\n selectionColor: DeprecatedColorPropType,\n style: DeprecatedStyleSheetPropType(DeprecatedTextStylePropTypes),\n suppressHighlighting: PropTypes.bool,\n testID: PropTypes.string,\n textBreakStrategy: PropTypes.oneOf(['balanced', 'highQuality', 'simple']),\n};\n\nmodule.exports = DeprecatedTextPropTypes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\n\nconst DeprecatedColorPropType = require('./DeprecatedColorPropType');\nconst DeprecatedViewStylePropTypes = require('./DeprecatedViewStylePropTypes');\nconst PropTypes = require('prop-types');\n\n/**\n * @see facebook/react-native/Libraries/StyleSheet/StyleSheetTypes.js\n */\nconst DeprecatedTextStylePropTypes = {\n ...DeprecatedViewStylePropTypes,\n color: DeprecatedColorPropType,\n fontFamily: PropTypes.string,\n fontSize: PropTypes.number,\n fontStyle: PropTypes.oneOf(['italic', 'normal']),\n fontVariant: PropTypes.oneOfType([\n PropTypes.arrayOf(\n PropTypes.oneOf([\n 'lining-nums',\n 'oldstyle-nums',\n 'proportional-nums',\n 'small-caps',\n 'stylistic-eight',\n 'stylistic-eighteen',\n 'stylistic-eleven',\n 'stylistic-fifteen',\n 'stylistic-five',\n 'stylistic-four',\n 'stylistic-fourteen',\n 'stylistic-nine',\n 'stylistic-nineteen',\n 'stylistic-one',\n 'stylistic-seven',\n 'stylistic-seventeen',\n 'stylistic-six',\n 'stylistic-sixteen',\n 'stylistic-ten',\n 'stylistic-thirteen',\n 'stylistic-three',\n 'stylistic-twelve',\n 'stylistic-twenty',\n 'stylistic-two',\n 'tabular-nums',\n ]),\n ),\n PropTypes.string,\n ]),\n fontWeight: PropTypes.oneOf([\n '100',\n '200',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900',\n 'black',\n 'bold',\n 'condensed',\n 'condensedBold',\n 'heavy',\n 'light',\n 'medium',\n 'normal',\n 'regular',\n 'semibold',\n 'thin',\n 'ultralight',\n 100,\n 200,\n 300,\n 400,\n 500,\n 600,\n 700,\n 800,\n 900,\n ]),\n includeFontPadding: PropTypes.bool,\n letterSpacing: PropTypes.number,\n lineHeight: PropTypes.number,\n textAlign: PropTypes.oneOf(['auto', 'center', 'justify', 'left', 'right']),\n textAlignVertical: PropTypes.oneOf(['auto', 'bottom', 'center', 'top']),\n textDecorationColor: DeprecatedColorPropType,\n textDecorationLine: PropTypes.oneOf([\n 'line-through',\n 'none',\n 'underline line-through',\n 'underline',\n ]),\n textDecorationStyle: PropTypes.oneOf(['dashed', 'dotted', 'double', 'solid']),\n textShadowColor: DeprecatedColorPropType,\n textShadowOffset: PropTypes.shape({\n height: PropTypes.number,\n width: PropTypes.number,\n }),\n textShadowRadius: PropTypes.number,\n textTransform: PropTypes.oneOf([\n 'capitalize',\n 'lowercase',\n 'none',\n 'uppercase',\n ]),\n userSelect: PropTypes.oneOf(['all', 'auto', 'contain', 'none', 'text']),\n verticalAlign: PropTypes.oneOf(['auto', 'bottom', 'middle', 'top']),\n writingDirection: PropTypes.oneOf(['auto', 'ltr', 'rtl']),\n};\n\nmodule.exports = DeprecatedTextStylePropTypes;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {PressEvent} from '../../Types/CoreEventTypes';\nimport typeof TouchableWithoutFeedback from './TouchableWithoutFeedback';\n\nimport View from '../../Components/View/View';\nimport Pressability, {\n type PressabilityConfig,\n} from '../../Pressability/Pressability';\nimport {PressabilityDebugView} from '../../Pressability/PressabilityDebug';\nimport {findHostInstance_DEPRECATED} from '../../ReactNative/RendererProxy';\nimport processColor from '../../StyleSheet/processColor';\nimport Platform from '../../Utilities/Platform';\nimport {Commands} from '../View/ViewNativeComponent';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\ntype Props = $ReadOnly<{|\n ...React.ElementConfig,\n\n /**\n * Determines the type of background drawable that's going to be used to\n * display feedback. It takes an object with `type` property and extra data\n * depending on the `type`. It's recommended to use one of the static\n * methods to generate that dictionary.\n */\n background?: ?(\n | $ReadOnly<{|\n type: 'ThemeAttrAndroid',\n attribute:\n | 'selectableItemBackground'\n | 'selectableItemBackgroundBorderless',\n rippleRadius: ?number,\n |}>\n | $ReadOnly<{|\n type: 'RippleAndroid',\n color: ?number,\n borderless: boolean,\n rippleRadius: ?number,\n |}>\n ),\n\n /**\n * TV preferred focus (see documentation for the View component).\n */\n hasTVPreferredFocus?: ?boolean,\n\n /**\n * TV next focus down (see documentation for the View component).\n */\n nextFocusDown?: ?number,\n\n /**\n * TV next focus forward (see documentation for the View component).\n */\n nextFocusForward?: ?number,\n\n /**\n * TV next focus left (see documentation for the View component).\n */\n nextFocusLeft?: ?number,\n\n /**\n * TV next focus right (see documentation for the View component).\n */\n nextFocusRight?: ?number,\n\n /**\n * TV next focus up (see documentation for the View component).\n */\n nextFocusUp?: ?number,\n\n /**\n * Set to true to add the ripple effect to the foreground of the view, instead\n * of the background. This is useful if one of your child views has a\n * background of its own, or you're e.g. displaying images, and you don't want\n * the ripple to be covered by them.\n *\n * Check TouchableNativeFeedback.canUseNativeForeground() first, as this is\n * only available on Android 6.0 and above. If you try to use this on older\n * versions, this will fallback to background.\n */\n useForeground?: ?boolean,\n|}>;\n\ntype State = $ReadOnly<{|\n pressability: Pressability,\n|}>;\n\nclass TouchableNativeFeedback extends React.Component {\n /**\n * Creates a value for the `background` prop that uses the Android theme's\n * default background for selectable elements.\n */\n static SelectableBackground: (rippleRadius: ?number) => $ReadOnly<{|\n attribute: 'selectableItemBackground',\n type: 'ThemeAttrAndroid',\n rippleRadius: ?number,\n |}> = (rippleRadius: ?number) => ({\n type: 'ThemeAttrAndroid',\n attribute: 'selectableItemBackground',\n rippleRadius,\n });\n\n /**\n * Creates a value for the `background` prop that uses the Android theme's\n * default background for borderless selectable elements. Requires API 21+.\n */\n static SelectableBackgroundBorderless: (rippleRadius: ?number) => $ReadOnly<{|\n attribute: 'selectableItemBackgroundBorderless',\n type: 'ThemeAttrAndroid',\n rippleRadius: ?number,\n |}> = (rippleRadius: ?number) => ({\n type: 'ThemeAttrAndroid',\n attribute: 'selectableItemBackgroundBorderless',\n rippleRadius,\n });\n\n /**\n * Creates a value for the `background` prop that uses the Android ripple with\n * the supplied color. If `borderless` is true, the ripple will render outside\n * of the view bounds. Requires API 21+.\n */\n static Ripple: (\n color: string,\n borderless: boolean,\n rippleRadius: ?number,\n ) => $ReadOnly<{|\n borderless: boolean,\n color: ?number,\n rippleRadius: ?number,\n type: 'RippleAndroid',\n |}> = (color: string, borderless: boolean, rippleRadius: ?number) => {\n const processedColor = processColor(color);\n invariant(\n processedColor == null || typeof processedColor === 'number',\n 'Unexpected color given for Ripple color',\n );\n return {\n type: 'RippleAndroid',\n color: processedColor,\n borderless,\n rippleRadius,\n };\n };\n\n /**\n * Whether `useForeground` is supported.\n */\n static canUseNativeForeground: () => boolean = () =>\n Platform.OS === 'android' && Platform.Version >= 23;\n\n state: State = {\n pressability: new Pressability(this._createPressabilityConfig()),\n };\n\n _createPressabilityConfig(): PressabilityConfig {\n const accessibilityStateDisabled =\n this.props['aria-disabled'] ?? this.props.accessibilityState?.disabled;\n return {\n cancelable: !this.props.rejectResponderTermination,\n disabled:\n this.props.disabled != null\n ? this.props.disabled\n : accessibilityStateDisabled,\n hitSlop: this.props.hitSlop,\n delayLongPress: this.props.delayLongPress,\n delayPressIn: this.props.delayPressIn,\n delayPressOut: this.props.delayPressOut,\n minPressDuration: 0,\n pressRectOffset: this.props.pressRetentionOffset,\n android_disableSound: this.props.touchSoundDisabled,\n onLongPress: this.props.onLongPress,\n onPress: this.props.onPress,\n onPressIn: event => {\n if (Platform.OS === 'android') {\n this._dispatchHotspotUpdate(event);\n this._dispatchPressedStateChange(true);\n }\n if (this.props.onPressIn != null) {\n this.props.onPressIn(event);\n }\n },\n onPressMove: event => {\n if (Platform.OS === 'android') {\n this._dispatchHotspotUpdate(event);\n }\n },\n onPressOut: event => {\n if (Platform.OS === 'android') {\n this._dispatchPressedStateChange(false);\n }\n if (this.props.onPressOut != null) {\n this.props.onPressOut(event);\n }\n },\n };\n }\n\n _dispatchPressedStateChange(pressed: boolean): void {\n if (Platform.OS === 'android') {\n const hostComponentRef = findHostInstance_DEPRECATED(this);\n if (hostComponentRef == null) {\n console.warn(\n 'Touchable: Unable to find HostComponent instance. ' +\n 'Has your Touchable component been unmounted?',\n );\n } else {\n Commands.setPressed(hostComponentRef, pressed);\n }\n }\n }\n\n _dispatchHotspotUpdate(event: PressEvent): void {\n if (Platform.OS === 'android') {\n const {locationX, locationY} = event.nativeEvent;\n const hostComponentRef = findHostInstance_DEPRECATED(this);\n if (hostComponentRef == null) {\n console.warn(\n 'Touchable: Unable to find HostComponent instance. ' +\n 'Has your Touchable component been unmounted?',\n );\n } else {\n Commands.hotspotUpdate(\n hostComponentRef,\n locationX ?? 0,\n locationY ?? 0,\n );\n }\n }\n }\n\n render(): React.Node {\n const element = React.Children.only<$FlowFixMe>(this.props.children);\n const children: Array = [element.props.children];\n if (__DEV__) {\n if (element.type === View) {\n children.push(\n ,\n );\n }\n }\n\n // BACKWARD-COMPATIBILITY: Focus and blur events were never supported before\n // adopting `Pressability`, so preserve that behavior.\n const {onBlur, onFocus, ...eventHandlersWithoutBlurAndFocus} =\n this.state.pressability.getEventHandlers();\n\n let _accessibilityState = {\n busy: this.props['aria-busy'] ?? this.props.accessibilityState?.busy,\n checked:\n this.props['aria-checked'] ?? this.props.accessibilityState?.checked,\n disabled:\n this.props['aria-disabled'] ?? this.props.accessibilityState?.disabled,\n expanded:\n this.props['aria-expanded'] ?? this.props.accessibilityState?.expanded,\n selected:\n this.props['aria-selected'] ?? this.props.accessibilityState?.selected,\n };\n\n _accessibilityState =\n this.props.disabled != null\n ? {\n ..._accessibilityState,\n disabled: this.props.disabled,\n }\n : _accessibilityState;\n\n const accessibilityValue = {\n max: this.props['aria-valuemax'] ?? this.props.accessibilityValue?.max,\n min: this.props['aria-valuemin'] ?? this.props.accessibilityValue?.min,\n now: this.props['aria-valuenow'] ?? this.props.accessibilityValue?.now,\n text: this.props['aria-valuetext'] ?? this.props.accessibilityValue?.text,\n };\n\n const accessibilityLiveRegion =\n this.props['aria-live'] === 'off'\n ? 'none'\n : this.props['aria-live'] ?? this.props.accessibilityLiveRegion;\n\n const accessibilityLabel =\n this.props['aria-label'] ?? this.props.accessibilityLabel;\n return React.cloneElement(\n element,\n {\n ...eventHandlersWithoutBlurAndFocus,\n ...getBackgroundProp(\n this.props.background === undefined\n ? TouchableNativeFeedback.SelectableBackground()\n : this.props.background,\n this.props.useForeground === true,\n ),\n accessible: this.props.accessible !== false,\n accessibilityHint: this.props.accessibilityHint,\n accessibilityLanguage: this.props.accessibilityLanguage,\n accessibilityLabel: accessibilityLabel,\n accessibilityRole: this.props.accessibilityRole,\n accessibilityState: _accessibilityState,\n accessibilityActions: this.props.accessibilityActions,\n onAccessibilityAction: this.props.onAccessibilityAction,\n accessibilityValue: accessibilityValue,\n importantForAccessibility:\n this.props['aria-hidden'] === true\n ? 'no-hide-descendants'\n : this.props.importantForAccessibility,\n accessibilityViewIsModal:\n this.props['aria-modal'] ?? this.props.accessibilityViewIsModal,\n accessibilityLiveRegion: accessibilityLiveRegion,\n accessibilityElementsHidden:\n this.props['aria-hidden'] ?? this.props.accessibilityElementsHidden,\n hasTVPreferredFocus: this.props.hasTVPreferredFocus,\n hitSlop: this.props.hitSlop,\n focusable:\n this.props.focusable !== false &&\n this.props.onPress !== undefined &&\n !this.props.disabled,\n nativeID: this.props.nativeID,\n nextFocusDown: this.props.nextFocusDown,\n nextFocusForward: this.props.nextFocusForward,\n nextFocusLeft: this.props.nextFocusLeft,\n nextFocusRight: this.props.nextFocusRight,\n nextFocusUp: this.props.nextFocusUp,\n onLayout: this.props.onLayout,\n testID: this.props.testID,\n },\n ...children,\n );\n }\n\n componentDidUpdate(prevProps: Props, prevState: State) {\n this.state.pressability.configure(this._createPressabilityConfig());\n }\n\n componentWillUnmount(): void {\n this.state.pressability.reset();\n }\n}\n\nconst getBackgroundProp =\n Platform.OS === 'android'\n ? /* $FlowFixMe[missing-local-annot] The type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n (background, useForeground: boolean) =>\n useForeground && TouchableNativeFeedback.canUseNativeForeground()\n ? {nativeForegroundAndroid: background}\n : {nativeBackgroundAndroid: background}\n : /* $FlowFixMe[missing-local-annot] The type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n (background, useForeground: boolean) => null;\n\nTouchableNativeFeedback.displayName = 'TouchableNativeFeedback';\n\nmodule.exports = TouchableNativeFeedback;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {ViewStyleProp} from '../../StyleSheet/StyleSheet';\nimport typeof TouchableWithoutFeedback from './TouchableWithoutFeedback';\n\nimport Animated from '../../Animated/Animated';\nimport Easing from '../../Animated/Easing';\nimport Pressability, {\n type PressabilityConfig,\n} from '../../Pressability/Pressability';\nimport {PressabilityDebugView} from '../../Pressability/PressabilityDebug';\nimport flattenStyle from '../../StyleSheet/flattenStyle';\nimport Platform from '../../Utilities/Platform';\nimport * as React from 'react';\n\ntype TVProps = $ReadOnly<{|\n hasTVPreferredFocus?: ?boolean,\n nextFocusDown?: ?number,\n nextFocusForward?: ?number,\n nextFocusLeft?: ?number,\n nextFocusRight?: ?number,\n nextFocusUp?: ?number,\n|}>;\n\ntype Props = $ReadOnly<{|\n ...React.ElementConfig,\n ...TVProps,\n\n activeOpacity?: ?number,\n style?: ?ViewStyleProp,\n\n hostRef?: ?React.Ref,\n|}>;\n\ntype State = $ReadOnly<{|\n anim: Animated.Value,\n pressability: Pressability,\n|}>;\n\n/**\n * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, dimming it.\n *\n * Opacity is controlled by wrapping the children in an Animated.View, which is\n * added to the view hierarchy. Be aware that this can affect layout.\n *\n * Example:\n *\n * ```\n * renderButton: function() {\n * return (\n * \n * \n * \n * );\n * },\n * ```\n * ### Example\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react'\n * import {\n * AppRegistry,\n * StyleSheet,\n * TouchableOpacity,\n * Text,\n * View,\n * } from 'react-native'\n *\n * class App extends Component {\n * state = { count: 0 }\n *\n * onPress = () => {\n * this.setState(state => ({\n * count: state.count + 1\n * }));\n * };\n *\n * render() {\n * return (\n * \n * \n * Touch Here \n * \n * \n * \n * { this.state.count !== 0 ? this.state.count: null}\n * \n * \n * \n * )\n * }\n * }\n *\n * const styles = StyleSheet.create({\n * container: {\n * flex: 1,\n * justifyContent: 'center',\n * paddingHorizontal: 10\n * },\n * button: {\n * alignItems: 'center',\n * backgroundColor: '#DDDDDD',\n * padding: 10\n * },\n * countContainer: {\n * alignItems: 'center',\n * padding: 10\n * },\n * countText: {\n * color: '#FF00FF'\n * }\n * })\n *\n * AppRegistry.registerComponent('App', () => App)\n * ```\n *\n */\nclass TouchableOpacity extends React.Component {\n state: State = {\n anim: new Animated.Value(this._getChildStyleOpacityWithDefault()),\n pressability: new Pressability(this._createPressabilityConfig()),\n };\n\n _createPressabilityConfig(): PressabilityConfig {\n return {\n cancelable: !this.props.rejectResponderTermination,\n disabled:\n this.props.disabled ??\n this.props['aria-disabled'] ??\n this.props.accessibilityState?.disabled,\n hitSlop: this.props.hitSlop,\n delayLongPress: this.props.delayLongPress,\n delayPressIn: this.props.delayPressIn,\n delayPressOut: this.props.delayPressOut,\n minPressDuration: 0,\n pressRectOffset: this.props.pressRetentionOffset,\n onBlur: event => {\n if (Platform.isTV) {\n this._opacityInactive(250);\n }\n if (this.props.onBlur != null) {\n this.props.onBlur(event);\n }\n },\n onFocus: event => {\n if (Platform.isTV) {\n this._opacityActive(150);\n }\n if (this.props.onFocus != null) {\n this.props.onFocus(event);\n }\n },\n onLongPress: this.props.onLongPress,\n onPress: this.props.onPress,\n onPressIn: event => {\n this._opacityActive(\n event.dispatchConfig.registrationName === 'onResponderGrant'\n ? 0\n : 150,\n );\n if (this.props.onPressIn != null) {\n this.props.onPressIn(event);\n }\n },\n onPressOut: event => {\n this._opacityInactive(250);\n if (this.props.onPressOut != null) {\n this.props.onPressOut(event);\n }\n },\n };\n }\n\n /**\n * Animate the touchable to a new opacity.\n */\n _setOpacityTo(toValue: number, duration: number): void {\n Animated.timing(this.state.anim, {\n toValue,\n duration,\n easing: Easing.inOut(Easing.quad),\n useNativeDriver: true,\n }).start();\n }\n\n _opacityActive(duration: number): void {\n this._setOpacityTo(this.props.activeOpacity ?? 0.2, duration);\n }\n\n _opacityInactive(duration: number): void {\n this._setOpacityTo(this._getChildStyleOpacityWithDefault(), duration);\n }\n\n _getChildStyleOpacityWithDefault(): number {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n const opacity = flattenStyle(this.props.style)?.opacity;\n return typeof opacity === 'number' ? opacity : 1;\n }\n\n render(): React.Node {\n // BACKWARD-COMPATIBILITY: Focus and blur events were never supported before\n // adopting `Pressability`, so preserve that behavior.\n const {onBlur, onFocus, ...eventHandlersWithoutBlurAndFocus} =\n this.state.pressability.getEventHandlers();\n\n let _accessibilityState = {\n busy: this.props['aria-busy'] ?? this.props.accessibilityState?.busy,\n checked:\n this.props['aria-checked'] ?? this.props.accessibilityState?.checked,\n disabled:\n this.props['aria-disabled'] ?? this.props.accessibilityState?.disabled,\n expanded:\n this.props['aria-expanded'] ?? this.props.accessibilityState?.expanded,\n selected:\n this.props['aria-selected'] ?? this.props.accessibilityState?.selected,\n };\n\n _accessibilityState =\n this.props.disabled != null\n ? {\n ..._accessibilityState,\n disabled: this.props.disabled,\n }\n : _accessibilityState;\n\n const accessibilityValue = {\n max: this.props['aria-valuemax'] ?? this.props.accessibilityValue?.max,\n min: this.props['aria-valuemin'] ?? this.props.accessibilityValue?.min,\n now: this.props['aria-valuenow'] ?? this.props.accessibilityValue?.now,\n text: this.props['aria-valuetext'] ?? this.props.accessibilityValue?.text,\n };\n\n const accessibilityLiveRegion =\n this.props['aria-live'] === 'off'\n ? 'none'\n : this.props['aria-live'] ?? this.props.accessibilityLiveRegion;\n\n const accessibilityLabel =\n this.props['aria-label'] ?? this.props.accessibilityLabel;\n return (\n \n {this.props.children}\n {__DEV__ ? (\n \n ) : null}\n \n );\n }\n\n componentDidUpdate(prevProps: Props, prevState: State) {\n this.state.pressability.configure(this._createPressabilityConfig());\n if (\n this.props.disabled !== prevProps.disabled ||\n // $FlowFixMe[underconstrained-implicit-instantiation]\n flattenStyle(prevProps.style)?.opacity !==\n // $FlowFixMe[underconstrained-implicit-instantiation]\n flattenStyle(this.props.style)?.opacity\n ) {\n this._opacityInactive(250);\n }\n }\n\n componentWillUnmount(): void {\n this.state.pressability.reset();\n }\n}\n\nconst Touchable = (React.forwardRef((props, ref) => (\n \n)): React.AbstractComponent>);\n\nTouchable.displayName = 'TouchableOpacity';\n\nmodule.exports = Touchable;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nexport type {CompositeAnimation, Numeric} from './AnimatedImplementation';\n\nimport typeof AnimatedFlatList from './components/AnimatedFlatList';\nimport typeof AnimatedImage from './components/AnimatedImage';\nimport typeof AnimatedScrollView from './components/AnimatedScrollView';\nimport typeof AnimatedSectionList from './components/AnimatedSectionList';\nimport typeof AnimatedText from './components/AnimatedText';\nimport typeof AnimatedView from './components/AnimatedView';\n\nimport Platform from '../Utilities/Platform';\nimport AnimatedImplementation from './AnimatedImplementation';\nimport AnimatedMock from './AnimatedMock';\n\nconst Animated = ((Platform.isTesting\n ? AnimatedMock\n : AnimatedImplementation): typeof AnimatedImplementation);\n\nexport default {\n get FlatList(): AnimatedFlatList {\n return require('./components/AnimatedFlatList').default;\n },\n get Image(): AnimatedImage {\n return require('./components/AnimatedImage').default;\n },\n get ScrollView(): AnimatedScrollView {\n return require('./components/AnimatedScrollView').default;\n },\n get SectionList(): AnimatedSectionList {\n return require('./components/AnimatedSectionList').default;\n },\n get Text(): AnimatedText {\n return require('./components/AnimatedText').default;\n },\n get View(): AnimatedView {\n return require('./components/AnimatedView').default;\n },\n ...Animated,\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {EventConfig, Mapping} from './AnimatedEvent';\nimport type {\n AnimationConfig,\n EndCallback,\n EndResult,\n} from './animations/Animation';\nimport type {DecayAnimationConfig} from './animations/DecayAnimation';\nimport type {SpringAnimationConfig} from './animations/SpringAnimation';\nimport type {TimingAnimationConfig} from './animations/TimingAnimation';\n\nimport {AnimatedEvent, attachNativeEvent} from './AnimatedEvent';\nimport DecayAnimation from './animations/DecayAnimation';\nimport SpringAnimation from './animations/SpringAnimation';\nimport TimingAnimation from './animations/TimingAnimation';\nimport createAnimatedComponent from './createAnimatedComponent';\nimport AnimatedAddition from './nodes/AnimatedAddition';\nimport AnimatedColor from './nodes/AnimatedColor';\nimport AnimatedDiffClamp from './nodes/AnimatedDiffClamp';\nimport AnimatedDivision from './nodes/AnimatedDivision';\nimport AnimatedInterpolation from './nodes/AnimatedInterpolation';\nimport AnimatedModulo from './nodes/AnimatedModulo';\nimport AnimatedMultiplication from './nodes/AnimatedMultiplication';\nimport AnimatedNode from './nodes/AnimatedNode';\nimport AnimatedSubtraction from './nodes/AnimatedSubtraction';\nimport AnimatedTracking from './nodes/AnimatedTracking';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\n\nexport type CompositeAnimation = {\n start: (callback?: ?EndCallback) => void,\n stop: () => void,\n reset: () => void,\n _startNativeLoop: (iterations?: number) => void,\n _isUsingNativeDriver: () => boolean,\n ...\n};\n\nconst add = function (\n a: AnimatedNode | number,\n b: AnimatedNode | number,\n): AnimatedAddition {\n return new AnimatedAddition(a, b);\n};\n\nconst subtract = function (\n a: AnimatedNode | number,\n b: AnimatedNode | number,\n): AnimatedSubtraction {\n return new AnimatedSubtraction(a, b);\n};\n\nconst divide = function (\n a: AnimatedNode | number,\n b: AnimatedNode | number,\n): AnimatedDivision {\n return new AnimatedDivision(a, b);\n};\n\nconst multiply = function (\n a: AnimatedNode | number,\n b: AnimatedNode | number,\n): AnimatedMultiplication {\n return new AnimatedMultiplication(a, b);\n};\n\nconst modulo = function (a: AnimatedNode, modulus: number): AnimatedModulo {\n return new AnimatedModulo(a, modulus);\n};\n\nconst diffClamp = function (\n a: AnimatedNode,\n min: number,\n max: number,\n): AnimatedDiffClamp {\n return new AnimatedDiffClamp(a, min, max);\n};\n\nconst _combineCallbacks = function (\n callback: ?EndCallback,\n config: $ReadOnly<{...AnimationConfig, ...}>,\n) {\n if (callback && config.onComplete) {\n return (...args: Array) => {\n config.onComplete && config.onComplete(...args);\n callback && callback(...args);\n };\n } else {\n return callback || config.onComplete;\n }\n};\n\nconst maybeVectorAnim = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: Object,\n anim: (value: AnimatedValue, config: Object) => CompositeAnimation,\n): ?CompositeAnimation {\n if (value instanceof AnimatedValueXY) {\n const configX = {...config};\n const configY = {...config};\n for (const key in config) {\n const {x, y} = config[key];\n if (x !== undefined && y !== undefined) {\n configX[key] = x;\n configY[key] = y;\n }\n }\n const aX = anim((value: AnimatedValueXY).x, configX);\n const aY = anim((value: AnimatedValueXY).y, configY);\n // We use `stopTogether: false` here because otherwise tracking will break\n // because the second animation will get stopped before it can update.\n return parallel([aX, aY], {stopTogether: false});\n } else if (value instanceof AnimatedColor) {\n const configR = {...config};\n const configG = {...config};\n const configB = {...config};\n const configA = {...config};\n for (const key in config) {\n const {r, g, b, a} = config[key];\n if (\n r !== undefined &&\n g !== undefined &&\n b !== undefined &&\n a !== undefined\n ) {\n configR[key] = r;\n configG[key] = g;\n configB[key] = b;\n configA[key] = a;\n }\n }\n const aR = anim((value: AnimatedColor).r, configR);\n const aG = anim((value: AnimatedColor).g, configG);\n const aB = anim((value: AnimatedColor).b, configB);\n const aA = anim((value: AnimatedColor).a, configA);\n // We use `stopTogether: false` here because otherwise tracking will break\n // because the second animation will get stopped before it can update.\n return parallel([aR, aG, aB, aA], {stopTogether: false});\n }\n return null;\n};\n\nconst spring = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: SpringAnimationConfig,\n): CompositeAnimation {\n const start = function (\n animatedValue: AnimatedValue | AnimatedValueXY | AnimatedColor,\n configuration: SpringAnimationConfig,\n callback?: ?EndCallback,\n ): void {\n callback = _combineCallbacks(callback, configuration);\n const singleValue: any = animatedValue;\n const singleConfig: any = configuration;\n singleValue.stopTracking();\n if (configuration.toValue instanceof AnimatedNode) {\n singleValue.track(\n new AnimatedTracking(\n singleValue,\n configuration.toValue,\n SpringAnimation,\n singleConfig,\n callback,\n ),\n );\n } else {\n singleValue.animate(new SpringAnimation(singleConfig), callback);\n }\n };\n return (\n maybeVectorAnim(value, config, spring) || {\n start: function (callback?: ?EndCallback): void {\n start(value, config, callback);\n },\n\n stop: function (): void {\n value.stopAnimation();\n },\n\n reset: function (): void {\n value.resetAnimation();\n },\n\n _startNativeLoop: function (iterations?: number): void {\n const singleConfig = {...config, iterations};\n start(value, singleConfig);\n },\n\n _isUsingNativeDriver: function (): boolean {\n return config.useNativeDriver || false;\n },\n }\n );\n};\n\nconst timing = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: TimingAnimationConfig,\n): CompositeAnimation {\n const start = function (\n animatedValue: AnimatedValue | AnimatedValueXY | AnimatedColor,\n configuration: TimingAnimationConfig,\n callback?: ?EndCallback,\n ): void {\n callback = _combineCallbacks(callback, configuration);\n const singleValue: any = animatedValue;\n const singleConfig: any = configuration;\n singleValue.stopTracking();\n if (configuration.toValue instanceof AnimatedNode) {\n singleValue.track(\n new AnimatedTracking(\n singleValue,\n configuration.toValue,\n TimingAnimation,\n singleConfig,\n callback,\n ),\n );\n } else {\n singleValue.animate(new TimingAnimation(singleConfig), callback);\n }\n };\n\n return (\n maybeVectorAnim(value, config, timing) || {\n start: function (callback?: ?EndCallback): void {\n start(value, config, callback);\n },\n\n stop: function (): void {\n value.stopAnimation();\n },\n\n reset: function (): void {\n value.resetAnimation();\n },\n\n _startNativeLoop: function (iterations?: number): void {\n const singleConfig = {...config, iterations};\n start(value, singleConfig);\n },\n\n _isUsingNativeDriver: function (): boolean {\n return config.useNativeDriver || false;\n },\n }\n );\n};\n\nconst decay = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: DecayAnimationConfig,\n): CompositeAnimation {\n const start = function (\n animatedValue: AnimatedValue | AnimatedValueXY | AnimatedColor,\n configuration: DecayAnimationConfig,\n callback?: ?EndCallback,\n ): void {\n callback = _combineCallbacks(callback, configuration);\n const singleValue: any = animatedValue;\n const singleConfig: any = configuration;\n singleValue.stopTracking();\n singleValue.animate(new DecayAnimation(singleConfig), callback);\n };\n\n return (\n maybeVectorAnim(value, config, decay) || {\n start: function (callback?: ?EndCallback): void {\n start(value, config, callback);\n },\n\n stop: function (): void {\n value.stopAnimation();\n },\n\n reset: function (): void {\n value.resetAnimation();\n },\n\n _startNativeLoop: function (iterations?: number): void {\n const singleConfig = {...config, iterations};\n start(value, singleConfig);\n },\n\n _isUsingNativeDriver: function (): boolean {\n return config.useNativeDriver || false;\n },\n }\n );\n};\n\nconst sequence = function (\n animations: Array,\n): CompositeAnimation {\n let current = 0;\n return {\n start: function (callback?: ?EndCallback) {\n const onComplete = function (result: EndResult) {\n if (!result.finished) {\n callback && callback(result);\n return;\n }\n\n current++;\n\n if (current === animations.length) {\n callback && callback(result);\n return;\n }\n\n animations[current].start(onComplete);\n };\n\n if (animations.length === 0) {\n callback && callback({finished: true});\n } else {\n animations[current].start(onComplete);\n }\n },\n\n stop: function () {\n if (current < animations.length) {\n animations[current].stop();\n }\n },\n\n reset: function () {\n animations.forEach((animation, idx) => {\n if (idx <= current) {\n animation.reset();\n }\n });\n current = 0;\n },\n\n _startNativeLoop: function () {\n throw new Error(\n 'Loops run using the native driver cannot contain Animated.sequence animations',\n );\n },\n\n _isUsingNativeDriver: function (): boolean {\n return false;\n },\n };\n};\n\ntype ParallelConfig = {\n // If one is stopped, stop all. default: true\n stopTogether?: boolean,\n ...\n};\nconst parallel = function (\n animations: Array,\n config?: ?ParallelConfig,\n): CompositeAnimation {\n let doneCount = 0;\n // Make sure we only call stop() at most once for each animation\n const hasEnded: {[number]: boolean} = {};\n const stopTogether = !(config && config.stopTogether === false);\n\n const result = {\n start: function (callback?: ?EndCallback) {\n if (doneCount === animations.length) {\n callback && callback({finished: true});\n return;\n }\n\n animations.forEach((animation, idx) => {\n const cb = function (endResult: EndResult | {finished: boolean}) {\n hasEnded[idx] = true;\n doneCount++;\n if (doneCount === animations.length) {\n doneCount = 0;\n callback && callback(endResult);\n return;\n }\n\n if (!endResult.finished && stopTogether) {\n result.stop();\n }\n };\n\n if (!animation) {\n cb({finished: true});\n } else {\n animation.start(cb);\n }\n });\n },\n\n stop: function (): void {\n animations.forEach((animation, idx) => {\n !hasEnded[idx] && animation.stop();\n hasEnded[idx] = true;\n });\n },\n\n reset: function (): void {\n animations.forEach((animation, idx) => {\n animation.reset();\n hasEnded[idx] = false;\n doneCount = 0;\n });\n },\n\n _startNativeLoop: function (): empty {\n throw new Error(\n 'Loops run using the native driver cannot contain Animated.parallel animations',\n );\n },\n\n _isUsingNativeDriver: function (): boolean {\n return false;\n },\n };\n\n return result;\n};\n\nconst delay = function (time: number): CompositeAnimation {\n // Would be nice to make a specialized implementation\n return timing(new AnimatedValue(0), {\n toValue: 0,\n delay: time,\n duration: 0,\n useNativeDriver: false,\n });\n};\n\nconst stagger = function (\n time: number,\n animations: Array,\n): CompositeAnimation {\n return parallel(\n animations.map((animation, i) => {\n return sequence([delay(time * i), animation]);\n }),\n );\n};\n\ntype LoopAnimationConfig = {\n iterations: number,\n resetBeforeIteration?: boolean,\n ...\n};\n\nconst loop = function (\n animation: CompositeAnimation,\n // $FlowFixMe[prop-missing]\n {iterations = -1, resetBeforeIteration = true}: LoopAnimationConfig = {},\n): CompositeAnimation {\n let isFinished = false;\n let iterationsSoFar = 0;\n return {\n start: function (callback?: ?EndCallback) {\n const restart = function (result: EndResult = {finished: true}): void {\n if (\n isFinished ||\n iterationsSoFar === iterations ||\n result.finished === false\n ) {\n callback && callback(result);\n } else {\n iterationsSoFar++;\n resetBeforeIteration && animation.reset();\n animation.start(restart);\n }\n };\n if (!animation || iterations === 0) {\n callback && callback({finished: true});\n } else {\n if (animation._isUsingNativeDriver()) {\n animation._startNativeLoop(iterations);\n } else {\n restart(); // Start looping recursively on the js thread\n }\n }\n },\n\n stop: function (): void {\n isFinished = true;\n animation.stop();\n },\n\n reset: function (): void {\n iterationsSoFar = 0;\n isFinished = false;\n animation.reset();\n },\n\n _startNativeLoop: function () {\n throw new Error(\n 'Loops run using the native driver cannot contain Animated.loop animations',\n );\n },\n\n _isUsingNativeDriver: function (): boolean {\n return animation._isUsingNativeDriver();\n },\n };\n};\n\nfunction forkEvent(\n event: ?AnimatedEvent | ?Function,\n listener: Function,\n): AnimatedEvent | Function {\n if (!event) {\n return listener;\n } else if (event instanceof AnimatedEvent) {\n event.__addListener(listener);\n return event;\n } else {\n return (...args) => {\n typeof event === 'function' && event(...args);\n listener(...args);\n };\n }\n}\n\nfunction unforkEvent(\n event: ?AnimatedEvent | ?Function,\n listener: Function,\n): void {\n if (event && event instanceof AnimatedEvent) {\n event.__removeListener(listener);\n }\n}\n\nconst event = function (\n argMapping: $ReadOnlyArray,\n config: EventConfig,\n): any {\n const animatedEvent = new AnimatedEvent(argMapping, config);\n if (animatedEvent.__isNative) {\n return animatedEvent;\n } else {\n return animatedEvent.__getHandler();\n }\n};\n\n// All types of animated nodes that represent scalar numbers and can be interpolated (etc)\ntype AnimatedNumeric =\n | AnimatedAddition\n | AnimatedDiffClamp\n | AnimatedDivision\n | AnimatedInterpolation\n | AnimatedModulo\n | AnimatedMultiplication\n | AnimatedSubtraction\n | AnimatedValue;\n\nexport type {AnimatedNumeric as Numeric};\n\n/**\n * The `Animated` library is designed to make animations fluid, powerful, and\n * easy to build and maintain. `Animated` focuses on declarative relationships\n * between inputs and outputs, with configurable transforms in between, and\n * simple `start`/`stop` methods to control time-based animation execution.\n * If additional transforms are added, be sure to include them in\n * AnimatedMock.js as well.\n *\n * See https://reactnative.dev/docs/animated\n */\nexport default {\n /**\n * Standard value class for driving animations. Typically initialized with\n * `new Animated.Value(0);`\n *\n * See https://reactnative.dev/docs/animated#value\n */\n Value: AnimatedValue,\n /**\n * 2D value class for driving 2D animations, such as pan gestures.\n *\n * See https://reactnative.dev/docs/animatedvaluexy\n */\n ValueXY: AnimatedValueXY,\n /**\n * Value class for driving color animations.\n */\n Color: AnimatedColor,\n /**\n * Exported to use the Interpolation type in flow.\n *\n * See https://reactnative.dev/docs/animated#interpolation\n */\n Interpolation: AnimatedInterpolation,\n /**\n * Exported for ease of type checking. All animated values derive from this\n * class.\n *\n * See https://reactnative.dev/docs/animated#node\n */\n Node: AnimatedNode,\n\n /**\n * Animates a value from an initial velocity to zero based on a decay\n * coefficient.\n *\n * See https://reactnative.dev/docs/animated#decay\n */\n decay,\n /**\n * Animates a value along a timed easing curve. The Easing module has tons of\n * predefined curves, or you can use your own function.\n *\n * See https://reactnative.dev/docs/animated#timing\n */\n timing,\n /**\n * Animates a value according to an analytical spring model based on\n * damped harmonic oscillation.\n *\n * See https://reactnative.dev/docs/animated#spring\n */\n spring,\n\n /**\n * Creates a new Animated value composed from two Animated values added\n * together.\n *\n * See https://reactnative.dev/docs/animated#add\n */\n add,\n\n /**\n * Creates a new Animated value composed by subtracting the second Animated\n * value from the first Animated value.\n *\n * See https://reactnative.dev/docs/animated#subtract\n */\n subtract,\n\n /**\n * Creates a new Animated value composed by dividing the first Animated value\n * by the second Animated value.\n *\n * See https://reactnative.dev/docs/animated#divide\n */\n divide,\n\n /**\n * Creates a new Animated value composed from two Animated values multiplied\n * together.\n *\n * See https://reactnative.dev/docs/animated#multiply\n */\n multiply,\n\n /**\n * Creates a new Animated value that is the (non-negative) modulo of the\n * provided Animated value.\n *\n * See https://reactnative.dev/docs/animated#modulo\n */\n modulo,\n\n /**\n * Create a new Animated value that is limited between 2 values. It uses the\n * difference between the last value so even if the value is far from the\n * bounds it will start changing when the value starts getting closer again.\n *\n * See https://reactnative.dev/docs/animated#diffclamp\n */\n diffClamp,\n\n /**\n * Starts an animation after the given delay.\n *\n * See https://reactnative.dev/docs/animated#delay\n */\n delay,\n /**\n * Starts an array of animations in order, waiting for each to complete\n * before starting the next. If the current running animation is stopped, no\n * following animations will be started.\n *\n * See https://reactnative.dev/docs/animated#sequence\n */\n sequence,\n /**\n * Starts an array of animations all at the same time. By default, if one\n * of the animations is stopped, they will all be stopped. You can override\n * this with the `stopTogether` flag.\n *\n * See https://reactnative.dev/docs/animated#parallel\n */\n parallel,\n /**\n * Array of animations may run in parallel (overlap), but are started in\n * sequence with successive delays. Nice for doing trailing effects.\n *\n * See https://reactnative.dev/docs/animated#stagger\n */\n stagger,\n /**\n * Loops a given animation continuously, so that each time it reaches the\n * end, it resets and begins again from the start.\n *\n * See https://reactnative.dev/docs/animated#loop\n */\n loop,\n\n /**\n * Takes an array of mappings and extracts values from each arg accordingly,\n * then calls `setValue` on the mapped outputs.\n *\n * See https://reactnative.dev/docs/animated#event\n */\n event,\n\n /**\n * Make any React component Animatable. Used to create `Animated.View`, etc.\n *\n * See https://reactnative.dev/docs/animated#createanimatedcomponent\n */\n createAnimatedComponent,\n\n /**\n * Imperative API to attach an animated value to an event on a view. Prefer\n * using `Animated.event` with `useNativeDrive: true` if possible.\n *\n * See https://reactnative.dev/docs/animated#attachnativeevent\n */\n attachNativeEvent,\n\n /**\n * Advanced imperative API for snooping on animated events that are passed in\n * through props. Use values directly where possible.\n *\n * See https://reactnative.dev/docs/animated#forkevent\n */\n forkEvent,\n unforkEvent,\n\n /**\n * Expose Event class, so it can be used as a type for type checkers.\n */\n Event: AnimatedEvent,\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type AnimatedValue from '../nodes/AnimatedValue';\nimport type {AnimationConfig, EndCallback} from './Animation';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport Animation from './Animation';\n\nexport type DecayAnimationConfig = {\n ...AnimationConfig,\n velocity:\n | number\n | {\n x: number,\n y: number,\n ...\n },\n deceleration?: number,\n};\n\nexport type DecayAnimationConfigSingle = {\n ...AnimationConfig,\n velocity: number,\n deceleration?: number,\n};\n\nexport default class DecayAnimation extends Animation {\n _startTime: number;\n _lastValue: number;\n _fromValue: number;\n _deceleration: number;\n _velocity: number;\n _onUpdate: (value: number) => void;\n _animationFrame: any;\n _useNativeDriver: boolean;\n _platformConfig: ?PlatformConfig;\n\n constructor(config: DecayAnimationConfigSingle) {\n super();\n this._deceleration = config.deceleration ?? 0.998;\n this._velocity = config.velocity;\n this._useNativeDriver = NativeAnimatedHelper.shouldUseNativeDriver(config);\n this._platformConfig = config.platformConfig;\n this.__isInteraction = config.isInteraction ?? !this._useNativeDriver;\n this.__iterations = config.iterations ?? 1;\n }\n\n __getNativeAnimationConfig(): {|\n deceleration: number,\n iterations: number,\n platformConfig: ?PlatformConfig,\n type: $TEMPORARY$string<'decay'>,\n velocity: number,\n |} {\n return {\n type: 'decay',\n deceleration: this._deceleration,\n velocity: this._velocity,\n iterations: this.__iterations,\n platformConfig: this._platformConfig,\n };\n }\n\n start(\n fromValue: number,\n onUpdate: (value: number) => void,\n onEnd: ?EndCallback,\n previousAnimation: ?Animation,\n animatedValue: AnimatedValue,\n ): void {\n this.__active = true;\n this._lastValue = fromValue;\n this._fromValue = fromValue;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n this._startTime = Date.now();\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n }\n\n onUpdate(): void {\n const now = Date.now();\n\n const value =\n this._fromValue +\n (this._velocity / (1 - this._deceleration)) *\n (1 - Math.exp(-(1 - this._deceleration) * (now - this._startTime)));\n\n this._onUpdate(value);\n\n if (Math.abs(this._lastValue - value) < 0.1) {\n this.__debouncedOnEnd({finished: true});\n return;\n }\n\n this._lastValue = value;\n if (this.__active) {\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n }\n\n stop(): void {\n super.stop();\n this.__active = false;\n global.cancelAnimationFrame(this._animationFrame);\n this.__debouncedOnEnd({finished: false});\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {EventSubscription} from '../vendor/emitter/EventEmitter';\nimport type {EventConfig} from './AnimatedEvent';\nimport type {AnimationConfig, EndCallback} from './animations/Animation';\nimport type {\n AnimatedNodeConfig,\n AnimatingNodeConfig,\n EventMapping,\n} from './NativeAnimatedModule';\nimport type {InterpolationConfigType} from './nodes/AnimatedInterpolation';\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter';\nimport ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';\nimport Platform from '../Utilities/Platform';\nimport NativeAnimatedNonTurboModule from './NativeAnimatedModule';\nimport NativeAnimatedTurboModule from './NativeAnimatedTurboModule';\nimport invariant from 'invariant';\n\n// TODO T69437152 @petetheheat - Delete this fork when Fabric ships to 100%.\nconst NativeAnimatedModule =\n Platform.OS === 'ios' && global.RN$Bridgeless === true\n ? NativeAnimatedTurboModule\n : NativeAnimatedNonTurboModule;\n\nlet __nativeAnimatedNodeTagCount = 1; /* used for animated nodes */\nlet __nativeAnimationIdCount = 1; /* used for started animations */\n\nlet nativeEventEmitter;\n\nlet waitingForQueuedOperations = new Set();\nlet queueOperations = false;\nlet queue: Array<() => void> = [];\n// $FlowFixMe\nlet singleOpQueue: Array = [];\n\nconst useSingleOpBatching =\n Platform.OS === 'android' &&\n !!NativeAnimatedModule?.queueAndExecuteBatchedOperations &&\n ReactNativeFeatureFlags.animatedShouldUseSingleOp();\nlet flushQueueTimeout = null;\n\nconst eventListenerGetValueCallbacks: {\n [$FlowFixMe | number]: ((value: number) => void) | void,\n} = {};\nconst eventListenerAnimationFinishedCallbacks: {\n [$FlowFixMe | number]: EndCallback | void,\n} = {};\nlet globalEventEmitterGetValueListener: ?EventSubscription = null;\nlet globalEventEmitterAnimationFinishedListener: ?EventSubscription = null;\n\nconst nativeOps: ?typeof NativeAnimatedModule = useSingleOpBatching\n ? ((function () {\n const apis = [\n 'createAnimatedNode', // 1\n 'updateAnimatedNodeConfig', // 2\n 'getValue', // 3\n 'startListeningToAnimatedNodeValue', // 4\n 'stopListeningToAnimatedNodeValue', // 5\n 'connectAnimatedNodes', // 6\n 'disconnectAnimatedNodes', // 7\n 'startAnimatingNode', // 8\n 'stopAnimation', // 9\n 'setAnimatedNodeValue', // 10\n 'setAnimatedNodeOffset', // 11\n 'flattenAnimatedNodeOffset', // 12\n 'extractAnimatedNodeOffset', // 13\n 'connectAnimatedNodeToView', // 14\n 'disconnectAnimatedNodeFromView', // 15\n 'restoreDefaultValues', // 16\n 'dropAnimatedNode', // 17\n 'addAnimatedEventToView', // 18\n 'removeAnimatedEventFromView', // 19\n 'addListener', // 20\n 'removeListener', // 21\n ];\n return apis.reduce<{[string]: number}>((acc, functionName, i) => {\n // These indices need to be kept in sync with the indices in native (see NativeAnimatedModule in Java, or the equivalent for any other native platform).\n // $FlowFixMe[prop-missing]\n acc[functionName] = i + 1;\n return acc;\n }, {});\n })(): $FlowFixMe)\n : NativeAnimatedModule;\n\n/**\n * Wrappers around NativeAnimatedModule to provide flow and autocomplete support for\n * the native module methods, and automatic queue management on Android\n */\nconst API = {\n getValue: function (\n tag: number,\n saveValueCallback: (value: number) => void,\n ): void {\n invariant(nativeOps, 'Native animated module is not available');\n if (useSingleOpBatching) {\n if (saveValueCallback) {\n eventListenerGetValueCallbacks[tag] = saveValueCallback;\n }\n // $FlowFixMe\n API.queueOperation(nativeOps.getValue, tag);\n } else {\n API.queueOperation(nativeOps.getValue, tag, saveValueCallback);\n }\n },\n setWaitingForIdentifier: function (id: string): void {\n waitingForQueuedOperations.add(id);\n queueOperations = true;\n if (\n ReactNativeFeatureFlags.animatedShouldDebounceQueueFlush() &&\n flushQueueTimeout\n ) {\n clearTimeout(flushQueueTimeout);\n }\n },\n unsetWaitingForIdentifier: function (id: string): void {\n waitingForQueuedOperations.delete(id);\n\n if (waitingForQueuedOperations.size === 0) {\n queueOperations = false;\n API.disableQueue();\n }\n },\n disableQueue: function (): void {\n invariant(nativeOps, 'Native animated module is not available');\n\n if (ReactNativeFeatureFlags.animatedShouldDebounceQueueFlush()) {\n const prevTimeout = flushQueueTimeout;\n clearImmediate(prevTimeout);\n flushQueueTimeout = setImmediate(API.flushQueue);\n } else {\n API.flushQueue();\n }\n },\n flushQueue: function (): void {\n // TODO: (T136971132)\n invariant(\n NativeAnimatedModule || process.env.NODE_ENV === 'test',\n 'Native animated module is not available',\n );\n flushQueueTimeout = null;\n\n // Early returns before calling any APIs\n if (useSingleOpBatching && singleOpQueue.length === 0) {\n return;\n }\n if (!useSingleOpBatching && queue.length === 0) {\n return;\n }\n\n if (useSingleOpBatching) {\n // Set up event listener for callbacks if it's not set up\n if (\n !globalEventEmitterGetValueListener ||\n !globalEventEmitterAnimationFinishedListener\n ) {\n setupGlobalEventEmitterListeners();\n }\n // Single op batching doesn't use callback functions, instead we\n // use RCTDeviceEventEmitter. This reduces overhead of sending lots of\n // JSI functions across to native code; but also, TM infrastructure currently\n // does not support packing a function into native arrays.\n NativeAnimatedModule?.queueAndExecuteBatchedOperations?.(singleOpQueue);\n singleOpQueue.length = 0;\n } else {\n Platform.OS === 'android' &&\n NativeAnimatedModule?.startOperationBatch?.();\n\n for (let q = 0, l = queue.length; q < l; q++) {\n queue[q]();\n }\n queue.length = 0;\n Platform.OS === 'android' &&\n NativeAnimatedModule?.finishOperationBatch?.();\n }\n },\n queueOperation: , Fn: (...Args) => void>(\n fn: Fn,\n ...args: Args\n ): void => {\n if (useSingleOpBatching) {\n // Get the command ID from the queued function, and push that ID and any arguments needed to execute the operation\n // $FlowFixMe: surprise, fn is actually a number\n singleOpQueue.push(fn, ...args);\n return;\n }\n\n // If queueing is explicitly on, *or* the queue has not yet\n // been flushed, use the queue. This is to prevent operations\n // from being executed out of order.\n if (queueOperations || queue.length !== 0) {\n queue.push(() => fn(...args));\n } else {\n fn(...args);\n }\n },\n createAnimatedNode: function (tag: number, config: AnimatedNodeConfig): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.createAnimatedNode, tag, config);\n },\n updateAnimatedNodeConfig: function (\n tag: number,\n config: AnimatedNodeConfig,\n ): void {\n invariant(nativeOps, 'Native animated module is not available');\n if (nativeOps.updateAnimatedNodeConfig) {\n API.queueOperation(nativeOps.updateAnimatedNodeConfig, tag, config);\n }\n },\n startListeningToAnimatedNodeValue: function (tag: number) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.startListeningToAnimatedNodeValue, tag);\n },\n stopListeningToAnimatedNodeValue: function (tag: number) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.stopListeningToAnimatedNodeValue, tag);\n },\n connectAnimatedNodes: function (parentTag: number, childTag: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.connectAnimatedNodes, parentTag, childTag);\n },\n disconnectAnimatedNodes: function (\n parentTag: number,\n childTag: number,\n ): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.disconnectAnimatedNodes, parentTag, childTag);\n },\n startAnimatingNode: function (\n animationId: number,\n nodeTag: number,\n config: AnimatingNodeConfig,\n endCallback: EndCallback,\n ): void {\n invariant(nativeOps, 'Native animated module is not available');\n if (useSingleOpBatching) {\n if (endCallback) {\n eventListenerAnimationFinishedCallbacks[animationId] = endCallback;\n }\n // $FlowFixMe\n API.queueOperation(\n // $FlowFixMe[incompatible-call]\n nativeOps.startAnimatingNode,\n animationId,\n nodeTag,\n config,\n );\n } else {\n API.queueOperation(\n nativeOps.startAnimatingNode,\n animationId,\n nodeTag,\n config,\n endCallback,\n );\n }\n },\n stopAnimation: function (animationId: number) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.stopAnimation, animationId);\n },\n setAnimatedNodeValue: function (nodeTag: number, value: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.setAnimatedNodeValue, nodeTag, value);\n },\n setAnimatedNodeOffset: function (nodeTag: number, offset: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.setAnimatedNodeOffset, nodeTag, offset);\n },\n flattenAnimatedNodeOffset: function (nodeTag: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.flattenAnimatedNodeOffset, nodeTag);\n },\n extractAnimatedNodeOffset: function (nodeTag: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.extractAnimatedNodeOffset, nodeTag);\n },\n connectAnimatedNodeToView: function (nodeTag: number, viewTag: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.connectAnimatedNodeToView, nodeTag, viewTag);\n },\n disconnectAnimatedNodeFromView: function (\n nodeTag: number,\n viewTag: number,\n ): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(\n nativeOps.disconnectAnimatedNodeFromView,\n nodeTag,\n viewTag,\n );\n },\n restoreDefaultValues: function (nodeTag: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n // Backwards compat with older native runtimes, can be removed later.\n if (nativeOps.restoreDefaultValues != null) {\n API.queueOperation(nativeOps.restoreDefaultValues, nodeTag);\n }\n },\n dropAnimatedNode: function (tag: number): void {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(nativeOps.dropAnimatedNode, tag);\n },\n addAnimatedEventToView: function (\n viewTag: number,\n eventName: string,\n eventMapping: EventMapping,\n ) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(\n nativeOps.addAnimatedEventToView,\n viewTag,\n eventName,\n eventMapping,\n );\n },\n removeAnimatedEventFromView(\n viewTag: number,\n eventName: string,\n animatedNodeTag: number,\n ) {\n invariant(nativeOps, 'Native animated module is not available');\n API.queueOperation(\n nativeOps.removeAnimatedEventFromView,\n viewTag,\n eventName,\n animatedNodeTag,\n );\n },\n};\n\nfunction setupGlobalEventEmitterListeners() {\n globalEventEmitterGetValueListener = RCTDeviceEventEmitter.addListener(\n 'onNativeAnimatedModuleGetValue',\n function (params) {\n const {tag} = params;\n const callback = eventListenerGetValueCallbacks[tag];\n if (!callback) {\n return;\n }\n callback(params.value);\n delete eventListenerGetValueCallbacks[tag];\n },\n );\n globalEventEmitterAnimationFinishedListener =\n RCTDeviceEventEmitter.addListener(\n 'onNativeAnimatedModuleAnimationFinished',\n function (params) {\n const {animationId} = params;\n const callback = eventListenerAnimationFinishedCallbacks[animationId];\n if (!callback) {\n return;\n }\n callback(params);\n delete eventListenerAnimationFinishedCallbacks[animationId];\n },\n );\n}\n\n/**\n * Styles allowed by the native animated implementation.\n *\n * In general native animated implementation should support any numeric or color property that\n * doesn't need to be updated through the shadow view hierarchy (all non-layout properties).\n */\nconst SUPPORTED_COLOR_STYLES = {\n backgroundColor: true,\n borderBottomColor: true,\n borderColor: true,\n borderEndColor: true,\n borderLeftColor: true,\n borderRightColor: true,\n borderStartColor: true,\n borderTopColor: true,\n color: true,\n tintColor: true,\n};\n\nconst SUPPORTED_STYLES = {\n ...SUPPORTED_COLOR_STYLES,\n borderBottomEndRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderBottomStartRadius: true,\n borderEndEndRadius: true,\n borderEndStartRadius: true,\n borderRadius: true,\n borderTopEndRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderTopStartRadius: true,\n borderStartEndRadius: true,\n borderStartStartRadius: true,\n elevation: true,\n opacity: true,\n transform: true,\n zIndex: true,\n /* ios styles */\n shadowOpacity: true,\n shadowRadius: true,\n /* legacy android transform properties */\n scaleX: true,\n scaleY: true,\n translateX: true,\n translateY: true,\n};\n\nconst SUPPORTED_TRANSFORMS = {\n translateX: true,\n translateY: true,\n scale: true,\n scaleX: true,\n scaleY: true,\n rotate: true,\n rotateX: true,\n rotateY: true,\n rotateZ: true,\n perspective: true,\n};\n\nconst SUPPORTED_INTERPOLATION_PARAMS = {\n inputRange: true,\n outputRange: true,\n extrapolate: true,\n extrapolateRight: true,\n extrapolateLeft: true,\n};\n\nfunction addWhitelistedStyleProp(prop: string): void {\n // $FlowFixMe[prop-missing]\n SUPPORTED_STYLES[prop] = true;\n}\n\nfunction addWhitelistedTransformProp(prop: string): void {\n // $FlowFixMe[prop-missing]\n SUPPORTED_TRANSFORMS[prop] = true;\n}\n\nfunction addWhitelistedInterpolationParam(param: string): void {\n // $FlowFixMe[prop-missing]\n SUPPORTED_INTERPOLATION_PARAMS[param] = true;\n}\n\nfunction isSupportedColorStyleProp(prop: string): boolean {\n return SUPPORTED_COLOR_STYLES.hasOwnProperty(prop);\n}\n\nfunction isSupportedStyleProp(prop: string): boolean {\n return SUPPORTED_STYLES.hasOwnProperty(prop);\n}\n\nfunction isSupportedTransformProp(prop: string): boolean {\n return SUPPORTED_TRANSFORMS.hasOwnProperty(prop);\n}\n\nfunction isSupportedInterpolationParam(param: string): boolean {\n return SUPPORTED_INTERPOLATION_PARAMS.hasOwnProperty(param);\n}\n\nfunction validateTransform(\n configs: Array<\n | {\n type: 'animated',\n property: string,\n nodeTag: ?number,\n ...\n }\n | {\n type: 'static',\n property: string,\n value: number | string,\n ...\n },\n >,\n): void {\n configs.forEach(config => {\n if (!isSupportedTransformProp(config.property)) {\n throw new Error(\n `Property '${config.property}' is not supported by native animated module`,\n );\n }\n });\n}\n\nfunction validateStyles(styles: {[key: string]: ?number, ...}): void {\n for (const key in styles) {\n if (!isSupportedStyleProp(key)) {\n throw new Error(\n `Style property '${key}' is not supported by native animated module`,\n );\n }\n }\n}\n\nfunction validateInterpolation(\n config: InterpolationConfigType,\n): void {\n for (const key in config) {\n if (!isSupportedInterpolationParam(key)) {\n throw new Error(\n `Interpolation property '${key}' is not supported by native animated module`,\n );\n }\n }\n}\n\nfunction generateNewNodeTag(): number {\n return __nativeAnimatedNodeTagCount++;\n}\n\nfunction generateNewAnimationId(): number {\n return __nativeAnimationIdCount++;\n}\n\nfunction assertNativeAnimatedModule(): void {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n}\n\nlet _warnedMissingNativeAnimated = false;\n\nfunction shouldUseNativeDriver(\n config: $ReadOnly<{...AnimationConfig, ...}> | EventConfig,\n): boolean {\n if (config.useNativeDriver == null) {\n console.warn(\n 'Animated: `useNativeDriver` was not specified. This is a required ' +\n 'option and must be explicitly set to `true` or `false`',\n );\n }\n\n if (config.useNativeDriver === true && !NativeAnimatedModule) {\n if (process.env.NODE_ENV !== 'test') {\n if (!_warnedMissingNativeAnimated) {\n console.warn(\n 'Animated: `useNativeDriver` is not supported because the native ' +\n 'animated module is missing. Falling back to JS-based animation. To ' +\n 'resolve this, add `RCTAnimation` module to this app, or remove ' +\n '`useNativeDriver`. ' +\n 'Make sure to run `bundle exec pod install` first. Read more about autolinking: https://github.com/react-native-community/cli/blob/master/docs/autolinking.md',\n );\n _warnedMissingNativeAnimated = true;\n }\n }\n return false;\n }\n\n return config.useNativeDriver || false;\n}\n\nfunction transformDataType(value: number | string): number | string {\n // Change the string type to number type so we can reuse the same logic in\n // iOS and Android platform\n if (typeof value !== 'string') {\n return value;\n }\n if (/deg$/.test(value)) {\n const degrees = parseFloat(value) || 0;\n const radians = (degrees * Math.PI) / 180.0;\n return radians;\n } else {\n return value;\n }\n}\n\nexport default {\n API,\n isSupportedColorStyleProp,\n isSupportedStyleProp,\n isSupportedTransformProp,\n isSupportedInterpolationParam,\n addWhitelistedStyleProp,\n addWhitelistedTransformProp,\n addWhitelistedInterpolationParam,\n validateStyles,\n validateTransform,\n validateInterpolation,\n generateNewNodeTag,\n generateNewAnimationId,\n assertNativeAnimatedModule,\n shouldUseNativeDriver,\n transformDataType,\n // $FlowExpectedError[unsafe-getters-setters] - unsafe getter lint suppression\n // $FlowExpectedError[missing-type-arg] - unsafe getter lint suppression\n get nativeEventEmitter(): NativeEventEmitter {\n if (!nativeEventEmitter) {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n nativeEventEmitter = new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeAnimatedModule,\n );\n }\n return nativeEventEmitter;\n },\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\ntype EndResult = {finished: boolean, ...};\ntype EndCallback = (result: EndResult) => void;\ntype SaveValueCallback = (value: number) => void;\n\nexport type EventMapping = {|\n nativeEventPath: Array,\n animatedValueTag: ?number,\n|};\n\n// The config has different keys depending on the type of the Node\n// TODO(T54896888): Make these types strict\nexport type AnimatedNodeConfig = Object;\nexport type AnimatingNodeConfig = Object;\n\nexport interface Spec extends TurboModule {\n +startOperationBatch: () => void;\n +finishOperationBatch: () => void;\n +createAnimatedNode: (tag: number, config: AnimatedNodeConfig) => void;\n +updateAnimatedNodeConfig?: (tag: number, config: AnimatedNodeConfig) => void;\n +getValue: (tag: number, saveValueCallback: SaveValueCallback) => void;\n +startListeningToAnimatedNodeValue: (tag: number) => void;\n +stopListeningToAnimatedNodeValue: (tag: number) => void;\n +connectAnimatedNodes: (parentTag: number, childTag: number) => void;\n +disconnectAnimatedNodes: (parentTag: number, childTag: number) => void;\n +startAnimatingNode: (\n animationId: number,\n nodeTag: number,\n config: AnimatingNodeConfig,\n endCallback: EndCallback,\n ) => void;\n +stopAnimation: (animationId: number) => void;\n +setAnimatedNodeValue: (nodeTag: number, value: number) => void;\n +setAnimatedNodeOffset: (nodeTag: number, offset: number) => void;\n +flattenAnimatedNodeOffset: (nodeTag: number) => void;\n +extractAnimatedNodeOffset: (nodeTag: number) => void;\n +connectAnimatedNodeToView: (nodeTag: number, viewTag: number) => void;\n +disconnectAnimatedNodeFromView: (nodeTag: number, viewTag: number) => void;\n +restoreDefaultValues: (nodeTag: number) => void;\n +dropAnimatedNode: (tag: number) => void;\n +addAnimatedEventToView: (\n viewTag: number,\n eventName: string,\n eventMapping: EventMapping,\n ) => void;\n +removeAnimatedEventFromView: (\n viewTag: number,\n eventName: string,\n animatedNodeTag: number,\n ) => void;\n\n // Events\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n\n // All of the above in a batched mode\n +queueAndExecuteBatchedOperations?: (operationsAndArgs: Array) => void;\n}\n\nexport default (TurboModuleRegistry.get('NativeAnimatedModule'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\ntype EndResult = {finished: boolean, ...};\ntype EndCallback = (result: EndResult) => void;\ntype SaveValueCallback = (value: number) => void;\n\nexport type EventMapping = {|\n nativeEventPath: Array,\n animatedValueTag: ?number,\n|};\n\n// The config has different keys depending on the type of the Node\n// TODO(T54896888): Make these types strict\nexport type AnimatedNodeConfig = Object;\nexport type AnimatingNodeConfig = Object;\n\nexport interface Spec extends TurboModule {\n +startOperationBatch: () => void;\n +finishOperationBatch: () => void;\n +createAnimatedNode: (tag: number, config: AnimatedNodeConfig) => void;\n +updateAnimatedNodeConfig?: (tag: number, config: AnimatedNodeConfig) => void;\n +getValue: (tag: number, saveValueCallback: SaveValueCallback) => void;\n +startListeningToAnimatedNodeValue: (tag: number) => void;\n +stopListeningToAnimatedNodeValue: (tag: number) => void;\n +connectAnimatedNodes: (parentTag: number, childTag: number) => void;\n +disconnectAnimatedNodes: (parentTag: number, childTag: number) => void;\n +startAnimatingNode: (\n animationId: number,\n nodeTag: number,\n config: AnimatingNodeConfig,\n endCallback: EndCallback,\n ) => void;\n +stopAnimation: (animationId: number) => void;\n +setAnimatedNodeValue: (nodeTag: number, value: number) => void;\n +setAnimatedNodeOffset: (nodeTag: number, offset: number) => void;\n +flattenAnimatedNodeOffset: (nodeTag: number) => void;\n +extractAnimatedNodeOffset: (nodeTag: number) => void;\n +connectAnimatedNodeToView: (nodeTag: number, viewTag: number) => void;\n +disconnectAnimatedNodeFromView: (nodeTag: number, viewTag: number) => void;\n +restoreDefaultValues: (nodeTag: number) => void;\n +dropAnimatedNode: (tag: number) => void;\n +addAnimatedEventToView: (\n viewTag: number,\n eventName: string,\n eventMapping: EventMapping,\n ) => void;\n +removeAnimatedEventFromView: (\n viewTag: number,\n eventName: string,\n animatedNodeTag: number,\n ) => void;\n\n // Events\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n\n // All of the above in a batched mode\n +queueAndExecuteBatchedOperations?: (operationsAndArgs: Array) => void;\n}\n\nexport default (TurboModuleRegistry.get(\n 'NativeAnimatedTurboModule',\n): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type AnimatedValue from '../nodes/AnimatedValue';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\n\nexport type EndResult = {finished: boolean, ...};\nexport type EndCallback = (result: EndResult) => void;\n\nexport type AnimationConfig = {\n isInteraction?: boolean,\n useNativeDriver: boolean,\n platformConfig?: PlatformConfig,\n onComplete?: ?EndCallback,\n iterations?: number,\n};\n\nlet startNativeAnimationNextId = 1;\n\n// Important note: start() and stop() will only be called at most once.\n// Once an animation has been stopped or finished its course, it will\n// not be reused.\nexport default class Animation {\n __active: boolean;\n __isInteraction: boolean;\n __nativeId: number;\n __onEnd: ?EndCallback;\n __iterations: number;\n start(\n fromValue: number,\n onUpdate: (value: number) => void,\n onEnd: ?EndCallback,\n previousAnimation: ?Animation,\n animatedValue: AnimatedValue,\n ): void {}\n stop(): void {\n if (this.__nativeId) {\n NativeAnimatedHelper.API.stopAnimation(this.__nativeId);\n }\n }\n __getNativeAnimationConfig(): any {\n // Subclasses that have corresponding animation implementation done in native\n // should override this method\n throw new Error('This animation type cannot be offloaded to native');\n }\n // Helper function for subclasses to make sure onEnd is only called once.\n __debouncedOnEnd(result: EndResult): void {\n const onEnd = this.__onEnd;\n this.__onEnd = null;\n onEnd && onEnd(result);\n }\n __startNativeAnimation(animatedValue: AnimatedValue): void {\n const startNativeAnimationWaitId = `${startNativeAnimationNextId}:startAnimation`;\n startNativeAnimationNextId += 1;\n NativeAnimatedHelper.API.setWaitingForIdentifier(\n startNativeAnimationWaitId,\n );\n try {\n const config = this.__getNativeAnimationConfig();\n animatedValue.__makeNative(config.platformConfig);\n this.__nativeId = NativeAnimatedHelper.generateNewAnimationId();\n NativeAnimatedHelper.API.startAnimatingNode(\n this.__nativeId,\n animatedValue.__getNativeTag(),\n config,\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.__debouncedOnEnd.bind(this),\n );\n } catch (e) {\n throw e;\n } finally {\n NativeAnimatedHelper.API.unsetWaitingForIdentifier(\n startNativeAnimationWaitId,\n );\n }\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type AnimatedInterpolation from '../nodes/AnimatedInterpolation';\nimport type AnimatedValue from '../nodes/AnimatedValue';\nimport type AnimatedValueXY from '../nodes/AnimatedValueXY';\nimport type {AnimationConfig, EndCallback} from './Animation';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedColor from '../nodes/AnimatedColor';\nimport * as SpringConfig from '../SpringConfig';\nimport Animation from './Animation';\nimport invariant from 'invariant';\n\nexport type SpringAnimationConfig = {\n ...AnimationConfig,\n toValue:\n | number\n | AnimatedValue\n | {\n x: number,\n y: number,\n ...\n }\n | AnimatedValueXY\n | {\n r: number,\n g: number,\n b: number,\n a: number,\n ...\n }\n | AnimatedColor\n | AnimatedInterpolation,\n overshootClamping?: boolean,\n restDisplacementThreshold?: number,\n restSpeedThreshold?: number,\n velocity?:\n | number\n | {\n x: number,\n y: number,\n ...\n },\n bounciness?: number,\n speed?: number,\n tension?: number,\n friction?: number,\n stiffness?: number,\n damping?: number,\n mass?: number,\n delay?: number,\n};\n\nexport type SpringAnimationConfigSingle = {\n ...AnimationConfig,\n toValue: number,\n overshootClamping?: boolean,\n restDisplacementThreshold?: number,\n restSpeedThreshold?: number,\n velocity?: number,\n bounciness?: number,\n speed?: number,\n tension?: number,\n friction?: number,\n stiffness?: number,\n damping?: number,\n mass?: number,\n delay?: number,\n};\n\nexport default class SpringAnimation extends Animation {\n _overshootClamping: boolean;\n _restDisplacementThreshold: number;\n _restSpeedThreshold: number;\n _lastVelocity: number;\n _startPosition: number;\n _lastPosition: number;\n _fromValue: number;\n _toValue: number;\n _stiffness: number;\n _damping: number;\n _mass: number;\n _initialVelocity: number;\n _delay: number;\n _timeout: any;\n _startTime: number;\n _lastTime: number;\n _frameTime: number;\n _onUpdate: (value: number) => void;\n _animationFrame: any;\n _useNativeDriver: boolean;\n _platformConfig: ?PlatformConfig;\n\n constructor(config: SpringAnimationConfigSingle) {\n super();\n\n this._overshootClamping = config.overshootClamping ?? false;\n this._restDisplacementThreshold = config.restDisplacementThreshold ?? 0.001;\n this._restSpeedThreshold = config.restSpeedThreshold ?? 0.001;\n this._initialVelocity = config.velocity ?? 0;\n this._lastVelocity = config.velocity ?? 0;\n this._toValue = config.toValue;\n this._delay = config.delay ?? 0;\n this._useNativeDriver = NativeAnimatedHelper.shouldUseNativeDriver(config);\n this._platformConfig = config.platformConfig;\n this.__isInteraction = config.isInteraction ?? !this._useNativeDriver;\n this.__iterations = config.iterations ?? 1;\n\n if (\n config.stiffness !== undefined ||\n config.damping !== undefined ||\n config.mass !== undefined\n ) {\n invariant(\n config.bounciness === undefined &&\n config.speed === undefined &&\n config.tension === undefined &&\n config.friction === undefined,\n 'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one',\n );\n this._stiffness = config.stiffness ?? 100;\n this._damping = config.damping ?? 10;\n this._mass = config.mass ?? 1;\n } else if (config.bounciness !== undefined || config.speed !== undefined) {\n // Convert the origami bounciness/speed values to stiffness/damping\n // We assume mass is 1.\n invariant(\n config.tension === undefined &&\n config.friction === undefined &&\n config.stiffness === undefined &&\n config.damping === undefined &&\n config.mass === undefined,\n 'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one',\n );\n const springConfig = SpringConfig.fromBouncinessAndSpeed(\n config.bounciness ?? 8,\n config.speed ?? 12,\n );\n this._stiffness = springConfig.stiffness;\n this._damping = springConfig.damping;\n this._mass = 1;\n } else {\n // Convert the origami tension/friction values to stiffness/damping\n // We assume mass is 1.\n const springConfig = SpringConfig.fromOrigamiTensionAndFriction(\n config.tension ?? 40,\n config.friction ?? 7,\n );\n this._stiffness = springConfig.stiffness;\n this._damping = springConfig.damping;\n this._mass = 1;\n }\n\n invariant(this._stiffness > 0, 'Stiffness value must be greater than 0');\n invariant(this._damping > 0, 'Damping value must be greater than 0');\n invariant(this._mass > 0, 'Mass value must be greater than 0');\n }\n\n __getNativeAnimationConfig(): {|\n damping: number,\n initialVelocity: number,\n iterations: number,\n mass: number,\n platformConfig: ?PlatformConfig,\n overshootClamping: boolean,\n restDisplacementThreshold: number,\n restSpeedThreshold: number,\n stiffness: number,\n toValue: any,\n type: $TEMPORARY$string<'spring'>,\n |} {\n return {\n type: 'spring',\n overshootClamping: this._overshootClamping,\n restDisplacementThreshold: this._restDisplacementThreshold,\n restSpeedThreshold: this._restSpeedThreshold,\n stiffness: this._stiffness,\n damping: this._damping,\n mass: this._mass,\n initialVelocity: this._initialVelocity ?? this._lastVelocity,\n toValue: this._toValue,\n iterations: this.__iterations,\n platformConfig: this._platformConfig,\n };\n }\n\n start(\n fromValue: number,\n onUpdate: (value: number) => void,\n onEnd: ?EndCallback,\n previousAnimation: ?Animation,\n animatedValue: AnimatedValue,\n ): void {\n this.__active = true;\n this._startPosition = fromValue;\n this._lastPosition = this._startPosition;\n\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n this._lastTime = Date.now();\n this._frameTime = 0.0;\n\n if (previousAnimation instanceof SpringAnimation) {\n const internalState = previousAnimation.getInternalState();\n this._lastPosition = internalState.lastPosition;\n this._lastVelocity = internalState.lastVelocity;\n // Set the initial velocity to the last velocity\n this._initialVelocity = this._lastVelocity;\n this._lastTime = internalState.lastTime;\n }\n\n const start = () => {\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n this.onUpdate();\n }\n };\n\n // If this._delay is more than 0, we start after the timeout.\n if (this._delay) {\n this._timeout = setTimeout(start, this._delay);\n } else {\n start();\n }\n }\n\n getInternalState(): Object {\n return {\n lastPosition: this._lastPosition,\n lastVelocity: this._lastVelocity,\n lastTime: this._lastTime,\n };\n }\n\n /**\n * This spring model is based off of a damped harmonic oscillator\n * (https://en.wikipedia.org/wiki/Harmonic_oscillator#Damped_harmonic_oscillator).\n *\n * We use the closed form of the second order differential equation:\n *\n * x'' + (2΢⍡_0)x' + ⍡^2x = 0\n *\n * where\n * ⍡_0 = √(k / m) (undamped angular frequency of the oscillator),\n * ΞΆ = c / 2√mk (damping ratio),\n * c = damping constant\n * k = stiffness\n * m = mass\n *\n * The derivation of the closed form is described in detail here:\n * http://planetmath.org/sites/default/files/texpdf/39745.pdf\n *\n * This algorithm happens to match the algorithm used by CASpringAnimation,\n * a QuartzCore (iOS) API that creates spring animations.\n */\n onUpdate(): void {\n // If for some reason we lost a lot of frames (e.g. process large payload or\n // stopped in the debugger), we only advance by 4 frames worth of\n // computation and will continue on the next frame. It's better to have it\n // running at faster speed than jumping to the end.\n const MAX_STEPS = 64;\n let now = Date.now();\n if (now > this._lastTime + MAX_STEPS) {\n now = this._lastTime + MAX_STEPS;\n }\n\n const deltaTime = (now - this._lastTime) / 1000;\n this._frameTime += deltaTime;\n\n const c: number = this._damping;\n const m: number = this._mass;\n const k: number = this._stiffness;\n const v0: number = -this._initialVelocity;\n\n const zeta = c / (2 * Math.sqrt(k * m)); // damping ratio\n const omega0 = Math.sqrt(k / m); // undamped angular frequency of the oscillator (rad/ms)\n const omega1 = omega0 * Math.sqrt(1.0 - zeta * zeta); // exponential decay\n const x0 = this._toValue - this._startPosition; // calculate the oscillation from x0 = 1 to x = 0\n\n let position = 0.0;\n let velocity = 0.0;\n const t = this._frameTime;\n if (zeta < 1) {\n // Under damped\n const envelope = Math.exp(-zeta * omega0 * t);\n position =\n this._toValue -\n envelope *\n (((v0 + zeta * omega0 * x0) / omega1) * Math.sin(omega1 * t) +\n x0 * Math.cos(omega1 * t));\n // This looks crazy -- it's actually just the derivative of the\n // oscillation function\n velocity =\n zeta *\n omega0 *\n envelope *\n ((Math.sin(omega1 * t) * (v0 + zeta * omega0 * x0)) / omega1 +\n x0 * Math.cos(omega1 * t)) -\n envelope *\n (Math.cos(omega1 * t) * (v0 + zeta * omega0 * x0) -\n omega1 * x0 * Math.sin(omega1 * t));\n } else {\n // Critically damped\n const envelope = Math.exp(-omega0 * t);\n position = this._toValue - envelope * (x0 + (v0 + omega0 * x0) * t);\n velocity =\n envelope * (v0 * (t * omega0 - 1) + t * x0 * (omega0 * omega0));\n }\n\n this._lastTime = now;\n this._lastPosition = position;\n this._lastVelocity = velocity;\n\n this._onUpdate(position);\n if (!this.__active) {\n // a listener might have stopped us in _onUpdate\n return;\n }\n\n // Conditions for stopping the spring animation\n let isOvershooting = false;\n if (this._overshootClamping && this._stiffness !== 0) {\n if (this._startPosition < this._toValue) {\n isOvershooting = position > this._toValue;\n } else {\n isOvershooting = position < this._toValue;\n }\n }\n const isVelocity = Math.abs(velocity) <= this._restSpeedThreshold;\n let isDisplacement = true;\n if (this._stiffness !== 0) {\n isDisplacement =\n Math.abs(this._toValue - position) <= this._restDisplacementThreshold;\n }\n\n if (isOvershooting || (isVelocity && isDisplacement)) {\n if (this._stiffness !== 0) {\n // Ensure that we end up with a round value\n this._lastPosition = this._toValue;\n this._lastVelocity = 0;\n this._onUpdate(this._toValue);\n }\n\n this.__debouncedOnEnd({finished: true});\n return;\n }\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n\n stop(): void {\n super.stop();\n this.__active = false;\n clearTimeout(this._timeout);\n global.cancelAnimationFrame(this._animationFrame);\n this.__debouncedOnEnd({finished: false});\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {NativeColorValue} from '../../StyleSheet/PlatformColorValueTypes';\nimport type {ProcessedColorValue} from '../../StyleSheet/processColor';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport normalizeColor from '../../StyleSheet/normalizeColor';\nimport {processColorObject} from '../../StyleSheet/PlatformColorValueTypes';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedValue, {flushValue} from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport type AnimatedColorConfig = $ReadOnly<{\n useNativeDriver: boolean,\n}>;\n\ntype ColorListenerCallback = (value: ColorValue) => mixed;\n\nexport type RgbaValue = {\n +r: number,\n +g: number,\n +b: number,\n +a: number,\n ...\n};\n\ntype RgbaAnimatedValue = {\n +r: AnimatedValue,\n +g: AnimatedValue,\n +b: AnimatedValue,\n +a: AnimatedValue,\n ...\n};\n\nexport type InputValue = ?(RgbaValue | RgbaAnimatedValue | ColorValue);\n\nconst NativeAnimatedAPI = NativeAnimatedHelper.API;\n\nconst defaultColor: RgbaValue = {r: 0, g: 0, b: 0, a: 1.0};\n\n/* eslint no-bitwise: 0 */\nfunction processColor(\n color?: ?(ColorValue | RgbaValue),\n): ?(RgbaValue | NativeColorValue) {\n if (color === undefined || color === null) {\n return null;\n }\n\n if (isRgbaValue(color)) {\n // $FlowIgnore[incompatible-cast] - Type is verified above\n return (color: RgbaValue);\n }\n\n let normalizedColor: ?ProcessedColorValue = normalizeColor(\n // $FlowIgnore[incompatible-cast] - Type is verified above\n (color: ColorValue),\n );\n if (normalizedColor === undefined || normalizedColor === null) {\n return null;\n }\n\n if (typeof normalizedColor === 'object') {\n const processedColorObj: ?NativeColorValue =\n processColorObject(normalizedColor);\n if (processedColorObj != null) {\n return processedColorObj;\n }\n } else if (typeof normalizedColor === 'number') {\n const r: number = (normalizedColor & 0xff000000) >>> 24;\n const g: number = (normalizedColor & 0x00ff0000) >>> 16;\n const b: number = (normalizedColor & 0x0000ff00) >>> 8;\n const a: number = (normalizedColor & 0x000000ff) / 255;\n\n return {r, g, b, a};\n }\n\n return null;\n}\n\nfunction isRgbaValue(value: any): boolean {\n return (\n value &&\n typeof value.r === 'number' &&\n typeof value.g === 'number' &&\n typeof value.b === 'number' &&\n typeof value.a === 'number'\n );\n}\n\nfunction isRgbaAnimatedValue(value: any): boolean {\n return (\n value &&\n value.r instanceof AnimatedValue &&\n value.g instanceof AnimatedValue &&\n value.b instanceof AnimatedValue &&\n value.a instanceof AnimatedValue\n );\n}\n\nexport default class AnimatedColor extends AnimatedWithChildren {\n r: AnimatedValue;\n g: AnimatedValue;\n b: AnimatedValue;\n a: AnimatedValue;\n nativeColor: ?NativeColorValue;\n\n _suspendCallbacks: number = 0;\n\n constructor(valueIn?: InputValue, config?: ?AnimatedColorConfig) {\n super();\n\n let value: RgbaValue | RgbaAnimatedValue | ColorValue =\n valueIn ?? defaultColor;\n if (isRgbaAnimatedValue(value)) {\n // $FlowIgnore[incompatible-cast] - Type is verified above\n const rgbaAnimatedValue: RgbaAnimatedValue = (value: RgbaAnimatedValue);\n this.r = rgbaAnimatedValue.r;\n this.g = rgbaAnimatedValue.g;\n this.b = rgbaAnimatedValue.b;\n this.a = rgbaAnimatedValue.a;\n } else {\n const processedColor: RgbaValue | NativeColorValue =\n // $FlowIgnore[incompatible-cast] - Type is verified above\n processColor((value: ColorValue | RgbaValue)) ?? defaultColor;\n let initColor: RgbaValue = defaultColor;\n if (isRgbaValue(processedColor)) {\n // $FlowIgnore[incompatible-cast] - Type is verified above\n initColor = (processedColor: RgbaValue);\n } else {\n // $FlowIgnore[incompatible-cast] - Type is verified above\n this.nativeColor = (processedColor: NativeColorValue);\n }\n\n this.r = new AnimatedValue(initColor.r);\n this.g = new AnimatedValue(initColor.g);\n this.b = new AnimatedValue(initColor.b);\n this.a = new AnimatedValue(initColor.a);\n }\n\n if (config?.useNativeDriver) {\n this.__makeNative();\n }\n }\n\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n */\n setValue(value: RgbaValue | ColorValue): void {\n let shouldUpdateNodeConfig = false;\n if (this.__isNative) {\n const nativeTag = this.__getNativeTag();\n NativeAnimatedAPI.setWaitingForIdentifier(nativeTag.toString());\n }\n\n const processedColor: RgbaValue | NativeColorValue =\n processColor(value) ?? defaultColor;\n this._withSuspendedCallbacks(() => {\n if (isRgbaValue(processedColor)) {\n // $FlowIgnore[incompatible-type] - Type is verified above\n const rgbaValue: RgbaValue = processedColor;\n this.r.setValue(rgbaValue.r);\n this.g.setValue(rgbaValue.g);\n this.b.setValue(rgbaValue.b);\n this.a.setValue(rgbaValue.a);\n if (this.nativeColor != null) {\n this.nativeColor = null;\n shouldUpdateNodeConfig = true;\n }\n } else {\n // $FlowIgnore[incompatible-type] - Type is verified above\n const nativeColor: NativeColorValue = processedColor;\n if (this.nativeColor !== nativeColor) {\n this.nativeColor = nativeColor;\n shouldUpdateNodeConfig = true;\n }\n }\n });\n\n if (this.__isNative) {\n const nativeTag = this.__getNativeTag();\n if (shouldUpdateNodeConfig) {\n NativeAnimatedAPI.updateAnimatedNodeConfig(\n nativeTag,\n this.__getNativeConfig(),\n );\n }\n NativeAnimatedAPI.unsetWaitingForIdentifier(nativeTag.toString());\n } else {\n flushValue(this);\n }\n\n // $FlowFixMe[incompatible-call]\n this.__callListeners(this.__getValue());\n }\n\n /**\n * Sets an offset that is applied on top of whatever value is set, whether\n * via `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n */\n setOffset(offset: RgbaValue): void {\n this.r.setOffset(offset.r);\n this.g.setOffset(offset.g);\n this.b.setOffset(offset.b);\n this.a.setOffset(offset.a);\n }\n\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n */\n flattenOffset(): void {\n this.r.flattenOffset();\n this.g.flattenOffset();\n this.b.flattenOffset();\n this.a.flattenOffset();\n }\n\n /**\n * Sets the offset value to the base value, and resets the base value to\n * zero. The final output of the value is unchanged.\n */\n extractOffset(): void {\n this.r.extractOffset();\n this.g.extractOffset();\n this.b.extractOffset();\n this.a.extractOffset();\n }\n\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n */\n stopAnimation(callback?: ColorListenerCallback): void {\n this.r.stopAnimation();\n this.g.stopAnimation();\n this.b.stopAnimation();\n this.a.stopAnimation();\n callback && callback(this.__getValue());\n }\n\n /**\n * Stops any animation and resets the value to its original.\n */\n resetAnimation(callback?: ColorListenerCallback): void {\n this.r.resetAnimation();\n this.g.resetAnimation();\n this.b.resetAnimation();\n this.a.resetAnimation();\n callback && callback(this.__getValue());\n }\n\n __getValue(): ColorValue {\n if (this.nativeColor != null) {\n return this.nativeColor;\n } else {\n return `rgba(${this.r.__getValue()}, ${this.g.__getValue()}, ${this.b.__getValue()}, ${this.a.__getValue()})`;\n }\n }\n\n __attach(): void {\n this.r.__addChild(this);\n this.g.__addChild(this);\n this.b.__addChild(this);\n this.a.__addChild(this);\n super.__attach();\n }\n\n __detach(): void {\n this.r.__removeChild(this);\n this.g.__removeChild(this);\n this.b.__removeChild(this);\n this.a.__removeChild(this);\n super.__detach();\n }\n\n _withSuspendedCallbacks(callback: () => void) {\n this._suspendCallbacks++;\n callback();\n this._suspendCallbacks--;\n }\n\n __callListeners(value: number): void {\n if (this._suspendCallbacks === 0) {\n super.__callListeners(value);\n }\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this.r.__makeNative(platformConfig);\n this.g.__makeNative(platformConfig);\n this.b.__makeNative(platformConfig);\n this.a.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getNativeConfig(): {...} {\n return {\n type: 'color',\n r: this.r.__getNativeTag(),\n g: this.g.__getNativeTag(),\n b: this.b.__getNativeTag(),\n a: this.a.__getNativeTag(),\n nativeColor: this.nativeColor,\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type Animation, {EndCallback} from '../animations/Animation';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\nimport type AnimatedNode from './AnimatedNode';\nimport type AnimatedTracking from './AnimatedTracking';\n\nimport InteractionManager from '../../Interaction/InteractionManager';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport type AnimatedValueConfig = $ReadOnly<{\n useNativeDriver: boolean,\n}>;\n\nconst NativeAnimatedAPI = NativeAnimatedHelper.API;\n\n/**\n * Animated works by building a directed acyclic graph of dependencies\n * transparently when you render your Animated components.\n *\n * new Animated.Value(0)\n * .interpolate() .interpolate() new Animated.Value(1)\n * opacity translateY scale\n * style transform\n * View#234 style\n * View#123\n *\n * A) Top Down phase\n * When an Animated.Value is updated, we recursively go down through this\n * graph in order to find leaf nodes: the views that we flag as needing\n * an update.\n *\n * B) Bottom Up phase\n * When a view is flagged as needing an update, we recursively go back up\n * in order to build the new value that it needs. The reason why we need\n * this two-phases process is to deal with composite props such as\n * transform which can receive values from multiple parents.\n */\nexport function flushValue(rootNode: AnimatedNode): void {\n const leaves = new Set<{update: () => void, ...}>();\n function findAnimatedStyles(node: AnimatedNode) {\n // $FlowFixMe[prop-missing]\n if (typeof node.update === 'function') {\n leaves.add((node: any));\n } else {\n node.__getChildren().forEach(findAnimatedStyles);\n }\n }\n findAnimatedStyles(rootNode);\n leaves.forEach(leaf => leaf.update());\n}\n\n/**\n * Some operations are executed only on batch end, which is _mostly_ scheduled when\n * Animated component props change. For some of the changes which require immediate execution\n * (e.g. setValue), we create a separate batch in case none is scheduled.\n */\nfunction _executeAsAnimatedBatch(id: string, operation: () => void) {\n NativeAnimatedAPI.setWaitingForIdentifier(id);\n operation();\n NativeAnimatedAPI.unsetWaitingForIdentifier(id);\n}\n\n/**\n * Standard value for driving animations. One `Animated.Value` can drive\n * multiple properties in a synchronized fashion, but can only be driven by one\n * mechanism at a time. Using a new mechanism (e.g. starting a new animation,\n * or calling `setValue`) will stop any previous ones.\n *\n * See https://reactnative.dev/docs/animatedvalue\n */\nexport default class AnimatedValue extends AnimatedWithChildren {\n _value: number;\n _startingValue: number;\n _offset: number;\n _animation: ?Animation;\n _tracking: ?AnimatedTracking;\n\n constructor(value: number, config?: ?AnimatedValueConfig) {\n super();\n if (typeof value !== 'number') {\n throw new Error('AnimatedValue: Attempting to set value to undefined');\n }\n this._startingValue = this._value = value;\n this._offset = 0;\n this._animation = null;\n if (config && config.useNativeDriver) {\n this.__makeNative();\n }\n }\n\n __detach() {\n if (this.__isNative) {\n NativeAnimatedAPI.getValue(this.__getNativeTag(), value => {\n this._value = value - this._offset;\n });\n }\n this.stopAnimation();\n super.__detach();\n }\n\n __getValue(): number {\n return this._value + this._offset;\n }\n\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n *\n * See https://reactnative.dev/docs/animatedvalue#setvalue\n */\n setValue(value: number): void {\n if (this._animation) {\n this._animation.stop();\n this._animation = null;\n }\n this._updateValue(\n value,\n !this.__isNative /* don't perform a flush for natively driven values */,\n );\n if (this.__isNative) {\n _executeAsAnimatedBatch(this.__getNativeTag().toString(), () =>\n NativeAnimatedAPI.setAnimatedNodeValue(this.__getNativeTag(), value),\n );\n }\n }\n\n /**\n * Sets an offset that is applied on top of whatever value is set, whether via\n * `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n *\n * See https://reactnative.dev/docs/animatedvalue#setoffset\n */\n setOffset(offset: number): void {\n this._offset = offset;\n if (this.__isNative) {\n NativeAnimatedAPI.setAnimatedNodeOffset(this.__getNativeTag(), offset);\n }\n }\n\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvalue#flattenoffset\n */\n flattenOffset(): void {\n this._value += this._offset;\n this._offset = 0;\n if (this.__isNative) {\n NativeAnimatedAPI.flattenAnimatedNodeOffset(this.__getNativeTag());\n }\n }\n\n /**\n * Sets the offset value to the base value, and resets the base value to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvalue#extractoffset\n */\n extractOffset(): void {\n this._offset += this._value;\n this._value = 0;\n if (this.__isNative) {\n NativeAnimatedAPI.extractAnimatedNodeOffset(this.__getNativeTag());\n }\n }\n\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n *\n * See https://reactnative.dev/docs/animatedvalue#stopanimation\n */\n stopAnimation(callback?: ?(value: number) => void): void {\n this.stopTracking();\n this._animation && this._animation.stop();\n this._animation = null;\n if (callback) {\n if (this.__isNative) {\n NativeAnimatedAPI.getValue(this.__getNativeTag(), callback);\n } else {\n callback(this.__getValue());\n }\n }\n }\n\n /**\n * Stops any animation and resets the value to its original.\n *\n * See https://reactnative.dev/docs/animatedvalue#resetanimation\n */\n resetAnimation(callback?: ?(value: number) => void): void {\n this.stopAnimation(callback);\n this._value = this._startingValue;\n if (this.__isNative) {\n NativeAnimatedAPI.setAnimatedNodeValue(\n this.__getNativeTag(),\n this._startingValue,\n );\n }\n }\n\n __onAnimatedValueUpdateReceived(value: number): void {\n this._updateValue(value, false /*flush*/);\n }\n\n /**\n * Interpolates the value before updating the property, e.g. mapping 0-1 to\n * 0-10.\n */\n interpolate(\n config: InterpolationConfigType,\n ): AnimatedInterpolation {\n return new AnimatedInterpolation(this, config);\n }\n\n /**\n * Typically only used internally, but could be used by a custom Animation\n * class.\n *\n * See https://reactnative.dev/docs/animatedvalue#animate\n */\n animate(animation: Animation, callback: ?EndCallback): void {\n let handle = null;\n if (animation.__isInteraction) {\n handle = InteractionManager.createInteractionHandle();\n }\n const previousAnimation = this._animation;\n this._animation && this._animation.stop();\n this._animation = animation;\n animation.start(\n this._value,\n value => {\n // Natively driven animations will never call into that callback, therefore we can always\n // pass flush = true to allow the updated value to propagate to native with setNativeProps\n this._updateValue(value, true /* flush */);\n },\n result => {\n this._animation = null;\n if (handle !== null) {\n InteractionManager.clearInteractionHandle(handle);\n }\n callback && callback(result);\n },\n previousAnimation,\n this,\n );\n }\n\n /**\n * Typically only used internally.\n */\n stopTracking(): void {\n this._tracking && this._tracking.__detach();\n this._tracking = null;\n }\n\n /**\n * Typically only used internally.\n */\n track(tracking: AnimatedTracking): void {\n this.stopTracking();\n this._tracking = tracking;\n // Make sure that the tracking animation starts executing\n this._tracking && this._tracking.update();\n }\n\n _updateValue(value: number, flush: boolean): void {\n if (value === undefined) {\n throw new Error('AnimatedValue: Attempting to set value to undefined');\n }\n\n this._value = value;\n if (flush) {\n flushValue(this);\n }\n this.__callListeners(this.__getValue());\n }\n\n __getNativeConfig(): Object {\n return {\n type: 'value',\n value: this._value,\n offset: this._offset,\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {Task} from './TaskQueue';\n\nimport EventEmitter from '../vendor/emitter/EventEmitter';\n\nconst BatchedBridge = require('../BatchedBridge/BatchedBridge');\nconst infoLog = require('../Utilities/infoLog');\nconst TaskQueue = require('./TaskQueue');\nconst invariant = require('invariant');\n\nexport type Handle = number;\n\nconst _emitter = new EventEmitter<{\n interactionComplete: [],\n interactionStart: [],\n}>();\n\nconst DEBUG_DELAY: 0 = 0;\nconst DEBUG: false = false;\n\n/**\n * InteractionManager allows long-running work to be scheduled after any\n * interactions/animations have completed. In particular, this allows JavaScript\n * animations to run smoothly.\n *\n * Applications can schedule tasks to run after interactions with the following:\n *\n * ```\n * InteractionManager.runAfterInteractions(() => {\n * // ...long-running synchronous task...\n * });\n * ```\n *\n * Compare this to other scheduling alternatives:\n *\n * - requestAnimationFrame(): for code that animates a view over time.\n * - setImmediate/setTimeout(): run code later, note this may delay animations.\n * - runAfterInteractions(): run code later, without delaying active animations.\n *\n * The touch handling system considers one or more active touches to be an\n * 'interaction' and will delay `runAfterInteractions()` callbacks until all\n * touches have ended or been cancelled.\n *\n * InteractionManager also allows applications to register animations by\n * creating an interaction 'handle' on animation start, and clearing it upon\n * completion:\n *\n * ```\n * var handle = InteractionManager.createInteractionHandle();\n * // run animation... (`runAfterInteractions` tasks are queued)\n * // later, on animation completion:\n * InteractionManager.clearInteractionHandle(handle);\n * // queued tasks run if all handles were cleared\n * ```\n *\n * `runAfterInteractions` takes either a plain callback function, or a\n * `PromiseTask` object with a `gen` method that returns a `Promise`. If a\n * `PromiseTask` is supplied, then it is fully resolved (including asynchronous\n * dependencies that also schedule more tasks via `runAfterInteractions`) before\n * starting on the next task that might have been queued up synchronously\n * earlier.\n *\n * By default, queued tasks are executed together in a loop in one\n * `setImmediate` batch. If `setDeadline` is called with a positive number, then\n * tasks will only be executed until the deadline (in terms of js event loop run\n * time) approaches, at which point execution will yield via setTimeout,\n * allowing events such as touches to start interactions and block queued tasks\n * from executing, making apps more responsive.\n */\nconst InteractionManager = {\n Events: {\n interactionStart: 'interactionStart',\n interactionComplete: 'interactionComplete',\n },\n\n /**\n * Schedule a function to run after all interactions have completed. Returns a cancellable\n * \"promise\".\n */\n runAfterInteractions(task: ?Task): {\n then: (\n onFulfill?: ?(void) => ?(Promise | U),\n onReject?: ?(error: mixed) => ?(Promise | U),\n ) => Promise,\n cancel: () => void,\n ...\n } {\n const tasks: Array = [];\n const promise = new Promise((resolve: () => void) => {\n _scheduleUpdate();\n if (task) {\n tasks.push(task);\n }\n tasks.push({\n run: resolve,\n name: 'resolve ' + ((task && task.name) || '?'),\n });\n _taskQueue.enqueueTasks(tasks);\n });\n return {\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n then: promise.then.bind(promise),\n cancel: function () {\n _taskQueue.cancelTasks(tasks);\n },\n };\n },\n\n /**\n * Notify manager that an interaction has started.\n */\n createInteractionHandle(): Handle {\n DEBUG && infoLog('InteractionManager: create interaction handle');\n _scheduleUpdate();\n const handle = ++_inc;\n _addInteractionSet.add(handle);\n return handle;\n },\n\n /**\n * Notify manager that an interaction has completed.\n */\n clearInteractionHandle(handle: Handle) {\n DEBUG && infoLog('InteractionManager: clear interaction handle');\n invariant(!!handle, 'InteractionManager: Must provide a handle to clear.');\n _scheduleUpdate();\n _addInteractionSet.delete(handle);\n _deleteInteractionSet.add(handle);\n },\n\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n addListener: (_emitter.addListener.bind(_emitter): $FlowFixMe),\n\n /**\n * A positive number will use setTimeout to schedule any tasks after the\n * eventLoopRunningTime hits the deadline value, otherwise all tasks will be\n * executed in one setImmediate batch (default).\n */\n setDeadline(deadline: number) {\n _deadline = deadline;\n },\n};\n\nconst _interactionSet = new Set();\nconst _addInteractionSet = new Set();\nconst _deleteInteractionSet = new Set();\nconst _taskQueue = new TaskQueue({onMoreTasks: _scheduleUpdate});\nlet _nextUpdateHandle: $FlowFixMe | TimeoutID = 0;\nlet _inc = 0;\nlet _deadline = -1;\n\n/**\n * Schedule an asynchronous update to the interaction state.\n */\nfunction _scheduleUpdate() {\n if (!_nextUpdateHandle) {\n if (_deadline > 0) {\n _nextUpdateHandle = setTimeout(_processUpdate, 0 + DEBUG_DELAY);\n } else {\n _nextUpdateHandle = setImmediate(_processUpdate);\n }\n }\n}\n\n/**\n * Notify listeners, process queue, etc\n */\nfunction _processUpdate() {\n _nextUpdateHandle = 0;\n\n const interactionCount = _interactionSet.size;\n _addInteractionSet.forEach(handle => _interactionSet.add(handle));\n _deleteInteractionSet.forEach(handle => _interactionSet.delete(handle));\n const nextInteractionCount = _interactionSet.size;\n\n if (interactionCount !== 0 && nextInteractionCount === 0) {\n // transition from 1+ --> 0 interactions\n _emitter.emit(InteractionManager.Events.interactionComplete);\n } else if (interactionCount === 0 && nextInteractionCount !== 0) {\n // transition from 0 --> 1+ interactions\n _emitter.emit(InteractionManager.Events.interactionStart);\n }\n\n // process the queue regardless of a transition\n if (nextInteractionCount === 0) {\n while (_taskQueue.hasTasksToProcess()) {\n _taskQueue.processNext();\n if (\n _deadline > 0 &&\n BatchedBridge.getEventLoopRunningTime() >= _deadline\n ) {\n // Hit deadline before processing all tasks, so process more later.\n _scheduleUpdate();\n break;\n }\n }\n }\n _addInteractionSet.clear();\n _deleteInteractionSet.clear();\n}\n\nmodule.exports = InteractionManager;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nconst infoLog = require('../Utilities/infoLog');\nconst invariant = require('invariant');\n\ntype SimpleTask = {\n name: string,\n run: () => void,\n};\ntype PromiseTask = {\n name: string,\n gen: () => Promise,\n};\nexport type Task = SimpleTask | PromiseTask | (() => void);\n\nconst DEBUG: false = false;\n\n/**\n * TaskQueue - A system for queueing and executing a mix of simple callbacks and\n * trees of dependent tasks based on Promises. No tasks are executed unless\n * `processNext` is called.\n *\n * `enqueue` takes a Task object with either a simple `run` callback, or a\n * `gen` function that returns a `Promise` and puts it in the queue. If a gen\n * function is supplied, then the promise it returns will block execution of\n * tasks already in the queue until it resolves. This can be used to make sure\n * the first task is fully resolved (including asynchronous dependencies that\n * also schedule more tasks via `enqueue`) before starting on the next task.\n * The `onMoreTasks` constructor argument is used to inform the owner that an\n * async task has resolved and that the queue should be processed again.\n *\n * Note: Tasks are only actually executed with explicit calls to `processNext`.\n */\nclass TaskQueue {\n /**\n * TaskQueue instances are self contained and independent, so multiple tasks\n * of varying semantics and priority can operate together.\n *\n * `onMoreTasks` is invoked when `PromiseTask`s resolve if there are more\n * tasks to process.\n */\n constructor({onMoreTasks}: {onMoreTasks: () => void, ...}) {\n this._onMoreTasks = onMoreTasks;\n this._queueStack = [{tasks: [], popable: false}];\n }\n\n /**\n * Add a task to the queue. It is recommended to name your tasks for easier\n * async debugging. Tasks will not be executed until `processNext` is called\n * explicitly.\n */\n enqueue(task: Task): void {\n this._getCurrentQueue().push(task);\n }\n\n enqueueTasks(tasks: Array): void {\n tasks.forEach(task => this.enqueue(task));\n }\n\n cancelTasks(tasksToCancel: Array): void {\n // search through all tasks and remove them.\n this._queueStack = this._queueStack\n .map(queue => ({\n ...queue,\n tasks: queue.tasks.filter(task => tasksToCancel.indexOf(task) === -1),\n }))\n .filter((queue, idx) => queue.tasks.length > 0 || idx === 0);\n }\n\n /**\n * Check to see if `processNext` should be called.\n *\n * @returns {boolean} Returns true if there are tasks that are ready to be\n * processed with `processNext`, or returns false if there are no more tasks\n * to be processed right now, although there may be tasks in the queue that\n * are blocked by earlier `PromiseTask`s that haven't resolved yet.\n * `onMoreTasks` will be called after each `PromiseTask` resolves if there are\n * tasks ready to run at that point.\n */\n hasTasksToProcess(): boolean {\n return this._getCurrentQueue().length > 0;\n }\n\n /**\n * Executes the next task in the queue.\n */\n processNext(): void {\n const queue = this._getCurrentQueue();\n if (queue.length) {\n const task = queue.shift();\n try {\n if (typeof task === 'object' && task.gen) {\n DEBUG && infoLog('TaskQueue: genPromise for task ' + task.name);\n this._genPromise(task);\n } else if (typeof task === 'object' && task.run) {\n DEBUG && infoLog('TaskQueue: run task ' + task.name);\n task.run();\n } else {\n invariant(\n typeof task === 'function',\n 'Expected Function, SimpleTask, or PromiseTask, but got:\\n' +\n JSON.stringify(task, null, 2),\n );\n DEBUG && infoLog('TaskQueue: run anonymous task');\n task();\n }\n } catch (e) {\n e.message =\n 'TaskQueue: Error with task ' + (task.name || '') + ': ' + e.message;\n throw e;\n }\n }\n }\n\n _queueStack: Array<{\n tasks: Array,\n popable: boolean,\n ...\n }>;\n _onMoreTasks: () => void;\n\n _getCurrentQueue(): Array {\n const stackIdx = this._queueStack.length - 1;\n const queue = this._queueStack[stackIdx];\n if (\n queue.popable &&\n queue.tasks.length === 0 &&\n this._queueStack.length > 1\n ) {\n this._queueStack.pop();\n DEBUG &&\n infoLog('TaskQueue: popped queue: ', {\n stackIdx,\n queueStackSize: this._queueStack.length,\n });\n return this._getCurrentQueue();\n } else {\n return queue.tasks;\n }\n }\n\n _genPromise(task: PromiseTask) {\n // Each async task pushes it's own queue onto the queue stack. This\n // effectively defers execution of previously queued tasks until the promise\n // resolves, at which point we allow the new queue to be popped, which\n // happens once it is fully processed.\n this._queueStack.push({tasks: [], popable: false});\n const stackIdx = this._queueStack.length - 1;\n const stackItem = this._queueStack[stackIdx];\n DEBUG && infoLog('TaskQueue: push new queue: ', {stackIdx});\n DEBUG && infoLog('TaskQueue: exec gen task ' + task.name);\n task\n .gen()\n .then(() => {\n DEBUG &&\n infoLog('TaskQueue: onThen for gen task ' + task.name, {\n stackIdx,\n queueStackSize: this._queueStack.length,\n });\n stackItem.popable = true;\n this.hasTasksToProcess() && this._onMoreTasks();\n })\n .catch(ex => {\n setTimeout(() => {\n ex.message = `TaskQueue: Error resolving Promise in task ${task.name}: ${ex.message}`;\n throw ex;\n }, 0);\n });\n }\n}\n\nmodule.exports = TaskQueue;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n/* eslint no-bitwise: 0 */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type AnimatedNode from './AnimatedNode';\n\nimport normalizeColor from '../../StyleSheet/normalizeColor';\nimport processColor from '../../StyleSheet/processColor';\nimport Easing from '../Easing';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport invariant from 'invariant';\n\ntype ExtrapolateType = 'extend' | 'identity' | 'clamp';\n\nexport type InterpolationConfigType = $ReadOnly<{\n inputRange: $ReadOnlyArray,\n outputRange: $ReadOnlyArray,\n easing?: (input: number) => number,\n extrapolate?: ExtrapolateType,\n extrapolateLeft?: ExtrapolateType,\n extrapolateRight?: ExtrapolateType,\n}>;\n\n/**\n * Very handy helper to map input ranges to output ranges with an easing\n * function and custom behavior outside of the ranges.\n */\nfunction createNumericInterpolation(\n config: InterpolationConfigType,\n): (input: number) => number {\n const outputRange: $ReadOnlyArray = (config.outputRange: any);\n const inputRange = config.inputRange;\n\n const easing = config.easing || Easing.linear;\n\n let extrapolateLeft: ExtrapolateType = 'extend';\n if (config.extrapolateLeft !== undefined) {\n extrapolateLeft = config.extrapolateLeft;\n } else if (config.extrapolate !== undefined) {\n extrapolateLeft = config.extrapolate;\n }\n\n let extrapolateRight: ExtrapolateType = 'extend';\n if (config.extrapolateRight !== undefined) {\n extrapolateRight = config.extrapolateRight;\n } else if (config.extrapolate !== undefined) {\n extrapolateRight = config.extrapolate;\n }\n\n return input => {\n invariant(\n typeof input === 'number',\n 'Cannot interpolation an input which is not a number',\n );\n\n const range = findRange(input, inputRange);\n return (interpolate(\n input,\n inputRange[range],\n inputRange[range + 1],\n outputRange[range],\n outputRange[range + 1],\n easing,\n extrapolateLeft,\n extrapolateRight,\n ): any);\n };\n}\n\nfunction interpolate(\n input: number,\n inputMin: number,\n inputMax: number,\n outputMin: number,\n outputMax: number,\n easing: (input: number) => number,\n extrapolateLeft: ExtrapolateType,\n extrapolateRight: ExtrapolateType,\n) {\n let result = input;\n\n // Extrapolate\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') {\n return result;\n } else if (extrapolateLeft === 'clamp') {\n result = inputMin;\n } else if (extrapolateLeft === 'extend') {\n // noop\n }\n }\n\n if (result > inputMax) {\n if (extrapolateRight === 'identity') {\n return result;\n } else if (extrapolateRight === 'clamp') {\n result = inputMax;\n } else if (extrapolateRight === 'extend') {\n // noop\n }\n }\n\n if (outputMin === outputMax) {\n return outputMin;\n }\n\n if (inputMin === inputMax) {\n if (input <= inputMin) {\n return outputMin;\n }\n return outputMax;\n }\n\n // Input Range\n if (inputMin === -Infinity) {\n result = -result;\n } else if (inputMax === Infinity) {\n result = result - inputMin;\n } else {\n result = (result - inputMin) / (inputMax - inputMin);\n }\n\n // Easing\n result = easing(result);\n\n // Output Range\n if (outputMin === -Infinity) {\n result = -result;\n } else if (outputMax === Infinity) {\n result = result + outputMin;\n } else {\n result = result * (outputMax - outputMin) + outputMin;\n }\n\n return result;\n}\n\nconst numericComponentRegex = /[+-]?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][+-]?\\d+)?/g;\n\n// Maps string inputs an RGBA color or an array of numeric components\nfunction mapStringToNumericComponents(\n input: string,\n):\n | {isColor: true, components: [number, number, number, number]}\n | {isColor: false, components: $ReadOnlyArray} {\n let normalizedColor = normalizeColor(input);\n invariant(\n normalizedColor == null || typeof normalizedColor !== 'object',\n 'PlatformColors are not supported',\n );\n\n if (typeof normalizedColor === 'number') {\n normalizedColor = normalizedColor || 0;\n const r = (normalizedColor & 0xff000000) >>> 24;\n const g = (normalizedColor & 0x00ff0000) >>> 16;\n const b = (normalizedColor & 0x0000ff00) >>> 8;\n const a = (normalizedColor & 0x000000ff) / 255;\n return {isColor: true, components: [r, g, b, a]};\n } else {\n const components: Array = [];\n let lastMatchEnd = 0;\n let match: RegExp$matchResult;\n while ((match = (numericComponentRegex.exec(input): any)) != null) {\n if (match.index > lastMatchEnd) {\n components.push(input.substring(lastMatchEnd, match.index));\n }\n components.push(parseFloat(match[0]));\n lastMatchEnd = match.index + match[0].length;\n }\n invariant(\n components.length > 0,\n 'outputRange must contain color or value with numeric component',\n );\n if (lastMatchEnd < input.length) {\n components.push(input.substring(lastMatchEnd, input.length));\n }\n return {isColor: false, components};\n }\n}\n\n/**\n * Supports string shapes by extracting numbers so new values can be computed,\n * and recombines those values into new strings of the same shape. Supports\n * things like:\n *\n * rgba(123, 42, 99, 0.36) // colors\n * -45deg // values with units\n */\nfunction createStringInterpolation(\n config: InterpolationConfigType,\n): (input: number) => string {\n invariant(config.outputRange.length >= 2, 'Bad output range');\n const outputRange = config.outputRange.map(mapStringToNumericComponents);\n\n const isColor = outputRange[0].isColor;\n if (__DEV__) {\n invariant(\n outputRange.every(output => output.isColor === isColor),\n 'All elements of output range should either be a color or a string with numeric components',\n );\n const firstOutput = outputRange[0].components;\n invariant(\n outputRange.every(\n output => output.components.length === firstOutput.length,\n ),\n 'All elements of output range should have the same number of components',\n );\n invariant(\n outputRange.every(output =>\n output.components.every(\n (component, i) =>\n // $FlowIgnoreMe[invalid-compare]\n typeof component === 'number' || component === firstOutput[i],\n ),\n ),\n 'All elements of output range should have the same non-numeric components',\n );\n }\n\n const numericComponents: $ReadOnlyArray<$ReadOnlyArray> =\n outputRange.map(output =>\n isColor\n ? // $FlowIgnoreMe[incompatible-call]\n output.components\n : // $FlowIgnoreMe[incompatible-call]\n output.components.filter(c => typeof c === 'number'),\n );\n const interpolations = numericComponents[0].map((_, i) =>\n createNumericInterpolation({\n ...config,\n outputRange: numericComponents.map(components => components[i]),\n }),\n );\n if (!isColor) {\n return input => {\n const values = interpolations.map(interpolation => interpolation(input));\n let i = 0;\n return outputRange[0].components\n .map(c => (typeof c === 'number' ? values[i++] : c))\n .join('');\n };\n } else {\n return input => {\n const result = interpolations.map((interpolation, i) => {\n const value = interpolation(input);\n // rgba requires that the r,g,b are integers.... so we want to round them, but we *dont* want to\n // round the opacity (4th column).\n return i < 3 ? Math.round(value) : Math.round(value * 1000) / 1000;\n });\n return `rgba(${result[0]}, ${result[1]}, ${result[2]}, ${result[3]})`;\n };\n }\n}\n\nfunction findRange(input: number, inputRange: $ReadOnlyArray) {\n let i;\n for (i = 1; i < inputRange.length - 1; ++i) {\n if (inputRange[i] >= input) {\n break;\n }\n }\n return i - 1;\n}\n\nfunction checkValidRanges(\n inputRange: $ReadOnlyArray,\n outputRange: $ReadOnlyArray,\n) {\n checkInfiniteRange('outputRange', outputRange);\n checkInfiniteRange('inputRange', inputRange);\n checkValidInputRange(inputRange);\n\n invariant(\n inputRange.length === outputRange.length,\n 'inputRange (' +\n inputRange.length +\n ') and outputRange (' +\n outputRange.length +\n ') must have the same length',\n );\n}\n\nfunction checkValidInputRange(arr: $ReadOnlyArray) {\n invariant(arr.length >= 2, 'inputRange must have at least 2 elements');\n const message =\n 'inputRange must be monotonically non-decreasing ' + String(arr);\n for (let i = 1; i < arr.length; ++i) {\n invariant(arr[i] >= arr[i - 1], message);\n }\n}\n\nfunction checkInfiniteRange(\n name: string,\n arr: $ReadOnlyArray,\n) {\n invariant(arr.length >= 2, name + ' must have at least 2 elements');\n invariant(\n arr.length !== 2 || arr[0] !== -Infinity || arr[1] !== Infinity,\n /* $FlowFixMe[incompatible-type] (>=0.13.0) - In the addition expression\n * below this comment, one or both of the operands may be something that\n * doesn't cleanly convert to a string, like undefined, null, and object,\n * etc. If you really mean this implicit string conversion, you can do\n * something like String(myThing) */\n // $FlowFixMe[unsafe-addition]\n name + 'cannot be ]-infinity;+infinity[ ' + arr,\n );\n}\n\nexport default class AnimatedInterpolation<\n OutputT: number | string,\n> extends AnimatedWithChildren {\n _parent: AnimatedNode;\n _config: InterpolationConfigType;\n _interpolation: ?(input: number) => OutputT;\n\n constructor(parent: AnimatedNode, config: InterpolationConfigType) {\n super();\n this._parent = parent;\n this._config = config;\n\n if (__DEV__) {\n checkValidRanges(config.inputRange, config.outputRange);\n\n // Create interpolation eagerly in dev, so we can signal errors faster\n // even when using the native driver\n this._getInterpolation();\n }\n }\n\n _getInterpolation(): number => OutputT {\n if (!this._interpolation) {\n const config = this._config;\n if (config.outputRange && typeof config.outputRange[0] === 'string') {\n this._interpolation = (createStringInterpolation((config: any)): any);\n } else {\n this._interpolation = (createNumericInterpolation((config: any)): any);\n }\n }\n return this._interpolation;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._parent.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getValue(): OutputT {\n const parentValue: number = this._parent.__getValue();\n invariant(\n typeof parentValue === 'number',\n 'Cannot interpolate an input which is not a number.',\n );\n return this._getInterpolation()(parentValue);\n }\n\n interpolate(\n config: InterpolationConfigType,\n ): AnimatedInterpolation {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach(): void {\n this._parent.__addChild(this);\n }\n\n __detach(): void {\n this._parent.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n if (__DEV__) {\n NativeAnimatedHelper.validateInterpolation(this._config);\n }\n\n // Only the `outputRange` can contain strings so we don't need to transform `inputRange` here\n let outputRange = this._config.outputRange;\n let outputType = null;\n if (typeof outputRange[0] === 'string') {\n // $FlowIgnoreMe[incompatible-cast]\n outputRange = ((outputRange: $ReadOnlyArray).map(value => {\n const processedColor = processColor(value);\n if (typeof processedColor === 'number') {\n outputType = 'color';\n return processedColor;\n } else {\n return NativeAnimatedHelper.transformDataType(value);\n }\n }): any);\n }\n\n return {\n inputRange: this._config.inputRange,\n outputRange,\n outputType,\n extrapolateLeft:\n this._config.extrapolateLeft || this._config.extrapolate || 'extend',\n extrapolateRight:\n this._config.extrapolateRight || this._config.extrapolate || 'extend',\n type: 'interpolation',\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nlet ease;\n\n/**\n * The `Easing` module implements common easing functions. This module is used\n * by [Animate.timing()](docs/animate.html#timing) to convey physically\n * believable motion in animations.\n *\n * You can find a visualization of some common easing functions at\n * http://easings.net/\n *\n * ### Predefined animations\n *\n * The `Easing` module provides several predefined animations through the\n * following methods:\n *\n * - [`back`](docs/easing.html#back) provides a simple animation where the\n * object goes slightly back before moving forward\n * - [`bounce`](docs/easing.html#bounce) provides a bouncing animation\n * - [`ease`](docs/easing.html#ease) provides a simple inertial animation\n * - [`elastic`](docs/easing.html#elastic) provides a simple spring interaction\n *\n * ### Standard functions\n *\n * Three standard easing functions are provided:\n *\n * - [`linear`](docs/easing.html#linear)\n * - [`quad`](docs/easing.html#quad)\n * - [`cubic`](docs/easing.html#cubic)\n *\n * The [`poly`](docs/easing.html#poly) function can be used to implement\n * quartic, quintic, and other higher power functions.\n *\n * ### Additional functions\n *\n * Additional mathematical functions are provided by the following methods:\n *\n * - [`bezier`](docs/easing.html#bezier) provides a cubic bezier curve\n * - [`circle`](docs/easing.html#circle) provides a circular function\n * - [`sin`](docs/easing.html#sin) provides a sinusoidal function\n * - [`exp`](docs/easing.html#exp) provides an exponential function\n *\n * The following helpers are used to modify other easing functions.\n *\n * - [`in`](docs/easing.html#in) runs an easing function forwards\n * - [`inOut`](docs/easing.html#inout) makes any easing function symmetrical\n * - [`out`](docs/easing.html#out) runs an easing function backwards\n */\nconst Easing = {\n /**\n * A stepping function, returns 1 for any positive value of `n`.\n */\n step0(n: number): number {\n return n > 0 ? 1 : 0;\n },\n\n /**\n * A stepping function, returns 1 if `n` is greater than or equal to 1.\n */\n step1(n: number): number {\n return n >= 1 ? 1 : 0;\n },\n\n /**\n * A linear function, `f(t) = t`. Position correlates to elapsed time one to\n * one.\n *\n * http://cubic-bezier.com/#0,0,1,1\n */\n linear(t: number): number {\n return t;\n },\n\n /**\n * A simple inertial interaction, similar to an object slowly accelerating to\n * speed.\n *\n * http://cubic-bezier.com/#.42,0,1,1\n */\n ease(t: number): number {\n if (!ease) {\n ease = Easing.bezier(0.42, 0, 1, 1);\n }\n return ease(t);\n },\n\n /**\n * A quadratic function, `f(t) = t * t`. Position equals the square of elapsed\n * time.\n *\n * http://easings.net/#easeInQuad\n */\n quad(t: number): number {\n return t * t;\n },\n\n /**\n * A cubic function, `f(t) = t * t * t`. Position equals the cube of elapsed\n * time.\n *\n * http://easings.net/#easeInCubic\n */\n cubic(t: number): number {\n return t * t * t;\n },\n\n /**\n * A power function. Position is equal to the Nth power of elapsed time.\n *\n * n = 4: http://easings.net/#easeInQuart\n * n = 5: http://easings.net/#easeInQuint\n */\n poly(n: number): (t: number) => number {\n return (t: number) => Math.pow(t, n);\n },\n\n /**\n * A sinusoidal function.\n *\n * http://easings.net/#easeInSine\n */\n sin(t: number): number {\n return 1 - Math.cos((t * Math.PI) / 2);\n },\n\n /**\n * A circular function.\n *\n * http://easings.net/#easeInCirc\n */\n circle(t: number): number {\n return 1 - Math.sqrt(1 - t * t);\n },\n\n /**\n * An exponential function.\n *\n * http://easings.net/#easeInExpo\n */\n exp(t: number): number {\n return Math.pow(2, 10 * (t - 1));\n },\n\n /**\n * A simple elastic interaction, similar to a spring oscillating back and\n * forth.\n *\n * Default bounciness is 1, which overshoots a little bit once. 0 bounciness\n * doesn't overshoot at all, and bounciness of N > 1 will overshoot about N\n * times.\n *\n * http://easings.net/#easeInElastic\n */\n elastic(bounciness: number = 1): (t: number) => number {\n const p = bounciness * Math.PI;\n return t => 1 - Math.pow(Math.cos((t * Math.PI) / 2), 3) * Math.cos(t * p);\n },\n\n /**\n * Use with `Animated.parallel()` to create a simple effect where the object\n * animates back slightly as the animation starts.\n *\n * https://easings.net/#easeInBack\n */\n back(s: number = 1.70158): (t: number) => number {\n return t => t * t * ((s + 1) * t - s);\n },\n\n /**\n * Provides a simple bouncing effect.\n *\n * http://easings.net/#easeInBounce\n */\n bounce(t: number): number {\n if (t < 1 / 2.75) {\n return 7.5625 * t * t;\n }\n\n if (t < 2 / 2.75) {\n const t2 = t - 1.5 / 2.75;\n return 7.5625 * t2 * t2 + 0.75;\n }\n\n if (t < 2.5 / 2.75) {\n const t2 = t - 2.25 / 2.75;\n return 7.5625 * t2 * t2 + 0.9375;\n }\n\n const t2 = t - 2.625 / 2.75;\n return 7.5625 * t2 * t2 + 0.984375;\n },\n\n /**\n * Provides a cubic bezier curve, equivalent to CSS Transitions'\n * `transition-timing-function`.\n *\n * A useful tool to visualize cubic bezier curves can be found at\n * http://cubic-bezier.com/\n */\n bezier(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n ): (t: number) => number {\n const _bezier = require('./bezier').default;\n return _bezier(x1, y1, x2, y2);\n },\n\n /**\n * Runs an easing function forwards.\n */\n in(easing: (t: number) => number): (t: number) => number {\n return easing;\n },\n\n /**\n * Runs an easing function backwards.\n */\n out(easing: (t: number) => number): (t: number) => number {\n return t => 1 - easing(1 - t);\n },\n\n /**\n * Makes any easing function symmetrical. The easing function will run\n * forwards for half of the duration, then backwards for the rest of the\n * duration.\n */\n inOut(easing: (t: number) => number): (t: number) => number {\n return t => {\n if (t < 0.5) {\n return easing(t * 2) / 2;\n }\n return 1 - easing((1 - t) * 2) / 2;\n };\n },\n};\n\nexport default Easing;\n","/**\n * Portions Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n/**\n * BezierEasing - use bezier curve for transition easing function\n * https://github.com/gre/bezier-easing\n * @copyright 2014-2015 GaΓ«tan Renaudeau. MIT License.\n */\n\n'use strict';\n\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\nconst NEWTON_ITERATIONS = 4;\nconst NEWTON_MIN_SLOPE = 0.001;\nconst SUBDIVISION_PRECISION = 0.0000001;\nconst SUBDIVISION_MAX_ITERATIONS = 10;\n\nconst kSplineTableSize = 11;\nconst kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\nconst float32ArraySupported = typeof Float32Array === 'function';\n\nfunction A(aA1: number, aA2: number) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n}\nfunction B(aA1: number, aA2: number) {\n return 3.0 * aA2 - 6.0 * aA1;\n}\nfunction C(aA1: number) {\n return 3.0 * aA1;\n}\n\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nfunction calcBezier(aT: number, aA1: number, aA2: number) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n}\n\n// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\nfunction getSlope(aT: number, aA1: number, aA2: number) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n}\n\nfunction binarySubdivide(\n aX: number,\n _aA: number,\n _aB: number,\n mX1: number,\n mX2: number,\n) {\n let currentX,\n currentT,\n i = 0,\n aA = _aA,\n aB = _aB;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (\n Math.abs(currentX) > SUBDIVISION_PRECISION &&\n ++i < SUBDIVISION_MAX_ITERATIONS\n );\n return currentT;\n}\n\nfunction newtonRaphsonIterate(\n aX: number,\n _aGuessT: number,\n mX1: number,\n mX2: number,\n) {\n let aGuessT = _aGuessT;\n for (let i = 0; i < NEWTON_ITERATIONS; ++i) {\n const currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n const currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\n\nexport default function bezier(\n mX1: number,\n mY1: number,\n mX2: number,\n mY2: number,\n): (x: number) => number {\n if (!(mX1 >= 0 && mX1 <= 1 && mX2 >= 0 && mX2 <= 1)) {\n throw new Error('bezier x values must be in [0, 1] range');\n }\n\n // Precompute samples table\n const sampleValues = float32ArraySupported\n ? new Float32Array(kSplineTableSize)\n : new Array(kSplineTableSize);\n if (mX1 !== mY1 || mX2 !== mY2) {\n for (let i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n }\n\n function getTForX(aX: number) {\n let intervalStart = 0.0;\n let currentSample = 1;\n const lastSample = kSplineTableSize - 1;\n\n for (\n ;\n currentSample !== lastSample && sampleValues[currentSample] <= aX;\n ++currentSample\n ) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n\n // Interpolate to provide an initial guess for t\n const dist =\n (aX - sampleValues[currentSample]) /\n (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n const guessForT = intervalStart + dist * kSampleStepSize;\n\n const initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(\n aX,\n intervalStart,\n intervalStart + kSampleStepSize,\n mX1,\n mX2,\n );\n }\n }\n\n return function BezierEasing(x: number): number {\n if (mX1 === mY1 && mX2 === mY2) {\n return x; // linear\n }\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n if (x === 0) {\n return 0;\n }\n if (x === 1) {\n return 1;\n }\n return calcBezier(getTForX(x), mY1, mY2);\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedNode from './AnimatedNode';\n\nexport default class AnimatedWithChildren extends AnimatedNode {\n _children: Array;\n\n constructor() {\n super();\n this._children = [];\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n if (!this.__isNative) {\n this.__isNative = true;\n for (const child of this._children) {\n child.__makeNative(platformConfig);\n NativeAnimatedHelper.API.connectAnimatedNodes(\n this.__getNativeTag(),\n child.__getNativeTag(),\n );\n }\n }\n super.__makeNative(platformConfig);\n }\n\n __addChild(child: AnimatedNode): void {\n if (this._children.length === 0) {\n this.__attach();\n }\n this._children.push(child);\n if (this.__isNative) {\n // Only accept \"native\" animated nodes as children\n child.__makeNative(this.__getPlatformConfig());\n NativeAnimatedHelper.API.connectAnimatedNodes(\n this.__getNativeTag(),\n child.__getNativeTag(),\n );\n }\n }\n\n __removeChild(child: AnimatedNode): void {\n const index = this._children.indexOf(child);\n if (index === -1) {\n console.warn(\"Trying to remove a child that doesn't exist\");\n return;\n }\n if (this.__isNative && child.__isNative) {\n NativeAnimatedHelper.API.disconnectAnimatedNodes(\n this.__getNativeTag(),\n child.__getNativeTag(),\n );\n }\n this._children.splice(index, 1);\n if (this._children.length === 0) {\n this.__detach();\n }\n }\n\n __getChildren(): $ReadOnlyArray {\n return this._children;\n }\n\n __callListeners(value: number): void {\n super.__callListeners(value);\n if (!this.__isNative) {\n for (const child of this._children) {\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n if (child.__getValue) {\n child.__callListeners(child.__getValue());\n }\n }\n }\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport invariant from 'invariant';\n\nconst NativeAnimatedAPI = NativeAnimatedHelper.API;\n\ntype ValueListenerCallback = (state: {value: number, ...}) => mixed;\n\nlet _uniqueId = 1;\n\n// Note(vjeux): this would be better as an interface but flow doesn't\n// support them yet\nexport default class AnimatedNode {\n _listeners: {[key: string]: ValueListenerCallback, ...};\n _platformConfig: ?PlatformConfig;\n __nativeAnimatedValueListener: ?any;\n __attach(): void {}\n __detach(): void {\n this.removeAllListeners();\n if (this.__isNative && this.__nativeTag != null) {\n NativeAnimatedHelper.API.dropAnimatedNode(this.__nativeTag);\n this.__nativeTag = undefined;\n }\n }\n __getValue(): any {}\n __getAnimatedValue(): any {\n return this.__getValue();\n }\n __addChild(child: AnimatedNode) {}\n __removeChild(child: AnimatedNode) {}\n __getChildren(): $ReadOnlyArray {\n return [];\n }\n\n /* Methods and props used by native Animated impl */\n __isNative: boolean;\n __nativeTag: ?number;\n __shouldUpdateListenersForNewNativeTag: boolean;\n\n constructor() {\n this._listeners = {};\n }\n\n __makeNative(platformConfig: ?PlatformConfig): void {\n if (!this.__isNative) {\n throw new Error('This node cannot be made a \"native\" animated node');\n }\n\n this._platformConfig = platformConfig;\n if (this.hasListeners()) {\n this._startListeningToNativeValueUpdates();\n }\n }\n\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to\n * synchronously read the value because it might be driven natively.\n *\n * See https://reactnative.dev/docs/animatedvalue#addlistener\n */\n addListener(callback: (value: any) => mixed): string {\n const id = String(_uniqueId++);\n this._listeners[id] = callback;\n if (this.__isNative) {\n this._startListeningToNativeValueUpdates();\n }\n return id;\n }\n\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n *\n * See https://reactnative.dev/docs/animatedvalue#removelistener\n */\n removeListener(id: string): void {\n delete this._listeners[id];\n if (this.__isNative && !this.hasListeners()) {\n this._stopListeningForNativeValueUpdates();\n }\n }\n\n /**\n * Remove all registered listeners.\n *\n * See https://reactnative.dev/docs/animatedvalue#removealllisteners\n */\n removeAllListeners(): void {\n this._listeners = {};\n if (this.__isNative) {\n this._stopListeningForNativeValueUpdates();\n }\n }\n\n hasListeners(): boolean {\n return !!Object.keys(this._listeners).length;\n }\n\n _startListeningToNativeValueUpdates() {\n if (\n this.__nativeAnimatedValueListener &&\n !this.__shouldUpdateListenersForNewNativeTag\n ) {\n return;\n }\n\n if (this.__shouldUpdateListenersForNewNativeTag) {\n this.__shouldUpdateListenersForNewNativeTag = false;\n this._stopListeningForNativeValueUpdates();\n }\n\n NativeAnimatedAPI.startListeningToAnimatedNodeValue(this.__getNativeTag());\n this.__nativeAnimatedValueListener =\n NativeAnimatedHelper.nativeEventEmitter.addListener(\n 'onAnimatedValueUpdate',\n data => {\n if (data.tag !== this.__getNativeTag()) {\n return;\n }\n this.__onAnimatedValueUpdateReceived(data.value);\n },\n );\n }\n\n __onAnimatedValueUpdateReceived(value: number) {\n this.__callListeners(value);\n }\n\n __callListeners(value: number): void {\n for (const key in this._listeners) {\n this._listeners[key]({value});\n }\n }\n\n _stopListeningForNativeValueUpdates() {\n if (!this.__nativeAnimatedValueListener) {\n return;\n }\n\n this.__nativeAnimatedValueListener.remove();\n this.__nativeAnimatedValueListener = null;\n NativeAnimatedAPI.stopListeningToAnimatedNodeValue(this.__getNativeTag());\n }\n\n __getNativeTag(): number {\n NativeAnimatedHelper.assertNativeAnimatedModule();\n invariant(\n this.__isNative,\n 'Attempt to get native tag from node not marked as \"native\"',\n );\n\n const nativeTag =\n this.__nativeTag ?? NativeAnimatedHelper.generateNewNodeTag();\n\n if (this.__nativeTag == null) {\n this.__nativeTag = nativeTag;\n const config = this.__getNativeConfig();\n if (this._platformConfig) {\n config.platformConfig = this._platformConfig;\n }\n NativeAnimatedHelper.API.createAnimatedNode(nativeTag, config);\n this.__shouldUpdateListenersForNewNativeTag = true;\n }\n\n return nativeTag;\n }\n __getNativeConfig(): Object {\n throw new Error(\n 'This JS animated node type cannot be used as native animated node',\n );\n }\n\n toJSON(): any {\n return this.__getValue();\n }\n\n __getPlatformConfig(): ?PlatformConfig {\n return this._platformConfig;\n }\n __setPlatformConfig(platformConfig: ?PlatformConfig) {\n this._platformConfig = platformConfig;\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\ntype SpringConfigType = {\n stiffness: number,\n damping: number,\n ...\n};\n\nfunction stiffnessFromOrigamiValue(oValue: number) {\n return (oValue - 30) * 3.62 + 194;\n}\n\nfunction dampingFromOrigamiValue(oValue: number) {\n return (oValue - 8) * 3 + 25;\n}\n\nexport function fromOrigamiTensionAndFriction(\n tension: number,\n friction: number,\n): SpringConfigType {\n return {\n stiffness: stiffnessFromOrigamiValue(tension),\n damping: dampingFromOrigamiValue(friction),\n };\n}\n\nexport function fromBouncinessAndSpeed(\n bounciness: number,\n speed: number,\n): SpringConfigType {\n function normalize(value: number, startValue: number, endValue: number) {\n return (value - startValue) / (endValue - startValue);\n }\n\n function projectNormal(n: number, start: number, end: number) {\n return start + n * (end - start);\n }\n\n function linearInterpolation(t: number, start: number, end: number) {\n return t * end + (1 - t) * start;\n }\n\n function quadraticOutInterpolation(t: number, start: number, end: number) {\n return linearInterpolation(2 * t - t * t, start, end);\n }\n\n function b3Friction1(x: number) {\n return 0.0007 * Math.pow(x, 3) - 0.031 * Math.pow(x, 2) + 0.64 * x + 1.28;\n }\n\n function b3Friction2(x: number) {\n return 0.000044 * Math.pow(x, 3) - 0.006 * Math.pow(x, 2) + 0.36 * x + 2;\n }\n\n function b3Friction3(x: number) {\n return (\n 0.00000045 * Math.pow(x, 3) -\n 0.000332 * Math.pow(x, 2) +\n 0.1078 * x +\n 5.84\n );\n }\n\n function b3Nobounce(tension: number) {\n if (tension <= 18) {\n return b3Friction1(tension);\n } else if (tension > 18 && tension <= 44) {\n return b3Friction2(tension);\n } else {\n return b3Friction3(tension);\n }\n }\n\n let b = normalize(bounciness / 1.7, 0, 20);\n b = projectNormal(b, 0, 0.8);\n const s = normalize(speed / 1.7, 0, 20);\n const bouncyTension = projectNormal(s, 0.5, 200);\n const bouncyFriction = quadraticOutInterpolation(\n b,\n b3Nobounce(bouncyTension),\n 0.01,\n );\n\n return {\n stiffness: stiffnessFromOrigamiValue(bouncyTension),\n damping: dampingFromOrigamiValue(bouncyFriction),\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {RgbaValue} from '../nodes/AnimatedColor';\nimport type AnimatedInterpolation from '../nodes/AnimatedInterpolation';\nimport type AnimatedValue from '../nodes/AnimatedValue';\nimport type AnimatedValueXY from '../nodes/AnimatedValueXY';\nimport type {AnimationConfig, EndCallback} from './Animation';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedColor from '../nodes/AnimatedColor';\nimport Animation from './Animation';\n\nexport type TimingAnimationConfig = $ReadOnly<{\n ...AnimationConfig,\n toValue:\n | number\n | AnimatedValue\n | {\n x: number,\n y: number,\n ...\n }\n | AnimatedValueXY\n | RgbaValue\n | AnimatedColor\n | AnimatedInterpolation,\n easing?: (value: number) => number,\n duration?: number,\n delay?: number,\n}>;\n\nexport type TimingAnimationConfigSingle = $ReadOnly<{\n ...AnimationConfig,\n toValue: number,\n easing?: (value: number) => number,\n duration?: number,\n delay?: number,\n}>;\n\nlet _easeInOut;\nfunction easeInOut() {\n if (!_easeInOut) {\n const Easing = require('../Easing').default;\n _easeInOut = Easing.inOut(Easing.ease);\n }\n return _easeInOut;\n}\n\nexport default class TimingAnimation extends Animation {\n _startTime: number;\n _fromValue: number;\n _toValue: number;\n _duration: number;\n _delay: number;\n _easing: (value: number) => number;\n _onUpdate: (value: number) => void;\n _animationFrame: any;\n _timeout: any;\n _useNativeDriver: boolean;\n _platformConfig: ?PlatformConfig;\n\n constructor(config: TimingAnimationConfigSingle) {\n super();\n this._toValue = config.toValue;\n this._easing = config.easing ?? easeInOut();\n this._duration = config.duration ?? 500;\n this._delay = config.delay ?? 0;\n this.__iterations = config.iterations ?? 1;\n this._useNativeDriver = NativeAnimatedHelper.shouldUseNativeDriver(config);\n this._platformConfig = config.platformConfig;\n this.__isInteraction = config.isInteraction ?? !this._useNativeDriver;\n }\n\n __getNativeAnimationConfig(): any {\n const frameDuration = 1000.0 / 60.0;\n const frames = [];\n const numFrames = Math.round(this._duration / frameDuration);\n for (let frame = 0; frame < numFrames; frame++) {\n frames.push(this._easing(frame / numFrames));\n }\n frames.push(this._easing(1));\n return {\n type: 'frames',\n frames,\n toValue: this._toValue,\n iterations: this.__iterations,\n platformConfig: this._platformConfig,\n };\n }\n\n start(\n fromValue: number,\n onUpdate: (value: number) => void,\n onEnd: ?EndCallback,\n previousAnimation: ?Animation,\n animatedValue: AnimatedValue,\n ): void {\n this.__active = true;\n this._fromValue = fromValue;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n\n const start = () => {\n // Animations that sometimes have 0 duration and sometimes do not\n // still need to use the native driver when duration is 0 so as to\n // not cause intermixed JS and native animations.\n if (this._duration === 0 && !this._useNativeDriver) {\n this._onUpdate(this._toValue);\n this.__debouncedOnEnd({finished: true});\n } else {\n this._startTime = Date.now();\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n this._animationFrame = requestAnimationFrame(\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this.onUpdate.bind(this),\n );\n }\n }\n };\n if (this._delay) {\n this._timeout = setTimeout(start, this._delay);\n } else {\n start();\n }\n }\n\n onUpdate(): void {\n const now = Date.now();\n if (now >= this._startTime + this._duration) {\n if (this._duration === 0) {\n this._onUpdate(this._toValue);\n } else {\n this._onUpdate(\n this._fromValue + this._easing(1) * (this._toValue - this._fromValue),\n );\n }\n this.__debouncedOnEnd({finished: true});\n return;\n }\n\n this._onUpdate(\n this._fromValue +\n this._easing((now - this._startTime) / this._duration) *\n (this._toValue - this._fromValue),\n );\n if (this.__active) {\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n }\n\n stop(): void {\n super.stop();\n this.__active = false;\n clearTimeout(this._timeout);\n global.cancelAnimationFrame(this._animationFrame);\n this.__debouncedOnEnd({finished: false});\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport View from '../Components/View/View';\nimport useMergeRefs from '../Utilities/useMergeRefs';\nimport useAnimatedProps from './useAnimatedProps';\nimport * as React from 'react';\n\nexport type AnimatedComponentType<\n -Props: {+[string]: mixed, ...},\n +Instance = mixed,\n> = React.AbstractComponent<\n $ObjMap<\n Props &\n $ReadOnly<{\n passthroughAnimatedPropExplicitValues?: React.ElementConfig<\n typeof View,\n >,\n }>,\n () => any,\n >,\n Instance,\n>;\n\nexport default function createAnimatedComponent(\n Component: React.AbstractComponent,\n): AnimatedComponentType {\n return React.forwardRef((props, forwardedRef) => {\n const [reducedProps, callbackRef] = useAnimatedProps(\n // $FlowFixMe[incompatible-call]\n props,\n );\n const ref = useMergeRefs(callbackRef, forwardedRef);\n\n // Some components require explicit passthrough values for animation\n // to work properly. For example, if an animated component is\n // transformed and Pressable, onPress will not work after transform\n // without these passthrough values.\n // $FlowFixMe[prop-missing]\n const {passthroughAnimatedPropExplicitValues, style} = reducedProps;\n const {style: passthroughStyle, ...passthroughProps} =\n passthroughAnimatedPropExplicitValues ?? {};\n const mergedStyle = {...style, ...passthroughStyle};\n\n return (\n \n );\n });\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport {useCallback} from 'react';\n\ntype CallbackRef = T => mixed;\ntype ObjectRef = {current: T, ...};\n\ntype Ref = CallbackRef | ObjectRef;\n\n/**\n * Constructs a new ref that forwards new values to each of the given refs. The\n * given refs will always be invoked in the order that they are supplied.\n *\n * WARNING: A known problem of merging refs using this approach is that if any\n * of the given refs change, the returned callback ref will also be changed. If\n * the returned callback ref is supplied as a `ref` to a React element, this may\n * lead to problems with the given refs being invoked more times than desired.\n */\nexport default function useMergeRefs(\n ...refs: $ReadOnlyArray>\n): CallbackRef {\n return useCallback(\n (current: T) => {\n for (const ref of refs) {\n if (ref != null) {\n if (typeof ref === 'function') {\n ref(current);\n } else {\n ref.current = current;\n }\n }\n }\n },\n [...refs], // eslint-disable-line react-hooks/exhaustive-deps\n );\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nimport {isPublicInstance as isFabricPublicInstance} from '../Renderer/public/ReactFabricPublicInstanceUtils';\nimport useRefEffect from '../Utilities/useRefEffect';\nimport {AnimatedEvent} from './AnimatedEvent';\nimport NativeAnimatedHelper from './NativeAnimatedHelper';\nimport AnimatedProps from './nodes/AnimatedProps';\nimport {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react';\n\ntype ReducedProps = {\n ...TProps,\n collapsable: boolean,\n ...\n};\ntype CallbackRef = T => mixed;\n\nexport default function useAnimatedProps(\n props: TProps,\n): [ReducedProps, CallbackRef] {\n const [, scheduleUpdate] = useReducer(count => count + 1, 0);\n const onUpdateRef = useRef void>(null);\n\n // TODO: Only invalidate `node` if animated props or `style` change. In the\n // previous implementation, we permitted `style` to override props with the\n // same name property name as styles, so we can probably continue doing that.\n // The ordering of other props *should* not matter.\n const node = useMemo(\n () => new AnimatedProps(props, () => onUpdateRef.current?.()),\n [props],\n );\n useAnimatedPropsLifecycle(node);\n\n // TODO: This \"effect\" does three things:\n //\n // 1) Call `setNativeView`.\n // 2) Update `onUpdateRef`.\n // 3) Update listeners for `AnimatedEvent` props.\n //\n // Ideally, each of these would be separate \"effects\" so that they are not\n // unnecessarily re-run when irrelevant dependencies change. For example, we\n // should be able to hoist all `AnimatedEvent` props and only do #3 if either\n // the `AnimatedEvent` props change or `instance` changes.\n //\n // But there is no way to transparently compose three separate callback refs,\n // so we just combine them all into one for now.\n const refEffect = useCallback(\n (instance: TInstance) => {\n // NOTE: This may be called more often than necessary (e.g. when `props`\n // changes), but `setNativeView` already optimizes for that.\n node.setNativeView(instance);\n\n // NOTE: This callback is only used by the JavaScript animation driver.\n onUpdateRef.current = () => {\n if (\n process.env.NODE_ENV === 'test' ||\n typeof instance !== 'object' ||\n typeof instance?.setNativeProps !== 'function' ||\n isFabricInstance(instance)\n ) {\n // Schedule an update for this component to update `reducedProps`,\n // but do not compute it immediately. If a parent also updated, we\n // need to merge those new props in before updating.\n scheduleUpdate();\n } else if (!node.__isNative) {\n // $FlowIgnore[not-a-function] - Assume it's still a function.\n // $FlowFixMe[incompatible-use]\n instance.setNativeProps(node.__getAnimatedValue());\n } else {\n throw new Error(\n 'Attempting to run JS driven animation on animated node ' +\n 'that has been moved to \"native\" earlier by starting an ' +\n 'animation with `useNativeDriver: true`',\n );\n }\n };\n\n const target = getEventTarget(instance);\n const events = [];\n\n for (const propName in props) {\n const propValue = props[propName];\n if (propValue instanceof AnimatedEvent && propValue.__isNative) {\n propValue.__attach(target, propName);\n events.push([propName, propValue]);\n }\n }\n\n return () => {\n onUpdateRef.current = null;\n\n for (const [propName, propValue] of events) {\n propValue.__detach(target, propName);\n }\n };\n },\n [props, node],\n );\n const callbackRef = useRefEffect(refEffect);\n\n return [reduceAnimatedProps(node), callbackRef];\n}\n\nfunction reduceAnimatedProps(\n node: AnimatedProps,\n): ReducedProps {\n // Force `collapsable` to be false so that the native view is not flattened.\n // Flattened views cannot be accurately referenced by the native driver.\n return {\n ...node.__getValue(),\n collapsable: false,\n };\n}\n\n/**\n * Manages the lifecycle of the supplied `AnimatedProps` by invoking `__attach`\n * and `__detach`. However, this is more complicated because `AnimatedProps`\n * uses reference counting to determine when to recursively detach its children\n * nodes. So in order to optimize this, we avoid detaching until the next attach\n * unless we are unmounting.\n */\nfunction useAnimatedPropsLifecycle(node: AnimatedProps): void {\n const prevNodeRef = useRef(null);\n const isUnmountingRef = useRef(false);\n\n useEffect(() => {\n // It is ok for multiple components to call `flushQueue` because it noops\n // if the queue is empty. When multiple animated components are mounted at\n // the same time. Only first component flushes the queue and the others will noop.\n NativeAnimatedHelper.API.flushQueue();\n });\n\n useLayoutEffect(() => {\n isUnmountingRef.current = false;\n return () => {\n isUnmountingRef.current = true;\n };\n }, []);\n\n useLayoutEffect(() => {\n node.__attach();\n if (prevNodeRef.current != null) {\n const prevNode = prevNodeRef.current;\n // TODO: Stop restoring default values (unless `reset` is called).\n prevNode.__restoreDefaultValues();\n prevNode.__detach();\n prevNodeRef.current = null;\n }\n return () => {\n if (isUnmountingRef.current) {\n // NOTE: Do not restore default values on unmount, see D18197735.\n node.__detach();\n } else {\n prevNodeRef.current = node;\n }\n };\n }, [node]);\n}\n\nfunction getEventTarget(instance: TInstance): TInstance {\n return typeof instance === 'object' &&\n typeof instance?.getScrollableNode === 'function'\n ? // $FlowFixMe[incompatible-use] - Legacy instance assumptions.\n instance.getScrollableNode()\n : instance;\n}\n\n// $FlowFixMe[unclear-type] - Legacy instance assumptions.\nfunction isFabricInstance(instance: any): boolean {\n return (\n isFabricPublicInstance(instance) ||\n // Some components have a setNativeProps function but aren't a host component\n // such as lists like FlatList and SectionList. These should also use\n // forceUpdate in Fabric since setNativeProps doesn't exist on the underlying\n // host component. This crazy hack is essentially special casing those lists and\n // ScrollView itself to use forceUpdate in Fabric.\n // If these components end up using forwardRef then these hacks can go away\n // as instance would actually be the underlying host component and the above check\n // would be sufficient.\n isFabricPublicInstance(instance?.getNativeScrollRef?.()) ||\n isFabricPublicInstance(\n instance?.getScrollResponder?.()?.getNativeScrollRef?.(),\n )\n );\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport {useCallback, useRef} from 'react';\n\ntype CallbackRef = T => mixed;\n\n/**\n * Constructs a callback ref that provides similar semantics as `useEffect`. The\n * supplied `effect` callback will be called with non-null component instances.\n * The `effect` callback can also optionally return a cleanup function.\n *\n * When a component is updated or unmounted, the cleanup function is called. The\n * `effect` callback will then be called again, if applicable.\n *\n * When a new `effect` callback is supplied, the previously returned cleanup\n * function will be called before the new `effect` callback is called with the\n * same instance.\n *\n * WARNING: The `effect` callback should be stable (e.g. using `useCallback`).\n */\nexport default function useRefEffect(\n effect: TInstance => (() => void) | void,\n): CallbackRef {\n const cleanupRef = useRef<(() => void) | void>(undefined);\n return useCallback(\n (instance: null | TInstance) => {\n if (cleanupRef.current) {\n cleanupRef.current();\n cleanupRef.current = undefined;\n }\n if (instance != null) {\n cleanupRef.current = effect(instance);\n }\n },\n [effect],\n );\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport {findNodeHandle} from '../../ReactNative/RendererProxy';\nimport {AnimatedEvent} from '../AnimatedEvent';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedStyle from './AnimatedStyle';\nimport invariant from 'invariant';\n\nexport default class AnimatedProps extends AnimatedNode {\n _props: Object;\n _animatedView: any;\n _callback: () => void;\n\n constructor(props: Object, callback: () => void) {\n super();\n if (props.style) {\n props = {\n ...props,\n style: new AnimatedStyle(props.style),\n };\n }\n this._props = props;\n this._callback = callback;\n }\n\n __getValue(): Object {\n const props: {[string]: any | ((...args: any) => void)} = {};\n for (const key in this._props) {\n const value = this._props[key];\n if (value instanceof AnimatedNode) {\n props[key] = value.__getValue();\n } else if (value instanceof AnimatedEvent) {\n props[key] = value.__getHandler();\n } else {\n props[key] = value;\n }\n }\n\n return props;\n }\n\n __getAnimatedValue(): Object {\n const props: {[string]: any} = {};\n for (const key in this._props) {\n const value = this._props[key];\n if (value instanceof AnimatedNode) {\n props[key] = value.__getAnimatedValue();\n }\n }\n return props;\n }\n\n __attach(): void {\n for (const key in this._props) {\n const value = this._props[key];\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n }\n\n __detach(): void {\n if (this.__isNative && this._animatedView) {\n this.__disconnectAnimatedView();\n }\n for (const key in this._props) {\n const value = this._props[key];\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n super.__detach();\n }\n\n update(): void {\n this._callback();\n }\n\n __makeNative(platformConfig: ?PlatformConfig): void {\n for (const key in this._props) {\n const value = this._props[key];\n if (value instanceof AnimatedNode) {\n value.__makeNative(platformConfig);\n }\n }\n\n if (!this.__isNative) {\n this.__isNative = true;\n\n // Since this does not call the super.__makeNative, we need to store the\n // supplied platformConfig here, before calling __connectAnimatedView\n // where it will be needed to traverse the graph of attached values.\n super.__setPlatformConfig(platformConfig);\n\n if (this._animatedView) {\n this.__connectAnimatedView();\n }\n }\n }\n\n setNativeView(animatedView: any): void {\n if (this._animatedView === animatedView) {\n return;\n }\n this._animatedView = animatedView;\n if (this.__isNative) {\n this.__connectAnimatedView();\n }\n }\n\n __connectAnimatedView(): void {\n invariant(this.__isNative, 'Expected node to be marked as \"native\"');\n const nativeViewTag: ?number = findNodeHandle(this._animatedView);\n invariant(\n nativeViewTag != null,\n 'Unable to locate attached view in the native tree',\n );\n NativeAnimatedHelper.API.connectAnimatedNodeToView(\n this.__getNativeTag(),\n nativeViewTag,\n );\n }\n\n __disconnectAnimatedView(): void {\n invariant(this.__isNative, 'Expected node to be marked as \"native\"');\n const nativeViewTag: ?number = findNodeHandle(this._animatedView);\n invariant(\n nativeViewTag != null,\n 'Unable to locate attached view in the native tree',\n );\n NativeAnimatedHelper.API.disconnectAnimatedNodeFromView(\n this.__getNativeTag(),\n nativeViewTag,\n );\n }\n\n __restoreDefaultValues(): void {\n // When using the native driver, view properties need to be restored to\n // their default values manually since react no longer tracks them. This\n // is needed to handle cases where a prop driven by native animated is removed\n // after having been changed natively by an animation.\n if (this.__isNative) {\n NativeAnimatedHelper.API.restoreDefaultValues(this.__getNativeTag());\n }\n }\n\n __getNativeConfig(): Object {\n const propsConfig: {[string]: number} = {};\n for (const propKey in this._props) {\n const value = this._props[propKey];\n if (value instanceof AnimatedNode) {\n value.__makeNative(this.__getPlatformConfig());\n propsConfig[propKey] = value.__getNativeTag();\n }\n }\n return {\n type: 'props',\n props: propsConfig,\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport flattenStyle from '../../StyleSheet/flattenStyle';\nimport Platform from '../../Utilities/Platform';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedTransform from './AnimatedTransform';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nfunction createAnimatedStyle(inputStyle: any): Object {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n const style = flattenStyle(inputStyle);\n const animatedStyles: any = {};\n for (const key in style) {\n const value = style[key];\n if (key === 'transform') {\n animatedStyles[key] = new AnimatedTransform(value);\n } else if (value instanceof AnimatedNode) {\n animatedStyles[key] = value;\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n animatedStyles[key] = createAnimatedStyle(value);\n }\n }\n return animatedStyles;\n}\n\nfunction createStyleWithAnimatedTransform(inputStyle: any): Object {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n let style = flattenStyle(inputStyle) || ({}: {[string]: any});\n\n if (style.transform) {\n style = {\n ...style,\n transform: new AnimatedTransform(style.transform),\n };\n }\n return style;\n}\n\nexport default class AnimatedStyle extends AnimatedWithChildren {\n _inputStyle: any;\n _style: Object;\n\n constructor(style: any) {\n super();\n if (Platform.OS === 'web') {\n this._inputStyle = style;\n this._style = createAnimatedStyle(style);\n } else {\n this._style = createStyleWithAnimatedTransform(style);\n }\n }\n\n // Recursively get values for nested styles (like iOS's shadowOffset)\n _walkStyleAndGetValues(style: any): {[string]: any | {...}} {\n const updatedStyle: {[string]: any | {...}} = {};\n for (const key in style) {\n const value = style[key];\n if (value instanceof AnimatedNode) {\n updatedStyle[key] = value.__getValue();\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n // Support animating nested values (for example: shadowOffset.height)\n updatedStyle[key] = this._walkStyleAndGetValues(value);\n } else {\n updatedStyle[key] = value;\n }\n }\n return updatedStyle;\n }\n\n __getValue(): Object | Array {\n if (Platform.OS === 'web') {\n return [this._inputStyle, this._walkStyleAndGetValues(this._style)];\n }\n\n return this._walkStyleAndGetValues(this._style);\n }\n\n // Recursively get animated values for nested styles (like iOS's shadowOffset)\n _walkStyleAndGetAnimatedValues(style: any): {[string]: any | {...}} {\n const updatedStyle: {[string]: any | {...}} = {};\n for (const key in style) {\n const value = style[key];\n if (value instanceof AnimatedNode) {\n updatedStyle[key] = value.__getAnimatedValue();\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n // Support animating nested values (for example: shadowOffset.height)\n updatedStyle[key] = this._walkStyleAndGetAnimatedValues(value);\n }\n }\n return updatedStyle;\n }\n\n __getAnimatedValue(): Object {\n return this._walkStyleAndGetAnimatedValues(this._style);\n }\n\n __attach(): void {\n for (const key in this._style) {\n const value = this._style[key];\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n }\n\n __detach(): void {\n for (const key in this._style) {\n const value = this._style[key];\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n super.__detach();\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n for (const key in this._style) {\n const value = this._style[key];\n if (value instanceof AnimatedNode) {\n value.__makeNative(platformConfig);\n }\n }\n super.__makeNative(platformConfig);\n }\n\n __getNativeConfig(): Object {\n const styleConfig: {[string]: ?number} = {};\n for (const styleKey in this._style) {\n if (this._style[styleKey] instanceof AnimatedNode) {\n const style = this._style[styleKey];\n style.__makeNative(this.__getPlatformConfig());\n styleConfig[styleKey] = style.__getNativeTag();\n }\n // Non-animated styles are set using `setNativeProps`, no need\n // to pass those as a part of the node config\n }\n NativeAnimatedHelper.validateStyles(styleConfig);\n return {\n type: 'style',\n style: styleConfig,\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedTransform extends AnimatedWithChildren {\n _transforms: $ReadOnlyArray;\n\n constructor(transforms: $ReadOnlyArray) {\n super();\n this._transforms = transforms;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._transforms.forEach(transform => {\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n value.__makeNative(platformConfig);\n }\n }\n });\n super.__makeNative(platformConfig);\n }\n\n __getValue(): $ReadOnlyArray {\n return this._get(animatedNode => animatedNode.__getValue());\n }\n\n __getAnimatedValue(): $ReadOnlyArray {\n return this._get(animatedNode => animatedNode.__getAnimatedValue());\n }\n\n __attach(): void {\n this._transforms.forEach(transform => {\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n });\n }\n\n __detach(): void {\n this._transforms.forEach(transform => {\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n });\n super.__detach();\n }\n\n __getNativeConfig(): any {\n const transConfigs: Array = [];\n\n this._transforms.forEach(transform => {\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n transConfigs.push({\n type: 'animated',\n property: key,\n nodeTag: value.__getNativeTag(),\n });\n } else {\n transConfigs.push({\n type: 'static',\n property: key,\n value: NativeAnimatedHelper.transformDataType(value),\n });\n }\n }\n });\n\n NativeAnimatedHelper.validateTransform(transConfigs);\n return {\n type: 'transform',\n transforms: transConfigs,\n };\n }\n\n _get(getter: AnimatedNode => any): $ReadOnlyArray {\n return this._transforms.map(transform => {\n const result: {[string]: any} = {};\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n result[key] = getter(value);\n } else if (Array.isArray(value)) {\n result[key] = value.map(element => {\n if (element instanceof AnimatedNode) {\n return getter(element);\n } else {\n return element;\n }\n });\n } else if (typeof value === 'object') {\n result[key] = {};\n for (const [nestedKey, nestedValue] of Object.entries(value)) {\n if (nestedValue instanceof AnimatedNode) {\n result[key][nestedKey] = getter(nestedValue);\n } else {\n result[key][nestedKey] = nestedValue;\n }\n }\n } else {\n result[key] = value;\n }\n }\n return result;\n });\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from './AnimatedPlatformConfig';\n\nimport {findNodeHandle} from '../ReactNative/RendererProxy';\nimport NativeAnimatedHelper from './NativeAnimatedHelper';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\nimport invariant from 'invariant';\n\nexport type Mapping =\n | {[key: string]: Mapping, ...}\n | AnimatedValue\n | AnimatedValueXY;\nexport type EventConfig = {\n listener?: ?Function,\n useNativeDriver: boolean,\n platformConfig?: PlatformConfig,\n};\n\nexport function attachNativeEvent(\n viewRef: any,\n eventName: string,\n argMapping: $ReadOnlyArray,\n platformConfig: ?PlatformConfig,\n): {detach: () => void} {\n // Find animated values in `argMapping` and create an array representing their\n // key path inside the `nativeEvent` object. Ex.: ['contentOffset', 'x'].\n const eventMappings = [];\n\n const traverse = (value: mixed, path: Array) => {\n if (value instanceof AnimatedValue) {\n value.__makeNative(platformConfig);\n\n eventMappings.push({\n nativeEventPath: path,\n animatedValueTag: value.__getNativeTag(),\n });\n } else if (value instanceof AnimatedValueXY) {\n traverse(value.x, path.concat('x'));\n traverse(value.y, path.concat('y'));\n } else if (typeof value === 'object') {\n for (const key in value) {\n traverse(value[key], path.concat(key));\n }\n }\n };\n\n invariant(\n argMapping[0] && argMapping[0].nativeEvent,\n 'Native driven events only support animated values contained inside `nativeEvent`.',\n );\n\n // Assume that the event containing `nativeEvent` is always the first argument.\n traverse(argMapping[0].nativeEvent, []);\n\n const viewTag = findNodeHandle(viewRef);\n if (viewTag != null) {\n eventMappings.forEach(mapping => {\n NativeAnimatedHelper.API.addAnimatedEventToView(\n viewTag,\n eventName,\n mapping,\n );\n });\n }\n\n return {\n detach() {\n if (viewTag != null) {\n eventMappings.forEach(mapping => {\n NativeAnimatedHelper.API.removeAnimatedEventFromView(\n viewTag,\n eventName,\n // $FlowFixMe[incompatible-call]\n mapping.animatedValueTag,\n );\n });\n }\n },\n };\n}\n\nfunction validateMapping(argMapping: $ReadOnlyArray, args: any) {\n const validate = (recMapping: ?Mapping, recEvt: any, key: string) => {\n if (recMapping instanceof AnimatedValue) {\n invariant(\n typeof recEvt === 'number',\n 'Bad mapping of event key ' +\n key +\n ', should be number but got ' +\n typeof recEvt,\n );\n return;\n }\n if (recMapping instanceof AnimatedValueXY) {\n invariant(\n typeof recEvt.x === 'number' && typeof recEvt.y === 'number',\n 'Bad mapping of event key ' + key + ', should be XY but got ' + recEvt,\n );\n return;\n }\n if (typeof recEvt === 'number') {\n invariant(\n recMapping instanceof AnimatedValue,\n 'Bad mapping of type ' +\n typeof recMapping +\n ' for key ' +\n key +\n ', event value must map to AnimatedValue',\n );\n return;\n }\n invariant(\n typeof recMapping === 'object',\n 'Bad mapping of type ' + typeof recMapping + ' for key ' + key,\n );\n invariant(\n typeof recEvt === 'object',\n 'Bad event of type ' + typeof recEvt + ' for key ' + key,\n );\n for (const mappingKey in recMapping) {\n validate(recMapping[mappingKey], recEvt[mappingKey], mappingKey);\n }\n };\n\n invariant(\n args.length >= argMapping.length,\n 'Event has less arguments than mapping',\n );\n argMapping.forEach((mapping, idx) => {\n validate(mapping, args[idx], 'arg' + idx);\n });\n}\n\nexport class AnimatedEvent {\n _argMapping: $ReadOnlyArray;\n _listeners: Array = [];\n _attachedEvent: ?{detach: () => void, ...};\n __isNative: boolean;\n __platformConfig: ?PlatformConfig;\n\n constructor(argMapping: $ReadOnlyArray, config: EventConfig) {\n this._argMapping = argMapping;\n\n if (config == null) {\n console.warn('Animated.event now requires a second argument for options');\n config = {useNativeDriver: false};\n }\n\n if (config.listener) {\n this.__addListener(config.listener);\n }\n this._attachedEvent = null;\n this.__isNative = NativeAnimatedHelper.shouldUseNativeDriver(config);\n this.__platformConfig = config.platformConfig;\n }\n\n __addListener(callback: Function): void {\n this._listeners.push(callback);\n }\n\n __removeListener(callback: Function): void {\n this._listeners = this._listeners.filter(listener => listener !== callback);\n }\n\n __attach(viewRef: any, eventName: string): void {\n invariant(\n this.__isNative,\n 'Only native driven events need to be attached.',\n );\n\n this._attachedEvent = attachNativeEvent(\n viewRef,\n eventName,\n this._argMapping,\n this.__platformConfig,\n );\n }\n\n __detach(viewTag: any, eventName: string): void {\n invariant(\n this.__isNative,\n 'Only native driven events need to be detached.',\n );\n\n this._attachedEvent && this._attachedEvent.detach();\n }\n\n __getHandler(): any | ((...args: any) => void) {\n if (this.__isNative) {\n if (__DEV__) {\n let validatedMapping = false;\n return (...args: any) => {\n if (!validatedMapping) {\n validateMapping(this._argMapping, args);\n validatedMapping = true;\n }\n this._callListeners(...args);\n };\n } else {\n return this._callListeners;\n }\n }\n\n let validatedMapping = false;\n return (...args: any) => {\n if (__DEV__ && !validatedMapping) {\n validateMapping(this._argMapping, args);\n validatedMapping = true;\n }\n\n const traverse = (\n recMapping: ?(Mapping | AnimatedValue),\n recEvt: any,\n ) => {\n if (recMapping instanceof AnimatedValue) {\n if (typeof recEvt === 'number') {\n recMapping.setValue(recEvt);\n }\n } else if (recMapping instanceof AnimatedValueXY) {\n if (typeof recEvt === 'object') {\n traverse(recMapping.x, recEvt.x);\n traverse(recMapping.y, recEvt.y);\n }\n } else if (typeof recMapping === 'object') {\n for (const mappingKey in recMapping) {\n /* $FlowFixMe[prop-missing] (>=0.120.0) This comment suppresses an\n * error found when Flow v0.120 was deployed. To see the error,\n * delete this comment and run Flow. */\n traverse(recMapping[mappingKey], recEvt[mappingKey]);\n }\n }\n };\n this._argMapping.forEach((mapping, idx) => {\n traverse(mapping, args[idx]);\n });\n\n this._callListeners(...args);\n };\n }\n\n _callListeners = (...args: any) => {\n this._listeners.forEach(listener => listener(...args));\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\n\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport invariant from 'invariant';\n\nexport type AnimatedValueXYConfig = $ReadOnly<{\n useNativeDriver: boolean,\n}>;\ntype ValueXYListenerCallback = (value: {\n x: number,\n y: number,\n ...\n}) => mixed;\n\nlet _uniqueId = 1;\n\n/**\n * 2D Value for driving 2D animations, such as pan gestures. Almost identical\n * API to normal `Animated.Value`, but multiplexed.\n *\n * See https://reactnative.dev/docs/animatedvaluexy\n */\nexport default class AnimatedValueXY extends AnimatedWithChildren {\n x: AnimatedValue;\n y: AnimatedValue;\n _listeners: {\n [key: string]: {\n x: string,\n y: string,\n ...\n },\n ...\n };\n\n constructor(\n valueIn?: ?{\n +x: number | AnimatedValue,\n +y: number | AnimatedValue,\n ...\n },\n config?: ?AnimatedValueXYConfig,\n ) {\n super();\n const value: any = valueIn || {x: 0, y: 0}; // @flowfixme: shouldn't need `: any`\n if (typeof value.x === 'number' && typeof value.y === 'number') {\n this.x = new AnimatedValue(value.x);\n this.y = new AnimatedValue(value.y);\n } else {\n invariant(\n value.x instanceof AnimatedValue && value.y instanceof AnimatedValue,\n 'AnimatedValueXY must be initialized with an object of numbers or ' +\n 'AnimatedValues.',\n );\n this.x = value.x;\n this.y = value.y;\n }\n this._listeners = {};\n if (config && config.useNativeDriver) {\n this.__makeNative();\n }\n }\n\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#setvalue\n */\n setValue(value: {x: number, y: number, ...}) {\n this.x.setValue(value.x);\n this.y.setValue(value.y);\n }\n\n /**\n * Sets an offset that is applied on top of whatever value is set, whether\n * via `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#setoffset\n */\n setOffset(offset: {x: number, y: number, ...}) {\n this.x.setOffset(offset.x);\n this.y.setOffset(offset.y);\n }\n\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#flattenoffset\n */\n flattenOffset(): void {\n this.x.flattenOffset();\n this.y.flattenOffset();\n }\n\n /**\n * Sets the offset value to the base value, and resets the base value to\n * zero. The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#extractoffset\n */\n extractOffset(): void {\n this.x.extractOffset();\n this.y.extractOffset();\n }\n\n __getValue(): {\n x: number,\n y: number,\n ...\n } {\n return {\n x: this.x.__getValue(),\n y: this.y.__getValue(),\n };\n }\n\n /**\n * Stops any animation and resets the value to its original.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#resetanimation\n */\n resetAnimation(\n callback?: (value: {\n x: number,\n y: number,\n ...\n }) => void,\n ): void {\n this.x.resetAnimation();\n this.y.resetAnimation();\n callback && callback(this.__getValue());\n }\n\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#stopanimation\n */\n stopAnimation(\n callback?: (value: {\n x: number,\n y: number,\n ...\n }) => void,\n ): void {\n this.x.stopAnimation();\n this.y.stopAnimation();\n callback && callback(this.__getValue());\n }\n\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to synchronously read\n * the value because it might be driven natively.\n *\n * Returns a string that serves as an identifier for the listener.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#addlistener\n */\n addListener(callback: ValueXYListenerCallback): string {\n const id = String(_uniqueId++);\n const jointCallback = ({value: number}: any) => {\n callback(this.__getValue());\n };\n this._listeners[id] = {\n x: this.x.addListener(jointCallback),\n y: this.y.addListener(jointCallback),\n };\n return id;\n }\n\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#removelistener\n */\n removeListener(id: string): void {\n this.x.removeListener(this._listeners[id].x);\n this.y.removeListener(this._listeners[id].y);\n delete this._listeners[id];\n }\n\n /**\n * Remove all registered listeners.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#removealllisteners\n */\n removeAllListeners(): void {\n this.x.removeAllListeners();\n this.y.removeAllListeners();\n this._listeners = {};\n }\n\n /**\n * Converts `{x, y}` into `{left, top}` for use in style.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#getlayout\n */\n getLayout(): {[key: string]: AnimatedValue, ...} {\n return {\n left: this.x,\n top: this.y,\n };\n }\n\n /**\n * Converts `{x, y}` into a useable translation transform.\n *\n * See https://reactnative.dev/docs/animatedvaluexy#gettranslatetransform\n */\n getTranslateTransform(): Array<{[key: string]: AnimatedValue, ...}> {\n return [{translateX: this.x}, {translateY: this.y}];\n }\n\n __attach(): void {\n this.x.__addChild(this);\n this.y.__addChild(this);\n super.__attach();\n }\n\n __detach(): void {\n this.x.__removeChild(this);\n this.y.__removeChild(this);\n super.__detach();\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this.x.__makeNative(platformConfig);\n this.y.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n/**\n * IMPORTANT!!\n *\n * This module cannot import `ReactFabric` (directly or indirectly)\n * because it can be used by apps only using the legacy renderer.\n * In that case `nativeFabricUIManager` isn't defined and `ReactFabric` throws.\n */\n\nexport function isPublicInstance(maybeInstance: mixed): boolean {\n return (\n maybeInstance != null &&\n // TODO: implement a better check when the instance is defined in the React Native repository.\n (maybeInstance.__nativeTag != null ||\n // TODO: remove this check when syncing the new version of the renderer from React to React Native.\n isLegacyFabricInstance(maybeInstance))\n );\n}\n\nfunction isLegacyFabricInstance(maybeInstance: mixed): boolean {\n /* eslint-disable dot-notation */\n return (\n maybeInstance != null &&\n // $FlowExpectedError[incompatible-use]\n maybeInstance['_internalInstanceHandle'] != null &&\n maybeInstance['_internalInstanceHandle'].stateNode != null &&\n maybeInstance['_internalInstanceHandle'].stateNode.canonical != null\n );\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\nimport type AnimatedNode from './AnimatedNode';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedAddition extends AnimatedWithChildren {\n _a: AnimatedNode;\n _b: AnimatedNode;\n\n constructor(a: AnimatedNode | number, b: AnimatedNode | number) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._a.__makeNative(platformConfig);\n this._b.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getValue(): number {\n return this._a.__getValue() + this._b.__getValue();\n }\n\n interpolate(\n config: InterpolationConfigType,\n ): AnimatedInterpolation {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach(): void {\n this._a.__addChild(this);\n this._b.__addChild(this);\n }\n\n __detach(): void {\n this._a.__removeChild(this);\n this._b.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n return {\n type: 'addition',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()],\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\nimport type AnimatedNode from './AnimatedNode';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedDiffClamp extends AnimatedWithChildren {\n _a: AnimatedNode;\n _min: number;\n _max: number;\n _value: number;\n _lastValue: number;\n\n constructor(a: AnimatedNode, min: number, max: number) {\n super();\n\n this._a = a;\n this._min = min;\n this._max = max;\n this._value = this._lastValue = this._a.__getValue();\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._a.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n interpolate(\n config: InterpolationConfigType,\n ): AnimatedInterpolation {\n return new AnimatedInterpolation(this, config);\n }\n\n __getValue(): number {\n const value = this._a.__getValue();\n const diff = value - this._lastValue;\n this._lastValue = value;\n this._value = Math.min(Math.max(this._value + diff, this._min), this._max);\n return this._value;\n }\n\n __attach(): void {\n this._a.__addChild(this);\n }\n\n __detach(): void {\n this._a.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n return {\n type: 'diffclamp',\n input: this._a.__getNativeTag(),\n min: this._min,\n max: this._max,\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedDivision extends AnimatedWithChildren {\n _a: AnimatedNode;\n _b: AnimatedNode;\n _warnedAboutDivideByZero: boolean = false;\n\n constructor(a: AnimatedNode | number, b: AnimatedNode | number) {\n super();\n if (b === 0 || (b instanceof AnimatedNode && b.__getValue() === 0)) {\n console.error('Detected potential division by zero in AnimatedDivision');\n }\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._a.__makeNative(platformConfig);\n this._b.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getValue(): number {\n const a = this._a.__getValue();\n const b = this._b.__getValue();\n if (b === 0) {\n // Prevent spamming the console/LogBox\n if (!this._warnedAboutDivideByZero) {\n console.error('Detected division by zero in AnimatedDivision');\n this._warnedAboutDivideByZero = true;\n }\n // Passing infinity/NaN to Fabric will cause a native crash\n return 0;\n }\n this._warnedAboutDivideByZero = false;\n return a / b;\n }\n\n interpolate(\n config: InterpolationConfigType,\n ): AnimatedInterpolation {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach(): void {\n this._a.__addChild(this);\n this._b.__addChild(this);\n }\n\n __detach(): void {\n this._a.__removeChild(this);\n this._b.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n return {\n type: 'division',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()],\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\nimport type AnimatedNode from './AnimatedNode';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedModulo extends AnimatedWithChildren {\n _a: AnimatedNode;\n _modulus: number;\n\n constructor(a: AnimatedNode, modulus: number) {\n super();\n this._a = a;\n this._modulus = modulus;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._a.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getValue(): number {\n return (\n ((this._a.__getValue() % this._modulus) + this._modulus) % this._modulus\n );\n }\n\n interpolate(\n config: InterpolationConfigType,\n ): AnimatedInterpolation {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach(): void {\n this._a.__addChild(this);\n }\n\n __detach(): void {\n this._a.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n return {\n type: 'modulus',\n input: this._a.__getNativeTag(),\n modulus: this._modulus,\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\nimport type AnimatedNode from './AnimatedNode';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedMultiplication extends AnimatedWithChildren {\n _a: AnimatedNode;\n _b: AnimatedNode;\n\n constructor(a: AnimatedNode | number, b: AnimatedNode | number) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._a.__makeNative(platformConfig);\n this._b.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getValue(): number {\n return this._a.__getValue() * this._b.__getValue();\n }\n\n interpolate(\n config: InterpolationConfigType,\n ): AnimatedInterpolation {\n return new AnimatedInterpolation(this, config);\n }\n __attach(): void {\n this._a.__addChild(this);\n this._b.__addChild(this);\n }\n\n __detach(): void {\n this._a.__removeChild(this);\n this._b.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n return {\n type: 'multiplication',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()],\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {InterpolationConfigType} from './AnimatedInterpolation';\nimport type AnimatedNode from './AnimatedNode';\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nexport default class AnimatedSubtraction extends AnimatedWithChildren {\n _a: AnimatedNode;\n _b: AnimatedNode;\n\n constructor(a: AnimatedNode | number, b: AnimatedNode | number) {\n super();\n this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this._a.__makeNative(platformConfig);\n this._b.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n }\n\n __getValue(): number {\n return this._a.__getValue() - this._b.__getValue();\n }\n\n interpolate(\n config: InterpolationConfigType,\n ): AnimatedInterpolation {\n return new AnimatedInterpolation(this, config);\n }\n\n __attach(): void {\n this._a.__addChild(this);\n this._b.__addChild(this);\n }\n\n __detach(): void {\n this._a.__removeChild(this);\n this._b.__removeChild(this);\n super.__detach();\n }\n\n __getNativeConfig(): any {\n return {\n type: 'subtraction',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()],\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PlatformConfig} from '../AnimatedPlatformConfig';\nimport type {EndCallback} from '../animations/Animation';\nimport type AnimatedValue from './AnimatedValue';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport AnimatedNode from './AnimatedNode';\n\nexport default class AnimatedTracking extends AnimatedNode {\n _value: AnimatedValue;\n _parent: AnimatedNode;\n _callback: ?EndCallback;\n _animationConfig: Object;\n _animationClass: any;\n _useNativeDriver: boolean;\n\n constructor(\n value: AnimatedValue,\n parent: AnimatedNode,\n animationClass: any,\n animationConfig: Object,\n callback?: ?EndCallback,\n ) {\n super();\n this._value = value;\n this._parent = parent;\n this._animationClass = animationClass;\n this._animationConfig = animationConfig;\n this._useNativeDriver =\n NativeAnimatedHelper.shouldUseNativeDriver(animationConfig);\n this._callback = callback;\n this.__attach();\n }\n\n __makeNative(platformConfig: ?PlatformConfig) {\n this.__isNative = true;\n this._parent.__makeNative(platformConfig);\n super.__makeNative(platformConfig);\n this._value.__makeNative(platformConfig);\n }\n\n __getValue(): Object {\n return this._parent.__getValue();\n }\n\n __attach(): void {\n this._parent.__addChild(this);\n if (this._useNativeDriver) {\n // when the tracking starts we need to convert this node to a \"native node\"\n // so that the parent node will be made \"native\" too. This is necessary as\n // if we don't do this `update` method will get called. At that point it\n // may be too late as it would mean the JS driver has already started\n // updating node values\n let {platformConfig} = this._animationConfig;\n this.__makeNative(platformConfig);\n }\n }\n\n __detach(): void {\n this._parent.__removeChild(this);\n super.__detach();\n }\n\n update(): void {\n this._value.animate(\n new this._animationClass({\n ...this._animationConfig,\n toValue: (this._animationConfig.toValue: any).__getValue(),\n }),\n this._callback,\n );\n }\n\n __getNativeConfig(): any {\n const animation = new this._animationClass({\n ...this._animationConfig,\n // remove toValue from the config as it's a ref to Animated.Value\n toValue: undefined,\n });\n const animationConfig = animation.__getNativeAnimationConfig();\n return {\n type: 'tracking',\n animationId: NativeAnimatedHelper.generateNewAnimationId(),\n animationConfig,\n toValue: this._parent.__getNativeTag(),\n value: this._value.__getNativeTag(),\n };\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {Numeric as AnimatedNumeric} from './AnimatedImplementation';\nimport type {EndResult} from './animations/Animation';\nimport type {EndCallback} from './animations/Animation';\nimport type {DecayAnimationConfig} from './animations/DecayAnimation';\nimport type {SpringAnimationConfig} from './animations/SpringAnimation';\nimport type {TimingAnimationConfig} from './animations/TimingAnimation';\n\nimport {AnimatedEvent, attachNativeEvent} from './AnimatedEvent';\nimport AnimatedImplementation from './AnimatedImplementation';\nimport createAnimatedComponent from './createAnimatedComponent';\nimport AnimatedColor from './nodes/AnimatedColor';\nimport AnimatedInterpolation from './nodes/AnimatedInterpolation';\nimport AnimatedNode from './nodes/AnimatedNode';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\n\n/**\n * Animations are a source of flakiness in snapshot testing. This mock replaces\n * animation functions from AnimatedImplementation with empty animations for\n * predictability in tests. When possible the animation will run immediately\n * to the final state.\n */\n\n// Prevent any callback invocation from recursively triggering another\n// callback, which may trigger another animation\nlet inAnimationCallback = false;\nfunction mockAnimationStart(\n start: (callback?: ?EndCallback) => void,\n): (callback?: ?EndCallback) => void {\n return callback => {\n const guardedCallback =\n callback == null\n ? callback\n : (...args: Array) => {\n if (inAnimationCallback) {\n console.warn(\n 'Ignoring recursive animation callback when running mock animations',\n );\n return;\n }\n inAnimationCallback = true;\n try {\n callback(...args);\n } finally {\n inAnimationCallback = false;\n }\n };\n start(guardedCallback);\n };\n}\n\nexport type CompositeAnimation = {\n start: (callback?: ?EndCallback) => void,\n stop: () => void,\n reset: () => void,\n _startNativeLoop: (iterations?: number) => void,\n _isUsingNativeDriver: () => boolean,\n ...\n};\n\nconst emptyAnimation = {\n start: () => {},\n stop: () => {},\n reset: () => {},\n _startNativeLoop: () => {},\n _isUsingNativeDriver: () => {\n return false;\n },\n};\n\nconst mockCompositeAnimation = (\n animations: Array,\n): CompositeAnimation => ({\n ...emptyAnimation,\n start: mockAnimationStart((callback?: ?EndCallback): void => {\n animations.forEach(animation => animation.start());\n callback?.({finished: true});\n }),\n});\n\nconst spring = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: SpringAnimationConfig,\n): CompositeAnimation {\n const anyValue: any = value;\n return {\n ...emptyAnimation,\n start: mockAnimationStart((callback?: ?EndCallback): void => {\n anyValue.setValue(config.toValue);\n callback?.({finished: true});\n }),\n };\n};\n\nconst timing = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: TimingAnimationConfig,\n): CompositeAnimation {\n const anyValue: any = value;\n return {\n ...emptyAnimation,\n start: mockAnimationStart((callback?: ?EndCallback): void => {\n anyValue.setValue(config.toValue);\n callback?.({finished: true});\n }),\n };\n};\n\nconst decay = function (\n value: AnimatedValue | AnimatedValueXY | AnimatedColor,\n config: DecayAnimationConfig,\n): CompositeAnimation {\n return emptyAnimation;\n};\n\nconst sequence = function (\n animations: Array,\n): CompositeAnimation {\n return mockCompositeAnimation(animations);\n};\n\ntype ParallelConfig = {stopTogether?: boolean, ...};\nconst parallel = function (\n animations: Array,\n config?: ?ParallelConfig,\n): CompositeAnimation {\n return mockCompositeAnimation(animations);\n};\n\nconst delay = function (time: number): CompositeAnimation {\n return emptyAnimation;\n};\n\nconst stagger = function (\n time: number,\n animations: Array,\n): CompositeAnimation {\n return mockCompositeAnimation(animations);\n};\n\ntype LoopAnimationConfig = {\n iterations: number,\n resetBeforeIteration?: boolean,\n ...\n};\n\nconst loop = function (\n animation: CompositeAnimation,\n // $FlowFixMe[prop-missing]\n {iterations = -1}: LoopAnimationConfig = {},\n): CompositeAnimation {\n return emptyAnimation;\n};\n\nexport type {AnimatedNumeric as Numeric};\n\nexport default {\n Value: AnimatedValue,\n ValueXY: AnimatedValueXY,\n Color: AnimatedColor,\n Interpolation: AnimatedInterpolation,\n Node: AnimatedNode,\n decay,\n timing,\n spring,\n add: AnimatedImplementation.add,\n subtract: AnimatedImplementation.subtract,\n divide: AnimatedImplementation.divide,\n multiply: AnimatedImplementation.multiply,\n modulo: AnimatedImplementation.modulo,\n diffClamp: AnimatedImplementation.diffClamp,\n delay,\n sequence,\n parallel,\n stagger,\n loop,\n event: AnimatedImplementation.event,\n createAnimatedComponent,\n attachNativeEvent,\n forkEvent: AnimatedImplementation.forkEvent,\n unforkEvent: AnimatedImplementation.unforkEvent,\n Event: AnimatedEvent,\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {AnimatedComponentType} from '../createAnimatedComponent';\n\nimport FlatList from '../../Lists/FlatList';\nimport createAnimatedComponent from '../createAnimatedComponent';\nimport * as React from 'react';\n\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nconst FlatListWithEventThrottle = React.forwardRef(\n (\n props: React.ElementConfig,\n ref:\n | ((null | FlatList) => mixed)\n | {current: null | FlatList, ...},\n ) => ,\n);\n\nexport default (createAnimatedComponent(\n FlatListWithEventThrottle,\n): AnimatedComponentType<\n React.ElementConfig,\n React.ElementRef,\n>);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport typeof ScrollViewNativeComponent from '../Components/ScrollView/ScrollViewNativeComponent';\nimport type {ViewStyleProp} from '../StyleSheet/StyleSheet';\nimport type {\n RenderItemProps,\n RenderItemType,\n ViewabilityConfigCallbackPair,\n ViewToken,\n} from '@react-native/virtualized-lists';\n\nimport {type ScrollResponderType} from '../Components/ScrollView/ScrollView';\nimport {\n VirtualizedList,\n keyExtractor as defaultKeyExtractor,\n} from '@react-native/virtualized-lists';\nimport memoizeOne from 'memoize-one';\n\nconst View = require('../Components/View/View');\nconst StyleSheet = require('../StyleSheet/StyleSheet');\nconst deepDiffer = require('../Utilities/differ/deepDiffer');\nconst Platform = require('../Utilities/Platform');\nconst invariant = require('invariant');\nconst React = require('react');\n\ntype RequiredProps = {|\n /**\n * An array (or array-like list) of items to render. Other data types can be\n * used by targeting VirtualizedList directly.\n */\n data: ?$ArrayLike,\n|};\ntype OptionalProps = {|\n /**\n * Takes an item from `data` and renders it into the list. Example usage:\n *\n * (\n * \n * )}\n * data={[{title: 'Title Text', key: 'item1'}]}\n * renderItem={({item, separators}) => (\n * this._onPress(item)}\n * onShowUnderlay={separators.highlight}\n * onHideUnderlay={separators.unhighlight}>\n * \n * {item.title}\n * \n * \n * )}\n * />\n *\n * Provides additional metadata like `index` if you need it, as well as a more generic\n * `separators.updateProps` function which let's you set whatever props you want to change the\n * rendering of either the leading separator or trailing separator in case the more common\n * `highlight` and `unhighlight` (which set the `highlighted: boolean` prop) are insufficient for\n * your use-case.\n */\n renderItem?: ?RenderItemType,\n\n /**\n * Optional custom style for multi-item rows generated when numColumns > 1.\n */\n columnWrapperStyle?: ViewStyleProp,\n /**\n * A marker property for telling the list to re-render (since it implements `PureComponent`). If\n * any of your `renderItem`, Header, Footer, etc. functions depend on anything outside of the\n * `data` prop, stick it here and treat it immutably.\n */\n extraData?: any,\n /**\n * `getItemLayout` is an optional optimizations that let us skip measurement of dynamic content if\n * you know the height of items a priori. `getItemLayout` is the most efficient, and is easy to\n * use if you have fixed height items, for example:\n *\n * getItemLayout={(data, index) => (\n * {length: ITEM_HEIGHT, offset: ITEM_HEIGHT * index, index}\n * )}\n *\n * Adding `getItemLayout` can be a great performance boost for lists of several hundred items.\n * Remember to include separator length (height or width) in your offset calculation if you\n * specify `ItemSeparatorComponent`.\n */\n getItemLayout?: (\n data: ?$ArrayLike,\n index: number,\n ) => {\n length: number,\n offset: number,\n index: number,\n ...\n },\n /**\n * If true, renders items next to each other horizontally instead of stacked vertically.\n */\n horizontal?: ?boolean,\n /**\n * How many items to render in the initial batch. This should be enough to fill the screen but not\n * much more. Note these items will never be unmounted as part of the windowed rendering in order\n * to improve perceived performance of scroll-to-top actions.\n */\n initialNumToRender?: ?number,\n /**\n * Instead of starting at the top with the first item, start at `initialScrollIndex`. This\n * disables the \"scroll to top\" optimization that keeps the first `initialNumToRender` items\n * always rendered and immediately renders the items starting at this initial index. Requires\n * `getItemLayout` to be implemented.\n */\n initialScrollIndex?: ?number,\n /**\n * Reverses the direction of scroll. Uses scale transforms of -1.\n */\n inverted?: ?boolean,\n /**\n * Used to extract a unique key for a given item at the specified index. Key is used for caching\n * and as the react key to track item re-ordering. The default extractor checks `item.key`, then\n * falls back to using the index, like React does.\n */\n keyExtractor?: ?(item: ItemT, index: number) => string,\n /**\n * Multiple columns can only be rendered with `horizontal={false}` and will zig-zag like a\n * `flexWrap` layout. Items should all be the same height - masonry layouts are not supported.\n *\n * The default value is 1.\n */\n numColumns?: number,\n /**\n * Note: may have bugs (missing content) in some circumstances - use at your own risk.\n *\n * This may improve scroll performance for large lists.\n *\n * The default value is true for Android.\n */\n removeClippedSubviews?: boolean,\n /**\n * See `ScrollView` for flow type and further documentation.\n */\n fadingEdgeLength?: ?number,\n /**\n * Enable an optimization to memoize the item renderer to prevent unnecessary rerenders.\n */\n strictMode?: boolean,\n|};\n\n/**\n * Default Props Helper Functions\n * Use the following helper functions for default values\n */\n\n// removeClippedSubviewsOrDefault(this.props.removeClippedSubviews)\nfunction removeClippedSubviewsOrDefault(removeClippedSubviews: ?boolean) {\n return removeClippedSubviews ?? Platform.OS === 'android';\n}\n\n// numColumnsOrDefault(this.props.numColumns)\nfunction numColumnsOrDefault(numColumns: ?number) {\n return numColumns ?? 1;\n}\n\nfunction isArrayLike(data: mixed): boolean {\n // $FlowExpectedError[incompatible-use]\n return typeof Object(data).length === 'number';\n}\n\ntype FlatListProps = {|\n ...RequiredProps,\n ...OptionalProps,\n|};\n\ntype VirtualizedListProps = React.ElementConfig;\n\nexport type Props = {\n ...$Diff<\n VirtualizedListProps,\n {\n getItem: $PropertyType,\n getItemCount: $PropertyType,\n getItemLayout: $PropertyType,\n renderItem: $PropertyType,\n keyExtractor: $PropertyType,\n ...\n },\n >,\n ...FlatListProps,\n ...\n};\n\n/**\n * A performant interface for rendering simple, flat lists, supporting the most handy features:\n *\n * - Fully cross-platform.\n * - Optional horizontal mode.\n * - Configurable viewability callbacks.\n * - Header support.\n * - Footer support.\n * - Separator support.\n * - Pull to Refresh.\n * - Scroll loading.\n * - ScrollToIndex support.\n *\n * If you need section support, use [``](docs/sectionlist.html).\n *\n * Minimal Example:\n *\n * {item.key}}\n * />\n *\n * More complex, multi-select example demonstrating `PureComponent` usage for perf optimization and avoiding bugs.\n *\n * - By binding the `onPressItem` handler, the props will remain `===` and `PureComponent` will\n * prevent wasteful re-renders unless the actual `id`, `selected`, or `title` props change, even\n * if the components rendered in `MyListItem` did not have such optimizations.\n * - By passing `extraData={this.state}` to `FlatList` we make sure `FlatList` itself will re-render\n * when the `state.selected` changes. Without setting this prop, `FlatList` would not know it\n * needs to re-render any items because it is also a `PureComponent` and the prop comparison will\n * not show any changes.\n * - `keyExtractor` tells the list to use the `id`s for the react keys instead of the default `key` property.\n *\n *\n * class MyListItem extends React.PureComponent {\n * _onPress = () => {\n * this.props.onPressItem(this.props.id);\n * };\n *\n * render() {\n * const textColor = this.props.selected ? \"red\" : \"black\";\n * return (\n * \n * \n * \n * {this.props.title}\n * \n * \n * \n * );\n * }\n * }\n *\n * class MultiSelectList extends React.PureComponent {\n * state = {selected: (new Map(): Map)};\n *\n * _keyExtractor = (item, index) => item.id;\n *\n * _onPressItem = (id: string) => {\n * // updater functions are preferred for transactional updates\n * this.setState((state) => {\n * // copy the map rather than modifying state.\n * const selected = new Map(state.selected);\n * selected.set(id, !selected.get(id)); // toggle\n * return {selected};\n * });\n * };\n *\n * _renderItem = ({item}) => (\n * \n * );\n *\n * render() {\n * return (\n * \n * );\n * }\n * }\n *\n * This is a convenience wrapper around [``](docs/virtualizedlist.html),\n * and thus inherits its props (as well as those of `ScrollView`) that aren't explicitly listed\n * here, along with the following caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n * Also inherits [ScrollView Props](docs/scrollview.html#props), unless it is nested in another FlatList of same orientation.\n */\nclass FlatList extends React.PureComponent, void> {\n props: Props;\n /**\n * Scrolls to the end of the content. May be janky without `getItemLayout` prop.\n */\n scrollToEnd(params?: ?{animated?: ?boolean, ...}) {\n if (this._listRef) {\n this._listRef.scrollToEnd(params);\n }\n }\n\n /**\n * Scrolls to the item at the specified index such that it is positioned in the viewable area\n * such that `viewPosition` 0 places it at the top, 1 at the bottom, and 0.5 centered in the\n * middle. `viewOffset` is a fixed number of pixels to offset the final target position.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n scrollToIndex(params: {\n animated?: ?boolean,\n index: number,\n viewOffset?: number,\n viewPosition?: number,\n ...\n }) {\n if (this._listRef) {\n this._listRef.scrollToIndex(params);\n }\n }\n\n /**\n * Requires linear scan through data - use `scrollToIndex` instead if possible.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n scrollToItem(params: {\n animated?: ?boolean,\n item: ItemT,\n viewOffset?: number,\n viewPosition?: number,\n ...\n }) {\n if (this._listRef) {\n this._listRef.scrollToItem(params);\n }\n }\n\n /**\n * Scroll to a specific content pixel offset in the list.\n *\n * Check out [scrollToOffset](docs/virtualizedlist.html#scrolltooffset) of VirtualizedList\n */\n scrollToOffset(params: {animated?: ?boolean, offset: number, ...}) {\n if (this._listRef) {\n this._listRef.scrollToOffset(params);\n }\n }\n\n /**\n * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n * taps on items or by navigation actions.\n */\n recordInteraction() {\n if (this._listRef) {\n this._listRef.recordInteraction();\n }\n }\n\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n flashScrollIndicators() {\n if (this._listRef) {\n this._listRef.flashScrollIndicators();\n }\n }\n\n /**\n * Provides a handle to the underlying scroll responder.\n */\n getScrollResponder(): ?ScrollResponderType {\n if (this._listRef) {\n return this._listRef.getScrollResponder();\n }\n }\n\n /**\n * Provides a reference to the underlying host component\n */\n getNativeScrollRef():\n | ?React.ElementRef\n | ?React.ElementRef {\n if (this._listRef) {\n /* $FlowFixMe[incompatible-return] Suppresses errors found when fixing\n * TextInput typing */\n return this._listRef.getScrollRef();\n }\n }\n\n getScrollableNode(): any {\n if (this._listRef) {\n return this._listRef.getScrollableNode();\n }\n }\n\n setNativeProps(props: {[string]: mixed, ...}) {\n if (this._listRef) {\n this._listRef.setNativeProps(props);\n }\n }\n\n constructor(props: Props) {\n super(props);\n this._checkProps(this.props);\n if (this.props.viewabilityConfigCallbackPairs) {\n this._virtualizedListPairs =\n this.props.viewabilityConfigCallbackPairs.map(pair => ({\n viewabilityConfig: pair.viewabilityConfig,\n onViewableItemsChanged: this._createOnViewableItemsChanged(\n pair.onViewableItemsChanged,\n ),\n }));\n } else if (this.props.onViewableItemsChanged) {\n this._virtualizedListPairs.push({\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To\n * see the error delete this comment and run Flow. */\n viewabilityConfig: this.props.viewabilityConfig,\n onViewableItemsChanged: this._createOnViewableItemsChanged(\n this.props.onViewableItemsChanged,\n ),\n });\n }\n }\n\n // $FlowFixMe[missing-local-annot]\n componentDidUpdate(prevProps: Props) {\n invariant(\n prevProps.numColumns === this.props.numColumns,\n 'Changing numColumns on the fly is not supported. Change the key prop on FlatList when ' +\n 'changing the number of columns to force a fresh render of the component.',\n );\n invariant(\n prevProps.onViewableItemsChanged === this.props.onViewableItemsChanged,\n 'Changing onViewableItemsChanged on the fly is not supported',\n );\n invariant(\n !deepDiffer(prevProps.viewabilityConfig, this.props.viewabilityConfig),\n 'Changing viewabilityConfig on the fly is not supported',\n );\n invariant(\n prevProps.viewabilityConfigCallbackPairs ===\n this.props.viewabilityConfigCallbackPairs,\n 'Changing viewabilityConfigCallbackPairs on the fly is not supported',\n );\n\n this._checkProps(this.props);\n }\n\n _listRef: ?React.ElementRef;\n _virtualizedListPairs: Array = [];\n\n _captureRef = (ref: ?React.ElementRef) => {\n this._listRef = ref;\n };\n\n // $FlowFixMe[missing-local-annot]\n _checkProps(props: Props) {\n const {\n // $FlowFixMe[prop-missing] this prop doesn't exist, is only used for an invariant\n getItem,\n // $FlowFixMe[prop-missing] this prop doesn't exist, is only used for an invariant\n getItemCount,\n horizontal,\n columnWrapperStyle,\n onViewableItemsChanged,\n viewabilityConfigCallbackPairs,\n } = props;\n const numColumns = numColumnsOrDefault(this.props.numColumns);\n invariant(\n !getItem && !getItemCount,\n 'FlatList does not support custom data formats.',\n );\n if (numColumns > 1) {\n invariant(!horizontal, 'numColumns does not support horizontal.');\n } else {\n invariant(\n !columnWrapperStyle,\n 'columnWrapperStyle not supported for single column lists',\n );\n }\n invariant(\n !(onViewableItemsChanged && viewabilityConfigCallbackPairs),\n 'FlatList does not support setting both onViewableItemsChanged and ' +\n 'viewabilityConfigCallbackPairs.',\n );\n }\n\n _getItem = (\n data: $ArrayLike,\n index: number,\n ): ?(ItemT | $ReadOnlyArray) => {\n const numColumns = numColumnsOrDefault(this.props.numColumns);\n if (numColumns > 1) {\n const ret = [];\n for (let kk = 0; kk < numColumns; kk++) {\n const itemIndex = index * numColumns + kk;\n if (itemIndex < data.length) {\n const item = data[itemIndex];\n ret.push(item);\n }\n }\n return ret;\n } else {\n return data[index];\n }\n };\n\n _getItemCount = (data: ?$ArrayLike): number => {\n // Legacy behavior of FlatList was to forward \"undefined\" length if invalid\n // data like a non-arraylike object is passed. VirtualizedList would then\n // coerce this, and the math would work out to no-op. For compatibility, if\n // invalid data is passed, we tell VirtualizedList there are zero items\n // available to prevent it from trying to read from the invalid data\n // (without propagating invalidly typed data).\n if (data != null && isArrayLike(data)) {\n const numColumns = numColumnsOrDefault(this.props.numColumns);\n return numColumns > 1 ? Math.ceil(data.length / numColumns) : data.length;\n } else {\n return 0;\n }\n };\n\n _keyExtractor = (items: ItemT | Array, index: number): string => {\n const numColumns = numColumnsOrDefault(this.props.numColumns);\n const keyExtractor = this.props.keyExtractor ?? defaultKeyExtractor;\n\n if (numColumns > 1) {\n invariant(\n Array.isArray(items),\n 'FlatList: Encountered internal consistency error, expected each item to consist of an ' +\n 'array with 1-%s columns; instead, received a single item.',\n numColumns,\n );\n return items\n .map((item, kk) =>\n keyExtractor(((item: $FlowFixMe): ItemT), index * numColumns + kk),\n )\n .join(':');\n }\n\n // $FlowFixMe[incompatible-call] Can't call keyExtractor with an array\n return keyExtractor(items, index);\n };\n\n _pushMultiColumnViewable(arr: Array, v: ViewToken): void {\n const numColumns = numColumnsOrDefault(this.props.numColumns);\n const keyExtractor = this.props.keyExtractor ?? defaultKeyExtractor;\n v.item.forEach((item, ii) => {\n invariant(v.index != null, 'Missing index!');\n const index = v.index * numColumns + ii;\n arr.push({...v, item, key: keyExtractor(item, index), index});\n });\n }\n\n _createOnViewableItemsChanged(\n onViewableItemsChanged: ?(info: {\n viewableItems: Array,\n changed: Array,\n ...\n }) => void,\n // $FlowFixMe[missing-local-annot]\n ) {\n return (info: {\n viewableItems: Array,\n changed: Array,\n ...\n }) => {\n const numColumns = numColumnsOrDefault(this.props.numColumns);\n if (onViewableItemsChanged) {\n if (numColumns > 1) {\n const changed: Array = [];\n const viewableItems: Array = [];\n info.viewableItems.forEach(v =>\n this._pushMultiColumnViewable(viewableItems, v),\n );\n info.changed.forEach(v => this._pushMultiColumnViewable(changed, v));\n onViewableItemsChanged({viewableItems, changed});\n } else {\n onViewableItemsChanged(info);\n }\n }\n };\n }\n\n _renderer = (\n ListItemComponent: ?(React.ComponentType | React.Element),\n renderItem: ?RenderItemType,\n columnWrapperStyle: ?ViewStyleProp,\n numColumns: ?number,\n extraData: ?any,\n // $FlowFixMe[missing-local-annot]\n ) => {\n const cols = numColumnsOrDefault(numColumns);\n\n const render = (props: RenderItemProps): React.Node => {\n if (ListItemComponent) {\n // $FlowFixMe[not-a-component] Component isn't valid\n // $FlowFixMe[incompatible-type-arg] Component isn't valid\n // $FlowFixMe[incompatible-return] Component isn't valid\n return ;\n } else if (renderItem) {\n // $FlowFixMe[incompatible-call]\n return renderItem(props);\n } else {\n return null;\n }\n };\n\n const renderProp = (info: RenderItemProps) => {\n if (cols > 1) {\n const {item, index} = info;\n invariant(\n Array.isArray(item),\n 'Expected array of items with numColumns > 1',\n );\n return (\n \n {item.map((it, kk) => {\n const element = render({\n // $FlowFixMe[incompatible-call]\n item: it,\n index: index * cols + kk,\n separators: info.separators,\n });\n return element != null ? (\n {element}\n ) : null;\n })}\n \n );\n } else {\n return render(info);\n }\n };\n\n return ListItemComponent\n ? {ListItemComponent: renderProp}\n : {renderItem: renderProp};\n };\n\n // $FlowFixMe[missing-local-annot]\n _memoizedRenderer = memoizeOne(this._renderer);\n\n render(): React.Node {\n const {\n numColumns,\n columnWrapperStyle,\n removeClippedSubviews: _removeClippedSubviews,\n strictMode = false,\n ...restProps\n } = this.props;\n\n const renderer = strictMode ? this._memoizedRenderer : this._renderer;\n\n return (\n // $FlowFixMe[incompatible-exact] - `restProps` (`Props`) is inexact.\n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n row: {flexDirection: 'row'},\n});\n\nmodule.exports = FlatList;\n","'use strict';\n\nvar safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nmodule.exports = memoizeOne;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nimport {keyExtractor} from './Lists/VirtualizeUtils';\n\nimport typeof VirtualizedList from './Lists/VirtualizedList';\nimport typeof VirtualizedSectionList from './Lists/VirtualizedSectionList';\nimport {typeof VirtualizedListContextResetter} from './Lists/VirtualizedListContext';\nimport typeof ViewabilityHelper from './Lists/ViewabilityHelper';\nimport typeof FillRateHelper from './Lists/FillRateHelper';\n\nexport type {\n ViewToken,\n ViewabilityConfig,\n ViewabilityConfigCallbackPair,\n} from './Lists/ViewabilityHelper';\nexport type {\n CellRendererProps,\n RenderItemProps,\n RenderItemType,\n Separators,\n} from './Lists/VirtualizedListProps';\nexport type {\n Props as VirtualizedSectionListProps,\n ScrollToLocationParamsType,\n SectionBase,\n} from './Lists/VirtualizedSectionList';\nexport type {FillRateInfo} from './Lists/FillRateHelper';\n\nmodule.exports = {\n keyExtractor,\n\n get VirtualizedList(): VirtualizedList {\n return require('./Lists/VirtualizedList');\n },\n get VirtualizedSectionList(): VirtualizedSectionList {\n return require('./Lists/VirtualizedSectionList');\n },\n get VirtualizedListContextResetter(): VirtualizedListContextResetter {\n const VirtualizedListContext = require('./Lists/VirtualizedListContext');\n return VirtualizedListContext.VirtualizedListContextResetter;\n },\n get ViewabilityHelper(): ViewabilityHelper {\n return require('./Lists/ViewabilityHelper');\n },\n get FillRateHelper(): FillRateHelper {\n return require('./Lists/FillRateHelper');\n },\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {FrameMetricProps} from './VirtualizedListProps';\n\n/**\n * Used to find the indices of the frames that overlap the given offsets. Useful for finding the\n * items that bound different windows of content, such as the visible area or the buffered overscan\n * area.\n */\nexport function elementsThatOverlapOffsets(\n offsets: Array,\n props: FrameMetricProps,\n getFrameMetrics: (\n index: number,\n props: FrameMetricProps,\n ) => {\n length: number,\n offset: number,\n ...\n },\n zoomScale: number = 1,\n): Array {\n const itemCount = props.getItemCount(props.data);\n const result = [];\n for (let offsetIndex = 0; offsetIndex < offsets.length; offsetIndex++) {\n const currentOffset = offsets[offsetIndex];\n let left = 0;\n let right = itemCount - 1;\n\n while (left <= right) {\n // eslint-disable-next-line no-bitwise\n const mid = left + ((right - left) >>> 1);\n const frame = getFrameMetrics(mid, props);\n const scaledOffsetStart = frame.offset * zoomScale;\n const scaledOffsetEnd = (frame.offset + frame.length) * zoomScale;\n\n // We want the first frame that contains the offset, with inclusive bounds. Thus, for the\n // first frame the scaledOffsetStart is inclusive, while for other frames it is exclusive.\n if (\n (mid === 0 && currentOffset < scaledOffsetStart) ||\n (mid !== 0 && currentOffset <= scaledOffsetStart)\n ) {\n right = mid - 1;\n } else if (currentOffset > scaledOffsetEnd) {\n left = mid + 1;\n } else {\n result[offsetIndex] = mid;\n break;\n }\n }\n }\n\n return result;\n}\n\n/**\n * Computes the number of elements in the `next` range that are new compared to the `prev` range.\n * Handy for calculating how many new items will be rendered when the render window changes so we\n * can restrict the number of new items render at once so that content can appear on the screen\n * faster.\n */\nexport function newRangeCount(\n prev: {\n first: number,\n last: number,\n ...\n },\n next: {\n first: number,\n last: number,\n ...\n },\n): number {\n return (\n next.last -\n next.first +\n 1 -\n Math.max(\n 0,\n 1 + Math.min(next.last, prev.last) - Math.max(next.first, prev.first),\n )\n );\n}\n\n/**\n * Custom logic for determining which items should be rendered given the current frame and scroll\n * metrics, as well as the previous render state. The algorithm may evolve over time, but generally\n * prioritizes the visible area first, then expands that with overscan regions ahead and behind,\n * biased in the direction of scroll.\n */\nexport function computeWindowedRenderLimits(\n props: FrameMetricProps,\n maxToRenderPerBatch: number,\n windowSize: number,\n prev: {\n first: number,\n last: number,\n },\n getFrameMetricsApprox: (\n index: number,\n props: FrameMetricProps,\n ) => {\n length: number,\n offset: number,\n ...\n },\n scrollMetrics: {\n dt: number,\n offset: number,\n velocity: number,\n visibleLength: number,\n zoomScale: number,\n ...\n },\n): {\n first: number,\n last: number,\n} {\n const itemCount = props.getItemCount(props.data);\n if (itemCount === 0) {\n return {first: 0, last: -1};\n }\n const {offset, velocity, visibleLength, zoomScale = 1} = scrollMetrics;\n\n // Start with visible area, then compute maximum overscan region by expanding from there, biased\n // in the direction of scroll. Total overscan area is capped, which should cap memory consumption\n // too.\n const visibleBegin = Math.max(0, offset);\n const visibleEnd = visibleBegin + visibleLength;\n const overscanLength = (windowSize - 1) * visibleLength;\n\n // Considering velocity seems to introduce more churn than it's worth.\n const leadFactor = 0.5; // Math.max(0, Math.min(1, velocity / 25 + 0.5));\n\n const fillPreference =\n velocity > 1 ? 'after' : velocity < -1 ? 'before' : 'none';\n\n const overscanBegin = Math.max(\n 0,\n visibleBegin - (1 - leadFactor) * overscanLength,\n );\n const overscanEnd = Math.max(0, visibleEnd + leadFactor * overscanLength);\n\n const lastItemOffset =\n getFrameMetricsApprox(itemCount - 1, props).offset * zoomScale;\n if (lastItemOffset < overscanBegin) {\n // Entire list is before our overscan window\n return {\n first: Math.max(0, itemCount - 1 - maxToRenderPerBatch),\n last: itemCount - 1,\n };\n }\n\n // Find the indices that correspond to the items at the render boundaries we're targeting.\n let [overscanFirst, first, last, overscanLast] = elementsThatOverlapOffsets(\n [overscanBegin, visibleBegin, visibleEnd, overscanEnd],\n props,\n getFrameMetricsApprox,\n zoomScale,\n );\n overscanFirst = overscanFirst == null ? 0 : overscanFirst;\n first = first == null ? Math.max(0, overscanFirst) : first;\n overscanLast = overscanLast == null ? itemCount - 1 : overscanLast;\n last =\n last == null\n ? Math.min(overscanLast, first + maxToRenderPerBatch - 1)\n : last;\n const visible = {first, last};\n\n // We want to limit the number of new cells we're rendering per batch so that we can fill the\n // content on the screen quickly. If we rendered the entire overscan window at once, the user\n // could be staring at white space for a long time waiting for a bunch of offscreen content to\n // render.\n let newCellCount = newRangeCount(prev, visible);\n\n while (true) {\n if (first <= overscanFirst && last >= overscanLast) {\n // If we fill the entire overscan range, we're done.\n break;\n }\n const maxNewCells = newCellCount >= maxToRenderPerBatch;\n const firstWillAddMore = first <= prev.first || first > prev.last;\n const firstShouldIncrement =\n first > overscanFirst && (!maxNewCells || !firstWillAddMore);\n const lastWillAddMore = last >= prev.last || last < prev.first;\n const lastShouldIncrement =\n last < overscanLast && (!maxNewCells || !lastWillAddMore);\n if (maxNewCells && !firstShouldIncrement && !lastShouldIncrement) {\n // We only want to stop if we've hit maxNewCells AND we cannot increment first or last\n // without rendering new items. This let's us preserve as many already rendered items as\n // possible, reducing render churn and keeping the rendered overscan range as large as\n // possible.\n break;\n }\n if (\n firstShouldIncrement &&\n !(fillPreference === 'after' && lastShouldIncrement && lastWillAddMore)\n ) {\n if (firstWillAddMore) {\n newCellCount++;\n }\n first--;\n }\n if (\n lastShouldIncrement &&\n !(fillPreference === 'before' && firstShouldIncrement && firstWillAddMore)\n ) {\n if (lastWillAddMore) {\n newCellCount++;\n }\n last++;\n }\n }\n if (\n !(\n last >= first &&\n first >= 0 &&\n last < itemCount &&\n first >= overscanFirst &&\n last <= overscanLast &&\n first <= visible.first &&\n last >= visible.last\n )\n ) {\n throw new Error(\n 'Bad window calculation ' +\n JSON.stringify({\n first,\n last,\n itemCount,\n overscanFirst,\n overscanLast,\n visible,\n }),\n );\n }\n return {first, last};\n}\n\nexport function keyExtractor(item: any, index: number): string {\n if (typeof item === 'object' && item?.key != null) {\n return item.key;\n }\n if (typeof item === 'object' && item?.id != null) {\n return item.id;\n }\n return String(index);\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {ScrollResponderType} from 'react-native/Libraries/Components/ScrollView/ScrollView';\nimport type {ViewStyleProp} from 'react-native/Libraries/StyleSheet/StyleSheet';\nimport type {\n LayoutEvent,\n ScrollEvent,\n} from 'react-native/Libraries/Types/CoreEventTypes';\nimport type {ViewToken} from './ViewabilityHelper';\nimport type {\n FrameMetricProps,\n Item,\n Props,\n RenderItemProps,\n RenderItemType,\n Separators,\n} from './VirtualizedListProps';\n\nimport {\n RefreshControl,\n ScrollView,\n View,\n StyleSheet,\n findNodeHandle,\n} from 'react-native';\nimport Batchinator from '../Interaction/Batchinator';\nimport clamp from '../Utilities/clamp';\nimport infoLog from '../Utilities/infoLog';\nimport {CellRenderMask} from './CellRenderMask';\nimport ChildListCollection from './ChildListCollection';\nimport FillRateHelper from './FillRateHelper';\nimport StateSafePureComponent from './StateSafePureComponent';\nimport ViewabilityHelper from './ViewabilityHelper';\nimport CellRenderer from './VirtualizedListCellRenderer';\nimport {\n VirtualizedListCellContextProvider,\n VirtualizedListContext,\n VirtualizedListContextProvider,\n} from './VirtualizedListContext.js';\nimport {\n computeWindowedRenderLimits,\n keyExtractor as defaultKeyExtractor,\n} from './VirtualizeUtils';\nimport invariant from 'invariant';\nimport nullthrows from 'nullthrows';\nimport * as React from 'react';\n\nexport type {RenderItemProps, RenderItemType, Separators};\n\nconst ON_EDGE_REACHED_EPSILON = 0.001;\n\nlet _usedIndexForKey = false;\nlet _keylessItemComponentName: string = '';\n\ntype ViewabilityHelperCallbackTuple = {\n viewabilityHelper: ViewabilityHelper,\n onViewableItemsChanged: (info: {\n viewableItems: Array,\n changed: Array,\n ...\n }) => void,\n ...\n};\n\ntype State = {\n renderMask: CellRenderMask,\n cellsAroundViewport: {first: number, last: number},\n // Used to track items added at the start of the list for maintainVisibleContentPosition.\n firstVisibleItemKey: ?string,\n // When > 0 the scroll position available in JS is considered stale and should not be used.\n pendingScrollUpdateCount: number,\n};\n\n/**\n * Default Props Helper Functions\n * Use the following helper functions for default values\n */\n\n// horizontalOrDefault(this.props.horizontal)\nfunction horizontalOrDefault(horizontal: ?boolean) {\n return horizontal ?? false;\n}\n\n// initialNumToRenderOrDefault(this.props.initialNumToRender)\nfunction initialNumToRenderOrDefault(initialNumToRender: ?number) {\n return initialNumToRender ?? 10;\n}\n\n// maxToRenderPerBatchOrDefault(this.props.maxToRenderPerBatch)\nfunction maxToRenderPerBatchOrDefault(maxToRenderPerBatch: ?number) {\n return maxToRenderPerBatch ?? 10;\n}\n\n// onStartReachedThresholdOrDefault(this.props.onStartReachedThreshold)\nfunction onStartReachedThresholdOrDefault(onStartReachedThreshold: ?number) {\n return onStartReachedThreshold ?? 2;\n}\n\n// onEndReachedThresholdOrDefault(this.props.onEndReachedThreshold)\nfunction onEndReachedThresholdOrDefault(onEndReachedThreshold: ?number) {\n return onEndReachedThreshold ?? 2;\n}\n\n// getScrollingThreshold(visibleLength, onEndReachedThreshold)\nfunction getScrollingThreshold(threshold: number, visibleLength: number) {\n return (threshold * visibleLength) / 2;\n}\n\n// scrollEventThrottleOrDefault(this.props.scrollEventThrottle)\nfunction scrollEventThrottleOrDefault(scrollEventThrottle: ?number) {\n return scrollEventThrottle ?? 50;\n}\n\n// windowSizeOrDefault(this.props.windowSize)\nfunction windowSizeOrDefault(windowSize: ?number) {\n return windowSize ?? 21;\n}\n\nfunction findLastWhere(\n arr: $ReadOnlyArray,\n predicate: (element: T) => boolean,\n): T | null {\n for (let i = arr.length - 1; i >= 0; i--) {\n if (predicate(arr[i])) {\n return arr[i];\n }\n }\n\n return null;\n}\n\n/**\n * Base implementation for the more convenient [``](https://reactnative.dev/docs/flatlist)\n * and [``](https://reactnative.dev/docs/sectionlist) components, which are also better\n * documented. In general, this should only really be used if you need more flexibility than\n * `FlatList` provides, e.g. for use with immutable data instead of plain arrays.\n *\n * Virtualization massively improves memory consumption and performance of large lists by\n * maintaining a finite render window of active items and replacing all items outside of the render\n * window with appropriately sized blank space. The window adapts to scrolling behavior, and items\n * are rendered incrementally with low-pri (after any running interactions) if they are far from the\n * visible area, or with hi-pri otherwise to minimize the potential of seeing blank space.\n *\n * Some caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` or `id` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n * - As an effort to remove defaultProps, use helper functions when referencing certain props\n *\n */\nclass VirtualizedList extends StateSafePureComponent {\n static contextType: typeof VirtualizedListContext = VirtualizedListContext;\n\n // scrollToEnd may be janky without getItemLayout prop\n scrollToEnd(params?: ?{animated?: ?boolean, ...}) {\n const animated = params ? params.animated : true;\n const veryLast = this.props.getItemCount(this.props.data) - 1;\n if (veryLast < 0) {\n return;\n }\n const frame = this.__getFrameMetricsApprox(veryLast, this.props);\n const offset = Math.max(\n 0,\n frame.offset +\n frame.length +\n this._footerLength -\n this._scrollMetrics.visibleLength,\n );\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn(\n 'No scrollTo method provided. This may be because you have two nested ' +\n 'VirtualizedLists with the same orientation, or because you are ' +\n 'using a custom component that does not implement scrollTo.',\n );\n return;\n }\n\n this._scrollRef.scrollTo(\n horizontalOrDefault(this.props.horizontal)\n ? {x: offset, animated}\n : {y: offset, animated},\n );\n }\n\n // scrollToIndex may be janky without getItemLayout prop\n scrollToIndex(params: {\n animated?: ?boolean,\n index: number,\n viewOffset?: number,\n viewPosition?: number,\n ...\n }): $FlowFixMe {\n const {\n data,\n horizontal,\n getItemCount,\n getItemLayout,\n onScrollToIndexFailed,\n } = this.props;\n const {animated, index, viewOffset, viewPosition} = params;\n invariant(\n index >= 0,\n `scrollToIndex out of range: requested index ${index} but minimum is 0`,\n );\n invariant(\n getItemCount(data) >= 1,\n `scrollToIndex out of range: item length ${getItemCount(\n data,\n )} but minimum is 1`,\n );\n invariant(\n index < getItemCount(data),\n `scrollToIndex out of range: requested index ${index} is out of 0 to ${\n getItemCount(data) - 1\n }`,\n );\n if (!getItemLayout && index > this._highestMeasuredFrameIndex) {\n invariant(\n !!onScrollToIndexFailed,\n 'scrollToIndex should be used in conjunction with getItemLayout or onScrollToIndexFailed, ' +\n 'otherwise there is no way to know the location of offscreen indices or handle failures.',\n );\n onScrollToIndexFailed({\n averageItemLength: this._averageCellLength,\n highestMeasuredFrameIndex: this._highestMeasuredFrameIndex,\n index,\n });\n return;\n }\n const frame = this.__getFrameMetricsApprox(Math.floor(index), this.props);\n const offset =\n Math.max(\n 0,\n this._getOffsetApprox(index, this.props) -\n (viewPosition || 0) *\n (this._scrollMetrics.visibleLength - frame.length),\n ) - (viewOffset || 0);\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn(\n 'No scrollTo method provided. This may be because you have two nested ' +\n 'VirtualizedLists with the same orientation, or because you are ' +\n 'using a custom component that does not implement scrollTo.',\n );\n return;\n }\n\n this._scrollRef.scrollTo(\n horizontal ? {x: offset, animated} : {y: offset, animated},\n );\n }\n\n // scrollToItem may be janky without getItemLayout prop. Required linear scan through items -\n // use scrollToIndex instead if possible.\n scrollToItem(params: {\n animated?: ?boolean,\n item: Item,\n viewOffset?: number,\n viewPosition?: number,\n ...\n }) {\n const {item} = params;\n const {data, getItem, getItemCount} = this.props;\n const itemCount = getItemCount(data);\n for (let index = 0; index < itemCount; index++) {\n if (getItem(data, index) === item) {\n this.scrollToIndex({...params, index});\n break;\n }\n }\n }\n\n /**\n * Scroll to a specific content pixel offset in the list.\n *\n * Param `offset` expects the offset to scroll to.\n * In case of `horizontal` is true, the offset is the x-value,\n * in any other case the offset is the y-value.\n *\n * Param `animated` (`true` by default) defines whether the list\n * should do an animation while scrolling.\n */\n scrollToOffset(params: {animated?: ?boolean, offset: number, ...}) {\n const {animated, offset} = params;\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn(\n 'No scrollTo method provided. This may be because you have two nested ' +\n 'VirtualizedLists with the same orientation, or because you are ' +\n 'using a custom component that does not implement scrollTo.',\n );\n return;\n }\n\n this._scrollRef.scrollTo(\n horizontalOrDefault(this.props.horizontal)\n ? {x: offset, animated}\n : {y: offset, animated},\n );\n }\n\n recordInteraction() {\n this._nestedChildLists.forEach(childList => {\n childList.recordInteraction();\n });\n this._viewabilityTuples.forEach(t => {\n t.viewabilityHelper.recordInteraction();\n });\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n }\n\n flashScrollIndicators() {\n if (this._scrollRef == null) {\n return;\n }\n\n this._scrollRef.flashScrollIndicators();\n }\n\n /**\n * Provides a handle to the underlying scroll responder.\n * Note that `this._scrollRef` might not be a `ScrollView`, so we\n * need to check that it responds to `getScrollResponder` before calling it.\n */\n getScrollResponder(): ?ScrollResponderType {\n if (this._scrollRef && this._scrollRef.getScrollResponder) {\n return this._scrollRef.getScrollResponder();\n }\n }\n\n getScrollableNode(): ?number {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n return this._scrollRef.getScrollableNode();\n } else {\n return findNodeHandle(this._scrollRef);\n }\n }\n\n getScrollRef():\n | ?React.ElementRef\n | ?React.ElementRef {\n if (this._scrollRef && this._scrollRef.getScrollRef) {\n return this._scrollRef.getScrollRef();\n } else {\n return this._scrollRef;\n }\n }\n\n setNativeProps(props: Object) {\n if (this._scrollRef) {\n this._scrollRef.setNativeProps(props);\n }\n }\n\n _getCellKey(): string {\n return this.context?.cellKey || 'rootList';\n }\n\n // $FlowFixMe[missing-local-annot]\n _getScrollMetrics = () => {\n return this._scrollMetrics;\n };\n\n hasMore(): boolean {\n return this._hasMore;\n }\n\n // $FlowFixMe[missing-local-annot]\n _getOutermostParentListRef = () => {\n if (this._isNestedWithSameOrientation()) {\n return this.context.getOutermostParentListRef();\n } else {\n return this;\n }\n };\n\n _registerAsNestedChild = (childList: {\n cellKey: string,\n ref: React.ElementRef,\n }): void => {\n this._nestedChildLists.add(childList.ref, childList.cellKey);\n if (this._hasInteracted) {\n childList.ref.recordInteraction();\n }\n };\n\n _unregisterAsNestedChild = (childList: {\n ref: React.ElementRef,\n }): void => {\n this._nestedChildLists.remove(childList.ref);\n };\n\n state: State;\n\n constructor(props: Props) {\n super(props);\n this._checkProps(props);\n\n this._fillRateHelper = new FillRateHelper(this._getFrameMetrics);\n this._updateCellsToRenderBatcher = new Batchinator(\n this._updateCellsToRender,\n this.props.updateCellsBatchingPeriod ?? 50,\n );\n\n if (this.props.viewabilityConfigCallbackPairs) {\n this._viewabilityTuples = this.props.viewabilityConfigCallbackPairs.map(\n pair => ({\n viewabilityHelper: new ViewabilityHelper(pair.viewabilityConfig),\n onViewableItemsChanged: pair.onViewableItemsChanged,\n }),\n );\n } else {\n const {onViewableItemsChanged, viewabilityConfig} = this.props;\n if (onViewableItemsChanged) {\n this._viewabilityTuples.push({\n viewabilityHelper: new ViewabilityHelper(viewabilityConfig),\n onViewableItemsChanged: onViewableItemsChanged,\n });\n }\n }\n\n const initialRenderRegion = VirtualizedList._initialRenderRegion(props);\n\n const minIndexForVisible =\n this.props.maintainVisibleContentPosition?.minIndexForVisible ?? 0;\n\n this.state = {\n cellsAroundViewport: initialRenderRegion,\n renderMask: VirtualizedList._createRenderMask(props, initialRenderRegion),\n firstVisibleItemKey:\n this.props.getItemCount(this.props.data) > minIndexForVisible\n ? VirtualizedList._getItemKey(this.props, minIndexForVisible)\n : null,\n // When we have a non-zero initialScrollIndex, we will receive a\n // scroll event later so this will prevent the window from updating\n // until we get a valid offset.\n pendingScrollUpdateCount:\n this.props.initialScrollIndex != null &&\n this.props.initialScrollIndex > 0\n ? 1\n : 0,\n };\n }\n\n _checkProps(props: Props) {\n const {onScroll, windowSize, getItemCount, data, initialScrollIndex} =\n props;\n\n invariant(\n // $FlowFixMe[prop-missing]\n !onScroll || !onScroll.__isNative,\n 'Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent ' +\n 'to support native onScroll events with useNativeDriver',\n );\n invariant(\n windowSizeOrDefault(windowSize) > 0,\n 'VirtualizedList: The windowSize prop must be present and set to a value greater than 0.',\n );\n\n invariant(\n getItemCount,\n 'VirtualizedList: The \"getItemCount\" prop must be provided',\n );\n\n const itemCount = getItemCount(data);\n\n if (\n initialScrollIndex != null &&\n !this._hasTriggeredInitialScrollToIndex &&\n (initialScrollIndex < 0 ||\n (itemCount > 0 && initialScrollIndex >= itemCount)) &&\n !this._hasWarned.initialScrollIndex\n ) {\n console.warn(\n `initialScrollIndex \"${initialScrollIndex}\" is not valid (list has ${itemCount} items)`,\n );\n this._hasWarned.initialScrollIndex = true;\n }\n\n if (__DEV__ && !this._hasWarned.flexWrap) {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n const flatStyles = StyleSheet.flatten(this.props.contentContainerStyle);\n if (flatStyles != null && flatStyles.flexWrap === 'wrap') {\n console.warn(\n '`flexWrap: `wrap`` is not supported with the `VirtualizedList` components.' +\n 'Consider using `numColumns` with `FlatList` instead.',\n );\n this._hasWarned.flexWrap = true;\n }\n }\n }\n\n static _findItemIndexWithKey(\n props: Props,\n key: string,\n hint: ?number,\n ): ?number {\n const itemCount = props.getItemCount(props.data);\n if (hint != null && hint >= 0 && hint < itemCount) {\n const curKey = VirtualizedList._getItemKey(props, hint);\n if (curKey === key) {\n return hint;\n }\n }\n for (let ii = 0; ii < itemCount; ii++) {\n const curKey = VirtualizedList._getItemKey(props, ii);\n if (curKey === key) {\n return ii;\n }\n }\n return null;\n }\n\n static _getItemKey(\n props: {\n data: Props['data'],\n getItem: Props['getItem'],\n keyExtractor: Props['keyExtractor'],\n ...\n },\n index: number,\n ): string {\n const item = props.getItem(props.data, index);\n return VirtualizedList._keyExtractor(item, index, props);\n }\n\n static _createRenderMask(\n props: Props,\n cellsAroundViewport: {first: number, last: number},\n additionalRegions?: ?$ReadOnlyArray<{first: number, last: number}>,\n ): CellRenderMask {\n const itemCount = props.getItemCount(props.data);\n\n invariant(\n cellsAroundViewport.first >= 0 &&\n cellsAroundViewport.last >= cellsAroundViewport.first - 1 &&\n cellsAroundViewport.last < itemCount,\n `Invalid cells around viewport \"[${cellsAroundViewport.first}, ${cellsAroundViewport.last}]\" was passed to VirtualizedList._createRenderMask`,\n );\n\n const renderMask = new CellRenderMask(itemCount);\n\n if (itemCount > 0) {\n const allRegions = [cellsAroundViewport, ...(additionalRegions ?? [])];\n for (const region of allRegions) {\n renderMask.addCells(region);\n }\n\n // The initially rendered cells are retained as part of the\n // \"scroll-to-top\" optimization\n if (props.initialScrollIndex == null || props.initialScrollIndex <= 0) {\n const initialRegion = VirtualizedList._initialRenderRegion(props);\n renderMask.addCells(initialRegion);\n }\n\n // The layout coordinates of sticker headers may be off-screen while the\n // actual header is on-screen. Keep the most recent before the viewport\n // rendered, even if its layout coordinates are not in viewport.\n const stickyIndicesSet = new Set(props.stickyHeaderIndices);\n VirtualizedList._ensureClosestStickyHeader(\n props,\n stickyIndicesSet,\n renderMask,\n cellsAroundViewport.first,\n );\n }\n\n return renderMask;\n }\n\n static _initialRenderRegion(props: Props): {first: number, last: number} {\n const itemCount = props.getItemCount(props.data);\n\n const firstCellIndex = Math.max(\n 0,\n Math.min(itemCount - 1, Math.floor(props.initialScrollIndex ?? 0)),\n );\n\n const lastCellIndex =\n Math.min(\n itemCount,\n firstCellIndex + initialNumToRenderOrDefault(props.initialNumToRender),\n ) - 1;\n\n return {\n first: firstCellIndex,\n last: lastCellIndex,\n };\n }\n\n static _ensureClosestStickyHeader(\n props: Props,\n stickyIndicesSet: Set,\n renderMask: CellRenderMask,\n cellIdx: number,\n ) {\n const stickyOffset = props.ListHeaderComponent ? 1 : 0;\n\n for (let itemIdx = cellIdx - 1; itemIdx >= 0; itemIdx--) {\n if (stickyIndicesSet.has(itemIdx + stickyOffset)) {\n renderMask.addCells({first: itemIdx, last: itemIdx});\n break;\n }\n }\n }\n\n _adjustCellsAroundViewport(\n props: Props,\n cellsAroundViewport: {first: number, last: number},\n pendingScrollUpdateCount: number,\n ): {first: number, last: number} {\n const {data, getItemCount} = props;\n const onEndReachedThreshold = onEndReachedThresholdOrDefault(\n props.onEndReachedThreshold,\n );\n const {contentLength, offset, visibleLength} = this._scrollMetrics;\n const distanceFromEnd = contentLength - visibleLength - offset;\n\n // Wait until the scroll view metrics have been set up. And until then,\n // we will trust the initialNumToRender suggestion\n if (visibleLength <= 0 || contentLength <= 0) {\n return cellsAroundViewport.last >= getItemCount(data)\n ? VirtualizedList._constrainToItemCount(cellsAroundViewport, props)\n : cellsAroundViewport;\n }\n\n let newCellsAroundViewport: {first: number, last: number};\n if (props.disableVirtualization) {\n const renderAhead =\n distanceFromEnd < onEndReachedThreshold * visibleLength\n ? maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch)\n : 0;\n\n newCellsAroundViewport = {\n first: 0,\n last: Math.min(\n cellsAroundViewport.last + renderAhead,\n getItemCount(data) - 1,\n ),\n };\n } else {\n // If we have a pending scroll update, we should not adjust the render window as it\n // might override the correct window.\n if (pendingScrollUpdateCount > 0) {\n return cellsAroundViewport.last >= getItemCount(data)\n ? VirtualizedList._constrainToItemCount(cellsAroundViewport, props)\n : cellsAroundViewport;\n }\n\n newCellsAroundViewport = computeWindowedRenderLimits(\n props,\n maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch),\n windowSizeOrDefault(props.windowSize),\n cellsAroundViewport,\n this.__getFrameMetricsApprox,\n this._scrollMetrics,\n );\n invariant(\n newCellsAroundViewport.last < getItemCount(data),\n 'computeWindowedRenderLimits() should return range in-bounds',\n );\n }\n\n if (this._nestedChildLists.size() > 0) {\n // If some cell in the new state has a child list in it, we should only render\n // up through that item, so that we give that list a chance to render.\n // Otherwise there's churn from multiple child lists mounting and un-mounting\n // their items.\n\n // Will this prevent rendering if the nested list doesn't realize the end?\n const childIdx = this._findFirstChildWithMore(\n newCellsAroundViewport.first,\n newCellsAroundViewport.last,\n );\n\n newCellsAroundViewport.last = childIdx ?? newCellsAroundViewport.last;\n }\n\n return newCellsAroundViewport;\n }\n\n _findFirstChildWithMore(first: number, last: number): number | null {\n for (let ii = first; ii <= last; ii++) {\n const cellKeyForIndex = this._indicesToKeys.get(ii);\n if (\n cellKeyForIndex != null &&\n this._nestedChildLists.anyInCell(cellKeyForIndex, childList =>\n childList.hasMore(),\n )\n ) {\n return ii;\n }\n }\n\n return null;\n }\n\n componentDidMount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.registerAsNestedChild({\n ref: this,\n cellKey: this.context.cellKey,\n });\n }\n }\n\n componentWillUnmount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.unregisterAsNestedChild({ref: this});\n }\n this._updateCellsToRenderBatcher.dispose({abort: true});\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.dispose();\n });\n this._fillRateHelper.deactivateAndFlush();\n }\n\n static getDerivedStateFromProps(newProps: Props, prevState: State): State {\n // first and last could be stale (e.g. if a new, shorter items props is passed in), so we make\n // sure we're rendering a reasonable range here.\n const itemCount = newProps.getItemCount(newProps.data);\n if (itemCount === prevState.renderMask.numCells()) {\n return prevState;\n }\n\n let maintainVisibleContentPositionAdjustment: ?number = null;\n const prevFirstVisibleItemKey = prevState.firstVisibleItemKey;\n const minIndexForVisible =\n newProps.maintainVisibleContentPosition?.minIndexForVisible ?? 0;\n const newFirstVisibleItemKey =\n newProps.getItemCount(newProps.data) > minIndexForVisible\n ? VirtualizedList._getItemKey(newProps, minIndexForVisible)\n : null;\n if (\n newProps.maintainVisibleContentPosition != null &&\n prevFirstVisibleItemKey != null &&\n newFirstVisibleItemKey != null\n ) {\n if (newFirstVisibleItemKey !== prevFirstVisibleItemKey) {\n // Fast path if items were added at the start of the list.\n const hint =\n itemCount - prevState.renderMask.numCells() + minIndexForVisible;\n const firstVisibleItemIndex = VirtualizedList._findItemIndexWithKey(\n newProps,\n prevFirstVisibleItemKey,\n hint,\n );\n maintainVisibleContentPositionAdjustment =\n firstVisibleItemIndex != null\n ? firstVisibleItemIndex - minIndexForVisible\n : null;\n } else {\n maintainVisibleContentPositionAdjustment = null;\n }\n }\n\n const constrainedCells = VirtualizedList._constrainToItemCount(\n maintainVisibleContentPositionAdjustment != null\n ? {\n first:\n prevState.cellsAroundViewport.first +\n maintainVisibleContentPositionAdjustment,\n last:\n prevState.cellsAroundViewport.last +\n maintainVisibleContentPositionAdjustment,\n }\n : prevState.cellsAroundViewport,\n newProps,\n );\n\n return {\n cellsAroundViewport: constrainedCells,\n renderMask: VirtualizedList._createRenderMask(newProps, constrainedCells),\n firstVisibleItemKey: newFirstVisibleItemKey,\n pendingScrollUpdateCount:\n maintainVisibleContentPositionAdjustment != null\n ? prevState.pendingScrollUpdateCount + 1\n : prevState.pendingScrollUpdateCount,\n };\n }\n\n _pushCells(\n cells: Array,\n stickyHeaderIndices: Array,\n stickyIndicesFromProps: Set,\n first: number,\n last: number,\n inversionStyle: ViewStyleProp,\n ) {\n const {\n CellRendererComponent,\n ItemSeparatorComponent,\n ListHeaderComponent,\n ListItemComponent,\n data,\n debug,\n getItem,\n getItemCount,\n getItemLayout,\n horizontal,\n renderItem,\n } = this.props;\n const stickyOffset = ListHeaderComponent ? 1 : 0;\n const end = getItemCount(data) - 1;\n let prevCellKey;\n last = Math.min(end, last);\n\n for (let ii = first; ii <= last; ii++) {\n const item = getItem(data, ii);\n const key = VirtualizedList._keyExtractor(item, ii, this.props);\n\n this._indicesToKeys.set(ii, key);\n if (stickyIndicesFromProps.has(ii + stickyOffset)) {\n stickyHeaderIndices.push(cells.length);\n }\n\n const shouldListenForLayout =\n getItemLayout == null || debug || this._fillRateHelper.enabled();\n\n cells.push(\n this._onCellFocusCapture(key)}\n onUnmount={this._onCellUnmount}\n ref={ref => {\n this._cellRefs[key] = ref;\n }}\n renderItem={renderItem}\n {...(shouldListenForLayout && {\n onCellLayout: this._onCellLayout,\n })}\n />,\n );\n prevCellKey = key;\n }\n }\n\n static _constrainToItemCount(\n cells: {first: number, last: number},\n props: Props,\n ): {first: number, last: number} {\n const itemCount = props.getItemCount(props.data);\n const last = Math.min(itemCount - 1, cells.last);\n\n const maxToRenderPerBatch = maxToRenderPerBatchOrDefault(\n props.maxToRenderPerBatch,\n );\n\n return {\n first: clamp(0, itemCount - 1 - maxToRenderPerBatch, cells.first),\n last,\n };\n }\n\n _onUpdateSeparators = (keys: Array, newProps: Object) => {\n keys.forEach(key => {\n const ref = key != null && this._cellRefs[key];\n ref && ref.updateSeparatorProps(newProps);\n });\n };\n\n _isNestedWithSameOrientation(): boolean {\n const nestedContext = this.context;\n return !!(\n nestedContext &&\n !!nestedContext.horizontal === horizontalOrDefault(this.props.horizontal)\n );\n }\n\n _getSpacerKey = (isVertical: boolean): string =>\n isVertical ? 'height' : 'width';\n\n static _keyExtractor(\n item: Item,\n index: number,\n props: {\n keyExtractor?: ?(item: Item, index: number) => string,\n ...\n },\n ): string {\n if (props.keyExtractor != null) {\n return props.keyExtractor(item, index);\n }\n\n const key = defaultKeyExtractor(item, index);\n if (key === String(index)) {\n _usedIndexForKey = true;\n if (item.type && item.type.displayName) {\n _keylessItemComponentName = item.type.displayName;\n }\n }\n return key;\n }\n\n render(): React.Node {\n this._checkProps(this.props);\n const {ListEmptyComponent, ListFooterComponent, ListHeaderComponent} =\n this.props;\n const {data, horizontal} = this.props;\n const inversionStyle = this.props.inverted\n ? horizontalOrDefault(this.props.horizontal)\n ? styles.horizontallyInverted\n : styles.verticallyInverted\n : null;\n const cells: Array = [];\n const stickyIndicesFromProps = new Set(this.props.stickyHeaderIndices);\n const stickyHeaderIndices = [];\n\n // 1. Add cell for ListHeaderComponent\n if (ListHeaderComponent) {\n if (stickyIndicesFromProps.has(0)) {\n stickyHeaderIndices.push(0);\n }\n const element = React.isValidElement(ListHeaderComponent) ? (\n ListHeaderComponent\n ) : (\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n \n );\n cells.push(\n \n \n {\n // $FlowFixMe[incompatible-type] - Typing ReactNativeComponent revealed errors\n element\n }\n \n ,\n );\n }\n\n // 2a. Add a cell for ListEmptyComponent if applicable\n const itemCount = this.props.getItemCount(data);\n if (itemCount === 0 && ListEmptyComponent) {\n const element: React.Element = ((React.isValidElement(\n ListEmptyComponent,\n ) ? (\n ListEmptyComponent\n ) : (\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n \n )): any);\n cells.push(\n \n {React.cloneElement(element, {\n onLayout: (event: LayoutEvent) => {\n this._onLayoutEmpty(event);\n if (element.props.onLayout) {\n element.props.onLayout(event);\n }\n },\n style: StyleSheet.compose(inversionStyle, element.props.style),\n })}\n ,\n );\n }\n\n // 2b. Add cells and spacers for each item\n if (itemCount > 0) {\n _usedIndexForKey = false;\n _keylessItemComponentName = '';\n const spacerKey = this._getSpacerKey(!horizontal);\n\n const renderRegions = this.state.renderMask.enumerateRegions();\n const lastSpacer = findLastWhere(renderRegions, r => r.isSpacer);\n\n for (const section of renderRegions) {\n if (section.isSpacer) {\n // Legacy behavior is to avoid spacers when virtualization is\n // disabled (including head spacers on initial render).\n if (this.props.disableVirtualization) {\n continue;\n }\n\n // Without getItemLayout, we limit our tail spacer to the _highestMeasuredFrameIndex to\n // prevent the user for hyperscrolling into un-measured area because otherwise content will\n // likely jump around as it renders in above the viewport.\n const isLastSpacer = section === lastSpacer;\n const constrainToMeasured = isLastSpacer && !this.props.getItemLayout;\n const last = constrainToMeasured\n ? clamp(\n section.first - 1,\n section.last,\n this._highestMeasuredFrameIndex,\n )\n : section.last;\n\n const firstMetrics = this.__getFrameMetricsApprox(\n section.first,\n this.props,\n );\n const lastMetrics = this.__getFrameMetricsApprox(last, this.props);\n const spacerSize =\n lastMetrics.offset + lastMetrics.length - firstMetrics.offset;\n cells.push(\n ,\n );\n } else {\n this._pushCells(\n cells,\n stickyHeaderIndices,\n stickyIndicesFromProps,\n section.first,\n section.last,\n inversionStyle,\n );\n }\n }\n\n if (!this._hasWarned.keys && _usedIndexForKey) {\n console.warn(\n 'VirtualizedList: missing keys for items, make sure to specify a key or id property on each ' +\n 'item or provide a custom keyExtractor.',\n _keylessItemComponentName,\n );\n this._hasWarned.keys = true;\n }\n }\n\n // 3. Add cell for ListFooterComponent\n if (ListFooterComponent) {\n const element = React.isValidElement(ListFooterComponent) ? (\n ListFooterComponent\n ) : (\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n \n );\n cells.push(\n \n \n {\n // $FlowFixMe[incompatible-type] - Typing ReactNativeComponent revealed errors\n element\n }\n \n ,\n );\n }\n\n // 4. Render the ScrollView\n const scrollProps = {\n ...this.props,\n onContentSizeChange: this._onContentSizeChange,\n onLayout: this._onLayout,\n onScroll: this._onScroll,\n onScrollBeginDrag: this._onScrollBeginDrag,\n onScrollEndDrag: this._onScrollEndDrag,\n onMomentumScrollBegin: this._onMomentumScrollBegin,\n onMomentumScrollEnd: this._onMomentumScrollEnd,\n scrollEventThrottle: scrollEventThrottleOrDefault(\n this.props.scrollEventThrottle,\n ), // TODO: Android support\n invertStickyHeaders:\n this.props.invertStickyHeaders !== undefined\n ? this.props.invertStickyHeaders\n : this.props.inverted,\n stickyHeaderIndices,\n style: inversionStyle\n ? [inversionStyle, this.props.style]\n : this.props.style,\n maintainVisibleContentPosition:\n this.props.maintainVisibleContentPosition != null\n ? {\n ...this.props.maintainVisibleContentPosition,\n // Adjust index to account for ListHeaderComponent.\n minIndexForVisible:\n this.props.maintainVisibleContentPosition.minIndexForVisible +\n (this.props.ListHeaderComponent ? 1 : 0),\n }\n : undefined,\n };\n\n this._hasMore = this.state.cellsAroundViewport.last < itemCount - 1;\n\n const innerRet = (\n \n {React.cloneElement(\n (\n this.props.renderScrollComponent ||\n this._defaultRenderScrollComponent\n )(scrollProps),\n {\n ref: this._captureScrollRef,\n },\n cells,\n )}\n \n );\n let ret: React.Node = innerRet;\n if (__DEV__) {\n ret = (\n \n {scrollContext => {\n if (\n scrollContext != null &&\n !scrollContext.horizontal ===\n !horizontalOrDefault(this.props.horizontal) &&\n !this._hasWarned.nesting &&\n this.context == null &&\n this.props.scrollEnabled !== false\n ) {\n // TODO (T46547044): use React.warn once 16.9 is sync'd: https://github.com/facebook/react/pull/15170\n console.error(\n 'VirtualizedLists should never be nested inside plain ScrollViews with the same ' +\n 'orientation because it can break windowing and other functionality - use another ' +\n 'VirtualizedList-backed container instead.',\n );\n this._hasWarned.nesting = true;\n }\n return innerRet;\n }}\n \n );\n }\n if (this.props.debug) {\n return (\n \n {ret}\n {this._renderDebugOverlay()}\n \n );\n } else {\n return ret;\n }\n }\n\n componentDidUpdate(prevProps: Props) {\n const {data, extraData} = this.props;\n if (data !== prevProps.data || extraData !== prevProps.extraData) {\n // clear the viewableIndices cache to also trigger\n // the onViewableItemsChanged callback with the new data\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.resetViewableIndices();\n });\n }\n // The `this._hiPriInProgress` is guaranteeing a hiPri cell update will only happen\n // once per fiber update. The `_scheduleCellsToRenderUpdate` will set it to true\n // if a hiPri update needs to perform. If `componentDidUpdate` is triggered with\n // `this._hiPriInProgress=true`, means it's triggered by the hiPri update. The\n // `_scheduleCellsToRenderUpdate` will check this condition and not perform\n // another hiPri update.\n const hiPriInProgress = this._hiPriInProgress;\n this._scheduleCellsToRenderUpdate();\n // Make sure setting `this._hiPriInProgress` back to false after `componentDidUpdate`\n // is triggered with `this._hiPriInProgress = true`\n if (hiPriInProgress) {\n this._hiPriInProgress = false;\n }\n }\n\n _averageCellLength = 0;\n _cellRefs: {[string]: null | CellRenderer} = {};\n _fillRateHelper: FillRateHelper;\n _frames: {\n [string]: {\n inLayout?: boolean,\n index: number,\n length: number,\n offset: number,\n },\n } = {};\n _footerLength = 0;\n // Used for preventing scrollToIndex from being called multiple times for initialScrollIndex\n _hasTriggeredInitialScrollToIndex = false;\n _hasInteracted = false;\n _hasMore = false;\n _hasWarned: {[string]: boolean} = {};\n _headerLength = 0;\n _hiPriInProgress: boolean = false; // flag to prevent infinite hiPri cell limit update\n _highestMeasuredFrameIndex = 0;\n _indicesToKeys: Map = new Map();\n _lastFocusedCellKey: ?string = null;\n _nestedChildLists: ChildListCollection =\n new ChildListCollection();\n _offsetFromParentVirtualizedList: number = 0;\n _prevParentOffset: number = 0;\n // $FlowFixMe[missing-local-annot]\n _scrollMetrics = {\n contentLength: 0,\n dOffset: 0,\n dt: 10,\n offset: 0,\n timestamp: 0,\n velocity: 0,\n visibleLength: 0,\n zoomScale: 1,\n };\n _scrollRef: ?React.ElementRef = null;\n _sentStartForContentLength = 0;\n _sentEndForContentLength = 0;\n _totalCellLength = 0;\n _totalCellsMeasured = 0;\n _updateCellsToRenderBatcher: Batchinator;\n _viewabilityTuples: Array = [];\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n _captureScrollRef = ref => {\n this._scrollRef = ref;\n };\n\n _computeBlankness() {\n this._fillRateHelper.computeBlankness(\n this.props,\n this.state.cellsAroundViewport,\n this._scrollMetrics,\n );\n }\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n _defaultRenderScrollComponent = props => {\n const onRefresh = props.onRefresh;\n if (this._isNestedWithSameOrientation()) {\n // $FlowFixMe[prop-missing] - Typing ReactNativeComponent revealed errors\n return ;\n } else if (onRefresh) {\n invariant(\n typeof props.refreshing === 'boolean',\n '`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `' +\n JSON.stringify(props.refreshing ?? 'undefined') +\n '`',\n );\n return (\n // $FlowFixMe[prop-missing] Invalid prop usage\n // $FlowFixMe[incompatible-use]\n \n ) : (\n props.refreshControl\n )\n }\n />\n );\n } else {\n // $FlowFixMe[prop-missing] Invalid prop usage\n // $FlowFixMe[incompatible-use]\n return ;\n }\n };\n\n _onCellLayout = (e: LayoutEvent, cellKey: string, index: number): void => {\n const layout = e.nativeEvent.layout;\n const next = {\n offset: this._selectOffset(layout),\n length: this._selectLength(layout),\n index,\n inLayout: true,\n };\n const curr = this._frames[cellKey];\n if (\n !curr ||\n next.offset !== curr.offset ||\n next.length !== curr.length ||\n index !== curr.index\n ) {\n this._totalCellLength += next.length - (curr ? curr.length : 0);\n this._totalCellsMeasured += curr ? 0 : 1;\n this._averageCellLength =\n this._totalCellLength / this._totalCellsMeasured;\n this._frames[cellKey] = next;\n this._highestMeasuredFrameIndex = Math.max(\n this._highestMeasuredFrameIndex,\n index,\n );\n this._scheduleCellsToRenderUpdate();\n } else {\n this._frames[cellKey].inLayout = true;\n }\n\n this._triggerRemeasureForChildListsInCell(cellKey);\n\n this._computeBlankness();\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n };\n\n _onCellFocusCapture(cellKey: string) {\n this._lastFocusedCellKey = cellKey;\n this._updateCellsToRender();\n }\n\n _onCellUnmount = (cellKey: string) => {\n delete this._cellRefs[cellKey];\n const curr = this._frames[cellKey];\n if (curr) {\n this._frames[cellKey] = {...curr, inLayout: false};\n }\n };\n\n _triggerRemeasureForChildListsInCell(cellKey: string): void {\n this._nestedChildLists.forEachInCell(cellKey, childList => {\n childList.measureLayoutRelativeToContainingList();\n });\n }\n\n measureLayoutRelativeToContainingList(): void {\n // TODO (T35574538): findNodeHandle sometimes crashes with \"Unable to find\n // node on an unmounted component\" during scrolling\n try {\n if (!this._scrollRef) {\n return;\n }\n // We are assuming that getOutermostParentListRef().getScrollRef()\n // is a non-null reference to a ScrollView\n this._scrollRef.measureLayout(\n this.context.getOutermostParentListRef().getScrollRef(),\n (x, y, width, height) => {\n this._offsetFromParentVirtualizedList = this._selectOffset({x, y});\n this._scrollMetrics.contentLength = this._selectLength({\n width,\n height,\n });\n const scrollMetrics = this._convertParentScrollMetrics(\n this.context.getScrollMetrics(),\n );\n\n const metricsChanged =\n this._scrollMetrics.visibleLength !== scrollMetrics.visibleLength ||\n this._scrollMetrics.offset !== scrollMetrics.offset;\n\n if (metricsChanged) {\n this._scrollMetrics.visibleLength = scrollMetrics.visibleLength;\n this._scrollMetrics.offset = scrollMetrics.offset;\n\n // If metrics of the scrollView changed, then we triggered remeasure for child list\n // to ensure VirtualizedList has the right information.\n this._nestedChildLists.forEach(childList => {\n childList.measureLayoutRelativeToContainingList();\n });\n }\n },\n error => {\n console.warn(\n \"VirtualizedList: Encountered an error while measuring a list's\" +\n ' offset from its containing VirtualizedList.',\n );\n },\n );\n } catch (error) {\n console.warn(\n 'measureLayoutRelativeToContainingList threw an error',\n error.stack,\n );\n }\n }\n\n _onLayout = (e: LayoutEvent) => {\n if (this._isNestedWithSameOrientation()) {\n // Need to adjust our scroll metrics to be relative to our containing\n // VirtualizedList before we can make claims about list item viewability\n this.measureLayoutRelativeToContainingList();\n } else {\n this._scrollMetrics.visibleLength = this._selectLength(\n e.nativeEvent.layout,\n );\n }\n this.props.onLayout && this.props.onLayout(e);\n this._scheduleCellsToRenderUpdate();\n this._maybeCallOnEdgeReached();\n };\n\n _onLayoutEmpty = (e: LayoutEvent) => {\n this.props.onLayout && this.props.onLayout(e);\n };\n\n _getFooterCellKey(): string {\n return this._getCellKey() + '-footer';\n }\n\n _onLayoutFooter = (e: LayoutEvent) => {\n this._triggerRemeasureForChildListsInCell(this._getFooterCellKey());\n this._footerLength = this._selectLength(e.nativeEvent.layout);\n };\n\n _onLayoutHeader = (e: LayoutEvent) => {\n this._headerLength = this._selectLength(e.nativeEvent.layout);\n };\n\n // $FlowFixMe[missing-local-annot]\n _renderDebugOverlay() {\n const normalize =\n this._scrollMetrics.visibleLength /\n (this._scrollMetrics.contentLength || 1);\n const framesInLayout = [];\n const itemCount = this.props.getItemCount(this.props.data);\n for (let ii = 0; ii < itemCount; ii++) {\n const frame = this.__getFrameMetricsApprox(ii, this.props);\n /* $FlowFixMe[prop-missing] (>=0.68.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.68 was deployed. To see the\n * error delete this comment and run Flow. */\n if (frame.inLayout) {\n framesInLayout.push(frame);\n }\n }\n const windowTop = this.__getFrameMetricsApprox(\n this.state.cellsAroundViewport.first,\n this.props,\n ).offset;\n const frameLast = this.__getFrameMetricsApprox(\n this.state.cellsAroundViewport.last,\n this.props,\n );\n const windowLen = frameLast.offset + frameLast.length - windowTop;\n const visTop = this._scrollMetrics.offset;\n const visLen = this._scrollMetrics.visibleLength;\n\n return (\n \n {framesInLayout.map((f, ii) => (\n \n ))}\n \n \n \n );\n }\n\n _selectLength(\n metrics: $ReadOnly<{\n height: number,\n width: number,\n ...\n }>,\n ): number {\n return !horizontalOrDefault(this.props.horizontal)\n ? metrics.height\n : metrics.width;\n }\n\n _selectOffset(\n metrics: $ReadOnly<{\n x: number,\n y: number,\n ...\n }>,\n ): number {\n return !horizontalOrDefault(this.props.horizontal) ? metrics.y : metrics.x;\n }\n\n _maybeCallOnEdgeReached() {\n const {\n data,\n getItemCount,\n onStartReached,\n onStartReachedThreshold,\n onEndReached,\n onEndReachedThreshold,\n } = this.props;\n // If we have any pending scroll updates it means that the scroll metrics\n // are out of date and we should not call any of the edge reached callbacks.\n if (this.state.pendingScrollUpdateCount > 0) {\n return;\n }\n\n const {contentLength, visibleLength, offset} = this._scrollMetrics;\n let distanceFromStart = offset;\n let distanceFromEnd = contentLength - visibleLength - offset;\n\n // Especially when oERT is zero it's necessary to 'floor' very small distance values to be 0\n // since debouncing causes us to not fire this event for every single \"pixel\" we scroll and can thus\n // be at the edge of the list with a distance approximating 0 but not quite there.\n if (distanceFromStart < ON_EDGE_REACHED_EPSILON) {\n distanceFromStart = 0;\n }\n if (distanceFromEnd < ON_EDGE_REACHED_EPSILON) {\n distanceFromEnd = 0;\n }\n\n // TODO: T121172172 Look into why we're \"defaulting\" to a threshold of 2px\n // when oERT is not present (different from 2 viewports used elsewhere)\n const DEFAULT_THRESHOLD_PX = 2;\n\n const startThreshold =\n onStartReachedThreshold != null\n ? onStartReachedThreshold * visibleLength\n : DEFAULT_THRESHOLD_PX;\n const endThreshold =\n onEndReachedThreshold != null\n ? onEndReachedThreshold * visibleLength\n : DEFAULT_THRESHOLD_PX;\n const isWithinStartThreshold = distanceFromStart <= startThreshold;\n const isWithinEndThreshold = distanceFromEnd <= endThreshold;\n\n // First check if the user just scrolled within the end threshold\n // and call onEndReached only once for a given content length,\n // and only if onStartReached is not being executed\n if (\n onEndReached &&\n this.state.cellsAroundViewport.last === getItemCount(data) - 1 &&\n isWithinEndThreshold &&\n this._scrollMetrics.contentLength !== this._sentEndForContentLength\n ) {\n this._sentEndForContentLength = this._scrollMetrics.contentLength;\n onEndReached({distanceFromEnd});\n }\n\n // Next check if the user just scrolled within the start threshold\n // and call onStartReached only once for a given content length,\n // and only if onEndReached is not being executed\n else if (\n onStartReached != null &&\n this.state.cellsAroundViewport.first === 0 &&\n isWithinStartThreshold &&\n this._scrollMetrics.contentLength !== this._sentStartForContentLength\n ) {\n this._sentStartForContentLength = this._scrollMetrics.contentLength;\n onStartReached({distanceFromStart});\n }\n\n // If the user scrolls away from the start or end and back again,\n // cause onStartReached or onEndReached to be triggered again\n else {\n this._sentStartForContentLength = isWithinStartThreshold\n ? this._sentStartForContentLength\n : 0;\n this._sentEndForContentLength = isWithinEndThreshold\n ? this._sentEndForContentLength\n : 0;\n }\n }\n\n _onContentSizeChange = (width: number, height: number) => {\n if (\n width > 0 &&\n height > 0 &&\n this.props.initialScrollIndex != null &&\n this.props.initialScrollIndex > 0 &&\n !this._hasTriggeredInitialScrollToIndex\n ) {\n if (this.props.contentOffset == null) {\n if (\n this.props.initialScrollIndex <\n this.props.getItemCount(this.props.data)\n ) {\n this.scrollToIndex({\n animated: false,\n index: nullthrows(this.props.initialScrollIndex),\n });\n } else {\n this.scrollToEnd({animated: false});\n }\n }\n this._hasTriggeredInitialScrollToIndex = true;\n }\n if (this.props.onContentSizeChange) {\n this.props.onContentSizeChange(width, height);\n }\n this._scrollMetrics.contentLength = this._selectLength({height, width});\n this._scheduleCellsToRenderUpdate();\n this._maybeCallOnEdgeReached();\n };\n\n /* Translates metrics from a scroll event in a parent VirtualizedList into\n * coordinates relative to the child list.\n */\n _convertParentScrollMetrics = (metrics: {\n visibleLength: number,\n offset: number,\n ...\n }): $FlowFixMe => {\n // Offset of the top of the nested list relative to the top of its parent's viewport\n const offset = metrics.offset - this._offsetFromParentVirtualizedList;\n // Child's visible length is the same as its parent's\n const visibleLength = metrics.visibleLength;\n const dOffset = offset - this._scrollMetrics.offset;\n const contentLength = this._scrollMetrics.contentLength;\n\n return {\n visibleLength,\n contentLength,\n offset,\n dOffset,\n };\n };\n\n _onScroll = (e: Object) => {\n this._nestedChildLists.forEach(childList => {\n childList._onScroll(e);\n });\n if (this.props.onScroll) {\n this.props.onScroll(e);\n }\n const timestamp = e.timeStamp;\n let visibleLength = this._selectLength(e.nativeEvent.layoutMeasurement);\n let contentLength = this._selectLength(e.nativeEvent.contentSize);\n let offset = this._selectOffset(e.nativeEvent.contentOffset);\n let dOffset = offset - this._scrollMetrics.offset;\n\n if (this._isNestedWithSameOrientation()) {\n if (this._scrollMetrics.contentLength === 0) {\n // Ignore scroll events until onLayout has been called and we\n // know our offset from our offset from our parent\n return;\n }\n ({visibleLength, contentLength, offset, dOffset} =\n this._convertParentScrollMetrics({\n visibleLength,\n offset,\n }));\n }\n\n const dt = this._scrollMetrics.timestamp\n ? Math.max(1, timestamp - this._scrollMetrics.timestamp)\n : 1;\n const velocity = dOffset / dt;\n\n if (\n dt > 500 &&\n this._scrollMetrics.dt > 500 &&\n contentLength > 5 * visibleLength &&\n !this._hasWarned.perf\n ) {\n infoLog(\n 'VirtualizedList: You have a large list that is slow to update - make sure your ' +\n 'renderItem function renders components that follow React performance best practices ' +\n 'like PureComponent, shouldComponentUpdate, etc.',\n {dt, prevDt: this._scrollMetrics.dt, contentLength},\n );\n this._hasWarned.perf = true;\n }\n\n // For invalid negative values (w/ RTL), set this to 1.\n const zoomScale = e.nativeEvent.zoomScale < 0 ? 1 : e.nativeEvent.zoomScale;\n this._scrollMetrics = {\n contentLength,\n dt,\n dOffset,\n offset,\n timestamp,\n velocity,\n visibleLength,\n zoomScale,\n };\n if (this.state.pendingScrollUpdateCount > 0) {\n this.setState(state => ({\n pendingScrollUpdateCount: state.pendingScrollUpdateCount - 1,\n }));\n }\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n if (!this.props) {\n return;\n }\n this._maybeCallOnEdgeReached();\n if (velocity !== 0) {\n this._fillRateHelper.activate();\n }\n this._computeBlankness();\n this._scheduleCellsToRenderUpdate();\n };\n\n _scheduleCellsToRenderUpdate() {\n const {first, last} = this.state.cellsAroundViewport;\n const {offset, visibleLength, velocity} = this._scrollMetrics;\n const itemCount = this.props.getItemCount(this.props.data);\n let hiPri = false;\n const onStartReachedThreshold = onStartReachedThresholdOrDefault(\n this.props.onStartReachedThreshold,\n );\n const onEndReachedThreshold = onEndReachedThresholdOrDefault(\n this.props.onEndReachedThreshold,\n );\n // Mark as high priority if we're close to the start of the first item\n // But only if there are items before the first rendered item\n if (first > 0) {\n const distTop =\n offset - this.__getFrameMetricsApprox(first, this.props).offset;\n hiPri =\n distTop < 0 ||\n (velocity < -2 &&\n distTop <\n getScrollingThreshold(onStartReachedThreshold, visibleLength));\n }\n // Mark as high priority if we're close to the end of the last item\n // But only if there are items after the last rendered item\n if (!hiPri && last >= 0 && last < itemCount - 1) {\n const distBottom =\n this.__getFrameMetricsApprox(last, this.props).offset -\n (offset + visibleLength);\n hiPri =\n distBottom < 0 ||\n (velocity > 2 &&\n distBottom <\n getScrollingThreshold(onEndReachedThreshold, visibleLength));\n }\n // Only trigger high-priority updates if we've actually rendered cells,\n // and with that size estimate, accurately compute how many cells we should render.\n // Otherwise, it would just render as many cells as it can (of zero dimension),\n // each time through attempting to render more (limited by maxToRenderPerBatch),\n // starving the renderer from actually laying out the objects and computing _averageCellLength.\n // If this is triggered in an `componentDidUpdate` followed by a hiPri cellToRenderUpdate\n // We shouldn't do another hipri cellToRenderUpdate\n if (\n hiPri &&\n (this._averageCellLength || this.props.getItemLayout) &&\n !this._hiPriInProgress\n ) {\n this._hiPriInProgress = true;\n // Don't worry about interactions when scrolling quickly; focus on filling content as fast\n // as possible.\n this._updateCellsToRenderBatcher.dispose({abort: true});\n this._updateCellsToRender();\n return;\n } else {\n this._updateCellsToRenderBatcher.schedule();\n }\n }\n\n _onScrollBeginDrag = (e: ScrollEvent): void => {\n this._nestedChildLists.forEach(childList => {\n childList._onScrollBeginDrag(e);\n });\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.recordInteraction();\n });\n this._hasInteracted = true;\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n };\n\n _onScrollEndDrag = (e: ScrollEvent): void => {\n this._nestedChildLists.forEach(childList => {\n childList._onScrollEndDrag(e);\n });\n const {velocity} = e.nativeEvent;\n if (velocity) {\n this._scrollMetrics.velocity = this._selectOffset(velocity);\n }\n this._computeBlankness();\n this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n };\n\n _onMomentumScrollBegin = (e: ScrollEvent): void => {\n this._nestedChildLists.forEach(childList => {\n childList._onMomentumScrollBegin(e);\n });\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n };\n\n _onMomentumScrollEnd = (e: ScrollEvent): void => {\n this._nestedChildLists.forEach(childList => {\n childList._onMomentumScrollEnd(e);\n });\n this._scrollMetrics.velocity = 0;\n this._computeBlankness();\n this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n };\n\n _updateCellsToRender = () => {\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n\n this.setState((state, props) => {\n const cellsAroundViewport = this._adjustCellsAroundViewport(\n props,\n state.cellsAroundViewport,\n state.pendingScrollUpdateCount,\n );\n const renderMask = VirtualizedList._createRenderMask(\n props,\n cellsAroundViewport,\n this._getNonViewportRenderRegions(props),\n );\n\n if (\n cellsAroundViewport.first === state.cellsAroundViewport.first &&\n cellsAroundViewport.last === state.cellsAroundViewport.last &&\n renderMask.equals(state.renderMask)\n ) {\n return null;\n }\n\n return {cellsAroundViewport, renderMask};\n });\n };\n\n _createViewToken = (\n index: number,\n isViewable: boolean,\n props: FrameMetricProps,\n // $FlowFixMe[missing-local-annot]\n ) => {\n const {data, getItem} = props;\n const item = getItem(data, index);\n return {\n index,\n item,\n key: VirtualizedList._keyExtractor(item, index, props),\n isViewable,\n };\n };\n\n /**\n * Gets an approximate offset to an item at a given index. Supports\n * fractional indices.\n */\n _getOffsetApprox = (index: number, props: FrameMetricProps): number => {\n if (Number.isInteger(index)) {\n return this.__getFrameMetricsApprox(index, props).offset;\n } else {\n const frameMetrics = this.__getFrameMetricsApprox(\n Math.floor(index),\n props,\n );\n const remainder = index - Math.floor(index);\n return frameMetrics.offset + remainder * frameMetrics.length;\n }\n };\n\n __getFrameMetricsApprox: (\n index: number,\n props: FrameMetricProps,\n ) => {\n length: number,\n offset: number,\n ...\n } = (index, props) => {\n const frame = this._getFrameMetrics(index, props);\n if (frame && frame.index === index) {\n // check for invalid frames due to row re-ordering\n return frame;\n } else {\n const {data, getItemCount, getItemLayout} = props;\n invariant(\n index >= 0 && index < getItemCount(data),\n 'Tried to get frame for out of range index ' + index,\n );\n invariant(\n !getItemLayout,\n 'Should not have to estimate frames when a measurement metrics function is provided',\n );\n return {\n length: this._averageCellLength,\n offset: this._averageCellLength * index,\n };\n }\n };\n\n _getFrameMetrics = (\n index: number,\n props: FrameMetricProps,\n ): ?{\n length: number,\n offset: number,\n index: number,\n inLayout?: boolean,\n ...\n } => {\n const {data, getItemCount, getItemLayout} = props;\n invariant(\n index >= 0 && index < getItemCount(data),\n 'Tried to get frame for out of range index ' + index,\n );\n const frame = this._frames[VirtualizedList._getItemKey(props, index)];\n if (!frame || frame.index !== index) {\n if (getItemLayout) {\n /* $FlowFixMe[prop-missing] (>=0.63.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.63 was deployed. To see the error\n * delete this comment and run Flow. */\n return getItemLayout(data, index);\n }\n }\n return frame;\n };\n\n _getNonViewportRenderRegions = (\n props: FrameMetricProps,\n ): $ReadOnlyArray<{\n first: number,\n last: number,\n }> => {\n // Keep a viewport's worth of content around the last focused cell to allow\n // random navigation around it without any blanking. E.g. tabbing from one\n // focused item out of viewport to another.\n if (\n !(this._lastFocusedCellKey && this._cellRefs[this._lastFocusedCellKey])\n ) {\n return [];\n }\n\n const lastFocusedCellRenderer = this._cellRefs[this._lastFocusedCellKey];\n const focusedCellIndex = lastFocusedCellRenderer.props.index;\n const itemCount = props.getItemCount(props.data);\n\n // The last cell we rendered may be at a new index. Bail if we don't know\n // where it is.\n if (\n focusedCellIndex >= itemCount ||\n VirtualizedList._getItemKey(props, focusedCellIndex) !==\n this._lastFocusedCellKey\n ) {\n return [];\n }\n\n let first = focusedCellIndex;\n let heightOfCellsBeforeFocused = 0;\n for (\n let i = first - 1;\n i >= 0 && heightOfCellsBeforeFocused < this._scrollMetrics.visibleLength;\n i--\n ) {\n first--;\n heightOfCellsBeforeFocused += this.__getFrameMetricsApprox(\n i,\n props,\n ).length;\n }\n\n let last = focusedCellIndex;\n let heightOfCellsAfterFocused = 0;\n for (\n let i = last + 1;\n i < itemCount &&\n heightOfCellsAfterFocused < this._scrollMetrics.visibleLength;\n i++\n ) {\n last++;\n heightOfCellsAfterFocused += this.__getFrameMetricsApprox(\n i,\n props,\n ).length;\n }\n\n return [{first, last}];\n };\n\n _updateViewableItems(\n props: FrameMetricProps,\n cellsAroundViewport: {first: number, last: number},\n ) {\n // If we have any pending scroll updates it means that the scroll metrics\n // are out of date and we should not call any of the visibility callbacks.\n if (this.state.pendingScrollUpdateCount > 0) {\n return;\n }\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.onUpdate(\n props,\n this._scrollMetrics.offset,\n this._scrollMetrics.visibleLength,\n this._getFrameMetrics,\n this._createViewToken,\n tuple.onViewableItemsChanged,\n cellsAroundViewport,\n );\n });\n }\n}\n\nconst styles = StyleSheet.create({\n verticallyInverted: {\n transform: [{scaleY: -1}],\n },\n horizontallyInverted: {\n transform: [{scaleX: -1}],\n },\n debug: {\n flex: 1,\n },\n debugOverlayBase: {\n position: 'absolute',\n top: 0,\n right: 0,\n },\n debugOverlay: {\n bottom: 0,\n width: 20,\n borderColor: 'blue',\n borderWidth: 1,\n },\n debugOverlayFrame: {\n left: 0,\n backgroundColor: 'orange',\n },\n debugOverlayFrameLast: {\n left: 0,\n borderColor: 'green',\n borderWidth: 2,\n },\n debugOverlayFrameVis: {\n left: 0,\n borderColor: 'red',\n borderWidth: 2,\n },\n});\n\nmodule.exports = VirtualizedList;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n'use strict';\n\nconst {InteractionManager} = require('react-native');\n\n/**\n * A simple class for batching up invocations of a low-pri callback. A timeout is set to run the\n * callback once after a delay, no matter how many times it's scheduled. Once the delay is reached,\n * InteractionManager.runAfterInteractions is used to invoke the callback after any hi-pri\n * interactions are done running.\n *\n * Make sure to cleanup with dispose(). Example:\n *\n * class Widget extends React.Component {\n * _batchedSave: new Batchinator(() => this._saveState, 1000);\n * _saveSate() {\n * // save this.state to disk\n * }\n * componentDidUpdate() {\n * this._batchedSave.schedule();\n * }\n * componentWillUnmount() {\n * this._batchedSave.dispose();\n * }\n * ...\n * }\n */\nclass Batchinator {\n _callback: () => void;\n _delay: number;\n _taskHandle: ?{cancel: () => void, ...};\n constructor(callback: () => void, delayMS: number) {\n this._delay = delayMS;\n this._callback = callback;\n }\n /*\n * Cleanup any pending tasks.\n *\n * By default, if there is a pending task the callback is run immediately. Set the option abort to\n * true to not call the callback if it was pending.\n */\n dispose(options: {abort: boolean, ...} = {abort: false}) {\n if (this._taskHandle) {\n this._taskHandle.cancel();\n if (!options.abort) {\n this._callback();\n }\n this._taskHandle = null;\n }\n }\n schedule() {\n if (this._taskHandle) {\n return;\n }\n const timeoutHandle = setTimeout(() => {\n this._taskHandle = InteractionManager.runAfterInteractions(() => {\n // Note that we clear the handle before invoking the callback so that if the callback calls\n // schedule again, it will actually schedule another task.\n this._taskHandle = null;\n this._callback();\n });\n }, this._delay);\n this._taskHandle = {cancel: () => clearTimeout(timeoutHandle)};\n }\n}\n\nmodule.exports = Batchinator;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nfunction clamp(min: number, value: number, max: number): number {\n if (value < min) {\n return min;\n }\n if (value > max) {\n return max;\n }\n return value;\n}\n\nmodule.exports = clamp;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\n/**\n * Intentional info-level logging for clear separation from ad-hoc console debug logging.\n */\nfunction infoLog(...args: Array): void {\n return console.log(...args);\n}\n\nmodule.exports = infoLog;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport invariant from 'invariant';\n\nexport default class ChildListCollection {\n _cellKeyToChildren: Map> = new Map();\n _childrenToCellKey: Map = new Map();\n\n add(list: TList, cellKey: string): void {\n invariant(\n !this._childrenToCellKey.has(list),\n 'Trying to add already present child list',\n );\n\n const cellLists = this._cellKeyToChildren.get(cellKey) ?? new Set();\n cellLists.add(list);\n this._cellKeyToChildren.set(cellKey, cellLists);\n\n this._childrenToCellKey.set(list, cellKey);\n }\n\n remove(list: TList): void {\n const cellKey = this._childrenToCellKey.get(list);\n invariant(cellKey != null, 'Trying to remove non-present child list');\n this._childrenToCellKey.delete(list);\n\n const cellLists = this._cellKeyToChildren.get(cellKey);\n invariant(cellLists, '_cellKeyToChildren should contain cellKey');\n cellLists.delete(list);\n\n if (cellLists.size === 0) {\n this._cellKeyToChildren.delete(cellKey);\n }\n }\n\n forEach(fn: TList => void): void {\n for (const listSet of this._cellKeyToChildren.values()) {\n for (const list of listSet) {\n fn(list);\n }\n }\n }\n\n forEachInCell(cellKey: string, fn: TList => void): void {\n const listSet = this._cellKeyToChildren.get(cellKey) ?? [];\n for (const list of listSet) {\n fn(list);\n }\n }\n\n anyInCell(cellKey: string, fn: TList => boolean): boolean {\n const listSet = this._cellKeyToChildren.get(cellKey) ?? [];\n for (const list of listSet) {\n if (fn(list)) {\n return true;\n }\n }\n return false;\n }\n\n size(): number {\n return this._childrenToCellKey.size;\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {FrameMetricProps} from './VirtualizedListProps';\n\nexport type FillRateInfo = Info;\n\nclass Info {\n any_blank_count: number = 0;\n any_blank_ms: number = 0;\n any_blank_speed_sum: number = 0;\n mostly_blank_count: number = 0;\n mostly_blank_ms: number = 0;\n pixels_blank: number = 0;\n pixels_sampled: number = 0;\n pixels_scrolled: number = 0;\n total_time_spent: number = 0;\n sample_count: number = 0;\n}\n\ntype FrameMetrics = {\n inLayout?: boolean,\n length: number,\n offset: number,\n ...\n};\n\nconst DEBUG = false;\n\nlet _listeners: Array<(Info) => void> = [];\nlet _minSampleCount = 10;\nlet _sampleRate = DEBUG ? 1 : null;\n\n/**\n * A helper class for detecting when the maximem fill rate of `VirtualizedList` is exceeded.\n * By default the sampling rate is set to zero and this will do nothing. If you want to collect\n * samples (e.g. to log them), make sure to call `FillRateHelper.setSampleRate(0.0-1.0)`.\n *\n * Listeners and sample rate are global for all `VirtualizedList`s - typical usage will combine with\n * `SceneTracker.getActiveScene` to determine the context of the events.\n */\nclass FillRateHelper {\n _anyBlankStartTime: ?number = null;\n _enabled = false;\n _getFrameMetrics: (index: number, props: FrameMetricProps) => ?FrameMetrics;\n _info: Info = new Info();\n _mostlyBlankStartTime: ?number = null;\n _samplesStartTime: ?number = null;\n\n static addListener(callback: FillRateInfo => void): {\n remove: () => void,\n ...\n } {\n if (_sampleRate === null) {\n console.warn('Call `FillRateHelper.setSampleRate` before `addListener`.');\n }\n _listeners.push(callback);\n return {\n remove: () => {\n _listeners = _listeners.filter(listener => callback !== listener);\n },\n };\n }\n\n static setSampleRate(sampleRate: number) {\n _sampleRate = sampleRate;\n }\n\n static setMinSampleCount(minSampleCount: number) {\n _minSampleCount = minSampleCount;\n }\n\n constructor(\n getFrameMetrics: (index: number, props: FrameMetricProps) => ?FrameMetrics,\n ) {\n this._getFrameMetrics = getFrameMetrics;\n this._enabled = (_sampleRate || 0) > Math.random();\n this._resetData();\n }\n\n activate() {\n if (this._enabled && this._samplesStartTime == null) {\n DEBUG && console.debug('FillRateHelper: activate');\n this._samplesStartTime = global.performance.now();\n }\n }\n\n deactivateAndFlush() {\n if (!this._enabled) {\n return;\n }\n const start = this._samplesStartTime; // const for flow\n if (start == null) {\n DEBUG &&\n console.debug('FillRateHelper: bail on deactivate with no start time');\n return;\n }\n if (this._info.sample_count < _minSampleCount) {\n // Don't bother with under-sampled events.\n this._resetData();\n return;\n }\n const total_time_spent = global.performance.now() - start;\n const info: any = {\n ...this._info,\n total_time_spent,\n };\n if (DEBUG) {\n const derived = {\n avg_blankness: this._info.pixels_blank / this._info.pixels_sampled,\n avg_speed: this._info.pixels_scrolled / (total_time_spent / 1000),\n avg_speed_when_any_blank:\n this._info.any_blank_speed_sum / this._info.any_blank_count,\n any_blank_per_min:\n this._info.any_blank_count / (total_time_spent / 1000 / 60),\n any_blank_time_frac: this._info.any_blank_ms / total_time_spent,\n mostly_blank_per_min:\n this._info.mostly_blank_count / (total_time_spent / 1000 / 60),\n mostly_blank_time_frac: this._info.mostly_blank_ms / total_time_spent,\n };\n for (const key in derived) {\n // $FlowFixMe[prop-missing]\n derived[key] = Math.round(1000 * derived[key]) / 1000;\n }\n console.debug('FillRateHelper deactivateAndFlush: ', {derived, info});\n }\n _listeners.forEach(listener => listener(info));\n this._resetData();\n }\n\n computeBlankness(\n props: {\n ...FrameMetricProps,\n initialNumToRender?: ?number,\n ...\n },\n cellsAroundViewport: {\n first: number,\n last: number,\n ...\n },\n scrollMetrics: {\n dOffset: number,\n offset: number,\n velocity: number,\n visibleLength: number,\n ...\n },\n ): number {\n if (\n !this._enabled ||\n props.getItemCount(props.data) === 0 ||\n cellsAroundViewport.last < cellsAroundViewport.first ||\n this._samplesStartTime == null\n ) {\n return 0;\n }\n const {dOffset, offset, velocity, visibleLength} = scrollMetrics;\n\n // Denominator metrics that we track for all events - most of the time there is no blankness and\n // we want to capture that.\n this._info.sample_count++;\n this._info.pixels_sampled += Math.round(visibleLength);\n this._info.pixels_scrolled += Math.round(Math.abs(dOffset));\n const scrollSpeed = Math.round(Math.abs(velocity) * 1000); // px / sec\n\n // Whether blank now or not, record the elapsed time blank if we were blank last time.\n const now = global.performance.now();\n if (this._anyBlankStartTime != null) {\n this._info.any_blank_ms += now - this._anyBlankStartTime;\n }\n this._anyBlankStartTime = null;\n if (this._mostlyBlankStartTime != null) {\n this._info.mostly_blank_ms += now - this._mostlyBlankStartTime;\n }\n this._mostlyBlankStartTime = null;\n\n let blankTop = 0;\n let first = cellsAroundViewport.first;\n let firstFrame = this._getFrameMetrics(first, props);\n while (\n first <= cellsAroundViewport.last &&\n (!firstFrame || !firstFrame.inLayout)\n ) {\n firstFrame = this._getFrameMetrics(first, props);\n first++;\n }\n // Only count blankTop if we aren't rendering the first item, otherwise we will count the header\n // as blank.\n if (firstFrame && first > 0) {\n blankTop = Math.min(\n visibleLength,\n Math.max(0, firstFrame.offset - offset),\n );\n }\n let blankBottom = 0;\n let last = cellsAroundViewport.last;\n let lastFrame = this._getFrameMetrics(last, props);\n while (\n last >= cellsAroundViewport.first &&\n (!lastFrame || !lastFrame.inLayout)\n ) {\n lastFrame = this._getFrameMetrics(last, props);\n last--;\n }\n // Only count blankBottom if we aren't rendering the last item, otherwise we will count the\n // footer as blank.\n if (lastFrame && last < props.getItemCount(props.data) - 1) {\n const bottomEdge = lastFrame.offset + lastFrame.length;\n blankBottom = Math.min(\n visibleLength,\n Math.max(0, offset + visibleLength - bottomEdge),\n );\n }\n const pixels_blank = Math.round(blankTop + blankBottom);\n const blankness = pixels_blank / visibleLength;\n if (blankness > 0) {\n this._anyBlankStartTime = now;\n this._info.any_blank_speed_sum += scrollSpeed;\n this._info.any_blank_count++;\n this._info.pixels_blank += pixels_blank;\n if (blankness > 0.5) {\n this._mostlyBlankStartTime = now;\n this._info.mostly_blank_count++;\n }\n } else if (scrollSpeed < 0.01 || Math.abs(dOffset) < 1) {\n this.deactivateAndFlush();\n }\n return blankness;\n }\n\n enabled(): boolean {\n return this._enabled;\n }\n\n _resetData() {\n this._anyBlankStartTime = null;\n this._info = new Info();\n this._mostlyBlankStartTime = null;\n this._samplesStartTime = null;\n }\n}\n\nmodule.exports = FillRateHelper;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport invariant from 'invariant';\nimport * as React from 'react';\n\n/**\n * `setState` is called asynchronously, and should not rely on the value of\n * `this.props` or `this.state`:\n * https://reactjs.org/docs/state-and-lifecycle.html#state-updates-may-be-asynchronous\n *\n * SafePureComponent adds runtime enforcement, to catch cases where these\n * variables are read in a state updater function, instead of the ones passed\n * in.\n */\nexport default class StateSafePureComponent<\n Props,\n State: interface {},\n> extends React.PureComponent {\n _inAsyncStateUpdate = false;\n\n constructor(props: Props) {\n super(props);\n this._installSetStateHooks();\n }\n\n setState(\n partialState: ?($Shape | ((State, Props) => ?$Shape)),\n callback?: () => mixed,\n ): void {\n if (typeof partialState === 'function') {\n super.setState((state, props) => {\n this._inAsyncStateUpdate = true;\n let ret;\n try {\n ret = partialState(state, props);\n } catch (err) {\n throw err;\n } finally {\n this._inAsyncStateUpdate = false;\n }\n return ret;\n }, callback);\n } else {\n super.setState(partialState, callback);\n }\n }\n\n _installSetStateHooks() {\n const that = this;\n let {props, state} = this;\n\n Object.defineProperty(this, 'props', {\n get() {\n invariant(\n !that._inAsyncStateUpdate,\n '\"this.props\" should not be accessed during state updates',\n );\n return props;\n },\n set(newProps: Props) {\n props = newProps;\n },\n });\n Object.defineProperty(this, 'state', {\n get() {\n invariant(\n !that._inAsyncStateUpdate,\n '\"this.state\" should not be acceessed during state updates',\n );\n return state;\n },\n set(newState: State) {\n state = newState;\n },\n });\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {FrameMetricProps} from './VirtualizedListProps';\n\nconst invariant = require('invariant');\n\nexport type ViewToken = {\n item: any,\n key: string,\n index: ?number,\n isViewable: boolean,\n section?: any,\n ...\n};\n\nexport type ViewabilityConfigCallbackPair = {\n viewabilityConfig: ViewabilityConfig,\n onViewableItemsChanged: (info: {\n viewableItems: Array,\n changed: Array,\n ...\n }) => void,\n ...\n};\n\nexport type ViewabilityConfig = {|\n /**\n * Minimum amount of time (in milliseconds) that an item must be physically viewable before the\n * viewability callback will be fired. A high number means that scrolling through content without\n * stopping will not mark the content as viewable.\n */\n minimumViewTime?: number,\n\n /**\n * Percent of viewport that must be covered for a partially occluded item to count as\n * \"viewable\", 0-100. Fully visible items are always considered viewable. A value of 0 means\n * that a single pixel in the viewport makes the item viewable, and a value of 100 means that\n * an item must be either entirely visible or cover the entire viewport to count as viewable.\n */\n viewAreaCoveragePercentThreshold?: number,\n\n /**\n * Similar to `viewAreaPercentThreshold`, but considers the percent of the item that is visible,\n * rather than the fraction of the viewable area it covers.\n */\n itemVisiblePercentThreshold?: number,\n\n /**\n * Nothing is considered viewable until the user scrolls or `recordInteraction` is called after\n * render.\n */\n waitForInteraction?: boolean,\n|};\n\n/**\n * A Utility class for calculating viewable items based on current metrics like scroll position and\n * layout.\n *\n * An item is said to be in a \"viewable\" state when any of the following\n * is true for longer than `minimumViewTime` milliseconds (after an interaction if `waitForInteraction`\n * is true):\n *\n * - Occupying >= `viewAreaCoveragePercentThreshold` of the view area XOR fraction of the item\n * visible in the view area >= `itemVisiblePercentThreshold`.\n * - Entirely visible on screen\n */\nclass ViewabilityHelper {\n _config: ViewabilityConfig;\n _hasInteracted: boolean = false;\n _timers: Set = new Set();\n _viewableIndices: Array = [];\n _viewableItems: Map = new Map();\n\n constructor(\n config: ViewabilityConfig = {viewAreaCoveragePercentThreshold: 0},\n ) {\n this._config = config;\n }\n\n /**\n * Cleanup, e.g. on unmount. Clears any pending timers.\n */\n dispose() {\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To see\n * the error delete this comment and run Flow. */\n this._timers.forEach(clearTimeout);\n }\n\n /**\n * Determines which items are viewable based on the current metrics and config.\n */\n computeViewableItems(\n props: FrameMetricProps,\n scrollOffset: number,\n viewportHeight: number,\n getFrameMetrics: (\n index: number,\n props: FrameMetricProps,\n ) => ?{\n length: number,\n offset: number,\n ...\n },\n // Optional optimization to reduce the scan size\n renderRange?: {\n first: number,\n last: number,\n ...\n },\n ): Array {\n const itemCount = props.getItemCount(props.data);\n const {itemVisiblePercentThreshold, viewAreaCoveragePercentThreshold} =\n this._config;\n const viewAreaMode = viewAreaCoveragePercentThreshold != null;\n const viewablePercentThreshold = viewAreaMode\n ? viewAreaCoveragePercentThreshold\n : itemVisiblePercentThreshold;\n invariant(\n viewablePercentThreshold != null &&\n (itemVisiblePercentThreshold != null) !==\n (viewAreaCoveragePercentThreshold != null),\n 'Must set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold',\n );\n const viewableIndices = [];\n if (itemCount === 0) {\n return viewableIndices;\n }\n let firstVisible = -1;\n const {first, last} = renderRange || {first: 0, last: itemCount - 1};\n if (last >= itemCount) {\n console.warn(\n 'Invalid render range computing viewability ' +\n JSON.stringify({renderRange, itemCount}),\n );\n return [];\n }\n for (let idx = first; idx <= last; idx++) {\n const metrics = getFrameMetrics(idx, props);\n if (!metrics) {\n continue;\n }\n const top = metrics.offset - scrollOffset;\n const bottom = top + metrics.length;\n if (top < viewportHeight && bottom > 0) {\n firstVisible = idx;\n if (\n _isViewable(\n viewAreaMode,\n viewablePercentThreshold,\n top,\n bottom,\n viewportHeight,\n metrics.length,\n )\n ) {\n viewableIndices.push(idx);\n }\n } else if (firstVisible >= 0) {\n break;\n }\n }\n return viewableIndices;\n }\n\n /**\n * Figures out which items are viewable and how that has changed from before and calls\n * `onViewableItemsChanged` as appropriate.\n */\n onUpdate(\n props: FrameMetricProps,\n scrollOffset: number,\n viewportHeight: number,\n getFrameMetrics: (\n index: number,\n props: FrameMetricProps,\n ) => ?{\n length: number,\n offset: number,\n ...\n },\n createViewToken: (\n index: number,\n isViewable: boolean,\n props: FrameMetricProps,\n ) => ViewToken,\n onViewableItemsChanged: ({\n viewableItems: Array,\n changed: Array,\n ...\n }) => void,\n // Optional optimization to reduce the scan size\n renderRange?: {\n first: number,\n last: number,\n ...\n },\n ): void {\n const itemCount = props.getItemCount(props.data);\n if (\n (this._config.waitForInteraction && !this._hasInteracted) ||\n itemCount === 0 ||\n !getFrameMetrics(0, props)\n ) {\n return;\n }\n let viewableIndices: Array = [];\n if (itemCount) {\n viewableIndices = this.computeViewableItems(\n props,\n scrollOffset,\n viewportHeight,\n getFrameMetrics,\n renderRange,\n );\n }\n if (\n this._viewableIndices.length === viewableIndices.length &&\n this._viewableIndices.every((v, ii) => v === viewableIndices[ii])\n ) {\n // We might get a lot of scroll events where visibility doesn't change and we don't want to do\n // extra work in those cases.\n return;\n }\n this._viewableIndices = viewableIndices;\n if (this._config.minimumViewTime) {\n const handle: TimeoutID = setTimeout(() => {\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To\n * see the error delete this comment and run Flow. */\n this._timers.delete(handle);\n this._onUpdateSync(\n props,\n viewableIndices,\n onViewableItemsChanged,\n createViewToken,\n );\n }, this._config.minimumViewTime);\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To see\n * the error delete this comment and run Flow. */\n this._timers.add(handle);\n } else {\n this._onUpdateSync(\n props,\n viewableIndices,\n onViewableItemsChanged,\n createViewToken,\n );\n }\n }\n\n /**\n * clean-up cached _viewableIndices to evaluate changed items on next update\n */\n resetViewableIndices() {\n this._viewableIndices = [];\n }\n\n /**\n * Records that an interaction has happened even if there has been no scroll.\n */\n recordInteraction() {\n this._hasInteracted = true;\n }\n\n _onUpdateSync(\n props: FrameMetricProps,\n viewableIndicesToCheck: Array,\n onViewableItemsChanged: ({\n changed: Array,\n viewableItems: Array,\n ...\n }) => void,\n createViewToken: (\n index: number,\n isViewable: boolean,\n props: FrameMetricProps,\n ) => ViewToken,\n ) {\n // Filter out indices that have gone out of view since this call was scheduled.\n viewableIndicesToCheck = viewableIndicesToCheck.filter(ii =>\n this._viewableIndices.includes(ii),\n );\n const prevItems = this._viewableItems;\n const nextItems = new Map(\n viewableIndicesToCheck.map(ii => {\n const viewable = createViewToken(ii, true, props);\n return [viewable.key, viewable];\n }),\n );\n\n const changed = [];\n for (const [key, viewable] of nextItems) {\n if (!prevItems.has(key)) {\n changed.push(viewable);\n }\n }\n for (const [key, viewable] of prevItems) {\n if (!nextItems.has(key)) {\n changed.push({...viewable, isViewable: false});\n }\n }\n if (changed.length > 0) {\n this._viewableItems = nextItems;\n onViewableItemsChanged({\n viewableItems: Array.from(nextItems.values()),\n changed,\n viewabilityConfig: this._config,\n });\n }\n }\n}\n\nfunction _isViewable(\n viewAreaMode: boolean,\n viewablePercentThreshold: number,\n top: number,\n bottom: number,\n viewportHeight: number,\n itemLength: number,\n): boolean {\n if (_isEntirelyVisible(top, bottom, viewportHeight)) {\n return true;\n } else {\n const pixels = _getPixelsVisible(top, bottom, viewportHeight);\n const percent =\n 100 * (viewAreaMode ? pixels / viewportHeight : pixels / itemLength);\n return percent >= viewablePercentThreshold;\n }\n}\n\nfunction _getPixelsVisible(\n top: number,\n bottom: number,\n viewportHeight: number,\n): number {\n const visibleHeight = Math.min(bottom, viewportHeight) - Math.max(top, 0);\n return Math.max(0, visibleHeight);\n}\n\nfunction _isEntirelyVisible(\n top: number,\n bottom: number,\n viewportHeight: number,\n): boolean {\n return top >= 0 && bottom <= viewportHeight && bottom > top;\n}\n\nmodule.exports = ViewabilityHelper;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {ViewStyleProp} from 'react-native/Libraries/StyleSheet/StyleSheet';\nimport type {\n FocusEvent,\n LayoutEvent,\n} from 'react-native/Libraries/Types/CoreEventTypes';\nimport type {CellRendererProps, RenderItemType} from './VirtualizedListProps';\n\nimport {View, StyleSheet} from 'react-native';\nimport {VirtualizedListCellContextProvider} from './VirtualizedListContext.js';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\nexport type Props = {\n CellRendererComponent?: ?React.ComponentType>,\n ItemSeparatorComponent: ?React.ComponentType<\n any | {highlighted: boolean, leadingItem: ?ItemT},\n >,\n ListItemComponent?: ?(React.ComponentType | React.Element),\n cellKey: string,\n horizontal: ?boolean,\n index: number,\n inversionStyle: ViewStyleProp,\n item: ItemT,\n onCellLayout?: (event: LayoutEvent, cellKey: string, index: number) => void,\n onCellFocusCapture?: (event: FocusEvent) => void,\n onUnmount: (cellKey: string) => void,\n onUpdateSeparators: (\n cellKeys: Array,\n props: $Shape>,\n ) => void,\n prevCellKey: ?string,\n renderItem?: ?RenderItemType,\n ...\n};\n\ntype SeparatorProps = $ReadOnly<{|\n highlighted: boolean,\n leadingItem: ?ItemT,\n|}>;\n\ntype State = {\n separatorProps: SeparatorProps,\n ...\n};\n\nexport default class CellRenderer extends React.Component<\n Props,\n State,\n> {\n state: State = {\n separatorProps: {\n highlighted: false,\n leadingItem: this.props.item,\n },\n };\n\n static getDerivedStateFromProps(\n props: Props,\n prevState: State,\n ): ?State {\n return {\n separatorProps: {\n ...prevState.separatorProps,\n leadingItem: props.item,\n },\n };\n }\n\n // TODO: consider factoring separator stuff out of VirtualizedList into FlatList since it's not\n // reused by SectionList and we can keep VirtualizedList simpler.\n // $FlowFixMe[missing-local-annot]\n _separators = {\n highlight: () => {\n const {cellKey, prevCellKey} = this.props;\n this.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: true,\n });\n },\n unhighlight: () => {\n const {cellKey, prevCellKey} = this.props;\n this.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: false,\n });\n },\n updateProps: (\n select: 'leading' | 'trailing',\n newProps: SeparatorProps,\n ) => {\n const {cellKey, prevCellKey} = this.props;\n this.props.onUpdateSeparators(\n [select === 'leading' ? prevCellKey : cellKey],\n newProps,\n );\n },\n };\n\n updateSeparatorProps(newProps: SeparatorProps) {\n this.setState(state => ({\n separatorProps: {...state.separatorProps, ...newProps},\n }));\n }\n\n componentWillUnmount() {\n this.props.onUnmount(this.props.cellKey);\n }\n\n _onLayout = (nativeEvent: LayoutEvent): void => {\n this.props.onCellLayout &&\n this.props.onCellLayout(\n nativeEvent,\n this.props.cellKey,\n this.props.index,\n );\n };\n\n _renderElement(\n renderItem: ?RenderItemType,\n ListItemComponent: any,\n item: ItemT,\n index: number,\n ): React.Node {\n if (renderItem && ListItemComponent) {\n console.warn(\n 'VirtualizedList: Both ListItemComponent and renderItem props are present. ListItemComponent will take' +\n ' precedence over renderItem.',\n );\n }\n\n if (ListItemComponent) {\n /* $FlowFixMe[not-a-component] (>=0.108.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.108 was deployed. To\n * see the error, delete this comment and run Flow. */\n /* $FlowFixMe[incompatible-type-arg] (>=0.108.0 site=react_native_fb)\n * This comment suppresses an error found when Flow v0.108 was deployed.\n * To see the error, delete this comment and run Flow. */\n return React.createElement(ListItemComponent, {\n item,\n index,\n separators: this._separators,\n });\n }\n\n if (renderItem) {\n return renderItem({\n item,\n index,\n separators: this._separators,\n });\n }\n\n invariant(\n false,\n 'VirtualizedList: Either ListItemComponent or renderItem props are required but none were found.',\n );\n }\n\n render(): React.Node {\n const {\n CellRendererComponent,\n ItemSeparatorComponent,\n ListItemComponent,\n cellKey,\n horizontal,\n item,\n index,\n inversionStyle,\n onCellFocusCapture,\n onCellLayout,\n renderItem,\n } = this.props;\n const element = this._renderElement(\n renderItem,\n ListItemComponent,\n item,\n index,\n );\n\n // NOTE: that when this is a sticky header, `onLayout` will get automatically extracted and\n // called explicitly by `ScrollViewStickyHeader`.\n const itemSeparator: React.Node = React.isValidElement(\n ItemSeparatorComponent,\n )\n ? // $FlowFixMe[incompatible-type]\n ItemSeparatorComponent\n : // $FlowFixMe[incompatible-type]\n ItemSeparatorComponent && (\n \n );\n const cellStyle = inversionStyle\n ? horizontal\n ? [styles.rowReverse, inversionStyle]\n : [styles.columnReverse, inversionStyle]\n : horizontal\n ? [styles.row, inversionStyle]\n : inversionStyle;\n const result = !CellRendererComponent ? (\n \n {element}\n {itemSeparator}\n \n ) : (\n \n {element}\n {itemSeparator}\n \n );\n\n return (\n \n {result}\n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n row: {\n flexDirection: 'row',\n },\n rowReverse: {\n flexDirection: 'row-reverse',\n },\n columnReverse: {\n flexDirection: 'column-reverse',\n },\n});\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport typeof VirtualizedList from './VirtualizedList';\n\nimport * as React from 'react';\nimport {useContext, useMemo} from 'react';\n\ntype Context = $ReadOnly<{\n cellKey: ?string,\n getScrollMetrics: () => {\n contentLength: number,\n dOffset: number,\n dt: number,\n offset: number,\n timestamp: number,\n velocity: number,\n visibleLength: number,\n zoomScale: number,\n },\n horizontal: ?boolean,\n getOutermostParentListRef: () => React.ElementRef,\n registerAsNestedChild: ({\n cellKey: string,\n ref: React.ElementRef,\n }) => void,\n unregisterAsNestedChild: ({\n ref: React.ElementRef,\n }) => void,\n}>;\n\nexport const VirtualizedListContext: React.Context =\n React.createContext(null);\nif (__DEV__) {\n VirtualizedListContext.displayName = 'VirtualizedListContext';\n}\n\n/**\n * Resets the context. Intended for use by portal-like components (e.g. Modal).\n */\nexport function VirtualizedListContextResetter({\n children,\n}: {\n children: React.Node,\n}): React.Node {\n return (\n \n {children}\n \n );\n}\n\n/**\n * Sets the context with memoization. Intended to be used by `VirtualizedList`.\n */\nexport function VirtualizedListContextProvider({\n children,\n value,\n}: {\n children: React.Node,\n value: Context,\n}): React.Node {\n // Avoid setting a newly created context object if the values are identical.\n const context = useMemo(\n () => ({\n cellKey: null,\n getScrollMetrics: value.getScrollMetrics,\n horizontal: value.horizontal,\n getOutermostParentListRef: value.getOutermostParentListRef,\n registerAsNestedChild: value.registerAsNestedChild,\n unregisterAsNestedChild: value.unregisterAsNestedChild,\n }),\n [\n value.getScrollMetrics,\n value.horizontal,\n value.getOutermostParentListRef,\n value.registerAsNestedChild,\n value.unregisterAsNestedChild,\n ],\n );\n return (\n \n {children}\n \n );\n}\n\n/**\n * Sets the `cellKey`. Intended to be used by `VirtualizedList` for each cell.\n */\nexport function VirtualizedListCellContextProvider({\n cellKey,\n children,\n}: {\n cellKey: string,\n children: React.Node,\n}): React.Node {\n // Avoid setting a newly created context object if the values are identical.\n const currContext = useContext(VirtualizedListContext);\n const context = useMemo(\n () => (currContext == null ? null : {...currContext, cellKey}),\n [currContext, cellKey],\n );\n return (\n \n {children}\n \n );\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport invariant from 'invariant';\n\nexport type CellRegion = {\n first: number,\n last: number,\n isSpacer: boolean,\n};\n\nexport class CellRenderMask {\n _numCells: number;\n _regions: Array;\n\n constructor(numCells: number) {\n invariant(\n numCells >= 0,\n 'CellRenderMask must contain a non-negative number os cells',\n );\n\n this._numCells = numCells;\n\n if (numCells === 0) {\n this._regions = [];\n } else {\n this._regions = [\n {\n first: 0,\n last: numCells - 1,\n isSpacer: true,\n },\n ];\n }\n }\n\n enumerateRegions(): $ReadOnlyArray {\n return this._regions;\n }\n\n addCells(cells: {first: number, last: number}): void {\n invariant(\n cells.first >= 0 &&\n cells.first < this._numCells &&\n cells.last >= -1 &&\n cells.last < this._numCells &&\n cells.last >= cells.first - 1,\n 'CellRenderMask.addCells called with invalid cell range',\n );\n\n // VirtualizedList uses inclusive ranges, where zero-count states are\n // possible. E.g. [0, -1] for no cells, starting at 0.\n if (cells.last < cells.first) {\n return;\n }\n\n const [firstIntersect, firstIntersectIdx] = this._findRegion(cells.first);\n const [lastIntersect, lastIntersectIdx] = this._findRegion(cells.last);\n\n // Fast-path if the cells to add are already all present in the mask. We\n // will otherwise need to do some mutation.\n if (firstIntersectIdx === lastIntersectIdx && !firstIntersect.isSpacer) {\n return;\n }\n\n // We need to replace the existing covered regions with 1-3 new regions\n // depending whether we need to split spacers out of overlapping regions.\n const newLeadRegion: Array = [];\n const newTailRegion: Array = [];\n const newMainRegion: CellRegion = {\n ...cells,\n isSpacer: false,\n };\n\n if (firstIntersect.first < newMainRegion.first) {\n if (firstIntersect.isSpacer) {\n newLeadRegion.push({\n first: firstIntersect.first,\n last: newMainRegion.first - 1,\n isSpacer: true,\n });\n } else {\n newMainRegion.first = firstIntersect.first;\n }\n }\n\n if (lastIntersect.last > newMainRegion.last) {\n if (lastIntersect.isSpacer) {\n newTailRegion.push({\n first: newMainRegion.last + 1,\n last: lastIntersect.last,\n isSpacer: true,\n });\n } else {\n newMainRegion.last = lastIntersect.last;\n }\n }\n\n const replacementRegions: Array = [\n ...newLeadRegion,\n newMainRegion,\n ...newTailRegion,\n ];\n const numRegionsToDelete = lastIntersectIdx - firstIntersectIdx + 1;\n this._regions.splice(\n firstIntersectIdx,\n numRegionsToDelete,\n ...replacementRegions,\n );\n }\n\n numCells(): number {\n return this._numCells;\n }\n\n equals(other: CellRenderMask): boolean {\n return (\n this._numCells === other._numCells &&\n this._regions.length === other._regions.length &&\n this._regions.every(\n (region, i) =>\n region.first === other._regions[i].first &&\n region.last === other._regions[i].last &&\n region.isSpacer === other._regions[i].isSpacer,\n )\n );\n }\n\n _findRegion(cellIdx: number): [CellRegion, number] {\n let firstIdx = 0;\n let lastIdx = this._regions.length - 1;\n\n while (firstIdx <= lastIdx) {\n const middleIdx = Math.floor((firstIdx + lastIdx) / 2);\n const middleRegion = this._regions[middleIdx];\n\n if (cellIdx >= middleRegion.first && cellIdx <= middleRegion.last) {\n return [middleRegion, middleIdx];\n } else if (cellIdx < middleRegion.first) {\n lastIdx = middleIdx - 1;\n } else if (cellIdx > middleRegion.last) {\n firstIdx = middleIdx + 1;\n }\n }\n\n invariant(false, `A region was not found containing cellIdx ${cellIdx}`);\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {ViewToken} from './ViewabilityHelper';\n\nimport {View} from 'react-native';\nimport VirtualizedList from './VirtualizedList';\nimport {keyExtractor as defaultKeyExtractor} from './VirtualizeUtils';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\ntype Item = any;\n\nexport type SectionBase = {\n /**\n * The data for rendering items in this section.\n */\n data: $ReadOnlyArray,\n /**\n * Optional key to keep track of section re-ordering. If you don't plan on re-ordering sections,\n * the array index will be used by default.\n */\n key?: string,\n // Optional props will override list-wide props just for this section.\n renderItem?: ?(info: {\n item: SectionItemT,\n index: number,\n section: SectionBase,\n separators: {\n highlight: () => void,\n unhighlight: () => void,\n updateProps: (select: 'leading' | 'trailing', newProps: Object) => void,\n ...\n },\n ...\n }) => null | React.Element,\n ItemSeparatorComponent?: ?React.ComponentType,\n keyExtractor?: (item: SectionItemT, index?: ?number) => string,\n ...\n};\n\ntype RequiredProps> = {|\n sections: $ReadOnlyArray,\n|};\n\ntype OptionalProps> = {|\n /**\n * Default renderer for every item in every section.\n */\n renderItem?: (info: {\n item: Item,\n index: number,\n section: SectionT,\n separators: {\n highlight: () => void,\n unhighlight: () => void,\n updateProps: (select: 'leading' | 'trailing', newProps: Object) => void,\n ...\n },\n ...\n }) => null | React.Element,\n /**\n * Rendered at the top of each section. These stick to the top of the `ScrollView` by default on\n * iOS. See `stickySectionHeadersEnabled`.\n */\n renderSectionHeader?: ?(info: {\n section: SectionT,\n ...\n }) => null | React.Element,\n /**\n * Rendered at the bottom of each section.\n */\n renderSectionFooter?: ?(info: {\n section: SectionT,\n ...\n }) => null | React.Element,\n /**\n * Rendered at the top and bottom of each section (note this is different from\n * `ItemSeparatorComponent` which is only rendered between items). These are intended to separate\n * sections from the headers above and below and typically have the same highlight response as\n * `ItemSeparatorComponent`. Also receives `highlighted`, `[leading/trailing][Item/Separator]`,\n * and any custom props from `separators.updateProps`.\n */\n SectionSeparatorComponent?: ?React.ComponentType,\n /**\n * Makes section headers stick to the top of the screen until the next one pushes it off. Only\n * enabled by default on iOS because that is the platform standard there.\n */\n stickySectionHeadersEnabled?: boolean,\n onEndReached?: ?({distanceFromEnd: number, ...}) => void,\n|};\n\ntype VirtualizedListProps = React.ElementConfig;\n\nexport type Props = {|\n ...RequiredProps,\n ...OptionalProps,\n ...$Diff<\n VirtualizedListProps,\n {\n renderItem: $PropertyType,\n data: $PropertyType,\n ...\n },\n >,\n|};\nexport type ScrollToLocationParamsType = {|\n animated?: ?boolean,\n itemIndex: number,\n sectionIndex: number,\n viewOffset?: number,\n viewPosition?: number,\n|};\n\ntype State = {childProps: VirtualizedListProps, ...};\n\n/**\n * Right now this just flattens everything into one list and uses VirtualizedList under the\n * hood. The only operation that might not scale well is concatting the data arrays of all the\n * sections when new props are received, which should be plenty fast for up to ~10,000 items.\n */\nclass VirtualizedSectionList<\n SectionT: SectionBase,\n> extends React.PureComponent, State> {\n scrollToLocation(params: ScrollToLocationParamsType) {\n let index = params.itemIndex;\n for (let i = 0; i < params.sectionIndex; i++) {\n index += this.props.getItemCount(this.props.sections[i].data) + 2;\n }\n let viewOffset = params.viewOffset || 0;\n if (this._listRef == null) {\n return;\n }\n if (params.itemIndex > 0 && this.props.stickySectionHeadersEnabled) {\n const frame = this._listRef.__getFrameMetricsApprox(\n index - params.itemIndex,\n this._listRef.props,\n );\n viewOffset += frame.length;\n }\n const toIndexParams = {\n ...params,\n viewOffset,\n index,\n };\n // $FlowFixMe[incompatible-use]\n this._listRef.scrollToIndex(toIndexParams);\n }\n\n getListRef(): ?React.ElementRef {\n return this._listRef;\n }\n\n render(): React.Node {\n const {\n ItemSeparatorComponent, // don't pass through, rendered with renderItem\n SectionSeparatorComponent,\n renderItem: _renderItem,\n renderSectionFooter,\n renderSectionHeader,\n sections: _sections,\n stickySectionHeadersEnabled,\n ...passThroughProps\n } = this.props;\n\n const listHeaderOffset = this.props.ListHeaderComponent ? 1 : 0;\n\n const stickyHeaderIndices = this.props.stickySectionHeadersEnabled\n ? ([]: Array)\n : undefined;\n\n let itemCount = 0;\n for (const section of this.props.sections) {\n // Track the section header indices\n if (stickyHeaderIndices != null) {\n stickyHeaderIndices.push(itemCount + listHeaderOffset);\n }\n\n // Add two for the section header and footer.\n itemCount += 2;\n itemCount += this.props.getItemCount(section.data);\n }\n const renderItem = this._renderItem(itemCount);\n\n return (\n \n this._getItem(this.props, sections, index)\n }\n getItemCount={() => itemCount}\n onViewableItemsChanged={\n this.props.onViewableItemsChanged\n ? this._onViewableItemsChanged\n : undefined\n }\n ref={this._captureRef}\n />\n );\n }\n\n _getItem(\n props: Props,\n sections: ?$ReadOnlyArray,\n index: number,\n ): ?Item {\n if (!sections) {\n return null;\n }\n let itemIdx = index - 1;\n for (let i = 0; i < sections.length; i++) {\n const section = sections[i];\n const sectionData = section.data;\n const itemCount = props.getItemCount(sectionData);\n if (itemIdx === -1 || itemIdx === itemCount) {\n // We intend for there to be overflow by one on both ends of the list.\n // This will be for headers and footers. When returning a header or footer\n // item the section itself is the item.\n return section;\n } else if (itemIdx < itemCount) {\n // If we are in the bounds of the list's data then return the item.\n return props.getItem(sectionData, itemIdx);\n } else {\n itemIdx -= itemCount + 2; // Add two for the header and footer\n }\n }\n return null;\n }\n\n // $FlowFixMe[missing-local-annot]\n _keyExtractor = (item: Item, index: number) => {\n const info = this._subExtractor(index);\n return (info && info.key) || String(index);\n };\n\n _subExtractor(index: number): ?{\n section: SectionT,\n // Key of the section or combined key for section + item\n key: string,\n // Relative index within the section\n index: ?number,\n // True if this is the section header\n header?: ?boolean,\n leadingItem?: ?Item,\n leadingSection?: ?SectionT,\n trailingItem?: ?Item,\n trailingSection?: ?SectionT,\n ...\n } {\n let itemIndex = index;\n const {getItem, getItemCount, keyExtractor, sections} = this.props;\n for (let i = 0; i < sections.length; i++) {\n const section = sections[i];\n const sectionData = section.data;\n const key = section.key || String(i);\n itemIndex -= 1; // The section adds an item for the header\n if (itemIndex >= getItemCount(sectionData) + 1) {\n itemIndex -= getItemCount(sectionData) + 1; // The section adds an item for the footer.\n } else if (itemIndex === -1) {\n return {\n section,\n key: key + ':header',\n index: null,\n header: true,\n trailingSection: sections[i + 1],\n };\n } else if (itemIndex === getItemCount(sectionData)) {\n return {\n section,\n key: key + ':footer',\n index: null,\n header: false,\n trailingSection: sections[i + 1],\n };\n } else {\n const extractor =\n section.keyExtractor || keyExtractor || defaultKeyExtractor;\n return {\n section,\n key:\n key + ':' + extractor(getItem(sectionData, itemIndex), itemIndex),\n index: itemIndex,\n leadingItem: getItem(sectionData, itemIndex - 1),\n leadingSection: sections[i - 1],\n trailingItem: getItem(sectionData, itemIndex + 1),\n trailingSection: sections[i + 1],\n };\n }\n }\n }\n\n _convertViewable = (viewable: ViewToken): ?ViewToken => {\n invariant(viewable.index != null, 'Received a broken ViewToken');\n const info = this._subExtractor(viewable.index);\n if (!info) {\n return null;\n }\n const keyExtractorWithNullableIndex = info.section.keyExtractor;\n const keyExtractorWithNonNullableIndex =\n this.props.keyExtractor || defaultKeyExtractor;\n const key =\n keyExtractorWithNullableIndex != null\n ? keyExtractorWithNullableIndex(viewable.item, info.index)\n : keyExtractorWithNonNullableIndex(viewable.item, info.index ?? 0);\n\n return {\n ...viewable,\n index: info.index,\n key,\n section: info.section,\n };\n };\n\n _onViewableItemsChanged = ({\n viewableItems,\n changed,\n }: {\n viewableItems: Array,\n changed: Array,\n ...\n }) => {\n const onViewableItemsChanged = this.props.onViewableItemsChanged;\n if (onViewableItemsChanged != null) {\n onViewableItemsChanged({\n viewableItems: viewableItems\n .map(this._convertViewable, this)\n .filter(Boolean),\n changed: changed.map(this._convertViewable, this).filter(Boolean),\n });\n }\n };\n\n _renderItem =\n (listItemCount: number): $FlowFixMe =>\n // eslint-disable-next-line react/no-unstable-nested-components\n ({item, index}: {item: Item, index: number, ...}) => {\n const info = this._subExtractor(index);\n if (!info) {\n return null;\n }\n const infoIndex = info.index;\n if (infoIndex == null) {\n const {section} = info;\n if (info.header === true) {\n const {renderSectionHeader} = this.props;\n return renderSectionHeader ? renderSectionHeader({section}) : null;\n } else {\n const {renderSectionFooter} = this.props;\n return renderSectionFooter ? renderSectionFooter({section}) : null;\n }\n } else {\n const renderItem = info.section.renderItem || this.props.renderItem;\n const SeparatorComponent = this._getSeparatorComponent(\n index,\n info,\n listItemCount,\n );\n invariant(renderItem, 'no renderItem!');\n return (\n \n );\n }\n };\n\n _updatePropsFor = (cellKey: string, value: any) => {\n const updateProps = this._updatePropsMap[cellKey];\n if (updateProps != null) {\n updateProps(value);\n }\n };\n\n _updateHighlightFor = (cellKey: string, value: boolean) => {\n const updateHighlight = this._updateHighlightMap[cellKey];\n if (updateHighlight != null) {\n updateHighlight(value);\n }\n };\n\n _setUpdateHighlightFor = (\n cellKey: string,\n updateHighlightFn: ?(boolean) => void,\n ) => {\n if (updateHighlightFn != null) {\n this._updateHighlightMap[cellKey] = updateHighlightFn;\n } else {\n // $FlowFixMe[prop-missing]\n delete this._updateHighlightFor[cellKey];\n }\n };\n\n _setUpdatePropsFor = (cellKey: string, updatePropsFn: ?(boolean) => void) => {\n if (updatePropsFn != null) {\n this._updatePropsMap[cellKey] = updatePropsFn;\n } else {\n delete this._updatePropsMap[cellKey];\n }\n };\n\n _getSeparatorComponent(\n index: number,\n info?: ?Object,\n listItemCount: number,\n ): ?React.ComponentType {\n info = info || this._subExtractor(index);\n if (!info) {\n return null;\n }\n const ItemSeparatorComponent =\n info.section.ItemSeparatorComponent || this.props.ItemSeparatorComponent;\n const {SectionSeparatorComponent} = this.props;\n const isLastItemInList = index === listItemCount - 1;\n const isLastItemInSection =\n info.index === this.props.getItemCount(info.section.data) - 1;\n if (SectionSeparatorComponent && isLastItemInSection) {\n return SectionSeparatorComponent;\n }\n if (ItemSeparatorComponent && !isLastItemInSection && !isLastItemInList) {\n return ItemSeparatorComponent;\n }\n return null;\n }\n\n _updateHighlightMap: {[string]: (boolean) => void} = {};\n _updatePropsMap: {[string]: void | (boolean => void)} = {};\n _listRef: ?React.ElementRef;\n _captureRef = (ref: null | React$ElementRef>) => {\n this._listRef = ref;\n };\n}\n\ntype ItemWithSeparatorCommonProps = $ReadOnly<{|\n leadingItem: ?Item,\n leadingSection: ?Object,\n section: Object,\n trailingItem: ?Item,\n trailingSection: ?Object,\n|}>;\n\ntype ItemWithSeparatorProps = $ReadOnly<{|\n ...ItemWithSeparatorCommonProps,\n LeadingSeparatorComponent: ?React.ComponentType,\n SeparatorComponent: ?React.ComponentType,\n cellKey: string,\n index: number,\n item: Item,\n setSelfHighlightCallback: (\n cellKey: string,\n updateFn: ?(boolean) => void,\n ) => void,\n setSelfUpdatePropsCallback: (\n cellKey: string,\n updateFn: ?(boolean) => void,\n ) => void,\n prevCellKey?: ?string,\n updateHighlightFor: (prevCellKey: string, value: boolean) => void,\n updatePropsFor: (prevCellKey: string, value: Object) => void,\n renderItem: Function,\n inverted: boolean,\n|}>;\n\nfunction ItemWithSeparator(props: ItemWithSeparatorProps): React.Node {\n const {\n LeadingSeparatorComponent,\n // this is the trailing separator and is associated with this item\n SeparatorComponent,\n cellKey,\n prevCellKey,\n setSelfHighlightCallback,\n updateHighlightFor,\n setSelfUpdatePropsCallback,\n updatePropsFor,\n item,\n index,\n section,\n inverted,\n } = props;\n\n const [leadingSeparatorHiglighted, setLeadingSeparatorHighlighted] =\n React.useState(false);\n\n const [separatorHighlighted, setSeparatorHighlighted] = React.useState(false);\n\n const [leadingSeparatorProps, setLeadingSeparatorProps] = React.useState({\n leadingItem: props.leadingItem,\n leadingSection: props.leadingSection,\n section: props.section,\n trailingItem: props.item,\n trailingSection: props.trailingSection,\n });\n const [separatorProps, setSeparatorProps] = React.useState({\n leadingItem: props.item,\n leadingSection: props.leadingSection,\n section: props.section,\n trailingItem: props.trailingItem,\n trailingSection: props.trailingSection,\n });\n\n React.useEffect(() => {\n setSelfHighlightCallback(cellKey, setSeparatorHighlighted);\n // $FlowFixMe[incompatible-call]\n setSelfUpdatePropsCallback(cellKey, setSeparatorProps);\n\n return () => {\n setSelfUpdatePropsCallback(cellKey, null);\n setSelfHighlightCallback(cellKey, null);\n };\n }, [\n cellKey,\n setSelfHighlightCallback,\n setSeparatorProps,\n setSelfUpdatePropsCallback,\n ]);\n\n const separators = {\n highlight: () => {\n setLeadingSeparatorHighlighted(true);\n setSeparatorHighlighted(true);\n if (prevCellKey != null) {\n updateHighlightFor(prevCellKey, true);\n }\n },\n unhighlight: () => {\n setLeadingSeparatorHighlighted(false);\n setSeparatorHighlighted(false);\n if (prevCellKey != null) {\n updateHighlightFor(prevCellKey, false);\n }\n },\n updateProps: (\n select: 'leading' | 'trailing',\n newProps: $Shape,\n ) => {\n if (select === 'leading') {\n if (LeadingSeparatorComponent != null) {\n setLeadingSeparatorProps({...leadingSeparatorProps, ...newProps});\n } else if (prevCellKey != null) {\n // update the previous item's separator\n updatePropsFor(prevCellKey, {...leadingSeparatorProps, ...newProps});\n }\n } else if (select === 'trailing' && SeparatorComponent != null) {\n setSeparatorProps({...separatorProps, ...newProps});\n }\n },\n };\n const element = props.renderItem({\n item,\n index,\n section,\n separators,\n });\n const leadingSeparator = LeadingSeparatorComponent != null && (\n \n );\n const separator = SeparatorComponent != null && (\n \n );\n return leadingSeparator || separator ? (\n \n {inverted === false ? leadingSeparator : separator}\n {element}\n {inverted === false ? separator : leadingSeparator}\n \n ) : (\n element\n );\n}\n\n/* $FlowFixMe[class-object-subtyping] added when improving typing for this\n * parameters */\n// $FlowFixMe[method-unbinding]\nmodule.exports = (VirtualizedSectionList: React.AbstractComponent<\n React.ElementConfig,\n $ReadOnly<{\n getListRef: () => ?React.ElementRef,\n scrollToLocation: (params: ScrollToLocationParamsType) => void,\n ...\n }>,\n>);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {AnimatedComponentType} from '../createAnimatedComponent';\n\nimport Image from '../../Image/Image';\nimport createAnimatedComponent from '../createAnimatedComponent';\nimport * as React from 'react';\n\nexport default (createAnimatedComponent(\n (Image: $FlowFixMe),\n): AnimatedComponentType<\n React.ElementConfig,\n React.ElementRef,\n>);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {RootTag} from '../Types/RootTagTypes';\nimport type {ImageAndroid} from './Image.flow';\nimport type {ImageProps as ImagePropsType} from './ImageProps';\n\nimport flattenStyle from '../StyleSheet/flattenStyle';\nimport StyleSheet from '../StyleSheet/StyleSheet';\nimport TextAncestor from '../Text/TextAncestor';\nimport ImageAnalyticsTagContext from './ImageAnalyticsTagContext';\nimport ImageInjection from './ImageInjection';\nimport {getImageSourcesFromImageProps} from './ImageSourceUtils';\nimport {convertObjectFitToResizeMode} from './ImageUtils';\nimport ImageViewNativeComponent from './ImageViewNativeComponent';\nimport NativeImageLoaderAndroid from './NativeImageLoaderAndroid';\nimport resolveAssetSource from './resolveAssetSource';\nimport TextInlineImageNativeComponent from './TextInlineImageNativeComponent';\nimport * as React from 'react';\n\nlet _requestId = 1;\nfunction generateRequestId() {\n return _requestId++;\n}\n\n/**\n * Retrieve the width and height (in pixels) of an image prior to displaying it\n *\n * See https://reactnative.dev/docs/image#getsize\n */\nfunction getSize(\n url: string,\n success: (width: number, height: number) => void,\n failure?: (error: any) => void,\n): any {\n return NativeImageLoaderAndroid.getSize(url)\n .then(function (sizes) {\n success(sizes.width, sizes.height);\n })\n .catch(\n failure ||\n function () {\n console.warn('Failed to get size for image: ' + url);\n },\n );\n}\n\n/**\n * Retrieve the width and height (in pixels) of an image prior to displaying it\n * with the ability to provide the headers for the request\n *\n * See https://reactnative.dev/docs/image#getsizewithheaders\n */\nfunction getSizeWithHeaders(\n url: string,\n headers: {[string]: string, ...},\n success: (width: number, height: number) => void,\n failure?: (error: any) => void,\n): any {\n return NativeImageLoaderAndroid.getSizeWithHeaders(url, headers)\n .then(function (sizes) {\n success(sizes.width, sizes.height);\n })\n .catch(\n failure ||\n function () {\n console.warn('Failed to get size for image: ' + url);\n },\n );\n}\n\nfunction prefetchWithMetadata(\n url: string,\n queryRootName: string,\n rootTag?: ?RootTag,\n callback: ?Function,\n): any {\n // TODO: T79192300 Log queryRootName and rootTag\n prefetch(url, callback);\n}\n\nfunction prefetch(url: string, callback: ?Function): any {\n const requestId = generateRequestId();\n callback && callback(requestId);\n return NativeImageLoaderAndroid.prefetchImage(url, requestId);\n}\n\nfunction abortPrefetch(requestId: number) {\n NativeImageLoaderAndroid.abortRequest(requestId);\n}\n\n/**\n * Perform cache interrogation.\n *\n * See https://reactnative.dev/docs/image#querycache\n */\nasync function queryCache(\n urls: Array,\n): Promise<{[string]: 'memory' | 'disk' | 'disk/memory', ...}> {\n return await NativeImageLoaderAndroid.queryCache(urls);\n}\n\nexport type ImageComponentStatics = $ReadOnly<{|\n getSize: typeof getSize,\n getSizeWithHeaders: typeof getSizeWithHeaders,\n prefetch: typeof prefetch,\n prefetchWithMetadata: typeof prefetchWithMetadata,\n abortPrefetch: typeof abortPrefetch,\n queryCache: typeof queryCache,\n resolveAssetSource: typeof resolveAssetSource,\n|}>;\n\n/**\n * A React component for displaying different types of images,\n * including network images, static resources, temporary local images, and\n * images from local disk, such as the camera roll.\n *\n * See https://reactnative.dev/docs/image\n */\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\nconst BaseImage = (props: ImagePropsType, forwardedRef) => {\n let source = getImageSourcesFromImageProps(props) || {\n uri: undefined,\n width: undefined,\n height: undefined,\n };\n const defaultSource = resolveAssetSource(props.defaultSource);\n const loadingIndicatorSource = resolveAssetSource(\n props.loadingIndicatorSource,\n );\n\n if (props.children) {\n throw new Error(\n 'The component cannot contain children. If you want to render content on top of the image, consider using the component or absolute positioning.',\n );\n }\n\n if (props.defaultSource && props.loadingIndicatorSource) {\n throw new Error(\n 'The component cannot have defaultSource and loadingIndicatorSource at the same time. Please use either defaultSource or loadingIndicatorSource.',\n );\n }\n\n let style;\n let sources;\n if (Array.isArray(source)) {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n style = flattenStyle([styles.base, props.style]);\n sources = source;\n } else {\n // $FlowFixMe[incompatible-type]\n const {width = props.width, height = props.height, uri} = source;\n // $FlowFixMe[underconstrained-implicit-instantiation]\n style = flattenStyle([{width, height}, styles.base, props.style]);\n sources = [source];\n if (uri === '') {\n console.warn('source.uri should not be an empty string');\n }\n }\n\n const {height, width, ...restProps} = props;\n\n const {onLoadStart, onLoad, onLoadEnd, onError} = props;\n const nativeProps = {\n ...restProps,\n style,\n shouldNotifyLoadEvents: !!(onLoadStart || onLoad || onLoadEnd || onError),\n src: sources,\n /* $FlowFixMe(>=0.78.0 site=react_native_android_fb) This issue was found\n * when making Flow check .android.js files. */\n headers: (source?.[0]?.headers || source?.headers: ?{[string]: string}),\n defaultSrc: defaultSource ? defaultSource.uri : null,\n loadingIndicatorSrc: loadingIndicatorSource\n ? loadingIndicatorSource.uri\n : null,\n ref: forwardedRef,\n accessibilityLabel:\n props['aria-label'] ?? props.accessibilityLabel ?? props.alt,\n accessibilityLabelledBy:\n props?.['aria-labelledby'] ?? props?.accessibilityLabelledBy,\n accessible: props.alt !== undefined ? true : props.accessible,\n accessibilityState: {\n busy: props['aria-busy'] ?? props.accessibilityState?.busy,\n checked: props['aria-checked'] ?? props.accessibilityState?.checked,\n disabled: props['aria-disabled'] ?? props.accessibilityState?.disabled,\n expanded: props['aria-expanded'] ?? props.accessibilityState?.expanded,\n selected: props['aria-selected'] ?? props.accessibilityState?.selected,\n },\n };\n\n const objectFit =\n style && style.objectFit\n ? convertObjectFitToResizeMode(style.objectFit)\n : null;\n // $FlowFixMe[prop-missing]\n const resizeMode =\n objectFit || props.resizeMode || (style && style.resizeMode) || 'cover';\n\n return (\n \n {analyticTag => {\n const nativePropsWithAnalytics =\n analyticTag !== null\n ? {\n ...nativeProps,\n internal_analyticTag: analyticTag,\n }\n : nativeProps;\n return (\n \n {hasTextAncestor => {\n if (hasTextAncestor) {\n return (\n \n );\n }\n\n return (\n \n );\n }}\n \n );\n }}\n \n );\n};\n\nlet Image = React.forwardRef<\n ImagePropsType,\n | React.ElementRef\n | React.ElementRef,\n>(BaseImage);\n\nif (ImageInjection.unstable_createImageComponent != null) {\n Image = ImageInjection.unstable_createImageComponent(Image);\n}\n\nImage.displayName = 'Image';\n\n/**\n * Retrieve the width and height (in pixels) of an image prior to displaying it\n *\n * See https://reactnative.dev/docs/image#getsize\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.getSize = getSize;\n\n/**\n * Retrieve the width and height (in pixels) of an image prior to displaying it\n * with the ability to provide the headers for the request\n *\n * See https://reactnative.dev/docs/image#getsizewithheaders\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.getSizeWithHeaders = getSizeWithHeaders;\n\n/**\n * Prefetches a remote image for later use by downloading it to the disk\n * cache\n *\n * See https://reactnative.dev/docs/image#prefetch\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.prefetch = prefetch;\n\n/**\n * Prefetches a remote image for later use by downloading it to the disk\n * cache, and adds metadata for queryRootName and rootTag.\n *\n * See https://reactnative.dev/docs/image#prefetch\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.prefetchWithMetadata = prefetchWithMetadata;\n\n/**\n * Abort prefetch request.\n *\n * See https://reactnative.dev/docs/image#abortprefetch\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.abortPrefetch = abortPrefetch;\n\n/**\n * Perform cache interrogation.\n *\n * See https://reactnative.dev/docs/image#querycache\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.queryCache = queryCache;\n\n/**\n * Resolves an asset reference into an object.\n *\n * See https://reactnative.dev/docs/image#resolveassetsource\n */\n/* $FlowFixMe(>=0.89.0 site=react_native_android_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete this\n * comment and run Flow. */\nImage.resolveAssetSource = resolveAssetSource;\n\n/**\n * Switch to `deprecated-react-native-prop-types` for compatibility with future\n * releases. This is deprecated and will be removed in the future.\n */\nImage.propTypes = require('deprecated-react-native-prop-types').ImagePropTypes;\n\nconst styles = StyleSheet.create({\n base: {\n overflow: 'hidden',\n },\n});\n\nmodule.exports = ((Image: any): ImageAndroid);\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport * as React from 'react';\n\ntype ContextType = ?string;\n\nconst Context: React.Context =\n React.createContext(null);\n\nif (__DEV__) {\n Context.displayName = 'ImageAnalyticsTagContext';\n}\n\nexport default Context;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format strict-local\n * @flow\n */\n\nimport type {ImageProps as ImagePropsType} from './ImageProps';\n\nimport ImageViewNativeComponent from './ImageViewNativeComponent';\nimport TextInlineImageNativeComponent from './TextInlineImageNativeComponent';\nimport * as React from 'react';\n\nexport default {\n unstable_createImageComponent: (null: ?(\n Image: React.AbstractComponent<\n ImagePropsType,\n | React.ElementRef\n | React.ElementRef,\n >,\n ) => React.AbstractComponent<\n ImagePropsType,\n | React.ElementRef\n | React.ElementRef,\n >),\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {ViewProps} from '../Components/View/ViewPropTypes';\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../Renderer/shims/ReactNativeTypes';\nimport type {\n ColorValue,\n DangerouslyImpreciseStyle,\n ImageStyleProp,\n} from '../StyleSheet/StyleSheet';\nimport type {ResolvedAssetSource} from './AssetSourceResolver';\nimport type {ImageProps} from './ImageProps';\n\nimport * as NativeComponentRegistry from '../NativeComponent/NativeComponentRegistry';\nimport {ConditionallyIgnoredEventHandlers} from '../NativeComponent/ViewConfigIgnore';\nimport Platform from '../Utilities/Platform';\n\ntype Props = $ReadOnly<{\n ...ImageProps,\n ...ViewProps,\n\n style?: ImageStyleProp | DangerouslyImpreciseStyle,\n\n // iOS native props\n tintColor?: ColorValue,\n\n // Android native props\n shouldNotifyLoadEvents?: boolean,\n src?:\n | ?ResolvedAssetSource\n | ?$ReadOnlyArray>,\n headers?: ?{[string]: string},\n defaultSrc?: ?string,\n loadingIndicatorSrc?: ?string,\n}>;\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig =\n Platform.OS === 'android'\n ? {\n uiViewClassName: 'RCTImageView',\n bubblingEventTypes: {},\n directEventTypes: {\n topLoadStart: {\n registrationName: 'onLoadStart',\n },\n topProgress: {\n registrationName: 'onProgress',\n },\n topError: {\n registrationName: 'onError',\n },\n topLoad: {\n registrationName: 'onLoad',\n },\n topLoadEnd: {\n registrationName: 'onLoadEnd',\n },\n },\n validAttributes: {\n blurRadius: true,\n internal_analyticTag: true,\n resizeMode: true,\n tintColor: {\n process: require('../StyleSheet/processColor').default,\n },\n borderBottomLeftRadius: true,\n borderTopLeftRadius: true,\n resizeMethod: true,\n src: true,\n borderRadius: true,\n headers: true,\n shouldNotifyLoadEvents: true,\n defaultSrc: true,\n overlayColor: {\n process: require('../StyleSheet/processColor').default,\n },\n borderColor: {\n process: require('../StyleSheet/processColor').default,\n },\n accessible: true,\n progressiveRenderingEnabled: true,\n fadeDuration: true,\n borderBottomRightRadius: true,\n borderTopRightRadius: true,\n loadingIndicatorSrc: true,\n },\n }\n : {\n uiViewClassName: 'RCTImageView',\n bubblingEventTypes: {},\n directEventTypes: {\n topLoadStart: {\n registrationName: 'onLoadStart',\n },\n topProgress: {\n registrationName: 'onProgress',\n },\n topError: {\n registrationName: 'onError',\n },\n topPartialLoad: {\n registrationName: 'onPartialLoad',\n },\n topLoad: {\n registrationName: 'onLoad',\n },\n topLoadEnd: {\n registrationName: 'onLoadEnd',\n },\n },\n validAttributes: {\n blurRadius: true,\n capInsets: {\n diff: require('../Utilities/differ/insetsDiffer'),\n },\n defaultSource: {\n process: require('./resolveAssetSource'),\n },\n internal_analyticTag: true,\n resizeMode: true,\n source: true,\n tintColor: {\n process: require('../StyleSheet/processColor').default,\n },\n ...ConditionallyIgnoredEventHandlers({\n onLoadStart: true,\n onLoad: true,\n onLoadEnd: true,\n onProgress: true,\n onError: true,\n onPartialLoad: true,\n }),\n },\n };\n\nconst ImageViewNativeComponent: HostComponent =\n NativeComponentRegistry.get(\n 'RCTImageView',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\nexport default ImageViewNativeComponent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n'use strict';\n\nimport type {ViewProps} from '../Components/View/ViewPropTypes';\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../StyleSheet/StyleSheet';\nimport type {ImageResizeMode} from './ImageResizeMode';\n\nimport * as NativeComponentRegistry from '../NativeComponent/NativeComponentRegistry';\n\ntype NativeProps = $ReadOnly<{\n ...ViewProps,\n resizeMode?: ?ImageResizeMode,\n src?: ?$ReadOnlyArray>,\n tintColor?: ?ColorValue,\n headers?: ?{[string]: string},\n}>;\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {\n uiViewClassName: 'RCTTextInlineImage',\n bubblingEventTypes: {},\n directEventTypes: {},\n validAttributes: {\n resizeMode: true,\n src: true,\n tintColor: {\n process: require('../StyleSheet/processColor').default,\n },\n headers: true,\n },\n};\n\nconst TextInlineImage: HostComponent =\n NativeComponentRegistry.get(\n 'RCTTextInlineImage',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\nexport default TextInlineImage;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +abortRequest: (requestId: number) => void;\n +getConstants: () => {||};\n +getSize: (uri: string) => Promise<\n $ReadOnly<{\n width: number,\n height: number,\n ...\n }>,\n >;\n +getSizeWithHeaders: (\n uri: string,\n headers: Object,\n ) => Promise<{\n width: number,\n height: number,\n ...\n }>;\n +prefetchImage: (uri: string, requestId: number) => Promise;\n +queryCache: (uris: Array) => Promise;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('ImageLoader'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nimport type {ResolvedAssetSource} from './AssetSourceResolver';\nimport type {ImageProps} from './ImageProps';\n\nimport resolveAssetSource from './resolveAssetSource';\n\n/**\n * A function which returns the appropriate value for image source\n * by resolving the `source`, `src` and `srcSet` props.\n */\nexport function getImageSourcesFromImageProps(\n imageProps: ImageProps,\n): ?ResolvedAssetSource | $ReadOnlyArray<{uri: string, ...}> {\n let source = resolveAssetSource(imageProps.source);\n\n let sources;\n\n const {crossOrigin, referrerPolicy, src, srcSet, width, height} = imageProps;\n\n const headers: {[string]: string} = {};\n if (crossOrigin === 'use-credentials') {\n headers['Access-Control-Allow-Credentials'] = 'true';\n }\n if (referrerPolicy != null) {\n headers['Referrer-Policy'] = referrerPolicy;\n }\n if (srcSet != null) {\n const sourceList = [];\n const srcSetList = srcSet.split(', ');\n // `src` prop should be used with default scale if `srcSet` does not have 1x scale.\n let shouldUseSrcForDefaultScale = true;\n srcSetList.forEach(imageSrc => {\n const [uri, xScale = '1x'] = imageSrc.split(' ');\n if (!xScale.endsWith('x')) {\n console.warn(\n 'The provided format for scale is not supported yet. Please use scales like 1x, 2x, etc.',\n );\n } else {\n const scale = parseInt(xScale.split('x')[0], 10);\n if (!isNaN(scale)) {\n // 1x scale is provided in `srcSet` prop so ignore the `src` prop if provided.\n shouldUseSrcForDefaultScale =\n scale === 1 ? false : shouldUseSrcForDefaultScale;\n sourceList.push({headers: headers, scale, uri, width, height});\n }\n }\n });\n\n if (shouldUseSrcForDefaultScale && src != null) {\n sourceList.push({\n headers: headers,\n scale: 1,\n uri: src,\n width,\n height,\n });\n }\n if (sourceList.length === 0) {\n console.warn('The provided value for srcSet is not valid.');\n }\n\n sources = sourceList;\n } else if (src != null) {\n sources = [{uri: src, headers: headers, width, height}];\n } else {\n sources = source;\n }\n return sources;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\ntype ResizeMode = 'cover' | 'contain' | 'stretch' | 'repeat' | 'center';\n\nexport function convertObjectFitToResizeMode(objectFit: string): ResizeMode {\n const objectFitMap = {\n contain: 'contain',\n cover: 'cover',\n fill: 'stretch',\n 'scale-down': 'contain',\n };\n return objectFitMap[objectFit];\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {____ViewStyle_Internal} from '../../StyleSheet/StyleSheetTypes';\nimport type {AnimatedComponentType} from '../createAnimatedComponent';\n\nimport RefreshControl from '../../Components/RefreshControl/RefreshControl';\nimport ScrollView from '../../Components/ScrollView/ScrollView';\nimport flattenStyle from '../../StyleSheet/flattenStyle';\nimport splitLayoutProps from '../../StyleSheet/splitLayoutProps';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport useMergeRefs from '../../Utilities/useMergeRefs';\nimport createAnimatedComponent from '../createAnimatedComponent';\nimport useAnimatedProps from '../useAnimatedProps';\nimport * as React from 'react';\nimport {useMemo} from 'react';\n\ntype Props = React.ElementConfig;\ntype Instance = React.ElementRef;\n\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nconst AnimatedScrollView: AnimatedComponentType =\n React.forwardRef((props, forwardedRef) => {\n // (Android only) When a ScrollView has a RefreshControl and\n // any `style` property set with an Animated.Value, the CSS\n // gets incorrectly applied twice. This is because ScrollView\n // swaps the parent/child relationship of itself and the\n // RefreshControl component (see ScrollView.js for more details).\n if (\n Platform.OS === 'android' &&\n props.refreshControl != null &&\n props.style != null\n ) {\n return (\n \n );\n } else {\n return (\n \n );\n }\n });\n\nconst AnimatedScrollViewWithInvertedRefreshControl = React.forwardRef(\n (\n props: {\n ...React.ElementConfig,\n // $FlowFixMe[unclear-type] Same Flow type as `refreshControl` in ScrollView\n refreshControl: React.Element,\n },\n forwardedRef:\n | {current: Instance | null, ...}\n | ((Instance | null) => mixed),\n ) => {\n // Split `props` into the animate-able props for the parent (RefreshControl)\n // and child (ScrollView).\n const {intermediatePropsForRefreshControl, intermediatePropsForScrollView} =\n useMemo(() => {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n const {outer, inner} = splitLayoutProps(flattenStyle(props.style));\n return {\n intermediatePropsForRefreshControl: {style: outer},\n intermediatePropsForScrollView: {...props, style: inner},\n };\n }, [props]);\n\n // Handle animated props on `refreshControl`.\n const [refreshControlAnimatedProps, refreshControlRef] = useAnimatedProps<\n {style: ?____ViewStyle_Internal},\n $FlowFixMe,\n >(intermediatePropsForRefreshControl);\n // NOTE: Assumes that refreshControl.ref` and `refreshControl.style` can be\n // safely clobbered.\n const refreshControl: React.Element =\n React.cloneElement(props.refreshControl, {\n ...refreshControlAnimatedProps,\n ref: refreshControlRef,\n });\n\n // Handle animated props on `NativeDirectionalScrollView`.\n const [scrollViewAnimatedProps, scrollViewRef] = useAnimatedProps<\n Props,\n Instance,\n >(intermediatePropsForScrollView);\n const ref = useMergeRefs(scrollViewRef, forwardedRef);\n\n return (\n // $FlowFixMe[incompatible-use] Investigate useAnimatedProps return value\n \n );\n },\n);\n\nconst AnimatedScrollViewWithoutInvertedRefreshControl =\n createAnimatedComponent(ScrollView);\n\nexport default AnimatedScrollView;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport AndroidSwipeRefreshLayoutNativeComponent, {\n Commands as AndroidSwipeRefreshLayoutCommands,\n} from './AndroidSwipeRefreshLayoutNativeComponent';\nimport PullToRefreshViewNativeComponent, {\n Commands as PullToRefreshCommands,\n} from './PullToRefreshViewNativeComponent';\n\nconst Platform = require('../../Utilities/Platform');\nconst React = require('react');\n\ntype IOSProps = $ReadOnly<{|\n /**\n * The color of the refresh indicator.\n */\n tintColor?: ?ColorValue,\n /**\n * Title color.\n */\n titleColor?: ?ColorValue,\n /**\n * The title displayed under the refresh indicator.\n */\n title?: ?string,\n|}>;\n\ntype AndroidProps = $ReadOnly<{|\n /**\n * Whether the pull to refresh functionality is enabled.\n */\n enabled?: ?boolean,\n /**\n * The colors (at least one) that will be used to draw the refresh indicator.\n */\n colors?: ?$ReadOnlyArray,\n /**\n * The background color of the refresh indicator.\n */\n progressBackgroundColor?: ?ColorValue,\n /**\n * Size of the refresh indicator.\n */\n size?: ?('default' | 'large'),\n|}>;\n\nexport type RefreshControlProps = $ReadOnly<{|\n ...ViewProps,\n ...IOSProps,\n ...AndroidProps,\n\n /**\n * Called when the view starts refreshing.\n */\n onRefresh?: ?() => void | Promise,\n\n /**\n * Whether the view should be indicating an active refresh.\n */\n refreshing: boolean,\n\n /**\n * Progress view top offset\n */\n progressViewOffset?: ?number,\n|}>;\n\n/**\n * This component is used inside a ScrollView or ListView to add pull to refresh\n * functionality. When the ScrollView is at `scrollY: 0`, swiping down\n * triggers an `onRefresh` event.\n *\n * ### Usage example\n *\n * ``` js\n * class RefreshableList extends Component {\n * constructor(props) {\n * super(props);\n * this.state = {\n * refreshing: false,\n * };\n * }\n *\n * _onRefresh() {\n * this.setState({refreshing: true});\n * fetchData().then(() => {\n * this.setState({refreshing: false});\n * });\n * }\n *\n * render() {\n * return (\n * \n * }\n * ...\n * >\n * ...\n * \n * );\n * }\n * ...\n * }\n * ```\n *\n * __Note:__ `refreshing` is a controlled prop, this is why it needs to be set to true\n * in the `onRefresh` function otherwise the refresh indicator will stop immediately.\n */\nclass RefreshControl extends React.Component {\n _nativeRef: ?React.ElementRef<\n | typeof PullToRefreshViewNativeComponent\n | typeof AndroidSwipeRefreshLayoutNativeComponent,\n >;\n _lastNativeRefreshing = false;\n\n componentDidMount() {\n this._lastNativeRefreshing = this.props.refreshing;\n }\n\n componentDidUpdate(prevProps: RefreshControlProps) {\n // RefreshControl is a controlled component so if the native refreshing\n // value doesn't match the current js refreshing prop update it to\n // the js value.\n if (this.props.refreshing !== prevProps.refreshing) {\n this._lastNativeRefreshing = this.props.refreshing;\n } else if (\n this.props.refreshing !== this._lastNativeRefreshing &&\n this._nativeRef\n ) {\n if (Platform.OS === 'android') {\n AndroidSwipeRefreshLayoutCommands.setNativeRefreshing(\n this._nativeRef,\n this.props.refreshing,\n );\n } else {\n PullToRefreshCommands.setNativeRefreshing(\n this._nativeRef,\n this.props.refreshing,\n );\n }\n this._lastNativeRefreshing = this.props.refreshing;\n }\n }\n\n render(): React.Node {\n if (Platform.OS === 'ios') {\n const {enabled, colors, progressBackgroundColor, size, ...props} =\n this.props;\n return (\n \n );\n } else {\n const {tintColor, titleColor, title, ...props} = this.props;\n return (\n \n );\n }\n }\n\n _onRefresh = () => {\n this._lastNativeRefreshing = true;\n\n // $FlowFixMe[unused-promise]\n this.props.onRefresh && this.props.onRefresh();\n\n // The native component will start refreshing so force an update to\n // make sure it stays in sync with the js component.\n this.forceUpdate();\n };\n\n _setNativeRef = (\n ref: ?React.ElementRef<\n | typeof PullToRefreshViewNativeComponent\n | typeof AndroidSwipeRefreshLayoutNativeComponent,\n >,\n ) => {\n this._nativeRef = ref;\n };\n}\n\nmodule.exports = RefreshControl;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n DirectEventHandler,\n Float,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\nimport * as React from 'react';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * Whether the pull to refresh functionality is enabled.\n */\n enabled?: WithDefault,\n /**\n * The colors (at least one) that will be used to draw the refresh indicator.\n */\n colors?: ?$ReadOnlyArray,\n /**\n * The background color of the refresh indicator.\n */\n progressBackgroundColor?: ?ColorValue,\n /**\n * Size of the refresh indicator.\n */\n size?: WithDefault<'default' | 'large', 'default'>,\n /**\n * Progress view top offset\n */\n progressViewOffset?: WithDefault,\n\n /**\n * Called when the view starts refreshing.\n */\n onRefresh?: ?DirectEventHandler,\n\n /**\n * Whether the view should be indicating an active refresh.\n */\n refreshing: boolean,\n|}>;\n\ntype NativeType = HostComponent;\n\ninterface NativeCommands {\n +setNativeRefreshing: (\n viewRef: React.ElementRef,\n value: boolean,\n ) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['setNativeRefreshing'],\n});\n\nexport default (codegenNativeComponent(\n 'AndroidSwipeRefreshLayout',\n): NativeType);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n DirectEventHandler,\n Float,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\nimport * as React from 'react';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * The color of the refresh indicator.\n */\n tintColor?: ?ColorValue,\n /**\n * Title color.\n */\n titleColor?: ?ColorValue,\n /**\n * The title displayed under the refresh indicator.\n */\n title?: WithDefault,\n /**\n * Progress view top offset\n */\n progressViewOffset?: WithDefault,\n\n /**\n * Called when the view starts refreshing.\n */\n onRefresh?: ?DirectEventHandler,\n\n /**\n * Whether the view should be indicating an active refresh.\n */\n refreshing: boolean,\n|}>;\n\ntype ComponentType = HostComponent;\n\ninterface NativeCommands {\n +setNativeRefreshing: (\n viewRef: React.ElementRef,\n refreshing: boolean,\n ) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['setNativeRefreshing'],\n});\n\nexport default (codegenNativeComponent('PullToRefreshView', {\n paperComponentName: 'RCTRefreshControl',\n excludedPlatforms: ['android'],\n}): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {EdgeInsetsProp} from '../../StyleSheet/EdgeInsetsPropType';\nimport type {PointProp} from '../../StyleSheet/PointPropType';\nimport type {ViewStyleProp} from '../../StyleSheet/StyleSheet';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n LayoutEvent,\n PressEvent,\n ScrollEvent,\n} from '../../Types/CoreEventTypes';\nimport type {EventSubscription} from '../../vendor/emitter/EventEmitter';\nimport type {KeyboardEvent, KeyboardMetrics} from '../Keyboard/Keyboard';\nimport type {ViewProps} from '../View/ViewPropTypes';\nimport type {Props as ScrollViewStickyHeaderProps} from './ScrollViewStickyHeader';\n\nimport AnimatedImplementation from '../../Animated/AnimatedImplementation';\nimport FrameRateLogger from '../../Interaction/FrameRateLogger';\nimport {findNodeHandle} from '../../ReactNative/RendererProxy';\nimport UIManager from '../../ReactNative/UIManager';\nimport flattenStyle from '../../StyleSheet/flattenStyle';\nimport splitLayoutProps from '../../StyleSheet/splitLayoutProps';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Dimensions from '../../Utilities/Dimensions';\nimport dismissKeyboard from '../../Utilities/dismissKeyboard';\nimport Platform from '../../Utilities/Platform';\nimport Keyboard from '../Keyboard/Keyboard';\nimport TextInputState from '../TextInput/TextInputState';\nimport View from '../View/View';\nimport AndroidHorizontalScrollContentViewNativeComponent from './AndroidHorizontalScrollContentViewNativeComponent';\nimport AndroidHorizontalScrollViewNativeComponent from './AndroidHorizontalScrollViewNativeComponent';\nimport processDecelerationRate from './processDecelerationRate';\nimport ScrollContentViewNativeComponent from './ScrollContentViewNativeComponent';\nimport Commands from './ScrollViewCommands';\nimport ScrollViewContext, {HORIZONTAL, VERTICAL} from './ScrollViewContext';\nimport ScrollViewNativeComponent from './ScrollViewNativeComponent';\nimport ScrollViewStickyHeader from './ScrollViewStickyHeader';\nimport invariant from 'invariant';\nimport memoize from 'memoize-one';\nimport nullthrows from 'nullthrows';\nimport * as React from 'react';\n\nif (Platform.OS === 'ios') {\n require('../../Renderer/shims/ReactNative'); // Force side effects to prevent T55744311\n}\n\nconst {NativeHorizontalScrollViewTuple, NativeVerticalScrollViewTuple} =\n Platform.OS === 'android'\n ? {\n NativeHorizontalScrollViewTuple: [\n AndroidHorizontalScrollViewNativeComponent,\n AndroidHorizontalScrollContentViewNativeComponent,\n ],\n NativeVerticalScrollViewTuple: [ScrollViewNativeComponent, View],\n }\n : {\n NativeHorizontalScrollViewTuple: [\n ScrollViewNativeComponent,\n ScrollContentViewNativeComponent,\n ],\n NativeVerticalScrollViewTuple: [\n ScrollViewNativeComponent,\n ScrollContentViewNativeComponent,\n ],\n };\n\n/*\n * iOS scroll event timing nuances:\n * ===============================\n *\n *\n * Scrolling without bouncing, if you touch down:\n * -------------------------------\n *\n * 1. `onMomentumScrollBegin` (when animation begins after letting up)\n * ... physical touch starts ...\n * 2. `onTouchStartCapture` (when you press down to stop the scroll)\n * 3. `onTouchStart` (same, but bubble phase)\n * 4. `onResponderRelease` (when lifting up - you could pause forever before * lifting)\n * 5. `onMomentumScrollEnd`\n *\n *\n * Scrolling with bouncing, if you touch down:\n * -------------------------------\n *\n * 1. `onMomentumScrollBegin` (when animation begins after letting up)\n * ... bounce begins ...\n * ... some time elapses ...\n * ... physical touch during bounce ...\n * 2. `onMomentumScrollEnd` (Makes no sense why this occurs first during bounce)\n * 3. `onTouchStartCapture` (immediately after `onMomentumScrollEnd`)\n * 4. `onTouchStart` (same, but bubble phase)\n * 5. `onTouchEnd` (You could hold the touch start for a long time)\n * 6. `onMomentumScrollBegin` (When releasing the view starts bouncing back)\n *\n * So when we receive an `onTouchStart`, how can we tell if we are touching\n * *during* an animation (which then causes the animation to stop)? The only way\n * to tell is if the `touchStart` occurred immediately after the\n * `onMomentumScrollEnd`.\n *\n * This is abstracted out for you, so you can just call this.scrollResponderIsAnimating() if\n * necessary\n *\n * `ScrollView` also includes logic for blurring a currently focused input\n * if one is focused while scrolling. This is a natural place\n * to put this logic since it can support not dismissing the keyboard while\n * scrolling, unless a recognized \"tap\"-like gesture has occurred.\n *\n * The public lifecycle API includes events for keyboard interaction, responder\n * interaction, and scrolling (among others). The keyboard callbacks\n * `onKeyboardWill/Did/*` are *global* events, but are invoked on scroll\n * responder's props so that you can guarantee that the scroll responder's\n * internal state has been updated accordingly (and deterministically) by\n * the time the props callbacks are invoke. Otherwise, you would always wonder\n * if the scroll responder is currently in a state where it recognizes new\n * keyboard positions etc. If coordinating scrolling with keyboard movement,\n * *always* use these hooks instead of listening to your own global keyboard\n * events.\n *\n * Public keyboard lifecycle API: (props callbacks)\n *\n * Standard Keyboard Appearance Sequence:\n *\n * this.props.onKeyboardWillShow\n * this.props.onKeyboardDidShow\n *\n * `onScrollResponderKeyboardDismissed` will be invoked if an appropriate\n * tap inside the scroll responder's scrollable region was responsible\n * for the dismissal of the keyboard. There are other reasons why the\n * keyboard could be dismissed.\n *\n * this.props.onScrollResponderKeyboardDismissed\n *\n * Standard Keyboard Hide Sequence:\n *\n * this.props.onKeyboardWillHide\n * this.props.onKeyboardDidHide\n */\n\n// Public methods for ScrollView\nexport type ScrollViewImperativeMethods = $ReadOnly<{|\n getScrollResponder: $PropertyType,\n getScrollableNode: $PropertyType,\n getInnerViewNode: $PropertyType,\n getInnerViewRef: $PropertyType,\n getNativeScrollRef: $PropertyType,\n scrollTo: $PropertyType,\n scrollToEnd: $PropertyType,\n flashScrollIndicators: $PropertyType,\n scrollResponderZoomTo: $PropertyType,\n scrollResponderScrollNativeHandleToKeyboard: $PropertyType<\n ScrollView,\n 'scrollResponderScrollNativeHandleToKeyboard',\n >,\n|}>;\n\nexport type DecelerationRateType = 'fast' | 'normal' | number;\nexport type ScrollResponderType = ScrollViewImperativeMethods;\n\ntype NativeScrollViewInstance = React.ElementRef>;\ntype PublicScrollViewInstance = $ReadOnly<{|\n ...$Exact,\n ...ScrollViewImperativeMethods,\n|}>;\n\ntype InnerViewInstance = React.ElementRef;\n\ntype IOSProps = $ReadOnly<{|\n /**\n * Controls whether iOS should automatically adjust the content inset\n * for scroll views that are placed behind a navigation bar or\n * tab bar/ toolbar. The default value is true.\n * @platform ios\n */\n automaticallyAdjustContentInsets?: ?boolean,\n /**\n * Controls whether the ScrollView should automatically adjust its `contentInset`\n * and `scrollViewInsets` when the Keyboard changes its size. The default value is false.\n * @platform ios\n */\n automaticallyAdjustKeyboardInsets?: ?boolean,\n /**\n * Controls whether iOS should automatically adjust the scroll indicator\n * insets. The default value is true. Available on iOS 13 and later.\n * @platform ios\n */\n automaticallyAdjustsScrollIndicatorInsets?: ?boolean,\n /**\n * The amount by which the scroll view content is inset from the edges\n * of the scroll view. Defaults to `{top: 0, left: 0, bottom: 0, right: 0}`.\n * @platform ios\n */\n contentInset?: ?EdgeInsetsProp,\n /**\n * When true, the scroll view bounces when it reaches the end of the\n * content if the content is larger then the scroll view along the axis of\n * the scroll direction. When false, it disables all bouncing even if\n * the `alwaysBounce*` props are true. The default value is true.\n * @platform ios\n */\n bounces?: ?boolean,\n /**\n * By default, ScrollView has an active pan responder that hijacks panresponders\n * deeper in the render tree in order to prevent accidental touches while scrolling.\n * However, in certain occasions (such as when using snapToInterval) in a vertical scrollview\n * You may want to disable this behavior in order to prevent the ScrollView from blocking touches\n */\n disableScrollViewPanResponder?: ?boolean,\n /**\n * When true, gestures can drive zoom past min/max and the zoom will animate\n * to the min/max value at gesture end, otherwise the zoom will not exceed\n * the limits.\n * @platform ios\n */\n bouncesZoom?: ?boolean,\n /**\n * When true, the scroll view bounces horizontally when it reaches the end\n * even if the content is smaller than the scroll view itself. The default\n * value is true when `horizontal={true}` and false otherwise.\n * @platform ios\n */\n alwaysBounceHorizontal?: ?boolean,\n /**\n * When true, the scroll view bounces vertically when it reaches the end\n * even if the content is smaller than the scroll view itself. The default\n * value is false when `horizontal={true}` and true otherwise.\n * @platform ios\n */\n alwaysBounceVertical?: ?boolean,\n /**\n * When true, the scroll view automatically centers the content when the\n * content is smaller than the scroll view bounds; when the content is\n * larger than the scroll view, this property has no effect. The default\n * value is false.\n * @platform ios\n */\n centerContent?: ?boolean,\n /**\n * The style of the scroll indicators.\n *\n * - `'default'` (the default), same as `black`.\n * - `'black'`, scroll indicator is black. This style is good against a light background.\n * - `'white'`, scroll indicator is white. This style is good against a dark background.\n *\n * @platform ios\n */\n indicatorStyle?: ?('default' | 'black' | 'white'),\n /**\n * When true, the ScrollView will try to lock to only vertical or horizontal\n * scrolling while dragging. The default value is false.\n * @platform ios\n */\n directionalLockEnabled?: ?boolean,\n /**\n * When false, once tracking starts, won't try to drag if the touch moves.\n * The default value is true.\n * @platform ios\n */\n canCancelContentTouches?: ?boolean,\n /**\n * When set, the scroll view will adjust the scroll position so that the first child that is\n * currently visible and at or beyond `minIndexForVisible` will not change position. This is\n * useful for lists that are loading content in both directions, e.g. a chat thread, where new\n * messages coming in might otherwise cause the scroll position to jump. A value of 0 is common,\n * but other values such as 1 can be used to skip loading spinners or other content that should\n * not maintain position.\n *\n * The optional `autoscrollToTopThreshold` can be used to make the content automatically scroll\n * to the top after making the adjustment if the user was within the threshold of the top before\n * the adjustment was made. This is also useful for chat-like applications where you want to see\n * new messages scroll into place, but not if the user has scrolled up a ways and it would be\n * disruptive to scroll a bunch.\n *\n * Caveat 1: Reordering elements in the scrollview with this enabled will probably cause\n * jumpiness and jank. It can be fixed, but there are currently no plans to do so. For now,\n * don't re-order the content of any ScrollViews or Lists that use this feature.\n *\n * Caveat 2: This simply uses `contentOffset` and `frame.origin` in native code to compute\n * visibility. Occlusion, transforms, and other complexity won't be taken into account as to\n * whether content is \"visible\" or not.\n *\n */\n maintainVisibleContentPosition?: ?$ReadOnly<{|\n minIndexForVisible: number,\n autoscrollToTopThreshold?: ?number,\n |}>,\n /**\n * The maximum allowed zoom scale. The default value is 1.0.\n * @platform ios\n */\n maximumZoomScale?: ?number,\n /**\n * The minimum allowed zoom scale. The default value is 1.0.\n * @platform ios\n */\n minimumZoomScale?: ?number,\n /**\n * When true, ScrollView allows use of pinch gestures to zoom in and out.\n * The default value is true.\n * @platform ios\n */\n pinchGestureEnabled?: ?boolean,\n /**\n * The amount by which the scroll view indicators are inset from the edges\n * of the scroll view. This should normally be set to the same value as\n * the `contentInset`. Defaults to `{0, 0, 0, 0}`.\n * @platform ios\n */\n scrollIndicatorInsets?: ?EdgeInsetsProp,\n /**\n * When true, the scroll view can be programmatically scrolled beyond its\n * content size. The default value is false.\n * @platform ios\n */\n scrollToOverflowEnabled?: ?boolean,\n /**\n * When true, the scroll view scrolls to top when the status bar is tapped.\n * The default value is true.\n * @platform ios\n */\n scrollsToTop?: ?boolean,\n /**\n * Fires when the scroll view scrolls to top after the status bar has been tapped\n * @platform ios\n */\n onScrollToTop?: (event: ScrollEvent) => void,\n /**\n * When true, shows a horizontal scroll indicator.\n * The default value is true.\n */\n showsHorizontalScrollIndicator?: ?boolean,\n /**\n * The current scale of the scroll view content. The default value is 1.0.\n * @platform ios\n */\n zoomScale?: ?number,\n /**\n * This property specifies how the safe area insets are used to modify the\n * content area of the scroll view. The default value of this property is\n * \"never\". Available on iOS 11 and later.\n * @platform ios\n */\n contentInsetAdjustmentBehavior?: ?(\n | 'automatic'\n | 'scrollableAxes'\n | 'never'\n | 'always'\n ),\n|}>;\n\ntype AndroidProps = $ReadOnly<{|\n /**\n * Enables nested scrolling for Android API level 21+.\n * Nested scrolling is supported by default on iOS\n * @platform android\n */\n nestedScrollEnabled?: ?boolean,\n /**\n * Sometimes a scrollview takes up more space than its content fills. When this is\n * the case, this prop will fill the rest of the scrollview with a color to avoid setting\n * a background and creating unnecessary overdraw. This is an advanced optimization\n * that is not needed in the general case.\n * @platform android\n */\n endFillColor?: ?ColorValue,\n /**\n * Tag used to log scroll performance on this scroll view. Will force\n * momentum events to be turned on (see sendMomentumEvents). This doesn't do\n * anything out of the box and you need to implement a custom native\n * FpsListener for it to be useful.\n * @platform android\n */\n scrollPerfTag?: ?string,\n /**\n * Used to override default value of overScroll mode.\n *\n * Possible values:\n *\n * - `'auto'` - Default value, allow a user to over-scroll\n * this view only if the content is large enough to meaningfully scroll.\n * - `'always'` - Always allow a user to over-scroll this view.\n * - `'never'` - Never allow a user to over-scroll this view.\n *\n * @platform android\n */\n overScrollMode?: ?('auto' | 'always' | 'never'),\n /**\n * Causes the scrollbars not to turn transparent when they are not in use.\n * The default value is false.\n *\n * @platform android\n */\n persistentScrollbar?: ?boolean,\n /**\n * Fades out the edges of the scroll content.\n *\n * If the value is greater than 0, the fading edges will be set accordingly\n * to the current scroll direction and position,\n * indicating if there is more content to show.\n *\n * The default value is 0.\n *\n * @platform android\n */\n fadingEdgeLength?: ?number,\n|}>;\n\ntype StickyHeaderComponentType = React.AbstractComponent<\n ScrollViewStickyHeaderProps,\n $ReadOnly void}>,\n>;\n\nexport type Props = $ReadOnly<{|\n ...ViewProps,\n ...IOSProps,\n ...AndroidProps,\n\n /**\n * These styles will be applied to the scroll view content container which\n * wraps all of the child views. Example:\n *\n * ```\n * return (\n * \n * \n * );\n * ...\n * const styles = StyleSheet.create({\n * contentContainer: {\n * paddingVertical: 20\n * }\n * });\n * ```\n */\n contentContainerStyle?: ?ViewStyleProp,\n /**\n * Used to manually set the starting scroll offset.\n * The default value is `{x: 0, y: 0}`.\n */\n contentOffset?: ?PointProp,\n /**\n * When true, the scroll view stops on the next index (in relation to scroll\n * position at release) regardless of how fast the gesture is. This can be\n * used for pagination when the page is less than the width of the\n * horizontal ScrollView or the height of the vertical ScrollView. The default value is false.\n */\n disableIntervalMomentum?: ?boolean,\n /**\n * A floating-point number that determines how quickly the scroll view\n * decelerates after the user lifts their finger. You may also use string\n * shortcuts `\"normal\"` and `\"fast\"` which match the underlying iOS settings\n * for `UIScrollViewDecelerationRateNormal` and\n * `UIScrollViewDecelerationRateFast` respectively.\n *\n * - `'normal'`: 0.998 on iOS, 0.985 on Android (the default)\n * - `'fast'`: 0.99 on iOS, 0.9 on Android\n */\n decelerationRate?: ?DecelerationRateType,\n /**\n * When true, the scroll view's children are arranged horizontally in a row\n * instead of vertically in a column. The default value is false.\n */\n horizontal?: ?boolean,\n /**\n * If sticky headers should stick at the bottom instead of the top of the\n * ScrollView. This is usually used with inverted ScrollViews.\n */\n invertStickyHeaders?: ?boolean,\n /**\n * Determines whether the keyboard gets dismissed in response to a drag.\n *\n * *Cross platform*\n *\n * - `'none'` (the default), drags do not dismiss the keyboard.\n * - `'on-drag'`, the keyboard is dismissed when a drag begins.\n *\n * *iOS Only*\n *\n * - `'interactive'`, the keyboard is dismissed interactively with the drag and moves in\n * synchrony with the touch; dragging upwards cancels the dismissal.\n * On android this is not supported and it will have the same behavior as 'none'.\n */\n keyboardDismissMode?: ?// default\n // cross-platform\n ('none' | 'on-drag' | 'interactive'), // ios only\n /**\n * Determines when the keyboard should stay visible after a tap.\n *\n * - `'never'` (the default), tapping outside of the focused text input when the keyboard\n * is up dismisses the keyboard. When this happens, children won't receive the tap.\n * - `'always'`, the keyboard will not dismiss automatically, and the scroll view will not\n * catch taps, but children of the scroll view can catch taps.\n * - `'handled'`, the keyboard will not dismiss automatically when the tap was handled by\n * a children, (or captured by an ancestor).\n * - `false`, deprecated, use 'never' instead\n * - `true`, deprecated, use 'always' instead\n */\n keyboardShouldPersistTaps?: ?('always' | 'never' | 'handled' | true | false),\n /**\n * Called when the momentum scroll starts (scroll which occurs as the ScrollView glides to a stop).\n */\n onMomentumScrollBegin?: ?(event: ScrollEvent) => void,\n /**\n * Called when the momentum scroll ends (scroll which occurs as the ScrollView glides to a stop).\n */\n onMomentumScrollEnd?: ?(event: ScrollEvent) => void,\n\n /**\n * Fires at most once per frame during scrolling. The frequency of the\n * events can be controlled using the `scrollEventThrottle` prop.\n */\n onScroll?: ?(event: ScrollEvent) => void,\n /**\n * Called when the user begins to drag the scroll view.\n */\n onScrollBeginDrag?: ?(event: ScrollEvent) => void,\n /**\n * Called when the user stops dragging the scroll view and it either stops\n * or begins to glide.\n */\n onScrollEndDrag?: ?(event: ScrollEvent) => void,\n /**\n * Called when scrollable content view of the ScrollView changes.\n *\n * Handler function is passed the content width and content height as parameters:\n * `(contentWidth, contentHeight)`\n *\n * It's implemented using onLayout handler attached to the content container\n * which this ScrollView renders.\n */\n onContentSizeChange?: (contentWidth: number, contentHeight: number) => void,\n onKeyboardDidShow?: (event: KeyboardEvent) => void,\n onKeyboardDidHide?: (event: KeyboardEvent) => void,\n onKeyboardWillShow?: (event: KeyboardEvent) => void,\n onKeyboardWillHide?: (event: KeyboardEvent) => void,\n /**\n * When true, the scroll view stops on multiples of the scroll view's size\n * when scrolling. This can be used for horizontal pagination. The default\n * value is false.\n *\n * Note: Vertical pagination is not supported on Android.\n */\n pagingEnabled?: ?boolean,\n /**\n * When false, the view cannot be scrolled via touch interaction.\n * The default value is true.\n *\n * Note that the view can always be scrolled by calling `scrollTo`.\n */\n scrollEnabled?: ?boolean,\n /**\n * This controls how often the scroll event will be fired while scrolling\n * (as a time interval in ms). A lower number yields better accuracy for code\n * that is tracking the scroll position, but can lead to scroll performance\n * problems due to the volume of information being send over the bridge.\n *\n * Values between 0 and 17ms indicate 60fps updates are needed and throttling\n * will be disabled.\n *\n * If you do not need precise scroll position tracking, set this value higher\n * to limit the information being sent across the bridge.\n *\n * The default value is zero, which results in the scroll event being sent only\n * once each time the view is scrolled.\n */\n scrollEventThrottle?: ?number,\n /**\n * When true, shows a vertical scroll indicator.\n * The default value is true.\n */\n showsVerticalScrollIndicator?: ?boolean,\n /**\n * When true, Sticky header is hidden when scrolling down, and dock at the top\n * when scrolling up\n */\n stickyHeaderHiddenOnScroll?: ?boolean,\n /**\n * An array of child indices determining which children get docked to the\n * top of the screen when scrolling. For example, passing\n * `stickyHeaderIndices={[0]}` will cause the first child to be fixed to the\n * top of the scroll view. This property is not supported in conjunction\n * with `horizontal={true}`.\n */\n stickyHeaderIndices?: ?$ReadOnlyArray,\n /**\n * A React Component that will be used to render sticky headers.\n * To be used together with `stickyHeaderIndices` or with `SectionList`, defaults to `ScrollViewStickyHeader`.\n * You may need to set this if your sticky header uses custom transforms (eg. translation),\n * for example when you want your list to have an animated hidable header.\n */\n StickyHeaderComponent?: StickyHeaderComponentType,\n /**\n * When `snapToInterval` is set, `snapToAlignment` will define the relationship\n * of the snapping to the scroll view.\n *\n * - `'start'` (the default) will align the snap at the left (horizontal) or top (vertical)\n * - `'center'` will align the snap in the center\n * - `'end'` will align the snap at the right (horizontal) or bottom (vertical)\n */\n snapToAlignment?: ?('start' | 'center' | 'end'),\n /**\n * When set, causes the scroll view to stop at multiples of the value of\n * `snapToInterval`. This can be used for paginating through children\n * that have lengths smaller than the scroll view. Typically used in\n * combination with `snapToAlignment` and `decelerationRate=\"fast\"`.\n *\n * Overrides less configurable `pagingEnabled` prop.\n */\n snapToInterval?: ?number,\n /**\n * When set, causes the scroll view to stop at the defined offsets.\n * This can be used for paginating through variously sized children\n * that have lengths smaller than the scroll view. Typically used in\n * combination with `decelerationRate=\"fast\"`.\n *\n * Overrides less configurable `pagingEnabled` and `snapToInterval` props.\n */\n snapToOffsets?: ?$ReadOnlyArray,\n /**\n * Use in conjunction with `snapToOffsets`. By default, the beginning\n * of the list counts as a snap offset. Set `snapToStart` to false to disable\n * this behavior and allow the list to scroll freely between its start and\n * the first `snapToOffsets` offset.\n * The default value is true.\n */\n snapToStart?: ?boolean,\n /**\n * Use in conjunction with `snapToOffsets`. By default, the end\n * of the list counts as a snap offset. Set `snapToEnd` to false to disable\n * this behavior and allow the list to scroll freely between its end and\n * the last `snapToOffsets` offset.\n * The default value is true.\n */\n snapToEnd?: ?boolean,\n /**\n * Experimental: When true, offscreen child views (whose `overflow` value is\n * `hidden`) are removed from their native backing superview when offscreen.\n * This can improve scrolling performance on long lists. The default value is\n * true.\n */\n removeClippedSubviews?: ?boolean,\n /**\n * A RefreshControl component, used to provide pull-to-refresh\n * functionality for the ScrollView. Only works for vertical ScrollViews\n * (`horizontal` prop must be `false`).\n *\n * See [RefreshControl](docs/refreshcontrol.html).\n */\n /* $FlowFixMe[unclear-type] - how to handle generic type without existential\n * operator? */\n refreshControl?: ?React.Element,\n children?: React.Node,\n /**\n * A ref to the inner View element of the ScrollView. This should be used\n * instead of calling `getInnerViewRef`.\n */\n innerViewRef?: ForwardedRef,\n /**\n * A ref to the Native ScrollView component. This ref can be used to call\n * all of ScrollView's public methods, in addition to native methods like\n * measure, measureLayout, etc.\n */\n scrollViewRef?: ForwardedRef,\n|}>;\n\ntype State = {|\n layoutHeight: ?number,\n|};\n\nconst IS_ANIMATING_TOUCH_START_THRESHOLD_MS = 16;\n\nexport type ScrollViewComponentStatics = $ReadOnly<{|\n Context: typeof ScrollViewContext,\n|}>;\n\n/**\n * Component that wraps platform ScrollView while providing\n * integration with touch locking \"responder\" system.\n *\n * Keep in mind that ScrollViews must have a bounded height in order to work,\n * since they contain unbounded-height children into a bounded container (via\n * a scroll interaction). In order to bound the height of a ScrollView, either\n * set the height of the view directly (discouraged) or make sure all parent\n * views have bounded height. Forgetting to transfer `{flex: 1}` down the\n * view stack can lead to errors here, which the element inspector makes\n * easy to debug.\n *\n * Doesn't yet support other contained responders from blocking this scroll\n * view from becoming the responder.\n *\n *\n * `` vs [``](https://reactnative.dev/docs/flatlist) - which one to use?\n *\n * `ScrollView` simply renders all its react child components at once. That\n * makes it very easy to understand and use.\n *\n * On the other hand, this has a performance downside. Imagine you have a very\n * long list of items you want to display, maybe several screens worth of\n * content. Creating JS components and native views for everything all at once,\n * much of which may not even be shown, will contribute to slow rendering and\n * increased memory usage.\n *\n * This is where `FlatList` comes into play. `FlatList` renders items lazily,\n * just when they are about to appear, and removes items that scroll way off\n * screen to save memory and processing time.\n *\n * `FlatList` is also handy if you want to render separators between your items,\n * multiple columns, infinite scroll loading, or any number of other features it\n * supports out of the box.\n */\nclass ScrollView extends React.Component {\n static Context: typeof ScrollViewContext = ScrollViewContext;\n\n constructor(props: Props) {\n super(props);\n\n this._scrollAnimatedValue = new AnimatedImplementation.Value(\n this.props.contentOffset?.y ?? 0,\n );\n this._scrollAnimatedValue.setOffset(this.props.contentInset?.top ?? 0);\n }\n\n _scrollAnimatedValue: AnimatedImplementation.Value;\n _scrollAnimatedValueAttachment: ?{detach: () => void, ...} = null;\n _stickyHeaderRefs: Map> =\n new Map();\n _headerLayoutYs: Map = new Map();\n\n _keyboardMetrics: ?KeyboardMetrics = null;\n _additionalScrollOffset: number = 0;\n _isTouching: boolean = false;\n _lastMomentumScrollBeginTime: number = 0;\n _lastMomentumScrollEndTime: number = 0;\n\n // Reset to false every time becomes responder. This is used to:\n // - Determine if the scroll view has been scrolled and therefore should\n // refuse to give up its responder lock.\n // - Determine if releasing should dismiss the keyboard when we are in\n // tap-to-dismiss mode (this.props.keyboardShouldPersistTaps !== 'always').\n _observedScrollSinceBecomingResponder: boolean = false;\n _becameResponderWhileAnimating: boolean = false;\n _preventNegativeScrollOffset: ?boolean = null;\n\n _animated: ?boolean = null;\n\n _subscriptionKeyboardWillShow: ?EventSubscription = null;\n _subscriptionKeyboardWillHide: ?EventSubscription = null;\n _subscriptionKeyboardDidShow: ?EventSubscription = null;\n _subscriptionKeyboardDidHide: ?EventSubscription = null;\n\n state: State = {\n layoutHeight: null,\n };\n\n componentDidMount() {\n if (typeof this.props.keyboardShouldPersistTaps === 'boolean') {\n console.warn(\n `'keyboardShouldPersistTaps={${\n this.props.keyboardShouldPersistTaps === true ? 'true' : 'false'\n }}' is deprecated. ` +\n `Use 'keyboardShouldPersistTaps=\"${\n this.props.keyboardShouldPersistTaps ? 'always' : 'never'\n }\"' instead`,\n );\n }\n\n this._keyboardMetrics = Keyboard.metrics();\n this._additionalScrollOffset = 0;\n\n this._subscriptionKeyboardWillShow = Keyboard.addListener(\n 'keyboardWillShow',\n this.scrollResponderKeyboardWillShow,\n );\n this._subscriptionKeyboardWillHide = Keyboard.addListener(\n 'keyboardWillHide',\n this.scrollResponderKeyboardWillHide,\n );\n this._subscriptionKeyboardDidShow = Keyboard.addListener(\n 'keyboardDidShow',\n this.scrollResponderKeyboardDidShow,\n );\n this._subscriptionKeyboardDidHide = Keyboard.addListener(\n 'keyboardDidHide',\n this.scrollResponderKeyboardDidHide,\n );\n\n this._updateAnimatedNodeAttachment();\n }\n\n componentDidUpdate(prevProps: Props) {\n const prevContentInsetTop = prevProps.contentInset\n ? prevProps.contentInset.top\n : 0;\n const newContentInsetTop = this.props.contentInset\n ? this.props.contentInset.top\n : 0;\n if (prevContentInsetTop !== newContentInsetTop) {\n this._scrollAnimatedValue.setOffset(newContentInsetTop || 0);\n }\n\n this._updateAnimatedNodeAttachment();\n }\n\n componentWillUnmount() {\n if (this._subscriptionKeyboardWillShow != null) {\n this._subscriptionKeyboardWillShow.remove();\n }\n if (this._subscriptionKeyboardWillHide != null) {\n this._subscriptionKeyboardWillHide.remove();\n }\n if (this._subscriptionKeyboardDidShow != null) {\n this._subscriptionKeyboardDidShow.remove();\n }\n if (this._subscriptionKeyboardDidHide != null) {\n this._subscriptionKeyboardDidHide.remove();\n }\n\n if (this._scrollAnimatedValueAttachment) {\n this._scrollAnimatedValueAttachment.detach();\n }\n }\n\n /**\n * Returns a reference to the underlying scroll responder, which supports\n * operations like `scrollTo`. All ScrollView-like components should\n * implement this method so that they can be composed while providing access\n * to the underlying scroll responder's methods.\n */\n getScrollResponder: () => ScrollResponderType = () => {\n // $FlowFixMe[unclear-type]\n return ((this: any): ScrollResponderType);\n };\n\n getScrollableNode: () => ?number = () => {\n return findNodeHandle(this._scrollView.nativeInstance);\n };\n\n getInnerViewNode: () => ?number = () => {\n return findNodeHandle(this._innerView.nativeInstance);\n };\n\n getInnerViewRef: () => InnerViewInstance | null = () => {\n return this._innerView.nativeInstance;\n };\n\n getNativeScrollRef: () => NativeScrollViewInstance | null = () => {\n return this._scrollView.nativeInstance;\n };\n\n /**\n * Scrolls to a given x, y offset, either immediately or with a smooth animation.\n *\n * Example:\n *\n * `scrollTo({x: 0, y: 0, animated: true})`\n *\n * Note: The weird function signature is due to the fact that, for historical reasons,\n * the function also accepts separate arguments as an alternative to the options object.\n * This is deprecated due to ambiguity (y before x), and SHOULD NOT BE USED.\n */\n scrollTo: (\n options?:\n | {\n x?: number,\n y?: number,\n animated?: boolean,\n ...\n }\n | number,\n deprecatedX?: number,\n deprecatedAnimated?: boolean,\n ) => void = (\n options?:\n | {\n x?: number,\n y?: number,\n animated?: boolean,\n ...\n }\n | number,\n deprecatedX?: number,\n deprecatedAnimated?: boolean,\n ) => {\n let x, y, animated;\n if (typeof options === 'number') {\n console.warn(\n '`scrollTo(y, x, animated)` is deprecated. Use `scrollTo({x: 5, y: 5, ' +\n 'animated: true})` instead.',\n );\n y = options;\n x = deprecatedX;\n animated = deprecatedAnimated;\n } else if (options) {\n y = options.y;\n x = options.x;\n animated = options.animated;\n }\n if (this._scrollView.nativeInstance == null) {\n return;\n }\n Commands.scrollTo(\n this._scrollView.nativeInstance,\n x || 0,\n y || 0,\n animated !== false,\n );\n };\n\n /**\n * If this is a vertical ScrollView scrolls to the bottom.\n * If this is a horizontal ScrollView scrolls to the right.\n *\n * Use `scrollToEnd({animated: true})` for smooth animated scrolling,\n * `scrollToEnd({animated: false})` for immediate scrolling.\n * If no options are passed, `animated` defaults to true.\n */\n scrollToEnd: (options?: ?{animated?: boolean, ...}) => void = (\n options?: ?{animated?: boolean, ...},\n ) => {\n // Default to true\n const animated = (options && options.animated) !== false;\n if (this._scrollView.nativeInstance == null) {\n return;\n }\n Commands.scrollToEnd(this._scrollView.nativeInstance, animated);\n };\n\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n flashScrollIndicators: () => void = () => {\n if (this._scrollView.nativeInstance == null) {\n return;\n }\n Commands.flashScrollIndicators(this._scrollView.nativeInstance);\n };\n\n /**\n * This method should be used as the callback to onFocus in a TextInputs'\n * parent view. Note that any module using this mixin needs to return\n * the parent view's ref in getScrollViewRef() in order to use this method.\n * @param {number} nodeHandle The TextInput node handle\n * @param {number} additionalOffset The scroll view's bottom \"contentInset\".\n * Default is 0.\n * @param {bool} preventNegativeScrolling Whether to allow pulling the content\n * down to make it meet the keyboard's top. Default is false.\n */\n scrollResponderScrollNativeHandleToKeyboard: (\n nodeHandle: number | React.ElementRef>,\n additionalOffset?: number,\n preventNegativeScrollOffset?: boolean,\n ) => void = (\n nodeHandle: number | React.ElementRef>,\n additionalOffset?: number,\n preventNegativeScrollOffset?: boolean,\n ) => {\n this._additionalScrollOffset = additionalOffset || 0;\n this._preventNegativeScrollOffset = !!preventNegativeScrollOffset;\n\n if (this._innerView.nativeInstance == null) {\n return;\n }\n\n if (typeof nodeHandle === 'number') {\n UIManager.measureLayout(\n nodeHandle,\n nullthrows(findNodeHandle(this)),\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._textInputFocusError,\n this._inputMeasureAndScrollToKeyboard,\n );\n } else {\n nodeHandle.measureLayout(\n this._innerView.nativeInstance,\n this._inputMeasureAndScrollToKeyboard,\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n this._textInputFocusError,\n );\n }\n };\n\n /**\n * A helper function to zoom to a specific rect in the scrollview. The argument has the shape\n * {x: number; y: number; width: number; height: number; animated: boolean = true}\n *\n * @platform ios\n */\n scrollResponderZoomTo: (\n rect: {|\n x: number,\n y: number,\n width: number,\n height: number,\n animated?: boolean,\n |},\n animated?: boolean, // deprecated, put this inside the rect argument instead\n ) => void = (\n rect: {|\n x: number,\n y: number,\n width: number,\n height: number,\n animated?: boolean,\n |},\n animated?: boolean, // deprecated, put this inside the rect argument instead\n ) => {\n invariant(Platform.OS === 'ios', 'zoomToRect is not implemented');\n if ('animated' in rect) {\n this._animated = rect.animated;\n delete rect.animated;\n } else if (typeof animated !== 'undefined') {\n console.warn(\n '`scrollResponderZoomTo` `animated` argument is deprecated. Use `options.animated` instead',\n );\n }\n\n if (this._scrollView.nativeInstance == null) {\n return;\n }\n Commands.zoomToRect(\n this._scrollView.nativeInstance,\n rect,\n animated !== false,\n );\n };\n\n _textInputFocusError() {\n console.warn('Error measuring text field.');\n }\n\n /**\n * The calculations performed here assume the scroll view takes up the entire\n * screen - even if has some content inset. We then measure the offsets of the\n * keyboard, and compensate both for the scroll view's \"contentInset\".\n *\n * @param {number} left Position of input w.r.t. table view.\n * @param {number} top Position of input w.r.t. table view.\n * @param {number} width Width of the text input.\n * @param {number} height Height of the text input.\n */\n _inputMeasureAndScrollToKeyboard: (\n left: number,\n top: number,\n width: number,\n height: number,\n ) => void = (left: number, top: number, width: number, height: number) => {\n let keyboardScreenY = Dimensions.get('window').height;\n\n const scrollTextInputIntoVisibleRect = () => {\n if (this._keyboardMetrics != null) {\n keyboardScreenY = this._keyboardMetrics.screenY;\n }\n let scrollOffsetY =\n top - keyboardScreenY + height + this._additionalScrollOffset;\n\n // By default, this can scroll with negative offset, pulling the content\n // down so that the target component's bottom meets the keyboard's top.\n // If requested otherwise, cap the offset at 0 minimum to avoid content\n // shifting down.\n if (this._preventNegativeScrollOffset === true) {\n scrollOffsetY = Math.max(0, scrollOffsetY);\n }\n this.scrollTo({x: 0, y: scrollOffsetY, animated: true});\n\n this._additionalScrollOffset = 0;\n this._preventNegativeScrollOffset = false;\n };\n\n if (this._keyboardMetrics == null) {\n // `_keyboardMetrics` is set inside `scrollResponderKeyboardWillShow` which\n // is not guaranteed to be called before `_inputMeasureAndScrollToKeyboard` but native has already scheduled it.\n // In case it was not called before `_inputMeasureAndScrollToKeyboard`, we postpone scrolling to\n // text input.\n setTimeout(() => {\n scrollTextInputIntoVisibleRect();\n }, 0);\n } else {\n scrollTextInputIntoVisibleRect();\n }\n };\n\n _getKeyForIndex(index: $FlowFixMe, childArray: $FlowFixMe): $FlowFixMe {\n const child = childArray[index];\n return child && child.key;\n }\n\n _updateAnimatedNodeAttachment() {\n if (this._scrollAnimatedValueAttachment) {\n this._scrollAnimatedValueAttachment.detach();\n }\n if (\n this.props.stickyHeaderIndices &&\n this.props.stickyHeaderIndices.length > 0\n ) {\n this._scrollAnimatedValueAttachment =\n AnimatedImplementation.attachNativeEvent(\n this._scrollView.nativeInstance,\n 'onScroll',\n [{nativeEvent: {contentOffset: {y: this._scrollAnimatedValue}}}],\n );\n }\n }\n\n _setStickyHeaderRef(\n key: string,\n ref: ?React.ElementRef,\n ) {\n if (ref) {\n this._stickyHeaderRefs.set(key, ref);\n } else {\n this._stickyHeaderRefs.delete(key);\n }\n }\n\n _onStickyHeaderLayout(index: $FlowFixMe, event: $FlowFixMe, key: $FlowFixMe) {\n const {stickyHeaderIndices} = this.props;\n if (!stickyHeaderIndices) {\n return;\n }\n const childArray = React.Children.toArray<$FlowFixMe>(this.props.children);\n if (key !== this._getKeyForIndex(index, childArray)) {\n // ignore stale layout update\n return;\n }\n\n const layoutY = event.nativeEvent.layout.y;\n this._headerLayoutYs.set(key, layoutY);\n\n const indexOfIndex = stickyHeaderIndices.indexOf(index);\n const previousHeaderIndex = stickyHeaderIndices[indexOfIndex - 1];\n if (previousHeaderIndex != null) {\n const previousHeader = this._stickyHeaderRefs.get(\n this._getKeyForIndex(previousHeaderIndex, childArray),\n );\n previousHeader &&\n previousHeader.setNextHeaderY &&\n previousHeader.setNextHeaderY(layoutY);\n }\n }\n\n _handleScroll = (e: ScrollEvent) => {\n if (__DEV__) {\n if (\n this.props.onScroll &&\n this.props.scrollEventThrottle == null &&\n Platform.OS === 'ios'\n ) {\n console.log(\n 'You specified `onScroll` on a but not ' +\n '`scrollEventThrottle`. You will only receive one event. ' +\n 'Using `16` you get all the events but be aware that it may ' +\n \"cause frame drops, use a bigger number if you don't need as \" +\n 'much precision.',\n );\n }\n }\n this._observedScrollSinceBecomingResponder = true;\n this.props.onScroll && this.props.onScroll(e);\n };\n\n _handleLayout = (e: LayoutEvent) => {\n if (this.props.invertStickyHeaders === true) {\n this.setState({layoutHeight: e.nativeEvent.layout.height});\n }\n if (this.props.onLayout) {\n this.props.onLayout(e);\n }\n };\n\n _handleContentOnLayout = (e: LayoutEvent) => {\n const {width, height} = e.nativeEvent.layout;\n this.props.onContentSizeChange &&\n this.props.onContentSizeChange(width, height);\n };\n\n _innerView: RefForwarder =\n createRefForwarder(\n (instance: InnerViewInstance): InnerViewInstance => instance,\n );\n\n _scrollView: RefForwarder<\n NativeScrollViewInstance,\n PublicScrollViewInstance,\n > = createRefForwarder(\n (nativeInstance: NativeScrollViewInstance): PublicScrollViewInstance => {\n // This is a hack. Ideally we would forwardRef to the underlying\n // host component. However, since ScrollView has it's own methods that can be\n // called as well, if we used the standard forwardRef then these\n // methods wouldn't be accessible and thus be a breaking change.\n //\n // Therefore we edit ref to include ScrollView's public methods so that\n // they are callable from the ref.\n\n // $FlowFixMe[prop-missing] - Known issue with appending custom methods.\n const publicInstance: PublicScrollViewInstance = Object.assign(\n nativeInstance,\n {\n getScrollResponder: this.getScrollResponder,\n getScrollableNode: this.getScrollableNode,\n getInnerViewNode: this.getInnerViewNode,\n getInnerViewRef: this.getInnerViewRef,\n getNativeScrollRef: this.getNativeScrollRef,\n scrollTo: this.scrollTo,\n scrollToEnd: this.scrollToEnd,\n flashScrollIndicators: this.flashScrollIndicators,\n scrollResponderZoomTo: this.scrollResponderZoomTo,\n scrollResponderScrollNativeHandleToKeyboard:\n this.scrollResponderScrollNativeHandleToKeyboard,\n },\n );\n\n return publicInstance;\n },\n );\n\n /**\n * Warning, this may be called several times for a single keyboard opening.\n * It's best to store the information in this method and then take any action\n * at a later point (either in `keyboardDidShow` or other).\n *\n * Here's the order that events occur in:\n * - focus\n * - willShow {startCoordinates, endCoordinates} several times\n * - didShow several times\n * - blur\n * - willHide {startCoordinates, endCoordinates} several times\n * - didHide several times\n *\n * The `ScrollResponder` module callbacks for each of these events.\n * Even though any user could have easily listened to keyboard events\n * themselves, using these `props` callbacks ensures that ordering of events\n * is consistent - and not dependent on the order that the keyboard events are\n * subscribed to. This matters when telling the scroll view to scroll to where\n * the keyboard is headed - the scroll responder better have been notified of\n * the keyboard destination before being instructed to scroll to where the\n * keyboard will be. Stick to the `ScrollResponder` callbacks, and everything\n * will work.\n *\n * WARNING: These callbacks will fire even if a keyboard is displayed in a\n * different navigation pane. Filter out the events to determine if they are\n * relevant to you. (For example, only if you receive these callbacks after\n * you had explicitly focused a node etc).\n */\n\n scrollResponderKeyboardWillShow: (e: KeyboardEvent) => void = (\n e: KeyboardEvent,\n ) => {\n this._keyboardMetrics = e.endCoordinates;\n this.props.onKeyboardWillShow && this.props.onKeyboardWillShow(e);\n };\n\n scrollResponderKeyboardWillHide: (e: KeyboardEvent) => void = (\n e: KeyboardEvent,\n ) => {\n this._keyboardMetrics = null;\n this.props.onKeyboardWillHide && this.props.onKeyboardWillHide(e);\n };\n\n scrollResponderKeyboardDidShow: (e: KeyboardEvent) => void = (\n e: KeyboardEvent,\n ) => {\n this._keyboardMetrics = e.endCoordinates;\n this.props.onKeyboardDidShow && this.props.onKeyboardDidShow(e);\n };\n\n scrollResponderKeyboardDidHide: (e: KeyboardEvent) => void = (\n e: KeyboardEvent,\n ) => {\n this._keyboardMetrics = null;\n this.props.onKeyboardDidHide && this.props.onKeyboardDidHide(e);\n };\n\n /**\n * Invoke this from an `onMomentumScrollBegin` event.\n */\n _handleMomentumScrollBegin: (e: ScrollEvent) => void = (e: ScrollEvent) => {\n this._lastMomentumScrollBeginTime = global.performance.now();\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n };\n\n /**\n * Invoke this from an `onMomentumScrollEnd` event.\n */\n _handleMomentumScrollEnd: (e: ScrollEvent) => void = (e: ScrollEvent) => {\n FrameRateLogger.endScroll();\n this._lastMomentumScrollEndTime = global.performance.now();\n this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n };\n\n /**\n * Unfortunately, `onScrollBeginDrag` also fires when *stopping* the scroll\n * animation, and there's not an easy way to distinguish a drag vs. stopping\n * momentum.\n *\n * Invoke this from an `onScrollBeginDrag` event.\n */\n _handleScrollBeginDrag: (e: ScrollEvent) => void = (e: ScrollEvent) => {\n FrameRateLogger.beginScroll(); // TODO: track all scrolls after implementing onScrollEndAnimation\n\n if (\n Platform.OS === 'android' &&\n this.props.keyboardDismissMode === 'on-drag'\n ) {\n dismissKeyboard();\n }\n\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n };\n\n /**\n * Invoke this from an `onScrollEndDrag` event.\n */\n _handleScrollEndDrag: (e: ScrollEvent) => void = (e: ScrollEvent) => {\n const {velocity} = e.nativeEvent;\n // - If we are animating, then this is a \"drag\" that is stopping the scrollview and momentum end\n // will fire.\n // - If velocity is non-zero, then the interaction will stop when momentum scroll ends or\n // another drag starts and ends.\n // - If we don't get velocity, better to stop the interaction twice than not stop it.\n if (\n !this._isAnimating() &&\n (!velocity || (velocity.x === 0 && velocity.y === 0))\n ) {\n FrameRateLogger.endScroll();\n }\n this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n };\n\n /**\n * A helper function for this class that lets us quickly determine if the\n * view is currently animating. This is particularly useful to know when\n * a touch has just started or ended.\n */\n _isAnimating: () => boolean = () => {\n const now = global.performance.now();\n const timeSinceLastMomentumScrollEnd =\n now - this._lastMomentumScrollEndTime;\n const isAnimating =\n timeSinceLastMomentumScrollEnd < IS_ANIMATING_TOUCH_START_THRESHOLD_MS ||\n this._lastMomentumScrollEndTime < this._lastMomentumScrollBeginTime;\n return isAnimating;\n };\n\n /**\n * Invoke this from an `onResponderGrant` event.\n */\n _handleResponderGrant: (e: PressEvent) => void = (e: PressEvent) => {\n this._observedScrollSinceBecomingResponder = false;\n this.props.onResponderGrant && this.props.onResponderGrant(e);\n this._becameResponderWhileAnimating = this._isAnimating();\n };\n\n /**\n * Invoke this from an `onResponderReject` event.\n *\n * Some other element is not yielding its role as responder. Normally, we'd\n * just disable the `UIScrollView`, but a touch has already began on it, the\n * `UIScrollView` will not accept being disabled after that. The easiest\n * solution for now is to accept the limitation of disallowing this\n * altogether. To improve this, find a way to disable the `UIScrollView` after\n * a touch has already started.\n */\n _handleResponderReject: () => void = () => {};\n\n /**\n * Invoke this from an `onResponderRelease` event.\n */\n _handleResponderRelease: (e: PressEvent) => void = (e: PressEvent) => {\n this._isTouching = e.nativeEvent.touches.length !== 0;\n this.props.onResponderRelease && this.props.onResponderRelease(e);\n\n if (typeof e.target === 'number') {\n if (__DEV__) {\n console.error(\n 'Did not expect event target to be a number. Should have been a native component',\n );\n }\n\n return;\n }\n\n // By default scroll views will unfocus a textField\n // if another touch occurs outside of it\n const currentlyFocusedTextInput = TextInputState.currentlyFocusedInput();\n if (\n currentlyFocusedTextInput != null &&\n this.props.keyboardShouldPersistTaps !== true &&\n this.props.keyboardShouldPersistTaps !== 'always' &&\n this._keyboardIsDismissible() &&\n e.target !== currentlyFocusedTextInput &&\n !this._observedScrollSinceBecomingResponder &&\n !this._becameResponderWhileAnimating\n ) {\n TextInputState.blurTextInput(currentlyFocusedTextInput);\n }\n };\n\n /**\n * We will allow the scroll view to give up its lock iff it acquired the lock\n * during an animation. This is a very useful default that happens to satisfy\n * many common user experiences.\n *\n * - Stop a scroll on the left edge, then turn that into an outer view's\n * backswipe.\n * - Stop a scroll mid-bounce at the top, continue pulling to have the outer\n * view dismiss.\n * - However, without catching the scroll view mid-bounce (while it is\n * motionless), if you drag far enough for the scroll view to become\n * responder (and therefore drag the scroll view a bit), any backswipe\n * navigation of a swipe gesture higher in the view hierarchy, should be\n * rejected.\n */\n _handleResponderTerminationRequest: () => boolean = () => {\n return !this._observedScrollSinceBecomingResponder;\n };\n\n /**\n * Invoke this from an `onScroll` event.\n */\n _handleScrollShouldSetResponder: () => boolean = () => {\n // Allow any event touch pass through if the default pan responder is disabled\n if (this.props.disableScrollViewPanResponder === true) {\n return false;\n }\n return this._isTouching;\n };\n\n /**\n * Merely touch starting is not sufficient for a scroll view to become the\n * responder. Being the \"responder\" means that the very next touch move/end\n * event will result in an action/movement.\n *\n * Invoke this from an `onStartShouldSetResponder` event.\n *\n * `onStartShouldSetResponder` is used when the next move/end will trigger\n * some UI movement/action, but when you want to yield priority to views\n * nested inside of the view.\n *\n * There may be some cases where scroll views actually should return `true`\n * from `onStartShouldSetResponder`: Any time we are detecting a standard tap\n * that gives priority to nested views.\n *\n * - If a single tap on the scroll view triggers an action such as\n * recentering a map style view yet wants to give priority to interaction\n * views inside (such as dropped pins or labels), then we would return true\n * from this method when there is a single touch.\n *\n * - Similar to the previous case, if a two finger \"tap\" should trigger a\n * zoom, we would check the `touches` count, and if `>= 2`, we would return\n * true.\n *\n */\n _handleStartShouldSetResponder: (e: PressEvent) => boolean = (\n e: PressEvent,\n ) => {\n // Allow any event touch pass through if the default pan responder is disabled\n if (this.props.disableScrollViewPanResponder === true) {\n return false;\n }\n\n const currentlyFocusedInput = TextInputState.currentlyFocusedInput();\n if (\n this.props.keyboardShouldPersistTaps === 'handled' &&\n this._keyboardIsDismissible() &&\n e.target !== currentlyFocusedInput\n ) {\n return true;\n }\n return false;\n };\n\n /**\n * There are times when the scroll view wants to become the responder\n * (meaning respond to the next immediate `touchStart/touchEnd`), in a way\n * that *doesn't* give priority to nested views (hence the capture phase):\n *\n * - Currently animating.\n * - Tapping anywhere that is not a text input, while the keyboard is\n * up (which should dismiss the keyboard).\n *\n * Invoke this from an `onStartShouldSetResponderCapture` event.\n */\n _handleStartShouldSetResponderCapture: (e: PressEvent) => boolean = (\n e: PressEvent,\n ) => {\n // The scroll view should receive taps instead of its descendants if:\n // * it is already animating/decelerating\n if (this._isAnimating()) {\n return true;\n }\n\n // Allow any event touch pass through if the default pan responder is disabled\n if (this.props.disableScrollViewPanResponder === true) {\n return false;\n }\n\n // * the keyboard is up, keyboardShouldPersistTaps is 'never' (the default),\n // and a new touch starts with a non-textinput target (in which case the\n // first tap should be sent to the scroll view and dismiss the keyboard,\n // then the second tap goes to the actual interior view)\n const {keyboardShouldPersistTaps} = this.props;\n const keyboardNeverPersistTaps =\n !keyboardShouldPersistTaps || keyboardShouldPersistTaps === 'never';\n\n if (typeof e.target === 'number') {\n if (__DEV__) {\n console.error(\n 'Did not expect event target to be a number. Should have been a native component',\n );\n }\n\n return false;\n }\n\n // Let presses through if the soft keyboard is detached from the viewport\n if (this._softKeyboardIsDetached()) {\n return false;\n }\n\n if (\n keyboardNeverPersistTaps &&\n this._keyboardIsDismissible() &&\n e.target != null &&\n // $FlowFixMe[incompatible-call]\n !TextInputState.isTextInput(e.target)\n ) {\n return true;\n }\n\n return false;\n };\n\n /**\n * Do we consider there to be a dismissible soft-keyboard open?\n */\n _keyboardIsDismissible: () => boolean = () => {\n const currentlyFocusedInput = TextInputState.currentlyFocusedInput();\n\n // We cannot dismiss the keyboard without an input to blur, even if a soft\n // keyboard is open (e.g. when keyboard is open due to a native component\n // not participating in TextInputState). It's also possible that the\n // currently focused input isn't a TextInput (such as by calling ref.focus\n // on a non-TextInput).\n const hasFocusedTextInput =\n currentlyFocusedInput != null &&\n TextInputState.isTextInput(currentlyFocusedInput);\n\n // Even if an input is focused, we may not have a keyboard to dismiss. E.g\n // when using a physical keyboard. Ensure we have an event for an opened\n // keyboard.\n const softKeyboardMayBeOpen =\n this._keyboardMetrics != null || this._keyboardEventsAreUnreliable();\n\n return hasFocusedTextInput && softKeyboardMayBeOpen;\n };\n\n /**\n * Whether an open soft keyboard is present which does not overlap the\n * viewport. E.g. for a VR soft-keyboard which is detached from the app\n * viewport.\n */\n _softKeyboardIsDetached: () => boolean = () => {\n return this._keyboardMetrics != null && this._keyboardMetrics.height === 0;\n };\n\n _keyboardEventsAreUnreliable: () => boolean = () => {\n // Android versions prior to API 30 rely on observing layout changes when\n // `android:windowSoftInputMode` is set to `adjustResize` or `adjustPan`.\n return Platform.OS === 'android' && Platform.Version < 30;\n };\n\n /**\n * Invoke this from an `onTouchEnd` event.\n *\n * @param {PressEvent} e Event.\n */\n _handleTouchEnd: (e: PressEvent) => void = (e: PressEvent) => {\n const nativeEvent = e.nativeEvent;\n this._isTouching = nativeEvent.touches.length !== 0;\n\n const {keyboardShouldPersistTaps} = this.props;\n const keyboardNeverPersistsTaps =\n !keyboardShouldPersistTaps || keyboardShouldPersistTaps === 'never';\n\n // Dismiss the keyboard now if we didn't become responder in capture phase\n // to eat presses, but still want to dismiss on interaction.\n // Don't do anything if the target of the touch event is the current input.\n const currentlyFocusedTextInput = TextInputState.currentlyFocusedInput();\n if (\n currentlyFocusedTextInput != null &&\n e.target !== currentlyFocusedTextInput &&\n this._softKeyboardIsDetached() &&\n this._keyboardIsDismissible() &&\n keyboardNeverPersistsTaps\n ) {\n TextInputState.blurTextInput(currentlyFocusedTextInput);\n }\n\n this.props.onTouchEnd && this.props.onTouchEnd(e);\n };\n\n /**\n * Invoke this from an `onTouchCancel` event.\n *\n * @param {PressEvent} e Event.\n */\n _handleTouchCancel: (e: PressEvent) => void = (e: PressEvent) => {\n this._isTouching = false;\n this.props.onTouchCancel && this.props.onTouchCancel(e);\n };\n\n /**\n * Invoke this from an `onTouchStart` event.\n *\n * Since we know that the `SimpleEventPlugin` occurs later in the plugin\n * order, after `ResponderEventPlugin`, we can detect that we were *not*\n * permitted to be the responder (presumably because a contained view became\n * responder). The `onResponderReject` won't fire in that case - it only\n * fires when a *current* responder rejects our request.\n *\n * @param {PressEvent} e Touch Start event.\n */\n _handleTouchStart: (e: PressEvent) => void = (e: PressEvent) => {\n this._isTouching = true;\n this.props.onTouchStart && this.props.onTouchStart(e);\n };\n\n /**\n * Invoke this from an `onTouchMove` event.\n *\n * Since we know that the `SimpleEventPlugin` occurs later in the plugin\n * order, after `ResponderEventPlugin`, we can detect that we were *not*\n * permitted to be the responder (presumably because a contained view became\n * responder). The `onResponderReject` won't fire in that case - it only\n * fires when a *current* responder rejects our request.\n *\n * @param {PressEvent} e Touch Start event.\n */\n _handleTouchMove: (e: PressEvent) => void = (e: PressEvent) => {\n this.props.onTouchMove && this.props.onTouchMove(e);\n };\n\n render(): React.Node | React.Element {\n const [NativeDirectionalScrollView, NativeDirectionalScrollContentView] =\n this.props.horizontal === true\n ? NativeHorizontalScrollViewTuple\n : NativeVerticalScrollViewTuple;\n\n const contentContainerStyle = [\n this.props.horizontal === true && styles.contentContainerHorizontal,\n this.props.contentContainerStyle,\n ];\n if (__DEV__ && this.props.style !== undefined) {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n const style = flattenStyle(this.props.style);\n const childLayoutProps = ['alignItems', 'justifyContent'].filter(\n prop => style && style[prop] !== undefined,\n );\n invariant(\n childLayoutProps.length === 0,\n 'ScrollView child layout (' +\n JSON.stringify(childLayoutProps) +\n ') must be applied through the contentContainerStyle prop.',\n );\n }\n\n const contentSizeChangeProps =\n this.props.onContentSizeChange == null\n ? null\n : {\n onLayout: this._handleContentOnLayout,\n };\n\n const {stickyHeaderIndices} = this.props;\n let children = this.props.children;\n\n if (stickyHeaderIndices != null && stickyHeaderIndices.length > 0) {\n const childArray = React.Children.toArray<$FlowFixMe>(\n this.props.children,\n );\n\n children = childArray.map((child, index) => {\n const indexOfIndex = child ? stickyHeaderIndices.indexOf(index) : -1;\n if (indexOfIndex > -1) {\n const key = child.key;\n const nextIndex = stickyHeaderIndices[indexOfIndex + 1];\n const StickyHeaderComponent =\n this.props.StickyHeaderComponent || ScrollViewStickyHeader;\n return (\n this._setStickyHeaderRef(key, ref)}\n nextHeaderLayoutY={this._headerLayoutYs.get(\n this._getKeyForIndex(nextIndex, childArray),\n )}\n onLayout={event => this._onStickyHeaderLayout(index, event, key)}\n scrollAnimatedValue={this._scrollAnimatedValue}\n inverted={this.props.invertStickyHeaders}\n hiddenOnScroll={this.props.stickyHeaderHiddenOnScroll}\n scrollViewHeight={this.state.layoutHeight}>\n {child}\n \n );\n } else {\n return child;\n }\n });\n }\n children = (\n \n {children}\n \n );\n\n const hasStickyHeaders =\n Array.isArray(stickyHeaderIndices) && stickyHeaderIndices.length > 0;\n\n const contentContainer = (\n \n {children}\n \n );\n\n const alwaysBounceHorizontal =\n this.props.alwaysBounceHorizontal !== undefined\n ? this.props.alwaysBounceHorizontal\n : this.props.horizontal;\n\n const alwaysBounceVertical =\n this.props.alwaysBounceVertical !== undefined\n ? this.props.alwaysBounceVertical\n : !this.props.horizontal;\n\n const baseStyle =\n this.props.horizontal === true\n ? styles.baseHorizontal\n : styles.baseVertical;\n const props = {\n ...this.props,\n alwaysBounceHorizontal,\n alwaysBounceVertical,\n style: StyleSheet.compose(baseStyle, this.props.style),\n // Override the onContentSizeChange from props, since this event can\n // bubble up from TextInputs\n onContentSizeChange: null,\n onLayout: this._handleLayout,\n onMomentumScrollBegin: this._handleMomentumScrollBegin,\n onMomentumScrollEnd: this._handleMomentumScrollEnd,\n onResponderGrant: this._handleResponderGrant,\n onResponderReject: this._handleResponderReject,\n onResponderRelease: this._handleResponderRelease,\n onResponderTerminationRequest: this._handleResponderTerminationRequest,\n onScrollBeginDrag: this._handleScrollBeginDrag,\n onScrollEndDrag: this._handleScrollEndDrag,\n onScrollShouldSetResponder: this._handleScrollShouldSetResponder,\n onStartShouldSetResponder: this._handleStartShouldSetResponder,\n onStartShouldSetResponderCapture:\n this._handleStartShouldSetResponderCapture,\n onTouchEnd: this._handleTouchEnd,\n onTouchMove: this._handleTouchMove,\n onTouchStart: this._handleTouchStart,\n onTouchCancel: this._handleTouchCancel,\n onScroll: this._handleScroll,\n scrollEventThrottle: hasStickyHeaders\n ? 1\n : this.props.scrollEventThrottle,\n sendMomentumEvents:\n this.props.onMomentumScrollBegin || this.props.onMomentumScrollEnd\n ? true\n : false,\n // default to true\n snapToStart: this.props.snapToStart !== false,\n // default to true\n snapToEnd: this.props.snapToEnd !== false,\n // pagingEnabled is overridden by snapToInterval / snapToOffsets\n pagingEnabled: Platform.select({\n // on iOS, pagingEnabled must be set to false to have snapToInterval / snapToOffsets work\n ios:\n this.props.pagingEnabled === true &&\n this.props.snapToInterval == null &&\n this.props.snapToOffsets == null,\n // on Android, pagingEnabled must be set to true to have snapToInterval / snapToOffsets work\n android:\n this.props.pagingEnabled === true ||\n this.props.snapToInterval != null ||\n this.props.snapToOffsets != null,\n }),\n };\n\n const {decelerationRate} = this.props;\n if (decelerationRate != null) {\n props.decelerationRate = processDecelerationRate(decelerationRate);\n }\n\n const refreshControl = this.props.refreshControl;\n const scrollViewRef = this._scrollView.getForwardingRef(\n this.props.scrollViewRef,\n );\n\n if (refreshControl) {\n if (Platform.OS === 'ios') {\n // On iOS the RefreshControl is a child of the ScrollView.\n return (\n \n {refreshControl}\n {contentContainer}\n \n );\n } else if (Platform.OS === 'android') {\n // On Android wrap the ScrollView with a AndroidSwipeRefreshLayout.\n // Since the ScrollView is wrapped add the style props to the\n // AndroidSwipeRefreshLayout and use flex: 1 for the ScrollView.\n // Note: we should split props.style on the inner and outer props\n // however, the ScrollView still needs the baseStyle to be scrollable\n // $FlowFixMe[underconstrained-implicit-instantiation]\n const {outer, inner} = splitLayoutProps(flattenStyle(props.style));\n return React.cloneElement(\n refreshControl,\n {style: StyleSheet.compose(baseStyle, outer)},\n \n {contentContainer}\n ,\n );\n }\n }\n return (\n \n {contentContainer}\n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n baseVertical: {\n flexGrow: 1,\n flexShrink: 1,\n flexDirection: 'column',\n overflow: 'scroll',\n },\n baseHorizontal: {\n flexGrow: 1,\n flexShrink: 1,\n flexDirection: 'row',\n overflow: 'scroll',\n },\n contentContainerHorizontal: {\n flexDirection: 'row',\n },\n});\n\ntype ForwardedRef = {current: null | T, ...} | ((null | T) => mixed);\n\ntype RefForwarder = {\n getForwardingRef: (\n ?ForwardedRef,\n ) => (TNativeInstance | null) => void,\n nativeInstance: TNativeInstance | null,\n publicInstance: TPublicInstance | null,\n};\n\n/**\n * Helper function that should be replaced with `useCallback` and `useMergeRefs`\n * once `ScrollView` is reimplemented as a functional component.\n */\nfunction createRefForwarder(\n mutator: TNativeInstance => TPublicInstance,\n): RefForwarder {\n const state: RefForwarder = {\n getForwardingRef: memoize(forwardedRef => {\n return (nativeInstance: TNativeInstance | null): void => {\n const publicInstance =\n nativeInstance == null ? null : mutator(nativeInstance);\n\n state.nativeInstance = nativeInstance;\n state.publicInstance = publicInstance;\n\n if (forwardedRef != null) {\n if (typeof forwardedRef === 'function') {\n forwardedRef(publicInstance);\n } else {\n forwardedRef.current = publicInstance;\n }\n }\n };\n }),\n nativeInstance: null,\n publicInstance: null,\n };\n\n return state;\n}\n\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\nfunction Wrapper(props, ref: (mixed => mixed) | {current: mixed, ...}) {\n return ;\n}\nWrapper.displayName = 'ScrollView';\nconst ForwardedScrollView = React.forwardRef(Wrapper);\n\n// $FlowFixMe[prop-missing] Add static context to ForwardedScrollView\nForwardedScrollView.Context = ScrollViewContext;\n\nForwardedScrollView.displayName = 'ScrollView';\n\nmodule.exports = ((ForwardedScrollView: $FlowFixMe): React.AbstractComponent<\n React.ElementConfig,\n PublicScrollViewInstance,\n> &\n ScrollViewComponentStatics);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport NativeFrameRateLogger from './NativeFrameRateLogger';\n\nconst invariant = require('invariant');\n\n/**\n * Flow API for native FrameRateLogger module. If the native module is not installed, function calls\n * are just no-ops.\n *\n * Typical behavior is that `setContext` is called when a new screen is loaded (e.g. via a\n * navigation integration), and then `beginScroll` is called by `ScrollResponder` at which point the\n * native module then begins tracking frame drops. When `ScrollResponder` calls `endScroll`, the\n * native module gathers up all it's frame drop data and reports it via an analytics pipeline for\n * analysis.\n *\n * Note that `beginScroll` may be called multiple times by `ScrollResponder` - unclear if that's a\n * bug, but the native module should be robust to that.\n *\n * In the future we may add support for tracking frame drops in other types of interactions beyond\n * scrolling.\n */\nconst FrameRateLogger = {\n /**\n * Enable `debug` to see local logs of what's going on. `reportStackTraces` will grab stack traces\n * during UI thread stalls and upload them if the native module supports it.\n */\n setGlobalOptions: function (options: {\n debug?: boolean,\n reportStackTraces?: boolean,\n ...\n }) {\n if (options.debug !== undefined) {\n invariant(\n NativeFrameRateLogger,\n 'Trying to debug FrameRateLogger without the native module!',\n );\n }\n if (NativeFrameRateLogger) {\n // Needs to clone the object first to avoid modifying the argument.\n const optionsClone = {\n debug: !!options.debug,\n reportStackTraces: !!options.reportStackTraces,\n };\n NativeFrameRateLogger.setGlobalOptions(optionsClone);\n }\n },\n\n /**\n * Must call `setContext` before any events can be properly tracked, which is done automatically\n * in `AppRegistry`, but navigation is also a common place to hook in.\n */\n setContext: function (context: string) {\n NativeFrameRateLogger && NativeFrameRateLogger.setContext(context);\n },\n\n /**\n * Called in `ScrollResponder` so any component that uses that module will handle this\n * automatically.\n */\n beginScroll() {\n NativeFrameRateLogger && NativeFrameRateLogger.beginScroll();\n },\n\n /**\n * Called in `ScrollResponder` so any component that uses that module will handle this\n * automatically.\n */\n endScroll() {\n NativeFrameRateLogger && NativeFrameRateLogger.endScroll();\n },\n};\n\nmodule.exports = FrameRateLogger;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +setGlobalOptions: (options: {|\n +debug?: ?boolean,\n +reportStackTraces?: ?boolean,\n |}) => void;\n +setContext: (context: string) => void;\n +beginScroll: () => void;\n +endScroll: () => void;\n}\n\nexport default (TurboModuleRegistry.get('FrameRateLogger'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {____ViewStyle_Internal} from './StyleSheetTypes';\n\nexport default function splitLayoutProps(props: ?____ViewStyle_Internal): {\n outer: ?____ViewStyle_Internal,\n inner: ?____ViewStyle_Internal,\n} {\n let outer: ?____ViewStyle_Internal = null;\n let inner: ?____ViewStyle_Internal = null;\n\n if (props != null) {\n // $FlowIgnore[incompatible-exact] Will contain a subset of keys from `props`.\n outer = {};\n // $FlowIgnore[incompatible-exact] Will contain a subset of keys from `props`.\n inner = {};\n\n for (const prop of Object.keys(props)) {\n switch (prop) {\n case 'margin':\n case 'marginHorizontal':\n case 'marginVertical':\n case 'marginBottom':\n case 'marginTop':\n case 'marginLeft':\n case 'marginRight':\n case 'flex':\n case 'flexGrow':\n case 'flexShrink':\n case 'flexBasis':\n case 'alignSelf':\n case 'height':\n case 'minHeight':\n case 'maxHeight':\n case 'width':\n case 'minWidth':\n case 'maxWidth':\n case 'position':\n case 'left':\n case 'right':\n case 'bottom':\n case 'top':\n case 'transform':\n case 'rowGap':\n case 'columnGap':\n case 'gap':\n // $FlowFixMe[cannot-write]\n // $FlowFixMe[incompatible-use]\n // $FlowFixMe[prop-missing]\n outer[prop] = props[prop];\n break;\n default:\n // $FlowFixMe[cannot-write]\n // $FlowFixMe[incompatible-use]\n // $FlowFixMe[prop-missing]\n inner[prop] = props[prop];\n break;\n }\n }\n }\n\n return {outer, inner};\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n// This function dismisses the currently-open keyboard, if any.\n\n'use strict';\n\nconst TextInputState = require('../Components/TextInput/TextInputState');\n\nfunction dismissKeyboard() {\n TextInputState.blurTextInput(TextInputState.currentlyFocusedInput());\n}\n\nmodule.exports = dismissKeyboard;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {EventSubscription} from '../../vendor/emitter/EventEmitter';\n\nimport NativeEventEmitter from '../../EventEmitter/NativeEventEmitter';\nimport LayoutAnimation from '../../LayoutAnimation/LayoutAnimation';\nimport dismissKeyboard from '../../Utilities/dismissKeyboard';\nimport Platform from '../../Utilities/Platform';\nimport NativeKeyboardObserver from './NativeKeyboardObserver';\n\nexport type KeyboardEventName = $Keys;\n\nexport type KeyboardEventEasing =\n | 'easeIn'\n | 'easeInEaseOut'\n | 'easeOut'\n | 'linear'\n | 'keyboard';\n\nexport type KeyboardMetrics = $ReadOnly<{|\n screenX: number,\n screenY: number,\n width: number,\n height: number,\n|}>;\n\nexport type KeyboardEvent = AndroidKeyboardEvent | IOSKeyboardEvent;\n\ntype BaseKeyboardEvent = {|\n duration: number,\n easing: KeyboardEventEasing,\n endCoordinates: KeyboardMetrics,\n|};\n\nexport type AndroidKeyboardEvent = $ReadOnly<{|\n ...BaseKeyboardEvent,\n duration: 0,\n easing: 'keyboard',\n|}>;\n\nexport type IOSKeyboardEvent = $ReadOnly<{|\n ...BaseKeyboardEvent,\n startCoordinates: KeyboardMetrics,\n isEventFromThisApp: boolean,\n|}>;\n\ntype KeyboardEventDefinitions = {\n keyboardWillShow: [KeyboardEvent],\n keyboardDidShow: [KeyboardEvent],\n keyboardWillHide: [KeyboardEvent],\n keyboardDidHide: [KeyboardEvent],\n keyboardWillChangeFrame: [KeyboardEvent],\n keyboardDidChangeFrame: [KeyboardEvent],\n};\n\n/**\n * `Keyboard` module to control keyboard events.\n *\n * ### Usage\n *\n * The Keyboard module allows you to listen for native events and react to them, as\n * well as make changes to the keyboard, like dismissing it.\n *\n *```\n * import React, { Component } from 'react';\n * import { Keyboard, TextInput } from 'react-native';\n *\n * class Example extends Component {\n * componentWillMount () {\n * this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this._keyboardDidShow);\n * this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this._keyboardDidHide);\n * }\n *\n * componentWillUnmount () {\n * this.keyboardDidShowListener.remove();\n * this.keyboardDidHideListener.remove();\n * }\n *\n * _keyboardDidShow () {\n * alert('Keyboard Shown');\n * }\n *\n * _keyboardDidHide () {\n * alert('Keyboard Hidden');\n * }\n *\n * render() {\n * return (\n * \n * );\n * }\n * }\n *```\n */\n\nclass Keyboard {\n _currentlyShowing: ?KeyboardEvent;\n\n _emitter: NativeEventEmitter =\n new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeKeyboardObserver,\n );\n\n constructor() {\n this.addListener('keyboardDidShow', ev => {\n this._currentlyShowing = ev;\n });\n this.addListener('keyboardDidHide', _ev => {\n this._currentlyShowing = null;\n });\n }\n\n /**\n * The `addListener` function connects a JavaScript function to an identified native\n * keyboard notification event.\n *\n * This function then returns the reference to the listener.\n *\n * @param {string} eventName The `nativeEvent` is the string that identifies the event you're listening for. This\n *can be any of the following:\n *\n * - `keyboardWillShow`\n * - `keyboardDidShow`\n * - `keyboardWillHide`\n * - `keyboardDidHide`\n * - `keyboardWillChangeFrame`\n * - `keyboardDidChangeFrame`\n *\n * Android versions prior to API 30 rely on observing layout changes when\n * `android:windowSoftInputMode` is set to `adjustResize` or `adjustPan`.\n *\n * `keyboardWillShow` as well as `keyboardWillHide` are not available on Android since there is\n * no native corresponding event.\n *\n * @param {function} callback function to be called when the event fires.\n */\n addListener>(\n eventType: K,\n listener: (...$ElementType) => mixed,\n context?: mixed,\n ): EventSubscription {\n return this._emitter.addListener(eventType, listener);\n }\n\n /**\n * Removes all listeners for a specific event type.\n *\n * @param {string} eventType The native event string listeners are watching which will be removed.\n */\n removeAllListeners>(eventType: ?K): void {\n this._emitter.removeAllListeners(eventType);\n }\n\n /**\n * Dismisses the active keyboard and removes focus.\n */\n dismiss(): void {\n dismissKeyboard();\n }\n\n /**\n * Whether the keyboard is last known to be visible.\n */\n isVisible(): boolean {\n return !!this._currentlyShowing;\n }\n\n /**\n * Return the metrics of the soft-keyboard if visible.\n */\n metrics(): ?KeyboardMetrics {\n return this._currentlyShowing?.endCoordinates;\n }\n\n /**\n * Useful for syncing TextInput (or other keyboard accessory view) size of\n * position changes with keyboard movements.\n */\n scheduleLayoutAnimation(event: KeyboardEvent): void {\n const {duration, easing} = event;\n if (duration != null && duration !== 0) {\n LayoutAnimation.configureNext({\n duration: duration,\n update: {\n duration: duration,\n type: (easing != null && LayoutAnimation.Types[easing]) || 'keyboard',\n },\n });\n }\n }\n}\n\nmodule.exports = (new Keyboard(): Keyboard);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\n'use strict';\n\nimport type {Spec as FabricUIManagerSpec} from '../ReactNative/FabricUIManager';\nimport type {\n LayoutAnimationConfig as LayoutAnimationConfig_,\n LayoutAnimationProperty,\n LayoutAnimationType,\n} from '../Renderer/shims/ReactNativeTypes';\n\nimport {getFabricUIManager} from '../ReactNative/FabricUIManager';\nimport ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';\nimport Platform from '../Utilities/Platform';\n\nconst UIManager = require('../ReactNative/UIManager');\n\n// Reexport type\nexport type LayoutAnimationConfig = LayoutAnimationConfig_;\n\ntype OnAnimationDidEndCallback = () => void;\ntype OnAnimationDidFailCallback = () => void;\n\nlet isLayoutAnimationEnabled: boolean =\n ReactNativeFeatureFlags.isLayoutAnimationEnabled();\n\nfunction setEnabled(value: boolean) {\n isLayoutAnimationEnabled = isLayoutAnimationEnabled;\n}\n\n/**\n * Configures the next commit to be animated.\n *\n * onAnimationDidEnd is guaranteed to be called when the animation completes.\n * onAnimationDidFail is *never* called in the classic, pre-Fabric renderer,\n * and never has been. In the new renderer (Fabric) it is called only if configuration\n * parsing fails.\n */\nfunction configureNext(\n config: LayoutAnimationConfig,\n onAnimationDidEnd?: OnAnimationDidEndCallback,\n onAnimationDidFail?: OnAnimationDidFailCallback,\n) {\n if (Platform.isTesting) {\n return;\n }\n\n if (!isLayoutAnimationEnabled) {\n return;\n }\n\n // Since LayoutAnimations may possibly be disabled for now on iOS (Fabric),\n // or Android (non-Fabric) we race a setTimeout with animation completion,\n // in case onComplete is never called\n // from native. Once LayoutAnimations+Fabric unconditionally ship everywhere, we can\n // delete this mechanism at least in the Fabric branch.\n let animationCompletionHasRun = false;\n const onAnimationComplete = () => {\n if (animationCompletionHasRun) {\n return;\n }\n animationCompletionHasRun = true;\n clearTimeout(raceWithAnimationId);\n onAnimationDidEnd?.();\n };\n const raceWithAnimationId = setTimeout(\n onAnimationComplete,\n (config.duration ?? 0) + 17 /* one frame + 1ms */,\n );\n\n // In Fabric, LayoutAnimations are unconditionally enabled for Android, and\n // conditionally enabled on iOS (pending fully shipping; this is a temporary state).\n const FabricUIManager = getFabricUIManager();\n if (FabricUIManager?.configureNextLayoutAnimation) {\n global?.nativeFabricUIManager?.configureNextLayoutAnimation(\n config,\n onAnimationComplete,\n onAnimationDidFail ??\n function () {} /* this will only be called if configuration parsing fails */,\n );\n return;\n }\n\n // This will only run if Fabric is *not* installed.\n // If you have Fabric + non-Fabric running in the same VM, non-Fabric LayoutAnimations\n // will not work.\n if (UIManager?.configureNextLayoutAnimation) {\n UIManager.configureNextLayoutAnimation(\n config,\n onAnimationComplete ?? function () {},\n onAnimationDidFail ??\n function () {} /* this should never be called in Non-Fabric */,\n );\n }\n}\n\nfunction create(\n duration: number,\n type: LayoutAnimationType,\n property: LayoutAnimationProperty,\n): LayoutAnimationConfig {\n return {\n duration,\n create: {type, property},\n update: {type},\n delete: {type, property},\n };\n}\n\nconst Presets = {\n easeInEaseOut: (create(\n 300,\n 'easeInEaseOut',\n 'opacity',\n ): LayoutAnimationConfig),\n linear: (create(500, 'linear', 'opacity'): LayoutAnimationConfig),\n spring: {\n duration: 700,\n create: {\n type: 'linear',\n property: 'opacity',\n },\n update: {\n type: 'spring',\n springDamping: 0.4,\n },\n delete: {\n type: 'linear',\n property: 'opacity',\n },\n },\n};\n\n/**\n * Automatically animates views to their new positions when the\n * next layout happens.\n *\n * A common way to use this API is to call it before calling `setState`.\n *\n * Note that in order to get this to work on **Android** you need to set the following flags via `UIManager`:\n *\n * UIManager.setLayoutAnimationEnabledExperimental && UIManager.setLayoutAnimationEnabledExperimental(true);\n */\nconst LayoutAnimation = {\n /**\n * Schedules an animation to happen on the next layout.\n *\n * @param config Specifies animation properties:\n *\n * - `duration` in milliseconds\n * - `create`, `AnimationConfig` for animating in new views\n * - `update`, `AnimationConfig` for animating views that have been updated\n *\n * @param onAnimationDidEnd Called when the animation finished.\n * Only supported on iOS.\n * @param onError Called on error. Only supported on iOS.\n */\n configureNext,\n /**\n * Helper for creating a config for `configureNext`.\n */\n create,\n Types: Object.freeze({\n spring: 'spring',\n linear: 'linear',\n easeInEaseOut: 'easeInEaseOut',\n easeIn: 'easeIn',\n easeOut: 'easeOut',\n keyboard: 'keyboard',\n }),\n Properties: Object.freeze({\n opacity: 'opacity',\n scaleX: 'scaleX',\n scaleY: 'scaleY',\n scaleXY: 'scaleXY',\n }),\n checkConfig(...args: Array) {\n console.error('LayoutAnimation.checkConfig(...) has been disabled.');\n },\n Presets,\n easeInEaseOut: (configureNext.bind(null, Presets.easeInEaseOut): (\n onAnimationDidEnd?: OnAnimationDidEndCallback,\n ) => void),\n linear: (configureNext.bind(null, Presets.linear): (\n onAnimationDidEnd?: OnAnimationDidEndCallback,\n ) => void),\n spring: (configureNext.bind(null, Presets.spring): (\n onAnimationDidEnd?: OnAnimationDidEndCallback,\n ) => void),\n setEnabled,\n};\n\nmodule.exports = LayoutAnimation;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.get('KeyboardObserver'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n removeClippedSubviews?: ?boolean,\n|}>;\n\ntype NativeType = HostComponent;\n\nexport default (codegenNativeComponent(\n 'AndroidHorizontalScrollContentView',\n): NativeType);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ScrollViewNativeProps as Props} from './ScrollViewNativeComponentType';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {\n uiViewClassName: 'AndroidHorizontalScrollView',\n bubblingEventTypes: {},\n directEventTypes: {},\n validAttributes: {\n decelerationRate: true,\n disableIntervalMomentum: true,\n endFillColor: {process: require('../../StyleSheet/processColor').default},\n fadingEdgeLength: true,\n nestedScrollEnabled: true,\n overScrollMode: true,\n pagingEnabled: true,\n persistentScrollbar: true,\n scrollEnabled: true,\n scrollPerfTag: true,\n sendMomentumEvents: true,\n showsHorizontalScrollIndicator: true,\n snapToAlignment: true,\n snapToEnd: true,\n snapToInterval: true,\n snapToStart: true,\n snapToOffsets: true,\n contentOffset: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderRadius: true,\n borderStyle: true,\n borderRightColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderColor: {process: require('../../StyleSheet/processColor').default},\n borderBottomColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderTopLeftRadius: true,\n borderTopColor: {process: require('../../StyleSheet/processColor').default},\n removeClippedSubviews: true,\n borderTopRightRadius: true,\n borderLeftColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n pointerEvents: true,\n },\n};\n\nconst AndroidHorizontalScrollViewNativeComponent: HostComponent =\n NativeComponentRegistry.get(\n 'AndroidHorizontalScrollView',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\nexport default AndroidHorizontalScrollViewNativeComponent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport Platform from '../../Utilities/Platform';\n\nfunction processDecelerationRate(\n decelerationRate: number | 'normal' | 'fast',\n): number {\n if (decelerationRate === 'normal') {\n return Platform.select({\n ios: 0.998,\n android: 0.985,\n });\n } else if (decelerationRate === 'fast') {\n return Platform.select({\n ios: 0.99,\n android: 0.9,\n });\n }\n return decelerationRate;\n}\n\nmodule.exports = processDecelerationRate;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ViewProps as Props} from '../View/ViewPropTypes';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {\n uiViewClassName: 'RCTScrollContentView',\n bubblingEventTypes: {},\n directEventTypes: {},\n validAttributes: {},\n};\n\nconst ScrollContentViewNativeComponent: HostComponent =\n NativeComponentRegistry.get(\n 'RCTScrollContentView',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\nexport default ScrollContentViewNativeComponent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {Double} from '../../Types/CodegenTypes';\n\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport * as React from 'react';\n\ntype ScrollViewNativeComponentType = HostComponent;\ninterface NativeCommands {\n +flashScrollIndicators: (\n viewRef: React.ElementRef,\n ) => void;\n +scrollTo: (\n viewRef: React.ElementRef,\n x: Double,\n y: Double,\n animated: boolean,\n ) => void;\n +scrollToEnd: (\n viewRef: React.ElementRef,\n animated: boolean,\n ) => void;\n +zoomToRect: (\n viewRef: React.ElementRef,\n rect: {|\n x: Double,\n y: Double,\n width: Double,\n height: Double,\n animated?: boolean,\n |},\n animated?: boolean,\n ) => void;\n}\n\nexport default (codegenNativeCommands({\n supportedCommands: [\n 'flashScrollIndicators',\n 'scrollTo',\n 'scrollToEnd',\n 'zoomToRect',\n ],\n}): NativeCommands);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport * as React from 'react';\n\ntype Value = {horizontal: boolean} | null;\n\nconst ScrollViewContext: React.Context = React.createContext(null);\nif (__DEV__) {\n ScrollViewContext.displayName = 'ScrollViewContext';\n}\nexport default ScrollViewContext;\n\nexport const HORIZONTAL: Value = Object.freeze({horizontal: true});\nexport const VERTICAL: Value = Object.freeze({horizontal: false});\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ScrollViewNativeProps as Props} from './ScrollViewNativeComponentType';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\nimport {ConditionallyIgnoredEventHandlers} from '../../NativeComponent/ViewConfigIgnore';\nimport Platform from '../../Utilities/Platform';\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig =\n Platform.OS === 'android'\n ? {\n uiViewClassName: 'RCTScrollView',\n bubblingEventTypes: {},\n directEventTypes: {\n topMomentumScrollBegin: {\n registrationName: 'onMomentumScrollBegin',\n },\n topMomentumScrollEnd: {\n registrationName: 'onMomentumScrollEnd',\n },\n topScroll: {\n registrationName: 'onScroll',\n },\n topScrollBeginDrag: {\n registrationName: 'onScrollBeginDrag',\n },\n topScrollEndDrag: {\n registrationName: 'onScrollEndDrag',\n },\n },\n validAttributes: {\n contentOffset: {\n diff: require('../../Utilities/differ/pointsDiffer'),\n },\n decelerationRate: true,\n disableIntervalMomentum: true,\n pagingEnabled: true,\n scrollEnabled: true,\n showsVerticalScrollIndicator: true,\n snapToAlignment: true,\n snapToEnd: true,\n snapToInterval: true,\n snapToOffsets: true,\n snapToStart: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n sendMomentumEvents: true,\n borderRadius: true,\n nestedScrollEnabled: true,\n borderStyle: true,\n borderRightColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n borderBottomColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n persistentScrollbar: true,\n endFillColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n fadingEdgeLength: true,\n overScrollMode: true,\n borderTopLeftRadius: true,\n scrollPerfTag: true,\n borderTopColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n removeClippedSubviews: true,\n borderTopRightRadius: true,\n borderLeftColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n pointerEvents: true,\n },\n }\n : {\n uiViewClassName: 'RCTScrollView',\n bubblingEventTypes: {},\n directEventTypes: {\n topMomentumScrollBegin: {\n registrationName: 'onMomentumScrollBegin',\n },\n topMomentumScrollEnd: {\n registrationName: 'onMomentumScrollEnd',\n },\n topScroll: {\n registrationName: 'onScroll',\n },\n topScrollBeginDrag: {\n registrationName: 'onScrollBeginDrag',\n },\n topScrollEndDrag: {\n registrationName: 'onScrollEndDrag',\n },\n topScrollToTop: {\n registrationName: 'onScrollToTop',\n },\n },\n validAttributes: {\n alwaysBounceHorizontal: true,\n alwaysBounceVertical: true,\n automaticallyAdjustContentInsets: true,\n automaticallyAdjustKeyboardInsets: true,\n automaticallyAdjustsScrollIndicatorInsets: true,\n bounces: true,\n bouncesZoom: true,\n canCancelContentTouches: true,\n centerContent: true,\n contentInset: {\n diff: require('../../Utilities/differ/insetsDiffer'),\n },\n contentOffset: {\n diff: require('../../Utilities/differ/pointsDiffer'),\n },\n contentInsetAdjustmentBehavior: true,\n decelerationRate: true,\n directionalLockEnabled: true,\n disableIntervalMomentum: true,\n indicatorStyle: true,\n inverted: true,\n keyboardDismissMode: true,\n maintainVisibleContentPosition: true,\n maximumZoomScale: true,\n minimumZoomScale: true,\n pagingEnabled: true,\n pinchGestureEnabled: true,\n scrollEnabled: true,\n scrollEventThrottle: true,\n scrollIndicatorInsets: {\n diff: require('../../Utilities/differ/insetsDiffer'),\n },\n scrollToOverflowEnabled: true,\n scrollsToTop: true,\n showsHorizontalScrollIndicator: true,\n showsVerticalScrollIndicator: true,\n snapToAlignment: true,\n snapToEnd: true,\n snapToInterval: true,\n snapToOffsets: true,\n snapToStart: true,\n zoomScale: true,\n ...ConditionallyIgnoredEventHandlers({\n onScrollBeginDrag: true,\n onMomentumScrollEnd: true,\n onScrollEndDrag: true,\n onMomentumScrollBegin: true,\n onScrollToTop: true,\n onScroll: true,\n }),\n },\n };\n\nconst ScrollViewNativeComponent: HostComponent =\n NativeComponentRegistry.get(\n 'RCTScrollView',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\nexport default ScrollViewNativeComponent;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {LayoutEvent} from '../../Types/CoreEventTypes';\n\nimport Animated from '../../Animated/Animated';\nimport {isPublicInstance as isFabricPublicInstance} from '../../Renderer/public/ReactFabricPublicInstanceUtils';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport useMergeRefs from '../../Utilities/useMergeRefs';\nimport * as React from 'react';\nimport {useCallback, useEffect, useMemo, useRef, useState} from 'react';\n\nexport type Props = $ReadOnly<{\n children?: React.Element<$FlowFixMe>,\n nextHeaderLayoutY: ?number,\n onLayout: (event: LayoutEvent) => void,\n scrollAnimatedValue: Animated.Value,\n // Will cause sticky headers to stick at the bottom of the ScrollView instead\n // of the top.\n inverted: ?boolean,\n // The height of the parent ScrollView. Currently only set when inverted.\n scrollViewHeight: ?number,\n nativeID?: ?string,\n hiddenOnScroll?: ?boolean,\n}>;\n\ntype Instance = {\n ...React.ElementRef,\n setNextHeaderY: number => void,\n ...\n};\n\nconst ScrollViewStickyHeaderWithForwardedRef: React.AbstractComponent<\n Props,\n Instance,\n> = React.forwardRef(function ScrollViewStickyHeader(props, forwardedRef) {\n const {\n inverted,\n scrollViewHeight,\n hiddenOnScroll,\n scrollAnimatedValue,\n nextHeaderLayoutY: _nextHeaderLayoutY,\n } = props;\n\n const [measured, setMeasured] = useState(false);\n const [layoutY, setLayoutY] = useState(0);\n const [layoutHeight, setLayoutHeight] = useState(0);\n const [translateY, setTranslateY] = useState(null);\n const [nextHeaderLayoutY, setNextHeaderLayoutY] =\n useState(_nextHeaderLayoutY);\n const [isFabric, setIsFabric] = useState(false);\n\n const callbackRef = (ref: Instance | null): void => {\n if (ref == null) {\n return;\n }\n ref.setNextHeaderY = value => {\n setNextHeaderLayoutY(value);\n };\n setIsFabric(isFabricPublicInstance(ref));\n };\n const ref: (React.ElementRef | null) => void =\n // $FlowFixMe[incompatible-type] - Ref is mutated by `callbackRef`.\n useMergeRefs(callbackRef, forwardedRef);\n\n const offset = useMemo(\n () =>\n hiddenOnScroll === true\n ? Animated.diffClamp(\n scrollAnimatedValue\n .interpolate({\n extrapolateLeft: 'clamp',\n inputRange: [layoutY, layoutY + 1],\n outputRange: ([0, 1]: Array),\n })\n .interpolate({\n inputRange: [0, 1],\n outputRange: ([0, -1]: Array),\n }),\n -layoutHeight,\n 0,\n )\n : null,\n [scrollAnimatedValue, layoutHeight, layoutY, hiddenOnScroll],\n );\n\n const [animatedTranslateY, setAnimatedTranslateY] = useState(\n () => {\n const inputRange: Array = [-1, 0];\n const outputRange: Array = [0, 0];\n const initialTranslateY = scrollAnimatedValue.interpolate({\n inputRange,\n outputRange,\n });\n\n if (offset != null) {\n return Animated.add(initialTranslateY, offset);\n }\n return initialTranslateY;\n },\n );\n\n const _haveReceivedInitialZeroTranslateY = useRef(true);\n const _timer = useRef(null);\n\n useEffect(() => {\n if (translateY !== 0 && translateY != null) {\n _haveReceivedInitialZeroTranslateY.current = false;\n }\n }, [translateY]);\n\n // This is called whenever the (Interpolated) Animated Value\n // updates, which is several times per frame during scrolling.\n // To ensure that the Fabric ShadowTree has the most recent\n // translate style of this node, we debounce the value and then\n // pass it through to the underlying node during render.\n // This is:\n // 1. Only an issue in Fabric.\n // 2. Worse in Android than iOS. In Android, but not iOS, you\n // can touch and move your finger slightly and still trigger\n // a \"tap\" event. In iOS, moving will cancel the tap in\n // both Fabric and non-Fabric. On Android when you move\n // your finger, the hit-detection moves from the Android\n // platform to JS, so we need the ShadowTree to have knowledge\n // of the current position.\n const animatedValueListener = useCallback(\n ({value}: $FlowFixMe) => {\n const _debounceTimeout: number = Platform.OS === 'android' ? 15 : 64;\n // When the AnimatedInterpolation is recreated, it always initializes\n // to a value of zero and emits a value change of 0 to its listeners.\n if (value === 0 && !_haveReceivedInitialZeroTranslateY.current) {\n _haveReceivedInitialZeroTranslateY.current = true;\n return;\n }\n if (_timer.current != null) {\n clearTimeout(_timer.current);\n }\n _timer.current = setTimeout(() => {\n if (value !== translateY) {\n setTranslateY(value);\n }\n }, _debounceTimeout);\n },\n [translateY],\n );\n\n useEffect(() => {\n const inputRange: Array = [-1, 0];\n const outputRange: Array = [0, 0];\n\n if (measured) {\n if (inverted === true) {\n // The interpolation looks like:\n // - Negative scroll: no translation\n // - `stickStartPoint` is the point at which the header will start sticking.\n // It is calculated using the ScrollView viewport height so it is a the bottom.\n // - Headers that are in the initial viewport will never stick, `stickStartPoint`\n // will be negative.\n // - From 0 to `stickStartPoint` no translation. This will cause the header\n // to scroll normally until it reaches the top of the scroll view.\n // - From `stickStartPoint` to when the next header y hits the bottom edge of the header: translate\n // equally to scroll. This will cause the header to stay at the top of the scroll view.\n // - Past the collision with the next header y: no more translation. This will cause the\n // header to continue scrolling up and make room for the next sticky header.\n // In the case that there is no next header just translate equally to\n // scroll indefinitely.\n if (scrollViewHeight != null) {\n const stickStartPoint = layoutY + layoutHeight - scrollViewHeight;\n if (stickStartPoint > 0) {\n inputRange.push(stickStartPoint);\n outputRange.push(0);\n inputRange.push(stickStartPoint + 1);\n outputRange.push(1);\n // If the next sticky header has not loaded yet (probably windowing) or is the last\n // we can just keep it sticked forever.\n const collisionPoint =\n (nextHeaderLayoutY || 0) - layoutHeight - scrollViewHeight;\n if (collisionPoint > stickStartPoint) {\n inputRange.push(collisionPoint, collisionPoint + 1);\n outputRange.push(\n collisionPoint - stickStartPoint,\n collisionPoint - stickStartPoint,\n );\n }\n }\n }\n } else {\n // The interpolation looks like:\n // - Negative scroll: no translation\n // - From 0 to the y of the header: no translation. This will cause the header\n // to scroll normally until it reaches the top of the scroll view.\n // - From header y to when the next header y hits the bottom edge of the header: translate\n // equally to scroll. This will cause the header to stay at the top of the scroll view.\n // - Past the collision with the next header y: no more translation. This will cause the\n // header to continue scrolling up and make room for the next sticky header.\n // In the case that there is no next header just translate equally to\n // scroll indefinitely.\n inputRange.push(layoutY);\n outputRange.push(0);\n // If the next sticky header has not loaded yet (probably windowing) or is the last\n // we can just keep it sticked forever.\n const collisionPoint = (nextHeaderLayoutY || 0) - layoutHeight;\n if (collisionPoint >= layoutY) {\n inputRange.push(collisionPoint, collisionPoint + 1);\n outputRange.push(collisionPoint - layoutY, collisionPoint - layoutY);\n } else {\n inputRange.push(layoutY + 1);\n outputRange.push(1);\n }\n }\n }\n\n let newAnimatedTranslateY: Animated.Node = scrollAnimatedValue.interpolate({\n inputRange,\n outputRange,\n });\n\n if (offset != null) {\n newAnimatedTranslateY = Animated.add(newAnimatedTranslateY, offset);\n }\n\n // add the event listener\n let animatedListenerId;\n if (isFabric) {\n animatedListenerId = newAnimatedTranslateY.addListener(\n animatedValueListener,\n );\n }\n\n setAnimatedTranslateY(newAnimatedTranslateY);\n\n // clean up the event listener and timer\n return () => {\n if (animatedListenerId) {\n newAnimatedTranslateY.removeListener(animatedListenerId);\n }\n if (_timer.current != null) {\n clearTimeout(_timer.current);\n }\n };\n }, [nextHeaderLayoutY, measured, layoutHeight, layoutY, scrollViewHeight, scrollAnimatedValue, inverted, offset, animatedValueListener, isFabric]);\n\n const _onLayout = (event: LayoutEvent) => {\n setLayoutY(event.nativeEvent.layout.y);\n setLayoutHeight(event.nativeEvent.layout.height);\n setMeasured(true);\n\n props.onLayout(event);\n const child = React.Children.only<$FlowFixMe>(props.children);\n if (child.props.onLayout) {\n child.props.onLayout(event);\n }\n };\n\n const child = React.Children.only<$FlowFixMe>(props.children);\n\n // TODO T68319535: remove this if NativeAnimated is rewritten for Fabric\n const passthroughAnimatedPropExplicitValues =\n isFabric && translateY != null\n ? {\n style: {transform: [{translateY: translateY}]},\n }\n : null;\n\n return (\n /* $FlowFixMe[prop-missing] passthroughAnimatedPropExplicitValues isn't properly\n included in the Animated.View flow type. */\n \n {React.cloneElement(child, {\n style: styles.fill, // We transfer the child style to the wrapper.\n onLayout: undefined, // we call this manually through our this._onLayout\n })}\n \n );\n});\n\nconst styles = StyleSheet.create({\n header: {\n zIndex: 10,\n position: 'relative',\n },\n fill: {\n flex: 1,\n },\n});\n\nexport default ScrollViewStickyHeaderWithForwardedRef;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {SectionBase} from '../../Lists/SectionList';\nimport type {AnimatedComponentType} from '../createAnimatedComponent';\n\nimport SectionList from '../../Lists/SectionList';\nimport createAnimatedComponent from '../createAnimatedComponent';\nimport * as React from 'react';\n\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nconst SectionListWithEventThrottle = React.forwardRef(\n (\n props: React.ElementConfig,\n ref:\n | ((null | SectionList>) => mixed)\n | {\n current: null | SectionList>,\n ...\n },\n ) => ,\n);\n\nexport default (createAnimatedComponent(\n SectionListWithEventThrottle,\n): AnimatedComponentType<\n React.ElementConfig,\n React.ElementRef,\n>);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {ScrollResponderType} from '../Components/ScrollView/ScrollView';\nimport type {\n ScrollToLocationParamsType,\n SectionBase as _SectionBase,\n VirtualizedSectionListProps,\n} from '@react-native/virtualized-lists';\n\nimport Platform from '../Utilities/Platform';\nimport {VirtualizedSectionList} from '@react-native/virtualized-lists';\nimport * as React from 'react';\n\ntype Item = any;\n\nexport type SectionBase = _SectionBase;\n\ntype RequiredProps> = {|\n /**\n * The actual data to render, akin to the `data` prop in [``](https://reactnative.dev/docs/flatlist).\n *\n * General shape:\n *\n * sections: $ReadOnlyArray<{\n * data: $ReadOnlyArray,\n * renderItem?: ({item: SectionItem, ...}) => ?React.Element<*>,\n * ItemSeparatorComponent?: ?ReactClass<{highlighted: boolean, ...}>,\n * }>\n */\n sections: $ReadOnlyArray,\n|};\n\ntype OptionalProps> = {|\n /**\n * Default renderer for every item in every section. Can be over-ridden on a per-section basis.\n */\n renderItem?: (info: {\n item: Item,\n index: number,\n section: SectionT,\n separators: {\n highlight: () => void,\n unhighlight: () => void,\n updateProps: (select: 'leading' | 'trailing', newProps: Object) => void,\n ...\n },\n ...\n }) => null | React.Element,\n /**\n * A marker property for telling the list to re-render (since it implements `PureComponent`). If\n * any of your `renderItem`, Header, Footer, etc. functions depend on anything outside of the\n * `data` prop, stick it here and treat it immutably.\n */\n extraData?: any,\n /**\n * How many items to render in the initial batch. This should be enough to fill the screen but not\n * much more. Note these items will never be unmounted as part of the windowed rendering in order\n * to improve perceived performance of scroll-to-top actions.\n */\n initialNumToRender?: ?number,\n /**\n * Reverses the direction of scroll. Uses scale transforms of -1.\n */\n inverted?: ?boolean,\n /**\n * Used to extract a unique key for a given item at the specified index. Key is used for caching\n * and as the react key to track item re-ordering. The default extractor checks item.key, then\n * falls back to using the index, like react does. Note that this sets keys for each item, but\n * each overall section still needs its own key.\n */\n keyExtractor?: ?(item: Item, index: number) => string,\n /**\n * Called once when the scroll position gets within `onEndReachedThreshold` of the rendered\n * content.\n */\n onEndReached?: ?(info: {distanceFromEnd: number, ...}) => void,\n /**\n * Note: may have bugs (missing content) in some circumstances - use at your own risk.\n *\n * This may improve scroll performance for large lists.\n */\n removeClippedSubviews?: boolean,\n|};\n\nexport type Props = {|\n ...$Diff<\n VirtualizedSectionListProps,\n {\n getItem: $PropertyType, 'getItem'>,\n getItemCount: $PropertyType<\n VirtualizedSectionListProps,\n 'getItemCount',\n >,\n renderItem: $PropertyType<\n VirtualizedSectionListProps,\n 'renderItem',\n >,\n keyExtractor: $PropertyType<\n VirtualizedSectionListProps,\n 'keyExtractor',\n >,\n ...\n },\n >,\n ...RequiredProps,\n ...OptionalProps,\n|};\n\n/**\n * A performant interface for rendering sectioned lists, supporting the most handy features:\n *\n * - Fully cross-platform.\n * - Configurable viewability callbacks.\n * - List header support.\n * - List footer support.\n * - Item separator support.\n * - Section header support.\n * - Section separator support.\n * - Heterogeneous data and item rendering support.\n * - Pull to Refresh.\n * - Scroll loading.\n *\n * If you don't need section support and want a simpler interface, use\n * [``](https://reactnative.dev/docs/flatlist).\n *\n * Simple Examples:\n *\n * }\n * renderSectionHeader={({section}) =>
}\n * sections={[ // homogeneous rendering between sections\n * {data: [...], title: ...},\n * {data: [...], title: ...},\n * {data: [...], title: ...},\n * ]}\n * />\n *\n * \n *\n * This is a convenience wrapper around [``](docs/virtualizedlist),\n * and thus inherits its props (as well as those of `ScrollView`) that aren't explicitly listed\n * here, along with the following caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate and momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n */\nexport default class SectionList<\n SectionT: SectionBase,\n> extends React.PureComponent, void> {\n props: Props;\n\n /**\n * Scrolls to the item at the specified `sectionIndex` and `itemIndex` (within the section)\n * positioned in the viewable area such that `viewPosition` 0 places it at the top (and may be\n * covered by a sticky header), 1 at the bottom, and 0.5 centered in the middle. `viewOffset` is a\n * fixed number of pixels to offset the final target position, e.g. to compensate for sticky\n * headers.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n scrollToLocation(params: ScrollToLocationParamsType) {\n if (this._wrapperListRef != null) {\n this._wrapperListRef.scrollToLocation(params);\n }\n }\n\n /**\n * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n * taps on items or by navigation actions.\n */\n recordInteraction() {\n const listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n listRef && listRef.recordInteraction();\n }\n\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n flashScrollIndicators() {\n const listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n listRef && listRef.flashScrollIndicators();\n }\n\n /**\n * Provides a handle to the underlying scroll responder.\n */\n getScrollResponder(): ?ScrollResponderType {\n const listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n if (listRef) {\n return listRef.getScrollResponder();\n }\n }\n\n getScrollableNode(): any {\n const listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n if (listRef) {\n return listRef.getScrollableNode();\n }\n }\n\n setNativeProps(props: Object) {\n const listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n if (listRef) {\n listRef.setNativeProps(props);\n }\n }\n\n render(): React.Node {\n const {\n stickySectionHeadersEnabled: _stickySectionHeadersEnabled,\n ...restProps\n } = this.props;\n const stickySectionHeadersEnabled =\n _stickySectionHeadersEnabled ?? Platform.OS === 'ios';\n return (\n items.length}\n // $FlowFixMe[missing-local-annot]\n getItem={(items, index) => items[index]}\n />\n );\n }\n\n _wrapperListRef: ?React.ElementRef;\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n _captureRef = ref => {\n this._wrapperListRef = ref;\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {AnimatedComponentType} from '../createAnimatedComponent';\n\nimport Text from '../../Text/Text';\nimport createAnimatedComponent from '../createAnimatedComponent';\nimport * as React from 'react';\n\nexport default (createAnimatedComponent(\n (Text: $FlowFixMe),\n): AnimatedComponentType<\n React.ElementConfig,\n React.ElementRef,\n>);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {AnimatedComponentType} from '../createAnimatedComponent';\n\nimport View from '../../Components/View/View';\nimport createAnimatedComponent from '../createAnimatedComponent';\nimport * as React from 'react';\n\nexport default (createAnimatedComponent(View): AnimatedComponentType<\n React.ElementConfig,\n React.ElementRef,\n>);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {AccessibilityRole} from '../../Components/View/ViewAccessibility';\nimport type {\n MeasureInWindowOnSuccessCallback,\n MeasureLayoutOnSuccessCallback,\n MeasureOnSuccessCallback,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue, ViewStyleProp} from '../../StyleSheet/StyleSheet';\nimport type {DirectEventHandler} from '../../Types/CodegenTypes';\n\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport dismissKeyboard from '../../Utilities/dismissKeyboard';\nimport Platform from '../../Utilities/Platform';\nimport StatusBar from '../StatusBar/StatusBar';\nimport View from '../View/View';\nimport AndroidDrawerLayoutNativeComponent, {\n Commands,\n} from './AndroidDrawerLayoutNativeComponent';\nimport nullthrows from 'nullthrows';\nimport * as React from 'react';\n\nconst DRAWER_STATES = ['Idle', 'Dragging', 'Settling'];\n\ntype DrawerStates = 'Idle' | 'Dragging' | 'Settling';\n\ntype DrawerSlideEvent = $ReadOnly<{|\n offset: number,\n|}>;\n\ntype Props = $ReadOnly<{|\n accessibilityRole?: ?AccessibilityRole,\n\n /**\n * Determines whether the keyboard gets dismissed in response to a drag.\n * - 'none' (the default), drags do not dismiss the keyboard.\n * - 'on-drag', the keyboard is dismissed when a drag begins.\n */\n keyboardDismissMode?: ?('none' | 'on-drag'),\n\n /**\n * Specifies the background color of the drawer. The default value is white.\n * If you want to set the opacity of the drawer, use rgba. Example:\n *\n * ```\n * return (\n * \n * \n * );\n * ```\n */\n drawerBackgroundColor?: ?ColorValue,\n\n /**\n * Specifies the side of the screen from which the drawer will slide in.\n */\n drawerPosition: ?('left' | 'right'),\n\n /**\n * Specifies the width of the drawer, more precisely the width of the view that be pulled in\n * from the edge of the window.\n */\n drawerWidth?: ?number,\n\n /**\n * Specifies the lock mode of the drawer. The drawer can be locked in 3 states:\n * - unlocked (default), meaning that the drawer will respond (open/close) to touch gestures.\n * - locked-closed, meaning that the drawer will stay closed and not respond to gestures.\n * - locked-open, meaning that the drawer will stay opened and not respond to gestures.\n * The drawer may still be opened and closed programmatically (`openDrawer`/`closeDrawer`).\n */\n drawerLockMode?: ?('unlocked' | 'locked-closed' | 'locked-open'),\n\n /**\n * Function called whenever there is an interaction with the navigation view.\n */\n onDrawerSlide?: ?DirectEventHandler,\n\n /**\n * Function called when the drawer state has changed. The drawer can be in 3 states:\n * - Idle, meaning there is no interaction with the navigation view happening at the time\n * - Dragging, meaning there is currently an interaction with the navigation view\n * - Settling, meaning that there was an interaction with the navigation view, and the\n * navigation view is now finishing its closing or opening animation\n */\n onDrawerStateChanged?: ?(state: DrawerStates) => mixed,\n\n /**\n * Function called whenever the navigation view has been opened.\n */\n onDrawerOpen?: ?() => mixed,\n\n /**\n * Function called whenever the navigation view has been closed.\n */\n onDrawerClose?: ?() => mixed,\n\n /**\n * The navigation view that will be rendered to the side of the screen and can be pulled in.\n */\n renderNavigationView: () => React.Element,\n\n /**\n * Make the drawer take the entire screen and draw the background of the\n * status bar to allow it to open over the status bar. It will only have an\n * effect on API 21+.\n */\n statusBarBackgroundColor?: ?ColorValue,\n\n children?: React.Node,\n style?: ?ViewStyleProp,\n|}>;\n\ntype State = {|\n statusBarBackgroundColor: ColorValue,\n|};\n\n/**\n * React component that wraps the platform `DrawerLayout` (Android only). The\n * Drawer (typically used for navigation) is rendered with `renderNavigationView`\n * and direct children are the main view (where your content goes). The navigation\n * view is initially not visible on the screen, but can be pulled in from the\n * side of the window specified by the `drawerPosition` prop and its width can\n * be set by the `drawerWidth` prop.\n *\n * Example:\n *\n * ```\n * render: function() {\n * var navigationView = (\n * \n * I'm in the Drawer!\n * \n * );\n * return (\n * navigationView}>\n * \n * Hello\n * World!\n * \n * \n * );\n * },\n * ```\n */\nclass DrawerLayoutAndroid extends React.Component {\n static get positions(): mixed {\n console.warn(\n 'Setting DrawerLayoutAndroid drawerPosition using `DrawerLayoutAndroid.positions` is deprecated. Instead pass the string value \"left\" or \"right\"',\n );\n\n return {Left: 'left', Right: 'right'};\n }\n\n // $FlowFixMe[missing-local-annot]\n _nativeRef =\n React.createRef<\n React.ElementRef,\n >();\n\n state: State = {statusBarBackgroundColor: null};\n\n render(): React.Node {\n const {\n drawerBackgroundColor = 'white',\n onDrawerStateChanged,\n renderNavigationView,\n onDrawerOpen,\n onDrawerClose,\n ...props\n } = this.props;\n const drawStatusBar =\n Platform.Version >= 21 && this.props.statusBarBackgroundColor != null;\n const drawerViewWrapper = (\n \n {renderNavigationView()}\n {drawStatusBar && }\n \n );\n const childrenWrapper = (\n \n {drawStatusBar && (\n \n )}\n {drawStatusBar && (\n \n )}\n {this.props.children}\n \n );\n return (\n \n {childrenWrapper}\n {drawerViewWrapper}\n \n );\n }\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n _onDrawerSlide = event => {\n if (this.props.onDrawerSlide) {\n // $FlowFixMe[unused-promise]\n this.props.onDrawerSlide(event);\n }\n if (this.props.keyboardDismissMode === 'on-drag') {\n dismissKeyboard();\n }\n };\n\n _onDrawerOpen = () => {\n if (this.props.onDrawerOpen) {\n this.props.onDrawerOpen();\n }\n };\n\n _onDrawerClose = () => {\n if (this.props.onDrawerClose) {\n this.props.onDrawerClose();\n }\n };\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n _onDrawerStateChanged = event => {\n if (this.props.onDrawerStateChanged) {\n this.props.onDrawerStateChanged(\n DRAWER_STATES[event.nativeEvent.drawerState],\n );\n }\n };\n\n /**\n * Opens the drawer.\n */\n openDrawer() {\n Commands.openDrawer(nullthrows(this._nativeRef.current));\n }\n\n /**\n * Closes the drawer.\n */\n closeDrawer() {\n Commands.closeDrawer(nullthrows(this._nativeRef.current));\n }\n\n /**\n * Closing and opening example\n * Note: To access the drawer you have to give it a ref\n *\n * Class component:\n *\n * render () {\n * this.openDrawer = () => {\n * this.refs.DRAWER.openDrawer()\n * }\n * this.closeDrawer = () => {\n * this.refs.DRAWER.closeDrawer()\n * }\n * return (\n * \n * {children}\n * \n * )\n * }\n *\n * Function component:\n *\n * const drawerRef = useRef()\n * const openDrawer = () => {\n * drawerRef.current.openDrawer()\n * }\n * const closeDrawer = () => {\n * drawerRef.current.closeDrawer()\n * }\n * return (\n * \n * {children}\n * \n * )\n */\n\n /**\n * Native methods\n */\n blur() {\n nullthrows(this._nativeRef.current).blur();\n }\n\n focus() {\n nullthrows(this._nativeRef.current).focus();\n }\n\n measure(callback: MeasureOnSuccessCallback) {\n nullthrows(this._nativeRef.current).measure(callback);\n }\n\n measureInWindow(callback: MeasureInWindowOnSuccessCallback) {\n nullthrows(this._nativeRef.current).measureInWindow(callback);\n }\n\n measureLayout(\n relativeToNativeNode: number,\n onSuccess: MeasureLayoutOnSuccessCallback,\n onFail?: () => void,\n ) {\n nullthrows(this._nativeRef.current).measureLayout(\n relativeToNativeNode,\n onSuccess,\n onFail,\n );\n }\n\n setNativeProps(nativeProps: Object) {\n nullthrows(this._nativeRef.current).setNativeProps(nativeProps);\n }\n}\n\nconst styles = StyleSheet.create({\n base: {\n flex: 1,\n elevation: 16,\n },\n mainSubview: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n drawerSubview: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n },\n statusBar: {\n height: StatusBar.currentHeight,\n },\n drawerStatusBar: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n height: StatusBar.currentHeight,\n backgroundColor: 'rgba(0, 0, 0, 0.251)',\n },\n});\n\nmodule.exports = DrawerLayoutAndroid;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\n\nimport processColor from '../../StyleSheet/processColor';\nimport Platform from '../../Utilities/Platform';\nimport NativeStatusBarManagerAndroid from './NativeStatusBarManagerAndroid';\nimport NativeStatusBarManagerIOS from './NativeStatusBarManagerIOS';\nimport invariant from 'invariant';\nimport * as React from 'react';\n\n/**\n * Status bar style\n */\nexport type StatusBarStyle = $Keys<{\n /**\n * Default status bar style (dark for iOS, light for Android)\n */\n default: string,\n /**\n * Dark background, white texts and icons\n */\n 'light-content': string,\n /**\n * Light background, dark texts and icons\n */\n 'dark-content': string,\n ...\n}>;\n\n/**\n * Status bar animation\n */\nexport type StatusBarAnimation = $Keys<{\n /**\n * No animation\n */\n none: string,\n /**\n * Fade animation\n */\n fade: string,\n /**\n * Slide animation\n */\n slide: string,\n ...\n}>;\n\ntype AndroidProps = $ReadOnly<{|\n /**\n * The background color of the status bar.\n * @platform android\n */\n backgroundColor?: ?ColorValue,\n /**\n * If the status bar is translucent.\n * When translucent is set to true, the app will draw under the status bar.\n * This is useful when using a semi transparent status bar color.\n *\n * @platform android\n */\n translucent?: ?boolean,\n|}>;\n\ntype IOSProps = $ReadOnly<{|\n /**\n * If the network activity indicator should be visible.\n *\n * @platform ios\n */\n networkActivityIndicatorVisible?: ?boolean,\n /**\n * The transition effect when showing and hiding the status bar using the `hidden`\n * prop. Defaults to 'fade'.\n *\n * @platform ios\n */\n showHideTransition?: ?('fade' | 'slide' | 'none'),\n|}>;\n\ntype Props = $ReadOnly<{|\n ...AndroidProps,\n ...IOSProps,\n /**\n * If the status bar is hidden.\n */\n hidden?: ?boolean,\n /**\n * If the transition between status bar property changes should be animated.\n * Supported for backgroundColor, barStyle and hidden.\n */\n animated?: ?boolean,\n /**\n * Sets the color of the status bar text.\n */\n barStyle?: ?('default' | 'light-content' | 'dark-content'),\n|}>;\n\n/**\n * Merges the prop stack with the default values.\n */\nfunction mergePropsStack(\n propsStack: Array,\n defaultValues: Object,\n): Object {\n return propsStack.reduce(\n (prev, cur) => {\n for (const prop in cur) {\n if (cur[prop] != null) {\n prev[prop] = cur[prop];\n }\n }\n return prev;\n },\n {...defaultValues},\n );\n}\n\n/**\n * Returns an object to insert in the props stack from the props\n * and the transition/animation info.\n */\nfunction createStackEntry(props: any): any {\n const animated = props.animated ?? false;\n const showHideTransition = props.showHideTransition ?? 'fade';\n return {\n backgroundColor:\n props.backgroundColor != null\n ? {\n value: props.backgroundColor,\n animated,\n }\n : null,\n barStyle:\n props.barStyle != null\n ? {\n value: props.barStyle,\n animated,\n }\n : null,\n translucent: props.translucent,\n hidden:\n props.hidden != null\n ? {\n value: props.hidden,\n animated,\n transition: showHideTransition,\n }\n : null,\n networkActivityIndicatorVisible: props.networkActivityIndicatorVisible,\n };\n}\n\n/**\n * Component to control the app status bar.\n *\n * ### Usage with Navigator\n *\n * It is possible to have multiple `StatusBar` components mounted at the same\n * time. The props will be merged in the order the `StatusBar` components were\n * mounted. One use case is to specify status bar styles per route using `Navigator`.\n *\n * ```\n * \n * \n * \n * \n * \n * }\n * />\n * \n * ```\n *\n * ### Imperative API\n *\n * For cases where using a component is not ideal, there are static methods\n * to manipulate the `StatusBar` display stack. These methods have the same\n * behavior as mounting and unmounting a `StatusBar` component.\n *\n * For example, you can call `StatusBar.pushStackEntry` to update the status bar\n * before launching a third-party native UI component, and then call\n * `StatusBar.popStackEntry` when completed.\n *\n * ```\n * const openThirdPartyBugReporter = async () => {\n * // The bug reporter has a dark background, so we push a new status bar style.\n * const stackEntry = StatusBar.pushStackEntry({barStyle: 'light-content'});\n *\n * // `open` returns a promise that resolves when the UI is dismissed.\n * await BugReporter.open();\n *\n * // Don't forget to call `popStackEntry` when you're done.\n * StatusBar.popStackEntry(stackEntry);\n * };\n * ```\n *\n * There is a legacy imperative API that enables you to manually update the\n * status bar styles. However, the legacy API does not update the internal\n * `StatusBar` display stack, which means that any changes will be overridden\n * whenever a `StatusBar` component is mounted or unmounted.\n *\n * It is strongly advised that you use `pushStackEntry`, `popStackEntry`, or\n * `replaceStackEntry` instead of the static methods beginning with `set`.\n *\n * ### Constants\n *\n * `currentHeight` (Android only) The height of the status bar.\n */\nclass StatusBar extends React.Component {\n static _propsStack: Array = [];\n\n static _defaultProps: any = createStackEntry({\n backgroundColor:\n Platform.OS === 'android'\n ? NativeStatusBarManagerAndroid.getConstants()\n .DEFAULT_BACKGROUND_COLOR ?? 'black'\n : 'black',\n barStyle: 'default',\n translucent: false,\n hidden: false,\n networkActivityIndicatorVisible: false,\n });\n\n // Timer for updating the native module values at the end of the frame.\n // $FlowFixMe[missing-local-annot]\n static _updateImmediate = null;\n\n // The current merged values from the props stack.\n // $FlowFixMe[missing-local-annot]\n static _currentValues = null;\n\n // TODO(janic): Provide a real API to deal with status bar height. See the\n // discussion in #6195.\n /**\n * The current height of the status bar on the device.\n *\n * @platform android\n */\n static currentHeight: ?number =\n Platform.OS === 'android'\n ? NativeStatusBarManagerAndroid.getConstants().HEIGHT\n : null;\n\n // Provide an imperative API as static functions of the component.\n // See the corresponding prop for more detail.\n\n /**\n * Show or hide the status bar\n * @param hidden Hide the status bar.\n * @param animation Optional animation when\n * changing the status bar hidden property.\n */\n static setHidden(hidden: boolean, animation?: StatusBarAnimation) {\n animation = animation || 'none';\n StatusBar._defaultProps.hidden.value = hidden;\n if (Platform.OS === 'ios') {\n NativeStatusBarManagerIOS.setHidden(hidden, animation);\n } else if (Platform.OS === 'android') {\n NativeStatusBarManagerAndroid.setHidden(hidden);\n }\n }\n\n /**\n * Set the status bar style\n * @param style Status bar style to set\n * @param animated Animate the style change.\n */\n static setBarStyle(style: StatusBarStyle, animated?: boolean) {\n animated = animated || false;\n StatusBar._defaultProps.barStyle.value = style;\n if (Platform.OS === 'ios') {\n NativeStatusBarManagerIOS.setStyle(style, animated);\n } else if (Platform.OS === 'android') {\n NativeStatusBarManagerAndroid.setStyle(style);\n }\n }\n\n /**\n * Control the visibility of the network activity indicator\n * @param visible Show the indicator.\n */\n static setNetworkActivityIndicatorVisible(visible: boolean) {\n if (Platform.OS !== 'ios') {\n console.warn(\n '`setNetworkActivityIndicatorVisible` is only available on iOS',\n );\n return;\n }\n StatusBar._defaultProps.networkActivityIndicatorVisible = visible;\n NativeStatusBarManagerIOS.setNetworkActivityIndicatorVisible(visible);\n }\n\n /**\n * Set the background color for the status bar\n * @param color Background color.\n * @param animated Animate the style change.\n */\n static setBackgroundColor(color: string, animated?: boolean): void {\n if (Platform.OS !== 'android') {\n console.warn('`setBackgroundColor` is only available on Android');\n return;\n }\n animated = animated || false;\n StatusBar._defaultProps.backgroundColor.value = color;\n\n const processedColor = processColor(color);\n if (processedColor == null) {\n console.warn(\n `\\`StatusBar.setBackgroundColor\\`: Color ${color} parsed to null or undefined`,\n );\n return;\n }\n invariant(\n typeof processedColor === 'number',\n 'Unexpected color given for StatusBar.setBackgroundColor',\n );\n\n NativeStatusBarManagerAndroid.setColor(processedColor, animated);\n }\n\n /**\n * Control the translucency of the status bar\n * @param translucent Set as translucent.\n */\n static setTranslucent(translucent: boolean) {\n if (Platform.OS !== 'android') {\n console.warn('`setTranslucent` is only available on Android');\n return;\n }\n StatusBar._defaultProps.translucent = translucent;\n NativeStatusBarManagerAndroid.setTranslucent(translucent);\n }\n\n /**\n * Push a StatusBar entry onto the stack.\n * The return value should be passed to `popStackEntry` when complete.\n *\n * @param props Object containing the StatusBar props to use in the stack entry.\n */\n static pushStackEntry(props: any): any {\n const entry = createStackEntry(props);\n StatusBar._propsStack.push(entry);\n StatusBar._updatePropsStack();\n return entry;\n }\n\n /**\n * Pop a StatusBar entry from the stack.\n *\n * @param entry Entry returned from `pushStackEntry`.\n */\n static popStackEntry(entry: any) {\n const index = StatusBar._propsStack.indexOf(entry);\n if (index !== -1) {\n StatusBar._propsStack.splice(index, 1);\n }\n StatusBar._updatePropsStack();\n }\n\n /**\n * Replace an existing StatusBar stack entry with new props.\n *\n * @param entry Entry returned from `pushStackEntry` to replace.\n * @param props Object containing the StatusBar props to use in the replacement stack entry.\n */\n static replaceStackEntry(entry: any, props: any): any {\n const newEntry = createStackEntry(props);\n const index = StatusBar._propsStack.indexOf(entry);\n if (index !== -1) {\n StatusBar._propsStack[index] = newEntry;\n }\n StatusBar._updatePropsStack();\n return newEntry;\n }\n\n // $FlowFixMe[missing-local-annot]\n _stackEntry = null;\n\n componentDidMount() {\n // Every time a StatusBar component is mounted, we push it's prop to a stack\n // and always update the native status bar with the props from the top of then\n // stack. This allows having multiple StatusBar components and the one that is\n // added last or is deeper in the view hierarchy will have priority.\n this._stackEntry = StatusBar.pushStackEntry(this.props);\n }\n\n componentWillUnmount() {\n // When a StatusBar is unmounted, remove itself from the stack and update\n // the native bar with the next props.\n StatusBar.popStackEntry(this._stackEntry);\n }\n\n componentDidUpdate() {\n this._stackEntry = StatusBar.replaceStackEntry(\n this._stackEntry,\n this.props,\n );\n }\n\n /**\n * Updates the native status bar with the props from the stack.\n */\n static _updatePropsStack = () => {\n // Send the update to the native module only once at the end of the frame.\n clearImmediate(StatusBar._updateImmediate);\n StatusBar._updateImmediate = setImmediate(() => {\n const oldProps = StatusBar._currentValues;\n const mergedProps = mergePropsStack(\n StatusBar._propsStack,\n StatusBar._defaultProps,\n );\n\n // Update the props that have changed using the merged values from the props stack.\n if (Platform.OS === 'ios') {\n if (\n !oldProps ||\n oldProps.barStyle.value !== mergedProps.barStyle.value\n ) {\n NativeStatusBarManagerIOS.setStyle(\n mergedProps.barStyle.value,\n mergedProps.barStyle.animated || false,\n );\n }\n if (!oldProps || oldProps.hidden.value !== mergedProps.hidden.value) {\n NativeStatusBarManagerIOS.setHidden(\n mergedProps.hidden.value,\n mergedProps.hidden.animated\n ? mergedProps.hidden.transition\n : 'none',\n );\n }\n\n if (\n !oldProps ||\n oldProps.networkActivityIndicatorVisible !==\n mergedProps.networkActivityIndicatorVisible\n ) {\n NativeStatusBarManagerIOS.setNetworkActivityIndicatorVisible(\n mergedProps.networkActivityIndicatorVisible,\n );\n }\n } else if (Platform.OS === 'android') {\n //todo(T60684787): Add back optimization to only update bar style and\n //background color if the new value is different from the old value.\n NativeStatusBarManagerAndroid.setStyle(mergedProps.barStyle.value);\n const processedColor = processColor(mergedProps.backgroundColor.value);\n if (processedColor == null) {\n console.warn(\n `\\`StatusBar._updatePropsStack\\`: Color ${mergedProps.backgroundColor.value} parsed to null or undefined`,\n );\n } else {\n invariant(\n typeof processedColor === 'number',\n 'Unexpected color given in StatusBar._updatePropsStack',\n );\n NativeStatusBarManagerAndroid.setColor(\n processedColor,\n mergedProps.backgroundColor.animated,\n );\n }\n if (!oldProps || oldProps.hidden.value !== mergedProps.hidden.value) {\n NativeStatusBarManagerAndroid.setHidden(mergedProps.hidden.value);\n }\n // Activities are not translucent by default, so always set if true.\n if (\n !oldProps ||\n oldProps.translucent !== mergedProps.translucent ||\n mergedProps.translucent\n ) {\n NativeStatusBarManagerAndroid.setTranslucent(mergedProps.translucent);\n }\n }\n // Update the current prop values.\n StatusBar._currentValues = mergedProps;\n });\n };\n\n render(): React.Node {\n return null;\n }\n}\n\nmodule.exports = StatusBar;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n +HEIGHT: number,\n +DEFAULT_BACKGROUND_COLOR: number,\n |};\n +setColor: (color: number, animated: boolean) => void;\n +setTranslucent: (translucent: boolean) => void;\n\n /**\n * - statusBarStyles can be:\n * - 'default'\n * - 'dark-content'\n */\n +setStyle: (statusBarStyle?: ?string) => void;\n +setHidden: (hidden: boolean) => void;\n}\n\nconst NativeModule = TurboModuleRegistry.getEnforcing('StatusBarManager');\nlet constants = null;\n\nconst NativeStatusBarManager = {\n getConstants(): {|\n +HEIGHT: number,\n +DEFAULT_BACKGROUND_COLOR?: number,\n |} {\n if (constants == null) {\n constants = NativeModule.getConstants();\n }\n return constants;\n },\n\n setColor(color: number, animated: boolean): void {\n NativeModule.setColor(color, animated);\n },\n\n setTranslucent(translucent: boolean): void {\n NativeModule.setTranslucent(translucent);\n },\n\n /**\n * - statusBarStyles can be:\n * - 'default'\n * - 'dark-content'\n */\n setStyle(statusBarStyle?: ?string): void {\n NativeModule.setStyle(statusBarStyle);\n },\n\n setHidden(hidden: boolean): void {\n NativeModule.setHidden(hidden);\n },\n};\n\nexport default NativeStatusBarManager;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n +HEIGHT: number,\n +DEFAULT_BACKGROUND_COLOR?: number,\n |};\n\n // TODO(T47754272) Can we remove this method?\n +getHeight: (callback: (result: {|height: number|}) => void) => void;\n +setNetworkActivityIndicatorVisible: (visible: boolean) => void;\n +addListener: (eventType: string) => void;\n +removeListeners: (count: number) => void;\n\n /**\n * - statusBarStyles can be:\n * - 'default'\n * - 'dark-content'\n * - 'light-content'\n */\n +setStyle: (statusBarStyle?: ?string, animated: boolean) => void;\n /**\n * - withAnimation can be: 'none' | 'fade' | 'slide'\n */\n +setHidden: (hidden: boolean, withAnimation: string) => void;\n}\n\nconst NativeModule = TurboModuleRegistry.getEnforcing('StatusBarManager');\nlet constants = null;\n\nconst NativeStatusBarManager = {\n getConstants(): {|\n +HEIGHT: number,\n +DEFAULT_BACKGROUND_COLOR?: number,\n |} {\n if (constants == null) {\n constants = NativeModule.getConstants();\n }\n return constants;\n },\n\n // TODO(T47754272) Can we remove this method?\n getHeight(callback: (result: {|height: number|}) => void): void {\n NativeModule.getHeight(callback);\n },\n\n setNetworkActivityIndicatorVisible(visible: boolean): void {\n NativeModule.setNetworkActivityIndicatorVisible(visible);\n },\n\n addListener(eventType: string): void {\n NativeModule.addListener(eventType);\n },\n\n removeListeners(count: number): void {\n NativeModule.removeListeners(count);\n },\n\n /**\n * - statusBarStyles can be:\n * - 'default'\n * - 'dark-content'\n * - 'light-content'\n */\n setStyle(statusBarStyle?: ?string, animated: boolean): void {\n NativeModule.setStyle(statusBarStyle, animated);\n },\n\n /**\n * - withAnimation can be: 'none' | 'fade' | 'slide'\n */\n setHidden(hidden: boolean, withAnimation: string): void {\n NativeModule.setHidden(hidden, withAnimation);\n },\n};\n\nexport default NativeStatusBarManager;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n DirectEventHandler,\n Float,\n Int32,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\nimport * as React from 'react';\n\ntype DrawerStateEvent = $ReadOnly<{|\n drawerState: Int32,\n|}>;\n\ntype DrawerSlideEvent = $ReadOnly<{|\n offset: Float,\n|}>;\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n /**\n * Determines whether the keyboard gets dismissed in response to a drag.\n * - 'none' (the default), drags do not dismiss the keyboard.\n * - 'on-drag', the keyboard is dismissed when a drag begins.\n */\n keyboardDismissMode?: WithDefault<'none' | 'on-drag', 'none'>,\n\n /**\n * Specifies the background color of the drawer. The default value is white.\n * If you want to set the opacity of the drawer, use rgba. Example:\n *\n * ```\n * return (\n * \n * \n * );\n * ```\n */\n drawerBackgroundColor: ColorValue,\n\n /**\n * Specifies the side of the screen from which the drawer will slide in.\n */\n drawerPosition?: WithDefault<'left' | 'right', 'left'>,\n\n /**\n * Specifies the width of the drawer, more precisely the width of the view that be pulled in\n * from the edge of the window.\n */\n\n drawerWidth?: WithDefault,\n\n /**\n * Specifies the lock mode of the drawer. The drawer can be locked in 3 states:\n * - unlocked (default), meaning that the drawer will respond (open/close) to touch gestures.\n * - locked-closed, meaning that the drawer will stay closed and not respond to gestures.\n * - locked-open, meaning that the drawer will stay opened and not respond to gestures.\n * The drawer may still be opened and closed programmatically (`openDrawer`/`closeDrawer`).\n */\n drawerLockMode?: WithDefault<\n 'unlocked' | 'locked-closed' | 'locked-open',\n 'unlocked',\n >,\n\n /**\n * Function called whenever there is an interaction with the navigation view.\n */\n onDrawerSlide?: ?DirectEventHandler,\n\n /**\n * Function called when the drawer state has changed. The drawer can be in 3 states:\n * - Idle, meaning there is no interaction with the navigation view happening at the time\n * - Dragging, meaning there is currently an interaction with the navigation view\n * - Settling, meaning that there was an interaction with the navigation view, and the\n * navigation view is now finishing its closing or opening animation\n */\n onDrawerStateChanged?: ?DirectEventHandler,\n\n /**\n * Function called whenever the navigation view has been opened.\n */\n onDrawerOpen?: ?DirectEventHandler,\n\n /**\n * Function called whenever the navigation view has been closed.\n */\n onDrawerClose?: ?DirectEventHandler,\n\n /**\n * Make the drawer take the entire screen and draw the background of the\n * status bar to allow it to open over the status bar. It will only have an\n * effect on API 21+.\n */\n statusBarBackgroundColor?: ?ColorValue,\n|}>;\n\ntype NativeType = HostComponent;\n\ninterface NativeCommands {\n +openDrawer: (viewRef: React.ElementRef) => void;\n +closeDrawer: (viewRef: React.ElementRef) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['openDrawer', 'closeDrawer'],\n});\n\nexport default (codegenNativeComponent(\n 'AndroidDrawerLayout',\n): NativeType);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {ViewProps} from '../Components/View/ViewPropTypes';\nimport type {HostComponent} from '../Renderer/shims/ReactNativeTypes';\nimport type {ImageBackgroundProps} from './ImageProps';\n\nimport View from '../Components/View/View';\nimport flattenStyle from '../StyleSheet/flattenStyle';\nimport StyleSheet from '../StyleSheet/StyleSheet';\nimport Image from './Image';\nimport * as React from 'react';\n\n/**\n * Very simple drop-in replacement for which supports nesting views.\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react';\n * import { AppRegistry, View, ImageBackground, Text } from 'react-native';\n *\n * class DisplayAnImageBackground extends Component {\n * render() {\n * return (\n * \n * React\n * \n * );\n * }\n * }\n *\n * // App registration and rendering\n * AppRegistry.registerComponent('DisplayAnImageBackground', () => DisplayAnImageBackground);\n * ```\n */\nclass ImageBackground extends React.Component {\n setNativeProps(props: Object) {\n // Work-around flow\n const viewRef = this._viewRef;\n if (viewRef) {\n viewRef.setNativeProps(props);\n }\n }\n\n _viewRef: ?React.ElementRef = null;\n\n _captureRef = (\n ref: null | React$ElementRef<\n React$AbstractComponent<\n ViewProps,\n React.ElementRef>,\n >,\n >,\n ) => {\n this._viewRef = ref;\n };\n\n render(): React.Node {\n const {\n children,\n style,\n imageStyle,\n imageRef,\n importantForAccessibility,\n ...props\n } = this.props;\n\n // $FlowFixMe[underconstrained-implicit-instantiation]\n const flattenedStyle = flattenStyle(style);\n return (\n \n overwrites width and height styles\n // (which is not quite correct), and these styles conflict with explicitly set styles\n // of and with our internal layout model here.\n // So, we have to proxy/reapply these styles explicitly for actual component.\n // This workaround should be removed after implementing proper support of\n // intrinsic content size of the .\n width: flattenedStyle?.width,\n height: flattenedStyle?.height,\n },\n imageStyle,\n ]}\n ref={imageRef}\n />\n {children}\n \n );\n }\n}\n\nmodule.exports = ImageBackground;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport StyleSheet, {\n type ColorValue,\n type ViewStyleProp,\n} from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport RCTInputAccessoryViewNativeComponent from './RCTInputAccessoryViewNativeComponent';\nimport * as React from 'react';\n\n/**\n * Note: iOS only\n *\n * A component which enables customization of the keyboard input accessory view.\n * The input accessory view is displayed above the keyboard whenever a TextInput\n * has focus. This component can be used to create custom toolbars.\n *\n * To use this component wrap your custom toolbar with the\n * InputAccessoryView component, and set a nativeID. Then, pass that nativeID\n * as the inputAccessoryViewID of whatever TextInput you desire. A simple\n * example:\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react';\n * import { AppRegistry, TextInput, InputAccessoryView, Button } from 'react-native';\n *\n * export default class UselessTextInput extends Component {\n * constructor(props) {\n * super(props);\n * this.state = {text: 'Placeholder Text'};\n * }\n *\n * render() {\n * const inputAccessoryViewID = \"uniqueID\";\n * return (\n * \n * \n * this.setState({text})}\n * value={this.state.text}\n * />\n * \n * \n * this.setState({text: 'Placeholder Text'})}\n * title=\"Reset Text\"\n * />\n * \n * \n * );\n * }\n * }\n *\n * // skip this line if using Create React Native App\n * AppRegistry.registerComponent('AwesomeProject', () => UselessTextInput);\n * ```\n *\n * This component can also be used to create sticky text inputs (text inputs\n * which are anchored to the top of the keyboard). To do this, wrap a\n * TextInput with the InputAccessoryView component, and don't set a nativeID.\n * For an example, look at InputAccessoryViewExample.js in RNTester.\n */\n\ntype Props = $ReadOnly<{|\n +children: React.Node,\n /**\n * An ID which is used to associate this `InputAccessoryView` to\n * specified TextInput(s).\n */\n nativeID?: ?string,\n style?: ?ViewStyleProp,\n backgroundColor?: ?ColorValue,\n|}>;\n\nclass InputAccessoryView extends React.Component {\n render(): React.Node {\n if (Platform.OS === 'ios') {\n if (React.Children.count(this.props.children) === 0) {\n return null;\n }\n\n return (\n \n {this.props.children}\n \n );\n } else {\n console.warn(' is only supported on iOS.');\n return null;\n }\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n position: 'absolute',\n },\n});\n\nmodule.exports = InputAccessoryView;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n backgroundColor?: ?ColorValue,\n|}>;\n\nexport default (codegenNativeComponent('InputAccessory', {\n interfaceOnly: true,\n paperComponentName: 'RCTInputAccessoryView',\n excludedPlatforms: ['android'],\n}): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {ViewStyleProp} from '../../StyleSheet/StyleSheet';\nimport type {\n ViewLayout,\n ViewLayoutEvent,\n ViewProps,\n} from '../View/ViewPropTypes';\nimport type {KeyboardEvent, KeyboardMetrics} from './Keyboard';\n\nimport LayoutAnimation from '../../LayoutAnimation/LayoutAnimation';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport {type EventSubscription} from '../../vendor/emitter/EventEmitter';\nimport AccessibilityInfo from '../AccessibilityInfo/AccessibilityInfo';\nimport View from '../View/View';\nimport Keyboard from './Keyboard';\nimport * as React from 'react';\n\ntype Props = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * Specify how to react to the presence of the keyboard.\n */\n behavior?: ?('height' | 'position' | 'padding'),\n\n /**\n * Style of the content container when `behavior` is 'position'.\n */\n contentContainerStyle?: ?ViewStyleProp,\n\n /**\n * Controls whether this `KeyboardAvoidingView` instance should take effect.\n * This is useful when more than one is on the screen. Defaults to true.\n */\n enabled?: ?boolean,\n\n /**\n * Distance between the top of the user screen and the React Native view. This\n * may be non-zero in some cases. Defaults to 0.\n */\n keyboardVerticalOffset?: number,\n|}>;\n\ntype State = {|\n bottom: number,\n|};\n\n/**\n * View that moves out of the way when the keyboard appears by automatically\n * adjusting its height, position, or bottom padding.\n */\nclass KeyboardAvoidingView extends React.Component {\n _frame: ?ViewLayout = null;\n _keyboardEvent: ?KeyboardEvent = null;\n _subscriptions: Array = [];\n viewRef: {current: React.ElementRef | null, ...};\n _initialFrameHeight: number = 0;\n\n constructor(props: Props) {\n super(props);\n this.state = {bottom: 0};\n this.viewRef = React.createRef();\n }\n\n async _relativeKeyboardHeight(\n keyboardFrame: KeyboardMetrics,\n ): Promise {\n const frame = this._frame;\n if (!frame || !keyboardFrame) {\n return 0;\n }\n\n // On iOS when Prefer Cross-Fade Transitions is enabled, the keyboard position\n // & height is reported differently (0 instead of Y position value matching height of frame)\n if (\n Platform.OS === 'ios' &&\n keyboardFrame.screenY === 0 &&\n (await AccessibilityInfo.prefersCrossFadeTransitions())\n ) {\n return 0;\n }\n\n const keyboardY =\n keyboardFrame.screenY - (this.props.keyboardVerticalOffset ?? 0);\n\n if (this.props.behavior === 'height') {\n return Math.max(\n this.state.bottom + frame.y + frame.height - keyboardY,\n 0,\n );\n }\n\n // Calculate the displacement needed for the view such that it\n // no longer overlaps with the keyboard\n return Math.max(frame.y + frame.height - keyboardY, 0);\n }\n\n _onKeyboardChange = (event: ?KeyboardEvent) => {\n this._keyboardEvent = event;\n // $FlowFixMe[unused-promise]\n this._updateBottomIfNecessary();\n };\n\n _onLayout = async (event: ViewLayoutEvent) => {\n const wasFrameNull = this._frame == null;\n this._frame = event.nativeEvent.layout;\n if (!this._initialFrameHeight) {\n // save the initial frame height, before the keyboard is visible\n this._initialFrameHeight = this._frame.height;\n }\n\n if (wasFrameNull) {\n await this._updateBottomIfNecessary();\n }\n\n if (this.props.onLayout) {\n this.props.onLayout(event);\n }\n };\n\n _updateBottomIfNecessary = async () => {\n if (this._keyboardEvent == null) {\n this.setState({bottom: 0});\n return;\n }\n\n const {duration, easing, endCoordinates} = this._keyboardEvent;\n const height = await this._relativeKeyboardHeight(endCoordinates);\n\n if (this.state.bottom === height) {\n return;\n }\n\n if (duration && easing) {\n LayoutAnimation.configureNext({\n // We have to pass the duration equal to minimal accepted duration defined here: RCTLayoutAnimation.m\n duration: duration > 10 ? duration : 10,\n update: {\n duration: duration > 10 ? duration : 10,\n type: LayoutAnimation.Types[easing] || 'keyboard',\n },\n });\n }\n this.setState({bottom: height});\n };\n\n componentDidMount(): void {\n if (Platform.OS === 'ios') {\n this._subscriptions = [\n Keyboard.addListener('keyboardWillChangeFrame', this._onKeyboardChange),\n ];\n } else {\n this._subscriptions = [\n Keyboard.addListener('keyboardDidHide', this._onKeyboardChange),\n Keyboard.addListener('keyboardDidShow', this._onKeyboardChange),\n ];\n }\n }\n\n componentWillUnmount(): void {\n this._subscriptions.forEach(subscription => {\n subscription.remove();\n });\n }\n\n render(): React.Node {\n const {\n behavior,\n children,\n contentContainerStyle,\n enabled = true,\n // eslint-disable-next-line no-unused-vars\n keyboardVerticalOffset = 0,\n style,\n onLayout,\n ...props\n } = this.props;\n const bottomHeight = enabled === true ? this.state.bottom : 0;\n switch (behavior) {\n case 'height':\n let heightStyle;\n if (this._frame != null && this.state.bottom > 0) {\n // Note that we only apply a height change when there is keyboard present,\n // i.e. this.state.bottom is greater than 0. If we remove that condition,\n // this.frame.height will never go back to its original value.\n // When height changes, we need to disable flex.\n heightStyle = {\n height: this._initialFrameHeight - bottomHeight,\n flex: 0,\n };\n }\n return (\n \n {children}\n \n );\n\n case 'position':\n return (\n \n \n {children}\n \n \n );\n\n case 'padding':\n return (\n \n {children}\n \n );\n\n default:\n return (\n \n {children}\n \n );\n }\n }\n}\n\nexport default KeyboardAvoidingView;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {ViewProps} from '../Components/View/ViewPropTypes';\nimport type {RootTag} from '../ReactNative/RootTag';\nimport type {DirectEventHandler} from '../Types/CodegenTypes';\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport {type EventSubscription} from '../vendor/emitter/EventEmitter';\nimport ModalInjection from './ModalInjection';\nimport NativeModalManager from './NativeModalManager';\nimport RCTModalHostView from './RCTModalHostViewNativeComponent';\nimport {VirtualizedListContextResetter} from '@react-native/virtualized-lists';\n\nconst ScrollView = require('../Components/ScrollView/ScrollView');\nconst View = require('../Components/View/View');\nconst AppContainer = require('../ReactNative/AppContainer');\nconst I18nManager = require('../ReactNative/I18nManager');\nconst {RootTagContext} = require('../ReactNative/RootTag');\nconst StyleSheet = require('../StyleSheet/StyleSheet');\nconst Platform = require('../Utilities/Platform');\nconst React = require('react');\n\ntype ModalEventDefinitions = {\n modalDismissed: [{modalID: number}],\n};\n\nconst ModalEventEmitter =\n Platform.OS === 'ios' && NativeModalManager != null\n ? new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeModalManager,\n )\n : null;\n\n/**\n * The Modal component is a simple way to present content above an enclosing view.\n *\n * See https://reactnative.dev/docs/modal\n */\n\n// In order to route onDismiss callbacks, we need to uniquely identifier each\n// on screen. There can be different ones, either nested or as siblings.\n// We cannot pass the onDismiss callback to native as the view will be\n// destroyed before the callback is fired.\nlet uniqueModalIdentifier = 0;\n\ntype OrientationChangeEvent = $ReadOnly<{|\n orientation: 'portrait' | 'landscape',\n|}>;\n\nexport type Props = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * The `animationType` prop controls how the modal animates.\n *\n * See https://reactnative.dev/docs/modal#animationtype\n */\n animationType?: ?('none' | 'slide' | 'fade'),\n\n /**\n * The `presentationStyle` prop controls how the modal appears.\n *\n * See https://reactnative.dev/docs/modal#presentationstyle\n */\n presentationStyle?: ?(\n | 'fullScreen'\n | 'pageSheet'\n | 'formSheet'\n | 'overFullScreen'\n ),\n\n /**\n * The `transparent` prop determines whether your modal will fill the\n * entire view.\n *\n * See https://reactnative.dev/docs/modal#transparent\n */\n transparent?: ?boolean,\n\n /**\n * The `statusBarTranslucent` prop determines whether your modal should go under\n * the system statusbar.\n *\n * See https://reactnative.dev/docs/modal.html#statusbartranslucent-android\n */\n statusBarTranslucent?: ?boolean,\n\n /**\n * The `hardwareAccelerated` prop controls whether to force hardware\n * acceleration for the underlying window.\n *\n * This prop works only on Android.\n *\n * See https://reactnative.dev/docs/modal#hardwareaccelerated\n */\n hardwareAccelerated?: ?boolean,\n\n /**\n * The `visible` prop determines whether your modal is visible.\n *\n * See https://reactnative.dev/docs/modal#visible\n */\n visible?: ?boolean,\n\n /**\n * The `onRequestClose` callback is called when the user taps the hardware\n * back button on Android or the menu button on Apple TV.\n *\n * This is required on Apple TV and Android.\n *\n * See https://reactnative.dev/docs/modal#onrequestclose\n */\n onRequestClose?: ?DirectEventHandler,\n\n /**\n * The `onShow` prop allows passing a function that will be called once the\n * modal has been shown.\n *\n * See https://reactnative.dev/docs/modal#onshow\n */\n onShow?: ?DirectEventHandler,\n\n /**\n * The `onDismiss` prop allows passing a function that will be called once\n * the modal has been dismissed.\n *\n * See https://reactnative.dev/docs/modal#ondismiss\n */\n onDismiss?: ?() => mixed,\n\n /**\n * The `supportedOrientations` prop allows the modal to be rotated to any of the specified orientations.\n *\n * See https://reactnative.dev/docs/modal#supportedorientations\n */\n supportedOrientations?: ?$ReadOnlyArray<\n | 'portrait'\n | 'portrait-upside-down'\n | 'landscape'\n | 'landscape-left'\n | 'landscape-right',\n >,\n\n /**\n * The `onOrientationChange` callback is called when the orientation changes while the modal is being displayed.\n *\n * See https://reactnative.dev/docs/modal#onorientationchange\n */\n onOrientationChange?: ?DirectEventHandler,\n|}>;\n\nfunction confirmProps(props: Props) {\n if (__DEV__) {\n if (\n props.presentationStyle &&\n props.presentationStyle !== 'overFullScreen' &&\n props.transparent === true\n ) {\n console.warn(\n `Modal with '${props.presentationStyle}' presentation style and 'transparent' value is not supported.`,\n );\n }\n }\n}\n\nclass Modal extends React.Component {\n static defaultProps: {|hardwareAccelerated: boolean, visible: boolean|} = {\n visible: true,\n hardwareAccelerated: false,\n };\n\n static contextType: React.Context = RootTagContext;\n\n _identifier: number;\n _eventSubscription: ?EventSubscription;\n\n constructor(props: Props) {\n super(props);\n if (__DEV__) {\n confirmProps(props);\n }\n this._identifier = uniqueModalIdentifier++;\n }\n\n componentDidMount() {\n // 'modalDismissed' is for the old renderer in iOS only\n if (ModalEventEmitter) {\n this._eventSubscription = ModalEventEmitter.addListener(\n 'modalDismissed',\n event => {\n if (event.modalID === this._identifier && this.props.onDismiss) {\n this.props.onDismiss();\n }\n },\n );\n }\n }\n\n componentWillUnmount() {\n if (this._eventSubscription) {\n this._eventSubscription.remove();\n }\n }\n\n componentDidUpdate() {\n if (__DEV__) {\n confirmProps(this.props);\n }\n }\n\n render(): React.Node {\n if (this.props.visible !== true) {\n return null;\n }\n\n const containerStyles = {\n backgroundColor:\n this.props.transparent === true ? 'transparent' : 'white',\n };\n\n let animationType = this.props.animationType || 'none';\n\n let presentationStyle = this.props.presentationStyle;\n if (!presentationStyle) {\n presentationStyle = 'fullScreen';\n if (this.props.transparent === true) {\n presentationStyle = 'overFullScreen';\n }\n }\n\n const innerChildren = __DEV__ ? (\n {this.props.children}\n ) : (\n this.props.children\n );\n\n return (\n {\n if (this.props.onDismiss) {\n this.props.onDismiss();\n }\n }}\n visible={this.props.visible}\n statusBarTranslucent={this.props.statusBarTranslucent}\n identifier={this._identifier}\n style={styles.modal}\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n onStartShouldSetResponder={this._shouldSetResponder}\n supportedOrientations={this.props.supportedOrientations}\n onOrientationChange={this.props.onOrientationChange}\n testID={this.props.testID}>\n \n \n \n {innerChildren}\n \n \n \n \n );\n }\n\n // We don't want any responder events bubbling out of the modal.\n _shouldSetResponder(): boolean {\n return true;\n }\n}\n\nconst side = I18nManager.getConstants().isRTL ? 'right' : 'left';\nconst styles = StyleSheet.create({\n modal: {\n position: 'absolute',\n },\n container: {\n /* $FlowFixMe[invalid-computed-prop] (>=0.111.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.111 was deployed. To see\n * the error, delete this comment and run Flow. */\n [side]: 0,\n top: 0,\n flex: 1,\n },\n});\n\nconst ExportedModal: React.AbstractComponent<\n React.ElementConfig,\n> = ModalInjection.unstable_Modal ?? Modal;\n\nmodule.exports = ExportedModal;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport typeof Modal from './Modal';\n\nexport default {\n unstable_Modal: (null: ?Modal),\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n // RCTEventEmitter\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.get('ModalManager'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {ViewProps} from '../Components/View/ViewPropTypes';\nimport type {HostComponent} from '../Renderer/shims/ReactNativeTypes';\nimport type {\n DirectEventHandler,\n Int32,\n WithDefault,\n} from '../Types/CodegenTypes';\n\nimport codegenNativeComponent from '../Utilities/codegenNativeComponent';\n\ntype OrientationChangeEvent = $ReadOnly<{|\n orientation: 'portrait' | 'landscape',\n|}>;\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n /**\n * The `animationType` prop controls how the modal animates.\n *\n * See https://reactnative.dev/docs/modal#animationtype\n */\n animationType?: WithDefault<'none' | 'slide' | 'fade', 'none'>,\n\n /**\n * The `presentationStyle` prop controls how the modal appears.\n *\n * See https://reactnative.dev/docs/modal#presentationstyle\n */\n presentationStyle?: WithDefault<\n 'fullScreen' | 'pageSheet' | 'formSheet' | 'overFullScreen',\n 'fullScreen',\n >,\n\n /**\n * The `transparent` prop determines whether your modal will fill the\n * entire view.\n *\n * See https://reactnative.dev/docs/modal#transparent\n */\n transparent?: WithDefault,\n\n /**\n * The `statusBarTranslucent` prop determines whether your modal should go under\n * the system statusbar.\n *\n * See https://reactnative.dev/docs/modal#statusBarTranslucent\n */\n statusBarTranslucent?: WithDefault,\n\n /**\n * The `hardwareAccelerated` prop controls whether to force hardware\n * acceleration for the underlying window.\n *\n * See https://reactnative.dev/docs/modal#hardwareaccelerated\n */\n hardwareAccelerated?: WithDefault,\n\n /**\n * The `onRequestClose` callback is called when the user taps the hardware\n * back button on Android or the menu button on Apple TV.\n *\n * This is required on Apple TV and Android.\n *\n * See https://reactnative.dev/docs/modal#onrequestclose\n */\n onRequestClose?: ?DirectEventHandler,\n\n /**\n * The `onShow` prop allows passing a function that will be called once the\n * modal has been shown.\n *\n * See https://reactnative.dev/docs/modal#onshow\n */\n onShow?: ?DirectEventHandler,\n\n /**\n * The `onDismiss` prop allows passing a function that will be called once\n * the modal has been dismissed.\n *\n * See https://reactnative.dev/docs/modal#ondismiss\n */\n onDismiss?: ?DirectEventHandler,\n\n /**\n * The `visible` prop determines whether your modal is visible.\n *\n * See https://reactnative.dev/docs/modal#visible\n */\n visible?: WithDefault,\n\n /**\n * Deprecated. Use the `animationType` prop instead.\n */\n animated?: WithDefault,\n\n /**\n * The `supportedOrientations` prop allows the modal to be rotated to any of the specified orientations.\n *\n * See https://reactnative.dev/docs/modal#supportedorientations\n */\n supportedOrientations?: WithDefault<\n $ReadOnlyArray<\n | 'portrait'\n | 'portrait-upside-down'\n | 'landscape'\n | 'landscape-left'\n | 'landscape-right',\n >,\n 'portrait',\n >,\n\n /**\n * The `onOrientationChange` callback is called when the orientation changes while the modal is being displayed.\n *\n * See https://reactnative.dev/docs/modal#onorientationchange\n */\n onOrientationChange?: ?DirectEventHandler,\n\n /**\n * The `identifier` is the unique number for identifying Modal components.\n */\n identifier?: WithDefault,\n|}>;\n\nexport default (codegenNativeComponent('ModalHostView', {\n interfaceOnly: true,\n paperComponentName: 'RCTModalHostView',\n}): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport NativeI18nManager from './NativeI18nManager';\n\nconst i18nConstants: {|\n doLeftAndRightSwapInRTL: boolean,\n isRTL: boolean,\n localeIdentifier?: ?string,\n|} = getI18nManagerConstants();\n\nfunction getI18nManagerConstants() {\n if (NativeI18nManager) {\n const {isRTL, doLeftAndRightSwapInRTL, localeIdentifier} =\n NativeI18nManager.getConstants();\n return {isRTL, doLeftAndRightSwapInRTL, localeIdentifier};\n }\n\n return {\n isRTL: false,\n doLeftAndRightSwapInRTL: true,\n };\n}\n\nmodule.exports = {\n getConstants: (): {|\n doLeftAndRightSwapInRTL: boolean,\n isRTL: boolean,\n localeIdentifier: ?string,\n |} => {\n return i18nConstants;\n },\n\n allowRTL: (shouldAllow: boolean) => {\n if (!NativeI18nManager) {\n return;\n }\n\n NativeI18nManager.allowRTL(shouldAllow);\n },\n\n forceRTL: (shouldForce: boolean) => {\n if (!NativeI18nManager) {\n return;\n }\n\n NativeI18nManager.forceRTL(shouldForce);\n },\n\n swapLeftAndRightInRTL: (flipStyles: boolean) => {\n if (!NativeI18nManager) {\n return;\n }\n\n NativeI18nManager.swapLeftAndRightInRTL(flipStyles);\n },\n\n isRTL: i18nConstants.isRTL,\n doLeftAndRightSwapInRTL: i18nConstants.doLeftAndRightSwapInRTL,\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n isRTL: boolean,\n doLeftAndRightSwapInRTL: boolean,\n localeIdentifier: ?string,\n |};\n allowRTL: (allowRTL: boolean) => void;\n forceRTL: (forceRTL: boolean) => void;\n swapLeftAndRightInRTL: (flipStyles: boolean) => void;\n}\n\nexport default (TurboModuleRegistry.get('I18nManager'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n LayoutEvent,\n MouseEvent,\n PressEvent,\n} from '../../Types/CoreEventTypes';\nimport type {\n AccessibilityActionEvent,\n AccessibilityActionInfo,\n AccessibilityRole,\n AccessibilityState,\n AccessibilityValue,\n} from '../View/ViewAccessibility';\n\nimport {PressabilityDebugView} from '../../Pressability/PressabilityDebug';\nimport usePressability from '../../Pressability/usePressability';\nimport {type RectOrSize} from '../../StyleSheet/Rect';\nimport View from '../View/View';\nimport useAndroidRippleForView, {\n type RippleConfig,\n} from './useAndroidRippleForView';\nimport * as React from 'react';\nimport {useImperativeHandle, useMemo, useRef, useState} from 'react';\n\ntype ViewStyleProp = $ElementType, 'style'>;\n\nexport type StateCallbackType = $ReadOnly<{|\n pressed: boolean,\n|}>;\n\ntype Props = $ReadOnly<{|\n /**\n * Accessibility.\n */\n accessibilityActions?: ?$ReadOnlyArray,\n accessibilityElementsHidden?: ?boolean,\n accessibilityHint?: ?Stringish,\n accessibilityLanguage?: ?Stringish,\n accessibilityIgnoresInvertColors?: ?boolean,\n accessibilityLabel?: ?Stringish,\n accessibilityLiveRegion?: ?('none' | 'polite' | 'assertive'),\n accessibilityRole?: ?AccessibilityRole,\n accessibilityState?: ?AccessibilityState,\n accessibilityValue?: ?AccessibilityValue,\n 'aria-valuemax'?: AccessibilityValue['max'],\n 'aria-valuemin'?: AccessibilityValue['min'],\n 'aria-valuenow'?: AccessibilityValue['now'],\n 'aria-valuetext'?: AccessibilityValue['text'],\n accessibilityViewIsModal?: ?boolean,\n 'aria-modal'?: ?boolean,\n accessible?: ?boolean,\n\n /**\n * alias for accessibilityState\n *\n * see https://reactnative.dev/docs/accessibility#accessibilitystate\n */\n 'aria-busy'?: ?boolean,\n 'aria-checked'?: ?boolean | 'mixed',\n 'aria-disabled'?: ?boolean,\n 'aria-expanded'?: ?boolean,\n 'aria-selected'?: ?boolean,\n /**\n * A value indicating whether the accessibility elements contained within\n * this accessibility element are hidden.\n */\n 'aria-hidden'?: ?boolean,\n 'aria-live'?: ?('polite' | 'assertive' | 'off'),\n focusable?: ?boolean,\n importantForAccessibility?: ?('auto' | 'yes' | 'no' | 'no-hide-descendants'),\n onAccessibilityAction?: ?(event: AccessibilityActionEvent) => mixed,\n\n /**\n * Whether a press gesture can be interrupted by a parent gesture such as a\n * scroll event. Defaults to true.\n */\n cancelable?: ?boolean,\n\n /**\n * Either children or a render prop that receives a boolean reflecting whether\n * the component is currently pressed.\n */\n children: React.Node | ((state: StateCallbackType) => React.Node),\n\n /**\n * Duration to wait after hover in before calling `onHoverIn`.\n */\n delayHoverIn?: ?number,\n\n /**\n * Duration to wait after hover out before calling `onHoverOut`.\n */\n delayHoverOut?: ?number,\n\n /**\n * Duration (in milliseconds) from `onPressIn` before `onLongPress` is called.\n */\n delayLongPress?: ?number,\n\n /**\n * Whether the press behavior is disabled.\n */\n disabled?: ?boolean,\n\n /**\n * Additional distance outside of this view in which a press is detected.\n */\n hitSlop?: ?RectOrSize,\n\n /**\n * Additional distance outside of this view in which a touch is considered a\n * press before `onPressOut` is triggered.\n */\n pressRetentionOffset?: ?RectOrSize,\n\n /**\n * Called when this view's layout changes.\n */\n onLayout?: ?(event: LayoutEvent) => mixed,\n\n /**\n * Called when the hover is activated to provide visual feedback.\n */\n onHoverIn?: ?(event: MouseEvent) => mixed,\n\n /**\n * Called when the hover is deactivated to undo visual feedback.\n */\n onHoverOut?: ?(event: MouseEvent) => mixed,\n\n /**\n * Called when a long-tap gesture is detected.\n */\n onLongPress?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when a single tap gesture is detected.\n */\n onPress?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when a touch is engaged before `onPress`.\n */\n onPressIn?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when a touch is released before `onPress`.\n */\n onPressOut?: ?(event: PressEvent) => mixed,\n\n /**\n * Either view styles or a function that receives a boolean reflecting whether\n * the component is currently pressed and returns view styles.\n */\n style?: ViewStyleProp | ((state: StateCallbackType) => ViewStyleProp),\n\n /**\n * Identifier used to find this view in tests.\n */\n testID?: ?string,\n\n /**\n * If true, doesn't play system sound on touch.\n */\n android_disableSound?: ?boolean,\n\n /**\n * Enables the Android ripple effect and configures its color.\n */\n android_ripple?: ?RippleConfig,\n\n /**\n * Used only for documentation or testing (e.g. snapshot testing).\n */\n testOnly_pressed?: ?boolean,\n\n /**\n * Duration to wait after press down before calling `onPressIn`.\n */\n unstable_pressDelay?: ?number,\n /**\n * Web to Native Accessibility props\n * https://github.com/facebook/react-native/issues/34424\n */\n 'aria-label'?: ?string,\n|}>;\n\n/**\n * Component used to build display components that should respond to whether the\n * component is currently pressed or not.\n */\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\nfunction Pressable(props: Props, forwardedRef): React.Node {\n const {\n accessible,\n accessibilityState,\n 'aria-live': ariaLive,\n android_disableSound,\n android_ripple,\n 'aria-busy': ariaBusy,\n 'aria-checked': ariaChecked,\n 'aria-disabled': ariaDisabled,\n 'aria-expanded': ariaExpanded,\n 'aria-label': ariaLabel,\n 'aria-selected': ariaSelected,\n cancelable,\n children,\n delayHoverIn,\n delayHoverOut,\n delayLongPress,\n disabled,\n focusable,\n hitSlop,\n onHoverIn,\n onHoverOut,\n onLongPress,\n onPress,\n onPressIn,\n onPressOut,\n pressRetentionOffset,\n style,\n testOnly_pressed,\n unstable_pressDelay,\n ...restProps\n } = props;\n\n const viewRef = useRef | null>(null);\n useImperativeHandle(forwardedRef, () => viewRef.current);\n\n const android_rippleConfig = useAndroidRippleForView(android_ripple, viewRef);\n\n const [pressed, setPressed] = usePressState(testOnly_pressed === true);\n\n let _accessibilityState = {\n busy: ariaBusy ?? accessibilityState?.busy,\n checked: ariaChecked ?? accessibilityState?.checked,\n disabled: ariaDisabled ?? accessibilityState?.disabled,\n expanded: ariaExpanded ?? accessibilityState?.expanded,\n selected: ariaSelected ?? accessibilityState?.selected,\n };\n\n _accessibilityState =\n disabled != null ? {..._accessibilityState, disabled} : _accessibilityState;\n\n const accessibilityValue = {\n max: props['aria-valuemax'] ?? props.accessibilityValue?.max,\n min: props['aria-valuemin'] ?? props.accessibilityValue?.min,\n now: props['aria-valuenow'] ?? props.accessibilityValue?.now,\n text: props['aria-valuetext'] ?? props.accessibilityValue?.text,\n };\n\n const accessibilityLiveRegion =\n ariaLive === 'off' ? 'none' : ariaLive ?? props.accessibilityLiveRegion;\n\n const accessibilityLabel = ariaLabel ?? props.accessibilityLabel;\n const restPropsWithDefaults: React.ElementConfig = {\n ...restProps,\n ...android_rippleConfig?.viewProps,\n accessible: accessible !== false,\n accessibilityViewIsModal:\n restProps['aria-modal'] ?? restProps.accessibilityViewIsModal,\n accessibilityLiveRegion,\n accessibilityLabel,\n accessibilityState: _accessibilityState,\n focusable: focusable !== false,\n accessibilityValue,\n hitSlop,\n };\n\n const config = useMemo(\n () => ({\n cancelable,\n disabled,\n hitSlop,\n pressRectOffset: pressRetentionOffset,\n android_disableSound,\n delayHoverIn,\n delayHoverOut,\n delayLongPress,\n delayPressIn: unstable_pressDelay,\n onHoverIn,\n onHoverOut,\n onLongPress,\n onPress,\n onPressIn(event: PressEvent): void {\n if (android_rippleConfig != null) {\n android_rippleConfig.onPressIn(event);\n }\n setPressed(true);\n if (onPressIn != null) {\n onPressIn(event);\n }\n },\n onPressMove: android_rippleConfig?.onPressMove,\n onPressOut(event: PressEvent): void {\n if (android_rippleConfig != null) {\n android_rippleConfig.onPressOut(event);\n }\n setPressed(false);\n if (onPressOut != null) {\n onPressOut(event);\n }\n },\n }),\n [\n android_disableSound,\n android_rippleConfig,\n cancelable,\n delayHoverIn,\n delayHoverOut,\n delayLongPress,\n disabled,\n hitSlop,\n onHoverIn,\n onHoverOut,\n onLongPress,\n onPress,\n onPressIn,\n onPressOut,\n pressRetentionOffset,\n setPressed,\n unstable_pressDelay,\n ],\n );\n const eventHandlers = usePressability(config);\n\n return (\n \n {typeof children === 'function' ? children({pressed}) : children}\n {__DEV__ ? : null}\n \n );\n}\n\nfunction usePressState(forcePressed: boolean): [boolean, (boolean) => void] {\n const [pressed, setPressed] = useState(false);\n return [pressed || forcePressed, setPressed];\n}\n\nconst MemoedPressable = React.memo(React.forwardRef(Pressable));\nMemoedPressable.displayName = 'Pressable';\n\nexport default (MemoedPressable: React.AbstractComponent<\n Props,\n React.ElementRef,\n>);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {PressEvent} from '../../Types/CoreEventTypes';\n\nimport processColor from '../../StyleSheet/processColor';\nimport Platform from '../../Utilities/Platform';\nimport View from '../View/View';\nimport {Commands} from '../View/ViewNativeComponent';\nimport invariant from 'invariant';\nimport * as React from 'react';\nimport {useMemo} from 'react';\n\ntype NativeBackgroundProp = $ReadOnly<{|\n type: 'RippleAndroid',\n color: ?number,\n borderless: boolean,\n rippleRadius: ?number,\n|}>;\n\nexport type RippleConfig = {|\n color?: ColorValue,\n borderless?: boolean,\n radius?: number,\n foreground?: boolean,\n|};\n\n/**\n * Provides the event handlers and props for configuring the ripple effect on\n * supported versions of Android.\n */\nexport default function useAndroidRippleForView(\n rippleConfig: ?RippleConfig,\n viewRef: {|current: null | React.ElementRef|},\n): ?$ReadOnly<{|\n onPressIn: (event: PressEvent) => void,\n onPressMove: (event: PressEvent) => void,\n onPressOut: (event: PressEvent) => void,\n viewProps:\n | $ReadOnly<{|nativeBackgroundAndroid: NativeBackgroundProp|}>\n | $ReadOnly<{|nativeForegroundAndroid: NativeBackgroundProp|}>,\n|}> {\n const {color, borderless, radius, foreground} = rippleConfig ?? {};\n\n return useMemo(() => {\n if (\n Platform.OS === 'android' &&\n Platform.Version >= 21 &&\n (color != null || borderless != null || radius != null)\n ) {\n const processedColor = processColor(color);\n invariant(\n processedColor == null || typeof processedColor === 'number',\n 'Unexpected color given for Ripple color',\n );\n\n const nativeRippleValue = {\n type: 'RippleAndroid',\n color: processedColor,\n borderless: borderless === true,\n rippleRadius: radius,\n };\n\n return {\n viewProps:\n foreground === true\n ? {nativeForegroundAndroid: nativeRippleValue}\n : {nativeBackgroundAndroid: nativeRippleValue},\n onPressIn(event: PressEvent): void {\n const view = viewRef.current;\n if (view != null) {\n Commands.hotspotUpdate(\n view,\n event.nativeEvent.locationX ?? 0,\n event.nativeEvent.locationY ?? 0,\n );\n Commands.setPressed(view, true);\n }\n },\n onPressMove(event: PressEvent): void {\n const view = viewRef.current;\n if (view != null) {\n Commands.hotspotUpdate(\n view,\n event.nativeEvent.locationX ?? 0,\n event.nativeEvent.locationY ?? 0,\n );\n }\n },\n onPressOut(event: PressEvent): void {\n const view = viewRef.current;\n if (view != null) {\n Commands.setPressed(view, false);\n }\n },\n };\n }\n return null;\n }, [borderless, color, foreground, radius, viewRef]);\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport Platform from '../../Utilities/Platform';\nimport View from '../View/View';\nimport * as React from 'react';\n\nlet exported: React.AbstractComponent>;\n\n/**\n * Renders nested content and automatically applies paddings reflect the portion\n * of the view that is not covered by navigation bars, tab bars, toolbars, and\n * other ancestor views.\n *\n * Moreover, and most importantly, Safe Area's paddings reflect physical\n * limitation of the screen, such as rounded corners or camera notches (aka\n * sensor housing area on iPhone X).\n */\nif (Platform.OS === 'android') {\n exported = View;\n} else {\n exported = require('./RCTSafeAreaViewNativeComponent').default;\n}\n\nexport default exported;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n // No props\n|}>;\n\nexport default (codegenNativeComponent('SafeAreaView', {\n paperComponentName: 'RCTSafeAreaView',\n interfaceOnly: true,\n}): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n * @generate-docs\n */\n\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {SyntheticEvent} from '../../Types/CoreEventTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport useMergeRefs from '../../Utilities/useMergeRefs';\nimport AndroidSwitchNativeComponent, {\n Commands as AndroidSwitchCommands,\n} from './AndroidSwitchNativeComponent';\nimport SwitchNativeComponent, {\n Commands as SwitchCommands,\n} from './SwitchNativeComponent';\nimport * as React from 'react';\n\ntype SwitchChangeEvent = SyntheticEvent<\n $ReadOnly<{|\n value: boolean,\n target: number,\n |}>,\n>;\n\nexport type Props = $ReadOnly<{|\n ...ViewProps,\n\n /**\n If true the user won't be able to toggle the switch.\n\n @default false\n */\n disabled?: ?boolean,\n\n /**\n The value of the switch. If true the switch will be turned on.\n\n @default false\n */\n value?: ?boolean,\n\n /**\n Color of the foreground switch grip. If this is set on iOS, the switch grip will lose its drop shadow.\n */\n thumbColor?: ?ColorValue,\n\n /**\n Custom colors for the switch track.\n\n _iOS_: When the switch value is false, the track shrinks into the border. If you want to change the\n color of the background exposed by the shrunken track, use\n [`ios_backgroundColor`](https://reactnative.dev/docs/switch#ios_backgroundColor).\n */\n trackColor?: ?$ReadOnly<{|\n false?: ?ColorValue,\n true?: ?ColorValue,\n |}>,\n\n /**\n On iOS, custom color for the background. This background color can be\n seen either when the switch value is false or when the switch is\n disabled (and the switch is translucent).\n */\n ios_backgroundColor?: ?ColorValue,\n\n /**\n Invoked when the user tries to change the value of the switch. Receives\n the change event as an argument. If you want to only receive the new\n value, use `onValueChange` instead.\n */\n onChange?: ?(event: SwitchChangeEvent) => Promise | void,\n\n /**\n Invoked when the user tries to change the value of the switch. Receives\n the new value as an argument. If you want to instead receive an event,\n use `onChange`.\n */\n onValueChange?: ?(value: boolean) => Promise | void,\n|}>;\nconst returnsFalse = () => false;\nconst returnsTrue = () => true;\n\n/**\n Renders a boolean input.\n\n This is a controlled component that requires an `onValueChange`\n callback that updates the `value` prop in order for the component to\n reflect user actions. If the `value` prop is not updated, the\n component will continue to render the supplied `value` prop instead of\n the expected result of any user actions.\n\n ```SnackPlayer name=Switch\n import React, { useState } from \"react\";\n import { View, Switch, StyleSheet } from \"react-native\";\n\n const App = () => {\n const [isEnabled, setIsEnabled] = useState(false);\n const toggleSwitch = () => setIsEnabled(previousState => !previousState);\n\n return (\n \n \n \n );\n }\n\n const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\"\n }\n });\n\n export default App;\n ```\n */\n\nconst SwitchWithForwardedRef: React.AbstractComponent<\n Props,\n React.ElementRef<\n typeof SwitchNativeComponent | typeof AndroidSwitchNativeComponent,\n >,\n> = React.forwardRef(function Switch(props, forwardedRef): React.Node {\n const {\n disabled,\n ios_backgroundColor,\n onChange,\n onValueChange,\n style,\n thumbColor,\n trackColor,\n value,\n ...restProps\n } = props;\n const trackColorForFalse = trackColor?.false;\n const trackColorForTrue = trackColor?.true;\n\n const nativeSwitchRef = React.useRef | null>(null);\n\n const ref = useMergeRefs(nativeSwitchRef, forwardedRef);\n\n const [native, setNative] = React.useState({value: (null: ?boolean)});\n\n const handleChange = (event: SwitchChangeEvent) => {\n // $FlowFixMe[unused-promise]\n onChange?.(event);\n // $FlowFixMe[unused-promise]\n onValueChange?.(event.nativeEvent.value);\n setNative({value: event.nativeEvent.value});\n };\n\n React.useLayoutEffect(() => {\n // This is necessary in case native updates the switch and JS decides\n // that the update should be ignored and we should stick with the value\n // that we have in JS.\n const jsValue = value === true;\n const shouldUpdateNativeSwitch =\n native.value != null && native.value !== jsValue;\n if (\n shouldUpdateNativeSwitch &&\n nativeSwitchRef.current?.setNativeProps != null\n ) {\n if (Platform.OS === 'android') {\n AndroidSwitchCommands.setNativeValue(nativeSwitchRef.current, jsValue);\n } else {\n SwitchCommands.setValue(nativeSwitchRef.current, jsValue);\n }\n }\n }, [value, native]);\n\n if (Platform.OS === 'android') {\n const {accessibilityState} = restProps;\n const _disabled =\n disabled != null ? disabled : accessibilityState?.disabled;\n\n const _accessibilityState =\n _disabled !== accessibilityState?.disabled\n ? {...accessibilityState, disabled: _disabled}\n : accessibilityState;\n\n const platformProps = {\n accessibilityState: _accessibilityState,\n enabled: _disabled !== true,\n on: value === true,\n style,\n thumbTintColor: thumbColor,\n trackColorForFalse: trackColorForFalse,\n trackColorForTrue: trackColorForTrue,\n trackTintColor: value === true ? trackColorForTrue : trackColorForFalse,\n };\n\n return (\n \n );\n } else {\n const platformProps = {\n disabled,\n onTintColor: trackColorForTrue,\n style: StyleSheet.compose(\n {height: 31, width: 51},\n StyleSheet.compose(\n style,\n ios_backgroundColor == null\n ? null\n : {\n backgroundColor: ios_backgroundColor,\n borderRadius: 16,\n },\n ),\n ),\n thumbTintColor: thumbColor,\n tintColor: trackColorForFalse,\n value: value === true,\n };\n\n return (\n \n );\n }\n});\n\nexport default SwitchWithForwardedRef;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n BubblingEventHandler,\n Int32,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\nimport * as React from 'react';\n\ntype SwitchChangeEvent = $ReadOnly<{|\n value: boolean,\n target: Int32,\n|}>;\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n // Props\n disabled?: WithDefault,\n enabled?: WithDefault,\n thumbColor?: ?ColorValue,\n trackColorForFalse?: ?ColorValue,\n trackColorForTrue?: ?ColorValue,\n value?: WithDefault,\n on?: WithDefault,\n thumbTintColor?: ?ColorValue,\n trackTintColor?: ?ColorValue,\n\n // Events\n onChange?: BubblingEventHandler,\n|}>;\n\ntype NativeType = HostComponent;\n\ninterface NativeCommands {\n +setNativeValue: (\n viewRef: React.ElementRef,\n value: boolean,\n ) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['setNativeValue'],\n});\n\nexport default (codegenNativeComponent('AndroidSwitch', {\n interfaceOnly: true,\n}): NativeType);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {\n BubblingEventHandler,\n Int32,\n WithDefault,\n} from '../../Types/CodegenTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\n\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport codegenNativeComponent from '../../Utilities/codegenNativeComponent';\nimport * as React from 'react';\n\ntype SwitchChangeEvent = $ReadOnly<{|\n value: boolean,\n target: Int32,\n|}>;\n\ntype NativeProps = $ReadOnly<{|\n ...ViewProps,\n\n // Props\n disabled?: WithDefault,\n value?: WithDefault,\n tintColor?: ?ColorValue,\n onTintColor?: ?ColorValue,\n thumbTintColor?: ?ColorValue,\n\n // Deprecated props\n thumbColor?: ?ColorValue,\n trackColorForFalse?: ?ColorValue,\n trackColorForTrue?: ?ColorValue,\n\n // Events\n onChange?: ?BubblingEventHandler,\n|}>;\n\ntype ComponentType = HostComponent;\n\ninterface NativeCommands {\n +setValue: (viewRef: React.ElementRef, value: boolean) => void;\n}\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['setValue'],\n});\n\nexport default (codegenNativeComponent('Switch', {\n paperComponentName: 'RCTSwitch',\n excludedPlatforms: ['android'],\n}): ComponentType);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';\nimport type {\n PressEvent,\n ScrollEvent,\n SyntheticEvent,\n} from '../../Types/CoreEventTypes';\nimport type {ViewProps} from '../View/ViewPropTypes';\nimport type {TextInputType} from './TextInput.flow';\n\nimport usePressability from '../../Pressability/usePressability';\nimport flattenStyle from '../../StyleSheet/flattenStyle';\nimport StyleSheet, {\n type ColorValue,\n type TextStyleProp,\n type ViewStyleProp,\n} from '../../StyleSheet/StyleSheet';\nimport Text from '../../Text/Text';\nimport TextAncestor from '../../Text/TextAncestor';\nimport Platform from '../../Utilities/Platform';\nimport useMergeRefs from '../../Utilities/useMergeRefs';\nimport TextInputState from './TextInputState';\nimport invariant from 'invariant';\nimport nullthrows from 'nullthrows';\nimport * as React from 'react';\nimport {useCallback, useLayoutEffect, useRef, useState} from 'react';\n\ntype ReactRefSetter = {current: null | T, ...} | ((ref: null | T) => mixed);\ntype TextInputInstance = React.ElementRef> & {\n +clear: () => void,\n +isFocused: () => boolean,\n +getNativeRef: () => ?React.ElementRef>,\n +setSelection: (start: number, end: number) => void,\n};\n\nlet AndroidTextInput;\nlet AndroidTextInputCommands;\nlet RCTSinglelineTextInputView;\nlet RCTSinglelineTextInputNativeCommands;\nlet RCTMultilineTextInputView;\nlet RCTMultilineTextInputNativeCommands;\n\nif (Platform.OS === 'android') {\n AndroidTextInput = require('./AndroidTextInputNativeComponent').default;\n AndroidTextInputCommands =\n require('./AndroidTextInputNativeComponent').Commands;\n} else if (Platform.OS === 'ios') {\n RCTSinglelineTextInputView =\n require('./RCTSingelineTextInputNativeComponent').default;\n RCTSinglelineTextInputNativeCommands =\n require('./RCTSingelineTextInputNativeComponent').Commands;\n RCTMultilineTextInputView =\n require('./RCTMultilineTextInputNativeComponent').default;\n RCTMultilineTextInputNativeCommands =\n require('./RCTMultilineTextInputNativeComponent').Commands;\n}\n\nexport type ChangeEvent = SyntheticEvent<\n $ReadOnly<{|\n eventCount: number,\n target: number,\n text: string,\n |}>,\n>;\n\nexport type TextInputEvent = SyntheticEvent<\n $ReadOnly<{|\n eventCount: number,\n previousText: string,\n range: $ReadOnly<{|\n start: number,\n end: number,\n |}>,\n target: number,\n text: string,\n |}>,\n>;\n\nexport type ContentSizeChangeEvent = SyntheticEvent<\n $ReadOnly<{|\n target: number,\n contentSize: $ReadOnly<{|\n width: number,\n height: number,\n |}>,\n |}>,\n>;\n\ntype TargetEvent = SyntheticEvent<\n $ReadOnly<{|\n target: number,\n |}>,\n>;\n\nexport type BlurEvent = TargetEvent;\nexport type FocusEvent = TargetEvent;\n\ntype Selection = $ReadOnly<{|\n start: number,\n end: number,\n|}>;\n\nexport type SelectionChangeEvent = SyntheticEvent<\n $ReadOnly<{|\n selection: Selection,\n target: number,\n |}>,\n>;\n\nexport type KeyPressEvent = SyntheticEvent<\n $ReadOnly<{|\n key: string,\n target?: ?number,\n eventCount?: ?number,\n |}>,\n>;\n\nexport type EditingEvent = SyntheticEvent<\n $ReadOnly<{|\n eventCount: number,\n text: string,\n target: number,\n |}>,\n>;\n\ntype DataDetectorTypesType =\n | 'phoneNumber'\n | 'link'\n | 'address'\n | 'calendarEvent'\n | 'none'\n | 'all';\n\nexport type KeyboardType =\n // Cross Platform\n | 'default'\n | 'email-address'\n | 'numeric'\n | 'phone-pad'\n | 'number-pad'\n | 'decimal-pad'\n | 'url'\n // iOS-only\n | 'ascii-capable'\n | 'numbers-and-punctuation'\n | 'name-phone-pad'\n | 'twitter'\n | 'web-search'\n // iOS 10+ only\n | 'ascii-capable-number-pad'\n // Android-only\n | 'visible-password';\n\nexport type InputMode =\n | 'none'\n | 'text'\n | 'decimal'\n | 'numeric'\n | 'tel'\n | 'search'\n | 'email'\n | 'url';\n\nexport type ReturnKeyType =\n // Cross Platform\n | 'done'\n | 'go'\n | 'next'\n | 'search'\n | 'send'\n // Android-only\n | 'none'\n | 'previous'\n // iOS-only\n | 'default'\n | 'emergency-call'\n | 'google'\n | 'join'\n | 'route'\n | 'yahoo';\n\nexport type SubmitBehavior = 'submit' | 'blurAndSubmit' | 'newline';\n\nexport type AutoCapitalize = 'none' | 'sentences' | 'words' | 'characters';\n\nexport type TextContentType =\n | 'none'\n | 'URL'\n | 'addressCity'\n | 'addressCityAndState'\n | 'addressState'\n | 'countryName'\n | 'creditCardNumber'\n | 'emailAddress'\n | 'familyName'\n | 'fullStreetAddress'\n | 'givenName'\n | 'jobTitle'\n | 'location'\n | 'middleName'\n | 'name'\n | 'namePrefix'\n | 'nameSuffix'\n | 'nickname'\n | 'organizationName'\n | 'postalCode'\n | 'streetAddressLine1'\n | 'streetAddressLine2'\n | 'sublocality'\n | 'telephoneNumber'\n | 'username'\n | 'password'\n | 'newPassword'\n | 'oneTimeCode';\n\nexport type enterKeyHintType =\n | 'enter'\n | 'done'\n | 'go'\n | 'next'\n | 'previous'\n | 'search'\n | 'send';\n\ntype PasswordRules = string;\n\ntype IOSProps = $ReadOnly<{|\n /**\n * When the clear button should appear on the right side of the text view.\n * This property is supported only for single-line TextInput component.\n * @platform ios\n */\n clearButtonMode?: ?('never' | 'while-editing' | 'unless-editing' | 'always'),\n\n /**\n * If `true`, clears the text field automatically when editing begins.\n * @platform ios\n */\n clearTextOnFocus?: ?boolean,\n\n /**\n * Determines the types of data converted to clickable URLs in the text input.\n * Only valid if `multiline={true}` and `editable={false}`.\n * By default no data types are detected.\n *\n * You can provide one type or an array of many types.\n *\n * Possible values for `dataDetectorTypes` are:\n *\n * - `'phoneNumber'`\n * - `'link'`\n * - `'address'`\n * - `'calendarEvent'`\n * - `'none'`\n * - `'all'`\n *\n * @platform ios\n */\n dataDetectorTypes?:\n | ?DataDetectorTypesType\n | $ReadOnlyArray,\n\n /**\n * If `true`, the keyboard disables the return key when there is no text and\n * automatically enables it when there is text. The default value is `false`.\n * @platform ios\n */\n enablesReturnKeyAutomatically?: ?boolean,\n\n /**\n * An optional identifier which links a custom InputAccessoryView to\n * this text input. The InputAccessoryView is rendered above the\n * keyboard when this text input is focused.\n * @platform ios\n */\n inputAccessoryViewID?: ?string,\n\n /**\n * Determines the color of the keyboard.\n * @platform ios\n */\n keyboardAppearance?: ?('default' | 'light' | 'dark'),\n\n /**\n * Provide rules for your password.\n * For example, say you want to require a password with at least eight characters consisting of a mix of uppercase and lowercase letters, at least one number, and at most two consecutive characters.\n * \"required: upper; required: lower; required: digit; max-consecutive: 2; minlength: 8;\"\n * @platform ios\n */\n passwordRules?: ?PasswordRules,\n\n /*\n * If `true`, allows TextInput to pass touch events to the parent component.\n * This allows components to be swipeable from the TextInput on iOS,\n * as is the case on Android by default.\n * If `false`, TextInput always asks to handle the input (except when disabled).\n * @platform ios\n */\n rejectResponderTermination?: ?boolean,\n\n /**\n * If `false`, scrolling of the text view will be disabled.\n * The default value is `true`. Does only work with 'multiline={true}'.\n * @platform ios\n */\n scrollEnabled?: ?boolean,\n\n /**\n * If `false`, disables spell-check style (i.e. red underlines).\n * The default value is inherited from `autoCorrect`.\n * @platform ios\n */\n spellCheck?: ?boolean,\n\n /**\n * Give the keyboard and the system information about the\n * expected semantic meaning for the content that users enter.\n * `autoComplete` property accomplishes same behavior and is recommended as its supported by both platforms.\n * Avoid using both `autoComplete` and `textContentType`, you can use `Platform.select` for differing platform behaviors.\n * For backwards compatibility, when both set, `textContentType` takes precedence on iOS.\n * @platform ios\n */\n textContentType?: ?TextContentType,\n\n /**\n * Set line break strategy on iOS.\n * @platform ios\n */\n lineBreakStrategyIOS?: ?('none' | 'standard' | 'hangul-word' | 'push-out'),\n|}>;\n\ntype AndroidProps = $ReadOnly<{|\n /**\n * When provided it will set the color of the cursor (or \"caret\") in the component.\n * Unlike the behavior of `selectionColor` the cursor color will be set independently\n * from the color of the text selection box.\n * @platform android\n */\n cursorColor?: ?ColorValue,\n\n /**\n * When `false`, if there is a small amount of space available around a text input\n * (e.g. landscape orientation on a phone), the OS may choose to have the user edit\n * the text inside of a full screen text input mode. When `true`, this feature is\n * disabled and users will always edit the text directly inside of the text input.\n * Defaults to `false`.\n * @platform android\n */\n disableFullscreenUI?: ?boolean,\n\n importantForAutofill?: ?(\n | 'auto'\n | 'no'\n | 'noExcludeDescendants'\n | 'yes'\n | 'yesExcludeDescendants'\n ),\n\n /**\n * If defined, the provided image resource will be rendered on the left.\n * The image resource must be inside `/android/app/src/main/res/drawable` and referenced\n * like\n * ```\n * \n * ```\n * @platform android\n */\n inlineImageLeft?: ?string,\n\n /**\n * Padding between the inline image, if any, and the text input itself.\n * @platform android\n */\n inlineImagePadding?: ?number,\n\n /**\n * Sets the number of lines for a `TextInput`. Use it with multiline set to\n * `true` to be able to fill the lines.\n * @platform android\n */\n numberOfLines?: ?number,\n\n /**\n * Sets the return key to the label. Use it instead of `returnKeyType`.\n * @platform android\n */\n returnKeyLabel?: ?string,\n\n /**\n * Sets the number of rows for a `TextInput`. Use it with multiline set to\n * `true` to be able to fill the lines.\n * @platform android\n */\n rows?: ?number,\n\n /**\n * When `false`, it will prevent the soft keyboard from showing when the field is focused.\n * Defaults to `true`.\n */\n showSoftInputOnFocus?: ?boolean,\n\n /**\n * Set text break strategy on Android API Level 23+, possible values are `simple`, `highQuality`, `balanced`\n * The default value is `simple`.\n * @platform android\n */\n textBreakStrategy?: ?('simple' | 'highQuality' | 'balanced'),\n\n /**\n * The color of the `TextInput` underline.\n * @platform android\n */\n underlineColorAndroid?: ?ColorValue,\n|}>;\n\nexport type Props = $ReadOnly<{|\n ...$Diff>,\n ...IOSProps,\n ...AndroidProps,\n\n /**\n * Can tell `TextInput` to automatically capitalize certain characters.\n *\n * - `characters`: all characters.\n * - `words`: first letter of each word.\n * - `sentences`: first letter of each sentence (*default*).\n * - `none`: don't auto capitalize anything.\n */\n autoCapitalize?: ?AutoCapitalize,\n\n /**\n * Specifies autocomplete hints for the system, so it can provide autofill.\n * On Android, the system will always attempt to offer autofill by using heuristics to identify the type of content.\n * To disable autocomplete, set autoComplete to off.\n *\n * The following values work across platforms:\n *\n * - `additional-name`\n * - `address-line1`\n * - `address-line2`\n * - `cc-number`\n * - `country`\n * - `current-password`\n * - `email`\n * - `family-name`\n * - `given-name`\n * - `honorific-prefix`\n * - `honorific-suffix`\n * - `name`\n * - `new-password`\n * - `off`\n * - `one-time-code`\n * - `postal-code`\n * - `street-address`\n * - `tel`\n * - `username`\n *\n * The following values work on iOS only:\n *\n * - `nickname`\n * - `organization`\n * - `organization-title`\n * - `url`\n *\n * The following values work on Android only:\n *\n * - `birthdate-day`\n * - `birthdate-full`\n * - `birthdate-month`\n * - `birthdate-year`\n * - `cc-csc`\n * - `cc-exp`\n * - `cc-exp-day`\n * - `cc-exp-month`\n * - `cc-exp-year`\n * - `gender`\n * - `name-family`\n * - `name-given`\n * - `name-middle`\n * - `name-middle-initial`\n * - `name-prefix`\n * - `name-suffix`\n * - `password`\n * - `password-new`\n * - `postal-address`\n * - `postal-address-country`\n * - `postal-address-extended`\n * - `postal-address-extended-postal-code`\n * - `postal-address-locality`\n * - `postal-address-region`\n * - `sms-otp`\n * - `tel-country-code`\n * - `tel-national`\n * - `tel-device`\n * - `username-new`\n */\n autoComplete?: ?(\n | 'additional-name'\n | 'address-line1'\n | 'address-line2'\n | 'birthdate-day'\n | 'birthdate-full'\n | 'birthdate-month'\n | 'birthdate-year'\n | 'cc-csc'\n | 'cc-exp'\n | 'cc-exp-day'\n | 'cc-exp-month'\n | 'cc-exp-year'\n | 'cc-number'\n | 'country'\n | 'current-password'\n | 'email'\n | 'family-name'\n | 'gender'\n | 'given-name'\n | 'honorific-prefix'\n | 'honorific-suffix'\n | 'name'\n | 'name-family'\n | 'name-given'\n | 'name-middle'\n | 'name-middle-initial'\n | 'name-prefix'\n | 'name-suffix'\n | 'new-password'\n | 'nickname'\n | 'one-time-code'\n | 'organization'\n | 'organization-title'\n | 'password'\n | 'password-new'\n | 'postal-address'\n | 'postal-address-country'\n | 'postal-address-extended'\n | 'postal-address-extended-postal-code'\n | 'postal-address-locality'\n | 'postal-address-region'\n | 'postal-code'\n | 'street-address'\n | 'sms-otp'\n | 'tel'\n | 'tel-country-code'\n | 'tel-national'\n | 'tel-device'\n | 'url'\n | 'username'\n | 'username-new'\n | 'off'\n ),\n\n /**\n * If `false`, disables auto-correct. The default value is `true`.\n */\n autoCorrect?: ?boolean,\n\n /**\n * If `true`, focuses the input on `componentDidMount`.\n * The default value is `false`.\n */\n autoFocus?: ?boolean,\n\n /**\n * Specifies whether fonts should scale to respect Text Size accessibility settings. The\n * default is `true`.\n */\n allowFontScaling?: ?boolean,\n\n /**\n * If `true`, caret is hidden. The default value is `false`.\n *\n * On Android devices manufactured by Xiaomi with Android Q,\n * when keyboardType equals 'email-address'this will be set\n * in native to 'true' to prevent a system related crash. This\n * will cause cursor to be disabled as a side-effect.\n *\n */\n caretHidden?: ?boolean,\n\n /*\n * If `true`, contextMenuHidden is hidden. The default value is `false`.\n */\n contextMenuHidden?: ?boolean,\n\n /**\n * Provides an initial value that will change when the user starts typing.\n * Useful for simple use-cases where you do not want to deal with listening\n * to events and updating the value prop to keep the controlled state in sync.\n */\n defaultValue?: ?Stringish,\n\n /**\n * If `false`, text is not editable. The default value is `true`.\n */\n editable?: ?boolean,\n\n forwardedRef?: ?ReactRefSetter,\n\n /**\n * `enterKeyHint` defines what action label (or icon) to present for the enter key on virtual keyboards.\n *\n * The following values is supported:\n *\n * - `enter`\n * - `done`\n * - `go`\n * - `next`\n * - `previous`\n * - `search`\n * - `send`\n */\n enterKeyHint?: ?enterKeyHintType,\n\n /**\n * `inputMode` works like the `inputmode` attribute in HTML, it determines which\n * keyboard to open, e.g.`numeric` and has precedence over keyboardType\n *\n * Support the following values:\n *\n * - `none`\n * - `text`\n * - `decimal`\n * - `numeric`\n * - `tel`\n * - `search`\n * - `email`\n * - `url`\n */\n inputMode?: ?InputMode,\n\n /**\n * Determines which keyboard to open, e.g.`numeric`.\n *\n * The following values work across platforms:\n *\n * - `default`\n * - `numeric`\n * - `number-pad`\n * - `decimal-pad`\n * - `email-address`\n * - `phone-pad`\n * - `url`\n *\n * *iOS Only*\n *\n * The following values work on iOS only:\n *\n * - `ascii-capable`\n * - `numbers-and-punctuation`\n * - `name-phone-pad`\n * - `twitter`\n * - `web-search`\n *\n * *Android Only*\n *\n * The following values work on Android only:\n *\n * - `visible-password`\n *\n */\n keyboardType?: ?KeyboardType,\n\n /**\n * Specifies largest possible scale a font can reach when `allowFontScaling` is enabled.\n * Possible values:\n * `null/undefined` (default): inherit from the parent node or the global default (0)\n * `0`: no max, ignore parent/global default\n * `>= 1`: sets the maxFontSizeMultiplier of this node to this value\n */\n maxFontSizeMultiplier?: ?number,\n\n /**\n * Limits the maximum number of characters that can be entered. Use this\n * instead of implementing the logic in JS to avoid flicker.\n */\n maxLength?: ?number,\n\n /**\n * If `true`, the text input can be multiple lines.\n * The default value is `false`.\n */\n multiline?: ?boolean,\n\n /**\n * Callback that is called when the text input is blurred.\n */\n onBlur?: ?(e: BlurEvent) => mixed,\n\n /**\n * Callback that is called when the text input's text changes.\n */\n onChange?: ?(e: ChangeEvent) => mixed,\n\n /**\n * DANGER: this API is not stable and will change in the future.\n *\n * Callback will be called on the main thread and may result in dropped frames.\n * Callback that is called when the text input's text changes.\n *\n * @platform ios\n */\n unstable_onChangeSync?: ?(e: ChangeEvent) => mixed,\n\n /**\n * Callback that is called when the text input's text changes.\n * Changed text is passed as an argument to the callback handler.\n */\n onChangeText?: ?(text: string) => mixed,\n\n /**\n * DANGER: this API is not stable and will change in the future.\n *\n * Callback will be called on the main thread and may result in dropped frames.\n * Callback that is called when the text input's text changes.\n * Changed text is passed as an argument to the callback handler.\n *\n * @platform ios\n */\n unstable_onChangeTextSync?: ?(text: string) => mixed,\n\n /**\n * Callback that is called when the text input's content size changes.\n * This will be called with\n * `{ nativeEvent: { contentSize: { width, height } } }`.\n *\n * Only called for multiline text inputs.\n */\n onContentSizeChange?: ?(e: ContentSizeChangeEvent) => mixed,\n\n /**\n * Callback that is called when text input ends.\n */\n onEndEditing?: ?(e: EditingEvent) => mixed,\n\n /**\n * Callback that is called when the text input is focused.\n */\n onFocus?: ?(e: FocusEvent) => mixed,\n\n /**\n * Callback that is called when a key is pressed.\n * This will be called with `{ nativeEvent: { key: keyValue } }`\n * where `keyValue` is `'Enter'` or `'Backspace'` for respective keys and\n * the typed-in character otherwise including `' '` for space.\n * Fires before `onChange` callbacks.\n */\n onKeyPress?: ?(e: KeyPressEvent) => mixed,\n\n /**\n * DANGER: this API is not stable and will change in the future.\n *\n * Callback will be called on the main thread and may result in dropped frames.\n *\n * Callback that is called when a key is pressed.\n * This will be called with `{ nativeEvent: { key: keyValue } }`\n * where `keyValue` is `'Enter'` or `'Backspace'` for respective keys and\n * the typed-in character otherwise including `' '` for space.\n * Fires before `onChange` callbacks.\n *\n * @platform ios\n */\n unstable_onKeyPressSync?: ?(e: KeyPressEvent) => mixed,\n\n /**\n * Called when a touch is engaged.\n */\n onPressIn?: ?(event: PressEvent) => mixed,\n\n /**\n * Called when a touch is released.\n */\n onPressOut?: ?(event: PressEvent) => mixed,\n\n /**\n * Callback that is called when the text input selection is changed.\n * This will be called with\n * `{ nativeEvent: { selection: { start, end } } }`.\n */\n onSelectionChange?: ?(e: SelectionChangeEvent) => mixed,\n\n /**\n * Callback that is called when the text input's submit button is pressed.\n * Invalid if `multiline={true}` is specified.\n */\n onSubmitEditing?: ?(e: EditingEvent) => mixed,\n\n /**\n * Invoked on content scroll with `{ nativeEvent: { contentOffset: { x, y } } }`.\n * May also contain other properties from ScrollEvent but on Android contentSize\n * is not provided for performance reasons.\n */\n onScroll?: ?(e: ScrollEvent) => mixed,\n\n /**\n * The string that will be rendered before text input has been entered.\n */\n placeholder?: ?Stringish,\n\n /**\n * The text color of the placeholder string.\n */\n placeholderTextColor?: ?ColorValue,\n\n /** `readOnly` works like the `readonly` attribute in HTML.\n * If `true`, text is not editable. The default value is `false`.\n * See https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/readonly\n * for more details.\n */\n readOnly?: ?boolean,\n\n /**\n * Determines how the return key should look. On Android you can also use\n * `returnKeyLabel`.\n *\n * *Cross platform*\n *\n * The following values work across platforms:\n *\n * - `done`\n * - `go`\n * - `next`\n * - `search`\n * - `send`\n *\n * *Android Only*\n *\n * The following values work on Android only:\n *\n * - `none`\n * - `previous`\n *\n * *iOS Only*\n *\n * The following values work on iOS only:\n *\n * - `default`\n * - `emergency-call`\n * - `google`\n * - `join`\n * - `route`\n * - `yahoo`\n */\n returnKeyType?: ?ReturnKeyType,\n\n /**\n * If `true`, the text input obscures the text entered so that sensitive text\n * like passwords stay secure. The default value is `false`. Does not work with 'multiline={true}'.\n */\n secureTextEntry?: ?boolean,\n\n /**\n * The start and end of the text input's selection. Set start and end to\n * the same value to position the cursor.\n */\n selection?: ?$ReadOnly<{|\n start: number,\n end?: ?number,\n |}>,\n\n /**\n * The highlight and cursor color of the text input.\n */\n selectionColor?: ?ColorValue,\n\n /**\n * If `true`, all text will automatically be selected on focus.\n */\n selectTextOnFocus?: ?boolean,\n\n /**\n * If `true`, the text field will blur when submitted.\n * The default value is true for single-line fields and false for\n * multiline fields. Note that for multiline fields, setting `blurOnSubmit`\n * to `true` means that pressing return will blur the field and trigger the\n * `onSubmitEditing` event instead of inserting a newline into the field.\n *\n * @deprecated\n * Note that `submitBehavior` now takes the place of `blurOnSubmit` and will\n * override any behavior defined by `blurOnSubmit`.\n * @see submitBehavior\n */\n blurOnSubmit?: ?boolean,\n\n /**\n * When the return key is pressed,\n *\n * For single line inputs:\n *\n * - `'newline`' defaults to `'blurAndSubmit'`\n * - `undefined` defaults to `'blurAndSubmit'`\n *\n * For multiline inputs:\n *\n * - `'newline'` adds a newline\n * - `undefined` defaults to `'newline'`\n *\n * For both single line and multiline inputs:\n *\n * - `'submit'` will only send a submit event and not blur the input\n * - `'blurAndSubmit`' will both blur the input and send a submit event\n */\n submitBehavior?: ?SubmitBehavior,\n\n /**\n * Note that not all Text styles are supported, an incomplete list of what is not supported includes:\n *\n * - `borderLeftWidth`\n * - `borderTopWidth`\n * - `borderRightWidth`\n * - `borderBottomWidth`\n * - `borderTopLeftRadius`\n * - `borderTopRightRadius`\n * - `borderBottomRightRadius`\n * - `borderBottomLeftRadius`\n *\n * see [Issue#7070](https://github.com/facebook/react-native/issues/7070)\n * for more detail.\n *\n * [Styles](docs/style.html)\n */\n style?: ?TextStyleProp,\n\n /**\n * The value to show for the text input. `TextInput` is a controlled\n * component, which means the native value will be forced to match this\n * value prop if provided. For most uses, this works great, but in some\n * cases this may cause flickering - one common cause is preventing edits\n * by keeping value the same. In addition to simply setting the same value,\n * either set `editable={false}`, or set/update `maxLength` to prevent\n * unwanted edits without flicker.\n */\n value?: ?Stringish,\n|}>;\n\nconst emptyFunctionThatReturnsTrue = () => true;\n\n/**\n * A foundational component for inputting text into the app via a\n * keyboard. Props provide configurability for several features, such as\n * auto-correction, auto-capitalization, placeholder text, and different keyboard\n * types, such as a numeric keypad.\n *\n * The simplest use case is to plop down a `TextInput` and subscribe to the\n * `onChangeText` events to read the user input. There are also other events,\n * such as `onSubmitEditing` and `onFocus` that can be subscribed to. A simple\n * example:\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react';\n * import { AppRegistry, TextInput } from 'react-native';\n *\n * export default class UselessTextInput extends Component {\n * constructor(props) {\n * super(props);\n * this.state = { text: 'Useless Placeholder' };\n * }\n *\n * render() {\n * return (\n * this.setState({text})}\n * value={this.state.text}\n * />\n * );\n * }\n * }\n *\n * // skip this line if using Create React Native App\n * AppRegistry.registerComponent('AwesomeProject', () => UselessTextInput);\n * ```\n *\n * Two methods exposed via the native element are .focus() and .blur() that\n * will focus or blur the TextInput programmatically.\n *\n * Note that some props are only available with `multiline={true/false}`.\n * Additionally, border styles that apply to only one side of the element\n * (e.g., `borderBottomColor`, `borderLeftWidth`, etc.) will not be applied if\n * `multiline=false`. To achieve the same effect, you can wrap your `TextInput`\n * in a `View`:\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react';\n * import { AppRegistry, View, TextInput } from 'react-native';\n *\n * class UselessTextInput extends Component {\n * render() {\n * return (\n * \n * );\n * }\n * }\n *\n * export default class UselessTextInputMultiline extends Component {\n * constructor(props) {\n * super(props);\n * this.state = {\n * text: 'Useless Multiline Placeholder',\n * };\n * }\n *\n * // If you type something in the text box that is a color, the background will change to that\n * // color.\n * render() {\n * return (\n * \n * this.setState({text})}\n * value={this.state.text}\n * />\n * \n * );\n * }\n * }\n *\n * // skip these lines if using Create React Native App\n * AppRegistry.registerComponent(\n * 'AwesomeProject',\n * () => UselessTextInputMultiline\n * );\n * ```\n *\n * `TextInput` has by default a border at the bottom of its view. This border\n * has its padding set by the background image provided by the system, and it\n * cannot be changed. Solutions to avoid this is to either not set height\n * explicitly, case in which the system will take care of displaying the border\n * in the correct position, or to not display the border by setting\n * `underlineColorAndroid` to transparent.\n *\n * Note that on Android performing text selection in input can change\n * app's activity `windowSoftInputMode` param to `adjustResize`.\n * This may cause issues with components that have position: 'absolute'\n * while keyboard is active. To avoid this behavior either specify `windowSoftInputMode`\n * in AndroidManifest.xml ( https://developer.android.com/guide/topics/manifest/activity-element.html )\n * or control this param programmatically with native code.\n *\n */\nfunction InternalTextInput(props: Props): React.Node {\n const {\n 'aria-busy': ariaBusy,\n 'aria-checked': ariaChecked,\n 'aria-disabled': ariaDisabled,\n 'aria-expanded': ariaExpanded,\n 'aria-selected': ariaSelected,\n accessibilityState,\n id,\n tabIndex,\n selection: propsSelection,\n ...otherProps\n } = props;\n\n const inputRef = useRef>>(null);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const selection: ?Selection =\n propsSelection == null\n ? null\n : {\n start: propsSelection.start,\n end: propsSelection.end ?? propsSelection.start,\n };\n\n const [mostRecentEventCount, setMostRecentEventCount] = useState(0);\n\n const [lastNativeText, setLastNativeText] = useState(props.value);\n const [lastNativeSelectionState, setLastNativeSelection] = useState<{|\n selection: ?Selection,\n mostRecentEventCount: number,\n |}>({selection, mostRecentEventCount});\n\n const lastNativeSelection = lastNativeSelectionState.selection;\n\n let viewCommands;\n if (AndroidTextInputCommands) {\n viewCommands = AndroidTextInputCommands;\n } else {\n viewCommands =\n props.multiline === true\n ? RCTMultilineTextInputNativeCommands\n : RCTSinglelineTextInputNativeCommands;\n }\n\n const text =\n typeof props.value === 'string'\n ? props.value\n : typeof props.defaultValue === 'string'\n ? props.defaultValue\n : '';\n\n // This is necessary in case native updates the text and JS decides\n // that the update should be ignored and we should stick with the value\n // that we have in JS.\n useLayoutEffect(() => {\n const nativeUpdate: {text?: string, selection?: Selection} = {};\n\n if (lastNativeText !== props.value && typeof props.value === 'string') {\n nativeUpdate.text = props.value;\n setLastNativeText(props.value);\n }\n\n if (\n selection &&\n lastNativeSelection &&\n (lastNativeSelection.start !== selection.start ||\n lastNativeSelection.end !== selection.end)\n ) {\n nativeUpdate.selection = selection;\n setLastNativeSelection({selection, mostRecentEventCount});\n }\n\n if (Object.keys(nativeUpdate).length === 0) {\n return;\n }\n\n if (inputRef.current != null) {\n viewCommands.setTextAndSelection(\n inputRef.current,\n mostRecentEventCount,\n text,\n selection?.start ?? -1,\n selection?.end ?? -1,\n );\n }\n }, [\n mostRecentEventCount,\n inputRef,\n props.value,\n props.defaultValue,\n lastNativeText,\n selection,\n lastNativeSelection,\n text,\n viewCommands,\n ]);\n\n useLayoutEffect(() => {\n const inputRefValue = inputRef.current;\n\n if (inputRefValue != null) {\n TextInputState.registerInput(inputRefValue);\n\n return () => {\n TextInputState.unregisterInput(inputRefValue);\n\n if (TextInputState.currentlyFocusedInput() === inputRefValue) {\n nullthrows(inputRefValue).blur();\n }\n };\n }\n }, [inputRef]);\n\n const setLocalRef = useCallback(\n (instance: TextInputInstance | null) => {\n inputRef.current = instance;\n\n /*\n Hi reader from the future. I'm sorry for this.\n\n This is a hack. Ideally we would forwardRef to the underlying\n host component. However, since TextInput has it's own methods that can be\n called as well, if we used the standard forwardRef then these\n methods wouldn't be accessible and thus be a breaking change.\n\n We have a couple of options of how to handle this:\n - Return a new ref with everything we methods from both. This is problematic\n because we need React to also know it is a host component which requires\n internals of the class implementation of the ref.\n - Break the API and have some other way to call one set of the methods or\n the other. This is our long term approach as we want to eventually\n get the methods on host components off the ref. So instead of calling\n ref.measure() you might call ReactNative.measure(ref). This would hopefully\n let the ref for TextInput then have the methods like `.clear`. Or we do it\n the other way and make it TextInput.clear(textInputRef) which would be fine\n too. Either way though is a breaking change that is longer term.\n - Mutate this ref. :( Gross, but accomplishes what we need in the meantime\n before we can get to the long term breaking change.\n */\n if (instance != null) {\n // $FlowFixMe[incompatible-use] - See the explanation above.\n Object.assign(instance, {\n clear(): void {\n if (inputRef.current != null) {\n viewCommands.setTextAndSelection(\n inputRef.current,\n mostRecentEventCount,\n '',\n 0,\n 0,\n );\n }\n },\n // TODO: Fix this returning true on null === null, when no input is focused\n isFocused(): boolean {\n return TextInputState.currentlyFocusedInput() === inputRef.current;\n },\n getNativeRef(): ?React.ElementRef> {\n return inputRef.current;\n },\n setSelection(start: number, end: number): void {\n if (inputRef.current != null) {\n viewCommands.setTextAndSelection(\n inputRef.current,\n mostRecentEventCount,\n null,\n start,\n end,\n );\n }\n },\n });\n }\n },\n [mostRecentEventCount, viewCommands],\n );\n\n const ref = useMergeRefs(\n setLocalRef,\n props.forwardedRef,\n );\n\n const _onChange = (event: ChangeEvent) => {\n const currentText = event.nativeEvent.text;\n props.onChange && props.onChange(event);\n props.onChangeText && props.onChangeText(currentText);\n\n if (inputRef.current == null) {\n // calling `props.onChange` or `props.onChangeText`\n // may clean up the input itself. Exits here.\n return;\n }\n\n setLastNativeText(currentText);\n // This must happen last, after we call setLastNativeText.\n // Different ordering can cause bugs when editing AndroidTextInputs\n // with multiple Fragments.\n // We must update this so that controlled input updates work.\n setMostRecentEventCount(event.nativeEvent.eventCount);\n };\n\n const _onChangeSync = (event: ChangeEvent) => {\n const currentText = event.nativeEvent.text;\n props.unstable_onChangeSync && props.unstable_onChangeSync(event);\n props.unstable_onChangeTextSync &&\n props.unstable_onChangeTextSync(currentText);\n\n if (inputRef.current == null) {\n // calling `props.onChange` or `props.onChangeText`\n // may clean up the input itself. Exits here.\n return;\n }\n\n setLastNativeText(currentText);\n // This must happen last, after we call setLastNativeText.\n // Different ordering can cause bugs when editing AndroidTextInputs\n // with multiple Fragments.\n // We must update this so that controlled input updates work.\n setMostRecentEventCount(event.nativeEvent.eventCount);\n };\n\n const _onSelectionChange = (event: SelectionChangeEvent) => {\n props.onSelectionChange && props.onSelectionChange(event);\n\n if (inputRef.current == null) {\n // calling `props.onSelectionChange`\n // may clean up the input itself. Exits here.\n return;\n }\n\n setLastNativeSelection({\n selection: event.nativeEvent.selection,\n mostRecentEventCount,\n });\n };\n\n const _onFocus = (event: FocusEvent) => {\n TextInputState.focusInput(inputRef.current);\n if (props.onFocus) {\n props.onFocus(event);\n }\n };\n\n const _onBlur = (event: BlurEvent) => {\n TextInputState.blurInput(inputRef.current);\n if (props.onBlur) {\n props.onBlur(event);\n }\n };\n\n const _onScroll = (event: ScrollEvent) => {\n props.onScroll && props.onScroll(event);\n };\n\n let textInput = null;\n\n const multiline = props.multiline ?? false;\n\n let submitBehavior: SubmitBehavior;\n if (props.submitBehavior != null) {\n // `submitBehavior` is set explicitly\n if (!multiline && props.submitBehavior === 'newline') {\n // For single line text inputs, `'newline'` is not a valid option\n submitBehavior = 'blurAndSubmit';\n } else {\n submitBehavior = props.submitBehavior;\n }\n } else if (multiline) {\n if (props.blurOnSubmit === true) {\n submitBehavior = 'blurAndSubmit';\n } else {\n submitBehavior = 'newline';\n }\n } else {\n // Single line\n if (props.blurOnSubmit !== false) {\n submitBehavior = 'blurAndSubmit';\n } else {\n submitBehavior = 'submit';\n }\n }\n\n const accessible = props.accessible !== false;\n const focusable = props.focusable !== false;\n\n const config = React.useMemo(\n () => ({\n onPress: (event: PressEvent) => {\n if (props.editable !== false) {\n if (inputRef.current != null) {\n inputRef.current.focus();\n }\n }\n },\n onPressIn: props.onPressIn,\n onPressOut: props.onPressOut,\n cancelable:\n Platform.OS === 'ios' ? !props.rejectResponderTermination : null,\n }),\n [\n props.editable,\n props.onPressIn,\n props.onPressOut,\n props.rejectResponderTermination,\n ],\n );\n\n // Hide caret during test runs due to a flashing caret\n // makes screenshot tests flakey\n let caretHidden = props.caretHidden;\n if (Platform.isTesting) {\n caretHidden = true;\n }\n\n // TextInput handles onBlur and onFocus events\n // so omitting onBlur and onFocus pressability handlers here.\n const {onBlur, onFocus, ...eventHandlers} = usePressability(config) || {};\n\n let _accessibilityState;\n if (\n accessibilityState != null ||\n ariaBusy != null ||\n ariaChecked != null ||\n ariaDisabled != null ||\n ariaExpanded != null ||\n ariaSelected != null\n ) {\n _accessibilityState = {\n busy: ariaBusy ?? accessibilityState?.busy,\n checked: ariaChecked ?? accessibilityState?.checked,\n disabled: ariaDisabled ?? accessibilityState?.disabled,\n expanded: ariaExpanded ?? accessibilityState?.expanded,\n selected: ariaSelected ?? accessibilityState?.selected,\n };\n }\n\n // $FlowFixMe[underconstrained-implicit-instantiation]\n let style = flattenStyle(props.style);\n\n if (Platform.OS === 'ios') {\n const RCTTextInputView =\n props.multiline === true\n ? RCTMultilineTextInputView\n : RCTSinglelineTextInputView;\n\n style = props.multiline === true ? [styles.multilineInput, style] : style;\n\n const useOnChangeSync =\n (props.unstable_onChangeSync || props.unstable_onChangeTextSync) &&\n !(props.onChange || props.onChangeText);\n\n textInput = (\n \n );\n } else if (Platform.OS === 'android') {\n const autoCapitalize = props.autoCapitalize || 'sentences';\n const _accessibilityLabelledBy =\n props?.['aria-labelledby'] ?? props?.accessibilityLabelledBy;\n const placeholder = props.placeholder ?? '';\n let children = props.children;\n const childCount = React.Children.count(children);\n invariant(\n !(props.value != null && childCount),\n 'Cannot specify both value and children.',\n );\n if (childCount > 1) {\n children = {children};\n }\n\n textInput = (\n /* $FlowFixMe[prop-missing] the types for AndroidTextInput don't match up\n * exactly with the props for TextInput. This will need to get fixed */\n /* $FlowFixMe[incompatible-type] the types for AndroidTextInput don't\n * match up exactly with the props for TextInput. This will need to get\n * fixed */\n /* $FlowFixMe[incompatible-type-arg] the types for AndroidTextInput don't\n * match up exactly with the props for TextInput. This will need to get\n * fixed */\n \n );\n }\n return (\n {textInput}\n );\n}\n\nconst enterKeyHintToReturnTypeMap = {\n enter: 'default',\n done: 'done',\n go: 'go',\n next: 'next',\n previous: 'previous',\n search: 'search',\n send: 'send',\n};\n\nconst inputModeToKeyboardTypeMap = {\n none: 'default',\n text: 'default',\n decimal: 'decimal-pad',\n numeric: 'number-pad',\n tel: 'phone-pad',\n search: Platform.OS === 'ios' ? 'web-search' : 'default',\n email: 'email-address',\n url: 'url',\n};\n\n// Map HTML autocomplete values to Android autoComplete values\nconst autoCompleteWebToAutoCompleteAndroidMap = {\n 'address-line1': 'postal-address-region',\n 'address-line2': 'postal-address-locality',\n bday: 'birthdate-full',\n 'bday-day': 'birthdate-day',\n 'bday-month': 'birthdate-month',\n 'bday-year': 'birthdate-year',\n 'cc-csc': 'cc-csc',\n 'cc-exp': 'cc-exp',\n 'cc-exp-month': 'cc-exp-month',\n 'cc-exp-year': 'cc-exp-year',\n 'cc-number': 'cc-number',\n country: 'postal-address-country',\n 'current-password': 'password',\n email: 'email',\n 'honorific-prefix': 'name-prefix',\n 'honorific-suffix': 'name-suffix',\n name: 'name',\n 'additional-name': 'name-middle',\n 'family-name': 'name-family',\n 'given-name': 'name-given',\n 'new-password': 'password-new',\n off: 'off',\n 'one-time-code': 'sms-otp',\n 'postal-code': 'postal-code',\n sex: 'gender',\n 'street-address': 'street-address',\n tel: 'tel',\n 'tel-country-code': 'tel-country-code',\n 'tel-national': 'tel-national',\n username: 'username',\n};\n\n// Map HTML autocomplete values to iOS textContentType values\nconst autoCompleteWebToTextContentTypeMap = {\n 'address-line1': 'streetAddressLine1',\n 'address-line2': 'streetAddressLine2',\n 'cc-number': 'creditCardNumber',\n 'current-password': 'password',\n country: 'countryName',\n email: 'emailAddress',\n name: 'name',\n 'additional-name': 'middleName',\n 'family-name': 'familyName',\n 'given-name': 'givenName',\n nickname: 'nickname',\n 'honorific-prefix': 'namePrefix',\n 'honorific-suffix': 'nameSuffix',\n 'new-password': 'newPassword',\n off: 'none',\n 'one-time-code': 'oneTimeCode',\n organization: 'organizationName',\n 'organization-title': 'jobTitle',\n 'postal-code': 'postalCode',\n 'street-address': 'fullStreetAddress',\n tel: 'telephoneNumber',\n url: 'URL',\n username: 'username',\n};\n\nconst ExportedForwardRef: React.AbstractComponent<\n React.ElementConfig,\n TextInputInstance,\n> = React.forwardRef(function TextInput(\n {\n allowFontScaling = true,\n rejectResponderTermination = true,\n underlineColorAndroid = 'transparent',\n autoComplete,\n textContentType,\n readOnly,\n editable,\n enterKeyHint,\n returnKeyType,\n inputMode,\n showSoftInputOnFocus,\n keyboardType,\n ...restProps\n },\n forwardedRef: ReactRefSetter,\n) {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n let style = flattenStyle(restProps.style);\n\n if (style?.verticalAlign != null) {\n style.textAlignVertical =\n verticalAlignToTextAlignVerticalMap[style.verticalAlign];\n delete style.verticalAlign;\n }\n\n return (\n \n );\n});\n\nExportedForwardRef.displayName = 'TextInput';\n\n/**\n * Switch to `deprecated-react-native-prop-types` for compatibility with future\n * releases. This is deprecated and will be removed in the future.\n */\nExportedForwardRef.propTypes =\n require('deprecated-react-native-prop-types').TextInputPropTypes;\n\n// $FlowFixMe[prop-missing]\nExportedForwardRef.State = {\n currentlyFocusedInput: TextInputState.currentlyFocusedInput,\n\n currentlyFocusedField: TextInputState.currentlyFocusedField,\n focusTextInput: TextInputState.focusTextInput,\n blurTextInput: TextInputState.blurTextInput,\n};\n\nexport type TextInputComponentStatics = $ReadOnly<{|\n State: $ReadOnly<{|\n currentlyFocusedInput: typeof TextInputState.currentlyFocusedInput,\n currentlyFocusedField: typeof TextInputState.currentlyFocusedField,\n focusTextInput: typeof TextInputState.focusTextInput,\n blurTextInput: typeof TextInputState.blurTextInput,\n |}>,\n|}>;\n\nconst styles = StyleSheet.create({\n multilineInput: {\n // This default top inset makes RCTMultilineTextInputView seem as close as possible\n // to single-line RCTSinglelineTextInputView defaults, using the system defaults\n // of font size 17 and a height of 31 points.\n paddingTop: 5,\n },\n});\n\nconst verticalAlignToTextAlignVerticalMap = {\n auto: 'auto',\n top: 'top',\n bottom: 'bottom',\n middle: 'center',\n};\n\n// $FlowFixMe[unclear-type] Unclear type. Using `any` type is not safe.\nmodule.exports = ((ExportedForwardRef: any): TextInputType);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {TextInputNativeCommands} from './TextInputNativeCommands';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport RCTTextInputViewConfig from './RCTTextInputViewConfig';\n\ntype NativeType = HostComponent;\n\ntype NativeCommands = TextInputNativeCommands;\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['focus', 'blur', 'setTextAndSelection'],\n});\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {\n uiViewClassName: 'RCTSinglelineTextInputView',\n ...RCTTextInputViewConfig,\n};\n\nconst SinglelineTextInputNativeComponent: HostComponent =\n NativeComponentRegistry.get(\n 'RCTSinglelineTextInputView',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\n// flowlint-next-line unclear-type:off\nexport default ((SinglelineTextInputNativeComponent: any): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {PartialViewConfig} from '../../Renderer/shims/ReactNativeTypes';\n\nimport {ConditionallyIgnoredEventHandlers} from '../../NativeComponent/ViewConfigIgnore';\n\ntype PartialViewConfigWithoutName = $Rest<\n PartialViewConfig,\n {uiViewClassName: string},\n>;\n\nconst RCTTextInputViewConfig = {\n bubblingEventTypes: {\n topBlur: {\n phasedRegistrationNames: {\n bubbled: 'onBlur',\n captured: 'onBlurCapture',\n },\n },\n topChange: {\n phasedRegistrationNames: {\n bubbled: 'onChange',\n captured: 'onChangeCapture',\n },\n },\n topContentSizeChange: {\n phasedRegistrationNames: {\n captured: 'onContentSizeChangeCapture',\n bubbled: 'onContentSizeChange',\n },\n },\n topEndEditing: {\n phasedRegistrationNames: {\n bubbled: 'onEndEditing',\n captured: 'onEndEditingCapture',\n },\n },\n topFocus: {\n phasedRegistrationNames: {\n bubbled: 'onFocus',\n captured: 'onFocusCapture',\n },\n },\n topKeyPress: {\n phasedRegistrationNames: {\n bubbled: 'onKeyPress',\n captured: 'onKeyPressCapture',\n },\n },\n topSubmitEditing: {\n phasedRegistrationNames: {\n bubbled: 'onSubmitEditing',\n captured: 'onSubmitEditingCapture',\n },\n },\n topTouchCancel: {\n phasedRegistrationNames: {\n bubbled: 'onTouchCancel',\n captured: 'onTouchCancelCapture',\n },\n },\n topTouchEnd: {\n phasedRegistrationNames: {\n bubbled: 'onTouchEnd',\n captured: 'onTouchEndCapture',\n },\n },\n\n topTouchMove: {\n phasedRegistrationNames: {\n bubbled: 'onTouchMove',\n captured: 'onTouchMoveCapture',\n },\n },\n },\n directEventTypes: {\n topTextInput: {\n registrationName: 'onTextInput',\n },\n topKeyPressSync: {\n registrationName: 'onKeyPressSync',\n },\n topScroll: {\n registrationName: 'onScroll',\n },\n topSelectionChange: {\n registrationName: 'onSelectionChange',\n },\n topChangeSync: {\n registrationName: 'onChangeSync',\n },\n },\n validAttributes: {\n fontSize: true,\n fontWeight: true,\n fontVariant: true,\n // flowlint-next-line untyped-import:off\n textShadowOffset: {diff: require('../../Utilities/differ/sizesDiffer')},\n allowFontScaling: true,\n fontStyle: true,\n textTransform: true,\n textAlign: true,\n fontFamily: true,\n lineHeight: true,\n isHighlighted: true,\n writingDirection: true,\n textDecorationLine: true,\n textShadowRadius: true,\n letterSpacing: true,\n textDecorationStyle: true,\n textDecorationColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n color: {process: require('../../StyleSheet/processColor').default},\n maxFontSizeMultiplier: true,\n textShadowColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n editable: true,\n inputAccessoryViewID: true,\n caretHidden: true,\n enablesReturnKeyAutomatically: true,\n placeholderTextColor: {\n process: require('../../StyleSheet/processColor').default,\n },\n clearButtonMode: true,\n keyboardType: true,\n selection: true,\n returnKeyType: true,\n submitBehavior: true,\n mostRecentEventCount: true,\n scrollEnabled: true,\n selectionColor: {process: require('../../StyleSheet/processColor').default},\n contextMenuHidden: true,\n secureTextEntry: true,\n placeholder: true,\n autoCorrect: true,\n multiline: true,\n textContentType: true,\n maxLength: true,\n autoCapitalize: true,\n keyboardAppearance: true,\n passwordRules: true,\n spellCheck: true,\n selectTextOnFocus: true,\n text: true,\n clearTextOnFocus: true,\n showSoftInputOnFocus: true,\n autoFocus: true,\n lineBreakStrategyIOS: true,\n ...ConditionallyIgnoredEventHandlers({\n onChange: true,\n onSelectionChange: true,\n onContentSizeChange: true,\n onScroll: true,\n onChangeSync: true,\n onKeyPressSync: true,\n onTextInput: true,\n }),\n },\n};\n\nmodule.exports = (RCTTextInputViewConfig: PartialViewConfigWithoutName);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n HostComponent,\n PartialViewConfig,\n} from '../../Renderer/shims/ReactNativeTypes';\nimport type {TextInputNativeCommands} from './TextInputNativeCommands';\n\nimport * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';\nimport codegenNativeCommands from '../../Utilities/codegenNativeCommands';\nimport RCTTextInputViewConfig from './RCTTextInputViewConfig';\n\ntype NativeType = HostComponent;\n\ntype NativeCommands = TextInputNativeCommands;\n\nexport const Commands: NativeCommands = codegenNativeCommands({\n supportedCommands: ['focus', 'blur', 'setTextAndSelection'],\n});\n\nexport const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {\n uiViewClassName: 'RCTMultilineTextInputView',\n ...RCTTextInputViewConfig,\n validAttributes: {\n ...RCTTextInputViewConfig.validAttributes,\n dataDetectorTypes: true,\n },\n};\n\nconst MultilineTextInputNativeComponent: HostComponent =\n NativeComponentRegistry.get(\n 'RCTMultilineTextInputView',\n () => __INTERNAL_VIEW_CONFIG,\n );\n\n// flowlint-next-line unclear-type:off\nexport default ((MultilineTextInputNativeComponent: any): HostComponent);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {EdgeInsetsProp} from '../../StyleSheet/EdgeInsetsPropType';\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport type {PressEvent} from '../../Types/CoreEventTypes';\nimport type {TouchableType} from './Touchable.flow';\n\nimport {PressabilityDebugView} from '../../Pressability/PressabilityDebug';\nimport UIManager from '../../ReactNative/UIManager';\nimport Platform from '../../Utilities/Platform';\nimport SoundManager from '../Sound/SoundManager';\nimport BoundingDimensions from './BoundingDimensions';\nimport Position from './Position';\nimport * as React from 'react';\n\nconst extractSingleTouch = (nativeEvent: {\n +changedTouches: $ReadOnlyArray,\n +force?: number,\n +identifier: number,\n +locationX: number,\n +locationY: number,\n +pageX: number,\n +pageY: number,\n +target: ?number,\n +timestamp: number,\n +touches: $ReadOnlyArray,\n}) => {\n const touches = nativeEvent.touches;\n const changedTouches = nativeEvent.changedTouches;\n const hasTouches = touches && touches.length > 0;\n const hasChangedTouches = changedTouches && changedTouches.length > 0;\n\n return !hasTouches && hasChangedTouches\n ? changedTouches[0]\n : hasTouches\n ? touches[0]\n : nativeEvent;\n};\n\n/**\n * `Touchable`: Taps done right.\n *\n * You hook your `ResponderEventPlugin` events into `Touchable`. `Touchable`\n * will measure time/geometry and tells you when to give feedback to the user.\n *\n * ====================== Touchable Tutorial ===============================\n * The `Touchable` mixin helps you handle the \"press\" interaction. It analyzes\n * the geometry of elements, and observes when another responder (scroll view\n * etc) has stolen the touch lock. It notifies your component when it should\n * give feedback to the user. (bouncing/highlighting/unhighlighting).\n *\n * - When a touch was activated (typically you highlight)\n * - When a touch was deactivated (typically you unhighlight)\n * - When a touch was \"pressed\" - a touch ended while still within the geometry\n * of the element, and no other element (like scroller) has \"stolen\" touch\n * lock (\"responder\") (Typically you bounce the element).\n *\n * A good tap interaction isn't as simple as you might think. There should be a\n * slight delay before showing a highlight when starting a touch. If a\n * subsequent touch move exceeds the boundary of the element, it should\n * unhighlight, but if that same touch is brought back within the boundary, it\n * should rehighlight again. A touch can move in and out of that boundary\n * several times, each time toggling highlighting, but a \"press\" is only\n * triggered if that touch ends while within the element's boundary and no\n * scroller (or anything else) has stolen the lock on touches.\n *\n * To create a new type of component that handles interaction using the\n * `Touchable` mixin, do the following:\n *\n * - Initialize the `Touchable` state.\n *\n * getInitialState: function() {\n * return merge(this.touchableGetInitialState(), yourComponentState);\n * }\n *\n * - Choose the rendered component who's touches should start the interactive\n * sequence. On that rendered node, forward all `Touchable` responder\n * handlers. You can choose any rendered node you like. Choose a node whose\n * hit target you'd like to instigate the interaction sequence:\n *\n * // In render function:\n * return (\n * \n * \n * Even though the hit detection/interactions are triggered by the\n * wrapping (typically larger) node, we usually end up implementing\n * custom logic that highlights this inner one.\n * \n * \n * );\n *\n * - You may set up your own handlers for each of these events, so long as you\n * also invoke the `touchable*` handlers inside of your custom handler.\n *\n * - Implement the handlers on your component class in order to provide\n * feedback to the user. See documentation for each of these class methods\n * that you should implement.\n *\n * touchableHandlePress: function() {\n * this.performBounceAnimation(); // or whatever you want to do.\n * },\n * touchableHandleActivePressIn: function() {\n * this.beginHighlighting(...); // Whatever you like to convey activation\n * },\n * touchableHandleActivePressOut: function() {\n * this.endHighlighting(...); // Whatever you like to convey deactivation\n * },\n *\n * - There are more advanced methods you can implement (see documentation below):\n * touchableGetHighlightDelayMS: function() {\n * return 20;\n * }\n * // In practice, *always* use a predeclared constant (conserve memory).\n * touchableGetPressRectOffset: function() {\n * return {top: 20, left: 20, right: 20, bottom: 100};\n * }\n */\n\n/**\n * Touchable states.\n */\n\nconst States = {\n NOT_RESPONDER: 'NOT_RESPONDER', // Not the responder\n RESPONDER_INACTIVE_PRESS_IN: 'RESPONDER_INACTIVE_PRESS_IN', // Responder, inactive, in the `PressRect`\n RESPONDER_INACTIVE_PRESS_OUT: 'RESPONDER_INACTIVE_PRESS_OUT', // Responder, inactive, out of `PressRect`\n RESPONDER_ACTIVE_PRESS_IN: 'RESPONDER_ACTIVE_PRESS_IN', // Responder, active, in the `PressRect`\n RESPONDER_ACTIVE_PRESS_OUT: 'RESPONDER_ACTIVE_PRESS_OUT', // Responder, active, out of `PressRect`\n RESPONDER_ACTIVE_LONG_PRESS_IN: 'RESPONDER_ACTIVE_LONG_PRESS_IN', // Responder, active, in the `PressRect`, after long press threshold\n RESPONDER_ACTIVE_LONG_PRESS_OUT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT', // Responder, active, out of `PressRect`, after long press threshold\n ERROR: 'ERROR',\n};\n\ntype State =\n | typeof States.NOT_RESPONDER\n | typeof States.RESPONDER_INACTIVE_PRESS_IN\n | typeof States.RESPONDER_INACTIVE_PRESS_OUT\n | typeof States.RESPONDER_ACTIVE_PRESS_IN\n | typeof States.RESPONDER_ACTIVE_PRESS_OUT\n | typeof States.RESPONDER_ACTIVE_LONG_PRESS_IN\n | typeof States.RESPONDER_ACTIVE_LONG_PRESS_OUT\n | typeof States.ERROR;\n\n/*\n * Quick lookup map for states that are considered to be \"active\"\n */\n\nconst baseStatesConditions = {\n NOT_RESPONDER: false,\n RESPONDER_INACTIVE_PRESS_IN: false,\n RESPONDER_INACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_PRESS_IN: false,\n RESPONDER_ACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_LONG_PRESS_IN: false,\n RESPONDER_ACTIVE_LONG_PRESS_OUT: false,\n ERROR: false,\n};\n\nconst IsActive = {\n ...baseStatesConditions,\n RESPONDER_ACTIVE_PRESS_OUT: true,\n RESPONDER_ACTIVE_PRESS_IN: true,\n};\n\n/**\n * Quick lookup for states that are considered to be \"pressing\" and are\n * therefore eligible to result in a \"selection\" if the press stops.\n */\nconst IsPressingIn = {\n ...baseStatesConditions,\n RESPONDER_INACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_LONG_PRESS_IN: true,\n};\n\nconst IsLongPressingIn = {\n ...baseStatesConditions,\n RESPONDER_ACTIVE_LONG_PRESS_IN: true,\n};\n\n/**\n * Inputs to the state machine.\n */\nconst Signals = {\n DELAY: 'DELAY',\n RESPONDER_GRANT: 'RESPONDER_GRANT',\n RESPONDER_RELEASE: 'RESPONDER_RELEASE',\n RESPONDER_TERMINATED: 'RESPONDER_TERMINATED',\n ENTER_PRESS_RECT: 'ENTER_PRESS_RECT',\n LEAVE_PRESS_RECT: 'LEAVE_PRESS_RECT',\n LONG_PRESS_DETECTED: 'LONG_PRESS_DETECTED',\n};\n\ntype Signal =\n | typeof Signals.DELAY\n | typeof Signals.RESPONDER_GRANT\n | typeof Signals.RESPONDER_RELEASE\n | typeof Signals.RESPONDER_TERMINATED\n | typeof Signals.ENTER_PRESS_RECT\n | typeof Signals.LEAVE_PRESS_RECT\n | typeof Signals.LONG_PRESS_DETECTED;\n\n/**\n * Mapping from States x Signals => States\n */\nconst Transitions = {\n NOT_RESPONDER: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,\n RESPONDER_RELEASE: States.ERROR,\n RESPONDER_TERMINATED: States.ERROR,\n ENTER_PRESS_RECT: States.ERROR,\n LEAVE_PRESS_RECT: States.ERROR,\n LONG_PRESS_DETECTED: States.ERROR,\n },\n RESPONDER_INACTIVE_PRESS_IN: {\n DELAY: States.RESPONDER_ACTIVE_PRESS_IN,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR,\n },\n RESPONDER_INACTIVE_PRESS_OUT: {\n DELAY: States.RESPONDER_ACTIVE_PRESS_OUT,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR,\n },\n RESPONDER_ACTIVE_PRESS_IN: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n },\n RESPONDER_ACTIVE_PRESS_OUT: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR,\n },\n RESPONDER_ACTIVE_LONG_PRESS_IN: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,\n LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n },\n RESPONDER_ACTIVE_LONG_PRESS_OUT: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR,\n },\n error: {\n DELAY: States.NOT_RESPONDER,\n RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.NOT_RESPONDER,\n LEAVE_PRESS_RECT: States.NOT_RESPONDER,\n LONG_PRESS_DETECTED: States.NOT_RESPONDER,\n },\n};\n\n// ==== Typical Constants for integrating into UI components ====\n// var HIT_EXPAND_PX = 20;\n// var HIT_VERT_OFFSET_PX = 10;\nconst HIGHLIGHT_DELAY_MS = 130;\n\nconst PRESS_EXPAND_PX = 20;\n\nconst LONG_PRESS_THRESHOLD = 500;\n\nconst LONG_PRESS_DELAY_MS = LONG_PRESS_THRESHOLD - HIGHLIGHT_DELAY_MS;\n\nconst LONG_PRESS_ALLOWED_MOVEMENT = 10;\n\n// Default amount \"active\" region protrudes beyond box\n\n/**\n * By convention, methods prefixed with underscores are meant to be @private,\n * and not @protected. Mixers shouldn't access them - not even to provide them\n * as callback handlers.\n *\n *\n * ========== Geometry =========\n * `Touchable` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * +--------------------------+\n * | | - \"Start\" events in `HitRect` cause `HitRect`\n * | +--------------------+ | to become the responder.\n * | | +--------------+ | | - `HitRect` is typically expanded around\n * | | | | | | the `VisualRect`, but shifted downward.\n * | | | VisualRect | | | - After pressing down, after some delay,\n * | | | | | | and before letting up, the Visual React\n * | | +--------------+ | | will become \"active\". This makes it eligible\n * | | HitRect | | for being highlighted (so long as the\n * | +--------------------+ | press remains in the `PressRect`).\n * | PressRect o |\n * +----------------------|---+\n * Out Region |\n * +-----+ This gap between the `HitRect` and\n * `PressRect` allows a touch to move far away\n * from the original hit rect, and remain\n * highlighted, and eligible for a \"Press\".\n * Customize this via\n * `touchableGetPressRectOffset()`.\n *\n *\n *\n * ======= State Machine =======\n *\n * +-------------+ <---+ RESPONDER_RELEASE\n * |NOT_RESPONDER|\n * +-------------+ <---+ RESPONDER_TERMINATED\n * +\n * | RESPONDER_GRANT (HitRect)\n * v\n * +---------------------------+ DELAY +-------------------------+ T + DELAY +------------------------------+\n * |RESPONDER_INACTIVE_PRESS_IN|+-------->|RESPONDER_ACTIVE_PRESS_IN| +------------> |RESPONDER_ACTIVE_LONG_PRESS_IN|\n * +---------------------------+ +-------------------------+ +------------------------------+\n * + ^ + ^ + ^\n * |LEAVE_ |ENTER_ |LEAVE_ |ENTER_ |LEAVE_ |ENTER_\n * |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT\n * | | | | | |\n * v + v + v +\n * +----------------------------+ DELAY +--------------------------+ +-------------------------------+\n * |RESPONDER_INACTIVE_PRESS_OUT|+------->|RESPONDER_ACTIVE_PRESS_OUT| |RESPONDER_ACTIVE_LONG_PRESS_OUT|\n * +----------------------------+ +--------------------------+ +-------------------------------+\n *\n * T + DELAY => LONG_PRESS_DELAY_MS + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the `touchableHandlePress` abstract method invocation that occurs\n * when a responder is released while in either of the \"Press\" states.\n *\n * The other important side effects are the highlight abstract method\n * invocations (internal callbacks) to be implemented by the mixer.\n *\n *\n * @lends Touchable.prototype\n */\nconst TouchableMixin = {\n componentDidMount: function () {\n if (!Platform.isTV) {\n return;\n }\n },\n\n /**\n * Clear all timeouts on unmount\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n componentWillUnmount: function () {\n this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout);\n },\n\n /**\n * It's prefer that mixins determine state in this way, having the class\n * explicitly mix the state in the one and only `getInitialState` method.\n *\n * @return {object} State object to be placed inside of\n * `this.state.touchable`.\n */\n touchableGetInitialState: function (): {\n touchable: {\n touchState: ?State,\n responderID: ?PressEvent['currentTarget'],\n },\n } {\n return {\n touchable: {touchState: undefined, responderID: null},\n };\n },\n\n // ==== Hooks to Gesture Responder system ====\n /**\n * Must return true if embedded in a native platform scroll view.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleResponderTerminationRequest: function (): any {\n return !this.props.rejectResponderTermination;\n },\n\n /**\n * Must return true to start the process of `Touchable`.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleStartShouldSetResponder: function (): any {\n return !this.props.disabled;\n },\n\n /**\n * Return true to cancel press on long press.\n */\n touchableLongPressCancelsPress: function (): boolean {\n return true;\n },\n\n /**\n * Place as callback for a DOM element's `onResponderGrant` event.\n * @param {SyntheticEvent} e Synthetic event from event system.\n *\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleResponderGrant: function (e: PressEvent) {\n const dispatchID = e.currentTarget;\n // Since e is used in a callback invoked on another event loop\n // (as in setTimeout etc), we need to call e.persist() on the\n // event to make sure it doesn't get reused in the event object pool.\n e.persist();\n\n this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout);\n this.pressOutDelayTimeout = null;\n\n this.state.touchable.touchState = States.NOT_RESPONDER;\n this.state.touchable.responderID = dispatchID;\n this._receiveSignal(Signals.RESPONDER_GRANT, e);\n let delayMS =\n this.touchableGetHighlightDelayMS !== undefined\n ? Math.max(this.touchableGetHighlightDelayMS(), 0)\n : HIGHLIGHT_DELAY_MS;\n delayMS = isNaN(delayMS) ? HIGHLIGHT_DELAY_MS : delayMS;\n if (delayMS !== 0) {\n this.touchableDelayTimeout = setTimeout(\n this._handleDelay.bind(this, e),\n delayMS,\n );\n } else {\n this._handleDelay(e);\n }\n\n let longDelayMS =\n this.touchableGetLongPressDelayMS !== undefined\n ? Math.max(this.touchableGetLongPressDelayMS(), 10)\n : LONG_PRESS_DELAY_MS;\n longDelayMS = isNaN(longDelayMS) ? LONG_PRESS_DELAY_MS : longDelayMS;\n this.longPressDelayTimeout = setTimeout(\n this._handleLongDelay.bind(this, e),\n longDelayMS + delayMS,\n );\n },\n\n /**\n * Place as callback for a DOM element's `onResponderRelease` event.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleResponderRelease: function (e: PressEvent) {\n this.pressInLocation = null;\n this._receiveSignal(Signals.RESPONDER_RELEASE, e);\n },\n\n /**\n * Place as callback for a DOM element's `onResponderTerminate` event.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleResponderTerminate: function (e: PressEvent) {\n this.pressInLocation = null;\n this._receiveSignal(Signals.RESPONDER_TERMINATED, e);\n },\n\n /**\n * Place as callback for a DOM element's `onResponderMove` event.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleResponderMove: function (e: PressEvent) {\n // Measurement may not have returned yet.\n if (!this.state.touchable.positionOnActivate) {\n return;\n }\n\n const positionOnActivate = this.state.touchable.positionOnActivate;\n const dimensionsOnActivate = this.state.touchable.dimensionsOnActivate;\n const pressRectOffset = this.touchableGetPressRectOffset\n ? this.touchableGetPressRectOffset()\n : {\n left: PRESS_EXPAND_PX,\n right: PRESS_EXPAND_PX,\n top: PRESS_EXPAND_PX,\n bottom: PRESS_EXPAND_PX,\n };\n\n let pressExpandLeft = pressRectOffset.left;\n let pressExpandTop = pressRectOffset.top;\n let pressExpandRight = pressRectOffset.right;\n let pressExpandBottom = pressRectOffset.bottom;\n\n const hitSlop = this.touchableGetHitSlop\n ? this.touchableGetHitSlop()\n : null;\n\n if (hitSlop) {\n pressExpandLeft += hitSlop.left || 0;\n pressExpandTop += hitSlop.top || 0;\n pressExpandRight += hitSlop.right || 0;\n pressExpandBottom += hitSlop.bottom || 0;\n }\n\n const touch = extractSingleTouch(e.nativeEvent);\n const pageX = touch && touch.pageX;\n const pageY = touch && touch.pageY;\n\n if (this.pressInLocation) {\n const movedDistance = this._getDistanceBetweenPoints(\n pageX,\n pageY,\n this.pressInLocation.pageX,\n this.pressInLocation.pageY,\n );\n if (movedDistance > LONG_PRESS_ALLOWED_MOVEMENT) {\n this._cancelLongPressDelayTimeout();\n }\n }\n\n const isTouchWithinActive =\n pageX > positionOnActivate.left - pressExpandLeft &&\n pageY > positionOnActivate.top - pressExpandTop &&\n pageX <\n positionOnActivate.left +\n dimensionsOnActivate.width +\n pressExpandRight &&\n pageY <\n positionOnActivate.top +\n dimensionsOnActivate.height +\n pressExpandBottom;\n if (isTouchWithinActive) {\n const prevState = this.state.touchable.touchState;\n this._receiveSignal(Signals.ENTER_PRESS_RECT, e);\n const curState = this.state.touchable.touchState;\n if (\n curState === States.RESPONDER_INACTIVE_PRESS_IN &&\n prevState !== States.RESPONDER_INACTIVE_PRESS_IN\n ) {\n // fix for t7967420\n this._cancelLongPressDelayTimeout();\n }\n } else {\n this._cancelLongPressDelayTimeout();\n this._receiveSignal(Signals.LEAVE_PRESS_RECT, e);\n }\n },\n\n /**\n * Invoked when the item receives focus. Mixers might override this to\n * visually distinguish the `VisualRect` so that the user knows that it\n * currently has the focus. Most platforms only support a single element being\n * focused at a time, in which case there may have been a previously focused\n * element that was blurred just prior to this. This can be overridden when\n * using `Touchable.Mixin.withoutDefaultFocusAndBlur`.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleFocus: function (e: Event) {\n this.props.onFocus && this.props.onFocus(e);\n },\n\n /**\n * Invoked when the item loses focus. Mixers might override this to\n * visually distinguish the `VisualRect` so that the user knows that it\n * no longer has focus. Most platforms only support a single element being\n * focused at a time, in which case the focus may have moved to another.\n * This can be overridden when using\n * `Touchable.Mixin.withoutDefaultFocusAndBlur`.\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n touchableHandleBlur: function (e: Event) {\n this.props.onBlur && this.props.onBlur(e);\n },\n\n // ==== Abstract Application Callbacks ====\n\n /**\n * Invoked when the item should be highlighted. Mixers should implement this\n * to visually distinguish the `VisualRect` so that the user knows that\n * releasing a touch will result in a \"selection\" (analog to click).\n *\n * @abstract\n * touchableHandleActivePressIn: function,\n */\n\n /**\n * Invoked when the item is \"active\" (in that it is still eligible to become\n * a \"select\") but the touch has left the `PressRect`. Usually the mixer will\n * want to unhighlight the `VisualRect`. If the user (while pressing) moves\n * back into the `PressRect` `touchableHandleActivePressIn` will be invoked\n * again and the mixer should probably highlight the `VisualRect` again. This\n * event will not fire on an `touchEnd/mouseUp` event, only move events while\n * the user is depressing the mouse/touch.\n *\n * @abstract\n * touchableHandleActivePressOut: function\n */\n\n /**\n * Invoked when the item is \"selected\" - meaning the interaction ended by\n * letting up while the item was either in the state\n * `RESPONDER_ACTIVE_PRESS_IN` or `RESPONDER_INACTIVE_PRESS_IN`.\n *\n * @abstract\n * touchableHandlePress: function\n */\n\n /**\n * Invoked when the item is long pressed - meaning the interaction ended by\n * letting up while the item was in `RESPONDER_ACTIVE_LONG_PRESS_IN`. If\n * `touchableHandleLongPress` is *not* provided, `touchableHandlePress` will\n * be called as it normally is. If `touchableHandleLongPress` is provided, by\n * default any `touchableHandlePress` callback will not be invoked. To\n * override this default behavior, override `touchableLongPressCancelsPress`\n * to return false. As a result, `touchableHandlePress` will be called when\n * lifting up, even if `touchableHandleLongPress` has also been called.\n *\n * @abstract\n * touchableHandleLongPress: function\n */\n\n /**\n * Returns the number of millis to wait before triggering a highlight.\n *\n * @abstract\n * touchableGetHighlightDelayMS: function\n */\n\n /**\n * Returns the amount to extend the `HitRect` into the `PressRect`. Positive\n * numbers mean the size expands outwards.\n *\n * @abstract\n * touchableGetPressRectOffset: function\n */\n\n // ==== Internal Logic ====\n\n /**\n * Measures the `HitRect` node on activation. The Bounding rectangle is with\n * respect to viewport - not page, so adding the `pageXOffset/pageYOffset`\n * should result in points that are in the same coordinate system as an\n * event's `globalX/globalY` data values.\n *\n * - Consider caching this for the lifetime of the component, or possibly\n * being able to share this cache between any `ScrollMap` view.\n *\n * @sideeffects\n * @private\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _remeasureMetricsOnActivation: function () {\n const responderID = this.state.touchable.responderID;\n if (responderID == null) {\n return;\n }\n\n if (typeof responderID === 'number') {\n UIManager.measure(responderID, this._handleQueryLayout);\n } else {\n responderID.measure(this._handleQueryLayout);\n }\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _handleQueryLayout: function (\n l: number,\n t: number,\n w: number,\n h: number,\n globalX: number,\n globalY: number,\n ) {\n //don't do anything UIManager failed to measure node\n if (!l && !t && !w && !h && !globalX && !globalY) {\n return;\n }\n this.state.touchable.positionOnActivate &&\n Position.release(this.state.touchable.positionOnActivate);\n this.state.touchable.dimensionsOnActivate &&\n BoundingDimensions.release(this.state.touchable.dimensionsOnActivate);\n this.state.touchable.positionOnActivate = Position.getPooled(\n globalX,\n globalY,\n );\n this.state.touchable.dimensionsOnActivate = BoundingDimensions.getPooled(\n w,\n h,\n );\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _handleDelay: function (e: PressEvent) {\n this.touchableDelayTimeout = null;\n this._receiveSignal(Signals.DELAY, e);\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _handleLongDelay: function (e: PressEvent) {\n this.longPressDelayTimeout = null;\n const curState = this.state.touchable.touchState;\n if (\n curState === States.RESPONDER_ACTIVE_PRESS_IN ||\n curState === States.RESPONDER_ACTIVE_LONG_PRESS_IN\n ) {\n this._receiveSignal(Signals.LONG_PRESS_DETECTED, e);\n }\n },\n\n /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n *\n * @param {Signals} signal State machine signal.\n * @throws Error if invalid state transition or unrecognized signal.\n * @sideeffects\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _receiveSignal: function (signal: Signal, e: PressEvent) {\n const responderID = this.state.touchable.responderID;\n const curState = this.state.touchable.touchState;\n const nextState = Transitions[curState] && Transitions[curState][signal];\n if (!responderID && signal === Signals.RESPONDER_RELEASE) {\n return;\n }\n if (!nextState) {\n throw new Error(\n 'Unrecognized signal `' +\n signal +\n '` or state `' +\n curState +\n '` for Touchable responder `' +\n typeof this.state.touchable.responderID ===\n 'number'\n ? this.state.touchable.responderID\n : 'host component' + '`',\n );\n }\n if (nextState === States.ERROR) {\n throw new Error(\n 'Touchable cannot transition from `' +\n curState +\n '` to `' +\n signal +\n '` for responder `' +\n typeof this.state.touchable.responderID ===\n 'number'\n ? this.state.touchable.responderID\n : '<>' + '`',\n );\n }\n if (curState !== nextState) {\n this._performSideEffectsForTransition(curState, nextState, signal, e);\n this.state.touchable.touchState = nextState;\n }\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _cancelLongPressDelayTimeout: function () {\n this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n this.longPressDelayTimeout = null;\n },\n\n _isHighlight: function (state: State): boolean {\n return (\n state === States.RESPONDER_ACTIVE_PRESS_IN ||\n state === States.RESPONDER_ACTIVE_LONG_PRESS_IN\n );\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _savePressInLocation: function (e: PressEvent) {\n const touch = extractSingleTouch(e.nativeEvent);\n const pageX = touch && touch.pageX;\n const pageY = touch && touch.pageY;\n const locationX = touch && touch.locationX;\n const locationY = touch && touch.locationY;\n this.pressInLocation = {pageX, pageY, locationX, locationY};\n },\n\n _getDistanceBetweenPoints: function (\n aX: number,\n aY: number,\n bX: number,\n bY: number,\n ): number {\n const deltaX = aX - bX;\n const deltaY = aY - bY;\n return Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n },\n\n /**\n * Will perform a transition between touchable states, and identify any\n * highlighting or unhighlighting that must be performed for this particular\n * transition.\n *\n * @param {States} curState Current Touchable state.\n * @param {States} nextState Next Touchable state.\n * @param {Signal} signal Signal that triggered the transition.\n * @param {Event} e Native event.\n * @sideeffects\n */\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _performSideEffectsForTransition: function (\n curState: State,\n nextState: State,\n signal: Signal,\n e: PressEvent,\n ) {\n const curIsHighlight = this._isHighlight(curState);\n const newIsHighlight = this._isHighlight(nextState);\n\n const isFinalSignal =\n signal === Signals.RESPONDER_TERMINATED ||\n signal === Signals.RESPONDER_RELEASE;\n\n if (isFinalSignal) {\n this._cancelLongPressDelayTimeout();\n }\n\n const isInitialTransition =\n curState === States.NOT_RESPONDER &&\n nextState === States.RESPONDER_INACTIVE_PRESS_IN;\n\n const isActiveTransition = !IsActive[curState] && IsActive[nextState];\n if (isInitialTransition || isActiveTransition) {\n this._remeasureMetricsOnActivation();\n }\n\n if (IsPressingIn[curState] && signal === Signals.LONG_PRESS_DETECTED) {\n this.touchableHandleLongPress && this.touchableHandleLongPress(e);\n }\n\n if (newIsHighlight && !curIsHighlight) {\n this._startHighlight(e);\n } else if (!newIsHighlight && curIsHighlight) {\n this._endHighlight(e);\n }\n\n if (IsPressingIn[curState] && signal === Signals.RESPONDER_RELEASE) {\n const hasLongPressHandler = !!this.props.onLongPress;\n const pressIsLongButStillCallOnPress =\n IsLongPressingIn[curState] && // We *are* long pressing.. // But either has no long handler\n (!hasLongPressHandler || !this.touchableLongPressCancelsPress()); // or we're told to ignore it.\n\n const shouldInvokePress =\n !IsLongPressingIn[curState] || pressIsLongButStillCallOnPress;\n if (shouldInvokePress && this.touchableHandlePress) {\n if (!newIsHighlight && !curIsHighlight) {\n // we never highlighted because of delay, but we should highlight now\n this._startHighlight(e);\n this._endHighlight(e);\n }\n if (Platform.OS === 'android' && !this.props.touchSoundDisabled) {\n SoundManager.playTouchSound();\n }\n this.touchableHandlePress(e);\n }\n }\n\n this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n this.touchableDelayTimeout = null;\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _startHighlight: function (e: PressEvent) {\n this._savePressInLocation(e);\n this.touchableHandleActivePressIn && this.touchableHandleActivePressIn(e);\n },\n\n /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\n _endHighlight: function (e: PressEvent) {\n if (this.touchableHandleActivePressOut) {\n if (\n this.touchableGetPressOutDelayMS &&\n this.touchableGetPressOutDelayMS()\n ) {\n this.pressOutDelayTimeout = setTimeout(() => {\n this.touchableHandleActivePressOut(e);\n }, this.touchableGetPressOutDelayMS());\n } else {\n this.touchableHandleActivePressOut(e);\n }\n }\n },\n\n withoutDefaultFocusAndBlur: ({}: {...}),\n};\n\n/**\n * Provide an optional version of the mixin where `touchableHandleFocus` and\n * `touchableHandleBlur` can be overridden. This allows appropriate defaults to\n * be set on TV platforms, without breaking existing implementations of\n * `Touchable`.\n */\nconst {\n touchableHandleFocus,\n touchableHandleBlur,\n ...TouchableMixinWithoutDefaultFocusAndBlur\n} = TouchableMixin;\nTouchableMixin.withoutDefaultFocusAndBlur =\n TouchableMixinWithoutDefaultFocusAndBlur;\n\nconst Touchable: TouchableType = {\n Mixin: TouchableMixin,\n /**\n * Renders a debugging overlay to visualize touch target with hitSlop (might not work on Android).\n */\n renderDebugView: ({\n color,\n hitSlop,\n }: {\n color: ColorValue,\n hitSlop: EdgeInsetsProp,\n ...\n }): null | React.Node => {\n if (__DEV__) {\n return ;\n }\n return null;\n },\n};\n\nmodule.exports = Touchable;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\nimport PooledClass from './PooledClass';\n\nconst twoArgumentPooler = PooledClass.twoArgumentPooler;\n\n/**\n * PooledClass representing the bounding rectangle of a region.\n *\n * @param {number} width Width of bounding rectangle.\n * @param {number} height Height of bounding rectangle.\n * @constructor BoundingDimensions\n */\nfunction BoundingDimensions(width, height) {\n this.width = width;\n this.height = height;\n}\n\nBoundingDimensions.prototype.destructor = function () {\n this.width = null;\n this.height = null;\n};\n\n/**\n * @param {HTMLElement} element Element to return `BoundingDimensions` for.\n * @return {BoundingDimensions} Bounding dimensions of `element`.\n */\nBoundingDimensions.getPooledFromElement = function (element) {\n return BoundingDimensions.getPooled(\n element.offsetWidth,\n element.offsetHeight,\n );\n};\n\nPooledClass.addPoolingTo(BoundingDimensions, twoArgumentPooler);\n\nmodule.exports = BoundingDimensions;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\nimport invariant from 'invariant';\n\n/**\n * Static poolers. Several custom versions for each potential number of\n * arguments. A completely generic pooler is easy to implement, but would\n * require accessing the `arguments` object. In each of these, `this` refers to\n * the Class itself, not an instance. If any others are needed, simply add them\n * here, or in their own files.\n */\n/* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\nconst oneArgumentPooler = function (copyFieldsFrom: any) {\n const Klass = this; // eslint-disable-line consistent-this\n if (Klass.instancePool.length) {\n const instance = Klass.instancePool.pop();\n Klass.call(instance, copyFieldsFrom);\n return instance;\n } else {\n return new Klass(copyFieldsFrom);\n }\n};\n\n/* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\nconst twoArgumentPooler = function (a1: any, a2: any) {\n const Klass = this; // eslint-disable-line consistent-this\n if (Klass.instancePool.length) {\n const instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2);\n return instance;\n } else {\n return new Klass(a1, a2);\n }\n};\n\n/* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\nconst threeArgumentPooler = function (a1: any, a2: any, a3: any) {\n const Klass = this; // eslint-disable-line consistent-this\n if (Klass.instancePool.length) {\n const instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3);\n return instance;\n } else {\n return new Klass(a1, a2, a3);\n }\n};\n\n/* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\nconst fourArgumentPooler = function (a1: any, a2: any, a3: any, a4: any) {\n const Klass = this; // eslint-disable-line consistent-this\n if (Klass.instancePool.length) {\n const instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3, a4);\n return instance;\n } else {\n return new Klass(a1, a2, a3, a4);\n }\n};\n\n/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n/* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by\n * Flow's LTI update could not be added via codemod */\nconst standardReleaser = function (instance) {\n const Klass = this; // eslint-disable-line consistent-this\n invariant(\n instance instanceof Klass,\n 'Trying to release an instance into a pool of a different type.',\n );\n instance.destructor();\n if (Klass.instancePool.length < Klass.poolSize) {\n Klass.instancePool.push(instance);\n }\n};\n\nconst DEFAULT_POOL_SIZE = 10;\nconst DEFAULT_POOLER = oneArgumentPooler;\n\ntype Pooler = any;\n\n/**\n * Augments `CopyConstructor` to be a poolable class, augmenting only the class\n * itself (statically) not adding any prototypical fields. Any CopyConstructor\n * you give this may have a `poolSize` property, and will look for a\n * prototypical `destructor` on instances.\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\nconst addPoolingTo = function (\n CopyConstructor: Class,\n pooler: Pooler,\n): Class & {\n getPooled(\n ...args: $ReadOnlyArray\n ): /* arguments of the constructor */ T,\n release(instance: mixed): void,\n ...\n} {\n // Casting as any so that flow ignores the actual implementation and trusts\n // it to match the type we declared\n const NewKlass = (CopyConstructor: any);\n NewKlass.instancePool = [];\n NewKlass.getPooled = pooler || DEFAULT_POOLER;\n if (!NewKlass.poolSize) {\n NewKlass.poolSize = DEFAULT_POOL_SIZE;\n }\n NewKlass.release = standardReleaser;\n return NewKlass;\n};\n\nconst PooledClass = {\n addPoolingTo: addPoolingTo,\n oneArgumentPooler: (oneArgumentPooler: Pooler),\n twoArgumentPooler: (twoArgumentPooler: Pooler),\n threeArgumentPooler: (threeArgumentPooler: Pooler),\n fourArgumentPooler: (fourArgumentPooler: Pooler),\n};\n\nmodule.exports = PooledClass;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\n'use strict';\nimport PooledClass from './PooledClass';\n\nconst twoArgumentPooler = PooledClass.twoArgumentPooler;\n\n/**\n * Position does not expose methods for construction via an `HTMLDOMElement`,\n * because it isn't meaningful to construct such a thing without first defining\n * a frame of reference.\n *\n * @param {number} windowStartKey Key that window starts at.\n * @param {number} windowEndKey Key that window ends at.\n */\nfunction Position(left, top) {\n this.left = left;\n this.top = top;\n}\n\nPosition.prototype.destructor = function () {\n this.left = null;\n this.top = null;\n};\n\nPooledClass.addPoolingTo(Position, twoArgumentPooler);\n\nmodule.exports = Position;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {ColorValue} from '../../StyleSheet/StyleSheet';\nimport typeof TouchableWithoutFeedback from './TouchableWithoutFeedback';\n\nimport View from '../../Components/View/View';\nimport Pressability, {\n type PressabilityConfig,\n} from '../../Pressability/Pressability';\nimport {PressabilityDebugView} from '../../Pressability/PressabilityDebug';\nimport StyleSheet, {type ViewStyleProp} from '../../StyleSheet/StyleSheet';\nimport Platform from '../../Utilities/Platform';\nimport * as React from 'react';\n\ntype AndroidProps = $ReadOnly<{|\n nextFocusDown?: ?number,\n nextFocusForward?: ?number,\n nextFocusLeft?: ?number,\n nextFocusRight?: ?number,\n nextFocusUp?: ?number,\n|}>;\n\ntype IOSProps = $ReadOnly<{|\n hasTVPreferredFocus?: ?boolean,\n|}>;\n\ntype Props = $ReadOnly<{|\n ...React.ElementConfig,\n ...AndroidProps,\n ...IOSProps,\n\n activeOpacity?: ?number,\n underlayColor?: ?ColorValue,\n style?: ?ViewStyleProp,\n onShowUnderlay?: ?() => void,\n onHideUnderlay?: ?() => void,\n testOnly_pressed?: ?boolean,\n\n hostRef: React.Ref,\n|}>;\n\ntype ExtraStyles = $ReadOnly<{|\n child: ViewStyleProp,\n underlay: ViewStyleProp,\n|}>;\n\ntype State = $ReadOnly<{|\n pressability: Pressability,\n extraStyles: ?ExtraStyles,\n|}>;\n\n/**\n * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, which allows\n * the underlay color to show through, darkening or tinting the view.\n *\n * The underlay comes from wrapping the child in a new View, which can affect\n * layout, and sometimes cause unwanted visual artifacts if not used correctly,\n * for example if the backgroundColor of the wrapped view isn't explicitly set\n * to an opaque color.\n *\n * TouchableHighlight must have one child (not zero or more than one).\n * If you wish to have several child components, wrap them in a View.\n *\n * Example:\n *\n * ```\n * renderButton: function() {\n * return (\n * \n * \n * \n * );\n * },\n * ```\n *\n *\n * ### Example\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react'\n * import {\n * AppRegistry,\n * StyleSheet,\n * TouchableHighlight,\n * Text,\n * View,\n * } from 'react-native'\n *\n * class App extends Component {\n * constructor(props) {\n * super(props)\n * this.state = { count: 0 }\n * }\n *\n * onPress = () => {\n * this.setState({\n * count: this.state.count+1\n * })\n * }\n *\n * render() {\n * return (\n * \n * \n * Touch Here \n * \n * \n * \n * { this.state.count !== 0 ? this.state.count: null}\n * \n * \n * \n * )\n * }\n * }\n *\n * const styles = StyleSheet.create({\n * container: {\n * flex: 1,\n * justifyContent: 'center',\n * paddingHorizontal: 10\n * },\n * button: {\n * alignItems: 'center',\n * backgroundColor: '#DDDDDD',\n * padding: 10\n * },\n * countContainer: {\n * alignItems: 'center',\n * padding: 10\n * },\n * countText: {\n * color: '#FF00FF'\n * }\n * })\n *\n * AppRegistry.registerComponent('App', () => App)\n * ```\n *\n */\nclass TouchableHighlight extends React.Component {\n _hideTimeout: ?TimeoutID;\n _isMounted: boolean = false;\n\n state: State = {\n pressability: new Pressability(this._createPressabilityConfig()),\n extraStyles:\n this.props.testOnly_pressed === true ? this._createExtraStyles() : null,\n };\n\n _createPressabilityConfig(): PressabilityConfig {\n return {\n cancelable: !this.props.rejectResponderTermination,\n disabled:\n this.props.disabled != null\n ? this.props.disabled\n : this.props.accessibilityState?.disabled,\n hitSlop: this.props.hitSlop,\n delayLongPress: this.props.delayLongPress,\n delayPressIn: this.props.delayPressIn,\n delayPressOut: this.props.delayPressOut,\n minPressDuration: 0,\n pressRectOffset: this.props.pressRetentionOffset,\n android_disableSound: this.props.touchSoundDisabled,\n onBlur: event => {\n if (Platform.isTV) {\n this._hideUnderlay();\n }\n if (this.props.onBlur != null) {\n this.props.onBlur(event);\n }\n },\n onFocus: event => {\n if (Platform.isTV) {\n this._showUnderlay();\n }\n if (this.props.onFocus != null) {\n this.props.onFocus(event);\n }\n },\n onLongPress: this.props.onLongPress,\n onPress: event => {\n if (this._hideTimeout != null) {\n clearTimeout(this._hideTimeout);\n }\n if (!Platform.isTV) {\n this._showUnderlay();\n this._hideTimeout = setTimeout(() => {\n this._hideUnderlay();\n }, this.props.delayPressOut ?? 0);\n }\n if (this.props.onPress != null) {\n this.props.onPress(event);\n }\n },\n onPressIn: event => {\n if (this._hideTimeout != null) {\n clearTimeout(this._hideTimeout);\n this._hideTimeout = null;\n }\n this._showUnderlay();\n if (this.props.onPressIn != null) {\n this.props.onPressIn(event);\n }\n },\n onPressOut: event => {\n if (this._hideTimeout == null) {\n this._hideUnderlay();\n }\n if (this.props.onPressOut != null) {\n this.props.onPressOut(event);\n }\n },\n };\n }\n\n _createExtraStyles(): ExtraStyles {\n return {\n child: {opacity: this.props.activeOpacity ?? 0.85},\n underlay: {\n backgroundColor:\n this.props.underlayColor === undefined\n ? 'black'\n : this.props.underlayColor,\n },\n };\n }\n\n _showUnderlay(): void {\n if (!this._isMounted || !this._hasPressHandler()) {\n return;\n }\n this.setState({extraStyles: this._createExtraStyles()});\n if (this.props.onShowUnderlay != null) {\n this.props.onShowUnderlay();\n }\n }\n\n _hideUnderlay(): void {\n if (this._hideTimeout != null) {\n clearTimeout(this._hideTimeout);\n this._hideTimeout = null;\n }\n if (this.props.testOnly_pressed === true) {\n return;\n }\n if (this._hasPressHandler()) {\n this.setState({extraStyles: null});\n if (this.props.onHideUnderlay != null) {\n this.props.onHideUnderlay();\n }\n }\n }\n\n _hasPressHandler(): boolean {\n return (\n this.props.onPress != null ||\n this.props.onPressIn != null ||\n this.props.onPressOut != null ||\n this.props.onLongPress != null\n );\n }\n\n render(): React.Node {\n const child = React.Children.only<$FlowFixMe>(this.props.children);\n\n // BACKWARD-COMPATIBILITY: Focus and blur events were never supported before\n // adopting `Pressability`, so preserve that behavior.\n const {onBlur, onFocus, ...eventHandlersWithoutBlurAndFocus} =\n this.state.pressability.getEventHandlers();\n\n const accessibilityState =\n this.props.disabled != null\n ? {\n ...this.props.accessibilityState,\n disabled: this.props.disabled,\n }\n : this.props.accessibilityState;\n\n const accessibilityValue = {\n max: this.props['aria-valuemax'] ?? this.props.accessibilityValue?.max,\n min: this.props['aria-valuemin'] ?? this.props.accessibilityValue?.min,\n now: this.props['aria-valuenow'] ?? this.props.accessibilityValue?.now,\n text: this.props['aria-valuetext'] ?? this.props.accessibilityValue?.text,\n };\n\n const accessibilityLiveRegion =\n this.props['aria-live'] === 'off'\n ? 'none'\n : this.props['aria-live'] ?? this.props.accessibilityLiveRegion;\n\n const accessibilityLabel =\n this.props['aria-label'] ?? this.props.accessibilityLabel;\n return (\n \n {React.cloneElement(child, {\n style: StyleSheet.compose(\n child.props.style,\n this.state.extraStyles?.child,\n ),\n })}\n {__DEV__ ? (\n \n ) : null}\n \n );\n }\n\n componentDidMount(): void {\n this._isMounted = true;\n }\n\n componentDidUpdate(prevProps: Props, prevState: State) {\n this.state.pressability.configure(this._createPressabilityConfig());\n }\n\n componentWillUnmount(): void {\n this._isMounted = false;\n if (this._hideTimeout != null) {\n clearTimeout(this._hideTimeout);\n }\n this.state.pressability.reset();\n }\n}\n\nconst Touchable = (React.forwardRef((props, hostRef) => (\n \n)): React.AbstractComponent<\n $ReadOnly<$Diff|}>>,\n React.ElementRef,\n>);\n\nTouchable.displayName = 'TouchableHighlight';\n\nmodule.exports = Touchable;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {\n AccessibilityActionEvent,\n AccessibilityActionInfo,\n AccessibilityRole,\n AccessibilityState,\n AccessibilityValue,\n} from '../../Components/View/ViewAccessibility';\nimport type {EdgeInsetsOrSizeProp} from '../../StyleSheet/EdgeInsetsPropType';\nimport type {\n BlurEvent,\n FocusEvent,\n LayoutEvent,\n PressEvent,\n} from '../../Types/CoreEventTypes';\n\nimport View from '../../Components/View/View';\nimport Pressability, {\n type PressabilityConfig,\n} from '../../Pressability/Pressability';\nimport {PressabilityDebugView} from '../../Pressability/PressabilityDebug';\nimport * as React from 'react';\n\ntype Props = $ReadOnly<{|\n accessibilityActions?: ?$ReadOnlyArray,\n accessibilityElementsHidden?: ?boolean,\n accessibilityHint?: ?Stringish,\n accessibilityLanguage?: ?Stringish,\n accessibilityIgnoresInvertColors?: ?boolean,\n accessibilityLabel?: ?Stringish,\n accessibilityLiveRegion?: ?('none' | 'polite' | 'assertive'),\n accessibilityRole?: ?AccessibilityRole,\n accessibilityState?: ?AccessibilityState,\n accessibilityValue?: ?AccessibilityValue,\n 'aria-valuemax'?: AccessibilityValue['max'],\n 'aria-valuemin'?: AccessibilityValue['min'],\n 'aria-valuenow'?: AccessibilityValue['now'],\n 'aria-valuetext'?: AccessibilityValue['text'],\n accessibilityViewIsModal?: ?boolean,\n 'aria-modal'?: ?boolean,\n accessible?: ?boolean,\n /**\n * alias for accessibilityState\n *\n * see https://reactnative.dev/docs/accessibility#accessibilitystate\n */\n 'aria-busy'?: ?boolean,\n 'aria-checked'?: ?boolean | 'mixed',\n 'aria-disabled'?: ?boolean,\n 'aria-expanded'?: ?boolean,\n 'aria-selected'?: ?boolean,\n 'aria-hidden'?: ?boolean,\n 'aria-live'?: ?('polite' | 'assertive' | 'off'),\n 'aria-label'?: ?Stringish,\n children?: ?React.Node,\n delayLongPress?: ?number,\n delayPressIn?: ?number,\n delayPressOut?: ?number,\n disabled?: ?boolean,\n focusable?: ?boolean,\n hitSlop?: ?EdgeInsetsOrSizeProp,\n id?: string,\n importantForAccessibility?: ?('auto' | 'yes' | 'no' | 'no-hide-descendants'),\n nativeID?: ?string,\n onAccessibilityAction?: ?(event: AccessibilityActionEvent) => mixed,\n onBlur?: ?(event: BlurEvent) => mixed,\n onFocus?: ?(event: FocusEvent) => mixed,\n onLayout?: ?(event: LayoutEvent) => mixed,\n onLongPress?: ?(event: PressEvent) => mixed,\n onPress?: ?(event: PressEvent) => mixed,\n onPressIn?: ?(event: PressEvent) => mixed,\n onPressOut?: ?(event: PressEvent) => mixed,\n pressRetentionOffset?: ?EdgeInsetsOrSizeProp,\n rejectResponderTermination?: ?boolean,\n testID?: ?string,\n touchSoundDisabled?: ?boolean,\n|}>;\n\ntype State = $ReadOnly<{|\n pressability: Pressability,\n|}>;\n\nconst PASSTHROUGH_PROPS = [\n 'accessibilityActions',\n 'accessibilityElementsHidden',\n 'accessibilityHint',\n 'accessibilityLanguage',\n 'accessibilityIgnoresInvertColors',\n 'accessibilityLabel',\n 'accessibilityLiveRegion',\n 'accessibilityRole',\n 'accessibilityValue',\n 'aria-valuemax',\n 'aria-valuemin',\n 'aria-valuenow',\n 'aria-valuetext',\n 'accessibilityViewIsModal',\n 'aria-modal',\n 'hitSlop',\n 'importantForAccessibility',\n 'nativeID',\n 'onAccessibilityAction',\n 'onBlur',\n 'onFocus',\n 'onLayout',\n 'testID',\n];\n\nclass TouchableWithoutFeedback extends React.Component {\n state: State = {\n pressability: new Pressability(createPressabilityConfig(this.props)),\n };\n\n render(): React.Node {\n const element = React.Children.only<$FlowFixMe>(this.props.children);\n const children: Array = [element.props.children];\n const ariaLive = this.props['aria-live'];\n\n if (__DEV__) {\n if (element.type === View) {\n children.push(\n ,\n );\n }\n }\n\n let _accessibilityState = {\n busy: this.props['aria-busy'] ?? this.props.accessibilityState?.busy,\n checked:\n this.props['aria-checked'] ?? this.props.accessibilityState?.checked,\n disabled:\n this.props['aria-disabled'] ?? this.props.accessibilityState?.disabled,\n expanded:\n this.props['aria-expanded'] ?? this.props.accessibilityState?.expanded,\n selected:\n this.props['aria-selected'] ?? this.props.accessibilityState?.selected,\n };\n\n // BACKWARD-COMPATIBILITY: Focus and blur events were never supported before\n // adopting `Pressability`, so preserve that behavior.\n const {onBlur, onFocus, ...eventHandlersWithoutBlurAndFocus} =\n this.state.pressability.getEventHandlers();\n\n const elementProps: {[string]: mixed, ...} = {\n ...eventHandlersWithoutBlurAndFocus,\n accessible: this.props.accessible !== false,\n accessibilityState:\n this.props.disabled != null\n ? {\n ..._accessibilityState,\n disabled: this.props.disabled,\n }\n : _accessibilityState,\n focusable:\n this.props.focusable !== false && this.props.onPress !== undefined,\n\n accessibilityElementsHidden:\n this.props['aria-hidden'] ?? this.props.accessibilityElementsHidden,\n importantForAccessibility:\n this.props['aria-hidden'] === true\n ? 'no-hide-descendants'\n : this.props.importantForAccessibility,\n accessibilityLiveRegion:\n ariaLive === 'off'\n ? 'none'\n : ariaLive ?? this.props.accessibilityLiveRegion,\n nativeID: this.props.id ?? this.props.nativeID,\n };\n for (const prop of PASSTHROUGH_PROPS) {\n if (this.props[prop] !== undefined) {\n elementProps[prop] = this.props[prop];\n }\n }\n\n return React.cloneElement(element, elementProps, ...children);\n }\n\n componentDidUpdate(): void {\n this.state.pressability.configure(createPressabilityConfig(this.props));\n }\n\n componentWillUnmount(): void {\n this.state.pressability.reset();\n }\n}\n\nfunction createPressabilityConfig({\n 'aria-disabled': ariaDisabled,\n ...props\n}: Props): PressabilityConfig {\n const accessibilityStateDisabled =\n ariaDisabled ?? props.accessibilityState?.disabled;\n return {\n cancelable: !props.rejectResponderTermination,\n disabled:\n props.disabled !== null ? props.disabled : accessibilityStateDisabled,\n hitSlop: props.hitSlop,\n delayLongPress: props.delayLongPress,\n delayPressIn: props.delayPressIn,\n delayPressOut: props.delayPressOut,\n minPressDuration: 0,\n pressRectOffset: props.pressRetentionOffset,\n android_disableSound: props.touchSoundDisabled,\n onBlur: props.onBlur,\n onFocus: props.onFocus,\n onLongPress: props.onLongPress,\n onPress: props.onPress,\n onPressIn: props.onPressIn,\n onPressOut: props.onPressOut,\n };\n}\n\nTouchableWithoutFeedback.displayName = 'TouchableWithoutFeedback';\n\nmodule.exports = TouchableWithoutFeedback;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport {typeof VirtualizedList as VirtualizedListType} from '@react-native/virtualized-lists';\n\nconst VirtualizedList: VirtualizedListType =\n require('@react-native/virtualized-lists').VirtualizedList;\n\nexport type {\n RenderItemProps,\n RenderItemType,\n Separators,\n} from '@react-native/virtualized-lists';\nmodule.exports = VirtualizedList;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport {typeof VirtualizedSectionList as VirtualizedSectionListType} from '@react-native/virtualized-lists';\n\nconst VirtualizedSectionList: VirtualizedSectionListType =\n require('@react-native/virtualized-lists').VirtualizedSectionList;\n\nexport type {\n SectionBase,\n ScrollToLocationParamsType,\n} from '@react-native/virtualized-lists';\nmodule.exports = VirtualizedSectionList;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {ProcessedColorValue} from '../StyleSheet/processColor';\nimport type {ColorValue} from '../StyleSheet/StyleSheet';\n\nimport RCTActionSheetManager from './NativeActionSheetManager';\n\nconst processColor = require('../StyleSheet/processColor').default;\nconst invariant = require('invariant');\n\n/**\n * Display action sheets and share sheets on iOS.\n *\n * See https://reactnative.dev/docs/actionsheetios\n */\nconst ActionSheetIOS = {\n /**\n * Display an iOS action sheet.\n *\n * The `options` object must contain one or more of:\n *\n * - `options` (array of strings) - a list of button titles (required)\n * - `cancelButtonIndex` (int) - index of cancel button in `options`\n * - `destructiveButtonIndex` (int or array of ints) - index or indices of destructive buttons in `options`\n * - `title` (string) - a title to show above the action sheet\n * - `message` (string) - a message to show below the title\n * - `disabledButtonIndices` (array of numbers) - a list of button indices which should be disabled\n *\n * The 'callback' function takes one parameter, the zero-based index\n * of the selected item.\n *\n * See https://reactnative.dev/docs/actionsheetios#showactionsheetwithoptions\n */\n showActionSheetWithOptions(\n options: {|\n +title?: ?string,\n +message?: ?string,\n +options: Array,\n +destructiveButtonIndex?: ?number | ?Array,\n +cancelButtonIndex?: ?number,\n +anchor?: ?number,\n +tintColor?: ColorValue | ProcessedColorValue,\n +cancelButtonTintColor?: ColorValue | ProcessedColorValue,\n +userInterfaceStyle?: string,\n +disabledButtonIndices?: Array,\n |},\n callback: (buttonIndex: number) => void,\n ) {\n invariant(\n typeof options === 'object' && options !== null,\n 'Options must be a valid object',\n );\n invariant(typeof callback === 'function', 'Must provide a valid callback');\n invariant(RCTActionSheetManager, \"ActionSheetManager doesn't exist\");\n\n const {\n tintColor,\n cancelButtonTintColor,\n destructiveButtonIndex,\n ...remainingOptions\n } = options;\n let destructiveButtonIndices = null;\n\n if (Array.isArray(destructiveButtonIndex)) {\n destructiveButtonIndices = destructiveButtonIndex;\n } else if (typeof destructiveButtonIndex === 'number') {\n destructiveButtonIndices = [destructiveButtonIndex];\n }\n\n const processedTintColor = processColor(tintColor);\n const processedCancelButtonTintColor = processColor(cancelButtonTintColor);\n invariant(\n processedTintColor == null || typeof processedTintColor === 'number',\n 'Unexpected color given for ActionSheetIOS.showActionSheetWithOptions tintColor',\n );\n invariant(\n processedCancelButtonTintColor == null ||\n typeof processedCancelButtonTintColor === 'number',\n 'Unexpected color given for ActionSheetIOS.showActionSheetWithOptions cancelButtonTintColor',\n );\n RCTActionSheetManager.showActionSheetWithOptions(\n {\n ...remainingOptions,\n tintColor: processedTintColor,\n cancelButtonTintColor: processedCancelButtonTintColor,\n destructiveButtonIndices,\n },\n callback,\n );\n },\n\n /**\n * Display the iOS share sheet. The `options` object should contain\n * one or both of `message` and `url` and can additionally have\n * a `subject` or `excludedActivityTypes`:\n *\n * - `url` (string) - a URL to share\n * - `message` (string) - a message to share\n * - `subject` (string) - a subject for the message\n * - `excludedActivityTypes` (array) - the activities to exclude from\n * the ActionSheet\n * - `tintColor` (color) - tint color of the buttons\n *\n * The 'failureCallback' function takes one parameter, an error object.\n * The only property defined on this object is an optional `stack` property\n * of type `string`.\n *\n * The 'successCallback' function takes two parameters:\n *\n * - a boolean value signifying success or failure\n * - a string that, in the case of success, indicates the method of sharing\n *\n * See https://reactnative.dev/docs/actionsheetios#showshareactionsheetwithoptions\n */\n showShareActionSheetWithOptions(\n options: Object,\n failureCallback: Function,\n successCallback: Function,\n ) {\n invariant(\n typeof options === 'object' && options !== null,\n 'Options must be a valid object',\n );\n invariant(\n typeof failureCallback === 'function',\n 'Must provide a valid failureCallback',\n );\n invariant(\n typeof successCallback === 'function',\n 'Must provide a valid successCallback',\n );\n invariant(RCTActionSheetManager, \"ActionSheetManager doesn't exist\");\n RCTActionSheetManager.showShareActionSheetWithOptions(\n {...options, tintColor: processColor(options.tintColor)},\n failureCallback,\n successCallback,\n );\n },\n\n dismissActionSheet: () => {\n invariant(RCTActionSheetManager, \"ActionSheetManager doesn't exist\");\n if (typeof RCTActionSheetManager.dismissActionSheet === 'function') {\n RCTActionSheetManager.dismissActionSheet();\n }\n },\n};\n\nmodule.exports = ActionSheetIOS;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {||};\n +showActionSheetWithOptions: (\n options: {|\n +title?: ?string,\n +message?: ?string,\n +options: ?Array,\n +destructiveButtonIndices?: ?Array,\n +cancelButtonIndex?: ?number,\n +anchor?: ?number,\n +tintColor?: ?number,\n +cancelButtonTintColor?: ?number,\n +userInterfaceStyle?: ?string,\n +disabledButtonIndices?: Array,\n |},\n callback: (buttonIndex: number) => void,\n ) => void;\n +showShareActionSheetWithOptions: (\n options: {|\n +message?: ?string,\n +url?: ?string,\n +subject?: ?string,\n +anchor?: ?number,\n +tintColor?: ?number,\n +cancelButtonTintColor?: ?number,\n +excludedActivityTypes?: ?Array,\n +userInterfaceStyle?: ?string,\n |},\n failureCallback: (error: {|\n +domain: string,\n +code: string,\n +userInfo?: ?Object,\n +message: string,\n |}) => void,\n successCallback: (completed: boolean, activityType: ?string) => void,\n ) => void;\n +dismissActionSheet?: () => void;\n}\n\nexport default (TurboModuleRegistry.get('ActionSheetManager'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport Platform from '../Utilities/Platform';\nimport EventEmitter, {\n type EventSubscription,\n} from '../vendor/emitter/EventEmitter';\nimport {isAsyncDebugging} from './DebugEnvironment';\nimport NativeAppearance, {\n type AppearancePreferences,\n type ColorSchemeName,\n} from './NativeAppearance';\nimport invariant from 'invariant';\n\ntype AppearanceListener = (preferences: AppearancePreferences) => void;\nconst eventEmitter = new EventEmitter<{\n change: [AppearancePreferences],\n}>();\n\ntype NativeAppearanceEventDefinitions = {\n appearanceChanged: [AppearancePreferences],\n};\n\nif (NativeAppearance) {\n const nativeEventEmitter =\n new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeAppearance,\n );\n nativeEventEmitter.addListener(\n 'appearanceChanged',\n (newAppearance: AppearancePreferences) => {\n const {colorScheme} = newAppearance;\n invariant(\n colorScheme === 'dark' ||\n colorScheme === 'light' ||\n colorScheme == null,\n \"Unrecognized color scheme. Did you mean 'dark' or 'light'?\",\n );\n eventEmitter.emit('change', {colorScheme});\n },\n );\n}\n\nmodule.exports = {\n /**\n * Note: Although color scheme is available immediately, it may change at any\n * time. Any rendering logic or styles that depend on this should try to call\n * this function on every render, rather than caching the value (for example,\n * using inline styles rather than setting a value in a `StyleSheet`).\n *\n * Example: `const colorScheme = Appearance.getColorScheme();`\n *\n * @returns {?ColorSchemeName} Value for the color scheme preference.\n */\n getColorScheme(): ?ColorSchemeName {\n if (__DEV__) {\n if (isAsyncDebugging) {\n // Hard code light theme when using the async debugger as\n // sync calls aren't supported\n return 'light';\n }\n }\n\n // TODO: (hramos) T52919652 Use ?ColorSchemeName once codegen supports union\n const nativeColorScheme: ?string =\n NativeAppearance == null\n ? null\n : NativeAppearance.getColorScheme() || null;\n invariant(\n nativeColorScheme === 'dark' ||\n nativeColorScheme === 'light' ||\n nativeColorScheme == null,\n \"Unrecognized color scheme. Did you mean 'dark' or 'light'?\",\n );\n return nativeColorScheme;\n },\n\n setColorScheme(colorScheme: ?ColorSchemeName): void {\n const nativeColorScheme = colorScheme == null ? 'unspecified' : colorScheme;\n\n invariant(\n colorScheme === 'dark' || colorScheme === 'light' || colorScheme == null,\n \"Unrecognized color scheme. Did you mean 'dark', 'light' or null?\",\n );\n\n if (NativeAppearance != null && NativeAppearance.setColorScheme != null) {\n NativeAppearance.setColorScheme(nativeColorScheme);\n }\n },\n\n /**\n * Add an event handler that is fired when appearance preferences change.\n */\n addChangeListener(listener: AppearanceListener): EventSubscription {\n return eventEmitter.addListener('change', listener);\n },\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport type ColorSchemeName = 'light' | 'dark';\n\nexport type AppearancePreferences = {|\n // TODO: (hramos) T52919652 Use ?ColorSchemeName once codegen supports union\n // types.\n /* 'light' | 'dark' */\n colorScheme?: ?string,\n|};\n\nexport interface Spec extends TurboModule {\n // TODO: (hramos) T52919652 Use ?ColorSchemeName once codegen supports union\n // types.\n /* 'light' | 'dark' */\n +getColorScheme: () => ?string;\n +setColorScheme?: (colorScheme: string) => void;\n\n // RCTEventEmitter\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.get('Appearance'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport logError from '../Utilities/logError';\nimport Platform from '../Utilities/Platform';\nimport {type EventSubscription} from '../vendor/emitter/EventEmitter';\nimport NativeAppState from './NativeAppState';\n\nexport type AppStateValues = 'inactive' | 'background' | 'active';\n\ntype AppStateEventDefinitions = {\n change: [AppStateValues],\n memoryWarning: [],\n blur: [],\n focus: [],\n};\n\ntype NativeAppStateEventDefinitions = {\n appStateDidChange: [{app_state: AppStateValues}],\n appStateFocusChange: [boolean],\n memoryWarning: [],\n};\n\n/**\n * `AppState` can tell you if the app is in the foreground or background,\n * and notify you when the state changes.\n *\n * See https://reactnative.dev/docs/appstate\n */\nclass AppState {\n currentState: ?string = null;\n isAvailable: boolean;\n\n _emitter: ?NativeEventEmitter;\n\n constructor() {\n if (NativeAppState == null) {\n this.isAvailable = false;\n } else {\n this.isAvailable = true;\n\n const emitter: NativeEventEmitter =\n new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeAppState,\n );\n this._emitter = emitter;\n\n this.currentState = NativeAppState.getConstants().initialAppState;\n\n let eventUpdated = false;\n\n // TODO: this is a terrible solution - in order to ensure `currentState`\n // prop is up to date, we have to register an observer that updates it\n // whenever the state changes, even if nobody cares. We should just\n // deprecate the `currentState` property and get rid of this.\n emitter.addListener('appStateDidChange', appStateData => {\n eventUpdated = true;\n this.currentState = appStateData.app_state;\n });\n\n // TODO: see above - this request just populates the value of `currentState`\n // when the module is first initialized. Would be better to get rid of the\n // prop and expose `getCurrentAppState` method directly.\n // $FlowExpectedError[incompatible-call]\n NativeAppState.getCurrentAppState(appStateData => {\n // It's possible that the state will have changed here & listeners need to be notified\n if (!eventUpdated && this.currentState !== appStateData.app_state) {\n this.currentState = appStateData.app_state;\n // $FlowFixMe[incompatible-call]\n emitter.emit('appStateDidChange', appStateData);\n }\n }, logError);\n }\n }\n\n /**\n * Add a handler to AppState changes by listening to the `change` event type\n * and providing the handler.\n *\n * See https://reactnative.dev/docs/appstate#addeventlistener\n */\n addEventListener>(\n type: K,\n handler: (...$ElementType) => void,\n ): EventSubscription {\n const emitter = this._emitter;\n if (emitter == null) {\n throw new Error('Cannot use AppState when `isAvailable` is false.');\n }\n switch (type) {\n case 'change':\n // $FlowIssue[invalid-tuple-arity] Flow cannot refine handler based on the event type\n const changeHandler: AppStateValues => void = handler;\n return emitter.addListener('appStateDidChange', appStateData => {\n changeHandler(appStateData.app_state);\n });\n case 'memoryWarning':\n // $FlowIssue[invalid-tuple-arity] Flow cannot refine handler based on the event type\n const memoryWarningHandler: () => void = handler;\n return emitter.addListener('memoryWarning', memoryWarningHandler);\n case 'blur':\n case 'focus':\n // $FlowIssue[invalid-tuple-arity] Flow cannot refine handler based on the event type\n const focusOrBlurHandler: () => void = handler;\n return emitter.addListener('appStateFocusChange', hasFocus => {\n if (type === 'blur' && !hasFocus) {\n focusOrBlurHandler();\n }\n if (type === 'focus' && hasFocus) {\n focusOrBlurHandler();\n }\n });\n }\n throw new Error('Trying to subscribe to unknown event: ' + type);\n }\n}\n\nmodule.exports = (new AppState(): AppState);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\n/**\n * Small utility that can be used as an error handler. You cannot just pass\n * `console.error` as a failure callback - it's not properly bound. If passes an\n * `Error` object, it will print the message and stack.\n */\nconst logError = function (...args: $ReadOnlyArray) {\n if (args.length === 1 && args[0] instanceof Error) {\n const err = args[0];\n console.error('Error: \"' + err.message + '\". Stack:\\n' + err.stack);\n } else {\n console.error.apply(console, args);\n }\n};\n\nmodule.exports = logError;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n initialAppState: string,\n |};\n +getCurrentAppState: (\n success: (appState: {|app_state: string|}) => void,\n error: (error: Object) => void,\n ) => void;\n\n // Events\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('AppState'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport NativeClipboard from './NativeClipboard';\n\n/**\n * `Clipboard` gives you an interface for setting and getting content from Clipboard on both iOS and Android\n */\nmodule.exports = {\n /**\n * Get content of string type, this method returns a `Promise`, so you can use following code to get clipboard content\n * ```javascript\n * async _getContent() {\n * var content = await Clipboard.getString();\n * }\n * ```\n */\n getString(): Promise {\n return NativeClipboard.getString();\n },\n /**\n * Set content of string type. You can use following code to set clipboard content\n * ```javascript\n * _setContent() {\n * Clipboard.setString('hello world');\n * }\n * ```\n * @param {string} content the content to be stored in the clipboard.\n */\n setString(content: string) {\n NativeClipboard.setString(content);\n },\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {||};\n +getString: () => Promise;\n +setString: (content: string) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('Clipboard'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport NativeDeviceInfo from './NativeDeviceInfo';\n\nmodule.exports = NativeDeviceInfo;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {EventSubscription} from '../vendor/emitter/EventEmitter';\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport NativeDevSettings from '../NativeModules/specs/NativeDevSettings';\nimport Platform from '../Utilities/Platform';\n\nlet DevSettings: {\n addMenuItem(title: string, handler: () => mixed): void,\n reload(reason?: string): void,\n onFastRefresh(): void,\n} = {\n addMenuItem(title: string, handler: () => mixed): void {},\n reload(reason?: string): void {},\n onFastRefresh(): void {},\n};\n\ntype DevSettingsEventDefinitions = {\n didPressMenuItem: [{title: string}],\n};\n\nif (__DEV__) {\n const emitter = new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativeDevSettings,\n );\n const subscriptions = new Map();\n\n DevSettings = {\n addMenuItem(title: string, handler: () => mixed): void {\n // Make sure items are not added multiple times. This can\n // happen when hot reloading the module that registers the\n // menu items. The title is used as the id which means we\n // don't support multiple items with the same name.\n let subscription = subscriptions.get(title);\n if (subscription != null) {\n subscription.remove();\n } else {\n NativeDevSettings.addMenuItem(title);\n }\n\n subscription = emitter.addListener('didPressMenuItem', event => {\n if (event.title === title) {\n handler();\n }\n });\n subscriptions.set(title, subscription);\n },\n reload(reason?: string): void {\n if (NativeDevSettings.reloadWithReason != null) {\n NativeDevSettings.reloadWithReason(reason ?? 'Uncategorized from JS');\n } else {\n NativeDevSettings.reload();\n }\n },\n onFastRefresh(): void {\n NativeDevSettings.onFastRefresh?.();\n },\n };\n}\n\nmodule.exports = DevSettings;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +reload: () => void;\n +reloadWithReason?: (reason: string) => void;\n +onFastRefresh?: () => void;\n +setHotLoadingEnabled: (isHotLoadingEnabled: boolean) => void;\n +setIsDebuggingRemotely: (isDebuggingRemotelyEnabled: boolean) => void;\n +setProfilingEnabled: (isProfilingEnabled: boolean) => void;\n +toggleElementInspector: () => void;\n +addMenuItem: (title: string) => void;\n\n // Events\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n\n // iOS only.\n +setIsShakeToShowDevMenuEnabled: (enabled: boolean) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('DevSettings'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {EventSubscription} from '../vendor/emitter/EventEmitter';\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport Platform from '../Utilities/Platform';\nimport NativeIntentAndroid from './NativeIntentAndroid';\nimport NativeLinkingManager from './NativeLinkingManager';\nimport invariant from 'invariant';\nimport nullthrows from 'nullthrows';\n\ntype LinkingEventDefinitions = {\n url: [{url: string}],\n};\n\n/**\n * `Linking` gives you a general interface to interact with both incoming\n * and outgoing app links.\n *\n * See https://reactnative.dev/docs/linking\n */\nclass Linking extends NativeEventEmitter {\n constructor() {\n super(Platform.OS === 'ios' ? nullthrows(NativeLinkingManager) : undefined);\n }\n\n /**\n * Add a handler to Linking changes by listening to the `url` event type\n * and providing the handler\n *\n * See https://reactnative.dev/docs/linking#addeventlistener\n */\n addEventListener>(\n eventType: K,\n listener: (...$ElementType) => mixed,\n context: $FlowFixMe,\n ): EventSubscription {\n return this.addListener(eventType, listener);\n }\n\n /**\n * Try to open the given `url` with any of the installed apps.\n *\n * See https://reactnative.dev/docs/linking#openurl\n */\n openURL(url: string): Promise {\n this._validateURL(url);\n if (Platform.OS === 'android') {\n return nullthrows(NativeIntentAndroid).openURL(url);\n } else {\n return nullthrows(NativeLinkingManager).openURL(url);\n }\n }\n\n /**\n * Determine whether or not an installed app can handle a given URL.\n *\n * See https://reactnative.dev/docs/linking#canopenurl\n */\n canOpenURL(url: string): Promise {\n this._validateURL(url);\n if (Platform.OS === 'android') {\n return nullthrows(NativeIntentAndroid).canOpenURL(url);\n } else {\n return nullthrows(NativeLinkingManager).canOpenURL(url);\n }\n }\n\n /**\n * Open app settings.\n *\n * See https://reactnative.dev/docs/linking#opensettings\n */\n openSettings(): Promise {\n if (Platform.OS === 'android') {\n return nullthrows(NativeIntentAndroid).openSettings();\n } else {\n return nullthrows(NativeLinkingManager).openSettings();\n }\n }\n\n /**\n * If the app launch was triggered by an app link,\n * it will give the link url, otherwise it will give `null`\n *\n * See https://reactnative.dev/docs/linking#getinitialurl\n */\n getInitialURL(): Promise {\n return Platform.OS === 'android'\n ? nullthrows(NativeIntentAndroid).getInitialURL()\n : nullthrows(NativeLinkingManager).getInitialURL();\n }\n\n /*\n * Launch an Android intent with extras (optional)\n *\n * @platform android\n *\n * See https://reactnative.dev/docs/linking#sendintent\n */\n sendIntent(\n action: string,\n extras?: Array<{\n key: string,\n value: string | number | boolean,\n ...\n }>,\n ): Promise {\n if (Platform.OS === 'android') {\n return nullthrows(NativeIntentAndroid).sendIntent(action, extras);\n } else {\n return new Promise((resolve, reject) => reject(new Error('Unsupported')));\n }\n }\n\n _validateURL(url: string): void {\n invariant(\n typeof url === 'string',\n 'Invalid URL: should be a string. Was: ' + url,\n );\n invariant(url, 'Invalid URL: cannot be empty');\n }\n}\n\nmodule.exports = (new Linking(): Linking);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getInitialURL: () => Promise;\n +canOpenURL: (url: string) => Promise;\n +openURL: (url: string) => Promise;\n +openSettings: () => Promise;\n +sendIntent: (\n action: string,\n extras: ?Array<{\n key: string,\n value: string | number | boolean, // TODO(T67672788): Union types are not type safe\n ...\n }>,\n ) => Promise;\n}\n\nexport default (TurboModuleRegistry.get('IntentAndroid'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n // Common interface\n +getInitialURL: () => Promise;\n +canOpenURL: (url: string) => Promise;\n +openURL: (url: string) => Promise;\n +openSettings: () => Promise;\n\n // Events\n +addListener: (eventName: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.get('LinkingManager'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {IgnorePattern, LogData} from './Data/LogBoxData';\nimport type {ExtendedExceptionData} from './Data/parseLogBoxLog';\n\nimport Platform from '../Utilities/Platform';\nimport RCTLog from '../Utilities/RCTLog';\n\nexport type {LogData, ExtendedExceptionData, IgnorePattern};\n\nlet LogBox;\n\ninterface ILogBox {\n install(): void;\n uninstall(): void;\n isInstalled(): boolean;\n ignoreLogs($ReadOnlyArray): void;\n ignoreAllLogs(?boolean): void;\n clearAllLogs(): void;\n addLog(log: LogData): void;\n addException(error: ExtendedExceptionData): void;\n}\n\n/**\n * LogBox displays logs in the app.\n */\nif (__DEV__) {\n const LogBoxData = require('./Data/LogBoxData');\n const {parseLogBoxLog, parseInterpolation} = require('./Data/parseLogBoxLog');\n\n let originalConsoleError;\n let originalConsoleWarn;\n let consoleErrorImpl;\n let consoleWarnImpl: (...args: Array) => void;\n\n let isLogBoxInstalled: boolean = false;\n\n LogBox = {\n install(): void {\n if (isLogBoxInstalled) {\n return;\n }\n\n isLogBoxInstalled = true;\n\n // Trigger lazy initialization of module.\n require('../NativeModules/specs/NativeLogBox');\n\n // IMPORTANT: we only overwrite `console.error` and `console.warn` once.\n // When we uninstall we keep the same reference and only change its\n // internal implementation\n const isFirstInstall = originalConsoleError == null;\n if (isFirstInstall) {\n originalConsoleError = console.error.bind(console);\n originalConsoleWarn = console.warn.bind(console);\n\n // $FlowExpectedError[cannot-write]\n console.error = (...args) => {\n consoleErrorImpl(...args);\n };\n // $FlowExpectedError[cannot-write]\n console.warn = (...args) => {\n consoleWarnImpl(...args);\n };\n }\n\n consoleErrorImpl = registerError;\n consoleWarnImpl = registerWarning;\n\n if (Platform.isTesting) {\n LogBoxData.setDisabled(true);\n }\n\n RCTLog.setWarningHandler((...args) => {\n registerWarning(...args);\n });\n },\n\n uninstall(): void {\n if (!isLogBoxInstalled) {\n return;\n }\n\n isLogBoxInstalled = false;\n\n // IMPORTANT: we don't re-assign to `console` in case the method has been\n // decorated again after installing LogBox. E.g.:\n // Before uninstalling: original > LogBox > OtherErrorHandler\n // After uninstalling: original > LogBox (noop) > OtherErrorHandler\n consoleErrorImpl = originalConsoleError;\n consoleWarnImpl = originalConsoleWarn;\n },\n\n isInstalled(): boolean {\n return isLogBoxInstalled;\n },\n\n ignoreLogs(patterns: $ReadOnlyArray): void {\n LogBoxData.addIgnorePatterns(patterns);\n },\n\n ignoreAllLogs(value?: ?boolean): void {\n LogBoxData.setDisabled(value == null ? true : value);\n },\n\n clearAllLogs(): void {\n LogBoxData.clear();\n },\n\n addLog(log: LogData): void {\n if (isLogBoxInstalled) {\n LogBoxData.addLog(log);\n }\n },\n\n addException(error: ExtendedExceptionData): void {\n if (isLogBoxInstalled) {\n LogBoxData.addException(error);\n }\n },\n };\n\n const isRCTLogAdviceWarning = (...args: Array) => {\n // RCTLogAdvice is a native logging function designed to show users\n // a message in the console, but not show it to them in Logbox.\n return typeof args[0] === 'string' && args[0].startsWith('(ADVICE)');\n };\n\n const isWarningModuleWarning = (...args: Array) => {\n return typeof args[0] === 'string' && args[0].startsWith('Warning: ');\n };\n\n const registerWarning = (...args: Array): void => {\n // Let warnings within LogBox itself fall through.\n if (LogBoxData.isLogBoxErrorMessage(String(args[0]))) {\n originalConsoleError(...args);\n return;\n } else {\n // Be sure to pass LogBox warnings through.\n originalConsoleWarn(...args);\n }\n\n try {\n if (!isRCTLogAdviceWarning(...args)) {\n const {category, message, componentStack} = parseLogBoxLog(args);\n\n if (!LogBoxData.isMessageIgnored(message.content)) {\n LogBoxData.addLog({\n level: 'warn',\n category,\n message,\n componentStack,\n });\n }\n }\n } catch (err) {\n LogBoxData.reportLogBoxError(err);\n }\n };\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n const registerError = (...args): void => {\n // Let errors within LogBox itself fall through.\n if (LogBoxData.isLogBoxErrorMessage(args[0])) {\n originalConsoleError(...args);\n return;\n }\n\n try {\n if (!isWarningModuleWarning(...args)) {\n // Only show LogBox for the 'warning' module, otherwise pass through.\n // By passing through, this will get picked up by the React console override,\n // potentially adding the component stack. React then passes it back to the\n // React Native ExceptionsManager, which reports it to LogBox as an error.\n //\n // The 'warning' module needs to be handled here because React internally calls\n // `console.error('Warning: ')` with the component stack already included.\n originalConsoleError(...args);\n return;\n }\n\n const format = args[0].replace('Warning: ', '');\n const filterResult = LogBoxData.checkWarningFilter(format);\n if (filterResult.suppressCompletely) {\n return;\n }\n\n let level = 'error';\n if (filterResult.suppressDialog_LEGACY === true) {\n level = 'warn';\n } else if (filterResult.forceDialogImmediately === true) {\n level = 'fatal'; // Do not downgrade. These are real bugs with same severity as throws.\n }\n\n // Unfortunately, we need to add the Warning: prefix back for downstream dependencies.\n args[0] = `Warning: ${filterResult.finalFormat}`;\n const {category, message, componentStack} = parseLogBoxLog(args);\n\n // Interpolate the message so they are formatted for adb and other CLIs.\n // This is different than the message.content above because it includes component stacks.\n const interpolated = parseInterpolation(args);\n originalConsoleError(interpolated.message.content);\n\n if (!LogBoxData.isMessageIgnored(message.content)) {\n LogBoxData.addLog({\n level,\n category,\n message,\n componentStack,\n });\n }\n } catch (err) {\n LogBoxData.reportLogBoxError(err);\n }\n };\n} else {\n LogBox = {\n install(): void {\n // Do nothing.\n },\n\n uninstall(): void {\n // Do nothing.\n },\n\n isInstalled(): boolean {\n return false;\n },\n\n ignoreLogs(patterns: $ReadOnlyArray): void {\n // Do nothing.\n },\n\n ignoreAllLogs(value?: ?boolean): void {\n // Do nothing.\n },\n\n clearAllLogs(): void {\n // Do nothing.\n },\n\n addLog(log: LogData): void {\n // Do nothing.\n },\n\n addException(error: ExtendedExceptionData): void {\n // Do nothing.\n },\n };\n}\n\nexport default (LogBox: ILogBox);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {PressEvent} from '../Types/CoreEventTypes';\n\nconst InteractionManager = require('./InteractionManager');\nconst TouchHistoryMath = require('./TouchHistoryMath');\n\nconst currentCentroidXOfTouchesChangedAfter =\n TouchHistoryMath.currentCentroidXOfTouchesChangedAfter;\nconst currentCentroidYOfTouchesChangedAfter =\n TouchHistoryMath.currentCentroidYOfTouchesChangedAfter;\nconst previousCentroidXOfTouchesChangedAfter =\n TouchHistoryMath.previousCentroidXOfTouchesChangedAfter;\nconst previousCentroidYOfTouchesChangedAfter =\n TouchHistoryMath.previousCentroidYOfTouchesChangedAfter;\nconst currentCentroidX = TouchHistoryMath.currentCentroidX;\nconst currentCentroidY = TouchHistoryMath.currentCentroidY;\n\n/**\n * `PanResponder` reconciles several touches into a single gesture. It makes\n * single-touch gestures resilient to extra touches, and can be used to\n * recognize simple multi-touch gestures.\n *\n * By default, `PanResponder` holds an `InteractionManager` handle to block\n * long-running JS events from interrupting active gestures.\n *\n * It provides a predictable wrapper of the responder handlers provided by the\n * [gesture responder system](docs/gesture-responder-system.html).\n * For each handler, it provides a new `gestureState` object alongside the\n * native event object:\n *\n * ```\n * onPanResponderMove: (event, gestureState) => {}\n * ```\n *\n * A native event is a synthetic touch event with the following form:\n *\n * - `nativeEvent`\n * + `changedTouches` - Array of all touch events that have changed since the last event\n * + `identifier` - The ID of the touch\n * + `locationX` - The X position of the touch, relative to the element\n * + `locationY` - The Y position of the touch, relative to the element\n * + `pageX` - The X position of the touch, relative to the root element\n * + `pageY` - The Y position of the touch, relative to the root element\n * + `target` - The node id of the element receiving the touch event\n * + `timestamp` - A time identifier for the touch, useful for velocity calculation\n * + `touches` - Array of all current touches on the screen\n *\n * A `gestureState` object has the following:\n *\n * - `stateID` - ID of the gestureState- persisted as long as there at least\n * one touch on screen\n * - `moveX` - the latest screen coordinates of the recently-moved touch\n * - `moveY` - the latest screen coordinates of the recently-moved touch\n * - `x0` - the screen coordinates of the responder grant\n * - `y0` - the screen coordinates of the responder grant\n * - `dx` - accumulated distance of the gesture since the touch started\n * - `dy` - accumulated distance of the gesture since the touch started\n * - `vx` - current velocity of the gesture\n * - `vy` - current velocity of the gesture\n * - `numberActiveTouches` - Number of touches currently on screen\n *\n * ### Basic Usage\n *\n * ```\n * componentWillMount: function() {\n * this._panResponder = PanResponder.create({\n * // Ask to be the responder:\n * onStartShouldSetPanResponder: (evt, gestureState) => true,\n * onStartShouldSetPanResponderCapture: (evt, gestureState) => true,\n * onMoveShouldSetPanResponder: (evt, gestureState) => true,\n * onMoveShouldSetPanResponderCapture: (evt, gestureState) => true,\n *\n * onPanResponderGrant: (evt, gestureState) => {\n * // The gesture has started. Show visual feedback so the user knows\n * // what is happening!\n *\n * // gestureState.d{x,y} will be set to zero now\n * },\n * onPanResponderMove: (evt, gestureState) => {\n * // The most recent move distance is gestureState.move{X,Y}\n *\n * // The accumulated gesture distance since becoming responder is\n * // gestureState.d{x,y}\n * },\n * onPanResponderTerminationRequest: (evt, gestureState) => true,\n * onPanResponderRelease: (evt, gestureState) => {\n * // The user has released all touches while this view is the\n * // responder. This typically means a gesture has succeeded\n * },\n * onPanResponderTerminate: (evt, gestureState) => {\n * // Another component has become the responder, so this gesture\n * // should be cancelled\n * },\n * onShouldBlockNativeResponder: (evt, gestureState) => {\n * // Returns whether this component should block native components from becoming the JS\n * // responder. Returns true by default. Is currently only supported on android.\n * return true;\n * },\n * });\n * },\n *\n * render: function() {\n * return (\n * \n * );\n * },\n *\n * ```\n *\n * ### Working Example\n *\n * To see it in action, try the\n * [PanResponder example in RNTester](https://github.com/facebook/react-native/blob/HEAD/packages/rn-tester/js/examples/PanResponder/PanResponderExample.js)\n */\n\nexport type GestureState = {|\n /**\n * ID of the gestureState - persisted as long as there at least one touch on screen\n */\n stateID: number,\n\n /**\n * The latest screen coordinates of the recently-moved touch\n */\n moveX: number,\n\n /**\n * The latest screen coordinates of the recently-moved touch\n */\n moveY: number,\n\n /**\n * The screen coordinates of the responder grant\n */\n x0: number,\n\n /**\n * The screen coordinates of the responder grant\n */\n y0: number,\n\n /**\n * Accumulated distance of the gesture since the touch started\n */\n dx: number,\n\n /**\n * Accumulated distance of the gesture since the touch started\n */\n dy: number,\n\n /**\n * Current velocity of the gesture\n */\n vx: number,\n\n /**\n * Current velocity of the gesture\n */\n vy: number,\n\n /**\n * Number of touches currently on screen\n */\n numberActiveTouches: number,\n\n /**\n * All `gestureState` accounts for timeStamps up until this value\n *\n * @private\n */\n _accountsForMovesUpTo: number,\n|};\n\ntype ActiveCallback = (\n event: PressEvent,\n gestureState: GestureState,\n) => boolean;\n\ntype PassiveCallback = (event: PressEvent, gestureState: GestureState) => mixed;\n\nexport type PanHandlers = {|\n onMoveShouldSetResponder: (event: PressEvent) => boolean,\n onMoveShouldSetResponderCapture: (event: PressEvent) => boolean,\n onResponderEnd: (event: PressEvent) => void,\n onResponderGrant: (event: PressEvent) => boolean,\n onResponderMove: (event: PressEvent) => void,\n onResponderReject: (event: PressEvent) => void,\n onResponderRelease: (event: PressEvent) => void,\n onResponderStart: (event: PressEvent) => void,\n onResponderTerminate: (event: PressEvent) => void,\n onResponderTerminationRequest: (event: PressEvent) => boolean,\n onStartShouldSetResponder: (event: PressEvent) => boolean,\n onStartShouldSetResponderCapture: (event: PressEvent) => boolean,\n|};\n\ntype PanResponderConfig = $ReadOnly<{|\n onMoveShouldSetPanResponder?: ?ActiveCallback,\n onMoveShouldSetPanResponderCapture?: ?ActiveCallback,\n onStartShouldSetPanResponder?: ?ActiveCallback,\n onStartShouldSetPanResponderCapture?: ?ActiveCallback,\n /**\n * The body of `onResponderGrant` returns a bool, but the vast majority of\n * callsites return void and this TODO notice is found in it:\n * TODO: t7467124 investigate if this can be removed\n */\n onPanResponderGrant?: ?(PassiveCallback | ActiveCallback),\n onPanResponderReject?: ?PassiveCallback,\n onPanResponderStart?: ?PassiveCallback,\n onPanResponderEnd?: ?PassiveCallback,\n onPanResponderRelease?: ?PassiveCallback,\n onPanResponderMove?: ?PassiveCallback,\n onPanResponderTerminate?: ?PassiveCallback,\n onPanResponderTerminationRequest?: ?ActiveCallback,\n onShouldBlockNativeResponder?: ?ActiveCallback,\n|}>;\n\nconst PanResponder = {\n /**\n *\n * A graphical explanation of the touch data flow:\n *\n * +----------------------------+ +--------------------------------+\n * | ResponderTouchHistoryStore | |TouchHistoryMath |\n * +----------------------------+ +----------+---------------------+\n * |Global store of touchHistory| |Allocation-less math util |\n * |including activeness, start | |on touch history (centroids |\n * |position, prev/cur position.| |and multitouch movement etc) |\n * | | | |\n * +----^-----------------------+ +----^---------------------------+\n * | |\n * | (records relevant history |\n * | of touches relevant for |\n * | implementing higher level |\n * | gestures) |\n * | |\n * +----+-----------------------+ +----|---------------------------+\n * | ResponderEventPlugin | | | Your App/Component |\n * +----------------------------+ +----|---------------------------+\n * |Negotiates which view gets | Low level | | High level |\n * |onResponderMove events. | events w/ | +-+-------+ events w/ |\n * |Also records history into | touchHistory| | Pan | multitouch + |\n * |ResponderTouchHistoryStore. +---------------->Responder+-----> accumulative|\n * +----------------------------+ attached to | | | distance and |\n * each event | +---------+ velocity. |\n * | |\n * | |\n * +--------------------------------+\n *\n *\n *\n * Gesture that calculates cumulative movement over time in a way that just\n * \"does the right thing\" for multiple touches. The \"right thing\" is very\n * nuanced. When moving two touches in opposite directions, the cumulative\n * distance is zero in each dimension. When two touches move in parallel five\n * pixels in the same direction, the cumulative distance is five, not ten. If\n * two touches start, one moves five in a direction, then stops and the other\n * touch moves fives in the same direction, the cumulative distance is ten.\n *\n * This logic requires a kind of processing of time \"clusters\" of touch events\n * so that two touch moves that essentially occur in parallel but move every\n * other frame respectively, are considered part of the same movement.\n *\n * Explanation of some of the non-obvious fields:\n *\n * - moveX/moveY: If no move event has been observed, then `(moveX, moveY)` is\n * invalid. If a move event has been observed, `(moveX, moveY)` is the\n * centroid of the most recently moved \"cluster\" of active touches.\n * (Currently all move have the same timeStamp, but later we should add some\n * threshold for what is considered to be \"moving\"). If a palm is\n * accidentally counted as a touch, but a finger is moving greatly, the palm\n * will move slightly, but we only want to count the single moving touch.\n * - x0/y0: Centroid location (non-cumulative) at the time of becoming\n * responder.\n * - dx/dy: Cumulative touch distance - not the same thing as sum of each touch\n * distance. Accounts for touch moves that are clustered together in time,\n * moving the same direction. Only valid when currently responder (otherwise,\n * it only represents the drag distance below the threshold).\n * - vx/vy: Velocity.\n */\n\n _initializeGestureState(gestureState: GestureState) {\n gestureState.moveX = 0;\n gestureState.moveY = 0;\n gestureState.x0 = 0;\n gestureState.y0 = 0;\n gestureState.dx = 0;\n gestureState.dy = 0;\n gestureState.vx = 0;\n gestureState.vy = 0;\n gestureState.numberActiveTouches = 0;\n // All `gestureState` accounts for timeStamps up until:\n gestureState._accountsForMovesUpTo = 0;\n },\n\n /**\n * This is nuanced and is necessary. It is incorrect to continuously take all\n * active *and* recently moved touches, find the centroid, and track how that\n * result changes over time. Instead, we must take all recently moved\n * touches, and calculate how the centroid has changed just for those\n * recently moved touches, and append that change to an accumulator. This is\n * to (at least) handle the case where the user is moving three fingers, and\n * then one of the fingers stops but the other two continue.\n *\n * This is very different than taking all of the recently moved touches and\n * storing their centroid as `dx/dy`. For correctness, we must *accumulate\n * changes* in the centroid of recently moved touches.\n *\n * There is also some nuance with how we handle multiple moved touches in a\n * single event. With the way `ReactNativeEventEmitter` dispatches touches as\n * individual events, multiple touches generate two 'move' events, each of\n * them triggering `onResponderMove`. But with the way `PanResponder` works,\n * all of the gesture inference is performed on the first dispatch, since it\n * looks at all of the touches (even the ones for which there hasn't been a\n * native dispatch yet). Therefore, `PanResponder` does not call\n * `onResponderMove` passed the first dispatch. This diverges from the\n * typical responder callback pattern (without using `PanResponder`), but\n * avoids more dispatches than necessary.\n */\n _updateGestureStateOnMove(\n gestureState: GestureState,\n touchHistory: $PropertyType,\n ) {\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n gestureState.moveX = currentCentroidXOfTouchesChangedAfter(\n touchHistory,\n gestureState._accountsForMovesUpTo,\n );\n gestureState.moveY = currentCentroidYOfTouchesChangedAfter(\n touchHistory,\n gestureState._accountsForMovesUpTo,\n );\n const movedAfter = gestureState._accountsForMovesUpTo;\n const prevX = previousCentroidXOfTouchesChangedAfter(\n touchHistory,\n movedAfter,\n );\n const x = currentCentroidXOfTouchesChangedAfter(touchHistory, movedAfter);\n const prevY = previousCentroidYOfTouchesChangedAfter(\n touchHistory,\n movedAfter,\n );\n const y = currentCentroidYOfTouchesChangedAfter(touchHistory, movedAfter);\n const nextDX = gestureState.dx + (x - prevX);\n const nextDY = gestureState.dy + (y - prevY);\n\n // TODO: This must be filtered intelligently.\n const dt =\n touchHistory.mostRecentTimeStamp - gestureState._accountsForMovesUpTo;\n gestureState.vx = (nextDX - gestureState.dx) / dt;\n gestureState.vy = (nextDY - gestureState.dy) / dt;\n\n gestureState.dx = nextDX;\n gestureState.dy = nextDY;\n gestureState._accountsForMovesUpTo = touchHistory.mostRecentTimeStamp;\n },\n\n /**\n * @param {object} config Enhanced versions of all of the responder callbacks\n * that provide not only the typical `ResponderSyntheticEvent`, but also the\n * `PanResponder` gesture state. Simply replace the word `Responder` with\n * `PanResponder` in each of the typical `onResponder*` callbacks. For\n * example, the `config` object would look like:\n *\n * - `onMoveShouldSetPanResponder: (e, gestureState) => {...}`\n * - `onMoveShouldSetPanResponderCapture: (e, gestureState) => {...}`\n * - `onStartShouldSetPanResponder: (e, gestureState) => {...}`\n * - `onStartShouldSetPanResponderCapture: (e, gestureState) => {...}`\n * - `onPanResponderReject: (e, gestureState) => {...}`\n * - `onPanResponderGrant: (e, gestureState) => {...}`\n * - `onPanResponderStart: (e, gestureState) => {...}`\n * - `onPanResponderEnd: (e, gestureState) => {...}`\n * - `onPanResponderRelease: (e, gestureState) => {...}`\n * - `onPanResponderMove: (e, gestureState) => {...}`\n * - `onPanResponderTerminate: (e, gestureState) => {...}`\n * - `onPanResponderTerminationRequest: (e, gestureState) => {...}`\n * - `onShouldBlockNativeResponder: (e, gestureState) => {...}`\n *\n * In general, for events that have capture equivalents, we update the\n * gestureState once in the capture phase and can use it in the bubble phase\n * as well.\n *\n * Be careful with onStartShould* callbacks. They only reflect updated\n * `gestureState` for start/end events that bubble/capture to the Node.\n * Once the node is the responder, you can rely on every start/end event\n * being processed by the gesture and `gestureState` being updated\n * accordingly. (numberActiveTouches) may not be totally accurate unless you\n * are the responder.\n */\n create(config: PanResponderConfig): {\n getInteractionHandle: () => ?number,\n panHandlers: PanHandlers,\n } {\n const interactionState = {\n handle: (null: ?number),\n };\n const gestureState: GestureState = {\n // Useful for debugging\n stateID: Math.random(),\n moveX: 0,\n moveY: 0,\n x0: 0,\n y0: 0,\n dx: 0,\n dy: 0,\n vx: 0,\n vy: 0,\n numberActiveTouches: 0,\n _accountsForMovesUpTo: 0,\n };\n const panHandlers = {\n onStartShouldSetResponder(event: PressEvent): boolean {\n return config.onStartShouldSetPanResponder == null\n ? false\n : config.onStartShouldSetPanResponder(event, gestureState);\n },\n onMoveShouldSetResponder(event: PressEvent): boolean {\n return config.onMoveShouldSetPanResponder == null\n ? false\n : config.onMoveShouldSetPanResponder(event, gestureState);\n },\n onStartShouldSetResponderCapture(event: PressEvent): boolean {\n // TODO: Actually, we should reinitialize the state any time\n // touches.length increases from 0 active to > 0 active.\n if (event.nativeEvent.touches.length === 1) {\n PanResponder._initializeGestureState(gestureState);\n }\n gestureState.numberActiveTouches =\n event.touchHistory.numberActiveTouches;\n return config.onStartShouldSetPanResponderCapture != null\n ? config.onStartShouldSetPanResponderCapture(event, gestureState)\n : false;\n },\n\n onMoveShouldSetResponderCapture(event: PressEvent): boolean {\n const touchHistory = event.touchHistory;\n // Responder system incorrectly dispatches should* to current responder\n // Filter out any touch moves past the first one - we would have\n // already processed multi-touch geometry during the first event.\n if (\n gestureState._accountsForMovesUpTo ===\n touchHistory.mostRecentTimeStamp\n ) {\n return false;\n }\n PanResponder._updateGestureStateOnMove(gestureState, touchHistory);\n return config.onMoveShouldSetPanResponderCapture\n ? config.onMoveShouldSetPanResponderCapture(event, gestureState)\n : false;\n },\n\n onResponderGrant(event: PressEvent): boolean {\n if (!interactionState.handle) {\n interactionState.handle =\n InteractionManager.createInteractionHandle();\n }\n gestureState.x0 = currentCentroidX(event.touchHistory);\n gestureState.y0 = currentCentroidY(event.touchHistory);\n gestureState.dx = 0;\n gestureState.dy = 0;\n if (config.onPanResponderGrant) {\n config.onPanResponderGrant(event, gestureState);\n }\n // TODO: t7467124 investigate if this can be removed\n return config.onShouldBlockNativeResponder == null\n ? true\n : config.onShouldBlockNativeResponder(event, gestureState);\n },\n\n onResponderReject(event: PressEvent): void {\n clearInteractionHandle(\n interactionState,\n config.onPanResponderReject,\n event,\n gestureState,\n );\n },\n\n onResponderRelease(event: PressEvent): void {\n clearInteractionHandle(\n interactionState,\n config.onPanResponderRelease,\n event,\n gestureState,\n );\n PanResponder._initializeGestureState(gestureState);\n },\n\n onResponderStart(event: PressEvent): void {\n const touchHistory = event.touchHistory;\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n if (config.onPanResponderStart) {\n config.onPanResponderStart(event, gestureState);\n }\n },\n\n onResponderMove(event: PressEvent): void {\n const touchHistory = event.touchHistory;\n // Guard against the dispatch of two touch moves when there are two\n // simultaneously changed touches.\n if (\n gestureState._accountsForMovesUpTo ===\n touchHistory.mostRecentTimeStamp\n ) {\n return;\n }\n // Filter out any touch moves past the first one - we would have\n // already processed multi-touch geometry during the first event.\n PanResponder._updateGestureStateOnMove(gestureState, touchHistory);\n if (config.onPanResponderMove) {\n config.onPanResponderMove(event, gestureState);\n }\n },\n\n onResponderEnd(event: PressEvent): void {\n const touchHistory = event.touchHistory;\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n clearInteractionHandle(\n interactionState,\n config.onPanResponderEnd,\n event,\n gestureState,\n );\n },\n\n onResponderTerminate(event: PressEvent): void {\n clearInteractionHandle(\n interactionState,\n config.onPanResponderTerminate,\n event,\n gestureState,\n );\n PanResponder._initializeGestureState(gestureState);\n },\n\n onResponderTerminationRequest(event: PressEvent): boolean {\n return config.onPanResponderTerminationRequest == null\n ? true\n : config.onPanResponderTerminationRequest(event, gestureState);\n },\n };\n return {\n panHandlers,\n getInteractionHandle(): ?number {\n return interactionState.handle;\n },\n };\n },\n};\n\nfunction clearInteractionHandle(\n interactionState: {handle: ?number, ...},\n callback: ?(ActiveCallback | PassiveCallback),\n event: PressEvent,\n gestureState: GestureState,\n) {\n if (interactionState.handle) {\n InteractionManager.clearInteractionHandle(interactionState.handle);\n interactionState.handle = null;\n }\n if (callback) {\n callback(event, gestureState);\n }\n}\n\nexport type PanResponderInstance = $Call<\n $PropertyType,\n PanResponderConfig,\n>;\n\nexport default PanResponder;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nconst TouchHistoryMath = {\n /**\n * This code is optimized and not intended to look beautiful. This allows\n * computing of touch centroids that have moved after `touchesChangedAfter`\n * timeStamp. You can compute the current centroid involving all touches\n * moves after `touchesChangedAfter`, or you can compute the previous\n * centroid of all touches that were moved after `touchesChangedAfter`.\n *\n * @param {TouchHistoryMath} touchHistory Standard Responder touch track\n * data.\n * @param {number} touchesChangedAfter timeStamp after which moved touches\n * are considered \"actively moving\" - not just \"active\".\n * @param {boolean} isXAxis Consider `x` dimension vs. `y` dimension.\n * @param {boolean} ofCurrent Compute current centroid for actively moving\n * touches vs. previous centroid of now actively moving touches.\n * @return {number} value of centroid in specified dimension.\n */\n centroidDimension: function (\n touchHistory,\n touchesChangedAfter,\n isXAxis,\n ofCurrent,\n ) {\n const touchBank = touchHistory.touchBank;\n let total = 0;\n let count = 0;\n\n const oneTouchData =\n touchHistory.numberActiveTouches === 1\n ? touchHistory.touchBank[touchHistory.indexOfSingleActiveTouch]\n : null;\n\n if (oneTouchData !== null) {\n if (\n oneTouchData.touchActive &&\n oneTouchData.currentTimeStamp > touchesChangedAfter\n ) {\n total +=\n ofCurrent && isXAxis\n ? oneTouchData.currentPageX\n : ofCurrent && !isXAxis\n ? oneTouchData.currentPageY\n : !ofCurrent && isXAxis\n ? oneTouchData.previousPageX\n : oneTouchData.previousPageY;\n count = 1;\n }\n } else {\n for (let i = 0; i < touchBank.length; i++) {\n const touchTrack = touchBank[i];\n if (\n touchTrack !== null &&\n touchTrack !== undefined &&\n touchTrack.touchActive &&\n touchTrack.currentTimeStamp >= touchesChangedAfter\n ) {\n let toAdd; // Yuck, program temporarily in invalid state.\n if (ofCurrent && isXAxis) {\n toAdd = touchTrack.currentPageX;\n } else if (ofCurrent && !isXAxis) {\n toAdd = touchTrack.currentPageY;\n } else if (!ofCurrent && isXAxis) {\n toAdd = touchTrack.previousPageX;\n } else {\n toAdd = touchTrack.previousPageY;\n }\n total += toAdd;\n count++;\n }\n }\n }\n return count > 0 ? total / count : TouchHistoryMath.noCentroid;\n },\n\n currentCentroidXOfTouchesChangedAfter: function (\n touchHistory,\n touchesChangedAfter,\n ) {\n return TouchHistoryMath.centroidDimension(\n touchHistory,\n touchesChangedAfter,\n true, // isXAxis\n true, // ofCurrent\n );\n },\n\n currentCentroidYOfTouchesChangedAfter: function (\n touchHistory,\n touchesChangedAfter,\n ) {\n return TouchHistoryMath.centroidDimension(\n touchHistory,\n touchesChangedAfter,\n false, // isXAxis\n true, // ofCurrent\n );\n },\n\n previousCentroidXOfTouchesChangedAfter: function (\n touchHistory,\n touchesChangedAfter,\n ) {\n return TouchHistoryMath.centroidDimension(\n touchHistory,\n touchesChangedAfter,\n true, // isXAxis\n false, // ofCurrent\n );\n },\n\n previousCentroidYOfTouchesChangedAfter: function (\n touchHistory,\n touchesChangedAfter,\n ) {\n return TouchHistoryMath.centroidDimension(\n touchHistory,\n touchesChangedAfter,\n false, // isXAxis\n false, // ofCurrent\n );\n },\n\n currentCentroidX: function (touchHistory) {\n return TouchHistoryMath.centroidDimension(\n touchHistory,\n 0, // touchesChangedAfter\n true, // isXAxis\n true, // ofCurrent\n );\n },\n\n currentCentroidY: function (touchHistory) {\n return TouchHistoryMath.centroidDimension(\n touchHistory,\n 0, // touchesChangedAfter\n false, // isXAxis\n true, // ofCurrent\n );\n },\n\n noCentroid: -1,\n};\n\nmodule.exports = TouchHistoryMath;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport type {\n PermissionStatus,\n PermissionType,\n} from './NativePermissionsAndroid';\n\nimport NativeDialogManagerAndroid from '../NativeModules/specs/NativeDialogManagerAndroid';\nimport NativePermissionsAndroid from './NativePermissionsAndroid';\nimport invariant from 'invariant';\n\nconst Platform = require('../Utilities/Platform');\n\nexport type Rationale = {\n title: string,\n message: string,\n buttonPositive?: string,\n buttonNegative?: string,\n buttonNeutral?: string,\n ...\n};\n\nconst PERMISSION_REQUEST_RESULT = Object.freeze({\n GRANTED: 'granted',\n DENIED: 'denied',\n NEVER_ASK_AGAIN: 'never_ask_again',\n});\n\nconst PERMISSIONS = Object.freeze({\n READ_CALENDAR: 'android.permission.READ_CALENDAR',\n WRITE_CALENDAR: 'android.permission.WRITE_CALENDAR',\n CAMERA: 'android.permission.CAMERA',\n READ_CONTACTS: 'android.permission.READ_CONTACTS',\n WRITE_CONTACTS: 'android.permission.WRITE_CONTACTS',\n GET_ACCOUNTS: 'android.permission.GET_ACCOUNTS',\n ACCESS_FINE_LOCATION: 'android.permission.ACCESS_FINE_LOCATION',\n ACCESS_COARSE_LOCATION: 'android.permission.ACCESS_COARSE_LOCATION',\n ACCESS_BACKGROUND_LOCATION: 'android.permission.ACCESS_BACKGROUND_LOCATION',\n RECORD_AUDIO: 'android.permission.RECORD_AUDIO',\n READ_PHONE_STATE: 'android.permission.READ_PHONE_STATE',\n CALL_PHONE: 'android.permission.CALL_PHONE',\n READ_CALL_LOG: 'android.permission.READ_CALL_LOG',\n WRITE_CALL_LOG: 'android.permission.WRITE_CALL_LOG',\n ADD_VOICEMAIL: 'com.android.voicemail.permission.ADD_VOICEMAIL',\n READ_VOICEMAIL: 'com.android.voicemail.permission.READ_VOICEMAIL',\n WRITE_VOICEMAIL: 'com.android.voicemail.permission.WRITE_VOICEMAIL',\n USE_SIP: 'android.permission.USE_SIP',\n PROCESS_OUTGOING_CALLS: 'android.permission.PROCESS_OUTGOING_CALLS',\n BODY_SENSORS: 'android.permission.BODY_SENSORS',\n BODY_SENSORS_BACKGROUND: 'android.permission.BODY_SENSORS_BACKGROUND',\n SEND_SMS: 'android.permission.SEND_SMS',\n RECEIVE_SMS: 'android.permission.RECEIVE_SMS',\n READ_SMS: 'android.permission.READ_SMS',\n RECEIVE_WAP_PUSH: 'android.permission.RECEIVE_WAP_PUSH',\n RECEIVE_MMS: 'android.permission.RECEIVE_MMS',\n READ_EXTERNAL_STORAGE: 'android.permission.READ_EXTERNAL_STORAGE',\n READ_MEDIA_IMAGES: 'android.permission.READ_MEDIA_IMAGES',\n READ_MEDIA_VIDEO: 'android.permission.READ_MEDIA_VIDEO',\n READ_MEDIA_AUDIO: 'android.permission.READ_MEDIA_AUDIO',\n WRITE_EXTERNAL_STORAGE: 'android.permission.WRITE_EXTERNAL_STORAGE',\n BLUETOOTH_CONNECT: 'android.permission.BLUETOOTH_CONNECT',\n BLUETOOTH_SCAN: 'android.permission.BLUETOOTH_SCAN',\n BLUETOOTH_ADVERTISE: 'android.permission.BLUETOOTH_ADVERTISE',\n ACCESS_MEDIA_LOCATION: 'android.permission.ACCESS_MEDIA_LOCATION',\n ACCEPT_HANDOVER: 'android.permission.ACCEPT_HANDOVER',\n ACTIVITY_RECOGNITION: 'android.permission.ACTIVITY_RECOGNITION',\n ANSWER_PHONE_CALLS: 'android.permission.ANSWER_PHONE_CALLS',\n READ_PHONE_NUMBERS: 'android.permission.READ_PHONE_NUMBERS',\n UWB_RANGING: 'android.permission.UWB_RANGING',\n POST_NOTIFICATIONS: 'android.permission.POST_NOTIFICATIONS',\n NEARBY_WIFI_DEVICES: 'android.permission.NEARBY_WIFI_DEVICES',\n});\n\n/**\n * `PermissionsAndroid` provides access to Android M's new permissions model.\n *\n * See https://reactnative.dev/docs/permissionsandroid\n */\n\nclass PermissionsAndroid {\n PERMISSIONS: {|\n ACCEPT_HANDOVER: string,\n ACCESS_BACKGROUND_LOCATION: string,\n ACCESS_COARSE_LOCATION: string,\n ACCESS_FINE_LOCATION: string,\n ACCESS_MEDIA_LOCATION: string,\n ACTIVITY_RECOGNITION: string,\n ADD_VOICEMAIL: string,\n READ_VOICEMAIL: string,\n WRITE_VOICEMAIL: string,\n ANSWER_PHONE_CALLS: string,\n BLUETOOTH_ADVERTISE: string,\n BLUETOOTH_CONNECT: string,\n BLUETOOTH_SCAN: string,\n BODY_SENSORS: string,\n BODY_SENSORS_BACKGROUND: string,\n CALL_PHONE: string,\n CAMERA: string,\n GET_ACCOUNTS: string,\n NEARBY_WIFI_DEVICES: string,\n POST_NOTIFICATIONS: string,\n PROCESS_OUTGOING_CALLS: string,\n READ_CALENDAR: string,\n READ_CALL_LOG: string,\n READ_CONTACTS: string,\n READ_EXTERNAL_STORAGE: string,\n READ_MEDIA_IMAGES: string,\n READ_MEDIA_VIDEO: string,\n READ_MEDIA_AUDIO: string,\n READ_PHONE_NUMBERS: string,\n READ_PHONE_STATE: string,\n READ_SMS: string,\n RECEIVE_MMS: string,\n RECEIVE_SMS: string,\n RECEIVE_WAP_PUSH: string,\n RECORD_AUDIO: string,\n SEND_SMS: string,\n USE_SIP: string,\n UWB_RANGING: string,\n WRITE_CALENDAR: string,\n WRITE_CALL_LOG: string,\n WRITE_CONTACTS: string,\n WRITE_EXTERNAL_STORAGE: string,\n |} = PERMISSIONS;\n RESULTS: {|\n DENIED: $TEMPORARY$string<'denied'>,\n GRANTED: $TEMPORARY$string<'granted'>,\n NEVER_ASK_AGAIN: $TEMPORARY$string<'never_ask_again'>,\n |} = PERMISSION_REQUEST_RESULT;\n\n /**\n * DEPRECATED - use check\n *\n * Returns a promise resolving to a boolean value as to whether the specified\n * permissions has been granted\n *\n * @deprecated\n */\n checkPermission(permission: PermissionType): Promise {\n console.warn(\n '\"PermissionsAndroid.checkPermission\" is deprecated. Use \"PermissionsAndroid.check\" instead',\n );\n if (Platform.OS !== 'android') {\n console.warn(\n '\"PermissionsAndroid\" module works only for Android platform.',\n );\n return Promise.resolve(false);\n }\n\n invariant(\n NativePermissionsAndroid,\n 'PermissionsAndroid is not installed correctly.',\n );\n\n return NativePermissionsAndroid.checkPermission(permission);\n }\n\n /**\n * Returns a promise resolving to a boolean value as to whether the specified\n * permissions has been granted\n *\n * See https://reactnative.dev/docs/permissionsandroid#check\n */\n check(permission: PermissionType): Promise {\n if (Platform.OS !== 'android') {\n console.warn(\n '\"PermissionsAndroid\" module works only for Android platform.',\n );\n return Promise.resolve(false);\n }\n\n invariant(\n NativePermissionsAndroid,\n 'PermissionsAndroid is not installed correctly.',\n );\n\n return NativePermissionsAndroid.checkPermission(permission);\n }\n\n /**\n * DEPRECATED - use request\n *\n * Prompts the user to enable a permission and returns a promise resolving to a\n * boolean value indicating whether the user allowed or denied the request\n *\n * If the optional rationale argument is included (which is an object with a\n * `title` and `message`), this function checks with the OS whether it is\n * necessary to show a dialog explaining why the permission is needed\n * (https://developer.android.com/training/permissions/requesting#explain)\n * and then shows the system permission dialog\n *\n * @deprecated\n */\n async requestPermission(\n permission: PermissionType,\n rationale?: Rationale,\n ): Promise {\n console.warn(\n '\"PermissionsAndroid.requestPermission\" is deprecated. Use \"PermissionsAndroid.request\" instead',\n );\n if (Platform.OS !== 'android') {\n console.warn(\n '\"PermissionsAndroid\" module works only for Android platform.',\n );\n return Promise.resolve(false);\n }\n\n const response = await this.request(permission, rationale);\n return response === this.RESULTS.GRANTED;\n }\n\n /**\n * Prompts the user to enable a permission and returns a promise resolving to a\n * string value indicating whether the user allowed or denied the request\n *\n * See https://reactnative.dev/docs/permissionsandroid#request\n */\n async request(\n permission: PermissionType,\n rationale?: Rationale,\n ): Promise {\n if (Platform.OS !== 'android') {\n console.warn(\n '\"PermissionsAndroid\" module works only for Android platform.',\n );\n return Promise.resolve(this.RESULTS.DENIED);\n }\n\n invariant(\n NativePermissionsAndroid,\n 'PermissionsAndroid is not installed correctly.',\n );\n\n if (rationale) {\n const shouldShowRationale =\n await NativePermissionsAndroid.shouldShowRequestPermissionRationale(\n permission,\n );\n\n if (shouldShowRationale && !!NativeDialogManagerAndroid) {\n return new Promise((resolve, reject) => {\n const options = {\n ...rationale,\n };\n NativeDialogManagerAndroid.showAlert(\n /* $FlowFixMe[incompatible-exact] (>=0.111.0 site=react_native_fb)\n * This comment suppresses an error found when Flow v0.111 was\n * deployed. To see the error, delete this comment and run Flow.\n */\n options,\n () => reject(new Error('Error showing rationale')),\n () =>\n resolve(NativePermissionsAndroid.requestPermission(permission)),\n );\n });\n }\n }\n return NativePermissionsAndroid.requestPermission(permission);\n }\n\n /**\n * Prompts the user to enable multiple permissions in the same dialog and\n * returns an object with the permissions as keys and strings as values\n * indicating whether the user allowed or denied the request\n *\n * See https://reactnative.dev/docs/permissionsandroid#requestmultiple\n */\n requestMultiple(\n permissions: Array,\n ): Promise<{[permission: PermissionType]: PermissionStatus, ...}> {\n if (Platform.OS !== 'android') {\n console.warn(\n '\"PermissionsAndroid\" module works only for Android platform.',\n );\n return Promise.resolve({});\n }\n\n invariant(\n NativePermissionsAndroid,\n 'PermissionsAndroid is not installed correctly.',\n );\n\n return NativePermissionsAndroid.requestMultiplePermissions(permissions);\n }\n}\n\nconst PermissionsAndroidInstance: PermissionsAndroid = new PermissionsAndroid();\n\nmodule.exports = PermissionsAndroidInstance;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\n// TODO: Use proper enum types.\nexport type PermissionStatus = string;\nexport type PermissionType = string;\n/*\nexport type PermissionStatus = 'granted' | 'denied' | 'never_ask_again';\nexport type PermissionType =\n | 'android.permission.READ_CALENDAR'\n | 'android.permission.WRITE_CALENDAR'\n | 'android.permission.CAMERA'\n | 'android.permission.READ_CONTACTS'\n | 'android.permission.WRITE_CONTACTS'\n | 'android.permission.GET_ACCOUNTS'\n | 'android.permission.ACCESS_BACKGROUND_LOCATION'\n | 'android.permission.ACCESS_FINE_LOCATION'\n | 'android.permission.ACCESS_COARSE_LOCATION'\n | 'android.permission.RECORD_AUDIO'\n | 'android.permission.READ_PHONE_STATE'\n | 'android.permission.CALL_PHONE'\n | 'android.permission.READ_CALL_LOG'\n | 'android.permission.WRITE_CALL_LOG'\n | 'com.android.voicemail.permission.ADD_VOICEMAIL'\n | 'com.android.voicemail.permission.READ_VOICEMAIL'\n | 'com.android.voicemail.permission.WRITE_VOICEMAIL'\n | 'android.permission.USE_SIP'\n | 'android.permission.PROCESS_OUTGOING_CALLS'\n | 'android.permission.BODY_SENSORS'\n | 'android.permission.BODY_SENSORS_BACKGROUND'\n | 'android.permission.SEND_SMS'\n | 'android.permission.RECEIVE_SMS'\n | 'android.permission.READ_SMS'\n | 'android.permission.RECEIVE_WAP_PUSH'\n | 'android.permission.RECEIVE_MMS'\n | 'android.permission.READ_EXTERNAL_STORAGE'\n | 'android.permission.READ_MEDIA_IMAGES',\n | 'android.permission.READ_MEDIA_VIDEO',\n | 'android.permission.READ_MEDIA_AUDIO',\n | 'android.permission.WRITE_EXTERNAL_STORAGE'\n | 'android.permission.BLUETOOTH_CONNECT'\n | 'android.permission.BLUETOOTH_SCAN'\n | 'android.permission.BLUETOOTH_ADVERTISE'\n | 'android.permission.ACCESS_MEDIA_LOCATION'\n | 'android.permission.ACCEPT_HANDOVER'\n | 'android.permission.ACTIVITY_RECOGNITION'\n | 'android.permission.ANSWER_PHONE_CALLS'\n | 'android.permission.READ_PHONE_NUMBERS'\n | 'android.permission.UWB_RANGING'\n | 'android.permission.POST_NOTIFICATIONS'\n | 'android.permission.NEARBY_WIFI_DEVICES';\n*/\n\nexport interface Spec extends TurboModule {\n +checkPermission: (permission: PermissionType) => Promise;\n +requestPermission: (permission: PermissionType) => Promise;\n +shouldShowRequestPermissionRationale: (\n permission: string,\n ) => Promise;\n +requestMultiplePermissions: (\n permissions: Array,\n ) => Promise<{[permission: PermissionType]: PermissionStatus, ...}>;\n}\n\nexport default (TurboModuleRegistry.get('PermissionsAndroid'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {EventSubscription} from '../vendor/emitter/EventEmitter';\n\nimport NativeEventEmitter from '../EventEmitter/NativeEventEmitter';\nimport Platform from '../Utilities/Platform';\nimport NativePushNotificationManagerIOS from './NativePushNotificationManagerIOS';\nimport invariant from 'invariant';\n\ntype NativePushNotificationIOSEventDefinitions = {\n remoteNotificationReceived: [\n {\n notificationId: string,\n remote: boolean,\n ...\n },\n ],\n remoteNotificationsRegistered: [\n {\n deviceToken?: ?string,\n ...\n },\n ],\n remoteNotificationRegistrationError: [\n {\n message: string,\n code: number,\n details: {...},\n },\n ],\n localNotificationReceived: [{...}],\n};\n\nconst PushNotificationEmitter =\n new NativeEventEmitter(\n // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior\n // If you want to use the native module on other platforms, please remove this condition and test its behavior\n Platform.OS !== 'ios' ? null : NativePushNotificationManagerIOS,\n );\n\nconst _notifHandlers = new Map();\n\nconst DEVICE_NOTIF_EVENT = 'remoteNotificationReceived';\nconst NOTIF_REGISTER_EVENT = 'remoteNotificationsRegistered';\nconst NOTIF_REGISTRATION_ERROR_EVENT = 'remoteNotificationRegistrationError';\nconst DEVICE_LOCAL_NOTIF_EVENT = 'localNotificationReceived';\n\nexport type ContentAvailable = 1 | null | void;\n\nexport type FetchResult = {\n NewData: string,\n NoData: string,\n ResultFailed: string,\n ...\n};\n\n/**\n * An event emitted by PushNotificationIOS.\n */\nexport type PushNotificationEventName = $Keys<{\n /**\n * Fired when a remote notification is received. The handler will be invoked\n * with an instance of `PushNotificationIOS`.\n */\n notification: string,\n /**\n * Fired when a local notification is received. The handler will be invoked\n * with an instance of `PushNotificationIOS`.\n */\n localNotification: string,\n /**\n * Fired when the user registers for remote notifications. The handler will be\n * invoked with a hex string representing the deviceToken.\n */\n register: string,\n /**\n * Fired when the user fails to register for remote notifications. Typically\n * occurs when APNS is having issues, or the device is a simulator. The\n * handler will be invoked with {message: string, code: number, details: any}.\n */\n registrationError: string,\n ...\n}>;\n\n/**\n *\n * Handle push notifications for your app, including permission handling and\n * icon badge number.\n *\n * See https://reactnative.dev/docs/pushnotificationios\n */\nclass PushNotificationIOS {\n _data: Object;\n _alert: string | Object;\n _sound: string;\n _category: string;\n _contentAvailable: ContentAvailable;\n _badgeCount: number;\n _notificationId: string;\n _isRemote: boolean;\n _remoteNotificationCompleteCallbackCalled: boolean;\n _threadID: string;\n\n static FetchResult: FetchResult = {\n NewData: 'UIBackgroundFetchResultNewData',\n NoData: 'UIBackgroundFetchResultNoData',\n ResultFailed: 'UIBackgroundFetchResultFailed',\n };\n\n /**\n * Schedules the localNotification for immediate presentation.\n *\n * See https://reactnative.dev/docs/pushnotificationios#presentlocalnotification\n */\n static presentLocalNotification(details: Object): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.presentLocalNotification(details);\n }\n\n /**\n * Schedules the localNotification for future presentation.\n *\n * See https://reactnative.dev/docs/pushnotificationios#schedulelocalnotification\n */\n static scheduleLocalNotification(details: Object): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.scheduleLocalNotification(details);\n }\n\n /**\n * Cancels all scheduled localNotifications.\n *\n * See https://reactnative.dev/docs/pushnotificationios#cancelalllocalnotifications\n */\n static cancelAllLocalNotifications(): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.cancelAllLocalNotifications();\n }\n\n /**\n * Remove all delivered notifications from Notification Center.\n *\n * See https://reactnative.dev/docs/pushnotificationios#removealldeliverednotifications\n */\n static removeAllDeliveredNotifications(): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.removeAllDeliveredNotifications();\n }\n\n /**\n * Provides you with a list of the app’s notifications that are still displayed in Notification Center.\n *\n * See https://reactnative.dev/docs/pushnotificationios#getdeliverednotifications\n */\n static getDeliveredNotifications(\n callback: (notifications: Array) => void,\n ): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.getDeliveredNotifications(callback);\n }\n\n /**\n * Removes the specified notifications from Notification Center\n *\n * See https://reactnative.dev/docs/pushnotificationios#removedeliverednotifications\n */\n static removeDeliveredNotifications(identifiers: Array): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.removeDeliveredNotifications(identifiers);\n }\n\n /**\n * Sets the badge number for the app icon on the home screen.\n *\n * See https://reactnative.dev/docs/pushnotificationios#setapplicationiconbadgenumber\n */\n static setApplicationIconBadgeNumber(number: number): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.setApplicationIconBadgeNumber(number);\n }\n\n /**\n * Gets the current badge number for the app icon on the home screen.\n *\n * See https://reactnative.dev/docs/pushnotificationios#getapplicationiconbadgenumber\n */\n static getApplicationIconBadgeNumber(callback: Function): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.getApplicationIconBadgeNumber(callback);\n }\n\n /**\n * Cancel local notifications.\n *\n * See https://reactnative.dev/docs/pushnotificationios#cancellocalnotification\n */\n static cancelLocalNotifications(userInfo: Object): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.cancelLocalNotifications(userInfo);\n }\n\n /**\n * Gets the local notifications that are currently scheduled.\n *\n * See https://reactnative.dev/docs/pushnotificationios#getscheduledlocalnotifications\n */\n static getScheduledLocalNotifications(callback: Function): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.getScheduledLocalNotifications(callback);\n }\n\n /**\n * Attaches a listener to remote or local notification events while the app\n * is running in the foreground or the background.\n *\n * See https://reactnative.dev/docs/pushnotificationios#addeventlistener\n */\n static addEventListener(\n type: PushNotificationEventName,\n handler: Function,\n ): void {\n invariant(\n type === 'notification' ||\n type === 'register' ||\n type === 'registrationError' ||\n type === 'localNotification',\n 'PushNotificationIOS only supports `notification`, `register`, `registrationError`, and `localNotification` events',\n );\n let listener;\n if (type === 'notification') {\n listener = PushNotificationEmitter.addListener(\n DEVICE_NOTIF_EVENT,\n notifData => {\n handler(new PushNotificationIOS(notifData));\n },\n );\n } else if (type === 'localNotification') {\n listener = PushNotificationEmitter.addListener(\n DEVICE_LOCAL_NOTIF_EVENT,\n notifData => {\n handler(new PushNotificationIOS(notifData));\n },\n );\n } else if (type === 'register') {\n listener = PushNotificationEmitter.addListener(\n NOTIF_REGISTER_EVENT,\n registrationInfo => {\n handler(registrationInfo.deviceToken);\n },\n );\n } else if (type === 'registrationError') {\n listener = PushNotificationEmitter.addListener(\n NOTIF_REGISTRATION_ERROR_EVENT,\n errorInfo => {\n handler(errorInfo);\n },\n );\n }\n _notifHandlers.set(type, listener);\n }\n\n /**\n * Removes the event listener. Do this in `componentWillUnmount` to prevent\n * memory leaks.\n *\n * See https://reactnative.dev/docs/pushnotificationios#removeeventlistener\n */\n static removeEventListener(\n type: PushNotificationEventName,\n handler: Function,\n ): void {\n invariant(\n type === 'notification' ||\n type === 'register' ||\n type === 'registrationError' ||\n type === 'localNotification',\n 'PushNotificationIOS only supports `notification`, `register`, `registrationError`, and `localNotification` events',\n );\n const listener = _notifHandlers.get(type);\n if (!listener) {\n return;\n }\n listener.remove();\n _notifHandlers.delete(type);\n }\n\n /**\n * Requests notification permissions from iOS, prompting the user's\n * dialog box. By default, it will request all notification permissions, but\n * a subset of these can be requested by passing a map of requested\n * permissions.\n *\n * See https://reactnative.dev/docs/pushnotificationios#requestpermissions\n */\n static requestPermissions(permissions?: {\n alert?: boolean,\n badge?: boolean,\n sound?: boolean,\n ...\n }): Promise<{\n alert: boolean,\n badge: boolean,\n sound: boolean,\n ...\n }> {\n let requestedPermissions = {\n alert: true,\n badge: true,\n sound: true,\n };\n if (permissions) {\n requestedPermissions = {\n alert: !!permissions.alert,\n badge: !!permissions.badge,\n sound: !!permissions.sound,\n };\n }\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n return NativePushNotificationManagerIOS.requestPermissions(\n requestedPermissions,\n );\n }\n\n /**\n * Unregister for all remote notifications received via Apple Push Notification service.\n *\n * See https://reactnative.dev/docs/pushnotificationios#abandonpermissions\n */\n static abandonPermissions(): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.abandonPermissions();\n }\n\n /**\n * See what push permissions are currently enabled. `callback` will be\n * invoked with a `permissions` object.\n *\n * See https://reactnative.dev/docs/pushnotificationios#checkpermissions\n */\n static checkPermissions(callback: Function): void {\n invariant(typeof callback === 'function', 'Must provide a valid callback');\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.checkPermissions(callback);\n }\n\n /**\n * This method returns a promise that resolves to either the notification\n * object if the app was launched by a push notification, or `null` otherwise.\n *\n * See https://reactnative.dev/docs/pushnotificationios#getinitialnotification\n */\n static getInitialNotification(): Promise {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n return NativePushNotificationManagerIOS.getInitialNotification().then(\n notification => {\n return notification && new PushNotificationIOS(notification);\n },\n );\n }\n\n /**\n * This method returns a promise that resolves to notification authorization status.\n */\n static getAuthorizationStatus(\n callback: (authorizationStatus: number) => void,\n ): void {\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n\n NativePushNotificationManagerIOS.getAuthorizationStatus(callback);\n }\n\n /**\n * You will never need to instantiate `PushNotificationIOS` yourself.\n * Listening to the `notification` event and invoking\n * `getInitialNotification` is sufficient\n *\n */\n constructor(nativeNotif: Object) {\n this._data = {};\n this._remoteNotificationCompleteCallbackCalled = false;\n this._isRemote = nativeNotif.remote;\n if (this._isRemote) {\n this._notificationId = nativeNotif.notificationId;\n }\n\n if (nativeNotif.remote) {\n // Extract data from Apple's `aps` dict as defined:\n // https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService\n Object.keys(nativeNotif).forEach(notifKey => {\n const notifVal = nativeNotif[notifKey];\n if (notifKey === 'aps') {\n this._alert = notifVal.alert;\n this._sound = notifVal.sound;\n this._badgeCount = notifVal.badge;\n this._category = notifVal.category;\n this._contentAvailable = notifVal['content-available'];\n this._threadID = notifVal['thread-id'];\n } else {\n this._data[notifKey] = notifVal;\n }\n });\n } else {\n // Local notifications aren't being sent down with `aps` dict.\n this._badgeCount = nativeNotif.applicationIconBadgeNumber;\n this._sound = nativeNotif.soundName;\n this._alert = nativeNotif.alertBody;\n this._data = nativeNotif.userInfo;\n this._category = nativeNotif.category;\n }\n }\n\n /**\n * This method is available for remote notifications that have been received via:\n * `application:didReceiveRemoteNotification:fetchCompletionHandler:`\n *\n * See https://reactnative.dev/docs/pushnotificationios#finish\n */\n finish(fetchResult: string): void {\n if (\n !this._isRemote ||\n !this._notificationId ||\n this._remoteNotificationCompleteCallbackCalled\n ) {\n return;\n }\n this._remoteNotificationCompleteCallbackCalled = true;\n\n invariant(\n NativePushNotificationManagerIOS,\n 'PushNotificationManager is not available.',\n );\n NativePushNotificationManagerIOS.onFinishRemoteNotification(\n this._notificationId,\n fetchResult,\n );\n }\n\n /**\n * An alias for `getAlert` to get the notification's main message string\n */\n getMessage(): ?string | ?Object {\n // alias because \"alert\" is an ambiguous name\n return this._alert;\n }\n\n /**\n * Gets the sound string from the `aps` object\n *\n * See https://reactnative.dev/docs/pushnotificationios#getsound\n */\n getSound(): ?string {\n return this._sound;\n }\n\n /**\n * Gets the category string from the `aps` object\n *\n * See https://reactnative.dev/docs/pushnotificationios#getcategory\n */\n getCategory(): ?string {\n return this._category;\n }\n\n /**\n * Gets the notification's main message from the `aps` object\n *\n * See https://reactnative.dev/docs/pushnotificationios#getalert\n */\n getAlert(): ?string | ?Object {\n return this._alert;\n }\n\n /**\n * Gets the content-available number from the `aps` object\n *\n * See https://reactnative.dev/docs/pushnotificationios#getcontentavailable\n */\n getContentAvailable(): ContentAvailable {\n return this._contentAvailable;\n }\n\n /**\n * Gets the badge count number from the `aps` object\n *\n * See https://reactnative.dev/docs/pushnotificationios#getbadgecount\n */\n getBadgeCount(): ?number {\n return this._badgeCount;\n }\n\n /**\n * Gets the data object on the notif\n *\n * See https://reactnative.dev/docs/pushnotificationios#getdata\n */\n getData(): ?Object {\n return this._data;\n }\n\n /**\n * Gets the thread ID on the notif\n *\n * See https://reactnative.dev/docs/pushnotificationios#getthreadid\n */\n getThreadID(): ?string {\n return this._threadID;\n }\n}\n\nmodule.exports = PushNotificationIOS;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\ntype Permissions = {|\n alert: boolean,\n badge: boolean,\n sound: boolean,\n|};\n\ntype Notification = {|\n +alertTitle?: ?string,\n // Actual type: string | number\n +fireDate?: ?number,\n +alertBody?: ?string,\n +alertAction?: ?string,\n +userInfo?: ?Object,\n +category?: ?string,\n // Actual type: 'year' | 'month' | 'week' | 'day' | 'hour' | 'minute'\n +repeatInterval?: ?string,\n +applicationIconBadgeNumber?: ?number,\n +isSilent?: ?boolean,\n +soundName?: ?string,\n|};\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {||};\n +onFinishRemoteNotification: (\n notificationId: string,\n /**\n * Type:\n * 'UIBackgroundFetchResultNewData' |\n * 'UIBackgroundFetchResultNoData' |\n * 'UIBackgroundFetchResultFailed'\n */\n fetchResult: string,\n ) => void;\n +setApplicationIconBadgeNumber: (num: number) => void;\n +getApplicationIconBadgeNumber: (callback: (num: number) => void) => void;\n +requestPermissions: (permission: {|\n +alert: boolean,\n +badge: boolean,\n +sound: boolean,\n |}) => Promise;\n +abandonPermissions: () => void;\n +checkPermissions: (callback: (permissions: Permissions) => void) => void;\n +presentLocalNotification: (notification: Notification) => void;\n +scheduleLocalNotification: (notification: Notification) => void;\n +cancelAllLocalNotifications: () => void;\n +cancelLocalNotifications: (userInfo: Object) => void;\n +getInitialNotification: () => Promise;\n +getScheduledLocalNotifications: (\n callback: (notification: Notification) => void,\n ) => void;\n +removeAllDeliveredNotifications: () => void;\n +removeDeliveredNotifications: (identifiers: Array) => void;\n +getDeliveredNotifications: (\n callback: (notification: Array) => void,\n ) => void;\n +getAuthorizationStatus: (\n callback: (authorizationStatus: number) => void,\n ) => void;\n +addListener: (eventType: string) => void;\n +removeListeners: (count: number) => void;\n}\n\nexport default (TurboModuleRegistry.get(\n 'PushNotificationManager',\n): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow\n */\n\n'use strict';\n\nconst Settings = {\n get(key: string): mixed {\n console.warn('Settings is not yet supported on Android');\n return null;\n },\n\n set(settings: Object) {\n console.warn('Settings is not yet supported on Android');\n },\n\n watchKeys(keys: string | Array, callback: Function): number {\n console.warn('Settings is not yet supported on Android');\n return -1;\n },\n\n clearWatch(watchId: number) {\n console.warn('Settings is not yet supported on Android');\n },\n};\n\nmodule.exports = Settings;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport NativeActionSheetManager from '../ActionSheetIOS/NativeActionSheetManager';\nimport NativeShareModule from './NativeShareModule';\n\nconst processColor = require('../StyleSheet/processColor').default;\nconst Platform = require('../Utilities/Platform');\nconst invariant = require('invariant');\n\ntype Content =\n | {\n title?: string,\n message: string,\n ...\n }\n | {\n title?: string,\n url: string,\n ...\n };\ntype Options = {\n dialogTitle?: string,\n excludedActivityTypes?: Array,\n tintColor?: string,\n subject?: string,\n anchor?: number,\n ...\n};\n\nclass Share {\n /**\n * Open a dialog to share text content.\n *\n * In iOS, Returns a Promise which will be invoked an object containing `action`, `activityType`.\n * If the user dismissed the dialog, the Promise will still be resolved with action being `Share.dismissedAction`\n * and all the other keys being undefined.\n *\n * In Android, Returns a Promise which always be resolved with action being `Share.sharedAction`.\n *\n * ### Content\n *\n * - `message` - a message to share\n *\n * #### iOS\n *\n * - `url` - a URL to share\n *\n * At least one of URL and message is required.\n *\n * #### Android\n *\n * - `title` - title of the message\n *\n * ### Options\n *\n * #### iOS\n *\n * - `subject` - a subject to share via email\n * - `excludedActivityTypes`\n * - `tintColor`\n *\n * #### Android\n *\n * - `dialogTitle`\n *\n */\n static share(\n content: Content,\n options: Options = {},\n ): Promise<{action: string, activityType: ?string}> {\n invariant(\n typeof content === 'object' && content !== null,\n 'Content to share must be a valid object',\n );\n invariant(\n typeof content.url === 'string' || typeof content.message === 'string',\n 'At least one of URL and message is required',\n );\n invariant(\n typeof options === 'object' && options !== null,\n 'Options must be a valid object',\n );\n\n if (Platform.OS === 'android') {\n invariant(\n NativeShareModule,\n 'ShareModule should be registered on Android.',\n );\n invariant(\n content.title == null || typeof content.title === 'string',\n 'Invalid title: title should be a string.',\n );\n\n const newContent = {\n title: content.title,\n message:\n typeof content.message === 'string' ? content.message : undefined,\n };\n\n return NativeShareModule.share(newContent, options.dialogTitle).then(\n result => ({\n activityType: null,\n ...result,\n }),\n );\n } else if (Platform.OS === 'ios') {\n return new Promise((resolve, reject) => {\n const tintColor = processColor(options.tintColor);\n\n invariant(\n tintColor == null || typeof tintColor === 'number',\n 'Unexpected color given for options.tintColor',\n );\n\n invariant(\n NativeActionSheetManager,\n 'NativeActionSheetManager is not registered on iOS, but it should be.',\n );\n\n NativeActionSheetManager.showShareActionSheetWithOptions(\n {\n message:\n typeof content.message === 'string' ? content.message : undefined,\n url: typeof content.url === 'string' ? content.url : undefined,\n subject: options.subject,\n tintColor: typeof tintColor === 'number' ? tintColor : undefined,\n anchor:\n typeof options.anchor === 'number' ? options.anchor : undefined,\n excludedActivityTypes: options.excludedActivityTypes,\n },\n error => reject(error),\n (success, activityType) => {\n if (success) {\n resolve({\n action: 'sharedAction',\n activityType: activityType,\n });\n } else {\n resolve({\n action: 'dismissedAction',\n activityType: null,\n });\n }\n },\n );\n });\n } else {\n return Promise.reject(new Error('Unsupported platform'));\n }\n }\n\n /**\n * The content was successfully shared.\n */\n static sharedAction: 'sharedAction' = 'sharedAction';\n\n /**\n * The dialog has been dismissed.\n * @platform ios\n */\n static dismissedAction: 'dismissedAction' = 'dismissedAction';\n}\n\nmodule.exports = Share;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {||};\n +share: (\n content: {|title?: string, message?: string|},\n dialogTitle?: string,\n ) => Promise<{|action: string|}>;\n}\n\nexport default (TurboModuleRegistry.get('ShareModule'): ?Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport NativeToastAndroid from './NativeToastAndroid';\n\n/**\n * This exposes the native ToastAndroid module as a JS module. This has a function 'show'\n * which takes the following parameters:\n *\n * 1. String message: A string with the text to toast\n * 2. int duration: The duration of the toast. May be ToastAndroid.SHORT or ToastAndroid.LONG\n *\n * There is also a function `showWithGravity` to specify the layout gravity. May be\n * ToastAndroid.TOP, ToastAndroid.BOTTOM, ToastAndroid.CENTER.\n *\n * The 'showWithGravityAndOffset' function adds on the ability to specify offset\n * These offset values will translate to pixels.\n *\n * Basic usage:\n * ```javascript\n * ToastAndroid.show('A pikachu appeared nearby !', ToastAndroid.SHORT);\n * ToastAndroid.showWithGravity('All Your Base Are Belong To Us', ToastAndroid.SHORT, ToastAndroid.CENTER);\n * ToastAndroid.showWithGravityAndOffset('A wild toast appeared!', ToastAndroid.LONG, ToastAndroid.BOTTOM, 25, 50);\n * ```\n */\n\nconst ToastAndroidConstants = NativeToastAndroid.getConstants();\n\nconst ToastAndroid = {\n // Toast duration constants\n SHORT: (ToastAndroidConstants.SHORT: number),\n LONG: (ToastAndroidConstants.LONG: number),\n // Toast gravity constants\n TOP: (ToastAndroidConstants.TOP: number),\n BOTTOM: (ToastAndroidConstants.BOTTOM: number),\n CENTER: (ToastAndroidConstants.CENTER: number),\n\n show: function (message: string, duration: number): void {\n NativeToastAndroid.show(message, duration);\n },\n\n showWithGravity: function (\n message: string,\n duration: number,\n gravity: number,\n ): void {\n NativeToastAndroid.showWithGravity(message, duration, gravity);\n },\n\n showWithGravityAndOffset: function (\n message: string,\n duration: number,\n gravity: number,\n xOffset: number,\n yOffset: number,\n ): void {\n NativeToastAndroid.showWithGravityAndOffset(\n message,\n duration,\n gravity,\n xOffset,\n yOffset,\n );\n },\n};\n\nmodule.exports = ToastAndroid;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {|\n SHORT: number,\n LONG: number,\n TOP: number,\n BOTTOM: number,\n CENTER: number,\n |};\n +show: (message: string, duration: number) => void;\n +showWithGravity: (\n message: string,\n duration: number,\n gravity: number,\n ) => void;\n +showWithGravityAndOffset: (\n message: string,\n duration: number,\n gravity: number,\n xOffset: number,\n yOffset: number,\n ) => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('ToastAndroid'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {AnimatedValueConfig} from './nodes/AnimatedValue';\n\nimport Animated from './Animated';\nimport {useRef} from 'react';\n\nexport default function useAnimatedValue(\n initialValue: number,\n config?: ?AnimatedValueConfig,\n): Animated.Value {\n const ref = useRef(null);\n if (ref.current == null) {\n ref.current = new Animated.Value(initialValue, config);\n }\n return ref.current;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\n'use strict';\n\nimport type {ColorSchemeName} from './NativeAppearance';\n\nimport Appearance from './Appearance';\nimport {useSyncExternalStore} from 'use-sync-external-store/shim';\n\nexport default function useColorScheme(): ?ColorSchemeName {\n return useSyncExternalStore(\n callback => {\n const appearanceSubscription = Appearance.addChangeListener(callback);\n return () => appearanceSubscription.remove();\n },\n () => Appearance.getColorScheme(),\n );\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.native.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.native.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim.native.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:q;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport Dimensions from './Dimensions';\nimport {\n type DisplayMetrics,\n type DisplayMetricsAndroid,\n} from './NativeDeviceInfo';\nimport {useEffect, useState} from 'react';\n\nexport default function useWindowDimensions():\n | DisplayMetrics\n | DisplayMetricsAndroid {\n const [dimensions, setDimensions] = useState(() => Dimensions.get('window'));\n useEffect(() => {\n function handleChange({\n window,\n }: {\n window: DisplayMetrics | DisplayMetricsAndroid,\n }) {\n if (\n dimensions.width !== window.width ||\n dimensions.height !== window.height ||\n dimensions.scale !== window.scale ||\n dimensions.fontScale !== window.fontScale\n ) {\n setDimensions(window);\n }\n }\n const subscription = Dimensions.addEventListener('change', handleChange);\n // We might have missed an update between calling `get` in render and\n // `addEventListener` in this handler, so we set it here. If there was\n // no change, React will filter out this update as a no-op.\n handleChange({window: Dimensions.get('window')});\n return () => {\n subscription.remove();\n };\n }, [dimensions]);\n return dimensions;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nconst deepFreezeAndThrowOnMutationInDev = require('./Utilities/deepFreezeAndThrowOnMutationInDev');\n\n/**\n * A collection of Unicode sequences for various characters and emoji.\n *\n * - More explicit than using the sequences directly in code.\n * - Source code should be limited to ASCII.\n * - Less chance of typos.\n */\nconst UTFSequence: {|\n BOM: string,\n BULLET: string,\n BULLET_SP: string,\n MDASH: string,\n MDASH_SP: string,\n MIDDOT: string,\n MIDDOT_KATAKANA: string,\n MIDDOT_SP: string,\n NBSP: string,\n NDASH: string,\n NDASH_SP: string,\n NEWLINE: string,\n PIZZA: string,\n TRIANGLE_LEFT: string,\n TRIANGLE_RIGHT: string,\n|} = deepFreezeAndThrowOnMutationInDev({\n BOM: '\\ufeff', // byte order mark\n BULLET: '\\u2022', // bullet: •\n BULLET_SP: '\\u00A0\\u2022\\u00A0', //  • \n MIDDOT: '\\u00B7', // normal middle dot: ·\n MIDDOT_SP: '\\u00A0\\u00B7\\u00A0', //  · \n MIDDOT_KATAKANA: '\\u30FB', // katakana middle dot\n MDASH: '\\u2014', // em dash: —\n MDASH_SP: '\\u00A0\\u2014\\u00A0', //  — \n NDASH: '\\u2013', // en dash: –\n NDASH_SP: '\\u00A0\\u2013\\u00A0', //  – \n NEWLINE: '\\u000A',\n NBSP: '\\u00A0', // non-breaking space:  \n PIZZA: '\\uD83C\\uDF55',\n TRIANGLE_LEFT: '\\u25c0', // black left-pointing triangle\n TRIANGLE_RIGHT: '\\u25b6', // black right-pointing triangle\n});\n\nexport default UTFSequence;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n * @jsdoc\n */\n\nimport NativeVibration from './NativeVibration';\n\nconst Platform = require('../Utilities/Platform');\n\n/**\n * Vibration API\n *\n * See https://reactnative.dev/docs/vibration\n */\n\nlet _vibrating: boolean = false;\nlet _id: number = 0; // _id is necessary to prevent race condition.\nconst _default_vibration_length = 400;\n\nfunction vibrateByPattern(pattern: Array, repeat: boolean = false) {\n if (_vibrating) {\n return;\n }\n _vibrating = true;\n if (pattern[0] === 0) {\n NativeVibration.vibrate(_default_vibration_length);\n // $FlowFixMe[reassign-const]\n pattern = pattern.slice(1);\n }\n if (pattern.length === 0) {\n _vibrating = false;\n return;\n }\n setTimeout(() => vibrateScheduler(++_id, pattern, repeat, 1), pattern[0]);\n}\n\nfunction vibrateScheduler(\n id: number,\n pattern: Array,\n repeat: boolean,\n nextIndex: number,\n) {\n if (!_vibrating || id !== _id) {\n return;\n }\n NativeVibration.vibrate(_default_vibration_length);\n if (nextIndex >= pattern.length) {\n if (repeat) {\n // $FlowFixMe[reassign-const]\n nextIndex = 0;\n } else {\n _vibrating = false;\n return;\n }\n }\n setTimeout(\n () => vibrateScheduler(id, pattern, repeat, nextIndex + 1),\n pattern[nextIndex],\n );\n}\n\nconst Vibration = {\n /**\n * Trigger a vibration with specified `pattern`.\n *\n * See https://reactnative.dev/docs/vibration#vibrate\n */\n vibrate: function (\n pattern: number | Array = _default_vibration_length,\n repeat: boolean = false,\n ) {\n if (Platform.OS === 'android') {\n if (typeof pattern === 'number') {\n NativeVibration.vibrate(pattern);\n } else if (Array.isArray(pattern)) {\n NativeVibration.vibrateByPattern(pattern, repeat ? 0 : -1);\n } else {\n throw new Error('Vibration pattern should be a number or array');\n }\n } else {\n if (_vibrating) {\n return;\n }\n if (typeof pattern === 'number') {\n NativeVibration.vibrate(pattern);\n } else if (Array.isArray(pattern)) {\n vibrateByPattern(pattern, repeat);\n } else {\n throw new Error('Vibration pattern should be a number or array');\n }\n }\n },\n /**\n * Stop vibration\n *\n * See https://reactnative.dev/docs/vibration#cancel\n */\n cancel: function () {\n if (Platform.OS === 'ios') {\n _vibrating = false;\n } else {\n NativeVibration.cancel();\n }\n },\n};\n\nmodule.exports = Vibration;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\nimport type {TurboModule} from '../TurboModule/RCTExport';\n\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\n\nexport interface Spec extends TurboModule {\n +getConstants: () => {||};\n +vibrate: (pattern: number) => void;\n\n // Android only\n +vibrateByPattern: (pattern: Array, repeat: number) => void;\n +cancel: () => void;\n}\n\nexport default (TurboModuleRegistry.getEnforcing('Vibration'): Spec);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport type {IgnorePattern} from '../LogBox/Data/LogBoxData';\n\nconst LogBox = require('../LogBox/LogBox').default;\nconst React = require('react');\n\ntype Props = $ReadOnly<{||}>;\n\nlet YellowBox;\nif (__DEV__) {\n YellowBox = class extends React.Component {\n static ignoreWarnings(patterns: $ReadOnlyArray): void {\n console.warn(\n 'YellowBox has been replaced with LogBox. Please call LogBox.ignoreLogs() instead.',\n );\n\n LogBox.ignoreLogs(patterns);\n }\n\n static install(): void {\n console.warn(\n 'YellowBox has been replaced with LogBox. Please call LogBox.install() instead.',\n );\n LogBox.install();\n }\n\n static uninstall(): void {\n console.warn(\n 'YellowBox has been replaced with LogBox. Please call LogBox.uninstall() instead.',\n );\n LogBox.uninstall();\n }\n\n render(): React.Node {\n return null;\n }\n };\n} else {\n YellowBox = class extends React.Component {\n static ignoreWarnings(patterns: $ReadOnlyArray): void {\n // Do nothing.\n }\n\n static install(): void {\n // Do nothing.\n }\n\n static uninstall(): void {\n // Do nothing.\n }\n\n render(): React.Node {\n return null;\n }\n };\n}\n\n// $FlowFixMe[method-unbinding]\nmodule.exports = (YellowBox: Class> & {\n ignoreWarnings($ReadOnlyArray): void,\n install(): void,\n uninstall(): void,\n ...\n});\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict-local\n */\n\nimport type {ColorValue} from './StyleSheet';\n\nexport type DynamicColorIOSTuple = {\n light: ColorValue,\n dark: ColorValue,\n highContrastLight?: ColorValue,\n highContrastDark?: ColorValue,\n};\n\nexport const DynamicColorIOS = (tuple: DynamicColorIOSTuple): ColorValue => {\n throw new Error('DynamicColorIOS is not available on this platform.');\n};\n","/**\n * Sample React Native App\n * https://github.com/facebook/react-native\n *\n * @format\n */\n\nimport React from 'react';\nimport type {PropsWithChildren} from 'react';\nimport {\n SafeAreaView,\n ScrollView,\n StatusBar,\n StyleSheet,\n Text,\n useColorScheme,\n View,\n} from 'react-native';\n\nimport {\n Colors,\n DebugInstructions,\n Header,\n LearnMoreLinks,\n ReloadInstructions,\n} from 'react-native/Libraries/NewAppScreen';\n\ntype SectionProps = PropsWithChildren<{\n title: string;\n}>;\n\nfunction Section({children, title}: SectionProps): JSX.Element {\n const isDarkMode = useColorScheme() === 'dark';\n return (\n \n \n {title}\n \n \n {children}\n \n \n );\n}\n\nfunction App(): JSX.Element {\n const isDarkMode = useColorScheme() === 'dark';\n\n const backgroundStyle = {\n backgroundColor: isDarkMode ? Colors.darker : Colors.lighter,\n };\n\n return (\n \n \n \n
\n \n
\n Edit App.tsx to change this\n screen and then come back to see your edits.\n
\n
\n \n
\n
\n \n
\n
\n Read the docs to discover what to do next:\n
\n \n \n \n \n );\n}\n\nconst styles = StyleSheet.create({\n sectionContainer: {\n marginTop: 32,\n paddingHorizontal: 24,\n },\n sectionTitle: {\n fontSize: 24,\n fontWeight: '600',\n },\n sectionDescription: {\n marginTop: 8,\n fontSize: 18,\n fontWeight: '400',\n },\n highlight: {\n fontWeight: '700',\n },\n});\n\nexport default App;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport Colors from './components/Colors';\nimport DebugInstructions from './components/DebugInstructions';\nimport Header from './components/Header';\nimport HermesBadge from './components/HermesBadge';\nimport LearnMoreLinks from './components/LearnMoreLinks';\nimport ReloadInstructions from './components/ReloadInstructions';\n\nexport {\n Colors,\n Header,\n HermesBadge,\n LearnMoreLinks,\n DebugInstructions,\n ReloadInstructions,\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nexport default {\n primary: '#1292B4',\n white: '#FFF',\n lighter: '#F3F3F3',\n light: '#DAE1E7',\n dark: '#444',\n darker: '#222',\n black: '#000',\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {Node} from 'react';\n\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Text from '../../Text/Text';\nimport Platform from '../../Utilities/Platform';\nimport React from 'react';\n\nconst styles = StyleSheet.create({\n highlight: {\n fontWeight: '700',\n },\n});\n\nconst DebugInstructions: () => Node = Platform.select({\n ios: () => (\n \n Press Cmd + D in the simulator or{' '}\n Shake your device to open the React\n Native debug menu.\n \n ),\n default: () => (\n \n Press Cmd or Ctrl + M or{' '}\n Shake your device to open the React\n Native debug menu.\n \n ),\n});\n\nexport default DebugInstructions;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {Node} from 'react';\n\nimport ImageBackground from '../../Image/ImageBackground';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Text from '../../Text/Text';\nimport useColorScheme from '../../Utilities/useColorScheme';\nimport Colors from './Colors';\nimport HermesBadge from './HermesBadge';\nimport React from 'react';\n\nconst Header = (): Node => {\n const isDarkMode = useColorScheme() === 'dark';\n return (\n \n \n \n Welcome to\n {'\\n'}\n React Native\n \n \n );\n};\n\nconst styles = StyleSheet.create({\n background: {\n paddingBottom: 40,\n paddingTop: 96,\n paddingHorizontal: 32,\n },\n logo: {\n opacity: 0.2,\n overflow: 'visible',\n resizeMode: 'cover',\n /*\n * These negative margins allow the image to be offset similarly across screen sizes and component sizes.\n *\n * The source logo.png image is 512x512px, so as such, these margins attempt to be relative to the\n * source image's size.\n */\n marginLeft: -128,\n marginBottom: -192,\n },\n text: {\n fontSize: 40,\n fontWeight: '700',\n textAlign: 'center',\n },\n});\n\nexport default Header;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {Node} from 'react';\n\nimport View from '../../Components/View/View';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Text from '../../Text/Text';\nimport useColorScheme from '../../Utilities/useColorScheme';\nimport Colors from './Colors';\nimport React from 'react';\n\nconst HermesBadge = (): Node => {\n const isDarkMode = useColorScheme() === 'dark';\n const version =\n global.HermesInternal?.getRuntimeProperties?.()['OSS Release Version'] ??\n '';\n return global.HermesInternal ? (\n \n \n {`Engine: Hermes ${version}`}\n \n \n ) : null;\n};\n\nconst styles = StyleSheet.create({\n badge: {\n position: 'absolute',\n top: 8,\n right: 12,\n },\n badgeText: {\n fontSize: 14,\n fontWeight: '600',\n textAlign: 'right',\n },\n});\n\nexport default HermesBadge;\n","","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict\n * @format\n */\n\n'use strict';\n\nmodule.exports = require('@react-native/assets-registry/registry');\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {Node} from 'react';\n\nimport TouchableOpacity from '../../Components/Touchable/TouchableOpacity';\nimport View from '../../Components/View/View';\nimport openURLInBrowser from '../../Core/Devtools/openURLInBrowser';\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Text from '../../Text/Text';\nimport useColorScheme from '../../Utilities/useColorScheme';\nimport Colors from './Colors';\nimport React, {Fragment} from 'react';\n\nconst links = [\n {\n id: 1,\n title: 'The Basics',\n link: 'https://reactnative.dev/docs/tutorial',\n description: 'Explains a Hello World for React Native.',\n },\n {\n id: 2,\n title: 'Style',\n link: 'https://reactnative.dev/docs/style',\n description:\n 'Covers how to use the prop named style which controls the visuals.',\n },\n {\n id: 3,\n title: 'Layout',\n link: 'https://reactnative.dev/docs/flexbox',\n description: 'React Native uses flexbox for layout, learn how it works.',\n },\n {\n id: 4,\n title: 'Components',\n link: 'https://reactnative.dev/docs/components-and-apis',\n description: 'The full list of components and APIs inside React Native.',\n },\n {\n id: 5,\n title: 'Navigation',\n link: 'https://reactnative.dev/docs/navigation',\n description:\n 'How to handle moving between screens inside your application.',\n },\n {\n id: 6,\n title: 'Networking',\n link: 'https://reactnative.dev/docs/network',\n description: 'How to use the Fetch API in React Native.',\n },\n {\n id: 7,\n title: 'Help',\n link: 'https://reactnative.dev/help',\n description:\n 'Need more help? There are many other React Native developers who may have the answer.',\n },\n {\n id: 8,\n title: 'Follow us on Twitter',\n link: 'https://twitter.com/reactnative',\n description:\n 'Stay in touch with the community, join in on Q&As and more by following React Native on Twitter.',\n },\n];\n\nconst LinkList = (): Node => {\n const isDarkMode = useColorScheme() === 'dark';\n return (\n \n {links.map(({id, title, link, description}) => (\n \n \n openURLInBrowser(link)}\n style={styles.linkContainer}>\n {title}\n \n {description}\n \n \n \n ))}\n \n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n marginTop: 32,\n paddingHorizontal: 24,\n },\n linkContainer: {\n flexWrap: 'wrap',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingVertical: 8,\n },\n link: {\n flex: 2,\n fontSize: 18,\n fontWeight: '400',\n color: Colors.primary,\n },\n description: {\n flex: 3,\n paddingVertical: 16,\n fontWeight: '400',\n fontSize: 18,\n },\n separator: {\n height: StyleSheet.hairlineWidth,\n },\n});\n\nexport default LinkList;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\n'use strict';\n\nconst getDevServer = require('./getDevServer');\n\nfunction openURLInBrowser(url: string) {\n // $FlowFixMe[unused-promise]\n fetch(getDevServer().url + 'open-url', {\n method: 'POST',\n body: JSON.stringify({url}),\n });\n}\n\nmodule.exports = openURLInBrowser;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @flow strict\n */\n\nimport NativeSourceCode from '../../NativeModules/specs/NativeSourceCode';\n\nlet _cachedDevServerURL: ?string;\nlet _cachedFullBundleURL: ?string;\nconst FALLBACK = 'http://localhost:8081/';\n\ntype DevServerInfo = {\n url: string,\n fullBundleUrl: ?string,\n bundleLoadedFromServer: boolean,\n ...\n};\n\n/**\n * Many RN development tools rely on the development server (packager) running\n * @return URL to packager with trailing slash\n */\nfunction getDevServer(): DevServerInfo {\n if (_cachedDevServerURL === undefined) {\n const scriptUrl = NativeSourceCode.getConstants().scriptURL;\n const match = scriptUrl.match(/^https?:\\/\\/.*?\\//);\n _cachedDevServerURL = match ? match[0] : null;\n _cachedFullBundleURL = match ? scriptUrl : null;\n }\n\n return {\n url: _cachedDevServerURL ?? FALLBACK,\n fullBundleUrl: _cachedFullBundleURL,\n bundleLoadedFromServer: _cachedDevServerURL !== null,\n };\n}\n\nmodule.exports = getDevServer;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow strict-local\n * @format\n */\n\nimport type {Node} from 'react';\n\nimport StyleSheet from '../../StyleSheet/StyleSheet';\nimport Text from '../../Text/Text';\nimport Platform from '../../Utilities/Platform';\nimport React from 'react';\n\nconst styles = StyleSheet.create({\n highlight: {\n fontWeight: '700',\n },\n});\n\nconst ReloadInstructions: () => Node = Platform.select({\n ios: () => (\n \n Press Cmd + R in the simulator to\n reload your app's code.\n \n ),\n default: () => (\n \n Double tap R on your keyboard to\n reload your app's code.\n \n ),\n});\n\nexport default ReloadInstructions;\n"],"x_facebook_sources":[[{"names":["","global.$RefreshReg$","global.$RefreshSig$","","clear","define","metroRequire","initializingModuleIds.slice.map$argument_0","shouldPrintRequireCycle","isIgnored","regExps.some$argument_0","modules.every$argument_0","metroImportDefault","metroImportAll","fallbackRequireContext","fallbackRequireResolveWeak","guardedLoadModule","unpackModuleId","packModuleId","registerSegment","moduleIds.forEach$argument_0","loadModuleImplementation","unknownModuleError","metroRequire.Systrace.beginEvent","metroRequire.Systrace.endEvent","metroRequire.getModules","createHotReloadingObject","hot.accept","hot.dispose","metroHotUpdateModule","topologicalSort$argument_1","topologicalSort$argument_2","setTimeout$argument_0","topologicalSort","traverseDependentNodes","dependentNodes.forEach$argument_0","roots.forEach$argument_0","runUpdatedModule","performFullRefresh","isReactRefreshBoundary","shouldInvalidateReactRefreshBoundary","getRefreshBoundarySignature","registerExportsForReactRefresh","requireSystrace","requireRefresh"],"mappings":"AAA;wBC8B,QD;wBEC,MC,cH;AIE;CJO;AKK;CL2C;AMC;aCuB,6DD;CNe;AQI;oBCM;mCCC,+BD,CD;uBGG,8BH;CRC;AYC;CZoB;AaE;CbkC;uBcM;CdS;2BeG;CfO;AgBE;ChBe;AiBG;CjBO;AkBE;ClBE;AmBI;sBCgB;KDI;CnBE;AqBC;8BpB+C;SoBE;CrBmD;AsBC;CtBQ;gBuBI,QvB;cwBC,QxB;4ByBG;GzBE;iC0BG;cCK;ODG;eEC;OFE;G1BG;+B6BE;QC+C;SD6C;QEC,gBF;yCG0G;SHI;G7BG;0BiCC;ICI;6BCc;ODE;KDG;kBGC;KHE;GjCE;2BqCC;GrC8D;6BsCC;GtCoB;+BuCG;GvC0B;6CwCC;GxCgB;oCyCG;GzCqB;uC0CC;G1CiB;wB2CU;G3CK;uB4CC;G5CK"}],[{"names":["","","inspect","stylizeNoColor","arrayToHash","array.forEach$argument_0","formatValue","keys.map$argument_0","formatPrimitive","formatError","formatArray","keys.forEach$argument_0","formatProperty","str.split.map$argument_0","reduceToSingleString","output.reduce$argument_0","isArray","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isRegExp","isObject","isDate","isError","isFunction","objectToString","hasOwnProperty","getNativeLogFunction","Array.prototype.map.call$argument_1","repeat","Array.apply.map$argument_0","consoleTablePolyfill","columns.forEach$argument_0","joinRow","row.map$argument_0","columnWidths.map$argument_0","groupFormat","consoleGroupPolyfill","consoleGroupCollapsedPolyfill","consoleGroupEndPolyfill","consoleAssertPolyfill","Object.keys.forEach$argument_0","methodName","forEach$argument_0","stub","global.console.assert"],"mappings":"AAA;iBCiB;ECwB;GDO;EEE;GFE;EGE;kBCG;KDE;GHG;EKE;wBC2F;ODS;GLM;EOE;GPgB;EQE;GRE;ESE;iBCkB;KDM;GTE;EWE;mBC4B;eDE;qBCQ;iBDE;GX0B;EaE;+BCE;KDI;Gbc;EeI;GfE;EgBE;GhBE;EiBE;GjBE;EkBE;GlBE;EmBE;GnBE;EoBE;GpBE;EqBE;GrBE;EsBE;GtBE;EuBE;GvBE;EwBE;GxBE;EyBE;GzBE;E0BE;G1BK;E2BE;G3BE;E4BE;G5BE;E6BE;G7BE;CDG;A+BmB;S9BC;yB+BM;S/BE;G8BmC;C/BC;AiCE;yCCC;GDE;CjCC;AmCE;kBCwB;GDQ;EEI;wBCC;KDG;GFG;oCIE;GJE;CnCc;AwCQ;CxCG;AyCE;CzCG;A0CE;C1CG;A2CE;C3CG;A4CE;C5CI;iC6CmC;8BCG;SDG;K7CE;gE+CK;8BDE;SCE;K/CE;EgDG,kBhD;IiDU;KjDI"}],[{"names":["","onError","ErrorUtils.setGlobalHandler","ErrorUtils.getGlobalHandler","ErrorUtils.reportError","ErrorUtils.reportFatalError","ErrorUtils.applyWithGuard","ErrorUtils.applyWithGuardIfNeeded","ErrorUtils.inGuard","ErrorUtils.guard","guarded"],"mappings":"AAA;mCCqB;CDK;EEW;GFE;EGC;GHE;EIC;GJE;EKC;GLG;EMC;GNsB;EOC;GPe;EQC;GRE;ESC;ICc;KDQ;GTG"}],[{"names":["","","entries","values"],"mappings":"AAA;CCW;qBCU;KDa;oBEQ;KFa;CDE"}],[{"names":["","AppRegistry.registerComponent$argument_1"],"mappings":"AAA;uCCQ,SD"}],[{"names":["","module.exports.get__AccessibilityInfo","module.exports.get__ActivityIndicator","module.exports.get__Button","module.exports.get__DrawerLayoutAndroid","module.exports.get__FlatList","module.exports.get__Image","module.exports.get__ImageBackground","module.exports.get__InputAccessoryView","module.exports.get__KeyboardAvoidingView","module.exports.get__Modal","module.exports.get__Pressable","module.exports.get__ProgressBarAndroid","module.exports.get__RefreshControl","module.exports.get__SafeAreaView","module.exports.get__ScrollView","module.exports.get__SectionList","module.exports.get__StatusBar","module.exports.get__Switch","module.exports.get__Text","module.exports.get__TextInput","module.exports.get__Touchable","module.exports.get__TouchableHighlight","module.exports.get__TouchableNativeFeedback","module.exports.get__TouchableOpacity","module.exports.get__TouchableWithoutFeedback","module.exports.get__View","module.exports.get__VirtualizedList","module.exports.get__VirtualizedSectionList","module.exports.get__ActionSheetIOS","module.exports.get__Alert","module.exports.get__Animated","module.exports.get__Appearance","module.exports.get__AppRegistry","module.exports.get__AppState","module.exports.get__BackHandler","module.exports.get__Clipboard","module.exports.get__DeviceInfo","module.exports.get__DevSettings","module.exports.get__Dimensions","module.exports.get__Easing","module.exports.get__findNodeHandle","module.exports.get__I18nManager","module.exports.get__InteractionManager","module.exports.get__Keyboard","module.exports.get__LayoutAnimation","module.exports.get__Linking","module.exports.get__LogBox","module.exports.get__NativeDialogManagerAndroid","module.exports.get__NativeEventEmitter","module.exports.get__Networking","module.exports.get__PanResponder","module.exports.get__PermissionsAndroid","module.exports.get__PixelRatio","module.exports.get__PushNotificationIOS","module.exports.get__Settings","module.exports.get__Share","module.exports.get__StyleSheet","module.exports.get__Systrace","module.exports.get__ToastAndroid","module.exports.get__TurboModuleRegistry","module.exports.get__UIManager","module.exports.get__unstable_batchedUpdates","module.exports.get__useAnimatedValue","module.exports.get__useColorScheme","module.exports.get__useWindowDimensions","module.exports.get__UTFSequence","module.exports.get__Vibration","module.exports.get__YellowBox","module.exports.get__DeviceEventEmitter","module.exports.get__DynamicColorIOS","module.exports.get__NativeAppEventEmitter","module.exports.get__NativeModules","module.exports.get__Platform","module.exports.get__PlatformColor","module.exports.get__processColor","module.exports.get__requireNativeComponent","module.exports.get__RootTagContext","module.exports.get__unstable_enableLogBox","","module.exports.get__ColorPropType","module.exports.get__EdgeInsetsPropType","module.exports.get__PointPropType","module.exports.get__ViewPropTypes","Object.defineProperty$argument_2.get"],"mappings":"AAA;ECuG;GDG;EEC;GFG;EGC;GHE;EIE;GJE;EKC;GLE;EMC;GNE;EOC;GPE;EQC;GRE;ESC;GTG;EUC;GVE;EWC;GXE;EYE;GZQ;EaC;GbE;EcC;GdE;EeC;GfE;EgBC;GhBE;EiBC;GjBE;EkBC;GlBE;EmBC;GnBE;EoBC;GpBE;EqBC;GrBE;EsBC;GtBE;EuBC;GvBE;EwBC;GxBE;EyBC;GzBE;E0BC;G1BE;E2BC;G3BE;E4BC;G5BE;E6BG;G7BE;E8BC;G9BE;E+BG;G/BG;EgCC;GhCE;EiCC;GjCE;EkCC;GlCE;EmCC;GnCE;EoCC;GpCQ;EqCC;GrCE;EsCC;GtCE;EuCC;GvCE;EwCC;GxCE;EyCC;GzCE;E0CC;G1CE;E2CC;G3CE;E4CC;G5CE;E6CC;G7CE;E8CC;G9CE;E+CC;G/CE;EgDC;GhDG;EiDC;GjDE;EkDC;GlDE;EmDC;GnDE;EoDC;GpDE;EqDC;GrDE;EsDC;GtDQ;EuDC;GvDE;EwDC;GxDE;EyDC;GzDE;E0DC;G1DE;E2DE;G3DE;E4DC;G5DE;E6DC;G7DE;E8DC;G9DM;E+DC;G/DE;EgEC;GhEE;EiEC;GjEE;EkEC;GlEE;EmEC;GnEE;EoEC;GpEE;EqEG;GrEE;EsEC;GtEG;EuEC;GvEE;EwEC;GxEE;EyEC;GzEE;E0EC;G1EG;E2EC;G3EE;E4EC;G5EI;E6EC;G7EE;E8EC;WCC;ODG;G9EC;EgFE;GhFS;EiFC;GjFS;EkFC;GlFS;EmFC;GnFS;IoFU;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFQ;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFS;KpFO;IoFQ;KpFO;IoFQ;KpFO;IoFQ;KpFO;IoFQ;KpFQ;IoFQ;KpFO;IoFQ;KpFO;IoFQ;KpFO"}],[{"names":["","isBoldTextEnabled","Promise$argument_0","isGrayscaleEnabled","isInvertColorsEnabled","isReduceMotionEnabled","prefersCrossFadeTransitions","isReduceTransparencyEnabled","isScreenReaderEnabled","isAccessibilityServiceEnabled","addEventListener","remove","setAccessibilityFocus","sendAccessibilityEvent","announceForAccessibility","announceForAccessibilityWithOptions","getRecommendedTimeoutMillis"],"mappings":"AAA;ECqF;yBCI;ODS;GDE;EGU;yBDI;OCS;GHE;EIU;yBFI;OES;GJE;EKU;uBHC;KGiB;GLC;EMU;uBJC;KIgB;GNC;EOU;yBLI;OKS;GPE;EQU;uBNC;KMiB;GRC;ESY;uBPC;KOa;GTC;EUoC;SCO,iBD;GVG;EYO;GZE;EaK;GbU;EcO;GdM;EeQ;GfgB;EgBO;yBdE;OcS;GhBI"}],[{"names":["_interopRequireDefault",""],"mappings":"AAA;CCI"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","EventEmitter","addListener","registration.remove","emit","removeAllListeners","listenerCount","allocate"],"mappings":"AAA;eC8D;ECS;MCiB;ODE;GDI;EGS;GHY;EIK;GJQ;EKK;GLG;CDC;AOE;CPc"}],[{"names":["","_toConsumableArray"],"mappings":"AAA;ACI;CDE"}],[{"names":["","_arrayWithoutHoles"],"mappings":"AAA;ACC;CDE"}],[{"names":["_arrayLikeToArray",""],"mappings":"AAA;CCI"}],[{"names":["_iterableToArray",""],"mappings":"AAA;CCE"}],[{"names":["","_unsupportedIterableToArray"],"mappings":"AAA;ACC;CDO"}],[{"names":["_nonIterableSpread",""],"mappings":"AAA;CCE"}],[{"names":["_classCallCheck",""],"mappings":"AAA;CCI"}],[{"names":["","_defineProperties","_createClass"],"mappings":"AAA;ACC;CDQ;AEC;CFO"}],[{"names":["","_toPropertyKey"],"mappings":"AAA;ACE;CDG"}],[{"names":["","_toPrimitive"],"mappings":"AAA;ACC;CDS"}],[{"names":["_typeof","",""],"mappings":"AAA;yGCG;GDE,GC;GDE;CEC"}],[{"names":["","get__Version","get__constants","get__isTesting","get__isTV","select"],"mappings":"AAA;ECuB;GDG;EEE;GFyB;EGE;GHM;EIE;GJG;UKC;oBLQ"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","requireModule","get","getEnforcing"],"mappings":"AAA;ACkB;CDgB;OEE;CFE;OGE;CHQ"}],[{"names":["","invariant","format.replace$argument_1"],"mappings":"AAA;gBCoB;8BCkB,uCD;CDQ"}],[{"names":["","genModule","methods.forEach$argument_0","module.getConstants","loadModule","genMethod","promiseMethodWrapper","Promise$argument_0","BatchedBridge.enqueueNativeCall$argument_3","BatchedBridge.enqueueNativeCall$argument_4","nonPromiseMethodWrapper","arrayContains","updateErrorWithErrorData","forEach$argument_0","defineLazyObjectProperty$argument_2.get"],"mappings":"AAA;AC2B;oBC2B;KDW;0BEK,oCF;CDY;AIK;CJQ;AKE;SCG;yBCK;UCK,qBD;UEC;aFM;ODE;KDC;SKE;KLkC;CLK;AWE;CXE;AYE;CZO;Iac;eCc,qCD;KbG"}],[{"names":["","_slicedToArray"],"mappings":"AAA;ACI;CDE"}],[{"names":["_arrayWithHoles",""],"mappings":"AAA;CCE"}],[{"names":["_iterableToArrayLimit",""],"mappings":"AAA;CC0B"}],[{"names":["_nonIterableRest",""],"mappings":"AAA;CCE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","MessageQueue","constructor","spy","prototype.__spy","callFunctionReturnFlushedQueue","__guard$argument_0","invokeCallbackAndReturnFlushedQueue","flushedQueue","getEventLoopRunningTime","registerCallableModule","_lazyCallableModules.name","registerLazyCallableModule","getCallableModule","callNativeSyncHook","processCallbacks","_successCallbacks.forEach$argument_0","enqueueNativeCall","isValidArgument","replacer","createDebugLookup","setReactNativeMicrotasksCallback","__guard","__shouldPauseOnThrow","__callReactNativeMicrotasks","__callFunction","__invokeCallback"],"mappings":"AAA;ACwC;ECgB;GD4B;EEM;qCCE;ODM;GFM;EIE;iBCK;KDE;GJG;EME;iBDI;KCE;GNG;EOE;iBFC;KEE;GPK;EQE;GRE;ESE;sCCC,YD;GTC;EWE;sCDG;KCQ;GXC;EYE;GZG;EaE;GbkB;EcE;yCCe;WDK;Gd6B;EgBE;8BCiB;OD6B;uBEK;OFS;GhByC;EmBE;GnBS;EoBK;GpBE;EqBM;GrBU;EsBO;GtBO;EuBE;GvBM;EwBE;GxBiC;EyBE;GzB+C;CDC"}],[{"names":["","isEnabled","setEnabled","beginEvent","endEvent","beginAsyncEvent","endAsyncEvent","counterEvent"],"mappings":"AAA;OCgC;CDI;OEQ,gDF;OGM;CHM;OIK;CJI;OKO;CLiB;OMM;CNe;OOK;CPO"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","createStringifySafeWithLimits","replacer","stringifySafe"],"mappings":"AAA;OCgB;ECe;GD6C;SEE;GFgC;CDC"}],[{"names":["","defineLazyObjectProperty","getValue","setValue"],"mappings":"AAA;ACe;ECgB;GDc;EEC;GFS;CDQ"}],[{"names":["","legacySendAccessibilityEvent"],"mappings":"AAA;ACgB;CDgB"}],[{"names":["","isFabricReactTag","measure","measureInWindow","measureLayout","measureLayoutRelativeToParent","FabricUIManager.measure$argument_1","dispatchViewManagerCommand"],"mappings":"AAA;ACoC;CDG;EEU;GF0B;EGE;GHwB;EIE;GJqC;EKE;UCoB;WDE;GLW;EOE;GPyB"}],[{"names":["","nullthrows"],"mappings":"AAA;ACE;CDO"}],[{"names":["","errorMessageForMethod","module.exports.getViewManagerConfig","module.exports.hasViewManagerConfig","module.exports.getConstants","module.exports.getConstantsForViewManager","module.exports.getDefaultEventTypes","module.exports.lazilyLoadView","module.exports.createView","module.exports.updateView","module.exports.focus","module.exports.blur","module.exports.findSubviewIn","module.exports.dispatchViewManagerCommand","module.exports.measure","module.exports.measureInWindow","module.exports.viewIsDescendantOf","module.exports.measureLayout","module.exports.measureLayoutRelativeToParent","module.exports.setJSResponder","module.exports.clearJSResponder","module.exports.configureNextLayoutAnimation","module.exports.removeSubviewsFromContainerWithID","module.exports.replaceExistingNonRootView","module.exports.setChildren","module.exports.manageChildren","module.exports.setLayoutAnimationEnabledExperimental","module.exports.sendAccessibilityEvent","module.exports.showPopupMenu","module.exports.dismissPopupMenu"],"mappings":"AAA;8BCgB;4DDG;wBEG;GFO;wBGC;GHE;gBIC;GJG;8BKC;GLG;wBMC;GNG;kBOC;GPG;cQC;+DRK;cSC;sDTC;SUC;iDVC;QWC;gDXC;iBYC;kEZU;8BaC;+EbI;WcC;4DdU;mBeC;oEfG;sBgBC;uEhBI;iBiBC;kEjBU;iCkBC;yElBU;kBmBC;0DnBC;oBoBC,cpB;gCqBC;wErBK;qCsBC;6EtBC;8BuBC;sEvBC;ewBC;uDxBC;kByBC;mEzBO;yC0BG;G1BI;0B2BG;kE3BC;iB4BC;kE5BK;oB6BC;4D7BC"}],[{"names":["","unstable_hasComponent"],"mappings":"AAA;OCkB;CDW"}],[{"names":["","getConstants","getViewManagerConfig","UIManagerJS.createView","UIManagerJS.getConstants","UIManagerJS.getViewManagerConfig","UIManagerJS.hasViewManagerConfig","lazifyViewManagerConfig","defineLazyObjectProperty$argument_2.get","Object.keys.forEach$argument_0","NativeUIManager.getConstants.ViewManagerNames.forEach$argument_0"],"mappings":"AAA;ACyB;CDM;AEE;CF4C;EGO;GHa;EIC;GJE;EKC;GLE;EMC;GNE;AOU;WCK;2CCI;WDK;ODE;WCG;2CCK;WDK;ODE;CPG;sCSQ;GTE;0DUE;WFE,iEE;GVE;sCSI;aDM;SCO;GTG"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","getFabricUIManager"],"mappings":"AAA;OC8E;CDE"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","renderElement","findHostInstance_DEPRECATED","findNodeHandle","dispatchCommand","sendAccessibilityEvent","unmountComponentAtNodeAndRemoveContainer","unstable_batchedUpdates","isProfilingRenderer"],"mappings":"AAA;OCe;CDqB;OEE;CFM;OGE;CHM;OIE;CJoB;OKE;CLQ;OMM;CNM;OOE;CPS;OQE;CRE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","invokeGuardedCallbackImpl","reporter.onError","invokeGuardedCallback","invokeGuardedCallbackAndCatchFirstError","executeDispatch","executeDirectDispatch","functionThatReturnsTrue","functionThatReturnsFalse","SyntheticEvent","assign$argument_1.preventDefault","assign$argument_1.stopPropagation","assign$argument_1.persist","assign$argument_1.destructor","SyntheticEvent.Interface.currentTarget","SyntheticEvent.Interface.timeStamp","SyntheticEvent.extend","E","Class","createOrGetPooledEvent","releasePooledEvent","addEventPoolingTo","SyntheticEvent.extend$argument_0.touchHistory","isStartish","isMoveish","timestampForTouch","getTouchIdentifier","recordTouchStart","recordTouchMove","recordTouchEnd","ResponderTouchHistoryStore.instrument","ResponderTouchHistoryStore.recordTouchTrack","accumulate","accumulateInto","forEachAccumulated","changeResponder","getParent","traverseTwoPhase","getListener","accumulateDirectionalDispatches","accumulateDirectDispatchesSingle","accumulateTwoPhaseDispatchesSingleSkipTarget","accumulateTwoPhaseDispatchesSingle","ResponderEventPlugin._getResponder","ResponderEventPlugin.extractEvents","ResponderEventPlugin.injection.injectGlobalResponderHandler","recomputePluginOrdering","publishRegistrationName","getListeners","stateNode.canonical._eventListeners.mangledImperativeRegistrationName.forEach$argument_0","listenerFnWrapper","listeners.push$argument_0","accumulateListenersAndInstances","accumulateDirectionalDispatches$1","traverseTwoPhase$1","accumulateTwoPhaseDispatchesSingle$1","accumulateDirectDispatchesSingle$1","injectedNamesToPlugins$jscomp$inline_223.ReactNativeBridgeEventPlugin.extractEvents","getInstanceFromInstance","getFiberCurrentPropsFromNode","getNodeFromInstance","ResponderEventPlugin.injection.injectGlobalResponderHandler$argument_0.onChange","getIteratorFn","getComponentNameFromType","getComponentNameFromFiber","getNearestMountedFiber","assertIsMounted","findCurrentFiberUsingSlowPath","findCurrentHostFiber","findCurrentHostFiberImpl","mountSafeCallback_NOT_REALLY_SAFE","","defaultDiffer","restoreDeletedValuesInNestedArray","diffNestedProperty","addNestedProperty","clearNestedProperty","diffProperties","batchedUpdatesImpl","batchedUpdates","executeDispatchesAndReleaseTopLevel","dispatchEvent","batchedUpdates$argument_0","onCommitRoot","clz32Fallback","getHighestPriorityLanes","getNextLanes","computeExpirationTime","getLanesToRetrySynchronouslyOnError","claimNextTransitionLane","createLaneMap","markRootUpdated","markRootFinished","markRootEntangled","lanesToEventPriority","shim$1","ReactFabricHostComponent","_proto.blur","_proto.focus","_proto.measure","_proto.measureInWindow","_proto.measureLayout","_proto.setNativeProps","_proto.addEventListener_unstable","_proto.removeEventListener_unstable","optionsObj.filter$argument_0","createTextInstance","cloneHiddenInstance","describeComponentFrame","describeFunctionComponentFrame","createCursor","pop","push","getMaskedContext","isContextProvider","popContext","pushTopLevelContextObject","processChildContext","pushContextProvider","invalidateContextProvider","is","flushSyncCallbacks","popTreeContext","shallowEqual","describeFiber","resolveDefaultProps","resetContextDependencies","popProvider","scheduleContextWorkOnParentPath","prepareToReadContext","readContext","pushConcurrentUpdateQueue","enqueueConcurrentHookUpdate","markUpdateLaneFromFiberToRoot","initializeUpdateQueue","cloneUpdateQueue","createUpdate","enqueueUpdate","entangleTransitions","enqueueCapturedUpdate","processUpdateQueue","commitUpdateQueue","applyDerivedStateFromProps","classComponentUpdater.isMounted","classComponentUpdater.enqueueSetState","classComponentUpdater.enqueueReplaceState","classComponentUpdater.enqueueForceUpdate","checkShouldComponentUpdate","constructClassInstance","callComponentWillReceiveProps","mountClassInstance","coerceRef","current","throwOnInvalidObjectType","resolveLazy","ChildReconciler","deleteChild","deleteRemainingChildren","mapRemainingChildren","useFiber","placeChild","placeSingleChild","updateTextNode","updateElement","updatePortal","updateFragment","createChild","updateSlot","updateFromMap","reconcileChildrenArray","oldFiber.forEach$argument_0","reconcileChildrenIterator","reconcileChildFibers","requiredContext","pushHostContainer","popHostContainer","pushHostContext","popHostContext","findFirstSuspended","resetWorkInProgressVersions","throwInvalidHookError","areHookInputsEqual","renderWithHooks","mountWorkInProgressHook","updateWorkInProgressHook","basicStateReducer","updateReducer","rerenderReducer","updateMutableSource","updateSyncExternalStore","pushStoreConsistencyCheck","updateStoreInstance","subscribeToStore","subscribe$argument_0","checkIfSnapshotChanged","forceStoreRerender","mountState","pushEffect","updateRef","mountEffectImpl","updateEffectImpl","mountEffect","updateEffect","updateInsertionEffect","updateLayoutEffect","imperativeHandleEffect","updateImperativeHandle","mountDebugValue","updateCallback","updateMemo","updateDeferredValueImpl","startTransition","updateId","dispatchReducerAction","dispatchSetState","isRenderPhaseUpdate","enqueueRenderPhaseUpdate","entangleTransitionUpdate","HooksDispatcherOnMount.useCallback","HooksDispatcherOnMount.useImperativeHandle","HooksDispatcherOnMount.useLayoutEffect","HooksDispatcherOnMount.useInsertionEffect","HooksDispatcherOnMount.useMemo","HooksDispatcherOnMount.useReducer","HooksDispatcherOnMount.useRef","HooksDispatcherOnMount.useDeferredValue","HooksDispatcherOnMount.useTransition","HooksDispatcherOnMount.useMutableSource","HooksDispatcherOnMount.useSyncExternalStore","HooksDispatcherOnMount.useId","HooksDispatcherOnUpdate.useState","HooksDispatcherOnUpdate.useDeferredValue","HooksDispatcherOnUpdate.useTransition","HooksDispatcherOnRerender.useState","HooksDispatcherOnRerender.useDeferredValue","HooksDispatcherOnRerender.useTransition","createCapturedValueAtFiber","createCapturedValue","logCapturedError","setTimeout$argument_0","createRootErrorUpdate","lane.callback","createClassErrorUpdate","lane.payload","attachPingListener","reconcileChildren","updateForwardRef","updateMemoComponent","updateSimpleMemoComponent","updateOffscreenComponent","markRef","updateFunctionComponent","updateClassComponent","finishClassComponent","pushHostRootContext","mountSuspenseOffscreenState","updateSuspenseComponent","mountSuspensePrimaryChildren","retrySuspenseComponentWithoutHydrating","updateDehydratedSuspenseComponent","scheduleSuspenseWorkOnFiber","initSuspenseListRenderState","updateSuspenseListComponent","resetSuspendedCurrentOnMountInLegacyMode","bailoutOnAlreadyFinishedWork","attemptEarlyBailoutIfNoScheduledUpdate","hadNoMutationsEffects","appendAllChildren","appendAllChildrenToContainer","updateHostContainer","updateHostComponent$1","updateHostText$1","cutOffTailIfNeeded","bubbleProperties","completeWork","unwindWork","safelyDetachRef","safelyCallDestroy","commitBeforeMutationEffects","commitHookEffectListUnmount","commitHookEffectListMount","detachFiberAfterEffects","recursivelyTraverseDeletionEffects","commitDeletionEffectsOnFiber","attachSuspenseRetryListeners","wakeables.forEach$argument_0","recursivelyTraverseMutationEffects","commitMutationEffectsOnFiber","commitReconciliationEffects","commitLayoutEffects","requestEventTime","requestUpdateLane","scheduleUpdateOnFiber","ensureRootIsScheduled","performConcurrentWorkOnRoot","recoverFromConcurrentError","queueRecoverableErrors","isRenderConsistentWithExternalStores","markRootSuspended$1","performSyncWorkOnRoot","popRenderLanes","prepareFreshStack","handleError","pushDispatcher","renderDidSuspendDelayIfPossible","renderRootSync","workLoopSync","workLoopConcurrent","performUnitOfWork","completeUnitOfWork","commitRoot","commitRootImpl","scheduleCallback$1$argument_1","flushPassiveEffects","captureCommitPhaseErrorOnRoot","captureCommitPhaseError","pingSuspendedRoot","retryTimedOutBoundary","retryDehydratedSuspenseBoundary","resolveRetryWakeable","beginWork$1","scheduleCallback$1","FiberNode","createFiber","shouldConstruct","resolveLazyComponentTag","createWorkInProgress","createFiberFromTypeAndProps","createFiberFromFragment","createFiberFromOffscreen","createFiberFromText","createFiberFromPortal","FiberRootNode","createPortal","findHostInstance","updateContainer","emptyFindFiberByHostInstance","findNodeHandle","onRecoverableError","devToolsConfig$jscomp$inline_938.rendererConfig.getInspectorDataForViewTag","internals$jscomp$inline_1180.findHostInstanceByFiber","exports.createPortal","exports.dispatchCommand","exports.findHostInstance_DEPRECATED","exports.render","exports.sendAccessibilityEvent","exports.stopSurface","updateContainer$argument_3","exports.unmountComponentAtNode"],"mappings":"AAA;ACkB;CDO;aEM;KFG;AGE;CHI;AIC;CJuB;AKK;CLK;AMC;CNa;AOE;CPE;AQC;CRE;ASC;CTyB;kBUE;GVQ;mBWC;GXO;WYC;GZE;caE;GbO;iBcK;GdE;aeI;GfE;wBgBI;ECC,eD;EEC;GFE;ChBW;AmBE;CnBY;AoBC;CpBO;AqBC;CrBI;gBsBE;GtBE;AuBE;CvBE;AwBC;CxBE;AyBW;CzBE;A0BC;C1BI;A2BC;C3B4B;A4BC;C5BW;A6BC;C7BW;gB8BG;K9BE;sB+BC;K/BgC;AgCG;ChCY;AiCC;CjCY;AkCC;ClCE;AmCG;CnCS;AoCyD;CpCI;AqCC;CrCI;AsCC;CtCc;AuCC;CvCe;AwCC;CxCgB;AyCC;CzCM;A0CC;C1CI;mB2CE;K3CE;mB4CE;K5C0Q;oC6CG;O7CE;A8CK;C9C4D;A+CC;C/CO;AgDI;cCsC;gCCK;SDgB;2BEE;aFS;KDG;ChDM;AoDO;CpDyB;AqDC;CrDQ;AsDC;CtDW;AuDC;CvDS;AwDC;CxDa;qByDc;OzDuC;A0D8B;C1DE;+B2DC;C3DE;sB4DE;C5DI;Y6DE;G7DsB;A8DuB;C9DM;A+DC;C/D8C;AgEC;ChEuD;AiEC;CjEa;AkEC;ClEG;AmEC;CnE2E;AoEC;CpEG;AqEC;CrEQ;AsEC;SCC;GDM;CtEC;AwEK;CxEQ;AyEC;CzEqC;A0EC;C1EqD;A2EC;C3EgB;A4EC;C5EgB;A6EC;C7EoF;A8EC;C9EE;A+EE;C/EQ;AgFE;ChFkB;AiFC;iBCM;GDoC;CjFC;AmFY;CnFU;AoFI;CpFG;AqFG;CrFgD;AsFC;CtFwC;AuFC;CvFwC;AwFC;CxFG;AyFC;CzFK;A0FC;C1FG;A2FC;C3FO;A4FC;C5FkB;A6FC;C7FS;A8FE;C9FS;A+FC;C/FI;gCuEwB;EyBC;GzBU;gB0BE;G1BE;iB2BC;G3BE;mB4BC;G5BO;2B6BC;G7BO;yB8BC;G9BiB;0B+BC;G/BW;qCgCC;GhC0B;wCiCC;8CCO;ODK;GjCC;CvEE;A0GC;C1GiB;A2GG;C3GY;A4GC;C5GI;A6GC;C7GI;A8GI;C9GE;A+GC;C/GG;AgHC;ChHI;AiHK;CjHiB;AkHC;ClHG;AmHC;CnHG;AoHC;CpHO;AqHC;CrHc;AsHC;CtHS;AuHC;CvHkB;AwHC;CxHE;AyHK;CzHwB;A0HO;C1Ha;A2HG;C3HqB;A4HC;C5HqB;A6HC;C7HU;A8HK;C9HE;A+HC;C/HI;AgIC;ChIY;AiIC;CjIQ;AkIC;ClIkB;AmIE;CnII;AoIC;CpIO;AqIC;CrIY;AsIE;CtIQ;AuIC;CvIU;AwIC;CxIS;AyIC;CzIkB;A0IC;C1IS;A2IC;C3I4C;A4IC;C5I+H;A6IC;C7IqB;A8IE;C9Ie;a+IE;G/II;mBgJC;GhJW;uBiJC;GjJY;sBkJC;GlJW;AmJE;CnJe;AoJC;CpJyB;AqJC;CrJa;AsJC;CtJiC;AuJC;gBC+B;ODI;CvJgB;AyJC;CzJS;A0JC;C1JG;A2JC;ECC;GDO;EEC;GFM;EGC;GHO;EIC;GJK;EKC;GLc;EMC;GNK;EOC;GPU;EQC;GRmC;ESC;GTe;EUC;GVe;EWC;GX0D;EYC;GZgC;EaC;GbmD;EcC;uBCsF;ODE;GdE;EgBC;uBDuE;OCE;GhBE;EiBC;GjBqK;C3JE;A6KO;C7KM;A8KC;C9KM;A+KC;C/KI;AgLC;ChLiB;AiLC;CjLG;AkLE;ClLsB;AmLE;CnLI;AoLU;CpLI;AqLC;CrLK;AsLC;CtL2C;AuLC;CvLY;AwLC;CxL6B;AyLC;CzLE;A0LC;C1L6E;A2LC;C3LsB;A4LC,iC5L;A6LC;C7L+B;A8LC;C9LY;A+LC;C/LI;AgMC;mBCC;GDE;ChMC;AkMC;ClMS;AmMC;CnMG;AoMC;CpMmB;AqMC;CrMe;AsMC;CtME;AuMC;CvMS;AwMC;CxMc;AyMC;CzME;A0MC;C1ME;A2MC;C3ME;A4MC;C5ME;A6MC;MtIK;OsIE;MtIM;OsIE;C7ME;A8MC;C9MQ;A+MC,6B/M;AgNC;ChNY;AiNC;CjNa;AkNC;ClNY;AmNC;CnNa;AoNC;CpNE;AqNC;CrNkB;AsNC;CtNuC;AuNC;CvNM;AwNC;CxNO;AyNC;CzNQ;iB0NuB;K1NM;yB2NG;K3NQ;qB4NC;K5NE;wB6NC;K7NE;a8NC;K9NM;gB+NC;K/NmB;YgOC;KhOI;sBiOG;KjOE;mBkOC;KlOM;sBmOC,anO;0BoOC;KpOwB;WqOC;KrOO;csOc;KtOE;sBuOE;KvOG;mBwOC;KxOI;cyOiB;KzOE;sB0OE;K1OK;mB2OC;K3OI;A4OM;C5OiB;A6OC;C7OO;A8OQ;eCU;KDE;C9OE;AgPE;kBCK;GDG;ChPE;AkPC;mBCM;KDE;oBDC;KCE;qBDK;KCU;ClPE;AoPC;CpPc;AqPG;CrPU;AsPC;CtP4B;AuPC;CvPoD;AwPC;CxPgC;AyPC;CzPiD;A0PC;C1PO;A2PC;C3P8B;A4PC;C5PsM;A6PC;C7PuC;A8PC;C9PW;A+PE;C/PE;AgQC;ChQmI;AiQC;CjQS;AkQC;ClQkB;AmQC;CnQ4J;AoQC;CpQK;AqQC;CrQuB;AsQC;CtQsF;AuQC;CvQM;AwQC;CxQoB;AyQC;CzQyE;A0QC;C1QS;oB2QK;C3QoC;A4QC;C5QoC;sB6QC;C7QU;wB8QC;C9QwC;mB+QC;C/QY;AgRC;ChRuB;AiRC;CjRuB;AkRC;ClRoU;AmRC;CnRqD;AoRG;CpRU;AqRC;CrRM;AsRE;CtR2D;AuRC;CvRmB;AwRC;CxRa;AyRC;CzRe;A0RC;C1RQ;A2RC;C3RmG;A4RC;sBCO;KDI;C5RE;A8RC;C9RkB;A+RC;C/R+E;AgSC;ChSI;AiSC;CjSoH;AkS+B;ClSM;AmSC;CnSyB;AoSC;CpSoB;AqSC;CrSsE;AsSC;CtSoL;AuSC;CvSU;AwSC;CxSO;AySC;CzSiC;A0SC;C1SW;A2SC;C3S8B;A4SC;C5SG;A6SC;C7SuE;A8SC;C9SiL;A+SC;C/SI;AgTC;ChTW;AiTC;CjTwB;AkTC;ClTE;AmTC;CnTG;AoTC;CpTK;AqTC;CrTsC;AsTC;CtTiB;AuTC;uCC8B;KDG;CvTsD;AyTC;CzTgJ;A0TC;C1TQ;A2TC;C3T6C;A4TC;C5Te;A6TC;C7TY;A8TC;C9TK;A+TC;C/TkB;cgUE;ChUob;AiUC;CjUE;AkUC;ClUa;AmUC;CnUE;AoUC;CpUG;AqUC;CrUS;AsUC;CtUmC;AuUC;CvUyE;AwUC;CxUI;AyUC;CzUM;A0UC;C1UI;A2UC;C3Uc;A4UC;C5UmB;A6UC;C7UU;A8UC;C9UY;A+UC;C/U4D;AgVC;ChVE;AiVC;CjVY;AkVC;ClVE;qB8EC;C9EW;kCmVQ;OnVI;sCuEC;OvEI;2BoVkB;GpVG;uBqVwB;CrVO;0BsVC;CtVW;sCuVC;CvVW;iBwVG;CxVmC;iCyVC;CzVU;sB0VC;sCCG;KDE;C1VC;iC4VC;C5VE"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","DOMRect","get__x","set__x","get__y","set__y","get__width","set__width","get__height","set__height","fromRect"],"mappings":"AAA;eC0B;ECI;GDE;EEE;GFE;EGK;GHE;EIE;GJE;EKK;GLE;EME;GNE;EOK;GPE;EQE;GRE;ESK;GTM;CDC"}],[{"names":["","_inherits"],"mappings":"AAA;ACC;CDe"}],[{"names":["_setPrototypeOf",""],"mappings":"AAA;CCM"}],[{"names":["","_possibleConstructorReturn"],"mappings":"AAA;ACE;CDO"}],[{"names":["_assertThisInitialized",""],"mappings":"AAA;CCK"}],[{"names":["_getPrototypeOf",""],"mappings":"AAA;CCK"}],[{"names":["","castToNumber","DOMRectReadOnly","constructor","get__x","get__y","get__width","get__height","get__top","get__right","get__bottom","get__left","toJSON","fromRect","__getInternalX","__getInternalY","__getInternalWidth","__getInternalHeight","__setInternalX","__setInternalY","__setInternalWidth","__setInternalHeight"],"mappings":"AAA;ACyB;CDE;eEO;ECM;GDK;EEK;GFE;EGK;GHE;EIK;GJE;EKK;GLE;EMK;GNS;EOK;GPS;EQK;GRS;ESK;GTS;EUE;GVY;EWK;GXM;EYE;GZE;EaE;GbE;EcE;GdE;EeE;GfE;EgBE;GhBE;EiBE;GjBE;EkBE;GlBE;EmBE;GnBE;CFC"}],[{"names":["","global.performance.now"],"mappings":"AAA;6BC8B;KDG"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","","PerformanceMark","PerformanceMark#constructor","PerformanceMeasure","PerformanceMeasure#constructor","warnNoNativePerformance","Performance","get__memory","get__reactNativeStartupTiming","mark","clearMarks","measure","clearMeasures","now","getEntries","getEntriesByType","getEntriesByName"],"mappings":"AAA;IC2C,gBD;OEE;ECG;GDW;CFC;OIW;ECG;GDW;CJC;AME;CNK;eOO;ECI;GDyB;EEG;GFO;EGE;GHa;EIE;GJU;EKE;GLmE;EME;GNU;EOM;GPE;EQO;GRM;ESE;GTe;EUE;GVuB;CPC"}],[{"names":["","warnOnce"],"mappings":"AAA;ACqB;CDQ"}],[{"names":["","getCachedEventCounts","global.queueMicrotask$argument_0","EventCounts","get__size","entries","forEach","get","has","keys","values"],"mappings":"AAA;ACqB;wBCa;GDM;CDE;eGM;ECE;GDE;EEE;GFE;EGE;GHE;EIE;GJE;EKE;GLE;EME;GNE;EOE;GPE;CHC"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","PerformanceObserverEntryList","PerformanceObserverEntryList#constructor","PerformanceObserverEntryList#getEntries","PerformanceObserverEntryList#getEntriesByType","_entries.filter$argument_0","PerformanceObserverEntryList#getEntriesByName","onPerformanceEntry","entries.filter$argument_0","warnNoNativePerformanceObserver","applyDurationThresholds","Array.from.map$argument_0","Array.from.map.reduce$argument_0","PerformanceObserver","constructor","observe","options.entryTypes.map$argument_0","disconnect","_validateObserveOptions","union","difference","filter$argument_0"],"mappings":"AAA;OCsB;ECG;GDE;EEE;GFE;EGE;gCCC,iCD;GHC;EKE;kCDK,4BC;QDG,wDC;GLG;CDC;2BO8B;oECY;KDM;CPO;OSE;CTK;AUE;SCI,2BD;MEE,+DF;CVU;easB;ECI;GDE;EEE;+BCa,mBD;GFoD;EIE;GJiC;EKE;GLgC;CbI;AmBG;CnBa;AoBE;+BCC,cD;CpBC"}],[{"names":["","rawToPerformanceEntry","rawToPerformanceEntryType","performanceEntryTypeToRaw"],"mappings":"AAA;OC0B;CDoB;OEE;CFmB;OGE;CHiB"}],[{"names":["","PerformanceEventTiming","constructor"],"mappings":"AAA;OCc;ECK;GDiB;CDC"}],[{"names":["","PerformanceEntry","constructor","toJSON"],"mappings":"AAA;OCa;ECM;GDU;EEE;GFY;CDC"}],[{"names":["","MemoryInfo","constructor","get__jsHeapSizeLimit","get__totalJSHeapSize","get__usedJSHeapSize"],"mappings":"AAA;eCoB;ECK;GDM;EEK;GFE;EGK;GHE;EIK;GJE;CDC"}],[{"names":["","ReactNativeStartupTiming","constructor","get__startTime","get__endTime","get__executeJavaScriptBundleEntryPointStart","get__executeJavaScriptBundleEntryPointEnd"],"mappings":"AAA;eCiB;ECS;GDS;EEK;GFE;EGK;GHE;EIK;GJE;EKK;GLE;CDC"}],[{"names":["","handleError"],"mappings":"AAA;sBCqB;GDO"}],[{"names":["","SyntheticError","unstable_setExceptionDecorator","preprocessException","reportException","handleException","reactConsoleErrorHandler","args.map$argument_0","installConsoleErrorReporter"],"mappings":"AAA;ACe;CDE;AEiB;CFI;AGE;CHY;AIM;CJ2D;AKe;CLmB;AMI;WCqD,2DD;CNc;AQM;CRa"}],[{"names":["","_wrapNativeSuper","Wrapper"],"mappings":"AAA;ACI;ICW;KDE;CDY"}],[{"names":["_isNativeFunction",""],"mappings":"AAA;CCE"}],[{"names":["","_construct"],"mappings":"AAA;ACE;CDc"}],[{"names":["_isNativeReflectConstruct","Reflect.construct$argument_2",""],"mappings":"AAA;kECK,cD;CEK"}],[{"names":["","convertHermesStack","parseErrorStack","stacktraceParser.parse.map$argument_0"],"mappings":"AAA;ACiB;CDqB;AEE;6CCU;QDG;CFG"}],[{"names":["","parse","lines.reduce$argument_0","parseChrome","parseWinjs","parseGecko","parseJSC","parseNode"],"mappings":"AAA;ACU;sBCE;GDQ;CDC;AGI;CH6B;AII;CJc;AKK;CLwB;AMI;CNc;AOI;CPc"}],[{"names":["","isInternalBytecodeSourceUrl","parseLine","parseHermesStack"],"mappings":"AAA;AC2E;CDG;AEE;CFsC;iBGE;CHoB"}],[{"names":["","ExceptionsManager.reportFatalException","ExceptionsManager.reportSoftException","ExceptionsManager.updateExceptionMessage","ExceptionsManager.dismissRedbox","ExceptionsManager.reportException"],"mappings":"AAA;EC8D;GDM;EEC;GFM;EGC;GHM;EIC;GJK;EKC;GLU"}],[{"names":["","polyfillGlobal$argument_1"],"mappings":"AAA;4BCoC,2BD"}],[{"names":["","polyfillObjectProperty","polyfillGlobal"],"mappings":"AAA;AC2B;CDsB;AEE;CFE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","Promise.prototype._finally","then$argument_0","Promise.resolve.then$argument_0","then$argument_1"],"mappings":"AAA;4BCK;mBCC;qCCC;KDE;GDC,EG;qCDC;KCE;GHC;CDC"}],[{"names":["","noop","getThen","tryCallOne","tryCallTwo","Promise","Promise.prototype.then","safeThen","self.constructor$argument_0","handle","handleResolved","setImmediate$argument_0","resolve","reject","finale","Handler","doResolve","tryCallTwo$argument_1","tryCallTwo$argument_2"],"mappings":"AAA;ACI,kBD;AEqB;CFO;AGE;CHO;AIC;CJO;AKI;CLa;yBMK;CNO;AOE;8BCC;GDI;CPC;ASC;CTsB;AUE;eCC;GDgB;CVC;AYC;CZgC;AaE;CbO;AcC;CdW;AeE;CfI;AgBQ;2BCE;GDI,EE;GFI;ChBK"}],[{"names":["","valuePromise","Promise.resolve","Promise$argument_0","iterableToArray","Promise.all","res","val.then$argument_0","p.then$argument_0","onSettledFulfill","onSettledReject","mapAllSettled","Promise.allSettled","Promise.reject","Promise.race","iterableToArray.forEach$argument_0","Promise.prototype._catch","getAggregateError","promiseAny","resolveOnce","rejectionCheck","promises.forEach$argument_0"],"mappings":"AAA;ACiB;CDK;kBEC;yBCiB;ODE;CFI;sBIE;CJU;cKE;qBFG;IGG;mBCQ;WDE;mBEM;aFE;KHS;GEI;CLC;ASE;CTE;AUC;CVE;AWC;CXY;qBYC;CZE;iBaE;qBVC;GUE;CbC;ecE;qBXC;oCYC;KZE;GWC;CdC;6BgBI;ChBE;AiBE;CjBW;ckBE;qBfC;IgBK;KhBK;IiBE;KjBM;uBkBK;OlBE;GeE;ClBC"}],[{"names":["","hasNativeConstructor$argument_0","polyfillGlobal$argument_1"],"mappings":"AAA;4CCwB,eD;uCEU;GFQ"}],[{"names":["","isNativeFunction","hasNativeConstructor"],"mappings":"AAA;ACiB;CDE;AEM;CFG"}],[{"names":["","","define","wrap","tryCatch","Generator","GeneratorFunction","GeneratorFunctionPrototype","define$argument_2","defineIteratorMethods","forEach$argument_0","exports.isGeneratorFunction","exports.mark","exports.awrap","AsyncIterator","invoke","PromiseImpl.resolve.then$argument_0","PromiseImpl.resolve.then$argument_1","enqueue","callInvokeWithMethodAndArg","PromiseImpl$argument_0","exports.async","iter.next.then$argument_0","makeInvokeMethod","maybeInvokeDelegate","pushTryEntry","resetTryEntry","Context","exports.keys","next","values","doneResult","Context.prototype.reset","Context.prototype.stop","Context.prototype.dispatchException","handle","Context.prototype.abrupt","Context.prototype.complete","Context.prototype.finish","Context.prototype._catch","Context.prototype.delegateYield"],"mappings":"AAA;eCO;ECY;GDQ;aCK;KDE;EEG;GFW;EGa;GHM;EIe,uBJ;EKC,+BL;EMC,wCN;4COK;GPE;EQ6B;wCCC;gCFC;OEE;KDC;GRC;gCUE;GVQ;iBWE;GXS;kBYM;GZE;EaE;ICC;yDCU;WDE,EE;WFE;+CCG;SDM,EE;SFI;KDE;III;MCC;+BCC;SDE;ODC;KJqB;GbK;uDOG;GPE;kBoBM;yBCU;SDE;GpBC;EsBE;WRG;KQwE;GtBC;EuBM;GvB8E;6BOa;GPE;yBOE;GPE;EwBE;GxBa;EyBE;GzBK;E0BE;G1BO;iB2BE;WCU;KDe;G3BC;E6BE;2BDY;SCa;G7BQ;E8BG;G9BE;W+BK;K/BwB;UgCE;KhCU;uBiCE;MCM;ODa;KjCuC;YmCE;KnCgC;coCE;KpCiB;YqCE;KrCS;asCE;KtCgB;mBuCE;KvCc;CDS"}],[{"names":["","defineLazyTimer","polyfillGlobal$argument_1"],"mappings":"AAA;0BCmC;yBCW,wCD;GDC;IEoB,oDF;IEI,sDF;MES,4DF;MEI,4DF;mCEW,uCF;IEK,mDF"}],[{"names":["","_getFreeIndex","_allocateCallback","_callTimer","callback$argument_0.timeRemaining","_callReactNativeMicrotasksPass","_clearIndex","_freeCallback","setTimeout","_allocateCallback$argument_0","setInterval","queueReactNativeMicrotask","requestAnimationFrame","requestIdleCallback","","setTimeout$argument_0","cancelIdleCallback","clearTimeout","clearInterval","clearReactNativeMicrotask","cancelAnimationFrame","callTimers","callIdleCallbacks","errors.forEach$argument_0","callReactNativeMicrotasks","emitTimeDriftWarning","createTimer","deleteTimer","setSendIdleEvents"],"mappings":"AAA;ACgD;CDM;AEE;CFO;AGO;uBC6C;SDQ;CHc;AKM;CLwB;AME;CNI;AOE;CPmB;cQY;MCM,iCD;GRK;eUM;MDM,iCC;GVK;6BWU;MFE,iCE;GXK;yBYK;GZI;uBaO;UCW;WDO;oDEO;OFU;GbI;sBgBE;GhBgB;gBiBE;GjBE;iBkBE;GlBE;6BmBE;GnBM;wBoBE;GpBE;cqBM;aPkB;aOE;GrBO;qBsBE;mBCsB;0BRC;OQE,ID;GtBE;EwBM;mBDG;0BRC;OQE,IC;GxBE;EyBK;GzBM;A0BG;C1BQ;A2BE;C3BG;A4BE;C5BG"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","setImmediate","global.queueMicrotask$argument_0","clearImmediate"],"mappings":"AAA;ACuB;wBCoB;GDO;CDG;AGK;CHE"}],[{"names":["","queueMicrotask","then._catch$argument_0","setTimeout$argument_0"],"mappings":"AAA;eCqB;WCa;iBCE;ODE,ID;CDE"}],[{"names":["","polyfillGlobal$argument_1"],"mappings":"AAA;iCCoB,0CD;2BCC,oCD;wBCE,uCD;0BCC,yCD;0BCC,yCD;2BCC,0CD;4BCC,uCD;uBCC,6BD;uBCC,6BD;6BCC,mCD;sBCC,gCD;kCCC,4CD;ECG,uED;ECI,mED"}],[{"names":["","XMLHttpRequestEventTarget","XMLHttpRequest","setInterceptor","constructor","_reset","get__responseType","set__responseType","get__responseText","get__response","__didCreateRequest","__didUploadProgress","__didReceiveResponse","__didReceiveData","__didReceiveIncrementalData","__didReceiveDataProgress","__didCompleteResponse","_clearSubscriptions","forEach$argument_0","getAllResponseHeaders","sort$argument_0","sortedHeaders.map$argument_0","getResponseHeader","setRequestHeader","setTrackingName","setPerformanceLogger","open","send","RCTNetworking.addListener$argument_1","doSend","abort","setResponseHeaders","Object.keys.reduce$argument_0","setReadyState","addEventListener"],"mappings":"AAA;ACgF;CDQ;AEK;ECqD;GDE;EEE;GFG;EGE;GHkB;EIE;GJE;EKE;GL2B;EME;GNW;EOE;GP8C;EQG;GRU;ESG;GTa;EUE;GV0B;EWE;GXU;EYE;GZoB;EaE;Gbc;EcG;Gd8B;EeE;wCCC;KDI;GfE;EiBE;6DC8B;KDQ;aEK;SFE;GjBG;EoBE;GpBG;EqBE;GrBK;EsBK;GtBG;EuBK;GvBG;EwBE;GxBgB;EyBE;sDCY;yCDC;6DCI;0CDC;yDCI;sCDC;oECI;iDDC;iECI;8CDC;8DCI;2CDC;mBEY;KF8B;GzBM;E4BE;G5BmB;E6BE;OCK;KDG;G7BC;E+BE;G/BiB;EgCG;GhCS;CFC"}],[{"names":["","_get"],"mappings":"AAA;ACC;CDe"}],[{"names":["","_superPropBase"],"mappings":"AAA;ACC;CDM"}],[{"names":["","uuidv4","xxxxxxxxXxxx4xxxYxxxXxxxxxxxxxxx.replace$argument_1","createBlobCollector","BlobManager","createFromParts","parts.map$argument_0","items.reduce$argument_0","createFromOptions","release","addNetworkingHandler","addWebSocketHandler","removeWebSocketHandler","sendOverSocket"],"mappings":"AAA;ACyB;iECC;GDI;CDC;AGS;CHM;AIK;ECS;4BCO;KDoB;8BEC;KFM;GDW;EIM;GJe;EKK;GLQ;EMM;GNI;EOM;GPI;EQM;GRI;ESK;GTI;CJC"}],[{"names":["","getConstants","addNetworkingHandler","addWebSocketHandler","removeWebSocketHandler","sendOverSocket","createFromParts","release"],"mappings":"AAA;IC+B;KDK;IEC;KFE;IGC;KHE;IIC;KJE;IKC;KLE;IMC;KNE;IOC;KPE"}],[{"names":["","Blob","constructor","set__data","get__data","slice","close","get__size","get__type"],"mappings":"AAA;ACmD;ECQ;GDG;EEQ;GFE;EGG;GHM;EIE;GJmC;EKc;GLI;EMM;GNE;EOO;GPE;CDC"}],[{"names":["","register","unregister","has"],"mappings":"AAA;iBCY;CDM;mBEE;CFO;YGE;CHE"}],[{"names":["","pd","setCancelFlag","Event","Event.prototype.get__type","Event.prototype.get__target","Event.prototype.get__currentTarget","Event.prototype.composedPath","Event.prototype.get__NONE","Event.prototype.get__CAPTURING_PHASE","Event.prototype.get__AT_TARGET","Event.prototype.get__BUBBLING_PHASE","Event.prototype.get__eventPhase","Event.prototype.stopPropagation","Event.prototype.stopImmediatePropagation","Event.prototype.get__bubbles","Event.prototype.get__cancelable","Event.prototype.preventDefault","Event.prototype.get__defaultPrevented","Event.prototype.get__composed","Event.prototype.get__timeStamp","Event.prototype.get__srcElement","Event.prototype.get__cancelBubble","Event.prototype.set__cancelBubble","Event.prototype.get__returnValue","Event.prototype.set__returnValue","Event.prototype.initEvent","defineRedirectDescriptor","get","set","defineCallDescriptor","value","defineWrapper","CustomEvent","getWrapper","wrapEvent","isStopped","setEventPhase","setCurrentTarget","setPassiveListener","isObject","getListeners","defineEventAttributeDescriptor","defineEventAttribute","defineCustomEventTarget","CustomEventTarget","EventTarget","EventTarget.prototype.addEventListener","EventTarget.prototype.removeEventListener","EventTarget.prototype.dispatchEvent"],"mappings":"AAA;AC2C;CDQ;AEM;CFqB;AGY;CHwB;IIQ;KJE;IKM;KLE;IMM;KNE;IOK;KPM;IQM;KRE;ISM;KTE;IUM;KVE;IWM;KXE;IYM;KZE;IaM;KbO;IcM;KdQ;IeM;KfE;IgBM;KhBE;IiBM;KjBE;IkBM;KlBE;ImBM;KnBE;IoBM;KpBE;IqBO;KrBE;IsBO;KtBE;IuBC;KvBU;IwBO;KxBE;IyBC;KzBI;I0BS;K1BE;A2BwB;QCE;SDE;QEC;SFE;C3BI;A8BQ;QCE;SDG;C9BI;AgCS;ICO;KDE;ChCuB;AkCQ;ClCW;AmCS;CnCG;AoCQ;CpCE;AqCS;CrCE;AsCS;CtCE;AuCS;CvCE;AwC4B;CxCE;AyCQ;CzCQ;A0CQ;QdE;ScU;QbE;SayC;C1CI;A2CQ;C3CM;A4CQ;ICE;KDE;C5Ce;A8Ce;C9CkB;I+CW;K/C6C;IgDS;KhD+B;IiDO;KjDoE"}],[{"names":["","isLoggingForWebPerformance"],"mappings":"AAA;ACgB;CDK"}],[{"names":["","isLayoutAnimationEnabled","shouldEmitW3CPointerEvents","shouldPressibilityUseW3CPointerEventsForHover","animatedShouldDebounceQueueFlush","animatedShouldUseSingleOp","isGlobalWebPerformanceLoggerEnabled","enableAccessToHostTreeInFabric"],"mappings":"AAA;4BCkD,UD;8BEC,WF;iDGC,WH;oCIC,WJ;6BKC,WL;uCMC,WN;kCOC,WP"}],[{"names":["","PerformanceLogger","PerformanceLogger#constructor","PerformanceLogger#addTimespan","PerformanceLogger#append","PerformanceLogger#clear","PerformanceLogger#clearCompleted","PerformanceLogger#close","PerformanceLogger#currentTimestamp","PerformanceLogger#getExtras","PerformanceLogger#getPoints","PerformanceLogger#getPointExtras","PerformanceLogger#getTimespans","PerformanceLogger#hasTimespan","PerformanceLogger#isClosed","PerformanceLogger#logEverything","PerformanceLogger#markPoint","PerformanceLogger#removeExtra","PerformanceLogger#setExtra","PerformanceLogger#startTimespan","PerformanceLogger#stopTimespan","createPerformanceLogger"],"mappings":"AAA;ACmC;ECQ;GDE;EEE;GFqC;EGE;GHW;EIE;GJO;EKE;GLW;EME;GNE;EOE;GPE;EQE;GRE;ESE;GTE;EUE;GVE;EWE;GXE;EYE;GZE;EaE;GbE;EcE;GdmB;EeE;Gf8B;EgBE;GhBI;EiBE;GjBkB;EkBE;GlBuC;EmBE;GnBkD;CDC;eqBW;CrBI"}],[{"names":["","infoLog"],"mappings":"AAA;ACe;CDE"}],[{"names":["","getLens","byteLength","_byteLength","toByteArray","tripletToBase64","encodeChunk","fromByteArray"],"mappings":"AAA;ACqB;CDiB;AEG;CFK;AGE;CHE;AIE;CJ4C;AKE;CLK;AME;CNW;AOE;CP+B"}],[{"names":["","convertHeadersMapToArray","generateRequestId","RCTNetworking","constructor","sendRequest","body.formData.map$argument_0","abortRequest","clearCookies"],"mappings":"AAA;ACuB;CDM;AEG;CFE;AGO;ECC;GDM;EEE;wCCc;QDG;GFe;EIE;GJE;EKE;GLE;CHC"}],[{"names":["","NativeEventEmitter","constructor","addListener","remove","emit","removeAllListeners","listenerCount"],"mappings":"AAA;eCsC;ECK;GD6B;EEE;cCa;ODO;GFE;EIE;GJO;EKE;GLS;EME;GNE;CDC"}],[{"names":["","convertRequestBody"],"mappings":"AAA;ACwB;CDgB"}],[{"names":["","FormData","constructor","append","getAll","_parts.filter$argument_0","_parts.filter.map$argument_0","getParts","_parts.map$argument_0"],"mappings":"AAA;ACkD;ECG;GDE;EEE;GFO;EGE;cCE,wBD;WEC,oBF;GHC;EME;2BCC;KDoB;GNC;CDC"}],[{"names":["","binaryToBase64"],"mappings":"AAA;ACc;CDc"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","","isDataView","normalizeName","normalizeValue","iteratorFor","iterator.next","iterator.@@iterator","Headers","headers.forEach$argument_0","Object.getOwnPropertyNames.forEach$argument_0","Headers.prototype.append","Headers.prototype._delete","Headers.prototype.get","Headers.prototype.has","Headers.prototype.set","Headers.prototype.forEach","Headers.prototype.keys","forEach$argument_0","Headers.prototype.values","Headers.prototype.entries","consumed","fileReaderReady","Promise$argument_0","reader.onload","reader.onerror","readBlobAsArrayBuffer","readBlobAsText","readArrayBufferAsText","bufferClone","Body","_initBody","blob","arrayBuffer","text","formData","json","normalizeMethod","Request","Request.prototype.clone","decode","body.trim.split.forEach$argument_0","parseHeaders","preProcessedHeaders.split.map$argument_0","preProcessedHeaders.split.map.forEach$argument_0","Response","Response.prototype.clone","Response.error","Response.redirect","exports.DOMException","fetch","abortXhr","xhr.onload","setTimeout$argument_0","xhr.onerror","xhr.ontimeout","xhr.onabort","fixUrl","request.headers.forEach$argument_0","xhr.onreadystatechange"],"mappings":"AAA,CC;CDI,QC;ECyB;GDE;EEsB;GFQ;EGE;GHK;EIG;YCE;ODG;kCEI;OFE;GJI;EOE;sBCI;ODE;sBCE;ODE;kDEE;OFE;GPE;6BUE;GVK;gCWE;GXE;0BYE;GZG;0BaE;GbE;0BcE;GdE;8BeE;GfM;2BgBE;iBCE;KDE;GhBE;6BkBE;iBDE;KCE;GlBE;8BmBE;iBFE;KEE;GnBE;EoBM;GpBK;EqBE;uBCC;sBCC;ODE;uBEC;OFE;KDC;GrBC;EyBE;GzBK;E0BE;G1BK;E2BE;G3BQ;E4BE;G5BQ;E6BE;qBCG;KD0C;kBEG;OFe;yBGE;OHmB;gBIG;KJe;sBKG;OLE;gBMG;KNE;G7BG;EoCK;GpCG;EqCE;GrCwD;4BsCE;GtCE;EuCE;eCK;ODO;GvCE;EyCE;WCU;ODE;eEC;OFO;GzCE;E4CI;G5Ce;6B6CI;G7CO;mB8CE;G9CI;sB+CI;G/CM;2BgDM;KhDK;EiDK;uB3BC;M4BS;O5BE;mB6BE;mBCQ;SDE;O7BC;oB+BE;mBDC;SCE;O/BC;sBgCE;mBFC;SEE;OhCC;oBiCE;mBHC;SGE;OjCC;MkCE;OlCM;yDbuB;SaE;gCmCE;SnCE;iCoCM;SpCK;K2BI;GjDC;CDkB"}],[{"names":["","WebSocket","constructor","get__binaryType","set__binaryType","close","send","ping","_close","_unregisterEvents","_subscriptions.forEach$argument_0","_registerEvents","_eventEmitter.addListener$argument_1"],"mappings":"AAA;ACsE;EC2B;GDmD;EEE;GFE;EGE;GHgB;EIE;GJO;EKE;GLyB;EME;GNM;EOE;GPS;EQE;gCCC,eD;GRE;EUE;yDCE;ODc;sDCC;ODO;wDCC;ODc;wDCC;ODmB;GVE;CDC"}],[{"names":["","_objectWithoutProperties"],"mappings":"AAA;ACC;CDc"}],[{"names":["_objectWithoutPropertiesLoose",""],"mappings":"AAA;CCW"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","WebSocketEvent","constructor"],"mappings":"AAA;ACmB;ECC;GDG;CDC"}],[{"names":["","File","constructor","get__name","get__lastModified"],"mappings":"AAA;ACoB;ECI;GDY;EEK;GFG;EGK;GHE;CDC"}],[{"names":["","FileReader","constructor","_reset","_setReadyState","readAsArrayBuffer","NativeFileReaderModule.readAsDataURL.then$argument_0","NativeFileReaderModule.readAsDataURL.then$argument_1","readAsDataURL","readAsText","NativeFileReaderModule.readAsText.then$argument_0","NativeFileReaderModule.readAsText.then$argument_1","abort","get__readyState","get__error","get__result"],"mappings":"AAA;ACqC;ECc;GDG;EEE;GFI;EGE;GHa;EIE;MCU;ODU;MEC;OFM;GJE;EOE;MFU;OEM;MDC;OCM;GPE;EQE;MCU;ODM;MEC;OFM;GRE;EWE;GXS;EYE;GZE;EaE;GbE;EcE;GdE;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","URLSearchParams","URLSearchParams#constructor","Object.keys.forEach$argument_0","URLSearchParams#append","URLSearchParams#_delete","URLSearchParams#get","URLSearchParams#getAll","URLSearchParams#has","URLSearchParams#set","URLSearchParams#sort","URLSearchParams#@@iterator","URLSearchParams#toString","_searchParams.reduce$argument_0","validateBaseUrl","URL","createObjectURL","revokeObjectURL","constructor","get__hash","get__host","get__hostname","get__href","get__origin","get__password","get__pathname","get__port","get__protocol","get__search","get__searchParams","toJSON","toString","get__username"],"mappings":"AAA;OCwD;ECG;kCCE,oCD;GDE;EGE;GHE;EIE;GJE;EKE;GLE;EME;GNE;EOE;GPE;EQE;GRE;ESE;GTE;EUI;GVE;EWE;qCCK;KDQ;GXC;CDC;AcE;CdK;OeE;ECI;GDK;EEE;GFE;EGG;GH2B;EIE;GJE;EKE;GLE;EME;GNE;EOE;GPE;EQE;GRE;ESE;GTE;EUE;GVE;EWE;GXE;EYE;GZE;EaE;GbE;EcE;GdK;EeE;GfE;EgBE;GhBQ;EiBE;GjBE;CfC"}],[{"names":["","AbortSignal","AbortSignal#constructor","AbortSignal#get__aborted","createAbortSignal","abortSignal","AbortController","AbortController#constructor","AbortController#get__signal","AbortController#abort","getSignal"],"mappings":"AAA;ACc;ICI;KDG;IEI;KFM;CDC;AIK;CJK;AKI;CLM;AMqB;ICI;KDE;IEI;KFE;IGI;KHE;CNC;AUQ;CVM"}],[{"names":["","global.alert"],"mappings":"AAA;iBCiB;GDI"}],[{"names":["","Alert","alert","onAction","onError","prompt","callbackOrButtons.forEach$argument_0","RCTAlertManager.alertWithArgs$argument_1"],"mappings":"AAA;ACyC;ECC;uBCuD;ODY;sBEC,oDF;GDG;EIE;kCCkB;SDe;QEgB;SFG;GJG;CDC"}],[{"names":["","emptyCallback","module.exports.alertWithArgs"],"mappings":"AAA;ACW,2BD;iBEG;GFW"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","polyfillObjectProperty$argument_2"],"mappings":"AAA;+CCoB,mBD"}],[{"names":["","registerModule","registerModule$argument_1"],"mappings":"AAA;mBCiB;oEDc;2BEG,wCF;6BEE,kCF;8BEE,2CF;mCEC;4CFC;yBEE,oCF;EEG,8DF;2CEE;qDFC;0CEE;iDFC;8BEI,uCF;8BEE,+CF"}],[{"names":["","captureHeap"],"mappings":"AAA;eCa;GDY"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","poke"],"mappings":"AAA;QCa;GDsB"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","logIfNoNativeHook","logToConsole","setWarningHandler"],"mappings":"AAA;EC0B;GDU;EEG;GFQ;EGE;GHE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","setup","enable","disable","registerBundle","log"],"mappings":"AAA;ECiB,UD;EEC;GFK;EGC,YH;EIC,mBJ;EKC,QL"}],[{"names":["","__fetchSegment","SegmentFetcher.fetchSegment$argument_2"],"mappings":"AAA;ACmB;ICc;KDc;CDE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","componentProviderInstrumentationHook","setWrapperComponentProvider","enableArchitectureIndicator","registerConfig","config.forEach$argument_0","registerComponent","runnables.appKey.run","registerRunnable","registerSection","getAppKeys","getSectionKeys","getSections","getRunnable","getRegistry","setComponentProviderInstrumentationHook","runApplication","BugReporting.addSource$argument_1","setSurfaceProps","unmountApplicationComponentAtRootTag","registerHeadlessTask","registerCancellableHeadlessTask$argument_2","","registerCancellableHeadlessTask","startHeadlessTask","taskProvider.then$argument_0","taskProvider.then._catch$argument_0","NativeHeadlessJsTaskSupport.notifyTaskRetry.then$argument_0","cancelHeadlessTask","registerComponent$argument_1","NoOp"],"mappings":"AAA;EC+D,6CD;EEW;GFE;EGE;GHE;EIE;mBCC;KDgB;GJC;EMO;WCQ;ODoB;GNM;EQE;GRG;ESE;GTE;EUE;GVE;EWE;GXE;EYE;GZI;EaE;GbE;EcE;GdK;EeE;GfI;EgBO;QCa,SD;GhBa;EkBK;QDc,SC;GlBY;EmBO;GnBE;EoBO;gECE,MC;KFE;GpBC;EuBO;GvBY;EwBO;YCU;ODI;aEC;YCS;aDI;OFG;GxBC;E4BO;G5BM;0C6BM;aCI;ODE;G7BE"}],[{"names":["","defaultExtras","addFileSource$argument_1","BugReporting","_maybeInit","addSource","addFileSource","_addSource","remove","collectExtraData"],"mappings":"AAA;ACuB;oDCC;gCDC;CDE;AGQ;ECM;GDmB;EEU;GFK;EGU;GHK;EIE;cCa;ODE;GJE;EMQ;GNmB;CHC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","dumpReactTree","getReactTree"],"mappings":"AAA;ACyB;CDM;AEE;CFiB"}],[{"names":["","setActiveScene","_listeners.forEach$argument_0","getActiveScene","addActiveSceneChangedListener","remove","_listeners.filter$argument_0"],"mappings":"AAA;ECmB;uBCE,kCD;GDC;EGE;GHE;EIE;cCM;uCCC,iCD;ODC;GJE"}],[{"names":["","HeadlessJsTaskError"],"mappings":"AAA;eCU,0CD"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","renderApplication"],"mappings":"AAA;eC6B;CDyE"}],[{"names":["","usePerformanceLogger"],"mappings":"AAA;OC4B;CDE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","A","B.isMounted","B.enqueueForceUpdate","B.enqueueReplaceState","B.enqueueSetState","E","E.prototype.setState","E.prototype.forceUpdate","F","G","M","N","O","escape","a.replace$argument_1","Q","R","R$argument_4","S","T","b.then$argument_0","b.then$argument_1","exports.Children.forEach","S$argument_1","exports.Children.count","exports.Children.toArray","exports.Children.only","exports.cloneElement","exports.createContext","exports.createFactory","exports.createRef","exports.forwardRef","exports.lazy","exports.memo","exports.startTransition","exports.unstable_act","exports.useCallback","exports.useContext","exports.useDebugValue","exports.useDeferredValue","exports.useEffect","exports.useId","exports.useImperativeHandle","exports.useInsertionEffect","exports.useLayoutEffect","exports.useMemo","exports.useReducer","exports.useRef","exports.useState","exports.useSyncExternalStore","exports.useTransition"],"mappings":"AAA;kXCS,yHD;iBEC,oBF,oBG,YH,qBI,YJ,iBK,YL,uBM,4EN;qBOC,4PP,yBQ,kER,CS,cT,wBU,4EV;AWE,8aX;AYC,6FC,kEC,yEC,wBD,Ed,agB,iGhB;AiBC,0TC,qBD;0ZjBC;AmBC,+DD,mCC,WC,8DC,qED,CE,qEF,uGpB;oJuBC,oBC,mCD,IvB,OyB,wBD,eC,WzB,S0B,uBF,qBE,M1B,M2B,mH3B;qB4BE;iH5BC,uB6B,kM7B,+C8B,mD9B,mB+B,gC/B;mBgCC,wChC,uCiC,uEjC,ckC,kElC,yBmC,+EnC,sBoC,oFpC;oBqCC,gDrC,oBsC,2CtC,uBuC,YvC,0BwC,iDxC,mByC,8CzC,e0C,oC1C,6B2C,4D3C;2B4CC,uD5C,yB6C,oD7C,iB8C,4C9C,oB+C,mD/C,gBgD,uChD,kBiD,yCjD,8BkD,6DlD;sBmDC,4CnD"}],[{"names":["","AppContainer","componentDidMount","RCTDeviceEventEmitter.addListener$argument_1","Inspector.props.onRequestRerenderApp","setState$argument_0","setState$argument_1","componentWillUnmount","render","View.props.ref"],"mappings":"AAA;ACuC;ECa;UCK;sCCK;oBCE,+BD;oBEC,wCF;iBDE;WDI;GDe;EME;GNI;EOE;aCgB;SDE;GP6B;CDC"}],[{"names":["","React.forwardRef$argument_0"],"mappings":"AAA;EC+B;GDwG"}],[{"names":["","flattenStyle"],"mappings":"AAA;ACe;CDuB"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;gDC2G,4BD"}],[{"names":["","setRuntimeConfigProvider","get","ReactNativeViewConfigRegistry.register$argument_1","getWithFallback_DEPRECATED","FallbackNativeComponent","hasNativeViewConfig","unstable_hasStaticViewConfig"],"mappings":"AAA;OCiC;CDY;OEQ;+CCI;GDwC;CFI;OIW;kCCiB;GDE;CJG;AME;CNG;OOQ;CPK"}],[{"names":["","getNativeComponentAttributes","attachDefaultEventTypes","merge","getDifferForType","getProcessorForType"],"mappings":"AAA;ACuB;CD2E;AEE;CFkB;AGG;CH0B;AIE;CJoB;AKE;CLsB"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","processAspectRatio","aspectRatio.split.map$argument_0","matches.some$argument_0"],"mappings":"AAA;ACc;6CCe,aD;2CEa,4BF;CDkB"}],[{"names":["","processColor"],"mappings":"AAA;ACqB;CDoC"}],[{"names":["","normalizeColor"],"mappings":"AAA;ACiB;CDc"}],[{"names":["","normalizeColor","hue2rgb","hslToRgb","hwbToRgb","call","callWithSlashSeparator","commaSeparatedCall","getMatchers","parse255","parse360","parse1","parsePercentage","normalizeKeyword"],"mappings":"AAA;ACc;CDgJ;AEE;CFiB;AGE;CHY;AIE;CJgB;AKK;CLE;AME;CNQ;AOE;CPE;AQI;CR2B;ASE;CTS;AUE;CVG;AWE;CXS;AYE;CZU;AaE;Cb4J"}],[{"names":["","PlatformColor","normalizeColorObject","processColorObject"],"mappings":"AAA;6BCiB;CDE;oCEE;CFO;kCGE;CHI"}],[{"names":["","processFontVariant"],"mappings":"AAA;ACc;CDa"}],[{"names":["","processTransform","_getKeyAndValueFromCSSTransform","_validateTransforms","transform.forEach$argument_0","_validateTransform"],"mappings":"AAA;ACuB;CD0B;yDEqB;CF6E;AGE;oBCC;GDU;CHC;AKE;CLiH"}],[{"names":["","_defineProperty"],"mappings":"AAA;ACC;CDa"}],[{"names":["","sizesDiffer"],"mappings":"AAA;oBCe;CDQ"}],[{"names":["","matricesDiffer"],"mappings":"AAA;uBCqB;CD2B"}],[{"names":["","pointsDiffer"],"mappings":"AAA;qBCoB;CDI"}],[{"names":["","insetsDiffer"],"mappings":"AAA;qBC2B;CDU"}],[{"names":["","processColorArray","processColorElement"],"mappings":"AAA;ACkB;CDI;AEE;CFQ"}],[{"names":["","getSourceCodeScriptURL","getDevServerURL","_coerceLocalScriptURL","getScriptURL","setCustomSourceTransformer","resolveAssetSource"],"mappings":"AAA;ACuB;CDY;AEE;CFc;AGE;CHc;AIE;CJK;AKE;CLI;AMM;CNmB"}],[{"names":["","getConstants"],"mappings":"AAA;ECwB;GDQ"}],[{"names":["","registerAsset","getAssetByID"],"mappings":"AAA;AC2B;CDI;AEE;CFE"}],[{"names":["","getScaledAssetPath","getAssetPathInDrawableFolder","AssetSourceResolver","constructor","isLoadedFromServer","isLoadedFromFileSystem","defaultAsset","assetServerURL","scaledAssetPath","scaledAssetURLNearBundle","resourceIdentifierWithoutScale","drawableFolderInBundle","fromSource"],"mappings":"AAA;ACmC;CDK;AEK;CFK;AGE;ECO;GDI;EEE;GFE;EGE;GHE;EIE;GJY;EKM;GLU;EMM;GNE;EOM;GPQ;EQQ;GRM;ESO;GTG;EUE;GVQ;CHI"}],[{"names":["","pickScale","setUrlCacheBreaker","getUrlCacheBreaker"],"mappings":"AAA;OCe;CDe;OEE;CFE;OGE;CHW"}],[{"names":["","PixelRatio","get","getFontScale","getPixelSizeForLayoutSize","roundToNearestPixel","startDetecting"],"mappings":"AAA;AC0D;ECyB;GDE;EEa;GFE;EGO;GHE;EIQ;GJG;EKG,0BL;CDC"}],[{"names":["","Dimensions","get","set","addEventListener","RCTDeviceEventEmitter.addListener$argument_1"],"mappings":"AAA;AC2B;ECkB;GDG;EEQ;GFiC;EGU;GHU;CDC;IKU;KLE"}],[{"names":["","getConstants"],"mappings":"AAA;EC+C;GDQ"}],[{"names":["","getAndroidAssetSuffix","getAndroidResourceFolderName","getAndroidResourceIdentifier","getBasePath"],"mappings":"AAA;AC6B;CDU;AEc;CFmB;AGE;CHM;AIE;CJG"}],[{"names":["","processEventTypes","exports.register","exports.get"],"mappings":"AAA;AC0C;CD+B;mBEO;CFc;cGO;CH2B"}],[{"names":["","verifyComponentAttributeEquivalence","lefthandObjectDiff","compare","getConfigWithoutViewProps","Object.keys.filter$argument_0","Object.keys.filter.reduce$argument_0","stringifyViewConfig","JSON.stringify$argument_1"],"mappings":"AAA;eCsC;CDsB;AEI;ECG;GDkB;CFe;OIE;YCS,+CD;6BEC;KFG;CJC;OOE;ICG;KDK;CPG"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","DynamicallyInjectedByGestureHandler","ConditionallyIgnoredEventHandlers","isIgnored"],"mappings":"AAA;OCkB;CDG;OEe;CFO;OGE;CHK"}],[{"names":["","validate","stringifyValidationResult","differences.map$argument_0","accumulateDifferences","ifObject"],"mappings":"AAA;OC4C;CD+B;OEE;uBCQ;KDU;CFG;AIE;CJ0D;AKE;CLE"}],[{"names":["","createViewConfig","composeIndexers"],"mappings":"AAA;OCoB;CDsB;AEE;CFO"}],[{"names":["","codegenNativeCommands","options.supportedCommands.forEach$argument_0","commandObj.command"],"mappings":"AAA;ACgB;oCCG;0BCE;KDG;GDC;CDG"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","q"],"mappings":"AAA;ACU,4TD"}],[{"names":["","getAccessibilityRoleFromRole"],"mappings":"AAA;OCkB;CDuI"}],[{"names":["","module.exports.compose","module.exports.setStyleAttributePreprocessor","module.exports.create"],"mappings":"AAA;ECgR;GDS;EEoD;GFyB;EGK;GHY"}],[{"names":["","createRootTag"],"mappings":"AAA;OCwB;CDE"}],[{"names":["","coerceDisplayMode"],"mappings":"AAA;OCoB;CDS"}],[{"names":["","getCachedComponentWithDisplayName","ComponentWithDisplayName"],"mappings":"AAA;eCqB;+BCM,gDD;CDO"}],[{"names":["","RCTDeviceEventEmitter.addListener$argument_1","exitApp","addEventListener","remove","removeEventListener"],"mappings":"AAA;qDCmB;CDQ;WEwC;GFM;oBGO;cCQ,+DD;GHE;uBKK;GLQ"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","module.exports.get__BatchedBridge","module.exports.get__ExceptionsManager","module.exports.get__Platform","module.exports.get__RCTEventEmitter","module.exports.get__ReactNativeViewConfigRegistry","module.exports.get__TextInputState","module.exports.get__UIManager","module.exports.get__deepDiffer","module.exports.get__deepFreezeAndThrowOnMutationInDev","module.exports.get__flattenStyle","module.exports.get__ReactFiberErrorDialog","module.exports.get__legacySendAccessibilityEvent","module.exports.get__RawEventEmitter","module.exports.get__CustomEvent"],"mappings":"AAA;EC6B;GDE;EEC;GFE;EGC;GHE;EIC;GJE;EKC;GLE;EMC;GNE;EOC;GPE;EQC;GRE;ESC;GTI;EUC;GVG;EWC;GXE;EYC;GZE;EaC;GbE;EcC;GdE"}],[{"names":["","register","global.RN$registerCallableModule$argument_1"],"mappings":"AAA;ECe;0DCE,kBD;GDI"}],[{"names":["","currentlyFocusedInput","currentlyFocusedField","focusInput","blurInput","focusField","blurField","focusTextInput","blurTextInput","registerInput","unregisterInput","isTextInput"],"mappings":"AAA;AC2C;CDE;AEM;CFQ;AGE;CHI;AIE;CJI;AKE;CLM;AME;CNM;AOO;CPgC;AQO;CRwB;ASE;CTY;AUE;CVW;AWE;CXY"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;ECivB,4BD"}],[{"names":["","unstable_setLogListeners","deepDiffer"],"mappings":"AAA;ACoB;CDE;mBEK;CFsE"}],[{"names":["","deepFreezeAndThrowOnMutationInDev","throwOnImmutableMutation","identity"],"mappings":"AAA;AC6B;CDyC;AEI;CFS;AGE;CHE"}],[{"names":["","showErrorDialog"],"mappings":"AAA;EC0B;GDgC"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","CustomEvent","constructor"],"mappings":"AAA;ACoB;ECG;GDK;CDC"}],[{"names":["","EventPolyfill","constructor","composedPath","preventDefault","initEvent","stopImmediatePropagation","stopPropagation","setSyntheticEvent"],"mappings":"AAA;ACkI;EC+B;GD8B;EEE;GFE;EGE;GHO;EIE;GJI;EKE;GLE;EME;GNK;EOE;GPE;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","f","h","k","g","l","H","I","K","Q","R","S","P","U","V","M","N","D$argument_0","Z"],"mappings":"AAA;aCS,uHC,4CC,4RH;AIC,uEJ,iGK,0BL,6BK,4BL;gLMC,qJC,kHP;AQC,ubR;ASC,8bC,8BC,sBX;0BYC,kCC,cC,sGd,iCe,gBf,uGe,+Bf,Qe,kBf,CgB,oBC,kBD,IhB;AkBG,8ClB"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","invokeGuardedCallbackImpl","reporter.onError","invokeGuardedCallback","invokeGuardedCallbackAndCatchFirstError","executeDispatch","executeDirectDispatch","functionThatReturnsTrue","functionThatReturnsFalse","SyntheticEvent","assign$argument_1.preventDefault","assign$argument_1.stopPropagation","assign$argument_1.persist","assign$argument_1.destructor","SyntheticEvent.Interface.currentTarget","SyntheticEvent.Interface.timeStamp","SyntheticEvent.extend","E","Class","createOrGetPooledEvent","releasePooledEvent","addEventPoolingTo","SyntheticEvent.extend$argument_0.touchHistory","isStartish","isMoveish","timestampForTouch","getTouchIdentifier","recordTouchStart","recordTouchMove","recordTouchEnd","ResponderTouchHistoryStore.instrument","ResponderTouchHistoryStore.recordTouchTrack","accumulate","accumulateInto","forEachAccumulated","changeResponder","getParent","traverseTwoPhase","getListener","accumulateDirectionalDispatches","accumulateDirectDispatchesSingle","accumulateTwoPhaseDispatchesSingleSkipTarget","accumulateTwoPhaseDispatchesSingle","ResponderEventPlugin._getResponder","ResponderEventPlugin.extractEvents","ResponderEventPlugin.injection.injectGlobalResponderHandler","recomputePluginOrdering","publishRegistrationName","getListeners","stateNode.canonical._eventListeners.mangledImperativeRegistrationName.forEach$argument_0","listenerFnWrapper","listeners.push$argument_0","accumulateListenersAndInstances","accumulateDirectionalDispatches$1","traverseTwoPhase$1","accumulateTwoPhaseDispatchesSingle$1","accumulateDirectDispatchesSingle$1","injectedNamesToPlugins$jscomp$inline_229.ReactNativeBridgeEventPlugin.extractEvents","getInstanceFromTag","batchedUpdatesImpl","batchedUpdates","executeDispatchesAndReleaseTopLevel","_receiveRootNodeIDEvent","batchedUpdates$argument_0","ReactNativePrivateInterface.RCTEventEmitter.register$argument_0.receiveEvent","ReactNativePrivateInterface.RCTEventEmitter.register$argument_0.receiveTouches","getFiberCurrentPropsFromNode","getNodeFromInstance","ResponderEventPlugin.injection.injectGlobalResponderHandler$argument_0.onChange","getIteratorFn","getComponentNameFromType","getComponentNameFromFiber","getNearestMountedFiber","assertIsMounted","findCurrentFiberUsingSlowPath","findCurrentHostFiber","findCurrentHostFiberImpl","defaultDiffer","restoreDeletedValuesInNestedArray","diffNestedProperty","addNestedProperty","clearNestedProperty","diffProperties","mountSafeCallback_NOT_REALLY_SAFE","","ReactNativeFiberHostComponent","_proto.blur","_proto.focus","_proto.measure","_proto.measureInWindow","_proto.measureLayout","_proto.setNativeProps","onCommitRoot","clz32Fallback","getHighestPriorityLanes","getNextLanes","computeExpirationTime","getLanesToRetrySynchronouslyOnError","claimNextTransitionLane","createLaneMap","markRootUpdated","markRootFinished","markRootEntangled","lanesToEventPriority","shim","allocateTag","recursivelyUncacheFiberNode","finalizeInitialChildren","parentInstance._children.map$argument_0","describeComponentFrame","describeFunctionComponentFrame","createCursor","pop","push","getMaskedContext","isContextProvider","popContext","pushTopLevelContextObject","processChildContext","pushContextProvider","invalidateContextProvider","is","flushSyncCallbacks","popTreeContext","shallowEqual","describeFiber","getStackByFiberInDevAndProd","resolveDefaultProps","resetContextDependencies","popProvider","scheduleContextWorkOnParentPath","prepareToReadContext","readContext","pushConcurrentUpdateQueue","enqueueConcurrentHookUpdate","markUpdateLaneFromFiberToRoot","initializeUpdateQueue","cloneUpdateQueue","createUpdate","enqueueUpdate","entangleTransitions","enqueueCapturedUpdate","processUpdateQueue","commitUpdateQueue","applyDerivedStateFromProps","classComponentUpdater.isMounted","classComponentUpdater.enqueueSetState","classComponentUpdater.enqueueReplaceState","classComponentUpdater.enqueueForceUpdate","checkShouldComponentUpdate","constructClassInstance","callComponentWillReceiveProps","mountClassInstance","coerceRef","current","throwOnInvalidObjectType","resolveLazy","ChildReconciler","deleteChild","deleteRemainingChildren","mapRemainingChildren","useFiber","placeChild","placeSingleChild","updateTextNode","updateElement","updatePortal","updateFragment","createChild","updateSlot","updateFromMap","reconcileChildrenArray","oldFiber.forEach$argument_0","reconcileChildrenIterator","reconcileChildFibers","requiredContext","pushHostContainer","popHostContainer","pushHostContext","popHostContext","findFirstSuspended","resetWorkInProgressVersions","throwInvalidHookError","areHookInputsEqual","renderWithHooks","mountWorkInProgressHook","updateWorkInProgressHook","basicStateReducer","updateReducer","rerenderReducer","updateMutableSource","updateSyncExternalStore","pushStoreConsistencyCheck","updateStoreInstance","subscribeToStore","subscribe$argument_0","checkIfSnapshotChanged","forceStoreRerender","mountState","pushEffect","updateRef","mountEffectImpl","updateEffectImpl","mountEffect","updateEffect","updateInsertionEffect","updateLayoutEffect","imperativeHandleEffect","updateImperativeHandle","mountDebugValue","updateCallback","updateMemo","updateDeferredValueImpl","startTransition","updateId","dispatchReducerAction","dispatchSetState","isRenderPhaseUpdate","enqueueRenderPhaseUpdate","entangleTransitionUpdate","HooksDispatcherOnMount.useCallback","HooksDispatcherOnMount.useImperativeHandle","HooksDispatcherOnMount.useLayoutEffect","HooksDispatcherOnMount.useInsertionEffect","HooksDispatcherOnMount.useMemo","HooksDispatcherOnMount.useReducer","HooksDispatcherOnMount.useRef","HooksDispatcherOnMount.useDeferredValue","HooksDispatcherOnMount.useTransition","HooksDispatcherOnMount.useMutableSource","HooksDispatcherOnMount.useSyncExternalStore","HooksDispatcherOnMount.useId","HooksDispatcherOnUpdate.useState","HooksDispatcherOnUpdate.useDeferredValue","HooksDispatcherOnUpdate.useTransition","HooksDispatcherOnRerender.useState","HooksDispatcherOnRerender.useDeferredValue","HooksDispatcherOnRerender.useTransition","createCapturedValueAtFiber","createCapturedValue","logCapturedError","setTimeout$argument_0","createRootErrorUpdate","lane.callback","createClassErrorUpdate","lane.payload","attachPingListener","reconcileChildren","updateForwardRef","updateMemoComponent","updateSimpleMemoComponent","updateOffscreenComponent","markRef","updateFunctionComponent","updateClassComponent","finishClassComponent","pushHostRootContext","mountSuspenseOffscreenState","updateSuspenseComponent","mountSuspensePrimaryChildren","retrySuspenseComponentWithoutHydrating","updateDehydratedSuspenseComponent","scheduleSuspenseWorkOnFiber","initSuspenseListRenderState","updateSuspenseListComponent","resetSuspendedCurrentOnMountInLegacyMode","bailoutOnAlreadyFinishedWork","attemptEarlyBailoutIfNoScheduledUpdate","appendAllChildren","updateHostContainer","updateHostComponent$1","updateHostText$1","cutOffTailIfNeeded","bubbleProperties","completeWork","unwindWork","safelyDetachRef","safelyCallDestroy","commitBeforeMutationEffects","commitHookEffectListUnmount","commitHookEffectListMount","detachFiberAfterEffects","isHostParent","getHostSibling","insertOrAppendPlacementNodeIntoContainer","insertOrAppendPlacementNode","recursivelyTraverseDeletionEffects","commitDeletionEffectsOnFiber","attachSuspenseRetryListeners","wakeables.forEach$argument_0","recursivelyTraverseMutationEffects","commitMutationEffectsOnFiber","commitReconciliationEffects","commitLayoutEffects","requestEventTime","requestUpdateLane","scheduleUpdateOnFiber","ensureRootIsScheduled","performConcurrentWorkOnRoot","recoverFromConcurrentError","queueRecoverableErrors","isRenderConsistentWithExternalStores","markRootSuspended$1","performSyncWorkOnRoot","popRenderLanes","prepareFreshStack","handleError","pushDispatcher","renderDidSuspendDelayIfPossible","renderRootSync","workLoopSync","workLoopConcurrent","performUnitOfWork","completeUnitOfWork","commitRoot","commitRootImpl","scheduleCallback$1$argument_1","flushPassiveEffects","captureCommitPhaseErrorOnRoot","captureCommitPhaseError","pingSuspendedRoot","retryTimedOutBoundary","retryDehydratedSuspenseBoundary","resolveRetryWakeable","beginWork$1","scheduleCallback$1","FiberNode","createFiber","shouldConstruct","resolveLazyComponentTag","createWorkInProgress","createFiberFromTypeAndProps","createFiberFromFragment","createFiberFromOffscreen","createFiberFromText","createFiberFromPortal","FiberRootNode","createPortal","findHostInstance","updateContainer","emptyFindFiberByHostInstance","findNodeHandle","onRecoverableError","unmountComponentAtNode","updateContainer$argument_3","devToolsConfig$jscomp$inline_979.rendererConfig.getInspectorDataForViewTag","internals$jscomp$inline_1247.findHostInstanceByFiber","exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.computeComponentStackForErrorReporting","exports.createPortal","exports.dispatchCommand","exports.findHostInstance_DEPRECATED","exports.render","exports.sendAccessibilityEvent","exports.unmountComponentAtNodeAndRemoveContainer"],"mappings":"AAA;ACkB;CDO;aEM;KFG;AGE;CHI;AIC;CJuB;AKK;CLK;AMC;CNa;AOE;CPE;AQC;CRE;ASC;CTyB;kBUE;GVQ;mBWC;GXO;WYC;GZE;caE;GbO;iBcK;GdE;aeI;GfE;wBgBI;ECC,eD;EEC;GFE;ChBW;AmBE;CnBY;AoBC;CpBO;AqBC;CrBI;gBsBE;GtBE;AuBE;CvBE;AwBC;CxBE;AyBW;CzBE;A0BC;C1BI;A2BC;C3B4B;A4BC;C5BW;A6BC;C7BW;gB8BG;K9BE;sB+BC;K/BgC;AgCG;ChCY;AiCC;CjCY;AkCC;ClCE;AmCG;CnCS;AoCyD;CpCI;AqCC;CrCI;AsCC;CtCc;AuCC;CvCe;AwCC;CxCgB;AyCC;CzCM;A0CC;C1CI;mB2CE;K3CE;mB4CE;K5C0Q;oC6CG;O7CE;A8CK;C9C4D;A+CC;C/CO;AgDI;cCsC;gCCK;SDgB;2BEE;aFS;KDG;ChDM;AoDO;CpDyB;AqDC;CrDQ;AsDC;CtDW;AuDC;CvDS;AwDC;CxDa;qByDc;OzDuC;A0DgC;C1DE;A2DC;C3DE;A4DE;C5DQ;A6DE;C7DkB;A8DE;iBCK;GDqC;C9DC;gBgEE;GhEE;kBiEC;GjE+B;+BkEE;ClEE;sBmEE;CnEM;YoEE;GpEO;AqEuB;CrEM;AsEC;CtE8C;AuEC;CvEuD;AwEC;CxEa;AyEC;CzEG;A0EC;C1E2E;A2EC;C3EG;A4EC;C5EQ;A6EK;C7EQ;A8EC;C9EqC;A+EC;C/EqD;AgFC;ChFgB;AiFC;CjFgB;AkFC;ClFoF;AmFC;SCC;GDM;CnFC;qCoFC;ICC;KDI;kBEE;KFE;mBGC;KHE;qBIC;KJK;6BKC;KLK;2BMC;KNa;4BOC;KPa;GpFE;A4FY;C5FU;A6FI;C7FG;A8FG;C9FgD;A+FC;C/FwC;AgGC;ChGwC;AiGC;CjGG;AkGC;ClGK;AmGC;CnGG;AoGC;CpGO;AqGC;CrGkB;AsGC;CtGS;AuGE;CvGS;AwGC;CxGI;AyGK;CzGK;A0GC;C1GS;A2GC;gDCE;GDE;C3GM;A6GG;C7GI;A8GC;C9GI;A+GI;C/GE;AgHC;ChHG;AiHC;CjHI;AkHK;ClHiB;AmHC;CnHG;AoHC;CpHG;AqHC;CrHO;AsHC;CtHc;AuHC;CvHS;AwHC;CxHkB;AyHC;CzHE;A0HK;C1HwB;A2HO;C3Ha;A4HG;C5HqB;A6HC;C7HqB;A8HC;C9HW;A+HC;C/HU;AgIK;ChIE;AiIC;CjII;AkIC;ClIY;AmIC;CnIQ;AoIC;CpIkB;AqIE;CrII;AsIC;CtIO;AuIC;CvIY;AwIE;CxIQ;AyIC;CzIU;A0IC;C1IS;A2IC;C3IkB;A4IC;C5IS;A6IC;C7I4C;A8IC;C9I+H;A+IC;C/IqB;AgJE;ChJe;aiJE;GjJI;mBkJC;GlJW;uBmJC;GnJY;sBoJC;GpJW;AqJE;CrJe;AsJC;CtJyB;AuJC;CvJa;AwJC;CxJiC;AyJC;gBC+B;ODI;CzJgB;A2JC;C3JS;A4JC;C5JG;A6JC;ECC;GDO;EEC;GFM;EGC;GHO;EIC;GJK;EKC;GLc;EMC;GNK;EOC;GPU;EQC;GRmC;ESC;GTe;EUC;GVe;EWC;GX0D;EYC;GZgC;EaC;GbmD;EcC;uBCsF;ODE;GdE;EgBC;uBDuE;OCE;GhBE;EiBC;GjBqK;C7JE;A+KO;C/KM;AgLC;ChLM;AiLC;CjLI;AkLC;ClLiB;AmLC;CnLG;AoLE;CpLsB;AqLE;CrLI;AsLU;CtLI;AuLC;CvLK;AwLC;CxL2C;AyLC;CzLY;A0LC;C1L6B;A2LC;C3LE;A4LC;C5L6E;A6LC;C7LsB;A8LC,iC9L;A+LC;C/L+B;AgMC;ChMY;AiMC;CjMI;AkMC;mBCC;GDE;ClMC;AoMC;CpMS;AqMC;CrMG;AsMC;CtMmB;AuMC;CvMe;AwMC;CxME;AyMC;CzMS;A0MC;C1Mc;A2MC;C3ME;A4MC;C5ME;A6MC;C7ME;A8MC;C9ME;A+MC;M3HK;O2HE;M3HM;O2HE;C/ME;AgNC;ChNQ;AiNC,6BjN;AkNC;ClNY;AmNC;CnNa;AoNC;CpNY;AqNC;CrNa;AsNC;CtNE;AuNC;CvNkB;AwNC;CxNuC;AyNC;CzNM;A0NC;C1NO;A2NC;C3NQ;iB4NuB;K5NM;yB6NG;K7NQ;qB8NC;K9NE;wB+NC;K/NE;agOC;KhOM;gBiOC;KjOmB;YkOC;KlOI;sBmOG;KnOE;mBoOC;KpOM;sBqOC,arO;0BsOC;KtOwB;WuOC;KvOO;cwOc;KxOE;sByOE;KzOG;mB0OC;K1OI;c2OiB;K3OE;sB4OE;K5OK;mB6OC;K7OI;A8OM;C9OO;A+OC;C/OO;AgPQ;eCU;KDE;ChPE;AkPE;kBCK;GDG;ClPE;AoPC;mBCM;KDE;oBDC;KCE;qBDK;KCU;CpPE;AsPC;CtPc;AuPG;CvPU;AwPC;CxP4B;AyPC;CzPoD;A0PC;C1PgC;A2PC;C3PiD;A4PC;C5PO;A6PC;C7P8B;A8PC;C9PsM;A+PC;C/PuC;AgQC;ChQW;AiQE;CjQE;AkQC;ClQmI;AmQC;CnQS;AoQC;CpQkB;AqQC;CrQ4J;AsQC;CtQK;AuQC;CvQuB;AwQC;CxQsF;AyQC;CzQM;A0QC;C1QoB;A2QC;C3QyE;oB4QK;C5QgB;sB6QC,a7Q;wB8QC;C9QK;mB+QC;C/QE;AgRC;ChRuB;AiRC;CjRuB;AkRC;ClR0U;AmRC;CnRqD;AoRG;CpRU;AqRC;CrRM;AsRE;CtR2D;AuRC;CvRmB;AwRC;CxRa;AyRC;CzRe;A0RC;C1RE;A2RC;C3RkB;A4RC;C5RmB;A6RC;C7R2D;A8RG;C9RQ;A+RC;C/R0I;AgSC;sBCO;KDI;ChSE;AkSC;ClS4C;AmSC;CnSqN;AoSC;CpS6C;AqSC;CrSgH;AsS+B;CtSM;AuSC;CvSY;AwSC;CxSoB;AySC;CzSsE;A0SC;C1SoL;A2SC;C3SU;A4SC;C5SO;A6SC;C7SiC;A8SC;C9SW;A+SC;C/S8B;AgTC;ChTG;AiTC;CjTuE;AkTC;ClTiL;AmTC;CnTI;AoTC;CpTW;AqTC;CrTwB;AsTC;CtTE;AuTC;CvTG;AwTC;CxTK;AyTC;CzTsC;A0TC;C1TiB;A2TC;uCC8B;KDG;C3TsD;A6TC;C7TgJ;A8TC;C9TQ;A+TC;C/T6C;AgUC;ChUe;AiUC;CjUY;AkUC;ClUK;AmUC;CnUkB;coUE;CpUob;AqUC;CrUE;AsUC;CtUa;AuUC;CvUE;AwUC;CxUG;AyUC;CzUS;A0UC;C1UmC;A2UC;C3UyE;A4UC;C5UI;A6UC;C7UM;A8UC;C9UI;A+UC;C/Uc;AgVC;ChVmB;AiVC;CjVU;AkVC;ClVY;AmVC;CnV4D;AoVC;CpVE;AqVC;CrVY;AsVC;CtVE;AuVC;sCCG;KDE;CvVC;qB2DC;C3DW;kCyVQ;OzVI;sCoFC;OpFI;2B0VkB;G1VG;0C2VyB;G3VI;uB4VE;C5VO;0B6VC;C7VW;sC8VC;C9VW;iB+VG;C/V4B;iCgWC;ChWU;mDiWE;CjWG"}],[{"names":["","ActivityIndicator"],"mappings":"AAA;0BC+D;CD2D"}],[{"names":["","ProgressBarAndroid"],"mappings":"AAA;2BCgF;CDkB"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","codegenNativeComponent"],"mappings":"AAA;ACiC;CDuC"}],[{"names":["","requireNativeComponent","createReactNativeComponentClass$argument_1"],"mappings":"AAA;+BC0B;qDCC;iDDC;4BDC"}],[{"names":["","createReactNativeComponentClass"],"mappings":"AAA;wCC4B;CDK"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","Button","render"],"mappings":"AAA;AC4R;ECC;GDwG;CDC"}],[{"names":["","React.forwardRef$argument_0","useMemo$argument_0","onPressIn","onPressOut","onResponderGrant","onResponderMove","onResponderRelease","onResponderTerminate","useLazyInitialization"],"mappings":"AAA;qBCgC;ICsE;YCO;aDG;YEC;aFG;cDK;ICiB;YGI;aHK;YIC;aJK;YKC;aLK;YMC;aNK;WDK;CD2G;ASe;CTM"}],[{"names":["","PressabilityDebugView","isEnabled","setEnabled"],"mappings":"AAA;OCqC;CDgC;OEI;CFK;OGE;CHI"}],[{"names":["","usePressability","useEffect$argument_0",""],"mappings":"AAA;eCqB;YCW;GDI;YCI;aCE;ODE;GDE;CDG"}],[{"names":["","isActiveSignal","isActivationSignal","isPressInSignal","isTerminalSignal","Pressability","constructor","configure","reset","getEventHandlers","setLongPressDeactivationDistance","_createEventHandlers","focusEventHandlers.onBlur","focusEventHandlers.onFocus","responderEventHandlers.onStartShouldSetResponder","responderEventHandlers.onResponderGrant","setTimeout$argument_0","responderEventHandlers.onResponderMove","responderEventHandlers.onResponderRelease","responderEventHandlers.onResponderTerminate","responderEventHandlers.onResponderTerminationRequest","responderEventHandlers.onClick","responderEventHandlers.onStartShouldSetResponder.testOnly_pressabilityConfig","hoverPointerEvents.onPointerEnter","hoverPointerEvents.onPointerLeave","onMouseEnter","onMouseLeave","_receiveSignal","PressabilityPerformanceEventEmitter.emitEvent$argument_0","_performTransitionSideEffects","_activate","_deactivate","_measureResponderRegion","_measureCallback","_isTouchWithinResponderRegion","_handleLongPress","_shouldLongPressCancelPress","_cancelHoverInDelayTimeout","_cancelHoverOutDelayTimeout","_cancelLongPressDelayTimeout","_cancelPressDelayTimeout","_cancelPressOutDelayTimeout","normalizeDelay","getTouchFromPressEvent","convertPointerEventToMouseEvent"],"mappings":"AAA;uBCkQ;6CDE;2BEE;wCFE;wBGE;6CHG;yBIE;qEJC;eK0G;ECuB;GDE;EEE;GFE;EGK;GHU;EIK;GJK;EKE;GLE;EME;cCE;ODK;eEC;OFK;iCGI;OHS;wBIE;+CCW;WDE;iDCU;SDE;OJC;uBME;ONiC;0BOE;OPE;4BQE;ORE;qCSE;OTS;eUE;OVK;QWO,kBX;4CYY;qDPO;eOE;SZK;4CaG;wDRQ;iBQE;SbM;4BcY;6DTW;uBSE;edM;4BeE;6DVW;uBUE;efM;GNQ;EsBM;oDCM;ODK;GtBqB;EwBM;GxB4D;EyBE;GzBQ;E0BE;gDfe;SeE;G1BM;E2BE;G3BU;qB4BE;G5BiB;E6BE;G7B4C;E8BE;G9BO;E+BE;G/BK;EgCE;GhCK;EiCE;GjCK;EkCE;GlCK;EmCE;GnCK;EoCE;GpCK;CLC;A0CE;C1CM;+B2CE;C3CU;A4CE;C5CY"}],[{"names":["","playTouchSound"],"mappings":"AAA;kBCa;GDI"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","PressabilityPerformanceEventEmitter","constructor","addListener","removeListener","emitEvent","_listeners.forEach$argument_0"],"mappings":"AAA;ACmB;ECG,gBD;EEE;GFE;EGE;GHK;EIE;4BCM,2BD;GJC;CDC"}],[{"names":["","enableHover","disableHover","isHoverEnabled"],"mappings":"AAA;wBCiC;KDK;yBEE;KFK;OGQ;CHE"}],[{"names":["","createSquare","normalizeRect"],"mappings":"AAA;OCmB;CDE;OEE;CFE"}],[{"names":["","createReactNativeComponentClass$argument_1"],"mappings":"AAA;8CCuE;oCDC;yDCM;+CDC"}],[{"names":["","module.exports.get__ColorPropType","module.exports.get__EdgeInsetsPropType","module.exports.get__ImagePropTypes","module.exports.get__PointPropType","module.exports.get__TextInputPropTypes","module.exports.get__TextPropTypes","module.exports.get__ViewPropTypes"],"mappings":"AAA;ECa;GDE;EEC;GFE;EGC;GHE;EIC;GJE;EKC;GLE;EMC;GNE;EOC;GPE"}],[{"names":["","colorPropType"],"mappings":"AAA;sBCgB;CD0D"}],[{"names":["","normalizeColor","hue2rgb","hslToRgb","hwbToRgb","call","callWithSlashSeparator","commaSeparatedCall","getMatchers","parse255","parse360","parse1","parsePercentage","normalizeKeyword"],"mappings":"AAA;ACc;CDgJ;AEE;CFiB;AGE;CHY;AIE;CJgB;AKK;CLE;AME;CNQ;AOE;CPE;AQI;CR2B;ASE;CTS;AUE;CVG;AWE;CXS;AYE;CZU;AaE;Cb4J"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","emptyFunction","emptyFunctionWithReset","module.exports","shim","getShim"],"mappings":"AAA;ACW,2BD;AEC,oCF;iBGG;ECC;GDY;EEE;GFE;CHgC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","DeprecatedStyleSheetPropType","","flattenStyle"],"mappings":"AAA;ACa;SCE;GDQ;CDC;AGE;CHmB"}],[{"names":["","deprecatedCreateStrictShapeTypeChecker","checkType","chainedCheckType"],"mappings":"AAA;ACa;ECC;GDqD;EEC;GFE;CDG"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","TouchableNativeFeedback","SelectableBackground","SelectableBackgroundBorderless","Ripple","canUseNativeForeground","_createPressabilityConfig","onPressIn","onPressMove","onPressOut","_dispatchPressedStateChange","_dispatchHotspotUpdate","render","componentDidUpdate","componentWillUnmount",""],"mappings":"AAA;ACiG;QCS;IDI;QEU;IFI;QGgB;GHY;iDIK;uDJC;EKM;iBCkB;ODQ;mBEC;OFI;kBGC;OHO;GLE;ESE;GTY;EUE;GViB;EWE;GX+F;EYE;GZE;EaE;GbE;CDC;MeM;iDfG;MeG,4Cf"}],[{"names":["","TouchableOpacity","_createPressabilityConfig","onBlur","onFocus","onPressIn","onPressOut","_setOpacityTo","_opacityActive","_opacityInactive","_getChildStyleOpacityWithDefault","render","componentDidUpdate","componentWillUnmount","React.forwardRef$argument_0"],"mappings":"AAA;ACmI;ECM;cCa;ODO;eEC;OFO;iBGG;OHS;kBIC;OJK;GDE;EMK;GNO;EOE;GPE;EQE;GRE;ESE;GTI;EUE;GVqF;EWE;GXW;EYE;GZE;CDC;oCcE;CdE"}],[{"names":["","default.get__FlatList","default.get__Image","default.get__ScrollView","default.get__SectionList","default.get__Text","default.get__View"],"mappings":"AAA;EC4B;GDE;EEC;GFE;EGC;GHE;EIC;GJE;EKC;GLE;EMC;GNE"}],[{"names":["","add","subtract","divide","multiply","modulo","diffClamp","_combineCallbacks","","maybeVectorAnim","spring","start","stop","reset","_startNativeLoop","_isUsingNativeDriver","timing","decay","sequence","onComplete","animations.forEach$argument_0","parallel","result.start","cb","result.stop","result.reset","result._startNativeLoop","result._isUsingNativeDriver","delay","stagger","animations.map$argument_0","loop","restart","forkEvent","unforkEvent","event"],"mappings":"AAA;YCiD;CDK;iBEE;CFK;eGE;CHK;iBIE;CJK;eKE;CLE;kBME;CNM;0BOE;WCK;KDG;CPI;wBSE;CTgD;eUE;gBCI;GDsB;aCG;ODE;YEE;OFE;aGE;OHE;wBIE;OJG;4BKE;OLE;CVG;egBE;gBLI;GKsB;aLI;OKE;YJE;OIE;aHE;OGE;wBFE;OEG;4BDE;OCE;ChBG;ciBE;gBNI;GMU;aNI;OME;YLE;OKE;aJE;OIE;wBHE;OGG;4BFE;OEE;CjBG;iBkBE;WPK;yBQC;ORc;KOO;UNE;KMI;WLE;yBOC;OPI;KKE;sBJE;KII;0BHE;KGE;ClBE;iBqBO;WCU;yBFM;mBGC;SHY;OEO;KDC;UGE;yBJC;OIG;KHC;WIE;yBLC;OKI;KJC;sBKE;KLI;0BME;KNE;CrBI;c4BE;C5BQ;gB6BE;mBCK;KDE;C7BE;a+BQ;WpBQ;sBqBC;OrBY;KoBU;UnBE;KmBG;WlBE;KkBI;sBjBE;KiBI;0BhBE;KgBE;C/BE;AiCE;WzBU;KyBG;CjCE;AkCE;ClCO;cmCE;CnCU"}],[{"names":["","DecayAnimation","constructor","__getNativeAnimationConfig","start","onUpdate","stop"],"mappings":"AAA;eCqC;ECW;GDQ;EEE;GFc;EGE;GHmB;EIE;GJoB;EKE;GLK;CDC"}],[{"names":["","","apis.reduce$argument_0","API.getValue","API.setWaitingForIdentifier","API.unsetWaitingForIdentifier","API.disableQueue","API.flushQueue","API.queueOperation","queue.push$argument_0","API.createAnimatedNode","API.updateAnimatedNodeConfig","API.startListeningToAnimatedNodeValue","API.stopListeningToAnimatedNodeValue","API.connectAnimatedNodes","API.disconnectAnimatedNodes","API.startAnimatingNode","API.stopAnimation","API.setAnimatedNodeValue","API.setAnimatedNodeOffset","API.flattenAnimatedNodeOffset","API.extractAnimatedNodeOffset","API.connectAnimatedNodeToView","API.disconnectAnimatedNodeFromView","API.restoreDefaultValues","API.dropAnimatedNode","API.addAnimatedEventToView","API.removeAnimatedEventFromView","setupGlobalEventEmitterListeners","RCTDeviceEventEmitter.addListener$argument_1","addWhitelistedStyleProp","addWhitelistedTransformProp","addWhitelistedInterpolationParam","isSupportedColorStyleProp","isSupportedStyleProp","isSupportedTransformProp","isSupportedInterpolationParam","validateTransform","configs.forEach$argument_0","validateStyles","validateInterpolation","generateNewNodeTag","generateNewAnimationId","assertNativeAnimatedModule","shouldUseNativeDriver","transformDataType","default.get__nativeEventEmitter"],"mappings":"AAA;MC6D;6CCwB;ODK;KDC;YGQ;GHc;2BIC;GJS;6BKC;GLO;gBMC;GNU;cOC;GPyC;kBQC;iBCe,iBD;GRI;sBUC;GVG;4BWC;GXQ;qCYC;GZG;oCaC;GbG;wBcC;GdG;2BeC;GfM;sBgBC;GhB4B;iBiBC;GjBG;wBkBC;GlBG;yBmBC;GnBG;6BoBC;GpBG;6BqBC;GrBG;6BsBC;GtBG;kCuBC;GvBU;wBwBC;GxBM;oByBC;GzBG;0B0BC;G1BY;E2BC;G3BY;A4BG;ICG;KDQ;MCK;ODQ;C5BE;A8BuE;C9BG;A+BE;C/BG;AgCE;ChCG;AiCE;CjCE;AkCE;ClCE;AmCE;CnCE;AoCE;CpCE;AqCE;kBCgB;GDM;CrCC;AuCE;CvCQ;AwCE;CxCU;AyCE;CzCE;A0CE;C1CE;A2CE;C3CE;A4CI;C5C2B;A6CE;C7Ca;E8CqB;G9CU"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","Animation","start","stop","__getNativeAnimationConfig","__debouncedOnEnd","__startNativeAnimation"],"mappings":"AAA;eCiC;ECM;YDM;EEC;GFI;EGC;GHI;EIE;GJI;EKC;GLwB;CDC"}],[{"names":["","SpringAnimation","constructor","__getNativeAnimationConfig","start","getInternalState","onUpdate","stop"],"mappings":"AAA;eCiF;ECuB;GD+D;EEE;GF0B;EGE;GHuC;EIE;GJM;EKuB;GL6F;EME;GNM;CDC"}],[{"names":["","processColor","isRgbaValue","isRgbaAnimatedValue","AnimatedColor","constructor","setValue","_withSuspendedCallbacks$argument_0","setOffset","flattenOffset","extractOffset","stopAnimation","resetAnimation","__getValue","__attach","__detach","_withSuspendedCallbacks","__callListeners","__makeNative","__getNativeConfig"],"mappings":"AAA;ACoD;CDoC;AEE;CFQ;AGE;CHQ;eIE;ECS;GDkC;EEM;iCCS;KDoB;GFiB;EIO;GJK;EKM;GLK;EMM;GNK;EOO;GPM;EQK;GRM;ESE;GTM;EUE;GVM;EWE;GXM;EYE;GZI;EaE;GbI;EcE;GdM;EeE;GfS;CJC"}],[{"names":["","flushValue","findAnimatedStyles","leaves.forEach$argument_0","_executeAsAnimatedBatch","AnimatedValue","constructor","__detach","NativeAnimatedAPI.getValue$argument_1","__getValue","setValue","_executeAsAnimatedBatch$argument_1","setOffset","flattenOffset","extractOffset","stopAnimation","resetAnimation","__onAnimatedValueUpdateReceived","interpolate","animate","animation.start$argument_1","animation.start$argument_2","stopTracking","track","_updateValue","__getNativeConfig"],"mappings":"AAA;OCkD;ECE;GDO;iBEE,qBF;CDC;AIO;CJI;eKU;ECO;GDW;EEE;wDCE;ODE;GFI;EIE;GJE;EKQ;gECU;4EDC;GLG;EOS;GPK;EQQ;GRM;ESQ;GTM;EUS;GVW;EWO;GXS;EYE;GZE;EaM;GbI;EcQ;MCU;ODI;MEC;OFM;GdI;EiBK;GjBG;EkBK;GlBK;EmBE;GnBU;EoBE;GpBM;CLC"}],[{"names":["","runAfterInteractions","Promise$argument_0","cancel","createInteractionHandle","clearInteractionHandle","setDeadline","_scheduleUpdate","_processUpdate","_addInteractionSet.forEach$argument_0","_deleteInteractionSet.forEach$argument_0"],"mappings":"AAA;ECwF;gCCS;KDU;cEI;OFE;GDE;EIK;GJM;EKK;GLM;EMU;GNE;AOc;CPQ;AQK;6BCI,qCD;gCEC,wCF;CR2B"}],[{"names":["","TaskQueue","constructor","enqueue","enqueueTasks","tasks.forEach$argument_0","cancelTasks","_queueStack.map$argument_0","queue.tasks.filter$argument_0","_queueStack.map.filter$argument_0","hasTasksToProcess","processNext","_getCurrentQueue","_genPromise","task.gen.then$argument_0","task.gen.then._catch$argument_0","setTimeout$argument_0"],"mappings":"AAA;AC2C;ECQ;GDG;EEO;GFE;EGE;kBCC,0BD;GHC;EKE;WCG;kCCE,0CD;QDC;cGC,mDH;GLC;ESY;GTE;EUK;GV0B;EWS;GXkB;EYE;YCY;ODQ;aEC;mBCC;SDG;OFC;GZC;CDC"}],[{"names":["","createNumericInterpolation","","interpolate","mapStringToNumericComponents","createStringInterpolation","outputRange.every$argument_0","output.components.every$argument_0","outputRange.map$argument_0","output.components.filter$argument_0","numericComponents._.map$argument_0","numericComponents.map$argument_0","interpolations.map$argument_0","outputRange._.components.map$argument_0","findRange","checkValidRanges","checkValidInputRange","checkInfiniteRange","AnimatedInterpolation","constructor","_getInterpolation","__makeNative","__getValue","__attach","__detach","__getNativeConfig"],"mappings":"AAA;ACuC;SCsB;GDiB;CDC;AGE;CHkE;AIK;CJsC;AKU;wBCS,oCD;QCM,yDD;wBCK;UCE;yEDE;SDC;oBGO;mCCK,0BD,CH;kDKE;yCCG,2BD;MLC;WHG;wCUC,qCV;aWG,8CX;KGE;WHE;wCUC;OVK;KGE;CLE;AcE;CdQ;AeE;CfgB;AgBE;ChBO;AiBE;CjBe;ekBE;ECO;GDY;EEE;GFU;EGE;GHG;EIE;GJO;EfE;GeI;EKE;GLE;EME;GNG;EOE;+DjBU;OiBQ;GPa;ClBC"}],[{"names":["","step0","step1","linear","ease","quad","cubic","poly","","sin","circle","exp","elastic","back","bounce","bezier","_in","out","inOut"],"mappings":"AAA;EC+D;GDE;EEK;GFE;EGQ;GHE;EIQ;GJK;EKQ;GLE;EMQ;GNE;EOQ;WCC,6BD;GPC;ESO;GTE;EUO;GVE;EWO;GXE;EYY;WJE,mEI;GZC;EaQ;WLC,8BK;GbC;EcO;GdiB;EeS;GfQ;EgBK;GhBE;EiBK;WTC,sBS;GjBC;EkBO;WVC;KUK;GlBC"}],[{"names":["","A","B","C","calcBezier","getSlope","binarySubdivide","newtonRaphsonIterate","bezier","getTForX","BezierEasing"],"mappings":"AAA;AC6B;CDE;AEC;CFE;AGC;CHE;AIG;CJE;AKG;CLE;AME;CNyB;AOE;CPgB;eQE;ECoB;GDkC;SEE;GFY;CRC"}],[{"names":["","AnimatedWithChildren","constructor","__makeNative","__addChild","__removeChild","__getChildren","__callListeners"],"mappings":"AAA;eCiB;ECG;GDG;EEE;GFY;EGE;GHa;EIE;GJgB;EKE;GLE;EME;GNU;CDC"}],[{"names":["","AnimatedNode","__attach","__detach","__getValue","__getAnimatedValue","__addChild","__removeChild","__getChildren","constructor","__makeNative","addListener","removeListener","removeAllListeners","hasListeners","_startListeningToNativeValueUpdates","NativeAnimatedHelper.nativeEventEmitter.addListener$argument_1","__onAnimatedValueUpdateReceived","__callListeners","_stopListeningForNativeValueUpdates","__getNativeTag","__getNativeConfig","toJSON","__getPlatformConfig","__setPlatformConfig"],"mappings":"AAA;eCyB;ECI,mBD;EEC;GFM;EGC,oBH;EIC;GJE;EKC,kCL;EMC,qCN;EOC;GPE;EQO;GRE;ESE;GTS;EUS;GVO;EWQ;GXK;EYO;GZK;EaE;GbE;EcE;QCiB;SDK;GdE;EgBE;GhBE;EiBE;GjBI;EkBE;GlBQ;EmBE;GnBqB;EoBC;GpBI;EqBE;GrBE;EsBE;GtBE;EuBC;GvBE;CDC"}],[{"names":["","stiffnessFromOrigamiValue","dampingFromOrigamiValue","fromOrigamiTensionAndFriction","fromBouncinessAndSpeed","normalize","projectNormal","linearInterpolation","quadraticOutInterpolation","b3Friction1","b3Friction2","b3Friction3","b3Nobounce"],"mappings":"AAA;ACkB;CDE;AEE;CFE;OGE;CHQ;OIE;ECI;GDE;EEE;GFE;EGE;GHE;EIE;GJE;EKE;GLE;EME;GNE;EOE;GPO;EQE;GRQ;CJgB"}],[{"names":["","easeInOut","TimingAnimation","constructor","__getNativeAnimationConfig","start","onUpdate","stop"],"mappings":"AAA;ACmD;CDM;eEE;ECa;GDU;EEE;GFe;EGE;GHoC;EIE;GJuB;EKE;GLM;CFC"}],[{"names":["","createAnimatedComponent","React.forwardRef$argument_0"],"mappings":"AAA;eC+B;0BCG;GDyB;CDC"}],[{"names":["","useMergeRefs",""],"mappings":"AAA;eC0B;ICI;KDU;CDG"}],[{"names":["","useAnimatedProps","useReducer$argument_0","useMemo$argument_0","AnimatedProps$argument_1","refEffect","onUpdateRef.current","","reduceAnimatedProps","useAnimatedPropsLifecycle","useEffect$argument_0","useLayoutEffect$argument_0","getEventTarget","isFabricInstance"],"mappings":"AAA;eCiC;sDCG,kBD;IEQ,+BC,6BD,CF;IImB;4BCM;ODsB;aEa;OFM;KJC;CDM;AQE;CRS;ASS;YCI;GDK;kBEE;WJE;KIE;GFC;kBEE;WJS;KIO;GFC;CTC;AYE;CZM;AaG;CbgB"}],[{"names":["","useRefEffect",""],"mappings":"AAA;eC4B;ICK;KDQ;CDG"}],[{"names":["","AnimatedProps","constructor","__getValue","__getAnimatedValue","__attach","__detach","update","__makeNative","setNativeView","__connectAnimatedView","__disconnectAnimatedView","__restoreDefaultValues","__getNativeConfig"],"mappings":"AAA;eCqB;ECK;GDU;EEE;GFc;EGE;GHS;EIE;GJO;EKE;GLW;EME;GNE;EOE;GPoB;EQE;GRQ;ESE;GTW;EUE;GVW;EWE;GXQ;EYE;GZa;CDC"}],[{"names":["","createAnimatedStyle","createStyleWithAnimatedTransform","AnimatedStyle","constructor","_walkStyleAndGetValues","__getValue","_walkStyleAndGetAnimatedValues","__getAnimatedValue","__attach","__detach","__makeNative","__getNativeConfig"],"mappings":"AAA;ACqB;CDe;AEE;CFW;eGE;ECI;GDQ;EEG;GFc;EGE;GHM;EIG;GJY;EKE;GLE;EME;GNO;EOE;GPQ;EQE;GRQ;ESE;GTgB;CHC"}],[{"names":["","AnimatedTransform","constructor","__makeNative","_transforms.forEach$argument_0","__getValue","_get$argument_0","__getAnimatedValue","__attach","__detach","__getNativeConfig","_get","_transforms.map$argument_0","value.map$argument_0"],"mappings":"AAA;eCkB;ECG;GDG;EEE;6BCC;KDO;GFE;EIE;qBCC,yCD;GJC;EME;qBDC,iDC;GNC;EOE;6BJC;KIO;GPC;EQE;6BLC;KKO;GRE;ESE;6BNG;KMiB;GTO;EUE;gCCC;kCCO;WDM;KDe;GVC;CDC"}],[{"names":["","attachNativeEvent","traverse","eventMappings.forEach$argument_0","detach","validateMapping","validate","argMapping.forEach$argument_0","AnimatedEvent","constructor","__addListener","__removeListener","_listeners.filter$argument_0","__attach","__detach","__getHandler","","_argMapping.forEach$argument_0","_callListeners","_listeners.forEach$argument_0"],"mappings":"AAA;OC8B;mBCU;GDgB;0BEY;KFM;IGI;8BDE;SCO;KHE;CDE;AKE;mBCC;GDwC;qBEM;GFE;CLC;OQE;ECO;GDc;EEE;GFE;EGE;6CCC,iCD;GHC;EKE;GLY;EME;GNO;EOE;eCI;SDM;WCO;uBdM;OcqB;+BCC;ODE;KDG;GPC;mBUE;4BCC,6BD;GVC;CRC"}],[{"names":["","AnimatedValueXY","constructor","setValue","setOffset","flattenOffset","extractOffset","__getValue","resetAnimation","stopAnimation","addListener","jointCallback","removeListener","removeAllListeners","getLayout","getTranslateTransform","__attach","__detach","__makeNative"],"mappings":"AAA;eCmC;ECY;GD0B;EEQ;GFG;EGS;GHG;EIQ;GJG;EKQ;GLG;EME;GNS;EOO;GPU;EQS;GRU;ESW;0BCE;KDE;GTM;EWQ;GXI;EYO;GZI;EaO;GbK;EcO;GdE;EeE;GfI;EgBE;GhBI;EiBE;GjBI;CDC"}],[{"names":["","isPublicInstance","isLegacyFabricInstance"],"mappings":"AAA;OCkB;CDQ;AEE;CFS"}],[{"names":["","AnimatedAddition","constructor","__makeNative","__getValue","interpolate","__attach","__detach","__getNativeConfig"],"mappings":"AAA;eCoB;ECI;GDI;EEE;GFI;EGE;GHE;EIE;GJI;EKE;GLG;EME;GNI;EOE;GPK;CDC"}],[{"names":["","AnimatedDiffClamp","constructor","__makeNative","interpolate","__getValue","__attach","__detach","__getNativeConfig"],"mappings":"AAA;eCmB;ECO;GDO;EEE;GFG;EGE;GHI;EIE;GJM;EKE;GLE;EME;GNG;EOE;GPO;CDC"}],[{"names":["","AnimatedDivision","constructor","__makeNative","__getValue","interpolate","__attach","__detach","__getNativeConfig"],"mappings":"AAA;eCoB;ECK;GDO;EEE;GFI;EGE;GHc;EIE;GJI;EKE;GLG;EME;GNI;EOE;GPK;CDC"}],[{"names":["","AnimatedModulo","constructor","__makeNative","__getValue","interpolate","__attach","__detach","__getNativeConfig"],"mappings":"AAA;eCmB;ECI;GDI;EEE;GFG;EGE;GHI;EIE;GJI;EKE;GLE;EME;GNG;EOE;GPM;CDC"}],[{"names":["","AnimatedMultiplication","constructor","__makeNative","__getValue","interpolate","__attach","__detach","__getNativeConfig"],"mappings":"AAA;eCoB;ECI;GDI;EEE;GFI;EGE;GHE;EIE;GJI;EKC;GLG;EME;GNI;EOE;GPK;CDC"}],[{"names":["","AnimatedSubtraction","constructor","__makeNative","__getValue","interpolate","__attach","__detach","__getNativeConfig"],"mappings":"AAA;eCoB;ECI;GDI;EEE;GFI;EGE;GHE;EIE;GJI;EKE;GLG;EME;GNI;EOE;GPK;CDC"}],[{"names":["","AnimatedTracking","constructor","__makeNative","__getValue","__attach","__detach","update","__getNativeConfig"],"mappings":"AAA;eCmB;ECQ;GDgB;EEE;GFK;EGE;GHE;EIE;GJW;EKE;GLG;EME;GNQ;EOE;GPc;CDC"}],[{"names":["","mockAnimationStart","","emptyAnimation.start","emptyAnimation.stop","emptyAnimation.reset","emptyAnimation._startNativeLoop","emptyAnimation._isUsingNativeDriver","mockCompositeAnimation","mockAnimationStart$argument_0","animations.forEach$argument_0","spring","timing","decay","sequence","parallel","delay","stagger","loop"],"mappings":"AAA;ACsC;SCG;GDmB;CDC;SGY,QH;QIC,QJ;SKC,QL;oBMC,QN;wBOC;GPE;+BQG;4BCI;uBCC,8BD;GDE;ERC;eWE;8BFO;KEG;CXE;eYE;8BHO;KGG;CZE;caE;CbK;iBcE;CdI;iBeG;CfK;cgBE;ChBE;gBiBE;CjBK;akBQ;ClBM"}],[{"names":["","React.forwardRef$argument_0"],"mappings":"AAA;ECoB;qEDK"}],[{"names":["","removeClippedSubviewsOrDefault","numColumnsOrDefault","isArrayLike","FlatList","scrollToEnd","scrollToIndex","scrollToItem","scrollToOffset","recordInteraction","flashScrollIndicators","getScrollResponder","getNativeScrollRef","getScrollableNode","setNativeProps","constructor","props.viewabilityConfigCallbackPairs.map$argument_0","componentDidUpdate","_captureRef","_checkProps","_getItem","_getItemCount","_keyExtractor","items.map$argument_0","_pushMultiColumnViewable","v.item.forEach$argument_0","_createOnViewableItemsChanged","","info.viewableItems.forEach$argument_0","info.changed.forEach$argument_0","_renderer","render","renderProp","item.map$argument_0"],"mappings":"AAA;AC+J;CDE;AEG;CFE;AGE;CHG;AIqI;ECK;GDI;EEU;GFU;EGQ;GHU;EIO;GJI;EKO;GLI;EMO;GNI;EOK;GPI;EQK;GRQ;ESE;GTI;EUE;GVI;EWE;sDCK;UDK;GXY;EaG;GbqB;gBcK;GdE;EeG;Gf6B;agBE;GhBkB;kBiBE;GjBa;kBkBE;aCY;4EDC;GlBO;EoBE;mBCG;KDI;GpBC;EsBE;WCQ;qCCU;2DDC;+BEE,8CF;KDM;GtBC;c0BE;mBCU;KDY;uBEE;sBCS;aDU;KFM;G1BK;E2BK;G3BgC;CJC"}],[{"names":["","ponyfill","isEqual","areInputsEqual","memoizeOne","memoized"],"mappings":"AAA;ICG;KDE;AEC;CFQ;AGC;CHU;AIE;ICM;KDa;CJE"}],[{"names":["","module.exports.get__VirtualizedList","module.exports.get__VirtualizedSectionList","module.exports.get__VirtualizedListContextResetter","module.exports.get__ViewabilityHelper","module.exports.get__FillRateHelper"],"mappings":"AAA;ECyC;GDE;EEC;GFE;EGC;GHG;EIC;GJE;EKC;GLE"}],[{"names":["","elementsThatOverlapOffsets","newRangeCount","computeWindowedRenderLimits","keyExtractor"],"mappings":"AAA;OCmB;CD4C;OEQ;CFqB;OGQ;CHmJ;OIE;CJQ"}],[{"names":["","horizontalOrDefault","initialNumToRenderOrDefault","maxToRenderPerBatchOrDefault","onStartReachedThresholdOrDefault","onEndReachedThresholdOrDefault","getScrollingThreshold","scrollEventThrottleOrDefault","windowSizeOrDefault","findLastWhere","VirtualizedList","scrollToEnd","scrollToIndex","scrollToItem","scrollToOffset","recordInteraction","_nestedChildLists.forEach$argument_0","_viewabilityTuples.forEach$argument_0","flashScrollIndicators","getScrollResponder","getScrollableNode","getScrollRef","setNativeProps","_getCellKey","_getScrollMetrics","hasMore","_getOutermostParentListRef","_registerAsNestedChild","_unregisterAsNestedChild","constructor","props.viewabilityConfigCallbackPairs.map$argument_0","_checkProps","_findItemIndexWithKey","_getItemKey","_createRenderMask","_initialRenderRegion","_ensureClosestStickyHeader","_adjustCellsAroundViewport","_findFirstChildWithMore","_nestedChildLists.anyInCell$argument_1","componentDidMount","componentWillUnmount","getDerivedStateFromProps","_pushCells","CellRenderer.props.onCellFocusCapture","CellRenderer.props.ref","_constrainToItemCount","_onUpdateSeparators","keys.forEach$argument_0","_isNestedWithSameOrientation","_getSpacerKey","_keyExtractor","render","React.cloneElement$argument_1.onLayout","findLastWhere$argument_1","ScrollView.Context.Consumer.props.children","componentDidUpdate","_captureScrollRef","_computeBlankness","_defaultRenderScrollComponent","_onCellLayout","_onCellFocusCapture","_onCellUnmount","_triggerRemeasureForChildListsInCell","_nestedChildLists.forEachInCell$argument_1","measureLayoutRelativeToContainingList","_scrollRef.measureLayout$argument_1","_scrollRef.measureLayout$argument_2","_onLayout","_onLayoutEmpty","_getFooterCellKey","_onLayoutFooter","_onLayoutHeader","_renderDebugOverlay","framesInLayout.map$argument_0","_selectLength","_selectOffset","_maybeCallOnEdgeReached","_onContentSizeChange","_convertParentScrollMetrics","_onScroll","setState$argument_0","_scheduleCellsToRenderUpdate","_onScrollBeginDrag","_onScrollEndDrag","_onMomentumScrollBegin","_onMomentumScrollEnd","_updateCellsToRender","_createViewToken","_getOffsetApprox","__getFrameMetricsApprox","_getFrameMetrics","_getNonViewportRenderRegions","_updateViewableItems"],"mappings":"AAA;ACuF;CDE;AEG;CFE;AGG;CHE;AIG;CJE;AKG;CLE;AMG;CNE;AOG;CPE;AQG;CRE;ASE;CTW;AU+B;ECI;GDiC;EEG;GFqE;EGI;GHgB;EIY;GJqB;EKE;mCCC;KDE;oCEC;KFE;GLE;EQE;GRM;ESO;GTI;EUE;GVM;EWE;GXQ;EYE;GZI;EaE;GbE;sBcG;GdE;EeE;GfE;+BgBG;GhBM;2BiBE;GjBQ;6BkBE;GlBI;EmBI;QCY;UDG;GnBiC;EqBE;GrB8C;EsBE;GtBmB;EuBE;GvBW;EwBE;GxB0C;EyBE;GzBkB;E0BE;G1Bc;E2BE;G3ByE;E4BE;0DCK;6BDC;G5BQ;E8BE;G9BO;E+BE;oCxBK;KwBE;G/BE;EgCE;GhC8D;EiCE;8BCmD,kCD;eEE;WFE;GjCS;EoCE;GpCe;wBqCE;iBCC;KDG;GrCC;EuCE;GvCM;kBwCE;mCxCC;EyCE;GzCoB;E0CE;sBCkE;aDK;sDEc,eF;WGmJ;WHkB;G1Cc;E8CE;sCvCK;OuCE;G9Ce;sB+CiD;G/CE;EgDE;GhDM;kCiDI;GjDoC;kBkDE;GlDiC;EmDE;GnDG;mBoDE;GpDM;EqDE;kDCC;KDE;GrDC;EuDE;QCW;2ClDoB;akDE;SDE;QEC;SFK;GvDQ;c0DE;G1Da;mB2DE;G3DE;E4DE;G5DE;oB6DE;G7DG;oB8DE;G9DE;E+DG;4BC6B;SDY;G/DuB;EiEE;GjEU;EkEE;GlEQ;EmEE;GnEgF;yBoEE;GpE6B;gCqEK;GrEkB;csEE;mChEC;KgEE;oBCwD;QDE;GtEY;EwEE;GxEuD;uByEE;mCnEC;KmEE;oClEC;KkEE;GzEG;qB0EE;mCpEC;KoEE;G1EO;2B2EE;mCrEC;KqEE;G3EE;yB4EE;mCtEC;KsEE;G5EI;yB6EE;kBNG;KMqB;G7EC;qB8EE;G9Ec;qB+EM;G/EW;MgFS;GhFoB;qBiFE;GjFyB;iCkFE;GlF2D;EmFE;oC5ES;K4EU;GnFC;CVC"}],[{"names":["","Batchinator","constructor","dispose","schedule","setTimeout$argument_0","InteractionManager.runAfterInteractions$argument_0","_taskHandle.cancel"],"mappings":"AAA;ACoC;ECI;GDG;EEO;GFQ;EGC;qCCI;iECC;ODK;KDC;gCGC,iCH;GHC;CDC"}],[{"names":["","clamp"],"mappings":"AAA;ACY;CDQ"}],[{"names":["","infoLog"],"mappings":"AAA;ACe;CDE"}],[{"names":["","ChildListCollection","add","remove","forEach","forEachInCell","anyInCell","size"],"mappings":"AAA;eCY;ECI;GDW;EEE;GFY;EGE;GHM;EIE;GJK;EKE;GLQ;EME;GNE;CDC"}],[{"names":["","Info","FillRateHelper","addListener","remove","_listeners.filter$argument_0","setSampleRate","setMinSampleCount","constructor","activate","deactivateAndFlush","_listeners.forEach$argument_0","computeBlankness","enabled","_resetData"],"mappings":"AAA;ACgB;CDW;AEuB;ECQ;cCS;uCCC,iCD;ODC;GDE;EIE;GJE;EKE;GLE;EME;GNM;EOE;GPK;EQE;uBCuC,0BD;GRE;EUE;GVmG;EWE;GXE;EYE;GZK;CFC"}],[{"names":["","StateSafePureComponent","constructor","setState","setState$argument_0","_installSetStateHooks","Object.defineProperty$argument_2.get","Object.defineProperty$argument_2.set"],"mappings":"AAA;eCsB;ECM;GDG;EEE;qBCK;ODW;GFI;EIE;MCK;ODM;MEC;OFE;MCG;ODM;MEC;OFE;GJE;CDC"}],[{"names":["","ViewabilityHelper","constructor","dispose","computeViewableItems","onUpdate","_viewableIndices.every$argument_0","setTimeout$argument_0","resetViewableIndices","recordInteraction","_onUpdateSync","viewableIndicesToCheck.filter$argument_0","viewableIndicesToCheck.map$argument_0","_isViewable","_getPixelsVisible","_isEntirelyVisible"],"mappings":"AAA;AC4E;ECO;GDI;EEK;GFK;EGK;GHuE;EIM;kCCiD,oCD;2CEQ;OFW;GJa;EOK;GPE;EQK;GRE;ESE;2DCe;wCDC;iCEI;OFG;GTsB;CDC;AaE;CbgB;AcE;CdO;AeE;CfM"}],[{"names":["","CellRenderer","CellRenderer.getDerivedStateFromProps","CellRenderer#_separators.highlight","CellRenderer#_separators.unhighlight","CellRenderer#_separators.updateProps","CellRenderer#updateSeparatorProps","setState$argument_0","CellRenderer#componentWillUnmount","CellRenderer#_onLayout","CellRenderer#_renderElement","CellRenderer#render"],"mappings":"AAA;eCuD;ECW;GDU;eEM;KFK;iBGC;KHK;iBIC;KJS;EKG;kBCC;MDE;GLC;EOE;GPE;cQE;GRO;ESE;GTuC;EUE;GViE;CDC"}],[{"names":["","VirtualizedListContextResetter","VirtualizedListContextProvider","useMemo$argument_0","VirtualizedListCellContextProvider"],"mappings":"AAA;OC+C;CDU;OEK;ICS;MDO;CFc;OIK;IDU,8DC;CJQ"}],[{"names":["","CellRenderMask","constructor","enumerateRegions","addCells","numCells","equals","_regions.every$argument_0","_findRegion"],"mappings":"AAA;OCkB;ECI;GDmB;EEE;GFE;EGE;GHqE;EIE;GJE;EKE;QCK;wDDG;GLG;EOE;GPkB;CDC"}],[{"names":["","VirtualizedSectionList","scrollToLocation","getListRef","render","VirtualizedList.props.getItem","VirtualizedList.props.getItemCount","_getItem","_keyExtractor","_subExtractor","_convertViewable","_onViewableItemsChanged","_renderItem","","_updatePropsFor","_updateHighlightFor","_setUpdateHighlightFor","_setUpdatePropsFor","_getSeparatorComponent","_captureRef","ItemWithSeparator","React.useEffect$argument_0","separators.highlight","separators.unhighlight","separators.updateProps"],"mappings":"AAA;ACgI;ECG;GDuB;EEE;GFE;EGE;iBCsC;oDDC;sBEE,eF;GHS;EME;GN0B;kBOG;GPG;EQE;GRsD;qBSE;GToB;4BUE;GViB;IWG;ICE;KZiD;oBaE;GbK;wBcE;GdK;2BeE;GfU;uBgBE;GhBM;EiBE;GjBsB;gBkBK;GlBE;CDC;AoBgC;kBCqC;WRK;KQG;GDC;eEQ;KFM;iBGC;KHM;iBIC;KJc;CpB6B"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","generateRequestId","getSize","NativeImageLoaderAndroid.getSize.then$argument_0","","getSizeWithHeaders","NativeImageLoaderAndroid.getSizeWithHeaders.then$argument_0","prefetchWithMetadata","prefetch","abortPrefetch","queryCache","BaseImage","ImageAnalyticsTagContext.Consumer.props.children","TextAncestor.Consumer.props.children"],"mappings":"AAA;AC4B;CDE;AEO;UCM;KDE;QEG;SFE;CFE;AKQ;UCO;KDE;QDG;SCE;CLE;AOE;CPQ;AQE;CRI;ASE;CTE;AUO;CVI;kBWqB;OCgF;aCU;aDmB;ODG;CXG"}],[{"names":["asyncGeneratorStep","","_asyncToGenerator","","Promise$argument_0","_next","_throw"],"mappings":"AAA;CCa;ACC;SCC;uBCG;MCE;ODE;MEC;OFE;KDE;GDC;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;ICoJ,4BD"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;IC+C,4BD"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","getImageSourcesFromImageProps","srcSetList.forEach$argument_0"],"mappings":"AAA;OCqB;uBCqB;KDe;CDsB"}],[{"names":["","convertObjectFitToResizeMode"],"mappings":"AAA;OCY;CDQ"}],[{"names":["","React.forwardRef$argument_0","useMemo$argument_0"],"mappings":"AAA;mBCgC;GD4B;ECG;cCa;ODO;GDuC"}],[{"names":["","RefreshControl","componentDidMount","componentDidUpdate","render","_onRefresh","_setNativeRef"],"mappings":"AAA;AC2H;ECO;GDE;EEE;GFuB;EGE;GHqB;eIE;GJS;kBKE;GLO;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","ScrollView","constructor","componentDidMount","componentDidUpdate","componentWillUnmount","getScrollResponder","getScrollableNode","getInnerViewNode","getInnerViewRef","getNativeScrollRef","scrollTo","scrollToEnd","flashScrollIndicators","scrollResponderScrollNativeHandleToKeyboard","scrollResponderZoomTo","_textInputFocusError","_inputMeasureAndScrollToKeyboard","scrollTextInputIntoVisibleRect","setTimeout$argument_0","_getKeyForIndex","_updateAnimatedNodeAttachment","_setStickyHeaderRef","_onStickyHeaderLayout","_handleScroll","_handleLayout","_handleContentOnLayout","createRefForwarder$argument_0","scrollResponderKeyboardWillShow","scrollResponderKeyboardWillHide","scrollResponderKeyboardDidShow","scrollResponderKeyboardDidHide","_handleMomentumScrollBegin","_handleMomentumScrollEnd","_handleScrollBeginDrag","_handleScrollEndDrag","_isAnimating","_handleResponderGrant","_handleResponderReject","_handleResponderRelease","_handleResponderTerminationRequest","_handleScrollShouldSetResponder","_handleStartShouldSetResponder","_handleStartShouldSetResponderCapture","_keyboardIsDismissible","_softKeyboardIsDetached","_keyboardEventsAreUnreliable","_handleTouchEnd","_handleTouchCancel","_handleTouchStart","_handleTouchMove","render","filter$argument_0","childArray.map$argument_0","StickyHeaderComponent.props.ref","StickyHeaderComponent.props.onLayout","createRefForwarder","memoize$argument_0","","Wrapper"],"mappings":"AAA;AC+sB;ECG;GDO;EEkC;GFiC;EGE;GHY;EIE;GJiB;kDKQ;GLG;qCME;GNE;oCOE;GPE;oDQE;GRE;8DSE;GTE;cUwB;GVmC;gEWU;GXS;sCYO;GZK;cagB;Gb4B;cciB;Gd4B;EeE;GfE;cgBiB;2CCG;KDkB;iBEO;OFE;GhBI;EmBE;GnBG;EoBE;GpBe;EqBE;GrBS;EsBE;GtBwB;kBuBE;GvBkB;kBwBE;GxBO;2ByBE;GzBI;M0BI,4D1B;I0BO;K1B4B;gE2BgC;G3BK;gE4BE;G5BK;+D6BE;G7BK;+D8BE;G9BK;yD+BK;G/BG;uDgCK;GhCI;qDiCS;GjCW;mDkCK;GlCc;gCmCO;GnCQ;mDoCK;GpCI;uCqCY,QrC;qDsCK;GtC4B;sDuCiB;GvCE;mDwCK;GxCM;+DyC2B;GzCiB;sE0Ca;G1CgD;0C2CK;G3CmB;2C4CO;G5CE;gD6CE;G7CI;6C8CO;G9CuB;gD+CO;G/CG;+CgDa;GhDG;8CiDa;GjDE;EkDE;QCc,0CD;gCEyB;mBCW,yCD;wBEI,sDF;OFW;GlD2I;CDC;AwDkC;8BCI;aCC;ODc;KDC;CxDM;A2DI;C3DE"}],[{"names":["","setGlobalOptions","setContext","beginScroll","endScroll"],"mappings":"AAA;oBCmC;GDmB;cEM;GFE;EGM;GHE;EIM;GJE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","splitLayoutProps"],"mappings":"AAA;eCY;CD0D"}],[{"names":["","dismissKeyboard"],"mappings":"AAA;ACgB;CDE"}],[{"names":["","Keyboard","constructor","addListener$argument_1","addListener","removeAllListeners","dismiss","isVisible","metrics","scheduleLayoutAnimation"],"mappings":"AAA;ACyG;ECU;wCCC;KDE;wCCC;KDE;GDC;EG0B;GHM;EIO;GJE;EKK;GLE;EMK;GNE;EOK;GPE;EQM;GRW;CDC"}],[{"names":["","setEnabled","configureNext","onAnimationComplete","","create","checkConfig"],"mappings":"AAA;ACkC;CDE;AEU;8BCmB;GDO;QEc,cF;6BEW,cF;QEE,cF;CFG;AKE;CLW;EMqE;GNE"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;ICkE,4BD"}],[{"names":["","processDecelerationRate"],"mappings":"AAA;ACY;CDe"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;IC4B,4BD"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;IC0K,4BD"}],[{"names":["","ScrollViewStickyHeader","callbackRef","ref.setNextHeaderY","useMemo$argument_0","useState$argument_0","useEffect$argument_0","animatedValueListener","setTimeout$argument_0","","_onLayout"],"mappings":"AAA;qBC2C;sBCiB;yBCI;KDE;GDE;IGM;cHgB;IIK;KJY;YKM;GLI;IMiB;kCCW;ODI;KNC;YKI;WGsF;KHO;GLC;oBSE;GTU;CDkC"}],[{"names":["","React.forwardRef$argument_0"],"mappings":"AAA;ECqB;wEDQ"}],[{"names":["","SectionList","scrollToLocation","recordInteraction","flashScrollIndicators","getScrollResponder","getScrollableNode","setNativeProps","render","VirtualizedSectionList.props.getItemCount","VirtualizedSectionList.props.getItem","_captureRef"],"mappings":"AAA;eC6K;ECe;GDI;EEO;GFG;EGO;GHG;EIK;GJK;EKE;GLK;EME;GNK;EOE;sBCa,qBD;iBEE,8BF;GPG;gBUK;GVE;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","DrawerLayoutAndroid","get__positions","render","_onDrawerSlide","_onDrawerOpen","_onDrawerClose","_onDrawerStateChanged","openDrawer","closeDrawer","blur","focus","measure","measureInWindow","measureLayout","setNativeProps"],"mappings":"AAA;AC4J;ECC;GDM;EEU;GF6D;mBGI;GHQ;kBIE;GJI;mBKE;GLI;0BMI;GNM;EOK;GPE;EQK;GRE;ESyC;GTE;EUE;GVE;EWE;GXE;EYE;GZE;EaE;GbU;EcE;GdE;CDC"}],[{"names":["","mergePropsStack","propsStack.reduce$argument_0","createStackEntry","StatusBar","setHidden","setBarStyle","setNetworkActivityIndicatorVisible","setBackgroundColor","setTranslucent","pushStackEntry","popStackEntry","replaceStackEntry","componentDidMount","componentWillUnmount","componentDidUpdate","_updatePropsStack","setImmediate$argument_0","render"],"mappings":"AAA;AC8G;ICK;KDO;CDG;AGM;CH6B;AIgE;EC4C;GDQ;EEO;GFQ;EGM;GHS;EIO;GJqB;EKM;GLO;EMQ;GNK;EOO;GPM;EQQ;GRQ;ESK;GTM;EUE;GVI;EWE;GXK;6BYK;8CCG;KDqE;GZC;EcE;GdE;CJC"}],[{"names":["","NativeStatusBarManager.getConstants","NativeStatusBarManager.setColor","NativeStatusBarManager.setTranslucent","NativeStatusBarManager.setStyle","NativeStatusBarManager.setHidden"],"mappings":"AAA;ECmC;GDQ;EEE;GFE;EGE;GHE;EIO;GJE;EKE;GLE"}],[{"names":["","NativeStatusBarManager.getConstants","NativeStatusBarManager.getHeight","NativeStatusBarManager.setNetworkActivityIndicatorVisible","NativeStatusBarManager.addListener","NativeStatusBarManager.removeListeners","NativeStatusBarManager.setStyle","NativeStatusBarManager.setHidden"],"mappings":"AAA;EC2C;GDQ;EEG;GFE;EGE;GHE;EIE;GJE;EKE;GLE;EMQ;GNE;EOK;GPE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","ImageBackground","setNativeProps","_captureRef","render"],"mappings":"AAA;AC8C;ECC;GDM;gBEI;GFS;EGE;GHyC;CDC"}],[{"names":["","InputAccessoryView","render"],"mappings":"AAA;ACuF;ECC;GDkB;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","KeyboardAvoidingView","constructor","_relativeKeyboardHeight","_onKeyboardChange","_onLayout","_updateBottomIfNecessary","componentDidMount","componentWillUnmount","_subscriptions.forEach$argument_0","render"],"mappings":"AAA;AC6D;ECO;GDI;EEE;GF+B;sBGE;GHI;cIE;GJe;6BKE;GLwB;EME;GNW;EOE;gCCC;KDE;GPC;ESE;GT0E;CDC"}],[{"names":["","confirmProps","Modal","constructor","componentDidMount","ModalEventEmitter.addListener$argument_1","componentWillUnmount","componentDidUpdate","render","RCTModalHostView.props.onDismiss","_shouldSetResponder"],"mappings":"AAA;ACiK;CDY;AEE;ECW;GDM;EEE;QCK;SDI;GFG;EIE;GJI;EKE;GLI;EME;mBCkC;SDI;GNqB;EQG;GRE;CFC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","getI18nManagerConstants","module.exports.getConstants","module.exports.allowRTL","module.exports.forceRTL","module.exports.swapLeftAndRightInRTL"],"mappings":"AAA;ACkB;CDW;gBEG;GFM;YGE;GHM;YIE;GJM;yBKE;GLM"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","Pressable","useImperativeHandle$argument_1","useMemo$argument_0","onPressIn","onPressOut","usePressState"],"mappings":"AAA;AC0M;oCCmC,qBD;IE2C;MCc;ODQ;MEE;OFQ;MFC;CDkC;AME;CNG"}],[{"names":["","useAndroidRippleForView","useMemo$argument_0","onPressIn","onPressMove","onPressOut"],"mappings":"AAA;eCuC;iBCa;QCwB;SDU;QEC;SFS;QGC;SHK;GDI;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","returnsFalse","returnsTrue","Switch","handleChange","React.useLayoutEffect$argument_0"],"mappings":"AAA;qBCwF,WD;oBEC,UF;qBGiD;uBCuB;GDM;wBEE;GFiB;CHmE"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","emptyFunctionThatReturnsTrue","InternalTextInput","useLayoutEffect$argument_0","","setLocalRef","Object.assign$argument_1.clear","Object.assign$argument_1.isFocused","Object.assign$argument_1.getNativeRef","Object.assign$argument_1.setSelection","_onChange","_onChangeSync","_onSelectionChange","_onFocus","_onBlur","_onScroll","React.useMemo$argument_0","onPress","TextInput"],"mappings":"AAA;qCCi7B,UD;AEiH;kBCuD;GD+B;kBCY;aCM;ODM;GDE;IGG;UC4B;WDU;UEE;WFE;UGC;WHE;UIC;WJU;KHG;oBQS;GRiB;wBSE;GTkB;6BUE;GVa;mBWE;GXK;kBYE;GZK;oBaE;GbE;IckC;eCC;ODM;MdK;CF+I;qBkBuF;ClBkE"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;ICoC,4BD"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","NativeComponentRegistry.get$argument_1"],"mappings":"AAA;ICwC,4BD"}],[{"names":["","extractSingleTouch","TouchableMixin.componentDidMount","TouchableMixin.componentWillUnmount","TouchableMixin.touchableGetInitialState","TouchableMixin.touchableHandleResponderTerminationRequest","TouchableMixin.touchableHandleStartShouldSetResponder","TouchableMixin.touchableLongPressCancelsPress","TouchableMixin.touchableHandleResponderGrant","TouchableMixin.touchableHandleResponderRelease","TouchableMixin.touchableHandleResponderTerminate","TouchableMixin.touchableHandleResponderMove","TouchableMixin.touchableHandleFocus","TouchableMixin.touchableHandleBlur","TouchableMixin._remeasureMetricsOnActivation","TouchableMixin._handleQueryLayout","TouchableMixin._handleDelay","TouchableMixin._handleLongDelay","TouchableMixin._receiveSignal","TouchableMixin._cancelLongPressDelayTimeout","TouchableMixin._isHighlight","TouchableMixin._savePressInLocation","TouchableMixin._getDistanceBetweenPoints","TouchableMixin._performSideEffectsForTransition","TouchableMixin._startHighlight","TouchableMixin._endHighlight","setTimeout$argument_0","renderDebugView"],"mappings":"AAA;2BCuB;CDsB;qBEyU;GFI;wBGO;GHI;4BIS;GJS;8CKQ;GLE;0CMO;GNE;kCOK;GPE;iCQS;GRoC;mCSO;GTG;qCUO;GVG;gCWO;GX2E;wBYY;GZE;uBaY;GbE;iCcgF;GdW;sBeI;GfwB;gBgBI;GhBG;oBiBI;GjBS;kBkBY;GlBqC;gCmBI;GnBG;gBoBE;GpBK;wBqBI;GrBO;6BsBE;GtBS;oCuBe;GvB2D;mBwBI;GxBG;iByBI;+CCM;SDE;GzBK;mB2BwB;G3BY"}],[{"names":["","BoundingDimensions","prototype.destructor","getPooledFromElement"],"mappings":"AAA;ACqB;CDG;0CEE;CFG;0CGM;CHK"}],[{"names":["","oneArgumentPooler","twoArgumentPooler","threeArgumentPooler","fourArgumentPooler","standardReleaser","addPoolingTo"],"mappings":"AAA;0BCsB;CDS;0BEI;CFS;4BGI;CHS;2BII;CJS;yBKM;CLU;qBMgB;CNoB"}],[{"names":["","Position","prototype.destructor"],"mappings":"AAA;ACsB;CDG;gCEE;CFG"}],[{"names":["","TouchableHighlight","_createPressabilityConfig","onBlur","onFocus","onPress","setTimeout$argument_0","onPressIn","onPressOut","_createExtraStyles","_showUnderlay","_hideUnderlay","_hasPressHandler","render","componentDidMount","componentDidUpdate","componentWillUnmount","React.forwardRef$argument_0"],"mappings":"AAA;AC2J;ECU;cCc;ODO;eEC;OFO;eGE;yCCM;WDE;OHK;iBKC;OLS;kBMC;ONO;GDE;EQE;GRU;ESE;GTQ;EUE;GVc;EWE;GXO;EYE;GZmF;EaE;GbE;EcE;GdE;EeE;GfM;CDC;oCiBE;CjBE"}],[{"names":["","TouchableWithoutFeedback","render","componentDidUpdate","componentWillUnmount","createPressabilityConfig"],"mappings":"AAA;ACqH;ECK;GD8D;EEE;GFE;EGE;GHE;CDC;AKE;CLwB"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","showActionSheetWithOptions","showShareActionSheetWithOptions","dismissActionSheet"],"mappings":"AAA;ECyC;GDwD;EEyB;GFuB;sBGE;GHK"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","nativeEventEmitter.addListener$argument_1","module.exports.getColorScheme","module.exports.setColorScheme","module.exports.addChangeListener"],"mappings":"AAA;ICwC;KDS;EEe;GFqB;EGE;GHW;EIK;GJE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","AppState","constructor","emitter.addListener$argument_1","NativeAppState.getCurrentAppState$argument_0","addEventListener"],"mappings":"AAA;ACqC;ECM;+CCsB;ODG;wCEM;OFO;GDE;EIQ;wDFY;SEE;0DFS;SEO;GJG;CDC"}],[{"names":["","logError"],"mappings":"AAA;iBCiB;CDO"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","module.exports.getString","module.exports.setString"],"mappings":"AAA;ECwB;GDE;EEU;GFE"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","addMenuItem","reload","onFastRefresh","emitter.addListener$argument_1"],"mappings":"AAA;ECqB,yDD;EEC,gCF;EGC,wBH;ICgB;6DGY;OHI;KDE;IEC;KFM;IGC;KHE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","Linking","constructor","addEventListener","openURL","canOpenURL","openSettings","getInitialURL","sendIntent","Promise$argument_0","_validateURL"],"mappings":"AAA;AC6B;ECC;GDE;EEQ;GFM;EGO;GHO;EIO;GJO;EKO;GLM;EMQ;GNI;EOS;yBCW,qDD;GPE;ESE;GTM;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","install","console.error","console.warn","RCTLog.setWarningHandler$argument_0","uninstall","isInstalled","ignoreLogs","ignoreAllLogs","clearAllLogs","addLog","addException","isRCTLogAdviceWarning","isWarningModuleWarning","registerWarning","registerError"],"mappings":"AAA;IC8C;wBCmB;SDE;uBEE;SFE;+BGU;OHE;KDC;IKE;KLa;IME;KNE;IOE;KPE;IQE;KRE;ISE;KTE;IUE;KVI;IWE;KXI;gCYG;GZI;iCaE;GbE;0BcE;Gd0B;wBeI;GfqD;ICG;KDE;IKE;KLE;IME;KNE;IOE;KPE;IQE;KRE;ISE;KTE;IUE;KVE;IWE;KXE"}],[{"names":["","_initializeGestureState","_updateGestureStateOnMove","create","panHandlers.onStartShouldSetResponder","panHandlers.onMoveShouldSetResponder","panHandlers.onStartShouldSetResponderCapture","panHandlers.onMoveShouldSetResponderCapture","panHandlers.onResponderGrant","panHandlers.onResponderReject","panHandlers.onResponderRelease","panHandlers.onResponderStart","panHandlers.onResponderMove","panHandlers.onResponderEnd","panHandlers.onResponderTerminate","panHandlers.onResponderTerminationRequest","getInteractionHandle","clearInteractionHandle"],"mappings":"AAA;ECoS;GDY;EE0B;GFoC;EGkC;MCsB;ODI;MEC;OFI;MGC;OHW;MIE;OJe;MKE;OLgB;MME;ONO;MOE;OPQ;MQE;ORM;MSE;OTgB;MUE;OVS;MWE;OXQ;MYE;OZI;MaI;ObE;GHE;AiBG;CjBa"}],[{"names":["","centroidDimension","currentCentroidXOfTouchesChangedAfter","currentCentroidYOfTouchesChangedAfter","previousCentroidXOfTouchesChangedAfter","previousCentroidYOfTouchesChangedAfter","currentCentroidX","currentCentroidY"],"mappings":"AAA;qBC0B;GDuD;yCEE;GFU;yCGE;GHU;0CIE;GJU;0CKE;GLU;oBME;GNO;oBOE;GPO"}],[{"names":["","PermissionsAndroid","checkPermission","check","requestPermission","request","Promise$argument_0","NativeDialogManagerAndroid.showAlert$argument_1","NativeDialogManagerAndroid.showAlert$argument_2","requestMultiple"],"mappings":"AAA;ACuF;EC2D;GDiB;EEQ;GFc;EGgB;GHgB;EIQ;2BCuB;YCU,kDD;YEC;6EFC;SDE;GJI;EQS;GRgB;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","PushNotificationIOS","presentLocalNotification","scheduleLocalNotification","cancelAllLocalNotifications","removeAllDeliveredNotifications","getDeliveredNotifications","removeDeliveredNotifications","setApplicationIconBadgeNumber","getApplicationIconBadgeNumber","cancelLocalNotifications","getScheduledLocalNotifications","addEventListener","PushNotificationEmitter.addListener$argument_1","removeEventListener","requestPermissions","abandonPermissions","checkPermissions","getInitialNotification","NativePushNotificationManagerIOS.getInitialNotification.then$argument_0","getAuthorizationStatus","constructor","Object.keys.forEach$argument_0","finish","getMessage","getSound","getCategory","getAlert","getContentAvailable","getBadgeCount","getData","getThreadID"],"mappings":"AAA;ACmG;ECuB;GDM;EEO;GFM;EGO;GHM;EIO;GJM;EKO;GLQ;EMO;GNM;EOO;GPM;EQO;GRM;ESO;GTM;EUO;GVM;EWQ;QCe;SDE;QCK;SDE;QCK;SDE;QCK;SDE;GXI;EaQ;GbiB;EcU;Gd8B;EeO;GfM;EgBQ;GhBO;EiBQ;MCM;ODE;GjBE;EmBK;GnBS;EoBQ;uCCW;ODY;GpBS;EsBQ;GtBkB;EuBK;GvBG;EwBO;GxBE;EyBO;GzBE;E0BO;G1BE;E2BO;G3BE;E4BO;G5BE;E6BO;G7BE;E8BO;G9BE;CDC"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","get","set","watchKeys","clearWatch"],"mappings":"AAA;ECa;GDG;EEE;GFE;EGE;GHG;EIE;GJE"}],[{"names":["","Share","share","NativeShareModule.share.then$argument_0","Promise$argument_0","NativeActionSheetManager.showShareActionSheetWithOptions$argument_1","NativeActionSheetManager.showShareActionSheetWithOptions$argument_2"],"mappings":"AAA;ACqC;ECqC;QCkC;UDG;yBEG;UCwB,sBD;UEC;WFY;OFE;GDI;CDY"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","show","showWithGravity","showWithGravityAndOffset"],"mappings":"AAA;QC4C;GDE;mBEE;GFM;4BGE;GHc"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","useAnimatedValue"],"mappings":"AAA;eCe;CDS"}],[{"names":["","useColorScheme","useSyncExternalStore$argument_0","","useSyncExternalStore$argument_1"],"mappings":"AAA;eCiB;ICE;aCE,qCD;KDC;IGC,iCH;CDE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","h","q","n$argument_0","m$argument_0","a$argument_0","r"],"mappings":"AAA;oCCS,+DD,iHE,mFC,uDD,YE,sCC,6BD,EF,oBF;AMC,2FN"}],[{"names":["","useWindowDimensions","useState$argument_0","useEffect$argument_0","handleChange",""],"mappings":"AAA;eCiB;+CCG,8BD;YEC;ICC;KDa;WEM;KFE;GFC;CDE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","vibrateByPattern","setTimeout$argument_0","vibrateScheduler","vibrate","cancel"],"mappings":"AAA;ACyB;aCc,iDD;CDC;AGE;IDoB,0DC;CHG;WIQ;GJwB;UKM;GLM"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","YellowBox","YellowBox.ignoreWarnings","YellowBox.install","YellowBox.uninstall","YellowBox#render"],"mappings":"AAA;cCqB;ICC;KDM;IEE;KFK;IGE;KHK;IIE;KJE;GDC;cCE;ICC;KDE;IEE;KFE;IGE;KHE;IIE;KJE;GDC"}],[{"names":["","DynamicColorIOS"],"mappings":"AAA;+BCmB;CDE"}],[{"names":["","Section","App"],"mappings":"AAA;AC+B;CDwB;AEE;CFuC"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","Platform.select$argument_0.ios","Platform.select$argument_0._default"],"mappings":"AAA;OCwB;GDM;WEC;GFM"}],[{"names":["","Header"],"mappings":"AAA;eCoB;CD4B"}],[{"names":["","HermesBadge"],"mappings":"AAA;oBCmB;CDkB"}],null,[{"names":[""],"mappings":"AAA"}],[{"names":["","LinkList","links.map$argument_0","TouchableOpacity.props.onPress"],"mappings":"AAA;iBC4E;iBCI;qBCY,4BD;ODc;CDG"}],[{"names":["","openURLInBrowser"],"mappings":"AAA;ACc;CDM"}],[{"names":["","getDevServer"],"mappings":"AAA;AC2B;CDa"}],[{"names":["","Platform.select$argument_0.ios","Platform.select$argument_0._default"],"mappings":"AAA;OCwB;GDK;WEC;GFK"}]],"x_hermes_function_offsets":{"0":[0,13114,13397,13426,13519,13572,13676,13837,13931,13967,13999,14049,14109,14438,14474,14508,14542,15214,15230,15521,15551,15614,15623,16007,16064,16129,16288,16326,16377,16445,16513,16573,16622,16820,16877,16882,16910,16930,17819,17860,18150,18199,18369,18455,19106,19119,19132,19291,19389,19412,19428,19439,19455,19471,19482,19521,19546,19585,19642,19658,19691,19728,19732,19767,19883,19888,19902,19911,19942,19973,20073,20136,20151,20241,20358,20373,20483,20604,20713,20809,20823,22084,22115,22147,22174,22201,22228,22255,22282,22309,22341,22368,22400,22453,22480,22512,22539,22571,22598,22630,22657,22684,22711,22738,22765,22792,22819,22846,22873,22900,22927,22954,22986,23013,23040,23067,23094,23147,23174,23201,23233,23265,23298,23325,23352,23379,23406,23433,23465,23497,23529,23561,23593,23620,23652,23705,23732,23759,23786,23813,23840,23867,23894,23927,23959,23991,24023,24055,24082,24109,24141,24174,24201,24228,24255,24288,24320,24352,24385,24394,24418,24473,24528,24583,24638,25236,25320,25378,25462,25520,25604,25662,25699,25825,25862,25983,26067,26125,26162,26288,26325,26434,26503,26507,26536,26615,26719,26893,26982,27069,27118,27146,27291,27460,27513,27642,27681,27815,27840,28015,28050,28080,28143,28260,28323,28382,28431,28511,28560,28638,28701,28947,28996,29030,29079,29130,29202,29332,29417,29480,29565,29628,29827,29884,30005,30013,30076,30209,30225,30274,30278,30302,30350,30738,30854,30875,31010,31091,31110,31185,31205,31415,31442,31679,32002,32166,32199,32285,32354,32486,32570,32589,32628,32962,32990,33022,33129,33162,33225,33347,33396,33426,33475,34008,34057,34091,34180,34225,34692,34953,35011,35047,35098,35129,35225,35246,35278,35312,35321,35355,35391,35420,35482,35621,35945,35949,35965,36042,36084,36178,36719,36893,36979,37159,37304,37368,37372,37435,37476,37560,37629,37705,37727,37844,37987,38509,38713,38733,38852,38893,38968,39026,39160,39348,39366,39521,39678,39839,39994,40023,40163,40231,40301,40619,40640,40695,40735,40775,40815,40857,40897,40935,40973,41011,41049,41087,41125,41163,41201,41239,41277,41315,41353,41357,41395,41433,41471,41509,41547,41585,41623,41661,41699,41788,41891,42229,42273,42554,42682,42784,42821,42933,42984,43025,43040,43059,43084,43147,43179,43313,43420,43808,43924,43945,43966,44025,44040,44428,44544,44565,44953,45069,45090,45191,45318,45355,45505,45613,45654,45695,45796,45841,45882,45927,45946,46036,51897,51980,52022,52120,52192,52293,52297,52301,52514,52622,52704,52744,52757,52770,52790,52828,53101,53227,53353,53471,53606,53668,53728,53764,53889,53991,54072,54186,54254,54306,54814,54879,55249,55358,55557,55665,55854,55913,56079,56133,56226,56231,56298,56793,57103,57223,57265,57778,57812,57886,57909,57982,58053,58360,58787,58892,58997,59852,59867,59928,60095,60167,60464,60553,60606,61011,61328,61728,61778,61821,61852,61933,62100,62205,62265,62286,62347,62439,62470,62518,62529,62592,62635,62747,62773,62802,62877,63035,63116,63254,63313,63565,63736,63937,64196,64282,64303,64341,64465,64544,64663,64711,64798,64929,64979,65056,65086,65258,65342,65569,66447,66562,66646,66769,66996,67104,67522,67792,67862,67978,68002,68157,68232,68279,68370,68410,68521,68568,68651,68895,69030,69116,69439,69773,70162,70824,70851,71662,71689,72686,72723,72806,72844,72995,73042,73300,73366,73387,73480,73746,73805,74026,74055,74615,74800,74804,75095,75230,75284,75317,75358,75407,75463,75589,75725,75746,75834,76011,76044,76077,76107,76140,76218,76236,76255,76345,76349,76442,76539,76662,76790,76811,76955,77299,77343,77408,77476,77594,77639,77816,77825,77912,77965,78137,78157,78186,78352,78577,78658,78843,79177,79358,79745,79804,80019,81622,81896,82006,82027,82951,83011,83140,84080,84153,84258,84919,84991,85225,85836,85946,86316,86490,86717,89245,89643,89715,89752,90200,90301,90378,90483,90531,90963,91067,91145,91362,92092,92169,92918,93028,93189,93458,94147,95618,95730,95780,96073,96197,96576,96609,97140,98599,98637,98756,98926,98965,99067,99140,99341,99439,100189,100207,101332,101423,101677,101900,102034,102153,102198,102353,102395,102423,102516,102816,103386,103423,103485,103521,103618,103808,103888,104016,104179,104183,104307,104332,104352,104434,104508,104528,104626,104630,104661,104799,104803,104833,104837,104851,105174,105183,106869,106889,107128,107144,107188,107432,107538,107581,107628,107675,107731,107787,107911,107992,108243,108353,108400,108434,108567,108709,108842,108891,108981,109014,109044,109097,109218,109249,109274,109351,109355,109586,109669,109691,109731,109785,109807,109868,109922,110301,110402,110679,110795,113308,113492,113513,113534,113564,113621,113744,113836,114089,114202,114260,114288,114309,114330,114606,114728,114817,115087,115120,115233,115386,115390,115614,115664,115678,115698,115712,115732,115746,115766,115780,115800,115877,115940,116126,116183,116300,116314,116377,116511,116560,116605,116662,116775,116808,116947,116972,117428,117515,117525,117534,117544,117554,117581,117609,117636,117664,117742,117752,117761,117771,117781,117808,117835,117862,117889,117966,118143,118180,118568,118684,118705,119262,119295,119408,119561,119565,119595,119614,119677,119794,119857,119964,120231,120297,120494,120611,120726,120871,121305,121450,121465,121598,121819,122063,122089,122145,122329,122533,122546,122744,122775,122795,122820,122848,122876,122904,122928,122953,123341,123457,123478,123909,123939,124182,124193,124216,124425,124501,124526,124632,124672,124682,124716,124738,124812,124833,124871,125103,125185,125272,125378,125418,126031,126050,126359,126613,126731,126973,127140,127262,127519,127552,127665,127818,127822,127885,128055,128185,128245,128324,128368,128498,128604,128680,128690,128700,128710,128840,128969,129082,129092,129102,129112,129122,129205,129282,129472,129505,129648,129801,129805,129819,129886,130367,130471,130757,130790,130903,130980,131132,131203,131322,131582,131651,131700,131752,131823,131993,132111,132160,132313,132317,132367,132591,132738,132797,133028,133071,133154,133418,133528,133770,133880,133990,134064,134077,134529,134718,135166,135282,135303,135336,135369,135402,135436,135549,135656,135683,135744,135903,135931,135973,136038,136073,136144,136153,136224,136233,136411,136415,136440,136470,136504,136657,136712,136816,137016,137054,137271,137503,137569,137695,137757,137838,137882,137926,138041,138344,138423,138443,138464,138677,138782,139064,139083,139191,139224,139293,139405,139778,139805,139832,139895,139955,139974,140034,140088,140149,140170,140230,140377,140411,140484,140545,140706,140715,140730,140766,140807,140859,140917,141033,141910,141961,142098,142152,142156,142160,142164,142200,142239,142266,142327,142542,142577,142612,142641,142674,142734,142770,142804,142845,143338,143733,143825,143864,143930,144051,144185,144201,144223,144238,144243,144310,144416,144428,144433,144560,144596,144601,144607,144695,144781,144973,145030,145454,145538,145774,145921,146026,146159,146233,146693,146745,146783,146816,146849,146882,146915,146943,146975,147447,147487,147546,147940,148003,148091,148127,148215,148295,148364,148433,148588,148614,148769,148795,148923,148949,149008,149161,149224,149358,149479,149498,149517,149579,149598,149780,149785,149952,149988,149997,150059,150095,150104,150149,150537,150653,150674,150757,151008,151080,151104,151156,151316,151350,151359,151787,151814,151841,151874,151907,151940,151973,152000,152027,152054,152081,152114,152147,152180,152213,152720,152753,152867,153020,153024,153087,153138,153772,154020,154134,154145,154399,154521,154987,155089,155152,155348,155442,155576,155648,155845,155892,155911,156250,156305,156334,156373,156468,156482,156496,156689,157432,157480,157528,157576,157624,157672,157720,157882,157960,157993,158173,158271,158291,158362,158544,158654,158717,158837,159039,159077,159145,159186,159387,159418,159602,159762,159846,160008,160121,160171,160225,160279,160342,160828,160944,160965,161001,161022,161047,161072,161101,161130,161155,161193,161365,161482,161536,161552,161737,161797,161812,161837,161889,161934,161988,162021,163057,163110,163262,163461,163502,163537,163575,163607,163657,163880,163912,164026,164090,164115,164142,164169,164197,164222,164284,164325,164400,164645,164707,164822,164846,165077,165106,165131,165155,165199,165203,165208,165213,165218,165243,165307,165377,165420,165462,165490,165515,165558,165583,165608,165633,165703,165731,165767,165771,166083,166292,166794,166932,167019,167023,167027,167031,167035,167039,167043,167047,167641,167757,167778,167810,168261,168353,168528,168707,168737,168825,168839,168854,168864,168874,168884,168894,168917,168927,168931,169111,169138,169196,169397,169690,169710,169741,169979,170089,170143,170173,170668,170760,170903,171193,171595,171628,171741,171894,171898,171958,171977,172114,172193,172361,172413,172443,172473,172693,172822,173028,173115,173177,173311,173401,173429,173463,173650,173688,173805,173857,173898,173948,174004,174047,174075,174318,174352,174591,174979,175095,175116,175194,175317,176411,176446,176572,176606,176677,176712,176721,176862,176887,176922,176955,177030,177074,177123,177152,177180,177238,177296,177422,177528,177638,178295,178536,178729,178893,178924,178962,179007,179807,179886,180033,180145,180193,180277,180511,180562,181304,181325,181520,181574,181601,181649,181676,181724,181751,181808,181862,181891,181944,182010,182080,182111,182157,182194,182237,182325,182369,182393,182437,182461,182505,182544,182595,182705,182756,182872,182921,183512,183545,183658,183811,183815,184053,184534,184544,184723,184793,185087,185171,185310,185349,185363,185505,185691,185799,185942,186141,186204,186369,186418,186507,186895,187011,187032,187086,187166,187235,187268,187411,187564,187568,187696,187810,187876,187897,188185,188218,188331,188484,188488,188763,188852,188880,189021,189133,189246,189297,189409,189460,189511,189658,189709,189760,189830,189840,189850,189860,190248,190364,190385,190725,190755,190999,191107,191139,191179,191213,191247,191281,191315,191349,191383,191415,191499,191591,192001,192332,192366,192400,192434,192447,192481,192515,192549,192583,192617,192651,192706,192719,192809,192843,192954,192958,193508,193541,193684,193837,193841,193928,194000,194089,194194,194283,194379,194473,194539,194558,194586,194631,194679,194839,194925,194956,195382,195586,195609,196017,196207,196238,196312,196316,196378,196766,196882,196903,196980,196986,197205,197232,197259,197286,197313,197340,197367,197399,197426,197453,197480,197552,197691,198079,198195,198216,198264,198455,198843,198959,198980,199072,199249,199431,199445,199497,199564,199568,199594,199598,199602,199606,199640,199704,199787,200175,200291,200312,200967,200978,200992,201006,201030,201153,201240,201421,201447,201479,201506,201533,201563,201579,201635,201649,201903,201912,202171,202180,202221,202253,202262,202266,202372,202525,202571,202671,202711,202801,202810,202814,203127,203161,203192,203347,203378,203513,203549,203585,203701,203726,204029,204417,204533,204554,204942,205058,205079,205108,205139,205145,205214,205249,205268,205277,205316,205348,205364,205645,205678,205791,205944,205948,206011,206061,206449,206565,206586,206898,207014,207035,207332,207874,208312,208428,208449,208475,208505,209545,209612,209666,209670,209724,210048,210111,210155,210214,210230,210301,211001,211006,211079,211121,211243,211312,211381,211385,211389,211393,211397,211485,211518,211556,211588,211625,211643,211677,211682,211723,212130,212197,212228,212238,212260,212310,212351,212411,212432,212464,212492,212496,212524,212555,212579,212615,212647,212679,212710,212746,212773,212800,212836,212860,213517,213633,213654,213687,213800,213953,213957,214094,214248,214252,214285,214772,214792,215299,215415,215436,216234,216258,216379,216422,216984,217100,217121,217418,217427,217743,217859,217880,218177,218220,218267,218578,218692,218696,218759,218815,218885,219347,219492,219637,219860,220137,220646,220666,220857,220872,220909,220981,221126,221192,221295,221423,222568,222699,222902,223183,223272,223411,223500,223915,223956,223998,224061,224105,227341,227433,227499,227519,227524,227544,227603,227646,227827,228200,228263,228352,228386,228455,228475,228790,228824,228893,228935,229038,229109,229137,229196,229308,229403,229482,229580,229620,229634,229785,230192,230308,230329,230365,230410,230432,230455,230534,230700,230846,231101,231171,231188,231229,231294,231422,231458,231543,231625,231681,231812,231924,232021,232035,232060,232198,232353,232385,232437,232508,232551,232598,232602,232995,233104,233135,233184,233418,233474,233498,233905,234021,234042,234078,234192,234343,234514,234643,234689,234853,234984,235094,235341,235474,235694,235886,235971,236006,236037,236073,236118,236208,236992,237134,237156,237190,237233,237360,237512,237638,237809,238304,238348,238447,238565,238623,238695,238729,238758,238882,238912,239057,239287,239339,240250,240423,240465,240669,240674,241070,241186,241207,241212,241307,241377,241760,241876,241897,241953,241963,242111,242180,242222,242292,242324,242377,242765,242881,242902,243143,243169,243196,243223,243250,243277,243304,243331,243358,243385,243412,243444,243471,243503,243535,243583,243678,243687,243885,243894,243936,243964,243992,243996,244000,244114,244200,244239,244278,244315,245432,245548,245569,245578,245613,245627,246103,246123,246128,246207,246425,246535,246805,246838,246951,247104,247108,247171,247269,247408,247583,247849,247883,247925,247959,247993,248027,248042,248072,249085,249163,249185,249377,249421,249539,249665,250138,250535,250550,250559,250593,250597,250708,250746,250773,250794,250812,250838,250858,250882,250905,250935,256835,256918,256960,257058,257130,257231,257235,257239,257452,257560,257642,257682,257695,257708,257728,257766,258039,258165,258291,258409,258544,258606,258666,258702,258827,258929,259010,259124,259192,259244,259752,259817,260187,260296,260495,260603,260792,260851,261017,261071,261164,261191,261206,261267,261434,261512,261721,261788,262283,262593,262713,262755,263268,263302,263376,263447,263754,264181,264286,264391,265246,265269,265342,265431,265484,265889,266206,266606,266656,266699,266730,266811,266978,267083,267143,267164,267208,267315,267413,267437,267468,267516,267527,267590,267633,267745,267771,267800,267875,268033,268114,268252,268311,268563,268734,268935,269194,269274,269360,269381,269419,269543,269622,269741,269789,269874,270005,270055,270132,270162,270331,270415,270642,271520,271635,271719,271842,272069,272177,272594,272864,272934,273050,273074,273229,273304,273351,273442,273482,273593,273640,273723,273967,274102,274188,274511,274845,275234,275896,275923,276734,276761,277758,277795,277878,277916,278067,278114,278372,278438,278459,278552,278818,278877,279098,279127,279687,279872,279876,280167,280302,280356,280389,280430,280479,280534,280660,280796,280817,280905,281082,281115,281148,281178,281211,281289,281307,281326,281416,281420,281513,281610,281733,281861,281882,282025,282367,282411,282476,282544,282588,282633,282810,282819,282906,282959,283131,283151,283180,283346,283571,283652,283837,284171,284352,284739,284798,285013,286615,286889,286999,287020,287944,288004,288133,289072,289145,289250,289911,289983,290217,290828,291002,291229,293932,294330,294402,294439,294887,294988,295065,295170,295217,295503,295713,296370,296418,297203,297307,297385,297783,299434,299765,300457,300567,300688,300957,301646,303117,303229,303279,303572,303696,304075,304108,304639,306098,306136,306255,306425,306464,306566,306639,306840,306938,307688,307706,308831,308922,309176,309399,309532,309651,309696,309851,309893,309921,310014,310314,310884,310921,310983,311019,311116,311303,311383,311511,311874,311878,312002,312027,312085,312113,312133,312215,312289,312309,312407,312411,312442,312580,312584,312614,312618,312632,312955,312964,314650,314670,314909,314936,315225,315257,315316,315426,315506,315541,315588,315635,315699,315764,315883,315983,316017,316150,316292,316425,316474,316564,316597,316627,316680,316801,316832,316857,316934,316938,317169,317252,317274,317314,317368,317390,317451,317505,317707,317711,317794,317829,320340,320524,320545,320566,320596,320631,320688,320811,320903,321122,321235,321291,321961,322077,322098,322561,322692,322854,322961,323094,323370,323442,323488,323527,323580,323603,323714,324699,324815,324836,324869,324983,325136,325140,325231,325282,326127,326519,326635,326656,326953,327019,328579,328673,328718,328758,328865,328911,328957,329003,329049,329479,329595,329616,329620,329624,329628,329734,329922,329966,329992,330013,330856,330972,330993,331082,331163,331187,331211,331246,331270,331726,331856,331939,331954,332037,332075,332422,332459,332496,332553,332782,332816,332845,333122,333152,333182,333236,333284,333434,333469,333641,333676,333878,333898,334080,334100,334332,334368,334745,334836,335049,335069,335167,335551,335604,335643,335688,335733,335778,335823,335868,335882,335953,336018,336056,336444,336560,336581,336731,336837,336878,336902,336956,337019,337038,337330,337339,337396,337437,337504,337527,337560,337854,337896,337938,338074,338100,338127,338154,338181,338208,338235,338262,338330,338606,338734,339879,340010,340213,340494,340583,340722,340811,341226,341267,341309,341372,341416,344652,344766,344800,344858,344862,344866,345006,345083,345092,345109,345785,347865,348012,348055,348100,348274,348395,348429,348475,349139,349282,349988,350965,351105,351705,352017,352425,352503,353971,355056,355751,356575,356691,356712,356745,356858,357011,357015,357221,357403,357661,357766,357816,357910,358044,358217,359425,359463,359490,359510,359530,359623,359675,359725,359729,360483,360599,360620,360653,360766,360919,360923,361175,361407,361647,361738,361829,361916,361979,362089,362140,362171,362233,363385,363535,363562,363639,363921,363953,363985,364017,364049,364081,364113,364973,365052,365113,365175,365215,365255,365295,365335,365375,365418,365467,365539,365986,366092,366260,366289,366310,366331,366388,366408,366514,366682,366711,366732,366753,366810,366830,366936,367016,367045,367066,367087,367144,367164,367232,367315,367437,367483,367517,367548,367582,367586,367702,367777,367829,367941,367969,368016,368044,368083,368117,368121,368188,368231,368285,368431,368538,368684,368711,368744,368778,368797,368876,369213,369246,369360,369513,369517,369677,369854,369913,370044,370279,370392,371402,371473,371521,371565,371585,371605,371625,371647,371669,371691,371713,371737,371826,371923,372020,372039,372058,372088,372197,372288,372319,372341,372448,372526,372581,372691,373022,373226,373252,373310,373381,373435,373489,373547,373605,373740,373794,373852,373910,373964,374018,374076,374134,374204,374258,374319,374380,374460,374848,374964,374985,375373,375489,375510,375674,375826,375858,375862,375912,375946,375980,376241,376954,377070,377091,377124,377238,377391,377395,377578,378382,378519,378740,378791,378831,379716,379848,380587,380703,380724,380757,380871,381024,381028,381250,381334,381438,381805,382166,382385,382562,382656,382723,382790,382879,382968,383087,383213,383339,383383,383467,383597,383695,384119,384152,384266,384419,384423,384493,384563,384578,384625,385038,385184,385309,385339,385359,385478,385519,385571,385642,385713,385823,385898,385922,385962,386092,386120,386195,386235,386286,386378,386412,386752,386825,387112,387134,387156,387239,387363,387392,387432,387514,387528,387566,387775,387864,387894,387925,387948,388006,388063,388095,388127,388153,388416,388524,388651,388701,388735,388795,389308,389341,389455,389608,389612,389760,389869,390076,390468,390622,390665,390681,390761,390777,390863,390882,390923,391021,391102,391166,391395,391459,391558,391644,391714,391749,391772,391854,392035,392103,392346,392363,392380,392385,392453,392462,392475,392491,392523,392577,392616,392658,392727,392834,392888,392923,393135,393184,393189,393205,393235,393251,393333,393532,393562,393588,393600,393665,393744,393854,393945,394180,394406,394490,394820,394853,394967,395120,395124,395307,395363,395538,395666,395839,395850,395996,396204,396724,396764,396768,396847,396851,396865,396869,396873,396879,396960,397027,397077,397110,397149,397279,397335,397356,397413,397483,397648,397682,397696,397707,397723,397804,397837,397863,397906,398124,398146,398169,398199,398312,398415,398528,398908,398941,399055,399208,399212,399276,399436,399653,399810,399915,400086,400356,400488,401034,401150,401171,401205,401420,401493,401602,401686,401926,402123,402135,402183,402218,402402,402570,402672,402717,402846,402877,402901,402920,402996,403045,403102,403305,403378,403441,403511,403913,403946,404060,404213,404217,404538,404675,404809,404887,404961,405118,405135,405306,405354,405481,405608,405660,405771,406239,406272,406386,406539,406543,406717,406822,407074,407183,407312,407396,407520,407542,407616,407746,407880,408021,408411,408444,408558,408711,408715,408944,408999,409096,409168,409191,409205,409228,409243,409277,409349,409442,409514,409588,409735,409770,410092,410132,410405,410589,410820,410868,410906,410960,411112,411291,411385,411410,411435,411477,411493,411561,411620,411652,411781,411960,411991,412355,412388,412502,412655,412659,413072,413352,413404,413456,413493,413530,413573,413632,413691,413795,413832,413911,413956,413981,414022,414118,414214,414314,414375,414419,414481,414841,414874,414988,415141,415145,415351,415503,415603,415640,415680,415717,415813,415873,416203,416236,416350,416503,416507,416713,416812,416897,416937,417040,417062,417143,417197,417587,417620,417734,417887,417891,418097,418314,418414,418506,418546,418583,418679,418739,419069,419102,419216,419369,419373,419579,419643,419728,419777,419817,419839,419920,419965,420325,420358,420472,420625,420629,420835,420987,421087,421124,421164,421201,421297,421357,421717,421750,421864,422017,422021,422227,422379,422479,422516,422556,422593,422689,422749,423079,423112,423226,423379,423383,423589,423716,423825,423845,423899,423981,424093,424251,424898,424914,424953,425035,425039,425043,425047,425051,425055,425117,425170,425184,425253,425310,425379,425436,425445,425464,425483,425492,425511,425556,426023,426139,426160,426256,426630,426663,426776,426929,426933,426949,426966,427002,427415,427719,427739,427840,427941,428135,428174,428257,428357,428564,428687,428734,428767,428800,428833,428866,428895,428924,428955,428986,429017,429050,429266,429476,429592,429730,429752,429921,429952,429983,430257,430321,430372,430453,430511,430625,430648,430776,430803,430830,430863,430890,430917,431048,431273,431389,432183,432271,433501,433617,433638,433671,433784,433937,433941,433957,433974,433991,434008,434025,434044,434061,434078,434136,435129,436171,436185,436251,436316,436351,436382,436436,436455,436475,436888,437233,437315,437451,437497,437560,437602,437951,438028,438700,438725,438750,438854,438879,438902,439031,439056,439131,439156,439254,439279,439335,439478,439547,439665,439822,439953,440318,440379,440638,441133,441240,441382,441459,441476,441499,441535,441580,441648,441696,441729,441761,441771,442005,442435,442511,442526,442581,442687,442710,443017,443445,443472,443503,443563,445668,445729,445740,445834,445857,445902,445927,445961,445978,446105,446348,446365,446391,446413,446952,447092,447138,447184,447541,447919,447987,448066,448174,448219,448606,448760,448853,449193,449308,449440,449499,449593,449654,449747,449824,449866,449895,449919,449939,449962,449982,450013,450173,450348,450445,450592,450729,450811,450880,450961,450976,451071,451173,451409,451566,451621,451793,451812,452750,452761,452821,452892,452924,452940,452954,452968,453589,453705,453726,453759,453872,454025,454029,454143,454210,454380,454449,454565,454611,454625,454671,454685,454750,454828,454898,454929,455115,455277,455308,455692,456018,456041,456105,456122,456137,456553,456582,456626,457318,457434,457455,457488,457601,457754,457758,457946,458184,458253,458322,458395,458473,458504,458551,458583,458731,459299,459354,459788,459904,459925,459993,460143,460213,460345,460396,460616,460768,460886,460896,461414,461424,461509,461612,461807,462531,462647,462668,462701,462814,462967,462971,463716,463762,463795,463846,463897,464083,464289,464588,464640,464856,465032,465048,465531,465571,465611,465663,465715,465735,465983,465992,466420,466453,466462,466579,466968,467105,467529,467645,467666,468581,468697,468718,468737,468826,468856,468893,468986,469016,469053,469076,469126,469156,469185,469237,469246,469298,470338,470462,470646,470704,470809,470825,470876,470952,470999,471046,471431,471547,471568,471984,472100,472121,473033,473149,473170,473179,473650,473766,473787,473796,474184,474300,474321,474441,474792,475020,475072,475091,475835,475951,475972,476199,476499,476604,476924,477040,477061,477358,477391,477504,477657,477661,477798,477980,478050,478070,478093,478230,478365,478825,478941,478962,479447,479563,479584,480924,481040,481061,481358,481391,481504,481657,481661,481716,481732,481833,481910,482185,482987,483015,483072,483129,483150,483171,483345,483438,483510,483741,483935,484061,484227,484242,484298,484403,484473,484478,484621,484681,484737,484797,484853,484928,485022,485155,485276,485347,485423,485427,485672,485690,485730,485839,486038,486131,486176,486228,486428,486484,486540,486588,486915,487014,487147,487173,487196,487343,487387,487591,489185,489492,489523,489559,489662,489792,489834,489872,489910,490298,490414,490435,490487,490830,490864,490920,491182,491357,491505,491525,491544,491571,491597,491617,491633,491657,491767,492170,492185,492488,492547,492551,492555,492559,492617,492643,493031,493147,493168,493267,493883,493999,494020,494029,494087,494178,494612,494728,494749,494758,495166,495282,495303,495760,495876,495897,496938,497054,497075,497084,497687,497803,497824,498626,498702,498721,498891,498990,499029,499189,499226,499672,499747,499889,500356,500472,500493,500589,501230,501346,501367,501400,501514,501667,501671,501900,502056,502076,502115,502160,502205,502252,502299,502348,502525,502535,502547,502971,503087,503108,503532,503648,503669,504289,504405,504426,504723,504756,504869,505022,505026,505329,505572,505661,505705,505749,505819,506570,506624,506678,506722,506766,506813,506861,506917,506965,506999,507872,507988,508009,508042,508155,508308,508312,508360,508411,508582,508931,509069,509104,509134,509176,509180,509315,509445,509542,509751,509848,509900,509979,510062,510116,510726,511173,511289,511310,511346,511375,511400,511425,511450,511916,512032,512053,512089,512114,512139,512163,512188,512217,512246,512706,512822,512843,513537,513653,513674,513707,513821,513974,513978,514092,514260,514280,514310,514601,515264,515380,515401,515434,515547,515700,515704,515795,515845,516066,516189,517013,517129,517150,517183,517296,517449,517453,517617,517787,517817,517854,517863,518016,518045,518054,518319,518356,518385,518394,518653,518804,518833,518849,519519,520079,520112,520225,520378,520382,520565,520634,520638,520668,520672,521234,521278,521282,521342,521730,521846,521867,521977,522169,522178,522224,522270,522316,522704,522820,522841,523438,523554,523575,524698,524712,524879,524941,525003,525078,525582,525698,525719,525861,526102,526246,526354,526420,526871,526987,527008,527118,527460,527576,527597,527894,527898,527902,528681,528766,528929,529397,529513,529534,530019,530135,530156,531362,531478,531499,533371,533701,533763,533846,533935,533995,534035,534049,534109,534233,534357,534450,534518,534586,534624,534708,534765,534769,535226,535756,535872,535893,535902,536580,537154,537270,537291,537300,538862,538978,538999,539076,539105,539201,539225,539243,539260,539264,539617,539658,539699,540229,540266,540303,540393,540630,540672,540757,541129,541173,541212,541310,541363,541837,541877,541993,542019,542036,542149,542174,542195,542230,542348,542422,542503,542602,542710,542793,542858,542956,542981,543002,543730,543846,543867,543900,544013,544166,544170,544445,544669,544914,545001,545088,545260,545281,545385,545462,545552,545644,545771,545843,546893,546907,546945,547013,547090,547759,547875,547896,547929,548042,548195,548199,548419,548556,548742,549469,549514,549541,549577,549613,549748,550151,550384,550471,550859,550975,550996,551309,551399,551495,551615,551642,552030,552146,552167,552399,552459,552724,552756,552829,553027,553052,553112,553132,553304,553692,553808,553829,553904,553928,553958,554346,554462,554483,554535,554668,554672,554676,554680,555068,555184,555205,555607,555640,555753,555906,555910,556139,556232,556253,556370,556487,556586,556685,556792,556836,556895,557283,557399,557420,557808,557924,557945,558140,558144,558148,558152,558156,558160,558164,558168,558172,558283,558369,558438,558736,558937,558983,559029,559143,559238,559468,559509,559568,559631,559726,559789,559848,559894,559909,560011,560363,560395,560427,560459,560491,560522,560553,560849,561009,561060,561136,561190,561227,561256,561265,561349,561386,561415,561424,561596,561679,561727,561773,561827,562215,562331,562352,562717,563357,563562,563700,563802,563812,563822,563832,563842,563852,563862,563872,563882,563936,563990,564040,564090,564144,564198,564252,564306,564360,564414,564663,564709,564755,564780,564799,564911,565034,565084,565164,565231,565272,565326,565714,565830,565851,565906,565932,565958,565988,566014,566190,566253,566284,566632,566665,567053,567169,567190,567344,567378,567416,567460,567848,567964,567985,568091,568175,568273,568324,568363,568381,568405,568435,568581,568640,568788,568854,568916,568962,569011,569147,569242,569270,569352,569454,569474,569557,569661,569788,569831,570017,570043,570431,570547,570568,570642,570675,570818,570971,570975,571154,571216,571220,571224,571228,571232,571290,571324,571532,571913,572695,573146,573160,573174,573188,573202,573216,573230,573291,573542,573729,573916,574257,574580,574884,575169,575234,575264,576106,576222,576243,576356,576778,576806,576840,576938,577004,577137,577388,577510,577632]},"x_google_ignoreList":[0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,420,421,422,423,424,425,426,427,428,429,430]} diff --git a/features/react-native-android/fixtures/rn0_72/android/app/build/intermediates/merged_manifests/release/AndroidManifest.xml b/features/react-native-android/fixtures/rn0_72/android/app/build/intermediates/merged_manifests/release/AndroidManifest.xml deleted file mode 100644 index 7db3d59c..00000000 --- a/features/react-native-android/fixtures/rn0_72/android/app/build/intermediates/merged_manifests/release/AndroidManifest.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/features/react-native-android/rn0_69.feature b/features/react-native-android/rn0_69.feature deleted file mode 100644 index 2b0ac857..00000000 --- a/features/react-native-android/rn0_69.feature +++ /dev/null @@ -1,60 +0,0 @@ -Feature: React Native 0.69 Android Integration Tests - - Scenario: Upload a single React Native 0.69 Android sourcemap using all CLI flags - When I run bugsnag-cli with upload react-native-android --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --app-manifest=features/react-native-android/fixtures/rn0_69/android/app/build/intermediates/merged_manifests/release/AndroidManifest.xml --bundle=features/react-native-android/fixtures/rn0_69/android/app/build/generated/assets/react/release/index.android.bundle --dev --source-map=features/react-native-android/fixtures/rn0_69/android/app/build/generated/sourcemaps/react/release/index.android.bundle.map --variant=release --version-name=1.0 --version-code=1 - And I wait to receive 1 sourcemaps - Then the sourcemap is valid for the React Native Build API - Then the sourcemaps Content-Type header is valid multipart form-data - And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" - And the sourcemap payload field "appVersion" equals "1.0" - And the sourcemap payload field "appVersionCode" equals "1" - And the sourcemap payload field "dev" equals "true" - And the sourcemap payload field "platform" equals "android" - And the sourcemap payload field "overwrite" equals "true" - - Scenario: Upload a single React Native 0.69 Android sourcemap providing the app-manifest, bundle and source-map CLI flag - When I run bugsnag-cli with upload react-native-android --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --app-manifest=features/react-native-android/fixtures/rn0_69/android/app/build/intermediates/merged_manifests/release/AndroidManifest.xml --bundle=features/react-native-android/fixtures/rn0_69/android/app/build/generated/assets/react/release/index.android.bundle --source-map=features/react-native-android/fixtures/rn0_69/android/app/build/generated/sourcemaps/react/release/index.android.bundle.map - And I wait to receive 1 sourcemaps - Then the sourcemap is valid for the React Native Build API - Then the sourcemaps Content-Type header is valid multipart form-data - And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" - And the sourcemap payload field "appVersion" equals "1.0" - And the sourcemap payload field "appVersionCode" equals "1" - And the sourcemap payload field "platform" equals "android" - And the sourcemap payload field "overwrite" equals "true" - - Scenario: Upload a single React Native 0.69 Android sourcemap providing the app-manifest CLI flag - When I run bugsnag-cli with upload react-native-android --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --app-manifest=features/react-native-android/fixtures/rn0_69/android/app/build/intermediates/merged_manifests/release/AndroidManifest.xml features/react-native-android/fixtures/rn0_69 - And I wait to receive 1 sourcemaps - Then the sourcemap is valid for the React Native Build API - Then the sourcemaps Content-Type header is valid multipart form-data - And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" - And the sourcemap payload field "appVersion" equals "1.0" - And the sourcemap payload field "appVersionCode" equals "1" - And the sourcemap payload field "platform" equals "android" - And the sourcemap payload field "overwrite" equals "true" - - Scenario: Upload a single React Native 0.69 Android sourcemap providing no CLI flag - When I run bugsnag-cli with upload react-native-android --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/react-native-android/fixtures/rn0_69 - And I wait to receive 1 sourcemaps - Then the sourcemap is valid for the React Native Build API - Then the sourcemaps Content-Type header is valid multipart form-data - And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" - And the sourcemap payload field "appVersion" equals "1.0" - And the sourcemap payload field "appVersionCode" equals "1" - And the sourcemap payload field "platform" equals "android" - And the sourcemap payload field "overwrite" equals "true" - - Scenario: Build and Upload React Native 0.69 Android sourcemaps - When I make the "features/base-fixtures/rn0_69/android" - And I wait for the build to succeed - - When I run bugsnag-cli with upload react-native-android --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/base-fixtures/rn0_69 - And I wait to receive 1 sourcemaps - Then the sourcemap is valid for the React Native Build API - Then the sourcemaps Content-Type header is valid multipart form-data - And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" - And the sourcemap payload field "appVersion" equals "1.0" - And the sourcemap payload field "appVersionCode" equals "1" - And the sourcemap payload field "platform" equals "android" - And the sourcemap payload field "overwrite" equals "true" diff --git a/features/react-native-android/rn0_70.feature b/features/react-native-android/rn0_70.feature deleted file mode 100644 index 301d47db..00000000 --- a/features/react-native-android/rn0_70.feature +++ /dev/null @@ -1,60 +0,0 @@ -Feature: React Native 0.70 Android Integration Tests - - Scenario: Upload a single React Native 0.70 Android sourcemap using all CLI flags - When I run bugsnag-cli with upload react-native-android --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --app-manifest=features/react-native-android/fixtures/rn0_70/android/app/build/intermediates/merged_manifests/release/AndroidManifest.xml --bundle=features/react-native-android/fixtures/rn0_70/android/app/build/ASSETS/createBundleReleaseJsAndAssets/index.android.bundle --dev --source-map=features/react-native-android/fixtures/rn0_70/android/app/build/generated/sourcemaps/react/release/index.android.bundle.map --variant=release --version-name=1.0 --version-code=1 - And I wait to receive 1 sourcemaps - Then the sourcemap is valid for the React Native Build API - Then the sourcemaps Content-Type header is valid multipart form-data - And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" - And the sourcemap payload field "appVersion" equals "1.0" - And the sourcemap payload field "appVersionCode" equals "1" - And the sourcemap payload field "dev" equals "true" - And the sourcemap payload field "platform" equals "android" - And the sourcemap payload field "overwrite" equals "true" - - Scenario: Upload a single React Native 0.70 Android sourcemap providing the app-manifest, bundle and source-map CLI flag - When I run bugsnag-cli with upload react-native-android --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --app-manifest=features/react-native-android/fixtures/rn0_70/android/app/build/intermediates/merged_manifests/release/AndroidManifest.xml --bundle=features/react-native-android/fixtures/rn0_70/android/app/build/ASSETS/createBundleReleaseJsAndAssets/index.android.bundle --source-map=features/react-native-android/fixtures/rn0_70/android/app/build/generated/sourcemaps/react/release/index.android.bundle.map - And I wait to receive 1 sourcemaps - Then the sourcemap is valid for the React Native Build API - Then the sourcemaps Content-Type header is valid multipart form-data - And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" - And the sourcemap payload field "appVersion" equals "1.0" - And the sourcemap payload field "appVersionCode" equals "1" - And the sourcemap payload field "platform" equals "android" - And the sourcemap payload field "overwrite" equals "true" - - Scenario: Upload a single React Native 0.70 Android sourcemap providing the app-manifest CLI flag - When I run bugsnag-cli with upload react-native-android --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --app-manifest=features/react-native-android/fixtures/rn0_70/android/app/build/intermediates/merged_manifests/release/AndroidManifest.xml features/react-native-android/fixtures/rn0_70 - And I wait to receive 1 sourcemaps - Then the sourcemap is valid for the React Native Build API - Then the sourcemaps Content-Type header is valid multipart form-data - And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" - And the sourcemap payload field "appVersion" equals "1.0" - And the sourcemap payload field "appVersionCode" equals "1" - And the sourcemap payload field "platform" equals "android" - And the sourcemap payload field "overwrite" equals "true" - - Scenario: Upload a single React Native 0.70 Android sourcemap providing no CLI flag - When I run bugsnag-cli with upload react-native-android --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/react-native-android/fixtures/rn0_70 - And I wait to receive 1 sourcemaps - Then the sourcemap is valid for the React Native Build API - Then the sourcemaps Content-Type header is valid multipart form-data - And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" - And the sourcemap payload field "appVersion" equals "1.0" - And the sourcemap payload field "appVersionCode" equals "1" - And the sourcemap payload field "platform" equals "android" - And the sourcemap payload field "overwrite" equals "true" - - Scenario: Build and Upload React Native 0.70 Android sourcemaps - When I make the "features/base-fixtures/rn0_70/android" - And I wait for the build to succeed - - When I run bugsnag-cli with upload react-native-android --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/base-fixtures/rn0_70 - And I wait to receive 1 sourcemaps - Then the sourcemap is valid for the React Native Build API - Then the sourcemaps Content-Type header is valid multipart form-data - And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" - And the sourcemap payload field "appVersion" equals "1.0" - And the sourcemap payload field "appVersionCode" equals "1" - And the sourcemap payload field "platform" equals "android" - And the sourcemap payload field "overwrite" equals "true" diff --git a/features/react-native-android/rn0_72.feature b/features/react-native-android/rn0_72.feature deleted file mode 100644 index 788c7979..00000000 --- a/features/react-native-android/rn0_72.feature +++ /dev/null @@ -1,60 +0,0 @@ -Feature: React Native 0.72 Android Integration Tests - - Scenario: Upload a single React Native 0.72 Android sourcemap using all CLI flags - When I run bugsnag-cli with upload react-native-android --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --app-manifest=features/react-native-android/fixtures/rn0_72/android/app/build/intermediates/merged_manifests/release/AndroidManifest.xml --bundle=features/react-native-android/fixtures/rn0_72/android/app/build/generated/sourcemaps/react/release/index.android.bundle.map --dev --source-map=features/react-native-android/fixtures/rn0_72/android/app/build/generated/sourcemaps/react/release/index.android.bundle.map --variant=release --version-name=1.0 --version-code=1 - And I wait to receive 1 sourcemaps - Then the sourcemap is valid for the React Native Build API - Then the sourcemaps Content-Type header is valid multipart form-data - And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" - And the sourcemap payload field "appVersion" equals "1.0" - And the sourcemap payload field "appVersionCode" equals "1" - And the sourcemap payload field "dev" equals "true" - And the sourcemap payload field "platform" equals "android" - And the sourcemap payload field "overwrite" equals "true" - - Scenario: Upload a single React Native 0.72 Android sourcemap providing the app-manifest, bundle and source-map CLI flag - When I run bugsnag-cli with upload react-native-android --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --app-manifest=features/react-native-android/fixtures/rn0_72/android/app/build/intermediates/merged_manifests/release/AndroidManifest.xml --bundle=features/react-native-android/fixtures/rn0_72/android/app/build/generated/sourcemaps/react/release/index.android.bundle.map --source-map=features/react-native-android/fixtures/rn0_72/android/app/build/generated/sourcemaps/react/release/index.android.bundle.map - And I wait to receive 1 sourcemaps - Then the sourcemap is valid for the React Native Build API - Then the sourcemaps Content-Type header is valid multipart form-data - And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" - And the sourcemap payload field "appVersion" equals "1.0" - And the sourcemap payload field "appVersionCode" equals "1" - And the sourcemap payload field "platform" equals "android" - And the sourcemap payload field "overwrite" equals "true" - - Scenario: Upload a single React Native 0.72 Android sourcemap providing the app-manifest CLI flag - When I run bugsnag-cli with upload react-native-android --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --app-manifest=features/react-native-android/fixtures/rn0_72/android/app/build/intermediates/merged_manifests/release/AndroidManifest.xml features/react-native-android/fixtures/rn0_72 - And I wait to receive 1 sourcemaps - Then the sourcemap is valid for the React Native Build API - Then the sourcemaps Content-Type header is valid multipart form-data - And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" - And the sourcemap payload field "appVersion" equals "1.0" - And the sourcemap payload field "appVersionCode" equals "1" - And the sourcemap payload field "platform" equals "android" - And the sourcemap payload field "overwrite" equals "true" - - Scenario: Upload a single React Native 0.72 Android sourcemap providing no CLI flag - When I run bugsnag-cli with upload react-native-android --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/react-native-android/fixtures/rn0_72 - And I wait to receive 1 sourcemaps - Then the sourcemap is valid for the React Native Build API - Then the sourcemaps Content-Type header is valid multipart form-data - And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" - And the sourcemap payload field "appVersion" equals "1.0" - And the sourcemap payload field "appVersionCode" equals "1" - And the sourcemap payload field "platform" equals "android" - And the sourcemap payload field "overwrite" equals "true" - - Scenario: Build and Upload React Native 0.72 Android sourcemaps - When I make the "features/base-fixtures/rn0_72/android" - And I wait for the build to succeed - - When I run bugsnag-cli with upload react-native-android --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/base-fixtures/rn0_72 - And I wait to receive 1 sourcemaps - Then the sourcemap is valid for the React Native Build API - Then the sourcemaps Content-Type header is valid multipart form-data - And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" - And the sourcemap payload field "appVersion" equals "1.0" - And the sourcemap payload field "appVersionCode" equals "1" - And the sourcemap payload field "platform" equals "android" - And the sourcemap payload field "overwrite" equals "true" diff --git a/features/react-native-ios/fixtures/rn0_69/ios/build/sourcemaps/Info.plist b/features/react-native-ios/fixtures/rn0_69/ios/build/sourcemaps/Info.plist deleted file mode 100644 index a81e6a45..00000000 Binary files a/features/react-native-ios/fixtures/rn0_69/ios/build/sourcemaps/Info.plist and /dev/null differ diff --git a/features/react-native-ios/fixtures/rn0_69/ios/build/sourcemaps/main.jsbundle b/features/react-native-ios/fixtures/rn0_69/ios/build/sourcemaps/main.jsbundle deleted file mode 100644 index ef92b332..00000000 --- a/features/react-native-ios/fixtures/rn0_69/ios/build/sourcemaps/main.jsbundle +++ /dev/null @@ -1,56593 +0,0 @@ -var __BUNDLE_START_TIME__=this.nativePerformanceNow?nativePerformanceNow():Date.now(),__DEV__=false,process=this.process||{},__METRO_GLOBAL_PREFIX__='';process.env=process.env||{};process.env.NODE_ENV=process.env.NODE_ENV||"production"; -(function (global) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - * @oncall react_native - * @polyfill - */ - - "use strict"; - - /* eslint-disable no-bitwise */ - // A simpler $ArrayLike. Not iterable and doesn't have a `length`. - // This is compatible with actual arrays as well as with objects that look like - // {0: 'value', 1: '...'} - global.__r = metroRequire; - global[`${__METRO_GLOBAL_PREFIX__}__d`] = define; - global.__c = clear; - global.__registerSegment = registerSegment; - var modules = clear(); - - // Don't use a Symbol here, it would pull in an extra polyfill with all sorts of - // additional stuff (e.g. Array.from). - var EMPTY = {}; - var CYCLE_DETECTED = {}; - var _ref = {}, - hasOwnProperty = _ref.hasOwnProperty; - function clear() { - modules = Object.create(null); - - // We return modules here so that we can assign an initial value to modules - // when defining it. Otherwise, we would have to do "let modules = null", - // which will force us to add "nullthrows" everywhere. - return modules; - } - function define(factory, moduleId, dependencyMap) { - if (modules[moduleId] != null) { - // prevent repeated calls to `global.nativeRequire` to overwrite modules - // that are already loaded - return; - } - var mod = { - dependencyMap: dependencyMap, - factory: factory, - hasError: false, - importedAll: EMPTY, - importedDefault: EMPTY, - isInitialized: false, - publicModule: { - exports: {} - } - }; - modules[moduleId] = mod; - } - function metroRequire(moduleId) { - //$FlowFixMe: at this point we know that moduleId is a number - var moduleIdReallyIsNumber = moduleId; - var module = modules[moduleIdReallyIsNumber]; - return module && module.isInitialized ? module.publicModule.exports : guardedLoadModule(moduleIdReallyIsNumber, module); - } - - // We print require cycles unless they match a pattern in the - // `requireCycleIgnorePatterns` configuration. - function metroImportDefault(moduleId) { - //$FlowFixMe: at this point we know that moduleId is a number - var moduleIdReallyIsNumber = moduleId; - if (modules[moduleIdReallyIsNumber] && modules[moduleIdReallyIsNumber].importedDefault !== EMPTY) { - return modules[moduleIdReallyIsNumber].importedDefault; - } - var exports = metroRequire(moduleIdReallyIsNumber); - var importedDefault = exports && exports.__esModule ? exports.default : exports; - - // $FlowFixMe The metroRequire call above will throw if modules[id] is null - return modules[moduleIdReallyIsNumber].importedDefault = importedDefault; - } - metroRequire.importDefault = metroImportDefault; - function metroImportAll(moduleId) { - //$FlowFixMe: at this point we know that moduleId is a number - var moduleIdReallyIsNumber = moduleId; - if (modules[moduleIdReallyIsNumber] && modules[moduleIdReallyIsNumber].importedAll !== EMPTY) { - return modules[moduleIdReallyIsNumber].importedAll; - } - var exports = metroRequire(moduleIdReallyIsNumber); - var importedAll; - if (exports && exports.__esModule) { - importedAll = exports; - } else { - importedAll = {}; - - // Refrain from using Object.assign, it has to work in ES3 environments. - if (exports) { - for (var key in exports) { - if (hasOwnProperty.call(exports, key)) { - importedAll[key] = exports[key]; - } - } - } - importedAll.default = exports; - } - - // $FlowFixMe The metroRequire call above will throw if modules[id] is null - return modules[moduleIdReallyIsNumber].importedAll = importedAll; - } - metroRequire.importAll = metroImportAll; - - // The `require.context()` syntax is never executed in the runtime because it is converted - // to `require()` in `metro/src/ModuleGraph/worker/collectDependencies.js` after collecting - // dependencies. If the feature flag is not enabled then the conversion never takes place and this error is thrown (development only). - metroRequire.context = function fallbackRequireContext() { - throw new Error("The experimental Metro feature `require.context` is not enabled in your project."); - }; - - // `require.resolveWeak()` is a compile-time primitive (see collectDependencies.js) - metroRequire.resolveWeak = function fallbackRequireResolveWeak() { - throw new Error("require.resolveWeak cannot be called dynamically."); - }; - var inGuard = false; - function guardedLoadModule(moduleId, module) { - if (!inGuard && global.ErrorUtils) { - inGuard = true; - var returnValue; - try { - returnValue = loadModuleImplementation(moduleId, module); - } catch (e) { - // TODO: (moti) T48204692 Type this use of ErrorUtils. - global.ErrorUtils.reportFatalError(e); - } - inGuard = false; - return returnValue; - } else { - return loadModuleImplementation(moduleId, module); - } - } - var ID_MASK_SHIFT = 16; - var LOCAL_ID_MASK = 65535; - function unpackModuleId(moduleId) { - var segmentId = moduleId >>> ID_MASK_SHIFT; - var localId = moduleId & LOCAL_ID_MASK; - return { - segmentId: segmentId, - localId: localId - }; - } - metroRequire.unpackModuleId = unpackModuleId; - function packModuleId(value) { - return (value.segmentId << ID_MASK_SHIFT) + value.localId; - } - metroRequire.packModuleId = packModuleId; - var moduleDefinersBySegmentID = []; - var definingSegmentByModuleID = new Map(); - function registerSegment(segmentId, moduleDefiner, moduleIds) { - moduleDefinersBySegmentID[segmentId] = moduleDefiner; - if (moduleIds) { - moduleIds.forEach(function (moduleId) { - if (!modules[moduleId] && !definingSegmentByModuleID.has(moduleId)) { - definingSegmentByModuleID.set(moduleId, segmentId); - } - }); - } - } - function loadModuleImplementation(moduleId, module) { - if (!module && moduleDefinersBySegmentID.length > 0) { - var _definingSegmentByMod; - var segmentId = (_definingSegmentByMod = definingSegmentByModuleID.get(moduleId)) != null ? _definingSegmentByMod : 0; - var definer = moduleDefinersBySegmentID[segmentId]; - if (definer != null) { - definer(moduleId); - module = modules[moduleId]; - definingSegmentByModuleID.delete(moduleId); - } - } - var nativeRequire = global.nativeRequire; - if (!module && nativeRequire) { - var _unpackModuleId = unpackModuleId(moduleId), - _segmentId = _unpackModuleId.segmentId, - localId = _unpackModuleId.localId; - nativeRequire(localId, _segmentId); - module = modules[moduleId]; - } - if (!module) { - throw unknownModuleError(moduleId); - } - if (module.hasError) { - throw module.error; - } - // We must optimistically mark module as initialized before running the - // factory to keep any require cycles inside the factory from causing an - // infinite require loop. - module.isInitialized = true; - var _module = module, - factory = _module.factory, - dependencyMap = _module.dependencyMap; - try { - var moduleObject = module.publicModule; - moduleObject.id = moduleId; - - // keep args in sync with with defineModuleCode in - // metro/src/Resolver/index.js - // and metro/src/ModuleGraph/worker.js - factory(global, metroRequire, metroImportDefault, metroImportAll, moduleObject, moduleObject.exports, dependencyMap); - - // avoid removing factory in DEV mode as it breaks HMR - { - // $FlowFixMe: This is only sound because we never access `factory` again - module.factory = undefined; - module.dependencyMap = undefined; - } - return moduleObject.exports; - } catch (e) { - module.hasError = true; - module.error = e; - module.isInitialized = false; - module.publicModule.exports = undefined; - throw e; - } finally {} - } - function unknownModuleError(id) { - var message = 'Requiring unknown module "' + id + '".'; - return Error(message); - } -})(typeof globalThis !== 'undefined' ? globalThis : typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : this); -(function (global) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @polyfill - * @nolint - * @format - */ - - /* eslint-disable no-shadow, eqeqeq, curly, no-unused-vars, no-void, no-control-regex */ - - /** - * This pipes all of our console logging functions to native logging so that - * JavaScript errors in required modules show up in Xcode via NSLog. - */ - var inspect = function () { - // Copyright Joyent, Inc. and other Node contributors. - // - // Permission is hereby granted, free of charge, to any person obtaining a - // copy of this software and associated documentation files (the - // "Software"), to deal in the Software without restriction, including - // without limitation the rights to use, copy, modify, merge, publish, - // distribute, sublicense, and/or sell copies of the Software, and to permit - // persons to whom the Software is furnished to do so, subject to the - // following conditions: - // - // The above copyright notice and this permission notice shall be included - // in all copies or substantial portions of the Software. - // - // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - // USE OR OTHER DEALINGS IN THE SOFTWARE. - // - // https://github.com/joyent/node/blob/master/lib/util.js - - function inspect(obj, opts) { - var ctx = { - seen: [], - formatValueCalls: 0, - stylize: stylizeNoColor - }; - return formatValue(ctx, obj, opts.depth); - } - function stylizeNoColor(str, styleType) { - return str; - } - function arrayToHash(array) { - var hash = {}; - array.forEach(function (val, idx) { - hash[val] = true; - }); - return hash; - } - function formatValue(ctx, value, recurseTimes) { - ctx.formatValueCalls++; - if (ctx.formatValueCalls > 200) { - return `[TOO BIG formatValueCalls ${ctx.formatValueCalls} exceeded limit of 200]`; - } - - // Primitive types cannot have properties - var primitive = formatPrimitive(ctx, value); - if (primitive) { - return primitive; - } - - // Look up the keys of the object. - var keys = Object.keys(value); - var visibleKeys = arrayToHash(keys); - - // IE doesn't make error fields non-enumerable - // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx - if (isError(value) && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) { - return formatError(value); - } - - // Some type of object without properties can be shortcutted. - if (keys.length === 0) { - if (isFunction(value)) { - var name = value.name ? ': ' + value.name : ''; - return ctx.stylize('[Function' + name + ']', 'special'); - } - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } - if (isDate(value)) { - return ctx.stylize(Date.prototype.toString.call(value), 'date'); - } - if (isError(value)) { - return formatError(value); - } - } - var base = '', - array = false, - braces = ['{', '}']; - - // Make Array say that they are Array - if (isArray(value)) { - array = true; - braces = ['[', ']']; - } - - // Make functions say that they are functions - if (isFunction(value)) { - var n = value.name ? ': ' + value.name : ''; - base = ' [Function' + n + ']'; - } - - // Make RegExps say that they are RegExps - if (isRegExp(value)) { - base = ' ' + RegExp.prototype.toString.call(value); - } - - // Make dates with properties first say the date - if (isDate(value)) { - base = ' ' + Date.prototype.toUTCString.call(value); - } - - // Make error with message first say the error - if (isError(value)) { - base = ' ' + formatError(value); - } - if (keys.length === 0 && (!array || value.length == 0)) { - return braces[0] + base + braces[1]; - } - if (recurseTimes < 0) { - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } else { - return ctx.stylize('[Object]', 'special'); - } - } - ctx.seen.push(value); - var output; - if (array) { - output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); - } else { - output = keys.map(function (key) { - return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); - }); - } - ctx.seen.pop(); - return reduceToSingleString(output, base, braces); - } - function formatPrimitive(ctx, value) { - if (isUndefined(value)) return ctx.stylize('undefined', 'undefined'); - if (isString(value)) { - var simple = "'" + JSON.stringify(value).replace(/^"|"$/g, '').replace(/'/g, "\\'").replace(/\\"/g, '"') + "'"; - return ctx.stylize(simple, 'string'); - } - if (isNumber(value)) return ctx.stylize('' + value, 'number'); - if (isBoolean(value)) return ctx.stylize('' + value, 'boolean'); - // For some reason typeof null is "object", so special case here. - if (isNull(value)) return ctx.stylize('null', 'null'); - } - function formatError(value) { - return '[' + Error.prototype.toString.call(value) + ']'; - } - function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { - var output = []; - for (var i = 0, l = value.length; i < l; ++i) { - if (hasOwnProperty(value, String(i))) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, String(i), true)); - } else { - output.push(''); - } - } - keys.forEach(function (key) { - if (!key.match(/^\d+$/)) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, key, true)); - } - }); - return output; - } - function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { - var name, str, desc; - desc = Object.getOwnPropertyDescriptor(value, key) || { - value: value[key] - }; - if (desc.get) { - if (desc.set) { - str = ctx.stylize('[Getter/Setter]', 'special'); - } else { - str = ctx.stylize('[Getter]', 'special'); - } - } else { - if (desc.set) { - str = ctx.stylize('[Setter]', 'special'); - } - } - if (!hasOwnProperty(visibleKeys, key)) { - name = '[' + key + ']'; - } - if (!str) { - if (ctx.seen.indexOf(desc.value) < 0) { - if (isNull(recurseTimes)) { - str = formatValue(ctx, desc.value, null); - } else { - str = formatValue(ctx, desc.value, recurseTimes - 1); - } - if (str.indexOf('\n') > -1) { - if (array) { - str = str.split('\n').map(function (line) { - return ' ' + line; - }).join('\n').substr(2); - } else { - str = '\n' + str.split('\n').map(function (line) { - return ' ' + line; - }).join('\n'); - } - } - } else { - str = ctx.stylize('[Circular]', 'special'); - } - } - if (isUndefined(name)) { - if (array && key.match(/^\d+$/)) { - return str; - } - name = JSON.stringify('' + key); - if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { - name = name.substr(1, name.length - 2); - name = ctx.stylize(name, 'name'); - } else { - name = name.replace(/'/g, "\\'").replace(/\\"/g, '"').replace(/(^"|"$)/g, "'"); - name = ctx.stylize(name, 'string'); - } - } - return name + ': ' + str; - } - function reduceToSingleString(output, base, braces) { - var numLinesEst = 0; - var length = output.reduce(function (prev, cur) { - numLinesEst++; - if (cur.indexOf('\n') >= 0) numLinesEst++; - return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; - }, 0); - if (length > 60) { - return braces[0] + (base === '' ? '' : base + '\n ') + ' ' + output.join(',\n ') + ' ' + braces[1]; - } - return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; - } - - // NOTE: These type checking functions intentionally don't use `instanceof` - // because it is fragile and can be easily faked with `Object.create()`. - function isArray(ar) { - return Array.isArray(ar); - } - function isBoolean(arg) { - return typeof arg === 'boolean'; - } - function isNull(arg) { - return arg === null; - } - function isNumber(arg) { - return typeof arg === 'number'; - } - function isString(arg) { - return typeof arg === 'string'; - } - function isUndefined(arg) { - return arg === undefined; - } - function isRegExp(re) { - return isObject(re) && objectToString(re) === '[object RegExp]'; - } - function isObject(arg) { - return typeof arg === 'object' && arg !== null; - } - function isDate(d) { - return isObject(d) && objectToString(d) === '[object Date]'; - } - function isError(e) { - return isObject(e) && (objectToString(e) === '[object Error]' || e instanceof Error); - } - function isFunction(arg) { - return typeof arg === 'function'; - } - function objectToString(o) { - return Object.prototype.toString.call(o); - } - function hasOwnProperty(obj, prop) { - return Object.prototype.hasOwnProperty.call(obj, prop); - } - return inspect; - }(); - var OBJECT_COLUMN_NAME = '(index)'; - var LOG_LEVELS = { - trace: 0, - info: 1, - warn: 2, - error: 3 - }; - var INSPECTOR_LEVELS = []; - INSPECTOR_LEVELS[LOG_LEVELS.trace] = 'debug'; - INSPECTOR_LEVELS[LOG_LEVELS.info] = 'log'; - INSPECTOR_LEVELS[LOG_LEVELS.warn] = 'warning'; - INSPECTOR_LEVELS[LOG_LEVELS.error] = 'error'; - - // Strip the inner function in getNativeLogFunction(), if in dev also - // strip method printing to originalConsole. - var INSPECTOR_FRAMES_TO_SKIP = 1; - function getNativeLogFunction(level) { - return function () { - var str; - if (arguments.length === 1 && typeof arguments[0] === 'string') { - str = arguments[0]; - } else { - str = Array.prototype.map.call(arguments, function (arg) { - return inspect(arg, { - depth: 10 - }); - }).join(', '); - } - - // TRICKY - // If more than one argument is provided, the code above collapses them all - // into a single formatted string. This transform wraps string arguments in - // single quotes (e.g. "foo" -> "'foo'") which then breaks the "Warning:" - // check below. So it's important that we look at the first argument, rather - // than the formatted argument string. - var firstArg = arguments[0]; - var logLevel = level; - if (typeof firstArg === 'string' && firstArg.slice(0, 9) === 'Warning: ' && logLevel >= LOG_LEVELS.error) { - // React warnings use console.error so that a stack trace is shown, - // but we don't (currently) want these to show a redbox - // (Note: Logic duplicated in ExceptionsManager.js.) - logLevel = LOG_LEVELS.warn; - } - if (global.__inspectorLog) { - global.__inspectorLog(INSPECTOR_LEVELS[logLevel], str, [].slice.call(arguments), INSPECTOR_FRAMES_TO_SKIP); - } - if (groupStack.length) { - str = groupFormat('', str); - } - global.nativeLoggingHook(str, logLevel); - }; - } - function repeat(element, n) { - return Array.apply(null, Array(n)).map(function () { - return element; - }); - } - function consoleTablePolyfill(rows) { - // convert object -> array - if (!Array.isArray(rows)) { - var data = rows; - rows = []; - for (var key in data) { - if (data.hasOwnProperty(key)) { - var row = data[key]; - row[OBJECT_COLUMN_NAME] = key; - rows.push(row); - } - } - } - if (rows.length === 0) { - global.nativeLoggingHook('', LOG_LEVELS.info); - return; - } - var columns = Object.keys(rows[0]).sort(); - var stringRows = []; - var columnWidths = []; - - // Convert each cell to a string. Also - // figure out max cell width for each column - columns.forEach(function (k, i) { - columnWidths[i] = k.length; - for (var j = 0; j < rows.length; j++) { - var cellStr = (rows[j][k] || '?').toString(); - stringRows[j] = stringRows[j] || []; - stringRows[j][i] = cellStr; - columnWidths[i] = Math.max(columnWidths[i], cellStr.length); - } - }); - - // Join all elements in the row into a single string with | separators - // (appends extra spaces to each cell to make separators | aligned) - function joinRow(row, space) { - var cells = row.map(function (cell, i) { - var extraSpaces = repeat(' ', columnWidths[i] - cell.length).join(''); - return cell + extraSpaces; - }); - space = space || ' '; - return cells.join(space + '|' + space); - } - var separators = columnWidths.map(function (columnWidth) { - return repeat('-', columnWidth).join(''); - }); - var separatorRow = joinRow(separators, '-'); - var header = joinRow(columns); - var table = [header, separatorRow]; - for (var i = 0; i < rows.length; i++) { - table.push(joinRow(stringRows[i])); - } - - // Notice extra empty line at the beginning. - // Native logging hook adds "RCTLog >" at the front of every - // logged string, which would shift the header and screw up - // the table - global.nativeLoggingHook('\n' + table.join('\n'), LOG_LEVELS.info); - } - var GROUP_PAD = "\u2502"; // Box light vertical - var GROUP_OPEN = "\u2510"; // Box light down+left - var GROUP_CLOSE = "\u2518"; // Box light up+left - - var groupStack = []; - function groupFormat(prefix, msg) { - // Insert group formatting before the console message - return groupStack.join('') + prefix + ' ' + (msg || ''); - } - function consoleGroupPolyfill(label) { - global.nativeLoggingHook(groupFormat(GROUP_OPEN, label), LOG_LEVELS.info); - groupStack.push(GROUP_PAD); - } - function consoleGroupCollapsedPolyfill(label) { - global.nativeLoggingHook(groupFormat(GROUP_CLOSE, label), LOG_LEVELS.info); - groupStack.push(GROUP_PAD); - } - function consoleGroupEndPolyfill() { - groupStack.pop(); - global.nativeLoggingHook(groupFormat(GROUP_CLOSE), LOG_LEVELS.info); - } - function consoleAssertPolyfill(expression, label) { - if (!expression) { - global.nativeLoggingHook('Assertion failed: ' + label, LOG_LEVELS.error); - } - } - if (global.nativeLoggingHook) { - var originalConsole = global.console; - // Preserve the original `console` as `originalConsole` - - global.console = { - error: getNativeLogFunction(LOG_LEVELS.error), - info: getNativeLogFunction(LOG_LEVELS.info), - log: getNativeLogFunction(LOG_LEVELS.info), - warn: getNativeLogFunction(LOG_LEVELS.warn), - trace: getNativeLogFunction(LOG_LEVELS.trace), - debug: getNativeLogFunction(LOG_LEVELS.trace), - table: consoleTablePolyfill, - group: consoleGroupPolyfill, - groupEnd: consoleGroupEndPolyfill, - groupCollapsed: consoleGroupCollapsedPolyfill, - assert: consoleAssertPolyfill - }; - Object.defineProperty(console, '_isPolyfilled', { - value: true, - enumerable: false - }); - - // If available, also call the original `console` method since that is - // sometimes useful. Ex: on OS X, this will let you see rich output in - // the Safari Web Inspector console. - } else if (!global.console) { - var stub = function stub() {}; - var log = global.print || stub; - global.console = { - debug: log, - error: log, - info: log, - log: log, - trace: log, - warn: log, - assert: function assert(expression, label) { - if (!expression) { - log('Assertion failed: ' + label); - } - }, - clear: stub, - dir: stub, - dirxml: stub, - group: stub, - groupCollapsed: stub, - groupEnd: stub, - profile: stub, - profileEnd: stub, - table: stub - }; - Object.defineProperty(console, '_isPolyfilled', { - value: true, - enumerable: false - }); - } -})(typeof globalThis !== 'undefined' ? globalThis : typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : this); -(function (global) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - * @polyfill - */ - - var _inGuard = 0; - /** - * This is the error handler that is called when we encounter an exception - * when loading a module. This will report any errors encountered before - * ExceptionsManager is configured. - */ - var _globalHandler = function onError(e, isFatal) { - throw e; - }; - - /** - * The particular require runtime that we are using looks for a global - * `ErrorUtils` object and if it exists, then it requires modules with the - * error handler specified via ErrorUtils.setGlobalHandler by calling the - * require function with applyWithGuard. Since the require module is loaded - * before any of the modules, this ErrorUtils must be defined (and the handler - * set) globally before requiring anything. - */ - var ErrorUtils = { - setGlobalHandler: function setGlobalHandler(fun) { - _globalHandler = fun; - }, - getGlobalHandler: function getGlobalHandler() { - return _globalHandler; - }, - reportError: function reportError(error) { - _globalHandler && _globalHandler(error, false); - }, - reportFatalError: function reportFatalError(error) { - // NOTE: This has an untyped call site in Metro. - _globalHandler && _globalHandler(error, true); - }, - applyWithGuard: function applyWithGuard(fun, context, args, - // Unused, but some code synced from www sets it to null. - unused_onError, - // Some callers pass a name here, which we ignore. - unused_name) { - try { - _inGuard++; - /* $FlowFixMe[incompatible-call] : TODO T48204745 (1) apply(context, - * null) is fine. (2) array -> rest array should work */ - /* $FlowFixMe[incompatible-type] : TODO T48204745 (1) apply(context, - * null) is fine. (2) array -> rest array should work */ - return fun.apply(context, args); - } catch (e) { - ErrorUtils.reportError(e); - } finally { - _inGuard--; - } - return null; - }, - applyWithGuardIfNeeded: function applyWithGuardIfNeeded(fun, context, args) { - if (ErrorUtils.inGuard()) { - /* $FlowFixMe[incompatible-call] : TODO T48204745 (1) apply(context, - * null) is fine. (2) array -> rest array should work */ - /* $FlowFixMe[incompatible-type] : TODO T48204745 (1) apply(context, - * null) is fine. (2) array -> rest array should work */ - return fun.apply(context, args); - } else { - ErrorUtils.applyWithGuard(fun, context, args); - } - return null; - }, - inGuard: function inGuard() { - return !!_inGuard; - }, - guard: function guard(fun, name, context) { - var _ref; - // TODO: (moti) T48204753 Make sure this warning is never hit and remove it - types - // should be sufficient. - if (typeof fun !== 'function') { - console.warn('A function must be passed to ErrorUtils.guard, got ', fun); - return null; - } - var guardName = (_ref = name != null ? name : fun.name) != null ? _ref : ''; - /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by - * Flow's LTI update could not be added via codemod */ - function guarded() { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - return ErrorUtils.applyWithGuard(fun, context != null ? context : this, args, null, guardName); - } - return guarded; - } - }; - global.ErrorUtils = ErrorUtils; -})(typeof globalThis !== 'undefined' ? globalThis : typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : this); -(function (global) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * @polyfill - * @nolint - */ - - (function () { - 'use strict'; - - var hasOwnProperty = Object.prototype.hasOwnProperty; - - /** - * Returns an array of the given object's own enumerable entries. - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries - */ - if (typeof Object.entries !== 'function') { - Object.entries = function (object) { - // `null` and `undefined` values are not allowed. - if (object == null) { - throw new TypeError('Object.entries called on non-object'); - } - var entries = []; - for (var key in object) { - if (hasOwnProperty.call(object, key)) { - entries.push([key, object[key]]); - } - } - return entries; - }; - } - - /** - * Returns an array of the given object's own enumerable entries. - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values - */ - if (typeof Object.values !== 'function') { - Object.values = function (object) { - // `null` and `undefined` values are not allowed. - if (object == null) { - throw new TypeError('Object.values called on non-object'); - } - var values = []; - for (var key in object) { - if (hasOwnProperty.call(object, key)) { - values.push(object[key]); - } - } - return values; - }; - } - })(); -})(typeof globalThis !== 'undefined' ? globalThis : typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : this); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var _reactNative = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _reactNative2 = _$$_REQUIRE(_dependencyMap[2]); - var _App = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - _reactNative.default.start(); - - /** - * @format - */ - - _reactNative2.AppRegistry.registerComponent(_$$_REQUIRE(_dependencyMap[4]).name, function () { - return _App.default; - }); -},0,[1,2,39,470,482]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - "default": obj - }; - } - module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports; -},1,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var REMOTE_DEBUGGING_WARNING = `Bugsnag cannot initialize synchronously when running in the remote debugger. - -Error reporting is still supported, but synchronous calls after Bugsnag.start() will no-op. This means Bugsnag.leaveBreadcrumb(), Bugsnag.setUser() and all other methods will only begin to work after a short delay. -Plugins are also affected. Synchronous calls to Bugsnag.getPlugin() can be used as normal, but plugins may not report errors and set contextual data correctly in the debugger. - -This only affects the remote debugger. Execution of JS in the normal way (on the device) is not affected.`; - - // this is how some internal react native code detects whether the app is running - // in the remote debugger: - // https://github.com/facebook/react-native/blob/1f4535c17572df78e2a033890220337e5703b614/Libraries/ReactNative/PaperUIManager.js#L62-L66 - // there's no public api for this so we use the same approach - var isDebuggingRemotely = !global.nativeCallSyncHook; - var name = 'Bugsnag React Native'; - var url = 'https://github.com/bugsnag/bugsnag-js'; - var React = _$$_REQUIRE(_dependencyMap[0]); - _$$_REQUIRE(_dependencyMap[1]).__type = 'reactnativejs'; - var internalPlugins = [_$$_REQUIRE(_dependencyMap[2])(_$$_REQUIRE(_dependencyMap[3]).NativeClient), _$$_REQUIRE(_dependencyMap[4])(_$$_REQUIRE(_dependencyMap[3]).NativeClient), _$$_REQUIRE(_dependencyMap[5])(_$$_REQUIRE(_dependencyMap[3]).NativeClient), _$$_REQUIRE(_dependencyMap[6])(), _$$_REQUIRE(_dependencyMap[7]), _$$_REQUIRE(_dependencyMap[8]), _$$_REQUIRE(_dependencyMap[9])(), _$$_REQUIRE(_dependencyMap[10])(), new (_$$_REQUIRE(_dependencyMap[11]))(React)]; - var CLIENT_METHODS = Object.getOwnPropertyNames(_$$_REQUIRE(_dependencyMap[12]).prototype); - var createClientAsync = /*#__PURE__*/function () { - var _ref = _$$_REQUIRE(_dependencyMap[13])(function* (jsOpts) { - var opts = yield _$$_REQUIRE(_dependencyMap[14]).loadAsync(_$$_REQUIRE(_dependencyMap[3]).NativeClient, _$$_REQUIRE(_dependencyMap[15]).version); - return _createClient(opts, jsOpts); - }); - return function createClientAsync(_x) { - return _ref.apply(this, arguments); - }; - }(); - var createClient = function createClient(jsOpts) { - var opts = _$$_REQUIRE(_dependencyMap[14]).load(_$$_REQUIRE(_dependencyMap[3]).NativeClient, _$$_REQUIRE(_dependencyMap[15]).version); - return _createClient(opts, jsOpts); - }; - var _createClient = function _createClient(opts, jsOpts) { - if (jsOpts && typeof jsOpts === 'object') { - // mutate the options with anything supplied in JS. This will throw - Object.keys(jsOpts).forEach(function (k) { - opts[k] = jsOpts[k]; - }); - } - var bugsnag = new (_$$_REQUIRE(_dependencyMap[12]))(opts, _$$_REQUIRE(_dependencyMap[14]).schema, internalPlugins, { - name: name, - version: _$$_REQUIRE(_dependencyMap[15]).version, - url: url - }); - - // if we let JS keep error breadcrumbs, it results in an error containing itself as a breadcrumb - if (bugsnag._config.enabledBreadcrumbTypes !== null) { - bugsnag._config.enabledBreadcrumbTypes = bugsnag._config.enabledBreadcrumbTypes.filter(function (t) { - return t !== 'error'; - }); - } - bugsnag._setDelivery(function (client) { - return _$$_REQUIRE(_dependencyMap[16])(client, _$$_REQUIRE(_dependencyMap[3]).NativeClient); - }); - if (opts.user && opts.user !== opts._originalValues.user) { - bugsnag.setUser(opts.user.id, opts.user.email, opts.user.name); - } - if (opts.context && opts.context !== opts._originalValues.context) { - bugsnag.setContext(opts.context); - } - if (opts.featureFlags && opts.featureFlags !== opts._originalValues.featureFlags) { - bugsnag.addFeatureFlags(opts.featureFlags); - } - if (opts.metadata && opts.metadata !== opts._originalValues.metadata) { - Object.keys(opts.metadata).forEach(function (k) { - return bugsnag.addMetadata(k, opts.metadata[k]); - }); - } - if (opts.codeBundleId) { - _$$_REQUIRE(_dependencyMap[3]).NativeClient.updateCodeBundleId(opts.codeBundleId); - } - if (bugsnag._config.autoTrackSessions) bugsnag.resumeSession(); - bugsnag._logger.debug('Loaded!'); - return bugsnag; - }; - var Bugsnag = { - _client: null, - start: function start(opts) { - if (Bugsnag._client) { - Bugsnag._client._logger.warn('Bugsnag.start() was called more than once. Ignoring.'); - return Bugsnag._client; - } - if (!isDebuggingRemotely) { - Bugsnag._client = createClient(opts); - return Bugsnag._client; - } - console.warn(REMOTE_DEBUGGING_WARNING); - var initialised = false; - var stubSchema = Object.assign({}, _$$_REQUIRE(_dependencyMap[14]).schema); - // remove the api key from the schema so it doesn't get validated – we know we don't - // have one at this point, and the only other alternative is to use a fake (but valid) one - delete stubSchema.apiKey; - var stubClient = new (_$$_REQUIRE(_dependencyMap[12]))(Object.assign({}, opts, { - autoTrackSessions: false, - autoDetectErrors: false, - enabledBreadcrumbTypes: [] - }), stubSchema, internalPlugins, { - name: name, - version: _$$_REQUIRE(_dependencyMap[15]).version, - url: url - }); - CLIENT_METHODS.forEach(function (m) { - if (/^_/.test(m)) return; - stubClient[m] = new Proxy(stubClient[m], { - apply: function apply(target, thisArg, args) { - if (!initialised) { - console.log(`Synchronous call to Bugsnag.${m}()`); - } - return Reflect.apply(target, thisArg, args); - } - }); - }); - Bugsnag._client = stubClient; - createClientAsync(opts).then(function (client) { - initialised = true; - Bugsnag._client = client; - }); - return stubClient; - }, - isStarted: function isStarted() { - return Bugsnag._client != null; - } - }; - CLIENT_METHODS.forEach(function (m) { - if (/^_/.test(m)) return; - Bugsnag[m] = function () { - if (!Bugsnag._client) return console.warn(`Bugsnag.${m}() was called before Bugsnag.start()`); - Bugsnag._client._depth += 1; - var ret = Bugsnag._client[m].apply(Bugsnag._client, arguments); - Bugsnag._client._depth -= 1; - return ret; - }; - }); - module.exports = Bugsnag; - module.exports.Client = _$$_REQUIRE(_dependencyMap[12]); - module.exports.Event = _$$_REQUIRE(_dependencyMap[1]); - module.exports.Session = _$$_REQUIRE(_dependencyMap[17]); - module.exports.Breadcrumb = _$$_REQUIRE(_dependencyMap[18]); - - // Export a "default" property for compatibility with ESM imports - module.exports.default = Bugsnag; -},2,[3,5,37,38,440,441,443,444,446,447,449,450,451,341,466,468,469,459,458]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - 'use strict'; - - { - module.exports = _$$_REQUIRE(_dependencyMap[0]); - } -},3,[4]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - 'use strict'; - - var l = Symbol.for("react.element"), - n = Symbol.for("react.portal"), - p = Symbol.for("react.fragment"), - q = Symbol.for("react.strict_mode"), - r = Symbol.for("react.profiler"), - t = Symbol.for("react.provider"), - u = Symbol.for("react.context"), - v = Symbol.for("react.forward_ref"), - w = Symbol.for("react.suspense"), - x = Symbol.for("react.memo"), - y = Symbol.for("react.lazy"), - z = Symbol.iterator; - function A(a) { - if (null === a || "object" !== typeof a) return null; - a = z && a[z] || a["@@iterator"]; - return "function" === typeof a ? a : null; - } - var B = { - isMounted: function isMounted() { - return false; - }, - enqueueForceUpdate: function enqueueForceUpdate() {}, - enqueueReplaceState: function enqueueReplaceState() {}, - enqueueSetState: function enqueueSetState() {} - }, - C = Object.assign, - D = {}; - function E(a, b, e) { - this.props = a; - this.context = b; - this.refs = D; - this.updater = e || B; - } - E.prototype.isReactComponent = {}; - E.prototype.setState = function (a, b) { - if ("object" !== typeof a && "function" !== typeof a && null != a) throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables."); - this.updater.enqueueSetState(this, a, b, "setState"); - }; - E.prototype.forceUpdate = function (a) { - this.updater.enqueueForceUpdate(this, a, "forceUpdate"); - }; - function F() {} - F.prototype = E.prototype; - function G(a, b, e) { - this.props = a; - this.context = b; - this.refs = D; - this.updater = e || B; - } - var H = G.prototype = new F(); - H.constructor = G; - C(H, E.prototype); - H.isPureReactComponent = true; - var I = Array.isArray, - J = Object.prototype.hasOwnProperty, - K = { - current: null - }, - L = { - key: true, - ref: true, - __self: true, - __source: true - }; - function M(a, b, e) { - var d, - c = {}, - k = null, - h = null; - if (null != b) for (d in undefined !== b.ref && (h = b.ref), undefined !== b.key && (k = "" + b.key), b) J.call(b, d) && !L.hasOwnProperty(d) && (c[d] = b[d]); - var g = arguments.length - 2; - if (1 === g) c.children = e;else if (1 < g) { - for (var f = Array(g), m = 0; m < g; m++) f[m] = arguments[m + 2]; - c.children = f; - } - if (a && a.defaultProps) for (d in g = a.defaultProps, g) undefined === c[d] && (c[d] = g[d]); - return { - $$typeof: l, - type: a, - key: k, - ref: h, - props: c, - _owner: K.current - }; - } - function N(a, b) { - return { - $$typeof: l, - type: a.type, - key: b, - ref: a.ref, - props: a.props, - _owner: a._owner - }; - } - function O(a) { - return "object" === typeof a && null !== a && a.$$typeof === l; - } - function escape(a) { - var b = { - "=": "=0", - ":": "=2" - }; - return "$" + a.replace(/[=:]/g, function (a) { - return b[a]; - }); - } - var P = /\/+/g; - function Q(a, b) { - return "object" === typeof a && null !== a && null != a.key ? escape("" + a.key) : b.toString(36); - } - function R(a, b, e, d, c) { - var k = typeof a; - if ("undefined" === k || "boolean" === k) a = null; - var h = false; - if (null === a) h = true;else switch (k) { - case "string": - case "number": - h = true; - break; - case "object": - switch (a.$$typeof) { - case l: - case n: - h = true; - } - } - if (h) return h = a, c = c(h), a = "" === d ? "." + Q(h, 0) : d, I(c) ? (e = "", null != a && (e = a.replace(P, "$&/") + "/"), R(c, b, e, "", function (a) { - return a; - })) : null != c && (O(c) && (c = N(c, e + (!c.key || h && h.key === c.key ? "" : ("" + c.key).replace(P, "$&/") + "/") + a)), b.push(c)), 1; - h = 0; - d = "" === d ? "." : d + ":"; - if (I(a)) for (var g = 0; g < a.length; g++) { - k = a[g]; - var f = d + Q(k, g); - h += R(k, b, e, f, c); - } else if (f = A(a), "function" === typeof f) for (a = f.call(a), g = 0; !(k = a.next()).done;) k = k.value, f = d + Q(k, g++), h += R(k, b, e, f, c);else if ("object" === k) throw b = String(a), Error("Objects are not valid as a React child (found: " + ("[object Object]" === b ? "object with keys {" + Object.keys(a).join(", ") + "}" : b) + "). If you meant to render a collection of children, use an array instead."); - return h; - } - function S(a, b, e) { - if (null == a) return a; - var d = [], - c = 0; - R(a, d, "", "", function (a) { - return b.call(e, a, c++); - }); - return d; - } - function T(a) { - if (-1 === a._status) { - var b = a._result; - b = b(); - b.then(function (b) { - if (0 === a._status || -1 === a._status) a._status = 1, a._result = b; - }, function (b) { - if (0 === a._status || -1 === a._status) a._status = 2, a._result = b; - }); - -1 === a._status && (a._status = 0, a._result = b); - } - if (1 === a._status) return a._result.default; - throw a._result; - } - var U = { - current: null - }, - V = { - transition: null - }, - W = { - ReactCurrentDispatcher: U, - ReactCurrentBatchConfig: V, - ReactCurrentOwner: K - }; - exports.Children = { - map: S, - forEach: function forEach(a, b, e) { - S(a, function () { - b.apply(this, arguments); - }, e); - }, - count: function count(a) { - var b = 0; - S(a, function () { - b++; - }); - return b; - }, - toArray: function toArray(a) { - return S(a, function (a) { - return a; - }) || []; - }, - only: function only(a) { - if (!O(a)) throw Error("React.Children.only expected to receive a single React element child."); - return a; - } - }; - exports.Component = E; - exports.Fragment = p; - exports.Profiler = r; - exports.PureComponent = G; - exports.StrictMode = q; - exports.Suspense = w; - exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = W; - exports.cloneElement = function (a, b, e) { - if (null === a || undefined === a) throw Error("React.cloneElement(...): The argument must be a React element, but you passed " + a + "."); - var d = C({}, a.props), - c = a.key, - k = a.ref, - h = a._owner; - if (null != b) { - undefined !== b.ref && (k = b.ref, h = K.current); - undefined !== b.key && (c = "" + b.key); - if (a.type && a.type.defaultProps) var g = a.type.defaultProps; - for (f in b) J.call(b, f) && !L.hasOwnProperty(f) && (d[f] = undefined === b[f] && undefined !== g ? g[f] : b[f]); - } - var f = arguments.length - 2; - if (1 === f) d.children = e;else if (1 < f) { - g = Array(f); - for (var m = 0; m < f; m++) g[m] = arguments[m + 2]; - d.children = g; - } - return { - $$typeof: l, - type: a.type, - key: c, - ref: k, - props: d, - _owner: h - }; - }; - exports.createContext = function (a) { - a = { - $$typeof: u, - _currentValue: a, - _currentValue2: a, - _threadCount: 0, - Provider: null, - Consumer: null, - _defaultValue: null, - _globalName: null - }; - a.Provider = { - $$typeof: t, - _context: a - }; - return a.Consumer = a; - }; - exports.createElement = M; - exports.createFactory = function (a) { - var b = M.bind(null, a); - b.type = a; - return b; - }; - exports.createRef = function () { - return { - current: null - }; - }; - exports.forwardRef = function (a) { - return { - $$typeof: v, - render: a - }; - }; - exports.isValidElement = O; - exports.lazy = function (a) { - return { - $$typeof: y, - _payload: { - _status: -1, - _result: a - }, - _init: T - }; - }; - exports.memo = function (a, b) { - return { - $$typeof: x, - type: a, - compare: undefined === b ? null : b - }; - }; - exports.startTransition = function (a) { - var b = V.transition; - V.transition = {}; - try { - a(); - } finally { - V.transition = b; - } - }; - exports.unstable_act = function () { - throw Error("act(...) is not supported in production builds of React."); - }; - exports.useCallback = function (a, b) { - return U.current.useCallback(a, b); - }; - exports.useContext = function (a) { - return U.current.useContext(a); - }; - exports.useDebugValue = function () {}; - exports.useDeferredValue = function (a) { - return U.current.useDeferredValue(a); - }; - exports.useEffect = function (a, b) { - return U.current.useEffect(a, b); - }; - exports.useId = function () { - return U.current.useId(); - }; - exports.useImperativeHandle = function (a, b, e) { - return U.current.useImperativeHandle(a, b, e); - }; - exports.useInsertionEffect = function (a, b) { - return U.current.useInsertionEffect(a, b); - }; - exports.useLayoutEffect = function (a, b) { - return U.current.useLayoutEffect(a, b); - }; - exports.useMemo = function (a, b) { - return U.current.useMemo(a, b); - }; - exports.useReducer = function (a, b, e) { - return U.current.useReducer(a, b, e); - }; - exports.useRef = function (a) { - return U.current.useRef(a); - }; - exports.useState = function (a) { - return U.current.useState(a); - }; - exports.useSyncExternalStore = function (a, b, e) { - return U.current.useSyncExternalStore(a, b, e); - }; - exports.useTransition = function () { - return U.current.useTransition(); - }; - exports.version = "18.2.0"; -},4,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var Event = /*#__PURE__*/function () { - "use strict"; - - function Event(errorClass, errorMessage) { - var stacktrace = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; - var handledState = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : defaultHandledState(); - var originalError = arguments.length > 4 ? arguments[4] : undefined; - _$$_REQUIRE(_dependencyMap[0])(this, Event); - this.apiKey = undefined; - this.context = undefined; - this.groupingHash = undefined; - this.originalError = originalError; - this._handledState = handledState; - this.severity = this._handledState.severity; - this.unhandled = this._handledState.unhandled; - this.app = {}; - this.device = {}; - this.request = {}; - this.breadcrumbs = []; - this.threads = []; - this._metadata = {}; - this._features = []; - this._featuresIndex = {}; - this._user = {}; - this._session = undefined; - this.errors = [createBugsnagError(errorClass, errorMessage, Event.__type, stacktrace)]; - - // Flags. - // Note these are not initialised unless they are used - // to save unnecessary bytes in the browser bundle - - /* this.attemptImmediateDelivery, default: true */ - } - _$$_REQUIRE(_dependencyMap[1])(Event, [{ - key: "addMetadata", - value: function addMetadata(section, keyOrObj, maybeVal) { - return _$$_REQUIRE(_dependencyMap[2]).add(this._metadata, section, keyOrObj, maybeVal); - } - }, { - key: "getMetadata", - value: function getMetadata(section, key) { - return _$$_REQUIRE(_dependencyMap[2]).get(this._metadata, section, key); - } - }, { - key: "clearMetadata", - value: function clearMetadata(section, key) { - return _$$_REQUIRE(_dependencyMap[2]).clear(this._metadata, section, key); - } - }, { - key: "addFeatureFlag", - value: function addFeatureFlag(name) { - var variant = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - _$$_REQUIRE(_dependencyMap[3]).add(this._features, this._featuresIndex, name, variant); - } - }, { - key: "addFeatureFlags", - value: function addFeatureFlags(featureFlags) { - _$$_REQUIRE(_dependencyMap[3]).merge(this._features, featureFlags, this._featuresIndex); - } - }, { - key: "getFeatureFlags", - value: function getFeatureFlags() { - return _$$_REQUIRE(_dependencyMap[3]).toEventApi(this._features); - } - }, { - key: "clearFeatureFlag", - value: function clearFeatureFlag(name) { - _$$_REQUIRE(_dependencyMap[3]).clear(this._features, this._featuresIndex, name); - } - }, { - key: "clearFeatureFlags", - value: function clearFeatureFlags() { - this._features = []; - this._featuresIndex = {}; - } - }, { - key: "getUser", - value: function getUser() { - return this._user; - } - }, { - key: "setUser", - value: function setUser(id, email, name) { - this._user = { - id: id, - email: email, - name: name - }; - } - }, { - key: "toJSON", - value: function toJSON() { - return { - payloadVersion: '4', - exceptions: _$$_REQUIRE(_dependencyMap[4])(this.errors, function (er) { - return _$$_REQUIRE(_dependencyMap[5])({}, er, { - message: er.errorMessage - }); - }), - severity: this.severity, - unhandled: this._handledState.unhandled, - severityReason: this._handledState.severityReason, - app: this.app, - device: this.device, - request: this.request, - breadcrumbs: this.breadcrumbs, - context: this.context, - groupingHash: this.groupingHash, - metaData: this._metadata, - user: this._user, - session: this._session, - featureFlags: this.getFeatureFlags() - }; - } - }]); - return Event; - }(); // takes a stacktrace.js style stackframe (https://github.com/stacktracejs/stackframe) - // and returns a Bugsnag compatible stackframe (https://docs.bugsnag.com/api/error-reporting/#json-payload) - var formatStackframe = function formatStackframe(frame) { - var f = { - file: frame.fileName, - method: normaliseFunctionName(frame.functionName), - lineNumber: frame.lineNumber, - columnNumber: frame.columnNumber, - code: undefined, - inProject: undefined - }; - // Some instances result in no file: - // - calling notify() from chrome's terminal results in no file/method. - // - non-error exception thrown from global code in FF - // This adds one. - if (f.lineNumber > -1 && !f.file && !f.method) { - f.file = 'global code'; - } - return f; - }; - var normaliseFunctionName = function normaliseFunctionName(name) { - return /^global code$/i.test(name) ? 'global code' : name; - }; - var defaultHandledState = function defaultHandledState() { - return { - unhandled: false, - severity: 'warning', - severityReason: { - type: 'handledException' - } - }; - }; - var ensureString = function ensureString(str) { - return typeof str === 'string' ? str : ''; - }; - function createBugsnagError(errorClass, errorMessage, type, stacktrace) { - return { - errorClass: ensureString(errorClass), - errorMessage: ensureString(errorMessage), - type: type, - stacktrace: _$$_REQUIRE(_dependencyMap[6])(stacktrace, function (accum, frame) { - var f = formatStackframe(frame); - // don't include a stackframe if none of its properties are defined - try { - if (JSON.stringify(f) === '{}') return accum; - return accum.concat(f); - } catch (e) { - return accum; - } - }, []) - }; - } - function getCauseStack(error) { - if (error.cause) { - return [error].concat(_$$_REQUIRE(_dependencyMap[7])(getCauseStack(error.cause))); - } else { - return [error]; - } - } - - // Helpers - - Event.getStacktrace = function (error, errorFramesToSkip, backtraceFramesToSkip) { - if (_$$_REQUIRE(_dependencyMap[8])(error)) return _$$_REQUIRE(_dependencyMap[9]).parse(error).slice(errorFramesToSkip); - // error wasn't provided or didn't have a stacktrace so try to walk the callstack - try { - return _$$_REQUIRE(_dependencyMap[10])(_$$_REQUIRE(_dependencyMap[11]).backtrace(), function (frame) { - return (frame.functionName || '').indexOf('StackGenerator$$') === -1; - }).slice(1 + backtraceFramesToSkip); - } catch (e) { - return []; - } - }; - Event.create = function (maybeError, tolerateNonErrors, handledState, component) { - var errorFramesToSkip = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0; - var logger = arguments.length > 5 ? arguments[5] : undefined; - var _normaliseError = normaliseError(maybeError, tolerateNonErrors, component, logger), - _normaliseError2 = _$$_REQUIRE(_dependencyMap[12])(_normaliseError, 2), - error = _normaliseError2[0], - internalFrames = _normaliseError2[1]; - var event; - try { - var stacktrace = Event.getStacktrace(error, - // if an error was created/throw in the normaliseError() function, we need to - // tell the getStacktrace() function to skip the number of frames we know will - // be from our own functions. This is added to the number of frames deep we - // were told about - internalFrames > 0 ? 1 + internalFrames + errorFramesToSkip : 0, - // if there's no stacktrace, the callstack may be walked to generated one. - // this is how many frames should be removed because they come from our library - 1 + errorFramesToSkip); - event = new Event(error.name, error.message, stacktrace, handledState, maybeError); - } catch (e) { - event = new Event(error.name, error.message, [], handledState, maybeError); - } - if (error.name === 'InvalidError') { - event.addMetadata(`${component}`, 'non-error parameter', makeSerialisable(maybeError)); - } - if (error.cause) { - var _event$errors; - var causes = getCauseStack(error).slice(1); - var normalisedCauses = _$$_REQUIRE(_dependencyMap[4])(causes, function (cause) { - // Only get stacktrace for error causes that are a valid JS Error and already have a stack - var stacktrace = _$$_REQUIRE(_dependencyMap[13])(cause) && _$$_REQUIRE(_dependencyMap[8])(cause) ? _$$_REQUIRE(_dependencyMap[9]).parse(cause) : []; - var _normaliseError3 = normaliseError(cause, true, 'error cause'), - _normaliseError4 = _$$_REQUIRE(_dependencyMap[12])(_normaliseError3, 1), - error = _normaliseError4[0]; - if (error.name === 'InvalidError') event.addMetadata('error cause', makeSerialisable(cause)); - return createBugsnagError(error.name, error.message, Event.__type, stacktrace); - }); - (_event$errors = event.errors).push.apply(_event$errors, _$$_REQUIRE(_dependencyMap[7])(normalisedCauses)); - } - return event; - }; - var makeSerialisable = function makeSerialisable(err) { - if (err === null) return 'null'; - if (err === undefined) return 'undefined'; - return err; - }; - var normaliseError = function normaliseError(maybeError, tolerateNonErrors, component, logger) { - var error; - var internalFrames = 0; - var createAndLogInputError = function createAndLogInputError(reason) { - var verb = component === 'error cause' ? 'was' : 'received'; - if (logger) logger.warn(`${component} ${verb} a non-error: "${reason}"`); - var err = new Error(`${component} ${verb} a non-error. See "${component}" tab for more detail.`); - err.name = 'InvalidError'; - return err; - }; - - // In some cases: - // - // - the promise rejection handler (both in the browser and node) - // - the node uncaughtException handler - // - // We are really limited in what we can do to get a stacktrace. So we use the - // tolerateNonErrors option to ensure that the resulting error communicates as - // such. - if (!tolerateNonErrors) { - if (_$$_REQUIRE(_dependencyMap[13])(maybeError)) { - error = maybeError; - } else { - error = createAndLogInputError(typeof maybeError); - internalFrames += 2; - } - } else { - switch (typeof maybeError) { - case 'string': - case 'number': - case 'boolean': - error = new Error(String(maybeError)); - internalFrames += 1; - break; - case 'function': - error = createAndLogInputError('function'); - internalFrames += 2; - break; - case 'object': - if (maybeError !== null && _$$_REQUIRE(_dependencyMap[13])(maybeError)) { - error = maybeError; - } else if (maybeError !== null && hasNecessaryFields(maybeError)) { - error = new Error(maybeError.message || maybeError.errorMessage); - error.name = maybeError.name || maybeError.errorClass; - internalFrames += 1; - } else { - error = createAndLogInputError(maybeError === null ? 'null' : 'unsupported object'); - internalFrames += 2; - } - break; - default: - error = createAndLogInputError('nothing'); - internalFrames += 2; - } - } - if (!_$$_REQUIRE(_dependencyMap[8])(error)) { - // in IE10/11 a new Error() doesn't have a stacktrace until you throw it, so try that here - try { - throw error; - } catch (e) { - if (_$$_REQUIRE(_dependencyMap[8])(e)) { - error = e; - // if the error only got a stacktrace after we threw it here, we know it - // will only have one extra internal frame from this function, regardless - // of whether it went through createAndLogInputError() or not - internalFrames = 1; - } - } - } - return [error, internalFrames]; - }; - - // default value for stacktrace.type - Event.__type = 'browserjs'; - var hasNecessaryFields = function hasNecessaryFields(error) { - return (typeof error.name === 'string' || typeof error.errorClass === 'string') && (typeof error.message === 'string' || typeof error.errorMessage === 'string'); - }; - module.exports = Event; -},5,[6,7,11,14,17,13,18,20,26,27,19,30,31,35]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports; -},6,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, _$$_REQUIRE(_dependencyMap[0])(descriptor.key), descriptor); - } - } - function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; - } - module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports; -},7,[8]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _toPropertyKey(arg) { - var key = _$$_REQUIRE(_dependencyMap[0])(arg, "string"); - return _$$_REQUIRE(_dependencyMap[1])["default"](key) === "symbol" ? key : String(key); - } - module.exports = _toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports; -},8,[9,10]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _toPrimitive(input, hint) { - if (_$$_REQUIRE(_dependencyMap[0])["default"](input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (_$$_REQUIRE(_dependencyMap[0])["default"](res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return (hint === "string" ? String : Number)(input); - } - module.exports = _toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports; -},9,[10]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _typeof(o) { - "@babel/helpers - typeof"; - - return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { - return typeof o; - } : function (o) { - return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; - }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(o); - } - module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; -},10,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var add = function add(state, section, keyOrObj, maybeVal) { - if (!section) return; - var updates; - - // addMetadata("section", null) -> clears section - if (keyOrObj === null) return clear(state, section); - - // normalise the two supported input types into object form - if (typeof keyOrObj === 'object') updates = keyOrObj; - if (typeof keyOrObj === 'string') updates = _$$_REQUIRE(_dependencyMap[0])({}, keyOrObj, maybeVal); - - // exit if we don't have an updates object at this point - if (!updates) return; - - // ensure a section with this name exists - if (!state[section]) state[section] = {}; - - // merge the updates with the existing section - state[section] = _$$_REQUIRE(_dependencyMap[1])({}, state[section], updates); - }; - var get = function get(state, section, key) { - if (typeof section !== 'string') return undefined; - if (!key) { - return state[section]; - } - if (state[section]) { - return state[section][key]; - } - return undefined; - }; - var clear = function clear(state, section, key) { - if (typeof section !== 'string') return; - - // clear an entire section - if (!key) { - delete state[section]; - return; - } - - // clear a single value from a section - if (state[section]) { - delete state[section][key]; - } - }; - module.exports = { - add: add, - get: get, - clear: clear - }; -},11,[12,13]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _defineProperty(obj, key, value) { - key = _$$_REQUIRE(_dependencyMap[0])(key); - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - return obj; - } - module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports; -},12,[8]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - // extends helper from babel - // https://github.com/babel/babel/blob/916429b516e6466fd06588ee820e40e025d7f3a3/packages/babel-helpers/src/helpers.js#L377-L393 - module.exports = function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - return target; - }; -},13,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function add(existingFeatures, existingFeatureKeys, name, variant) { - if (typeof name !== 'string') { - return; - } - if (variant === undefined) { - variant = null; - } else if (variant !== null && typeof variant !== 'string') { - variant = _$$_REQUIRE(_dependencyMap[0])(variant); - } - var existingIndex = existingFeatureKeys[name]; - if (typeof existingIndex === 'number') { - existingFeatures[existingIndex] = { - name: name, - variant: variant - }; - return; - } - existingFeatures.push({ - name: name, - variant: variant - }); - existingFeatureKeys[name] = existingFeatures.length - 1; - } - function merge(existingFeatures, newFeatures, existingFeatureKeys) { - if (!_$$_REQUIRE(_dependencyMap[1])(newFeatures)) { - return; - } - for (var i = 0; i < newFeatures.length; ++i) { - var feature = newFeatures[i]; - if (feature === null || typeof feature !== 'object') { - continue; - } - - // 'add' will handle if 'name' doesn't exist & 'variant' is optional - add(existingFeatures, existingFeatureKeys, feature.name, feature.variant); - } - return existingFeatures; - } - - // convert feature flags from a map of 'name -> variant' into the format required - // by the Bugsnag Event API: - // [{ featureFlag: 'name', variant: 'variant' }, { featureFlag: 'name 2' }] - function toEventApi(featureFlags) { - return _$$_REQUIRE(_dependencyMap[2])(_$$_REQUIRE(_dependencyMap[3])(featureFlags, Boolean), function (_ref) { - var name = _ref.name, - variant = _ref.variant; - var flag = { - featureFlag: name - }; - - // don't add a 'variant' property unless there's actually a value - if (typeof variant === 'string') { - flag.variant = variant; - } - return flag; - }); - } - function clear(features, featuresIndex, name) { - var existingIndex = featuresIndex[name]; - if (typeof existingIndex === 'number') { - features[existingIndex] = null; - delete featuresIndex[name]; - } - } - module.exports = { - add: add, - clear: clear, - merge: merge, - toEventApi: toEventApi - }; -},14,[15,16,17,19]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - module.exports = function (data, replacer, space, opts) { - var redactedKeys = opts && opts.redactedKeys ? opts.redactedKeys : []; - var redactedPaths = opts && opts.redactedPaths ? opts.redactedPaths : []; - return JSON.stringify(prepareObjForSerialization(data, redactedKeys, redactedPaths), replacer, space); - }; - var MAX_DEPTH = 20; - var MAX_EDGES = 25000; - var MIN_PRESERVED_DEPTH = 8; - var REPLACEMENT_NODE = '...'; - function isError(o) { - return o instanceof Error || /^\[object (Error|(Dom)?Exception)\]$/.test(Object.prototype.toString.call(o)); - } - function throwsMessage(err) { - return '[Throws: ' + (err ? err.message : '?') + ']'; - } - function find(haystack, needle) { - for (var i = 0, len = haystack.length; i < len; i++) { - if (haystack[i] === needle) return true; - } - return false; - } - - // returns true if the string `path` starts with any of the provided `paths` - function isDescendent(paths, path) { - for (var i = 0, len = paths.length; i < len; i++) { - if (path.indexOf(paths[i]) === 0) return true; - } - return false; - } - function shouldRedact(patterns, key) { - for (var i = 0, len = patterns.length; i < len; i++) { - if (typeof patterns[i] === 'string' && patterns[i].toLowerCase() === key.toLowerCase()) return true; - if (patterns[i] && typeof patterns[i].test === 'function' && patterns[i].test(key)) return true; - } - return false; - } - function isArray(obj) { - return Object.prototype.toString.call(obj) === '[object Array]'; - } - function safelyGetProp(obj, prop) { - try { - return obj[prop]; - } catch (err) { - return throwsMessage(err); - } - } - function prepareObjForSerialization(obj, redactedKeys, redactedPaths) { - var seen = []; // store references to objects we have seen before - var edges = 0; - function visit(obj, path) { - function edgesExceeded() { - return path.length > MIN_PRESERVED_DEPTH && edges > MAX_EDGES; - } - edges++; - if (path.length > MAX_DEPTH) return REPLACEMENT_NODE; - if (edgesExceeded()) return REPLACEMENT_NODE; - if (obj === null || typeof obj !== 'object') return obj; - if (find(seen, obj)) return '[Circular]'; - seen.push(obj); - if (typeof obj.toJSON === 'function') { - try { - // we're not going to count this as an edge because it - // replaces the value of the currently visited object - edges--; - var fResult = visit(obj.toJSON(), path); - seen.pop(); - return fResult; - } catch (err) { - return throwsMessage(err); - } - } - var er = isError(obj); - if (er) { - edges--; - var eResult = visit({ - name: obj.name, - message: obj.message - }, path); - seen.pop(); - return eResult; - } - if (isArray(obj)) { - var aResult = []; - for (var i = 0, len = obj.length; i < len; i++) { - if (edgesExceeded()) { - aResult.push(REPLACEMENT_NODE); - break; - } - aResult.push(visit(obj[i], path.concat('[]'))); - } - seen.pop(); - return aResult; - } - var result = {}; - try { - for (var prop in obj) { - if (!Object.prototype.hasOwnProperty.call(obj, prop)) continue; - if (isDescendent(redactedPaths, path.join('.')) && shouldRedact(redactedKeys, prop)) { - result[prop] = '[REDACTED]'; - continue; - } - if (edgesExceeded()) { - result[prop] = REPLACEMENT_NODE; - break; - } - result[prop] = visit(safelyGetProp(obj, prop), path.concat(prop)); - } - } catch (e) {} - seen.pop(); - return result; - } - return visit(obj, []); - } -},15,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - // Array#isArray - module.exports = function (obj) { - return Object.prototype.toString.call(obj) === '[object Array]'; - }; -},16,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - // Array#map - module.exports = function (arr, fn) { - return _$$_REQUIRE(_dependencyMap[0])(arr, function (accum, item, i, arr) { - return accum.concat(fn(item, i, arr)); - }, []); - }; -},17,[18]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - // Array#reduce - module.exports = function (arr, fn, accum) { - var val = accum; - for (var i = 0, len = arr.length; i < len; i++) val = fn(val, arr[i], i, arr); - return val; - }; -},18,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - // Array#filter - module.exports = function (arr, fn) { - return _$$_REQUIRE(_dependencyMap[0])(arr, function (accum, item, i, arr) { - return !fn(item, i, arr) ? accum : accum.concat(item); - }, []); - }; -},19,[18]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _toConsumableArray(arr) { - return _$$_REQUIRE(_dependencyMap[0])(arr) || _$$_REQUIRE(_dependencyMap[1])(arr) || _$$_REQUIRE(_dependencyMap[2])(arr) || _$$_REQUIRE(_dependencyMap[3])(); - } - module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports; -},20,[21,23,24,25]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) return _$$_REQUIRE(_dependencyMap[0])(arr); - } - module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports; -},21,[22]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) len = arr.length; - for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; - return arr2; - } - module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; -},22,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _iterableToArray(iter) { - if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); - } - module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; -},23,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _unsupportedIterableToArray(o, minLen) { - if (!o) return; - if (typeof o === "string") return _$$_REQUIRE(_dependencyMap[0])(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _$$_REQUIRE(_dependencyMap[0])(o, minLen); - } - module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; -},24,[22]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports; -},25,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - // Given `err` which may be an error, does it have a stack property which is a string? - module.exports = function (err) { - return !!err && (!!err.stack || !!err.stacktrace || !!err['opera#sourceloc']) && typeof (err.stack || err.stacktrace || err['opera#sourceloc']) === 'string' && err.stack !== `${err.name}: ${err.message}`; - }; -},26,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - module.exports = _$$_REQUIRE(_dependencyMap[0]); -},27,[28]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - (function (root, factory) { - 'use strict'; - - // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers. - - /* istanbul ignore next */ - if (typeof define === 'function' && define.amd) { - define('error-stack-parser', ['stackframe'], factory); - } else if (typeof exports === 'object') { - module.exports = factory(_$$_REQUIRE(_dependencyMap[0])); - } else { - root.ErrorStackParser = factory(root.StackFrame); - } - })(this, function ErrorStackParser(StackFrame) { - 'use strict'; - - var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\S+:\d+/; - var CHROME_IE_STACK_REGEXP = /^\s*at .*(\S+:\d+|\(native\))/m; - var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\[native code])?$/; - return { - /** - * Given an Error object, extract the most information from it. - * - * @param {Error} error object - * @return {Array} of StackFrames - */ - parse: function ErrorStackParser$$parse(error) { - if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') { - return this.parseOpera(error); - } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) { - return this.parseV8OrIE(error); - } else if (error.stack) { - return this.parseFFOrSafari(error); - } else { - throw new Error('Cannot parse given Error object'); - } - }, - // Separate line and column numbers from a string of the form: (URI:Line:Column) - extractLocation: function ErrorStackParser$$extractLocation(urlLike) { - // Fail-fast but return locations like "(native)" - if (urlLike.indexOf(':') === -1) { - return [urlLike]; - } - var regExp = /(.+?)(?::(\d+))?(?::(\d+))?$/; - var parts = regExp.exec(urlLike.replace(/[()]/g, '')); - return [parts[1], parts[2] || undefined, parts[3] || undefined]; - }, - parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) { - var filtered = error.stack.split('\n').filter(function (line) { - return !!line.match(CHROME_IE_STACK_REGEXP); - }, this); - return filtered.map(function (line) { - if (line.indexOf('(eval ') > -1) { - // Throw away eval information until we implement stacktrace.js/stackframe#8 - line = line.replace(/eval code/g, 'eval').replace(/(\(eval at [^()]*)|(,.*$)/g, ''); - } - var sanitizedLine = line.replace(/^\s+/, '').replace(/\(eval code/g, '(').replace(/^.*?\s+/, ''); - - // capture and preseve the parenthesized location "(/foo/my bar.js:12:87)" in - // case it has spaces in it, as the string is split on \s+ later on - var location = sanitizedLine.match(/ (\(.+\)$)/); - - // remove the parenthesized location from the line, if it was matched - sanitizedLine = location ? sanitizedLine.replace(location[0], '') : sanitizedLine; - - // if a location was matched, pass it to extractLocation() otherwise pass all sanitizedLine - // because this line doesn't have function name - var locationParts = this.extractLocation(location ? location[1] : sanitizedLine); - var functionName = location && sanitizedLine || undefined; - var fileName = ['eval', ''].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0]; - return new StackFrame({ - functionName: functionName, - fileName: fileName, - lineNumber: locationParts[1], - columnNumber: locationParts[2], - source: line - }); - }, this); - }, - parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) { - var filtered = error.stack.split('\n').filter(function (line) { - return !line.match(SAFARI_NATIVE_CODE_REGEXP); - }, this); - return filtered.map(function (line) { - // Throw away eval information until we implement stacktrace.js/stackframe#8 - if (line.indexOf(' > eval') > -1) { - line = line.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g, ':$1'); - } - if (line.indexOf('@') === -1 && line.indexOf(':') === -1) { - // Safari eval frames only have function names and nothing else - return new StackFrame({ - functionName: line - }); - } else { - var functionNameRegex = /((.*".+"[^@]*)?[^@]*)(?:@)/; - var matches = line.match(functionNameRegex); - var functionName = matches && matches[1] ? matches[1] : undefined; - var locationParts = this.extractLocation(line.replace(functionNameRegex, '')); - return new StackFrame({ - functionName: functionName, - fileName: locationParts[0], - lineNumber: locationParts[1], - columnNumber: locationParts[2], - source: line - }); - } - }, this); - }, - parseOpera: function ErrorStackParser$$parseOpera(e) { - if (!e.stacktrace || e.message.indexOf('\n') > -1 && e.message.split('\n').length > e.stacktrace.split('\n').length) { - return this.parseOpera9(e); - } else if (!e.stack) { - return this.parseOpera10(e); - } else { - return this.parseOpera11(e); - } - }, - parseOpera9: function ErrorStackParser$$parseOpera9(e) { - var lineRE = /Line (\d+).*script (?:in )?(\S+)/i; - var lines = e.message.split('\n'); - var result = []; - for (var i = 2, len = lines.length; i < len; i += 2) { - var match = lineRE.exec(lines[i]); - if (match) { - result.push(new StackFrame({ - fileName: match[2], - lineNumber: match[1], - source: lines[i] - })); - } - } - return result; - }, - parseOpera10: function ErrorStackParser$$parseOpera10(e) { - var lineRE = /Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i; - var lines = e.stacktrace.split('\n'); - var result = []; - for (var i = 0, len = lines.length; i < len; i += 2) { - var match = lineRE.exec(lines[i]); - if (match) { - result.push(new StackFrame({ - functionName: match[3] || undefined, - fileName: match[2], - lineNumber: match[1], - source: lines[i] - })); - } - } - return result; - }, - // Opera 10.65+ Error.stack very similar to FF/Safari - parseOpera11: function ErrorStackParser$$parseOpera11(error) { - var filtered = error.stack.split('\n').filter(function (line) { - return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/); - }, this); - return filtered.map(function (line) { - var tokens = line.split('@'); - var locationParts = this.extractLocation(tokens.pop()); - var functionCall = tokens.shift() || ''; - var functionName = functionCall.replace(//, '$2').replace(/\([^)]*\)/g, '') || undefined; - var argsRaw; - if (functionCall.match(/\(([^)]*)\)/)) { - argsRaw = functionCall.replace(/^[^(]+\(([^)]*)\)$/, '$1'); - } - var args = argsRaw === undefined || argsRaw === '[arguments not available]' ? undefined : argsRaw.split(','); - return new StackFrame({ - functionName: functionName, - args: args, - fileName: locationParts[0], - lineNumber: locationParts[1], - columnNumber: locationParts[2], - source: line - }); - }, this); - } - }; - }); -},28,[29]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - (function (root, factory) { - 'use strict'; - - // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers. - - /* istanbul ignore next */ - if (typeof define === 'function' && define.amd) { - define('stackframe', [], factory); - } else if (typeof exports === 'object') { - module.exports = factory(); - } else { - root.StackFrame = factory(); - } - })(this, function () { - 'use strict'; - - function _isNumber(n) { - return !isNaN(parseFloat(n)) && isFinite(n); - } - function _capitalize(str) { - return str.charAt(0).toUpperCase() + str.substring(1); - } - function _getter(p) { - return function () { - return this[p]; - }; - } - var booleanProps = ['isConstructor', 'isEval', 'isNative', 'isToplevel']; - var numericProps = ['columnNumber', 'lineNumber']; - var stringProps = ['fileName', 'functionName', 'source']; - var arrayProps = ['args']; - var objectProps = ['evalOrigin']; - var props = booleanProps.concat(numericProps, stringProps, arrayProps, objectProps); - function StackFrame(obj) { - if (!obj) return; - for (var i = 0; i < props.length; i++) { - if (obj[props[i]] !== undefined) { - this['set' + _capitalize(props[i])](obj[props[i]]); - } - } - } - StackFrame.prototype = { - getArgs: function getArgs() { - return this.args; - }, - setArgs: function setArgs(v) { - if (Object.prototype.toString.call(v) !== '[object Array]') { - throw new TypeError('Args must be an Array'); - } - this.args = v; - }, - getEvalOrigin: function getEvalOrigin() { - return this.evalOrigin; - }, - setEvalOrigin: function setEvalOrigin(v) { - if (v instanceof StackFrame) { - this.evalOrigin = v; - } else if (v instanceof Object) { - this.evalOrigin = new StackFrame(v); - } else { - throw new TypeError('Eval Origin must be an Object or StackFrame'); - } - }, - toString: function toString() { - var fileName = this.getFileName() || ''; - var lineNumber = this.getLineNumber() || ''; - var columnNumber = this.getColumnNumber() || ''; - var functionName = this.getFunctionName() || ''; - if (this.getIsEval()) { - if (fileName) { - return '[eval] (' + fileName + ':' + lineNumber + ':' + columnNumber + ')'; - } - return '[eval]:' + lineNumber + ':' + columnNumber; - } - if (functionName) { - return functionName + ' (' + fileName + ':' + lineNumber + ':' + columnNumber + ')'; - } - return fileName + ':' + lineNumber + ':' + columnNumber; - } - }; - StackFrame.fromString = function StackFrame$$fromString(str) { - var argsStartIndex = str.indexOf('('); - var argsEndIndex = str.lastIndexOf(')'); - var functionName = str.substring(0, argsStartIndex); - var args = str.substring(argsStartIndex + 1, argsEndIndex).split(','); - var locationString = str.substring(argsEndIndex + 1); - if (locationString.indexOf('@') === 0) { - var parts = /@(.+?)(?::(\d+))?(?::(\d+))?$/.exec(locationString, ''); - var fileName = parts[1]; - var lineNumber = parts[2]; - var columnNumber = parts[3]; - } - return new StackFrame({ - functionName: functionName, - args: args || undefined, - fileName: fileName, - lineNumber: lineNumber || undefined, - columnNumber: columnNumber || undefined - }); - }; - for (var i = 0; i < booleanProps.length; i++) { - StackFrame.prototype['get' + _capitalize(booleanProps[i])] = _getter(booleanProps[i]); - StackFrame.prototype['set' + _capitalize(booleanProps[i])] = function (p) { - return function (v) { - this[p] = Boolean(v); - }; - }(booleanProps[i]); - } - for (var j = 0; j < numericProps.length; j++) { - StackFrame.prototype['get' + _capitalize(numericProps[j])] = _getter(numericProps[j]); - StackFrame.prototype['set' + _capitalize(numericProps[j])] = function (p) { - return function (v) { - if (!_isNumber(v)) { - throw new TypeError(p + ' must be a Number'); - } - this[p] = Number(v); - }; - }(numericProps[j]); - } - for (var k = 0; k < stringProps.length; k++) { - StackFrame.prototype['get' + _capitalize(stringProps[k])] = _getter(stringProps[k]); - StackFrame.prototype['set' + _capitalize(stringProps[k])] = function (p) { - return function (v) { - this[p] = String(v); - }; - }(stringProps[k]); - } - return StackFrame; - }); -},29,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - (function (root, factory) { - 'use strict'; - - // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers. - - /* istanbul ignore next */ - if (typeof define === 'function' && define.amd) { - define('stack-generator', ['stackframe'], factory); - } else if (typeof exports === 'object') { - module.exports = factory(_$$_REQUIRE(_dependencyMap[0])); - } else { - root.StackGenerator = factory(root.StackFrame); - } - })(this, function (StackFrame) { - return { - backtrace: function StackGenerator$$backtrace(opts) { - var stack = []; - var maxStackSize = 10; - if (typeof opts === 'object' && typeof opts.maxStackSize === 'number') { - maxStackSize = opts.maxStackSize; - } - var curr = arguments.callee; - while (curr && stack.length < maxStackSize && curr['arguments']) { - // Allow V8 optimizations - var args = new Array(curr['arguments'].length); - for (var i = 0; i < args.length; ++i) { - args[i] = curr['arguments'][i]; - } - if (/function(?:\s+([\w$]+))+\s*\(/.test(curr.toString())) { - stack.push(new StackFrame({ - functionName: RegExp.$1 || undefined, - args: args - })); - } else { - stack.push(new StackFrame({ - args: args - })); - } - try { - curr = curr.caller; - } catch (e) { - break; - } - } - return stack; - } - }; - }); -},30,[29]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _slicedToArray(arr, i) { - return _$$_REQUIRE(_dependencyMap[0])(arr) || _$$_REQUIRE(_dependencyMap[1])(arr, i) || _$$_REQUIRE(_dependencyMap[2])(arr, i) || _$$_REQUIRE(_dependencyMap[3])(); - } - module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; -},31,[32,33,24,34]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _arrayWithHoles(arr) { - if (Array.isArray(arr)) return arr; - } - module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports; -},32,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _iterableToArrayLimit(r, l) { - var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; - if (null != t) { - var e, - n, - i, - u, - a = [], - f = true, - o = false; - try { - if (i = (t = t.call(r)).next, 0 === l) { - if (Object(t) !== t) return; - f = false; - } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = true); - } catch (r) { - o = true, n = r; - } finally { - try { - if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; - } finally { - if (o) throw n; - } - } - return a; - } - } - module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports; -},33,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports; -},34,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - module.exports = _$$_REQUIRE(_dependencyMap[0]); -},35,[36]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Expose `isError`. - */ - - module.exports = isError; - - /** - * Test whether `value` is error object. - * - * @param {*} value - * @returns {boolean} - */ - - function isError(value) { - switch (Object.prototype.toString.call(value)) { - case '[object Error]': - return true; - case '[object Exception]': - return true; - case '[object DOMException]': - return true; - default: - return value instanceof Error; - } - } -},36,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - module.exports = function (NativeClient) { - return { - load: function load(client) { - var delegate = { - startSession: function startSession(client) { - NativeClient.startSession(); - return client; - }, - pauseSession: function pauseSession(client) { - NativeClient.pauseSession(); - }, - resumeSession: function resumeSession(client) { - NativeClient.resumeSession(); - return client; - } - }; - client._sessionDelegate = delegate; - } - }; - }; -},37,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.NativeClient = undefined; - var reactNative = _$$_REQUIRE(_dependencyMap[0]); - var isTurboModuleEnabled = function isTurboModuleEnabled() { - return global.__turboModuleProxy != null; - }; - var NativeClient = exports.NativeClient = isTurboModuleEnabled() ? reactNative.TurboModuleRegistry.get('BugsnagReactNative') : reactNative.NativeModules.BugsnagReactNative; -},38,[39]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - // Components - // APIs - // Plugins - module.exports = { - // Components - get AccessibilityInfo() { - return _$$_REQUIRE(_dependencyMap[0]).default; - }, - get ActivityIndicator() { - return _$$_REQUIRE(_dependencyMap[1]).default; - }, - get Button() { - return _$$_REQUIRE(_dependencyMap[2]); - }, - // $FlowFixMe[value-as-type] - get DrawerLayoutAndroid() { - return _$$_REQUIRE(_dependencyMap[3]); - }, - get FlatList() { - return _$$_REQUIRE(_dependencyMap[4]); - }, - get Image() { - return _$$_REQUIRE(_dependencyMap[5]); - }, - get ImageBackground() { - return _$$_REQUIRE(_dependencyMap[6]); - }, - get InputAccessoryView() { - return _$$_REQUIRE(_dependencyMap[7]); - }, - get KeyboardAvoidingView() { - return _$$_REQUIRE(_dependencyMap[8]).default; - }, - get Modal() { - return _$$_REQUIRE(_dependencyMap[9]); - }, - get Pressable() { - return _$$_REQUIRE(_dependencyMap[10]).default; - }, - // $FlowFixMe[value-as-type] - get ProgressBarAndroid() { - _$$_REQUIRE(_dependencyMap[11])('progress-bar-android-moved', "ProgressBarAndroid has been extracted from react-native core and will be removed in a future release. It can now be installed and imported from '@react-native-community/progress-bar-android' instead of 'react-native'. See https://github.com/react-native-progress-view/progress-bar-android"); - return _$$_REQUIRE(_dependencyMap[12]); - }, - get RefreshControl() { - return _$$_REQUIRE(_dependencyMap[13]); - }, - get SafeAreaView() { - return _$$_REQUIRE(_dependencyMap[14]).default; - }, - get ScrollView() { - return _$$_REQUIRE(_dependencyMap[15]); - }, - get SectionList() { - return _$$_REQUIRE(_dependencyMap[16]).default; - }, - get StatusBar() { - return _$$_REQUIRE(_dependencyMap[17]); - }, - get Switch() { - return _$$_REQUIRE(_dependencyMap[18]).default; - }, - get Text() { - return _$$_REQUIRE(_dependencyMap[19]); - }, - get TextInput() { - return _$$_REQUIRE(_dependencyMap[20]); - }, - get Touchable() { - return _$$_REQUIRE(_dependencyMap[21]); - }, - get TouchableHighlight() { - return _$$_REQUIRE(_dependencyMap[22]); - }, - get TouchableNativeFeedback() { - return _$$_REQUIRE(_dependencyMap[23]); - }, - get TouchableOpacity() { - return _$$_REQUIRE(_dependencyMap[24]); - }, - get TouchableWithoutFeedback() { - return _$$_REQUIRE(_dependencyMap[25]); - }, - get View() { - return _$$_REQUIRE(_dependencyMap[26]); - }, - get VirtualizedList() { - return _$$_REQUIRE(_dependencyMap[27]); - }, - get VirtualizedSectionList() { - return _$$_REQUIRE(_dependencyMap[28]); - }, - // APIs - get ActionSheetIOS() { - return _$$_REQUIRE(_dependencyMap[29]); - }, - get Alert() { - return _$$_REQUIRE(_dependencyMap[30]); - }, - // Include any types exported in the Animated module together with its default export, so - // you can references types such as Animated.Numeric - get Animated() { - // $FlowExpectedError[prop-missing]: we only return the default export, all other exports are types - return _$$_REQUIRE(_dependencyMap[31]).default; - }, - get Appearance() { - return _$$_REQUIRE(_dependencyMap[32]); - }, - get AppRegistry() { - return _$$_REQUIRE(_dependencyMap[33]); - }, - get AppState() { - return _$$_REQUIRE(_dependencyMap[34]); - }, - get BackHandler() { - return _$$_REQUIRE(_dependencyMap[35]); - }, - get Clipboard() { - _$$_REQUIRE(_dependencyMap[11])('clipboard-moved', "Clipboard has been extracted from react-native core and will be removed in a future release. It can now be installed and imported from '@react-native-clipboard/clipboard' instead of 'react-native'. See https://github.com/react-native-clipboard/clipboard"); - return _$$_REQUIRE(_dependencyMap[36]); - }, - get DeviceInfo() { - return _$$_REQUIRE(_dependencyMap[37]); - }, - get DevSettings() { - return _$$_REQUIRE(_dependencyMap[38]); - }, - get Dimensions() { - return _$$_REQUIRE(_dependencyMap[39]).default; - }, - get Easing() { - return _$$_REQUIRE(_dependencyMap[40]).default; - }, - get findNodeHandle() { - return _$$_REQUIRE(_dependencyMap[41]).findNodeHandle; - }, - get I18nManager() { - return _$$_REQUIRE(_dependencyMap[42]); - }, - get InteractionManager() { - return _$$_REQUIRE(_dependencyMap[43]); - }, - get Keyboard() { - return _$$_REQUIRE(_dependencyMap[44]); - }, - get LayoutAnimation() { - return _$$_REQUIRE(_dependencyMap[45]); - }, - get Linking() { - return _$$_REQUIRE(_dependencyMap[46]); - }, - get LogBox() { - return _$$_REQUIRE(_dependencyMap[47]).default; - }, - get NativeDialogManagerAndroid() { - return _$$_REQUIRE(_dependencyMap[48]).default; - }, - get NativeEventEmitter() { - return _$$_REQUIRE(_dependencyMap[49]).default; - }, - get Networking() { - return _$$_REQUIRE(_dependencyMap[50]).default; - }, - get PanResponder() { - return _$$_REQUIRE(_dependencyMap[51]).default; - }, - get PermissionsAndroid() { - return _$$_REQUIRE(_dependencyMap[52]); - }, - get PixelRatio() { - return _$$_REQUIRE(_dependencyMap[53]).default; - }, - get PushNotificationIOS() { - _$$_REQUIRE(_dependencyMap[11])('pushNotificationIOS-moved', "PushNotificationIOS has been extracted from react-native core and will be removed in a future release. It can now be installed and imported from '@react-native-community/push-notification-ios' instead of 'react-native'. See https://github.com/react-native-push-notification-ios/push-notification-ios"); - return _$$_REQUIRE(_dependencyMap[54]); - }, - get Settings() { - return _$$_REQUIRE(_dependencyMap[55]); - }, - get Share() { - return _$$_REQUIRE(_dependencyMap[56]); - }, - get StyleSheet() { - return _$$_REQUIRE(_dependencyMap[57]); - }, - get Systrace() { - return _$$_REQUIRE(_dependencyMap[58]); - }, - // $FlowFixMe[value-as-type] - get ToastAndroid() { - return _$$_REQUIRE(_dependencyMap[59]); - }, - get TurboModuleRegistry() { - return _$$_REQUIRE(_dependencyMap[60]); - }, - get UIManager() { - return _$$_REQUIRE(_dependencyMap[61]); - }, - get unstable_batchedUpdates() { - return _$$_REQUIRE(_dependencyMap[41]).unstable_batchedUpdates; - }, - get useAnimatedValue() { - return _$$_REQUIRE(_dependencyMap[62]).default; - }, - get useColorScheme() { - return _$$_REQUIRE(_dependencyMap[63]).default; - }, - get useWindowDimensions() { - return _$$_REQUIRE(_dependencyMap[64]).default; - }, - get UTFSequence() { - return _$$_REQUIRE(_dependencyMap[65]).default; - }, - get Vibration() { - return _$$_REQUIRE(_dependencyMap[66]); - }, - get YellowBox() { - return _$$_REQUIRE(_dependencyMap[67]); - }, - // Plugins - get DeviceEventEmitter() { - return _$$_REQUIRE(_dependencyMap[68]).default; - }, - get DynamicColorIOS() { - return _$$_REQUIRE(_dependencyMap[69]).DynamicColorIOS; - }, - get NativeAppEventEmitter() { - return _$$_REQUIRE(_dependencyMap[70]); - }, - get NativeModules() { - return _$$_REQUIRE(_dependencyMap[71]); - }, - get Platform() { - return _$$_REQUIRE(_dependencyMap[72]); - }, - get PlatformColor() { - return _$$_REQUIRE(_dependencyMap[73]).PlatformColor; - }, - get processColor() { - return _$$_REQUIRE(_dependencyMap[74]).default; - }, - get requireNativeComponent() { - return _$$_REQUIRE(_dependencyMap[75]).default; - }, - get RootTagContext() { - return _$$_REQUIRE(_dependencyMap[76]).RootTagContext; - }, - get unstable_enableLogBox() { - return function () { - return console.warn('LogBox is enabled by default so there is no need to call unstable_enableLogBox() anymore. This is a no op and will be removed in the next version.'); - }; - }, - // Deprecated Prop Types - get ColorPropType() { - console.error("ColorPropType will be removed from React Native, along with all other PropTypes. We recommend that you migrate away from PropTypes and switch to a type system like TypeScript. If you need to continue using ColorPropType, migrate to the 'deprecated-react-native-prop-types' package."); - return _$$_REQUIRE(_dependencyMap[77]).ColorPropType; - }, - get EdgeInsetsPropType() { - console.error("EdgeInsetsPropType will be removed from React Native, along with all other PropTypes. We recommend that you migrate away from PropTypes and switch to a type system like TypeScript. If you need to continue using EdgeInsetsPropType, migrate to the 'deprecated-react-native-prop-types' package."); - return _$$_REQUIRE(_dependencyMap[77]).EdgeInsetsPropType; - }, - get PointPropType() { - console.error("PointPropType will be removed from React Native, along with all other PropTypes. We recommend that you migrate away from PropTypes and switch to a type system like TypeScript. If you need to continue using PointPropType, migrate to the 'deprecated-react-native-prop-types' package."); - return _$$_REQUIRE(_dependencyMap[77]).PointPropType; - }, - get ViewPropTypes() { - console.error("ViewPropTypes will be removed from React Native, along with all other PropTypes. We recommend that you migrate away from PropTypes and switch to a type system like TypeScript. If you need to continue using ViewPropTypes, migrate to the 'deprecated-react-native-prop-types' package."); - return _$$_REQUIRE(_dependencyMap[77]).ViewPropTypes; - } - }; -},39,[40,247,250,373,323,340,374,375,377,378,382,75,248,350,384,353,370,386,389,251,392,395,399,283,284,400,167,401,402,403,141,285,405,156,407,241,410,412,413,200,298,57,218,295,358,359,415,418,144,132,122,419,421,199,423,425,427,214,50,429,45,173,430,431,434,435,436,438,41,439,152,47,43,186,183,225,238,261]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var _RCTDeviceEventEmitter = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _Platform = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _legacySendAccessibilityEvent = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _NativeAccessibilityInfo = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var _NativeAccessibilityManager = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[5])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - // Events that are only supported on Android. - - // Events that are only supported on iOS. - - // Mapping of public event names to platform-specific event names. - var EventNames = _Platform.default.OS === 'android' ? new Map([['change', 'touchExplorationDidChange'], ['reduceMotionChanged', 'reduceMotionDidChange'], ['screenReaderChanged', 'touchExplorationDidChange'], ['accessibilityServiceChanged', 'accessibilityServiceDidChange']]) : new Map([['announcementFinished', 'announcementFinished'], ['boldTextChanged', 'boldTextChanged'], ['change', 'screenReaderChanged'], ['grayscaleChanged', 'grayscaleChanged'], ['invertColorsChanged', 'invertColorsChanged'], ['reduceMotionChanged', 'reduceMotionChanged'], ['reduceTransparencyChanged', 'reduceTransparencyChanged'], ['screenReaderChanged', 'screenReaderChanged']]); - - /** - * Sometimes it's useful to know whether or not the device has a screen reader - * that is currently active. The `AccessibilityInfo` API is designed for this - * purpose. You can use it to query the current state of the screen reader as - * well as to register to be notified when the state of the screen reader - * changes. - * - * See https://reactnative.dev/docs/accessibilityinfo - */ - var AccessibilityInfo = { - /** - * Query whether bold text is currently enabled. - * - * Returns a promise which resolves to a boolean. - * The result is `true` when bold text is enabled and `false` otherwise. - * - * See https://reactnative.dev/docs/accessibilityinfo#isBoldTextEnabled - */ - isBoldTextEnabled: function isBoldTextEnabled() { - if (_Platform.default.OS === 'android') { - return Promise.resolve(false); - } else { - return new Promise(function (resolve, reject) { - if (_NativeAccessibilityManager.default != null) { - _NativeAccessibilityManager.default.getCurrentBoldTextState(resolve, reject); - } else { - reject(null); - } - }); - } - }, - /** - * Query whether grayscale is currently enabled. - * - * Returns a promise which resolves to a boolean. - * The result is `true` when grayscale is enabled and `false` otherwise. - * - * See https://reactnative.dev/docs/accessibilityinfo#isGrayscaleEnabled - */ - isGrayscaleEnabled: function isGrayscaleEnabled() { - if (_Platform.default.OS === 'android') { - return Promise.resolve(false); - } else { - return new Promise(function (resolve, reject) { - if (_NativeAccessibilityManager.default != null) { - _NativeAccessibilityManager.default.getCurrentGrayscaleState(resolve, reject); - } else { - reject(null); - } - }); - } - }, - /** - * Query whether inverted colors are currently enabled. - * - * Returns a promise which resolves to a boolean. - * The result is `true` when invert color is enabled and `false` otherwise. - * - * See https://reactnative.dev/docs/accessibilityinfo#isInvertColorsEnabled - */ - isInvertColorsEnabled: function isInvertColorsEnabled() { - if (_Platform.default.OS === 'android') { - return Promise.resolve(false); - } else { - return new Promise(function (resolve, reject) { - if (_NativeAccessibilityManager.default != null) { - _NativeAccessibilityManager.default.getCurrentInvertColorsState(resolve, reject); - } else { - reject(null); - } - }); - } - }, - /** - * Query whether reduced motion is currently enabled. - * - * Returns a promise which resolves to a boolean. - * The result is `true` when a reduce motion is enabled and `false` otherwise. - * - * See https://reactnative.dev/docs/accessibilityinfo#isReduceMotionEnabled - */ - isReduceMotionEnabled: function isReduceMotionEnabled() { - return new Promise(function (resolve, reject) { - if (_Platform.default.OS === 'android') { - if (_NativeAccessibilityInfo.default != null) { - _NativeAccessibilityInfo.default.isReduceMotionEnabled(resolve); - } else { - reject(null); - } - } else { - if (_NativeAccessibilityManager.default != null) { - _NativeAccessibilityManager.default.getCurrentReduceMotionState(resolve, reject); - } else { - reject(null); - } - } - }); - }, - /** - * Query whether reduce motion and prefer cross-fade transitions settings are currently enabled. - * - * Returns a promise which resolves to a boolean. - * The result is `true` when prefer cross-fade transitions is enabled and `false` otherwise. - * - * See https://reactnative.dev/docs/accessibilityinfo#prefersCrossFadeTransitions - */ - prefersCrossFadeTransitions: function prefersCrossFadeTransitions() { - return new Promise(function (resolve, reject) { - if (_Platform.default.OS === 'android') { - return Promise.resolve(false); - } else { - if ((_NativeAccessibilityManager.default == null ? undefined : _NativeAccessibilityManager.default.getCurrentPrefersCrossFadeTransitionsState) != null) { - _NativeAccessibilityManager.default.getCurrentPrefersCrossFadeTransitionsState(resolve, reject); - } else { - reject(null); - } - } - }); - }, - /** - * Query whether reduced transparency is currently enabled. - * - * Returns a promise which resolves to a boolean. - * The result is `true` when a reduce transparency is enabled and `false` otherwise. - * - * See https://reactnative.dev/docs/accessibilityinfo#isReduceTransparencyEnabled - */ - isReduceTransparencyEnabled: function isReduceTransparencyEnabled() { - if (_Platform.default.OS === 'android') { - return Promise.resolve(false); - } else { - return new Promise(function (resolve, reject) { - if (_NativeAccessibilityManager.default != null) { - _NativeAccessibilityManager.default.getCurrentReduceTransparencyState(resolve, reject); - } else { - reject(null); - } - }); - } - }, - /** - * Query whether a screen reader is currently enabled. - * - * Returns a promise which resolves to a boolean. - * The result is `true` when a screen reader is enabled and `false` otherwise. - * - * See https://reactnative.dev/docs/accessibilityinfo#isScreenReaderEnabled - */ - isScreenReaderEnabled: function isScreenReaderEnabled() { - return new Promise(function (resolve, reject) { - if (_Platform.default.OS === 'android') { - if (_NativeAccessibilityInfo.default != null) { - _NativeAccessibilityInfo.default.isTouchExplorationEnabled(resolve); - } else { - reject(null); - } - } else { - if (_NativeAccessibilityManager.default != null) { - _NativeAccessibilityManager.default.getCurrentVoiceOverState(resolve, reject); - } else { - reject(null); - } - } - }); - }, - /** - * Query whether Accessibility Service is currently enabled. - * - * Returns a promise which resolves to a boolean. - * The result is `true` when any service is enabled and `false` otherwise. - * - * @platform android - * - * See https://reactnative.dev/docs/accessibilityinfo/#isaccessibilityserviceenabled-android - */ - isAccessibilityServiceEnabled: function isAccessibilityServiceEnabled() { - return new Promise(function (resolve, reject) { - if (_Platform.default.OS === 'android') { - if (_NativeAccessibilityInfo.default != null && _NativeAccessibilityInfo.default.isAccessibilityServiceEnabled != null) { - _NativeAccessibilityInfo.default.isAccessibilityServiceEnabled(resolve); - } else { - reject(null); - } - } else { - reject(null); - } - }); - }, - /** - * Add an event handler. Supported events: - * - * - `reduceMotionChanged`: Fires when the state of the reduce motion toggle changes. - * The argument to the event handler is a boolean. The boolean is `true` when a reduce - * motion is enabled (or when "Transition Animation Scale" in "Developer options" is - * "Animation off") and `false` otherwise. - * - `screenReaderChanged`: Fires when the state of the screen reader changes. The argument - * to the event handler is a boolean. The boolean is `true` when a screen - * reader is enabled and `false` otherwise. - * - * These events are only supported on iOS: - * - * - `boldTextChanged`: iOS-only event. Fires when the state of the bold text toggle changes. - * The argument to the event handler is a boolean. The boolean is `true` when a bold text - * is enabled and `false` otherwise. - * - `grayscaleChanged`: iOS-only event. Fires when the state of the gray scale toggle changes. - * The argument to the event handler is a boolean. The boolean is `true` when a gray scale - * is enabled and `false` otherwise. - * - `invertColorsChanged`: iOS-only event. Fires when the state of the invert colors toggle - * changes. The argument to the event handler is a boolean. The boolean is `true` when a invert - * colors is enabled and `false` otherwise. - * - `reduceTransparencyChanged`: iOS-only event. Fires when the state of the reduce transparency - * toggle changes. The argument to the event handler is a boolean. The boolean is `true` - * when a reduce transparency is enabled and `false` otherwise. - * - `announcementFinished`: iOS-only event. Fires when the screen reader has - * finished making an announcement. The argument to the event handler is a - * dictionary with these keys: - * - `announcement`: The string announced by the screen reader. - * - `success`: A boolean indicating whether the announcement was - * successfully made. - * - * See https://reactnative.dev/docs/accessibilityinfo#addeventlistener - */ - addEventListener: function addEventListener(eventName, - // $FlowIssue[incompatible-type] - Flow bug with unions and generics (T128099423) - handler) { - var deviceEventName = EventNames.get(eventName); - return deviceEventName == null ? { - remove: function remove() {} - } : - // $FlowFixMe[incompatible-call] - _RCTDeviceEventEmitter.default.addListener(deviceEventName, handler); - }, - /** - * Set accessibility focus to a React component. - * - * See https://reactnative.dev/docs/accessibilityinfo#setaccessibilityfocus - */ - setAccessibilityFocus: function setAccessibilityFocus(reactTag) { - (0, _legacySendAccessibilityEvent.default)(reactTag, 'focus'); - }, - /** - * Send a named accessibility event to a HostComponent. - */ - sendAccessibilityEvent: function sendAccessibilityEvent(handle, eventType) { - // iOS only supports 'focus' event types - if (_Platform.default.OS === 'ios' && eventType === 'click') { - return; - } - // route through React renderer to distinguish between Fabric and non-Fabric handles - (0, _$$_REQUIRE(_dependencyMap[6]).sendAccessibilityEvent)(handle, eventType); - }, - /** - * Post a string to be announced by the screen reader. - * - * See https://reactnative.dev/docs/accessibilityinfo#announceforaccessibility - */ - announceForAccessibility: function announceForAccessibility(announcement) { - if (_Platform.default.OS === 'android') { - _NativeAccessibilityInfo.default == null ? undefined : _NativeAccessibilityInfo.default.announceForAccessibility(announcement); - } else { - _NativeAccessibilityManager.default == null ? undefined : _NativeAccessibilityManager.default.announceForAccessibility(announcement); - } - }, - /** - * Post a string to be announced by the screen reader. - * - `announcement`: The string announced by the screen reader. - * - `options`: An object that configures the reading options. - * - `queue`: The announcement will be queued behind existing announcements. iOS only. - */ - announceForAccessibilityWithOptions: function announceForAccessibilityWithOptions(announcement, options) { - if (_Platform.default.OS === 'android') { - _NativeAccessibilityInfo.default == null ? undefined : _NativeAccessibilityInfo.default.announceForAccessibility(announcement); - } else { - if (_NativeAccessibilityManager.default != null && _NativeAccessibilityManager.default.announceForAccessibilityWithOptions) { - _NativeAccessibilityManager.default == null ? undefined : _NativeAccessibilityManager.default.announceForAccessibilityWithOptions(announcement, options); - } else { - _NativeAccessibilityManager.default == null ? undefined : _NativeAccessibilityManager.default.announceForAccessibility(announcement); - } - } - }, - /** - * Get the recommended timeout for changes to the UI needed by this user. - * - * See https://reactnative.dev/docs/accessibilityinfo#getrecommendedtimeoutmillis - */ - getRecommendedTimeoutMillis: function getRecommendedTimeoutMillis(originalTimeout) { - if (_Platform.default.OS === 'android') { - return new Promise(function (resolve, reject) { - if (_NativeAccessibilityInfo.default != null && _NativeAccessibilityInfo.default.getRecommendedTimeoutMillis) { - _NativeAccessibilityInfo.default.getRecommendedTimeoutMillis(originalTimeout, resolve); - } else { - resolve(originalTimeout); - } - }); - } else { - return Promise.resolve(originalTimeout); - } - } - }; - var _default = exports.default = AccessibilityInfo; -},40,[1,41,43,54,56,55,57]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var _EventEmitter = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - // FIXME: use typed events - - /** - * Global EventEmitter used by the native platform to emit events to JavaScript. - * Events are identified by globally unique event names. - * - * NativeModules that emit events should instead subclass `NativeEventEmitter`. - */ - var RCTDeviceEventEmitter = new _EventEmitter.default(); - Object.defineProperty(global, '__rctDeviceEventEmitter', { - configurable: true, - value: RCTDeviceEventEmitter - }); - var _default = exports.default = RCTDeviceEventEmitter; -},41,[1,42]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - /** - * EventEmitter manages listeners and publishes events to them. - * - * EventEmitter accepts a single type parameter that defines the valid events - * and associated listener argument(s). - * - * @example - * - * const emitter = new EventEmitter<{ - * success: [number, string], - * error: [Error], - * }>(); - * - * emitter.on('success', (statusCode, responseText) => {...}); - * emitter.emit('success', 200, '...'); - * - * emitter.on('error', error => {...}); - * emitter.emit('error', new Error('Resource not found')); - * - */ - var EventEmitter = exports.default = /*#__PURE__*/function () { - function EventEmitter() { - (0, _classCallCheck2.default)(this, EventEmitter); - this._registry = {}; - } - (0, _createClass2.default)(EventEmitter, [{ - key: "addListener", - value: - /** - * Registers a listener that is called when the supplied event is emitted. - * Returns a subscription that has a `remove` method to undo registration. - */ - function addListener(eventType, listener, context) { - if (typeof listener !== 'function') { - throw new TypeError('EventEmitter.addListener(...): 2nd argument must be a function.'); - } - var registrations = allocate(this._registry, eventType); - var registration = { - context: context, - listener: listener, - remove: function remove() { - registrations.delete(registration); - } - }; - registrations.add(registration); - return registration; - } - - /** - * Emits the supplied event. Additional arguments supplied to `emit` will be - * passed through to each of the registered listeners. - * - * If a listener modifies the listeners registered for the same event, those - * changes will not be reflected in the current invocation of `emit`. - */ - }, { - key: "emit", - value: function emit(eventType) { - var registrations = this._registry[eventType]; - if (registrations != null) { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - // Copy `registrations` to take a snapshot when we invoke `emit`, in case - // registrations are added or removed when listeners are invoked. - for (var registration of Array.from(registrations)) { - registration.listener.apply(registration.context, args); - } - } - } - - /** - * Removes all registered listeners. - */ - }, { - key: "removeAllListeners", - value: function removeAllListeners(eventType) { - if (eventType == null) { - this._registry = {}; - } else { - delete this._registry[eventType]; - } - } - - /** - * Returns the number of registered listeners for the supplied event. - */ - }, { - key: "listenerCount", - value: function listenerCount(eventType) { - var registrations = this._registry[eventType]; - return registrations == null ? 0 : registrations.size; - } - }]); - return EventEmitter; - }(); - function allocate(registry, eventType) { - var registrations = registry[eventType]; - if (registrations == null) { - registrations = new Set(); - registry[eventType] = registrations; - } - return registrations; - } -},42,[1,6,7]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var _NativePlatformConstantsIOS = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - var Platform = { - __constants: null, - OS: 'ios', - // $FlowFixMe[unsafe-getters-setters] - get Version() { - // $FlowFixMe[object-this-reference] - return this.constants.osVersion; - }, - // $FlowFixMe[unsafe-getters-setters] - get constants() { - // $FlowFixMe[object-this-reference] - if (this.__constants == null) { - // $FlowFixMe[object-this-reference] - this.__constants = _NativePlatformConstantsIOS.default.getConstants(); - } - // $FlowFixMe[object-this-reference] - return this.__constants; - }, - // $FlowFixMe[unsafe-getters-setters] - get isPad() { - // $FlowFixMe[object-this-reference] - return this.constants.interfaceIdiom === 'pad'; - }, - // $FlowFixMe[unsafe-getters-setters] - get isTV() { - // $FlowFixMe[object-this-reference] - return this.constants.interfaceIdiom === 'tv'; - }, - // $FlowFixMe[unsafe-getters-setters] - get isTesting() { - return false; - }, - select: function select(spec) { - return ( - // $FlowFixMe[incompatible-return] - 'ios' in spec ? spec.ios : 'native' in spec ? spec.native : spec.default - ); - } - }; - module.exports = Platform; -},43,[1,44]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var TurboModuleRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - var _default = exports.default = TurboModuleRegistry.getEnforcing('PlatformConstants'); -},44,[45]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.get = get; - exports.getEnforcing = getEnforcing; - var _invariant = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - var turboModuleProxy = global.__turboModuleProxy; - function requireModule(name) { - // Bridgeless mode requires TurboModules - if (global.RN$Bridgeless !== true) { - // Backward compatibility layer during migration. - var legacyModule = _$$_REQUIRE(_dependencyMap[2])[name]; - if (legacyModule != null) { - return legacyModule; - } - } - if (turboModuleProxy != null) { - var module = turboModuleProxy(name); - return module; - } - return null; - } - function get(name) { - return requireModule(name); - } - function getEnforcing(name) { - var module = requireModule(name); - (0, _invariant.default)(module != null, `TurboModuleRegistry.getEnforcing(...): '${name}' could not be found. ` + 'Verify that a module by this name is registered in the native binary.'); - return module; - } -},45,[1,46,47]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - 'use strict'; - - /** - * Use invariant() to assert state which your program assumes to be true. - * - * Provide sprintf-style format (only %s is supported) and arguments - * to provide information about what broke and what you were - * expecting. - * - * The invariant message will be stripped in production, but the invariant - * will remain to ensure logic does not differ in production. - */ - var invariant = function invariant(condition, format, a, b, c, d, e, f) { - if (!condition) { - var error; - if (format === undefined) { - error = new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings."); - } else { - var args = [a, b, c, d, e, f]; - var argIndex = 0; - error = new Error(format.replace(/%s/g, function () { - return args[argIndex++]; - })); - error.name = 'Invariant Violation'; - } - error.framesToPop = 1; // we don't care about invariant's own frame - throw error; - } - }; - module.exports = invariant; -},46,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - function genModule(config, moduleID) { - if (!config) { - return null; - } - var _config = _$$_REQUIRE(_dependencyMap[0])(config, 5), - moduleName = _config[0], - constants = _config[1], - methods = _config[2], - promiseMethods = _config[3], - syncMethods = _config[4]; - _$$_REQUIRE(_dependencyMap[1])(!moduleName.startsWith('RCT') && !moduleName.startsWith('RK'), "Module name prefixes should've been stripped by the native side but wasn't for " + moduleName); - if (!constants && !methods) { - // Module contents will be filled in lazily later - return { - name: moduleName - }; - } - var module = {}; - methods && methods.forEach(function (methodName, methodID) { - var isPromise = promiseMethods && arrayContains(promiseMethods, methodID) || false; - var isSync = syncMethods && arrayContains(syncMethods, methodID) || false; - _$$_REQUIRE(_dependencyMap[1])(!isPromise || !isSync, 'Cannot have a method that is both async and a sync hook'); - var methodType = isPromise ? 'promise' : isSync ? 'sync' : 'async'; - module[methodName] = genMethod(moduleID, methodID, methodType); - }); - Object.assign(module, constants); - if (module.getConstants == null) { - module.getConstants = function () { - return constants || Object.freeze({}); - }; - } else { - console.warn(`Unable to define method 'getConstants()' on NativeModule '${moduleName}'. NativeModule '${moduleName}' already has a constant or method called 'getConstants'. Please remove it.`); - } - return { - name: moduleName, - module: module - }; - } - - // export this method as a global so we can call it from native - global.__fbGenNativeModule = genModule; - function loadModule(name, moduleID) { - _$$_REQUIRE(_dependencyMap[1])(global.nativeRequireModuleConfig, "Can't lazily create module without nativeRequireModuleConfig"); - var config = global.nativeRequireModuleConfig(name); - var info = genModule(config, moduleID); - return info && info.module; - } - function genMethod(moduleID, methodID, type) { - var fn = null; - if (type === 'promise') { - fn = function promiseMethodWrapper() { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - // In case we reject, capture a useful stack trace here. - /* $FlowFixMe[class-object-subtyping] added when improving typing for - * this parameters */ - var enqueueingFrameError = new Error(); - return new Promise(function (resolve, reject) { - _$$_REQUIRE(_dependencyMap[2]).enqueueNativeCall(moduleID, methodID, args, function (data) { - return resolve(data); - }, function (errorData) { - return reject(updateErrorWithErrorData(errorData, enqueueingFrameError)); - }); - }); - }; - } else { - fn = function nonPromiseMethodWrapper() { - for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } - var lastArg = args.length > 0 ? args[args.length - 1] : null; - var secondLastArg = args.length > 1 ? args[args.length - 2] : null; - var hasSuccessCallback = typeof lastArg === 'function'; - var hasErrorCallback = typeof secondLastArg === 'function'; - hasErrorCallback && _$$_REQUIRE(_dependencyMap[1])(hasSuccessCallback, 'Cannot have a non-function arg after a function arg.'); - // $FlowFixMe[incompatible-type] - var onSuccess = hasSuccessCallback ? lastArg : null; - // $FlowFixMe[incompatible-type] - var onFail = hasErrorCallback ? secondLastArg : null; - // $FlowFixMe[unsafe-addition] - var callbackCount = hasSuccessCallback + hasErrorCallback; - var newArgs = args.slice(0, args.length - callbackCount); - if (type === 'sync') { - return _$$_REQUIRE(_dependencyMap[2]).callNativeSyncHook(moduleID, methodID, newArgs, onFail, onSuccess); - } else { - _$$_REQUIRE(_dependencyMap[2]).enqueueNativeCall(moduleID, methodID, newArgs, onFail, onSuccess); - } - }; - } - // $FlowFixMe[prop-missing] - fn.type = type; - return fn; - } - function arrayContains(array, value) { - return array.indexOf(value) !== -1; - } - function updateErrorWithErrorData(errorData, error) { - /* $FlowFixMe[class-object-subtyping] added when improving typing for this - * parameters */ - return Object.assign(error, errorData || {}); - } - var NativeModules = {}; - if (global.nativeModuleProxy) { - NativeModules = global.nativeModuleProxy; - } else if (!global.nativeExtensions) { - var bridgeConfig = global.__fbBatchedBridgeConfig; - _$$_REQUIRE(_dependencyMap[1])(bridgeConfig, '__fbBatchedBridgeConfig is not set, cannot invoke native modules'); - var defineLazyObjectProperty = _$$_REQUIRE(_dependencyMap[3]); - (bridgeConfig.remoteModuleConfig || []).forEach(function (config, moduleID) { - // Initially this config will only contain the module name when running in JSC. The actual - // configuration of the module will be lazily loaded. - var info = genModule(config, moduleID); - if (!info) { - return; - } - if (info.module) { - NativeModules[info.name] = info.module; - } - // If there's no module config, define a lazy getter - else { - defineLazyObjectProperty(NativeModules, info.name, { - get: function get() { - return loadModule(info.name, moduleID); - } - }); - } - }); - } - module.exports = NativeModules; -},47,[31,46,48,53]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - var BatchedBridge = new (_$$_REQUIRE(_dependencyMap[0]))(); - - // Wire up the batched bridge on the global object so that we can call into it. - // Ideally, this would be the inverse relationship. I.e. the native environment - // provides this global directly with its script embedded. Then this module - // would export it. A possible fix would be to trim the dependencies in - // MessageQueue to its minimal features and embed that in the native runtime. - - Object.defineProperty(global, '__fbBatchedBridge', { - configurable: true, - value: BatchedBridge - }); - module.exports = BatchedBridge; -},48,[49]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - var TO_JS = 0; - var TO_NATIVE = 1; - var MODULE_IDS = 0; - var METHOD_IDS = 1; - var PARAMS = 2; - var MIN_TIME_BETWEEN_FLUSHES_MS = 5; - - // eslint-disable-next-line no-bitwise - var TRACE_TAG_REACT_APPS = 131072; - var DEBUG_INFO_LIMIT = 32; - var MessageQueue = /*#__PURE__*/function () { - function MessageQueue() { - _$$_REQUIRE(_dependencyMap[0])(this, MessageQueue); - this._lazyCallableModules = {}; - this._queue = [[], [], [], 0]; - this._successCallbacks = new Map(); - this._failureCallbacks = new Map(); - this._callID = 0; - this._lastFlush = 0; - this._eventLoopStartTime = Date.now(); - this._reactNativeMicrotasksCallback = null; - // $FlowFixMe[cannot-write] - this.callFunctionReturnFlushedQueue = - // $FlowFixMe[method-unbinding] added when improving typing for this parameters - this.callFunctionReturnFlushedQueue.bind(this); - // $FlowFixMe[cannot-write] - // $FlowFixMe[method-unbinding] added when improving typing for this parameters - this.flushedQueue = this.flushedQueue.bind(this); - - // $FlowFixMe[cannot-write] - this.invokeCallbackAndReturnFlushedQueue = - // $FlowFixMe[method-unbinding] added when improving typing for this parameters - this.invokeCallbackAndReturnFlushedQueue.bind(this); - } - - /** - * Public APIs - */ - _$$_REQUIRE(_dependencyMap[1])(MessageQueue, [{ - key: "callFunctionReturnFlushedQueue", - value: function callFunctionReturnFlushedQueue(module, method, args) { - var _this = this; - this.__guard(function () { - _this.__callFunction(module, method, args); - }); - return this.flushedQueue(); - } - }, { - key: "invokeCallbackAndReturnFlushedQueue", - value: function invokeCallbackAndReturnFlushedQueue(cbID, args) { - var _this2 = this; - this.__guard(function () { - _this2.__invokeCallback(cbID, args); - }); - return this.flushedQueue(); - } - }, { - key: "flushedQueue", - value: function flushedQueue() { - var _this3 = this; - this.__guard(function () { - _this3.__callReactNativeMicrotasks(); - }); - var queue = this._queue; - this._queue = [[], [], [], this._callID]; - return queue[0].length ? queue : null; - } - }, { - key: "getEventLoopRunningTime", - value: function getEventLoopRunningTime() { - return Date.now() - this._eventLoopStartTime; - } - }, { - key: "registerCallableModule", - value: function registerCallableModule(name, module) { - this._lazyCallableModules[name] = function () { - return module; - }; - } - }, { - key: "registerLazyCallableModule", - value: function registerLazyCallableModule(name, factory) { - var module; - var getValue = factory; - this._lazyCallableModules[name] = function () { - if (getValue) { - module = getValue(); - getValue = null; - } - /* $FlowFixMe[class-object-subtyping] added when improving typing for - * this parameters */ - return module; - }; - } - }, { - key: "getCallableModule", - value: function getCallableModule(name) { - var getValue = this._lazyCallableModules[name]; - return getValue ? getValue() : null; - } - }, { - key: "callNativeSyncHook", - value: function callNativeSyncHook(moduleID, methodID, params, onFail, onSucc) { - this.processCallbacks(moduleID, methodID, params, onFail, onSucc); - return global.nativeCallSyncHook(moduleID, methodID, params); - } - }, { - key: "processCallbacks", - value: function processCallbacks(moduleID, methodID, params, onFail, onSucc) { - var _this4 = this; - if (onFail || onSucc) { - // Encode callIDs into pairs of callback identifiers by shifting left and using the rightmost bit - // to indicate fail (0) or success (1) - // eslint-disable-next-line no-bitwise - onFail && params.push(this._callID << 1); - // eslint-disable-next-line no-bitwise - onSucc && params.push(this._callID << 1 | 1); - this._successCallbacks.set(this._callID, onSucc); - this._failureCallbacks.set(this._callID, onFail); - } - this._callID++; - } - }, { - key: "enqueueNativeCall", - value: function enqueueNativeCall(moduleID, methodID, params, onFail, onSucc) { - this.processCallbacks(moduleID, methodID, params, onFail, onSucc); - this._queue[MODULE_IDS].push(moduleID); - this._queue[METHOD_IDS].push(methodID); - this._queue[PARAMS].push(params); - var now = Date.now(); - if (global.nativeFlushQueueImmediate && now - this._lastFlush >= MIN_TIME_BETWEEN_FLUSHES_MS) { - var queue = this._queue; - this._queue = [[], [], [], this._callID]; - this._lastFlush = now; - global.nativeFlushQueueImmediate(queue); - } - _$$_REQUIRE(_dependencyMap[2]).counterEvent('pending_js_to_native_queue', this._queue[0].length); - if (this.__spy) { - this.__spy({ - type: TO_NATIVE, - module: moduleID + '', - method: methodID, - args: params - }); - } - } - }, { - key: "createDebugLookup", - value: function createDebugLookup(moduleID, name, methods) {} - - // For JSTimers to register its callback. Otherwise a circular dependency - // between modules is introduced. Note that only one callback may be - // registered at a time. - }, { - key: "setReactNativeMicrotasksCallback", - value: function setReactNativeMicrotasksCallback(fn) { - this._reactNativeMicrotasksCallback = fn; - } - - /** - * Private methods - */ - }, { - key: "__guard", - value: function __guard(fn) { - if (this.__shouldPauseOnThrow()) { - fn(); - } else { - try { - fn(); - } catch (error) { - _$$_REQUIRE(_dependencyMap[3]).reportFatalError(error); - } - } - } - - // MessageQueue installs a global handler to catch all exceptions where JS users can register their own behavior - // This handler makes all exceptions to be propagated from inside MessageQueue rather than by the VM at their origin - // This makes stacktraces to be placed at MessageQueue rather than at where they were launched - // The parameter DebuggerInternal.shouldPauseOnThrow is used to check before catching all exceptions and - // can be configured by the VM or any Inspector - }, { - key: "__shouldPauseOnThrow", - value: function __shouldPauseOnThrow() { - return ( - // $FlowFixMe[cannot-resolve-name] - typeof DebuggerInternal !== 'undefined' && - // $FlowFixMe[cannot-resolve-name] - DebuggerInternal.shouldPauseOnThrow === true - ); - } - }, { - key: "__callReactNativeMicrotasks", - value: function __callReactNativeMicrotasks() { - _$$_REQUIRE(_dependencyMap[2]).beginEvent('JSTimers.callReactNativeMicrotasks()'); - if (this._reactNativeMicrotasksCallback != null) { - this._reactNativeMicrotasksCallback(); - } - _$$_REQUIRE(_dependencyMap[2]).endEvent(); - } - }, { - key: "__callFunction", - value: function __callFunction(module, method, args) { - this._lastFlush = Date.now(); - this._eventLoopStartTime = this._lastFlush; - if (this.__spy) { - _$$_REQUIRE(_dependencyMap[2]).beginEvent(`${module}.${method}(${_$$_REQUIRE(_dependencyMap[4]).default(args)})`); - } else { - _$$_REQUIRE(_dependencyMap[2]).beginEvent(`${module}.${method}(...)`); - } - if (this.__spy) { - this.__spy({ - type: TO_JS, - module: module, - method: method, - args: args - }); - } - var moduleMethods = this.getCallableModule(module); - if (!moduleMethods) { - var callableModuleNames = Object.keys(this._lazyCallableModules); - var n = callableModuleNames.length; - var callableModuleNameList = callableModuleNames.join(', '); - - // TODO(T122225939): Remove after investigation: Why are we getting to this line in bridgeless mode? - var isBridgelessMode = global.RN$Bridgeless === true ? 'true' : 'false'; - _$$_REQUIRE(_dependencyMap[5])(false, `Failed to call into JavaScript module method ${module}.${method}(). Module has not been registered as callable. Bridgeless Mode: ${isBridgelessMode}. Registered callable JavaScript modules (n = ${n}): ${callableModuleNameList}. - A frequent cause of the error is that the application entry file path is incorrect. This can also happen when the JS bundle is corrupt or there is an early initialization error when loading React Native.`); - } - if (!moduleMethods[method]) { - _$$_REQUIRE(_dependencyMap[5])(false, `Failed to call into JavaScript module method ${module}.${method}(). Module exists, but the method is undefined.`); - } - moduleMethods[method].apply(moduleMethods, args); - _$$_REQUIRE(_dependencyMap[2]).endEvent(); - } - }, { - key: "__invokeCallback", - value: function __invokeCallback(cbID, args) { - this._lastFlush = Date.now(); - this._eventLoopStartTime = this._lastFlush; - - // The rightmost bit of cbID indicates fail (0) or success (1), the other bits are the callID shifted left. - // eslint-disable-next-line no-bitwise - var callID = cbID >>> 1; - // eslint-disable-next-line no-bitwise - var isSuccess = cbID & 1; - var callback = isSuccess ? this._successCallbacks.get(callID) : this._failureCallbacks.get(callID); - if (!callback) { - return; - } - this._successCallbacks.delete(callID); - this._failureCallbacks.delete(callID); - callback.apply(undefined, _$$_REQUIRE(_dependencyMap[6])(args)); - } - }], [{ - key: "spy", - value: function spy(spyOrToggle) { - if (spyOrToggle === true) { - MessageQueue.prototype.__spy = function (info) { - console.log(`${info.type === TO_JS ? 'N->JS' : 'JS->N'} : ` + `${info.module != null ? info.module + '.' : ''}${info.method}` + `(${JSON.stringify(info.args)})`); - }; - } else if (spyOrToggle === false) { - MessageQueue.prototype.__spy = null; - } else { - MessageQueue.prototype.__spy = spyOrToggle; - } - } - }]); - return MessageQueue; - }(); - module.exports = MessageQueue; -},49,[6,7,50,51,52,46,20]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.beginAsyncEvent = beginAsyncEvent; - exports.beginEvent = beginEvent; - exports.counterEvent = counterEvent; - exports.endAsyncEvent = endAsyncEvent; - exports.endEvent = endEvent; - exports.isEnabled = isEnabled; - exports.setEnabled = setEnabled; - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - var TRACE_TAG_REACT_APPS = 131072; // eslint-disable-line no-bitwise - - var _asyncCookie = 0; - /** - * Indicates if the application is currently being traced. - * - * Calling methods on this module when the application isn't being traced is - * cheap, but this method can be used to avoid computing expensive values for - * those functions. - * - * @example - * if (Systrace.isEnabled()) { - * const expensiveArgs = computeExpensiveArgs(); - * Systrace.beginEvent('myEvent', expensiveArgs); - * } - */ - function isEnabled() { - return global.nativeTraceIsTracing ? global.nativeTraceIsTracing(TRACE_TAG_REACT_APPS) : Boolean(global.__RCTProfileIsProfiling); - } - - /** - * @deprecated This function is now a no-op but it's left for backwards - * compatibility. `isEnabled` will now synchronously check if we're actively - * profiling or not. This is necessary because we don't have callbacks to know - * when profiling has started/stopped on Android APIs. - */ - function setEnabled(_doEnable) {} - - /** - * Marks the start of a synchronous event that should end in the same stack - * frame. The end of this event should be marked using the `endEvent` function. - */ - function beginEvent(eventName, args) { - if (isEnabled()) { - var eventNameString = typeof eventName === 'function' ? eventName() : eventName; - global.nativeTraceBeginSection(TRACE_TAG_REACT_APPS, eventNameString, args); - } - } - - /** - * Marks the end of a synchronous event started in the same stack frame. - */ - function endEvent(args) { - if (isEnabled()) { - global.nativeTraceEndSection(TRACE_TAG_REACT_APPS, args); - } - } - - /** - * Marks the start of a potentially asynchronous event. The end of this event - * should be marked calling the `endAsyncEvent` function with the cookie - * returned by this function. - */ - function beginAsyncEvent(eventName, args) { - var cookie = _asyncCookie; - if (isEnabled()) { - _asyncCookie++; - var eventNameString = typeof eventName === 'function' ? eventName() : eventName; - global.nativeTraceBeginAsyncSection(TRACE_TAG_REACT_APPS, eventNameString, cookie, args); - } - return cookie; - } - - /** - * Marks the end of a potentially asynchronous event, which was started with - * the given cookie. - */ - function endAsyncEvent(eventName, cookie, args) { - if (isEnabled()) { - var eventNameString = typeof eventName === 'function' ? eventName() : eventName; - global.nativeTraceEndAsyncSection(TRACE_TAG_REACT_APPS, eventNameString, cookie, args); - } - } - - /** - * Registers a new value for a counter event. - */ - function counterEvent(eventName, value) { - if (isEnabled()) { - var eventNameString = typeof eventName === 'function' ? eventName() : eventName; - global.nativeTraceCounter && global.nativeTraceCounter(TRACE_TAG_REACT_APPS, eventNameString, value); - } - } -},50,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - /** - * The particular require runtime that we are using looks for a global - * `ErrorUtils` object and if it exists, then it requires modules with the - * error handler specified via ErrorUtils.setGlobalHandler by calling the - * require function with applyWithGuard. Since the require module is loaded - * before any of the modules, this ErrorUtils must be defined (and the handler - * set) globally before requiring anything. - * - * However, we still want to treat ErrorUtils as a module so that other modules - * that use it aren't just using a global variable, so simply export the global - * variable here. ErrorUtils is originally defined in a file named error-guard.js. - */ - module.exports = global.ErrorUtils; -},51,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.createStringifySafeWithLimits = createStringifySafeWithLimits; - exports.default = undefined; - var _invariant = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - /** - * Tries to stringify with JSON.stringify and toString, but catches exceptions - * (e.g. from circular objects) and always returns a string and never throws. - */ - function createStringifySafeWithLimits(limits) { - var _limits$maxDepth = limits.maxDepth, - maxDepth = _limits$maxDepth === undefined ? Number.POSITIVE_INFINITY : _limits$maxDepth, - _limits$maxStringLimi = limits.maxStringLimit, - maxStringLimit = _limits$maxStringLimi === undefined ? Number.POSITIVE_INFINITY : _limits$maxStringLimi, - _limits$maxArrayLimit = limits.maxArrayLimit, - maxArrayLimit = _limits$maxArrayLimit === undefined ? Number.POSITIVE_INFINITY : _limits$maxArrayLimit, - _limits$maxObjectKeys = limits.maxObjectKeysLimit, - maxObjectKeysLimit = _limits$maxObjectKeys === undefined ? Number.POSITIVE_INFINITY : _limits$maxObjectKeys; - var stack = []; - /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by - * Flow's LTI update could not be added via codemod */ - function replacer(key, value) { - while (stack.length && this !== stack[0]) { - stack.shift(); - } - if (typeof value === 'string') { - var truncatedString = '...(truncated)...'; - if (value.length > maxStringLimit + truncatedString.length) { - return value.substring(0, maxStringLimit) + truncatedString; - } - return value; - } - if (typeof value !== 'object' || value === null) { - return value; - } - var retval = value; - if (Array.isArray(value)) { - if (stack.length >= maxDepth) { - retval = `[ ... array with ${value.length} values ... ]`; - } else if (value.length > maxArrayLimit) { - retval = value.slice(0, maxArrayLimit).concat([`... extra ${value.length - maxArrayLimit} values truncated ...`]); - } - } else { - // Add refinement after Array.isArray call. - (0, _invariant.default)(typeof value === 'object', 'This was already found earlier'); - var keys = Object.keys(value); - if (stack.length >= maxDepth) { - retval = `{ ... object with ${keys.length} keys ... }`; - } else if (keys.length > maxObjectKeysLimit) { - // Return a sample of the keys. - retval = {}; - for (var k of keys.slice(0, maxObjectKeysLimit)) { - retval[k] = value[k]; - } - var truncatedKey = '...(truncated keys)...'; - retval[truncatedKey] = keys.length - maxObjectKeysLimit; - } - } - stack.unshift(retval); - return retval; - } - return function stringifySafe(arg) { - if (arg === undefined) { - return 'undefined'; - } else if (arg === null) { - return 'null'; - } else if (typeof arg === 'function') { - try { - return arg.toString(); - } catch (e) { - return '[function unknown]'; - } - } else if (arg instanceof Error) { - return arg.name + ': ' + arg.message; - } else { - // Perform a try catch, just in case the object has a circular - // reference or stringify throws for some other reason. - try { - var ret = JSON.stringify(arg, replacer); - if (ret === undefined) { - return '["' + typeof arg + '" failed to stringify]'; - } - return ret; - } catch (e) { - if (typeof arg.toString === 'function') { - try { - // $FlowFixMe[incompatible-use] : toString shouldn't take any arguments in general. - return arg.toString(); - } catch (E) {} - } - } - } - return '["' + typeof arg + '" failed to stringify]'; - }; - } - var stringifySafe = createStringifySafeWithLimits({ - maxDepth: 10, - maxStringLimit: 100, - maxArrayLimit: 50, - maxObjectKeysLimit: 50 - }); - var _default = exports.default = stringifySafe; -},52,[1,46]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - /** - * Defines a lazily evaluated property on the supplied `object`. - */ - function defineLazyObjectProperty(object, name, descriptor) { - var get = descriptor.get; - var enumerable = descriptor.enumerable !== false; - var writable = descriptor.writable !== false; - var value; - var valueSet = false; - function getValue() { - // WORKAROUND: A weird infinite loop occurs where calling `getValue` calls - // `setValue` which calls `Object.defineProperty` which somehow triggers - // `getValue` again. Adding `valueSet` breaks this loop. - if (!valueSet) { - // Calling `get()` here can trigger an infinite loop if it fails to - // remove the getter on the property, which can happen when executing - // JS in a V8 context. `valueSet = true` will break this loop, and - // sets the value of the property to undefined, until the code in `get()` - // finishes, at which point the property is set to the correct value. - valueSet = true; - setValue(get()); - } - return value; - } - function setValue(newValue) { - value = newValue; - valueSet = true; - Object.defineProperty(object, name, { - value: newValue, - configurable: true, - enumerable: enumerable, - writable: writable - }); - } - Object.defineProperty(object, name, { - get: getValue, - set: setValue, - configurable: true, - enumerable: enumerable - }); - } - module.exports = defineLazyObjectProperty; -},53,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var _NativeAccessibilityManager = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - /** - * This is a function exposed to the React Renderer that can be used by the - * pre-Fabric renderer to emit accessibility events to pre-Fabric nodes. - */ - function legacySendAccessibilityEvent(reactTag, eventType) { - if (eventType === 'focus' && _NativeAccessibilityManager.default) { - _NativeAccessibilityManager.default.setAccessibilityFocus(reactTag); - } - } - module.exports = legacySendAccessibilityEvent; -},54,[1,55]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var TurboModuleRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - var _default = exports.default = TurboModuleRegistry.get('AccessibilityManager'); -},55,[45]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var TurboModuleRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - var _default = exports.default = TurboModuleRegistry.get('AccessibilityInfo'); -},56,[45]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - Object.keys(_$$_REQUIRE(_dependencyMap[0])).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (key in exports && exports[key] === _$$_REQUIRE(_dependencyMap[0])[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _$$_REQUIRE(_dependencyMap[0])[key]; - } - }); - }); -},57,[58]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.dispatchCommand = dispatchCommand; - exports.findHostInstance_DEPRECATED = findHostInstance_DEPRECATED; - exports.findNodeHandle = findNodeHandle; - exports.isProfilingRenderer = isProfilingRenderer; - exports.renderElement = renderElement; - exports.sendAccessibilityEvent = sendAccessibilityEvent; - exports.unmountComponentAtNodeAndRemoveContainer = unmountComponentAtNodeAndRemoveContainer; - exports.unstable_batchedUpdates = unstable_batchedUpdates; - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - function renderElement(_ref) { - var element = _ref.element, - rootTag = _ref.rootTag, - useFabric = _ref.useFabric, - useConcurrentRoot = _ref.useConcurrentRoot; - if (useFabric) { - _$$_REQUIRE(_dependencyMap[0]).render(element, rootTag, null, useConcurrentRoot); - } else { - _$$_REQUIRE(_dependencyMap[1]).render(element, rootTag); - } - } - function findHostInstance_DEPRECATED(componentOrHandle) { - return _$$_REQUIRE(_dependencyMap[1]).findHostInstance_DEPRECATED(componentOrHandle); - } - function findNodeHandle(componentOrHandle) { - return _$$_REQUIRE(_dependencyMap[1]).findNodeHandle(componentOrHandle); - } - function dispatchCommand(handle, command, args) { - if (global.RN$Bridgeless === true) { - // Note: this function has the same implementation in the legacy and new renderer. - // However, evaluating the old renderer comes with some side effects. - return _$$_REQUIRE(_dependencyMap[0]).dispatchCommand(handle, command, args); - } else { - return _$$_REQUIRE(_dependencyMap[1]).dispatchCommand(handle, command, args); - } - } - function sendAccessibilityEvent(handle, eventType) { - return _$$_REQUIRE(_dependencyMap[1]).sendAccessibilityEvent(handle, eventType); - } - - /** - * This method is used by AppRegistry to unmount a root when using the old - * React Native renderer (Paper). - */ - function unmountComponentAtNodeAndRemoveContainer(rootTag) { - // $FlowExpectedError[incompatible-type] rootTag is an opaque type so we can't really cast it as is. - var rootTagAsNumber = rootTag; - _$$_REQUIRE(_dependencyMap[1]).unmountComponentAtNodeAndRemoveContainer(rootTagAsNumber); - } - function unstable_batchedUpdates(fn, bookkeeping) { - // This doesn't actually do anything when batching updates for a Fabric root. - return _$$_REQUIRE(_dependencyMap[1]).unstable_batchedUpdates(fn, bookkeeping); - } - function isProfilingRenderer() { - return Boolean(false); - } -},58,[59,245]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @noformat - * - * @generated SignedSource<> - * - * This file was sync'd from the facebook/react repository. - */ - - 'use strict'; - - var ReactFabric; - { - ReactFabric = _$$_REQUIRE(_dependencyMap[0]); - } - if (global.RN$Bridgeless) { - global.RN$stopSurface = ReactFabric.stopSurface; - } else { - _$$_REQUIRE(_dependencyMap[1]).BatchedBridge.registerCallableModule('ReactFabric', ReactFabric); - } - module.exports = ReactFabric; -},59,[60,227]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @nolint - * @providesModule ReactFabric-prod - * @preventMunge - * @generated SignedSource<> - */ - - "use strict"; - - _$$_REQUIRE(_dependencyMap[0]); - var React = _$$_REQUIRE(_dependencyMap[1]); - function invokeGuardedCallbackImpl(name, func, context, a, b, c, d, e, f) { - var funcArgs = Array.prototype.slice.call(arguments, 3); - try { - func.apply(context, funcArgs); - } catch (error) { - this.onError(error); - } - } - var hasError = false, - caughtError = null, - hasRethrowError = false, - rethrowError = null, - reporter = { - onError: function onError(error) { - hasError = true; - caughtError = error; - } - }; - function invokeGuardedCallback(name, func, context, a, b, c, d, e, f) { - hasError = false; - caughtError = null; - invokeGuardedCallbackImpl.apply(reporter, arguments); - } - function invokeGuardedCallbackAndCatchFirstError(name, func, context, a, b, c, d, e, f) { - invokeGuardedCallback.apply(this, arguments); - if (hasError) { - if (hasError) { - var error = caughtError; - hasError = false; - caughtError = null; - } else throw Error("clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue."); - hasRethrowError || (hasRethrowError = true, rethrowError = error); - } - } - var isArrayImpl = Array.isArray, - getFiberCurrentPropsFromNode = null, - getInstanceFromNode = null, - getNodeFromInstance = null; - function executeDispatch(event, listener, inst) { - var type = event.type || "unknown-event"; - event.currentTarget = getNodeFromInstance(inst); - invokeGuardedCallbackAndCatchFirstError(type, listener, undefined, event); - event.currentTarget = null; - } - function executeDirectDispatch(event) { - var dispatchListener = event._dispatchListeners, - dispatchInstance = event._dispatchInstances; - if (isArrayImpl(dispatchListener)) throw Error("executeDirectDispatch(...): Invalid `event`."); - event.currentTarget = dispatchListener ? getNodeFromInstance(dispatchInstance) : null; - dispatchListener = dispatchListener ? dispatchListener(event) : null; - event.currentTarget = null; - event._dispatchListeners = null; - event._dispatchInstances = null; - return dispatchListener; - } - var assign = Object.assign; - function functionThatReturnsTrue() { - return true; - } - function functionThatReturnsFalse() { - return false; - } - function SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarget) { - this.dispatchConfig = dispatchConfig; - this._targetInst = targetInst; - this.nativeEvent = nativeEvent; - this._dispatchInstances = this._dispatchListeners = null; - dispatchConfig = this.constructor.Interface; - for (var propName in dispatchConfig) dispatchConfig.hasOwnProperty(propName) && ((targetInst = dispatchConfig[propName]) ? this[propName] = targetInst(nativeEvent) : "target" === propName ? this.target = nativeEventTarget : this[propName] = nativeEvent[propName]); - this.isDefaultPrevented = (null != nativeEvent.defaultPrevented ? nativeEvent.defaultPrevented : false === nativeEvent.returnValue) ? functionThatReturnsTrue : functionThatReturnsFalse; - this.isPropagationStopped = functionThatReturnsFalse; - return this; - } - assign(SyntheticEvent.prototype, { - preventDefault: function preventDefault() { - this.defaultPrevented = true; - var event = this.nativeEvent; - event && (event.preventDefault ? event.preventDefault() : "unknown" !== typeof event.returnValue && (event.returnValue = false), this.isDefaultPrevented = functionThatReturnsTrue); - }, - stopPropagation: function stopPropagation() { - var event = this.nativeEvent; - event && (event.stopPropagation ? event.stopPropagation() : "unknown" !== typeof event.cancelBubble && (event.cancelBubble = true), this.isPropagationStopped = functionThatReturnsTrue); - }, - persist: function persist() { - this.isPersistent = functionThatReturnsTrue; - }, - isPersistent: functionThatReturnsFalse, - destructor: function destructor() { - var Interface = this.constructor.Interface, - propName; - for (propName in Interface) this[propName] = null; - this.nativeEvent = this._targetInst = this.dispatchConfig = null; - this.isPropagationStopped = this.isDefaultPrevented = functionThatReturnsFalse; - this._dispatchInstances = this._dispatchListeners = null; - } - }); - SyntheticEvent.Interface = { - type: null, - target: null, - currentTarget: function currentTarget() { - return null; - }, - eventPhase: null, - bubbles: null, - cancelable: null, - timeStamp: function timeStamp(event) { - return event.timeStamp || Date.now(); - }, - defaultPrevented: null, - isTrusted: null - }; - SyntheticEvent.extend = function (Interface) { - function E() {} - function Class() { - return Super.apply(this, arguments); - } - var Super = this; - E.prototype = Super.prototype; - var prototype = new E(); - assign(prototype, Class.prototype); - Class.prototype = prototype; - Class.prototype.constructor = Class; - Class.Interface = assign({}, Super.Interface, Interface); - Class.extend = Super.extend; - addEventPoolingTo(Class); - return Class; - }; - addEventPoolingTo(SyntheticEvent); - function createOrGetPooledEvent(dispatchConfig, targetInst, nativeEvent, nativeInst) { - if (this.eventPool.length) { - var instance = this.eventPool.pop(); - this.call(instance, dispatchConfig, targetInst, nativeEvent, nativeInst); - return instance; - } - return new this(dispatchConfig, targetInst, nativeEvent, nativeInst); - } - function releasePooledEvent(event) { - if (!(event instanceof this)) throw Error("Trying to release an event instance into a pool of a different type."); - event.destructor(); - 10 > this.eventPool.length && this.eventPool.push(event); - } - function addEventPoolingTo(EventConstructor) { - EventConstructor.getPooled = createOrGetPooledEvent; - EventConstructor.eventPool = []; - EventConstructor.release = releasePooledEvent; - } - var ResponderSyntheticEvent = SyntheticEvent.extend({ - touchHistory: function touchHistory() { - return null; - } - }); - function isStartish(topLevelType) { - return "topTouchStart" === topLevelType; - } - function isMoveish(topLevelType) { - return "topTouchMove" === topLevelType; - } - var startDependencies = ["topTouchStart"], - moveDependencies = ["topTouchMove"], - endDependencies = ["topTouchCancel", "topTouchEnd"], - touchBank = [], - touchHistory = { - touchBank: touchBank, - numberActiveTouches: 0, - indexOfSingleActiveTouch: -1, - mostRecentTimeStamp: 0 - }; - function timestampForTouch(touch) { - return touch.timeStamp || touch.timestamp; - } - function getTouchIdentifier(_ref) { - _ref = _ref.identifier; - if (null == _ref) throw Error("Touch object is missing identifier."); - return _ref; - } - function recordTouchStart(touch) { - var identifier = getTouchIdentifier(touch), - touchRecord = touchBank[identifier]; - touchRecord ? (touchRecord.touchActive = true, touchRecord.startPageX = touch.pageX, touchRecord.startPageY = touch.pageY, touchRecord.startTimeStamp = timestampForTouch(touch), touchRecord.currentPageX = touch.pageX, touchRecord.currentPageY = touch.pageY, touchRecord.currentTimeStamp = timestampForTouch(touch), touchRecord.previousPageX = touch.pageX, touchRecord.previousPageY = touch.pageY, touchRecord.previousTimeStamp = timestampForTouch(touch)) : (touchRecord = { - touchActive: true, - startPageX: touch.pageX, - startPageY: touch.pageY, - startTimeStamp: timestampForTouch(touch), - currentPageX: touch.pageX, - currentPageY: touch.pageY, - currentTimeStamp: timestampForTouch(touch), - previousPageX: touch.pageX, - previousPageY: touch.pageY, - previousTimeStamp: timestampForTouch(touch) - }, touchBank[identifier] = touchRecord); - touchHistory.mostRecentTimeStamp = timestampForTouch(touch); - } - function recordTouchMove(touch) { - var touchRecord = touchBank[getTouchIdentifier(touch)]; - touchRecord && (touchRecord.touchActive = true, touchRecord.previousPageX = touchRecord.currentPageX, touchRecord.previousPageY = touchRecord.currentPageY, touchRecord.previousTimeStamp = touchRecord.currentTimeStamp, touchRecord.currentPageX = touch.pageX, touchRecord.currentPageY = touch.pageY, touchRecord.currentTimeStamp = timestampForTouch(touch), touchHistory.mostRecentTimeStamp = timestampForTouch(touch)); - } - function recordTouchEnd(touch) { - var touchRecord = touchBank[getTouchIdentifier(touch)]; - touchRecord && (touchRecord.touchActive = false, touchRecord.previousPageX = touchRecord.currentPageX, touchRecord.previousPageY = touchRecord.currentPageY, touchRecord.previousTimeStamp = touchRecord.currentTimeStamp, touchRecord.currentPageX = touch.pageX, touchRecord.currentPageY = touch.pageY, touchRecord.currentTimeStamp = timestampForTouch(touch), touchHistory.mostRecentTimeStamp = timestampForTouch(touch)); - } - var instrumentationCallback, - ResponderTouchHistoryStore = { - instrument: function instrument(callback) { - instrumentationCallback = callback; - }, - recordTouchTrack: function recordTouchTrack(topLevelType, nativeEvent) { - null != instrumentationCallback && instrumentationCallback(topLevelType, nativeEvent); - if (isMoveish(topLevelType)) nativeEvent.changedTouches.forEach(recordTouchMove);else if (isStartish(topLevelType)) nativeEvent.changedTouches.forEach(recordTouchStart), touchHistory.numberActiveTouches = nativeEvent.touches.length, 1 === touchHistory.numberActiveTouches && (touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier);else if ("topTouchEnd" === topLevelType || "topTouchCancel" === topLevelType) if (nativeEvent.changedTouches.forEach(recordTouchEnd), touchHistory.numberActiveTouches = nativeEvent.touches.length, 1 === touchHistory.numberActiveTouches) for (topLevelType = 0; topLevelType < touchBank.length; topLevelType++) if (nativeEvent = touchBank[topLevelType], null != nativeEvent && nativeEvent.touchActive) { - touchHistory.indexOfSingleActiveTouch = topLevelType; - break; - } - }, - touchHistory: touchHistory - }; - function accumulate(current, next) { - if (null == next) throw Error("accumulate(...): Accumulated items must not be null or undefined."); - return null == current ? next : isArrayImpl(current) ? current.concat(next) : isArrayImpl(next) ? [current].concat(next) : [current, next]; - } - function accumulateInto(current, next) { - if (null == next) throw Error("accumulateInto(...): Accumulated items must not be null or undefined."); - if (null == current) return next; - if (isArrayImpl(current)) { - if (isArrayImpl(next)) return current.push.apply(current, next), current; - current.push(next); - return current; - } - return isArrayImpl(next) ? [current].concat(next) : [current, next]; - } - function forEachAccumulated(arr, cb, scope) { - Array.isArray(arr) ? arr.forEach(cb, scope) : arr && cb.call(scope, arr); - } - var responderInst = null, - trackedTouchCount = 0; - function changeResponder(nextResponderInst, blockHostResponder) { - var oldResponderInst = responderInst; - responderInst = nextResponderInst; - if (null !== ResponderEventPlugin.GlobalResponderHandler) ResponderEventPlugin.GlobalResponderHandler.onChange(oldResponderInst, nextResponderInst, blockHostResponder); - } - var eventTypes = { - startShouldSetResponder: { - phasedRegistrationNames: { - bubbled: "onStartShouldSetResponder", - captured: "onStartShouldSetResponderCapture" - }, - dependencies: startDependencies - }, - scrollShouldSetResponder: { - phasedRegistrationNames: { - bubbled: "onScrollShouldSetResponder", - captured: "onScrollShouldSetResponderCapture" - }, - dependencies: ["topScroll"] - }, - selectionChangeShouldSetResponder: { - phasedRegistrationNames: { - bubbled: "onSelectionChangeShouldSetResponder", - captured: "onSelectionChangeShouldSetResponderCapture" - }, - dependencies: ["topSelectionChange"] - }, - moveShouldSetResponder: { - phasedRegistrationNames: { - bubbled: "onMoveShouldSetResponder", - captured: "onMoveShouldSetResponderCapture" - }, - dependencies: moveDependencies - }, - responderStart: { - registrationName: "onResponderStart", - dependencies: startDependencies - }, - responderMove: { - registrationName: "onResponderMove", - dependencies: moveDependencies - }, - responderEnd: { - registrationName: "onResponderEnd", - dependencies: endDependencies - }, - responderRelease: { - registrationName: "onResponderRelease", - dependencies: endDependencies - }, - responderTerminationRequest: { - registrationName: "onResponderTerminationRequest", - dependencies: [] - }, - responderGrant: { - registrationName: "onResponderGrant", - dependencies: [] - }, - responderReject: { - registrationName: "onResponderReject", - dependencies: [] - }, - responderTerminate: { - registrationName: "onResponderTerminate", - dependencies: [] - } - }; - function getParent(inst) { - do inst = inst.return; while (inst && 5 !== inst.tag); - return inst ? inst : null; - } - function traverseTwoPhase(inst, fn, arg) { - for (var path = []; inst;) path.push(inst), inst = getParent(inst); - for (inst = path.length; 0 < inst--;) fn(path[inst], "captured", arg); - for (inst = 0; inst < path.length; inst++) fn(path[inst], "bubbled", arg); - } - function getListener(inst, registrationName) { - inst = inst.stateNode; - if (null === inst) return null; - inst = getFiberCurrentPropsFromNode(inst); - if (null === inst) return null; - if ((inst = inst[registrationName]) && "function" !== typeof inst) throw Error("Expected `" + registrationName + "` listener to be a function, instead got a value of `" + typeof inst + "` type."); - return inst; - } - function accumulateDirectionalDispatches(inst, phase, event) { - if (phase = getListener(inst, event.dispatchConfig.phasedRegistrationNames[phase])) event._dispatchListeners = accumulateInto(event._dispatchListeners, phase), event._dispatchInstances = accumulateInto(event._dispatchInstances, inst); - } - function accumulateDirectDispatchesSingle(event) { - if (event && event.dispatchConfig.registrationName) { - var inst = event._targetInst; - if (inst && event && event.dispatchConfig.registrationName) { - var listener = getListener(inst, event.dispatchConfig.registrationName); - listener && (event._dispatchListeners = accumulateInto(event._dispatchListeners, listener), event._dispatchInstances = accumulateInto(event._dispatchInstances, inst)); - } - } - } - function accumulateTwoPhaseDispatchesSingleSkipTarget(event) { - if (event && event.dispatchConfig.phasedRegistrationNames) { - var targetInst = event._targetInst; - targetInst = targetInst ? getParent(targetInst) : null; - traverseTwoPhase(targetInst, accumulateDirectionalDispatches, event); - } - } - function accumulateTwoPhaseDispatchesSingle(event) { - event && event.dispatchConfig.phasedRegistrationNames && traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event); - } - var ResponderEventPlugin = { - _getResponder: function _getResponder() { - return responderInst; - }, - eventTypes: eventTypes, - extractEvents: function extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget) { - if (isStartish(topLevelType)) trackedTouchCount += 1;else if ("topTouchEnd" === topLevelType || "topTouchCancel" === topLevelType) if (0 <= trackedTouchCount) --trackedTouchCount;else return null; - ResponderTouchHistoryStore.recordTouchTrack(topLevelType, nativeEvent); - if (targetInst && ("topScroll" === topLevelType && !nativeEvent.responderIgnoreScroll || 0 < trackedTouchCount && "topSelectionChange" === topLevelType || isStartish(topLevelType) || isMoveish(topLevelType))) { - var shouldSetEventType = isStartish(topLevelType) ? eventTypes.startShouldSetResponder : isMoveish(topLevelType) ? eventTypes.moveShouldSetResponder : "topSelectionChange" === topLevelType ? eventTypes.selectionChangeShouldSetResponder : eventTypes.scrollShouldSetResponder; - if (responderInst) b: { - var JSCompiler_temp = responderInst; - for (var depthA = 0, tempA = JSCompiler_temp; tempA; tempA = getParent(tempA)) depthA++; - tempA = 0; - for (var tempB = targetInst; tempB; tempB = getParent(tempB)) tempA++; - for (; 0 < depthA - tempA;) JSCompiler_temp = getParent(JSCompiler_temp), depthA--; - for (; 0 < tempA - depthA;) targetInst = getParent(targetInst), tempA--; - for (; depthA--;) { - if (JSCompiler_temp === targetInst || JSCompiler_temp === targetInst.alternate) break b; - JSCompiler_temp = getParent(JSCompiler_temp); - targetInst = getParent(targetInst); - } - JSCompiler_temp = null; - } else JSCompiler_temp = targetInst; - targetInst = JSCompiler_temp; - JSCompiler_temp = targetInst === responderInst; - shouldSetEventType = ResponderSyntheticEvent.getPooled(shouldSetEventType, targetInst, nativeEvent, nativeEventTarget); - shouldSetEventType.touchHistory = ResponderTouchHistoryStore.touchHistory; - JSCompiler_temp ? forEachAccumulated(shouldSetEventType, accumulateTwoPhaseDispatchesSingleSkipTarget) : forEachAccumulated(shouldSetEventType, accumulateTwoPhaseDispatchesSingle); - b: { - JSCompiler_temp = shouldSetEventType._dispatchListeners; - targetInst = shouldSetEventType._dispatchInstances; - if (isArrayImpl(JSCompiler_temp)) for (depthA = 0; depthA < JSCompiler_temp.length && !shouldSetEventType.isPropagationStopped(); depthA++) { - if (JSCompiler_temp[depthA](shouldSetEventType, targetInst[depthA])) { - JSCompiler_temp = targetInst[depthA]; - break b; - } - } else if (JSCompiler_temp && JSCompiler_temp(shouldSetEventType, targetInst)) { - JSCompiler_temp = targetInst; - break b; - } - JSCompiler_temp = null; - } - shouldSetEventType._dispatchInstances = null; - shouldSetEventType._dispatchListeners = null; - shouldSetEventType.isPersistent() || shouldSetEventType.constructor.release(shouldSetEventType); - if (JSCompiler_temp && JSCompiler_temp !== responderInst) { - if (shouldSetEventType = ResponderSyntheticEvent.getPooled(eventTypes.responderGrant, JSCompiler_temp, nativeEvent, nativeEventTarget), shouldSetEventType.touchHistory = ResponderTouchHistoryStore.touchHistory, forEachAccumulated(shouldSetEventType, accumulateDirectDispatchesSingle), targetInst = true === executeDirectDispatch(shouldSetEventType), responderInst) { - if (depthA = ResponderSyntheticEvent.getPooled(eventTypes.responderTerminationRequest, responderInst, nativeEvent, nativeEventTarget), depthA.touchHistory = ResponderTouchHistoryStore.touchHistory, forEachAccumulated(depthA, accumulateDirectDispatchesSingle), tempA = !depthA._dispatchListeners || executeDirectDispatch(depthA), depthA.isPersistent() || depthA.constructor.release(depthA), tempA) { - depthA = ResponderSyntheticEvent.getPooled(eventTypes.responderTerminate, responderInst, nativeEvent, nativeEventTarget); - depthA.touchHistory = ResponderTouchHistoryStore.touchHistory; - forEachAccumulated(depthA, accumulateDirectDispatchesSingle); - var JSCompiler_temp$jscomp$0 = accumulate(JSCompiler_temp$jscomp$0, [shouldSetEventType, depthA]); - changeResponder(JSCompiler_temp, targetInst); - } else shouldSetEventType = ResponderSyntheticEvent.getPooled(eventTypes.responderReject, JSCompiler_temp, nativeEvent, nativeEventTarget), shouldSetEventType.touchHistory = ResponderTouchHistoryStore.touchHistory, forEachAccumulated(shouldSetEventType, accumulateDirectDispatchesSingle), JSCompiler_temp$jscomp$0 = accumulate(JSCompiler_temp$jscomp$0, shouldSetEventType); - } else JSCompiler_temp$jscomp$0 = accumulate(JSCompiler_temp$jscomp$0, shouldSetEventType), changeResponder(JSCompiler_temp, targetInst); - } else JSCompiler_temp$jscomp$0 = null; - } else JSCompiler_temp$jscomp$0 = null; - shouldSetEventType = responderInst && isStartish(topLevelType); - JSCompiler_temp = responderInst && isMoveish(topLevelType); - targetInst = responderInst && ("topTouchEnd" === topLevelType || "topTouchCancel" === topLevelType); - if (shouldSetEventType = shouldSetEventType ? eventTypes.responderStart : JSCompiler_temp ? eventTypes.responderMove : targetInst ? eventTypes.responderEnd : null) shouldSetEventType = ResponderSyntheticEvent.getPooled(shouldSetEventType, responderInst, nativeEvent, nativeEventTarget), shouldSetEventType.touchHistory = ResponderTouchHistoryStore.touchHistory, forEachAccumulated(shouldSetEventType, accumulateDirectDispatchesSingle), JSCompiler_temp$jscomp$0 = accumulate(JSCompiler_temp$jscomp$0, shouldSetEventType); - shouldSetEventType = responderInst && "topTouchCancel" === topLevelType; - if (topLevelType = responderInst && !shouldSetEventType && ("topTouchEnd" === topLevelType || "topTouchCancel" === topLevelType)) a: { - if ((topLevelType = nativeEvent.touches) && 0 !== topLevelType.length) for (JSCompiler_temp = 0; JSCompiler_temp < topLevelType.length; JSCompiler_temp++) if (targetInst = topLevelType[JSCompiler_temp].target, null !== targetInst && undefined !== targetInst && 0 !== targetInst) { - depthA = getInstanceFromNode(targetInst); - b: { - for (targetInst = responderInst; depthA;) { - if (targetInst === depthA || targetInst === depthA.alternate) { - targetInst = true; - break b; - } - depthA = getParent(depthA); - } - targetInst = false; - } - if (targetInst) { - topLevelType = false; - break a; - } - } - topLevelType = true; - } - if (topLevelType = shouldSetEventType ? eventTypes.responderTerminate : topLevelType ? eventTypes.responderRelease : null) nativeEvent = ResponderSyntheticEvent.getPooled(topLevelType, responderInst, nativeEvent, nativeEventTarget), nativeEvent.touchHistory = ResponderTouchHistoryStore.touchHistory, forEachAccumulated(nativeEvent, accumulateDirectDispatchesSingle), JSCompiler_temp$jscomp$0 = accumulate(JSCompiler_temp$jscomp$0, nativeEvent), changeResponder(null); - return JSCompiler_temp$jscomp$0; - }, - GlobalResponderHandler: null, - injection: { - injectGlobalResponderHandler: function injectGlobalResponderHandler(GlobalResponderHandler) { - ResponderEventPlugin.GlobalResponderHandler = GlobalResponderHandler; - } - } - }, - eventPluginOrder = null, - namesToPlugins = {}; - function recomputePluginOrdering() { - if (eventPluginOrder) for (var pluginName in namesToPlugins) { - var pluginModule = namesToPlugins[pluginName], - pluginIndex = eventPluginOrder.indexOf(pluginName); - if (-1 >= pluginIndex) throw Error("EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `" + (pluginName + "`.")); - if (!plugins[pluginIndex]) { - if (!pluginModule.extractEvents) throw Error("EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `" + (pluginName + "` does not.")); - plugins[pluginIndex] = pluginModule; - pluginIndex = pluginModule.eventTypes; - for (var eventName in pluginIndex) { - var JSCompiler_inline_result = undefined; - var dispatchConfig = pluginIndex[eventName], - eventName$jscomp$0 = eventName; - if (eventNameDispatchConfigs.hasOwnProperty(eventName$jscomp$0)) throw Error("EventPluginRegistry: More than one plugin attempted to publish the same event name, `" + (eventName$jscomp$0 + "`.")); - eventNameDispatchConfigs[eventName$jscomp$0] = dispatchConfig; - var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames; - if (phasedRegistrationNames) { - for (JSCompiler_inline_result in phasedRegistrationNames) phasedRegistrationNames.hasOwnProperty(JSCompiler_inline_result) && publishRegistrationName(phasedRegistrationNames[JSCompiler_inline_result], pluginModule, eventName$jscomp$0); - JSCompiler_inline_result = true; - } else dispatchConfig.registrationName ? (publishRegistrationName(dispatchConfig.registrationName, pluginModule, eventName$jscomp$0), JSCompiler_inline_result = true) : JSCompiler_inline_result = false; - if (!JSCompiler_inline_result) throw Error("EventPluginRegistry: Failed to publish event `" + eventName + "` for plugin `" + pluginName + "`."); - } - } - } - } - function publishRegistrationName(registrationName, pluginModule) { - if (registrationNameModules[registrationName]) throw Error("EventPluginRegistry: More than one plugin attempted to publish the same registration name, `" + (registrationName + "`.")); - registrationNameModules[registrationName] = pluginModule; - } - var plugins = [], - eventNameDispatchConfigs = {}, - registrationNameModules = {}; - function getListeners(inst, registrationName, phase, dispatchToImperativeListeners) { - var stateNode = inst.stateNode; - if (null === stateNode) return null; - inst = getFiberCurrentPropsFromNode(stateNode); - if (null === inst) return null; - if ((inst = inst[registrationName]) && "function" !== typeof inst) throw Error("Expected `" + registrationName + "` listener to be a function, instead got a value of `" + typeof inst + "` type."); - if (!(dispatchToImperativeListeners && stateNode.canonical && stateNode.canonical._eventListeners)) return inst; - var listeners = []; - inst && listeners.push(inst); - var requestedPhaseIsCapture = "captured" === phase, - mangledImperativeRegistrationName = requestedPhaseIsCapture ? "rn:" + registrationName.replace(/Capture$/, "") : "rn:" + registrationName; - stateNode.canonical._eventListeners[mangledImperativeRegistrationName] && 0 < stateNode.canonical._eventListeners[mangledImperativeRegistrationName].length && stateNode.canonical._eventListeners[mangledImperativeRegistrationName].forEach(function (listenerObj) { - if ((null != listenerObj.options.capture && listenerObj.options.capture) === requestedPhaseIsCapture) { - var listenerFnWrapper = function listenerFnWrapper(syntheticEvent) { - var eventInst = new (_$$_REQUIRE(_dependencyMap[2]).CustomEvent)(mangledImperativeRegistrationName, { - detail: syntheticEvent.nativeEvent - }); - eventInst.isTrusted = true; - eventInst.setSyntheticEvent(syntheticEvent); - for (var _len = arguments.length, args = Array(1 < _len ? _len - 1 : 0), _key = 1; _key < _len; _key++) args[_key - 1] = arguments[_key]; - listenerObj.listener.apply(listenerObj, [eventInst].concat(args)); - }; - listenerObj.options.once ? listeners.push(function () { - stateNode.canonical.removeEventListener_unstable(mangledImperativeRegistrationName, listenerObj.listener, listenerObj.capture); - listenerObj.invalidated || (listenerObj.invalidated = true, listenerObj.listener.apply(listenerObj, arguments)); - }) : listeners.push(listenerFnWrapper); - } - }); - return 0 === listeners.length ? null : 1 === listeners.length ? listeners[0] : listeners; - } - var customBubblingEventTypes = _$$_REQUIRE(_dependencyMap[2]).ReactNativeViewConfigRegistry.customBubblingEventTypes, - customDirectEventTypes = _$$_REQUIRE(_dependencyMap[2]).ReactNativeViewConfigRegistry.customDirectEventTypes; - function accumulateListenersAndInstances(inst, event, listeners) { - var listenersLength = listeners ? isArrayImpl(listeners) ? listeners.length : 1 : 0; - if (0 < listenersLength) if (event._dispatchListeners = accumulateInto(event._dispatchListeners, listeners), null == event._dispatchInstances && 1 === listenersLength) event._dispatchInstances = inst;else for (event._dispatchInstances = event._dispatchInstances || [], isArrayImpl(event._dispatchInstances) || (event._dispatchInstances = [event._dispatchInstances]), listeners = 0; listeners < listenersLength; listeners++) event._dispatchInstances.push(inst); - } - function accumulateDirectionalDispatches$1(inst, phase, event) { - phase = getListeners(inst, event.dispatchConfig.phasedRegistrationNames[phase], phase, true); - accumulateListenersAndInstances(inst, event, phase); - } - function traverseTwoPhase$1(inst, fn, arg, skipBubbling) { - for (var path = []; inst;) { - path.push(inst); - do inst = inst.return; while (inst && 5 !== inst.tag); - inst = inst ? inst : null; - } - for (inst = path.length; 0 < inst--;) fn(path[inst], "captured", arg); - if (skipBubbling) fn(path[0], "bubbled", arg);else for (inst = 0; inst < path.length; inst++) fn(path[inst], "bubbled", arg); - } - function accumulateTwoPhaseDispatchesSingle$1(event) { - event && event.dispatchConfig.phasedRegistrationNames && traverseTwoPhase$1(event._targetInst, accumulateDirectionalDispatches$1, event, false); - } - function accumulateDirectDispatchesSingle$1(event) { - if (event && event.dispatchConfig.registrationName) { - var inst = event._targetInst; - if (inst && event && event.dispatchConfig.registrationName) { - var listeners = getListeners(inst, event.dispatchConfig.registrationName, "bubbled", false); - accumulateListenersAndInstances(inst, event, listeners); - } - } - } - if (eventPluginOrder) throw Error("EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React."); - eventPluginOrder = Array.prototype.slice.call(["ResponderEventPlugin", "ReactNativeBridgeEventPlugin"]); - recomputePluginOrdering(); - var injectedNamesToPlugins$jscomp$inline_223 = { - ResponderEventPlugin: ResponderEventPlugin, - ReactNativeBridgeEventPlugin: { - eventTypes: {}, - extractEvents: function extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget) { - if (null == targetInst) return null; - var bubbleDispatchConfig = customBubblingEventTypes[topLevelType], - directDispatchConfig = customDirectEventTypes[topLevelType]; - if (!bubbleDispatchConfig && !directDispatchConfig) throw Error('Unsupported top level event type "' + topLevelType + '" dispatched'); - topLevelType = SyntheticEvent.getPooled(bubbleDispatchConfig || directDispatchConfig, targetInst, nativeEvent, nativeEventTarget); - if (bubbleDispatchConfig) null != topLevelType && null != topLevelType.dispatchConfig.phasedRegistrationNames && topLevelType.dispatchConfig.phasedRegistrationNames.skipBubbling ? topLevelType && topLevelType.dispatchConfig.phasedRegistrationNames && traverseTwoPhase$1(topLevelType._targetInst, accumulateDirectionalDispatches$1, topLevelType, true) : forEachAccumulated(topLevelType, accumulateTwoPhaseDispatchesSingle$1);else if (directDispatchConfig) forEachAccumulated(topLevelType, accumulateDirectDispatchesSingle$1);else return null; - return topLevelType; - } - } - }, - isOrderingDirty$jscomp$inline_224 = false, - pluginName$jscomp$inline_225; - for (pluginName$jscomp$inline_225 in injectedNamesToPlugins$jscomp$inline_223) if (injectedNamesToPlugins$jscomp$inline_223.hasOwnProperty(pluginName$jscomp$inline_225)) { - var pluginModule$jscomp$inline_226 = injectedNamesToPlugins$jscomp$inline_223[pluginName$jscomp$inline_225]; - if (!namesToPlugins.hasOwnProperty(pluginName$jscomp$inline_225) || namesToPlugins[pluginName$jscomp$inline_225] !== pluginModule$jscomp$inline_226) { - if (namesToPlugins[pluginName$jscomp$inline_225]) throw Error("EventPluginRegistry: Cannot inject two different event plugins using the same name, `" + (pluginName$jscomp$inline_225 + "`.")); - namesToPlugins[pluginName$jscomp$inline_225] = pluginModule$jscomp$inline_226; - isOrderingDirty$jscomp$inline_224 = true; - } - } - isOrderingDirty$jscomp$inline_224 && recomputePluginOrdering(); - function getInstanceFromInstance(instanceHandle) { - return instanceHandle; - } - getFiberCurrentPropsFromNode = function getFiberCurrentPropsFromNode(inst) { - return inst.canonical.currentProps; - }; - getInstanceFromNode = getInstanceFromInstance; - getNodeFromInstance = function getNodeFromInstance(inst) { - inst = inst.stateNode.canonical; - if (!inst._nativeTag) throw Error("All native instances should have a tag."); - return inst; - }; - ResponderEventPlugin.injection.injectGlobalResponderHandler({ - onChange: function onChange(from, to, blockNativeResponder) { - var fromOrTo = from || to; - (fromOrTo = fromOrTo && fromOrTo.stateNode) && fromOrTo.canonical._internalInstanceHandle ? (from && nativeFabricUIManager.setIsJSResponder(from.stateNode.node, false, blockNativeResponder || false), to && nativeFabricUIManager.setIsJSResponder(to.stateNode.node, true, blockNativeResponder || false)) : null !== to ? _$$_REQUIRE(_dependencyMap[2]).UIManager.setJSResponder(to.stateNode.canonical._nativeTag, blockNativeResponder) : _$$_REQUIRE(_dependencyMap[2]).UIManager.clearJSResponder(); - } - }); - var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, - REACT_ELEMENT_TYPE = Symbol.for("react.element"), - REACT_PORTAL_TYPE = Symbol.for("react.portal"), - REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), - REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), - REACT_PROFILER_TYPE = Symbol.for("react.profiler"), - REACT_PROVIDER_TYPE = Symbol.for("react.provider"), - REACT_CONTEXT_TYPE = Symbol.for("react.context"), - REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), - REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), - REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"), - REACT_MEMO_TYPE = Symbol.for("react.memo"), - REACT_LAZY_TYPE = Symbol.for("react.lazy"); - Symbol.for("react.scope"); - Symbol.for("react.debug_trace_mode"); - var REACT_OFFSCREEN_TYPE = Symbol.for("react.offscreen"); - Symbol.for("react.legacy_hidden"); - Symbol.for("react.cache"); - Symbol.for("react.tracing_marker"); - var MAYBE_ITERATOR_SYMBOL = Symbol.iterator; - function getIteratorFn(maybeIterable) { - if (null === maybeIterable || "object" !== typeof maybeIterable) return null; - maybeIterable = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable["@@iterator"]; - return "function" === typeof maybeIterable ? maybeIterable : null; - } - function getComponentNameFromType(type) { - if (null == type) return null; - if ("function" === typeof type) return type.displayName || type.name || null; - if ("string" === typeof type) return type; - switch (type) { - case REACT_FRAGMENT_TYPE: - return "Fragment"; - case REACT_PORTAL_TYPE: - return "Portal"; - case REACT_PROFILER_TYPE: - return "Profiler"; - case REACT_STRICT_MODE_TYPE: - return "StrictMode"; - case REACT_SUSPENSE_TYPE: - return "Suspense"; - case REACT_SUSPENSE_LIST_TYPE: - return "SuspenseList"; - } - if ("object" === typeof type) switch (type.$$typeof) { - case REACT_CONTEXT_TYPE: - return (type.displayName || "Context") + ".Consumer"; - case REACT_PROVIDER_TYPE: - return (type._context.displayName || "Context") + ".Provider"; - case REACT_FORWARD_REF_TYPE: - var innerType = type.render; - type = type.displayName; - type || (type = innerType.displayName || innerType.name || "", type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"); - return type; - case REACT_MEMO_TYPE: - return innerType = type.displayName || null, null !== innerType ? innerType : getComponentNameFromType(type.type) || "Memo"; - case REACT_LAZY_TYPE: - innerType = type._payload; - type = type._init; - try { - return getComponentNameFromType(type(innerType)); - } catch (x) {} - } - return null; - } - function getComponentNameFromFiber(fiber) { - var type = fiber.type; - switch (fiber.tag) { - case 24: - return "Cache"; - case 9: - return (type.displayName || "Context") + ".Consumer"; - case 10: - return (type._context.displayName || "Context") + ".Provider"; - case 18: - return "DehydratedFragment"; - case 11: - return fiber = type.render, fiber = fiber.displayName || fiber.name || "", type.displayName || ("" !== fiber ? "ForwardRef(" + fiber + ")" : "ForwardRef"); - case 7: - return "Fragment"; - case 5: - return type; - case 4: - return "Portal"; - case 3: - return "Root"; - case 6: - return "Text"; - case 16: - return getComponentNameFromType(type); - case 8: - return type === REACT_STRICT_MODE_TYPE ? "StrictMode" : "Mode"; - case 22: - return "Offscreen"; - case 12: - return "Profiler"; - case 21: - return "Scope"; - case 13: - return "Suspense"; - case 19: - return "SuspenseList"; - case 25: - return "TracingMarker"; - case 1: - case 0: - case 17: - case 2: - case 14: - case 15: - if ("function" === typeof type) return type.displayName || type.name || null; - if ("string" === typeof type) return type; - } - return null; - } - function getNearestMountedFiber(fiber) { - var node = fiber, - nearestMounted = fiber; - if (fiber.alternate) for (; node.return;) node = node.return;else { - fiber = node; - do node = fiber, 0 !== (node.flags & 4098) && (nearestMounted = node.return), fiber = node.return; while (fiber); - } - return 3 === node.tag ? nearestMounted : null; - } - function assertIsMounted(fiber) { - if (getNearestMountedFiber(fiber) !== fiber) throw Error("Unable to find node on an unmounted component."); - } - function findCurrentFiberUsingSlowPath(fiber) { - var alternate = fiber.alternate; - if (!alternate) { - alternate = getNearestMountedFiber(fiber); - if (null === alternate) throw Error("Unable to find node on an unmounted component."); - return alternate !== fiber ? null : fiber; - } - for (var a = fiber, b = alternate;;) { - var parentA = a.return; - if (null === parentA) break; - var parentB = parentA.alternate; - if (null === parentB) { - b = parentA.return; - if (null !== b) { - a = b; - continue; - } - break; - } - if (parentA.child === parentB.child) { - for (parentB = parentA.child; parentB;) { - if (parentB === a) return assertIsMounted(parentA), fiber; - if (parentB === b) return assertIsMounted(parentA), alternate; - parentB = parentB.sibling; - } - throw Error("Unable to find node on an unmounted component."); - } - if (a.return !== b.return) a = parentA, b = parentB;else { - for (var didFindChild = false, child$0 = parentA.child; child$0;) { - if (child$0 === a) { - didFindChild = true; - a = parentA; - b = parentB; - break; - } - if (child$0 === b) { - didFindChild = true; - b = parentA; - a = parentB; - break; - } - child$0 = child$0.sibling; - } - if (!didFindChild) { - for (child$0 = parentB.child; child$0;) { - if (child$0 === a) { - didFindChild = true; - a = parentB; - b = parentA; - break; - } - if (child$0 === b) { - didFindChild = true; - b = parentB; - a = parentA; - break; - } - child$0 = child$0.sibling; - } - if (!didFindChild) throw Error("Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue."); - } - } - if (a.alternate !== b) throw Error("Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue."); - } - if (3 !== a.tag) throw Error("Unable to find node on an unmounted component."); - return a.stateNode.current === a ? fiber : alternate; - } - function findCurrentHostFiber(parent) { - parent = findCurrentFiberUsingSlowPath(parent); - return null !== parent ? findCurrentHostFiberImpl(parent) : null; - } - function findCurrentHostFiberImpl(node) { - if (5 === node.tag || 6 === node.tag) return node; - for (node = node.child; null !== node;) { - var match = findCurrentHostFiberImpl(node); - if (null !== match) return match; - node = node.sibling; - } - return null; - } - function mountSafeCallback_NOT_REALLY_SAFE(context, callback) { - return function () { - if (callback && ("boolean" !== typeof context.__isMounted || context.__isMounted)) return callback.apply(context, arguments); - }; - } - var emptyObject = {}, - removedKeys = null, - removedKeyCount = 0, - deepDifferOptions = { - unsafelyIgnoreFunctions: true - }; - function defaultDiffer(prevProp, nextProp) { - return "object" !== typeof nextProp || null === nextProp ? true : _$$_REQUIRE(_dependencyMap[2]).deepDiffer(prevProp, nextProp, deepDifferOptions); - } - function restoreDeletedValuesInNestedArray(updatePayload, node, validAttributes) { - if (isArrayImpl(node)) for (var i = node.length; i-- && 0 < removedKeyCount;) restoreDeletedValuesInNestedArray(updatePayload, node[i], validAttributes);else if (node && 0 < removedKeyCount) for (i in removedKeys) if (removedKeys[i]) { - var nextProp = node[i]; - if (undefined !== nextProp) { - var attributeConfig = validAttributes[i]; - if (attributeConfig) { - "function" === typeof nextProp && (nextProp = true); - "undefined" === typeof nextProp && (nextProp = null); - if ("object" !== typeof attributeConfig) updatePayload[i] = nextProp;else if ("function" === typeof attributeConfig.diff || "function" === typeof attributeConfig.process) nextProp = "function" === typeof attributeConfig.process ? attributeConfig.process(nextProp) : nextProp, updatePayload[i] = nextProp; - removedKeys[i] = false; - removedKeyCount--; - } - } - } - } - function diffNestedProperty(updatePayload, prevProp, nextProp, validAttributes) { - if (!updatePayload && prevProp === nextProp) return updatePayload; - if (!prevProp || !nextProp) return nextProp ? addNestedProperty(updatePayload, nextProp, validAttributes) : prevProp ? clearNestedProperty(updatePayload, prevProp, validAttributes) : updatePayload; - if (!isArrayImpl(prevProp) && !isArrayImpl(nextProp)) return diffProperties(updatePayload, prevProp, nextProp, validAttributes); - if (isArrayImpl(prevProp) && isArrayImpl(nextProp)) { - var minLength = prevProp.length < nextProp.length ? prevProp.length : nextProp.length, - i; - for (i = 0; i < minLength; i++) updatePayload = diffNestedProperty(updatePayload, prevProp[i], nextProp[i], validAttributes); - for (; i < prevProp.length; i++) updatePayload = clearNestedProperty(updatePayload, prevProp[i], validAttributes); - for (; i < nextProp.length; i++) updatePayload = addNestedProperty(updatePayload, nextProp[i], validAttributes); - return updatePayload; - } - return isArrayImpl(prevProp) ? diffProperties(updatePayload, _$$_REQUIRE(_dependencyMap[2]).flattenStyle(prevProp), nextProp, validAttributes) : diffProperties(updatePayload, prevProp, _$$_REQUIRE(_dependencyMap[2]).flattenStyle(nextProp), validAttributes); - } - function addNestedProperty(updatePayload, nextProp, validAttributes) { - if (!nextProp) return updatePayload; - if (!isArrayImpl(nextProp)) return diffProperties(updatePayload, emptyObject, nextProp, validAttributes); - for (var i = 0; i < nextProp.length; i++) updatePayload = addNestedProperty(updatePayload, nextProp[i], validAttributes); - return updatePayload; - } - function clearNestedProperty(updatePayload, prevProp, validAttributes) { - if (!prevProp) return updatePayload; - if (!isArrayImpl(prevProp)) return diffProperties(updatePayload, prevProp, emptyObject, validAttributes); - for (var i = 0; i < prevProp.length; i++) updatePayload = clearNestedProperty(updatePayload, prevProp[i], validAttributes); - return updatePayload; - } - function diffProperties(updatePayload, prevProps, nextProps, validAttributes) { - var attributeConfig, propKey; - for (propKey in nextProps) if (attributeConfig = validAttributes[propKey]) { - var prevProp = prevProps[propKey]; - var nextProp = nextProps[propKey]; - "function" === typeof nextProp && (nextProp = true, "function" === typeof prevProp && (prevProp = true)); - "undefined" === typeof nextProp && (nextProp = null, "undefined" === typeof prevProp && (prevProp = null)); - removedKeys && (removedKeys[propKey] = false); - if (updatePayload && undefined !== updatePayload[propKey]) { - if ("object" !== typeof attributeConfig) updatePayload[propKey] = nextProp;else { - if ("function" === typeof attributeConfig.diff || "function" === typeof attributeConfig.process) attributeConfig = "function" === typeof attributeConfig.process ? attributeConfig.process(nextProp) : nextProp, updatePayload[propKey] = attributeConfig; - } - } else if (prevProp !== nextProp) if ("object" !== typeof attributeConfig) defaultDiffer(prevProp, nextProp) && ((updatePayload || (updatePayload = {}))[propKey] = nextProp);else if ("function" === typeof attributeConfig.diff || "function" === typeof attributeConfig.process) { - if (undefined === prevProp || ("function" === typeof attributeConfig.diff ? attributeConfig.diff(prevProp, nextProp) : defaultDiffer(prevProp, nextProp))) attributeConfig = "function" === typeof attributeConfig.process ? attributeConfig.process(nextProp) : nextProp, (updatePayload || (updatePayload = {}))[propKey] = attributeConfig; - } else removedKeys = null, removedKeyCount = 0, updatePayload = diffNestedProperty(updatePayload, prevProp, nextProp, attributeConfig), 0 < removedKeyCount && updatePayload && (restoreDeletedValuesInNestedArray(updatePayload, nextProp, attributeConfig), removedKeys = null); - } - for (var propKey$2 in prevProps) undefined === nextProps[propKey$2] && (!(attributeConfig = validAttributes[propKey$2]) || updatePayload && undefined !== updatePayload[propKey$2] || (prevProp = prevProps[propKey$2], undefined !== prevProp && ("object" !== typeof attributeConfig || "function" === typeof attributeConfig.diff || "function" === typeof attributeConfig.process ? ((updatePayload || (updatePayload = {}))[propKey$2] = null, removedKeys || (removedKeys = {}), removedKeys[propKey$2] || (removedKeys[propKey$2] = true, removedKeyCount++)) : updatePayload = clearNestedProperty(updatePayload, prevProp, attributeConfig)))); - return updatePayload; - } - function batchedUpdatesImpl(fn, bookkeeping) { - return fn(bookkeeping); - } - var isInsideEventHandler = false; - function batchedUpdates(fn, bookkeeping) { - if (isInsideEventHandler) return fn(bookkeeping); - isInsideEventHandler = true; - try { - return batchedUpdatesImpl(fn, bookkeeping); - } finally { - isInsideEventHandler = false; - } - } - var eventQueue = null; - function executeDispatchesAndReleaseTopLevel(e) { - if (e) { - var dispatchListeners = e._dispatchListeners, - dispatchInstances = e._dispatchInstances; - if (isArrayImpl(dispatchListeners)) for (var i = 0; i < dispatchListeners.length && !e.isPropagationStopped(); i++) executeDispatch(e, dispatchListeners[i], dispatchInstances[i]);else dispatchListeners && executeDispatch(e, dispatchListeners, dispatchInstances); - e._dispatchListeners = null; - e._dispatchInstances = null; - e.isPersistent() || e.constructor.release(e); - } - } - function dispatchEvent(target, topLevelType, nativeEvent) { - var eventTarget = null; - if (null != target) { - var stateNode = target.stateNode; - null != stateNode && (eventTarget = stateNode.canonical); - } - batchedUpdates(function () { - var event = { - eventName: topLevelType, - nativeEvent: nativeEvent - }; - _$$_REQUIRE(_dependencyMap[2]).RawEventEmitter.emit(topLevelType, event); - _$$_REQUIRE(_dependencyMap[2]).RawEventEmitter.emit("*", event); - event = eventTarget; - for (var events = null, legacyPlugins = plugins, i = 0; i < legacyPlugins.length; i++) { - var possiblePlugin = legacyPlugins[i]; - possiblePlugin && (possiblePlugin = possiblePlugin.extractEvents(topLevelType, target, nativeEvent, event)) && (events = accumulateInto(events, possiblePlugin)); - } - event = events; - null !== event && (eventQueue = accumulateInto(eventQueue, event)); - event = eventQueue; - eventQueue = null; - if (event) { - forEachAccumulated(event, executeDispatchesAndReleaseTopLevel); - if (eventQueue) throw Error("processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented."); - if (hasRethrowError) throw event = rethrowError, hasRethrowError = false, rethrowError = null, event; - } - }); - } - var rendererID = null, - injectedHook = null; - function onCommitRoot(root) { - if (injectedHook && "function" === typeof injectedHook.onCommitFiberRoot) try { - injectedHook.onCommitFiberRoot(rendererID, root, undefined, 128 === (root.current.flags & 128)); - } catch (err) {} - } - var clz32 = Math.clz32 ? Math.clz32 : clz32Fallback, - log = Math.log, - LN2 = Math.LN2; - function clz32Fallback(x) { - x >>>= 0; - return 0 === x ? 32 : 31 - (log(x) / LN2 | 0) | 0; - } - var nextTransitionLane = 64, - nextRetryLane = 4194304; - function getHighestPriorityLanes(lanes) { - switch (lanes & -lanes) { - case 1: - return 1; - case 2: - return 2; - case 4: - return 4; - case 8: - return 8; - case 16: - return 16; - case 32: - return 32; - case 64: - case 128: - case 256: - case 512: - case 1024: - case 2048: - case 4096: - case 8192: - case 16384: - case 32768: - case 65536: - case 131072: - case 262144: - case 524288: - case 1048576: - case 2097152: - return lanes & 4194240; - case 4194304: - case 8388608: - case 16777216: - case 33554432: - case 67108864: - return lanes & 130023424; - case 134217728: - return 134217728; - case 268435456: - return 268435456; - case 536870912: - return 536870912; - case 1073741824: - return 1073741824; - default: - return lanes; - } - } - function getNextLanes(root, wipLanes) { - var pendingLanes = root.pendingLanes; - if (0 === pendingLanes) return 0; - var nextLanes = 0, - suspendedLanes = root.suspendedLanes, - pingedLanes = root.pingedLanes, - nonIdlePendingLanes = pendingLanes & 268435455; - if (0 !== nonIdlePendingLanes) { - var nonIdleUnblockedLanes = nonIdlePendingLanes & ~suspendedLanes; - 0 !== nonIdleUnblockedLanes ? nextLanes = getHighestPriorityLanes(nonIdleUnblockedLanes) : (pingedLanes &= nonIdlePendingLanes, 0 !== pingedLanes && (nextLanes = getHighestPriorityLanes(pingedLanes))); - } else nonIdlePendingLanes = pendingLanes & ~suspendedLanes, 0 !== nonIdlePendingLanes ? nextLanes = getHighestPriorityLanes(nonIdlePendingLanes) : 0 !== pingedLanes && (nextLanes = getHighestPriorityLanes(pingedLanes)); - if (0 === nextLanes) return 0; - if (0 !== wipLanes && wipLanes !== nextLanes && 0 === (wipLanes & suspendedLanes) && (suspendedLanes = nextLanes & -nextLanes, pingedLanes = wipLanes & -wipLanes, suspendedLanes >= pingedLanes || 16 === suspendedLanes && 0 !== (pingedLanes & 4194240))) return wipLanes; - 0 !== (nextLanes & 4) && (nextLanes |= pendingLanes & 16); - wipLanes = root.entangledLanes; - if (0 !== wipLanes) for (root = root.entanglements, wipLanes &= nextLanes; 0 < wipLanes;) pendingLanes = 31 - clz32(wipLanes), suspendedLanes = 1 << pendingLanes, nextLanes |= root[pendingLanes], wipLanes &= ~suspendedLanes; - return nextLanes; - } - function computeExpirationTime(lane, currentTime) { - switch (lane) { - case 1: - case 2: - case 4: - return currentTime + 250; - case 8: - case 16: - case 32: - case 64: - case 128: - case 256: - case 512: - case 1024: - case 2048: - case 4096: - case 8192: - case 16384: - case 32768: - case 65536: - case 131072: - case 262144: - case 524288: - case 1048576: - case 2097152: - return currentTime + 5e3; - case 4194304: - case 8388608: - case 16777216: - case 33554432: - case 67108864: - return -1; - case 134217728: - case 268435456: - case 536870912: - case 1073741824: - return -1; - default: - return -1; - } - } - function getLanesToRetrySynchronouslyOnError(root) { - root = root.pendingLanes & -1073741825; - return 0 !== root ? root : root & 1073741824 ? 1073741824 : 0; - } - function claimNextTransitionLane() { - var lane = nextTransitionLane; - nextTransitionLane <<= 1; - 0 === (nextTransitionLane & 4194240) && (nextTransitionLane = 64); - return lane; - } - function createLaneMap(initial) { - for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial); - return laneMap; - } - function markRootUpdated(root, updateLane, eventTime) { - root.pendingLanes |= updateLane; - 536870912 !== updateLane && (root.suspendedLanes = 0, root.pingedLanes = 0); - root = root.eventTimes; - updateLane = 31 - clz32(updateLane); - root[updateLane] = eventTime; - } - function markRootFinished(root, remainingLanes) { - var noLongerPendingLanes = root.pendingLanes & ~remainingLanes; - root.pendingLanes = remainingLanes; - root.suspendedLanes = 0; - root.pingedLanes = 0; - root.expiredLanes &= remainingLanes; - root.mutableReadLanes &= remainingLanes; - root.entangledLanes &= remainingLanes; - remainingLanes = root.entanglements; - var eventTimes = root.eventTimes; - for (root = root.expirationTimes; 0 < noLongerPendingLanes;) { - var index$7 = 31 - clz32(noLongerPendingLanes), - lane = 1 << index$7; - remainingLanes[index$7] = 0; - eventTimes[index$7] = -1; - root[index$7] = -1; - noLongerPendingLanes &= ~lane; - } - } - function markRootEntangled(root, entangledLanes) { - var rootEntangledLanes = root.entangledLanes |= entangledLanes; - for (root = root.entanglements; rootEntangledLanes;) { - var index$8 = 31 - clz32(rootEntangledLanes), - lane = 1 << index$8; - lane & entangledLanes | root[index$8] & entangledLanes && (root[index$8] |= entangledLanes); - rootEntangledLanes &= ~lane; - } - } - var currentUpdatePriority = 0; - function lanesToEventPriority(lanes) { - lanes &= -lanes; - return 1 < lanes ? 4 < lanes ? 0 !== (lanes & 268435455) ? 16 : 536870912 : 4 : 1; - } - function shim$1() { - throw Error("The current renderer does not support hydration. This error is likely caused by a bug in React. Please file an issue."); - } - var _nativeFabricUIManage = nativeFabricUIManager, - createNode = _nativeFabricUIManage.createNode, - cloneNode = _nativeFabricUIManage.cloneNode, - cloneNodeWithNewChildren = _nativeFabricUIManage.cloneNodeWithNewChildren, - cloneNodeWithNewChildrenAndProps = _nativeFabricUIManage.cloneNodeWithNewChildrenAndProps, - cloneNodeWithNewProps = _nativeFabricUIManage.cloneNodeWithNewProps, - createChildNodeSet = _nativeFabricUIManage.createChildSet, - appendChildNode = _nativeFabricUIManage.appendChild, - appendChildNodeToSet = _nativeFabricUIManage.appendChildToSet, - completeRoot = _nativeFabricUIManage.completeRoot, - registerEventHandler = _nativeFabricUIManage.registerEventHandler, - fabricMeasure = _nativeFabricUIManage.measure, - fabricMeasureInWindow = _nativeFabricUIManage.measureInWindow, - fabricMeasureLayout = _nativeFabricUIManage.measureLayout, - FabricDiscretePriority = _nativeFabricUIManage.unstable_DiscreteEventPriority, - fabricGetCurrentEventPriority = _nativeFabricUIManage.unstable_getCurrentEventPriority, - _setNativeProps = _nativeFabricUIManage.setNativeProps, - getViewConfigForType = _$$_REQUIRE(_dependencyMap[2]).ReactNativeViewConfigRegistry.get, - nextReactTag = 2; - registerEventHandler && registerEventHandler(dispatchEvent); - var ReactFabricHostComponent = function () { - function ReactFabricHostComponent(tag, viewConfig, props, internalInstanceHandle) { - this._nativeTag = tag; - this.viewConfig = viewConfig; - this.currentProps = props; - this._internalInstanceHandle = internalInstanceHandle; - } - var _proto = ReactFabricHostComponent.prototype; - _proto.blur = function () { - _$$_REQUIRE(_dependencyMap[2]).TextInputState.blurTextInput(this); - }; - _proto.focus = function () { - _$$_REQUIRE(_dependencyMap[2]).TextInputState.focusTextInput(this); - }; - _proto.measure = function (callback) { - var stateNode = this._internalInstanceHandle.stateNode; - null != stateNode && fabricMeasure(stateNode.node, mountSafeCallback_NOT_REALLY_SAFE(this, callback)); - }; - _proto.measureInWindow = function (callback) { - var stateNode = this._internalInstanceHandle.stateNode; - null != stateNode && fabricMeasureInWindow(stateNode.node, mountSafeCallback_NOT_REALLY_SAFE(this, callback)); - }; - _proto.measureLayout = function (relativeToNativeNode, onSuccess, onFail) { - if ("number" !== typeof relativeToNativeNode && relativeToNativeNode instanceof ReactFabricHostComponent) { - var toStateNode = this._internalInstanceHandle.stateNode; - relativeToNativeNode = relativeToNativeNode._internalInstanceHandle.stateNode; - null != toStateNode && null != relativeToNativeNode && fabricMeasureLayout(toStateNode.node, relativeToNativeNode.node, mountSafeCallback_NOT_REALLY_SAFE(this, onFail), mountSafeCallback_NOT_REALLY_SAFE(this, onSuccess)); - } - }; - _proto.setNativeProps = function (nativeProps) { - nativeProps = diffProperties(null, emptyObject, nativeProps, this.viewConfig.validAttributes); - var stateNode = this._internalInstanceHandle.stateNode; - null != stateNode && null != nativeProps && _setNativeProps(stateNode.node, nativeProps); - }; - _proto.addEventListener_unstable = function (eventType, listener, options) { - if ("string" !== typeof eventType) throw Error("addEventListener_unstable eventType must be a string"); - if ("function" !== typeof listener) throw Error("addEventListener_unstable listener must be a function"); - var optionsObj = "object" === typeof options && null !== options ? options : {}; - options = ("boolean" === typeof options ? options : optionsObj.capture) || false; - var once = optionsObj.once || false; - optionsObj = optionsObj.passive || false; - var eventListeners = this._eventListeners || {}; - null == this._eventListeners && (this._eventListeners = eventListeners); - var namedEventListeners = eventListeners[eventType] || []; - null == eventListeners[eventType] && (eventListeners[eventType] = namedEventListeners); - namedEventListeners.push({ - listener: listener, - invalidated: false, - options: { - capture: options, - once: once, - passive: optionsObj, - signal: null - } - }); - }; - _proto.removeEventListener_unstable = function (eventType, listener, options) { - var optionsObj = "object" === typeof options && null !== options ? options : {}, - capture = ("boolean" === typeof options ? options : optionsObj.capture) || false; - (options = this._eventListeners) && (optionsObj = options[eventType]) && (options[eventType] = optionsObj.filter(function (listenerObj) { - return !(listenerObj.listener === listener && listenerObj.options.capture === capture); - })); - }; - return ReactFabricHostComponent; - }(); - function createTextInstance(text, rootContainerInstance, hostContext, internalInstanceHandle) { - hostContext = nextReactTag; - nextReactTag += 2; - return { - node: createNode(hostContext, "RCTRawText", rootContainerInstance, { - text: text - }, internalInstanceHandle) - }; - } - var scheduleTimeout = setTimeout, - cancelTimeout = clearTimeout; - function cloneHiddenInstance(instance) { - var node = instance.node; - var JSCompiler_inline_result = diffProperties(null, emptyObject, { - style: { - display: "none" - } - }, instance.canonical.viewConfig.validAttributes); - return { - node: cloneNodeWithNewProps(node, JSCompiler_inline_result), - canonical: instance.canonical - }; - } - function describeComponentFrame(name, source, ownerName) { - source = ""; - ownerName && (source = " (created by " + ownerName + ")"); - return "\n in " + (name || "Unknown") + source; - } - function describeFunctionComponentFrame(fn, source) { - return fn ? describeComponentFrame(fn.displayName || fn.name || null, source, null) : ""; - } - var hasOwnProperty = Object.prototype.hasOwnProperty, - valueStack = [], - index = -1; - function createCursor(defaultValue) { - return { - current: defaultValue - }; - } - function pop(cursor) { - 0 > index || (cursor.current = valueStack[index], valueStack[index] = null, index--); - } - function push(cursor, value) { - index++; - valueStack[index] = cursor.current; - cursor.current = value; - } - var emptyContextObject = {}, - contextStackCursor = createCursor(emptyContextObject), - didPerformWorkStackCursor = createCursor(false), - previousContext = emptyContextObject; - function getMaskedContext(workInProgress, unmaskedContext) { - var contextTypes = workInProgress.type.contextTypes; - if (!contextTypes) return emptyContextObject; - var instance = workInProgress.stateNode; - if (instance && instance.__reactInternalMemoizedUnmaskedChildContext === unmaskedContext) return instance.__reactInternalMemoizedMaskedChildContext; - var context = {}, - key; - for (key in contextTypes) context[key] = unmaskedContext[key]; - instance && (workInProgress = workInProgress.stateNode, workInProgress.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext, workInProgress.__reactInternalMemoizedMaskedChildContext = context); - return context; - } - function isContextProvider(type) { - type = type.childContextTypes; - return null !== type && undefined !== type; - } - function popContext() { - pop(didPerformWorkStackCursor); - pop(contextStackCursor); - } - function pushTopLevelContextObject(fiber, context, didChange) { - if (contextStackCursor.current !== emptyContextObject) throw Error("Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue."); - push(contextStackCursor, context); - push(didPerformWorkStackCursor, didChange); - } - function processChildContext(fiber, type, parentContext) { - var instance = fiber.stateNode; - type = type.childContextTypes; - if ("function" !== typeof instance.getChildContext) return parentContext; - instance = instance.getChildContext(); - for (var contextKey in instance) if (!(contextKey in type)) throw Error((getComponentNameFromFiber(fiber) || "Unknown") + '.getChildContext(): key "' + contextKey + '" is not defined in childContextTypes.'); - return assign({}, parentContext, instance); - } - function pushContextProvider(workInProgress) { - workInProgress = (workInProgress = workInProgress.stateNode) && workInProgress.__reactInternalMemoizedMergedChildContext || emptyContextObject; - previousContext = contextStackCursor.current; - push(contextStackCursor, workInProgress); - push(didPerformWorkStackCursor, didPerformWorkStackCursor.current); - return true; - } - function invalidateContextProvider(workInProgress, type, didChange) { - var instance = workInProgress.stateNode; - if (!instance) throw Error("Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue."); - didChange ? (workInProgress = processChildContext(workInProgress, type, previousContext), instance.__reactInternalMemoizedMergedChildContext = workInProgress, pop(didPerformWorkStackCursor), pop(contextStackCursor), push(contextStackCursor, workInProgress)) : pop(didPerformWorkStackCursor); - push(didPerformWorkStackCursor, didChange); - } - function is(x, y) { - return x === y && (0 !== x || 1 / x === 1 / y) || x !== x && y !== y; - } - var objectIs = "function" === typeof Object.is ? Object.is : is, - syncQueue = null, - includesLegacySyncCallbacks = false, - isFlushingSyncQueue = false; - function flushSyncCallbacks() { - if (!isFlushingSyncQueue && null !== syncQueue) { - isFlushingSyncQueue = true; - var i = 0, - previousUpdatePriority = currentUpdatePriority; - try { - var queue = syncQueue; - for (currentUpdatePriority = 1; i < queue.length; i++) { - var callback = queue[i]; - do callback = callback(true); while (null !== callback); - } - syncQueue = null; - includesLegacySyncCallbacks = false; - } catch (error) { - throw null !== syncQueue && (syncQueue = syncQueue.slice(i + 1)), _$$_REQUIRE(_dependencyMap[3]).unstable_scheduleCallback(_$$_REQUIRE(_dependencyMap[3]).unstable_ImmediatePriority, flushSyncCallbacks), error; - } finally { - currentUpdatePriority = previousUpdatePriority, isFlushingSyncQueue = false; - } - } - return null; - } - var forkStack = [], - forkStackIndex = 0, - treeForkProvider = null, - idStack = [], - idStackIndex = 0, - treeContextProvider = null; - function popTreeContext(workInProgress) { - for (; workInProgress === treeForkProvider;) treeForkProvider = forkStack[--forkStackIndex], forkStack[forkStackIndex] = null, --forkStackIndex, forkStack[forkStackIndex] = null; - for (; workInProgress === treeContextProvider;) treeContextProvider = idStack[--idStackIndex], idStack[idStackIndex] = null, --idStackIndex, idStack[idStackIndex] = null, --idStackIndex, idStack[idStackIndex] = null; - } - var hydrationErrors = null, - ReactCurrentBatchConfig = ReactSharedInternals.ReactCurrentBatchConfig; - function shallowEqual(objA, objB) { - if (objectIs(objA, objB)) return true; - if ("object" !== typeof objA || null === objA || "object" !== typeof objB || null === objB) return false; - var keysA = Object.keys(objA), - keysB = Object.keys(objB); - if (keysA.length !== keysB.length) return false; - for (keysB = 0; keysB < keysA.length; keysB++) { - var currentKey = keysA[keysB]; - if (!hasOwnProperty.call(objB, currentKey) || !objectIs(objA[currentKey], objB[currentKey])) return false; - } - return true; - } - function describeFiber(fiber) { - switch (fiber.tag) { - case 5: - return describeComponentFrame(fiber.type, null, null); - case 16: - return describeComponentFrame("Lazy", null, null); - case 13: - return describeComponentFrame("Suspense", null, null); - case 19: - return describeComponentFrame("SuspenseList", null, null); - case 0: - case 2: - case 15: - return describeFunctionComponentFrame(fiber.type, null); - case 11: - return describeFunctionComponentFrame(fiber.type.render, null); - case 1: - return fiber = describeFunctionComponentFrame(fiber.type, null), fiber; - default: - return ""; - } - } - function resolveDefaultProps(Component, baseProps) { - if (Component && Component.defaultProps) { - baseProps = assign({}, baseProps); - Component = Component.defaultProps; - for (var propName in Component) undefined === baseProps[propName] && (baseProps[propName] = Component[propName]); - return baseProps; - } - return baseProps; - } - var valueCursor = createCursor(null), - currentlyRenderingFiber = null, - lastContextDependency = null, - lastFullyObservedContext = null; - function resetContextDependencies() { - lastFullyObservedContext = lastContextDependency = currentlyRenderingFiber = null; - } - function popProvider(context) { - var currentValue = valueCursor.current; - pop(valueCursor); - context._currentValue2 = currentValue; - } - function scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) { - for (; null !== parent;) { - var alternate = parent.alternate; - (parent.childLanes & renderLanes) !== renderLanes ? (parent.childLanes |= renderLanes, null !== alternate && (alternate.childLanes |= renderLanes)) : null !== alternate && (alternate.childLanes & renderLanes) !== renderLanes && (alternate.childLanes |= renderLanes); - if (parent === propagationRoot) break; - parent = parent.return; - } - } - function prepareToReadContext(workInProgress, renderLanes) { - currentlyRenderingFiber = workInProgress; - lastFullyObservedContext = lastContextDependency = null; - workInProgress = workInProgress.dependencies; - null !== workInProgress && null !== workInProgress.firstContext && (0 !== (workInProgress.lanes & renderLanes) && (didReceiveUpdate = true), workInProgress.firstContext = null); - } - function readContext(context) { - var value = context._currentValue2; - if (lastFullyObservedContext !== context) if (context = { - context: context, - memoizedValue: value, - next: null - }, null === lastContextDependency) { - if (null === currentlyRenderingFiber) throw Error("Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."); - lastContextDependency = context; - currentlyRenderingFiber.dependencies = { - lanes: 0, - firstContext: context - }; - } else lastContextDependency = lastContextDependency.next = context; - return value; - } - var concurrentQueues = null; - function pushConcurrentUpdateQueue(queue) { - null === concurrentQueues ? concurrentQueues = [queue] : concurrentQueues.push(queue); - } - function enqueueConcurrentHookUpdate(fiber, queue, update, lane) { - var interleaved = queue.interleaved; - null === interleaved ? (update.next = update, pushConcurrentUpdateQueue(queue)) : (update.next = interleaved.next, interleaved.next = update); - queue.interleaved = update; - return markUpdateLaneFromFiberToRoot(fiber, lane); - } - function markUpdateLaneFromFiberToRoot(sourceFiber, lane) { - sourceFiber.lanes |= lane; - var alternate = sourceFiber.alternate; - null !== alternate && (alternate.lanes |= lane); - alternate = sourceFiber; - for (sourceFiber = sourceFiber.return; null !== sourceFiber;) sourceFiber.childLanes |= lane, alternate = sourceFiber.alternate, null !== alternate && (alternate.childLanes |= lane), alternate = sourceFiber, sourceFiber = sourceFiber.return; - return 3 === alternate.tag ? alternate.stateNode : null; - } - var hasForceUpdate = false; - function initializeUpdateQueue(fiber) { - fiber.updateQueue = { - baseState: fiber.memoizedState, - firstBaseUpdate: null, - lastBaseUpdate: null, - shared: { - pending: null, - interleaved: null, - lanes: 0 - }, - effects: null - }; - } - function cloneUpdateQueue(current, workInProgress) { - current = current.updateQueue; - workInProgress.updateQueue === current && (workInProgress.updateQueue = { - baseState: current.baseState, - firstBaseUpdate: current.firstBaseUpdate, - lastBaseUpdate: current.lastBaseUpdate, - shared: current.shared, - effects: current.effects - }); - } - function createUpdate(eventTime, lane) { - return { - eventTime: eventTime, - lane: lane, - tag: 0, - payload: null, - callback: null, - next: null - }; - } - function enqueueUpdate(fiber, update, lane) { - var updateQueue = fiber.updateQueue; - if (null === updateQueue) return null; - updateQueue = updateQueue.shared; - if (0 !== (executionContext & 2)) { - var pending = updateQueue.pending; - null === pending ? update.next = update : (update.next = pending.next, pending.next = update); - updateQueue.pending = update; - return markUpdateLaneFromFiberToRoot(fiber, lane); - } - pending = updateQueue.interleaved; - null === pending ? (update.next = update, pushConcurrentUpdateQueue(updateQueue)) : (update.next = pending.next, pending.next = update); - updateQueue.interleaved = update; - return markUpdateLaneFromFiberToRoot(fiber, lane); - } - function entangleTransitions(root, fiber, lane) { - fiber = fiber.updateQueue; - if (null !== fiber && (fiber = fiber.shared, 0 !== (lane & 4194240))) { - var queueLanes = fiber.lanes; - queueLanes &= root.pendingLanes; - lane |= queueLanes; - fiber.lanes = lane; - markRootEntangled(root, lane); - } - } - function enqueueCapturedUpdate(workInProgress, capturedUpdate) { - var queue = workInProgress.updateQueue, - current = workInProgress.alternate; - if (null !== current && (current = current.updateQueue, queue === current)) { - var newFirst = null, - newLast = null; - queue = queue.firstBaseUpdate; - if (null !== queue) { - do { - var clone = { - eventTime: queue.eventTime, - lane: queue.lane, - tag: queue.tag, - payload: queue.payload, - callback: queue.callback, - next: null - }; - null === newLast ? newFirst = newLast = clone : newLast = newLast.next = clone; - queue = queue.next; - } while (null !== queue); - null === newLast ? newFirst = newLast = capturedUpdate : newLast = newLast.next = capturedUpdate; - } else newFirst = newLast = capturedUpdate; - queue = { - baseState: current.baseState, - firstBaseUpdate: newFirst, - lastBaseUpdate: newLast, - shared: current.shared, - effects: current.effects - }; - workInProgress.updateQueue = queue; - return; - } - workInProgress = queue.lastBaseUpdate; - null === workInProgress ? queue.firstBaseUpdate = capturedUpdate : workInProgress.next = capturedUpdate; - queue.lastBaseUpdate = capturedUpdate; - } - function processUpdateQueue(workInProgress$jscomp$0, props, instance, renderLanes) { - var queue = workInProgress$jscomp$0.updateQueue; - hasForceUpdate = false; - var firstBaseUpdate = queue.firstBaseUpdate, - lastBaseUpdate = queue.lastBaseUpdate, - pendingQueue = queue.shared.pending; - if (null !== pendingQueue) { - queue.shared.pending = null; - var lastPendingUpdate = pendingQueue, - firstPendingUpdate = lastPendingUpdate.next; - lastPendingUpdate.next = null; - null === lastBaseUpdate ? firstBaseUpdate = firstPendingUpdate : lastBaseUpdate.next = firstPendingUpdate; - lastBaseUpdate = lastPendingUpdate; - var current = workInProgress$jscomp$0.alternate; - null !== current && (current = current.updateQueue, pendingQueue = current.lastBaseUpdate, pendingQueue !== lastBaseUpdate && (null === pendingQueue ? current.firstBaseUpdate = firstPendingUpdate : pendingQueue.next = firstPendingUpdate, current.lastBaseUpdate = lastPendingUpdate)); - } - if (null !== firstBaseUpdate) { - var newState = queue.baseState; - lastBaseUpdate = 0; - current = firstPendingUpdate = lastPendingUpdate = null; - pendingQueue = firstBaseUpdate; - do { - var updateLane = pendingQueue.lane, - updateEventTime = pendingQueue.eventTime; - if ((renderLanes & updateLane) === updateLane) { - null !== current && (current = current.next = { - eventTime: updateEventTime, - lane: 0, - tag: pendingQueue.tag, - payload: pendingQueue.payload, - callback: pendingQueue.callback, - next: null - }); - a: { - var workInProgress = workInProgress$jscomp$0, - update = pendingQueue; - updateLane = props; - updateEventTime = instance; - switch (update.tag) { - case 1: - workInProgress = update.payload; - if ("function" === typeof workInProgress) { - newState = workInProgress.call(updateEventTime, newState, updateLane); - break a; - } - newState = workInProgress; - break a; - case 3: - workInProgress.flags = workInProgress.flags & -65537 | 128; - case 0: - workInProgress = update.payload; - updateLane = "function" === typeof workInProgress ? workInProgress.call(updateEventTime, newState, updateLane) : workInProgress; - if (null === updateLane || undefined === updateLane) break a; - newState = assign({}, newState, updateLane); - break a; - case 2: - hasForceUpdate = true; - } - } - null !== pendingQueue.callback && 0 !== pendingQueue.lane && (workInProgress$jscomp$0.flags |= 64, updateLane = queue.effects, null === updateLane ? queue.effects = [pendingQueue] : updateLane.push(pendingQueue)); - } else updateEventTime = { - eventTime: updateEventTime, - lane: updateLane, - tag: pendingQueue.tag, - payload: pendingQueue.payload, - callback: pendingQueue.callback, - next: null - }, null === current ? (firstPendingUpdate = current = updateEventTime, lastPendingUpdate = newState) : current = current.next = updateEventTime, lastBaseUpdate |= updateLane; - pendingQueue = pendingQueue.next; - if (null === pendingQueue) if (pendingQueue = queue.shared.pending, null === pendingQueue) break;else updateLane = pendingQueue, pendingQueue = updateLane.next, updateLane.next = null, queue.lastBaseUpdate = updateLane, queue.shared.pending = null; - } while (1); - null === current && (lastPendingUpdate = newState); - queue.baseState = lastPendingUpdate; - queue.firstBaseUpdate = firstPendingUpdate; - queue.lastBaseUpdate = current; - props = queue.shared.interleaved; - if (null !== props) { - queue = props; - do lastBaseUpdate |= queue.lane, queue = queue.next; while (queue !== props); - } else null === firstBaseUpdate && (queue.shared.lanes = 0); - workInProgressRootSkippedLanes |= lastBaseUpdate; - workInProgress$jscomp$0.lanes = lastBaseUpdate; - workInProgress$jscomp$0.memoizedState = newState; - } - } - function commitUpdateQueue(finishedWork, finishedQueue, instance) { - finishedWork = finishedQueue.effects; - finishedQueue.effects = null; - if (null !== finishedWork) for (finishedQueue = 0; finishedQueue < finishedWork.length; finishedQueue++) { - var effect = finishedWork[finishedQueue], - callback = effect.callback; - if (null !== callback) { - effect.callback = null; - if ("function" !== typeof callback) throw Error("Invalid argument passed as callback. Expected a function. Instead received: " + callback); - callback.call(instance); - } - } - } - var emptyRefsObject = new React.Component().refs; - function applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, nextProps) { - ctor = workInProgress.memoizedState; - getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor); - getDerivedStateFromProps = null === getDerivedStateFromProps || undefined === getDerivedStateFromProps ? ctor : assign({}, ctor, getDerivedStateFromProps); - workInProgress.memoizedState = getDerivedStateFromProps; - 0 === workInProgress.lanes && (workInProgress.updateQueue.baseState = getDerivedStateFromProps); - } - var classComponentUpdater = { - isMounted: function isMounted(component) { - return (component = component._reactInternals) ? getNearestMountedFiber(component) === component : false; - }, - enqueueSetState: function enqueueSetState(inst, payload, callback) { - inst = inst._reactInternals; - var eventTime = requestEventTime(), - lane = requestUpdateLane(inst), - update = createUpdate(eventTime, lane); - update.payload = payload; - undefined !== callback && null !== callback && (update.callback = callback); - payload = enqueueUpdate(inst, update, lane); - null !== payload && (scheduleUpdateOnFiber(payload, inst, lane, eventTime), entangleTransitions(payload, inst, lane)); - }, - enqueueReplaceState: function enqueueReplaceState(inst, payload, callback) { - inst = inst._reactInternals; - var eventTime = requestEventTime(), - lane = requestUpdateLane(inst), - update = createUpdate(eventTime, lane); - update.tag = 1; - update.payload = payload; - undefined !== callback && null !== callback && (update.callback = callback); - payload = enqueueUpdate(inst, update, lane); - null !== payload && (scheduleUpdateOnFiber(payload, inst, lane, eventTime), entangleTransitions(payload, inst, lane)); - }, - enqueueForceUpdate: function enqueueForceUpdate(inst, callback) { - inst = inst._reactInternals; - var eventTime = requestEventTime(), - lane = requestUpdateLane(inst), - update = createUpdate(eventTime, lane); - update.tag = 2; - undefined !== callback && null !== callback && (update.callback = callback); - callback = enqueueUpdate(inst, update, lane); - null !== callback && (scheduleUpdateOnFiber(callback, inst, lane, eventTime), entangleTransitions(callback, inst, lane)); - } - }; - function checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext) { - workInProgress = workInProgress.stateNode; - return "function" === typeof workInProgress.shouldComponentUpdate ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext) : ctor.prototype && ctor.prototype.isPureReactComponent ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState) : true; - } - function constructClassInstance(workInProgress, ctor, props) { - var isLegacyContextConsumer = false, - unmaskedContext = emptyContextObject; - var context = ctor.contextType; - "object" === typeof context && null !== context ? context = readContext(context) : (unmaskedContext = isContextProvider(ctor) ? previousContext : contextStackCursor.current, isLegacyContextConsumer = ctor.contextTypes, context = (isLegacyContextConsumer = null !== isLegacyContextConsumer && undefined !== isLegacyContextConsumer) ? getMaskedContext(workInProgress, unmaskedContext) : emptyContextObject); - ctor = new ctor(props, context); - workInProgress.memoizedState = null !== ctor.state && undefined !== ctor.state ? ctor.state : null; - ctor.updater = classComponentUpdater; - workInProgress.stateNode = ctor; - ctor._reactInternals = workInProgress; - isLegacyContextConsumer && (workInProgress = workInProgress.stateNode, workInProgress.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext, workInProgress.__reactInternalMemoizedMaskedChildContext = context); - return ctor; - } - function callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext) { - workInProgress = instance.state; - "function" === typeof instance.componentWillReceiveProps && instance.componentWillReceiveProps(newProps, nextContext); - "function" === typeof instance.UNSAFE_componentWillReceiveProps && instance.UNSAFE_componentWillReceiveProps(newProps, nextContext); - instance.state !== workInProgress && classComponentUpdater.enqueueReplaceState(instance, instance.state, null); - } - function mountClassInstance(workInProgress, ctor, newProps, renderLanes) { - var instance = workInProgress.stateNode; - instance.props = newProps; - instance.state = workInProgress.memoizedState; - instance.refs = emptyRefsObject; - initializeUpdateQueue(workInProgress); - var contextType = ctor.contextType; - "object" === typeof contextType && null !== contextType ? instance.context = readContext(contextType) : (contextType = isContextProvider(ctor) ? previousContext : contextStackCursor.current, instance.context = getMaskedContext(workInProgress, contextType)); - instance.state = workInProgress.memoizedState; - contextType = ctor.getDerivedStateFromProps; - "function" === typeof contextType && (applyDerivedStateFromProps(workInProgress, ctor, contextType, newProps), instance.state = workInProgress.memoizedState); - "function" === typeof ctor.getDerivedStateFromProps || "function" === typeof instance.getSnapshotBeforeUpdate || "function" !== typeof instance.UNSAFE_componentWillMount && "function" !== typeof instance.componentWillMount || (ctor = instance.state, "function" === typeof instance.componentWillMount && instance.componentWillMount(), "function" === typeof instance.UNSAFE_componentWillMount && instance.UNSAFE_componentWillMount(), ctor !== instance.state && classComponentUpdater.enqueueReplaceState(instance, instance.state, null), processUpdateQueue(workInProgress, newProps, instance, renderLanes), instance.state = workInProgress.memoizedState); - "function" === typeof instance.componentDidMount && (workInProgress.flags |= 4); - } - function coerceRef(returnFiber, current, element) { - returnFiber = element.ref; - if (null !== returnFiber && "function" !== typeof returnFiber && "object" !== typeof returnFiber) { - if (element._owner) { - element = element._owner; - if (element) { - if (1 !== element.tag) throw Error("Function components cannot have string refs. We recommend using useRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref"); - var inst = element.stateNode; - } - if (!inst) throw Error("Missing owner for string ref " + returnFiber + ". This error is likely caused by a bug in React. Please file an issue."); - var resolvedInst = inst, - stringRef = "" + returnFiber; - if (null !== current && null !== current.ref && "function" === typeof current.ref && current.ref._stringRef === stringRef) return current.ref; - current = function current(value) { - var refs = resolvedInst.refs; - refs === emptyRefsObject && (refs = resolvedInst.refs = {}); - null === value ? delete refs[stringRef] : refs[stringRef] = value; - }; - current._stringRef = stringRef; - return current; - } - if ("string" !== typeof returnFiber) throw Error("Expected ref to be a function, a string, an object returned by React.createRef(), or null."); - if (!element._owner) throw Error("Element ref was specified as a string (" + returnFiber + ") but no owner was set. This could happen for one of the following reasons:\n1. You may be adding a ref to a function component\n2. You may be adding a ref to a component that was not created inside a component's render method\n3. You have multiple copies of React loaded\nSee https://reactjs.org/link/refs-must-have-owner for more information."); - } - return returnFiber; - } - function throwOnInvalidObjectType(returnFiber, newChild) { - returnFiber = Object.prototype.toString.call(newChild); - throw Error("Objects are not valid as a React child (found: " + ("[object Object]" === returnFiber ? "object with keys {" + Object.keys(newChild).join(", ") + "}" : returnFiber) + "). If you meant to render a collection of children, use an array instead."); - } - function resolveLazy(lazyType) { - var init = lazyType._init; - return init(lazyType._payload); - } - function ChildReconciler(shouldTrackSideEffects) { - function deleteChild(returnFiber, childToDelete) { - if (shouldTrackSideEffects) { - var deletions = returnFiber.deletions; - null === deletions ? (returnFiber.deletions = [childToDelete], returnFiber.flags |= 16) : deletions.push(childToDelete); - } - } - function deleteRemainingChildren(returnFiber, currentFirstChild) { - if (!shouldTrackSideEffects) return null; - for (; null !== currentFirstChild;) deleteChild(returnFiber, currentFirstChild), currentFirstChild = currentFirstChild.sibling; - return null; - } - function mapRemainingChildren(returnFiber, currentFirstChild) { - for (returnFiber = new Map(); null !== currentFirstChild;) null !== currentFirstChild.key ? returnFiber.set(currentFirstChild.key, currentFirstChild) : returnFiber.set(currentFirstChild.index, currentFirstChild), currentFirstChild = currentFirstChild.sibling; - return returnFiber; - } - function useFiber(fiber, pendingProps) { - fiber = createWorkInProgress(fiber, pendingProps); - fiber.index = 0; - fiber.sibling = null; - return fiber; - } - function placeChild(newFiber, lastPlacedIndex, newIndex) { - newFiber.index = newIndex; - if (!shouldTrackSideEffects) return newFiber.flags |= 1048576, lastPlacedIndex; - newIndex = newFiber.alternate; - if (null !== newIndex) return newIndex = newIndex.index, newIndex < lastPlacedIndex ? (newFiber.flags |= 2, lastPlacedIndex) : newIndex; - newFiber.flags |= 2; - return lastPlacedIndex; - } - function placeSingleChild(newFiber) { - shouldTrackSideEffects && null === newFiber.alternate && (newFiber.flags |= 2); - return newFiber; - } - function updateTextNode(returnFiber, current, textContent, lanes) { - if (null === current || 6 !== current.tag) return current = createFiberFromText(textContent, returnFiber.mode, lanes), current.return = returnFiber, current; - current = useFiber(current, textContent); - current.return = returnFiber; - return current; - } - function updateElement(returnFiber, current, element, lanes) { - var elementType = element.type; - if (elementType === REACT_FRAGMENT_TYPE) return updateFragment(returnFiber, current, element.props.children, lanes, element.key); - if (null !== current && (current.elementType === elementType || "object" === typeof elementType && null !== elementType && elementType.$$typeof === REACT_LAZY_TYPE && resolveLazy(elementType) === current.type)) return lanes = useFiber(current, element.props), lanes.ref = coerceRef(returnFiber, current, element), lanes.return = returnFiber, lanes; - lanes = createFiberFromTypeAndProps(element.type, element.key, element.props, null, returnFiber.mode, lanes); - lanes.ref = coerceRef(returnFiber, current, element); - lanes.return = returnFiber; - return lanes; - } - function updatePortal(returnFiber, current, portal, lanes) { - if (null === current || 4 !== current.tag || current.stateNode.containerInfo !== portal.containerInfo || current.stateNode.implementation !== portal.implementation) return current = createFiberFromPortal(portal, returnFiber.mode, lanes), current.return = returnFiber, current; - current = useFiber(current, portal.children || []); - current.return = returnFiber; - return current; - } - function updateFragment(returnFiber, current, fragment, lanes, key) { - if (null === current || 7 !== current.tag) return current = createFiberFromFragment(fragment, returnFiber.mode, lanes, key), current.return = returnFiber, current; - current = useFiber(current, fragment); - current.return = returnFiber; - return current; - } - function createChild(returnFiber, newChild, lanes) { - if ("string" === typeof newChild && "" !== newChild || "number" === typeof newChild) return newChild = createFiberFromText("" + newChild, returnFiber.mode, lanes), newChild.return = returnFiber, newChild; - if ("object" === typeof newChild && null !== newChild) { - switch (newChild.$$typeof) { - case REACT_ELEMENT_TYPE: - return lanes = createFiberFromTypeAndProps(newChild.type, newChild.key, newChild.props, null, returnFiber.mode, lanes), lanes.ref = coerceRef(returnFiber, null, newChild), lanes.return = returnFiber, lanes; - case REACT_PORTAL_TYPE: - return newChild = createFiberFromPortal(newChild, returnFiber.mode, lanes), newChild.return = returnFiber, newChild; - case REACT_LAZY_TYPE: - var init = newChild._init; - return createChild(returnFiber, init(newChild._payload), lanes); - } - if (isArrayImpl(newChild) || getIteratorFn(newChild)) return newChild = createFiberFromFragment(newChild, returnFiber.mode, lanes, null), newChild.return = returnFiber, newChild; - throwOnInvalidObjectType(returnFiber, newChild); - } - return null; - } - function updateSlot(returnFiber, oldFiber, newChild, lanes) { - var key = null !== oldFiber ? oldFiber.key : null; - if ("string" === typeof newChild && "" !== newChild || "number" === typeof newChild) return null !== key ? null : updateTextNode(returnFiber, oldFiber, "" + newChild, lanes); - if ("object" === typeof newChild && null !== newChild) { - switch (newChild.$$typeof) { - case REACT_ELEMENT_TYPE: - return newChild.key === key ? updateElement(returnFiber, oldFiber, newChild, lanes) : null; - case REACT_PORTAL_TYPE: - return newChild.key === key ? updatePortal(returnFiber, oldFiber, newChild, lanes) : null; - case REACT_LAZY_TYPE: - return key = newChild._init, updateSlot(returnFiber, oldFiber, key(newChild._payload), lanes); - } - if (isArrayImpl(newChild) || getIteratorFn(newChild)) return null !== key ? null : updateFragment(returnFiber, oldFiber, newChild, lanes, null); - throwOnInvalidObjectType(returnFiber, newChild); - } - return null; - } - function updateFromMap(existingChildren, returnFiber, newIdx, newChild, lanes) { - if ("string" === typeof newChild && "" !== newChild || "number" === typeof newChild) return existingChildren = existingChildren.get(newIdx) || null, updateTextNode(returnFiber, existingChildren, "" + newChild, lanes); - if ("object" === typeof newChild && null !== newChild) { - switch (newChild.$$typeof) { - case REACT_ELEMENT_TYPE: - return existingChildren = existingChildren.get(null === newChild.key ? newIdx : newChild.key) || null, updateElement(returnFiber, existingChildren, newChild, lanes); - case REACT_PORTAL_TYPE: - return existingChildren = existingChildren.get(null === newChild.key ? newIdx : newChild.key) || null, updatePortal(returnFiber, existingChildren, newChild, lanes); - case REACT_LAZY_TYPE: - var init = newChild._init; - return updateFromMap(existingChildren, returnFiber, newIdx, init(newChild._payload), lanes); - } - if (isArrayImpl(newChild) || getIteratorFn(newChild)) return existingChildren = existingChildren.get(newIdx) || null, updateFragment(returnFiber, existingChildren, newChild, lanes, null); - throwOnInvalidObjectType(returnFiber, newChild); - } - return null; - } - function reconcileChildrenArray(returnFiber, currentFirstChild, newChildren, lanes) { - for (var resultingFirstChild = null, previousNewFiber = null, oldFiber = currentFirstChild, newIdx = currentFirstChild = 0, nextOldFiber = null; null !== oldFiber && newIdx < newChildren.length; newIdx++) { - oldFiber.index > newIdx ? (nextOldFiber = oldFiber, oldFiber = null) : nextOldFiber = oldFiber.sibling; - var newFiber = updateSlot(returnFiber, oldFiber, newChildren[newIdx], lanes); - if (null === newFiber) { - null === oldFiber && (oldFiber = nextOldFiber); - break; - } - shouldTrackSideEffects && oldFiber && null === newFiber.alternate && deleteChild(returnFiber, oldFiber); - currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx); - null === previousNewFiber ? resultingFirstChild = newFiber : previousNewFiber.sibling = newFiber; - previousNewFiber = newFiber; - oldFiber = nextOldFiber; - } - if (newIdx === newChildren.length) return deleteRemainingChildren(returnFiber, oldFiber), resultingFirstChild; - if (null === oldFiber) { - for (; newIdx < newChildren.length; newIdx++) oldFiber = createChild(returnFiber, newChildren[newIdx], lanes), null !== oldFiber && (currentFirstChild = placeChild(oldFiber, currentFirstChild, newIdx), null === previousNewFiber ? resultingFirstChild = oldFiber : previousNewFiber.sibling = oldFiber, previousNewFiber = oldFiber); - return resultingFirstChild; - } - for (oldFiber = mapRemainingChildren(returnFiber, oldFiber); newIdx < newChildren.length; newIdx++) nextOldFiber = updateFromMap(oldFiber, returnFiber, newIdx, newChildren[newIdx], lanes), null !== nextOldFiber && (shouldTrackSideEffects && null !== nextOldFiber.alternate && oldFiber.delete(null === nextOldFiber.key ? newIdx : nextOldFiber.key), currentFirstChild = placeChild(nextOldFiber, currentFirstChild, newIdx), null === previousNewFiber ? resultingFirstChild = nextOldFiber : previousNewFiber.sibling = nextOldFiber, previousNewFiber = nextOldFiber); - shouldTrackSideEffects && oldFiber.forEach(function (child) { - return deleteChild(returnFiber, child); - }); - return resultingFirstChild; - } - function reconcileChildrenIterator(returnFiber, currentFirstChild, newChildrenIterable, lanes) { - var iteratorFn = getIteratorFn(newChildrenIterable); - if ("function" !== typeof iteratorFn) throw Error("An object is not an iterable. This error is likely caused by a bug in React. Please file an issue."); - newChildrenIterable = iteratorFn.call(newChildrenIterable); - if (null == newChildrenIterable) throw Error("An iterable object provided no iterator."); - for (var previousNewFiber = iteratorFn = null, oldFiber = currentFirstChild, newIdx = currentFirstChild = 0, nextOldFiber = null, step = newChildrenIterable.next(); null !== oldFiber && !step.done; newIdx++, step = newChildrenIterable.next()) { - oldFiber.index > newIdx ? (nextOldFiber = oldFiber, oldFiber = null) : nextOldFiber = oldFiber.sibling; - var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes); - if (null === newFiber) { - null === oldFiber && (oldFiber = nextOldFiber); - break; - } - shouldTrackSideEffects && oldFiber && null === newFiber.alternate && deleteChild(returnFiber, oldFiber); - currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx); - null === previousNewFiber ? iteratorFn = newFiber : previousNewFiber.sibling = newFiber; - previousNewFiber = newFiber; - oldFiber = nextOldFiber; - } - if (step.done) return deleteRemainingChildren(returnFiber, oldFiber), iteratorFn; - if (null === oldFiber) { - for (; !step.done; newIdx++, step = newChildrenIterable.next()) step = createChild(returnFiber, step.value, lanes), null !== step && (currentFirstChild = placeChild(step, currentFirstChild, newIdx), null === previousNewFiber ? iteratorFn = step : previousNewFiber.sibling = step, previousNewFiber = step); - return iteratorFn; - } - for (oldFiber = mapRemainingChildren(returnFiber, oldFiber); !step.done; newIdx++, step = newChildrenIterable.next()) step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes), null !== step && (shouldTrackSideEffects && null !== step.alternate && oldFiber.delete(null === step.key ? newIdx : step.key), currentFirstChild = placeChild(step, currentFirstChild, newIdx), null === previousNewFiber ? iteratorFn = step : previousNewFiber.sibling = step, previousNewFiber = step); - shouldTrackSideEffects && oldFiber.forEach(function (child) { - return deleteChild(returnFiber, child); - }); - return iteratorFn; - } - function reconcileChildFibers(returnFiber, currentFirstChild, newChild, lanes) { - "object" === typeof newChild && null !== newChild && newChild.type === REACT_FRAGMENT_TYPE && null === newChild.key && (newChild = newChild.props.children); - if ("object" === typeof newChild && null !== newChild) { - switch (newChild.$$typeof) { - case REACT_ELEMENT_TYPE: - a: { - for (var key = newChild.key, child = currentFirstChild; null !== child;) { - if (child.key === key) { - key = newChild.type; - if (key === REACT_FRAGMENT_TYPE) { - if (7 === child.tag) { - deleteRemainingChildren(returnFiber, child.sibling); - currentFirstChild = useFiber(child, newChild.props.children); - currentFirstChild.return = returnFiber; - returnFiber = currentFirstChild; - break a; - } - } else if (child.elementType === key || "object" === typeof key && null !== key && key.$$typeof === REACT_LAZY_TYPE && resolveLazy(key) === child.type) { - deleteRemainingChildren(returnFiber, child.sibling); - currentFirstChild = useFiber(child, newChild.props); - currentFirstChild.ref = coerceRef(returnFiber, child, newChild); - currentFirstChild.return = returnFiber; - returnFiber = currentFirstChild; - break a; - } - deleteRemainingChildren(returnFiber, child); - break; - } else deleteChild(returnFiber, child); - child = child.sibling; - } - newChild.type === REACT_FRAGMENT_TYPE ? (currentFirstChild = createFiberFromFragment(newChild.props.children, returnFiber.mode, lanes, newChild.key), currentFirstChild.return = returnFiber, returnFiber = currentFirstChild) : (lanes = createFiberFromTypeAndProps(newChild.type, newChild.key, newChild.props, null, returnFiber.mode, lanes), lanes.ref = coerceRef(returnFiber, currentFirstChild, newChild), lanes.return = returnFiber, returnFiber = lanes); - } - return placeSingleChild(returnFiber); - case REACT_PORTAL_TYPE: - a: { - for (child = newChild.key; null !== currentFirstChild;) { - if (currentFirstChild.key === child) { - if (4 === currentFirstChild.tag && currentFirstChild.stateNode.containerInfo === newChild.containerInfo && currentFirstChild.stateNode.implementation === newChild.implementation) { - deleteRemainingChildren(returnFiber, currentFirstChild.sibling); - currentFirstChild = useFiber(currentFirstChild, newChild.children || []); - currentFirstChild.return = returnFiber; - returnFiber = currentFirstChild; - break a; - } else { - deleteRemainingChildren(returnFiber, currentFirstChild); - break; - } - } else deleteChild(returnFiber, currentFirstChild); - currentFirstChild = currentFirstChild.sibling; - } - currentFirstChild = createFiberFromPortal(newChild, returnFiber.mode, lanes); - currentFirstChild.return = returnFiber; - returnFiber = currentFirstChild; - } - return placeSingleChild(returnFiber); - case REACT_LAZY_TYPE: - return child = newChild._init, reconcileChildFibers(returnFiber, currentFirstChild, child(newChild._payload), lanes); - } - if (isArrayImpl(newChild)) return reconcileChildrenArray(returnFiber, currentFirstChild, newChild, lanes); - if (getIteratorFn(newChild)) return reconcileChildrenIterator(returnFiber, currentFirstChild, newChild, lanes); - throwOnInvalidObjectType(returnFiber, newChild); - } - return "string" === typeof newChild && "" !== newChild || "number" === typeof newChild ? (newChild = "" + newChild, null !== currentFirstChild && 6 === currentFirstChild.tag ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling), currentFirstChild = useFiber(currentFirstChild, newChild), currentFirstChild.return = returnFiber, returnFiber = currentFirstChild) : (deleteRemainingChildren(returnFiber, currentFirstChild), currentFirstChild = createFiberFromText(newChild, returnFiber.mode, lanes), currentFirstChild.return = returnFiber, returnFiber = currentFirstChild), placeSingleChild(returnFiber)) : deleteRemainingChildren(returnFiber, currentFirstChild); - } - return reconcileChildFibers; - } - var reconcileChildFibers = ChildReconciler(true), - mountChildFibers = ChildReconciler(false), - NO_CONTEXT = {}, - contextStackCursor$1 = createCursor(NO_CONTEXT), - contextFiberStackCursor = createCursor(NO_CONTEXT), - rootInstanceStackCursor = createCursor(NO_CONTEXT); - function requiredContext(c) { - if (c === NO_CONTEXT) throw Error("Expected host context to exist. This error is likely caused by a bug in React. Please file an issue."); - return c; - } - function pushHostContainer(fiber, nextRootInstance) { - push(rootInstanceStackCursor, nextRootInstance); - push(contextFiberStackCursor, fiber); - push(contextStackCursor$1, NO_CONTEXT); - pop(contextStackCursor$1); - push(contextStackCursor$1, { - isInAParentText: false - }); - } - function popHostContainer() { - pop(contextStackCursor$1); - pop(contextFiberStackCursor); - pop(rootInstanceStackCursor); - } - function pushHostContext(fiber) { - requiredContext(rootInstanceStackCursor.current); - var context = requiredContext(contextStackCursor$1.current); - var JSCompiler_inline_result = fiber.type; - JSCompiler_inline_result = "AndroidTextInput" === JSCompiler_inline_result || "RCTMultilineTextInputView" === JSCompiler_inline_result || "RCTSinglelineTextInputView" === JSCompiler_inline_result || "RCTText" === JSCompiler_inline_result || "RCTVirtualText" === JSCompiler_inline_result; - JSCompiler_inline_result = context.isInAParentText !== JSCompiler_inline_result ? { - isInAParentText: JSCompiler_inline_result - } : context; - context !== JSCompiler_inline_result && (push(contextFiberStackCursor, fiber), push(contextStackCursor$1, JSCompiler_inline_result)); - } - function popHostContext(fiber) { - contextFiberStackCursor.current === fiber && (pop(contextStackCursor$1), pop(contextFiberStackCursor)); - } - var suspenseStackCursor = createCursor(0); - function findFirstSuspended(row) { - for (var node = row; null !== node;) { - if (13 === node.tag) { - var state = node.memoizedState; - if (null !== state && (null === state.dehydrated || shim$1() || shim$1())) return node; - } else if (19 === node.tag && undefined !== node.memoizedProps.revealOrder) { - if (0 !== (node.flags & 128)) return node; - } else if (null !== node.child) { - node.child.return = node; - node = node.child; - continue; - } - if (node === row) break; - for (; null === node.sibling;) { - if (null === node.return || node.return === row) return null; - node = node.return; - } - node.sibling.return = node.return; - node = node.sibling; - } - return null; - } - var workInProgressSources = []; - function resetWorkInProgressVersions() { - for (var i = 0; i < workInProgressSources.length; i++) workInProgressSources[i]._workInProgressVersionSecondary = null; - workInProgressSources.length = 0; - } - var ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher, - ReactCurrentBatchConfig$1 = ReactSharedInternals.ReactCurrentBatchConfig, - renderLanes = 0, - currentlyRenderingFiber$1 = null, - currentHook = null, - workInProgressHook = null, - didScheduleRenderPhaseUpdate = false, - didScheduleRenderPhaseUpdateDuringThisPass = false, - globalClientIdCounter = 0; - function throwInvalidHookError() { - throw Error("Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem."); - } - function areHookInputsEqual(nextDeps, prevDeps) { - if (null === prevDeps) return false; - for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++) if (!objectIs(nextDeps[i], prevDeps[i])) return false; - return true; - } - function renderWithHooks(current, workInProgress, Component, props, secondArg, nextRenderLanes) { - renderLanes = nextRenderLanes; - currentlyRenderingFiber$1 = workInProgress; - workInProgress.memoizedState = null; - workInProgress.updateQueue = null; - workInProgress.lanes = 0; - ReactCurrentDispatcher$1.current = null === current || null === current.memoizedState ? HooksDispatcherOnMount : HooksDispatcherOnUpdate; - current = Component(props, secondArg); - if (didScheduleRenderPhaseUpdateDuringThisPass) { - nextRenderLanes = 0; - do { - didScheduleRenderPhaseUpdateDuringThisPass = false; - if (25 <= nextRenderLanes) throw Error("Too many re-renders. React limits the number of renders to prevent an infinite loop."); - nextRenderLanes += 1; - workInProgressHook = currentHook = null; - workInProgress.updateQueue = null; - ReactCurrentDispatcher$1.current = HooksDispatcherOnRerender; - current = Component(props, secondArg); - } while (didScheduleRenderPhaseUpdateDuringThisPass); - } - ReactCurrentDispatcher$1.current = ContextOnlyDispatcher; - workInProgress = null !== currentHook && null !== currentHook.next; - renderLanes = 0; - workInProgressHook = currentHook = currentlyRenderingFiber$1 = null; - didScheduleRenderPhaseUpdate = false; - if (workInProgress) throw Error("Rendered fewer hooks than expected. This may be caused by an accidental early return statement."); - return current; - } - function mountWorkInProgressHook() { - var hook = { - memoizedState: null, - baseState: null, - baseQueue: null, - queue: null, - next: null - }; - null === workInProgressHook ? currentlyRenderingFiber$1.memoizedState = workInProgressHook = hook : workInProgressHook = workInProgressHook.next = hook; - return workInProgressHook; - } - function updateWorkInProgressHook() { - if (null === currentHook) { - var nextCurrentHook = currentlyRenderingFiber$1.alternate; - nextCurrentHook = null !== nextCurrentHook ? nextCurrentHook.memoizedState : null; - } else nextCurrentHook = currentHook.next; - var nextWorkInProgressHook = null === workInProgressHook ? currentlyRenderingFiber$1.memoizedState : workInProgressHook.next; - if (null !== nextWorkInProgressHook) workInProgressHook = nextWorkInProgressHook, currentHook = nextCurrentHook;else { - if (null === nextCurrentHook) throw Error("Rendered more hooks than during the previous render."); - currentHook = nextCurrentHook; - nextCurrentHook = { - memoizedState: currentHook.memoizedState, - baseState: currentHook.baseState, - baseQueue: currentHook.baseQueue, - queue: currentHook.queue, - next: null - }; - null === workInProgressHook ? currentlyRenderingFiber$1.memoizedState = workInProgressHook = nextCurrentHook : workInProgressHook = workInProgressHook.next = nextCurrentHook; - } - return workInProgressHook; - } - function basicStateReducer(state, action) { - return "function" === typeof action ? action(state) : action; - } - function updateReducer(reducer) { - var hook = updateWorkInProgressHook(), - queue = hook.queue; - if (null === queue) throw Error("Should have a queue. This is likely a bug in React. Please file an issue."); - queue.lastRenderedReducer = reducer; - var current = currentHook, - baseQueue = current.baseQueue, - pendingQueue = queue.pending; - if (null !== pendingQueue) { - if (null !== baseQueue) { - var baseFirst = baseQueue.next; - baseQueue.next = pendingQueue.next; - pendingQueue.next = baseFirst; - } - current.baseQueue = baseQueue = pendingQueue; - queue.pending = null; - } - if (null !== baseQueue) { - pendingQueue = baseQueue.next; - current = current.baseState; - var newBaseQueueFirst = baseFirst = null, - newBaseQueueLast = null, - update = pendingQueue; - do { - var updateLane = update.lane; - if ((renderLanes & updateLane) === updateLane) null !== newBaseQueueLast && (newBaseQueueLast = newBaseQueueLast.next = { - lane: 0, - action: update.action, - hasEagerState: update.hasEagerState, - eagerState: update.eagerState, - next: null - }), current = update.hasEagerState ? update.eagerState : reducer(current, update.action);else { - var clone = { - lane: updateLane, - action: update.action, - hasEagerState: update.hasEagerState, - eagerState: update.eagerState, - next: null - }; - null === newBaseQueueLast ? (newBaseQueueFirst = newBaseQueueLast = clone, baseFirst = current) : newBaseQueueLast = newBaseQueueLast.next = clone; - currentlyRenderingFiber$1.lanes |= updateLane; - workInProgressRootSkippedLanes |= updateLane; - } - update = update.next; - } while (null !== update && update !== pendingQueue); - null === newBaseQueueLast ? baseFirst = current : newBaseQueueLast.next = newBaseQueueFirst; - objectIs(current, hook.memoizedState) || (didReceiveUpdate = true); - hook.memoizedState = current; - hook.baseState = baseFirst; - hook.baseQueue = newBaseQueueLast; - queue.lastRenderedState = current; - } - reducer = queue.interleaved; - if (null !== reducer) { - baseQueue = reducer; - do pendingQueue = baseQueue.lane, currentlyRenderingFiber$1.lanes |= pendingQueue, workInProgressRootSkippedLanes |= pendingQueue, baseQueue = baseQueue.next; while (baseQueue !== reducer); - } else null === baseQueue && (queue.lanes = 0); - return [hook.memoizedState, queue.dispatch]; - } - function rerenderReducer(reducer) { - var hook = updateWorkInProgressHook(), - queue = hook.queue; - if (null === queue) throw Error("Should have a queue. This is likely a bug in React. Please file an issue."); - queue.lastRenderedReducer = reducer; - var dispatch = queue.dispatch, - lastRenderPhaseUpdate = queue.pending, - newState = hook.memoizedState; - if (null !== lastRenderPhaseUpdate) { - queue.pending = null; - var update = lastRenderPhaseUpdate = lastRenderPhaseUpdate.next; - do newState = reducer(newState, update.action), update = update.next; while (update !== lastRenderPhaseUpdate); - objectIs(newState, hook.memoizedState) || (didReceiveUpdate = true); - hook.memoizedState = newState; - null === hook.baseQueue && (hook.baseState = newState); - queue.lastRenderedState = newState; - } - return [newState, dispatch]; - } - function updateMutableSource() {} - function updateSyncExternalStore(subscribe, getSnapshot) { - var fiber = currentlyRenderingFiber$1, - hook = updateWorkInProgressHook(), - nextSnapshot = getSnapshot(), - snapshotChanged = !objectIs(hook.memoizedState, nextSnapshot); - snapshotChanged && (hook.memoizedState = nextSnapshot, didReceiveUpdate = true); - hook = hook.queue; - updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [subscribe]); - if (hook.getSnapshot !== getSnapshot || snapshotChanged || null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1) { - fiber.flags |= 2048; - pushEffect(9, updateStoreInstance.bind(null, fiber, hook, nextSnapshot, getSnapshot), undefined, null); - if (null === workInProgressRoot) throw Error("Expected a work-in-progress root. This is a bug in React. Please file an issue."); - 0 !== (renderLanes & 30) || pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot); - } - return nextSnapshot; - } - function pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) { - fiber.flags |= 16384; - fiber = { - getSnapshot: getSnapshot, - value: renderedSnapshot - }; - getSnapshot = currentlyRenderingFiber$1.updateQueue; - null === getSnapshot ? (getSnapshot = { - lastEffect: null, - stores: null - }, currentlyRenderingFiber$1.updateQueue = getSnapshot, getSnapshot.stores = [fiber]) : (renderedSnapshot = getSnapshot.stores, null === renderedSnapshot ? getSnapshot.stores = [fiber] : renderedSnapshot.push(fiber)); - } - function updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) { - inst.value = nextSnapshot; - inst.getSnapshot = getSnapshot; - checkIfSnapshotChanged(inst) && forceStoreRerender(fiber); - } - function subscribeToStore(fiber, inst, subscribe) { - return subscribe(function () { - checkIfSnapshotChanged(inst) && forceStoreRerender(fiber); - }); - } - function checkIfSnapshotChanged(inst) { - var latestGetSnapshot = inst.getSnapshot; - inst = inst.value; - try { - var nextValue = latestGetSnapshot(); - return !objectIs(inst, nextValue); - } catch (error) { - return true; - } - } - function forceStoreRerender(fiber) { - var root = markUpdateLaneFromFiberToRoot(fiber, 1); - null !== root && scheduleUpdateOnFiber(root, fiber, 1, -1); - } - function mountState(initialState) { - var hook = mountWorkInProgressHook(); - "function" === typeof initialState && (initialState = initialState()); - hook.memoizedState = hook.baseState = initialState; - initialState = { - pending: null, - interleaved: null, - lanes: 0, - dispatch: null, - lastRenderedReducer: basicStateReducer, - lastRenderedState: initialState - }; - hook.queue = initialState; - initialState = initialState.dispatch = dispatchSetState.bind(null, currentlyRenderingFiber$1, initialState); - return [hook.memoizedState, initialState]; - } - function pushEffect(tag, create, destroy, deps) { - tag = { - tag: tag, - create: create, - destroy: destroy, - deps: deps, - next: null - }; - create = currentlyRenderingFiber$1.updateQueue; - null === create ? (create = { - lastEffect: null, - stores: null - }, currentlyRenderingFiber$1.updateQueue = create, create.lastEffect = tag.next = tag) : (destroy = create.lastEffect, null === destroy ? create.lastEffect = tag.next = tag : (deps = destroy.next, destroy.next = tag, tag.next = deps, create.lastEffect = tag)); - return tag; - } - function updateRef() { - return updateWorkInProgressHook().memoizedState; - } - function mountEffectImpl(fiberFlags, hookFlags, create, deps) { - var hook = mountWorkInProgressHook(); - currentlyRenderingFiber$1.flags |= fiberFlags; - hook.memoizedState = pushEffect(1 | hookFlags, create, undefined, undefined === deps ? null : deps); - } - function updateEffectImpl(fiberFlags, hookFlags, create, deps) { - var hook = updateWorkInProgressHook(); - deps = undefined === deps ? null : deps; - var destroy = undefined; - if (null !== currentHook) { - var prevEffect = currentHook.memoizedState; - destroy = prevEffect.destroy; - if (null !== deps && areHookInputsEqual(deps, prevEffect.deps)) { - hook.memoizedState = pushEffect(hookFlags, create, destroy, deps); - return; - } - } - currentlyRenderingFiber$1.flags |= fiberFlags; - hook.memoizedState = pushEffect(1 | hookFlags, create, destroy, deps); - } - function mountEffect(create, deps) { - return mountEffectImpl(8390656, 8, create, deps); - } - function updateEffect(create, deps) { - return updateEffectImpl(2048, 8, create, deps); - } - function updateInsertionEffect(create, deps) { - return updateEffectImpl(4, 2, create, deps); - } - function updateLayoutEffect(create, deps) { - return updateEffectImpl(4, 4, create, deps); - } - function imperativeHandleEffect(create, ref) { - if ("function" === typeof ref) return create = create(), ref(create), function () { - ref(null); - }; - if (null !== ref && undefined !== ref) return create = create(), ref.current = create, function () { - ref.current = null; - }; - } - function updateImperativeHandle(ref, create, deps) { - deps = null !== deps && undefined !== deps ? deps.concat([ref]) : null; - return updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps); - } - function mountDebugValue() {} - function updateCallback(callback, deps) { - var hook = updateWorkInProgressHook(); - deps = undefined === deps ? null : deps; - var prevState = hook.memoizedState; - if (null !== prevState && null !== deps && areHookInputsEqual(deps, prevState[1])) return prevState[0]; - hook.memoizedState = [callback, deps]; - return callback; - } - function updateMemo(nextCreate, deps) { - var hook = updateWorkInProgressHook(); - deps = undefined === deps ? null : deps; - var prevState = hook.memoizedState; - if (null !== prevState && null !== deps && areHookInputsEqual(deps, prevState[1])) return prevState[0]; - nextCreate = nextCreate(); - hook.memoizedState = [nextCreate, deps]; - return nextCreate; - } - function updateDeferredValueImpl(hook, prevValue, value) { - if (0 === (renderLanes & 21)) return hook.baseState && (hook.baseState = false, didReceiveUpdate = true), hook.memoizedState = value; - objectIs(value, prevValue) || (value = claimNextTransitionLane(), currentlyRenderingFiber$1.lanes |= value, workInProgressRootSkippedLanes |= value, hook.baseState = true); - return prevValue; - } - function startTransition(setPending, callback) { - var previousPriority = currentUpdatePriority; - currentUpdatePriority = 0 !== previousPriority && 4 > previousPriority ? previousPriority : 4; - setPending(true); - var prevTransition = ReactCurrentBatchConfig$1.transition; - ReactCurrentBatchConfig$1.transition = {}; - try { - setPending(false), callback(); - } finally { - currentUpdatePriority = previousPriority, ReactCurrentBatchConfig$1.transition = prevTransition; - } - } - function updateId() { - return updateWorkInProgressHook().memoizedState; - } - function dispatchReducerAction(fiber, queue, action) { - var lane = requestUpdateLane(fiber); - action = { - lane: lane, - action: action, - hasEagerState: false, - eagerState: null, - next: null - }; - if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, action);else if (action = enqueueConcurrentHookUpdate(fiber, queue, action, lane), null !== action) { - var eventTime = requestEventTime(); - scheduleUpdateOnFiber(action, fiber, lane, eventTime); - entangleTransitionUpdate(action, queue, lane); - } - } - function dispatchSetState(fiber, queue, action) { - var lane = requestUpdateLane(fiber), - update = { - lane: lane, - action: action, - hasEagerState: false, - eagerState: null, - next: null - }; - if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);else { - var alternate = fiber.alternate; - if (0 === fiber.lanes && (null === alternate || 0 === alternate.lanes) && (alternate = queue.lastRenderedReducer, null !== alternate)) try { - var currentState = queue.lastRenderedState, - eagerState = alternate(currentState, action); - update.hasEagerState = true; - update.eagerState = eagerState; - if (objectIs(eagerState, currentState)) { - var interleaved = queue.interleaved; - null === interleaved ? (update.next = update, pushConcurrentUpdateQueue(queue)) : (update.next = interleaved.next, interleaved.next = update); - queue.interleaved = update; - return; - } - } catch (error) {} finally {} - action = enqueueConcurrentHookUpdate(fiber, queue, update, lane); - null !== action && (update = requestEventTime(), scheduleUpdateOnFiber(action, fiber, lane, update), entangleTransitionUpdate(action, queue, lane)); - } - } - function isRenderPhaseUpdate(fiber) { - var alternate = fiber.alternate; - return fiber === currentlyRenderingFiber$1 || null !== alternate && alternate === currentlyRenderingFiber$1; - } - function enqueueRenderPhaseUpdate(queue, update) { - didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate = true; - var pending = queue.pending; - null === pending ? update.next = update : (update.next = pending.next, pending.next = update); - queue.pending = update; - } - function entangleTransitionUpdate(root, queue, lane) { - if (0 !== (lane & 4194240)) { - var queueLanes = queue.lanes; - queueLanes &= root.pendingLanes; - lane |= queueLanes; - queue.lanes = lane; - markRootEntangled(root, lane); - } - } - var ContextOnlyDispatcher = { - readContext: readContext, - useCallback: throwInvalidHookError, - useContext: throwInvalidHookError, - useEffect: throwInvalidHookError, - useImperativeHandle: throwInvalidHookError, - useInsertionEffect: throwInvalidHookError, - useLayoutEffect: throwInvalidHookError, - useMemo: throwInvalidHookError, - useReducer: throwInvalidHookError, - useRef: throwInvalidHookError, - useState: throwInvalidHookError, - useDebugValue: throwInvalidHookError, - useDeferredValue: throwInvalidHookError, - useTransition: throwInvalidHookError, - useMutableSource: throwInvalidHookError, - useSyncExternalStore: throwInvalidHookError, - useId: throwInvalidHookError, - unstable_isNewReconciler: false - }, - HooksDispatcherOnMount = { - readContext: readContext, - useCallback: function useCallback(callback, deps) { - mountWorkInProgressHook().memoizedState = [callback, undefined === deps ? null : deps]; - return callback; - }, - useContext: readContext, - useEffect: mountEffect, - useImperativeHandle: function useImperativeHandle(ref, create, deps) { - deps = null !== deps && undefined !== deps ? deps.concat([ref]) : null; - return mountEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps); - }, - useLayoutEffect: function useLayoutEffect(create, deps) { - return mountEffectImpl(4, 4, create, deps); - }, - useInsertionEffect: function useInsertionEffect(create, deps) { - return mountEffectImpl(4, 2, create, deps); - }, - useMemo: function useMemo(nextCreate, deps) { - var hook = mountWorkInProgressHook(); - deps = undefined === deps ? null : deps; - nextCreate = nextCreate(); - hook.memoizedState = [nextCreate, deps]; - return nextCreate; - }, - useReducer: function useReducer(reducer, initialArg, init) { - var hook = mountWorkInProgressHook(); - initialArg = undefined !== init ? init(initialArg) : initialArg; - hook.memoizedState = hook.baseState = initialArg; - reducer = { - pending: null, - interleaved: null, - lanes: 0, - dispatch: null, - lastRenderedReducer: reducer, - lastRenderedState: initialArg - }; - hook.queue = reducer; - reducer = reducer.dispatch = dispatchReducerAction.bind(null, currentlyRenderingFiber$1, reducer); - return [hook.memoizedState, reducer]; - }, - useRef: function useRef(initialValue) { - var hook = mountWorkInProgressHook(); - initialValue = { - current: initialValue - }; - return hook.memoizedState = initialValue; - }, - useState: mountState, - useDebugValue: mountDebugValue, - useDeferredValue: function useDeferredValue(value) { - return mountWorkInProgressHook().memoizedState = value; - }, - useTransition: function useTransition() { - var _mountState = mountState(false), - isPending = _mountState[0]; - _mountState = startTransition.bind(null, _mountState[1]); - mountWorkInProgressHook().memoizedState = _mountState; - return [isPending, _mountState]; - }, - useMutableSource: function useMutableSource() {}, - useSyncExternalStore: function useSyncExternalStore(subscribe, getSnapshot) { - var fiber = currentlyRenderingFiber$1, - hook = mountWorkInProgressHook(); - var nextSnapshot = getSnapshot(); - if (null === workInProgressRoot) throw Error("Expected a work-in-progress root. This is a bug in React. Please file an issue."); - 0 !== (renderLanes & 30) || pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot); - hook.memoizedState = nextSnapshot; - var inst = { - value: nextSnapshot, - getSnapshot: getSnapshot - }; - hook.queue = inst; - mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [subscribe]); - fiber.flags |= 2048; - pushEffect(9, updateStoreInstance.bind(null, fiber, inst, nextSnapshot, getSnapshot), undefined, null); - return nextSnapshot; - }, - useId: function useId() { - var hook = mountWorkInProgressHook(), - identifierPrefix = workInProgressRoot.identifierPrefix, - globalClientId = globalClientIdCounter++; - identifierPrefix = ":" + identifierPrefix + "r" + globalClientId.toString(32) + ":"; - return hook.memoizedState = identifierPrefix; - }, - unstable_isNewReconciler: false - }, - HooksDispatcherOnUpdate = { - readContext: readContext, - useCallback: updateCallback, - useContext: readContext, - useEffect: updateEffect, - useImperativeHandle: updateImperativeHandle, - useInsertionEffect: updateInsertionEffect, - useLayoutEffect: updateLayoutEffect, - useMemo: updateMemo, - useReducer: updateReducer, - useRef: updateRef, - useState: function useState() { - return updateReducer(basicStateReducer); - }, - useDebugValue: mountDebugValue, - useDeferredValue: function useDeferredValue(value) { - var hook = updateWorkInProgressHook(); - return updateDeferredValueImpl(hook, currentHook.memoizedState, value); - }, - useTransition: function useTransition() { - var isPending = updateReducer(basicStateReducer)[0], - start = updateWorkInProgressHook().memoizedState; - return [isPending, start]; - }, - useMutableSource: updateMutableSource, - useSyncExternalStore: updateSyncExternalStore, - useId: updateId, - unstable_isNewReconciler: false - }, - HooksDispatcherOnRerender = { - readContext: readContext, - useCallback: updateCallback, - useContext: readContext, - useEffect: updateEffect, - useImperativeHandle: updateImperativeHandle, - useInsertionEffect: updateInsertionEffect, - useLayoutEffect: updateLayoutEffect, - useMemo: updateMemo, - useReducer: rerenderReducer, - useRef: updateRef, - useState: function useState() { - return rerenderReducer(basicStateReducer); - }, - useDebugValue: mountDebugValue, - useDeferredValue: function useDeferredValue(value) { - var hook = updateWorkInProgressHook(); - return null === currentHook ? hook.memoizedState = value : updateDeferredValueImpl(hook, currentHook.memoizedState, value); - }, - useTransition: function useTransition() { - var isPending = rerenderReducer(basicStateReducer)[0], - start = updateWorkInProgressHook().memoizedState; - return [isPending, start]; - }, - useMutableSource: updateMutableSource, - useSyncExternalStore: updateSyncExternalStore, - useId: updateId, - unstable_isNewReconciler: false - }; - function createCapturedValueAtFiber(value, source) { - try { - var info = "", - node = source; - do info += describeFiber(node), node = node.return; while (node); - var JSCompiler_inline_result = info; - } catch (x) { - JSCompiler_inline_result = "\nError generating stack: " + x.message + "\n" + x.stack; - } - return { - value: value, - source: source, - stack: JSCompiler_inline_result, - digest: null - }; - } - function createCapturedValue(value, digest, stack) { - return { - value: value, - source: null, - stack: null != stack ? stack : null, - digest: null != digest ? digest : null - }; - } - if ("function" !== typeof _$$_REQUIRE(_dependencyMap[2]).ReactFiberErrorDialog.showErrorDialog) throw Error("Expected ReactFiberErrorDialog.showErrorDialog to be a function."); - function logCapturedError(boundary, errorInfo) { - try { - false !== _$$_REQUIRE(_dependencyMap[2]).ReactFiberErrorDialog.showErrorDialog({ - componentStack: null !== errorInfo.stack ? errorInfo.stack : "", - error: errorInfo.value, - errorBoundary: null !== boundary && 1 === boundary.tag ? boundary.stateNode : null - }) && console.error(errorInfo.value); - } catch (e) { - setTimeout(function () { - throw e; - }); - } - } - var PossiblyWeakMap = "function" === typeof WeakMap ? WeakMap : Map; - function createRootErrorUpdate(fiber, errorInfo, lane) { - lane = createUpdate(-1, lane); - lane.tag = 3; - lane.payload = { - element: null - }; - var error = errorInfo.value; - lane.callback = function () { - hasUncaughtError || (hasUncaughtError = true, firstUncaughtError = error); - logCapturedError(fiber, errorInfo); - }; - return lane; - } - function createClassErrorUpdate(fiber, errorInfo, lane) { - lane = createUpdate(-1, lane); - lane.tag = 3; - var getDerivedStateFromError = fiber.type.getDerivedStateFromError; - if ("function" === typeof getDerivedStateFromError) { - var error = errorInfo.value; - lane.payload = function () { - return getDerivedStateFromError(error); - }; - lane.callback = function () { - logCapturedError(fiber, errorInfo); - }; - } - var inst = fiber.stateNode; - null !== inst && "function" === typeof inst.componentDidCatch && (lane.callback = function () { - logCapturedError(fiber, errorInfo); - "function" !== typeof getDerivedStateFromError && (null === legacyErrorBoundariesThatAlreadyFailed ? legacyErrorBoundariesThatAlreadyFailed = new Set([this]) : legacyErrorBoundariesThatAlreadyFailed.add(this)); - var stack = errorInfo.stack; - this.componentDidCatch(errorInfo.value, { - componentStack: null !== stack ? stack : "" - }); - }); - return lane; - } - function attachPingListener(root, wakeable, lanes) { - var pingCache = root.pingCache; - if (null === pingCache) { - pingCache = root.pingCache = new PossiblyWeakMap(); - var threadIDs = new Set(); - pingCache.set(wakeable, threadIDs); - } else threadIDs = pingCache.get(wakeable), undefined === threadIDs && (threadIDs = new Set(), pingCache.set(wakeable, threadIDs)); - threadIDs.has(lanes) || (threadIDs.add(lanes), root = pingSuspendedRoot.bind(null, root, wakeable, lanes), wakeable.then(root, root)); - } - var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner, - didReceiveUpdate = false; - function reconcileChildren(current, workInProgress, nextChildren, renderLanes) { - workInProgress.child = null === current ? mountChildFibers(workInProgress, null, nextChildren, renderLanes) : reconcileChildFibers(workInProgress, current.child, nextChildren, renderLanes); - } - function updateForwardRef(current, workInProgress, Component, nextProps, renderLanes) { - Component = Component.render; - var ref = workInProgress.ref; - prepareToReadContext(workInProgress, renderLanes); - nextProps = renderWithHooks(current, workInProgress, Component, nextProps, ref, renderLanes); - if (null !== current && !didReceiveUpdate) return workInProgress.updateQueue = current.updateQueue, workInProgress.flags &= -2053, current.lanes &= ~renderLanes, bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes); - workInProgress.flags |= 1; - reconcileChildren(current, workInProgress, nextProps, renderLanes); - return workInProgress.child; - } - function updateMemoComponent(current, workInProgress, Component, nextProps, renderLanes) { - if (null === current) { - var type = Component.type; - if ("function" === typeof type && !shouldConstruct(type) && undefined === type.defaultProps && null === Component.compare && undefined === Component.defaultProps) return workInProgress.tag = 15, workInProgress.type = type, updateSimpleMemoComponent(current, workInProgress, type, nextProps, renderLanes); - current = createFiberFromTypeAndProps(Component.type, null, nextProps, workInProgress, workInProgress.mode, renderLanes); - current.ref = workInProgress.ref; - current.return = workInProgress; - return workInProgress.child = current; - } - type = current.child; - if (0 === (current.lanes & renderLanes)) { - var prevProps = type.memoizedProps; - Component = Component.compare; - Component = null !== Component ? Component : shallowEqual; - if (Component(prevProps, nextProps) && current.ref === workInProgress.ref) return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes); - } - workInProgress.flags |= 1; - current = createWorkInProgress(type, nextProps); - current.ref = workInProgress.ref; - current.return = workInProgress; - return workInProgress.child = current; - } - function updateSimpleMemoComponent(current, workInProgress, Component, nextProps, renderLanes) { - if (null !== current) { - var prevProps = current.memoizedProps; - if (shallowEqual(prevProps, nextProps) && current.ref === workInProgress.ref) if (didReceiveUpdate = false, workInProgress.pendingProps = nextProps = prevProps, 0 !== (current.lanes & renderLanes)) 0 !== (current.flags & 131072) && (didReceiveUpdate = true);else return workInProgress.lanes = current.lanes, bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes); - } - return updateFunctionComponent(current, workInProgress, Component, nextProps, renderLanes); - } - function updateOffscreenComponent(current, workInProgress, renderLanes) { - var nextProps = workInProgress.pendingProps, - nextChildren = nextProps.children, - prevState = null !== current ? current.memoizedState : null; - if ("hidden" === nextProps.mode) { - if (0 === (workInProgress.mode & 1)) workInProgress.memoizedState = { - baseLanes: 0, - cachePool: null, - transitions: null - }, push(subtreeRenderLanesCursor, subtreeRenderLanes), subtreeRenderLanes |= renderLanes;else { - if (0 === (renderLanes & 1073741824)) return current = null !== prevState ? prevState.baseLanes | renderLanes : renderLanes, workInProgress.lanes = workInProgress.childLanes = 1073741824, workInProgress.memoizedState = { - baseLanes: current, - cachePool: null, - transitions: null - }, workInProgress.updateQueue = null, push(subtreeRenderLanesCursor, subtreeRenderLanes), subtreeRenderLanes |= current, null; - workInProgress.memoizedState = { - baseLanes: 0, - cachePool: null, - transitions: null - }; - nextProps = null !== prevState ? prevState.baseLanes : renderLanes; - push(subtreeRenderLanesCursor, subtreeRenderLanes); - subtreeRenderLanes |= nextProps; - } - } else null !== prevState ? (nextProps = prevState.baseLanes | renderLanes, workInProgress.memoizedState = null) : nextProps = renderLanes, push(subtreeRenderLanesCursor, subtreeRenderLanes), subtreeRenderLanes |= nextProps; - reconcileChildren(current, workInProgress, nextChildren, renderLanes); - return workInProgress.child; - } - function markRef(current, workInProgress) { - var ref = workInProgress.ref; - if (null === current && null !== ref || null !== current && current.ref !== ref) workInProgress.flags |= 512; - } - function updateFunctionComponent(current, workInProgress, Component, nextProps, renderLanes) { - var context = isContextProvider(Component) ? previousContext : contextStackCursor.current; - context = getMaskedContext(workInProgress, context); - prepareToReadContext(workInProgress, renderLanes); - Component = renderWithHooks(current, workInProgress, Component, nextProps, context, renderLanes); - if (null !== current && !didReceiveUpdate) return workInProgress.updateQueue = current.updateQueue, workInProgress.flags &= -2053, current.lanes &= ~renderLanes, bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes); - workInProgress.flags |= 1; - reconcileChildren(current, workInProgress, Component, renderLanes); - return workInProgress.child; - } - function updateClassComponent(current, workInProgress, Component, nextProps, renderLanes) { - if (isContextProvider(Component)) { - var hasContext = true; - pushContextProvider(workInProgress); - } else hasContext = false; - prepareToReadContext(workInProgress, renderLanes); - if (null === workInProgress.stateNode) resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress), constructClassInstance(workInProgress, Component, nextProps), mountClassInstance(workInProgress, Component, nextProps, renderLanes), nextProps = true;else if (null === current) { - var instance = workInProgress.stateNode, - oldProps = workInProgress.memoizedProps; - instance.props = oldProps; - var oldContext = instance.context, - contextType = Component.contextType; - "object" === typeof contextType && null !== contextType ? contextType = readContext(contextType) : (contextType = isContextProvider(Component) ? previousContext : contextStackCursor.current, contextType = getMaskedContext(workInProgress, contextType)); - var getDerivedStateFromProps = Component.getDerivedStateFromProps, - hasNewLifecycles = "function" === typeof getDerivedStateFromProps || "function" === typeof instance.getSnapshotBeforeUpdate; - hasNewLifecycles || "function" !== typeof instance.UNSAFE_componentWillReceiveProps && "function" !== typeof instance.componentWillReceiveProps || (oldProps !== nextProps || oldContext !== contextType) && callComponentWillReceiveProps(workInProgress, instance, nextProps, contextType); - hasForceUpdate = false; - var oldState = workInProgress.memoizedState; - instance.state = oldState; - processUpdateQueue(workInProgress, nextProps, instance, renderLanes); - oldContext = workInProgress.memoizedState; - oldProps !== nextProps || oldState !== oldContext || didPerformWorkStackCursor.current || hasForceUpdate ? ("function" === typeof getDerivedStateFromProps && (applyDerivedStateFromProps(workInProgress, Component, getDerivedStateFromProps, nextProps), oldContext = workInProgress.memoizedState), (oldProps = hasForceUpdate || checkShouldComponentUpdate(workInProgress, Component, oldProps, nextProps, oldState, oldContext, contextType)) ? (hasNewLifecycles || "function" !== typeof instance.UNSAFE_componentWillMount && "function" !== typeof instance.componentWillMount || ("function" === typeof instance.componentWillMount && instance.componentWillMount(), "function" === typeof instance.UNSAFE_componentWillMount && instance.UNSAFE_componentWillMount()), "function" === typeof instance.componentDidMount && (workInProgress.flags |= 4)) : ("function" === typeof instance.componentDidMount && (workInProgress.flags |= 4), workInProgress.memoizedProps = nextProps, workInProgress.memoizedState = oldContext), instance.props = nextProps, instance.state = oldContext, instance.context = contextType, nextProps = oldProps) : ("function" === typeof instance.componentDidMount && (workInProgress.flags |= 4), nextProps = false); - } else { - instance = workInProgress.stateNode; - cloneUpdateQueue(current, workInProgress); - oldProps = workInProgress.memoizedProps; - contextType = workInProgress.type === workInProgress.elementType ? oldProps : resolveDefaultProps(workInProgress.type, oldProps); - instance.props = contextType; - hasNewLifecycles = workInProgress.pendingProps; - oldState = instance.context; - oldContext = Component.contextType; - "object" === typeof oldContext && null !== oldContext ? oldContext = readContext(oldContext) : (oldContext = isContextProvider(Component) ? previousContext : contextStackCursor.current, oldContext = getMaskedContext(workInProgress, oldContext)); - var getDerivedStateFromProps$jscomp$0 = Component.getDerivedStateFromProps; - (getDerivedStateFromProps = "function" === typeof getDerivedStateFromProps$jscomp$0 || "function" === typeof instance.getSnapshotBeforeUpdate) || "function" !== typeof instance.UNSAFE_componentWillReceiveProps && "function" !== typeof instance.componentWillReceiveProps || (oldProps !== hasNewLifecycles || oldState !== oldContext) && callComponentWillReceiveProps(workInProgress, instance, nextProps, oldContext); - hasForceUpdate = false; - oldState = workInProgress.memoizedState; - instance.state = oldState; - processUpdateQueue(workInProgress, nextProps, instance, renderLanes); - var newState = workInProgress.memoizedState; - oldProps !== hasNewLifecycles || oldState !== newState || didPerformWorkStackCursor.current || hasForceUpdate ? ("function" === typeof getDerivedStateFromProps$jscomp$0 && (applyDerivedStateFromProps(workInProgress, Component, getDerivedStateFromProps$jscomp$0, nextProps), newState = workInProgress.memoizedState), (contextType = hasForceUpdate || checkShouldComponentUpdate(workInProgress, Component, contextType, nextProps, oldState, newState, oldContext) || false) ? (getDerivedStateFromProps || "function" !== typeof instance.UNSAFE_componentWillUpdate && "function" !== typeof instance.componentWillUpdate || ("function" === typeof instance.componentWillUpdate && instance.componentWillUpdate(nextProps, newState, oldContext), "function" === typeof instance.UNSAFE_componentWillUpdate && instance.UNSAFE_componentWillUpdate(nextProps, newState, oldContext)), "function" === typeof instance.componentDidUpdate && (workInProgress.flags |= 4), "function" === typeof instance.getSnapshotBeforeUpdate && (workInProgress.flags |= 1024)) : ("function" !== typeof instance.componentDidUpdate || oldProps === current.memoizedProps && oldState === current.memoizedState || (workInProgress.flags |= 4), "function" !== typeof instance.getSnapshotBeforeUpdate || oldProps === current.memoizedProps && oldState === current.memoizedState || (workInProgress.flags |= 1024), workInProgress.memoizedProps = nextProps, workInProgress.memoizedState = newState), instance.props = nextProps, instance.state = newState, instance.context = oldContext, nextProps = contextType) : ("function" !== typeof instance.componentDidUpdate || oldProps === current.memoizedProps && oldState === current.memoizedState || (workInProgress.flags |= 4), "function" !== typeof instance.getSnapshotBeforeUpdate || oldProps === current.memoizedProps && oldState === current.memoizedState || (workInProgress.flags |= 1024), nextProps = false); - } - return finishClassComponent(current, workInProgress, Component, nextProps, hasContext, renderLanes); - } - function finishClassComponent(current, workInProgress, Component, shouldUpdate, hasContext, renderLanes) { - markRef(current, workInProgress); - var didCaptureError = 0 !== (workInProgress.flags & 128); - if (!shouldUpdate && !didCaptureError) return hasContext && invalidateContextProvider(workInProgress, Component, false), bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes); - shouldUpdate = workInProgress.stateNode; - ReactCurrentOwner$1.current = workInProgress; - var nextChildren = didCaptureError && "function" !== typeof Component.getDerivedStateFromError ? null : shouldUpdate.render(); - workInProgress.flags |= 1; - null !== current && didCaptureError ? (workInProgress.child = reconcileChildFibers(workInProgress, current.child, null, renderLanes), workInProgress.child = reconcileChildFibers(workInProgress, null, nextChildren, renderLanes)) : reconcileChildren(current, workInProgress, nextChildren, renderLanes); - workInProgress.memoizedState = shouldUpdate.state; - hasContext && invalidateContextProvider(workInProgress, Component, true); - return workInProgress.child; - } - function pushHostRootContext(workInProgress) { - var root = workInProgress.stateNode; - root.pendingContext ? pushTopLevelContextObject(workInProgress, root.pendingContext, root.pendingContext !== root.context) : root.context && pushTopLevelContextObject(workInProgress, root.context, false); - pushHostContainer(workInProgress, root.containerInfo); - } - var SUSPENDED_MARKER = { - dehydrated: null, - treeContext: null, - retryLane: 0 - }; - function mountSuspenseOffscreenState(renderLanes) { - return { - baseLanes: renderLanes, - cachePool: null, - transitions: null - }; - } - function updateSuspenseComponent(current, workInProgress, renderLanes) { - var nextProps = workInProgress.pendingProps, - suspenseContext = suspenseStackCursor.current, - showFallback = false, - didSuspend = 0 !== (workInProgress.flags & 128), - JSCompiler_temp; - (JSCompiler_temp = didSuspend) || (JSCompiler_temp = null !== current && null === current.memoizedState ? false : 0 !== (suspenseContext & 2)); - if (JSCompiler_temp) showFallback = true, workInProgress.flags &= -129;else if (null === current || null !== current.memoizedState) suspenseContext |= 1; - push(suspenseStackCursor, suspenseContext & 1); - if (null === current) { - current = workInProgress.memoizedState; - if (null !== current && null !== current.dehydrated) return 0 === (workInProgress.mode & 1) ? workInProgress.lanes = 1 : shim$1() ? workInProgress.lanes = 8 : workInProgress.lanes = 1073741824, null; - didSuspend = nextProps.children; - current = nextProps.fallback; - return showFallback ? (nextProps = workInProgress.mode, showFallback = workInProgress.child, didSuspend = { - mode: "hidden", - children: didSuspend - }, 0 === (nextProps & 1) && null !== showFallback ? (showFallback.childLanes = 0, showFallback.pendingProps = didSuspend) : showFallback = createFiberFromOffscreen(didSuspend, nextProps, 0, null), current = createFiberFromFragment(current, nextProps, renderLanes, null), showFallback.return = workInProgress, current.return = workInProgress, showFallback.sibling = current, workInProgress.child = showFallback, workInProgress.child.memoizedState = mountSuspenseOffscreenState(renderLanes), workInProgress.memoizedState = SUSPENDED_MARKER, current) : mountSuspensePrimaryChildren(workInProgress, didSuspend); - } - suspenseContext = current.memoizedState; - if (null !== suspenseContext && (JSCompiler_temp = suspenseContext.dehydrated, null !== JSCompiler_temp)) return updateDehydratedSuspenseComponent(current, workInProgress, didSuspend, nextProps, JSCompiler_temp, suspenseContext, renderLanes); - if (showFallback) { - showFallback = nextProps.fallback; - didSuspend = workInProgress.mode; - suspenseContext = current.child; - JSCompiler_temp = suspenseContext.sibling; - var primaryChildProps = { - mode: "hidden", - children: nextProps.children - }; - 0 === (didSuspend & 1) && workInProgress.child !== suspenseContext ? (nextProps = workInProgress.child, nextProps.childLanes = 0, nextProps.pendingProps = primaryChildProps, workInProgress.deletions = null) : (nextProps = createWorkInProgress(suspenseContext, primaryChildProps), nextProps.subtreeFlags = suspenseContext.subtreeFlags & 14680064); - null !== JSCompiler_temp ? showFallback = createWorkInProgress(JSCompiler_temp, showFallback) : (showFallback = createFiberFromFragment(showFallback, didSuspend, renderLanes, null), showFallback.flags |= 2); - showFallback.return = workInProgress; - nextProps.return = workInProgress; - nextProps.sibling = showFallback; - workInProgress.child = nextProps; - nextProps = showFallback; - showFallback = workInProgress.child; - didSuspend = current.child.memoizedState; - didSuspend = null === didSuspend ? mountSuspenseOffscreenState(renderLanes) : { - baseLanes: didSuspend.baseLanes | renderLanes, - cachePool: null, - transitions: didSuspend.transitions - }; - showFallback.memoizedState = didSuspend; - showFallback.childLanes = current.childLanes & ~renderLanes; - workInProgress.memoizedState = SUSPENDED_MARKER; - return nextProps; - } - showFallback = current.child; - current = showFallback.sibling; - nextProps = createWorkInProgress(showFallback, { - mode: "visible", - children: nextProps.children - }); - 0 === (workInProgress.mode & 1) && (nextProps.lanes = renderLanes); - nextProps.return = workInProgress; - nextProps.sibling = null; - null !== current && (renderLanes = workInProgress.deletions, null === renderLanes ? (workInProgress.deletions = [current], workInProgress.flags |= 16) : renderLanes.push(current)); - workInProgress.child = nextProps; - workInProgress.memoizedState = null; - return nextProps; - } - function mountSuspensePrimaryChildren(workInProgress, primaryChildren) { - primaryChildren = createFiberFromOffscreen({ - mode: "visible", - children: primaryChildren - }, workInProgress.mode, 0, null); - primaryChildren.return = workInProgress; - return workInProgress.child = primaryChildren; - } - function retrySuspenseComponentWithoutHydrating(current, workInProgress, renderLanes, recoverableError) { - null !== recoverableError && (null === hydrationErrors ? hydrationErrors = [recoverableError] : hydrationErrors.push(recoverableError)); - reconcileChildFibers(workInProgress, current.child, null, renderLanes); - current = mountSuspensePrimaryChildren(workInProgress, workInProgress.pendingProps.children); - current.flags |= 2; - workInProgress.memoizedState = null; - return current; - } - function updateDehydratedSuspenseComponent(current, workInProgress, didSuspend, nextProps, suspenseInstance, suspenseState, renderLanes) { - if (didSuspend) { - if (workInProgress.flags & 256) return workInProgress.flags &= -257, suspenseState = createCapturedValue(Error("There was an error while hydrating this Suspense boundary. Switched to client rendering.")), retrySuspenseComponentWithoutHydrating(current, workInProgress, renderLanes, suspenseState); - if (null !== workInProgress.memoizedState) return workInProgress.child = current.child, workInProgress.flags |= 128, null; - suspenseState = nextProps.fallback; - didSuspend = workInProgress.mode; - nextProps = createFiberFromOffscreen({ - mode: "visible", - children: nextProps.children - }, didSuspend, 0, null); - suspenseState = createFiberFromFragment(suspenseState, didSuspend, renderLanes, null); - suspenseState.flags |= 2; - nextProps.return = workInProgress; - suspenseState.return = workInProgress; - nextProps.sibling = suspenseState; - workInProgress.child = nextProps; - 0 !== (workInProgress.mode & 1) && reconcileChildFibers(workInProgress, current.child, null, renderLanes); - workInProgress.child.memoizedState = mountSuspenseOffscreenState(renderLanes); - workInProgress.memoizedState = SUSPENDED_MARKER; - return suspenseState; - } - if (0 === (workInProgress.mode & 1)) return retrySuspenseComponentWithoutHydrating(current, workInProgress, renderLanes, null); - if (shim$1()) return suspenseState = shim$1().digest, suspenseState = createCapturedValue(Error("The server could not finish this Suspense boundary, likely due to an error during server rendering. Switched to client rendering."), suspenseState, undefined), retrySuspenseComponentWithoutHydrating(current, workInProgress, renderLanes, suspenseState); - didSuspend = 0 !== (renderLanes & current.childLanes); - if (didReceiveUpdate || didSuspend) { - nextProps = workInProgressRoot; - if (null !== nextProps) { - switch (renderLanes & -renderLanes) { - case 4: - didSuspend = 2; - break; - case 16: - didSuspend = 8; - break; - case 64: - case 128: - case 256: - case 512: - case 1024: - case 2048: - case 4096: - case 8192: - case 16384: - case 32768: - case 65536: - case 131072: - case 262144: - case 524288: - case 1048576: - case 2097152: - case 4194304: - case 8388608: - case 16777216: - case 33554432: - case 67108864: - didSuspend = 32; - break; - case 536870912: - didSuspend = 268435456; - break; - default: - didSuspend = 0; - } - didSuspend = 0 !== (didSuspend & (nextProps.suspendedLanes | renderLanes)) ? 0 : didSuspend; - 0 !== didSuspend && didSuspend !== suspenseState.retryLane && (suspenseState.retryLane = didSuspend, markUpdateLaneFromFiberToRoot(current, didSuspend), scheduleUpdateOnFiber(nextProps, current, didSuspend, -1)); - } - renderDidSuspendDelayIfPossible(); - suspenseState = createCapturedValue(Error("This Suspense boundary received an update before it finished hydrating. This caused the boundary to switch to client rendering. The usual way to fix this is to wrap the original update in startTransition.")); - return retrySuspenseComponentWithoutHydrating(current, workInProgress, renderLanes, suspenseState); - } - if (shim$1()) return workInProgress.flags |= 128, workInProgress.child = current.child, retryDehydratedSuspenseBoundary.bind(null, current), shim$1(), null; - current = mountSuspensePrimaryChildren(workInProgress, nextProps.children); - current.flags |= 4096; - return current; - } - function scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) { - fiber.lanes |= renderLanes; - var alternate = fiber.alternate; - null !== alternate && (alternate.lanes |= renderLanes); - scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot); - } - function initSuspenseListRenderState(workInProgress, isBackwards, tail, lastContentRow, tailMode) { - var renderState = workInProgress.memoizedState; - null === renderState ? workInProgress.memoizedState = { - isBackwards: isBackwards, - rendering: null, - renderingStartTime: 0, - last: lastContentRow, - tail: tail, - tailMode: tailMode - } : (renderState.isBackwards = isBackwards, renderState.rendering = null, renderState.renderingStartTime = 0, renderState.last = lastContentRow, renderState.tail = tail, renderState.tailMode = tailMode); - } - function updateSuspenseListComponent(current, workInProgress, renderLanes) { - var nextProps = workInProgress.pendingProps, - revealOrder = nextProps.revealOrder, - tailMode = nextProps.tail; - reconcileChildren(current, workInProgress, nextProps.children, renderLanes); - nextProps = suspenseStackCursor.current; - if (0 !== (nextProps & 2)) nextProps = nextProps & 1 | 2, workInProgress.flags |= 128;else { - if (null !== current && 0 !== (current.flags & 128)) a: for (current = workInProgress.child; null !== current;) { - if (13 === current.tag) null !== current.memoizedState && scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);else if (19 === current.tag) scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);else if (null !== current.child) { - current.child.return = current; - current = current.child; - continue; - } - if (current === workInProgress) break a; - for (; null === current.sibling;) { - if (null === current.return || current.return === workInProgress) break a; - current = current.return; - } - current.sibling.return = current.return; - current = current.sibling; - } - nextProps &= 1; - } - push(suspenseStackCursor, nextProps); - if (0 === (workInProgress.mode & 1)) workInProgress.memoizedState = null;else switch (revealOrder) { - case "forwards": - renderLanes = workInProgress.child; - for (revealOrder = null; null !== renderLanes;) current = renderLanes.alternate, null !== current && null === findFirstSuspended(current) && (revealOrder = renderLanes), renderLanes = renderLanes.sibling; - renderLanes = revealOrder; - null === renderLanes ? (revealOrder = workInProgress.child, workInProgress.child = null) : (revealOrder = renderLanes.sibling, renderLanes.sibling = null); - initSuspenseListRenderState(workInProgress, false, revealOrder, renderLanes, tailMode); - break; - case "backwards": - renderLanes = null; - revealOrder = workInProgress.child; - for (workInProgress.child = null; null !== revealOrder;) { - current = revealOrder.alternate; - if (null !== current && null === findFirstSuspended(current)) { - workInProgress.child = revealOrder; - break; - } - current = revealOrder.sibling; - revealOrder.sibling = renderLanes; - renderLanes = revealOrder; - revealOrder = current; - } - initSuspenseListRenderState(workInProgress, true, renderLanes, null, tailMode); - break; - case "together": - initSuspenseListRenderState(workInProgress, false, null, null, undefined); - break; - default: - workInProgress.memoizedState = null; - } - return workInProgress.child; - } - function resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress) { - 0 === (workInProgress.mode & 1) && null !== current && (current.alternate = null, workInProgress.alternate = null, workInProgress.flags |= 2); - } - function bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) { - null !== current && (workInProgress.dependencies = current.dependencies); - workInProgressRootSkippedLanes |= workInProgress.lanes; - if (0 === (renderLanes & workInProgress.childLanes)) return null; - if (null !== current && workInProgress.child !== current.child) throw Error("Resuming work not yet implemented."); - if (null !== workInProgress.child) { - current = workInProgress.child; - renderLanes = createWorkInProgress(current, current.pendingProps); - workInProgress.child = renderLanes; - for (renderLanes.return = workInProgress; null !== current.sibling;) current = current.sibling, renderLanes = renderLanes.sibling = createWorkInProgress(current, current.pendingProps), renderLanes.return = workInProgress; - renderLanes.sibling = null; - } - return workInProgress.child; - } - function attemptEarlyBailoutIfNoScheduledUpdate(current, workInProgress, renderLanes) { - switch (workInProgress.tag) { - case 3: - pushHostRootContext(workInProgress); - break; - case 5: - pushHostContext(workInProgress); - break; - case 1: - isContextProvider(workInProgress.type) && pushContextProvider(workInProgress); - break; - case 4: - pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo); - break; - case 10: - var context = workInProgress.type._context, - nextValue = workInProgress.memoizedProps.value; - push(valueCursor, context._currentValue2); - context._currentValue2 = nextValue; - break; - case 13: - context = workInProgress.memoizedState; - if (null !== context) { - if (null !== context.dehydrated) return push(suspenseStackCursor, suspenseStackCursor.current & 1), workInProgress.flags |= 128, null; - if (0 !== (renderLanes & workInProgress.child.childLanes)) return updateSuspenseComponent(current, workInProgress, renderLanes); - push(suspenseStackCursor, suspenseStackCursor.current & 1); - current = bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes); - return null !== current ? current.sibling : null; - } - push(suspenseStackCursor, suspenseStackCursor.current & 1); - break; - case 19: - context = 0 !== (renderLanes & workInProgress.childLanes); - if (0 !== (current.flags & 128)) { - if (context) return updateSuspenseListComponent(current, workInProgress, renderLanes); - workInProgress.flags |= 128; - } - nextValue = workInProgress.memoizedState; - null !== nextValue && (nextValue.rendering = null, nextValue.tail = null, nextValue.lastEffect = null); - push(suspenseStackCursor, suspenseStackCursor.current); - if (context) break;else return null; - case 22: - case 23: - return workInProgress.lanes = 0, updateOffscreenComponent(current, workInProgress, renderLanes); - } - return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes); - } - function hadNoMutationsEffects(current, completedWork) { - if (null !== current && current.child === completedWork.child) return true; - if (0 !== (completedWork.flags & 16)) return false; - for (current = completedWork.child; null !== current;) { - if (0 !== (current.flags & 12854) || 0 !== (current.subtreeFlags & 12854)) return false; - current = current.sibling; - } - return true; - } - var _appendAllChildren, updateHostContainer, updateHostComponent$1, updateHostText$1; - _appendAllChildren = function appendAllChildren(parent, workInProgress, needsVisibilityToggle, isHidden) { - for (var node = workInProgress.child; null !== node;) { - if (5 === node.tag) { - var instance = node.stateNode; - needsVisibilityToggle && isHidden && (instance = cloneHiddenInstance(instance)); - appendChildNode(parent.node, instance.node); - } else if (6 === node.tag) { - instance = node.stateNode; - if (needsVisibilityToggle && isHidden) throw Error("Not yet implemented."); - appendChildNode(parent.node, instance.node); - } else if (4 !== node.tag) if (22 === node.tag && null !== node.memoizedState) instance = node.child, null !== instance && (instance.return = node), _appendAllChildren(parent, node, true, true);else if (null !== node.child) { - node.child.return = node; - node = node.child; - continue; - } - if (node === workInProgress) break; - for (; null === node.sibling;) { - if (null === node.return || node.return === workInProgress) return; - node = node.return; - } - node.sibling.return = node.return; - node = node.sibling; - } - }; - function appendAllChildrenToContainer(containerChildSet, workInProgress, needsVisibilityToggle, isHidden) { - for (var node = workInProgress.child; null !== node;) { - if (5 === node.tag) { - var instance = node.stateNode; - needsVisibilityToggle && isHidden && (instance = cloneHiddenInstance(instance)); - appendChildNodeToSet(containerChildSet, instance.node); - } else if (6 === node.tag) { - instance = node.stateNode; - if (needsVisibilityToggle && isHidden) throw Error("Not yet implemented."); - appendChildNodeToSet(containerChildSet, instance.node); - } else if (4 !== node.tag) if (22 === node.tag && null !== node.memoizedState) instance = node.child, null !== instance && (instance.return = node), appendAllChildrenToContainer(containerChildSet, node, true, true);else if (null !== node.child) { - node.child.return = node; - node = node.child; - continue; - } - if (node === workInProgress) break; - for (; null === node.sibling;) { - if (null === node.return || node.return === workInProgress) return; - node = node.return; - } - node.sibling.return = node.return; - node = node.sibling; - } - } - updateHostContainer = function updateHostContainer(current, workInProgress) { - var portalOrRoot = workInProgress.stateNode; - if (!hadNoMutationsEffects(current, workInProgress)) { - current = portalOrRoot.containerInfo; - var newChildSet = createChildNodeSet(current); - appendAllChildrenToContainer(newChildSet, workInProgress, false, false); - portalOrRoot.pendingChildren = newChildSet; - workInProgress.flags |= 4; - completeRoot(current, newChildSet); - } - }; - updateHostComponent$1 = function updateHostComponent$1(current, workInProgress, type, newProps) { - type = current.stateNode; - var oldProps = current.memoizedProps; - if ((current = hadNoMutationsEffects(current, workInProgress)) && oldProps === newProps) workInProgress.stateNode = type;else { - var recyclableInstance = workInProgress.stateNode; - requiredContext(contextStackCursor$1.current); - var updatePayload = null; - oldProps !== newProps && (oldProps = diffProperties(null, oldProps, newProps, recyclableInstance.canonical.viewConfig.validAttributes), recyclableInstance.canonical.currentProps = newProps, updatePayload = oldProps); - current && null === updatePayload ? workInProgress.stateNode = type : (newProps = updatePayload, oldProps = type.node, type = { - node: current ? null !== newProps ? cloneNodeWithNewProps(oldProps, newProps) : cloneNode(oldProps) : null !== newProps ? cloneNodeWithNewChildrenAndProps(oldProps, newProps) : cloneNodeWithNewChildren(oldProps), - canonical: type.canonical - }, workInProgress.stateNode = type, current ? workInProgress.flags |= 4 : _appendAllChildren(type, workInProgress, false, false)); - } - }; - updateHostText$1 = function updateHostText$1(current, workInProgress, oldText, newText) { - oldText !== newText ? (current = requiredContext(rootInstanceStackCursor.current), oldText = requiredContext(contextStackCursor$1.current), workInProgress.stateNode = createTextInstance(newText, current, oldText, workInProgress), workInProgress.flags |= 4) : workInProgress.stateNode = current.stateNode; - }; - function cutOffTailIfNeeded(renderState, hasRenderedATailFallback) { - switch (renderState.tailMode) { - case "hidden": - hasRenderedATailFallback = renderState.tail; - for (var lastTailNode = null; null !== hasRenderedATailFallback;) null !== hasRenderedATailFallback.alternate && (lastTailNode = hasRenderedATailFallback), hasRenderedATailFallback = hasRenderedATailFallback.sibling; - null === lastTailNode ? renderState.tail = null : lastTailNode.sibling = null; - break; - case "collapsed": - lastTailNode = renderState.tail; - for (var lastTailNode$62 = null; null !== lastTailNode;) null !== lastTailNode.alternate && (lastTailNode$62 = lastTailNode), lastTailNode = lastTailNode.sibling; - null === lastTailNode$62 ? hasRenderedATailFallback || null === renderState.tail ? renderState.tail = null : renderState.tail.sibling = null : lastTailNode$62.sibling = null; - } - } - function bubbleProperties(completedWork) { - var didBailout = null !== completedWork.alternate && completedWork.alternate.child === completedWork.child, - newChildLanes = 0, - subtreeFlags = 0; - if (didBailout) for (var child$63 = completedWork.child; null !== child$63;) newChildLanes |= child$63.lanes | child$63.childLanes, subtreeFlags |= child$63.subtreeFlags & 14680064, subtreeFlags |= child$63.flags & 14680064, child$63.return = completedWork, child$63 = child$63.sibling;else for (child$63 = completedWork.child; null !== child$63;) newChildLanes |= child$63.lanes | child$63.childLanes, subtreeFlags |= child$63.subtreeFlags, subtreeFlags |= child$63.flags, child$63.return = completedWork, child$63 = child$63.sibling; - completedWork.subtreeFlags |= subtreeFlags; - completedWork.childLanes = newChildLanes; - return didBailout; - } - function completeWork(current, workInProgress, renderLanes) { - var newProps = workInProgress.pendingProps; - popTreeContext(workInProgress); - switch (workInProgress.tag) { - case 2: - case 16: - case 15: - case 0: - case 11: - case 7: - case 8: - case 12: - case 9: - case 14: - return bubbleProperties(workInProgress), null; - case 1: - return isContextProvider(workInProgress.type) && popContext(), bubbleProperties(workInProgress), null; - case 3: - return renderLanes = workInProgress.stateNode, popHostContainer(), pop(didPerformWorkStackCursor), pop(contextStackCursor), resetWorkInProgressVersions(), renderLanes.pendingContext && (renderLanes.context = renderLanes.pendingContext, renderLanes.pendingContext = null), null !== current && null !== current.child || null === current || current.memoizedState.isDehydrated && 0 === (workInProgress.flags & 256) || (workInProgress.flags |= 1024, null !== hydrationErrors && (queueRecoverableErrors(hydrationErrors), hydrationErrors = null)), updateHostContainer(current, workInProgress), bubbleProperties(workInProgress), null; - case 5: - popHostContext(workInProgress); - renderLanes = requiredContext(rootInstanceStackCursor.current); - var type = workInProgress.type; - if (null !== current && null != workInProgress.stateNode) updateHostComponent$1(current, workInProgress, type, newProps, renderLanes), current.ref !== workInProgress.ref && (workInProgress.flags |= 512);else { - if (!newProps) { - if (null === workInProgress.stateNode) throw Error("We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue."); - bubbleProperties(workInProgress); - return null; - } - requiredContext(contextStackCursor$1.current); - current = nextReactTag; - nextReactTag += 2; - type = getViewConfigForType(type); - var updatePayload = diffProperties(null, emptyObject, newProps, type.validAttributes); - renderLanes = createNode(current, type.uiViewClassName, renderLanes, updatePayload, workInProgress); - current = new ReactFabricHostComponent(current, type, newProps, workInProgress); - current = { - node: renderLanes, - canonical: current - }; - _appendAllChildren(current, workInProgress, false, false); - workInProgress.stateNode = current; - null !== workInProgress.ref && (workInProgress.flags |= 512); - } - bubbleProperties(workInProgress); - return null; - case 6: - if (current && null != workInProgress.stateNode) updateHostText$1(current, workInProgress, current.memoizedProps, newProps);else { - if ("string" !== typeof newProps && null === workInProgress.stateNode) throw Error("We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue."); - current = requiredContext(rootInstanceStackCursor.current); - renderLanes = requiredContext(contextStackCursor$1.current); - workInProgress.stateNode = createTextInstance(newProps, current, renderLanes, workInProgress); - } - bubbleProperties(workInProgress); - return null; - case 13: - pop(suspenseStackCursor); - newProps = workInProgress.memoizedState; - if (null === current || null !== current.memoizedState && null !== current.memoizedState.dehydrated) { - if (null !== newProps && null !== newProps.dehydrated) { - if (null === current) { - throw Error("A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React."); - throw Error("Expected prepareToHydrateHostSuspenseInstance() to never be called. This error is likely caused by a bug in React. Please file an issue."); - } - 0 === (workInProgress.flags & 128) && (workInProgress.memoizedState = null); - workInProgress.flags |= 4; - bubbleProperties(workInProgress); - type = false; - } else null !== hydrationErrors && (queueRecoverableErrors(hydrationErrors), hydrationErrors = null), type = true; - if (!type) return workInProgress.flags & 65536 ? workInProgress : null; - } - if (0 !== (workInProgress.flags & 128)) return workInProgress.lanes = renderLanes, workInProgress; - renderLanes = null !== newProps; - renderLanes !== (null !== current && null !== current.memoizedState) && renderLanes && (workInProgress.child.flags |= 8192, 0 !== (workInProgress.mode & 1) && (null === current || 0 !== (suspenseStackCursor.current & 1) ? 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 3) : renderDidSuspendDelayIfPossible())); - null !== workInProgress.updateQueue && (workInProgress.flags |= 4); - bubbleProperties(workInProgress); - return null; - case 4: - return popHostContainer(), updateHostContainer(current, workInProgress), bubbleProperties(workInProgress), null; - case 10: - return popProvider(workInProgress.type._context), bubbleProperties(workInProgress), null; - case 17: - return isContextProvider(workInProgress.type) && popContext(), bubbleProperties(workInProgress), null; - case 19: - pop(suspenseStackCursor); - type = workInProgress.memoizedState; - if (null === type) return bubbleProperties(workInProgress), null; - newProps = 0 !== (workInProgress.flags & 128); - updatePayload = type.rendering; - if (null === updatePayload) { - if (newProps) cutOffTailIfNeeded(type, false);else { - if (0 !== workInProgressRootExitStatus || null !== current && 0 !== (current.flags & 128)) for (current = workInProgress.child; null !== current;) { - updatePayload = findFirstSuspended(current); - if (null !== updatePayload) { - workInProgress.flags |= 128; - cutOffTailIfNeeded(type, false); - current = updatePayload.updateQueue; - null !== current && (workInProgress.updateQueue = current, workInProgress.flags |= 4); - workInProgress.subtreeFlags = 0; - current = renderLanes; - for (renderLanes = workInProgress.child; null !== renderLanes;) newProps = renderLanes, type = current, newProps.flags &= 14680066, updatePayload = newProps.alternate, null === updatePayload ? (newProps.childLanes = 0, newProps.lanes = type, newProps.child = null, newProps.subtreeFlags = 0, newProps.memoizedProps = null, newProps.memoizedState = null, newProps.updateQueue = null, newProps.dependencies = null, newProps.stateNode = null) : (newProps.childLanes = updatePayload.childLanes, newProps.lanes = updatePayload.lanes, newProps.child = updatePayload.child, newProps.subtreeFlags = 0, newProps.deletions = null, newProps.memoizedProps = updatePayload.memoizedProps, newProps.memoizedState = updatePayload.memoizedState, newProps.updateQueue = updatePayload.updateQueue, newProps.type = updatePayload.type, type = updatePayload.dependencies, newProps.dependencies = null === type ? null : { - lanes: type.lanes, - firstContext: type.firstContext - }), renderLanes = renderLanes.sibling; - push(suspenseStackCursor, suspenseStackCursor.current & 1 | 2); - return workInProgress.child; - } - current = current.sibling; - } - null !== type.tail && _$$_REQUIRE(_dependencyMap[3]).unstable_now() > workInProgressRootRenderTargetTime && (workInProgress.flags |= 128, newProps = true, cutOffTailIfNeeded(type, false), workInProgress.lanes = 4194304); - } - } else { - if (!newProps) if (current = findFirstSuspended(updatePayload), null !== current) { - if (workInProgress.flags |= 128, newProps = true, current = current.updateQueue, null !== current && (workInProgress.updateQueue = current, workInProgress.flags |= 4), cutOffTailIfNeeded(type, true), null === type.tail && "hidden" === type.tailMode && !updatePayload.alternate) return bubbleProperties(workInProgress), null; - } else 2 * _$$_REQUIRE(_dependencyMap[3]).unstable_now() - type.renderingStartTime > workInProgressRootRenderTargetTime && 1073741824 !== renderLanes && (workInProgress.flags |= 128, newProps = true, cutOffTailIfNeeded(type, false), workInProgress.lanes = 4194304); - type.isBackwards ? (updatePayload.sibling = workInProgress.child, workInProgress.child = updatePayload) : (current = type.last, null !== current ? current.sibling = updatePayload : workInProgress.child = updatePayload, type.last = updatePayload); - } - if (null !== type.tail) return workInProgress = type.tail, type.rendering = workInProgress, type.tail = workInProgress.sibling, type.renderingStartTime = _$$_REQUIRE(_dependencyMap[3]).unstable_now(), workInProgress.sibling = null, current = suspenseStackCursor.current, push(suspenseStackCursor, newProps ? current & 1 | 2 : current & 1), workInProgress; - bubbleProperties(workInProgress); - return null; - case 22: - case 23: - return popRenderLanes(), renderLanes = null !== workInProgress.memoizedState, null !== current && null !== current.memoizedState !== renderLanes && (workInProgress.flags |= 8192), renderLanes && 0 !== (workInProgress.mode & 1) ? 0 !== (subtreeRenderLanes & 1073741824) && bubbleProperties(workInProgress) : bubbleProperties(workInProgress), null; - case 24: - return null; - case 25: - return null; - } - throw Error("Unknown unit of work tag (" + workInProgress.tag + "). This error is likely caused by a bug in React. Please file an issue."); - } - function unwindWork(current, workInProgress) { - popTreeContext(workInProgress); - switch (workInProgress.tag) { - case 1: - return isContextProvider(workInProgress.type) && popContext(), current = workInProgress.flags, current & 65536 ? (workInProgress.flags = current & -65537 | 128, workInProgress) : null; - case 3: - return popHostContainer(), pop(didPerformWorkStackCursor), pop(contextStackCursor), resetWorkInProgressVersions(), current = workInProgress.flags, 0 !== (current & 65536) && 0 === (current & 128) ? (workInProgress.flags = current & -65537 | 128, workInProgress) : null; - case 5: - return popHostContext(workInProgress), null; - case 13: - pop(suspenseStackCursor); - current = workInProgress.memoizedState; - if (null !== current && null !== current.dehydrated && null === workInProgress.alternate) throw Error("Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue."); - current = workInProgress.flags; - return current & 65536 ? (workInProgress.flags = current & -65537 | 128, workInProgress) : null; - case 19: - return pop(suspenseStackCursor), null; - case 4: - return popHostContainer(), null; - case 10: - return popProvider(workInProgress.type._context), null; - case 22: - case 23: - return popRenderLanes(), null; - case 24: - return null; - default: - return null; - } - } - var PossiblyWeakSet = "function" === typeof WeakSet ? WeakSet : Set, - nextEffect = null; - function safelyDetachRef(current, nearestMountedAncestor) { - var ref = current.ref; - if (null !== ref) if ("function" === typeof ref) try { - ref(null); - } catch (error) { - captureCommitPhaseError(current, nearestMountedAncestor, error); - } else ref.current = null; - } - function safelyCallDestroy(current, nearestMountedAncestor, destroy) { - try { - destroy(); - } catch (error) { - captureCommitPhaseError(current, nearestMountedAncestor, error); - } - } - var shouldFireAfterActiveInstanceBlur = false; - function commitBeforeMutationEffects(root, firstChild) { - for (nextEffect = firstChild; null !== nextEffect;) if (root = nextEffect, firstChild = root.child, 0 !== (root.subtreeFlags & 1028) && null !== firstChild) firstChild.return = root, nextEffect = firstChild;else for (; null !== nextEffect;) { - root = nextEffect; - try { - var current = root.alternate; - if (0 !== (root.flags & 1024)) switch (root.tag) { - case 0: - case 11: - case 15: - break; - case 1: - if (null !== current) { - var prevProps = current.memoizedProps, - prevState = current.memoizedState, - instance = root.stateNode, - snapshot = instance.getSnapshotBeforeUpdate(root.elementType === root.type ? prevProps : resolveDefaultProps(root.type, prevProps), prevState); - instance.__reactInternalSnapshotBeforeUpdate = snapshot; - } - break; - case 3: - break; - case 5: - case 6: - case 4: - case 17: - break; - default: - throw Error("This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue."); - } - } catch (error) { - captureCommitPhaseError(root, root.return, error); - } - firstChild = root.sibling; - if (null !== firstChild) { - firstChild.return = root.return; - nextEffect = firstChild; - break; - } - nextEffect = root.return; - } - current = shouldFireAfterActiveInstanceBlur; - shouldFireAfterActiveInstanceBlur = false; - return current; - } - function commitHookEffectListUnmount(flags, finishedWork, nearestMountedAncestor) { - var updateQueue = finishedWork.updateQueue; - updateQueue = null !== updateQueue ? updateQueue.lastEffect : null; - if (null !== updateQueue) { - var effect = updateQueue = updateQueue.next; - do { - if ((effect.tag & flags) === flags) { - var destroy = effect.destroy; - effect.destroy = undefined; - undefined !== destroy && safelyCallDestroy(finishedWork, nearestMountedAncestor, destroy); - } - effect = effect.next; - } while (effect !== updateQueue); - } - } - function commitHookEffectListMount(flags, finishedWork) { - finishedWork = finishedWork.updateQueue; - finishedWork = null !== finishedWork ? finishedWork.lastEffect : null; - if (null !== finishedWork) { - var effect = finishedWork = finishedWork.next; - do { - if ((effect.tag & flags) === flags) { - var create$75 = effect.create; - effect.destroy = create$75(); - } - effect = effect.next; - } while (effect !== finishedWork); - } - } - function detachFiberAfterEffects(fiber) { - var alternate = fiber.alternate; - null !== alternate && (fiber.alternate = null, detachFiberAfterEffects(alternate)); - fiber.child = null; - fiber.deletions = null; - fiber.sibling = null; - fiber.stateNode = null; - fiber.return = null; - fiber.dependencies = null; - fiber.memoizedProps = null; - fiber.memoizedState = null; - fiber.pendingProps = null; - fiber.stateNode = null; - fiber.updateQueue = null; - } - function recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, parent) { - for (parent = parent.child; null !== parent;) commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent), parent = parent.sibling; - } - function commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, deletedFiber) { - if (injectedHook && "function" === typeof injectedHook.onCommitFiberUnmount) try { - injectedHook.onCommitFiberUnmount(rendererID, deletedFiber); - } catch (err) {} - switch (deletedFiber.tag) { - case 5: - safelyDetachRef(deletedFiber, nearestMountedAncestor); - case 6: - recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber); - break; - case 18: - break; - case 4: - createChildNodeSet(deletedFiber.stateNode.containerInfo); - recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber); - break; - case 0: - case 11: - case 14: - case 15: - var updateQueue = deletedFiber.updateQueue; - if (null !== updateQueue && (updateQueue = updateQueue.lastEffect, null !== updateQueue)) { - var effect = updateQueue = updateQueue.next; - do { - var _effect = effect, - destroy = _effect.destroy; - _effect = _effect.tag; - undefined !== destroy && (0 !== (_effect & 2) ? safelyCallDestroy(deletedFiber, nearestMountedAncestor, destroy) : 0 !== (_effect & 4) && safelyCallDestroy(deletedFiber, nearestMountedAncestor, destroy)); - effect = effect.next; - } while (effect !== updateQueue); - } - recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber); - break; - case 1: - safelyDetachRef(deletedFiber, nearestMountedAncestor); - updateQueue = deletedFiber.stateNode; - if ("function" === typeof updateQueue.componentWillUnmount) try { - updateQueue.props = deletedFiber.memoizedProps, updateQueue.state = deletedFiber.memoizedState, updateQueue.componentWillUnmount(); - } catch (error) { - captureCommitPhaseError(deletedFiber, nearestMountedAncestor, error); - } - recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber); - break; - case 21: - recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber); - break; - case 22: - recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber); - break; - default: - recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber); - } - } - function attachSuspenseRetryListeners(finishedWork) { - var wakeables = finishedWork.updateQueue; - if (null !== wakeables) { - finishedWork.updateQueue = null; - var retryCache = finishedWork.stateNode; - null === retryCache && (retryCache = finishedWork.stateNode = new PossiblyWeakSet()); - wakeables.forEach(function (wakeable) { - var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable); - retryCache.has(wakeable) || (retryCache.add(wakeable), wakeable.then(retry, retry)); - }); - } - } - function recursivelyTraverseMutationEffects(root, parentFiber) { - var deletions = parentFiber.deletions; - if (null !== deletions) for (var i = 0; i < deletions.length; i++) { - var childToDelete = deletions[i]; - try { - commitDeletionEffectsOnFiber(root, parentFiber, childToDelete); - var alternate = childToDelete.alternate; - null !== alternate && (alternate.return = null); - childToDelete.return = null; - } catch (error) { - captureCommitPhaseError(childToDelete, parentFiber, error); - } - } - if (parentFiber.subtreeFlags & 12854) for (parentFiber = parentFiber.child; null !== parentFiber;) commitMutationEffectsOnFiber(parentFiber, root), parentFiber = parentFiber.sibling; - } - function commitMutationEffectsOnFiber(finishedWork, root) { - var current = finishedWork.alternate, - flags = finishedWork.flags; - switch (finishedWork.tag) { - case 0: - case 11: - case 14: - case 15: - recursivelyTraverseMutationEffects(root, finishedWork); - commitReconciliationEffects(finishedWork); - if (flags & 4) { - try { - commitHookEffectListUnmount(3, finishedWork, finishedWork.return), commitHookEffectListMount(3, finishedWork); - } catch (error) { - captureCommitPhaseError(finishedWork, finishedWork.return, error); - } - try { - commitHookEffectListUnmount(5, finishedWork, finishedWork.return); - } catch (error$79) { - captureCommitPhaseError(finishedWork, finishedWork.return, error$79); - } - } - break; - case 1: - recursivelyTraverseMutationEffects(root, finishedWork); - commitReconciliationEffects(finishedWork); - flags & 512 && null !== current && safelyDetachRef(current, current.return); - break; - case 5: - recursivelyTraverseMutationEffects(root, finishedWork); - commitReconciliationEffects(finishedWork); - flags & 512 && null !== current && safelyDetachRef(current, current.return); - break; - case 6: - recursivelyTraverseMutationEffects(root, finishedWork); - commitReconciliationEffects(finishedWork); - break; - case 3: - recursivelyTraverseMutationEffects(root, finishedWork); - commitReconciliationEffects(finishedWork); - break; - case 4: - recursivelyTraverseMutationEffects(root, finishedWork); - commitReconciliationEffects(finishedWork); - break; - case 13: - recursivelyTraverseMutationEffects(root, finishedWork); - commitReconciliationEffects(finishedWork); - root = finishedWork.child; - root.flags & 8192 && (current = null !== root.memoizedState, root.stateNode.isHidden = current, !current || null !== root.alternate && null !== root.alternate.memoizedState || (globalMostRecentFallbackTime = _$$_REQUIRE(_dependencyMap[3]).unstable_now())); - flags & 4 && attachSuspenseRetryListeners(finishedWork); - break; - case 22: - recursivelyTraverseMutationEffects(root, finishedWork); - commitReconciliationEffects(finishedWork); - flags & 8192 && (finishedWork.stateNode.isHidden = null !== finishedWork.memoizedState); - break; - case 19: - recursivelyTraverseMutationEffects(root, finishedWork); - commitReconciliationEffects(finishedWork); - flags & 4 && attachSuspenseRetryListeners(finishedWork); - break; - case 21: - break; - default: - recursivelyTraverseMutationEffects(root, finishedWork), commitReconciliationEffects(finishedWork); - } - } - function commitReconciliationEffects(finishedWork) { - var flags = finishedWork.flags; - flags & 2 && (finishedWork.flags &= -3); - flags & 4096 && (finishedWork.flags &= -4097); - } - function commitLayoutEffects(finishedWork) { - for (nextEffect = finishedWork; null !== nextEffect;) { - var fiber = nextEffect, - firstChild = fiber.child; - if (0 !== (fiber.subtreeFlags & 8772) && null !== firstChild) firstChild.return = fiber, nextEffect = firstChild;else for (fiber = finishedWork; null !== nextEffect;) { - firstChild = nextEffect; - if (0 !== (firstChild.flags & 8772)) { - var current = firstChild.alternate; - try { - if (0 !== (firstChild.flags & 8772)) switch (firstChild.tag) { - case 0: - case 11: - case 15: - commitHookEffectListMount(5, firstChild); - break; - case 1: - var instance = firstChild.stateNode; - if (firstChild.flags & 4) if (null === current) instance.componentDidMount();else { - var prevProps = firstChild.elementType === firstChild.type ? current.memoizedProps : resolveDefaultProps(firstChild.type, current.memoizedProps); - instance.componentDidUpdate(prevProps, current.memoizedState, instance.__reactInternalSnapshotBeforeUpdate); - } - var updateQueue = firstChild.updateQueue; - null !== updateQueue && commitUpdateQueue(firstChild, updateQueue, instance); - break; - case 3: - var updateQueue$76 = firstChild.updateQueue; - if (null !== updateQueue$76) { - current = null; - if (null !== firstChild.child) switch (firstChild.child.tag) { - case 5: - current = firstChild.child.stateNode.canonical; - break; - case 1: - current = firstChild.child.stateNode; - } - commitUpdateQueue(firstChild, updateQueue$76, current); - } - break; - case 5: - if (null === current && firstChild.flags & 4) throw Error("The current renderer does not support mutation. This error is likely caused by a bug in React. Please file an issue."); - break; - case 6: - break; - case 4: - break; - case 12: - break; - case 13: - break; - case 19: - case 17: - case 21: - case 22: - case 23: - case 25: - break; - default: - throw Error("This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue."); - } - if (firstChild.flags & 512) { - current = undefined; - var ref = firstChild.ref; - if (null !== ref) { - var instance$jscomp$0 = firstChild.stateNode; - switch (firstChild.tag) { - case 5: - current = instance$jscomp$0.canonical; - break; - default: - current = instance$jscomp$0; - } - "function" === typeof ref ? ref(current) : ref.current = current; - } - } - } catch (error) { - captureCommitPhaseError(firstChild, firstChild.return, error); - } - } - if (firstChild === fiber) { - nextEffect = null; - break; - } - current = firstChild.sibling; - if (null !== current) { - current.return = firstChild.return; - nextEffect = current; - break; - } - nextEffect = firstChild.return; - } - } - } - var ceil = Math.ceil, - ReactCurrentDispatcher$2 = ReactSharedInternals.ReactCurrentDispatcher, - ReactCurrentOwner$2 = ReactSharedInternals.ReactCurrentOwner, - ReactCurrentBatchConfig$2 = ReactSharedInternals.ReactCurrentBatchConfig, - executionContext = 0, - workInProgressRoot = null, - workInProgress = null, - workInProgressRootRenderLanes = 0, - subtreeRenderLanes = 0, - subtreeRenderLanesCursor = createCursor(0), - workInProgressRootExitStatus = 0, - workInProgressRootFatalError = null, - workInProgressRootSkippedLanes = 0, - workInProgressRootInterleavedUpdatedLanes = 0, - workInProgressRootPingedLanes = 0, - workInProgressRootConcurrentErrors = null, - workInProgressRootRecoverableErrors = null, - globalMostRecentFallbackTime = 0, - workInProgressRootRenderTargetTime = Infinity, - workInProgressTransitions = null, - hasUncaughtError = false, - firstUncaughtError = null, - legacyErrorBoundariesThatAlreadyFailed = null, - rootDoesHavePassiveEffects = false, - rootWithPendingPassiveEffects = null, - pendingPassiveEffectsLanes = 0, - nestedUpdateCount = 0, - rootWithNestedUpdates = null, - currentEventTime = -1, - currentEventTransitionLane = 0; - function requestEventTime() { - return 0 !== (executionContext & 6) ? _$$_REQUIRE(_dependencyMap[3]).unstable_now() : -1 !== currentEventTime ? currentEventTime : currentEventTime = _$$_REQUIRE(_dependencyMap[3]).unstable_now(); - } - function requestUpdateLane(fiber) { - if (0 === (fiber.mode & 1)) return 1; - if (0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes) return workInProgressRootRenderLanes & -workInProgressRootRenderLanes; - if (null !== ReactCurrentBatchConfig.transition) return 0 === currentEventTransitionLane && (currentEventTransitionLane = claimNextTransitionLane()), currentEventTransitionLane; - fiber = currentUpdatePriority; - if (0 === fiber) a: { - fiber = fabricGetCurrentEventPriority ? fabricGetCurrentEventPriority() : null; - if (null != fiber) switch (fiber) { - case FabricDiscretePriority: - fiber = 1; - break a; - } - fiber = 16; - } - return fiber; - } - function scheduleUpdateOnFiber(root, fiber, lane, eventTime) { - if (50 < nestedUpdateCount) throw nestedUpdateCount = 0, rootWithNestedUpdates = null, Error("Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops."); - markRootUpdated(root, lane, eventTime); - if (0 === (executionContext & 2) || root !== workInProgressRoot) root === workInProgressRoot && (0 === (executionContext & 2) && (workInProgressRootInterleavedUpdatedLanes |= lane), 4 === workInProgressRootExitStatus && markRootSuspended$1(root, workInProgressRootRenderLanes)), ensureRootIsScheduled(root, eventTime), 1 === lane && 0 === executionContext && 0 === (fiber.mode & 1) && (workInProgressRootRenderTargetTime = _$$_REQUIRE(_dependencyMap[3]).unstable_now() + 500, includesLegacySyncCallbacks && flushSyncCallbacks()); - } - function ensureRootIsScheduled(root, currentTime) { - for (var existingCallbackNode = root.callbackNode, suspendedLanes = root.suspendedLanes, pingedLanes = root.pingedLanes, expirationTimes = root.expirationTimes, lanes = root.pendingLanes; 0 < lanes;) { - var index$5 = 31 - clz32(lanes), - lane = 1 << index$5, - expirationTime = expirationTimes[index$5]; - if (-1 === expirationTime) { - if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes)) expirationTimes[index$5] = computeExpirationTime(lane, currentTime); - } else expirationTime <= currentTime && (root.expiredLanes |= lane); - lanes &= ~lane; - } - suspendedLanes = getNextLanes(root, root === workInProgressRoot ? workInProgressRootRenderLanes : 0); - if (0 === suspendedLanes) null !== existingCallbackNode && _$$_REQUIRE(_dependencyMap[3]).unstable_cancelCallback(existingCallbackNode), root.callbackNode = null, root.callbackPriority = 0;else if (currentTime = suspendedLanes & -suspendedLanes, root.callbackPriority !== currentTime) { - null != existingCallbackNode && _$$_REQUIRE(_dependencyMap[3]).unstable_cancelCallback(existingCallbackNode); - if (1 === currentTime) 0 === root.tag ? (existingCallbackNode = performSyncWorkOnRoot.bind(null, root), includesLegacySyncCallbacks = true, null === syncQueue ? syncQueue = [existingCallbackNode] : syncQueue.push(existingCallbackNode)) : (existingCallbackNode = performSyncWorkOnRoot.bind(null, root), null === syncQueue ? syncQueue = [existingCallbackNode] : syncQueue.push(existingCallbackNode)), _$$_REQUIRE(_dependencyMap[3]).unstable_scheduleCallback(_$$_REQUIRE(_dependencyMap[3]).unstable_ImmediatePriority, flushSyncCallbacks), existingCallbackNode = null;else { - switch (lanesToEventPriority(suspendedLanes)) { - case 1: - existingCallbackNode = _$$_REQUIRE(_dependencyMap[3]).unstable_ImmediatePriority; - break; - case 4: - existingCallbackNode = _$$_REQUIRE(_dependencyMap[3]).unstable_UserBlockingPriority; - break; - case 16: - existingCallbackNode = _$$_REQUIRE(_dependencyMap[3]).unstable_NormalPriority; - break; - case 536870912: - existingCallbackNode = _$$_REQUIRE(_dependencyMap[3]).unstable_IdlePriority; - break; - default: - existingCallbackNode = _$$_REQUIRE(_dependencyMap[3]).unstable_NormalPriority; - } - existingCallbackNode = scheduleCallback$1(existingCallbackNode, performConcurrentWorkOnRoot.bind(null, root)); - } - root.callbackPriority = currentTime; - root.callbackNode = existingCallbackNode; - } - } - function performConcurrentWorkOnRoot(root, didTimeout) { - currentEventTime = -1; - currentEventTransitionLane = 0; - if (0 !== (executionContext & 6)) throw Error("Should not already be working."); - var originalCallbackNode = root.callbackNode; - if (flushPassiveEffects() && root.callbackNode !== originalCallbackNode) return null; - var lanes = getNextLanes(root, root === workInProgressRoot ? workInProgressRootRenderLanes : 0); - if (0 === lanes) return null; - if (0 !== (lanes & 30) || 0 !== (lanes & root.expiredLanes) || didTimeout) didTimeout = renderRootSync(root, lanes);else { - didTimeout = lanes; - var prevExecutionContext = executionContext; - executionContext |= 2; - var prevDispatcher = pushDispatcher(); - if (workInProgressRoot !== root || workInProgressRootRenderLanes !== didTimeout) workInProgressTransitions = null, workInProgressRootRenderTargetTime = _$$_REQUIRE(_dependencyMap[3]).unstable_now() + 500, prepareFreshStack(root, didTimeout); - do try { - workLoopConcurrent(); - break; - } catch (thrownValue) { - handleError(root, thrownValue); - } while (1); - resetContextDependencies(); - ReactCurrentDispatcher$2.current = prevDispatcher; - executionContext = prevExecutionContext; - null !== workInProgress ? didTimeout = 0 : (workInProgressRoot = null, workInProgressRootRenderLanes = 0, didTimeout = workInProgressRootExitStatus); - } - if (0 !== didTimeout) { - 2 === didTimeout && (prevExecutionContext = getLanesToRetrySynchronouslyOnError(root), 0 !== prevExecutionContext && (lanes = prevExecutionContext, didTimeout = recoverFromConcurrentError(root, prevExecutionContext))); - if (1 === didTimeout) throw originalCallbackNode = workInProgressRootFatalError, prepareFreshStack(root, 0), markRootSuspended$1(root, lanes), ensureRootIsScheduled(root, _$$_REQUIRE(_dependencyMap[3]).unstable_now()), originalCallbackNode; - if (6 === didTimeout) markRootSuspended$1(root, lanes);else { - prevExecutionContext = root.current.alternate; - if (0 === (lanes & 30) && !isRenderConsistentWithExternalStores(prevExecutionContext) && (didTimeout = renderRootSync(root, lanes), 2 === didTimeout && (prevDispatcher = getLanesToRetrySynchronouslyOnError(root), 0 !== prevDispatcher && (lanes = prevDispatcher, didTimeout = recoverFromConcurrentError(root, prevDispatcher))), 1 === didTimeout)) throw originalCallbackNode = workInProgressRootFatalError, prepareFreshStack(root, 0), markRootSuspended$1(root, lanes), ensureRootIsScheduled(root, _$$_REQUIRE(_dependencyMap[3]).unstable_now()), originalCallbackNode; - root.finishedWork = prevExecutionContext; - root.finishedLanes = lanes; - switch (didTimeout) { - case 0: - case 1: - throw Error("Root did not complete. This is a bug in React."); - case 2: - commitRoot(root, workInProgressRootRecoverableErrors, workInProgressTransitions); - break; - case 3: - markRootSuspended$1(root, lanes); - if ((lanes & 130023424) === lanes && (didTimeout = globalMostRecentFallbackTime + 500 - _$$_REQUIRE(_dependencyMap[3]).unstable_now(), 10 < didTimeout)) { - if (0 !== getNextLanes(root, 0)) break; - prevExecutionContext = root.suspendedLanes; - if ((prevExecutionContext & lanes) !== lanes) { - requestEventTime(); - root.pingedLanes |= root.suspendedLanes & prevExecutionContext; - break; - } - root.timeoutHandle = scheduleTimeout(commitRoot.bind(null, root, workInProgressRootRecoverableErrors, workInProgressTransitions), didTimeout); - break; - } - commitRoot(root, workInProgressRootRecoverableErrors, workInProgressTransitions); - break; - case 4: - markRootSuspended$1(root, lanes); - if ((lanes & 4194240) === lanes) break; - didTimeout = root.eventTimes; - for (prevExecutionContext = -1; 0 < lanes;) { - var index$4 = 31 - clz32(lanes); - prevDispatcher = 1 << index$4; - index$4 = didTimeout[index$4]; - index$4 > prevExecutionContext && (prevExecutionContext = index$4); - lanes &= ~prevDispatcher; - } - lanes = prevExecutionContext; - lanes = _$$_REQUIRE(_dependencyMap[3]).unstable_now() - lanes; - lanes = (120 > lanes ? 120 : 480 > lanes ? 480 : 1080 > lanes ? 1080 : 1920 > lanes ? 1920 : 3e3 > lanes ? 3e3 : 4320 > lanes ? 4320 : 1960 * ceil(lanes / 1960)) - lanes; - if (10 < lanes) { - root.timeoutHandle = scheduleTimeout(commitRoot.bind(null, root, workInProgressRootRecoverableErrors, workInProgressTransitions), lanes); - break; - } - commitRoot(root, workInProgressRootRecoverableErrors, workInProgressTransitions); - break; - case 5: - commitRoot(root, workInProgressRootRecoverableErrors, workInProgressTransitions); - break; - default: - throw Error("Unknown root exit status."); - } - } - } - ensureRootIsScheduled(root, _$$_REQUIRE(_dependencyMap[3]).unstable_now()); - return root.callbackNode === originalCallbackNode ? performConcurrentWorkOnRoot.bind(null, root) : null; - } - function recoverFromConcurrentError(root, errorRetryLanes) { - var errorsFromFirstAttempt = workInProgressRootConcurrentErrors; - root.current.memoizedState.isDehydrated && (prepareFreshStack(root, errorRetryLanes).flags |= 256); - root = renderRootSync(root, errorRetryLanes); - 2 !== root && (errorRetryLanes = workInProgressRootRecoverableErrors, workInProgressRootRecoverableErrors = errorsFromFirstAttempt, null !== errorRetryLanes && queueRecoverableErrors(errorRetryLanes)); - return root; - } - function queueRecoverableErrors(errors) { - null === workInProgressRootRecoverableErrors ? workInProgressRootRecoverableErrors = errors : workInProgressRootRecoverableErrors.push.apply(workInProgressRootRecoverableErrors, errors); - } - function isRenderConsistentWithExternalStores(finishedWork) { - for (var node = finishedWork;;) { - if (node.flags & 16384) { - var updateQueue = node.updateQueue; - if (null !== updateQueue && (updateQueue = updateQueue.stores, null !== updateQueue)) for (var i = 0; i < updateQueue.length; i++) { - var check = updateQueue[i], - getSnapshot = check.getSnapshot; - check = check.value; - try { - if (!objectIs(getSnapshot(), check)) return false; - } catch (error) { - return false; - } - } - } - updateQueue = node.child; - if (node.subtreeFlags & 16384 && null !== updateQueue) updateQueue.return = node, node = updateQueue;else { - if (node === finishedWork) break; - for (; null === node.sibling;) { - if (null === node.return || node.return === finishedWork) return true; - node = node.return; - } - node.sibling.return = node.return; - node = node.sibling; - } - } - return true; - } - function markRootSuspended$1(root, suspendedLanes) { - suspendedLanes &= ~workInProgressRootPingedLanes; - suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes; - root.suspendedLanes |= suspendedLanes; - root.pingedLanes &= ~suspendedLanes; - for (root = root.expirationTimes; 0 < suspendedLanes;) { - var index$6 = 31 - clz32(suspendedLanes), - lane = 1 << index$6; - root[index$6] = -1; - suspendedLanes &= ~lane; - } - } - function performSyncWorkOnRoot(root) { - if (0 !== (executionContext & 6)) throw Error("Should not already be working."); - flushPassiveEffects(); - var lanes = getNextLanes(root, 0); - if (0 === (lanes & 1)) return ensureRootIsScheduled(root, _$$_REQUIRE(_dependencyMap[3]).unstable_now()), null; - var exitStatus = renderRootSync(root, lanes); - if (0 !== root.tag && 2 === exitStatus) { - var errorRetryLanes = getLanesToRetrySynchronouslyOnError(root); - 0 !== errorRetryLanes && (lanes = errorRetryLanes, exitStatus = recoverFromConcurrentError(root, errorRetryLanes)); - } - if (1 === exitStatus) throw exitStatus = workInProgressRootFatalError, prepareFreshStack(root, 0), markRootSuspended$1(root, lanes), ensureRootIsScheduled(root, _$$_REQUIRE(_dependencyMap[3]).unstable_now()), exitStatus; - if (6 === exitStatus) throw Error("Root did not complete. This is a bug in React."); - root.finishedWork = root.current.alternate; - root.finishedLanes = lanes; - commitRoot(root, workInProgressRootRecoverableErrors, workInProgressTransitions); - ensureRootIsScheduled(root, _$$_REQUIRE(_dependencyMap[3]).unstable_now()); - return null; - } - function popRenderLanes() { - subtreeRenderLanes = subtreeRenderLanesCursor.current; - pop(subtreeRenderLanesCursor); - } - function prepareFreshStack(root, lanes) { - root.finishedWork = null; - root.finishedLanes = 0; - var timeoutHandle = root.timeoutHandle; - -1 !== timeoutHandle && (root.timeoutHandle = -1, cancelTimeout(timeoutHandle)); - if (null !== workInProgress) for (timeoutHandle = workInProgress.return; null !== timeoutHandle;) { - var interruptedWork = timeoutHandle; - popTreeContext(interruptedWork); - switch (interruptedWork.tag) { - case 1: - interruptedWork = interruptedWork.type.childContextTypes; - null !== interruptedWork && undefined !== interruptedWork && popContext(); - break; - case 3: - popHostContainer(); - pop(didPerformWorkStackCursor); - pop(contextStackCursor); - resetWorkInProgressVersions(); - break; - case 5: - popHostContext(interruptedWork); - break; - case 4: - popHostContainer(); - break; - case 13: - pop(suspenseStackCursor); - break; - case 19: - pop(suspenseStackCursor); - break; - case 10: - popProvider(interruptedWork.type._context); - break; - case 22: - case 23: - popRenderLanes(); - } - timeoutHandle = timeoutHandle.return; - } - workInProgressRoot = root; - workInProgress = root = createWorkInProgress(root.current, null); - workInProgressRootRenderLanes = subtreeRenderLanes = lanes; - workInProgressRootExitStatus = 0; - workInProgressRootFatalError = null; - workInProgressRootPingedLanes = workInProgressRootInterleavedUpdatedLanes = workInProgressRootSkippedLanes = 0; - workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors = null; - if (null !== concurrentQueues) { - for (lanes = 0; lanes < concurrentQueues.length; lanes++) if (timeoutHandle = concurrentQueues[lanes], interruptedWork = timeoutHandle.interleaved, null !== interruptedWork) { - timeoutHandle.interleaved = null; - var firstInterleavedUpdate = interruptedWork.next, - lastPendingUpdate = timeoutHandle.pending; - if (null !== lastPendingUpdate) { - var firstPendingUpdate = lastPendingUpdate.next; - lastPendingUpdate.next = firstInterleavedUpdate; - interruptedWork.next = firstPendingUpdate; - } - timeoutHandle.pending = interruptedWork; - } - concurrentQueues = null; - } - return root; - } - function handleError(root$jscomp$0, thrownValue) { - do { - var erroredWork = workInProgress; - try { - resetContextDependencies(); - ReactCurrentDispatcher$1.current = ContextOnlyDispatcher; - if (didScheduleRenderPhaseUpdate) { - for (var hook = currentlyRenderingFiber$1.memoizedState; null !== hook;) { - var queue = hook.queue; - null !== queue && (queue.pending = null); - hook = hook.next; - } - didScheduleRenderPhaseUpdate = false; - } - renderLanes = 0; - workInProgressHook = currentHook = currentlyRenderingFiber$1 = null; - didScheduleRenderPhaseUpdateDuringThisPass = false; - ReactCurrentOwner$2.current = null; - if (null === erroredWork || null === erroredWork.return) { - workInProgressRootExitStatus = 1; - workInProgressRootFatalError = thrownValue; - workInProgress = null; - break; - } - a: { - var root = root$jscomp$0, - returnFiber = erroredWork.return, - sourceFiber = erroredWork, - value = thrownValue; - thrownValue = workInProgressRootRenderLanes; - sourceFiber.flags |= 32768; - if (null !== value && "object" === typeof value && "function" === typeof value.then) { - var wakeable = value, - sourceFiber$jscomp$0 = sourceFiber, - tag = sourceFiber$jscomp$0.tag; - if (0 === (sourceFiber$jscomp$0.mode & 1) && (0 === tag || 11 === tag || 15 === tag)) { - var currentSource = sourceFiber$jscomp$0.alternate; - currentSource ? (sourceFiber$jscomp$0.updateQueue = currentSource.updateQueue, sourceFiber$jscomp$0.memoizedState = currentSource.memoizedState, sourceFiber$jscomp$0.lanes = currentSource.lanes) : (sourceFiber$jscomp$0.updateQueue = null, sourceFiber$jscomp$0.memoizedState = null); - } - b: { - sourceFiber$jscomp$0 = returnFiber; - do { - var JSCompiler_temp; - if (JSCompiler_temp = 13 === sourceFiber$jscomp$0.tag) { - var nextState = sourceFiber$jscomp$0.memoizedState; - JSCompiler_temp = null !== nextState ? null !== nextState.dehydrated ? true : false : true; - } - if (JSCompiler_temp) { - var suspenseBoundary = sourceFiber$jscomp$0; - break b; - } - sourceFiber$jscomp$0 = sourceFiber$jscomp$0.return; - } while (null !== sourceFiber$jscomp$0); - suspenseBoundary = null; - } - if (null !== suspenseBoundary) { - suspenseBoundary.flags &= -257; - value = suspenseBoundary; - sourceFiber$jscomp$0 = thrownValue; - if (0 === (value.mode & 1)) { - if (value === returnFiber) value.flags |= 65536;else { - value.flags |= 128; - sourceFiber.flags |= 131072; - sourceFiber.flags &= -52805; - if (1 === sourceFiber.tag) if (null === sourceFiber.alternate) sourceFiber.tag = 17;else { - var update = createUpdate(-1, 1); - update.tag = 2; - enqueueUpdate(sourceFiber, update, 1); - } - sourceFiber.lanes |= 1; - } - } else value.flags |= 65536, value.lanes = sourceFiber$jscomp$0; - suspenseBoundary.mode & 1 && attachPingListener(root, wakeable, thrownValue); - thrownValue = suspenseBoundary; - root = wakeable; - var wakeables = thrownValue.updateQueue; - if (null === wakeables) { - var updateQueue = new Set(); - updateQueue.add(root); - thrownValue.updateQueue = updateQueue; - } else wakeables.add(root); - break a; - } else { - if (0 === (thrownValue & 1)) { - attachPingListener(root, wakeable, thrownValue); - renderDidSuspendDelayIfPossible(); - break a; - } - value = Error("A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition."); - } - } - root = value = createCapturedValueAtFiber(value, sourceFiber); - 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2); - null === workInProgressRootConcurrentErrors ? workInProgressRootConcurrentErrors = [root] : workInProgressRootConcurrentErrors.push(root); - root = returnFiber; - do { - switch (root.tag) { - case 3: - wakeable = value; - root.flags |= 65536; - thrownValue &= -thrownValue; - root.lanes |= thrownValue; - var update$jscomp$0 = createRootErrorUpdate(root, wakeable, thrownValue); - enqueueCapturedUpdate(root, update$jscomp$0); - break a; - case 1: - wakeable = value; - var ctor = root.type, - instance = root.stateNode; - if (0 === (root.flags & 128) && ("function" === typeof ctor.getDerivedStateFromError || null !== instance && "function" === typeof instance.componentDidCatch && (null === legacyErrorBoundariesThatAlreadyFailed || !legacyErrorBoundariesThatAlreadyFailed.has(instance)))) { - root.flags |= 65536; - thrownValue &= -thrownValue; - root.lanes |= thrownValue; - var update$32 = createClassErrorUpdate(root, wakeable, thrownValue); - enqueueCapturedUpdate(root, update$32); - break a; - } - } - root = root.return; - } while (null !== root); - } - completeUnitOfWork(erroredWork); - } catch (yetAnotherThrownValue) { - thrownValue = yetAnotherThrownValue; - workInProgress === erroredWork && null !== erroredWork && (workInProgress = erroredWork = erroredWork.return); - continue; - } - break; - } while (1); - } - function pushDispatcher() { - var prevDispatcher = ReactCurrentDispatcher$2.current; - ReactCurrentDispatcher$2.current = ContextOnlyDispatcher; - return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher; - } - function renderDidSuspendDelayIfPossible() { - if (0 === workInProgressRootExitStatus || 3 === workInProgressRootExitStatus || 2 === workInProgressRootExitStatus) workInProgressRootExitStatus = 4; - null === workInProgressRoot || 0 === (workInProgressRootSkippedLanes & 268435455) && 0 === (workInProgressRootInterleavedUpdatedLanes & 268435455) || markRootSuspended$1(workInProgressRoot, workInProgressRootRenderLanes); - } - function renderRootSync(root, lanes) { - var prevExecutionContext = executionContext; - executionContext |= 2; - var prevDispatcher = pushDispatcher(); - if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes) workInProgressTransitions = null, prepareFreshStack(root, lanes); - do try { - workLoopSync(); - break; - } catch (thrownValue) { - handleError(root, thrownValue); - } while (1); - resetContextDependencies(); - executionContext = prevExecutionContext; - ReactCurrentDispatcher$2.current = prevDispatcher; - if (null !== workInProgress) throw Error("Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue."); - workInProgressRoot = null; - workInProgressRootRenderLanes = 0; - return workInProgressRootExitStatus; - } - function workLoopSync() { - for (; null !== workInProgress;) performUnitOfWork(workInProgress); - } - function workLoopConcurrent() { - for (; null !== workInProgress && !_$$_REQUIRE(_dependencyMap[3]).unstable_shouldYield();) performUnitOfWork(workInProgress); - } - function performUnitOfWork(unitOfWork) { - var next = beginWork$1(unitOfWork.alternate, unitOfWork, subtreeRenderLanes); - unitOfWork.memoizedProps = unitOfWork.pendingProps; - null === next ? completeUnitOfWork(unitOfWork) : workInProgress = next; - ReactCurrentOwner$2.current = null; - } - function completeUnitOfWork(unitOfWork) { - var completedWork = unitOfWork; - do { - var current = completedWork.alternate; - unitOfWork = completedWork.return; - if (0 === (completedWork.flags & 32768)) { - if (current = completeWork(current, completedWork, subtreeRenderLanes), null !== current) { - workInProgress = current; - return; - } - } else { - current = unwindWork(current, completedWork); - if (null !== current) { - current.flags &= 32767; - workInProgress = current; - return; - } - if (null !== unitOfWork) unitOfWork.flags |= 32768, unitOfWork.subtreeFlags = 0, unitOfWork.deletions = null;else { - workInProgressRootExitStatus = 6; - workInProgress = null; - return; - } - } - completedWork = completedWork.sibling; - if (null !== completedWork) { - workInProgress = completedWork; - return; - } - workInProgress = completedWork = unitOfWork; - } while (null !== completedWork); - 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5); - } - function commitRoot(root, recoverableErrors, transitions) { - var previousUpdateLanePriority = currentUpdatePriority, - prevTransition = ReactCurrentBatchConfig$2.transition; - try { - ReactCurrentBatchConfig$2.transition = null, currentUpdatePriority = 1, commitRootImpl(root, recoverableErrors, transitions, previousUpdateLanePriority); - } finally { - ReactCurrentBatchConfig$2.transition = prevTransition, currentUpdatePriority = previousUpdateLanePriority; - } - return null; - } - function commitRootImpl(root, recoverableErrors, transitions, renderPriorityLevel) { - do flushPassiveEffects(); while (null !== rootWithPendingPassiveEffects); - if (0 !== (executionContext & 6)) throw Error("Should not already be working."); - transitions = root.finishedWork; - var lanes = root.finishedLanes; - if (null === transitions) return null; - root.finishedWork = null; - root.finishedLanes = 0; - if (transitions === root.current) throw Error("Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue."); - root.callbackNode = null; - root.callbackPriority = 0; - var remainingLanes = transitions.lanes | transitions.childLanes; - markRootFinished(root, remainingLanes); - root === workInProgressRoot && (workInProgress = workInProgressRoot = null, workInProgressRootRenderLanes = 0); - 0 === (transitions.subtreeFlags & 2064) && 0 === (transitions.flags & 2064) || rootDoesHavePassiveEffects || (rootDoesHavePassiveEffects = true, scheduleCallback$1(_$$_REQUIRE(_dependencyMap[3]).unstable_NormalPriority, function () { - flushPassiveEffects(); - return null; - })); - remainingLanes = 0 !== (transitions.flags & 15990); - if (0 !== (transitions.subtreeFlags & 15990) || remainingLanes) { - remainingLanes = ReactCurrentBatchConfig$2.transition; - ReactCurrentBatchConfig$2.transition = null; - var previousPriority = currentUpdatePriority; - currentUpdatePriority = 1; - var prevExecutionContext = executionContext; - executionContext |= 4; - ReactCurrentOwner$2.current = null; - commitBeforeMutationEffects(root, transitions); - commitMutationEffectsOnFiber(transitions, root); - root.current = transitions; - commitLayoutEffects(transitions, root, lanes); - _$$_REQUIRE(_dependencyMap[3]).unstable_requestPaint(); - executionContext = prevExecutionContext; - currentUpdatePriority = previousPriority; - ReactCurrentBatchConfig$2.transition = remainingLanes; - } else root.current = transitions; - rootDoesHavePassiveEffects && (rootDoesHavePassiveEffects = false, rootWithPendingPassiveEffects = root, pendingPassiveEffectsLanes = lanes); - remainingLanes = root.pendingLanes; - 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null); - onCommitRoot(transitions.stateNode, renderPriorityLevel); - ensureRootIsScheduled(root, _$$_REQUIRE(_dependencyMap[3]).unstable_now()); - if (null !== recoverableErrors) for (renderPriorityLevel = root.onRecoverableError, transitions = 0; transitions < recoverableErrors.length; transitions++) lanes = recoverableErrors[transitions], renderPriorityLevel(lanes.value, { - componentStack: lanes.stack, - digest: lanes.digest - }); - if (hasUncaughtError) throw hasUncaughtError = false, root = firstUncaughtError, firstUncaughtError = null, root; - 0 !== (pendingPassiveEffectsLanes & 1) && 0 !== root.tag && flushPassiveEffects(); - remainingLanes = root.pendingLanes; - 0 !== (remainingLanes & 1) ? root === rootWithNestedUpdates ? nestedUpdateCount++ : (nestedUpdateCount = 0, rootWithNestedUpdates = root) : nestedUpdateCount = 0; - flushSyncCallbacks(); - return null; - } - function flushPassiveEffects() { - if (null !== rootWithPendingPassiveEffects) { - var renderPriority = lanesToEventPriority(pendingPassiveEffectsLanes), - prevTransition = ReactCurrentBatchConfig$2.transition, - previousPriority = currentUpdatePriority; - try { - ReactCurrentBatchConfig$2.transition = null; - currentUpdatePriority = 16 > renderPriority ? 16 : renderPriority; - if (null === rootWithPendingPassiveEffects) var JSCompiler_inline_result = false;else { - renderPriority = rootWithPendingPassiveEffects; - rootWithPendingPassiveEffects = null; - pendingPassiveEffectsLanes = 0; - if (0 !== (executionContext & 6)) throw Error("Cannot flush passive effects while already rendering."); - var prevExecutionContext = executionContext; - executionContext |= 4; - for (nextEffect = renderPriority.current; null !== nextEffect;) { - var fiber = nextEffect, - child = fiber.child; - if (0 !== (nextEffect.flags & 16)) { - var deletions = fiber.deletions; - if (null !== deletions) { - for (var i = 0; i < deletions.length; i++) { - var fiberToDelete = deletions[i]; - for (nextEffect = fiberToDelete; null !== nextEffect;) { - var fiber$jscomp$0 = nextEffect; - switch (fiber$jscomp$0.tag) { - case 0: - case 11: - case 15: - commitHookEffectListUnmount(8, fiber$jscomp$0, fiber); - } - var child$jscomp$0 = fiber$jscomp$0.child; - if (null !== child$jscomp$0) child$jscomp$0.return = fiber$jscomp$0, nextEffect = child$jscomp$0;else for (; null !== nextEffect;) { - fiber$jscomp$0 = nextEffect; - var sibling = fiber$jscomp$0.sibling, - returnFiber = fiber$jscomp$0.return; - detachFiberAfterEffects(fiber$jscomp$0); - if (fiber$jscomp$0 === fiberToDelete) { - nextEffect = null; - break; - } - if (null !== sibling) { - sibling.return = returnFiber; - nextEffect = sibling; - break; - } - nextEffect = returnFiber; - } - } - } - var previousFiber = fiber.alternate; - if (null !== previousFiber) { - var detachedChild = previousFiber.child; - if (null !== detachedChild) { - previousFiber.child = null; - do { - var detachedSibling = detachedChild.sibling; - detachedChild.sibling = null; - detachedChild = detachedSibling; - } while (null !== detachedChild); - } - } - nextEffect = fiber; - } - } - if (0 !== (fiber.subtreeFlags & 2064) && null !== child) child.return = fiber, nextEffect = child;else b: for (; null !== nextEffect;) { - fiber = nextEffect; - if (0 !== (fiber.flags & 2048)) switch (fiber.tag) { - case 0: - case 11: - case 15: - commitHookEffectListUnmount(9, fiber, fiber.return); - } - var sibling$jscomp$0 = fiber.sibling; - if (null !== sibling$jscomp$0) { - sibling$jscomp$0.return = fiber.return; - nextEffect = sibling$jscomp$0; - break b; - } - nextEffect = fiber.return; - } - } - var finishedWork = renderPriority.current; - for (nextEffect = finishedWork; null !== nextEffect;) { - child = nextEffect; - var firstChild = child.child; - if (0 !== (child.subtreeFlags & 2064) && null !== firstChild) firstChild.return = child, nextEffect = firstChild;else b: for (child = finishedWork; null !== nextEffect;) { - deletions = nextEffect; - if (0 !== (deletions.flags & 2048)) try { - switch (deletions.tag) { - case 0: - case 11: - case 15: - commitHookEffectListMount(9, deletions); - } - } catch (error) { - captureCommitPhaseError(deletions, deletions.return, error); - } - if (deletions === child) { - nextEffect = null; - break b; - } - var sibling$jscomp$1 = deletions.sibling; - if (null !== sibling$jscomp$1) { - sibling$jscomp$1.return = deletions.return; - nextEffect = sibling$jscomp$1; - break b; - } - nextEffect = deletions.return; - } - } - executionContext = prevExecutionContext; - flushSyncCallbacks(); - if (injectedHook && "function" === typeof injectedHook.onPostCommitFiberRoot) try { - injectedHook.onPostCommitFiberRoot(rendererID, renderPriority); - } catch (err) {} - JSCompiler_inline_result = true; - } - return JSCompiler_inline_result; - } finally { - currentUpdatePriority = previousPriority, ReactCurrentBatchConfig$2.transition = prevTransition; - } - } - return false; - } - function captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) { - sourceFiber = createCapturedValueAtFiber(error, sourceFiber); - sourceFiber = createRootErrorUpdate(rootFiber, sourceFiber, 1); - rootFiber = enqueueUpdate(rootFiber, sourceFiber, 1); - sourceFiber = requestEventTime(); - null !== rootFiber && (markRootUpdated(rootFiber, 1, sourceFiber), ensureRootIsScheduled(rootFiber, sourceFiber)); - } - function captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) { - if (3 === sourceFiber.tag) captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);else for (nearestMountedAncestor = sourceFiber.return; null !== nearestMountedAncestor;) { - if (3 === nearestMountedAncestor.tag) { - captureCommitPhaseErrorOnRoot(nearestMountedAncestor, sourceFiber, error); - break; - } else if (1 === nearestMountedAncestor.tag) { - var instance = nearestMountedAncestor.stateNode; - if ("function" === typeof nearestMountedAncestor.type.getDerivedStateFromError || "function" === typeof instance.componentDidCatch && (null === legacyErrorBoundariesThatAlreadyFailed || !legacyErrorBoundariesThatAlreadyFailed.has(instance))) { - sourceFiber = createCapturedValueAtFiber(error, sourceFiber); - sourceFiber = createClassErrorUpdate(nearestMountedAncestor, sourceFiber, 1); - nearestMountedAncestor = enqueueUpdate(nearestMountedAncestor, sourceFiber, 1); - sourceFiber = requestEventTime(); - null !== nearestMountedAncestor && (markRootUpdated(nearestMountedAncestor, 1, sourceFiber), ensureRootIsScheduled(nearestMountedAncestor, sourceFiber)); - break; - } - } - nearestMountedAncestor = nearestMountedAncestor.return; - } - } - function pingSuspendedRoot(root, wakeable, pingedLanes) { - var pingCache = root.pingCache; - null !== pingCache && pingCache.delete(wakeable); - wakeable = requestEventTime(); - root.pingedLanes |= root.suspendedLanes & pingedLanes; - workInProgressRoot === root && (workInProgressRootRenderLanes & pingedLanes) === pingedLanes && (4 === workInProgressRootExitStatus || 3 === workInProgressRootExitStatus && (workInProgressRootRenderLanes & 130023424) === workInProgressRootRenderLanes && 500 > _$$_REQUIRE(_dependencyMap[3]).unstable_now() - globalMostRecentFallbackTime ? prepareFreshStack(root, 0) : workInProgressRootPingedLanes |= pingedLanes); - ensureRootIsScheduled(root, wakeable); - } - function retryTimedOutBoundary(boundaryFiber, retryLane) { - 0 === retryLane && (0 === (boundaryFiber.mode & 1) ? retryLane = 1 : (retryLane = nextRetryLane, nextRetryLane <<= 1, 0 === (nextRetryLane & 130023424) && (nextRetryLane = 4194304))); - var eventTime = requestEventTime(); - boundaryFiber = markUpdateLaneFromFiberToRoot(boundaryFiber, retryLane); - null !== boundaryFiber && (markRootUpdated(boundaryFiber, retryLane, eventTime), ensureRootIsScheduled(boundaryFiber, eventTime)); - } - function retryDehydratedSuspenseBoundary(boundaryFiber) { - var suspenseState = boundaryFiber.memoizedState, - retryLane = 0; - null !== suspenseState && (retryLane = suspenseState.retryLane); - retryTimedOutBoundary(boundaryFiber, retryLane); - } - function resolveRetryWakeable(boundaryFiber, wakeable) { - var retryLane = 0; - switch (boundaryFiber.tag) { - case 13: - var retryCache = boundaryFiber.stateNode; - var suspenseState = boundaryFiber.memoizedState; - null !== suspenseState && (retryLane = suspenseState.retryLane); - break; - case 19: - retryCache = boundaryFiber.stateNode; - break; - default: - throw Error("Pinged unknown suspense boundary type. This is probably a bug in React."); - } - null !== retryCache && retryCache.delete(wakeable); - retryTimedOutBoundary(boundaryFiber, retryLane); - } - var beginWork$1; - beginWork$1 = function beginWork$1(current, workInProgress, renderLanes) { - if (null !== current) { - if (current.memoizedProps !== workInProgress.pendingProps || didPerformWorkStackCursor.current) didReceiveUpdate = true;else { - if (0 === (current.lanes & renderLanes) && 0 === (workInProgress.flags & 128)) return didReceiveUpdate = false, attemptEarlyBailoutIfNoScheduledUpdate(current, workInProgress, renderLanes); - didReceiveUpdate = 0 !== (current.flags & 131072) ? true : false; - } - } else didReceiveUpdate = false; - workInProgress.lanes = 0; - switch (workInProgress.tag) { - case 2: - var Component = workInProgress.type; - resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress); - current = workInProgress.pendingProps; - var context = getMaskedContext(workInProgress, contextStackCursor.current); - prepareToReadContext(workInProgress, renderLanes); - context = renderWithHooks(null, workInProgress, Component, current, context, renderLanes); - workInProgress.flags |= 1; - if ("object" === typeof context && null !== context && "function" === typeof context.render && undefined === context.$$typeof) { - workInProgress.tag = 1; - workInProgress.memoizedState = null; - workInProgress.updateQueue = null; - if (isContextProvider(Component)) { - var hasContext = true; - pushContextProvider(workInProgress); - } else hasContext = false; - workInProgress.memoizedState = null !== context.state && undefined !== context.state ? context.state : null; - initializeUpdateQueue(workInProgress); - context.updater = classComponentUpdater; - workInProgress.stateNode = context; - context._reactInternals = workInProgress; - mountClassInstance(workInProgress, Component, current, renderLanes); - workInProgress = finishClassComponent(null, workInProgress, Component, true, hasContext, renderLanes); - } else workInProgress.tag = 0, reconcileChildren(null, workInProgress, context, renderLanes), workInProgress = workInProgress.child; - return workInProgress; - case 16: - Component = workInProgress.elementType; - a: { - resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress); - current = workInProgress.pendingProps; - context = Component._init; - Component = context(Component._payload); - workInProgress.type = Component; - context = workInProgress.tag = resolveLazyComponentTag(Component); - current = resolveDefaultProps(Component, current); - switch (context) { - case 0: - workInProgress = updateFunctionComponent(null, workInProgress, Component, current, renderLanes); - break a; - case 1: - workInProgress = updateClassComponent(null, workInProgress, Component, current, renderLanes); - break a; - case 11: - workInProgress = updateForwardRef(null, workInProgress, Component, current, renderLanes); - break a; - case 14: - workInProgress = updateMemoComponent(null, workInProgress, Component, resolveDefaultProps(Component.type, current), renderLanes); - break a; - } - throw Error("Element type is invalid. Received a promise that resolves to: " + Component + ". Lazy element type must resolve to a class or function."); - } - return workInProgress; - case 0: - return Component = workInProgress.type, context = workInProgress.pendingProps, context = workInProgress.elementType === Component ? context : resolveDefaultProps(Component, context), updateFunctionComponent(current, workInProgress, Component, context, renderLanes); - case 1: - return Component = workInProgress.type, context = workInProgress.pendingProps, context = workInProgress.elementType === Component ? context : resolveDefaultProps(Component, context), updateClassComponent(current, workInProgress, Component, context, renderLanes); - case 3: - pushHostRootContext(workInProgress); - if (null === current) throw Error("Should have a current fiber. This is a bug in React."); - context = workInProgress.pendingProps; - Component = workInProgress.memoizedState.element; - cloneUpdateQueue(current, workInProgress); - processUpdateQueue(workInProgress, context, null, renderLanes); - context = workInProgress.memoizedState.element; - context === Component ? workInProgress = bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) : (reconcileChildren(current, workInProgress, context, renderLanes), workInProgress = workInProgress.child); - return workInProgress; - case 5: - return pushHostContext(workInProgress), Component = workInProgress.pendingProps.children, markRef(current, workInProgress), reconcileChildren(current, workInProgress, Component, renderLanes), workInProgress.child; - case 6: - return null; - case 13: - return updateSuspenseComponent(current, workInProgress, renderLanes); - case 4: - return pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo), Component = workInProgress.pendingProps, null === current ? workInProgress.child = reconcileChildFibers(workInProgress, null, Component, renderLanes) : reconcileChildren(current, workInProgress, Component, renderLanes), workInProgress.child; - case 11: - return Component = workInProgress.type, context = workInProgress.pendingProps, context = workInProgress.elementType === Component ? context : resolveDefaultProps(Component, context), updateForwardRef(current, workInProgress, Component, context, renderLanes); - case 7: - return reconcileChildren(current, workInProgress, workInProgress.pendingProps, renderLanes), workInProgress.child; - case 8: - return reconcileChildren(current, workInProgress, workInProgress.pendingProps.children, renderLanes), workInProgress.child; - case 12: - return reconcileChildren(current, workInProgress, workInProgress.pendingProps.children, renderLanes), workInProgress.child; - case 10: - a: { - Component = workInProgress.type._context; - context = workInProgress.pendingProps; - hasContext = workInProgress.memoizedProps; - var newValue = context.value; - push(valueCursor, Component._currentValue2); - Component._currentValue2 = newValue; - if (null !== hasContext) if (objectIs(hasContext.value, newValue)) { - if (hasContext.children === context.children && !didPerformWorkStackCursor.current) { - workInProgress = bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes); - break a; - } - } else for (hasContext = workInProgress.child, null !== hasContext && (hasContext.return = workInProgress); null !== hasContext;) { - var list = hasContext.dependencies; - if (null !== list) { - newValue = hasContext.child; - for (var dependency = list.firstContext; null !== dependency;) { - if (dependency.context === Component) { - if (1 === hasContext.tag) { - dependency = createUpdate(-1, renderLanes & -renderLanes); - dependency.tag = 2; - var updateQueue = hasContext.updateQueue; - if (null !== updateQueue) { - updateQueue = updateQueue.shared; - var pending = updateQueue.pending; - null === pending ? dependency.next = dependency : (dependency.next = pending.next, pending.next = dependency); - updateQueue.pending = dependency; - } - } - hasContext.lanes |= renderLanes; - dependency = hasContext.alternate; - null !== dependency && (dependency.lanes |= renderLanes); - scheduleContextWorkOnParentPath(hasContext.return, renderLanes, workInProgress); - list.lanes |= renderLanes; - break; - } - dependency = dependency.next; - } - } else if (10 === hasContext.tag) newValue = hasContext.type === workInProgress.type ? null : hasContext.child;else if (18 === hasContext.tag) { - newValue = hasContext.return; - if (null === newValue) throw Error("We just came from a parent so we must have had a parent. This is a bug in React."); - newValue.lanes |= renderLanes; - list = newValue.alternate; - null !== list && (list.lanes |= renderLanes); - scheduleContextWorkOnParentPath(newValue, renderLanes, workInProgress); - newValue = hasContext.sibling; - } else newValue = hasContext.child; - if (null !== newValue) newValue.return = hasContext;else for (newValue = hasContext; null !== newValue;) { - if (newValue === workInProgress) { - newValue = null; - break; - } - hasContext = newValue.sibling; - if (null !== hasContext) { - hasContext.return = newValue.return; - newValue = hasContext; - break; - } - newValue = newValue.return; - } - hasContext = newValue; - } - reconcileChildren(current, workInProgress, context.children, renderLanes); - workInProgress = workInProgress.child; - } - return workInProgress; - case 9: - return context = workInProgress.type, Component = workInProgress.pendingProps.children, prepareToReadContext(workInProgress, renderLanes), context = readContext(context), Component = Component(context), workInProgress.flags |= 1, reconcileChildren(current, workInProgress, Component, renderLanes), workInProgress.child; - case 14: - return Component = workInProgress.type, context = resolveDefaultProps(Component, workInProgress.pendingProps), context = resolveDefaultProps(Component.type, context), updateMemoComponent(current, workInProgress, Component, context, renderLanes); - case 15: - return updateSimpleMemoComponent(current, workInProgress, workInProgress.type, workInProgress.pendingProps, renderLanes); - case 17: - return Component = workInProgress.type, context = workInProgress.pendingProps, context = workInProgress.elementType === Component ? context : resolveDefaultProps(Component, context), resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress), workInProgress.tag = 1, isContextProvider(Component) ? (current = true, pushContextProvider(workInProgress)) : current = false, prepareToReadContext(workInProgress, renderLanes), constructClassInstance(workInProgress, Component, context), mountClassInstance(workInProgress, Component, context, renderLanes), finishClassComponent(null, workInProgress, Component, true, current, renderLanes); - case 19: - return updateSuspenseListComponent(current, workInProgress, renderLanes); - case 22: - return updateOffscreenComponent(current, workInProgress, renderLanes); - } - throw Error("Unknown unit of work tag (" + workInProgress.tag + "). This error is likely caused by a bug in React. Please file an issue."); - }; - function scheduleCallback$1(priorityLevel, callback) { - return _$$_REQUIRE(_dependencyMap[3]).unstable_scheduleCallback(priorityLevel, callback); - } - function FiberNode(tag, pendingProps, key, mode) { - this.tag = tag; - this.key = key; - this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null; - this.index = 0; - this.ref = null; - this.pendingProps = pendingProps; - this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null; - this.mode = mode; - this.subtreeFlags = this.flags = 0; - this.deletions = null; - this.childLanes = this.lanes = 0; - this.alternate = null; - } - function createFiber(tag, pendingProps, key, mode) { - return new FiberNode(tag, pendingProps, key, mode); - } - function shouldConstruct(Component) { - Component = Component.prototype; - return !(!Component || !Component.isReactComponent); - } - function resolveLazyComponentTag(Component) { - if ("function" === typeof Component) return shouldConstruct(Component) ? 1 : 0; - if (undefined !== Component && null !== Component) { - Component = Component.$$typeof; - if (Component === REACT_FORWARD_REF_TYPE) return 11; - if (Component === REACT_MEMO_TYPE) return 14; - } - return 2; - } - function createWorkInProgress(current, pendingProps) { - var workInProgress = current.alternate; - null === workInProgress ? (workInProgress = createFiber(current.tag, pendingProps, current.key, current.mode), workInProgress.elementType = current.elementType, workInProgress.type = current.type, workInProgress.stateNode = current.stateNode, workInProgress.alternate = current, current.alternate = workInProgress) : (workInProgress.pendingProps = pendingProps, workInProgress.type = current.type, workInProgress.flags = 0, workInProgress.subtreeFlags = 0, workInProgress.deletions = null); - workInProgress.flags = current.flags & 14680064; - workInProgress.childLanes = current.childLanes; - workInProgress.lanes = current.lanes; - workInProgress.child = current.child; - workInProgress.memoizedProps = current.memoizedProps; - workInProgress.memoizedState = current.memoizedState; - workInProgress.updateQueue = current.updateQueue; - pendingProps = current.dependencies; - workInProgress.dependencies = null === pendingProps ? null : { - lanes: pendingProps.lanes, - firstContext: pendingProps.firstContext - }; - workInProgress.sibling = current.sibling; - workInProgress.index = current.index; - workInProgress.ref = current.ref; - return workInProgress; - } - function createFiberFromTypeAndProps(type, key, pendingProps, owner, mode, lanes) { - var fiberTag = 2; - owner = type; - if ("function" === typeof type) shouldConstruct(type) && (fiberTag = 1);else if ("string" === typeof type) fiberTag = 5;else a: switch (type) { - case REACT_FRAGMENT_TYPE: - return createFiberFromFragment(pendingProps.children, mode, lanes, key); - case REACT_STRICT_MODE_TYPE: - fiberTag = 8; - mode |= 8; - break; - case REACT_PROFILER_TYPE: - return type = createFiber(12, pendingProps, key, mode | 2), type.elementType = REACT_PROFILER_TYPE, type.lanes = lanes, type; - case REACT_SUSPENSE_TYPE: - return type = createFiber(13, pendingProps, key, mode), type.elementType = REACT_SUSPENSE_TYPE, type.lanes = lanes, type; - case REACT_SUSPENSE_LIST_TYPE: - return type = createFiber(19, pendingProps, key, mode), type.elementType = REACT_SUSPENSE_LIST_TYPE, type.lanes = lanes, type; - case REACT_OFFSCREEN_TYPE: - return createFiberFromOffscreen(pendingProps, mode, lanes, key); - default: - if ("object" === typeof type && null !== type) switch (type.$$typeof) { - case REACT_PROVIDER_TYPE: - fiberTag = 10; - break a; - case REACT_CONTEXT_TYPE: - fiberTag = 9; - break a; - case REACT_FORWARD_REF_TYPE: - fiberTag = 11; - break a; - case REACT_MEMO_TYPE: - fiberTag = 14; - break a; - case REACT_LAZY_TYPE: - fiberTag = 16; - owner = null; - break a; - } - throw Error("Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: " + ((null == type ? type : typeof type) + ".")); - } - key = createFiber(fiberTag, pendingProps, key, mode); - key.elementType = type; - key.type = owner; - key.lanes = lanes; - return key; - } - function createFiberFromFragment(elements, mode, lanes, key) { - elements = createFiber(7, elements, key, mode); - elements.lanes = lanes; - return elements; - } - function createFiberFromOffscreen(pendingProps, mode, lanes, key) { - pendingProps = createFiber(22, pendingProps, key, mode); - pendingProps.elementType = REACT_OFFSCREEN_TYPE; - pendingProps.lanes = lanes; - pendingProps.stateNode = { - isHidden: false - }; - return pendingProps; - } - function createFiberFromText(content, mode, lanes) { - content = createFiber(6, content, null, mode); - content.lanes = lanes; - return content; - } - function createFiberFromPortal(portal, mode, lanes) { - mode = createFiber(4, null !== portal.children ? portal.children : [], portal.key, mode); - mode.lanes = lanes; - mode.stateNode = { - containerInfo: portal.containerInfo, - pendingChildren: null, - implementation: portal.implementation - }; - return mode; - } - function FiberRootNode(containerInfo, tag, hydrate, identifierPrefix, onRecoverableError) { - this.tag = tag; - this.containerInfo = containerInfo; - this.finishedWork = this.pingCache = this.current = this.pendingChildren = null; - this.timeoutHandle = -1; - this.callbackNode = this.pendingContext = this.context = null; - this.callbackPriority = 0; - this.eventTimes = createLaneMap(0); - this.expirationTimes = createLaneMap(-1); - this.entangledLanes = this.finishedLanes = this.mutableReadLanes = this.expiredLanes = this.pingedLanes = this.suspendedLanes = this.pendingLanes = 0; - this.entanglements = createLaneMap(0); - this.identifierPrefix = identifierPrefix; - this.onRecoverableError = onRecoverableError; - } - function createPortal(children, containerInfo, implementation) { - var key = 3 < arguments.length && undefined !== arguments[3] ? arguments[3] : null; - return { - $$typeof: REACT_PORTAL_TYPE, - key: null == key ? null : "" + key, - children: children, - containerInfo: containerInfo, - implementation: implementation - }; - } - function findHostInstance(component) { - var fiber = component._reactInternals; - if (undefined === fiber) { - if ("function" === typeof component.render) throw Error("Unable to find node on an unmounted component."); - component = Object.keys(component).join(","); - throw Error("Argument appears to not be a ReactComponent. Keys: " + component); - } - component = findCurrentHostFiber(fiber); - return null === component ? null : component.stateNode; - } - function updateContainer(element, container, parentComponent, callback) { - var current = container.current, - eventTime = requestEventTime(), - lane = requestUpdateLane(current); - a: if (parentComponent) { - parentComponent = parentComponent._reactInternals; - b: { - if (getNearestMountedFiber(parentComponent) !== parentComponent || 1 !== parentComponent.tag) throw Error("Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue."); - var JSCompiler_inline_result = parentComponent; - do { - switch (JSCompiler_inline_result.tag) { - case 3: - JSCompiler_inline_result = JSCompiler_inline_result.stateNode.context; - break b; - case 1: - if (isContextProvider(JSCompiler_inline_result.type)) { - JSCompiler_inline_result = JSCompiler_inline_result.stateNode.__reactInternalMemoizedMergedChildContext; - break b; - } - } - JSCompiler_inline_result = JSCompiler_inline_result.return; - } while (null !== JSCompiler_inline_result); - throw Error("Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue."); - } - if (1 === parentComponent.tag) { - var Component = parentComponent.type; - if (isContextProvider(Component)) { - parentComponent = processChildContext(parentComponent, Component, JSCompiler_inline_result); - break a; - } - } - parentComponent = JSCompiler_inline_result; - } else parentComponent = emptyContextObject; - null === container.context ? container.context = parentComponent : container.pendingContext = parentComponent; - container = createUpdate(eventTime, lane); - container.payload = { - element: element - }; - callback = undefined === callback ? null : callback; - null !== callback && (container.callback = callback); - element = enqueueUpdate(current, container, lane); - null !== element && (scheduleUpdateOnFiber(element, current, lane, eventTime), entangleTransitions(element, current, lane)); - return lane; - } - function emptyFindFiberByHostInstance() { - return null; - } - function findNodeHandle(componentOrHandle) { - if (null == componentOrHandle) return null; - if ("number" === typeof componentOrHandle) return componentOrHandle; - if (componentOrHandle._nativeTag) return componentOrHandle._nativeTag; - if (componentOrHandle.canonical && componentOrHandle.canonical._nativeTag) return componentOrHandle.canonical._nativeTag; - componentOrHandle = findHostInstance(componentOrHandle); - return null == componentOrHandle ? componentOrHandle : componentOrHandle.canonical ? componentOrHandle.canonical._nativeTag : componentOrHandle._nativeTag; - } - function onRecoverableError(error) { - console.error(error); - } - batchedUpdatesImpl = function batchedUpdatesImpl(fn, a) { - var prevExecutionContext = executionContext; - executionContext |= 1; - try { - return fn(a); - } finally { - executionContext = prevExecutionContext, 0 === executionContext && (workInProgressRootRenderTargetTime = _$$_REQUIRE(_dependencyMap[3]).unstable_now() + 500, includesLegacySyncCallbacks && flushSyncCallbacks()); - } - }; - var roots = new Map(), - devToolsConfig$jscomp$inline_938 = { - findFiberByHostInstance: getInstanceFromInstance, - bundleType: 0, - version: "18.2.0-next-9e3b772b8-20220608", - rendererPackageName: "react-native-renderer", - rendererConfig: { - getInspectorDataForViewTag: function getInspectorDataForViewTag() { - throw Error("getInspectorDataForViewTag() is not available in production"); - }, - getInspectorDataForViewAtPoint: function () { - throw Error("getInspectorDataForViewAtPoint() is not available in production."); - }.bind(null, findNodeHandle) - } - }; - var internals$jscomp$inline_1180 = { - bundleType: devToolsConfig$jscomp$inline_938.bundleType, - version: devToolsConfig$jscomp$inline_938.version, - rendererPackageName: devToolsConfig$jscomp$inline_938.rendererPackageName, - rendererConfig: devToolsConfig$jscomp$inline_938.rendererConfig, - overrideHookState: null, - overrideHookStateDeletePath: null, - overrideHookStateRenamePath: null, - overrideProps: null, - overridePropsDeletePath: null, - overridePropsRenamePath: null, - setErrorHandler: null, - setSuspenseHandler: null, - scheduleUpdate: null, - currentDispatcherRef: ReactSharedInternals.ReactCurrentDispatcher, - findHostInstanceByFiber: function findHostInstanceByFiber(fiber) { - fiber = findCurrentHostFiber(fiber); - return null === fiber ? null : fiber.stateNode; - }, - findFiberByHostInstance: devToolsConfig$jscomp$inline_938.findFiberByHostInstance || emptyFindFiberByHostInstance, - findHostInstancesForRefresh: null, - scheduleRefresh: null, - scheduleRoot: null, - setRefreshHandler: null, - getCurrentFiber: null, - reconcilerVersion: "18.2.0-next-9e3b772b8-20220608" - }; - if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { - var hook$jscomp$inline_1181 = __REACT_DEVTOOLS_GLOBAL_HOOK__; - if (!hook$jscomp$inline_1181.isDisabled && hook$jscomp$inline_1181.supportsFiber) try { - rendererID = hook$jscomp$inline_1181.inject(internals$jscomp$inline_1180), injectedHook = hook$jscomp$inline_1181; - } catch (err) {} - } - exports.createPortal = function (children, containerTag) { - return createPortal(children, containerTag, null, 2 < arguments.length && undefined !== arguments[2] ? arguments[2] : null); - }; - exports.dispatchCommand = function (handle, command, args) { - null != handle._nativeTag && (null != handle._internalInstanceHandle ? (handle = handle._internalInstanceHandle.stateNode, null != handle && nativeFabricUIManager.dispatchCommand(handle.node, command, args)) : _$$_REQUIRE(_dependencyMap[2]).UIManager.dispatchViewManagerCommand(handle._nativeTag, command, args)); - }; - exports.findHostInstance_DEPRECATED = function (componentOrHandle) { - if (null == componentOrHandle) return null; - if (componentOrHandle._nativeTag) return componentOrHandle; - if (componentOrHandle.canonical && componentOrHandle.canonical._nativeTag) return componentOrHandle.canonical; - componentOrHandle = findHostInstance(componentOrHandle); - return null == componentOrHandle ? componentOrHandle : componentOrHandle.canonical ? componentOrHandle.canonical : componentOrHandle; - }; - exports.findNodeHandle = findNodeHandle; - exports.getInspectorDataForInstance = undefined; - exports.render = function (element, containerTag, callback, concurrentRoot) { - var root = roots.get(containerTag); - root || (root = concurrentRoot ? 1 : 0, concurrentRoot = new FiberRootNode(containerTag, root, false, "", onRecoverableError), root = createFiber(3, null, null, 1 === root ? 1 : 0), concurrentRoot.current = root, root.stateNode = concurrentRoot, root.memoizedState = { - element: null, - isDehydrated: false, - cache: null, - transitions: null, - pendingSuspenseBoundaries: null - }, initializeUpdateQueue(root), root = concurrentRoot, roots.set(containerTag, root)); - updateContainer(element, root, null, callback); - a: if (element = root.current, element.child) switch (element.child.tag) { - case 5: - element = element.child.stateNode.canonical; - break a; - default: - element = element.child.stateNode; - } else element = null; - return element; - }; - exports.sendAccessibilityEvent = function (handle, eventType) { - null != handle._nativeTag && (null != handle._internalInstanceHandle ? (handle = handle._internalInstanceHandle.stateNode, null != handle && nativeFabricUIManager.sendAccessibilityEvent(handle.node, eventType)) : _$$_REQUIRE(_dependencyMap[2]).legacySendAccessibilityEvent(handle._nativeTag, eventType)); - }; - exports.stopSurface = function (containerTag) { - var root = roots.get(containerTag); - root && updateContainer(null, root, null, function () { - roots.delete(containerTag); - }); - }; - exports.unmountComponentAtNode = function (containerTag) { - this.stopSurface(containerTag); - }; -},60,[61,3,227,243]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - _$$_REQUIRE(_dependencyMap[0]); -},61,[62]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - /** - * Sets up global variables typical in most JavaScript environments. - * - * 1. Global timers (via `setTimeout` etc). - * 2. Global console object. - * 3. Hooks for printing stack traces with source maps. - * - * Leaves enough room in the environment for implementing your own: - * - * 1. Require system. - * 2. Bridged modules. - * - */ - - 'use strict'; - - var start = Date.now(); - _$$_REQUIRE(_dependencyMap[0]); - _$$_REQUIRE(_dependencyMap[1]); - _$$_REQUIRE(_dependencyMap[2]); - _$$_REQUIRE(_dependencyMap[3]); - _$$_REQUIRE(_dependencyMap[4]); - _$$_REQUIRE(_dependencyMap[5]); - _$$_REQUIRE(_dependencyMap[6]); - _$$_REQUIRE(_dependencyMap[7]); - _$$_REQUIRE(_dependencyMap[8]); - _$$_REQUIRE(_dependencyMap[9]); - _$$_REQUIRE(_dependencyMap[10]); - _$$_REQUIRE(_dependencyMap[11]); - _$$_REQUIRE(_dependencyMap[12]); - // We could just call GlobalPerformanceLogger.markPoint at the top of the file, - // but then we'd be excluding the time it took to require the logger. - // Instead, we just use Date.now and backdate the timestamp. - _$$_REQUIRE(_dependencyMap[13]).markPoint('initializeCore_start', _$$_REQUIRE(_dependencyMap[13]).currentTimestamp() - (Date.now() - start)); - _$$_REQUIRE(_dependencyMap[13]).markPoint('initializeCore_end'); -},62,[63,64,72,84,94,100,103,108,140,145,146,154,156,117]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - /** - * Sets up global variables for React Native. - * You can use this module directly, or just require InitializeCore. - */ - if (global.window === undefined) { - // $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it. - global.window = global; - } - if (global.self === undefined) { - // $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it. - global.self = global; - } - - // Set up process - // $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it. - global.process = global.process || {}; - // $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it. - global.process.env = global.process.env || {}; - if (!global.process.env.NODE_ENV) { - // $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it. - global.process.env.NODE_ENV = 'production'; - } -},63,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var _DOMRect = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _DOMRectReadOnly = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - // $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it - global.DOMRect = _DOMRect.default; - - // $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it - global.DOMRectReadOnly = _DOMRectReadOnly.default; -},64,[1,65,71]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _inherits2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _possibleConstructorReturn2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var _getPrototypeOf2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[5])); - var _DOMRectReadOnly2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[6])); - function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } - function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ /** - * The JSDoc comments in this file have been extracted from [DOMRect](https://developer.mozilla.org/en-US/docs/Web/API/DOMRect). - * Content by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/DOMRect/contributors.txt), - * licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). - */ - // flowlint unsafe-getters-setters:off - /** - * A `DOMRect` describes the size and position of a rectangle. - * The type of box represented by the `DOMRect` is specified by the method or property that returned it. - * - * This is a (mostly) spec-compliant version of `DOMRect` (https://developer.mozilla.org/en-US/docs/Web/API/DOMRect). - */ - var DOMRect = exports.default = /*#__PURE__*/function (_DOMRectReadOnly) { - (0, _inherits2.default)(DOMRect, _DOMRectReadOnly); - var _super = _createSuper(DOMRect); - function DOMRect() { - (0, _classCallCheck2.default)(this, DOMRect); - return _super.apply(this, arguments); - } - (0, _createClass2.default)(DOMRect, [{ - key: "x", - get: - /** - * The x coordinate of the `DOMRect`'s origin. - */ - function get() { - return this.__getInternalX(); - }, - set: function set(x) { - this.__setInternalX(x); - } - - /** - * The y coordinate of the `DOMRect`'s origin. - */ - }, { - key: "y", - get: function get() { - return this.__getInternalY(); - }, - set: function set(y) { - this.__setInternalY(y); - } - - /** - * The width of the `DOMRect`. - */ - }, { - key: "width", - get: function get() { - return this.__getInternalWidth(); - }, - set: function set(width) { - this.__setInternalWidth(width); - } - - /** - * The height of the `DOMRect`. - */ - }, { - key: "height", - get: function get() { - return this.__getInternalHeight(); - }, - set: function set(height) { - this.__setInternalHeight(height); - } - - /** - * Creates a new `DOMRect` object with a given location and dimensions. - */ - }], [{ - key: "fromRect", - value: function fromRect(rect) { - if (!rect) { - return new DOMRect(); - } - return new DOMRect(rect.x, rect.y, rect.width, rect.height); - } - }]); - return DOMRect; - }(_DOMRectReadOnly2.default); -},65,[1,6,7,66,68,70,71]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }); - Object.defineProperty(subClass, "prototype", { - writable: false - }); - if (superClass) _$$_REQUIRE(_dependencyMap[0])(subClass, superClass); - } - module.exports = _inherits, module.exports.__esModule = true, module.exports["default"] = module.exports; -},66,[67]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _setPrototypeOf(o, p) { - module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }, module.exports.__esModule = true, module.exports["default"] = module.exports; - return _setPrototypeOf(o, p); - } - module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports; -},67,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _possibleConstructorReturn(self, call) { - if (call && (_$$_REQUIRE(_dependencyMap[0])["default"](call) === "object" || typeof call === "function")) { - return call; - } else if (call !== undefined) { - throw new TypeError("Derived constructors may only return object or undefined"); - } - return _$$_REQUIRE(_dependencyMap[1])(self); - } - module.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports["default"] = module.exports; -},68,[10,69]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _assertThisInitialized(self) { - if (self === undefined) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - return self; - } - module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports["default"] = module.exports; -},69,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _getPrototypeOf(o) { - module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }, module.exports.__esModule = true, module.exports["default"] = module.exports; - return _getPrototypeOf(o); - } - module.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports; -},70,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - /** - * The JSDoc comments in this file have been extracted from [DOMRectReadOnly](https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly). - * Content by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly/contributors.txt), - * licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). - */ - - // flowlint sketchy-null:off, unsafe-getters-setters:off - - function castToNumber(value) { - return value ? Number(value) : 0; - } - - /** - * The `DOMRectReadOnly` interface specifies the standard properties used by `DOMRect` to define a rectangle whose properties are immutable. - * - * This is a (mostly) spec-compliant version of `DOMRectReadOnly` (https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly). - */ - var DOMRectReadOnly = exports.default = /*#__PURE__*/function () { - function DOMRectReadOnly(x, y, width, height) { - (0, _classCallCheck2.default)(this, DOMRectReadOnly); - this.__setInternalX(x); - this.__setInternalY(y); - this.__setInternalWidth(width); - this.__setInternalHeight(height); - } - - /** - * The x coordinate of the `DOMRectReadOnly`'s origin. - */ - (0, _createClass2.default)(DOMRectReadOnly, [{ - key: "x", - get: function get() { - return this._x; - } - - /** - * The y coordinate of the `DOMRectReadOnly`'s origin. - */ - }, { - key: "y", - get: function get() { - return this._y; - } - - /** - * The width of the `DOMRectReadOnly`. - */ - }, { - key: "width", - get: function get() { - return this._width; - } - - /** - * The height of the `DOMRectReadOnly`. - */ - }, { - key: "height", - get: function get() { - return this._height; - } - - /** - * Returns the top coordinate value of the `DOMRect` (has the same value as `y`, or `y + height` if `height` is negative). - */ - }, { - key: "top", - get: function get() { - var height = this._height; - var y = this._y; - if (height < 0) { - return y + height; - } - return y; - } - - /** - * Returns the right coordinate value of the `DOMRect` (has the same value as ``x + width`, or `x` if `width` is negative). - */ - }, { - key: "right", - get: function get() { - var width = this._width; - var x = this._x; - if (width < 0) { - return x; - } - return x + width; - } - - /** - * Returns the bottom coordinate value of the `DOMRect` (has the same value as `y + height`, or `y` if `height` is negative). - */ - }, { - key: "bottom", - get: function get() { - var height = this._height; - var y = this._y; - if (height < 0) { - return y; - } - return y + height; - } - - /** - * Returns the left coordinate value of the `DOMRect` (has the same value as `x`, or `x + width` if `width` is negative). - */ - }, { - key: "left", - get: function get() { - var width = this._width; - var x = this._x; - if (width < 0) { - return x + width; - } - return x; - } - }, { - key: "toJSON", - value: function toJSON() { - var x = this.x, - y = this.y, - width = this.width, - height = this.height, - top = this.top, - left = this.left, - bottom = this.bottom, - right = this.right; - return { - x: x, - y: y, - width: width, - height: height, - top: top, - left: left, - bottom: bottom, - right: right - }; - } - - /** - * Creates a new `DOMRectReadOnly` object with a given location and dimensions. - */ - }, { - key: "__getInternalX", - value: function __getInternalX() { - return this._x; - } - }, { - key: "__getInternalY", - value: function __getInternalY() { - return this._y; - } - }, { - key: "__getInternalWidth", - value: function __getInternalWidth() { - return this._width; - } - }, { - key: "__getInternalHeight", - value: function __getInternalHeight() { - return this._height; - } - }, { - key: "__setInternalX", - value: function __setInternalX(x) { - this._x = castToNumber(x); - } - }, { - key: "__setInternalY", - value: function __setInternalY(y) { - this._y = castToNumber(y); - } - }, { - key: "__setInternalWidth", - value: function __setInternalWidth(width) { - this._width = castToNumber(width); - } - }, { - key: "__setInternalHeight", - value: function __setInternalHeight(height) { - this._height = castToNumber(height); - } - }], [{ - key: "fromRect", - value: function fromRect(rect) { - if (!rect) { - return new DOMRectReadOnly(); - } - return new DOMRectReadOnly(rect.x, rect.y, rect.width, rect.height); - } - }]); - return DOMRectReadOnly; - }(); -},71,[1,6,7]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var _NativePerformance = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _Performance = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - // In case if the native implementation of the Performance API is available, use it, - // otherwise fall back to the legacy/default one, which only defines 'Performance.now()' - if (_NativePerformance.default) { - // $FlowExpectedError[cannot-write] - global.performance = new _Performance.default(); - } else { - if (!global.performance) { - // $FlowExpectedError[cannot-write] - global.performance = {}; - } - - /** - * Returns a double, measured in milliseconds. - * https://developer.mozilla.org/en-US/docs/Web/API/Performance/now - */ - if (typeof global.performance.now !== 'function') { - // $FlowExpectedError[cannot-write] - global.performance.now = function () { - var performanceNow = global.nativePerformanceNow || Date.now; - return performanceNow(); - }; - } - } -},72,[1,73,74]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var TurboModuleRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - var _default = exports.default = TurboModuleRegistry.get('NativePerformanceCxx'); -},73,[45]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = exports.PerformanceMeasure = exports.PerformanceMark = undefined; - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _inherits2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _possibleConstructorReturn2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var _getPrototypeOf2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[5])); - var _warnOnce = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[6])); - var _EventCounts = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[7])); - var _MemoryInfo = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[8])); - var _NativePerformance = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[9])); - var _NativePerformanceObserver = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[10])); - var _ReactNativeStartupTiming = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[11])); - function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } - function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ // flowlint unsafe-getters-setters:off - var getCurrentTimeStamp = global.nativePerformanceNow ? global.nativePerformanceNow : function () { - return Date.now(); - }; - var PerformanceMark = exports.PerformanceMark = /*#__PURE__*/function (_PerformanceEntry) { - (0, _inherits2.default)(PerformanceMark, _PerformanceEntry); - var _super = _createSuper(PerformanceMark); - function PerformanceMark(markName, markOptions) { - var _markOptions$startTim; - var _this; - (0, _classCallCheck2.default)(this, PerformanceMark); - _this = _super.call(this, { - name: markName, - entryType: 'mark', - startTime: (_markOptions$startTim = markOptions == null ? undefined : markOptions.startTime) != null ? _markOptions$startTim : getCurrentTimeStamp(), - duration: 0 - }); - if (markOptions) { - _this.detail = markOptions.detail; - } - return _this; - } - return (0, _createClass2.default)(PerformanceMark); - }(_$$_REQUIRE(_dependencyMap[12]).PerformanceEntry); - var PerformanceMeasure = exports.PerformanceMeasure = /*#__PURE__*/function (_PerformanceEntry2) { - (0, _inherits2.default)(PerformanceMeasure, _PerformanceEntry2); - var _super2 = _createSuper(PerformanceMeasure); - function PerformanceMeasure(measureName, measureOptions) { - var _measureOptions$durat; - var _this2; - (0, _classCallCheck2.default)(this, PerformanceMeasure); - _this2 = _super2.call(this, { - name: measureName, - entryType: 'measure', - startTime: 0, - duration: (_measureOptions$durat = measureOptions == null ? undefined : measureOptions.duration) != null ? _measureOptions$durat : 0 - }); - if (measureOptions) { - _this2.detail = measureOptions.detail; - } - return _this2; - } - return (0, _createClass2.default)(PerformanceMeasure); - }(_$$_REQUIRE(_dependencyMap[12]).PerformanceEntry); - function warnNoNativePerformance() { - (0, _warnOnce.default)('missing-native-performance', 'Missing native implementation of Performance'); - } - - /** - * Partial implementation of the Performance interface for RN, - * corresponding to the standard in - * https://www.w3.org/TR/user-timing/#extensions-performance-interface - */ - var Performance = exports.default = /*#__PURE__*/function () { - function Performance() { - (0, _classCallCheck2.default)(this, Performance); - this.eventCounts = new _EventCounts.default(); - } - (0, _createClass2.default)(Performance, [{ - key: "memory", - get: - // Get the current JS memory information. - function get() { - if (_NativePerformance.default != null && _NativePerformance.default.getSimpleMemoryInfo) { - // JSI API implementations may have different variants of names for the JS - // heap information we need here. We will parse the result based on our - // guess of the implementation for now. - var memoryInfo = _NativePerformance.default.getSimpleMemoryInfo(); - if (memoryInfo.hasOwnProperty('hermes_heapSize')) { - // We got memory information from Hermes - var totalJSHeapSize = memoryInfo.hermes_heapSize, - usedJSHeapSize = memoryInfo.hermes_allocatedBytes; - return new _MemoryInfo.default({ - jsHeapSizeLimit: null, - // We don't know the heap size limit from Hermes. - totalJSHeapSize: totalJSHeapSize, - usedJSHeapSize: usedJSHeapSize - }); - } else { - // JSC and V8 has no native implementations for memory information in JSI::Instrumentation - return new _MemoryInfo.default(); - } - } - return new _MemoryInfo.default(); - } - - // Startup metrics is not used in web, but only in React Native. - }, { - key: "reactNativeStartupTiming", - get: function get() { - if (_NativePerformance.default != null && _NativePerformance.default.getReactNativeStartupTiming) { - return new _ReactNativeStartupTiming.default(_NativePerformance.default.getReactNativeStartupTiming()); - } - return new _ReactNativeStartupTiming.default(); - } - }, { - key: "mark", - value: function mark(markName, markOptions) { - var mark = new PerformanceMark(markName, markOptions); - if (_NativePerformance.default != null && _NativePerformance.default.mark) { - _NativePerformance.default.mark(markName, mark.startTime, mark.duration); - } else { - warnNoNativePerformance(); - } - return mark; - } - }, { - key: "clearMarks", - value: function clearMarks(markName) { - if (!(_NativePerformanceObserver.default != null && _NativePerformanceObserver.default.clearEntries)) { - (0, _$$_REQUIRE(_dependencyMap[13]).warnNoNativePerformanceObserver)(); - return; - } - _NativePerformanceObserver.default == null ? undefined : _NativePerformanceObserver.default.clearEntries(_$$_REQUIRE(_dependencyMap[14]).RawPerformanceEntryTypeValues.MARK, markName); - } - }, { - key: "measure", - value: function measure(measureName, startMarkOrOptions, endMark) { - var options; - var startMarkName, - endMarkName = endMark, - duration, - startTime = 0, - endTime = 0; - if (typeof startMarkOrOptions === 'string') { - startMarkName = startMarkOrOptions; - } else if (startMarkOrOptions !== undefined) { - var _options$duration; - options = startMarkOrOptions; - if (endMark !== undefined) { - throw new TypeError("Performance.measure: Can't have both options and endMark"); - } - if (options.start === undefined && options.end === undefined) { - throw new TypeError('Performance.measure: Must have at least one of start/end specified in options'); - } - if (options.start !== undefined && options.end !== undefined && options.duration !== undefined) { - throw new TypeError("Performance.measure: Can't have both start/end and duration explicitly in options"); - } - if (typeof options.start === 'number') { - startTime = options.start; - } else { - startMarkName = options.start; - } - if (typeof options.end === 'number') { - endTime = options.end; - } else { - endMarkName = options.end; - } - duration = (_options$duration = options.duration) != null ? _options$duration : duration; - } - var measure = new PerformanceMeasure(measureName, options); - if (_NativePerformance.default != null && _NativePerformance.default.measure) { - _NativePerformance.default.measure(measureName, startTime, endTime, duration, startMarkName, endMarkName); - } else { - warnNoNativePerformance(); - } - return measure; - } - }, { - key: "clearMeasures", - value: function clearMeasures(measureName) { - if (!(_NativePerformanceObserver.default != null && _NativePerformanceObserver.default.clearEntries)) { - (0, _$$_REQUIRE(_dependencyMap[13]).warnNoNativePerformanceObserver)(); - return; - } - _NativePerformanceObserver.default == null ? undefined : _NativePerformanceObserver.default.clearEntries(_$$_REQUIRE(_dependencyMap[14]).RawPerformanceEntryTypeValues.MEASURE, measureName); - } - - /** - * Returns a double, measured in milliseconds. - * https://developer.mozilla.org/en-US/docs/Web/API/Performance/now - */ - }, { - key: "now", - value: function now() { - return getCurrentTimeStamp(); - } - - /** - * An extension that allows to get back to JS all currently logged marks/measures - * (in our case, be it from JS or native), see - * https://www.w3.org/TR/performance-timeline/#extensions-to-the-performance-interface - */ - }, { - key: "getEntries", - value: function getEntries() { - if (!(_NativePerformanceObserver.default != null && _NativePerformanceObserver.default.clearEntries)) { - (0, _$$_REQUIRE(_dependencyMap[13]).warnNoNativePerformanceObserver)(); - return []; - } - return _NativePerformanceObserver.default.getEntries().map(_$$_REQUIRE(_dependencyMap[14]).rawToPerformanceEntry); - } - }, { - key: "getEntriesByType", - value: function getEntriesByType(entryType) { - if (entryType !== 'mark' && entryType !== 'measure') { - console.log(`Performance.getEntriesByType: Only valid for 'mark' and 'measure' entry types, got ${entryType}`); - return []; - } - if (!(_NativePerformanceObserver.default != null && _NativePerformanceObserver.default.clearEntries)) { - (0, _$$_REQUIRE(_dependencyMap[13]).warnNoNativePerformanceObserver)(); - return []; - } - return _NativePerformanceObserver.default.getEntries((0, _$$_REQUIRE(_dependencyMap[14]).performanceEntryTypeToRaw)(entryType)).map(_$$_REQUIRE(_dependencyMap[14]).rawToPerformanceEntry); - } - }, { - key: "getEntriesByName", - value: function getEntriesByName(entryName, entryType) { - if (entryType !== undefined && entryType !== 'mark' && entryType !== 'measure') { - console.log(`Performance.getEntriesByName: Only valid for 'mark' and 'measure' entry types, got ${entryType}`); - return []; - } - if (!(_NativePerformanceObserver.default != null && _NativePerformanceObserver.default.clearEntries)) { - (0, _$$_REQUIRE(_dependencyMap[13]).warnNoNativePerformanceObserver)(); - return []; - } - return _NativePerformanceObserver.default.getEntries(entryType != null ? (0, _$$_REQUIRE(_dependencyMap[14]).performanceEntryTypeToRaw)(entryType) : undefined, entryName).map(_$$_REQUIRE(_dependencyMap[14]).rawToPerformanceEntry); - } - }]); - return Performance; - }(); -},74,[1,7,6,66,68,70,75,76,82,73,77,83,81,78,79]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - var warnedKeys = {}; - - /** - * A simple function that prints a warning message once per session. - * - * @param {string} key - The key used to ensure the message is printed once. - * This should be unique to the callsite. - * @param {string} message - The message to print - */ - function warnOnce(key, message) { - if (warnedKeys[key]) { - return; - } - console.warn(message); - warnedKeys[key] = true; - } - module.exports = warnOnce; -},75,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _NativePerformanceObserver = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - var cachedEventCounts; - function getCachedEventCounts() { - var _cachedEventCounts; - if (cachedEventCounts) { - return cachedEventCounts; - } - if (!_NativePerformanceObserver.default) { - (0, _$$_REQUIRE(_dependencyMap[4]).warnNoNativePerformanceObserver)(); - return new Map(); - } - cachedEventCounts = new Map(_NativePerformanceObserver.default.getEventCounts()); - // $FlowFixMe[incompatible-call] - global.queueMicrotask(function () { - // To be consistent with the calls to the API from the same task, - // but also not to refetch the data from native too often, - // schedule to invalidate the cache later, - // after the current task is guaranteed to have finished. - cachedEventCounts = null; - }); - return (_cachedEventCounts = cachedEventCounts) != null ? _cachedEventCounts : new Map(); - } - /** - * Implementation of the EventCounts Web Performance API - * corresponding to the standard in - * https://www.w3.org/TR/event-timing/#eventcounts - */ - var EventCounts = exports.default = /*#__PURE__*/function () { - function EventCounts() { - (0, _classCallCheck2.default)(this, EventCounts); - } - (0, _createClass2.default)(EventCounts, [{ - key: "size", - get: - // flowlint unsafe-getters-setters:off - function get() { - return getCachedEventCounts().size; - } - }, { - key: "entries", - value: function entries() { - return getCachedEventCounts().entries(); - } - }, { - key: "forEach", - value: function forEach(callback) { - return getCachedEventCounts().forEach(callback); - } - }, { - key: "get", - value: function get(key) { - return getCachedEventCounts().get(key); - } - }, { - key: "has", - value: function has(key) { - return getCachedEventCounts().has(key); - } - }, { - key: "keys", - value: function keys() { - return getCachedEventCounts().keys(); - } - }, { - key: "values", - value: function values() { - return getCachedEventCounts().values(); - } - }]); - return EventCounts; - }(); -},76,[1,6,7,77,78]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var TurboModuleRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - var _default = exports.default = TurboModuleRegistry.get('NativePerformanceObserverCxx'); -},77,[45]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = exports.PerformanceObserverEntryList = undefined; - exports.warnNoNativePerformanceObserver = warnNoNativePerformanceObserver; - var _toConsumableArray2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _slicedToArray2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var _warnOnce = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[5])); - var _NativePerformanceObserver = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[6])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - var PerformanceObserverEntryList = exports.PerformanceObserverEntryList = /*#__PURE__*/function () { - function PerformanceObserverEntryList(entries) { - (0, _classCallCheck2.default)(this, PerformanceObserverEntryList); - this._entries = entries; - } - (0, _createClass2.default)(PerformanceObserverEntryList, [{ - key: "getEntries", - value: function getEntries() { - return this._entries; - } - }, { - key: "getEntriesByType", - value: function getEntriesByType(type) { - return this._entries.filter(function (entry) { - return entry.entryType === type; - }); - } - }, { - key: "getEntriesByName", - value: function getEntriesByName(name, type) { - if (type === undefined) { - return this._entries.filter(function (entry) { - return entry.name === name; - }); - } else { - return this._entries.filter(function (entry) { - return entry.name === name && entry.entryType === type; - }); - } - } - }]); - return PerformanceObserverEntryList; - }(); - var observerCountPerEntryType = new Map(); - var registeredObservers = new Map(); - var isOnPerformanceEntryCallbackSet = false; - - // This is a callback that gets scheduled and periodically called from the native side - var onPerformanceEntry = function onPerformanceEntry() { - var _entryResult$entries; - if (!_NativePerformanceObserver.default) { - return; - } - var entryResult = _NativePerformanceObserver.default.popPendingEntries(); - var rawEntries = (_entryResult$entries = entryResult == null ? undefined : entryResult.entries) != null ? _entryResult$entries : []; - var droppedEntriesCount = entryResult == null ? undefined : entryResult.droppedEntriesCount; - if (rawEntries.length === 0) { - return; - } - var entries = rawEntries.map(_$$_REQUIRE(_dependencyMap[7]).rawToPerformanceEntry); - var _loop = function _loop(observerConfig) { - var entriesForObserver = entries.filter(function (entry) { - if (!observerConfig.entryTypes.has(entry.entryType)) { - return false; - } - var durationThreshold = observerConfig.entryTypes.get(entry.entryType); - return entry.duration >= (durationThreshold != null ? durationThreshold : 0); - }); - observerConfig.callback(new PerformanceObserverEntryList(entriesForObserver), _observer, droppedEntriesCount); - }; - for (var _ref of registeredObservers.entries()) { - var _ref2 = (0, _slicedToArray2.default)(_ref, 2); - var _observer = _ref2[0]; - var observerConfig = _ref2[1]; - _loop(observerConfig); - } - }; - function warnNoNativePerformanceObserver() { - (0, _warnOnce.default)('missing-native-performance-observer', 'Missing native implementation of PerformanceObserver'); - } - function applyDurationThresholds() { - var durationThresholds = Array.from(registeredObservers.values()).map(function (config) { - return config.entryTypes; - }).reduce(function (accumulator, currentValue) { - return union(accumulator, currentValue); - }, new Map()); - for (var _ref3 of durationThresholds) { - var _ref4 = (0, _slicedToArray2.default)(_ref3, 2); - var entryType = _ref4[0]; - var durationThreshold = _ref4[1]; - _NativePerformanceObserver.default == null ? undefined : _NativePerformanceObserver.default.setDurationThreshold((0, _$$_REQUIRE(_dependencyMap[7]).performanceEntryTypeToRaw)(entryType), durationThreshold != null ? durationThreshold : 0); - } - } - - /** - * Implementation of the PerformanceObserver interface for RN, - * corresponding to the standard in https://www.w3.org/TR/performance-timeline/ - * - * @example - * const observer = new PerformanceObserver((list, _observer) => { - * const entries = list.getEntries(); - * entries.forEach(entry => { - * reportEvent({ - * eventName: entry.name, - * startTime: entry.startTime, - * endTime: entry.startTime + entry.duration, - * processingStart: entry.processingStart, - * processingEnd: entry.processingEnd, - * interactionId: entry.interactionId, - * }); - * }); - * }); - * observer.observe({ type: "event" }); - */ - var PerformanceObserver = exports.default = /*#__PURE__*/function () { - function PerformanceObserver(callback) { - (0, _classCallCheck2.default)(this, PerformanceObserver); - this._callback = callback; - } - (0, _createClass2.default)(PerformanceObserver, [{ - key: "observe", - value: function observe(options) { - var _registeredObservers$; - if (!_NativePerformanceObserver.default) { - warnNoNativePerformanceObserver(); - return; - } - this._validateObserveOptions(options); - var requestedEntryTypes; - if (options.entryTypes) { - this._type = 'multiple'; - requestedEntryTypes = new Map(options.entryTypes.map(function (t) { - return [t, undefined]; - })); - } else { - this._type = 'single'; - requestedEntryTypes = new Map([[options.type, options.durationThreshold]]); - } - - // The same observer may receive multiple calls to "observe", so we need - // to check what is new on this call vs. previous ones. - var currentEntryTypes = (_registeredObservers$ = registeredObservers.get(this)) == null ? undefined : _registeredObservers$.entryTypes; - var nextEntryTypes = currentEntryTypes ? union(requestedEntryTypes, currentEntryTypes) : requestedEntryTypes; - - // This `observe` call is a no-op because there are no new things to observe. - if (currentEntryTypes && currentEntryTypes.size === nextEntryTypes.size) { - return; - } - registeredObservers.set(this, { - callback: this._callback, - entryTypes: nextEntryTypes - }); - if (!isOnPerformanceEntryCallbackSet) { - _NativePerformanceObserver.default.setOnPerformanceEntryCallback(onPerformanceEntry); - isOnPerformanceEntryCallbackSet = true; - } - - // We only need to start listenening to new entry types being observed in - // this observer. - var newEntryTypes = currentEntryTypes ? difference(new Set(requestedEntryTypes.keys()), new Set(currentEntryTypes.keys())) : new Set(requestedEntryTypes.keys()); - for (var type of newEntryTypes) { - var _observerCountPerEntr; - if (!observerCountPerEntryType.has(type)) { - var rawType = (0, _$$_REQUIRE(_dependencyMap[7]).performanceEntryTypeToRaw)(type); - _NativePerformanceObserver.default.startReporting(rawType); - } - observerCountPerEntryType.set(type, ((_observerCountPerEntr = observerCountPerEntryType.get(type)) != null ? _observerCountPerEntr : 0) + 1); - } - applyDurationThresholds(); - } - }, { - key: "disconnect", - value: function disconnect() { - if (!_NativePerformanceObserver.default) { - warnNoNativePerformanceObserver(); - return; - } - var observerConfig = registeredObservers.get(this); - if (!observerConfig) { - return; - } - - // Disconnect this observer - for (var type of observerConfig.entryTypes.keys()) { - var _observerCountPerEntr2; - var numberOfObserversForThisType = (_observerCountPerEntr2 = observerCountPerEntryType.get(type)) != null ? _observerCountPerEntr2 : 0; - if (numberOfObserversForThisType === 1) { - observerCountPerEntryType.delete(type); - _NativePerformanceObserver.default.stopReporting((0, _$$_REQUIRE(_dependencyMap[7]).performanceEntryTypeToRaw)(type)); - } else if (numberOfObserversForThisType !== 0) { - observerCountPerEntryType.set(type, numberOfObserversForThisType - 1); - } - } - - // Disconnect all observers if this was the last one - registeredObservers.delete(this); - if (registeredObservers.size === 0) { - _NativePerformanceObserver.default.setOnPerformanceEntryCallback(undefined); - isOnPerformanceEntryCallbackSet = false; - } - applyDurationThresholds(); - } - }, { - key: "_validateObserveOptions", - value: function _validateObserveOptions(options) { - var type = options.type, - entryTypes = options.entryTypes, - durationThreshold = options.durationThreshold; - if (!type && !entryTypes) { - throw new TypeError("Failed to execute 'observe' on 'PerformanceObserver': An observe() call must not include both entryTypes and type arguments."); - } - if (entryTypes && type) { - throw new TypeError("Failed to execute 'observe' on 'PerformanceObserver': An observe() call must include either entryTypes or type arguments."); - } - if (this._type === 'multiple' && type) { - throw new Error("Failed to execute 'observe' on 'PerformanceObserver': This observer has performed observe({entryTypes:...}, therefore it cannot perform observe({type:...})"); - } - if (this._type === 'single' && entryTypes) { - throw new Error("Failed to execute 'observe' on 'PerformanceObserver': This PerformanceObserver has performed observe({type:...}, therefore it cannot perform observe({entryTypes:...})"); - } - if (entryTypes && durationThreshold !== undefined) { - throw new TypeError("Failed to execute 'observe' on 'PerformanceObserver': An observe() call must not include both entryTypes and durationThreshold arguments."); - } - } - }]); - return PerformanceObserver; - }(); // As a Set union, except if value exists in both, we take minimum - PerformanceObserver.supportedEntryTypes = Object.freeze(['mark', 'measure', 'event']); - function union(a, b) { - var res = new Map(); - for (var _ref5 of a) { - var _ref6 = (0, _slicedToArray2.default)(_ref5, 2); - var k = _ref6[0]; - var v = _ref6[1]; - if (!b.has(k)) { - res.set(k, v); - } else { - var _b$get; - res.set(k, Math.min(v != null ? v : 0, (_b$get = b.get(k)) != null ? _b$get : 0)); - } - } - return res; - } - function difference(a, b) { - return new Set((0, _toConsumableArray2.default)(a).filter(function (x) { - return !b.has(x); - })); - } -},78,[1,20,31,6,7,75,77,79]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.RawPerformanceEntryTypeValues = undefined; - exports.performanceEntryTypeToRaw = performanceEntryTypeToRaw; - exports.rawToPerformanceEntry = rawToPerformanceEntry; - exports.rawToPerformanceEntryType = rawToPerformanceEntryType; - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - var RawPerformanceEntryTypeValues = exports.RawPerformanceEntryTypeValues = { - UNDEFINED: 0, - MARK: 1, - MEASURE: 2, - EVENT: 3 - }; - function rawToPerformanceEntry(entry) { - if (entry.entryType === RawPerformanceEntryTypeValues.EVENT) { - return new (_$$_REQUIRE(_dependencyMap[0]).PerformanceEventTiming)({ - name: entry.name, - startTime: entry.startTime, - duration: entry.duration, - processingStart: entry.processingStart, - processingEnd: entry.processingEnd, - interactionId: entry.interactionId - }); - } else { - return new (_$$_REQUIRE(_dependencyMap[1]).PerformanceEntry)({ - name: entry.name, - entryType: rawToPerformanceEntryType(entry.entryType), - startTime: entry.startTime, - duration: entry.duration - }); - } - } - function rawToPerformanceEntryType(type) { - switch (type) { - case RawPerformanceEntryTypeValues.MARK: - return 'mark'; - case RawPerformanceEntryTypeValues.MEASURE: - return 'measure'; - case RawPerformanceEntryTypeValues.EVENT: - return 'event'; - case RawPerformanceEntryTypeValues.UNDEFINED: - throw new TypeError("rawToPerformanceEntryType: UNDEFINED can't be cast to PerformanceEntryType"); - default: - throw new TypeError(`rawToPerformanceEntryType: unexpected performance entry type received: ${type}`); - } - } - function performanceEntryTypeToRaw(type) { - switch (type) { - case 'mark': - return RawPerformanceEntryTypeValues.MARK; - case 'measure': - return RawPerformanceEntryTypeValues.MEASURE; - case 'event': - return RawPerformanceEntryTypeValues.EVENT; - default: - // Verify exhaustive check with Flow - type; - throw new TypeError(`performanceEntryTypeToRaw: unexpected performance entry type received: ${type}`); - } - } -},79,[80,81]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.PerformanceEventTiming = undefined; - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _inherits2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _possibleConstructorReturn2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var _getPrototypeOf2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[5])); - function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } - function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - var PerformanceEventTiming = exports.PerformanceEventTiming = /*#__PURE__*/function (_PerformanceEntry) { - (0, _inherits2.default)(PerformanceEventTiming, _PerformanceEntry); - var _super = _createSuper(PerformanceEventTiming); - function PerformanceEventTiming(init) { - var _init$startTime, _init$duration, _init$processingStart, _init$processingEnd, _init$interactionId; - var _this; - (0, _classCallCheck2.default)(this, PerformanceEventTiming); - _this = _super.call(this, { - name: init.name, - entryType: 'event', - startTime: (_init$startTime = init.startTime) != null ? _init$startTime : 0, - duration: (_init$duration = init.duration) != null ? _init$duration : 0 - }); - _this.processingStart = (_init$processingStart = init.processingStart) != null ? _init$processingStart : 0; - _this.processingEnd = (_init$processingEnd = init.processingEnd) != null ? _init$processingEnd : 0; - _this.interactionId = (_init$interactionId = init.interactionId) != null ? _init$interactionId : 0; - return _this; - } - return (0, _createClass2.default)(PerformanceEventTiming); - }(_$$_REQUIRE(_dependencyMap[6]).PerformanceEntry); -},80,[1,7,6,66,68,70,81]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.PerformanceEntry = undefined; - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - var PerformanceEntry = exports.PerformanceEntry = /*#__PURE__*/function () { - function PerformanceEntry(init) { - (0, _classCallCheck2.default)(this, PerformanceEntry); - this.name = init.name; - this.entryType = init.entryType; - this.startTime = init.startTime; - this.duration = init.duration; - } - (0, _createClass2.default)(PerformanceEntry, [{ - key: "toJSON", - value: function toJSON() { - return { - name: this.name, - entryType: this.entryType, - startTime: this.startTime, - duration: this.duration - }; - } - }]); - return PerformanceEntry; - }(); -},81,[1,6,7]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - * @oncall react_native - */ - // flowlint unsafe-getters-setters:off - // Read-only object with JS memory information. This is returned by the performance.memory API. - var MemoryInfo = exports.default = /*#__PURE__*/function () { - function MemoryInfo(memoryInfo) { - (0, _classCallCheck2.default)(this, MemoryInfo); - if (memoryInfo != null) { - this._jsHeapSizeLimit = memoryInfo.jsHeapSizeLimit; - this._totalJSHeapSize = memoryInfo.totalJSHeapSize; - this._usedJSHeapSize = memoryInfo.usedJSHeapSize; - } - } - - /** - * The maximum size of the heap, in bytes, that is available to the context - */ - (0, _createClass2.default)(MemoryInfo, [{ - key: "jsHeapSizeLimit", - get: function get() { - return this._jsHeapSizeLimit; - } - - /** - * The total allocated heap size, in bytes - */ - }, { - key: "totalJSHeapSize", - get: function get() { - return this._totalJSHeapSize; - } - - /** - * The currently active segment of JS heap, in bytes. - */ - }, { - key: "usedJSHeapSize", - get: function get() { - return this._usedJSHeapSize; - } - }]); - return MemoryInfo; - }(); -},82,[1,6,7]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - * @oncall react_native - */ - // flowlint unsafe-getters-setters:off - // Read-only object with RN startup timing information. - // This is returned by the performance.reactNativeStartup API. - var ReactNativeStartupTiming = exports.default = /*#__PURE__*/function () { - function ReactNativeStartupTiming(startUpTiming) { - (0, _classCallCheck2.default)(this, ReactNativeStartupTiming); - // All time information here are in ms. To match web spec, - // the default value for timings are zero if not present. - // See https://www.w3.org/TR/performance-timeline/#performancetiming-interface - this._startTime = 0; - this._endTime = 0; - this._executeJavaScriptBundleEntryPointStart = 0; - this._executeJavaScriptBundleEntryPointEnd = 0; - if (startUpTiming != null) { - this._startTime = startUpTiming.startTime; - this._endTime = startUpTiming.endTime; - this._executeJavaScriptBundleEntryPointStart = startUpTiming.executeJavaScriptBundleEntryPointStart; - this._executeJavaScriptBundleEntryPointEnd = startUpTiming.executeJavaScriptBundleEntryPointEnd; - } - } - - /** - * Start time of the RN app startup process. This is provided by the platform by implementing the `ReactMarker.setAppStartTime` API in the native platform code. - */ - (0, _createClass2.default)(ReactNativeStartupTiming, [{ - key: "startTime", - get: function get() { - return this._startTime; - } - - /** - * End time of the RN app startup process. This is equal to `executeJavaScriptBundleEntryPointEnd`. - */ - }, { - key: "endTime", - get: function get() { - return this._endTime; - } - - /** - * Start time of JS bundle being executed. This indicates the RN JS bundle is loaded and start to be evaluated. - */ - }, { - key: "executeJavaScriptBundleEntryPointStart", - get: function get() { - return this._executeJavaScriptBundleEntryPointStart; - } - - /** - * End time of JS bundle being executed. This indicates all the synchronous entry point jobs are finished. - */ - }, { - key: "executeJavaScriptBundleEntryPointEnd", - get: function get() { - return this._executeJavaScriptBundleEntryPointEnd; - } - }]); - return ReactNativeStartupTiming; - }(); -},83,[1,6,7]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - /** - * Sets up the console and exception handling (redbox) for React Native. - * You can use this module directly, or just require InitializeCore. - */ - _$$_REQUIRE(_dependencyMap[0]).installConsoleErrorReporter(); - - // Set up error handler - if (!global.__fbDisableExceptionsManager) { - var handleError = function handleError(e, isFatal) { - try { - _$$_REQUIRE(_dependencyMap[0]).handleException(e, isFatal); - } catch (ee) { - console.log('Failed to print error: ', ee.message); - throw e; - } - }; - var ErrorUtils = _$$_REQUIRE(_dependencyMap[1]); - ErrorUtils.setGlobalHandler(handleError); - } -},84,[85,51]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _$$_REQUIRE(_dependencyMap[0])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _$$_REQUIRE(_dependencyMap[0])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _$$_REQUIRE(_dependencyMap[1])(this, result); }; } - function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } - var SyntheticError = /*#__PURE__*/function (_Error) { - _$$_REQUIRE(_dependencyMap[2])(SyntheticError, _Error); - var _super = _createSuper(SyntheticError); - function SyntheticError() { - var _this; - _$$_REQUIRE(_dependencyMap[3])(this, SyntheticError); - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - _this = _super.call.apply(_super, [this].concat(args)); - _this.name = ''; - return _this; - } - return _$$_REQUIRE(_dependencyMap[4])(SyntheticError); - }( /*#__PURE__*/_$$_REQUIRE(_dependencyMap[5])(Error)); - var userExceptionDecorator; - var inUserExceptionDecorator = false; - - // This Symbol is used to decorate an ExtendedError with extra data in select usecases. - // Note that data passed using this method should be strictly contained, - // as data that's not serializable/too large may cause issues with passing the error to the native code. - var decoratedExtraDataKey = Symbol('decoratedExtraDataKey'); - - /** - * Allows the app to add information to the exception report before it is sent - * to native. This API is not final. - */ - - function unstable_setExceptionDecorator(exceptionDecorator) { - userExceptionDecorator = exceptionDecorator; - } - function preprocessException(data) { - if (userExceptionDecorator && !inUserExceptionDecorator) { - inUserExceptionDecorator = true; - try { - return userExceptionDecorator(data); - } catch (_unused) { - // Fall through - } finally { - inUserExceptionDecorator = false; - } - } - return data; - } - - /** - * Handles the developer-visible aspect of errors and exceptions - */ - var exceptionID = 0; - function reportException(e, isFatal, reportToConsole // only true when coming from handleException; the error has not yet been logged - ) { - var parseErrorStack = _$$_REQUIRE(_dependencyMap[6]); - var stack = parseErrorStack(e == null ? undefined : e.stack); - var currentExceptionID = ++exceptionID; - var originalMessage = e.message || ''; - var message = originalMessage; - if (e.componentStack != null) { - message += `\n\nThis error is located at:${e.componentStack}`; - } - var namePrefix = e.name == null || e.name === '' ? '' : `${e.name}: `; - if (!message.startsWith(namePrefix)) { - message = namePrefix + message; - } - message = e.jsEngine == null ? message : `${message}, js engine: ${e.jsEngine}`; - var data = preprocessException({ - message: message, - originalMessage: message === originalMessage ? null : originalMessage, - name: e.name == null || e.name === '' ? null : e.name, - componentStack: typeof e.componentStack === 'string' ? e.componentStack : null, - stack: stack, - id: currentExceptionID, - isFatal: isFatal, - extraData: Object.assign({}, e[decoratedExtraDataKey], { - jsEngine: e.jsEngine, - rawStack: e.stack - }) - }); - if (reportToConsole) { - // we feed back into console.error, to make sure any methods that are - // monkey patched on top of console.error are called when coming from - // handleException - console.error(data.message); - } - if (isFatal || e.type !== 'warn') { - var NativeExceptionsManager = _$$_REQUIRE(_dependencyMap[7]).default; - if (NativeExceptionsManager) { - NativeExceptionsManager.reportException(data); - } - } - } - // If we trigger console.error _from_ handleException, - // we do want to make sure that console.error doesn't trigger error reporting again - var inExceptionHandler = false; - - /** - * Logs exceptions to the (native) console and displays them - */ - function handleException(e, isFatal) { - var error; - if (e instanceof Error) { - error = e; - } else { - // Workaround for reporting errors caused by `throw 'some string'` - // Unfortunately there is no way to figure out the stacktrace in this - // case, so if you ended up here trying to trace an error, look for - // `throw ''` somewhere in your codebase. - error = new SyntheticError(e); - } - try { - inExceptionHandler = true; - /* $FlowFixMe[class-object-subtyping] added when improving typing for this - * parameters */ - reportException(error, isFatal, /*reportToConsole*/true); - } finally { - inExceptionHandler = false; - } - } - - /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's - * LTI update could not be added via codemod */ - function reactConsoleErrorHandler() { - var _console; - for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } - // bubble up to any original handlers - (_console = console)._errorOriginal.apply(_console, args); - if (!console.reportErrorsAsExceptions) { - return; - } - if (inExceptionHandler) { - // The fundamental trick here is that are multiple entry point to logging errors: - // (see D19743075 for more background) - // - // 1. An uncaught exception being caught by the global handler - // 2. An error being logged throw console.error - // - // However, console.error is monkey patched multiple times: by this module, and by the - // DevTools setup that sends messages to Metro. - // The patching order cannot be relied upon. - // - // So, some scenarios that are handled by this flag: - // - // Logging an error: - // 1. console.error called from user code - // 2. (possibly) arrives _first_ at DevTool handler, send to Metro - // 3. Bubbles to here - // 4. goes into report Exception. - // 5. should not trigger console.error again, to avoid looping / logging twice - // 6. should still bubble up to original console - // (which might either be console.log, or the DevTools handler in case it patched _earlier_ and (2) didn't happen) - // - // Throwing an uncaught exception: - // 1. exception thrown - // 2. picked up by handleException - // 3. should be sent to console.error (not console._errorOriginal, as DevTools might have patched _later_ and it needs to send it to Metro) - // 4. that _might_ bubble again to the `reactConsoleErrorHandle` defined here - // -> should not handle exception _again_, to avoid looping / showing twice (this code branch) - // 5. should still bubble up to original console (which might either be console.log, or the DevTools handler in case that one patched _earlier_) - return; - } - var error; - var firstArg = args[0]; - if (firstArg != null && firstArg.stack) { - // reportException will console.error this with high enough fidelity. - error = firstArg; - } else { - var stringifySafe = _$$_REQUIRE(_dependencyMap[8]).default; - if (typeof firstArg === 'string' && firstArg.startsWith('Warning: ')) { - // React warnings use console.error so that a stack trace is shown, but - // we don't (currently) want these to show a redbox - // (Note: Logic duplicated in polyfills/console.js.) - return; - } - var message = args.map(function (arg) { - return typeof arg === 'string' ? arg : stringifySafe(arg); - }).join(' '); - error = new SyntheticError(message); - error.name = 'console.error'; - } - reportException( - /* $FlowFixMe[class-object-subtyping] added when improving typing for this - * parameters */ - error, false, - // isFatal - false // reportToConsole - ); - } - - /** - * Shows a redbox with stacktrace for all console.error messages. Disable by - * setting `console.reportErrorsAsExceptions = false;` in your app. - */ - function installConsoleErrorReporter() { - // Enable reportErrorsAsExceptions - if (console._errorOriginal) { - return; // already installed - } - // Flow doesn't like it when you set arbitrary values on a global object - console._errorOriginal = console.error.bind(console); - console.error = reactConsoleErrorHandler; - if (console.reportErrorsAsExceptions === undefined) { - // Individual apps can disable this - // Flow doesn't like it when you set arbitrary values on a global object - console.reportErrorsAsExceptions = true; - } - } - module.exports = { - decoratedExtraDataKey: decoratedExtraDataKey, - handleException: handleException, - installConsoleErrorReporter: installConsoleErrorReporter, - SyntheticError: SyntheticError, - unstable_setExceptionDecorator: unstable_setExceptionDecorator - }; -},85,[70,68,66,6,7,86,90,93,52]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _wrapNativeSuper(Class) { - var _cache = typeof Map === "function" ? new Map() : undefined; - module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) { - if (Class === null || !_$$_REQUIRE(_dependencyMap[0])(Class)) return Class; - if (typeof Class !== "function") { - throw new TypeError("Super expression must either be null or a function"); - } - if (typeof _cache !== "undefined") { - if (_cache.has(Class)) return _cache.get(Class); - _cache.set(Class, Wrapper); - } - function Wrapper() { - return _$$_REQUIRE(_dependencyMap[1])(Class, arguments, _$$_REQUIRE(_dependencyMap[2])(this).constructor); - } - Wrapper.prototype = Object.create(Class.prototype, { - constructor: { - value: Wrapper, - enumerable: false, - writable: true, - configurable: true - } - }); - return _$$_REQUIRE(_dependencyMap[3])(Wrapper, Class); - }, module.exports.__esModule = true, module.exports["default"] = module.exports; - return _wrapNativeSuper(Class); - } - module.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports["default"] = module.exports; -},86,[87,88,70,67]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _isNativeFunction(fn) { - try { - return Function.toString.call(fn).indexOf("[native code]") !== -1; - } catch (e) { - return typeof fn === "function"; - } - } - module.exports = _isNativeFunction, module.exports.__esModule = true, module.exports["default"] = module.exports; -},87,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _construct(Parent, args, Class) { - if (_$$_REQUIRE(_dependencyMap[0])()) { - module.exports = _construct = Reflect.construct.bind(), module.exports.__esModule = true, module.exports["default"] = module.exports; - } else { - module.exports = _construct = function _construct(Parent, args, Class) { - var a = [null]; - a.push.apply(a, args); - var Constructor = Function.bind.apply(Parent, a); - var instance = new Constructor(); - if (Class) _$$_REQUIRE(_dependencyMap[1])(instance, Class.prototype); - return instance; - }, module.exports.__esModule = true, module.exports["default"] = module.exports; - } - return _construct.apply(null, arguments); - } - module.exports = _construct, module.exports.__esModule = true, module.exports["default"] = module.exports; -},88,[89,67]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) return false; - if (Reflect.construct.sham) return false; - if (typeof Proxy === "function") return true; - try { - Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); - return true; - } catch (e) { - return false; - } - } - module.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports["default"] = module.exports; -},89,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - function convertHermesStack(stack) { - var frames = []; - for (var entry of stack.entries) { - if (entry.type !== 'FRAME') { - continue; - } - var location = entry.location, - functionName = entry.functionName; - if (location.type === 'NATIVE' || location.type === 'INTERNAL_BYTECODE') { - continue; - } - frames.push({ - methodName: functionName, - file: location.sourceUrl, - lineNumber: location.line1Based, - column: location.type === 'SOURCE' ? location.column1Based - 1 : location.virtualOffset0Based - }); - } - return frames; - } - function parseErrorStack(errorStack) { - if (errorStack == null) { - return []; - } - var stacktraceParser = _$$_REQUIRE(_dependencyMap[0]); - var parsedStack = Array.isArray(errorStack) ? errorStack : global.HermesInternal ? convertHermesStack(_$$_REQUIRE(_dependencyMap[1])(errorStack)) : stacktraceParser.parse(errorStack).map(function (frame) { - return Object.assign({}, frame, { - column: frame.column != null ? frame.column - 1 : null - }); - }); - return parsedStack; - } - module.exports = parseErrorStack; -},90,[91,92]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - 'use strict'; - - Object.defineProperty(exports, '__esModule', { - value: true - }); - var UNKNOWN_FUNCTION = ''; - /** - * This parses the different stack traces and puts them into one format - * This borrows heavily from TraceKit (https://github.com/csnover/TraceKit) - */ - - function parse(stackString) { - var lines = stackString.split('\n'); - return lines.reduce(function (stack, line) { - var parseResult = parseChrome(line) || parseWinjs(line) || parseGecko(line) || parseNode(line) || parseJSC(line); - if (parseResult) { - stack.push(parseResult); - } - return stack; - }, []); - } - var chromeRe = /^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack||\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i; - var chromeEvalRe = /\((\S*)(?::(\d+))(?::(\d+))\)/; - function parseChrome(line) { - var parts = chromeRe.exec(line); - if (!parts) { - return null; - } - var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line - - var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line - - var submatch = chromeEvalRe.exec(parts[2]); - if (isEval && submatch != null) { - // throw out eval line/column and use top-most line/column number - parts[2] = submatch[1]; // url - - parts[3] = submatch[2]; // line - - parts[4] = submatch[3]; // column - } - - return { - file: !isNative ? parts[2] : null, - methodName: parts[1] || UNKNOWN_FUNCTION, - arguments: isNative ? [parts[2]] : [], - lineNumber: parts[3] ? +parts[3] : null, - column: parts[4] ? +parts[4] : null - }; - } - var winjsRe = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i; - function parseWinjs(line) { - var parts = winjsRe.exec(line); - if (!parts) { - return null; - } - return { - file: parts[2], - methodName: parts[1] || UNKNOWN_FUNCTION, - arguments: [], - lineNumber: +parts[3], - column: parts[4] ? +parts[4] : null - }; - } - var geckoRe = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i; - var geckoEvalRe = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i; - function parseGecko(line) { - var parts = geckoRe.exec(line); - if (!parts) { - return null; - } - var isEval = parts[3] && parts[3].indexOf(' > eval') > -1; - var submatch = geckoEvalRe.exec(parts[3]); - if (isEval && submatch != null) { - // throw out eval line/column and use top-most line number - parts[3] = submatch[1]; - parts[4] = submatch[2]; - parts[5] = null; // no column when eval - } - - return { - file: parts[3], - methodName: parts[1] || UNKNOWN_FUNCTION, - arguments: parts[2] ? parts[2].split(',') : [], - lineNumber: parts[4] ? +parts[4] : null, - column: parts[5] ? +parts[5] : null - }; - } - var javaScriptCoreRe = /^\s*(?:([^@]*)(?:\((.*?)\))?@)?(\S.*?):(\d+)(?::(\d+))?\s*$/i; - function parseJSC(line) { - var parts = javaScriptCoreRe.exec(line); - if (!parts) { - return null; - } - return { - file: parts[3], - methodName: parts[1] || UNKNOWN_FUNCTION, - arguments: [], - lineNumber: +parts[4], - column: parts[5] ? +parts[5] : null - }; - } - var nodeRe = /^\s*at (?:((?:\[object object\])?[^\\/]+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i; - function parseNode(line) { - var parts = nodeRe.exec(line); - if (!parts) { - return null; - } - return { - file: parts[2], - methodName: parts[1] || UNKNOWN_FUNCTION, - arguments: [], - lineNumber: +parts[3], - column: parts[4] ? +parts[4] : null - }; - } - exports.parse = parse; -},91,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - // Capturing groups: - // 1. function name - // 2. is this a native stack frame? - // 3. is this a bytecode address or a source location? - // 4. source URL (filename) - // 5. line number (1 based) - // 6. column number (1 based) or virtual offset (0 based) - var RE_FRAME = /^ {4}at (.+?)(?: \((native)\)?| \((address at )?(.*?):(\d+):(\d+)\))$/; - - // Capturing groups: - // 1. count of skipped frames - var RE_SKIPPED = /^ {4}... skipping (\d+) frames$/; - function isInternalBytecodeSourceUrl(sourceUrl) { - // See https://github.com/facebook/hermes/blob/3332fa020cae0bab751f648db7c94e1d687eeec7/lib/VM/Runtime.cpp#L1100 - return sourceUrl === 'InternalBytecode.js'; - } - function parseLine(line) { - var asFrame = line.match(RE_FRAME); - if (asFrame) { - return { - type: 'FRAME', - functionName: asFrame[1], - location: asFrame[2] === 'native' ? { - type: 'NATIVE' - } : asFrame[3] === 'address at ' ? isInternalBytecodeSourceUrl(asFrame[4]) ? { - type: 'INTERNAL_BYTECODE', - sourceUrl: asFrame[4], - line1Based: Number.parseInt(asFrame[5], 10), - virtualOffset0Based: Number.parseInt(asFrame[6], 10) - } : { - type: 'BYTECODE', - sourceUrl: asFrame[4], - line1Based: Number.parseInt(asFrame[5], 10), - virtualOffset0Based: Number.parseInt(asFrame[6], 10) - } : { - type: 'SOURCE', - sourceUrl: asFrame[4], - line1Based: Number.parseInt(asFrame[5], 10), - column1Based: Number.parseInt(asFrame[6], 10) - } - }; - } - var asSkipped = line.match(RE_SKIPPED); - if (asSkipped) { - return { - type: 'SKIPPED', - count: Number.parseInt(asSkipped[1], 10) - }; - } - } - module.exports = function parseHermesStack(stack) { - var lines = stack.split(/\n/); - var entries = []; - var lastMessageLine = -1; - for (var i = 0; i < lines.length; ++i) { - var line = lines[i]; - if (!line) { - continue; - } - var entry = parseLine(line); - if (entry) { - entries.push(entry); - continue; - } - // No match - we're still in the message - lastMessageLine = i; - entries = []; - } - var message = lines.slice(0, lastMessageLine + 1).join('\n'); - return { - message: message, - entries: entries - }; - }; -},92,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var TurboModuleRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - var NativeModule = TurboModuleRegistry.getEnforcing('ExceptionsManager'); - var ExceptionsManager = { - reportFatalException: function reportFatalException(message, stack, exceptionId) { - NativeModule.reportFatalException(message, stack, exceptionId); - }, - reportSoftException: function reportSoftException(message, stack, exceptionId) { - NativeModule.reportSoftException(message, stack, exceptionId); - }, - updateExceptionMessage: function updateExceptionMessage(message, stack, exceptionId) { - NativeModule.updateExceptionMessage(message, stack, exceptionId); - }, - dismissRedbox: function dismissRedbox() {}, - reportException: function reportException(data) { - if (NativeModule.reportException) { - NativeModule.reportException(data); - return; - } - if (data.isFatal) { - ExceptionsManager.reportFatalException(data.message, data.stack, data.id); - } else { - ExceptionsManager.reportSoftException(data.message, data.stack, data.id); - } - } - }; - var _default = exports.default = ExceptionsManager; -},93,[45]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - var _global, _global$HermesInterna; - /** - * Set up Promise. The native Promise implementation throws the following error: - * ERROR: Event loop not supported. - * - * If you don't need these polyfills, don't use InitializeCore; just directly - * require the modules you need from InitializeCore for setup. - */ - - // If global.Promise is provided by Hermes, we are confident that it can provide - // all the methods needed by React Native, so we can directly use it. - if ((_global = global) != null && (_global$HermesInterna = _global.HermesInternal) != null && _global$HermesInterna.hasPromise != null && _global$HermesInterna.hasPromise()) { - var HermesPromise = global.Promise; - } else { - _$$_REQUIRE(_dependencyMap[0]).polyfillGlobal('Promise', function () { - return _$$_REQUIRE(_dependencyMap[1]); - }); - } -},94,[95,96]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - /** - * Sets an object's property. If a property with the same name exists, this will - * replace it but maintain its descriptor configuration. The property will be - * replaced with a lazy getter. - * - * In DEV mode the original property value will be preserved as `original[PropertyName]` - * so that, if necessary, it can be restored. For example, if you want to route - * network requests through DevTools (to trace them): - * - * global.XMLHttpRequest = global.originalXMLHttpRequest; - * - * @see https://github.com/facebook/react-native/issues/934 - */ - function polyfillObjectProperty(object, name, getValue) { - var descriptor = Object.getOwnPropertyDescriptor(object, name); - var _ref = descriptor || {}, - enumerable = _ref.enumerable, - writable = _ref.writable, - _ref$configurable = _ref.configurable, - configurable = _ref$configurable === undefined ? false : _ref$configurable; - if (descriptor && !configurable) { - console.error('Failed to set polyfill. ' + name + ' is not configurable.'); - return; - } - _$$_REQUIRE(_dependencyMap[0])(object, name, { - get: getValue, - enumerable: enumerable !== false, - writable: writable !== false - }); - } - function polyfillGlobal(name, getValue) { - polyfillObjectProperty(global, name, getValue); - } - module.exports = { - polyfillObjectProperty: polyfillObjectProperty, - polyfillGlobal: polyfillGlobal - }; -},95,[53]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - _$$_REQUIRE(_dependencyMap[0]); - module.exports = _$$_REQUIRE(_dependencyMap[1]); -},96,[97,99]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - 'use strict'; - - module.exports = _$$_REQUIRE(_dependencyMap[0]); - _$$_REQUIRE(_dependencyMap[0]).prototype.finally = function (f) { - return this.then(function (value) { - return _$$_REQUIRE(_dependencyMap[0]).resolve(f()).then(function () { - return value; - }); - }, function (err) { - return _$$_REQUIRE(_dependencyMap[0]).resolve(f()).then(function () { - throw err; - }); - }); - }; -},97,[98]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - 'use strict'; - - function noop() {} - - // States: - // - // 0 - pending - // 1 - fulfilled with _value - // 2 - rejected with _value - // 3 - adopted the state of another promise, _value - // - // once the state is no longer pending (0) it is immutable - - // All `_` prefixed properties will be reduced to `_{random number}` - // at build time to obfuscate them and discourage their use. - // We don't use symbols or Object.defineProperty to fully hide them - // because the performance isn't good enough. - - // to avoid using try/catch inside critical functions, we - // extract them to here. - var LAST_ERROR = null; - var IS_ERROR = {}; - function getThen(obj) { - try { - return obj.then; - } catch (ex) { - LAST_ERROR = ex; - return IS_ERROR; - } - } - function tryCallOne(fn, a) { - try { - return fn(a); - } catch (ex) { - LAST_ERROR = ex; - return IS_ERROR; - } - } - function tryCallTwo(fn, a, b) { - try { - fn(a, b); - } catch (ex) { - LAST_ERROR = ex; - return IS_ERROR; - } - } - module.exports = Promise; - function Promise(fn) { - if (typeof this !== 'object') { - throw new TypeError('Promises must be constructed via new'); - } - if (typeof fn !== 'function') { - throw new TypeError('Promise constructor\'s argument is not a function'); - } - this._x = 0; - this._y = 0; - this._z = null; - this._A = null; - if (fn === noop) return; - doResolve(fn, this); - } - Promise._B = null; - Promise._C = null; - Promise._D = noop; - Promise.prototype.then = function (onFulfilled, onRejected) { - if (this.constructor !== Promise) { - return safeThen(this, onFulfilled, onRejected); - } - var res = new Promise(noop); - handle(this, new Handler(onFulfilled, onRejected, res)); - return res; - }; - function safeThen(self, onFulfilled, onRejected) { - return new self.constructor(function (resolve, reject) { - var res = new Promise(noop); - res.then(resolve, reject); - handle(self, new Handler(onFulfilled, onRejected, res)); - }); - } - function handle(self, deferred) { - while (self._y === 3) { - self = self._z; - } - if (Promise._B) { - Promise._B(self); - } - if (self._y === 0) { - if (self._x === 0) { - self._x = 1; - self._A = deferred; - return; - } - if (self._x === 1) { - self._x = 2; - self._A = [self._A, deferred]; - return; - } - self._A.push(deferred); - return; - } - handleResolved(self, deferred); - } - function handleResolved(self, deferred) { - setImmediate(function () { - var cb = self._y === 1 ? deferred.onFulfilled : deferred.onRejected; - if (cb === null) { - if (self._y === 1) { - resolve(deferred.promise, self._z); - } else { - reject(deferred.promise, self._z); - } - return; - } - var ret = tryCallOne(cb, self._z); - if (ret === IS_ERROR) { - reject(deferred.promise, LAST_ERROR); - } else { - resolve(deferred.promise, ret); - } - }); - } - function resolve(self, newValue) { - // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure - if (newValue === self) { - return reject(self, new TypeError('A promise cannot be resolved with itself.')); - } - if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) { - var then = getThen(newValue); - if (then === IS_ERROR) { - return reject(self, LAST_ERROR); - } - if (then === self.then && newValue instanceof Promise) { - self._y = 3; - self._z = newValue; - finale(self); - return; - } else if (typeof then === 'function') { - doResolve(then.bind(newValue), self); - return; - } - } - self._y = 1; - self._z = newValue; - finale(self); - } - function reject(self, newValue) { - self._y = 2; - self._z = newValue; - if (Promise._C) { - Promise._C(self, newValue); - } - finale(self); - } - function finale(self) { - if (self._x === 1) { - handle(self, self._A); - self._A = null; - } - if (self._x === 2) { - for (var i = 0; i < self._A.length; i++) { - handle(self, self._A[i]); - } - self._A = null; - } - } - function Handler(onFulfilled, onRejected, promise) { - this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null; - this.onRejected = typeof onRejected === 'function' ? onRejected : null; - this.promise = promise; - } - - /** - * Take a potentially misbehaving resolver function and make sure - * onFulfilled and onRejected are only called once. - * - * Makes no guarantees about asynchrony. - */ - function doResolve(fn, promise) { - var done = false; - var res = tryCallTwo(fn, function (value) { - if (done) return; - done = true; - resolve(promise, value); - }, function (reason) { - if (done) return; - done = true; - reject(promise, reason); - }); - if (!done && res === IS_ERROR) { - done = true; - reject(promise, LAST_ERROR); - } - } -},98,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - 'use strict'; - - //This file contains the ES6 extensions to the core Promises/A+ API - module.exports = _$$_REQUIRE(_dependencyMap[0]); - - /* Static Functions */ - - var TRUE = valuePromise(true); - var FALSE = valuePromise(false); - var NULL = valuePromise(null); - var UNDEFINED = valuePromise(undefined); - var ZERO = valuePromise(0); - var EMPTYSTRING = valuePromise(''); - function valuePromise(value) { - var p = new (_$$_REQUIRE(_dependencyMap[0]))(_$$_REQUIRE(_dependencyMap[0])._D); - p._y = 1; - p._z = value; - return p; - } - _$$_REQUIRE(_dependencyMap[0]).resolve = function (value) { - if (value instanceof _$$_REQUIRE(_dependencyMap[0])) return value; - if (value === null) return NULL; - if (value === undefined) return UNDEFINED; - if (value === true) return TRUE; - if (value === false) return FALSE; - if (value === 0) return ZERO; - if (value === '') return EMPTYSTRING; - if (typeof value === 'object' || typeof value === 'function') { - try { - var then = value.then; - if (typeof then === 'function') { - return new (_$$_REQUIRE(_dependencyMap[0]))(then.bind(value)); - } - } catch (ex) { - return new (_$$_REQUIRE(_dependencyMap[0]))(function (resolve, reject) { - reject(ex); - }); - } - } - return valuePromise(value); - }; - var _iterableToArray = function iterableToArray(iterable) { - if (typeof Array.from === 'function') { - // ES2015+, iterables exist - _iterableToArray = Array.from; - return Array.from(iterable); - } - - // ES5, only arrays and array-likes exist - _iterableToArray = function iterableToArray(x) { - return Array.prototype.slice.call(x); - }; - return Array.prototype.slice.call(iterable); - }; - _$$_REQUIRE(_dependencyMap[0]).all = function (arr) { - var args = _iterableToArray(arr); - return new (_$$_REQUIRE(_dependencyMap[0]))(function (resolve, reject) { - if (args.length === 0) return resolve([]); - var remaining = args.length; - function res(i, val) { - if (val && (typeof val === 'object' || typeof val === 'function')) { - if (val instanceof _$$_REQUIRE(_dependencyMap[0]) && val.then === _$$_REQUIRE(_dependencyMap[0]).prototype.then) { - while (val._y === 3) { - val = val._z; - } - if (val._y === 1) return res(i, val._z); - if (val._y === 2) reject(val._z); - val.then(function (val) { - res(i, val); - }, reject); - return; - } else { - var then = val.then; - if (typeof then === 'function') { - var p = new (_$$_REQUIRE(_dependencyMap[0]))(then.bind(val)); - p.then(function (val) { - res(i, val); - }, reject); - return; - } - } - } - args[i] = val; - if (--remaining === 0) { - resolve(args); - } - } - for (var i = 0; i < args.length; i++) { - res(i, args[i]); - } - }); - }; - function onSettledFulfill(value) { - return { - status: 'fulfilled', - value: value - }; - } - function onSettledReject(reason) { - return { - status: 'rejected', - reason: reason - }; - } - function mapAllSettled(item) { - if (item && (typeof item === 'object' || typeof item === 'function')) { - if (item instanceof _$$_REQUIRE(_dependencyMap[0]) && item.then === _$$_REQUIRE(_dependencyMap[0]).prototype.then) { - return item.then(onSettledFulfill, onSettledReject); - } - var then = item.then; - if (typeof then === 'function') { - return new (_$$_REQUIRE(_dependencyMap[0]))(then.bind(item)).then(onSettledFulfill, onSettledReject); - } - } - return onSettledFulfill(item); - } - _$$_REQUIRE(_dependencyMap[0]).allSettled = function (iterable) { - return _$$_REQUIRE(_dependencyMap[0]).all(_iterableToArray(iterable).map(mapAllSettled)); - }; - _$$_REQUIRE(_dependencyMap[0]).reject = function (value) { - return new (_$$_REQUIRE(_dependencyMap[0]))(function (resolve, reject) { - reject(value); - }); - }; - _$$_REQUIRE(_dependencyMap[0]).race = function (values) { - return new (_$$_REQUIRE(_dependencyMap[0]))(function (resolve, reject) { - _iterableToArray(values).forEach(function (value) { - _$$_REQUIRE(_dependencyMap[0]).resolve(value).then(resolve, reject); - }); - }); - }; - - /* Prototype Methods */ - - _$$_REQUIRE(_dependencyMap[0]).prototype['catch'] = function (onRejected) { - return this.then(null, onRejected); - }; - function getAggregateError(errors) { - if (typeof AggregateError === 'function') { - return new AggregateError(errors, 'All promises were rejected'); - } - var error = new Error('All promises were rejected'); - error.name = 'AggregateError'; - error.errors = errors; - return error; - } - _$$_REQUIRE(_dependencyMap[0]).any = function promiseAny(values) { - return new (_$$_REQUIRE(_dependencyMap[0]))(function (resolve, reject) { - var promises = _iterableToArray(values); - var hasResolved = false; - var rejectionReasons = []; - function resolveOnce(value) { - if (!hasResolved) { - hasResolved = true; - resolve(value); - } - } - function rejectionCheck(reason) { - rejectionReasons.push(reason); - if (rejectionReasons.length === promises.length) { - reject(getAggregateError(rejectionReasons)); - } - } - if (promises.length === 0) { - reject(getAggregateError(rejectionReasons)); - } else { - promises.forEach(function (value) { - _$$_REQUIRE(_dependencyMap[0]).resolve(value).then(resolveOnce, rejectionCheck); - }); - } - }); - }; -},99,[98]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - /** - * Set up regenerator. - * You can use this module directly, or just require InitializeCore. - */ - - var hasNativeGenerator; - try { - // If this function was lowered by regenerator-transform, it will try to - // access `global.regeneratorRuntime` which doesn't exist yet and will throw. - hasNativeGenerator = _$$_REQUIRE(_dependencyMap[0]).hasNativeConstructor(function* () {}, 'GeneratorFunction'); - } catch (_unused) { - // In this case, we know generators are not provided natively. - hasNativeGenerator = false; - } - - // If generators are provided natively, which suggests that there was no - // regenerator-transform, then there is no need to set up the runtime. - if (!hasNativeGenerator) { - _$$_REQUIRE(_dependencyMap[1]).polyfillGlobal('regeneratorRuntime', function () { - // The require just sets up the global, so make sure when we first - // invoke it the global does not exist - delete global.regeneratorRuntime; - - // regenerator-runtime/runtime exports the regeneratorRuntime object, so we - // can return it safely. - return _$$_REQUIRE(_dependencyMap[2]); // flowlint-line untyped-import:off - }); - } -},100,[101,95,102]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - /** - * @return whether or not a @param {function} f is provided natively by calling - * `toString` and check if the result includes `[native code]` in it. - * - * Note that a polyfill can technically fake this behavior but few does it. - * Therefore, this is usually good enough for our purpose. - */ - function isNativeFunction(f) { - return typeof f === 'function' && f.toString().indexOf('[native code]') > -1; - } - - /** - * @return whether or not the constructor of @param {object} o is an native - * function named with @param {string} expectedName. - */ - function hasNativeConstructor(o, expectedName) { - var con = Object.getPrototypeOf(o).constructor; - return con.name === expectedName && isNativeFunction(con); - } - module.exports = { - isNativeFunction: isNativeFunction, - hasNativeConstructor: hasNativeConstructor - }; -},101,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) 2014-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - var runtime = function (exports) { - "use strict"; - - var Op = Object.prototype; - var hasOwn = Op.hasOwnProperty; - var defineProperty = Object.defineProperty || function (obj, key, desc) { - obj[key] = desc.value; - }; - var undefined; // More compressible than void 0. - var $Symbol = typeof Symbol === "function" ? Symbol : {}; - var iteratorSymbol = $Symbol.iterator || "@@iterator"; - var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; - var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - function define(obj, key, value) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - return obj[key]; - } - try { - // IE 8 has a broken Object.defineProperty that only works on DOM objects. - define({}, ""); - } catch (err) { - define = function define(obj, key, value) { - return obj[key] = value; - }; - } - function wrap(innerFn, outerFn, self, tryLocsList) { - // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; - var generator = Object.create(protoGenerator.prototype); - var context = new Context(tryLocsList || []); - - // The ._invoke method unifies the implementations of the .next, - // .throw, and .return methods. - defineProperty(generator, "_invoke", { - value: makeInvokeMethod(innerFn, self, context) - }); - return generator; - } - exports.wrap = wrap; - - // Try/catch helper to minimize deoptimizations. Returns a completion - // record like context.tryEntries[i].completion. This interface could - // have been (and was previously) designed to take a closure to be - // invoked without arguments, but in all the cases we care about we - // already have an existing method we want to call, so there's no need - // to create a new function object. We can even get away with assuming - // the method takes exactly one argument, since that happens to be true - // in every case, so we don't have to touch the arguments object. The - // only additional allocation required is the completion record, which - // has a stable shape and so hopefully should be cheap to allocate. - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; - } - } - var GenStateSuspendedStart = "suspendedStart"; - var GenStateSuspendedYield = "suspendedYield"; - var GenStateExecuting = "executing"; - var GenStateCompleted = "completed"; - - // Returning this object from the innerFn has the same effect as - // breaking out of the dispatch switch statement. - var ContinueSentinel = {}; - - // Dummy constructor functions that we use as the .constructor and - // .constructor.prototype properties for functions that return Generator - // objects. For full spec compliance, you may wish to configure your - // minifier not to mangle the names of these two functions. - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - - // This is a polyfill for %IteratorPrototype% for environments that - // don't natively support it. - var IteratorPrototype = {}; - define(IteratorPrototype, iteratorSymbol, function () { - return this; - }); - var getProto = Object.getPrototypeOf; - var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { - // This environment has a native %IteratorPrototype%; use it instead - // of the polyfill. - IteratorPrototype = NativeIteratorPrototype; - } - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - GeneratorFunction.prototype = GeneratorFunctionPrototype; - defineProperty(Gp, "constructor", { - value: GeneratorFunctionPrototype, - configurable: true - }); - defineProperty(GeneratorFunctionPrototype, "constructor", { - value: GeneratorFunction, - configurable: true - }); - GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"); - - // Helper for defining the .next, .throw, and .return methods of the - // Iterator interface in terms of a single ._invoke method. - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - define(prototype, method, function (arg) { - return this._invoke(method, arg); - }); - }); - } - exports.isGeneratorFunction = function (genFun) { - var ctor = typeof genFun === "function" && genFun.constructor; - return ctor ? ctor === GeneratorFunction || - // For the native GeneratorFunction constructor, the best we can - // do is to check its .name property. - (ctor.displayName || ctor.name) === "GeneratorFunction" : false; - }; - exports.mark = function (genFun) { - if (Object.setPrototypeOf) { - Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); - } else { - genFun.__proto__ = GeneratorFunctionPrototype; - define(genFun, toStringTagSymbol, "GeneratorFunction"); - } - genFun.prototype = Object.create(Gp); - return genFun; - }; - - // Within the body of any async function, `await x` is transformed to - // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test - // `hasOwn.call(value, "__await")` to determine if the yielded value is - // meant to be awaited. - exports.awrap = function (arg) { - return { - __await: arg - }; - }; - function AsyncIterator(generator, PromiseImpl) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if (record.type === "throw") { - reject(record.arg); - } else { - var result = record.arg; - var value = result.value; - if (value && typeof value === "object" && hasOwn.call(value, "__await")) { - return PromiseImpl.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }); - } - return PromiseImpl.resolve(value).then(function (unwrapped) { - // When a yielded Promise is resolved, its final value becomes - // the .value of the Promise<{value,done}> result for the - // current iteration. - result.value = unwrapped; - resolve(result); - }, function (error) { - // If a rejected Promise was yielded, throw the rejection back - // into the async generator function so it can be handled there. - return invoke("throw", error, resolve, reject); - }); - } - } - var previousPromise; - function enqueue(method, arg) { - function callInvokeWithMethodAndArg() { - return new PromiseImpl(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - return previousPromise = - // If enqueue has been called before, then we want to wait until - // all previous Promises have been resolved before calling invoke, - // so that results are always delivered in the correct order. If - // enqueue has not been called before, then it is important to - // call invoke immediately, without waiting on a callback to fire, - // so that the async generator function has the opportunity to do - // any necessary setup in a predictable way. This predictability - // is why the Promise constructor synchronously invokes its - // executor callback, and why async functions synchronously - // execute code before the first await. Since we implement simple - // async functions in terms of async generators, it is especially - // important to get this right, even though it requires care. - previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, - // Avoid propagating failures to Promises returned by later - // invocations of the iterator. - callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } - - // Define the unified helper method that is used to implement .next, - // .throw, and .return (see defineIteratorMethods). - defineProperty(this, "_invoke", { - value: enqueue - }); - } - defineIteratorMethods(AsyncIterator.prototype); - define(AsyncIterator.prototype, asyncIteratorSymbol, function () { - return this; - }); - exports.AsyncIterator = AsyncIterator; - - // Note that simple async functions are implemented on top of - // AsyncIterator objects; they just return a Promise for the value of - // the final result produced by the iterator. - exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { - if (PromiseImpl === undefined) PromiseImpl = Promise; - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); - return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator. - : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }; - function makeInvokeMethod(innerFn, self, context) { - var state = GenStateSuspendedStart; - return function invoke(method, arg) { - if (state === GenStateExecuting) { - throw new Error("Generator is already running"); - } - if (state === GenStateCompleted) { - if (method === "throw") { - throw arg; - } - - // Be forgiving, per 25.3.3.3.3 of the spec: - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume - return doneResult(); - } - context.method = method; - context.arg = arg; - while (true) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - if (context.method === "next") { - // Setting context._sent for legacy support of Babel's - // function.sent implementation. - context.sent = context._sent = context.arg; - } else if (context.method === "throw") { - if (state === GenStateSuspendedStart) { - state = GenStateCompleted; - throw context.arg; - } - context.dispatchException(context.arg); - } else if (context.method === "return") { - context.abrupt("return", context.arg); - } - state = GenStateExecuting; - var record = tryCatch(innerFn, self, context); - if (record.type === "normal") { - // If an exception is thrown from innerFn, we leave state === - // GenStateExecuting and loop back for another invocation. - state = context.done ? GenStateCompleted : GenStateSuspendedYield; - if (record.arg === ContinueSentinel) { - continue; - } - return { - value: record.arg, - done: context.done - }; - } else if (record.type === "throw") { - state = GenStateCompleted; - // Dispatch the exception by looping back around to the - // context.dispatchException(context.arg) call above. - context.method = "throw"; - context.arg = record.arg; - } - } - }; - } - - // Call delegate.iterator[context.method](context.arg) and handle the - // result, either by returning a { value, done } result from the - // delegate iterator, or by modifying context.method and context.arg, - // setting context.delegate to null, and returning the ContinueSentinel. - function maybeInvokeDelegate(delegate, context) { - var methodName = context.method; - var method = delegate.iterator[methodName]; - if (method === undefined) { - // A .throw or .return when the delegate iterator has no .throw - // method, or a missing .next mehtod, always terminate the - // yield* loop. - context.delegate = null; - - // Note: ["return"] must be used for ES3 parsing compatibility. - if (methodName === "throw" && delegate.iterator["return"]) { - // If the delegate iterator has a return method, give it a - // chance to clean up. - context.method = "return"; - context.arg = undefined; - maybeInvokeDelegate(delegate, context); - if (context.method === "throw") { - // If maybeInvokeDelegate(context) changed context.method from - // "return" to "throw", let that override the TypeError below. - return ContinueSentinel; - } - } - if (methodName !== "return") { - context.method = "throw"; - context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method"); - } - return ContinueSentinel; - } - var record = tryCatch(method, delegate.iterator, context.arg); - if (record.type === "throw") { - context.method = "throw"; - context.arg = record.arg; - context.delegate = null; - return ContinueSentinel; - } - var info = record.arg; - if (!info) { - context.method = "throw"; - context.arg = new TypeError("iterator result is not an object"); - context.delegate = null; - return ContinueSentinel; - } - if (info.done) { - // Assign the result of the finished delegate to the temporary - // variable specified by delegate.resultName (see delegateYield). - context[delegate.resultName] = info.value; - - // Resume execution at the desired location (see delegateYield). - context.next = delegate.nextLoc; - - // If context.method was "throw" but the delegate handled the - // exception, let the outer generator proceed normally. If - // context.method was "next", forget context.arg since it has been - // "consumed" by the delegate iterator. If context.method was - // "return", allow the original .return call to continue in the - // outer generator. - if (context.method !== "return") { - context.method = "next"; - context.arg = undefined; - } - } else { - // Re-yield the result returned by the delegate method. - return info; - } - - // The delegate iterator is finished, so forget it and continue with - // the outer generator. - context.delegate = null; - return ContinueSentinel; - } - - // Define Generator.prototype.{next,throw,return} in terms of the - // unified ._invoke helper method. - defineIteratorMethods(Gp); - define(Gp, toStringTagSymbol, "Generator"); - - // A Generator should always return itself as the iterator object when the - // @@iterator function is called on it. Some browsers' implementations of the - // iterator prototype chain incorrectly implement this, causing the Generator - // object to not be returned from this call. This ensures that doesn't happen. - // See https://github.com/facebook/regenerator/issues/274 for more details. - define(Gp, iteratorSymbol, function () { - return this; - }); - define(Gp, "toString", function () { - return "[object Generator]"; - }); - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - if (1 in locs) { - entry.catchLoc = locs[1]; - } - if (2 in locs) { - entry.finallyLoc = locs[2]; - entry.afterLoc = locs[3]; - } - this.tryEntries.push(entry); - } - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal"; - delete record.arg; - entry.completion = record; - } - function Context(tryLocsList) { - // The root entry object (effectively a try statement without a catch - // or a finally block) gives us a place to store values thrown from - // locations where there is no enclosing try statement. - this.tryEntries = [{ - tryLoc: "root" - }]; - tryLocsList.forEach(pushTryEntry, this); - this.reset(true); - } - exports.keys = function (val) { - var object = Object(val); - var keys = []; - for (var key in object) { - keys.push(key); - } - keys.reverse(); - - // Rather than returning an object with a next method, we keep - // things simple and return the next function itself. - return function next() { - while (keys.length) { - var key = keys.pop(); - if (key in object) { - next.value = key; - next.done = false; - return next; - } - } - - // To avoid creating an additional object, we just hang the .value - // and .done properties off the next function object itself. This - // also ensures that the minifier will not anonymize the function. - next.done = true; - return next; - }; - }; - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) { - return iteratorMethod.call(iterable); - } - if (typeof iterable.next === "function") { - return iterable; - } - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - while (++i < iterable.length) { - if (hasOwn.call(iterable, i)) { - next.value = iterable[i]; - next.done = false; - return next; - } - } - next.value = undefined; - next.done = true; - return next; - }; - return next.next = next; - } - } - - // Return an iterator with no values. - return { - next: doneResult - }; - } - exports.values = values; - function doneResult() { - return { - value: undefined, - done: true - }; - } - Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - this.prev = 0; - this.next = 0; - // Resetting context._sent for legacy support of Babel's - // function.sent implementation. - this.sent = this._sent = undefined; - this.done = false; - this.delegate = null; - this.method = "next"; - this.arg = undefined; - this.tryEntries.forEach(resetTryEntry); - if (!skipTempReset) { - for (var name in this) { - // Not sure about the optimal order of these conditions: - if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { - this[name] = undefined; - } - } - } - }, - stop: function stop() { - this.done = true; - var rootEntry = this.tryEntries[0]; - var rootRecord = rootEntry.completion; - if (rootRecord.type === "throw") { - throw rootRecord.arg; - } - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) { - throw exception; - } - var context = this; - function handle(loc, caught) { - record.type = "throw"; - record.arg = exception; - context.next = loc; - if (caught) { - // If the dispatched exception was caught by a catch block, - // then let that catch block handle the exception normally. - context.method = "next"; - context.arg = undefined; - } - return !!caught; - } - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - var record = entry.completion; - if (entry.tryLoc === "root") { - // Exception thrown outside of any try block that could handle - // it, so set the completion value of the entire function to - // throw the exception. - return handle("end"); - } - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"); - var hasFinally = hasOwn.call(entry, "finallyLoc"); - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } else if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else if (hasCatch) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } - } else if (hasFinally) { - if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else { - throw new Error("try statement without catch or finally"); - } - } - } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { - // Ignore the finally entry if control is not jumping to a - // location outside the try/catch block. - finallyEntry = null; - } - var record = finallyEntry ? finallyEntry.completion : {}; - record.type = type; - record.arg = arg; - if (finallyEntry) { - this.method = "next"; - this.next = finallyEntry.finallyLoc; - return ContinueSentinel; - } - return this.complete(record); - }, - complete: function complete(record, afterLoc) { - if (record.type === "throw") { - throw record.arg; - } - if (record.type === "break" || record.type === "continue") { - this.next = record.arg; - } else if (record.type === "return") { - this.rval = this.arg = record.arg; - this.method = "return"; - this.next = "end"; - } else if (record.type === "normal" && afterLoc) { - this.next = afterLoc; - } - return ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) { - this.complete(entry.completion, entry.afterLoc); - resetTryEntry(entry); - return ContinueSentinel; - } - } - }, - "catch": function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if (record.type === "throw") { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; - } - } - - // The context.catch method must only be called with a location - // argument that corresponds to a known catch block. - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }; - if (this.method === "next") { - // Deliberately forget the last sent value so that we don't - // accidentally pass it on to the delegate. - this.arg = undefined; - } - return ContinueSentinel; - } - }; - - // Regardless of whether this script is executing as a CommonJS module - // or not, return the runtime object so that we can declare the variable - // regeneratorRuntime in the outer scope, which allows this module to be - // injected easily by `bin/regenerator --include-runtime script.js`. - return exports; - }( - // If this script is executing as a CommonJS module, use module.exports - // as the regeneratorRuntime namespace. Otherwise create a new empty - // object. Either way, the resulting object will be used to initialize - // the regeneratorRuntime variable at the top of this file. - typeof module === "object" ? module.exports : {}); - try { - regeneratorRuntime = runtime; - } catch (accidentalStrictMode) { - // This module should not be running in strict mode, so the above - // assignment should always work unless something is misconfigured. Just - // in case runtime.js accidentally runs in strict mode, in modern engines - // we can explicitly access globalThis. In older engines we can escape - // strict mode using a global Function call. This could conceivably fail - // if a Content Security Policy forbids using Function, but in that case - // the proper solution is to fix the accidental strict mode problem. If - // you've misconfigured your bundler to force strict mode and applied a - // CSP to forbid Function, and you're not willing to fix either of those - // problems, please detail your unique predicament in a GitHub issue. - if (typeof globalThis === "object") { - globalThis.regeneratorRuntime = runtime; - } else { - Function("r", "regeneratorRuntime = r")(runtime); - } - } -},102,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - var _global$HermesInterna, _global$HermesInterna2; - // Currently, Hermes `Promise` is implemented via Internal Bytecode. - var hasHermesPromiseQueuedToJSVM = ((_global$HermesInterna = global.HermesInternal) == null ? undefined : _global$HermesInterna.hasPromise == null ? undefined : _global$HermesInterna.hasPromise()) === true && ((_global$HermesInterna2 = global.HermesInternal) == null ? undefined : _global$HermesInterna2.useEngineQueue == null ? undefined : _global$HermesInterna2.useEngineQueue()) === true; - var hasNativePromise = _$$_REQUIRE(_dependencyMap[0]).isNativeFunction(Promise); - var hasPromiseQueuedToJSVM = hasNativePromise || hasHermesPromiseQueuedToJSVM; - - // In bridgeless mode, timers are host functions installed from cpp. - if (global.RN$Bridgeless !== true) { - /** - * Set up timers. - * You can use this module directly, or just require InitializeCore. - */ - var defineLazyTimer = function defineLazyTimer(name) { - _$$_REQUIRE(_dependencyMap[1]).polyfillGlobal(name, function () { - return _$$_REQUIRE(_dependencyMap[2])[name]; - }); - }; - defineLazyTimer('setTimeout'); - defineLazyTimer('clearTimeout'); - defineLazyTimer('setInterval'); - defineLazyTimer('clearInterval'); - defineLazyTimer('requestAnimationFrame'); - defineLazyTimer('cancelAnimationFrame'); - defineLazyTimer('requestIdleCallback'); - defineLazyTimer('cancelIdleCallback'); - } - - /** - * Set up immediate APIs, which is required to use the same microtask queue - * as the Promise. - */ - if (hasPromiseQueuedToJSVM) { - // When promise queues to the JSVM microtasks queue, we shim the immediate - // APIs via `queueMicrotask` to maintain the backward compatibility. - _$$_REQUIRE(_dependencyMap[1]).polyfillGlobal('setImmediate', function () { - return _$$_REQUIRE(_dependencyMap[3]).setImmediate; - }); - _$$_REQUIRE(_dependencyMap[1]).polyfillGlobal('clearImmediate', function () { - return _$$_REQUIRE(_dependencyMap[3]).clearImmediate; - }); - } else { - // When promise was polyfilled hence is queued to the RN microtask queue, - // we polyfill the immediate APIs as aliases to the ReactNativeMicrotask APIs. - // Note that in bridgeless mode, immediate APIs are installed from cpp. - if (global.RN$Bridgeless !== true) { - _$$_REQUIRE(_dependencyMap[1]).polyfillGlobal('setImmediate', function () { - return _$$_REQUIRE(_dependencyMap[2]).queueReactNativeMicrotask; - }); - _$$_REQUIRE(_dependencyMap[1]).polyfillGlobal('clearImmediate', function () { - return _$$_REQUIRE(_dependencyMap[2]).clearReactNativeMicrotask; - }); - } - } - - /** - * Set up the microtask queueing API, which is required to use the same - * microtask queue as the Promise. - */ - if (hasHermesPromiseQueuedToJSVM) { - // Fast path for Hermes. - _$$_REQUIRE(_dependencyMap[1]).polyfillGlobal('queueMicrotask', function () { - var _global$HermesInterna3; - return (_global$HermesInterna3 = global.HermesInternal) == null ? undefined : _global$HermesInterna3.enqueueJob; - }); - } else { - // Polyfill it with promise (regardless it's polyfilled or native) otherwise. - _$$_REQUIRE(_dependencyMap[1]).polyfillGlobal('queueMicrotask', function () { - return _$$_REQUIRE(_dependencyMap[4]).default; - }); - } -},103,[101,95,104,106,107]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var _NativeTiming = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - /** - * JS implementation of timer functions. Must be completely driven by an - * external clock signal, all that's stored here is timerID, timer type, and - * callback. - */ - - // These timing constants should be kept in sync with the ones in native ios and - // android `RCTTiming` module. - var FRAME_DURATION = 16.666666666666668; - var IDLE_CALLBACK_FRAME_DEADLINE = 1; - - // Parallel arrays - var callbacks = []; - var types = []; - var timerIDs = []; - var reactNativeMicrotasks = []; - var requestIdleCallbacks = []; - var requestIdleCallbackTimeouts = {}; - var GUID = 1; - var errors = []; - var hasEmittedTimeDriftWarning = false; - - // Returns a free index if one is available, and the next consecutive index otherwise. - function _getFreeIndex() { - var freeIndex = timerIDs.indexOf(null); - if (freeIndex === -1) { - freeIndex = timerIDs.length; - } - return freeIndex; - } - function _allocateCallback(func, type) { - var id = GUID++; - var freeIndex = _getFreeIndex(); - timerIDs[freeIndex] = id; - callbacks[freeIndex] = func; - types[freeIndex] = type; - return id; - } - - /** - * Calls the callback associated with the ID. Also unregister that callback - * if it was a one time timer (setTimeout), and not unregister it if it was - * recurring (setInterval). - */ - function _callTimer(timerID, frameTime, didTimeout) { - if (timerID > GUID) { - console.warn('Tried to call timer with ID %s but no such timer exists.', timerID); - } - - // timerIndex of -1 means that no timer with that ID exists. There are - // two situations when this happens, when a garbage timer ID was given - // and when a previously existing timer was deleted before this callback - // fired. In both cases we want to ignore the timer id, but in the former - // case we warn as well. - var timerIndex = timerIDs.indexOf(timerID); - if (timerIndex === -1) { - return; - } - var type = types[timerIndex]; - var callback = callbacks[timerIndex]; - if (!callback || !type) { - console.error('No callback found for timerID ' + timerID); - return; - } - // Clear the metadata - if (type !== 'setInterval') { - _clearIndex(timerIndex); - } - try { - if (type === 'setTimeout' || type === 'setInterval' || type === 'queueReactNativeMicrotask') { - callback(); - } else if (type === 'requestAnimationFrame') { - callback(global.performance.now()); - } else if (type === 'requestIdleCallback') { - callback({ - timeRemaining: function timeRemaining() { - // TODO: Optimisation: allow running for longer than one frame if - // there are no pending JS calls on the bridge from native. This - // would require a way to check the bridge queue synchronously. - return Math.max(0, FRAME_DURATION - (global.performance.now() - frameTime)); - }, - didTimeout: !!didTimeout - }); - } else { - console.error('Tried to call a callback with invalid type: ' + type); - } - } catch (e) { - // Don't rethrow so that we can run all timers. - errors.push(e); - } - } - - /** - * Performs a single pass over the enqueued reactNativeMicrotasks. Returns whether - * more reactNativeMicrotasks are queued up (can be used as a condition a while loop). - */ - function _callReactNativeMicrotasksPass() { - if (reactNativeMicrotasks.length === 0) { - return false; - } - // The main reason to extract a single pass is so that we can track - // in the system trace - var passReactNativeMicrotasks = reactNativeMicrotasks; - reactNativeMicrotasks = []; - - // Use for loop rather than forEach as per @vjeux's advice - // https://github.com/facebook/react-native/commit/c8fd9f7588ad02d2293cac7224715f4af7b0f352#commitcomment-14570051 - for (var i = 0; i < passReactNativeMicrotasks.length; ++i) { - _callTimer(passReactNativeMicrotasks[i], 0); - } - return reactNativeMicrotasks.length > 0; - } - function _clearIndex(i) { - timerIDs[i] = null; - callbacks[i] = null; - types[i] = null; - } - function _freeCallback(timerID) { - // timerIDs contains nulls after timers have been removed; - // ignore nulls upfront so indexOf doesn't find them - if (timerID == null) { - return; - } - var index = timerIDs.indexOf(timerID); - // See corresponding comment in `callTimers` for reasoning behind this - if (index !== -1) { - var type = types[index]; - _clearIndex(index); - if (type !== 'queueReactNativeMicrotask' && type !== 'requestIdleCallback') { - deleteTimer(timerID); - } - } - } - - /** - * JS implementation of timer functions. Must be completely driven by an - * external clock signal, all that's stored here is timerID, timer type, and - * callback. - */ - var JSTimers = { - /** - * @param {function} func Callback to be invoked after `duration` ms. - * @param {number} duration Number of milliseconds. - */ - setTimeout: function setTimeout(func, duration) { - for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { - args[_key - 2] = arguments[_key]; - } - var id = _allocateCallback(function () { - return func.apply(undefined, args); - }, 'setTimeout'); - createTimer(id, duration || 0, Date.now(), /* recurring */false); - return id; - }, - /** - * @param {function} func Callback to be invoked every `duration` ms. - * @param {number} duration Number of milliseconds. - */ - setInterval: function setInterval(func, duration) { - for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { - args[_key2 - 2] = arguments[_key2]; - } - var id = _allocateCallback(function () { - return func.apply(undefined, args); - }, 'setInterval'); - createTimer(id, duration || 0, Date.now(), /* recurring */true); - return id; - }, - /** - * The React Native microtask mechanism is used to back public APIs e.g. - * `queueMicrotask`, `clearImmediate`, and `setImmediate` (which is used by - * the Promise polyfill) when the JSVM microtask mechanism is not used. - * - * @param {function} func Callback to be invoked before the end of the - * current JavaScript execution loop. - */ - queueReactNativeMicrotask: function queueReactNativeMicrotask(func) { - for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) { - args[_key3 - 1] = arguments[_key3]; - } - var id = _allocateCallback(function () { - return func.apply(undefined, args); - }, 'queueReactNativeMicrotask'); - reactNativeMicrotasks.push(id); - return id; - }, - /** - * @param {function} func Callback to be invoked every frame. - */ - requestAnimationFrame: function requestAnimationFrame(func) { - var id = _allocateCallback(func, 'requestAnimationFrame'); - createTimer(id, 1, Date.now(), /* recurring */false); - return id; - }, - /** - * @param {function} func Callback to be invoked every frame and provided - * with time remaining in frame. - * @param {?object} options - */ - requestIdleCallback: function requestIdleCallback(func, options) { - if (requestIdleCallbacks.length === 0) { - setSendIdleEvents(true); - } - var timeout = options && options.timeout; - var id = _allocateCallback(timeout != null ? function (deadline) { - var timeoutId = requestIdleCallbackTimeouts[id]; - if (timeoutId) { - JSTimers.clearTimeout(timeoutId); - delete requestIdleCallbackTimeouts[id]; - } - return func(deadline); - } : func, 'requestIdleCallback'); - requestIdleCallbacks.push(id); - if (timeout != null) { - var timeoutId = JSTimers.setTimeout(function () { - var index = requestIdleCallbacks.indexOf(id); - if (index > -1) { - requestIdleCallbacks.splice(index, 1); - _callTimer(id, global.performance.now(), true); - } - delete requestIdleCallbackTimeouts[id]; - if (requestIdleCallbacks.length === 0) { - setSendIdleEvents(false); - } - }, timeout); - requestIdleCallbackTimeouts[id] = timeoutId; - } - return id; - }, - cancelIdleCallback: function cancelIdleCallback(timerID) { - _freeCallback(timerID); - var index = requestIdleCallbacks.indexOf(timerID); - if (index !== -1) { - requestIdleCallbacks.splice(index, 1); - } - var timeoutId = requestIdleCallbackTimeouts[timerID]; - if (timeoutId) { - JSTimers.clearTimeout(timeoutId); - delete requestIdleCallbackTimeouts[timerID]; - } - if (requestIdleCallbacks.length === 0) { - setSendIdleEvents(false); - } - }, - clearTimeout: function clearTimeout(timerID) { - _freeCallback(timerID); - }, - clearInterval: function clearInterval(timerID) { - _freeCallback(timerID); - }, - clearReactNativeMicrotask: function clearReactNativeMicrotask(timerID) { - _freeCallback(timerID); - var index = reactNativeMicrotasks.indexOf(timerID); - if (index !== -1) { - reactNativeMicrotasks.splice(index, 1); - } - }, - cancelAnimationFrame: function cancelAnimationFrame(timerID) { - _freeCallback(timerID); - }, - /** - * This is called from the native side. We are passed an array of timerIDs, - * and - */ - callTimers: function callTimers(timersToCall) { - _$$_REQUIRE(_dependencyMap[2])(timersToCall.length !== 0, 'Cannot call `callTimers` with an empty list of IDs.'); - errors.length = 0; - for (var i = 0; i < timersToCall.length; i++) { - _callTimer(timersToCall[i], 0); - } - var errorCount = errors.length; - if (errorCount > 0) { - if (errorCount > 1) { - // Throw all the other errors in a setTimeout, which will throw each - // error one at a time - for (var ii = 1; ii < errorCount; ii++) { - JSTimers.setTimeout(function (error) { - throw error; - }.bind(null, errors[ii]), 0); - } - } - throw errors[0]; - } - }, - callIdleCallbacks: function callIdleCallbacks(frameTime) { - if (FRAME_DURATION - (Date.now() - frameTime) < IDLE_CALLBACK_FRAME_DEADLINE) { - return; - } - errors.length = 0; - if (requestIdleCallbacks.length > 0) { - var passIdleCallbacks = requestIdleCallbacks; - requestIdleCallbacks = []; - for (var i = 0; i < passIdleCallbacks.length; ++i) { - _callTimer(passIdleCallbacks[i], frameTime); - } - } - if (requestIdleCallbacks.length === 0) { - setSendIdleEvents(false); - } - errors.forEach(function (error) { - return JSTimers.setTimeout(function () { - throw error; - }, 0); - }); - }, - /** - * This is called after we execute any command we receive from native but - * before we hand control back to native. - */ - callReactNativeMicrotasks: function callReactNativeMicrotasks() { - errors.length = 0; - while (_callReactNativeMicrotasksPass()) {} - errors.forEach(function (error) { - return JSTimers.setTimeout(function () { - throw error; - }, 0); - }); - }, - /** - * Called from native (in development) when environment times are out-of-sync. - */ - emitTimeDriftWarning: function emitTimeDriftWarning(warningMessage) { - if (hasEmittedTimeDriftWarning) { - return; - } - hasEmittedTimeDriftWarning = true; - console.warn(warningMessage); - } - }; - function createTimer(callbackID, duration, jsSchedulingTime, repeats) { - _$$_REQUIRE(_dependencyMap[2])(_NativeTiming.default, 'NativeTiming is available'); - _NativeTiming.default.createTimer(callbackID, duration, jsSchedulingTime, repeats); - } - function deleteTimer(timerID) { - _$$_REQUIRE(_dependencyMap[2])(_NativeTiming.default, 'NativeTiming is available'); - _NativeTiming.default.deleteTimer(timerID); - } - function setSendIdleEvents(sendIdleEvents) { - _$$_REQUIRE(_dependencyMap[2])(_NativeTiming.default, 'NativeTiming is available'); - _NativeTiming.default.setSendIdleEvents(sendIdleEvents); - } - var ExportedJSTimers; - if (!_NativeTiming.default) { - console.warn("Timing native module is not available, can't set timers."); - // $FlowFixMe[prop-missing] : we can assume timers are generally available - ExportedJSTimers = { - callReactNativeMicrotasks: JSTimers.callReactNativeMicrotasks, - queueReactNativeMicrotask: JSTimers.queueReactNativeMicrotask - }; - } else { - ExportedJSTimers = JSTimers; - } - _$$_REQUIRE(_dependencyMap[3]).setReactNativeMicrotasksCallback(JSTimers.callReactNativeMicrotasks); - module.exports = ExportedJSTimers; -},104,[1,105,46,48]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var TurboModuleRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - var _default = exports.default = TurboModuleRegistry.get('Timing'); -},105,[45]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - // Globally Unique Immediate ID. - var GUIID = 1; - - // A global set of the currently cleared immediates. - var clearedImmediates = new Set(); - - /** - * Shim the setImmediate API on top of queueMicrotask. - * @param {function} func Callback to be invoked before the end of the - * current JavaScript execution loop. - */ - function setImmediate(callback) { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - if (arguments.length < 1) { - throw new TypeError('setImmediate must be called with at least one argument (a function to call)'); - } - if (typeof callback !== 'function') { - throw new TypeError('The first argument to setImmediate must be a function.'); - } - var id = GUIID++; - // This is an edgey case in which the sequentially assigned ID has been - // "guessed" and "cleared" ahead of time, so we need to clear it up first. - if (clearedImmediates.has(id)) { - clearedImmediates.delete(id); - } - - // $FlowFixMe[incompatible-call] - global.queueMicrotask(function () { - if (!clearedImmediates.has(id)) { - callback.apply(undefined, args); - } else { - // Free up the Set entry. - clearedImmediates.delete(id); - } - }); - return id; - } - - /** - * @param {number} immediateID The ID of the immediate to be clearred. - */ - function clearImmediate(immediateID) { - clearedImmediates.add(immediateID); - } - var immediateShim = { - setImmediate: setImmediate, - clearImmediate: clearImmediate - }; - module.exports = immediateShim; -},106,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = queueMicrotask; - var resolvedPromise; - - /** - * Polyfill for the microtask queueing API defined by WHATWG HTML spec. - * https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask - * - * The method must queue a microtask to invoke @param {function} callback, and - * if the callback throws an exception, report the exception. - */ - function queueMicrotask(callback) { - if (arguments.length < 1) { - throw new TypeError('queueMicrotask must be called with at least one argument (a function to call)'); - } - if (typeof callback !== 'function') { - throw new TypeError('The argument to queueMicrotask must be a function.'); - } - - // Try to reuse a lazily allocated resolved promise from closure. - (resolvedPromise || (resolvedPromise = Promise.resolve())).then(callback).catch(function (error) { - return ( - // Report the exception until the next tick. - setTimeout(function () { - throw error; - }, 0) - ); - }); - } -},107,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - /** - * Set up XMLHttpRequest. The native XMLHttpRequest in Chrome dev tools is CORS - * aware and won't let you fetch anything from the internet. - * - * You can use this module directly, or just require InitializeCore. - */ - _$$_REQUIRE(_dependencyMap[0]).polyfillGlobal('XMLHttpRequest', function () { - return _$$_REQUIRE(_dependencyMap[1]); - }); - _$$_REQUIRE(_dependencyMap[0]).polyfillGlobal('FormData', function () { - return _$$_REQUIRE(_dependencyMap[2]); - }); - _$$_REQUIRE(_dependencyMap[0]).polyfillGlobal('fetch', function () { - return _$$_REQUIRE(_dependencyMap[3]).fetch; - }); - _$$_REQUIRE(_dependencyMap[0]).polyfillGlobal('Headers', function () { - return _$$_REQUIRE(_dependencyMap[3]).Headers; - }); - _$$_REQUIRE(_dependencyMap[0]).polyfillGlobal('Request', function () { - return _$$_REQUIRE(_dependencyMap[3]).Request; - }); - _$$_REQUIRE(_dependencyMap[0]).polyfillGlobal('Response', function () { - return _$$_REQUIRE(_dependencyMap[3]).Response; - }); - _$$_REQUIRE(_dependencyMap[0]).polyfillGlobal('WebSocket', function () { - return _$$_REQUIRE(_dependencyMap[4]); - }); - _$$_REQUIRE(_dependencyMap[0]).polyfillGlobal('Blob', function () { - return _$$_REQUIRE(_dependencyMap[5]); - }); - _$$_REQUIRE(_dependencyMap[0]).polyfillGlobal('File', function () { - return _$$_REQUIRE(_dependencyMap[6]); - }); - _$$_REQUIRE(_dependencyMap[0]).polyfillGlobal('FileReader', function () { - return _$$_REQUIRE(_dependencyMap[7]); - }); - _$$_REQUIRE(_dependencyMap[0]).polyfillGlobal('URL', function () { - return _$$_REQUIRE(_dependencyMap[8]).URL; - }); // flowlint-line untyped-import:off - _$$_REQUIRE(_dependencyMap[0]).polyfillGlobal('URLSearchParams', function () { - return _$$_REQUIRE(_dependencyMap[8]).URLSearchParams; - }); // flowlint-line untyped-import:off - _$$_REQUIRE(_dependencyMap[0]).polyfillGlobal('AbortController', function () { - return _$$_REQUIRE(_dependencyMap[9]).AbortController; - } // flowlint-line untyped-import:off - ); - - _$$_REQUIRE(_dependencyMap[0]).polyfillGlobal('AbortSignal', function () { - return _$$_REQUIRE(_dependencyMap[9]).AbortSignal; - } // flowlint-line untyped-import:off - ); -},108,[95,109,124,127,129,114,135,136,138,139]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - var _toConsumableArray2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _get2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var _inherits2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[5])); - var _possibleConstructorReturn2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[6])); - var _getPrototypeOf2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[7])); - function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } - function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } - var DEBUG_NETWORK_SEND_DELAY = false; // Set to a number of milliseconds when debugging - - // The native blob module is optional so inject it here if available. - if (_$$_REQUIRE(_dependencyMap[8]).isAvailable) { - _$$_REQUIRE(_dependencyMap[8]).addNetworkingHandler(); - } - var UNSENT = 0; - var OPENED = 1; - var HEADERS_RECEIVED = 2; - var LOADING = 3; - var DONE = 4; - var SUPPORTED_RESPONSE_TYPES = { - arraybuffer: typeof global.ArrayBuffer === 'function', - blob: typeof global.Blob === 'function', - document: false, - json: true, - text: true, - '': true - }; - var REQUEST_EVENTS = ['abort', 'error', 'load', 'loadstart', 'progress', 'timeout', 'loadend']; - var XHR_EVENTS = REQUEST_EVENTS.concat('readystatechange'); - var XMLHttpRequestEventTarget = /*#__PURE__*/function (_ref) { - (0, _inherits2.default)(XMLHttpRequestEventTarget, _ref); - var _super = _createSuper(XMLHttpRequestEventTarget); - function XMLHttpRequestEventTarget() { - (0, _classCallCheck2.default)(this, XMLHttpRequestEventTarget); - return _super.apply(this, arguments); - } - return (0, _createClass2.default)(XMLHttpRequestEventTarget); - }(_$$_REQUIRE(_dependencyMap[9]).apply(undefined, REQUEST_EVENTS)); - /** - * Shared base for platform-specific XMLHttpRequest implementations. - */ - var XMLHttpRequest = /*#__PURE__*/function (_ref2) { - (0, _inherits2.default)(XMLHttpRequest, _ref2); - var _super2 = _createSuper(XMLHttpRequest); - function XMLHttpRequest() { - var _this; - (0, _classCallCheck2.default)(this, XMLHttpRequest); - _this = _super2.call(this); - _this.UNSENT = UNSENT; - _this.OPENED = OPENED; - _this.HEADERS_RECEIVED = HEADERS_RECEIVED; - _this.LOADING = LOADING; - _this.DONE = DONE; - _this.readyState = UNSENT; - _this.status = 0; - _this.timeout = 0; - _this.withCredentials = true; - _this.upload = new XMLHttpRequestEventTarget(); - _this._aborted = false; - _this._hasError = false; - _this._method = null; - _this._perfKey = null; - _this._response = ''; - _this._url = null; - _this._timedOut = false; - _this._trackingName = 'unknown'; - _this._incrementalEvents = false; - _this._performanceLogger = _$$_REQUIRE(_dependencyMap[10]); - _this._reset(); - return _this; - } - (0, _createClass2.default)(XMLHttpRequest, [{ - key: "_reset", - value: function _reset() { - this.readyState = this.UNSENT; - this.responseHeaders = undefined; - this.status = 0; - delete this.responseURL; - this._requestId = null; - this._cachedResponse = undefined; - this._hasError = false; - this._headers = {}; - this._response = ''; - this._responseType = ''; - this._sent = false; - this._lowerCaseResponseHeaders = {}; - this._clearSubscriptions(); - this._timedOut = false; - } - }, { - key: "responseType", - get: function get() { - return this._responseType; - }, - set: function set(responseType) { - if (this._sent) { - throw new Error("Failed to set the 'responseType' property on 'XMLHttpRequest': The response type cannot be set after the request has been sent."); - } - if (!SUPPORTED_RESPONSE_TYPES.hasOwnProperty(responseType)) { - console.warn(`The provided value '${responseType}' is not a valid 'responseType'.`); - return; - } - - // redboxes early, e.g. for 'arraybuffer' on ios 7 - _$$_REQUIRE(_dependencyMap[11])(SUPPORTED_RESPONSE_TYPES[responseType] || responseType === 'document', `The provided value '${responseType}' is unsupported in this environment.`); - if (responseType === 'blob') { - _$$_REQUIRE(_dependencyMap[11])(_$$_REQUIRE(_dependencyMap[8]).isAvailable, 'Native module BlobModule is required for blob support'); - } - this._responseType = responseType; - } - }, { - key: "responseText", - get: function get() { - if (this._responseType !== '' && this._responseType !== 'text') { - throw new Error("The 'responseText' property is only available if 'responseType' " + `is set to '' or 'text', but it is '${this._responseType}'.`); - } - if (this.readyState < LOADING) { - return ''; - } - return this._response; - } - }, { - key: "response", - get: function get() { - var responseType = this.responseType; - if (responseType === '' || responseType === 'text') { - return this.readyState < LOADING || this._hasError ? '' : this._response; - } - if (this.readyState !== DONE) { - return null; - } - if (this._cachedResponse !== undefined) { - return this._cachedResponse; - } - switch (responseType) { - case 'document': - this._cachedResponse = null; - break; - case 'arraybuffer': - this._cachedResponse = _$$_REQUIRE(_dependencyMap[12]).toByteArray(this._response).buffer; - break; - case 'blob': - if (typeof this._response === 'object' && this._response) { - this._cachedResponse = _$$_REQUIRE(_dependencyMap[8]).createFromOptions(this._response); - } else if (this._response === '') { - this._cachedResponse = _$$_REQUIRE(_dependencyMap[8]).createFromParts([]); - } else { - throw new Error(`Invalid response for blob: ${this._response}`); - } - break; - case 'json': - try { - this._cachedResponse = JSON.parse(this._response); - } catch (_) { - this._cachedResponse = null; - } - break; - default: - this._cachedResponse = null; - } - return this._cachedResponse; - } - - // exposed for testing - }, { - key: "__didCreateRequest", - value: function __didCreateRequest(requestId) { - this._requestId = requestId; - XMLHttpRequest._interceptor && XMLHttpRequest._interceptor.requestSent(requestId, this._url || '', this._method || 'GET', this._headers); - } - - // exposed for testing - }, { - key: "__didUploadProgress", - value: function __didUploadProgress(requestId, progress, total) { - if (requestId === this._requestId) { - this.upload.dispatchEvent({ - type: 'progress', - lengthComputable: true, - loaded: progress, - total: total - }); - } - } - }, { - key: "__didReceiveResponse", - value: function __didReceiveResponse(requestId, status, responseHeaders, responseURL) { - if (requestId === this._requestId) { - this._perfKey != null && this._performanceLogger.stopTimespan(this._perfKey); - this.status = status; - this.setResponseHeaders(responseHeaders); - this.setReadyState(this.HEADERS_RECEIVED); - if (responseURL || responseURL === '') { - this.responseURL = responseURL; - } else { - delete this.responseURL; - } - XMLHttpRequest._interceptor && XMLHttpRequest._interceptor.responseReceived(requestId, responseURL || this._url || '', status, responseHeaders || {}); - } - } - }, { - key: "__didReceiveData", - value: function __didReceiveData(requestId, response) { - if (requestId !== this._requestId) { - return; - } - this._response = response; - this._cachedResponse = undefined; // force lazy recomputation - this.setReadyState(this.LOADING); - XMLHttpRequest._interceptor && XMLHttpRequest._interceptor.dataReceived(requestId, response); - } - }, { - key: "__didReceiveIncrementalData", - value: function __didReceiveIncrementalData(requestId, responseText, progress, total) { - if (requestId !== this._requestId) { - return; - } - if (!this._response) { - this._response = responseText; - } else { - this._response += responseText; - } - XMLHttpRequest._interceptor && XMLHttpRequest._interceptor.dataReceived(requestId, responseText); - this.setReadyState(this.LOADING); - this.__didReceiveDataProgress(requestId, progress, total); - } - }, { - key: "__didReceiveDataProgress", - value: function __didReceiveDataProgress(requestId, loaded, total) { - if (requestId !== this._requestId) { - return; - } - this.dispatchEvent({ - type: 'progress', - lengthComputable: total >= 0, - loaded: loaded, - total: total - }); - } - - // exposed for testing - }, { - key: "__didCompleteResponse", - value: function __didCompleteResponse(requestId, error, timeOutError) { - if (requestId === this._requestId) { - if (error) { - if (this._responseType === '' || this._responseType === 'text') { - this._response = error; - } - this._hasError = true; - if (timeOutError) { - this._timedOut = true; - } - } - this._clearSubscriptions(); - this._requestId = null; - this.setReadyState(this.DONE); - if (error) { - XMLHttpRequest._interceptor && XMLHttpRequest._interceptor.loadingFailed(requestId, error); - } else { - XMLHttpRequest._interceptor && XMLHttpRequest._interceptor.loadingFinished(requestId, this._response.length); - } - } - } - }, { - key: "_clearSubscriptions", - value: function _clearSubscriptions() { - (this._subscriptions || []).forEach(function (sub) { - if (sub) { - sub.remove(); - } - }); - this._subscriptions = []; - } - }, { - key: "getAllResponseHeaders", - value: function getAllResponseHeaders() { - if (!this.responseHeaders) { - // according to the spec, return null if no response has been received - return null; - } - - // Assign to non-nullable local variable. - var responseHeaders = this.responseHeaders; - var unsortedHeaders = new Map(); - for (var rawHeaderName of Object.keys(responseHeaders)) { - var headerValue = responseHeaders[rawHeaderName]; - var lowerHeaderName = rawHeaderName.toLowerCase(); - var header = unsortedHeaders.get(lowerHeaderName); - if (header) { - header.headerValue += ', ' + headerValue; - unsortedHeaders.set(lowerHeaderName, header); - } else { - unsortedHeaders.set(lowerHeaderName, { - lowerHeaderName: lowerHeaderName, - upperHeaderName: rawHeaderName.toUpperCase(), - headerValue: headerValue - }); - } - } - - // Sort in ascending order, with a being less than b if a's name is legacy-uppercased-byte less than b's name. - var sortedHeaders = (0, _toConsumableArray2.default)(unsortedHeaders.values()).sort(function (a, b) { - if (a.upperHeaderName < b.upperHeaderName) { - return -1; - } - if (a.upperHeaderName > b.upperHeaderName) { - return 1; - } - return 0; - }); - - // Combine into single text response. - return sortedHeaders.map(function (header) { - return header.lowerHeaderName + ': ' + header.headerValue; - }).join('\r\n') + '\r\n'; - } - }, { - key: "getResponseHeader", - value: function getResponseHeader(header) { - var value = this._lowerCaseResponseHeaders[header.toLowerCase()]; - return value !== undefined ? value : null; - } - }, { - key: "setRequestHeader", - value: function setRequestHeader(header, value) { - if (this.readyState !== this.OPENED) { - throw new Error('Request has not been opened'); - } - this._headers[header.toLowerCase()] = String(value); - } - - /** - * Custom extension for tracking origins of request. - */ - }, { - key: "setTrackingName", - value: function setTrackingName(trackingName) { - this._trackingName = trackingName; - return this; - } - - /** - * Custom extension for setting a custom performance logger - */ - }, { - key: "setPerformanceLogger", - value: function setPerformanceLogger(performanceLogger) { - this._performanceLogger = performanceLogger; - return this; - } - }, { - key: "open", - value: function open(method, url, async) { - /* Other optional arguments are not supported yet */ - if (this.readyState !== this.UNSENT) { - throw new Error('Cannot open, already sending'); - } - if (async !== undefined && !async) { - // async is default - throw new Error('Synchronous http requests are not supported'); - } - if (!url) { - throw new Error('Cannot load an empty url'); - } - this._method = method.toUpperCase(); - this._url = url; - this._aborted = false; - this.setReadyState(this.OPENED); - } - }, { - key: "send", - value: function send(data) { - var _this2 = this; - if (this.readyState !== this.OPENED) { - throw new Error('Request has not been opened'); - } - if (this._sent) { - throw new Error('Request has already been sent'); - } - this._sent = true; - var incrementalEvents = this._incrementalEvents || !!this.onreadystatechange || !!this.onprogress; - this._subscriptions.push(_$$_REQUIRE(_dependencyMap[13]).default.addListener('didSendNetworkData', function (args) { - return _this2.__didUploadProgress.apply(_this2, (0, _toConsumableArray2.default)(args)); - })); - this._subscriptions.push(_$$_REQUIRE(_dependencyMap[13]).default.addListener('didReceiveNetworkResponse', function (args) { - return _this2.__didReceiveResponse.apply(_this2, (0, _toConsumableArray2.default)(args)); - })); - this._subscriptions.push(_$$_REQUIRE(_dependencyMap[13]).default.addListener('didReceiveNetworkData', function (args) { - return _this2.__didReceiveData.apply(_this2, (0, _toConsumableArray2.default)(args)); - })); - this._subscriptions.push(_$$_REQUIRE(_dependencyMap[13]).default.addListener('didReceiveNetworkIncrementalData', function (args) { - return _this2.__didReceiveIncrementalData.apply(_this2, (0, _toConsumableArray2.default)(args)); - })); - this._subscriptions.push(_$$_REQUIRE(_dependencyMap[13]).default.addListener('didReceiveNetworkDataProgress', function (args) { - return _this2.__didReceiveDataProgress.apply(_this2, (0, _toConsumableArray2.default)(args)); - })); - this._subscriptions.push(_$$_REQUIRE(_dependencyMap[13]).default.addListener('didCompleteNetworkResponse', function (args) { - return _this2.__didCompleteResponse.apply(_this2, (0, _toConsumableArray2.default)(args)); - })); - var nativeResponseType = 'text'; - if (this._responseType === 'arraybuffer') { - nativeResponseType = 'base64'; - } - if (this._responseType === 'blob') { - nativeResponseType = 'blob'; - } - var doSend = function doSend() { - var friendlyName = _this2._trackingName !== 'unknown' ? _this2._trackingName : _this2._url; - _this2._perfKey = 'network_XMLHttpRequest_' + String(friendlyName); - _this2._performanceLogger.startTimespan(_this2._perfKey); - _$$_REQUIRE(_dependencyMap[11])(_this2._method, 'XMLHttpRequest method needs to be defined (%s).', friendlyName); - _$$_REQUIRE(_dependencyMap[11])(_this2._url, 'XMLHttpRequest URL needs to be defined (%s).', friendlyName); - _$$_REQUIRE(_dependencyMap[13]).default.sendRequest(_this2._method, _this2._trackingName, _this2._url, _this2._headers, data, - /* $FlowFixMe(>=0.78.0 site=react_native_android_fb) This issue was found - * when making Flow check .android.js files. */ - nativeResponseType, incrementalEvents, _this2.timeout, - // $FlowFixMe[method-unbinding] added when improving typing for this parameters - _this2.__didCreateRequest.bind(_this2), _this2.withCredentials); - }; - { - doSend(); - } - } - }, { - key: "abort", - value: function abort() { - this._aborted = true; - if (this._requestId) { - _$$_REQUIRE(_dependencyMap[13]).default.abortRequest(this._requestId); - } - // only call onreadystatechange if there is something to abort, - // below logic is per spec - if (!(this.readyState === this.UNSENT || this.readyState === this.OPENED && !this._sent || this.readyState === this.DONE)) { - this._reset(); - this.setReadyState(this.DONE); - } - // Reset again after, in case modified in handler - this._reset(); - } - }, { - key: "setResponseHeaders", - value: function setResponseHeaders(responseHeaders) { - this.responseHeaders = responseHeaders || null; - var headers = responseHeaders || {}; - this._lowerCaseResponseHeaders = Object.keys(headers).reduce(function (lcaseHeaders, headerName) { - lcaseHeaders[headerName.toLowerCase()] = headers[headerName]; - return lcaseHeaders; - }, {}); - } - }, { - key: "setReadyState", - value: function setReadyState(newState) { - this.readyState = newState; - this.dispatchEvent({ - type: 'readystatechange' - }); - if (newState === this.DONE) { - if (this._aborted) { - this.dispatchEvent({ - type: 'abort' - }); - } else if (this._hasError) { - if (this._timedOut) { - this.dispatchEvent({ - type: 'timeout' - }); - } else { - this.dispatchEvent({ - type: 'error' - }); - } - } else { - this.dispatchEvent({ - type: 'load' - }); - } - this.dispatchEvent({ - type: 'loadend' - }); - } - } - - /* global EventListener */ - }, { - key: "addEventListener", - value: function addEventListener(type, listener) { - // If we dont' have a 'readystatechange' event handler, we don't - // have to send repeated LOADING events with incremental updates - // to responseText, which will avoid a bunch of native -> JS - // bridge traffic. - if (type === 'readystatechange' || type === 'progress') { - this._incrementalEvents = true; - } - (0, _get2.default)((0, _getPrototypeOf2.default)(XMLHttpRequest.prototype), "addEventListener", this).call(this, type, listener); - } - }], [{ - key: "setInterceptor", - value: function setInterceptor(interceptor) { - XMLHttpRequest._interceptor = interceptor; - } - }]); - return XMLHttpRequest; - }(_$$_REQUIRE(_dependencyMap[9]).apply(undefined, (0, _toConsumableArray2.default)(XHR_EVENTS))); - XMLHttpRequest.UNSENT = UNSENT; - XMLHttpRequest.OPENED = OPENED; - XMLHttpRequest.HEADERS_RECEIVED = HEADERS_RECEIVED; - XMLHttpRequest.LOADING = LOADING; - XMLHttpRequest.DONE = DONE; - XMLHttpRequest._interceptor = null; - module.exports = XMLHttpRequest; -},109,[1,20,110,7,6,66,68,70,112,116,117,46,121,122]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _get() { - if (typeof Reflect !== "undefined" && Reflect.get) { - module.exports = _get = Reflect.get.bind(), module.exports.__esModule = true, module.exports["default"] = module.exports; - } else { - module.exports = _get = function _get(target, property, receiver) { - var base = _$$_REQUIRE(_dependencyMap[0])(target, property); - if (!base) return; - var desc = Object.getOwnPropertyDescriptor(base, property); - if (desc.get) { - return desc.get.call(arguments.length < 3 ? target : receiver); - } - return desc.value; - }, module.exports.__esModule = true, module.exports["default"] = module.exports; - } - return _get.apply(this, arguments); - } - module.exports = _get, module.exports.__esModule = true, module.exports["default"] = module.exports; -},110,[111]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _superPropBase(object, property) { - while (!Object.prototype.hasOwnProperty.call(object, property)) { - object = _$$_REQUIRE(_dependencyMap[0])(object); - if (object === null) break; - } - return object; - } - module.exports = _superPropBase, module.exports.__esModule = true, module.exports["default"] = module.exports; -},111,[70]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _NativeBlobModule = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _invariant = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - /*eslint-disable no-bitwise */ - /*eslint-disable eqeqeq */ - /** - * Based on the rfc4122-compliant solution posted at - * http://stackoverflow.com/questions/105034 - */ - function uuidv4() { - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { - var r = Math.random() * 16 | 0, - v = c == 'x' ? r : r & 0x3 | 0x8; - return v.toString(16); - }); - } - - // **Temporary workaround** - // TODO(#24654): Use turbomodules for the Blob module. - // Blob collector is a jsi::HostObject that is used by native to know - // when the a Blob instance is deallocated. This allows to free the - // underlying native resources. This is a hack to workaround the fact - // that the current bridge infra doesn't allow to track js objects - // deallocation. Ideally the whole Blob object should be a jsi::HostObject. - function createBlobCollector(blobId) { - if (global.__blobCollectorProvider == null) { - return null; - } else { - return global.__blobCollectorProvider(blobId); - } - } - - /** - * Module to manage blobs. Wrapper around the native blob module. - */ - var BlobManager = /*#__PURE__*/function () { - function BlobManager() { - (0, _classCallCheck2.default)(this, BlobManager); - } - (0, _createClass2.default)(BlobManager, null, [{ - key: "createFromParts", - value: - /** - * Create blob from existing array of blobs. - */ - function createFromParts(parts, options) { - (0, _invariant.default)(_NativeBlobModule.default, 'NativeBlobModule is available.'); - var blobId = uuidv4(); - var items = parts.map(function (part) { - if (part instanceof ArrayBuffer || global.ArrayBufferView && part instanceof global.ArrayBufferView) { - throw new Error("Creating blobs from 'ArrayBuffer' and 'ArrayBufferView' are not supported"); - } - if (part instanceof _$$_REQUIRE(_dependencyMap[5])) { - return { - data: part.data, - type: 'blob' - }; - } else { - return { - data: String(part), - type: 'string' - }; - } - }); - var size = items.reduce(function (acc, curr) { - if (curr.type === 'string') { - return acc + global.unescape(encodeURI(curr.data)).length; - } else { - return acc + curr.data.size; - } - }, 0); - _NativeBlobModule.default.createFromParts(items, blobId); - return BlobManager.createFromOptions({ - blobId: blobId, - offset: 0, - size: size, - type: options ? options.type : '', - lastModified: options ? options.lastModified : Date.now() - }); - } - - /** - * Create blob instance from blob data from native. - * Used internally by modules like XHR, WebSocket, etc. - */ - }, { - key: "createFromOptions", - value: function createFromOptions(options) { - _$$_REQUIRE(_dependencyMap[6]).register(options.blobId); - // $FlowFixMe[prop-missing] - return Object.assign(Object.create(_$$_REQUIRE(_dependencyMap[5]).prototype), { - data: - // Reuse the collector instance when creating from an existing blob. - // This will make sure that the underlying resource is only deallocated - // when all blobs that refer to it are deallocated. - options.__collector == null ? Object.assign({}, options, { - __collector: createBlobCollector(options.blobId) - }) : options - }); - } - - /** - * Deallocate resources for a blob. - */ - }, { - key: "release", - value: function release(blobId) { - (0, _invariant.default)(_NativeBlobModule.default, 'NativeBlobModule is available.'); - _$$_REQUIRE(_dependencyMap[6]).unregister(blobId); - if (_$$_REQUIRE(_dependencyMap[6]).has(blobId)) { - return; - } - _NativeBlobModule.default.release(blobId); - } - - /** - * Inject the blob content handler in the networking module to support blob - * requests and responses. - */ - }, { - key: "addNetworkingHandler", - value: function addNetworkingHandler() { - (0, _invariant.default)(_NativeBlobModule.default, 'NativeBlobModule is available.'); - _NativeBlobModule.default.addNetworkingHandler(); - } - - /** - * Indicate the websocket should return a blob for incoming binary - * messages. - */ - }, { - key: "addWebSocketHandler", - value: function addWebSocketHandler(socketId) { - (0, _invariant.default)(_NativeBlobModule.default, 'NativeBlobModule is available.'); - _NativeBlobModule.default.addWebSocketHandler(socketId); - } - - /** - * Indicate the websocket should no longer return a blob for incoming - * binary messages. - */ - }, { - key: "removeWebSocketHandler", - value: function removeWebSocketHandler(socketId) { - (0, _invariant.default)(_NativeBlobModule.default, 'NativeBlobModule is available.'); - _NativeBlobModule.default.removeWebSocketHandler(socketId); - } - - /** - * Send a blob message to a websocket. - */ - }, { - key: "sendOverSocket", - value: function sendOverSocket(blob, socketId) { - (0, _invariant.default)(_NativeBlobModule.default, 'NativeBlobModule is available.'); - _NativeBlobModule.default.sendOverSocket(blob.data, socketId); - } - }]); - return BlobManager; - }(); - /** - * If the native blob module is available. - */ - BlobManager.isAvailable = !!_NativeBlobModule.default; - module.exports = BlobManager; -},112,[1,6,7,113,46,114,115]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var TurboModuleRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - var NativeModule = TurboModuleRegistry.get('BlobModule'); - var constants = null; - var NativeBlobModule = null; - if (NativeModule != null) { - NativeBlobModule = { - getConstants: function getConstants() { - if (constants == null) { - constants = NativeModule.getConstants(); - } - return constants; - }, - addNetworkingHandler: function addNetworkingHandler() { - NativeModule.addNetworkingHandler(); - }, - addWebSocketHandler: function addWebSocketHandler(id) { - NativeModule.addWebSocketHandler(id); - }, - removeWebSocketHandler: function removeWebSocketHandler(id) { - NativeModule.removeWebSocketHandler(id); - }, - sendOverSocket: function sendOverSocket(blob, socketID) { - NativeModule.sendOverSocket(blob, socketID); - }, - createFromParts: function createFromParts(parts, withId) { - NativeModule.createFromParts(parts, withId); - }, - release: function release(blobId) { - NativeModule.release(blobId); - } - }; - } - var _default = exports.default = NativeBlobModule; -},113,[45]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - /** - * Opaque JS representation of some binary data in native. - * - * The API is modeled after the W3C Blob API, with one caveat - * regarding explicit deallocation. Refer to the `close()` - * method for further details. - * - * Example usage in a React component: - * - * class WebSocketImage extends React.Component { - * state = {blob: null}; - * componentDidMount() { - * let ws = this.ws = new WebSocket(...); - * ws.binaryType = 'blob'; - * ws.onmessage = (event) => { - * if (this.state.blob) { - * this.state.blob.close(); - * } - * this.setState({blob: event.data}); - * }; - * } - * componentUnmount() { - * if (this.state.blob) { - * this.state.blob.close(); - * } - * this.ws.close(); - * } - * render() { - * if (!this.state.blob) { - * return ; - * } - * return ; - * } - * } - * - * Reference: https://developer.mozilla.org/en-US/docs/Web/API/Blob - */ - var Blob = /*#__PURE__*/function () { - /** - * Constructor for JS consumers. - * Currently we only support creating Blobs from other Blobs. - * Reference: https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob - */ - function Blob() { - var parts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; - var options = arguments.length > 1 ? arguments[1] : undefined; - _$$_REQUIRE(_dependencyMap[0])(this, Blob); - var BlobManager = _$$_REQUIRE(_dependencyMap[1]); - this.data = BlobManager.createFromParts(parts, options).data; - } - - /* - * This method is used to create a new Blob object containing - * the data in the specified range of bytes of the source Blob. - * Reference: https://developer.mozilla.org/en-US/docs/Web/API/Blob/slice - */ - // $FlowFixMe[unsafe-getters-setters] - _$$_REQUIRE(_dependencyMap[2])(Blob, [{ - key: "data", - get: - // $FlowFixMe[unsafe-getters-setters] - function get() { - if (!this._data) { - throw new Error('Blob has been closed and is no longer available'); - } - return this._data; - }, - set: function set(data) { - this._data = data; - } - }, { - key: "slice", - value: function slice(start, end) { - var BlobManager = _$$_REQUIRE(_dependencyMap[1]); - var _this$data = this.data, - offset = _this$data.offset, - size = _this$data.size; - if (typeof start === 'number') { - if (start > size) { - // $FlowFixMe[reassign-const] - start = size; - } - offset += start; - size -= start; - if (typeof end === 'number') { - if (end < 0) { - // $FlowFixMe[reassign-const] - end = this.size + end; - } - if (end > this.size) { - // $FlowFixMe[reassign-const] - end = this.size; - } - size = end - start; - } - } - return BlobManager.createFromOptions({ - blobId: this.data.blobId, - offset: offset, - size: size, - /* Since `blob.slice()` creates a new view onto the same binary - * data as the original blob, we should re-use the same collector - * object so that the underlying resource gets deallocated when - * the last view into the data is released, not the first. - */ - __collector: this.data.__collector - }); - } - - /** - * This method is in the standard, but not actually implemented by - * any browsers at this point. It's important for how Blobs work in - * React Native, however, since we cannot de-allocate resources automatically, - * so consumers need to explicitly de-allocate them. - * - * Note that the semantics around Blobs created via `blob.slice()` - * and `new Blob([blob])` are different. `blob.slice()` creates a - * new *view* onto the same binary data, so calling `close()` on any - * of those views is enough to deallocate the data, whereas - * `new Blob([blob, ...])` actually copies the data in memory. - */ - }, { - key: "close", - value: function close() { - var BlobManager = _$$_REQUIRE(_dependencyMap[1]); - BlobManager.release(this.data.blobId); - this.data = null; - } - - /** - * Size of the data contained in the Blob object, in bytes. - */ - // $FlowFixMe[unsafe-getters-setters] - }, { - key: "size", - get: function get() { - return this.data.size; - } - - /* - * String indicating the MIME type of the data contained in the Blob. - * If the type is unknown, this string is empty. - */ - // $FlowFixMe[unsafe-getters-setters] - }, { - key: "type", - get: function get() { - return this.data.type || ''; - } - }]); - return Blob; - }(); - module.exports = Blob; -},114,[6,112,7]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - var registry = {}; - var register = function register(id) { - if (registry[id]) { - registry[id]++; - } else { - registry[id] = 1; - } - }; - var unregister = function unregister(id) { - if (registry[id]) { - registry[id]--; - if (registry[id] <= 0) { - delete registry[id]; - } - } - }; - var has = function has(id) { - return registry[id] && registry[id] > 0; - }; - module.exports = { - register: register, - unregister: unregister, - has: has - }; -},115,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * @author Toru Nagashima - * @copyright 2015 Toru Nagashima. All rights reserved. - * See LICENSE file in root directory for full license. - */ - 'use strict'; - - Object.defineProperty(exports, '__esModule', { - value: true - }); - - /** - * @typedef {object} PrivateData - * @property {EventTarget} eventTarget The event target. - * @property {{type:string}} event The original event object. - * @property {number} eventPhase The current event phase. - * @property {EventTarget|null} currentTarget The current event target. - * @property {boolean} canceled The flag to prevent default. - * @property {boolean} stopped The flag to stop propagation. - * @property {boolean} immediateStopped The flag to stop propagation immediately. - * @property {Function|null} passiveListener The listener if the current listener is passive. Otherwise this is null. - * @property {number} timeStamp The unix time. - * @private - */ - - /** - * Private data for event wrappers. - * @type {WeakMap} - * @private - */ - var privateData = new WeakMap(); - - /** - * Cache for wrapper classes. - * @type {WeakMap} - * @private - */ - var wrappers = new WeakMap(); - - /** - * Get private data. - * @param {Event} event The event object to get private data. - * @returns {PrivateData} The private data of the event. - * @private - */ - function pd(event) { - var retv = privateData.get(event); - console.assert(retv != null, "'this' is expected an Event object, but got", event); - return retv; - } - - /** - * https://dom.spec.whatwg.org/#set-the-canceled-flag - * @param data {PrivateData} private data. - */ - function setCancelFlag(data) { - if (data.passiveListener != null) { - if (typeof console !== "undefined" && typeof console.error === "function") { - console.error("Unable to preventDefault inside passive event listener invocation.", data.passiveListener); - } - return; - } - if (!data.event.cancelable) { - return; - } - data.canceled = true; - if (typeof data.event.preventDefault === "function") { - data.event.preventDefault(); - } - } - - /** - * @see https://dom.spec.whatwg.org/#interface-event - * @private - */ - /** - * The event wrapper. - * @constructor - * @param {EventTarget} eventTarget The event target of this dispatching. - * @param {Event|{type:string}} event The original event to wrap. - */ - function Event(eventTarget, event) { - privateData.set(this, { - eventTarget: eventTarget, - event: event, - eventPhase: 2, - currentTarget: eventTarget, - canceled: false, - stopped: false, - immediateStopped: false, - passiveListener: null, - timeStamp: event.timeStamp || Date.now() - }); - - // https://heycam.github.io/webidl/#Unforgeable - Object.defineProperty(this, "isTrusted", { - value: false, - enumerable: true - }); - - // Define accessors - var keys = Object.keys(event); - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (!(key in this)) { - Object.defineProperty(this, key, defineRedirectDescriptor(key)); - } - } - } - - // Should be enumerable, but class methods are not enumerable. - Event.prototype = { - /** - * The type of this event. - * @type {string} - */ - get type() { - return pd(this).event.type; - }, - /** - * The target of this event. - * @type {EventTarget} - */ - get target() { - return pd(this).eventTarget; - }, - /** - * The target of this event. - * @type {EventTarget} - */ - get currentTarget() { - return pd(this).currentTarget; - }, - /** - * @returns {EventTarget[]} The composed path of this event. - */ - composedPath: function composedPath() { - var currentTarget = pd(this).currentTarget; - if (currentTarget == null) { - return []; - } - return [currentTarget]; - }, - /** - * Constant of NONE. - * @type {number} - */ - get NONE() { - return 0; - }, - /** - * Constant of CAPTURING_PHASE. - * @type {number} - */ - get CAPTURING_PHASE() { - return 1; - }, - /** - * Constant of AT_TARGET. - * @type {number} - */ - get AT_TARGET() { - return 2; - }, - /** - * Constant of BUBBLING_PHASE. - * @type {number} - */ - get BUBBLING_PHASE() { - return 3; - }, - /** - * The target of this event. - * @type {number} - */ - get eventPhase() { - return pd(this).eventPhase; - }, - /** - * Stop event bubbling. - * @returns {void} - */ - stopPropagation: function stopPropagation() { - var data = pd(this); - data.stopped = true; - if (typeof data.event.stopPropagation === "function") { - data.event.stopPropagation(); - } - }, - /** - * Stop event bubbling. - * @returns {void} - */ - stopImmediatePropagation: function stopImmediatePropagation() { - var data = pd(this); - data.stopped = true; - data.immediateStopped = true; - if (typeof data.event.stopImmediatePropagation === "function") { - data.event.stopImmediatePropagation(); - } - }, - /** - * The flag to be bubbling. - * @type {boolean} - */ - get bubbles() { - return Boolean(pd(this).event.bubbles); - }, - /** - * The flag to be cancelable. - * @type {boolean} - */ - get cancelable() { - return Boolean(pd(this).event.cancelable); - }, - /** - * Cancel this event. - * @returns {void} - */ - preventDefault: function preventDefault() { - setCancelFlag(pd(this)); - }, - /** - * The flag to indicate cancellation state. - * @type {boolean} - */ - get defaultPrevented() { - return pd(this).canceled; - }, - /** - * The flag to be composed. - * @type {boolean} - */ - get composed() { - return Boolean(pd(this).event.composed); - }, - /** - * The unix time of this event. - * @type {number} - */ - get timeStamp() { - return pd(this).timeStamp; - }, - /** - * The target of this event. - * @type {EventTarget} - * @deprecated - */ - get srcElement() { - return pd(this).eventTarget; - }, - /** - * The flag to stop event bubbling. - * @type {boolean} - * @deprecated - */ - get cancelBubble() { - return pd(this).stopped; - }, - set cancelBubble(value) { - if (!value) { - return; - } - var data = pd(this); - data.stopped = true; - if (typeof data.event.cancelBubble === "boolean") { - data.event.cancelBubble = true; - } - }, - /** - * The flag to indicate cancellation state. - * @type {boolean} - * @deprecated - */ - get returnValue() { - return !pd(this).canceled; - }, - set returnValue(value) { - if (!value) { - setCancelFlag(pd(this)); - } - }, - /** - * Initialize this event object. But do nothing under event dispatching. - * @param {string} type The event type. - * @param {boolean} [bubbles=false] The flag to be possible to bubble up. - * @param {boolean} [cancelable=false] The flag to be possible to cancel. - * @deprecated - */ - initEvent: function initEvent() { - // Do nothing. - } - }; - - // `constructor` is not enumerable. - Object.defineProperty(Event.prototype, "constructor", { - value: Event, - configurable: true, - writable: true - }); - - // Ensure `event instanceof window.Event` is `true`. - if (typeof window !== "undefined" && typeof window.Event !== "undefined") { - Object.setPrototypeOf(Event.prototype, window.Event.prototype); - - // Make association for wrappers. - wrappers.set(window.Event.prototype, Event); - } - - /** - * Get the property descriptor to redirect a given property. - * @param {string} key Property name to define property descriptor. - * @returns {PropertyDescriptor} The property descriptor to redirect the property. - * @private - */ - function defineRedirectDescriptor(key) { - return { - get: function get() { - return pd(this).event[key]; - }, - set: function set(value) { - pd(this).event[key] = value; - }, - configurable: true, - enumerable: true - }; - } - - /** - * Get the property descriptor to call a given method property. - * @param {string} key Property name to define property descriptor. - * @returns {PropertyDescriptor} The property descriptor to call the method property. - * @private - */ - function defineCallDescriptor(key) { - return { - value: function value() { - var event = pd(this).event; - return event[key].apply(event, arguments); - }, - configurable: true, - enumerable: true - }; - } - - /** - * Define new wrapper class. - * @param {Function} BaseEvent The base wrapper class. - * @param {Object} proto The prototype of the original event. - * @returns {Function} The defined wrapper class. - * @private - */ - function defineWrapper(BaseEvent, proto) { - var keys = Object.keys(proto); - if (keys.length === 0) { - return BaseEvent; - } - - /** CustomEvent */ - function CustomEvent(eventTarget, event) { - BaseEvent.call(this, eventTarget, event); - } - CustomEvent.prototype = Object.create(BaseEvent.prototype, { - constructor: { - value: CustomEvent, - configurable: true, - writable: true - } - }); - - // Define accessors. - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (!(key in BaseEvent.prototype)) { - var descriptor = Object.getOwnPropertyDescriptor(proto, key); - var isFunc = typeof descriptor.value === "function"; - Object.defineProperty(CustomEvent.prototype, key, isFunc ? defineCallDescriptor(key) : defineRedirectDescriptor(key)); - } - } - return CustomEvent; - } - - /** - * Get the wrapper class of a given prototype. - * @param {Object} proto The prototype of the original event to get its wrapper. - * @returns {Function} The wrapper class. - * @private - */ - function getWrapper(proto) { - if (proto == null || proto === Object.prototype) { - return Event; - } - var wrapper = wrappers.get(proto); - if (wrapper == null) { - wrapper = defineWrapper(getWrapper(Object.getPrototypeOf(proto)), proto); - wrappers.set(proto, wrapper); - } - return wrapper; - } - - /** - * Wrap a given event to management a dispatching. - * @param {EventTarget} eventTarget The event target of this dispatching. - * @param {Object} event The event to wrap. - * @returns {Event} The wrapper instance. - * @private - */ - function wrapEvent(eventTarget, event) { - var Wrapper = getWrapper(Object.getPrototypeOf(event)); - return new Wrapper(eventTarget, event); - } - - /** - * Get the immediateStopped flag of a given event. - * @param {Event} event The event to get. - * @returns {boolean} The flag to stop propagation immediately. - * @private - */ - function isStopped(event) { - return pd(event).immediateStopped; - } - - /** - * Set the current event phase of a given event. - * @param {Event} event The event to set current target. - * @param {number} eventPhase New event phase. - * @returns {void} - * @private - */ - function setEventPhase(event, eventPhase) { - pd(event).eventPhase = eventPhase; - } - - /** - * Set the current target of a given event. - * @param {Event} event The event to set current target. - * @param {EventTarget|null} currentTarget New current target. - * @returns {void} - * @private - */ - function setCurrentTarget(event, currentTarget) { - pd(event).currentTarget = currentTarget; - } - - /** - * Set a passive listener of a given event. - * @param {Event} event The event to set current target. - * @param {Function|null} passiveListener New passive listener. - * @returns {void} - * @private - */ - function setPassiveListener(event, passiveListener) { - pd(event).passiveListener = passiveListener; - } - - /** - * @typedef {object} ListenerNode - * @property {Function} listener - * @property {1|2|3} listenerType - * @property {boolean} passive - * @property {boolean} once - * @property {ListenerNode|null} next - * @private - */ - - /** - * @type {WeakMap>} - * @private - */ - var listenersMap = new WeakMap(); - - // Listener types - var CAPTURE = 1; - var BUBBLE = 2; - var ATTRIBUTE = 3; - - /** - * Check whether a given value is an object or not. - * @param {any} x The value to check. - * @returns {boolean} `true` if the value is an object. - */ - function isObject(x) { - return x !== null && typeof x === "object"; //eslint-disable-line no-restricted-syntax - } - - /** - * Get listeners. - * @param {EventTarget} eventTarget The event target to get. - * @returns {Map} The listeners. - * @private - */ - function getListeners(eventTarget) { - var listeners = listenersMap.get(eventTarget); - if (listeners == null) { - throw new TypeError("'this' is expected an EventTarget object, but got another value."); - } - return listeners; - } - - /** - * Get the property descriptor for the event attribute of a given event. - * @param {string} eventName The event name to get property descriptor. - * @returns {PropertyDescriptor} The property descriptor. - * @private - */ - function defineEventAttributeDescriptor(eventName) { - return { - get: function get() { - var listeners = getListeners(this); - var node = listeners.get(eventName); - while (node != null) { - if (node.listenerType === ATTRIBUTE) { - return node.listener; - } - node = node.next; - } - return null; - }, - set: function set(listener) { - if (typeof listener !== "function" && !isObject(listener)) { - listener = null; // eslint-disable-line no-param-reassign - } - - var listeners = getListeners(this); - - // Traverse to the tail while removing old value. - var prev = null; - var node = listeners.get(eventName); - while (node != null) { - if (node.listenerType === ATTRIBUTE) { - // Remove old value. - if (prev !== null) { - prev.next = node.next; - } else if (node.next !== null) { - listeners.set(eventName, node.next); - } else { - listeners.delete(eventName); - } - } else { - prev = node; - } - node = node.next; - } - - // Add new value. - if (listener !== null) { - var newNode = { - listener: listener, - listenerType: ATTRIBUTE, - passive: false, - once: false, - next: null - }; - if (prev === null) { - listeners.set(eventName, newNode); - } else { - prev.next = newNode; - } - } - }, - configurable: true, - enumerable: true - }; - } - - /** - * Define an event attribute (e.g. `eventTarget.onclick`). - * @param {Object} eventTargetPrototype The event target prototype to define an event attrbite. - * @param {string} eventName The event name to define. - * @returns {void} - */ - function defineEventAttribute(eventTargetPrototype, eventName) { - Object.defineProperty(eventTargetPrototype, `on${eventName}`, defineEventAttributeDescriptor(eventName)); - } - - /** - * Define a custom EventTarget with event attributes. - * @param {string[]} eventNames Event names for event attributes. - * @returns {EventTarget} The custom EventTarget. - * @private - */ - function defineCustomEventTarget(eventNames) { - /** CustomEventTarget */ - function CustomEventTarget() { - EventTarget.call(this); - } - CustomEventTarget.prototype = Object.create(EventTarget.prototype, { - constructor: { - value: CustomEventTarget, - configurable: true, - writable: true - } - }); - for (var i = 0; i < eventNames.length; ++i) { - defineEventAttribute(CustomEventTarget.prototype, eventNames[i]); - } - return CustomEventTarget; - } - - /** - * EventTarget. - * - * - This is constructor if no arguments. - * - This is a function which returns a CustomEventTarget constructor if there are arguments. - * - * For example: - * - * class A extends EventTarget {} - * class B extends EventTarget("message") {} - * class C extends EventTarget("message", "error") {} - * class D extends EventTarget(["message", "error"]) {} - */ - function EventTarget() { - /*eslint-disable consistent-return */ - if (this instanceof EventTarget) { - listenersMap.set(this, new Map()); - return; - } - if (arguments.length === 1 && Array.isArray(arguments[0])) { - return defineCustomEventTarget(arguments[0]); - } - if (arguments.length > 0) { - var types = new Array(arguments.length); - for (var i = 0; i < arguments.length; ++i) { - types[i] = arguments[i]; - } - return defineCustomEventTarget(types); - } - throw new TypeError("Cannot call a class as a function"); - /*eslint-enable consistent-return */ - } - - // Should be enumerable, but class methods are not enumerable. - EventTarget.prototype = { - /** - * Add a given listener to this event target. - * @param {string} eventName The event name to add. - * @param {Function} listener The listener to add. - * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener. - * @returns {void} - */ - addEventListener: function addEventListener(eventName, listener, options) { - if (listener == null) { - return; - } - if (typeof listener !== "function" && !isObject(listener)) { - throw new TypeError("'listener' should be a function or an object."); - } - var listeners = getListeners(this); - var optionsIsObj = isObject(options); - var capture = optionsIsObj ? Boolean(options.capture) : Boolean(options); - var listenerType = capture ? CAPTURE : BUBBLE; - var newNode = { - listener: listener, - listenerType: listenerType, - passive: optionsIsObj && Boolean(options.passive), - once: optionsIsObj && Boolean(options.once), - next: null - }; - - // Set it as the first node if the first node is null. - var node = listeners.get(eventName); - if (node === undefined) { - listeners.set(eventName, newNode); - return; - } - - // Traverse to the tail while checking duplication.. - var prev = null; - while (node != null) { - if (node.listener === listener && node.listenerType === listenerType) { - // Should ignore duplication. - return; - } - prev = node; - node = node.next; - } - - // Add it. - prev.next = newNode; - }, - /** - * Remove a given listener from this event target. - * @param {string} eventName The event name to remove. - * @param {Function} listener The listener to remove. - * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener. - * @returns {void} - */ - removeEventListener: function removeEventListener(eventName, listener, options) { - if (listener == null) { - return; - } - var listeners = getListeners(this); - var capture = isObject(options) ? Boolean(options.capture) : Boolean(options); - var listenerType = capture ? CAPTURE : BUBBLE; - var prev = null; - var node = listeners.get(eventName); - while (node != null) { - if (node.listener === listener && node.listenerType === listenerType) { - if (prev !== null) { - prev.next = node.next; - } else if (node.next !== null) { - listeners.set(eventName, node.next); - } else { - listeners.delete(eventName); - } - return; - } - prev = node; - node = node.next; - } - }, - /** - * Dispatch a given event. - * @param {Event|{type:string}} event The event to dispatch. - * @returns {boolean} `false` if canceled. - */ - dispatchEvent: function dispatchEvent(event) { - if (event == null || typeof event.type !== "string") { - throw new TypeError('"event.type" should be a string.'); - } - - // If listeners aren't registered, terminate. - var listeners = getListeners(this); - var eventName = event.type; - var node = listeners.get(eventName); - if (node == null) { - return true; - } - - // Since we cannot rewrite several properties, so wrap object. - var wrappedEvent = wrapEvent(this, event); - - // This doesn't process capturing phase and bubbling phase. - // This isn't participating in a tree. - var prev = null; - while (node != null) { - // Remove this listener if it's once - if (node.once) { - if (prev !== null) { - prev.next = node.next; - } else if (node.next !== null) { - listeners.set(eventName, node.next); - } else { - listeners.delete(eventName); - } - } else { - prev = node; - } - - // Call this listener - setPassiveListener(wrappedEvent, node.passive ? node.listener : null); - if (typeof node.listener === "function") { - try { - node.listener.call(this, wrappedEvent); - } catch (err) { - if (typeof console !== "undefined" && typeof console.error === "function") { - console.error(err); - } - } - } else if (node.listenerType !== ATTRIBUTE && typeof node.listener.handleEvent === "function") { - node.listener.handleEvent(wrappedEvent); - } - - // Break if `event.stopImmediatePropagation` was called. - if (isStopped(wrappedEvent)) { - break; - } - node = node.next; - } - setPassiveListener(wrappedEvent, null); - setEventPhase(wrappedEvent, 0); - setCurrentTarget(wrappedEvent, null); - return !wrappedEvent.defaultPrevented; - } - }; - - // `constructor` is not enumerable. - Object.defineProperty(EventTarget.prototype, "constructor", { - value: EventTarget, - configurable: true, - writable: true - }); - - // Ensure `eventTarget instanceof window.EventTarget` is `true`. - if (typeof window !== "undefined" && typeof window.EventTarget !== "undefined") { - Object.setPrototypeOf(EventTarget.prototype, window.EventTarget.prototype); - } - exports.defineEventAttribute = defineEventAttribute; - exports.EventTarget = EventTarget; - exports.default = EventTarget; - module.exports = EventTarget; - module.exports.EventTarget = module.exports["default"] = EventTarget; - module.exports.defineEventAttribute = defineEventAttribute; -},116,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var _ReactNativeFeatureFlags = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _NativePerformance = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _createPerformanceLogger = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - function isLoggingForWebPerformance() { - return _NativePerformance.default != null && _ReactNativeFeatureFlags.default.isGlobalWebPerformanceLoggerEnabled(); - } - - /** - * This is a global shared instance of IPerformanceLogger that is created with - * createPerformanceLogger(). - * This logger should be used only for global performance metrics like the ones - * that are logged during loading bundle. If you want to log something from your - * React component you should use PerformanceLoggerContext instead. - */ - var GlobalPerformanceLogger = (0, _createPerformanceLogger.default)(isLoggingForWebPerformance()); - module.exports = GlobalPerformanceLogger; -},117,[1,118,73,119]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - var ReactNativeFeatureFlags = { - isLayoutAnimationEnabled: function isLayoutAnimationEnabled() { - return true; - }, - shouldEmitW3CPointerEvents: function shouldEmitW3CPointerEvents() { - return false; - }, - shouldPressibilityUseW3CPointerEventsForHover: function shouldPressibilityUseW3CPointerEventsForHover() { - return false; - }, - animatedShouldDebounceQueueFlush: function animatedShouldDebounceQueueFlush() { - return false; - }, - animatedShouldUseSingleOp: function animatedShouldUseSingleOp() { - return false; - }, - isGlobalWebPerformanceLoggerEnabled: function isGlobalWebPerformanceLoggerEnabled() { - return false; - }, - enableAccessToHostTreeInFabric: function enableAccessToHostTreeInFabric() { - return false; - } - }; - module.exports = ReactNativeFeatureFlags; -},118,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = createPerformanceLogger; - exports.getCurrentTimestamp = undefined; - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var Systrace = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[3])); - var _Performance = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var _infoLog = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[5])); - var _global$nativeQPLTime; - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - var _cookies = {}; - var PRINT_TO_CONSOLE = false; // Type as false to prevent accidentally committing `true`; - - // This is the prefix for optional logging points/timespans as marks/measures via Performance API, - // used to separate these internally from other marks/measures - var WEB_PERFORMANCE_PREFIX = 'global_perf_'; - - // TODO: Remove once T143070419 is done - var performance = new _Performance.default(); - var getCurrentTimestamp = exports.getCurrentTimestamp = (_global$nativeQPLTime = global.nativeQPLTimestamp) != null ? _global$nativeQPLTime : global.performance.now.bind(global.performance); - var PerformanceLogger = /*#__PURE__*/function () { - function PerformanceLogger(isLoggingForWebPerformance) { - (0, _classCallCheck2.default)(this, PerformanceLogger); - this._timespans = {}; - this._extras = {}; - this._points = {}; - this._pointExtras = {}; - this._closed = false; - this._isLoggingForWebPerformance = false; - this._isLoggingForWebPerformance = isLoggingForWebPerformance === true; - } - (0, _createClass2.default)(PerformanceLogger, [{ - key: "addTimespan", - value: function addTimespan(key, startTime, endTime, startExtras, endExtras) { - if (this._closed) { - return; - } - if (this._timespans[key]) { - return; - } - this._timespans[key] = { - startTime: startTime, - endTime: endTime, - totalTime: endTime - (startTime || 0), - startExtras: startExtras, - endExtras: endExtras - }; - if (this._isLoggingForWebPerformance) { - performance.measure(`${WEB_PERFORMANCE_PREFIX}_${key}`, { - start: startTime, - end: endTime - }); - } - } - }, { - key: "append", - value: function append(performanceLogger) { - this._timespans = Object.assign({}, performanceLogger.getTimespans(), this._timespans); - this._extras = Object.assign({}, performanceLogger.getExtras(), this._extras); - this._points = Object.assign({}, performanceLogger.getPoints(), this._points); - this._pointExtras = Object.assign({}, performanceLogger.getPointExtras(), this._pointExtras); - } - }, { - key: "clear", - value: function clear() { - this._timespans = {}; - this._extras = {}; - this._points = {}; - } - }, { - key: "clearCompleted", - value: function clearCompleted() { - for (var _key in this._timespans) { - var _this$_timespans$_key; - if (((_this$_timespans$_key = this._timespans[_key]) == null ? undefined : _this$_timespans$_key.totalTime) != null) { - delete this._timespans[_key]; - } - } - this._extras = {}; - this._points = {}; - } - }, { - key: "close", - value: function close() { - this._closed = true; - } - }, { - key: "currentTimestamp", - value: function currentTimestamp() { - return getCurrentTimestamp(); - } - }, { - key: "getExtras", - value: function getExtras() { - return this._extras; - } - }, { - key: "getPoints", - value: function getPoints() { - return this._points; - } - }, { - key: "getPointExtras", - value: function getPointExtras() { - return this._pointExtras; - } - }, { - key: "getTimespans", - value: function getTimespans() { - return this._timespans; - } - }, { - key: "hasTimespan", - value: function hasTimespan(key) { - return !!this._timespans[key]; - } - }, { - key: "isClosed", - value: function isClosed() { - return this._closed; - } - }, { - key: "logEverything", - value: function logEverything() {} - }, { - key: "markPoint", - value: function markPoint(key) { - var timestamp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentTimestamp(); - var extras = arguments.length > 2 ? arguments[2] : undefined; - if (this._closed) { - return; - } - if (this._points[key] != null) { - return; - } - this._points[key] = timestamp; - if (extras) { - this._pointExtras[key] = extras; - } - if (this._isLoggingForWebPerformance) { - performance.mark(`${WEB_PERFORMANCE_PREFIX}_${key}`, { - startTime: timestamp - }); - } - } - }, { - key: "removeExtra", - value: function removeExtra(key) { - var value = this._extras[key]; - delete this._extras[key]; - return value; - } - }, { - key: "setExtra", - value: function setExtra(key, value) { - if (this._closed) { - return; - } - if (this._extras.hasOwnProperty(key)) { - return; - } - this._extras[key] = value; - } - }, { - key: "startTimespan", - value: function startTimespan(key) { - var timestamp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentTimestamp(); - var extras = arguments.length > 2 ? arguments[2] : undefined; - if (this._closed) { - return; - } - if (this._timespans[key]) { - return; - } - this._timespans[key] = { - startTime: timestamp, - startExtras: extras - }; - _cookies[key] = Systrace.beginAsyncEvent(key); - if (this._isLoggingForWebPerformance) { - performance.mark(`${WEB_PERFORMANCE_PREFIX}_timespan_start_${key}`, { - startTime: timestamp - }); - } - } - }, { - key: "stopTimespan", - value: function stopTimespan(key) { - var timestamp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentTimestamp(); - var extras = arguments.length > 2 ? arguments[2] : undefined; - if (this._closed) { - return; - } - var timespan = this._timespans[key]; - if (!timespan || timespan.startTime == null) { - return; - } - if (timespan.endTime != null) { - return; - } - timespan.endExtras = extras; - timespan.endTime = timestamp; - timespan.totalTime = timespan.endTime - (timespan.startTime || 0); - if (_cookies[key] != null) { - Systrace.endAsyncEvent(key, _cookies[key]); - delete _cookies[key]; - } - if (this._isLoggingForWebPerformance) { - performance.measure(`${WEB_PERFORMANCE_PREFIX}_${key}`, { - start: `${WEB_PERFORMANCE_PREFIX}_timespan_start_${key}`, - end: timestamp - }); - } - } - }]); - return PerformanceLogger; - }(); // Re-exporting for backwards compatibility with all the clients that - // may still import it from this module. - /** - * This function creates performance loggers that can be used to collect and log - * various performance data such as timespans, points and extras. - * The loggers need to have minimal overhead since they're used in production. - */ - function createPerformanceLogger(isLoggingForWebPerformance) { - return new PerformanceLogger(isLoggingForWebPerformance); - } -},119,[1,6,7,50,74,120]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - /** - * Intentional info-level logging for clear separation from ad-hoc console debug logging. - */ - function infoLog() { - var _console; - return (_console = console).log.apply(_console, arguments); - } - module.exports = infoLog; -},120,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - 'use strict'; - - exports.byteLength = byteLength; - exports.toByteArray = toByteArray; - exports.fromByteArray = fromByteArray; - var lookup = []; - var revLookup = []; - var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array; - var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - for (var i = 0, len = code.length; i < len; ++i) { - lookup[i] = code[i]; - revLookup[code.charCodeAt(i)] = i; - } - - // Support decoding URL-safe base64 strings, as Node.js does. - // See: https://en.wikipedia.org/wiki/Base64#URL_applications - revLookup['-'.charCodeAt(0)] = 62; - revLookup['_'.charCodeAt(0)] = 63; - function getLens(b64) { - var len = b64.length; - if (len % 4 > 0) { - throw new Error('Invalid string. Length must be a multiple of 4'); - } - - // Trim off extra bytes after placeholder bytes are found - // See: https://github.com/beatgammit/base64-js/issues/42 - var validLen = b64.indexOf('='); - if (validLen === -1) validLen = len; - var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4; - return [validLen, placeHoldersLen]; - } - - // base64 is 4/3 + up to two characters of the original data - function byteLength(b64) { - var lens = getLens(b64); - var validLen = lens[0]; - var placeHoldersLen = lens[1]; - return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen; - } - function _byteLength(b64, validLen, placeHoldersLen) { - return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen; - } - function toByteArray(b64) { - var tmp; - var lens = getLens(b64); - var validLen = lens[0]; - var placeHoldersLen = lens[1]; - var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)); - var curByte = 0; - - // if there are placeholders, only get up to the last complete 4 chars - var len = placeHoldersLen > 0 ? validLen - 4 : validLen; - var i; - for (i = 0; i < len; i += 4) { - tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)]; - arr[curByte++] = tmp >> 16 & 0xFF; - arr[curByte++] = tmp >> 8 & 0xFF; - arr[curByte++] = tmp & 0xFF; - } - if (placeHoldersLen === 2) { - tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4; - arr[curByte++] = tmp & 0xFF; - } - if (placeHoldersLen === 1) { - tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2; - arr[curByte++] = tmp >> 8 & 0xFF; - arr[curByte++] = tmp & 0xFF; - } - return arr; - } - function tripletToBase64(num) { - return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]; - } - function encodeChunk(uint8, start, end) { - var tmp; - var output = []; - for (var i = start; i < end; i += 3) { - tmp = (uint8[i] << 16 & 0xFF0000) + (uint8[i + 1] << 8 & 0xFF00) + (uint8[i + 2] & 0xFF); - output.push(tripletToBase64(tmp)); - } - return output.join(''); - } - function fromByteArray(uint8) { - var tmp; - var len = uint8.length; - var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes - var parts = []; - var maxChunkLength = 16383; // must be multiple of 3 - - // go through the array every three bytes, we'll deal with trailing stuff later - for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { - parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength)); - } - - // pad the end with zeros, but make sure to not forget the extra bytes - if (extraBytes === 1) { - tmp = uint8[len - 1]; - parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 0x3F] + '=='); - } else if (extraBytes === 2) { - tmp = (uint8[len - 2] << 8) + uint8[len - 1]; - parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 0x3F] + lookup[tmp << 2 & 0x3F] + '='); - } - return parts.join(''); - } -},121,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var _RCTDeviceEventEmitter = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _convertRequestBody = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _NativeNetworkingIOS = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var RCTNetworking = { - addListener: function addListener(eventType, listener, context) { - // $FlowFixMe[incompatible-call] - return _RCTDeviceEventEmitter.default.addListener(eventType, listener, context); - }, - sendRequest: function sendRequest(method, trackingName, url, headers, data, responseType, incrementalUpdates, timeout, callback, withCredentials) { - var body = (0, _convertRequestBody.default)(data); - _NativeNetworkingIOS.default.sendRequest({ - method: method, - url: url, - data: Object.assign({}, body, { - trackingName: trackingName - }), - headers: headers, - responseType: responseType, - incrementalUpdates: incrementalUpdates, - timeout: timeout, - withCredentials: withCredentials - }, callback); - }, - abortRequest: function abortRequest(requestId) { - _NativeNetworkingIOS.default.abortRequest(requestId); - }, - clearCookies: function clearCookies(callback) { - _NativeNetworkingIOS.default.clearCookies(callback); - } - }; - var _default = exports.default = RCTNetworking; -},122,[1,41,123,126]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - function convertRequestBody(body) { - if (typeof body === 'string') { - return { - string: body - }; - } - if (body instanceof _$$_REQUIRE(_dependencyMap[0])) { - return { - blob: body.data - }; - } - if (body instanceof _$$_REQUIRE(_dependencyMap[1])) { - return { - formData: body.getParts() - }; - } - if (body instanceof ArrayBuffer || ArrayBuffer.isView(body)) { - /* $FlowFixMe[incompatible-call] : no way to assert that 'body' is indeed - * an ArrayBufferView */ - return { - base64: _$$_REQUIRE(_dependencyMap[2])(body) - }; - } - return body; - } - module.exports = convertRequestBody; -},123,[114,124,125]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - /** - * Polyfill for XMLHttpRequest2 FormData API, allowing multipart POST requests - * with mixed data (string, native files) to be submitted via XMLHttpRequest. - * - * Example: - * - * var photo = { - * uri: uriFromCameraRoll, - * type: 'image/jpeg', - * name: 'photo.jpg', - * }; - * - * var body = new FormData(); - * body.append('authToken', 'secret'); - * body.append('photo', photo); - * body.append('title', 'A beautiful photo!'); - * - * xhr.open('POST', serverURL); - * xhr.send(body); - */ - var FormData = /*#__PURE__*/function () { - function FormData() { - _$$_REQUIRE(_dependencyMap[0])(this, FormData); - this._parts = []; - } - _$$_REQUIRE(_dependencyMap[1])(FormData, [{ - key: "append", - value: function append(key, value) { - // The XMLHttpRequest spec doesn't specify if duplicate keys are allowed. - // MDN says that any new values should be appended to existing values. - // In any case, major browsers allow duplicate keys, so that's what we'll do - // too. They'll simply get appended as additional form data parts in the - // request body, leaving the server to deal with them. - this._parts.push([key, value]); - } - }, { - key: "getAll", - value: function getAll(key) { - return this._parts.filter(function (_ref) { - var _ref2 = _$$_REQUIRE(_dependencyMap[2])(_ref, 1), - name = _ref2[0]; - return name === key; - }).map(function (_ref3) { - var _ref4 = _$$_REQUIRE(_dependencyMap[2])(_ref3, 2), - value = _ref4[1]; - return value; - }); - } - }, { - key: "getParts", - value: function getParts() { - return this._parts.map(function (_ref5) { - var _ref6 = _$$_REQUIRE(_dependencyMap[2])(_ref5, 2), - name = _ref6[0], - value = _ref6[1]; - var contentDisposition = 'form-data; name="' + name + '"'; - var headers = { - 'content-disposition': contentDisposition - }; - - // The body part is a "blob", which in React Native just means - // an object with a `uri` attribute. Optionally, it can also - // have a `name` and `type` attribute to specify filename and - // content type (cf. web Blob interface.) - if (typeof value === 'object' && !Array.isArray(value) && value) { - if (typeof value.name === 'string') { - headers['content-disposition'] += '; filename="' + value.name + '"'; - } - if (typeof value.type === 'string') { - headers['content-type'] = value.type; - } - return Object.assign({}, value, { - headers: headers, - fieldName: name - }); - } - // Convert non-object values to strings as per FormData.append() spec - return { - string: String(value), - headers: headers, - fieldName: name - }; - }); - } - }]); - return FormData; - }(); - module.exports = FormData; -},124,[6,7,31]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - function binaryToBase64(data) { - if (data instanceof ArrayBuffer) { - // $FlowFixMe[reassign-const] - data = new Uint8Array(data); - } - if (data instanceof Uint8Array) { - return _$$_REQUIRE(_dependencyMap[0]).fromByteArray(data); - } - if (!ArrayBuffer.isView(data)) { - throw new Error('data must be ArrayBuffer or typed array'); - } - // Already checked that `data` is `DataView` in `ArrayBuffer.isView(data)` - var _ref = data, - buffer = _ref.buffer, - byteOffset = _ref.byteOffset, - byteLength = _ref.byteLength; - return _$$_REQUIRE(_dependencyMap[0]).fromByteArray(new Uint8Array(buffer, byteOffset, byteLength)); - } - module.exports = binaryToBase64; -},125,[121]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var TurboModuleRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - var _default = exports.default = TurboModuleRegistry.getEnforcing('Networking'); -},126,[45]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - /* globals Headers, Request, Response */ - - 'use strict'; - - // side-effectful require() to put fetch, - // Headers, Request, Response in global scope - _$$_REQUIRE(_dependencyMap[0]); - module.exports = { - fetch: fetch, - Headers: Headers, - Request: Request, - Response: Response - }; -},127,[128]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : factory(global.WHATWGFetch = {}); - })(this, function (exports) { - 'use strict'; - - /* eslint-disable no-prototype-builtins */ - var g = typeof globalThis !== 'undefined' && globalThis || typeof self !== 'undefined' && self || - // eslint-disable-next-line no-undef - typeof global !== 'undefined' && global || {}; - var support = { - searchParams: 'URLSearchParams' in g, - iterable: 'Symbol' in g && 'iterator' in Symbol, - blob: 'FileReader' in g && 'Blob' in g && function () { - try { - new Blob(); - return true; - } catch (e) { - return false; - } - }(), - formData: 'FormData' in g, - arrayBuffer: 'ArrayBuffer' in g - }; - function isDataView(obj) { - return obj && DataView.prototype.isPrototypeOf(obj); - } - if (support.arrayBuffer) { - var viewClasses = ['[object Int8Array]', '[object Uint8Array]', '[object Uint8ClampedArray]', '[object Int16Array]', '[object Uint16Array]', '[object Int32Array]', '[object Uint32Array]', '[object Float32Array]', '[object Float64Array]']; - var isArrayBufferView = ArrayBuffer.isView || function (obj) { - return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1; - }; - } - function normalizeName(name) { - if (typeof name !== 'string') { - name = String(name); - } - if (/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(name) || name === '') { - throw new TypeError('Invalid character in header field name: "' + name + '"'); - } - return name.toLowerCase(); - } - function normalizeValue(value) { - if (typeof value !== 'string') { - value = String(value); - } - return value; - } - - // Build a destructive iterator for the value list - function iteratorFor(items) { - var iterator = { - next: function next() { - var value = items.shift(); - return { - done: value === undefined, - value: value - }; - } - }; - if (support.iterable) { - iterator[Symbol.iterator] = function () { - return iterator; - }; - } - return iterator; - } - function Headers(headers) { - this.map = {}; - if (headers instanceof Headers) { - headers.forEach(function (value, name) { - this.append(name, value); - }, this); - } else if (Array.isArray(headers)) { - headers.forEach(function (header) { - if (header.length != 2) { - throw new TypeError('Headers constructor: expected name/value pair to be length 2, found' + header.length); - } - this.append(header[0], header[1]); - }, this); - } else if (headers) { - Object.getOwnPropertyNames(headers).forEach(function (name) { - this.append(name, headers[name]); - }, this); - } - } - Headers.prototype.append = function (name, value) { - name = normalizeName(name); - value = normalizeValue(value); - var oldValue = this.map[name]; - this.map[name] = oldValue ? oldValue + ', ' + value : value; - }; - Headers.prototype['delete'] = function (name) { - delete this.map[normalizeName(name)]; - }; - Headers.prototype.get = function (name) { - name = normalizeName(name); - return this.has(name) ? this.map[name] : null; - }; - Headers.prototype.has = function (name) { - return this.map.hasOwnProperty(normalizeName(name)); - }; - Headers.prototype.set = function (name, value) { - this.map[normalizeName(name)] = normalizeValue(value); - }; - Headers.prototype.forEach = function (callback, thisArg) { - for (var name in this.map) { - if (this.map.hasOwnProperty(name)) { - callback.call(thisArg, this.map[name], name, this); - } - } - }; - Headers.prototype.keys = function () { - var items = []; - this.forEach(function (value, name) { - items.push(name); - }); - return iteratorFor(items); - }; - Headers.prototype.values = function () { - var items = []; - this.forEach(function (value) { - items.push(value); - }); - return iteratorFor(items); - }; - Headers.prototype.entries = function () { - var items = []; - this.forEach(function (value, name) { - items.push([name, value]); - }); - return iteratorFor(items); - }; - if (support.iterable) { - Headers.prototype[Symbol.iterator] = Headers.prototype.entries; - } - function consumed(body) { - if (body._noBody) return; - if (body.bodyUsed) { - return Promise.reject(new TypeError('Already read')); - } - body.bodyUsed = true; - } - function fileReaderReady(reader) { - return new Promise(function (resolve, reject) { - reader.onload = function () { - resolve(reader.result); - }; - reader.onerror = function () { - reject(reader.error); - }; - }); - } - function readBlobAsArrayBuffer(blob) { - var reader = new FileReader(); - var promise = fileReaderReady(reader); - reader.readAsArrayBuffer(blob); - return promise; - } - function readBlobAsText(blob) { - var reader = new FileReader(); - var promise = fileReaderReady(reader); - var match = /charset=([A-Za-z0-9_-]+)/.exec(blob.type); - var encoding = match ? match[1] : 'utf-8'; - reader.readAsText(blob, encoding); - return promise; - } - function readArrayBufferAsText(buf) { - var view = new Uint8Array(buf); - var chars = new Array(view.length); - for (var i = 0; i < view.length; i++) { - chars[i] = String.fromCharCode(view[i]); - } - return chars.join(''); - } - function bufferClone(buf) { - if (buf.slice) { - return buf.slice(0); - } else { - var view = new Uint8Array(buf.byteLength); - view.set(new Uint8Array(buf)); - return view.buffer; - } - } - function Body() { - this.bodyUsed = false; - this._initBody = function (body) { - /* - fetch-mock wraps the Response object in an ES6 Proxy to - provide useful test harness features such as flush. However, on - ES5 browsers without fetch or Proxy support pollyfills must be used; - the proxy-pollyfill is unable to proxy an attribute unless it exists - on the object before the Proxy is created. This change ensures - Response.bodyUsed exists on the instance, while maintaining the - semantic of setting Request.bodyUsed in the constructor before - _initBody is called. - */ - // eslint-disable-next-line no-self-assign - this.bodyUsed = this.bodyUsed; - this._bodyInit = body; - if (!body) { - this._noBody = true; - this._bodyText = ''; - } else if (typeof body === 'string') { - this._bodyText = body; - } else if (support.blob && Blob.prototype.isPrototypeOf(body)) { - this._bodyBlob = body; - } else if (support.formData && FormData.prototype.isPrototypeOf(body)) { - this._bodyFormData = body; - } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) { - this._bodyText = body.toString(); - } else if (support.arrayBuffer && support.blob && isDataView(body)) { - this._bodyArrayBuffer = bufferClone(body.buffer); - // IE 10-11 can't handle a DataView body. - this._bodyInit = new Blob([this._bodyArrayBuffer]); - } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) { - this._bodyArrayBuffer = bufferClone(body); - } else { - this._bodyText = body = Object.prototype.toString.call(body); - } - if (!this.headers.get('content-type')) { - if (typeof body === 'string') { - this.headers.set('content-type', 'text/plain;charset=UTF-8'); - } else if (this._bodyBlob && this._bodyBlob.type) { - this.headers.set('content-type', this._bodyBlob.type); - } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) { - this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8'); - } - } - }; - if (support.blob) { - this.blob = function () { - var rejected = consumed(this); - if (rejected) { - return rejected; - } - if (this._bodyBlob) { - return Promise.resolve(this._bodyBlob); - } else if (this._bodyArrayBuffer) { - return Promise.resolve(new Blob([this._bodyArrayBuffer])); - } else if (this._bodyFormData) { - throw new Error('could not read FormData body as blob'); - } else { - return Promise.resolve(new Blob([this._bodyText])); - } - }; - } - this.arrayBuffer = function () { - if (this._bodyArrayBuffer) { - var isConsumed = consumed(this); - if (isConsumed) { - return isConsumed; - } else if (ArrayBuffer.isView(this._bodyArrayBuffer)) { - return Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset, this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength)); - } else { - return Promise.resolve(this._bodyArrayBuffer); - } - } else if (support.blob) { - return this.blob().then(readBlobAsArrayBuffer); - } else { - throw new Error('could not read as ArrayBuffer'); - } - }; - this.text = function () { - var rejected = consumed(this); - if (rejected) { - return rejected; - } - if (this._bodyBlob) { - return readBlobAsText(this._bodyBlob); - } else if (this._bodyArrayBuffer) { - return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer)); - } else if (this._bodyFormData) { - throw new Error('could not read FormData body as text'); - } else { - return Promise.resolve(this._bodyText); - } - }; - if (support.formData) { - this.formData = function () { - return this.text().then(decode); - }; - } - this.json = function () { - return this.text().then(JSON.parse); - }; - return this; - } - - // HTTP methods whose capitalization should be normalized - var methods = ['CONNECT', 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'TRACE']; - function normalizeMethod(method) { - var upcased = method.toUpperCase(); - return methods.indexOf(upcased) > -1 ? upcased : method; - } - function Request(input, options) { - if (!(this instanceof Request)) { - throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.'); - } - options = options || {}; - var body = options.body; - if (input instanceof Request) { - if (input.bodyUsed) { - throw new TypeError('Already read'); - } - this.url = input.url; - this.credentials = input.credentials; - if (!options.headers) { - this.headers = new Headers(input.headers); - } - this.method = input.method; - this.mode = input.mode; - this.signal = input.signal; - if (!body && input._bodyInit != null) { - body = input._bodyInit; - input.bodyUsed = true; - } - } else { - this.url = String(input); - } - this.credentials = options.credentials || this.credentials || 'same-origin'; - if (options.headers || !this.headers) { - this.headers = new Headers(options.headers); - } - this.method = normalizeMethod(options.method || this.method || 'GET'); - this.mode = options.mode || this.mode || null; - this.signal = options.signal || this.signal || function () { - if ('AbortController' in g) { - var ctrl = new AbortController(); - return ctrl.signal; - } - }(); - this.referrer = null; - if ((this.method === 'GET' || this.method === 'HEAD') && body) { - throw new TypeError('Body not allowed for GET or HEAD requests'); - } - this._initBody(body); - if (this.method === 'GET' || this.method === 'HEAD') { - if (options.cache === 'no-store' || options.cache === 'no-cache') { - // Search for a '_' parameter in the query string - var reParamSearch = /([?&])_=[^&]*/; - if (reParamSearch.test(this.url)) { - // If it already exists then set the value with the current time - this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime()); - } else { - // Otherwise add a new '_' parameter to the end with the current time - var reQueryString = /\?/; - this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime(); - } - } - } - } - Request.prototype.clone = function () { - return new Request(this, { - body: this._bodyInit - }); - }; - function decode(body) { - var form = new FormData(); - body.trim().split('&').forEach(function (bytes) { - if (bytes) { - var split = bytes.split('='); - var name = split.shift().replace(/\+/g, ' '); - var value = split.join('=').replace(/\+/g, ' '); - form.append(decodeURIComponent(name), decodeURIComponent(value)); - } - }); - return form; - } - function parseHeaders(rawHeaders) { - var headers = new Headers(); - // Replace instances of \r\n and \n followed by at least one space or horizontal tab with a space - // https://tools.ietf.org/html/rfc7230#section-3.2 - var preProcessedHeaders = rawHeaders.replace(/\r?\n[\t ]+/g, ' '); - // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill - // https://github.com/github/fetch/issues/748 - // https://github.com/zloirock/core-js/issues/751 - preProcessedHeaders.split('\r').map(function (header) { - return header.indexOf('\n') === 0 ? header.substr(1, header.length) : header; - }).forEach(function (line) { - var parts = line.split(':'); - var key = parts.shift().trim(); - if (key) { - var value = parts.join(':').trim(); - try { - headers.append(key, value); - } catch (error) { - console.warn('Response ' + error.message); - } - } - }); - return headers; - } - Body.call(Request.prototype); - function Response(bodyInit, options) { - if (!(this instanceof Response)) { - throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.'); - } - if (!options) { - options = {}; - } - this.type = 'default'; - this.status = options.status === undefined ? 200 : options.status; - if (this.status < 200 || this.status > 599) { - throw new RangeError("Failed to construct 'Response': The status provided (0) is outside the range [200, 599]."); - } - this.ok = this.status >= 200 && this.status < 300; - this.statusText = options.statusText === undefined ? '' : '' + options.statusText; - this.headers = new Headers(options.headers); - this.url = options.url || ''; - this._initBody(bodyInit); - } - Body.call(Response.prototype); - Response.prototype.clone = function () { - return new Response(this._bodyInit, { - status: this.status, - statusText: this.statusText, - headers: new Headers(this.headers), - url: this.url - }); - }; - Response.error = function () { - var response = new Response(null, { - status: 200, - statusText: '' - }); - response.status = 0; - response.type = 'error'; - return response; - }; - var redirectStatuses = [301, 302, 303, 307, 308]; - Response.redirect = function (url, status) { - if (redirectStatuses.indexOf(status) === -1) { - throw new RangeError('Invalid status code'); - } - return new Response(null, { - status: status, - headers: { - location: url - } - }); - }; - exports.DOMException = g.DOMException; - try { - new exports.DOMException(); - } catch (err) { - exports.DOMException = function (message, name) { - this.message = message; - this.name = name; - var error = Error(message); - this.stack = error.stack; - }; - exports.DOMException.prototype = Object.create(Error.prototype); - exports.DOMException.prototype.constructor = exports.DOMException; - } - function fetch(input, init) { - return new Promise(function (resolve, reject) { - var request = new Request(input, init); - if (request.signal && request.signal.aborted) { - return reject(new exports.DOMException('Aborted', 'AbortError')); - } - var xhr = new XMLHttpRequest(); - function abortXhr() { - xhr.abort(); - } - xhr.onload = function () { - var options = { - statusText: xhr.statusText, - headers: parseHeaders(xhr.getAllResponseHeaders() || '') - }; - // This check if specifically for when a user fetches a file locally from the file system - // Only if the status is out of a normal range - if (request.url.startsWith('file://') && (xhr.status < 200 || xhr.status > 599)) { - options.status = 200; - } else { - options.status = xhr.status; - } - options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL'); - var body = 'response' in xhr ? xhr.response : xhr.responseText; - setTimeout(function () { - resolve(new Response(body, options)); - }, 0); - }; - xhr.onerror = function () { - setTimeout(function () { - reject(new TypeError('Network request failed')); - }, 0); - }; - xhr.ontimeout = function () { - setTimeout(function () { - reject(new TypeError('Network request timed out')); - }, 0); - }; - xhr.onabort = function () { - setTimeout(function () { - reject(new exports.DOMException('Aborted', 'AbortError')); - }, 0); - }; - function fixUrl(url) { - try { - return url === '' && g.location.href ? g.location.href : url; - } catch (e) { - return url; - } - } - xhr.open(request.method, fixUrl(request.url), true); - if (request.credentials === 'include') { - xhr.withCredentials = true; - } else if (request.credentials === 'omit') { - xhr.withCredentials = false; - } - if ('responseType' in xhr) { - if (support.blob) { - xhr.responseType = 'blob'; - } else if (support.arrayBuffer) { - xhr.responseType = 'arraybuffer'; - } - } - if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers || g.Headers && init.headers instanceof g.Headers)) { - var names = []; - Object.getOwnPropertyNames(init.headers).forEach(function (name) { - names.push(normalizeName(name)); - xhr.setRequestHeader(name, normalizeValue(init.headers[name])); - }); - request.headers.forEach(function (value, name) { - if (names.indexOf(name) === -1) { - xhr.setRequestHeader(name, value); - } - }); - } else { - request.headers.forEach(function (value, name) { - xhr.setRequestHeader(name, value); - }); - } - if (request.signal) { - request.signal.addEventListener('abort', abortXhr); - xhr.onreadystatechange = function () { - // DONE (success or failure) - if (xhr.readyState === 4) { - request.signal.removeEventListener('abort', abortXhr); - } - }; - } - xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit); - }); - } - fetch.polyfill = true; - if (!g.fetch) { - g.fetch = fetch; - g.Headers = Headers; - g.Request = Request; - g.Response = Response; - } - exports.Headers = Headers; - exports.Request = Request; - exports.Response = Response; - exports.fetch = fetch; - Object.defineProperty(exports, '__esModule', { - value: true - }); - }); -},128,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var _objectWithoutProperties2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _inherits2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var _possibleConstructorReturn2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[5])); - var _getPrototypeOf2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[6])); - var _Blob = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[7])); - var _BlobManager = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[8])); - var _NativeEventEmitter = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[9])); - var _binaryToBase = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[10])); - var _Platform = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[11])); - var _NativeWebSocketModule = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[12])); - var _WebSocketEvent = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[13])); - var _base64Js = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[14])); - var _eventTargetShim = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[15])); - var _invariant = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[16])); - var _excluded = ["headers"]; - function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } - function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - var CONNECTING = 0; - var OPEN = 1; - var CLOSING = 2; - var CLOSED = 3; - var CLOSE_NORMAL = 1000; - - // Abnormal closure where no code is provided in a control frame - // https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5 - var CLOSE_ABNORMAL = 1006; - var WEBSOCKET_EVENTS = ['close', 'error', 'message', 'open']; - var nextWebSocketId = 0; - /** - * Browser-compatible WebSockets implementation. - * - * See https://developer.mozilla.org/en-US/docs/Web/API/WebSocket - * See https://github.com/websockets/ws - */ - var WebSocket = /*#__PURE__*/function (_ref) { - (0, _inherits2.default)(WebSocket, _ref); - var _super = _createSuper(WebSocket); - function WebSocket(url, protocols, options) { - var _this; - (0, _classCallCheck2.default)(this, WebSocket); - _this = _super.call(this); - _this.CONNECTING = CONNECTING; - _this.OPEN = OPEN; - _this.CLOSING = CLOSING; - _this.CLOSED = CLOSED; - _this.readyState = CONNECTING; - _this.url = url; - if (typeof protocols === 'string') { - protocols = [protocols]; - } - var _ref2 = options || {}, - _ref2$headers = _ref2.headers, - headers = _ref2$headers === undefined ? {} : _ref2$headers, - unrecognized = (0, _objectWithoutProperties2.default)(_ref2, _excluded); - - // Preserve deprecated backwards compatibility for the 'origin' option - // $FlowFixMe[prop-missing] - if (unrecognized && typeof unrecognized.origin === 'string') { - console.warn('Specifying `origin` as a WebSocket connection option is deprecated. Include it under `headers` instead.'); - /* $FlowFixMe[prop-missing] (>=0.54.0 site=react_native_fb,react_native_ - * oss) This comment suppresses an error found when Flow v0.54 was - * deployed. To see the error delete this comment and run Flow. */ - headers.origin = unrecognized.origin; - /* $FlowFixMe[prop-missing] (>=0.54.0 site=react_native_fb,react_native_ - * oss) This comment suppresses an error found when Flow v0.54 was - * deployed. To see the error delete this comment and run Flow. */ - delete unrecognized.origin; - } - - // Warn about and discard anything else - if (Object.keys(unrecognized).length > 0) { - console.warn('Unrecognized WebSocket connection option(s) `' + Object.keys(unrecognized).join('`, `') + '`. ' + 'Did you mean to put these under `headers`?'); - } - if (!Array.isArray(protocols)) { - protocols = null; - } - _this._eventEmitter = new _NativeEventEmitter.default( - // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior - // If you want to use the native module on other platforms, please remove this condition and test its behavior - _Platform.default.OS !== 'ios' ? null : _NativeWebSocketModule.default); - _this._socketId = nextWebSocketId++; - _this._registerEvents(); - _NativeWebSocketModule.default.connect(url, protocols, { - headers: headers - }, _this._socketId); - return _this; - } - (0, _createClass2.default)(WebSocket, [{ - key: "binaryType", - get: function get() { - return this._binaryType; - }, - set: function set(binaryType) { - if (binaryType !== 'blob' && binaryType !== 'arraybuffer') { - throw new Error("binaryType must be either 'blob' or 'arraybuffer'"); - } - if (this._binaryType === 'blob' || binaryType === 'blob') { - (0, _invariant.default)(_BlobManager.default.isAvailable, 'Native module BlobModule is required for blob support'); - if (binaryType === 'blob') { - _BlobManager.default.addWebSocketHandler(this._socketId); - } else { - _BlobManager.default.removeWebSocketHandler(this._socketId); - } - } - this._binaryType = binaryType; - } - }, { - key: "close", - value: function close(code, reason) { - if (this.readyState === this.CLOSING || this.readyState === this.CLOSED) { - return; - } - this.readyState = this.CLOSING; - this._close(code, reason); - } - }, { - key: "send", - value: function send(data) { - if (this.readyState === this.CONNECTING) { - throw new Error('INVALID_STATE_ERR'); - } - if (data instanceof _Blob.default) { - (0, _invariant.default)(_BlobManager.default.isAvailable, 'Native module BlobModule is required for blob support'); - _BlobManager.default.sendOverSocket(data, this._socketId); - return; - } - if (typeof data === 'string') { - _NativeWebSocketModule.default.send(data, this._socketId); - return; - } - if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) { - _NativeWebSocketModule.default.sendBinary((0, _binaryToBase.default)(data), this._socketId); - return; - } - throw new Error('Unsupported data type'); - } - }, { - key: "ping", - value: function ping() { - if (this.readyState === this.CONNECTING) { - throw new Error('INVALID_STATE_ERR'); - } - _NativeWebSocketModule.default.ping(this._socketId); - } - }, { - key: "_close", - value: function _close(code, reason) { - // See https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent - var statusCode = typeof code === 'number' ? code : CLOSE_NORMAL; - var closeReason = typeof reason === 'string' ? reason : ''; - _NativeWebSocketModule.default.close(statusCode, closeReason, this._socketId); - if (_BlobManager.default.isAvailable && this._binaryType === 'blob') { - _BlobManager.default.removeWebSocketHandler(this._socketId); - } - } - }, { - key: "_unregisterEvents", - value: function _unregisterEvents() { - this._subscriptions.forEach(function (e) { - return e.remove(); - }); - this._subscriptions = []; - } - }, { - key: "_registerEvents", - value: function _registerEvents() { - var _this2 = this; - this._subscriptions = [this._eventEmitter.addListener('websocketMessage', function (ev) { - if (ev.id !== _this2._socketId) { - return; - } - var data = ev.data; - switch (ev.type) { - case 'binary': - data = _base64Js.default.toByteArray(ev.data).buffer; - break; - case 'blob': - data = _BlobManager.default.createFromOptions(ev.data); - break; - } - _this2.dispatchEvent(new _WebSocketEvent.default('message', { - data: data - })); - }), this._eventEmitter.addListener('websocketOpen', function (ev) { - if (ev.id !== _this2._socketId) { - return; - } - _this2.readyState = _this2.OPEN; - _this2.protocol = ev.protocol; - _this2.dispatchEvent(new _WebSocketEvent.default('open')); - }), this._eventEmitter.addListener('websocketClosed', function (ev) { - if (ev.id !== _this2._socketId) { - return; - } - _this2.readyState = _this2.CLOSED; - _this2.dispatchEvent(new _WebSocketEvent.default('close', { - code: ev.code, - reason: ev.reason - // TODO: missing `wasClean` (exposed on iOS as `clean` but missing on Android) - })); - - _this2._unregisterEvents(); - _this2.close(); - }), this._eventEmitter.addListener('websocketFailed', function (ev) { - if (ev.id !== _this2._socketId) { - return; - } - _this2.readyState = _this2.CLOSED; - _this2.dispatchEvent(new _WebSocketEvent.default('error', { - message: ev.message - })); - _this2.dispatchEvent(new _WebSocketEvent.default('close', { - code: CLOSE_ABNORMAL, - reason: ev.message - // TODO: Expose `wasClean` - })); - - _this2._unregisterEvents(); - _this2.close(); - })]; - } - }]); - return WebSocket; - }(_eventTargetShim.default.apply(undefined, WEBSOCKET_EVENTS)); - WebSocket.CONNECTING = CONNECTING; - WebSocket.OPEN = OPEN; - WebSocket.CLOSING = CLOSING; - WebSocket.CLOSED = CLOSED; - module.exports = WebSocket; -},129,[1,130,6,7,66,68,70,114,112,132,125,43,133,134,121,116,46]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _objectWithoutProperties(source, excluded) { - if (source == null) return {}; - var target = _$$_REQUIRE(_dependencyMap[0])(source, excluded); - var key, i; - if (Object.getOwnPropertySymbols) { - var sourceSymbolKeys = Object.getOwnPropertySymbols(source); - for (i = 0; i < sourceSymbolKeys.length; i++) { - key = sourceSymbolKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; - target[key] = source[key]; - } - } - return target; - } - module.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports["default"] = module.exports; -},130,[131]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } - return target; - } - module.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports["default"] = module.exports; -},131,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _Platform = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _RCTDeviceEventEmitter = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var _invariant = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[5])); - /** - * `NativeEventEmitter` is intended for use by Native Modules to emit events to - * JavaScript listeners. If a `NativeModule` is supplied to the constructor, it - * will be notified (via `addListener` and `removeListeners`) when the listener - * count changes to manage "native memory". - * - * Currently, all native events are fired via a global `RCTDeviceEventEmitter`. - * This means event names must be globally unique, and it means that call sites - * can theoretically listen to `RCTDeviceEventEmitter` (although discouraged). - */ - var NativeEventEmitter = exports.default = /*#__PURE__*/function () { - function NativeEventEmitter(nativeModule) { - (0, _classCallCheck2.default)(this, NativeEventEmitter); - if (_Platform.default.OS === 'ios') { - (0, _invariant.default)(nativeModule != null, '`new NativeEventEmitter()` requires a non-null argument.'); - } - var hasAddListener = - // $FlowFixMe[method-unbinding] added when improving typing for this parameters - !!nativeModule && typeof nativeModule.addListener === 'function'; - var hasRemoveListeners = - // $FlowFixMe[method-unbinding] added when improving typing for this parameters - !!nativeModule && typeof nativeModule.removeListeners === 'function'; - if (nativeModule && hasAddListener && hasRemoveListeners) { - this._nativeModule = nativeModule; - } else if (nativeModule != null) { - if (!hasAddListener) { - console.warn('`new NativeEventEmitter()` was called with a non-null argument without the required `addListener` method.'); - } - if (!hasRemoveListeners) { - console.warn('`new NativeEventEmitter()` was called with a non-null argument without the required `removeListeners` method.'); - } - } - } - (0, _createClass2.default)(NativeEventEmitter, [{ - key: "addListener", - value: function addListener(eventType, listener, context) { - var _this$_nativeModule, - _this = this; - (_this$_nativeModule = this._nativeModule) == null ? undefined : _this$_nativeModule.addListener(eventType); - var subscription = _RCTDeviceEventEmitter.default.addListener(eventType, listener, context); - return { - remove: function remove() { - if (subscription != null) { - var _this$_nativeModule2; - (_this$_nativeModule2 = _this._nativeModule) == null ? undefined : _this$_nativeModule2.removeListeners(1); - // $FlowFixMe[incompatible-use] - subscription.remove(); - subscription = null; - } - } - }; - } - }, { - key: "emit", - value: function emit(eventType) { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - // Generally, `RCTDeviceEventEmitter` is directly invoked. But this is - // included for completeness. - _RCTDeviceEventEmitter.default.emit.apply(_RCTDeviceEventEmitter.default, [eventType].concat(args)); - } - }, { - key: "removeAllListeners", - value: function removeAllListeners(eventType) { - var _this$_nativeModule3; - (0, _invariant.default)(eventType != null, '`NativeEventEmitter.removeAllListener()` requires a non-null argument.'); - (_this$_nativeModule3 = this._nativeModule) == null ? undefined : _this$_nativeModule3.removeListeners(this.listenerCount(eventType)); - _RCTDeviceEventEmitter.default.removeAllListeners(eventType); - } - }, { - key: "listenerCount", - value: function listenerCount(eventType) { - return _RCTDeviceEventEmitter.default.listenerCount(eventType); - } - }]); - return NativeEventEmitter; - }(); -},132,[1,6,7,43,41,46]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var TurboModuleRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - var _default = exports.default = TurboModuleRegistry.getEnforcing('WebSocketModule'); -},133,[45]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - */ - - 'use strict'; - - /** - * Event object passed to the `onopen`, `onclose`, `onmessage`, `onerror` - * callbacks of `WebSocket`. - * - * The `type` property is "open", "close", "message", "error" respectively. - * - * In case of "message", the `data` property contains the incoming data. - */ - var WebSocketEvent = /*#__PURE__*/_$$_REQUIRE(_dependencyMap[0])(function WebSocketEvent(type, eventInitDict) { - _$$_REQUIRE(_dependencyMap[1])(this, WebSocketEvent); - this.type = type.toString(); - Object.assign(this, eventInitDict); - }); - module.exports = WebSocketEvent; -},134,[7,6]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _$$_REQUIRE(_dependencyMap[0])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _$$_REQUIRE(_dependencyMap[0])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _$$_REQUIRE(_dependencyMap[1])(this, result); }; } - function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } - /** - * The File interface provides information about files. - */ - var File = /*#__PURE__*/function (_Blob) { - _$$_REQUIRE(_dependencyMap[2])(File, _Blob); - var _super = _createSuper(File); - /** - * Constructor for JS consumers. - */ - function File(parts, name, options) { - var _this; - _$$_REQUIRE(_dependencyMap[3])(this, File); - _$$_REQUIRE(_dependencyMap[4])(parts != null && name != null, 'Failed to construct `File`: Must pass both `parts` and `name` arguments.'); - _this = _super.call(this, parts, options); - _this.data.name = name; - return _this; - } - - /** - * Name of the file. - */ - _$$_REQUIRE(_dependencyMap[5])(File, [{ - key: "name", - get: function get() { - _$$_REQUIRE(_dependencyMap[4])(this.data.name != null, 'Files must have a name set.'); - return this.data.name; - } - - /* - * Last modified time of the file. - */ - }, { - key: "lastModified", - get: function get() { - return this.data.lastModified || 0; - } - }]); - return File; - }(_$$_REQUIRE(_dependencyMap[6])); - module.exports = File; -},135,[70,68,66,6,46,7,114]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _inherits2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _possibleConstructorReturn2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var _getPrototypeOf2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[5])); - var _NativeFileReaderModule = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[6])); - function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } - function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - // DONE - - var READER_EVENTS = ['abort', 'error', 'load', 'loadstart', 'loadend', 'progress']; - var EMPTY = 0; - var LOADING = 1; - var DONE = 2; - var FileReader = /*#__PURE__*/function (_ref) { - (0, _inherits2.default)(FileReader, _ref); - var _super = _createSuper(FileReader); - function FileReader() { - var _this; - (0, _classCallCheck2.default)(this, FileReader); - _this = _super.call(this); - _this.EMPTY = EMPTY; - _this.LOADING = LOADING; - _this.DONE = DONE; - _this._aborted = false; - _this._reset(); - return _this; - } - (0, _createClass2.default)(FileReader, [{ - key: "_reset", - value: function _reset() { - this._readyState = EMPTY; - this._error = null; - this._result = null; - } - }, { - key: "_setReadyState", - value: function _setReadyState(newState) { - this._readyState = newState; - this.dispatchEvent({ - type: 'readystatechange' - }); - if (newState === DONE) { - if (this._aborted) { - this.dispatchEvent({ - type: 'abort' - }); - } else if (this._error) { - this.dispatchEvent({ - type: 'error' - }); - } else { - this.dispatchEvent({ - type: 'load' - }); - } - this.dispatchEvent({ - type: 'loadend' - }); - } - } - }, { - key: "readAsArrayBuffer", - value: function readAsArrayBuffer(blob) { - var _this2 = this; - this._aborted = false; - if (blob == null) { - throw new TypeError("Failed to execute 'readAsArrayBuffer' on 'FileReader': parameter 1 is not of type 'Blob'"); - } - _NativeFileReaderModule.default.readAsDataURL(blob.data).then(function (text) { - if (_this2._aborted) { - return; - } - var base64 = text.split(',')[1]; - var typedArray = (0, _$$_REQUIRE(_dependencyMap[7]).toByteArray)(base64); - _this2._result = typedArray.buffer; - _this2._setReadyState(DONE); - }, function (error) { - if (_this2._aborted) { - return; - } - _this2._error = error; - _this2._setReadyState(DONE); - }); - } - }, { - key: "readAsDataURL", - value: function readAsDataURL(blob) { - var _this3 = this; - this._aborted = false; - if (blob == null) { - throw new TypeError("Failed to execute 'readAsDataURL' on 'FileReader': parameter 1 is not of type 'Blob'"); - } - _NativeFileReaderModule.default.readAsDataURL(blob.data).then(function (text) { - if (_this3._aborted) { - return; - } - _this3._result = text; - _this3._setReadyState(DONE); - }, function (error) { - if (_this3._aborted) { - return; - } - _this3._error = error; - _this3._setReadyState(DONE); - }); - } - }, { - key: "readAsText", - value: function readAsText(blob) { - var _this4 = this; - var encoding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'UTF-8'; - this._aborted = false; - if (blob == null) { - throw new TypeError("Failed to execute 'readAsText' on 'FileReader': parameter 1 is not of type 'Blob'"); - } - _NativeFileReaderModule.default.readAsText(blob.data, encoding).then(function (text) { - if (_this4._aborted) { - return; - } - _this4._result = text; - _this4._setReadyState(DONE); - }, function (error) { - if (_this4._aborted) { - return; - } - _this4._error = error; - _this4._setReadyState(DONE); - }); - } - }, { - key: "abort", - value: function abort() { - this._aborted = true; - // only call onreadystatechange if there is something to abort, as per spec - if (this._readyState !== EMPTY && this._readyState !== DONE) { - this._reset(); - this._setReadyState(DONE); - } - // Reset again after, in case modified in handler - this._reset(); - } - }, { - key: "readyState", - get: function get() { - return this._readyState; - } - }, { - key: "error", - get: function get() { - return this._error; - } - }, { - key: "result", - get: function get() { - return this._result; - } - }]); - return FileReader; - }(_$$_REQUIRE(_dependencyMap[8]).apply(undefined, READER_EVENTS)); - FileReader.EMPTY = EMPTY; - FileReader.LOADING = LOADING; - FileReader.DONE = DONE; - module.exports = FileReader; -},136,[1,6,7,66,68,70,137,121,116]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var TurboModuleRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - var _default = exports.default = TurboModuleRegistry.getEnforcing('FileReaderModule'); -},137,[45]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.URLSearchParams = exports.URL = undefined; - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _NativeBlobModule = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _Symbol$iterator; - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - var BLOB_URL_PREFIX = null; - if (_NativeBlobModule.default && typeof _NativeBlobModule.default.getConstants().BLOB_URI_SCHEME === 'string') { - var constants = _NativeBlobModule.default.getConstants(); - // $FlowFixMe[incompatible-type] asserted above - // $FlowFixMe[unsafe-addition] - BLOB_URL_PREFIX = constants.BLOB_URI_SCHEME + ':'; - if (typeof constants.BLOB_URI_HOST === 'string') { - BLOB_URL_PREFIX += `//${constants.BLOB_URI_HOST}/`; - } - } - - /** - * To allow Blobs be accessed via `content://` URIs, - * you need to register `BlobProvider` as a ContentProvider in your app's `AndroidManifest.xml`: - * - * ```xml - * - * - * - * - * - * ``` - * And then define the `blob_provider_authority` string in `res/values/strings.xml`. - * Use a dotted name that's entirely unique to your app: - * - * ```xml - * - * your.app.package.blobs - * - * ``` - */ - - // Small subset from whatwg-url: https://github.com/jsdom/whatwg-url/tree/master/src - // The reference code bloat comes from Unicode issues with URLs, so those won't work here. - _Symbol$iterator = Symbol.iterator; - var URLSearchParams = exports.URLSearchParams = /*#__PURE__*/function () { - function URLSearchParams(params) { - var _this = this; - (0, _classCallCheck2.default)(this, URLSearchParams); - this._searchParams = []; - if (typeof params === 'object') { - Object.keys(params).forEach(function (key) { - return _this.append(key, params[key]); - }); - } - } - (0, _createClass2.default)(URLSearchParams, [{ - key: "append", - value: function append(key, value) { - this._searchParams.push([key, value]); - } - }, { - key: "delete", - value: function _delete(name) { - throw new Error('URLSearchParams.delete is not implemented'); - } - }, { - key: "get", - value: function get(name) { - throw new Error('URLSearchParams.get is not implemented'); - } - }, { - key: "getAll", - value: function getAll(name) { - throw new Error('URLSearchParams.getAll is not implemented'); - } - }, { - key: "has", - value: function has(name) { - throw new Error('URLSearchParams.has is not implemented'); - } - }, { - key: "set", - value: function set(name, value) { - throw new Error('URLSearchParams.set is not implemented'); - } - }, { - key: "sort", - value: function sort() { - throw new Error('URLSearchParams.sort is not implemented'); - } - - // $FlowFixMe[unsupported-syntax] - // $FlowFixMe[missing-local-annot] - }, { - key: _Symbol$iterator, - value: function value() { - return this._searchParams[Symbol.iterator](); - } - }, { - key: "toString", - value: function toString() { - if (this._searchParams.length === 0) { - return ''; - } - var last = this._searchParams.length - 1; - return this._searchParams.reduce(function (acc, curr, index) { - return acc + encodeURIComponent(curr[0]) + '=' + encodeURIComponent(curr[1]) + (index === last ? '' : '&'); - }, ''); - } - }]); - return URLSearchParams; - }(); - function validateBaseUrl(url) { - // from this MIT-licensed gist: https://gist.github.com/dperini/729294 - return /^(?:(?:(?:https?|ftp):)?\/\/)(?:(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)*(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/.test(url); - } - var URL = exports.URL = /*#__PURE__*/function () { - // $FlowFixMe[missing-local-annot] - function URL(url, base) { - (0, _classCallCheck2.default)(this, URL); - this._searchParamsInstance = null; - var baseUrl = null; - if (!base || validateBaseUrl(url)) { - this._url = url; - if (!this._url.endsWith('/')) { - this._url += '/'; - } - } else { - if (typeof base === 'string') { - baseUrl = base; - if (!validateBaseUrl(baseUrl)) { - throw new TypeError(`Invalid base URL: ${baseUrl}`); - } - } else { - baseUrl = base.toString(); - } - if (baseUrl.endsWith('/')) { - baseUrl = baseUrl.slice(0, baseUrl.length - 1); - } - if (!url.startsWith('/')) { - url = `/${url}`; - } - if (baseUrl.endsWith(url)) { - url = ''; - } - this._url = `${baseUrl}${url}`; - } - } - (0, _createClass2.default)(URL, [{ - key: "hash", - get: function get() { - throw new Error('URL.hash is not implemented'); - } - }, { - key: "host", - get: function get() { - throw new Error('URL.host is not implemented'); - } - }, { - key: "hostname", - get: function get() { - throw new Error('URL.hostname is not implemented'); - } - }, { - key: "href", - get: function get() { - return this.toString(); - } - }, { - key: "origin", - get: function get() { - throw new Error('URL.origin is not implemented'); - } - }, { - key: "password", - get: function get() { - throw new Error('URL.password is not implemented'); - } - }, { - key: "pathname", - get: function get() { - throw new Error('URL.pathname not implemented'); - } - }, { - key: "port", - get: function get() { - throw new Error('URL.port is not implemented'); - } - }, { - key: "protocol", - get: function get() { - throw new Error('URL.protocol is not implemented'); - } - }, { - key: "search", - get: function get() { - throw new Error('URL.search is not implemented'); - } - }, { - key: "searchParams", - get: function get() { - if (this._searchParamsInstance == null) { - this._searchParamsInstance = new URLSearchParams(); - } - return this._searchParamsInstance; - } - }, { - key: "toJSON", - value: function toJSON() { - return this.toString(); - } - }, { - key: "toString", - value: function toString() { - if (this._searchParamsInstance === null) { - return this._url; - } - // $FlowFixMe[incompatible-use] - var instanceString = this._searchParamsInstance.toString(); - var separator = this._url.indexOf('?') > -1 ? '&' : '?'; - return this._url + separator + instanceString; - } - }, { - key: "username", - get: function get() { - throw new Error('URL.username is not implemented'); - } - }], [{ - key: "createObjectURL", - value: function createObjectURL(blob) { - if (BLOB_URL_PREFIX === null) { - throw new Error('Cannot create URL for blob!'); - } - return `${BLOB_URL_PREFIX}${blob.data.blobId}?offset=${blob.data.offset}&size=${blob.size}`; - } - }, { - key: "revokeObjectURL", - value: function revokeObjectURL(url) { - // Do nothing. - } - }]); - return URL; - }(); -},138,[1,6,7,113]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * @author Toru Nagashima - * See LICENSE file in root directory for full license. - */ - 'use strict'; - - function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _$$_REQUIRE(_dependencyMap[0])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _$$_REQUIRE(_dependencyMap[0])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _$$_REQUIRE(_dependencyMap[1])(this, result); }; } - function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } - Object.defineProperty(exports, '__esModule', { - value: true - }); - /** - * The signal class. - * @see https://dom.spec.whatwg.org/#abortsignal - */ - var AbortSignal = /*#__PURE__*/function (_eventTargetShim$Even) { - _$$_REQUIRE(_dependencyMap[2])(AbortSignal, _eventTargetShim$Even); - var _super = _createSuper(AbortSignal); - /** - * AbortSignal cannot be constructed directly. - */ - function AbortSignal() { - var _this; - _$$_REQUIRE(_dependencyMap[3])(this, AbortSignal); - _this = _super.call(this); - throw new TypeError("AbortSignal cannot be constructed directly"); - return _this; - } - /** - * Returns `true` if this `AbortSignal`'s `AbortController` has signaled to abort, and `false` otherwise. - */ - _$$_REQUIRE(_dependencyMap[4])(AbortSignal, [{ - key: "aborted", - get: function get() { - var aborted = abortedFlags.get(this); - if (typeof aborted !== "boolean") { - throw new TypeError(`Expected 'this' to be an 'AbortSignal' object, but got ${this === null ? "null" : typeof this}`); - } - return aborted; - } - }]); - return AbortSignal; - }(_$$_REQUIRE(_dependencyMap[5]).EventTarget); - _$$_REQUIRE(_dependencyMap[5]).defineEventAttribute(AbortSignal.prototype, "abort"); - /** - * Create an AbortSignal object. - */ - function createAbortSignal() { - var signal = Object.create(AbortSignal.prototype); - _$$_REQUIRE(_dependencyMap[5]).EventTarget.call(signal); - abortedFlags.set(signal, false); - return signal; - } - /** - * Abort a given signal. - */ - function abortSignal(signal) { - if (abortedFlags.get(signal) !== false) { - return; - } - abortedFlags.set(signal, true); - signal.dispatchEvent({ - type: "abort" - }); - } - /** - * Aborted flag for each instances. - */ - var abortedFlags = new WeakMap(); - // Properties should be enumerable. - Object.defineProperties(AbortSignal.prototype, { - aborted: { - enumerable: true - } - }); - // `toString()` should return `"[object AbortSignal]"` - if (typeof Symbol === "function" && typeof Symbol.toStringTag === "symbol") { - Object.defineProperty(AbortSignal.prototype, Symbol.toStringTag, { - configurable: true, - value: "AbortSignal" - }); - } - - /** - * The AbortController. - * @see https://dom.spec.whatwg.org/#abortcontroller - */ - var AbortController = /*#__PURE__*/function () { - /** - * Initialize this controller. - */ - function AbortController() { - _$$_REQUIRE(_dependencyMap[3])(this, AbortController); - signals.set(this, createAbortSignal()); - } - /** - * Returns the `AbortSignal` object associated with this object. - */ - _$$_REQUIRE(_dependencyMap[4])(AbortController, [{ - key: "signal", - get: function get() { - return getSignal(this); - } - /** - * Abort and signal to any observers that the associated activity is to be aborted. - */ - }, { - key: "abort", - value: function abort() { - abortSignal(getSignal(this)); - } - }]); - return AbortController; - }(); - /** - * Associated signals. - */ - var signals = new WeakMap(); - /** - * Get the associated signal of a given controller. - */ - function getSignal(controller) { - var signal = signals.get(controller); - if (signal == null) { - throw new TypeError(`Expected 'this' to be an 'AbortController' object, but got ${controller === null ? "null" : typeof controller}`); - } - return signal; - } - // Properties should be enumerable. - Object.defineProperties(AbortController.prototype, { - signal: { - enumerable: true - }, - abort: { - enumerable: true - } - }); - if (typeof Symbol === "function" && typeof Symbol.toStringTag === "symbol") { - Object.defineProperty(AbortController.prototype, Symbol.toStringTag, { - configurable: true, - value: "AbortController" - }); - } - exports.AbortController = AbortController; - exports.AbortSignal = AbortSignal; - exports.default = AbortController; - module.exports = AbortController; - module.exports.AbortController = module.exports["default"] = AbortController; - module.exports.AbortSignal = AbortSignal; -},139,[70,68,66,6,7,116]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - /** - * Set up alert(). - * You can use this module directly, or just require InitializeCore. - */ - if (!global.alert) { - global.alert = function (text) { - // Require Alert on demand. Requiring it too early can lead to issues - // with things like Platform not being fully initialized. - _$$_REQUIRE(_dependencyMap[0]).alert('Alert', '' + text); - }; - } -},140,[141]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _Platform = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _RCTAlertManager = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - /** - * Launches an alert dialog with the specified title and message. - * - * See https://reactnative.dev/docs/alert - */ - var Alert = /*#__PURE__*/function () { - function Alert() { - (0, _classCallCheck2.default)(this, Alert); - } - (0, _createClass2.default)(Alert, null, [{ - key: "alert", - value: function alert(title, message, buttons, options) { - if (_Platform.default.OS === 'ios') { - Alert.prompt(title, message, buttons, 'default', undefined, undefined, options); - } else if (_Platform.default.OS === 'android') { - var NativeDialogManagerAndroid = _$$_REQUIRE(_dependencyMap[5]).default; - if (!NativeDialogManagerAndroid) { - return; - } - var constants = NativeDialogManagerAndroid.getConstants(); - var config = { - title: title || '', - message: message || '', - cancelable: false - }; - if (options && options.cancelable) { - config.cancelable = options.cancelable; - } - // At most three buttons (neutral, negative, positive). Ignore rest. - // The text 'OK' should be probably localized. iOS Alert does that in native. - var defaultPositiveText = 'OK'; - var validButtons = buttons ? buttons.slice(0, 3) : [{ - text: defaultPositiveText - }]; - var buttonPositive = validButtons.pop(); - var buttonNegative = validButtons.pop(); - var buttonNeutral = validButtons.pop(); - if (buttonNeutral) { - config.buttonNeutral = buttonNeutral.text || ''; - } - if (buttonNegative) { - config.buttonNegative = buttonNegative.text || ''; - } - if (buttonPositive) { - config.buttonPositive = buttonPositive.text || defaultPositiveText; - } - - /* $FlowFixMe[missing-local-annot] The type annotation(s) required by - * Flow's LTI update could not be added via codemod */ - var onAction = function onAction(action, buttonKey) { - if (action === constants.buttonClicked) { - if (buttonKey === constants.buttonNeutral) { - buttonNeutral.onPress && buttonNeutral.onPress(); - } else if (buttonKey === constants.buttonNegative) { - buttonNegative.onPress && buttonNegative.onPress(); - } else if (buttonKey === constants.buttonPositive) { - buttonPositive.onPress && buttonPositive.onPress(); - } - } else if (action === constants.dismissed) { - options && options.onDismiss && options.onDismiss(); - } - }; - var onError = function onError(errorMessage) { - return console.warn(errorMessage); - }; - NativeDialogManagerAndroid.showAlert(config, onError, onAction); - } - } - }, { - key: "prompt", - value: function prompt(title, message, callbackOrButtons) { - var type = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'plain-text'; - var defaultValue = arguments.length > 4 ? arguments[4] : undefined; - var keyboardType = arguments.length > 5 ? arguments[5] : undefined; - var options = arguments.length > 6 ? arguments[6] : undefined; - if (_Platform.default.OS === 'ios') { - var callbacks = []; - var buttons = []; - var cancelButtonKey; - var destructiveButtonKey; - var preferredButtonKey; - if (typeof callbackOrButtons === 'function') { - callbacks = [callbackOrButtons]; - } else if (Array.isArray(callbackOrButtons)) { - callbackOrButtons.forEach(function (btn, index) { - callbacks[index] = btn.onPress; - if (btn.style === 'cancel') { - cancelButtonKey = String(index); - } else if (btn.style === 'destructive') { - destructiveButtonKey = String(index); - } - if (btn.isPreferred) { - preferredButtonKey = String(index); - } - if (btn.text || index < (callbackOrButtons || []).length - 1) { - var btnDef = {}; - btnDef[index] = btn.text || ''; - buttons.push(btnDef); - } - }); - } - _RCTAlertManager.default.alertWithArgs({ - title: title || '', - message: message || undefined, - buttons: buttons, - type: type || undefined, - defaultValue: defaultValue, - cancelButtonKey: cancelButtonKey, - destructiveButtonKey: destructiveButtonKey, - preferredButtonKey: preferredButtonKey, - keyboardType: keyboardType, - userInterfaceStyle: (options == null ? undefined : options.userInterfaceStyle) || undefined - }, function (id, value) { - var cb = callbacks[id]; - cb && cb(value); - }); - } - } - }]); - return Alert; - }(); - module.exports = Alert; -},141,[1,6,7,43,142,144]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var _NativeAlertManager = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - module.exports = { - alertWithArgs: function alertWithArgs(args, callback) { - if (_NativeAlertManager.default == null) { - return; - } - _NativeAlertManager.default.alertWithArgs(args, callback); - } - }; -},142,[1,143]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var TurboModuleRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - var _default = exports.default = TurboModuleRegistry.get('AlertManager'); -},143,[45]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var TurboModuleRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - /* 'buttonClicked' | 'dismissed' */ - /* - buttonPositive = -1, - buttonNegative = -2, - buttonNeutral = -3 - */ - var _default = exports.default = TurboModuleRegistry.get('DialogManagerAndroid'); -},144,[45]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - var navigator = global.navigator; - if (navigator === undefined) { - // $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it. - global.navigator = { - product: 'ReactNative' - }; - } else { - // see https://github.com/facebook/react-native/issues/10881 - _$$_REQUIRE(_dependencyMap[0]).polyfillObjectProperty(navigator, 'product', function () { - return 'ReactNative'; - }); - } -},145,[95]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - var registerModule; - if (global.RN$Bridgeless === true && global.RN$registerCallableModule) { - registerModule = global.RN$registerCallableModule; - } else { - var BatchedBridge = _$$_REQUIRE(_dependencyMap[0]); - registerModule = function registerModule(moduleName, - /* $FlowFixMe[missing-local-annot] The type annotation(s) required by - * Flow's LTI update could not be added via codemod */ - factory) { - return BatchedBridge.registerLazyCallableModule(moduleName, factory); - }; - } - registerModule('Systrace', function () { - return _$$_REQUIRE(_dependencyMap[1]); - }); - if (!(global.RN$Bridgeless === true)) { - registerModule('JSTimers', function () { - return _$$_REQUIRE(_dependencyMap[2]); - }); - } - registerModule('HeapCapture', function () { - return _$$_REQUIRE(_dependencyMap[3]); - }); - registerModule('SamplingProfiler', function () { - return _$$_REQUIRE(_dependencyMap[4]); - }); - registerModule('RCTLog', function () { - return _$$_REQUIRE(_dependencyMap[5]); - }); - registerModule('RCTDeviceEventEmitter', function () { - return _$$_REQUIRE(_dependencyMap[6]).default; - }); - registerModule('RCTNativeAppEventEmitter', function () { - return _$$_REQUIRE(_dependencyMap[7]); - }); - registerModule('GlobalPerformanceLogger', function () { - return _$$_REQUIRE(_dependencyMap[8]); - }); - { - registerModule('HMRClient', function () { - return _$$_REQUIRE(_dependencyMap[9]); - }); - } -},146,[48,50,104,147,149,151,41,152,117,153]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var _NativeJSCHeapCapture = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - var HeapCapture = { - captureHeap: function captureHeap(path) { - var error = null; - try { - global.nativeCaptureHeap(path); - console.log('HeapCapture.captureHeap succeeded: ' + path); - } catch (e) { - console.log('HeapCapture.captureHeap error: ' + e.toString()); - error = e.toString(); - } - if (_NativeJSCHeapCapture.default) { - _NativeJSCHeapCapture.default.captureComplete(path, error); - } - } - }; - module.exports = HeapCapture; -},147,[1,148]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var TurboModuleRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - var _default = exports.default = TurboModuleRegistry.get('JSCHeapCapture'); -},148,[45]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - var SamplingProfiler = { - poke: function poke(token) { - var error = null; - var result = null; - try { - result = global.pokeSamplingProfiler(); - if (result === null) { - console.log('The JSC Sampling Profiler has started'); - } else { - console.log('The JSC Sampling Profiler has stopped'); - } - } catch (e) { - console.log('Error occurred when restarting Sampling Profiler: ' + e.toString()); - error = e.toString(); - } - var NativeJSCSamplingProfiler = _$$_REQUIRE(_dependencyMap[0]).default; - if (NativeJSCSamplingProfiler) { - NativeJSCSamplingProfiler.operationComplete(token, result, error); - } - } - }; - module.exports = SamplingProfiler; -},149,[150]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var TurboModuleRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - var _default = exports.default = TurboModuleRegistry.get('JSCSamplingProfiler'); -},150,[45]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - var levelsMap = { - log: 'log', - info: 'info', - warn: 'warn', - error: 'error', - fatal: 'error' - }; - var warningHandler = null; - var RCTLog = { - // level one of log, info, warn, error, mustfix - logIfNoNativeHook: function logIfNoNativeHook(level) { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - // We already printed in the native console, so only log here if using a js debugger - if (typeof global.nativeLoggingHook === 'undefined') { - RCTLog.logToConsole.apply(RCTLog, [level].concat(args)); - } else { - // Report native warnings to LogBox - if (warningHandler && level === 'warn') { - warningHandler.apply(undefined, args); - } - } - }, - // Log to console regardless of nativeLoggingHook - logToConsole: function logToConsole(level) { - var _console; - var logFn = levelsMap[level]; - _$$_REQUIRE(_dependencyMap[0])(logFn, 'Level "' + level + '" not one of ' + Object.keys(levelsMap).toString()); - for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { - args[_key2 - 1] = arguments[_key2]; - } - (_console = console)[logFn].apply(_console, args); - }, - setWarningHandler: function setWarningHandler(handler) { - warningHandler = handler; - } - }; - module.exports = RCTLog; -},151,[46]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var _RCTDeviceEventEmitter = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - /** - * Deprecated - subclass NativeEventEmitter to create granular event modules instead of - * adding all event listeners directly to RCTNativeAppEventEmitter. - */ - var RCTNativeAppEventEmitter = _RCTDeviceEventEmitter.default; - module.exports = RCTNativeAppEventEmitter; -},152,[1,41]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - // This shim ensures DEV binary builds don't crash in JS - // when they're combined with a PROD JavaScript build. - var HMRClientProdShim = { - setup: function setup() {}, - enable: function enable() { - console.error("Fast Refresh is disabled in JavaScript bundles built in production mode. Did you forget to run Metro?"); - }, - disable: function disable() {}, - registerBundle: function registerBundle() {}, - log: function log() {} - }; - module.exports = HMRClientProdShim; -},153,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - /** - * Set up SegmentFetcher. - * You can use this module directly, or just require InitializeCore. - */ - - function __fetchSegment(segmentId, options, callback) { - var SegmentFetcher = _$$_REQUIRE(_dependencyMap[0]).default; - SegmentFetcher.fetchSegment(segmentId, options, function (errorObject) { - if (errorObject) { - var error = new Error(errorObject.message); - error.code = errorObject.code; // flowlint-line unclear-type: off - callback(error); - } - callback(null); - }); - } - global.__fetchSegment = __fetchSegment; -},154,[155]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var TurboModuleRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - var _default = exports.default = TurboModuleRegistry.getEnforcing('SegmentFetcher'); -},155,[45]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var _BatchedBridge = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _BugReporting = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _createPerformanceLogger = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _infoLog = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var _SceneTracker = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[5])); - var _HeadlessJsTaskError = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[6])); - var _NativeHeadlessJsTaskSupport = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[7])); - var _renderApplication = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[8])); - var _invariant = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[9])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - var runnables = {}; - var runCount = 1; - var sections = {}; - var taskProviders = new Map(); - var taskCancelProviders = new Map(); - var componentProviderInstrumentationHook = function componentProviderInstrumentationHook(component) { - return component(); - }; - var wrapperComponentProvider; - var showArchitectureIndicator = false; - - /** - * `AppRegistry` is the JavaScript entry point to running all React Native apps. - * - * See https://reactnative.dev/docs/appregistry - */ - var AppRegistry = { - setWrapperComponentProvider: function setWrapperComponentProvider(provider) { - wrapperComponentProvider = provider; - }, - enableArchitectureIndicator: function enableArchitectureIndicator(enabled) { - showArchitectureIndicator = enabled; - }, - registerConfig: function registerConfig(config) { - config.forEach(function (appConfig) { - if (appConfig.run) { - AppRegistry.registerRunnable(appConfig.appKey, appConfig.run); - } else { - (0, _invariant.default)(appConfig.component != null, "AppRegistry.registerConfig(...): Every config is expected to set either `run` or `component`, but `%s` has neither.", appConfig.appKey); - AppRegistry.registerComponent(appConfig.appKey, appConfig.component, appConfig.section); - } - }); - }, - /** - * Registers an app's root component. - * - * See https://reactnative.dev/docs/appregistry#registercomponent - */ - registerComponent: function registerComponent(appKey, componentProvider, section) { - var scopedPerformanceLogger = (0, _createPerformanceLogger.default)(); - runnables[appKey] = { - componentProvider: componentProvider, - run: function run(appParameters, displayMode) { - var _appParameters$initia; - var concurrentRootEnabled = ((_appParameters$initia = appParameters.initialProps) == null ? undefined : _appParameters$initia.concurrentRoot) || appParameters.concurrentRoot; - (0, _renderApplication.default)(componentProviderInstrumentationHook(componentProvider, scopedPerformanceLogger), appParameters.initialProps, appParameters.rootTag, wrapperComponentProvider && wrapperComponentProvider(appParameters), appParameters.fabric, showArchitectureIndicator, scopedPerformanceLogger, appKey === 'LogBox', appKey, (0, _$$_REQUIRE(_dependencyMap[10]).coerceDisplayMode)(displayMode), concurrentRootEnabled); - } - }; - if (section) { - sections[appKey] = runnables[appKey]; - } - return appKey; - }, - registerRunnable: function registerRunnable(appKey, run) { - runnables[appKey] = { - run: run - }; - return appKey; - }, - registerSection: function registerSection(appKey, component) { - AppRegistry.registerComponent(appKey, component, true); - }, - getAppKeys: function getAppKeys() { - return Object.keys(runnables); - }, - getSectionKeys: function getSectionKeys() { - return Object.keys(sections); - }, - getSections: function getSections() { - return Object.assign({}, sections); - }, - getRunnable: function getRunnable(appKey) { - return runnables[appKey]; - }, - getRegistry: function getRegistry() { - return { - sections: AppRegistry.getSectionKeys(), - runnables: Object.assign({}, runnables) - }; - }, - setComponentProviderInstrumentationHook: function setComponentProviderInstrumentationHook(hook) { - componentProviderInstrumentationHook = hook; - }, - /** - * Loads the JavaScript bundle and runs the app. - * - * See https://reactnative.dev/docs/appregistry#runapplication - */ - runApplication: function runApplication(appKey, appParameters, displayMode) { - if (appKey !== 'LogBox') { - var logParams = ''; - var msg = 'Running "' + appKey + logParams; - (0, _infoLog.default)(msg); - _BugReporting.default.addSource('AppRegistry.runApplication' + runCount++, function () { - return msg; - }); - } - (0, _invariant.default)(runnables[appKey] && runnables[appKey].run, `"${appKey}" has not been registered. This can happen if:\n` + '* Metro (the local dev server) is run from the wrong folder. ' + 'Check if Metro is running, stop it and restart it in the current project.\n' + "* A module failed to load due to an error and `AppRegistry.registerComponent` wasn't called."); - _SceneTracker.default.setActiveScene({ - name: appKey - }); - runnables[appKey].run(appParameters, displayMode); - }, - /** - * Update initial props for a surface that's already rendered - */ - setSurfaceProps: function setSurfaceProps(appKey, appParameters, displayMode) { - if (appKey !== 'LogBox') { - var msg = 'Updating props for Surface "' + appKey + '" with ' + JSON.stringify(appParameters); - (0, _infoLog.default)(msg); - _BugReporting.default.addSource('AppRegistry.setSurfaceProps' + runCount++, function () { - return msg; - }); - } - (0, _invariant.default)(runnables[appKey] && runnables[appKey].run, `"${appKey}" has not been registered. This can happen if:\n` + '* Metro (the local dev server) is run from the wrong folder. ' + 'Check if Metro is running, stop it and restart it in the current project.\n' + "* A module failed to load due to an error and `AppRegistry.registerComponent` wasn't called."); - runnables[appKey].run(appParameters, displayMode); - }, - /** - * Stops an application when a view should be destroyed. - * - * See https://reactnative.dev/docs/appregistry#unmountapplicationcomponentatroottag - */ - unmountApplicationComponentAtRootTag: function unmountApplicationComponentAtRootTag(rootTag) { - (0, _$$_REQUIRE(_dependencyMap[11]).unmountComponentAtNodeAndRemoveContainer)(rootTag); - }, - /** - * Register a headless task. A headless task is a bit of code that runs without a UI. - * - * See https://reactnative.dev/docs/appregistry#registerheadlesstask - */ - registerHeadlessTask: function registerHeadlessTask(taskKey, taskProvider) { - // $FlowFixMe[object-this-reference] - this.registerCancellableHeadlessTask(taskKey, taskProvider, function () { - return function () { - /* Cancel is no-op */ - }; - }); - }, - /** - * Register a cancellable headless task. A headless task is a bit of code that runs without a UI. - * - * See https://reactnative.dev/docs/appregistry#registercancellableheadlesstask - */ - registerCancellableHeadlessTask: function registerCancellableHeadlessTask(taskKey, taskProvider, taskCancelProvider) { - if (taskProviders.has(taskKey)) { - console.warn(`registerHeadlessTask or registerCancellableHeadlessTask called multiple times for same key '${taskKey}'`); - } - taskProviders.set(taskKey, taskProvider); - taskCancelProviders.set(taskKey, taskCancelProvider); - }, - /** - * Only called from native code. Starts a headless task. - * - * See https://reactnative.dev/docs/appregistry#startheadlesstask - */ - startHeadlessTask: function startHeadlessTask(taskId, taskKey, data) { - var taskProvider = taskProviders.get(taskKey); - if (!taskProvider) { - console.warn(`No task registered for key ${taskKey}`); - if (_NativeHeadlessJsTaskSupport.default) { - _NativeHeadlessJsTaskSupport.default.notifyTaskFinished(taskId); - } - return; - } - taskProvider()(data).then(function () { - if (_NativeHeadlessJsTaskSupport.default) { - _NativeHeadlessJsTaskSupport.default.notifyTaskFinished(taskId); - } - }).catch(function (reason) { - console.error(reason); - if (_NativeHeadlessJsTaskSupport.default && reason instanceof _HeadlessJsTaskError.default) { - // $FlowFixMe[unused-promise] - _NativeHeadlessJsTaskSupport.default.notifyTaskRetry(taskId).then(function (retryPosted) { - if (!retryPosted) { - _NativeHeadlessJsTaskSupport.default.notifyTaskFinished(taskId); - } - }); - } - }); - }, - /** - * Only called from native code. Cancels a headless task. - * - * See https://reactnative.dev/docs/appregistry#cancelheadlesstask - */ - cancelHeadlessTask: function cancelHeadlessTask(taskId, taskKey) { - var taskCancelProvider = taskCancelProviders.get(taskKey); - if (!taskCancelProvider) { - throw new Error(`No task canceller registered for key '${taskKey}'`); - } - taskCancelProvider()(); - } - }; - if (!(global.RN$Bridgeless === true)) { - _BatchedBridge.default.registerCallableModule('AppRegistry', AppRegistry); - AppRegistry.registerComponent('LogBox', function () { - { - return function NoOp() { - return null; - }; - } - }); - } - module.exports = AppRegistry; -},156,[1,48,157,119,120,161,162,163,164,46,239,57]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var _slicedToArray2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _RCTDeviceEventEmitter = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var _NativeRedBox = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[5])); - var _NativeBugReporting = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[6])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - function defaultExtras() { - BugReporting.addFileSource('react_hierarchy.txt', function () { - return _$$_REQUIRE(_dependencyMap[7])(); - }); - } - - /** - * A simple class for collecting bug report data. Components can add sources that will be queried when a bug report - * is created via `collectExtraData`. For example, a list component might add a source that provides the list of rows - * that are currently visible on screen. Components should also remember to call `remove()` on the object that is - * returned by `addSource` when they are unmounted. - */ - var BugReporting = /*#__PURE__*/function () { - function BugReporting() { - (0, _classCallCheck2.default)(this, BugReporting); - } - (0, _createClass2.default)(BugReporting, null, [{ - key: "_maybeInit", - value: function _maybeInit() { - if (!BugReporting._subscription) { - BugReporting._subscription = _RCTDeviceEventEmitter.default.addListener('collectBugExtraData', - // $FlowFixMe[method-unbinding] - BugReporting.collectExtraData, null); - defaultExtras(); - } - if (!BugReporting._redboxSubscription) { - BugReporting._redboxSubscription = _RCTDeviceEventEmitter.default.addListener('collectRedBoxExtraData', - // $FlowFixMe[method-unbinding] - BugReporting.collectExtraData, null); - } - } - - /** - * Maps a string key to a simple callback that should return a string payload to be attached - * to a bug report. Source callbacks are called when `collectExtraData` is called. - * - * Returns an object to remove the source when the component unmounts. - * - * Conflicts trample with a warning. - */ - }, { - key: "addSource", - value: function addSource(key, callback) { - return this._addSource(key, callback, BugReporting._extraSources); - } - - /** - * Maps a string key to a simple callback that should return a string payload to be attached - * to a bug report. Source callbacks are called when `collectExtraData` is called. - * - * Returns an object to remove the source when the component unmounts. - * - * Conflicts trample with a warning. - */ - }, { - key: "addFileSource", - value: function addFileSource(key, callback) { - return this._addSource(key, callback, BugReporting._fileSources); - } - }, { - key: "_addSource", - value: function _addSource(key, callback, source) { - BugReporting._maybeInit(); - if (source.has(key)) { - console.warn(`BugReporting.add* called multiple times for same key '${key}'`); - } - source.set(key, callback); - return { - remove: function remove() { - source.delete(key); - } - }; - } - - /** - * This can be called from a native bug reporting flow, or from JS code. - * - * If available, this will call `NativeModules.BugReporting.setExtraData(extraData)` - * after collecting `extraData`. - */ - }, { - key: "collectExtraData", - value: function collectExtraData() { - var extraData = {}; - for (var _ref of BugReporting._extraSources) { - var _ref2 = (0, _slicedToArray2.default)(_ref, 2); - var _key = _ref2[0]; - var callback = _ref2[1]; - extraData[_key] = callback(); - } - var fileData = {}; - for (var _ref3 of BugReporting._fileSources) { - var _ref4 = (0, _slicedToArray2.default)(_ref3, 2); - var _key2 = _ref4[0]; - var _callback = _ref4[1]; - fileData[_key2] = _callback(); - } - if (_NativeBugReporting.default != null && _NativeBugReporting.default.setExtraData != null) { - _NativeBugReporting.default.setExtraData(extraData, fileData); - } - if (_NativeRedBox.default != null && _NativeRedBox.default.setExtraData != null) { - _NativeRedBox.default.setExtraData(extraData, 'From BugReporting.js'); - } - return { - extras: extraData, - files: fileData - }; - } - }]); - return BugReporting; - }(); - BugReporting._extraSources = new Map(); - BugReporting._fileSources = new Map(); - BugReporting._subscription = null; - BugReporting._redboxSubscription = null; - module.exports = BugReporting; -},157,[1,31,6,7,41,158,159,160]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var TurboModuleRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - var _default = exports.default = TurboModuleRegistry.get('RedBox'); -},158,[45]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var TurboModuleRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - var _default = exports.default = TurboModuleRegistry.get('BugReporting'); -},159,[45]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - /* - const getReactData = require('getReactData'); - - const INDENTATION_SIZE = 2; - const MAX_DEPTH = 2; - const MAX_STRING_LENGTH = 50; - */ - - /** - * Dump all React Native root views and their content. This function tries - * it best to get the content but ultimately relies on implementation details - * of React and will fail in future versions. - */ - function dumpReactTree() { - try { - return getReactTree(); - } catch (e) { - return 'Failed to dump react tree: ' + e; - } - } - function getReactTree() { - // TODO(sema): Reenable tree dumps using the Fiber tree structure. #15945684 - return "React tree dumps have been temporarily disabled while React is upgraded to Fiber."; - /* - let output = ''; - const rootIds = Object.getOwnPropertyNames(ReactNativeMount._instancesByContainerID); - for (const rootId of rootIds) { - const instance = ReactNativeMount._instancesByContainerID[rootId]; - output += `============ Root ID: ${rootId} ============\n`; - output += dumpNode(instance, 0); - output += `============ End root ID: ${rootId} ============\n`; - } - return output; - */ - } - - /* - function dumpNode(node: Object, indentation: number) { - const data = getReactData(node); - if (data.nodeType === 'Text') { - return indent(indentation) + data.text + '\n'; - } else if (data.nodeType === 'Empty') { - return ''; - } - let output = indent(indentation) + `<${data.name}`; - if (data.nodeType === 'Composite') { - for (const propName of Object.getOwnPropertyNames(data.props || {})) { - if (isNormalProp(propName)) { - try { - const value = convertValue(data.props[propName]); - if (value) { - output += ` ${propName}=${value}`; - } - } catch (e) { - const message = `[Failed to get property: ${e}]`; - output += ` ${propName}=${message}`; - } - } - } - } - let childOutput = ''; - for (const child of data.children || []) { - childOutput += dumpNode(child, indentation + 1); - } - - if (childOutput) { - output += '>\n' + childOutput + indent(indentation) + `\n`; - } else { - output += ' />\n'; - } - - return output; - } - - function isNormalProp(name: string): boolean { - switch (name) { - case 'children': - case 'key': - case 'ref': - return false; - default: - return true; - } - } - - function convertObject(object: Object, depth: number) { - if (depth >= MAX_DEPTH) { - return '[...omitted]'; - } - let output = '{'; - let first = true; - for (const key of Object.getOwnPropertyNames(object)) { - if (!first) { - output += ', '; - } - output += `${key}: ${convertValue(object[key], depth + 1)}`; - first = false; - } - return output + '}'; - } - - function convertValue(value, depth = 0): ?string { - if (!value) { - return null; - } - - switch (typeof value) { - case 'string': - return JSON.stringify(possiblyEllipsis(value).replace('\n', '\\n')); - case 'boolean': - case 'number': - return JSON.stringify(value); - case 'function': - return '[function]'; - case 'object': - return convertObject(value, depth); - default: - return null; - } - } - - function possiblyEllipsis(value: string) { - if (value.length > MAX_STRING_LENGTH) { - return value.slice(0, MAX_STRING_LENGTH) + '...'; - } else { - return value; - } - } - - function indent(size: number) { - return ' '.repeat(size * INDENTATION_SIZE); - } - */ - - module.exports = dumpReactTree; -},160,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - var _listeners = []; - var _activeScene = { - name: 'default' - }; - var SceneTracker = { - setActiveScene: function setActiveScene(scene) { - _activeScene = scene; - _listeners.forEach(function (listener) { - return listener(_activeScene); - }); - }, - getActiveScene: function getActiveScene() { - return _activeScene; - }, - addActiveSceneChangedListener: function addActiveSceneChangedListener(callback) { - _listeners.push(callback); - return { - remove: function remove() { - _listeners = _listeners.filter(function (listener) { - return callback !== listener; - }); - } - }; - } - }; - module.exports = SceneTracker; -},161,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _inherits2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _possibleConstructorReturn2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var _getPrototypeOf2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[5])); - var _wrapNativeSuper2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[6])); - function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } - function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - var HeadlessJsTaskError = exports.default = /*#__PURE__*/function (_Error) { - (0, _inherits2.default)(HeadlessJsTaskError, _Error); - var _super = _createSuper(HeadlessJsTaskError); - function HeadlessJsTaskError() { - (0, _classCallCheck2.default)(this, HeadlessJsTaskError); - return _super.apply(this, arguments); - } - return (0, _createClass2.default)(HeadlessJsTaskError); - }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error)); -},162,[1,7,6,66,68,70,86]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var TurboModuleRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - var _default = exports.default = TurboModuleRegistry.get('HeadlessJsTaskSupport'); -},163,[45]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = renderApplication; - var _GlobalPerformanceLogger = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _PerformanceLoggerContext = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _AppContainer = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _DisplayMode = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var _getCachedComponentWithDebugName = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[5])); - var Renderer = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[6])); - var _invariant = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[7])); - var React = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[8])); - _$$_REQUIRE(_dependencyMap[9]); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - // require BackHandler so it sets the default handler that exits the app if no listeners respond - - function renderApplication(RootComponent, initialProps, rootTag, WrapperComponent, fabric, showArchitectureIndicator, scopedPerformanceLogger, isLogBox, debugName, displayMode, useConcurrentRoot, useOffscreen) { - (0, _invariant.default)(rootTag, 'Expect to have a valid rootTag, instead got ', rootTag); - var performanceLogger = scopedPerformanceLogger != null ? scopedPerformanceLogger : _GlobalPerformanceLogger.default; - var renderable = /*#__PURE__*/(0, _$$_REQUIRE(_dependencyMap[10]).jsx)(_PerformanceLoggerContext.default.Provider, { - value: performanceLogger, - children: /*#__PURE__*/(0, _$$_REQUIRE(_dependencyMap[10]).jsx)(_AppContainer.default, { - rootTag: rootTag, - fabric: fabric, - showArchitectureIndicator: showArchitectureIndicator, - WrapperComponent: WrapperComponent, - initialProps: initialProps != null ? initialProps : Object.freeze({}), - internal_excludeLogBox: isLogBox, - children: /*#__PURE__*/(0, _$$_REQUIRE(_dependencyMap[10]).jsx)(RootComponent, Object.assign({}, initialProps, { - rootTag: rootTag - })) - }) - }); - if (useOffscreen && displayMode != null) { - // $FlowFixMe[incompatible-type] - // $FlowFixMe[prop-missing] - var Offscreen = React.unstable_Offscreen; - renderable = /*#__PURE__*/(0, _$$_REQUIRE(_dependencyMap[10]).jsx)(Offscreen, { - mode: displayMode === _DisplayMode.default.VISIBLE ? 'visible' : 'hidden', - children: renderable - }); - } - performanceLogger.startTimespan('renderApplication_React_render'); - performanceLogger.setExtra('usedReactConcurrentRoot', useConcurrentRoot ? '1' : '0'); - performanceLogger.setExtra('usedReactFabric', fabric ? '1' : '0'); - performanceLogger.setExtra('usedReactProfiler', Renderer.isProfilingRenderer()); - Renderer.renderElement({ - element: renderable, - rootTag: rootTag, - useFabric: Boolean(fabric), - useConcurrentRoot: Boolean(useConcurrentRoot) - }); - performanceLogger.stopTimespan('renderApplication_React_render'); - } -},164,[1,117,165,166,239,240,57,46,3,241,211]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - exports.usePerformanceLogger = usePerformanceLogger; - var _GlobalPerformanceLogger = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _react = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[2])); - var React = _react; - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - /** - * This is a React Context that provides a scoped instance of IPerformanceLogger. - * We wrap every with a Provider for this context so the logger - * should be available in every component. - * See React docs about using Context: https://reactjs.org/docs/context.html - */ - var PerformanceLoggerContext = React.createContext(_GlobalPerformanceLogger.default); - function usePerformanceLogger() { - return (0, _react.useContext)(PerformanceLoggerContext); - } - var _default = exports.default = PerformanceLoggerContext; -},165,[1,117,3]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _inherits2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _possibleConstructorReturn2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var _getPrototypeOf2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[5])); - var _View = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[6])); - var _RCTDeviceEventEmitter = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[7])); - var _StyleSheet = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[8])); - var React = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[9])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } - function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - var reactDevToolsHook = window.__REACT_DEVTOOLS_GLOBAL_HOOK__; - var AppContainer = /*#__PURE__*/function (_React$Component) { - (0, _inherits2.default)(AppContainer, _React$Component); - var _super = _createSuper(AppContainer); - function AppContainer() { - var _this; - (0, _classCallCheck2.default)(this, AppContainer); - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - _this = _super.call.apply(_super, [this].concat(args)); - _this.state = { - inspector: null, - devtoolsOverlay: null, - traceUpdateOverlay: null, - mainKey: 1, - hasError: false - }; - _this._subscription = null; - _this._reactDevToolsAgentListener = null; - return _this; - } - (0, _createClass2.default)(AppContainer, [{ - key: "mountReactDevToolsOverlays", - value: function mountReactDevToolsOverlays() { - var DevtoolsOverlay = _$$_REQUIRE(_dependencyMap[10]).default; - var devtoolsOverlay = /*#__PURE__*/(0, _$$_REQUIRE(_dependencyMap[11]).jsx)(DevtoolsOverlay, { - inspectedView: this._mainRef - }); - var TraceUpdateOverlay = _$$_REQUIRE(_dependencyMap[12]).default; - var traceUpdateOverlay = /*#__PURE__*/(0, _$$_REQUIRE(_dependencyMap[11]).jsx)(TraceUpdateOverlay, {}); - this.setState({ - devtoolsOverlay: devtoolsOverlay, - traceUpdateOverlay: traceUpdateOverlay - }); - } - }, { - key: "componentDidMount", - value: function componentDidMount() { - var _this2 = this; - } - }, { - key: "componentWillUnmount", - value: function componentWillUnmount() { - if (this._subscription != null) { - this._subscription.remove(); - } - if (reactDevToolsHook != null && this._reactDevToolsAgentListener != null) { - reactDevToolsHook.off('react-devtools', this._reactDevToolsAgentListener); - } - } - }, { - key: "render", - value: function render() { - var _this3 = this; - var logBox = null; - var innerView = /*#__PURE__*/(0, _$$_REQUIRE(_dependencyMap[11]).jsx)(_View.default, { - collapsable: !this.state.inspector && !this.state.devtoolsOverlay, - pointerEvents: "box-none", - style: styles.appContainer, - ref: function ref(_ref) { - _this3._mainRef = _ref; - }, - children: this.props.children - }, this.state.mainKey); - var Wrapper = this.props.WrapperComponent; - if (Wrapper != null) { - innerView = /*#__PURE__*/(0, _$$_REQUIRE(_dependencyMap[11]).jsx)(Wrapper, { - initialProps: this.props.initialProps, - fabric: this.props.fabric === true, - showArchitectureIndicator: this.props.showArchitectureIndicator === true, - children: innerView - }); - } - return /*#__PURE__*/(0, _$$_REQUIRE(_dependencyMap[11]).jsx)(_$$_REQUIRE(_dependencyMap[13]).RootTagContext.Provider, { - value: (0, _$$_REQUIRE(_dependencyMap[13]).createRootTag)(this.props.rootTag), - children: /*#__PURE__*/(0, _$$_REQUIRE(_dependencyMap[11]).jsxs)(_View.default, { - style: styles.appContainer, - pointerEvents: "box-none", - children: [!this.state.hasError && innerView, this.state.traceUpdateOverlay, this.state.devtoolsOverlay, this.state.inspector, logBox] - }) - }); - } - }]); - return AppContainer; - }(React.Component); - AppContainer.getDerivedStateFromError = undefined; - var styles = _StyleSheet.default.create({ - appContainer: { - flex: 1 - } - }); - module.exports = AppContainer; -},166,[1,6,7,66,68,70,167,41,214,3,215,211,222,238]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var _objectWithoutProperties2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _flattenStyle = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _TextAncestor = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _ViewNativeComponent = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var React = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[5])); - var _excluded = ["accessibilityElementsHidden", "accessibilityLabel", "accessibilityLabelledBy", "accessibilityLiveRegion", "accessibilityRole", "accessibilityState", "accessibilityValue", "aria-busy", "aria-checked", "aria-disabled", "aria-expanded", "aria-hidden", "aria-label", "aria-labelledby", "aria-live", "aria-selected", "aria-valuemax", "aria-valuemin", "aria-valuenow", "aria-valuetext", "focusable", "id", "importantForAccessibility", "nativeID", "pointerEvents", "role", "tabIndex"]; - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * The most fundamental component for building a UI, View is a container that - * supports layout with flexbox, style, some touch handling, and accessibility - * controls. - * - * @see https://reactnative.dev/docs/view - */ - var View = React.forwardRef(function (_ref, forwardedRef) { - var _ariaLabelledBy$split; - var accessibilityElementsHidden = _ref.accessibilityElementsHidden, - accessibilityLabel = _ref.accessibilityLabel, - accessibilityLabelledBy = _ref.accessibilityLabelledBy, - accessibilityLiveRegion = _ref.accessibilityLiveRegion, - accessibilityRole = _ref.accessibilityRole, - accessibilityState = _ref.accessibilityState, - accessibilityValue = _ref.accessibilityValue, - ariaBusy = _ref['aria-busy'], - ariaChecked = _ref['aria-checked'], - ariaDisabled = _ref['aria-disabled'], - ariaExpanded = _ref['aria-expanded'], - ariaHidden = _ref['aria-hidden'], - ariaLabel = _ref['aria-label'], - ariaLabelledBy = _ref['aria-labelledby'], - ariaLive = _ref['aria-live'], - ariaSelected = _ref['aria-selected'], - ariaValueMax = _ref['aria-valuemax'], - ariaValueMin = _ref['aria-valuemin'], - ariaValueNow = _ref['aria-valuenow'], - ariaValueText = _ref['aria-valuetext'], - focusable = _ref.focusable, - id = _ref.id, - importantForAccessibility = _ref.importantForAccessibility, - nativeID = _ref.nativeID, - pointerEvents = _ref.pointerEvents, - role = _ref.role, - tabIndex = _ref.tabIndex, - otherProps = (0, _objectWithoutProperties2.default)(_ref, _excluded); - var _accessibilityLabelledBy = (_ariaLabelledBy$split = ariaLabelledBy == null ? undefined : ariaLabelledBy.split(/\s*,\s*/g)) != null ? _ariaLabelledBy$split : accessibilityLabelledBy; - var _accessibilityState; - if (accessibilityState != null || ariaBusy != null || ariaChecked != null || ariaDisabled != null || ariaExpanded != null || ariaSelected != null) { - _accessibilityState = { - busy: ariaBusy != null ? ariaBusy : accessibilityState == null ? undefined : accessibilityState.busy, - checked: ariaChecked != null ? ariaChecked : accessibilityState == null ? undefined : accessibilityState.checked, - disabled: ariaDisabled != null ? ariaDisabled : accessibilityState == null ? undefined : accessibilityState.disabled, - expanded: ariaExpanded != null ? ariaExpanded : accessibilityState == null ? undefined : accessibilityState.expanded, - selected: ariaSelected != null ? ariaSelected : accessibilityState == null ? undefined : accessibilityState.selected - }; - } - var _accessibilityValue; - if (accessibilityValue != null || ariaValueMax != null || ariaValueMin != null || ariaValueNow != null || ariaValueText != null) { - _accessibilityValue = { - max: ariaValueMax != null ? ariaValueMax : accessibilityValue == null ? undefined : accessibilityValue.max, - min: ariaValueMin != null ? ariaValueMin : accessibilityValue == null ? undefined : accessibilityValue.min, - now: ariaValueNow != null ? ariaValueNow : accessibilityValue == null ? undefined : accessibilityValue.now, - text: ariaValueText != null ? ariaValueText : accessibilityValue == null ? undefined : accessibilityValue.text - }; - } - - // $FlowFixMe[underconstrained-implicit-instantiation] - var style = (0, _flattenStyle.default)(otherProps.style); - var newPointerEvents = (style == null ? undefined : style.pointerEvents) || pointerEvents; - return /*#__PURE__*/(0, _$$_REQUIRE(_dependencyMap[6]).jsx)(_TextAncestor.default.Provider, { - value: false, - children: /*#__PURE__*/(0, _$$_REQUIRE(_dependencyMap[6]).jsx)(_ViewNativeComponent.default, Object.assign({}, otherProps, { - accessibilityLiveRegion: ariaLive === 'off' ? 'none' : ariaLive != null ? ariaLive : accessibilityLiveRegion, - accessibilityLabel: ariaLabel != null ? ariaLabel : accessibilityLabel, - focusable: tabIndex !== undefined ? !tabIndex : focusable, - accessibilityState: _accessibilityState, - accessibilityRole: role ? (0, _$$_REQUIRE(_dependencyMap[7]).getAccessibilityRoleFromRole)(role) : accessibilityRole, - accessibilityElementsHidden: ariaHidden != null ? ariaHidden : accessibilityElementsHidden, - accessibilityLabelledBy: _accessibilityLabelledBy, - accessibilityValue: _accessibilityValue, - importantForAccessibility: ariaHidden === true ? 'no-hide-descendants' : importantForAccessibility, - nativeID: id != null ? id : nativeID, - style: style, - pointerEvents: newPointerEvents, - ref: forwardedRef - })) - }); - }); - View.displayName = 'View'; - module.exports = View; -},167,[1,130,168,169,170,3,211,213]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - function flattenStyle(style - // $FlowFixMe[underconstrained-implicit-instantiation] - ) { - if (style === null || typeof style !== 'object') { - return undefined; - } - if (!Array.isArray(style)) { - return style; - } - var result = {}; - for (var i = 0, styleLength = style.length; i < styleLength; ++i) { - // $FlowFixMe[underconstrained-implicit-instantiation] - var computedStyle = flattenStyle(style[i]); - if (computedStyle) { - for (var key in computedStyle) { - result[key] = computedStyle[key]; - } - } - } - return result; - } - module.exports = flattenStyle; -},168,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - var React = _$$_REQUIRE(_dependencyMap[0]); - - /** - * Whether the current element is the descendant of a element. - */ - var TextAncestorContext = React.createContext(false); - module.exports = TextAncestorContext; -},169,[3]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = exports.__INTERNAL_VIEW_CONFIG = exports.Commands = undefined; - var NativeComponentRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - var _codegenNativeCommands = _$$_REQUIRE(_dependencyMap[1])(_$$_REQUIRE(_dependencyMap[2])); - var _Platform = _$$_REQUIRE(_dependencyMap[1])(_$$_REQUIRE(_dependencyMap[3])); - var React = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[4])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - var __INTERNAL_VIEW_CONFIG = exports.__INTERNAL_VIEW_CONFIG = _Platform.default.OS === 'android' ? { - uiViewClassName: 'RCTView', - validAttributes: { - // ReactClippingViewManager @ReactProps - removeClippedSubviews: true, - // ReactViewManager @ReactProps - accessible: true, - hasTVPreferredFocus: true, - nextFocusDown: true, - nextFocusForward: true, - nextFocusLeft: true, - nextFocusRight: true, - nextFocusUp: true, - borderRadius: true, - borderTopLeftRadius: true, - borderTopRightRadius: true, - borderBottomRightRadius: true, - borderBottomLeftRadius: true, - borderTopStartRadius: true, - borderTopEndRadius: true, - borderBottomStartRadius: true, - borderBottomEndRadius: true, - borderEndEndRadius: true, - borderEndStartRadius: true, - borderStartEndRadius: true, - borderStartStartRadius: true, - borderStyle: true, - hitSlop: true, - pointerEvents: true, - nativeBackgroundAndroid: true, - nativeForegroundAndroid: true, - needsOffscreenAlphaCompositing: true, - borderWidth: true, - borderLeftWidth: true, - borderRightWidth: true, - borderTopWidth: true, - borderBottomWidth: true, - borderStartWidth: true, - borderEndWidth: true, - borderColor: { - process: _$$_REQUIRE(_dependencyMap[5]).default - }, - borderLeftColor: { - process: _$$_REQUIRE(_dependencyMap[5]).default - }, - borderRightColor: { - process: _$$_REQUIRE(_dependencyMap[5]).default - }, - borderTopColor: { - process: _$$_REQUIRE(_dependencyMap[5]).default - }, - borderBottomColor: { - process: _$$_REQUIRE(_dependencyMap[5]).default - }, - borderStartColor: { - process: _$$_REQUIRE(_dependencyMap[5]).default - }, - borderEndColor: { - process: _$$_REQUIRE(_dependencyMap[5]).default - }, - borderBlockColor: { - process: _$$_REQUIRE(_dependencyMap[5]).default - }, - borderBlockEndColor: { - process: _$$_REQUIRE(_dependencyMap[5]).default - }, - borderBlockStartColor: { - process: _$$_REQUIRE(_dependencyMap[5]).default - }, - focusable: true, - overflow: true, - backfaceVisibility: true - } - } : { - uiViewClassName: 'RCTView' - }; - var ViewNativeComponent = NativeComponentRegistry.get('RCTView', function () { - return __INTERNAL_VIEW_CONFIG; - }); - var Commands = exports.Commands = (0, _codegenNativeCommands.default)({ - supportedCommands: ['hotspotUpdate', 'setPressed'] - }); - var _default = exports.default = ViewNativeComponent; -},170,[171,1,210,43,3,183]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.get = get; - exports.getWithFallback_DEPRECATED = getWithFallback_DEPRECATED; - exports.setRuntimeConfigProvider = setRuntimeConfigProvider; - exports.unstable_hasStaticViewConfig = unstable_hasStaticViewConfig; - var _getNativeComponentAttributes = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _UIManager = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _ReactNativeViewConfigRegistry = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _verifyComponentAttributeEquivalence = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var StaticViewConfigValidator = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[5])); - var _invariant = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[6])); - var React = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[7])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - var getRuntimeConfig; - - /** - * Configures a function that is called to determine whether a given component - * should be registered using reflection of the native component at runtime. - * - * The provider should return null if the native component is unavailable in - * the current environment. - */ - function setRuntimeConfigProvider(runtimeConfigProvider) { - (0, _invariant.default)(getRuntimeConfig == null, 'NativeComponentRegistry.setRuntimeConfigProvider() called more than once.'); - getRuntimeConfig = runtimeConfigProvider; - } - - /** - * Gets a `NativeComponent` that can be rendered by React Native. - * - * The supplied `viewConfigProvider` may or may not be invoked and utilized, - * depending on how `setRuntimeConfigProvider` is configured. - */ - function get(name, viewConfigProvider) { - _ReactNativeViewConfigRegistry.default.register(name, function () { - var _getRuntimeConfig; - var _ref = (_getRuntimeConfig = getRuntimeConfig == null ? undefined : getRuntimeConfig(name)) != null ? _getRuntimeConfig : { - native: true, - strict: false, - verify: false - }, - native = _ref.native, - strict = _ref.strict, - verify = _ref.verify; - var viewConfig = native ? (0, _getNativeComponentAttributes.default)(name) : (0, _$$_REQUIRE(_dependencyMap[8]).createViewConfig)(viewConfigProvider()); - if (verify) { - var nativeViewConfig = native ? viewConfig : (0, _getNativeComponentAttributes.default)(name); - var staticViewConfig = native ? (0, _$$_REQUIRE(_dependencyMap[8]).createViewConfig)(viewConfigProvider()) : viewConfig; - if (strict) { - var validationOutput = StaticViewConfigValidator.validate(name, nativeViewConfig, staticViewConfig); - if (validationOutput.type === 'invalid') { - console.error(StaticViewConfigValidator.stringifyValidationResult(name, validationOutput)); - } - } else { - (0, _verifyComponentAttributeEquivalence.default)(nativeViewConfig, staticViewConfig); - } - } - return viewConfig; - }); - - // $FlowFixMe[incompatible-return] `NativeComponent` is actually string! - return name; - } - - /** - * Same as `NativeComponentRegistry.get(...)`, except this will check either - * the `setRuntimeConfigProvider` configuration or use native reflection (slow) - * to determine whether this native component is available. - * - * If the native component is not available, a stub component is returned. Note - * that the return value of this is not `HostComponent` because the returned - * component instance is not guaranteed to have native methods. - */ - function getWithFallback_DEPRECATED(name, viewConfigProvider) { - if (getRuntimeConfig == null) { - // `getRuntimeConfig == null` when static view configs are disabled - // If `setRuntimeConfigProvider` is not configured, use native reflection. - if (hasNativeViewConfig(name)) { - return get(name, viewConfigProvider); - } - } else { - // If there is no runtime config, then the native component is unavailable. - if (getRuntimeConfig(name) != null) { - return get(name, viewConfigProvider); - } - } - var FallbackNativeComponent = function FallbackNativeComponent(props) { - return null; - }; - FallbackNativeComponent.displayName = `Fallback(${name})`; - return FallbackNativeComponent; - } - function hasNativeViewConfig(name) { - (0, _invariant.default)(getRuntimeConfig == null, 'Unexpected invocation!'); - return _UIManager.default.getViewManagerConfig(name) != null; - } - - /** - * Unstable API. Do not use! - * - * This method returns if there is a StaticViewConfig registered for the - * component name received as a parameter. - */ - function unstable_hasStaticViewConfig(name) { - var _getRuntimeConfig2; - var _ref2 = (_getRuntimeConfig2 = getRuntimeConfig == null ? undefined : getRuntimeConfig(name)) != null ? _getRuntimeConfig2 : { - native: true - }, - native = _ref2.native; - return !native; - } -},171,[1,172,173,203,204,208,46,3,209]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - function getNativeComponentAttributes(uiViewClassName) { - var _bubblingEventTypes, _directEventTypes; - var viewConfig = _$$_REQUIRE(_dependencyMap[0]).getViewManagerConfig(uiViewClassName); - _$$_REQUIRE(_dependencyMap[1])(viewConfig != null && viewConfig.NativeProps != null, 'requireNativeComponent: "%s" was not found in the UIManager.', uiViewClassName); - - // TODO: This seems like a whole lot of runtime initialization for every - // native component that can be either avoided or simplified. - var baseModuleName = viewConfig.baseModuleName, - bubblingEventTypes = viewConfig.bubblingEventTypes, - directEventTypes = viewConfig.directEventTypes; - var nativeProps = viewConfig.NativeProps; - bubblingEventTypes = (_bubblingEventTypes = bubblingEventTypes) != null ? _bubblingEventTypes : {}; - directEventTypes = (_directEventTypes = directEventTypes) != null ? _directEventTypes : {}; - while (baseModuleName) { - var baseModule = _$$_REQUIRE(_dependencyMap[0]).getViewManagerConfig(baseModuleName); - if (!baseModule) { - baseModuleName = null; - } else { - bubblingEventTypes = Object.assign({}, baseModule.bubblingEventTypes, bubblingEventTypes); - directEventTypes = Object.assign({}, baseModule.directEventTypes, directEventTypes); - nativeProps = Object.assign({}, baseModule.NativeProps, nativeProps); - baseModuleName = baseModule.baseModuleName; - } - } - var validAttributes = {}; - for (var key in nativeProps) { - var typeName = nativeProps[key]; - var diff = getDifferForType(typeName); - var process = getProcessorForType(typeName); - - // If diff or process == null, omit the corresponding property from the Attribute - // Why: - // 1. Consistency with AttributeType flow type - // 2. Consistency with Static View Configs, which omit the null properties - validAttributes[key] = diff == null ? process == null ? true : { - process: process - } : process == null ? { - diff: diff - } : { - diff: diff, - process: process - }; - } - - // Unfortunately, the current setup declares style properties as top-level - // props. This makes it so we allow style properties in the `style` prop. - // TODO: Move style properties into a `style` prop and disallow them as - // top-level props on the native side. - validAttributes.style = _$$_REQUIRE(_dependencyMap[2]); - Object.assign(viewConfig, { - uiViewClassName: uiViewClassName, - validAttributes: validAttributes, - bubblingEventTypes: bubblingEventTypes, - directEventTypes: directEventTypes - }); - attachDefaultEventTypes(viewConfig); - return viewConfig; - } - function attachDefaultEventTypes(viewConfig) { - // This is supported on UIManager platforms (ex: Android), - // as lazy view managers are not implemented for all platforms. - // See [UIManager] for details on constants and implementations. - var constants = _$$_REQUIRE(_dependencyMap[0]).getConstants(); - if (constants.ViewManagerNames || constants.LazyViewManagersEnabled) { - // Lazy view managers enabled. - viewConfig = merge(viewConfig, _$$_REQUIRE(_dependencyMap[0]).getDefaultEventTypes()); - } else { - viewConfig.bubblingEventTypes = merge(viewConfig.bubblingEventTypes, constants.genericBubblingEventTypes); - viewConfig.directEventTypes = merge(viewConfig.directEventTypes, constants.genericDirectEventTypes); - } - } - - // TODO: Figure out how to avoid all this runtime initialization cost. - function merge(destination, source) { - if (!source) { - return destination; - } - if (!destination) { - return source; - } - for (var key in source) { - if (!source.hasOwnProperty(key)) { - continue; - } - var sourceValue = source[key]; - if (destination.hasOwnProperty(key)) { - var destinationValue = destination[key]; - if (typeof sourceValue === 'object' && typeof destinationValue === 'object') { - sourceValue = merge(destinationValue, sourceValue); - } - } - destination[key] = sourceValue; - } - return destination; - } - function getDifferForType(typeName) { - switch (typeName) { - // iOS Types - case 'CATransform3D': - return _$$_REQUIRE(_dependencyMap[3]); - case 'CGPoint': - return _$$_REQUIRE(_dependencyMap[4]); - case 'CGSize': - return _$$_REQUIRE(_dependencyMap[5]); - case 'UIEdgeInsets': - return _$$_REQUIRE(_dependencyMap[6]); - // Android Types - case 'Point': - return _$$_REQUIRE(_dependencyMap[4]); - case 'EdgeInsets': - return _$$_REQUIRE(_dependencyMap[6]); - } - return null; - } - function getProcessorForType(typeName) { - switch (typeName) { - // iOS Types - case 'CGColor': - case 'UIColor': - return _$$_REQUIRE(_dependencyMap[7]).default; - case 'CGColorArray': - case 'UIColorArray': - return _$$_REQUIRE(_dependencyMap[8]); - case 'CGImage': - case 'UIImage': - case 'RCTImageSource': - return _$$_REQUIRE(_dependencyMap[9]); - // Android Types - case 'Color': - return _$$_REQUIRE(_dependencyMap[7]).default; - case 'ColorArray': - return _$$_REQUIRE(_dependencyMap[8]); - case 'ImageSource': - return _$$_REQUIRE(_dependencyMap[9]); - } - return null; - } - module.exports = getNativeComponentAttributes; -},172,[173,46,181,190,191,189,192,183,193,194]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var _nullthrows = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - function isFabricReactTag(reactTag) { - // React reserves even numbers for Fabric. - return reactTag % 2 === 0; - } - var UIManagerImpl = global.RN$Bridgeless === true ? _$$_REQUIRE(_dependencyMap[2]) : _$$_REQUIRE(_dependencyMap[3]); - - // $FlowFixMe[cannot-spread-interface] - var UIManager = Object.assign({}, UIManagerImpl, { - measure: function measure(reactTag, callback) { - if (isFabricReactTag(reactTag)) { - var FabricUIManager = (0, _nullthrows.default)((0, _$$_REQUIRE(_dependencyMap[4]).getFabricUIManager)()); - var shadowNode = FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag); - if (shadowNode) { - FabricUIManager.measure(shadowNode, callback); - } else { - console.warn(`measure cannot find view with tag #${reactTag}`); - // $FlowFixMe[incompatible-call] - callback(); - } - } else { - // Paper - UIManagerImpl.measure(reactTag, callback); - } - }, - measureInWindow: function measureInWindow(reactTag, callback) { - if (isFabricReactTag(reactTag)) { - var FabricUIManager = (0, _nullthrows.default)((0, _$$_REQUIRE(_dependencyMap[4]).getFabricUIManager)()); - var shadowNode = FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag); - if (shadowNode) { - FabricUIManager.measureInWindow(shadowNode, callback); - } else { - console.warn(`measure cannot find view with tag #${reactTag}`); - // $FlowFixMe[incompatible-call] - callback(); - } - } else { - // Paper - UIManagerImpl.measureInWindow(reactTag, callback); - } - }, - measureLayout: function measureLayout(reactTag, ancestorReactTag, errorCallback, callback) { - if (isFabricReactTag(reactTag)) { - var FabricUIManager = (0, _nullthrows.default)((0, _$$_REQUIRE(_dependencyMap[4]).getFabricUIManager)()); - var shadowNode = FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag); - var ancestorShadowNode = FabricUIManager.findShadowNodeByTag_DEPRECATED(ancestorReactTag); - if (!shadowNode || !ancestorShadowNode) { - return; - } - FabricUIManager.measureLayout(shadowNode, ancestorShadowNode, errorCallback, callback); - } else { - // Paper - UIManagerImpl.measureLayout(reactTag, ancestorReactTag, errorCallback, callback); - } - }, - measureLayoutRelativeToParent: function measureLayoutRelativeToParent(reactTag, errorCallback, callback) { - if (isFabricReactTag(reactTag)) { - console.warn('RCTUIManager.measureLayoutRelativeToParent method is deprecated and it will not be implemented in newer versions of RN (Fabric) - T47686450'); - var FabricUIManager = (0, _nullthrows.default)((0, _$$_REQUIRE(_dependencyMap[4]).getFabricUIManager)()); - var shadowNode = FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag); - if (shadowNode) { - FabricUIManager.measure(shadowNode, function (left, top, width, height, pageX, pageY) { - callback(left, top, width, height); - }); - } - } else { - // Paper - UIManagerImpl.measureLayoutRelativeToParent(reactTag, errorCallback, callback); - } - }, - dispatchViewManagerCommand: function dispatchViewManagerCommand(reactTag, commandName, commandArgs) { - if (isFabricReactTag(reactTag)) { - var FabricUIManager = (0, _nullthrows.default)((0, _$$_REQUIRE(_dependencyMap[4]).getFabricUIManager)()); - var shadowNode = FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag); - if (shadowNode) { - // Transform the accidental CommandID into a CommandName which is the stringified number. - // The interop layer knows how to convert this number into the right method name. - // Stringify a string is a no-op, so it's safe. - commandName = `${commandName}`; - FabricUIManager.dispatchCommand(shadowNode, commandName, commandArgs); - } - } else { - UIManagerImpl.dispatchViewManagerCommand(reactTag, - // We have some legacy components that are actually already using strings. Β―\_(ツ)_/Β― - // $FlowFixMe[incompatible-call] - commandName, commandArgs); - } - } - }); - module.exports = UIManager; -},173,[1,174,175,177,180]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - 'use strict'; - - function nullthrows(x, message) { - if (x != null) { - return x; - } - var error = new Error(message !== undefined ? message : 'Got unexpected ' + x); - error.framesToPop = 1; // Skip nullthrows's own stack frame. - throw error; - } - module.exports = nullthrows; - module.exports.default = nullthrows; - Object.defineProperty(module.exports, '__esModule', { - value: true - }); -},174,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - var errorMessageForMethod = function errorMessageForMethod(methodName) { - return "[ReactNative Architecture][JS] '" + methodName + "' is not available in the new React Native architecture."; - }; - module.exports = { - getViewManagerConfig: function getViewManagerConfig(viewManagerName) { - console.error(errorMessageForMethod('getViewManagerConfig') + 'Use hasViewManagerConfig instead. viewManagerName: ' + viewManagerName); - return null; - }, - hasViewManagerConfig: function hasViewManagerConfig(viewManagerName) { - return (0, _$$_REQUIRE(_dependencyMap[0]).unstable_hasComponent)(viewManagerName); - }, - getConstants: function getConstants() { - console.error(errorMessageForMethod('getConstants')); - return {}; - }, - getConstantsForViewManager: function getConstantsForViewManager(viewManagerName) { - console.error(errorMessageForMethod('getConstantsForViewManager')); - return {}; - }, - getDefaultEventTypes: function getDefaultEventTypes() { - console.error(errorMessageForMethod('getDefaultEventTypes')); - return []; - }, - lazilyLoadView: function lazilyLoadView(name) { - console.error(errorMessageForMethod('lazilyLoadView')); - return {}; - }, - createView: function createView(reactTag, viewName, rootTag, props) { - return console.error(errorMessageForMethod('createView')); - }, - updateView: function updateView(reactTag, viewName, props) { - return console.error(errorMessageForMethod('updateView')); - }, - focus: function focus(reactTag) { - return console.error(errorMessageForMethod('focus')); - }, - blur: function blur(reactTag) { - return console.error(errorMessageForMethod('blur')); - }, - findSubviewIn: function findSubviewIn(reactTag, point, callback) { - return console.error(errorMessageForMethod('findSubviewIn')); - }, - dispatchViewManagerCommand: function dispatchViewManagerCommand(reactTag, commandID, commandArgs) { - return console.error(errorMessageForMethod('dispatchViewManagerCommand')); - }, - measure: function measure(reactTag, callback) { - return console.error(errorMessageForMethod('measure')); - }, - measureInWindow: function measureInWindow(reactTag, callback) { - return console.error(errorMessageForMethod('measureInWindow')); - }, - viewIsDescendantOf: function viewIsDescendantOf(reactTag, ancestorReactTag, callback) { - return console.error(errorMessageForMethod('viewIsDescendantOf')); - }, - measureLayout: function measureLayout(reactTag, ancestorReactTag, errorCallback, callback) { - return console.error(errorMessageForMethod('measureLayout')); - }, - measureLayoutRelativeToParent: function measureLayoutRelativeToParent(reactTag, errorCallback, callback) { - return console.error(errorMessageForMethod('measureLayoutRelativeToParent')); - }, - setJSResponder: function setJSResponder(reactTag, blockNativeResponder) { - return console.error(errorMessageForMethod('setJSResponder')); - }, - clearJSResponder: function clearJSResponder() {}, - // Don't log error here because we're aware it gets called - configureNextLayoutAnimation: function configureNextLayoutAnimation(config, callback, errorCallback) { - return console.error(errorMessageForMethod('configureNextLayoutAnimation')); - }, - removeSubviewsFromContainerWithID: function removeSubviewsFromContainerWithID(containerID) { - return console.error(errorMessageForMethod('removeSubviewsFromContainerWithID')); - }, - replaceExistingNonRootView: function replaceExistingNonRootView(reactTag, newReactTag) { - return console.error(errorMessageForMethod('replaceExistingNonRootView')); - }, - setChildren: function setChildren(containerTag, reactTags) { - return console.error(errorMessageForMethod('setChildren')); - }, - manageChildren: function manageChildren(containerTag, moveFromIndices, moveToIndices, addChildReactTags, addAtIndices, removeAtIndices) { - return console.error(errorMessageForMethod('manageChildren')); - }, - // Android only - setLayoutAnimationEnabledExperimental: function setLayoutAnimationEnabledExperimental(enabled) { - console.error(errorMessageForMethod('setLayoutAnimationEnabledExperimental')); - }, - // Please use AccessibilityInfo.sendAccessibilityEvent instead. - // See SetAccessibilityFocusExample in AccessibilityExample.js for a migration example. - sendAccessibilityEvent: function sendAccessibilityEvent(reactTag, eventType) { - return console.error(errorMessageForMethod('sendAccessibilityEvent')); - }, - showPopupMenu: function showPopupMenu(reactTag, items, error, success) { - return console.error(errorMessageForMethod('showPopupMenu')); - }, - dismissPopupMenu: function dismissPopupMenu() { - return console.error(errorMessageForMethod('dismissPopupMenu')); - } - }; -},175,[176]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.unstable_hasComponent = unstable_hasComponent; - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - var componentNameToExists = new Map(); - - /** - * Unstable API. Do not use! - * - * This method returns if the component with name received as a parameter - * is registered in the native platform. - */ - function unstable_hasComponent(name) { - var hasNativeComponent = componentNameToExists.get(name); - if (hasNativeComponent == null) { - if (global.__nativeComponentRegistry__hasComponent) { - hasNativeComponent = global.__nativeComponentRegistry__hasComponent(name); - componentNameToExists.set(name, hasNativeComponent); - } else { - throw `unstable_hasComponent('${name}'): Global function is not registered`; - } - } - return hasNativeComponent; - } -},176,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var _NativeUIManager = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - var viewManagerConfigs = {}; - var triedLoadingConfig = new Set(); - var NativeUIManagerConstants = {}; - var isNativeUIManagerConstantsSet = false; - function _getConstants() { - if (!isNativeUIManagerConstantsSet) { - NativeUIManagerConstants = _NativeUIManager.default.getConstants(); - isNativeUIManagerConstantsSet = true; - } - return NativeUIManagerConstants; - } - function _getViewManagerConfig(viewManagerName) { - if (viewManagerConfigs[viewManagerName] === undefined && global.nativeCallSyncHook && - // If we're in the Chrome Debugger, let's not even try calling the sync method - _NativeUIManager.default.getConstantsForViewManager) { - try { - viewManagerConfigs[viewManagerName] = _NativeUIManager.default.getConstantsForViewManager(viewManagerName); - } catch (e) { - console.error("NativeUIManager.getConstantsForViewManager('" + viewManagerName + "') threw an exception.", e); - viewManagerConfigs[viewManagerName] = null; - } - } - var config = viewManagerConfigs[viewManagerName]; - if (config) { - return config; - } - - // If we're in the Chrome Debugger, let's not even try calling the sync - // method. - if (!global.nativeCallSyncHook) { - return config; - } - if (_NativeUIManager.default.lazilyLoadView && !triedLoadingConfig.has(viewManagerName)) { - var result = _NativeUIManager.default.lazilyLoadView(viewManagerName); - triedLoadingConfig.add(viewManagerName); - if (result != null && result.viewConfig != null) { - _getConstants()[viewManagerName] = result.viewConfig; - lazifyViewManagerConfig(viewManagerName); - } - } - return viewManagerConfigs[viewManagerName]; - } - - /* $FlowFixMe[cannot-spread-interface] (>=0.123.0 site=react_native_fb) This - * comment suppresses an error found when Flow v0.123.0 was deployed. To see - * the error, delete this comment and run Flow. */ - var UIManagerJS = Object.assign({}, _NativeUIManager.default, { - createView: function createView(reactTag, viewName, rootTag, props) { - if (viewManagerConfigs[viewName] === undefined) { - // This is necessary to force the initialization of native viewManager - // classes in iOS when using static ViewConfigs - _getViewManagerConfig(viewName); - } - _NativeUIManager.default.createView(reactTag, viewName, rootTag, props); - }, - getConstants: function getConstants() { - return _getConstants(); - }, - getViewManagerConfig: function getViewManagerConfig(viewManagerName) { - return _getViewManagerConfig(viewManagerName); - }, - hasViewManagerConfig: function hasViewManagerConfig(viewManagerName) { - return _getViewManagerConfig(viewManagerName) != null; - } - }); - - // TODO (T45220498): Remove this. - // 3rd party libs may be calling `NativeModules.UIManager.getViewManagerConfig()` - // instead of `UIManager.getViewManagerConfig()` off UIManager.js. - // This is a workaround for now. - // $FlowFixMe[prop-missing] - _NativeUIManager.default.getViewManagerConfig = UIManagerJS.getViewManagerConfig; - function lazifyViewManagerConfig(viewName) { - var viewConfig = _getConstants()[viewName]; - viewManagerConfigs[viewName] = viewConfig; - if (viewConfig.Manager) { - _$$_REQUIRE(_dependencyMap[2])(viewConfig, 'Constants', { - get: function get() { - var viewManager = _$$_REQUIRE(_dependencyMap[3])[viewConfig.Manager]; - var constants = {}; - viewManager && Object.keys(viewManager).forEach(function (key) { - var value = viewManager[key]; - if (typeof value !== 'function') { - constants[key] = value; - } - }); - return constants; - } - }); - _$$_REQUIRE(_dependencyMap[2])(viewConfig, 'Commands', { - get: function get() { - var viewManager = _$$_REQUIRE(_dependencyMap[3])[viewConfig.Manager]; - var commands = {}; - var index = 0; - viewManager && Object.keys(viewManager).forEach(function (key) { - var value = viewManager[key]; - if (typeof value === 'function') { - commands[key] = index++; - } - }); - return commands; - } - }); - } - } - - /** - * Copies the ViewManager constants and commands into UIManager. This is - * only needed for iOS, which puts the constants in the ViewManager - * namespace instead of UIManager, unlike Android. - */ - { - Object.keys(_getConstants()).forEach(function (viewName) { - lazifyViewManagerConfig(viewName); - }); - } - if (!global.nativeCallSyncHook) { - Object.keys(_getConstants()).forEach(function (viewManagerName) { - if (!_$$_REQUIRE(_dependencyMap[4]).includes(viewManagerName)) { - if (!viewManagerConfigs[viewManagerName]) { - viewManagerConfigs[viewManagerName] = _getConstants()[viewManagerName]; - } - _$$_REQUIRE(_dependencyMap[2])(_NativeUIManager.default, viewManagerName, { - get: function get() { - console.warn(`Accessing view manager configs directly off UIManager via UIManager['${viewManagerName}'] ` + `is no longer supported. Use UIManager.getViewManagerConfig('${viewManagerName}') instead.`); - return UIManagerJS.getViewManagerConfig(viewManagerName); - } - }); - } - }); - } - module.exports = UIManagerJS; -},177,[1,178,53,47,179]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var TurboModuleRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - var _default = exports.default = TurboModuleRegistry.getEnforcing('UIManager'); -},178,[45]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - /** - * The list of non-ViewManager related UIManager properties. - * - * In an effort to improve startup performance by lazily loading view managers, - * the interface to access view managers will change from - * UIManager['viewManagerName'] to UIManager.getViewManagerConfig('viewManagerName'). - * By using a function call instead of a property access, the UIManager will - * be able to initialize and load the required view manager from native - * synchronously. All of React Native's core components have been updated to - * use getViewManagerConfig(). For the next few releases, any usage of - * UIManager['viewManagerName'] will result in a warning. Because React Native - * does not support Proxy objects, a view manager access is implied if any of - * UIManager's properties that are not one of the properties below is being - * accessed. Once UIManager property accesses for view managers has been fully - * deprecated, this file will also be removed. - */ - module.exports = ['clearJSResponder', 'configureNextLayoutAnimation', 'createView', 'dismissPopupMenu', 'dispatchViewManagerCommand', 'findSubviewIn', 'getConstantsForViewManager', 'getDefaultEventTypes', 'manageChildren', 'measure', 'measureInWindow', 'measureLayout', 'measureLayoutRelativeToParent', 'removeRootView', 'removeSubviewsFromContainerWithID', 'replaceExistingNonRootView', 'sendAccessibilityEvent', 'setChildren', 'setJSResponder', 'setLayoutAnimationEnabledExperimental', 'showPopupMenu', 'updateView', 'viewIsDescendantOf', 'PopupMenu', 'LazyViewManagersEnabled', 'ViewManagerNames', 'StyleConstants', 'AccessibilityEventTypes', 'UIView', 'getViewManagerConfig', 'hasViewManagerConfig', 'blur', 'focus', 'genericBubblingEventTypes', 'genericDirectEventTypes', 'lazilyLoadView']; -},179,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.getFabricUIManager = getFabricUIManager; - // TODO: type these properly. - - // This is exposed as a getter because apps using the legacy renderer AND - // Fabric can define the binding lazily. If we evaluated the global and cached - // it in the module we might be caching an `undefined` value before it is set. - function getFabricUIManager() { - return global.nativeFabricUIManager; - } -},180,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var _processAspectRatio = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _processColor = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _processFontVariant = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _processTransform = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var _sizesDiffer = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[5])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format strict-local - * - */ - - var colorAttributes = { - process: _processColor.default - }; - var ReactNativeStyleAttributes = { - /** - * Layout - */ - alignContent: true, - alignItems: true, - alignSelf: true, - aspectRatio: { - process: _processAspectRatio.default - }, - borderBottomWidth: true, - borderEndWidth: true, - borderLeftWidth: true, - borderRightWidth: true, - borderStartWidth: true, - borderTopWidth: true, - columnGap: true, - borderWidth: true, - bottom: true, - direction: true, - display: true, - end: true, - flex: true, - flexBasis: true, - flexDirection: true, - flexGrow: true, - flexShrink: true, - flexWrap: true, - gap: true, - height: true, - justifyContent: true, - left: true, - margin: true, - marginBlock: true, - marginBlockEnd: true, - marginBlockStart: true, - marginBottom: true, - marginEnd: true, - marginHorizontal: true, - marginInline: true, - marginInlineEnd: true, - marginInlineStart: true, - marginLeft: true, - marginRight: true, - marginStart: true, - marginTop: true, - marginVertical: true, - maxHeight: true, - maxWidth: true, - minHeight: true, - minWidth: true, - overflow: true, - padding: true, - paddingBlock: true, - paddingBlockEnd: true, - paddingBlockStart: true, - paddingBottom: true, - paddingEnd: true, - paddingHorizontal: true, - paddingInline: true, - paddingInlineEnd: true, - paddingInlineStart: true, - paddingLeft: true, - paddingRight: true, - paddingStart: true, - paddingTop: true, - paddingVertical: true, - position: true, - right: true, - rowGap: true, - start: true, - top: true, - width: true, - zIndex: true, - /** - * Shadow - */ - elevation: true, - shadowColor: colorAttributes, - shadowOffset: { - diff: _sizesDiffer.default - }, - shadowOpacity: true, - shadowRadius: true, - /** - * Transform - */ - transform: { - process: _processTransform.default - }, - /** - * View - */ - backfaceVisibility: true, - backgroundColor: colorAttributes, - borderBlockColor: colorAttributes, - borderBlockEndColor: colorAttributes, - borderBlockStartColor: colorAttributes, - borderBottomColor: colorAttributes, - borderBottomEndRadius: true, - borderBottomLeftRadius: true, - borderBottomRightRadius: true, - borderBottomStartRadius: true, - borderColor: colorAttributes, - borderCurve: true, - borderEndColor: colorAttributes, - borderEndEndRadius: true, - borderEndStartRadius: true, - borderLeftColor: colorAttributes, - borderRadius: true, - borderRightColor: colorAttributes, - borderStartColor: colorAttributes, - borderStartEndRadius: true, - borderStartStartRadius: true, - borderStyle: true, - borderTopColor: colorAttributes, - borderTopEndRadius: true, - borderTopLeftRadius: true, - borderTopRightRadius: true, - borderTopStartRadius: true, - opacity: true, - pointerEvents: true, - /** - * Text - */ - color: colorAttributes, - fontFamily: true, - fontSize: true, - fontStyle: true, - fontVariant: { - process: _processFontVariant.default - }, - fontWeight: true, - includeFontPadding: true, - letterSpacing: true, - lineHeight: true, - textAlign: true, - textAlignVertical: true, - textDecorationColor: colorAttributes, - textDecorationLine: true, - textDecorationStyle: true, - textShadowColor: colorAttributes, - textShadowOffset: true, - textShadowRadius: true, - textTransform: true, - userSelect: true, - verticalAlign: true, - writingDirection: true, - /** - * Image - */ - overlayColor: colorAttributes, - resizeMode: true, - tintColor: colorAttributes, - objectFit: true - }; - module.exports = ReactNativeStyleAttributes; -},181,[1,182,183,187,188,189]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - function processAspectRatio(aspectRatio) { - if (typeof aspectRatio === 'number') { - return aspectRatio; - } - if (typeof aspectRatio !== 'string') { - return; - } - var matches = aspectRatio.split('/').map(function (s) { - return s.trim(); - }); - if (matches.includes('auto')) { - return; - } - var hasNonNumericValues = matches.some(function (n) { - return Number.isNaN(Number(n)); - }); - if (hasNonNumericValues) { - return; - } - if (matches.length === 2) { - return Number(matches[0]) / Number(matches[1]); - } - return Number(matches[0]); - } - module.exports = processAspectRatio; -},182,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - /* eslint no-bitwise: 0 */ - function processColor(color) { - if (color === undefined || color === null) { - return color; - } - var normalizedColor = _$$_REQUIRE(_dependencyMap[0])(color); - if (normalizedColor === null || normalizedColor === undefined) { - return undefined; - } - if (typeof normalizedColor === 'object') { - var processColorObject = _$$_REQUIRE(_dependencyMap[1]).processColorObject; - var processedColorObj = processColorObject(normalizedColor); - if (processedColorObj != null) { - return processedColorObj; - } - } - if (typeof normalizedColor !== 'number') { - return null; - } - - // Converts 0xrrggbbaa into 0xaarrggbb - normalizedColor = (normalizedColor << 24 | normalizedColor >>> 8) >>> 0; - return normalizedColor; - } - var _default = exports.default = processColor; -},183,[184,186]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var _normalizeColors = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - /* eslint no-bitwise: 0 */ - - function normalizeColor(color) { - if (typeof color === 'object' && color != null) { - var _require = _$$_REQUIRE(_dependencyMap[2]), - normalizeColorObject = _require.normalizeColorObject; - var normalizedColor = normalizeColorObject(color); - if (normalizedColor != null) { - return normalizedColor; - } - } - if (typeof color === 'string' || typeof color === 'number') { - return (0, _normalizeColors.default)(color); - } - } - module.exports = normalizeColor; -},184,[1,185,186]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - /* eslint no-bitwise: 0 */ - - 'use strict'; - - function normalizeColor(color) { - if (typeof color === 'number') { - if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) { - return color; - } - return null; - } - if (typeof color !== 'string') { - return null; - } - var matchers = getMatchers(); - var match; - - // Ordered based on occurrences on Facebook codebase - if (match = matchers.hex6.exec(color)) { - return parseInt(match[1] + 'ff', 16) >>> 0; - } - var colorFromKeyword = normalizeKeyword(color); - if (colorFromKeyword != null) { - return colorFromKeyword; - } - if (match = matchers.rgb.exec(color)) { - return (parse255(match[1]) << 24 | - // r - parse255(match[2]) << 16 | - // g - parse255(match[3]) << 8 | - // b - 0x000000ff) >>> - // a - 0; - } - if (match = matchers.rgba.exec(color)) { - // rgba(R G B / A) notation - if (match[6] !== undefined) { - return (parse255(match[6]) << 24 | - // r - parse255(match[7]) << 16 | - // g - parse255(match[8]) << 8 | - // b - parse1(match[9])) >>> - // a - 0; - } - - // rgba(R, G, B, A) notation - return (parse255(match[2]) << 24 | - // r - parse255(match[3]) << 16 | - // g - parse255(match[4]) << 8 | - // b - parse1(match[5])) >>> - // a - 0; - } - if (match = matchers.hex3.exec(color)) { - return parseInt(match[1] + match[1] + - // r - match[2] + match[2] + - // g - match[3] + match[3] + - // b - 'ff', - // a - 16) >>> 0; - } - - // https://drafts.csswg.org/css-color-4/#hex-notation - if (match = matchers.hex8.exec(color)) { - return parseInt(match[1], 16) >>> 0; - } - if (match = matchers.hex4.exec(color)) { - return parseInt(match[1] + match[1] + - // r - match[2] + match[2] + - // g - match[3] + match[3] + - // b - match[4] + match[4], - // a - 16) >>> 0; - } - if (match = matchers.hsl.exec(color)) { - return (hslToRgb(parse360(match[1]), - // h - parsePercentage(match[2]), - // s - parsePercentage(match[3]) // l - ) | 0x000000ff) >>> - // a - 0; - } - if (match = matchers.hsla.exec(color)) { - // hsla(H S L / A) notation - if (match[6] !== undefined) { - return (hslToRgb(parse360(match[6]), - // h - parsePercentage(match[7]), - // s - parsePercentage(match[8]) // l - ) | parse1(match[9])) >>> - // a - 0; - } - - // hsla(H, S, L, A) notation - return (hslToRgb(parse360(match[2]), - // h - parsePercentage(match[3]), - // s - parsePercentage(match[4]) // l - ) | parse1(match[5])) >>> - // a - 0; - } - if (match = matchers.hwb.exec(color)) { - return (hwbToRgb(parse360(match[1]), - // h - parsePercentage(match[2]), - // w - parsePercentage(match[3]) // b - ) | 0x000000ff) >>> - // a - 0; - } - return null; - } - function hue2rgb(p, q, t) { - if (t < 0) { - t += 1; - } - if (t > 1) { - t -= 1; - } - if (t < 0.16666666666666666) { - return p + (q - p) * 6 * t; - } - if (t < 0.5) { - return q; - } - if (t < 0.6666666666666666) { - return p + (q - p) * (0.6666666666666666 - t) * 6; - } - return p; - } - function hslToRgb(h, s, l) { - var q = l < 0.5 ? l * (1 + s) : l + s - l * s; - var p = 2 * l - q; - var r = hue2rgb(p, q, h + 0.3333333333333333); - var g = hue2rgb(p, q, h); - var b = hue2rgb(p, q, h - 0.3333333333333333); - return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8; - } - function hwbToRgb(h, w, b) { - if (w + b >= 1) { - var gray = Math.round(w * 255 / (w + b)); - return gray << 24 | gray << 16 | gray << 8; - } - var red = hue2rgb(0, 1, h + 0.3333333333333333) * (1 - w - b) + w; - var green = hue2rgb(0, 1, h) * (1 - w - b) + w; - var blue = hue2rgb(0, 1, h - 0.3333333333333333) * (1 - w - b) + w; - return Math.round(red * 255) << 24 | Math.round(green * 255) << 16 | Math.round(blue * 255) << 8; - } - var NUMBER = '[-+]?\\d*\\.?\\d+'; - var PERCENTAGE = "[-+]?\\d*\\.?\\d+%"; - function call() { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - return '\\(\\s*(' + args.join(')\\s*,?\\s*(') + ')\\s*\\)'; - } - function callWithSlashSeparator() { - for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } - return '\\(\\s*(' + args.slice(0, args.length - 1).join(')\\s*,?\\s*(') + ')\\s*/\\s*(' + args[args.length - 1] + ')\\s*\\)'; - } - function commaSeparatedCall() { - for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { - args[_key3] = arguments[_key3]; - } - return '\\(\\s*(' + args.join(')\\s*,\\s*(') + ')\\s*\\)'; - } - var cachedMatchers; - function getMatchers() { - if (cachedMatchers === undefined) { - cachedMatchers = { - rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)), - rgba: new RegExp('rgba(' + commaSeparatedCall(NUMBER, NUMBER, NUMBER, NUMBER) + '|' + callWithSlashSeparator(NUMBER, NUMBER, NUMBER, NUMBER) + ')'), - hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)), - hsla: new RegExp('hsla(' + commaSeparatedCall(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) + '|' + callWithSlashSeparator(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) + ')'), - hwb: new RegExp('hwb' + call(NUMBER, PERCENTAGE, PERCENTAGE)), - hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, - hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, - hex6: /^#([0-9a-fA-F]{6})$/, - hex8: /^#([0-9a-fA-F]{8})$/ - }; - } - return cachedMatchers; - } - function parse255(str) { - var int = parseInt(str, 10); - if (int < 0) { - return 0; - } - if (int > 255) { - return 255; - } - return int; - } - function parse360(str) { - var int = parseFloat(str); - return (int % 360 + 360) % 360 / 360; - } - function parse1(str) { - var num = parseFloat(str); - if (num < 0) { - return 0; - } - if (num > 1) { - return 255; - } - return Math.round(num * 255); - } - function parsePercentage(str) { - // parseFloat conveniently ignores the final % - var int = parseFloat(str); - if (int < 0) { - return 0; - } - if (int > 100) { - return 1; - } - return int / 100; - } - function normalizeKeyword(name) { - // prettier-ignore - switch (name) { - case 'transparent': - return 0x00000000; - // http://www.w3.org/TR/css3-color/#svg-color - case 'aliceblue': - return 0xf0f8ffff; - case 'antiquewhite': - return 0xfaebd7ff; - case 'aqua': - return 0x00ffffff; - case 'aquamarine': - return 0x7fffd4ff; - case 'azure': - return 0xf0ffffff; - case 'beige': - return 0xf5f5dcff; - case 'bisque': - return 0xffe4c4ff; - case 'black': - return 0x000000ff; - case 'blanchedalmond': - return 0xffebcdff; - case 'blue': - return 0x0000ffff; - case 'blueviolet': - return 0x8a2be2ff; - case 'brown': - return 0xa52a2aff; - case 'burlywood': - return 0xdeb887ff; - case 'burntsienna': - return 0xea7e5dff; - case 'cadetblue': - return 0x5f9ea0ff; - case 'chartreuse': - return 0x7fff00ff; - case 'chocolate': - return 0xd2691eff; - case 'coral': - return 0xff7f50ff; - case 'cornflowerblue': - return 0x6495edff; - case 'cornsilk': - return 0xfff8dcff; - case 'crimson': - return 0xdc143cff; - case 'cyan': - return 0x00ffffff; - case 'darkblue': - return 0x00008bff; - case 'darkcyan': - return 0x008b8bff; - case 'darkgoldenrod': - return 0xb8860bff; - case 'darkgray': - return 0xa9a9a9ff; - case 'darkgreen': - return 0x006400ff; - case 'darkgrey': - return 0xa9a9a9ff; - case 'darkkhaki': - return 0xbdb76bff; - case 'darkmagenta': - return 0x8b008bff; - case 'darkolivegreen': - return 0x556b2fff; - case 'darkorange': - return 0xff8c00ff; - case 'darkorchid': - return 0x9932ccff; - case 'darkred': - return 0x8b0000ff; - case 'darksalmon': - return 0xe9967aff; - case 'darkseagreen': - return 0x8fbc8fff; - case 'darkslateblue': - return 0x483d8bff; - case 'darkslategray': - return 0x2f4f4fff; - case 'darkslategrey': - return 0x2f4f4fff; - case 'darkturquoise': - return 0x00ced1ff; - case 'darkviolet': - return 0x9400d3ff; - case 'deeppink': - return 0xff1493ff; - case 'deepskyblue': - return 0x00bfffff; - case 'dimgray': - return 0x696969ff; - case 'dimgrey': - return 0x696969ff; - case 'dodgerblue': - return 0x1e90ffff; - case 'firebrick': - return 0xb22222ff; - case 'floralwhite': - return 0xfffaf0ff; - case 'forestgreen': - return 0x228b22ff; - case 'fuchsia': - return 0xff00ffff; - case 'gainsboro': - return 0xdcdcdcff; - case 'ghostwhite': - return 0xf8f8ffff; - case 'gold': - return 0xffd700ff; - case 'goldenrod': - return 0xdaa520ff; - case 'gray': - return 0x808080ff; - case 'green': - return 0x008000ff; - case 'greenyellow': - return 0xadff2fff; - case 'grey': - return 0x808080ff; - case 'honeydew': - return 0xf0fff0ff; - case 'hotpink': - return 0xff69b4ff; - case 'indianred': - return 0xcd5c5cff; - case 'indigo': - return 0x4b0082ff; - case 'ivory': - return 0xfffff0ff; - case 'khaki': - return 0xf0e68cff; - case 'lavender': - return 0xe6e6faff; - case 'lavenderblush': - return 0xfff0f5ff; - case 'lawngreen': - return 0x7cfc00ff; - case 'lemonchiffon': - return 0xfffacdff; - case 'lightblue': - return 0xadd8e6ff; - case 'lightcoral': - return 0xf08080ff; - case 'lightcyan': - return 0xe0ffffff; - case 'lightgoldenrodyellow': - return 0xfafad2ff; - case 'lightgray': - return 0xd3d3d3ff; - case 'lightgreen': - return 0x90ee90ff; - case 'lightgrey': - return 0xd3d3d3ff; - case 'lightpink': - return 0xffb6c1ff; - case 'lightsalmon': - return 0xffa07aff; - case 'lightseagreen': - return 0x20b2aaff; - case 'lightskyblue': - return 0x87cefaff; - case 'lightslategray': - return 0x778899ff; - case 'lightslategrey': - return 0x778899ff; - case 'lightsteelblue': - return 0xb0c4deff; - case 'lightyellow': - return 0xffffe0ff; - case 'lime': - return 0x00ff00ff; - case 'limegreen': - return 0x32cd32ff; - case 'linen': - return 0xfaf0e6ff; - case 'magenta': - return 0xff00ffff; - case 'maroon': - return 0x800000ff; - case 'mediumaquamarine': - return 0x66cdaaff; - case 'mediumblue': - return 0x0000cdff; - case 'mediumorchid': - return 0xba55d3ff; - case 'mediumpurple': - return 0x9370dbff; - case 'mediumseagreen': - return 0x3cb371ff; - case 'mediumslateblue': - return 0x7b68eeff; - case 'mediumspringgreen': - return 0x00fa9aff; - case 'mediumturquoise': - return 0x48d1ccff; - case 'mediumvioletred': - return 0xc71585ff; - case 'midnightblue': - return 0x191970ff; - case 'mintcream': - return 0xf5fffaff; - case 'mistyrose': - return 0xffe4e1ff; - case 'moccasin': - return 0xffe4b5ff; - case 'navajowhite': - return 0xffdeadff; - case 'navy': - return 0x000080ff; - case 'oldlace': - return 0xfdf5e6ff; - case 'olive': - return 0x808000ff; - case 'olivedrab': - return 0x6b8e23ff; - case 'orange': - return 0xffa500ff; - case 'orangered': - return 0xff4500ff; - case 'orchid': - return 0xda70d6ff; - case 'palegoldenrod': - return 0xeee8aaff; - case 'palegreen': - return 0x98fb98ff; - case 'paleturquoise': - return 0xafeeeeff; - case 'palevioletred': - return 0xdb7093ff; - case 'papayawhip': - return 0xffefd5ff; - case 'peachpuff': - return 0xffdab9ff; - case 'peru': - return 0xcd853fff; - case 'pink': - return 0xffc0cbff; - case 'plum': - return 0xdda0ddff; - case 'powderblue': - return 0xb0e0e6ff; - case 'purple': - return 0x800080ff; - case 'rebeccapurple': - return 0x663399ff; - case 'red': - return 0xff0000ff; - case 'rosybrown': - return 0xbc8f8fff; - case 'royalblue': - return 0x4169e1ff; - case 'saddlebrown': - return 0x8b4513ff; - case 'salmon': - return 0xfa8072ff; - case 'sandybrown': - return 0xf4a460ff; - case 'seagreen': - return 0x2e8b57ff; - case 'seashell': - return 0xfff5eeff; - case 'sienna': - return 0xa0522dff; - case 'silver': - return 0xc0c0c0ff; - case 'skyblue': - return 0x87ceebff; - case 'slateblue': - return 0x6a5acdff; - case 'slategray': - return 0x708090ff; - case 'slategrey': - return 0x708090ff; - case 'snow': - return 0xfffafaff; - case 'springgreen': - return 0x00ff7fff; - case 'steelblue': - return 0x4682b4ff; - case 'tan': - return 0xd2b48cff; - case 'teal': - return 0x008080ff; - case 'thistle': - return 0xd8bfd8ff; - case 'tomato': - return 0xff6347ff; - case 'turquoise': - return 0x40e0d0ff; - case 'violet': - return 0xee82eeff; - case 'wheat': - return 0xf5deb3ff; - case 'white': - return 0xffffffff; - case 'whitesmoke': - return 0xf5f5f5ff; - case 'yellow': - return 0xffff00ff; - case 'yellowgreen': - return 0x9acd32ff; - } - return null; - } - module.exports = normalizeColor; -},185,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.processColorObject = exports.normalizeColorObject = exports.PlatformColor = exports.DynamicColorIOSPrivate = undefined; - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - var PlatformColor = exports.PlatformColor = function PlatformColor() { - for (var _len = arguments.length, names = new Array(_len), _key = 0; _key < _len; _key++) { - names[_key] = arguments[_key]; - } - return { - semantic: names - }; - }; - var DynamicColorIOSPrivate = exports.DynamicColorIOSPrivate = function DynamicColorIOSPrivate(tuple) { - return { - dynamic: { - light: tuple.light, - dark: tuple.dark, - highContrastLight: tuple.highContrastLight, - highContrastDark: tuple.highContrastDark - } - }; - }; - var normalizeColorObject = exports.normalizeColorObject = function normalizeColorObject(color) { - if ('semantic' in color) { - // an ios semantic color - return color; - } else if ('dynamic' in color && color.dynamic !== undefined) { - var normalizeColor = _$$_REQUIRE(_dependencyMap[0]); - - // a dynamic, appearance aware color - var dynamic = color.dynamic; - var dynamicColor = { - dynamic: { - // $FlowFixMe[incompatible-use] - light: normalizeColor(dynamic.light), - // $FlowFixMe[incompatible-use] - dark: normalizeColor(dynamic.dark), - // $FlowFixMe[incompatible-use] - highContrastLight: normalizeColor(dynamic.highContrastLight), - // $FlowFixMe[incompatible-use] - highContrastDark: normalizeColor(dynamic.highContrastDark) - } - }; - return dynamicColor; - } - return null; - }; - var processColorObject = exports.processColorObject = function processColorObject(color) { - if ('dynamic' in color && color.dynamic != null) { - var processColor = _$$_REQUIRE(_dependencyMap[1]).default; - var dynamic = color.dynamic; - var dynamicColor = { - dynamic: { - // $FlowFixMe[incompatible-use] - light: processColor(dynamic.light), - // $FlowFixMe[incompatible-use] - dark: processColor(dynamic.dark), - // $FlowFixMe[incompatible-use] - highContrastLight: processColor(dynamic.highContrastLight), - // $FlowFixMe[incompatible-use] - highContrastDark: processColor(dynamic.highContrastDark) - } - }; - return dynamicColor; - } - return color; - }; -},186,[184,183]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - function processFontVariant(fontVariant) { - if (Array.isArray(fontVariant)) { - return fontVariant; - } - - // $FlowFixMe[incompatible-type] - var match = fontVariant.split(' ').filter(Boolean); - return match; - } - module.exports = processFontVariant; -},187,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - /** - * Generate a transform matrix based on the provided transforms, and use that - * within the style object instead. - * - * This allows us to provide an API that is similar to CSS, where transforms may - * be applied in an arbitrary order, and yet have a universal, singular - * interface to native code. - */ - function processTransform(transform) { - if (typeof transform === 'string') { - var regex = new RegExp(/(\w+)\(([^)]+)\)/g); - var transformArray = []; - var matches; - while (matches = regex.exec(transform)) { - var _getKeyAndValueFromCS = _getKeyAndValueFromCSSTransform(matches[1], matches[2]), - _key = _getKeyAndValueFromCS.key, - value = _getKeyAndValueFromCS.value; - if (value !== undefined) { - transformArray.push(_$$_REQUIRE(_dependencyMap[0])({}, _key, value)); - } - } - transform = transformArray; - } - return transform; - } - var _getKeyAndValueFromCSSTransform = function _getKeyAndValueFromCSSTransform(key, args) { - var _args$match; - var argsWithUnitsRegex = new RegExp(/([+-]?\d+(\.\d+)?)([a-zA-Z]+)?/g); - switch (key) { - case 'matrix': - return { - key: key, - value: (_args$match = args.match(/[+-]?\d+(\.\d+)?/g)) == null ? undefined : _args$match.map(Number) - }; - case 'translate': - case 'translate3d': - var parsedArgs = []; - var missingUnitOfMeasurement = false; - var matches; - while (matches = argsWithUnitsRegex.exec(args)) { - var _value = Number(matches[1]); - var _unitOfMeasurement = matches[3]; - if (_value !== 0 && !_unitOfMeasurement) { - missingUnitOfMeasurement = true; - } - parsedArgs.push(_value); - } - if (parsedArgs.length === 1) { - parsedArgs.push(0); - } - return { - key: 'translate', - value: parsedArgs - }; - case 'translateX': - case 'translateY': - case 'perspective': - var argMatches = argsWithUnitsRegex.exec(args); - if (!(argMatches != null && argMatches.length)) { - return { - key: key, - value: undefined - }; - } - var value = Number(argMatches[1]); - var unitOfMeasurement = argMatches[3]; - return { - key: key, - value: value - }; - default: - return { - key: key, - value: !isNaN(args) ? Number(args) : args - }; - } - }; - module.exports = processTransform; -},188,[12]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - var dummySize = { - width: undefined, - height: undefined - }; - var sizesDiffer = function sizesDiffer(one, two) { - var defaultedOne = one || dummySize; - var defaultedTwo = two || dummySize; - return defaultedOne !== defaultedTwo && (defaultedOne.width !== defaultedTwo.width || defaultedOne.height !== defaultedTwo.height); - }; - module.exports = sizesDiffer; -},189,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - /** - * Unrolls an array comparison specially for matrices. Prioritizes - * checking of indices that are most likely to change so that the comparison - * bails as early as possible. - * - * @param {MatrixMath.Matrix} one First matrix. - * @param {MatrixMath.Matrix} two Second matrix. - * @return {boolean} Whether or not the two matrices differ. - */ - var matricesDiffer = function matricesDiffer(one, two) { - if (one === two) { - return false; - } - return !one || !two || one[12] !== two[12] || one[13] !== two[13] || one[14] !== two[14] || one[5] !== two[5] || one[10] !== two[10] || one[0] !== two[0] || one[1] !== two[1] || one[2] !== two[2] || one[3] !== two[3] || one[4] !== two[4] || one[6] !== two[6] || one[7] !== two[7] || one[8] !== two[8] || one[9] !== two[9] || one[11] !== two[11] || one[15] !== two[15]; - }; - module.exports = matricesDiffer; -},190,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - var dummyPoint = { - x: undefined, - y: undefined - }; - var pointsDiffer = function pointsDiffer(one, two) { - one = one || dummyPoint; - two = two || dummyPoint; - return one !== two && (one.x !== two.x || one.y !== two.y); - }; - module.exports = pointsDiffer; -},191,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - var dummyInsets = { - top: undefined, - left: undefined, - right: undefined, - bottom: undefined - }; - var insetsDiffer = function insetsDiffer(one, two) { - one = one || dummyInsets; - two = two || dummyInsets; - return one !== two && (one.top !== two.top || one.left !== two.left || one.right !== two.right || one.bottom !== two.bottom); - }; - module.exports = insetsDiffer; -},192,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - var _processColor = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var TRANSPARENT = 0; // rgba(0, 0, 0, 0) - - function processColorArray(colors) { - return colors == null ? null : colors.map(processColorElement); - } - function processColorElement(color) { - var value = (0, _processColor.default)(color); - // For invalid colors, fallback to transparent. - if (value == null) { - console.error('Invalid value in color array:', color); - return TRANSPARENT; - } - return value; - } - module.exports = processColorArray; -},193,[1,183]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - // Resolves an asset into a `source` for `Image`. - - 'use strict'; - - var _customSourceTransformer, _serverURL, _scriptURL; - var _sourceCodeScriptURL; - function getSourceCodeScriptURL() { - if (_sourceCodeScriptURL) { - return _sourceCodeScriptURL; - } - var sourceCode = global.nativeExtensions && global.nativeExtensions.SourceCode; - if (!sourceCode) { - sourceCode = _$$_REQUIRE(_dependencyMap[0]).default; - } - _sourceCodeScriptURL = sourceCode.getConstants().scriptURL; - return _sourceCodeScriptURL; - } - function getDevServerURL() { - if (_serverURL === undefined) { - var sourceCodeScriptURL = getSourceCodeScriptURL(); - var match = sourceCodeScriptURL && sourceCodeScriptURL.match(/^https?:\/\/.*?\//); - if (match) { - // jsBundle was loaded from network - _serverURL = match[0]; - } else { - // jsBundle was loaded from file - _serverURL = null; - } - } - return _serverURL; - } - function _coerceLocalScriptURL(scriptURL) { - if (scriptURL) { - if (scriptURL.startsWith('assets://')) { - // android: running from within assets, no offline path to use - return null; - } - scriptURL = scriptURL.substring(0, scriptURL.lastIndexOf('/') + 1); - if (!scriptURL.includes('://')) { - // Add file protocol in case we have an absolute file path and not a URL. - // This shouldn't really be necessary. scriptURL should be a URL. - scriptURL = 'file://' + scriptURL; - } - } - return scriptURL; - } - function getScriptURL() { - if (_scriptURL === undefined) { - _scriptURL = _coerceLocalScriptURL(getSourceCodeScriptURL()); - } - return _scriptURL; - } - function setCustomSourceTransformer(transformer) { - _customSourceTransformer = transformer; - } - - /** - * `source` is either a number (opaque type returned by require('./foo.png')) - * or an `ImageSource` like { uri: '' } - */ - function resolveAssetSource(source) { - if (typeof source === 'object') { - return source; - } - var asset = _$$_REQUIRE(_dependencyMap[1]).getAssetByID(source); - if (!asset) { - return null; - } - var resolver = new (_$$_REQUIRE(_dependencyMap[2]))(getDevServerURL(), getScriptURL(), asset); - if (_customSourceTransformer) { - return _customSourceTransformer(resolver); - } - return resolver.defaultAsset(); - } - resolveAssetSource.pickScale = _$$_REQUIRE(_dependencyMap[3]).pickScale; - resolveAssetSource.setCustomSourceTransformer = setCustomSourceTransformer; - module.exports = resolveAssetSource; -},194,[195,196,197,198]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var TurboModuleRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - var NativeModule = TurboModuleRegistry.getEnforcing('SourceCode'); - var constants = null; - var NativeSourceCode = { - getConstants: function getConstants() { - if (constants == null) { - constants = NativeModule.getConstants(); - } - return constants; - } - }; - var _default = exports.default = NativeSourceCode; -},195,[45]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - var assets = []; - function registerAsset(asset) { - // `push` returns new array length, so the first asset will - // get id 1 (not 0) to make the value truthy - return assets.push(asset); - } - function getAssetByID(assetId) { - return assets[assetId - 1]; - } - module.exports = { - registerAsset: registerAsset, - getAssetByID: getAssetByID - }; -},196,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - /** - * Returns a path like 'assets/AwesomeModule/icon@2x.png' - */ - function getScaledAssetPath(asset) { - var scale = _$$_REQUIRE(_dependencyMap[0]).pickScale(asset.scales, _$$_REQUIRE(_dependencyMap[1]).default.get()); - var scaleSuffix = scale === 1 ? '' : '@' + scale + 'x'; - var assetDir = _$$_REQUIRE(_dependencyMap[2]).getBasePath(asset); - return assetDir + '/' + asset.name + scaleSuffix + '.' + asset.type; - } - - /** - * Returns a path like 'drawable-mdpi/icon.png' - */ - function getAssetPathInDrawableFolder(asset) { - var scale = _$$_REQUIRE(_dependencyMap[0]).pickScale(asset.scales, _$$_REQUIRE(_dependencyMap[1]).default.get()); - var drawableFolder = _$$_REQUIRE(_dependencyMap[2]).getAndroidResourceFolderName(asset, scale); - var fileName = _$$_REQUIRE(_dependencyMap[2]).getAndroidResourceIdentifier(asset); - return drawableFolder + '/' + fileName + '.' + asset.type; - } - var AssetSourceResolver = /*#__PURE__*/function () { - // where the jsbundle is being run from - - // the asset to resolve - - function AssetSourceResolver(serverUrl, jsbundleUrl, asset) { - _$$_REQUIRE(_dependencyMap[3])(this, AssetSourceResolver); - this.serverUrl = serverUrl; - this.jsbundleUrl = jsbundleUrl; - this.asset = asset; - } - _$$_REQUIRE(_dependencyMap[4])(AssetSourceResolver, [{ - key: "isLoadedFromServer", - value: function isLoadedFromServer() { - return !!this.serverUrl; - } - }, { - key: "isLoadedFromFileSystem", - value: function isLoadedFromFileSystem() { - return !!(this.jsbundleUrl && this.jsbundleUrl.startsWith('file://')); - } - }, { - key: "defaultAsset", - value: function defaultAsset() { - if (this.isLoadedFromServer()) { - return this.assetServerURL(); - } - { - return this.scaledAssetURLNearBundle(); - } - } - - /** - * Returns an absolute URL which can be used to fetch the asset - * from the devserver - */ - }, { - key: "assetServerURL", - value: function assetServerURL() { - _$$_REQUIRE(_dependencyMap[5])(!!this.serverUrl, 'need server to load from'); - return this.fromSource(this.serverUrl + getScaledAssetPath(this.asset) + '?platform=' + "ios" + '&hash=' + this.asset.hash); - } - - /** - * Resolves to just the scaled asset filename - * E.g. 'assets/AwesomeModule/icon@2x.png' - */ - }, { - key: "scaledAssetPath", - value: function scaledAssetPath() { - return this.fromSource(getScaledAssetPath(this.asset)); - } - - /** - * Resolves to where the bundle is running from, with a scaled asset filename - * E.g. 'file:///sdcard/bundle/assets/AwesomeModule/icon@2x.png' - */ - }, { - key: "scaledAssetURLNearBundle", - value: function scaledAssetURLNearBundle() { - var path = this.jsbundleUrl || 'file://'; - return this.fromSource( - // Assets can have relative paths outside of the project root. - // When bundling them we replace `../` with `_` to make sure they - // don't end up outside of the expected assets directory. - path + getScaledAssetPath(this.asset).replace(/\.\.\//g, '_')); - } - - /** - * The default location of assets bundled with the app, located by - * resource identifier - * The Android resource system picks the correct scale. - * E.g. 'assets_awesomemodule_icon' - */ - }, { - key: "resourceIdentifierWithoutScale", - value: function resourceIdentifierWithoutScale() { - _$$_REQUIRE(_dependencyMap[5])(false, 'resource identifiers work on Android'); - return this.fromSource(_$$_REQUIRE(_dependencyMap[2]).getAndroidResourceIdentifier(this.asset)); - } - - /** - * If the jsbundle is running from a sideload location, this resolves assets - * relative to its location - * E.g. 'file:///sdcard/AwesomeModule/drawable-mdpi/icon.png' - */ - }, { - key: "drawableFolderInBundle", - value: function drawableFolderInBundle() { - var path = this.jsbundleUrl || 'file://'; - return this.fromSource(path + getAssetPathInDrawableFolder(this.asset)); - } - }, { - key: "fromSource", - value: function fromSource(source) { - return { - __packager_asset: true, - width: this.asset.width, - height: this.asset.height, - uri: source, - scale: _$$_REQUIRE(_dependencyMap[0]).pickScale(this.asset.scales, _$$_REQUIRE(_dependencyMap[1]).default.get()) - }; - } - }]); - return AssetSourceResolver; - }(); - AssetSourceResolver.pickScale = _$$_REQUIRE(_dependencyMap[0]).pickScale; - module.exports = AssetSourceResolver; -},197,[198,199,202,6,7,46]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.getUrlCacheBreaker = getUrlCacheBreaker; - exports.pickScale = pickScale; - exports.setUrlCacheBreaker = setUrlCacheBreaker; - var _PixelRatio = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - var cacheBreaker; - var warnIfCacheBreakerUnset = true; - function pickScale(scales, deviceScale) { - if (deviceScale == null) { - deviceScale = _PixelRatio.default.get(); - } - // Packager guarantees that `scales` array is sorted - for (var i = 0; i < scales.length; i++) { - if (scales[i] >= deviceScale) { - return scales[i]; - } - } - - // If nothing matches, device scale is larger than any available - // scales, so we return the biggest one. Unless the array is empty, - // in which case we default to 1 - return scales[scales.length - 1] || 1; - } - function setUrlCacheBreaker(appendage) { - cacheBreaker = appendage; - } - function getUrlCacheBreaker() { - if (cacheBreaker == null) { - return ''; - } - return cacheBreaker; - } -},198,[1,199]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - /** - * PixelRatio class gives access to the device pixel density. - * - * ## Fetching a correctly sized image - * - * You should get a higher resolution image if you are on a high pixel density - * device. A good rule of thumb is to multiply the size of the image you display - * by the pixel ratio. - * - * ``` - * var image = getImage({ - * width: PixelRatio.getPixelSizeForLayoutSize(200), - * height: PixelRatio.getPixelSizeForLayoutSize(100), - * }); - * - * ``` - * - * ## Pixel grid snapping - * - * In iOS, you can specify positions and dimensions for elements with arbitrary - * precision, for example 29.674825. But, ultimately the physical display only - * have a fixed number of pixels, for example 640Γ—960 for iPhone 4 or 750Γ—1334 - * for iPhone 6. iOS tries to be as faithful as possible to the user value by - * spreading one original pixel into multiple ones to trick the eye. The - * downside of this technique is that it makes the resulting element look - * blurry. - * - * In practice, we found out that developers do not want this feature and they - * have to work around it by doing manual rounding in order to avoid having - * blurry elements. In React Native, we are rounding all the pixels - * automatically. - * - * We have to be careful when to do this rounding. You never want to work with - * rounded and unrounded values at the same time as you're going to accumulate - * rounding errors. Having even one rounding error is deadly because a one - * pixel border may vanish or be twice as big. - * - * In React Native, everything in JavaScript and within the layout engine works - * with arbitrary precision numbers. It's only when we set the position and - * dimensions of the native element on the main thread that we round. Also, - * rounding is done relative to the root rather than the parent, again to avoid - * accumulating rounding errors. - * - */ - var PixelRatio = /*#__PURE__*/function () { - function PixelRatio() { - (0, _classCallCheck2.default)(this, PixelRatio); - } - (0, _createClass2.default)(PixelRatio, null, [{ - key: "get", - value: - /** - * Returns the device pixel density. Some examples: - * - * - PixelRatio.get() === 1 - * - mdpi Android devices (160 dpi) - * - PixelRatio.get() === 1.5 - * - hdpi Android devices (240 dpi) - * - PixelRatio.get() === 2 - * - iPhone 4, 4S - * - iPhone 5, 5c, 5s - * - iPhone 6 - * - iPhone 7 - * - iPhone 8 - * - iPhone SE - * - xhdpi Android devices (320 dpi) - * - PixelRatio.get() === 3 - * - iPhone 6 Plus - * - iPhone 7 Plus - * - iPhone 8 Plus - * - iPhone X - * - xxhdpi Android devices (480 dpi) - * - PixelRatio.get() === 3.5 - * - Nexus 6 - */ - function get() { - return _$$_REQUIRE(_dependencyMap[3]).default.get('window').scale; - } - - /** - * Returns the scaling factor for font sizes. This is the ratio that is used to calculate the - * absolute font size, so any elements that heavily depend on that should use this to do - * calculations. - * - * If a font scale is not set, this returns the device pixel ratio. - * - * This reflects the user preference set in: - * - Settings > Display > Font size on Android, - * - Settings > Display & Brightness > Text Size on iOS. - */ - }, { - key: "getFontScale", - value: function getFontScale() { - return _$$_REQUIRE(_dependencyMap[3]).default.get('window').fontScale || PixelRatio.get(); - } - - /** - * Converts a layout size (dp) to pixel size (px). - * - * Guaranteed to return an integer number. - */ - }, { - key: "getPixelSizeForLayoutSize", - value: function getPixelSizeForLayoutSize(layoutSize) { - return Math.round(layoutSize * PixelRatio.get()); - } - - /** - * Rounds a layout size (dp) to the nearest layout size that corresponds to - * an integer number of pixels. For example, on a device with a PixelRatio - * of 3, `PixelRatio.roundToNearestPixel(8.4) = 8.33`, which corresponds to - * exactly (8.33 * 3) = 25 pixels. - */ - }, { - key: "roundToNearestPixel", - value: function roundToNearestPixel(layoutSize) { - var ratio = PixelRatio.get(); - return Math.round(layoutSize * ratio) / ratio; - } - - // No-op for iOS, but used on the web. Should not be documented. - }, { - key: "startDetecting", - value: function startDetecting() {} - }]); - return PixelRatio; - }(); - var _default = exports.default = PixelRatio; -},199,[1,6,7,200]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _RCTDeviceEventEmitter = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _EventEmitter = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var _NativeDeviceInfo = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[5])); - var _invariant = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[6])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - var eventEmitter = new _EventEmitter.default(); - var dimensionsInitialized = false; - var dimensions; - var Dimensions = /*#__PURE__*/function () { - function Dimensions() { - (0, _classCallCheck2.default)(this, Dimensions); - } - (0, _createClass2.default)(Dimensions, null, [{ - key: "get", - value: - /** - * NOTE: `useWindowDimensions` is the preferred API for React components. - * - * Initial dimensions are set before `runApplication` is called so they should - * be available before any other require's are run, but may be updated later. - * - * Note: Although dimensions are available immediately, they may change (e.g - * due to device rotation) so any rendering logic or styles that depend on - * these constants should try to call this function on every render, rather - * than caching the value (for example, using inline styles rather than - * setting a value in a `StyleSheet`). - * - * Example: `const {height, width} = Dimensions.get('window');` - * - * @param {string} dim Name of dimension as defined when calling `set`. - * @returns {DisplayMetrics? | DisplayMetricsAndroid?} Value for the dimension. - */ - function get(dim) { - (0, _invariant.default)(dimensions[dim], 'No dimension set for key ' + dim); - return dimensions[dim]; - } - - /** - * This should only be called from native code by sending the - * didUpdateDimensions event. - * - * @param {DimensionsPayload} dims Simple string-keyed object of dimensions to set - */ - }, { - key: "set", - value: function set(dims) { - // We calculate the window dimensions in JS so that we don't encounter loss of - // precision in transferring the dimensions (which could be non-integers) over - // the bridge. - var screen = dims.screen, - window = dims.window; - var windowPhysicalPixels = dims.windowPhysicalPixels; - if (windowPhysicalPixels) { - window = { - width: windowPhysicalPixels.width / windowPhysicalPixels.scale, - height: windowPhysicalPixels.height / windowPhysicalPixels.scale, - scale: windowPhysicalPixels.scale, - fontScale: windowPhysicalPixels.fontScale - }; - } - var screenPhysicalPixels = dims.screenPhysicalPixels; - if (screenPhysicalPixels) { - screen = { - width: screenPhysicalPixels.width / screenPhysicalPixels.scale, - height: screenPhysicalPixels.height / screenPhysicalPixels.scale, - scale: screenPhysicalPixels.scale, - fontScale: screenPhysicalPixels.fontScale - }; - } else if (screen == null) { - screen = window; - } - dimensions = { - window: window, - screen: screen - }; - if (dimensionsInitialized) { - // Don't fire 'change' the first time the dimensions are set. - eventEmitter.emit('change', dimensions); - } else { - dimensionsInitialized = true; - } - } - - /** - * Add an event handler. Supported events: - * - * - `change`: Fires when a property within the `Dimensions` object changes. The argument - * to the event handler is an object with `window` and `screen` properties whose values - * are the same as the return values of `Dimensions.get('window')` and - * `Dimensions.get('screen')`, respectively. - */ - }, { - key: "addEventListener", - value: function addEventListener(type, handler) { - (0, _invariant.default)(type === 'change', 'Trying to subscribe to unknown event: "%s"', type); - return eventEmitter.addListener(type, handler); - } - }]); - return Dimensions; - }(); - var initialDims = global.nativeExtensions && global.nativeExtensions.DeviceInfo && global.nativeExtensions.DeviceInfo.Dimensions; - if (!initialDims) { - // Subscribe before calling getConstants to make sure we don't miss any updates in between. - _RCTDeviceEventEmitter.default.addListener('didUpdateDimensions', function (update) { - Dimensions.set(update); - }); - initialDims = _NativeDeviceInfo.default.getConstants().Dimensions; - } - Dimensions.set(initialDims); - var _default = exports.default = Dimensions; -},200,[1,6,7,41,42,201,46]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var TurboModuleRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - var NativeModule = TurboModuleRegistry.getEnforcing('DeviceInfo'); - var constants = null; - var NativeDeviceInfo = { - getConstants: function getConstants() { - if (constants == null) { - constants = NativeModule.getConstants(); - } - return constants; - } - }; - var _default = exports.default = NativeDeviceInfo; -},201,[45]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - var androidScaleSuffix = { - '0.75': 'ldpi', - '1': 'mdpi', - '1.5': 'hdpi', - '2': 'xhdpi', - '3': 'xxhdpi', - '4': 'xxxhdpi' - }; - var ANDROID_BASE_DENSITY = 160; - - /** - * FIXME: using number to represent discrete scale numbers is fragile in essence because of - * floating point numbers imprecision. - */ - function getAndroidAssetSuffix(scale) { - if (scale.toString() in androidScaleSuffix) { - return androidScaleSuffix[scale.toString()]; - } - // NOTE: Android Gradle Plugin does not fully support the nnndpi format. - // See https://issuetracker.google.com/issues/72884435 - if (Number.isFinite(scale) && scale > 0) { - return Math.round(scale * ANDROID_BASE_DENSITY) + 'dpi'; - } - throw new Error('no such scale ' + scale.toString()); - } - - // See https://developer.android.com/guide/topics/resources/drawable-resource.html - var drawableFileTypes = new Set(['gif', 'jpeg', 'jpg', 'ktx', 'png', 'svg', 'webp', 'xml']); - function getAndroidResourceFolderName(asset, scale) { - if (!drawableFileTypes.has(asset.type)) { - return 'raw'; - } - var suffix = getAndroidAssetSuffix(scale); - if (!suffix) { - throw new Error("Don't know which android drawable suffix to use for scale: " + scale + '\nAsset: ' + JSON.stringify(asset, null, '\t') + '\nPossible scales are:' + JSON.stringify(androidScaleSuffix, null, '\t')); - } - return 'drawable-' + suffix; - } - function getAndroidResourceIdentifier(asset) { - return (getBasePath(asset) + '/' + asset.name).toLowerCase().replace(/\//g, '_') // Encode folder structure in file name - .replace(/([^a-z0-9_])/g, '') // Remove illegal chars - .replace(/^assets_/, ''); // Remove "assets_" prefix - } - - function getBasePath(asset) { - var basePath = asset.httpServerLocation; - return basePath.startsWith('/') ? basePath.substr(1) : basePath; - } - module.exports = { - getAndroidResourceFolderName: getAndroidResourceFolderName, - getAndroidResourceIdentifier: getAndroidResourceIdentifier, - getBasePath: getBasePath - }; -},202,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @noformat - * - * @generated SignedSource<<47ba85d7f43c9b591d6804827322d00e>> - * - * This file was sync'd from the facebook/react repository. - */ - - 'use strict'; - - var _invariant = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - // Event configs - var customBubblingEventTypes = {}; - var customDirectEventTypes = {}; - exports.customBubblingEventTypes = customBubblingEventTypes; - exports.customDirectEventTypes = customDirectEventTypes; - var viewConfigCallbacks = new Map(); - var viewConfigs = new Map(); - function processEventTypes(viewConfig) { - var bubblingEventTypes = viewConfig.bubblingEventTypes, - directEventTypes = viewConfig.directEventTypes; - if (bubblingEventTypes != null) { - for (var _topLevelType in bubblingEventTypes) { - if (customBubblingEventTypes[_topLevelType] == null) { - customBubblingEventTypes[_topLevelType] = bubblingEventTypes[_topLevelType]; - } - } - } - if (directEventTypes != null) { - for (var _topLevelType2 in directEventTypes) { - if (customDirectEventTypes[_topLevelType2] == null) { - customDirectEventTypes[_topLevelType2] = directEventTypes[_topLevelType2]; - } - } - } - } - - /** - * Registers a native view/component by name. - * A callback is provided to load the view config from UIManager. - * The callback is deferred until the view is actually rendered. - */ - exports.register = function (name, callback) { - (0, _invariant.default)(!viewConfigCallbacks.has(name), 'Tried to register two views with the same name %s', name); - (0, _invariant.default)(typeof callback === 'function', 'View config getter callback for component `%s` must be a function (received `%s`)', name, callback === null ? 'null' : typeof callback); - viewConfigCallbacks.set(name, callback); - return name; - }; - - /** - * Retrieves a config for the specified view. - * If this is the first time the view has been used, - * This configuration will be lazy-loaded from UIManager. - */ - exports.get = function (name) { - var viewConfig; - if (!viewConfigs.has(name)) { - var callback = viewConfigCallbacks.get(name); - if (typeof callback !== 'function') { - (0, _invariant.default)(false, 'View config getter callback for component `%s` must be a function (received `%s`).%s', name, callback === null ? 'null' : typeof callback, typeof name[0] === 'string' && /[a-z]/.test(name[0]) ? ' Make sure to start component names with a capital letter.' : ''); - } - viewConfig = callback(); - processEventTypes(viewConfig); - viewConfigs.set(name, viewConfig); - - // Clear the callback after the config is set so that - // we don't mask any errors during registration. - viewConfigCallbacks.set(name, null); - } else { - viewConfig = viewConfigs.get(name); - } - (0, _invariant.default)(viewConfig, 'View config not found for name %s', name); - return viewConfig; - }; -},203,[1,46]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = verifyComponentAttributeEquivalence; - exports.getConfigWithoutViewProps = getConfigWithoutViewProps; - exports.stringifyViewConfig = stringifyViewConfig; - var _PlatformBaseViewConfig = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - var IGNORED_KEYS = ['transform', 'hitSlop']; - - /** - * The purpose of this function is to validate that the view config that - * native exposes for a given view manager is the same as the view config - * that is specified for that view manager in JS. - * - * In order to improve perf, we want to avoid calling into native to get - * the view config when each view manager is used. To do this, we are moving - * the configs to JS. In the future we will use these JS based view configs - * to codegen the view manager on native to ensure they stay in sync without - * this runtime check. - * - * If this function fails, that likely means a change was made to the native - * view manager without updating the JS config as well. Ideally you can make - * that direct change to the JS config. If you don't know what the differences - * are, the best approach I've found is to create a view that prints - * the return value of getNativeComponentAttributes, and then copying that - * text and pasting it back into JS: - * {JSON.stringify(getNativeComponentAttributes('RCTView'))} - * - * This is meant to be a stopgap until the time comes when we only have a - * single source of truth. I wonder if this message will still be here two - * years from now... - */ - function verifyComponentAttributeEquivalence(nativeViewConfig, staticViewConfig) { - for (var prop of ['validAttributes', 'bubblingEventTypes', 'directEventTypes']) { - var diff = Object.keys(lefthandObjectDiff(nativeViewConfig[prop], staticViewConfig[prop])); - if (diff.length > 0) { - var _staticViewConfig$uiV; - var name = (_staticViewConfig$uiV = staticViewConfig.uiViewClassName) != null ? _staticViewConfig$uiV : nativeViewConfig.uiViewClassName; - console.error(`'${name}' has a view config that does not match native. ` + `'${prop}' is missing: ${diff.join(', ')}`); - } - } - } - - // Return the different key-value pairs of the right object, by iterating through the keys in the left object - // Note it won't return a difference where a key is missing in the left but exists the right. - function lefthandObjectDiff(leftObj, rightObj) { - var differentKeys = {}; - function compare(leftItem, rightItem, key) { - if (typeof leftItem !== typeof rightItem && leftItem != null) { - differentKeys[key] = rightItem; - return; - } - if (typeof leftItem === 'object') { - var objDiff = lefthandObjectDiff(leftItem, rightItem); - if (Object.keys(objDiff).length > 1) { - differentKeys[key] = objDiff; - } - return; - } - if (leftItem !== rightItem) { - differentKeys[key] = rightItem; - return; - } - } - for (var key in leftObj) { - if (IGNORED_KEYS.includes(key)) { - continue; - } - if (!rightObj) { - differentKeys[key] = {}; - } else if (leftObj.hasOwnProperty(key)) { - compare(leftObj[key], rightObj[key], key); - } - } - return differentKeys; - } - function getConfigWithoutViewProps(viewConfig, propName) { - if (!viewConfig[propName]) { - return {}; - } - return Object.keys(viewConfig[propName]).filter(function (prop) { - return !_PlatformBaseViewConfig.default[propName][prop]; - }).reduce(function (obj, prop) { - obj[prop] = viewConfig[propName][prop]; - return obj; - }, {}); - } - function stringifyViewConfig(viewConfig) { - return JSON.stringify(viewConfig, function (key, val) { - if (typeof val === 'function') { - return `Ζ’ ${val.name}`; - } - return val; - }, 2); - } -},204,[1,205]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var _BaseViewConfig = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - var PlatformBaseViewConfig = _BaseViewConfig.default; - - // In Wilde/FB4A, use RNHostComponentListRoute in Bridge mode to verify - // whether the JS props defined here match the native props defined - // in RCTViewManagers in iOS, and ViewManagers in Android. - var _default = exports.default = PlatformBaseViewConfig; -},205,[1,206]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var _ReactNativeStyleAttributes = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - var bubblingEventTypes = { - // Generic Events - topPress: { - phasedRegistrationNames: { - bubbled: 'onPress', - captured: 'onPressCapture' - } - }, - topChange: { - phasedRegistrationNames: { - bubbled: 'onChange', - captured: 'onChangeCapture' - } - }, - topFocus: { - phasedRegistrationNames: { - bubbled: 'onFocus', - captured: 'onFocusCapture' - } - }, - topBlur: { - phasedRegistrationNames: { - bubbled: 'onBlur', - captured: 'onBlurCapture' - } - }, - topSubmitEditing: { - phasedRegistrationNames: { - bubbled: 'onSubmitEditing', - captured: 'onSubmitEditingCapture' - } - }, - topEndEditing: { - phasedRegistrationNames: { - bubbled: 'onEndEditing', - captured: 'onEndEditingCapture' - } - }, - topKeyPress: { - phasedRegistrationNames: { - bubbled: 'onKeyPress', - captured: 'onKeyPressCapture' - } - }, - // Touch Events - topTouchStart: { - phasedRegistrationNames: { - bubbled: 'onTouchStart', - captured: 'onTouchStartCapture' - } - }, - topTouchMove: { - phasedRegistrationNames: { - bubbled: 'onTouchMove', - captured: 'onTouchMoveCapture' - } - }, - topTouchCancel: { - phasedRegistrationNames: { - bubbled: 'onTouchCancel', - captured: 'onTouchCancelCapture' - } - }, - topTouchEnd: { - phasedRegistrationNames: { - bubbled: 'onTouchEnd', - captured: 'onTouchEndCapture' - } - }, - // Experimental/Work in Progress Pointer Events (not yet ready for use) - topPointerCancel: { - phasedRegistrationNames: { - captured: 'onPointerCancelCapture', - bubbled: 'onPointerCancel' - } - }, - topPointerDown: { - phasedRegistrationNames: { - captured: 'onPointerDownCapture', - bubbled: 'onPointerDown' - } - }, - topPointerMove: { - phasedRegistrationNames: { - captured: 'onPointerMoveCapture', - bubbled: 'onPointerMove' - } - }, - topPointerUp: { - phasedRegistrationNames: { - captured: 'onPointerUpCapture', - bubbled: 'onPointerUp' - } - }, - topPointerEnter: { - phasedRegistrationNames: { - captured: 'onPointerEnterCapture', - bubbled: 'onPointerEnter', - skipBubbling: true - } - }, - topPointerLeave: { - phasedRegistrationNames: { - captured: 'onPointerLeaveCapture', - bubbled: 'onPointerLeave', - skipBubbling: true - } - }, - topPointerOver: { - phasedRegistrationNames: { - captured: 'onPointerOverCapture', - bubbled: 'onPointerOver' - } - }, - topPointerOut: { - phasedRegistrationNames: { - captured: 'onPointerOutCapture', - bubbled: 'onPointerOut' - } - } - }; - var directEventTypes = { - topAccessibilityAction: { - registrationName: 'onAccessibilityAction' - }, - topAccessibilityTap: { - registrationName: 'onAccessibilityTap' - }, - topMagicTap: { - registrationName: 'onMagicTap' - }, - topAccessibilityEscape: { - registrationName: 'onAccessibilityEscape' - }, - topLayout: { - registrationName: 'onLayout' - }, - onGestureHandlerEvent: (0, _$$_REQUIRE(_dependencyMap[2]).DynamicallyInjectedByGestureHandler)({ - registrationName: 'onGestureHandlerEvent' - }), - onGestureHandlerStateChange: (0, _$$_REQUIRE(_dependencyMap[2]).DynamicallyInjectedByGestureHandler)({ - registrationName: 'onGestureHandlerStateChange' - }) - }; - var validAttributesForNonEventProps = { - // View Props - accessible: true, - accessibilityActions: true, - accessibilityLabel: true, - accessibilityHint: true, - accessibilityLanguage: true, - accessibilityValue: true, - accessibilityViewIsModal: true, - accessibilityElementsHidden: true, - accessibilityIgnoresInvertColors: true, - testID: true, - backgroundColor: { - process: _$$_REQUIRE(_dependencyMap[3]).default - }, - backfaceVisibility: true, - opacity: true, - shadowColor: { - process: _$$_REQUIRE(_dependencyMap[3]).default - }, - shadowOffset: { - diff: _$$_REQUIRE(_dependencyMap[4]) - }, - shadowOpacity: true, - shadowRadius: true, - needsOffscreenAlphaCompositing: true, - overflow: true, - shouldRasterizeIOS: true, - transform: { - diff: _$$_REQUIRE(_dependencyMap[5]) - }, - accessibilityRole: true, - accessibilityState: true, - nativeID: true, - pointerEvents: true, - removeClippedSubviews: true, - borderRadius: true, - borderColor: { - process: _$$_REQUIRE(_dependencyMap[3]).default - }, - borderCurve: true, - borderWidth: true, - borderStyle: true, - hitSlop: { - diff: _$$_REQUIRE(_dependencyMap[6]) - }, - collapsable: true, - borderTopWidth: true, - borderTopColor: { - process: _$$_REQUIRE(_dependencyMap[3]).default - }, - borderRightWidth: true, - borderRightColor: { - process: _$$_REQUIRE(_dependencyMap[3]).default - }, - borderBottomWidth: true, - borderBottomColor: { - process: _$$_REQUIRE(_dependencyMap[3]).default - }, - borderLeftWidth: true, - borderLeftColor: { - process: _$$_REQUIRE(_dependencyMap[3]).default - }, - borderStartWidth: true, - borderStartColor: { - process: _$$_REQUIRE(_dependencyMap[3]).default - }, - borderEndWidth: true, - borderEndColor: { - process: _$$_REQUIRE(_dependencyMap[3]).default - }, - borderTopLeftRadius: true, - borderTopRightRadius: true, - borderTopStartRadius: true, - borderTopEndRadius: true, - borderBottomLeftRadius: true, - borderBottomRightRadius: true, - borderBottomStartRadius: true, - borderBottomEndRadius: true, - borderEndEndRadius: true, - borderEndStartRadius: true, - borderStartEndRadius: true, - borderStartStartRadius: true, - display: true, - zIndex: true, - // ShadowView properties - top: true, - right: true, - start: true, - end: true, - bottom: true, - left: true, - width: true, - height: true, - minWidth: true, - maxWidth: true, - minHeight: true, - maxHeight: true, - // Also declared as ViewProps - // borderTopWidth: true, - // borderRightWidth: true, - // borderBottomWidth: true, - // borderLeftWidth: true, - // borderStartWidth: true, - // borderEndWidth: true, - // borderWidth: true, - - margin: true, - marginBlock: true, - marginBlockEnd: true, - marginBlockStart: true, - marginBottom: true, - marginEnd: true, - marginHorizontal: true, - marginInline: true, - marginInlineEnd: true, - marginInlineStart: true, - marginLeft: true, - marginRight: true, - marginStart: true, - marginTop: true, - marginVertical: true, - padding: true, - paddingBlock: true, - paddingBlockEnd: true, - paddingBlockStart: true, - paddingBottom: true, - paddingEnd: true, - paddingHorizontal: true, - paddingInline: true, - paddingInlineEnd: true, - paddingInlineStart: true, - paddingLeft: true, - paddingRight: true, - paddingStart: true, - paddingTop: true, - paddingVertical: true, - flex: true, - flexGrow: true, - rowGap: true, - columnGap: true, - gap: true, - flexShrink: true, - flexBasis: true, - flexDirection: true, - flexWrap: true, - justifyContent: true, - alignItems: true, - alignSelf: true, - alignContent: true, - position: true, - aspectRatio: true, - // Also declared as ViewProps - // overflow: true, - // display: true, - - direction: true, - style: _ReactNativeStyleAttributes.default - }; - - // Props for bubbling and direct events - var validAttributesForEventProps = (0, _$$_REQUIRE(_dependencyMap[2]).ConditionallyIgnoredEventHandlers)({ - onLayout: true, - onMagicTap: true, - // Accessibility - onAccessibilityAction: true, - onAccessibilityEscape: true, - onAccessibilityTap: true, - // PanResponder handlers - onMoveShouldSetResponder: true, - onMoveShouldSetResponderCapture: true, - onStartShouldSetResponder: true, - onStartShouldSetResponderCapture: true, - onResponderGrant: true, - onResponderReject: true, - onResponderStart: true, - onResponderEnd: true, - onResponderRelease: true, - onResponderMove: true, - onResponderTerminate: true, - onResponderTerminationRequest: true, - onShouldBlockNativeResponder: true, - // Touch events - onTouchStart: true, - onTouchMove: true, - onTouchEnd: true, - onTouchCancel: true, - // Pointer events - onPointerUp: true, - onPointerDown: true, - onPointerCancel: true, - onPointerEnter: true, - onPointerMove: true, - onPointerLeave: true, - onPointerOver: true, - onPointerOut: true - }); - - /** - * On iOS, view managers define all of a component's props. - * All view managers extend RCTViewManager, and RCTViewManager declares these props. - */ - var PlatformBaseViewConfigIos = { - bubblingEventTypes: bubblingEventTypes, - directEventTypes: directEventTypes, - validAttributes: Object.assign({}, validAttributesForNonEventProps, validAttributesForEventProps) - }; - var _default = exports.default = PlatformBaseViewConfigIos; -},206,[1,181,207,183,189,190,192]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.ConditionallyIgnoredEventHandlers = ConditionallyIgnoredEventHandlers; - exports.DynamicallyInjectedByGestureHandler = DynamicallyInjectedByGestureHandler; - exports.isIgnored = isIgnored; - var _Platform = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - var ignoredViewConfigProps = new WeakSet(); - - /** - * Decorates ViewConfig values that are dynamically injected by the library, - * react-native-gesture-handler. (T45765076) - */ - function DynamicallyInjectedByGestureHandler(object) { - ignoredViewConfigProps.add(object); - return object; - } - - /** - * On iOS, ViewManager event declarations generate {eventName}: true entries - * in ViewConfig valueAttributes. These entries aren't generated for Android. - * This annotation allows Static ViewConfigs to insert these entries into - * iOS but not Android. - * - * In the future, we want to remove this platform-inconsistency. We want - * to set RN$ViewConfigEventValidAttributesDisabled = true server-side, - * so that iOS does not generate validAttributes from event props in iOS RCTViewManager, - * since Android does not generate validAttributes from events props in Android ViewManager. - * - * TODO(T110872225): Remove this logic, after achieving platform-consistency - */ - function ConditionallyIgnoredEventHandlers(value) { - if (_Platform.default.OS === 'ios') { - return value; - } - return undefined; - } - function isIgnored(value) { - if (typeof value === 'object' && value != null) { - return ignoredViewConfigProps.has(value); - } - return false; - } -},207,[1,43]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.stringifyValidationResult = stringifyValidationResult; - exports.validate = validate; - var _toConsumableArray2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - /** - * During the migration from native view configs to static view configs, this is - * used to validate that the two are equivalent. - */ - function validate(name, nativeViewConfig, staticViewConfig) { - var differences = []; - accumulateDifferences(differences, [], { - bubblingEventTypes: nativeViewConfig.bubblingEventTypes, - directEventTypes: nativeViewConfig.directEventTypes, - uiViewClassName: nativeViewConfig.uiViewClassName, - validAttributes: nativeViewConfig.validAttributes - }, { - bubblingEventTypes: staticViewConfig.bubblingEventTypes, - directEventTypes: staticViewConfig.directEventTypes, - uiViewClassName: staticViewConfig.uiViewClassName, - validAttributes: staticViewConfig.validAttributes - }); - if (differences.length === 0) { - return { - type: 'valid' - }; - } - return { - type: 'invalid', - differences: differences - }; - } - function stringifyValidationResult(name, validationResult) { - var differences = validationResult.differences; - return [`StaticViewConfigValidator: Invalid static view config for '${name}'.`, ''].concat((0, _toConsumableArray2.default)(differences.map(function (difference) { - var type = difference.type, - path = difference.path; - switch (type) { - case 'missing': - return `- '${path.join('.')}' is missing.`; - case 'unequal': - return `- '${path.join('.')}' is the wrong value.`; - case 'unexpected': - return `- '${path.join('.')}' is present but not expected to be.`; - } - })), ['']).join('\n'); - } - function accumulateDifferences(differences, path, nativeObject, staticObject) { - for (var nativeKey in nativeObject) { - var nativeValue = nativeObject[nativeKey]; - if (!staticObject.hasOwnProperty(nativeKey)) { - differences.push({ - path: [].concat((0, _toConsumableArray2.default)(path), [nativeKey]), - type: 'missing', - nativeValue: nativeValue - }); - continue; - } - var staticValue = staticObject[nativeKey]; - var nativeValueIfObject = ifObject(nativeValue); - if (nativeValueIfObject != null) { - var staticValueIfObject = ifObject(staticValue); - if (staticValueIfObject != null) { - path.push(nativeKey); - accumulateDifferences(differences, path, nativeValueIfObject, staticValueIfObject); - path.pop(); - continue; - } - } - if (nativeValue !== staticValue) { - differences.push({ - path: [].concat((0, _toConsumableArray2.default)(path), [nativeKey]), - type: 'unequal', - nativeValue: nativeValue, - staticValue: staticValue - }); - } - } - for (var staticKey in staticObject) { - if (!nativeObject.hasOwnProperty(staticKey) && !(0, _$$_REQUIRE(_dependencyMap[2]).isIgnored)(staticObject[staticKey])) { - differences.push({ - path: [].concat((0, _toConsumableArray2.default)(path), [staticKey]), - type: 'unexpected', - staticValue: staticObject[staticKey] - }); - } - } - } - function ifObject(value) { - return typeof value === 'object' && !Array.isArray(value) ? value : null; - } -},208,[1,20,207]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.createViewConfig = createViewConfig; - var _PlatformBaseViewConfig = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - /** - * Creates a complete `ViewConfig` from a `PartialViewConfig`. - */ - function createViewConfig(partialViewConfig) { - return { - uiViewClassName: partialViewConfig.uiViewClassName, - Commands: {}, - bubblingEventTypes: composeIndexers(_PlatformBaseViewConfig.default.bubblingEventTypes, partialViewConfig.bubblingEventTypes), - directEventTypes: composeIndexers(_PlatformBaseViewConfig.default.directEventTypes, partialViewConfig.directEventTypes), - // $FlowFixMe[incompatible-return] - validAttributes: composeIndexers( - // $FlowFixMe[incompatible-call] `style` property confuses Flow. - _PlatformBaseViewConfig.default.validAttributes, - // $FlowFixMe[incompatible-call] `style` property confuses Flow. - partialViewConfig.validAttributes) - }; - } - function composeIndexers(maybeA, maybeB) { - var _ref; - return maybeA == null || maybeB == null ? (_ref = maybeA != null ? maybeA : maybeB) != null ? _ref : {} : Object.assign({}, maybeA, maybeB); - } -},209,[1,205]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - function codegenNativeCommands(options) { - var commandObj = {}; - options.supportedCommands.forEach(function (command) { - // $FlowFixMe[missing-local-annot] - commandObj[command] = function (ref) { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - // $FlowFixMe[incompatible-call] - _$$_REQUIRE(_dependencyMap[0]).dispatchCommand(ref, command, args); - }; - }); - return commandObj; - } - var _default = exports.default = codegenNativeCommands; -},210,[57]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - 'use strict'; - - { - module.exports = _$$_REQUIRE(_dependencyMap[0]); - } -},211,[212]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * @license React - * react-jsx-runtime.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - 'use strict'; - - var f = _$$_REQUIRE(_dependencyMap[0]), - k = Symbol.for("react.element"), - l = Symbol.for("react.fragment"), - m = Object.prototype.hasOwnProperty, - n = f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, - p = { - key: true, - ref: true, - __self: true, - __source: true - }; - function q(c, a, g) { - var b, - d = {}, - e = null, - h = null; - undefined !== g && (e = "" + g); - undefined !== a.key && (e = "" + a.key); - undefined !== a.ref && (h = a.ref); - for (b in a) m.call(a, b) && !p.hasOwnProperty(b) && (d[b] = a[b]); - if (c && c.defaultProps) for (b in a = c.defaultProps, a) undefined === d[b] && (d[b] = a[b]); - return { - $$typeof: k, - type: c, - key: e, - ref: h, - props: d, - _owner: n.current - }; - } - exports.Fragment = l; - exports.jsx = q; - exports.jsxs = q; -},212,[3]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.getAccessibilityRoleFromRole = getAccessibilityRoleFromRole; - // Map role values to AccessibilityRole values - function getAccessibilityRoleFromRole(role) { - switch (role) { - case 'alert': - return 'alert'; - case 'alertdialog': - return undefined; - case 'application': - return undefined; - case 'article': - return undefined; - case 'banner': - return undefined; - case 'button': - return 'button'; - case 'cell': - return undefined; - case 'checkbox': - return 'checkbox'; - case 'columnheader': - return undefined; - case 'combobox': - return 'combobox'; - case 'complementary': - return undefined; - case 'contentinfo': - return undefined; - case 'definition': - return undefined; - case 'dialog': - return undefined; - case 'directory': - return undefined; - case 'document': - return undefined; - case 'feed': - return undefined; - case 'figure': - return undefined; - case 'form': - return undefined; - case 'grid': - return 'grid'; - case 'group': - return undefined; - case 'heading': - return 'header'; - case 'img': - return 'image'; - case 'link': - return 'link'; - case 'list': - return 'list'; - case 'listitem': - return undefined; - case 'log': - return undefined; - case 'main': - return undefined; - case 'marquee': - return undefined; - case 'math': - return undefined; - case 'menu': - return 'menu'; - case 'menubar': - return 'menubar'; - case 'menuitem': - return 'menuitem'; - case 'meter': - return undefined; - case 'navigation': - return undefined; - case 'none': - return 'none'; - case 'note': - return undefined; - case 'option': - return undefined; - case 'presentation': - return 'none'; - case 'progressbar': - return 'progressbar'; - case 'radio': - return 'radio'; - case 'radiogroup': - return 'radiogroup'; - case 'region': - return undefined; - case 'row': - return undefined; - case 'rowgroup': - return undefined; - case 'rowheader': - return undefined; - case 'scrollbar': - return 'scrollbar'; - case 'searchbox': - return 'search'; - case 'separator': - return undefined; - case 'slider': - return 'adjustable'; - case 'spinbutton': - return 'spinbutton'; - case 'status': - return undefined; - case 'summary': - return 'summary'; - case 'switch': - return 'switch'; - case 'tab': - return 'tab'; - case 'table': - return undefined; - case 'tablist': - return 'tablist'; - case 'tabpanel': - return undefined; - case 'term': - return undefined; - case 'timer': - return 'timer'; - case 'toolbar': - return 'toolbar'; - case 'tooltip': - return undefined; - case 'tree': - return undefined; - case 'treegrid': - return undefined; - case 'treeitem': - return undefined; - } - return undefined; - } -},213,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - /** - * This type should be used as the type for anything that is a color. It is - * most useful when using DynamicColorIOS which can be a string or a dynamic - * color object. - * - * type props = {backgroundColor: ColorValue}; - */ - - /** - * This type should be used as the type for a prop that is passed through - * to a 's `style` prop. This ensures call sites of the component - * can't pass styles that View doesn't support such as `fontSize`.` - * - * type Props = {style: ViewStyleProp} - * const MyComponent = (props: Props) => - */ - - /** - * This type should be used as the type for a prop that is passed through - * to a 's `style` prop. This ensures call sites of the component - * can't pass styles that Text doesn't support such as `resizeMode`.` - * - * type Props = {style: TextStyleProp} - * const MyComponent = (props: Props) => - */ - - /** - * This type should be used as the type for a prop that is passed through - * to an 's `style` prop. This ensures call sites of the component - * can't pass styles that Image doesn't support such as `fontSize`.` - * - * type Props = {style: ImageStyleProp} - * const MyComponent = (props: Props) => - */ - - /** - * WARNING: You probably shouldn't be using this type. This type - * is similar to the ones above except it allows styles that are accepted - * by all of View, Text, or Image. It is therefore very unsafe to pass this - * through to an underlying component. Using this is almost always a mistake - * and using one of the other more restrictive types is likely the right choice. - */ - - /** - * Utility type for getting the values for specific style keys. - * - * The following is bad because position is more restrictive than 'string': - * ``` - * type Props = {position: string}; - * ``` - * - * You should use the following instead: - * - * ``` - * type Props = {position: TypeForStyleKey<'position'>}; - * ``` - * - * This will correctly give you the type 'absolute' | 'relative' - */ - - /** - * This type is an object of the different possible style - * properties that can be specified for View. - * - * Note that this isn't a safe way to type a style prop for a component as - * results from StyleSheet.create return an internal identifier, not - * an object of styles. - * - * If you want to type the style prop of a function, - * consider using ViewStyleProp. - * - * A reasonable usage of this type is for helper functions that return an - * object of styles to pass to a View that can't be precomputed with - * StyleSheet.create. - */ - - /** - * This type is an object of the different possible style - * properties that can be specified for Text. - * - * Note that this isn't a safe way to type a style prop for a component as - * results from StyleSheet.create return an internal identifier, not - * an object of styles. - * - * If you want to type the style prop of a function, - * consider using TextStyleProp. - * - * A reasonable usage of this type is for helper functions that return an - * object of styles to pass to a Text that can't be precomputed with - * StyleSheet.create. - */ - - /** - * This type is an object of the different possible style - * properties that can be specified for Image. - * - * Note that this isn't a safe way to type a style prop for a component as - * results from StyleSheet.create return an internal identifier, not - * an object of styles. - * - * If you want to type the style prop of a function, - * consider using ImageStyleProp. - * - * A reasonable usage of this type is for helper functions that return an - * object of styles to pass to an Image that can't be precomputed with - * StyleSheet.create. - */ - - /** - * WARNING: You probably shouldn't be using this type. This type is an object - * with all possible style keys and their values. Note that this isn't - * a safe way to type a style prop for a component as results from - * StyleSheet.create return an internal identifier, not an object of styles. - * - * If you want to type the style prop of a function, consider using - * ViewStyleProp, TextStyleProp, or ImageStyleProp. - * - * This should only be used by very core utilities that operate on an object - * containing any possible style value. - */ - - var hairlineWidth = _$$_REQUIRE(_dependencyMap[0]).default.roundToNearestPixel(0.4); - if (hairlineWidth === 0) { - hairlineWidth = 1 / _$$_REQUIRE(_dependencyMap[0]).default.get(); - } - var absoluteFill = { - position: 'absolute', - left: 0, - right: 0, - top: 0, - bottom: 0 - }; - /** - * A StyleSheet is an abstraction similar to CSS StyleSheets - * - * Create a new StyleSheet: - * - * ``` - * const styles = StyleSheet.create({ - * container: { - * borderRadius: 4, - * borderWidth: 0.5, - * borderColor: '#d6d7da', - * }, - * title: { - * fontSize: 19, - * fontWeight: 'bold', - * }, - * activeTitle: { - * color: 'red', - * }, - * }); - * ``` - * - * Use a StyleSheet: - * - * ``` - * - * - * - * ``` - * - * Code quality: - * - * - By moving styles away from the render function, you're making the code - * easier to understand. - * - Naming the styles is a good way to add meaning to the low level components - * in the render function. - * - * Performance: - * - * - Making a stylesheet from a style object makes it possible to refer to it - * by ID instead of creating a new style object every time. - * - It also allows to send the style only once through the bridge. All - * subsequent uses are going to refer an id (not implemented yet). - */ - module.exports = { - /** - * This is defined as the width of a thin line on the platform. It can be - * used as the thickness of a border or division between two elements. - * Example: - * ``` - * { - * borderBottomColor: '#bbb', - * borderBottomWidth: StyleSheet.hairlineWidth - * } - * ``` - * - * This constant will always be a round number of pixels (so a line defined - * by it look crisp) and will try to match the standard width of a thin line - * on the underlying platform. However, you should not rely on it being a - * constant size, because on different platforms and screen densities its - * value may be calculated differently. - * - * A line with hairline width may not be visible if your simulator is downscaled. - */ - hairlineWidth: hairlineWidth, - /** - * A very common pattern is to create overlays with position absolute and zero positioning, - * so `absoluteFill` can be used for convenience and to reduce duplication of these repeated - * styles. - */ - absoluteFill: absoluteFill, - // TODO: This should be updated after we fix downstream Flow sites. - - /** - * Sometimes you may want `absoluteFill` but with a couple tweaks - `absoluteFillObject` can be - * used to create a customized entry in a `StyleSheet`, e.g.: - * - * const styles = StyleSheet.create({ - * wrapper: { - * ...StyleSheet.absoluteFillObject, - * top: 10, - * backgroundColor: 'transparent', - * }, - * }); - */ - absoluteFillObject: absoluteFill, - /** - * Combines two styles such that `style2` will override any styles in `style1`. - * If either style is falsy, the other one is returned without allocating an - * array, saving allocations and maintaining reference equality for - * PureComponent checks. - */ - compose: function compose(style1, style2) { - if (style1 != null && style2 != null) { - return [style1, style2]; - } else { - return style1 != null ? style1 : style2; - } - }, - /** - * Flattens an array of style objects, into one aggregated style object. - * Alternatively, this method can be used to lookup IDs, returned by - * StyleSheet.register. - * - * > **NOTE**: Exercise caution as abusing this can tax you in terms of - * > optimizations. - * > - * > IDs enable optimizations through the bridge and memory in general. Referring - * > to style objects directly will deprive you of these optimizations. - * - * Example: - * ``` - * const styles = StyleSheet.create({ - * listItem: { - * flex: 1, - * fontSize: 16, - * color: 'white' - * }, - * selectedListItem: { - * color: 'green' - * } - * }); - * - * StyleSheet.flatten([styles.listItem, styles.selectedListItem]) - * // returns { flex: 1, fontSize: 16, color: 'green' } - * ``` - * Alternative use: - * ``` - * StyleSheet.flatten(styles.listItem); - * // return { flex: 1, fontSize: 16, color: 'white' } - * // Simply styles.listItem would return its ID (number) - * ``` - * This method internally uses `StyleSheetRegistry.getStyleByID(style)` - * to resolve style objects represented by IDs. Thus, an array of style - * objects (instances of StyleSheet.create), are individually resolved to, - * their respective objects, merged as one and then returned. This also explains - * the alternative use. - */ - flatten: _$$_REQUIRE(_dependencyMap[1]), - /** - * WARNING: EXPERIMENTAL. Breaking changes will probably happen a lot and will - * not be reliably announced. The whole thing might be deleted, who knows? Use - * at your own risk. - * - * Sets a function to use to pre-process a style property value. This is used - * internally to process color and transform values. You should not use this - * unless you really know what you are doing and have exhausted other options. - */ - setStyleAttributePreprocessor: function setStyleAttributePreprocessor(property, process) { - var _ReactNativeStyleAttr, _ReactNativeStyleAttr2; - var value; - if (_$$_REQUIRE(_dependencyMap[2])[property] === true) { - value = { - process: process - }; - } else if (typeof _$$_REQUIRE(_dependencyMap[2])[property] === 'object') { - value = Object.assign({}, _$$_REQUIRE(_dependencyMap[2])[property], { - process: process - }); - } else { - console.error(`${property} is not a valid style attribute`); - return; - } - _$$_REQUIRE(_dependencyMap[2])[property] = value; - }, - /** - * Creates a StyleSheet style reference from the given object. - */ - create: function create(obj) { - // TODO: This should return S as the return type. But first, - // we need to codemod all the callsites that are typing this - // return value as a number (even though it was opaque). - - return obj; - } - }; -},214,[199,168,181]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = DevtoolsOverlay; - var _slicedToArray2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _View = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _ReactNativeFeatureFlags = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _StyleSheet = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var _Dimensions = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[5])); - var _ElementBox = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[6])); - var React = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[7])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - var useEffect = React.useEffect, - useState = React.useState, - useCallback = React.useCallback, - useRef = React.useRef; - var hook = window.__REACT_DEVTOOLS_GLOBAL_HOOK__; - function DevtoolsOverlay(_ref) { - var inspectedView = _ref.inspectedView; - var _useState = useState(null), - _useState2 = (0, _slicedToArray2.default)(_useState, 2), - inspected = _useState2[0], - setInspected = _useState2[1]; - var _useState3 = useState(false), - _useState4 = (0, _slicedToArray2.default)(_useState3, 2), - isInspecting = _useState4[0], - setIsInspecting = _useState4[1]; - var devToolsAgentRef = useRef(null); - useEffect(function () { - var devToolsAgent = null; - var hideTimeoutId = null; - function onAgentHideNativeHighlight() { - // we wait to actually hide in order to avoid flicker - clearTimeout(hideTimeoutId); - hideTimeoutId = setTimeout(function () { - setInspected(null); - }, 100); - } - function onAgentShowNativeHighlight(node) { - var _ref2, _node$publicInstance; - clearTimeout(hideTimeoutId); - - // `publicInstance` => Fabric - // TODO: remove this check when syncing the new version of the renderer from React to React Native. - // `canonical` => Legacy Fabric - // `node` => Legacy renderer - var component = (_ref2 = (_node$publicInstance = node.publicInstance) != null ? _node$publicInstance : node.canonical) != null ? _ref2 : node; - if (!component || !component.measure) { - return; - } - component.measure(function (x, y, width, height, left, top) { - setInspected({ - frame: { - left: left, - top: top, - width: width, - height: height - } - }); - }); - } - function cleanup() { - var currentAgent = devToolsAgent; - if (currentAgent != null) { - currentAgent.removeListener('hideNativeHighlight', onAgentHideNativeHighlight); - currentAgent.removeListener('showNativeHighlight', onAgentShowNativeHighlight); - currentAgent.removeListener('shutdown', cleanup); - currentAgent.removeListener('startInspectingNative', onStartInspectingNative); - currentAgent.removeListener('stopInspectingNative', onStopInspectingNative); - devToolsAgent = null; - } - devToolsAgentRef.current = null; - } - function onStartInspectingNative() { - setIsInspecting(true); - } - function onStopInspectingNative() { - setIsInspecting(false); - } - function _attachToDevtools(agent) { - devToolsAgent = agent; - devToolsAgentRef.current = agent; - agent.addListener('hideNativeHighlight', onAgentHideNativeHighlight); - agent.addListener('showNativeHighlight', onAgentShowNativeHighlight); - agent.addListener('shutdown', cleanup); - agent.addListener('startInspectingNative', onStartInspectingNative); - agent.addListener('stopInspectingNative', onStopInspectingNative); - } - hook.on('react-devtools', _attachToDevtools); - if (hook.reactDevtoolsAgent) { - _attachToDevtools(hook.reactDevtoolsAgent); - } - return function () { - hook.off('react-devtools', _attachToDevtools); - cleanup(); - }; - }, []); - var findViewForLocation = useCallback(function (x, y) { - var agent = devToolsAgentRef.current; - if (agent == null) { - return; - } - _$$_REQUIRE(_dependencyMap[8])(inspectedView, x, y, function (viewData) { - var touchedViewTag = viewData.touchedViewTag, - closestInstance = viewData.closestInstance, - frame = viewData.frame; - if (closestInstance != null || touchedViewTag != null) { - // We call `selectNode` for both non-fabric(viewTag) and fabric(instance), - // this makes sure it works for both architectures. - agent.selectNode(_$$_REQUIRE(_dependencyMap[9]).findNodeHandle(touchedViewTag)); - if (closestInstance != null) { - agent.selectNode(closestInstance); - } - setInspected({ - frame: frame - }); - return true; - } - return false; - }); - }, [inspectedView]); - var stopInspecting = useCallback(function () { - var agent = devToolsAgentRef.current; - if (agent == null) { - return; - } - agent.stopInspectingNative(true); - setIsInspecting(false); - setInspected(null); - }, []); - var onPointerMove = useCallback(function (e) { - findViewForLocation(e.nativeEvent.x, e.nativeEvent.y); - }, [findViewForLocation]); - var onResponderMove = useCallback(function (e) { - findViewForLocation(e.nativeEvent.touches[0].locationX, e.nativeEvent.touches[0].locationY); - }, [findViewForLocation]); - var shouldSetResponder = useCallback(function (e) { - onResponderMove(e); - return true; - }, [onResponderMove]); - var highlight = inspected ? /*#__PURE__*/(0, _$$_REQUIRE(_dependencyMap[10]).jsx)(_ElementBox.default, { - frame: inspected.frame - }) : null; - if (isInspecting) { - var events = - // Pointer events only work on fabric - _ReactNativeFeatureFlags.default.shouldEmitW3CPointerEvents() ? { - onPointerMove: onPointerMove, - onPointerDown: onPointerMove, - onPointerUp: stopInspecting - } : { - onStartShouldSetResponder: shouldSetResponder, - onResponderMove: onResponderMove, - onResponderRelease: stopInspecting - }; - return /*#__PURE__*/(0, _$$_REQUIRE(_dependencyMap[10]).jsx)(_View.default, Object.assign({ - nativeID: "devToolsInspectorOverlay", - style: [styles.inspector, { - height: _Dimensions.default.get('window').height - }] - }, events, { - children: highlight - })); - } - return highlight; - } - var styles = _StyleSheet.default.create({ - inspector: { - backgroundColor: 'transparent', - position: 'absolute', - left: 0, - top: 0, - right: 0 - } - }); -},215,[1,31,167,118,214,200,216,3,221,57,211]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _$$_REQUIRE(_dependencyMap[0])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _$$_REQUIRE(_dependencyMap[0])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _$$_REQUIRE(_dependencyMap[1])(this, result); }; } - function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } - var React = _$$_REQUIRE(_dependencyMap[2]); - var ElementBox = /*#__PURE__*/function (_React$Component) { - _$$_REQUIRE(_dependencyMap[3])(ElementBox, _React$Component); - var _super = _createSuper(ElementBox); - function ElementBox() { - _$$_REQUIRE(_dependencyMap[4])(this, ElementBox); - return _super.apply(this, arguments); - } - _$$_REQUIRE(_dependencyMap[5])(ElementBox, [{ - key: "render", - value: function render() { - // $FlowFixMe[underconstrained-implicit-instantiation] - var style = _$$_REQUIRE(_dependencyMap[6])(this.props.style) || {}; - var margin = _$$_REQUIRE(_dependencyMap[7])('margin', style); - var padding = _$$_REQUIRE(_dependencyMap[7])('padding', style); - var frameStyle = Object.assign({}, this.props.frame); - var contentStyle = { - width: this.props.frame.width, - height: this.props.frame.height - }; - if (margin != null) { - margin = resolveRelativeSizes(margin); - frameStyle.top -= margin.top; - frameStyle.left -= margin.left; - frameStyle.height += margin.top + margin.bottom; - frameStyle.width += margin.left + margin.right; - if (margin.top < 0) { - contentStyle.height += margin.top; - } - if (margin.bottom < 0) { - contentStyle.height += margin.bottom; - } - if (margin.left < 0) { - contentStyle.width += margin.left; - } - if (margin.right < 0) { - contentStyle.width += margin.right; - } - } - if (padding != null) { - padding = resolveRelativeSizes(padding); - contentStyle.width -= padding.left + padding.right; - contentStyle.height -= padding.top + padding.bottom; - } - return /*#__PURE__*/_$$_REQUIRE(_dependencyMap[8]).jsx(_$$_REQUIRE(_dependencyMap[9]), { - style: [styles.frame, frameStyle], - pointerEvents: "none", - children: /*#__PURE__*/_$$_REQUIRE(_dependencyMap[8]).jsx(_$$_REQUIRE(_dependencyMap[10]), { - box: margin, - style: styles.margin, - children: /*#__PURE__*/_$$_REQUIRE(_dependencyMap[8]).jsx(_$$_REQUIRE(_dependencyMap[10]), { - box: padding, - style: styles.padding, - children: /*#__PURE__*/_$$_REQUIRE(_dependencyMap[8]).jsx(_$$_REQUIRE(_dependencyMap[9]), { - style: [styles.content, contentStyle] - }) - }) - }) - }); - } - }]); - return ElementBox; - }(React.Component); - var styles = _$$_REQUIRE(_dependencyMap[11]).create({ - frame: { - position: 'absolute' - }, - content: { - backgroundColor: 'rgba(200, 230, 255, 0.8)' // blue - }, - - padding: { - borderColor: 'rgba(77, 255, 0, 0.3)' // green - }, - - margin: { - borderColor: 'rgba(255, 132, 0, 0.3)' // orange - } - }); - - /** - * Resolves relative sizes (percentages and auto) in a style object. - * - * @param style the style to resolve - * @return a modified copy - */ - function resolveRelativeSizes(style) { - var resolvedStyle = Object.assign({}, style); - resolveSizeInPlace(resolvedStyle, 'top', 'height'); - resolveSizeInPlace(resolvedStyle, 'right', 'width'); - resolveSizeInPlace(resolvedStyle, 'bottom', 'height'); - resolveSizeInPlace(resolvedStyle, 'left', 'width'); - return resolvedStyle; - } - - /** - * Resolves the given size of a style object in place. - * - * @param style the style object to modify - * @param direction the direction to resolve (e.g. 'top') - * @param dimension the window dimension that this direction belongs to (e.g. 'height') - */ - function resolveSizeInPlace(style, direction, dimension) { - if (style[direction] !== null && typeof style[direction] === 'string') { - if (style[direction].indexOf('%') !== -1) { - // $FlowFixMe[prop-missing] - style[direction] = parseFloat(style[direction]) / 100.0 * _$$_REQUIRE(_dependencyMap[12]).default.get('window')[dimension]; - } - if (style[direction] === 'auto') { - // Ignore auto sizing in frame drawing due to complexity of correctly rendering this - // $FlowFixMe[prop-missing] - style[direction] = 0; - } - } - } - module.exports = ElementBox; -},216,[70,68,3,66,6,7,168,217,211,167,220,214,200]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - /** - * Resolve a style property into its component parts. - * - * For example: - * - * > resolveProperties('margin', {margin: 5, marginBottom: 10}) - * {top: 5, left: 5, right: 5, bottom: 10} - * - * If no parts exist, this returns null. - */ - function resolveBoxStyle(prefix, style) { - var hasParts = false; - var result = { - bottom: 0, - left: 0, - right: 0, - top: 0 - }; - - // TODO: Fix issues with multiple properties affecting the same side. - - var styleForAll = style[prefix]; - if (styleForAll != null) { - for (var key of Object.keys(result)) { - result[key] = styleForAll; - } - hasParts = true; - } - var styleForHorizontal = style[prefix + 'Horizontal']; - if (styleForHorizontal != null) { - result.left = styleForHorizontal; - result.right = styleForHorizontal; - hasParts = true; - } else { - var styleForLeft = style[prefix + 'Left']; - if (styleForLeft != null) { - result.left = styleForLeft; - hasParts = true; - } - var styleForRight = style[prefix + 'Right']; - if (styleForRight != null) { - result.right = styleForRight; - hasParts = true; - } - var styleForEnd = style[prefix + 'End']; - if (styleForEnd != null) { - var constants = _$$_REQUIRE(_dependencyMap[0]).getConstants(); - if (constants.isRTL && constants.doLeftAndRightSwapInRTL) { - result.left = styleForEnd; - } else { - result.right = styleForEnd; - } - hasParts = true; - } - var styleForStart = style[prefix + 'Start']; - if (styleForStart != null) { - var _constants = _$$_REQUIRE(_dependencyMap[0]).getConstants(); - if (_constants.isRTL && _constants.doLeftAndRightSwapInRTL) { - result.right = styleForStart; - } else { - result.left = styleForStart; - } - hasParts = true; - } - } - var styleForVertical = style[prefix + 'Vertical']; - if (styleForVertical != null) { - result.bottom = styleForVertical; - result.top = styleForVertical; - hasParts = true; - } else { - var styleForBottom = style[prefix + 'Bottom']; - if (styleForBottom != null) { - result.bottom = styleForBottom; - hasParts = true; - } - var styleForTop = style[prefix + 'Top']; - if (styleForTop != null) { - result.top = styleForTop; - hasParts = true; - } - } - return hasParts ? result : null; - } - module.exports = resolveBoxStyle; -},217,[218]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - var _NativeI18nManager = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - var i18nConstants = getI18nManagerConstants(); - function getI18nManagerConstants() { - if (_NativeI18nManager.default) { - var _NativeI18nManager$ge = _NativeI18nManager.default.getConstants(), - isRTL = _NativeI18nManager$ge.isRTL, - doLeftAndRightSwapInRTL = _NativeI18nManager$ge.doLeftAndRightSwapInRTL, - localeIdentifier = _NativeI18nManager$ge.localeIdentifier; - return { - isRTL: isRTL, - doLeftAndRightSwapInRTL: doLeftAndRightSwapInRTL, - localeIdentifier: localeIdentifier - }; - } - return { - isRTL: false, - doLeftAndRightSwapInRTL: true - }; - } - module.exports = { - getConstants: function getConstants() { - return i18nConstants; - }, - allowRTL: function allowRTL(shouldAllow) { - if (!_NativeI18nManager.default) { - return; - } - _NativeI18nManager.default.allowRTL(shouldAllow); - }, - forceRTL: function forceRTL(shouldForce) { - if (!_NativeI18nManager.default) { - return; - } - _NativeI18nManager.default.forceRTL(shouldForce); - }, - swapLeftAndRightInRTL: function swapLeftAndRightInRTL(flipStyles) { - if (!_NativeI18nManager.default) { - return; - } - _NativeI18nManager.default.swapLeftAndRightInRTL(flipStyles); - }, - isRTL: i18nConstants.isRTL, - doLeftAndRightSwapInRTL: i18nConstants.doLeftAndRightSwapInRTL - }; -},218,[1,219]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var TurboModuleRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - var _default = exports.default = TurboModuleRegistry.get('I18nManager'); -},219,[45]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _$$_REQUIRE(_dependencyMap[0])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _$$_REQUIRE(_dependencyMap[0])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _$$_REQUIRE(_dependencyMap[1])(this, result); }; } - function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } - var React = _$$_REQUIRE(_dependencyMap[2]); - var BorderBox = /*#__PURE__*/function (_React$Component) { - _$$_REQUIRE(_dependencyMap[3])(BorderBox, _React$Component); - var _super = _createSuper(BorderBox); - function BorderBox() { - _$$_REQUIRE(_dependencyMap[4])(this, BorderBox); - return _super.apply(this, arguments); - } - _$$_REQUIRE(_dependencyMap[5])(BorderBox, [{ - key: "render", - value: function render() { - var box = this.props.box; - if (!box) { - return this.props.children; - } - var style = { - borderTopWidth: box.top, - borderBottomWidth: box.bottom, - borderLeftWidth: box.left, - borderRightWidth: box.right - }; - return /*#__PURE__*/_$$_REQUIRE(_dependencyMap[6]).jsx(_$$_REQUIRE(_dependencyMap[7]), { - style: [style, this.props.style], - children: this.props.children - }); - } - }]); - return BorderBox; - }(React.Component); - module.exports = BorderBox; -},220,[70,68,3,66,6,7,211,167]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - var React = _$$_REQUIRE(_dependencyMap[0]); - var hook = window.__REACT_DEVTOOLS_GLOBAL_HOOK__; - var renderers = findRenderers(); - function findRenderers() { - var allRenderers = Array.from(hook.renderers.values()); - _$$_REQUIRE(_dependencyMap[1])(allRenderers.length >= 1, 'Expected to find at least one React Native renderer on DevTools hook.'); - return allRenderers; - } - module.exports = function getInspectorDataForViewAtPoint(inspectedView, locationX, locationY, callback) { - var shouldBreak = false; - // Check all renderers for inspector data. - for (var i = 0; i < renderers.length; i++) { - var _renderer$rendererCon; - if (shouldBreak) { - break; - } - var renderer = renderers[i]; - if ((renderer == null ? undefined : (_renderer$rendererCon = renderer.rendererConfig) == null ? undefined : _renderer$rendererCon.getInspectorDataForViewAtPoint) != null) { - renderer.rendererConfig.getInspectorDataForViewAtPoint(inspectedView, locationX, locationY, function (viewData) { - // Only return with non-empty view data since only one renderer will have this view. - if (viewData && viewData.hierarchy.length > 0) { - shouldBreak = callback(viewData); - } - }); - } - } - }; -},221,[3,46]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = TraceUpdateOverlay; - var _slicedToArray2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _UIManager = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _processColor = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _StyleSheet = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var _Platform = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[5])); - var _View = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[6])); - var _TraceUpdateOverlayNativeComponent = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[7])); - var React = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[8])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - var useEffect = React.useEffect, - useRef = React.useRef, - useState = React.useState; - var hook = window.__REACT_DEVTOOLS_GLOBAL_HOOK__; - var isNativeComponentReady = _Platform.default.OS === 'android' && _UIManager.default.hasViewManagerConfig('TraceUpdateOverlay'); - var devToolsAgent; - function TraceUpdateOverlay() { - var _useState = useState(false), - _useState2 = (0, _slicedToArray2.default)(_useState, 2), - overlayDisabled = _useState2[0], - setOverlayDisabled = _useState2[1]; - // This effect is designed to be explicitly shown here to avoid re-subscribe from the same - // overlay component. - useEffect(function () { - if (!isNativeComponentReady) { - return; - } - function attachToDevtools(agent) { - devToolsAgent = agent; - agent.addListener('drawTraceUpdates', onAgentDrawTraceUpdates); - agent.addListener('disableTraceUpdates', onAgentDisableTraceUpdates); - } - function subscribe() { - hook == null ? undefined : hook.on('react-devtools', attachToDevtools); - if (hook != null && hook.reactDevtoolsAgent) { - attachToDevtools(hook.reactDevtoolsAgent); - } - } - function unsubscribe() { - hook == null ? undefined : hook.off('react-devtools', attachToDevtools); - var agent = devToolsAgent; - if (agent != null) { - agent.removeListener('drawTraceUpdates', onAgentDrawTraceUpdates); - agent.removeListener('disableTraceUpdates', onAgentDisableTraceUpdates); - devToolsAgent = null; - } - } - function onAgentDrawTraceUpdates() { - var nodesToDraw = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; - // If overlay is disabled before, now it's enabled. - setOverlayDisabled(false); - var newFramesToDraw = []; - nodesToDraw.forEach(function (_ref) { - var _ref2, _node$publicInstance; - var node = _ref.node, - color = _ref.color; - // `publicInstance` => Fabric - // TODO: remove this check when syncing the new version of the renderer from React to React Native. - // `canonical` => Legacy Fabric - // `node` => Legacy renderer - var component = (_ref2 = (_node$publicInstance = node.publicInstance) != null ? _node$publicInstance : node.canonical) != null ? _ref2 : node; - if (!component || !component.measure) { - return; - } - var frameToDrawPromise = new Promise(function (resolve) { - // The if statement here is to make flow happy - if (component.measure) { - // TODO(T145522797): We should refactor this to use `getBoundingClientRect` when Paper is no longer supported. - component.measure(function (x, y, width, height, left, top) { - resolve({ - rect: { - left: left, - top: top, - width: width, - height: height - }, - color: (0, _processColor.default)(color) - }); - }); - } - }); - newFramesToDraw.push(frameToDrawPromise); - }); - Promise.all(newFramesToDraw).then(function (results) { - if (nativeComponentRef.current != null) { - _TraceUpdateOverlayNativeComponent.Commands.draw(nativeComponentRef.current, JSON.stringify(results.filter(function (_ref3) { - var rect = _ref3.rect, - color = _ref3.color; - return rect.width >= 0 && rect.height >= 0; - }))); - } - }, function (err) { - console.error(`Failed to measure updated traces. Error: ${err}`); - }); - } - function onAgentDisableTraceUpdates() { - // When trace updates are disabled from the backend, we won't receive draw events until it's enabled by the next draw. We can safely remove the overlay as it's not needed now. - setOverlayDisabled(true); - } - subscribe(); - return unsubscribe; - }, []); // Only run once when the overlay initially rendered - - var nativeComponentRef = useRef(null); - return !overlayDisabled && isNativeComponentReady && /*#__PURE__*/(0, _$$_REQUIRE(_dependencyMap[9]).jsx)(_View.default, { - pointerEvents: "none", - style: styles.overlay, - children: /*#__PURE__*/(0, _$$_REQUIRE(_dependencyMap[9]).jsx)(_TraceUpdateOverlayNativeComponent.default, { - ref: nativeComponentRef, - style: styles.overlay - }) - }); - } - var styles = _StyleSheet.default.create({ - overlay: { - position: 'absolute', - top: 0, - bottom: 0, - left: 0, - right: 0 - } - }); -},222,[1,31,173,183,214,43,167,223,3,211]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = exports.Commands = undefined; - var _codegenNativeCommands = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _codegenNativeComponent = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var React = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[3])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - var Commands = exports.Commands = (0, _codegenNativeCommands.default)({ - supportedCommands: ['draw'] - }); - var _default = exports.default = (0, _codegenNativeComponent.default)('TraceUpdateOverlay'); -},223,[1,210,224,3]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var _requireNativeComponent = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _UIManager = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - // TODO: move this file to shims/ReactNative (requires React update and sync) - - // TODO: import from CodegenSchema once workspaces are enabled - - // If this function runs then that means the view configs were not - // generated at build time using `GenerateViewConfigJs.js`. Thus - // we need to `requireNativeComponent` to get the view configs from view managers. - // `requireNativeComponent` is not available in Bridgeless mode. - // e.g. This function runs at runtime if `codegenNativeComponent` was not called - // from a file suffixed with NativeComponent.js. - function codegenNativeComponent(componentName, options) { - if (global.RN$Bridgeless === true) { - var errorMessage = "Native Component '" + componentName + "' that calls codegenNativeComponent was not code generated at build time. Please check its definition."; - console.error(errorMessage); - } - var componentNameInUse = options && options.paperComponentName != null ? options.paperComponentName : componentName; - if (options != null && options.paperComponentNameDeprecated != null) { - if (_UIManager.default.hasViewManagerConfig(componentName)) { - componentNameInUse = componentName; - } else if (options.paperComponentNameDeprecated != null && _UIManager.default.hasViewManagerConfig(options.paperComponentNameDeprecated)) { - // $FlowFixMe[incompatible-type] - componentNameInUse = options.paperComponentNameDeprecated; - } else { - var _options$paperCompone; - throw new Error(`Failed to find native component for either ${componentName} or ${(_options$paperCompone = options.paperComponentNameDeprecated) != null ? _options$paperCompone : '(unknown)'}`); - } - } - return (0, _requireNativeComponent.default)( - // $FlowFixMe[incompatible-call] - componentNameInUse); - } - var _default = exports.default = codegenNativeComponent; -},224,[1,225,173]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - /** - * Creates values that can be used like React components which represent native - * view managers. You should create JavaScript modules that wrap these values so - * that the results are memoized. Example: - * - * const View = requireNativeComponent('RCTView'); - * - */ - - var requireNativeComponent = function requireNativeComponent(uiViewClassName) { - return _$$_REQUIRE(_dependencyMap[0])(uiViewClassName, function () { - return _$$_REQUIRE(_dependencyMap[1])(uiViewClassName); - }); - }; - var _default = exports.default = requireNativeComponent; -},225,[226,172]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @noformat - * - * @generated SignedSource<> - * - * This file was sync'd from the facebook/react repository. - */ - - 'use strict'; - - var register = _$$_REQUIRE(_dependencyMap[0]).ReactNativeViewConfigRegistry.register; - - /** - * Creates a renderable ReactNative host component. - * Use this method for view configs that are loaded from UIManager. - * Use createReactNativeComponentClass() for view configs defined within JavaScript. - * - * @param {string} config iOS View configuration. - * @private - */ - var createReactNativeComponentClass = function createReactNativeComponentClass(name, callback) { - return register(name, callback); - }; - module.exports = createReactNativeComponentClass; -},226,[227]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - // flowlint unsafe-getters-setters:off - module.exports = { - get BatchedBridge() { - return _$$_REQUIRE(_dependencyMap[0]); - }, - get ExceptionsManager() { - return _$$_REQUIRE(_dependencyMap[1]); - }, - get Platform() { - return _$$_REQUIRE(_dependencyMap[2]); - }, - get RCTEventEmitter() { - return _$$_REQUIRE(_dependencyMap[3]); - }, - get ReactNativeViewConfigRegistry() { - return _$$_REQUIRE(_dependencyMap[4]); - }, - get TextInputState() { - return _$$_REQUIRE(_dependencyMap[5]); - }, - get UIManager() { - return _$$_REQUIRE(_dependencyMap[6]); - }, - get deepDiffer() { - return _$$_REQUIRE(_dependencyMap[7]); - }, - get deepFreezeAndThrowOnMutationInDev() { - return _$$_REQUIRE(_dependencyMap[8]); - }, - get flattenStyle() { - // $FlowFixMe[underconstrained-implicit-instantiation] - return _$$_REQUIRE(_dependencyMap[9]); - }, - get ReactFiberErrorDialog() { - return _$$_REQUIRE(_dependencyMap[10]).default; - }, - get legacySendAccessibilityEvent() { - return _$$_REQUIRE(_dependencyMap[11]); - }, - get RawEventEmitter() { - return _$$_REQUIRE(_dependencyMap[12]).default; - }, - get CustomEvent() { - return _$$_REQUIRE(_dependencyMap[13]).default; - } - }; -},227,[48,85,43,228,203,229,173,232,233,168,234,54,235,236]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - var RCTEventEmitter = { - register: function register(eventEmitter) { - if (global.RN$Bridgeless) { - global.RN$registerCallableModule('RCTEventEmitter', function () { - return eventEmitter; - }); - } else { - _$$_REQUIRE(_dependencyMap[0]).registerCallableModule('RCTEventEmitter', eventEmitter); - } - } - }; - module.exports = RCTEventEmitter; -},228,[48]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - // This class is responsible for coordinating the "focused" state for - // TextInputs. All calls relating to the keyboard should be funneled - // through here. - - var React = _$$_REQUIRE(_dependencyMap[0]); - var currentlyFocusedInputRef = null; - var inputs = new Set(); - function currentlyFocusedInput() { - return currentlyFocusedInputRef; - } - - /** - * Returns the ID of the currently focused text field, if one exists - * If no text field is focused it returns null - */ - function currentlyFocusedField() { - return _$$_REQUIRE(_dependencyMap[1]).findNodeHandle(currentlyFocusedInputRef); - } - function focusInput(textField) { - if (currentlyFocusedInputRef !== textField && textField != null) { - currentlyFocusedInputRef = textField; - } - } - function blurInput(textField) { - if (currentlyFocusedInputRef === textField && textField != null) { - currentlyFocusedInputRef = null; - } - } - function focusField(textFieldID) { - return; - } - function blurField(textFieldID) { - return; - } - - /** - * @param {number} TextInputID id of the text field to focus - * Focuses the specified text field - * noop if the text field was already focused or if the field is not editable - */ - function focusTextInput(textField) { - if (typeof textField === 'number') { - return; - } - if (textField != null) { - var _textField$currentPro; - var fieldCanBeFocused = currentlyFocusedInputRef !== textField && - // $FlowFixMe - `currentProps` is missing in `NativeMethods` - ((_textField$currentPro = textField.currentProps) == null ? undefined : _textField$currentPro.editable) !== false; - if (!fieldCanBeFocused) { - return; - } - focusInput(textField); - { - // This isn't necessarily a single line text input - // But commands don't actually care as long as the thing being passed in - // actually has a command with that name. So this should work with single - // and multiline text inputs. Ideally we'll merge them into one component - // in the future. - _$$_REQUIRE(_dependencyMap[2]).Commands.focus(textField); - } - } - } - - /** - * @param {number} textFieldID id of the text field to unfocus - * Unfocuses the specified text field - * noop if it wasn't focused - */ - function blurTextInput(textField) { - if (typeof textField === 'number') { - return; - } - if (currentlyFocusedInputRef === textField && textField != null) { - blurInput(textField); - { - // This isn't necessarily a single line text input - // But commands don't actually care as long as the thing being passed in - // actually has a command with that name. So this should work with single - // and multiline text inputs. Ideally we'll merge them into one component - // in the future. - _$$_REQUIRE(_dependencyMap[2]).Commands.blur(textField); - } - } - } - function registerInput(textField) { - if (typeof textField === 'number') { - return; - } - inputs.add(textField); - } - function unregisterInput(textField) { - if (typeof textField === 'number') { - return; - } - inputs.delete(textField); - } - function isTextInput(textField) { - if (typeof textField === 'number') { - return false; - } - return inputs.has(textField); - } - module.exports = { - currentlyFocusedInput: currentlyFocusedInput, - focusInput: focusInput, - blurInput: blurInput, - currentlyFocusedField: currentlyFocusedField, - focusField: focusField, - blurField: blurField, - focusTextInput: focusTextInput, - blurTextInput: blurTextInput, - registerInput: registerInput, - unregisterInput: unregisterInput, - isTextInput: isTextInput - }; -},229,[3,57,230]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = exports.__INTERNAL_VIEW_CONFIG = exports.Commands = undefined; - var NativeComponentRegistry = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - var _codegenNativeCommands = _$$_REQUIRE(_dependencyMap[1])(_$$_REQUIRE(_dependencyMap[2])); - var _RCTTextInputViewConfig = _$$_REQUIRE(_dependencyMap[1])(_$$_REQUIRE(_dependencyMap[3])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - var Commands = exports.Commands = (0, _codegenNativeCommands.default)({ - supportedCommands: ['focus', 'blur', 'setTextAndSelection'] - }); - var __INTERNAL_VIEW_CONFIG = exports.__INTERNAL_VIEW_CONFIG = Object.assign({ - uiViewClassName: 'RCTSinglelineTextInputView' - }, _RCTTextInputViewConfig.default); - var SinglelineTextInputNativeComponent = NativeComponentRegistry.get('RCTSinglelineTextInputView', function () { - return __INTERNAL_VIEW_CONFIG; - }); - - // flowlint-next-line unclear-type:off - var _default = exports.default = SinglelineTextInputNativeComponent; -},230,[171,1,210,231]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - var RCTTextInputViewConfig = { - bubblingEventTypes: { - topBlur: { - phasedRegistrationNames: { - bubbled: 'onBlur', - captured: 'onBlurCapture' - } - }, - topChange: { - phasedRegistrationNames: { - bubbled: 'onChange', - captured: 'onChangeCapture' - } - }, - topContentSizeChange: { - phasedRegistrationNames: { - captured: 'onContentSizeChangeCapture', - bubbled: 'onContentSizeChange' - } - }, - topEndEditing: { - phasedRegistrationNames: { - bubbled: 'onEndEditing', - captured: 'onEndEditingCapture' - } - }, - topFocus: { - phasedRegistrationNames: { - bubbled: 'onFocus', - captured: 'onFocusCapture' - } - }, - topKeyPress: { - phasedRegistrationNames: { - bubbled: 'onKeyPress', - captured: 'onKeyPressCapture' - } - }, - topSubmitEditing: { - phasedRegistrationNames: { - bubbled: 'onSubmitEditing', - captured: 'onSubmitEditingCapture' - } - }, - topTouchCancel: { - phasedRegistrationNames: { - bubbled: 'onTouchCancel', - captured: 'onTouchCancelCapture' - } - }, - topTouchEnd: { - phasedRegistrationNames: { - bubbled: 'onTouchEnd', - captured: 'onTouchEndCapture' - } - }, - topTouchMove: { - phasedRegistrationNames: { - bubbled: 'onTouchMove', - captured: 'onTouchMoveCapture' - } - } - }, - directEventTypes: { - topTextInput: { - registrationName: 'onTextInput' - }, - topKeyPressSync: { - registrationName: 'onKeyPressSync' - }, - topScroll: { - registrationName: 'onScroll' - }, - topSelectionChange: { - registrationName: 'onSelectionChange' - }, - topChangeSync: { - registrationName: 'onChangeSync' - } - }, - validAttributes: Object.assign({ - fontSize: true, - fontWeight: true, - fontVariant: true, - // flowlint-next-line untyped-import:off - textShadowOffset: { - diff: _$$_REQUIRE(_dependencyMap[0]) - }, - allowFontScaling: true, - fontStyle: true, - textTransform: true, - textAlign: true, - fontFamily: true, - lineHeight: true, - isHighlighted: true, - writingDirection: true, - textDecorationLine: true, - textShadowRadius: true, - letterSpacing: true, - textDecorationStyle: true, - textDecorationColor: { - process: _$$_REQUIRE(_dependencyMap[1]).default - }, - color: { - process: _$$_REQUIRE(_dependencyMap[1]).default - }, - maxFontSizeMultiplier: true, - textShadowColor: { - process: _$$_REQUIRE(_dependencyMap[1]).default - }, - editable: true, - inputAccessoryViewID: true, - caretHidden: true, - enablesReturnKeyAutomatically: true, - placeholderTextColor: { - process: _$$_REQUIRE(_dependencyMap[1]).default - }, - clearButtonMode: true, - keyboardType: true, - selection: true, - returnKeyType: true, - submitBehavior: true, - mostRecentEventCount: true, - scrollEnabled: true, - selectionColor: { - process: _$$_REQUIRE(_dependencyMap[1]).default - }, - contextMenuHidden: true, - secureTextEntry: true, - placeholder: true, - autoCorrect: true, - multiline: true, - textContentType: true, - maxLength: true, - autoCapitalize: true, - keyboardAppearance: true, - passwordRules: true, - spellCheck: true, - selectTextOnFocus: true, - text: true, - clearTextOnFocus: true, - showSoftInputOnFocus: true, - autoFocus: true, - lineBreakStrategyIOS: true - }, (0, _$$_REQUIRE(_dependencyMap[2]).ConditionallyIgnoredEventHandlers)({ - onChange: true, - onSelectionChange: true, - onContentSizeChange: true, - onScroll: true, - onChangeSync: true, - onKeyPressSync: true, - onTextInput: true - })) - }; - module.exports = RCTTextInputViewConfig; -},231,[189,183,207]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - var logListeners; - function unstable_setLogListeners(listeners) { - logListeners = listeners; - } - - /* - * @returns {bool} true if different, false if equal - */ - var deepDiffer = function deepDiffer(one, two) { - var maxDepthOrOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1; - var maybeOptions = arguments.length > 3 ? arguments[3] : undefined; - var options = typeof maxDepthOrOptions === 'number' ? maybeOptions : maxDepthOrOptions; - var maxDepth = typeof maxDepthOrOptions === 'number' ? maxDepthOrOptions : -1; - if (maxDepth === 0) { - return true; - } - if (one === two) { - // Short circuit on identical object references instead of traversing them. - return false; - } - if (typeof one === 'function' && typeof two === 'function') { - // We consider all functions equal unless explicitly configured otherwise - var unsafelyIgnoreFunctions = options == null ? undefined : options.unsafelyIgnoreFunctions; - if (unsafelyIgnoreFunctions == null) { - if (logListeners && logListeners.onDifferentFunctionsIgnored && (!options || !('unsafelyIgnoreFunctions' in options))) { - logListeners.onDifferentFunctionsIgnored(one.name, two.name); - } - unsafelyIgnoreFunctions = true; - } - return !unsafelyIgnoreFunctions; - } - if (typeof one !== 'object' || one === null) { - // Primitives can be directly compared - return one !== two; - } - if (typeof two !== 'object' || two === null) { - // We know they are different because the previous case would have triggered - // otherwise. - return true; - } - if (one.constructor !== two.constructor) { - return true; - } - if (Array.isArray(one)) { - // We know two is also an array because the constructors are equal - var len = one.length; - if (two.length !== len) { - return true; - } - for (var ii = 0; ii < len; ii++) { - if (deepDiffer(one[ii], two[ii], maxDepth - 1, options)) { - return true; - } - } - } else { - for (var key in one) { - if (deepDiffer(one[key], two[key], maxDepth - 1, options)) { - return true; - } - } - for (var twoKey in two) { - // The only case we haven't checked yet is keys that are in two but aren't - // in one, which means they are different. - if (one[twoKey] === undefined && two[twoKey] !== undefined) { - return true; - } - } - } - return false; - }; - deepDiffer.unstable_setLogListeners = unstable_setLogListeners; - module.exports = deepDiffer; -},232,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - /** - * If your application is accepting different values for the same field over - * time and is doing a diff on them, you can either (1) create a copy or - * (2) ensure that those values are not mutated behind two passes. - * This function helps you with (2) by freezing the object and throwing if - * the user subsequently modifies the value. - * - * There are two caveats with this function: - * - If the call site is not in strict mode, it will only throw when - * mutating existing fields, adding a new one - * will unfortunately fail silently :( - * - If the object is already frozen or sealed, it will not continue the - * deep traversal and will leave leaf nodes unfrozen. - * - * Freezing the object and adding the throw mechanism is expensive and will - * only be used in DEV. - */ - function deepFreezeAndThrowOnMutationInDev(object) { - return object; - } - - /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's - * LTI update could not be added via codemod */ - - module.exports = deepFreezeAndThrowOnMutationInDev; -},233,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - var ReactFiberErrorDialog = { - /** - * Intercept lifecycle errors and ensure they are shown with the correct stack - * trace within the native redbox component. - */ - showErrorDialog: function showErrorDialog(_ref) { - var componentStack = _ref.componentStack, - errorValue = _ref.error; - var error; - - // Typically, `errorValue` should be an error. However, other values such as - // strings (or even null) are sometimes thrown. - if (errorValue instanceof Error) { - /* $FlowFixMe[class-object-subtyping] added when improving typing for - * this parameters */ - error = errorValue; - } else if (typeof errorValue === 'string') { - /* $FlowFixMe[class-object-subtyping] added when improving typing for - * this parameters */ - error = new (_$$_REQUIRE(_dependencyMap[0]).SyntheticError)(errorValue); - } else { - /* $FlowFixMe[class-object-subtyping] added when improving typing for - * this parameters */ - error = new (_$$_REQUIRE(_dependencyMap[0]).SyntheticError)('Unspecified error'); - } - try { - error.componentStack = componentStack; - error.isComponentError = true; - } catch (_unused) { - // Ignored. - } - (0, _$$_REQUIRE(_dependencyMap[0]).handleException)(error, false); - - // Return false here to prevent ReactFiberErrorLogger default behavior of - // logging error details to console.error. Calls to console.error are - // automatically routed to the native redbox controller, which we've already - // done above by calling ExceptionsManager. - return false; - } - }; - var _default = exports.default = ReactFiberErrorDialog; -},234,[85]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var _EventEmitter = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - var RawEventEmitter = new _EventEmitter.default(); - - // See the React renderer / react repo for how this is used. - // Raw events are emitted here when they are received in JS - // and before any event Plugins process them or before components - // have a chance to respond to them. This allows you to implement - // app-specific perf monitoring, which is unimplemented by default, - // making this entire RawEventEmitter do nothing by default until - // *you* add listeners for your own app. - // Besides perf monitoring and maybe debugging, this RawEventEmitter - // should not be used. - var _default = exports.default = RawEventEmitter; -},235,[1,42]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _inherits2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _possibleConstructorReturn2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var _getPrototypeOf2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[5])); - var _EventPolyfill2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[6])); - function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } - function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ // Make sure global Event is defined - var CustomEvent = /*#__PURE__*/function (_EventPolyfill) { - (0, _inherits2.default)(CustomEvent, _EventPolyfill); - var _super = _createSuper(CustomEvent); - function CustomEvent(typeArg, options) { - var _this; - (0, _classCallCheck2.default)(this, CustomEvent); - var bubbles = options.bubbles, - cancelable = options.cancelable, - composed = options.composed; - _this = _super.call(this, typeArg, { - bubbles: bubbles, - cancelable: cancelable, - composed: composed - }); - _this.detail = options.detail; // this would correspond to `NativeEvent` in SyntheticEvent - return _this; - } - return (0, _createClass2.default)(CustomEvent); - }(_EventPolyfill2.default); - var _default = exports.default = CustomEvent; -},236,[1,7,6,66,68,70,237]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - // https://dom.spec.whatwg.org/#dictdef-eventinit - /** - * This is a copy of the Event interface defined in Flow: - * https://github.com/facebook/flow/blob/741104e69c43057ebd32804dd6bcc1b5e97548ea/lib/dom.js - * which is itself a faithful interface of the W3 spec: - * https://dom.spec.whatwg.org/#interface-event - * - * Since Flow assumes that Event is provided and is on the global object, - * we must provide an implementation of Event for CustomEvent (and future - * alignment of React Native's event system with the W3 spec). - */ - var EventPolyfill = /*#__PURE__*/function () { - // Non-standard. See `composed` instead. - - // https://developer.mozilla.org/en-US/docs/Web/API/Event/eventPhase - - // TODO: nullable - // TODO: nullable - /** @deprecated */ - // TODO: nullable - - // React Native-specific: proxy data to a SyntheticEvent when - // certain methods are called. - // SyntheticEvent will also have a reference to this instance - - // it is circular - and both classes use this reference to keep - // data with the other in sync. - - function EventPolyfill(type, eventInitDict) { - (0, _classCallCheck2.default)(this, EventPolyfill); - this.type = type; - this.bubbles = !!(eventInitDict != null && eventInitDict.bubbles || false); - this.cancelable = !!(eventInitDict != null && eventInitDict.cancelable || false); - this.composed = !!(eventInitDict != null && eventInitDict.composed || false); - this.scoped = !!(eventInitDict != null && eventInitDict.scoped || false); - - // TODO: somehow guarantee that only "private" instantiations of Event - // can set this to true - this.isTrusted = false; - - // TODO: in the future we'll want to make sure this has the same - // time-basis as events originating from native - this.timeStamp = Date.now(); - this.defaultPrevented = false; - - // https://developer.mozilla.org/en-US/docs/Web/API/Event/eventPhase - this.NONE = 0; - this.AT_TARGET = 1; - this.BUBBLING_PHASE = 2; - this.CAPTURING_PHASE = 3; - this.eventPhase = this.NONE; - - // $FlowFixMe - this.currentTarget = null; - // $FlowFixMe - this.target = null; - // $FlowFixMe - this.srcElement = null; - } - (0, _createClass2.default)(EventPolyfill, [{ - key: "composedPath", - value: function composedPath() { - throw new Error('TODO: not yet implemented'); - } - }, { - key: "preventDefault", - value: function preventDefault() { - this.defaultPrevented = true; - if (this._syntheticEvent != null) { - // $FlowFixMe - this._syntheticEvent.preventDefault(); - } - } - }, { - key: "initEvent", - value: function initEvent(type, bubbles, cancelable) { - throw new Error('TODO: not yet implemented. This method is also deprecated.'); - } - }, { - key: "stopImmediatePropagation", - value: function stopImmediatePropagation() { - throw new Error('TODO: not yet implemented'); - } - }, { - key: "stopPropagation", - value: function stopPropagation() { - if (this._syntheticEvent != null) { - // $FlowFixMe - this._syntheticEvent.stopPropagation(); - } - } - }, { - key: "setSyntheticEvent", - value: function setSyntheticEvent(value) { - this._syntheticEvent = value; - } - }]); - return EventPolyfill; - }(); // Assertion magic for polyfill follows. - // eslint-disable-line no-unused-vars - /*:: - // This can be a strict mode error at runtime so put it in a Flow comment. - (checkEvent: IEvent); - */ - global.Event = EventPolyfill; - var _default = exports.default = EventPolyfill; -},237,[1,6,7]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.RootTagContext = undefined; - exports.createRootTag = createRootTag; - var React = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - var RootTagContext = exports.RootTagContext = React.createContext(0); - /** - * Intended to only be used by `AppContainer`. - */ - function createRootTag(rootTag) { - return rootTag; - } -},238,[3]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.coerceDisplayMode = coerceDisplayMode; - exports.default = undefined; - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - /** DisplayMode should be in sync with the method displayModeToInt from - * react/renderer/uimanager/primitives.h. */ - var DisplayMode = Object.freeze({ - VISIBLE: 1, - SUSPENDED: 2, - HIDDEN: 3 - }); - function coerceDisplayMode(value) { - switch (value) { - case DisplayMode.SUSPENDED: - return DisplayMode.SUSPENDED; - case DisplayMode.HIDDEN: - return DisplayMode.HIDDEN; - default: - return DisplayMode.VISIBLE; - } - } - var _default = exports.default = DisplayMode; -},239,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = getCachedComponentWithDisplayName; - var React = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[0])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - var cache = new Map(); - function getCachedComponentWithDisplayName(displayName) { - var ComponentWithDisplayName = cache.get(displayName); - if (!ComponentWithDisplayName) { - ComponentWithDisplayName = function ComponentWithDisplayName(_ref) { - var children = _ref.children; - return children; - }; - // $FlowFixMe[prop-missing] - ComponentWithDisplayName.displayName = displayName; - cache.set(displayName, ComponentWithDisplayName); - } - return ComponentWithDisplayName; - } -},240,[3]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - - 'use strict'; - - module.exports = _$$_REQUIRE(_dependencyMap[0]); - function emptyFunction() {} - var BackHandler = { - exitApp: emptyFunction, - addEventListener: function addEventListener(_eventName, _handler) { - return { - remove: emptyFunction - }; - }, - removeEventListener: function removeEventListener(_eventName, _handler) {} - }; - module.exports = BackHandler; -},241,[242]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @format - */ - - 'use strict'; - - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _inherits2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _possibleConstructorReturn2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var _getPrototypeOf2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[5])); - var _StyleSheet = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[6])); - var React = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[7])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } - function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** - * Common implementation for a simple stubbed view. Simply applies the view's styles to the inner - * View component and renders its children. - */ - var UnimplementedView = /*#__PURE__*/function (_React$Component) { - (0, _inherits2.default)(UnimplementedView, _React$Component); - var _super = _createSuper(UnimplementedView); - function UnimplementedView() { - (0, _classCallCheck2.default)(this, UnimplementedView); - return _super.apply(this, arguments); - } - (0, _createClass2.default)(UnimplementedView, [{ - key: "render", - value: function render() { - // Workaround require cycle from requireNativeComponent - var View = _$$_REQUIRE(_dependencyMap[8]); - return /*#__PURE__*/(0, _$$_REQUIRE(_dependencyMap[9]).jsx)(View, { - style: [styles.unimplementedView, this.props.style], - children: this.props.children - }); - } - }]); - return UnimplementedView; - }(React.Component); - var styles = _StyleSheet.default.create({ - unimplementedView: {} - }); - module.exports = UnimplementedView; -},242,[1,6,7,66,68,70,214,3,167,211]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - 'use strict'; - - { - module.exports = _$$_REQUIRE(_dependencyMap[0]); - } -},243,[244]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * @license React - * scheduler.native.production.min.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - 'use strict'; - - function f(a, b) { - var c = a.length; - a.push(b); - a: for (; 0 < c;) { - var d = c - 1 >>> 1, - e = a[d]; - if (0 < g(e, b)) a[d] = b, a[c] = e, c = d;else break a; - } - } - function h(a) { - return 0 === a.length ? null : a[0]; - } - function k(a) { - if (0 === a.length) return null; - var b = a[0], - c = a.pop(); - if (c !== b) { - a[0] = c; - a: for (var d = 0, e = a.length, t = e >>> 1; d < t;) { - var m = 2 * (d + 1) - 1, - E = a[m], - n = m + 1, - A = a[n]; - if (0 > g(E, c)) n < e && 0 > g(A, E) ? (a[d] = A, a[n] = c, d = n) : (a[d] = E, a[m] = c, d = m);else if (n < e && 0 > g(A, c)) a[d] = A, a[n] = c, d = n;else break a; - } - } - return b; - } - function g(a, b) { - var c = a.sortIndex - b.sortIndex; - return 0 !== c ? c : a.id - b.id; - } - var l; - if ("object" === typeof performance && "function" === typeof performance.now) { - var p = performance; - l = function l() { - return p.now(); - }; - } else { - var q = Date, - r = q.now(); - l = function l() { - return q.now() - r; - }; - } - var u = [], - v = [], - w = 1, - x = null, - y = 3, - z = false, - B = false, - C = false, - D = "function" === typeof setTimeout ? setTimeout : null, - F = "function" === typeof clearTimeout ? clearTimeout : null, - G = "undefined" !== typeof setImmediate ? setImmediate : null; - "undefined" !== typeof navigator && undefined !== navigator.scheduling && undefined !== navigator.scheduling.isInputPending ? navigator.scheduling.isInputPending.bind(navigator.scheduling) : null; - function H(a) { - for (var b = h(v); null !== b;) { - if (null === b.callback) k(v);else if (b.startTime <= a) k(v), b.sortIndex = b.expirationTime, f(u, b);else break; - b = h(v); - } - } - function I(a) { - C = false; - H(a); - if (!B) if (null !== h(u)) B = true, J = K, L || (L = true, M());else { - var b = h(v); - null !== b && N(I, b.startTime - a); - } - } - function K(a, b) { - B = false; - C && (C = false, F(O), O = -1); - z = true; - var c = y; - try { - a: { - H(b); - for (x = h(u); null !== x && (!(x.expirationTime > b) || a && !P());) { - var d = x.callback; - if ("function" === typeof d) { - x.callback = null; - y = x.priorityLevel; - var e = d(x.expirationTime <= b); - b = l(); - if ("function" === typeof e) { - x.callback = e; - H(b); - var t = true; - break a; - } else x === h(u) && k(u), H(b); - } else k(u); - x = h(u); - } - if (null !== x) t = true;else { - var m = h(v); - null !== m && N(I, m.startTime - b); - t = false; - } - } - return t; - } finally { - x = null, y = c, z = false; - } - } - function Q(a, b, c) { - var d = l(); - "object" === typeof c && null !== c ? (c = c.delay, c = "number" === typeof c && 0 < c ? d + c : d) : c = d; - switch (a) { - case 1: - var e = -1; - break; - case 2: - e = 250; - break; - case 5: - e = 1073741823; - break; - case 4: - e = 1E4; - break; - default: - e = 5E3; - } - e = c + e; - a = { - id: w++, - callback: b, - priorityLevel: a, - startTime: c, - expirationTime: e, - sortIndex: -1 - }; - c > d ? (a.sortIndex = c, f(v, a), null === h(u) && a === h(v) && (C ? (F(O), O = -1) : C = true, N(I, c - d))) : (a.sortIndex = e, f(u, a), B || z || (B = true, J = K, L || (L = true, M()))); - return a; - } - function R(a) { - a.callback = null; - } - function S() { - return y; - } - var L = false, - J = null, - O = -1, - T = -1; - function P() { - return 5 > l() - T ? false : true; - } - function U() {} - function V() { - if (null !== J) { - var a = l(); - T = a; - var b = true; - try { - b = J(true, a); - } finally { - b ? M() : (L = false, J = null); - } - } else L = false; - } - var M; - if ("function" === typeof G) M = function M() { - G(V); - };else if ("undefined" !== typeof MessageChannel) { - var W = new MessageChannel(), - X = W.port2; - W.port1.onmessage = V; - M = function M() { - X.postMessage(null); - }; - } else M = function M() { - D(V, 0); - }; - function N(a, b) { - O = D(function () { - a(l()); - }, b); - } - var Y = "undefined" !== typeof nativeRuntimeScheduler ? nativeRuntimeScheduler.unstable_UserBlockingPriority : 2, - aa = "undefined" !== typeof nativeRuntimeScheduler ? nativeRuntimeScheduler.unstable_NormalPriority : 3, - ba = "undefined" !== typeof nativeRuntimeScheduler ? nativeRuntimeScheduler.unstable_LowPriority : 4, - ca = "undefined" !== typeof nativeRuntimeScheduler ? nativeRuntimeScheduler.unstable_ImmediatePriority : 1, - da = "undefined" !== typeof nativeRuntimeScheduler ? nativeRuntimeScheduler.unstable_scheduleCallback : Q, - ea = "undefined" !== typeof nativeRuntimeScheduler ? nativeRuntimeScheduler.unstable_cancelCallback : R, - fa = "undefined" !== typeof nativeRuntimeScheduler ? nativeRuntimeScheduler.unstable_getCurrentPriorityLevel : S, - ha = "undefined" !== typeof nativeRuntimeScheduler ? nativeRuntimeScheduler.unstable_shouldYield : P, - ia = "undefined" !== typeof nativeRuntimeScheduler ? nativeRuntimeScheduler.unstable_requestPaint : U, - ja = "undefined" !== typeof nativeRuntimeScheduler ? nativeRuntimeScheduler.unstable_now : l; - function Z() { - throw Error("Not implemented."); - } - exports.unstable_IdlePriority = "undefined" !== typeof nativeRuntimeScheduler ? nativeRuntimeScheduler.unstable_IdlePriority : 5; - exports.unstable_ImmediatePriority = ca; - exports.unstable_LowPriority = ba; - exports.unstable_NormalPriority = aa; - exports.unstable_Profiling = null; - exports.unstable_UserBlockingPriority = Y; - exports.unstable_cancelCallback = ea; - exports.unstable_continueExecution = Z; - exports.unstable_forceFrameRate = Z; - exports.unstable_getCurrentPriorityLevel = fa; - exports.unstable_getFirstCallbackNode = Z; - exports.unstable_next = Z; - exports.unstable_now = ja; - exports.unstable_pauseExecution = Z; - exports.unstable_requestPaint = ia; - exports.unstable_runWithPriority = Z; - exports.unstable_scheduleCallback = da; - exports.unstable_shouldYield = ha; - exports.unstable_wrapCallback = Z; -},244,[]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @noformat - * - * @generated SignedSource<<744176db456e2656dac661d36e55f42a>> - * - * This file was sync'd from the facebook/react repository. - */ - - 'use strict'; - - var ReactNative; - { - ReactNative = _$$_REQUIRE(_dependencyMap[0]); - } - module.exports = ReactNative; -},245,[246]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * - * @nolint - * @providesModule ReactNativeRenderer-prod - * @preventMunge - * @generated SignedSource<<07cf699c0d1c149943b7a02432aa1550>> - */ - - "use strict"; - - _$$_REQUIRE(_dependencyMap[0]); - var React = _$$_REQUIRE(_dependencyMap[1]); - function invokeGuardedCallbackImpl(name, func, context, a, b, c, d, e, f) { - var funcArgs = Array.prototype.slice.call(arguments, 3); - try { - func.apply(context, funcArgs); - } catch (error) { - this.onError(error); - } - } - var hasError = false, - caughtError = null, - hasRethrowError = false, - rethrowError = null, - reporter = { - onError: function onError(error) { - hasError = true; - caughtError = error; - } - }; - function invokeGuardedCallback(name, func, context, a, b, c, d, e, f) { - hasError = false; - caughtError = null; - invokeGuardedCallbackImpl.apply(reporter, arguments); - } - function invokeGuardedCallbackAndCatchFirstError(name, func, context, a, b, c, d, e, f) { - invokeGuardedCallback.apply(this, arguments); - if (hasError) { - if (hasError) { - var error = caughtError; - hasError = false; - caughtError = null; - } else throw Error("clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue."); - hasRethrowError || (hasRethrowError = true, rethrowError = error); - } - } - var isArrayImpl = Array.isArray, - getFiberCurrentPropsFromNode = null, - getInstanceFromNode = null, - getNodeFromInstance = null; - function executeDispatch(event, listener, inst) { - var type = event.type || "unknown-event"; - event.currentTarget = getNodeFromInstance(inst); - invokeGuardedCallbackAndCatchFirstError(type, listener, undefined, event); - event.currentTarget = null; - } - function executeDirectDispatch(event) { - var dispatchListener = event._dispatchListeners, - dispatchInstance = event._dispatchInstances; - if (isArrayImpl(dispatchListener)) throw Error("executeDirectDispatch(...): Invalid `event`."); - event.currentTarget = dispatchListener ? getNodeFromInstance(dispatchInstance) : null; - dispatchListener = dispatchListener ? dispatchListener(event) : null; - event.currentTarget = null; - event._dispatchListeners = null; - event._dispatchInstances = null; - return dispatchListener; - } - var assign = Object.assign; - function functionThatReturnsTrue() { - return true; - } - function functionThatReturnsFalse() { - return false; - } - function SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarget) { - this.dispatchConfig = dispatchConfig; - this._targetInst = targetInst; - this.nativeEvent = nativeEvent; - this._dispatchInstances = this._dispatchListeners = null; - dispatchConfig = this.constructor.Interface; - for (var propName in dispatchConfig) dispatchConfig.hasOwnProperty(propName) && ((targetInst = dispatchConfig[propName]) ? this[propName] = targetInst(nativeEvent) : "target" === propName ? this.target = nativeEventTarget : this[propName] = nativeEvent[propName]); - this.isDefaultPrevented = (null != nativeEvent.defaultPrevented ? nativeEvent.defaultPrevented : false === nativeEvent.returnValue) ? functionThatReturnsTrue : functionThatReturnsFalse; - this.isPropagationStopped = functionThatReturnsFalse; - return this; - } - assign(SyntheticEvent.prototype, { - preventDefault: function preventDefault() { - this.defaultPrevented = true; - var event = this.nativeEvent; - event && (event.preventDefault ? event.preventDefault() : "unknown" !== typeof event.returnValue && (event.returnValue = false), this.isDefaultPrevented = functionThatReturnsTrue); - }, - stopPropagation: function stopPropagation() { - var event = this.nativeEvent; - event && (event.stopPropagation ? event.stopPropagation() : "unknown" !== typeof event.cancelBubble && (event.cancelBubble = true), this.isPropagationStopped = functionThatReturnsTrue); - }, - persist: function persist() { - this.isPersistent = functionThatReturnsTrue; - }, - isPersistent: functionThatReturnsFalse, - destructor: function destructor() { - var Interface = this.constructor.Interface, - propName; - for (propName in Interface) this[propName] = null; - this.nativeEvent = this._targetInst = this.dispatchConfig = null; - this.isPropagationStopped = this.isDefaultPrevented = functionThatReturnsFalse; - this._dispatchInstances = this._dispatchListeners = null; - } - }); - SyntheticEvent.Interface = { - type: null, - target: null, - currentTarget: function currentTarget() { - return null; - }, - eventPhase: null, - bubbles: null, - cancelable: null, - timeStamp: function timeStamp(event) { - return event.timeStamp || Date.now(); - }, - defaultPrevented: null, - isTrusted: null - }; - SyntheticEvent.extend = function (Interface) { - function E() {} - function Class() { - return Super.apply(this, arguments); - } - var Super = this; - E.prototype = Super.prototype; - var prototype = new E(); - assign(prototype, Class.prototype); - Class.prototype = prototype; - Class.prototype.constructor = Class; - Class.Interface = assign({}, Super.Interface, Interface); - Class.extend = Super.extend; - addEventPoolingTo(Class); - return Class; - }; - addEventPoolingTo(SyntheticEvent); - function createOrGetPooledEvent(dispatchConfig, targetInst, nativeEvent, nativeInst) { - if (this.eventPool.length) { - var instance = this.eventPool.pop(); - this.call(instance, dispatchConfig, targetInst, nativeEvent, nativeInst); - return instance; - } - return new this(dispatchConfig, targetInst, nativeEvent, nativeInst); - } - function releasePooledEvent(event) { - if (!(event instanceof this)) throw Error("Trying to release an event instance into a pool of a different type."); - event.destructor(); - 10 > this.eventPool.length && this.eventPool.push(event); - } - function addEventPoolingTo(EventConstructor) { - EventConstructor.getPooled = createOrGetPooledEvent; - EventConstructor.eventPool = []; - EventConstructor.release = releasePooledEvent; - } - var ResponderSyntheticEvent = SyntheticEvent.extend({ - touchHistory: function touchHistory() { - return null; - } - }); - function isStartish(topLevelType) { - return "topTouchStart" === topLevelType; - } - function isMoveish(topLevelType) { - return "topTouchMove" === topLevelType; - } - var startDependencies = ["topTouchStart"], - moveDependencies = ["topTouchMove"], - endDependencies = ["topTouchCancel", "topTouchEnd"], - touchBank = [], - touchHistory = { - touchBank: touchBank, - numberActiveTouches: 0, - indexOfSingleActiveTouch: -1, - mostRecentTimeStamp: 0 - }; - function timestampForTouch(touch) { - return touch.timeStamp || touch.timestamp; - } - function getTouchIdentifier(_ref) { - _ref = _ref.identifier; - if (null == _ref) throw Error("Touch object is missing identifier."); - return _ref; - } - function recordTouchStart(touch) { - var identifier = getTouchIdentifier(touch), - touchRecord = touchBank[identifier]; - touchRecord ? (touchRecord.touchActive = true, touchRecord.startPageX = touch.pageX, touchRecord.startPageY = touch.pageY, touchRecord.startTimeStamp = timestampForTouch(touch), touchRecord.currentPageX = touch.pageX, touchRecord.currentPageY = touch.pageY, touchRecord.currentTimeStamp = timestampForTouch(touch), touchRecord.previousPageX = touch.pageX, touchRecord.previousPageY = touch.pageY, touchRecord.previousTimeStamp = timestampForTouch(touch)) : (touchRecord = { - touchActive: true, - startPageX: touch.pageX, - startPageY: touch.pageY, - startTimeStamp: timestampForTouch(touch), - currentPageX: touch.pageX, - currentPageY: touch.pageY, - currentTimeStamp: timestampForTouch(touch), - previousPageX: touch.pageX, - previousPageY: touch.pageY, - previousTimeStamp: timestampForTouch(touch) - }, touchBank[identifier] = touchRecord); - touchHistory.mostRecentTimeStamp = timestampForTouch(touch); - } - function recordTouchMove(touch) { - var touchRecord = touchBank[getTouchIdentifier(touch)]; - touchRecord && (touchRecord.touchActive = true, touchRecord.previousPageX = touchRecord.currentPageX, touchRecord.previousPageY = touchRecord.currentPageY, touchRecord.previousTimeStamp = touchRecord.currentTimeStamp, touchRecord.currentPageX = touch.pageX, touchRecord.currentPageY = touch.pageY, touchRecord.currentTimeStamp = timestampForTouch(touch), touchHistory.mostRecentTimeStamp = timestampForTouch(touch)); - } - function recordTouchEnd(touch) { - var touchRecord = touchBank[getTouchIdentifier(touch)]; - touchRecord && (touchRecord.touchActive = false, touchRecord.previousPageX = touchRecord.currentPageX, touchRecord.previousPageY = touchRecord.currentPageY, touchRecord.previousTimeStamp = touchRecord.currentTimeStamp, touchRecord.currentPageX = touch.pageX, touchRecord.currentPageY = touch.pageY, touchRecord.currentTimeStamp = timestampForTouch(touch), touchHistory.mostRecentTimeStamp = timestampForTouch(touch)); - } - var instrumentationCallback, - ResponderTouchHistoryStore = { - instrument: function instrument(callback) { - instrumentationCallback = callback; - }, - recordTouchTrack: function recordTouchTrack(topLevelType, nativeEvent) { - null != instrumentationCallback && instrumentationCallback(topLevelType, nativeEvent); - if (isMoveish(topLevelType)) nativeEvent.changedTouches.forEach(recordTouchMove);else if (isStartish(topLevelType)) nativeEvent.changedTouches.forEach(recordTouchStart), touchHistory.numberActiveTouches = nativeEvent.touches.length, 1 === touchHistory.numberActiveTouches && (touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier);else if ("topTouchEnd" === topLevelType || "topTouchCancel" === topLevelType) if (nativeEvent.changedTouches.forEach(recordTouchEnd), touchHistory.numberActiveTouches = nativeEvent.touches.length, 1 === touchHistory.numberActiveTouches) for (topLevelType = 0; topLevelType < touchBank.length; topLevelType++) if (nativeEvent = touchBank[topLevelType], null != nativeEvent && nativeEvent.touchActive) { - touchHistory.indexOfSingleActiveTouch = topLevelType; - break; - } - }, - touchHistory: touchHistory - }; - function accumulate(current, next) { - if (null == next) throw Error("accumulate(...): Accumulated items must not be null or undefined."); - return null == current ? next : isArrayImpl(current) ? current.concat(next) : isArrayImpl(next) ? [current].concat(next) : [current, next]; - } - function accumulateInto(current, next) { - if (null == next) throw Error("accumulateInto(...): Accumulated items must not be null or undefined."); - if (null == current) return next; - if (isArrayImpl(current)) { - if (isArrayImpl(next)) return current.push.apply(current, next), current; - current.push(next); - return current; - } - return isArrayImpl(next) ? [current].concat(next) : [current, next]; - } - function forEachAccumulated(arr, cb, scope) { - Array.isArray(arr) ? arr.forEach(cb, scope) : arr && cb.call(scope, arr); - } - var responderInst = null, - trackedTouchCount = 0; - function changeResponder(nextResponderInst, blockHostResponder) { - var oldResponderInst = responderInst; - responderInst = nextResponderInst; - if (null !== ResponderEventPlugin.GlobalResponderHandler) ResponderEventPlugin.GlobalResponderHandler.onChange(oldResponderInst, nextResponderInst, blockHostResponder); - } - var eventTypes = { - startShouldSetResponder: { - phasedRegistrationNames: { - bubbled: "onStartShouldSetResponder", - captured: "onStartShouldSetResponderCapture" - }, - dependencies: startDependencies - }, - scrollShouldSetResponder: { - phasedRegistrationNames: { - bubbled: "onScrollShouldSetResponder", - captured: "onScrollShouldSetResponderCapture" - }, - dependencies: ["topScroll"] - }, - selectionChangeShouldSetResponder: { - phasedRegistrationNames: { - bubbled: "onSelectionChangeShouldSetResponder", - captured: "onSelectionChangeShouldSetResponderCapture" - }, - dependencies: ["topSelectionChange"] - }, - moveShouldSetResponder: { - phasedRegistrationNames: { - bubbled: "onMoveShouldSetResponder", - captured: "onMoveShouldSetResponderCapture" - }, - dependencies: moveDependencies - }, - responderStart: { - registrationName: "onResponderStart", - dependencies: startDependencies - }, - responderMove: { - registrationName: "onResponderMove", - dependencies: moveDependencies - }, - responderEnd: { - registrationName: "onResponderEnd", - dependencies: endDependencies - }, - responderRelease: { - registrationName: "onResponderRelease", - dependencies: endDependencies - }, - responderTerminationRequest: { - registrationName: "onResponderTerminationRequest", - dependencies: [] - }, - responderGrant: { - registrationName: "onResponderGrant", - dependencies: [] - }, - responderReject: { - registrationName: "onResponderReject", - dependencies: [] - }, - responderTerminate: { - registrationName: "onResponderTerminate", - dependencies: [] - } - }; - function getParent(inst) { - do inst = inst.return; while (inst && 5 !== inst.tag); - return inst ? inst : null; - } - function traverseTwoPhase(inst, fn, arg) { - for (var path = []; inst;) path.push(inst), inst = getParent(inst); - for (inst = path.length; 0 < inst--;) fn(path[inst], "captured", arg); - for (inst = 0; inst < path.length; inst++) fn(path[inst], "bubbled", arg); - } - function getListener(inst, registrationName) { - inst = inst.stateNode; - if (null === inst) return null; - inst = getFiberCurrentPropsFromNode(inst); - if (null === inst) return null; - if ((inst = inst[registrationName]) && "function" !== typeof inst) throw Error("Expected `" + registrationName + "` listener to be a function, instead got a value of `" + typeof inst + "` type."); - return inst; - } - function accumulateDirectionalDispatches(inst, phase, event) { - if (phase = getListener(inst, event.dispatchConfig.phasedRegistrationNames[phase])) event._dispatchListeners = accumulateInto(event._dispatchListeners, phase), event._dispatchInstances = accumulateInto(event._dispatchInstances, inst); - } - function accumulateDirectDispatchesSingle(event) { - if (event && event.dispatchConfig.registrationName) { - var inst = event._targetInst; - if (inst && event && event.dispatchConfig.registrationName) { - var listener = getListener(inst, event.dispatchConfig.registrationName); - listener && (event._dispatchListeners = accumulateInto(event._dispatchListeners, listener), event._dispatchInstances = accumulateInto(event._dispatchInstances, inst)); - } - } - } - function accumulateTwoPhaseDispatchesSingleSkipTarget(event) { - if (event && event.dispatchConfig.phasedRegistrationNames) { - var targetInst = event._targetInst; - targetInst = targetInst ? getParent(targetInst) : null; - traverseTwoPhase(targetInst, accumulateDirectionalDispatches, event); - } - } - function accumulateTwoPhaseDispatchesSingle(event) { - event && event.dispatchConfig.phasedRegistrationNames && traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event); - } - var ResponderEventPlugin = { - _getResponder: function _getResponder() { - return responderInst; - }, - eventTypes: eventTypes, - extractEvents: function extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget) { - if (isStartish(topLevelType)) trackedTouchCount += 1;else if ("topTouchEnd" === topLevelType || "topTouchCancel" === topLevelType) if (0 <= trackedTouchCount) --trackedTouchCount;else return null; - ResponderTouchHistoryStore.recordTouchTrack(topLevelType, nativeEvent); - if (targetInst && ("topScroll" === topLevelType && !nativeEvent.responderIgnoreScroll || 0 < trackedTouchCount && "topSelectionChange" === topLevelType || isStartish(topLevelType) || isMoveish(topLevelType))) { - var shouldSetEventType = isStartish(topLevelType) ? eventTypes.startShouldSetResponder : isMoveish(topLevelType) ? eventTypes.moveShouldSetResponder : "topSelectionChange" === topLevelType ? eventTypes.selectionChangeShouldSetResponder : eventTypes.scrollShouldSetResponder; - if (responderInst) b: { - var JSCompiler_temp = responderInst; - for (var depthA = 0, tempA = JSCompiler_temp; tempA; tempA = getParent(tempA)) depthA++; - tempA = 0; - for (var tempB = targetInst; tempB; tempB = getParent(tempB)) tempA++; - for (; 0 < depthA - tempA;) JSCompiler_temp = getParent(JSCompiler_temp), depthA--; - for (; 0 < tempA - depthA;) targetInst = getParent(targetInst), tempA--; - for (; depthA--;) { - if (JSCompiler_temp === targetInst || JSCompiler_temp === targetInst.alternate) break b; - JSCompiler_temp = getParent(JSCompiler_temp); - targetInst = getParent(targetInst); - } - JSCompiler_temp = null; - } else JSCompiler_temp = targetInst; - targetInst = JSCompiler_temp; - JSCompiler_temp = targetInst === responderInst; - shouldSetEventType = ResponderSyntheticEvent.getPooled(shouldSetEventType, targetInst, nativeEvent, nativeEventTarget); - shouldSetEventType.touchHistory = ResponderTouchHistoryStore.touchHistory; - JSCompiler_temp ? forEachAccumulated(shouldSetEventType, accumulateTwoPhaseDispatchesSingleSkipTarget) : forEachAccumulated(shouldSetEventType, accumulateTwoPhaseDispatchesSingle); - b: { - JSCompiler_temp = shouldSetEventType._dispatchListeners; - targetInst = shouldSetEventType._dispatchInstances; - if (isArrayImpl(JSCompiler_temp)) for (depthA = 0; depthA < JSCompiler_temp.length && !shouldSetEventType.isPropagationStopped(); depthA++) { - if (JSCompiler_temp[depthA](shouldSetEventType, targetInst[depthA])) { - JSCompiler_temp = targetInst[depthA]; - break b; - } - } else if (JSCompiler_temp && JSCompiler_temp(shouldSetEventType, targetInst)) { - JSCompiler_temp = targetInst; - break b; - } - JSCompiler_temp = null; - } - shouldSetEventType._dispatchInstances = null; - shouldSetEventType._dispatchListeners = null; - shouldSetEventType.isPersistent() || shouldSetEventType.constructor.release(shouldSetEventType); - if (JSCompiler_temp && JSCompiler_temp !== responderInst) { - if (shouldSetEventType = ResponderSyntheticEvent.getPooled(eventTypes.responderGrant, JSCompiler_temp, nativeEvent, nativeEventTarget), shouldSetEventType.touchHistory = ResponderTouchHistoryStore.touchHistory, forEachAccumulated(shouldSetEventType, accumulateDirectDispatchesSingle), targetInst = true === executeDirectDispatch(shouldSetEventType), responderInst) { - if (depthA = ResponderSyntheticEvent.getPooled(eventTypes.responderTerminationRequest, responderInst, nativeEvent, nativeEventTarget), depthA.touchHistory = ResponderTouchHistoryStore.touchHistory, forEachAccumulated(depthA, accumulateDirectDispatchesSingle), tempA = !depthA._dispatchListeners || executeDirectDispatch(depthA), depthA.isPersistent() || depthA.constructor.release(depthA), tempA) { - depthA = ResponderSyntheticEvent.getPooled(eventTypes.responderTerminate, responderInst, nativeEvent, nativeEventTarget); - depthA.touchHistory = ResponderTouchHistoryStore.touchHistory; - forEachAccumulated(depthA, accumulateDirectDispatchesSingle); - var JSCompiler_temp$jscomp$0 = accumulate(JSCompiler_temp$jscomp$0, [shouldSetEventType, depthA]); - changeResponder(JSCompiler_temp, targetInst); - } else shouldSetEventType = ResponderSyntheticEvent.getPooled(eventTypes.responderReject, JSCompiler_temp, nativeEvent, nativeEventTarget), shouldSetEventType.touchHistory = ResponderTouchHistoryStore.touchHistory, forEachAccumulated(shouldSetEventType, accumulateDirectDispatchesSingle), JSCompiler_temp$jscomp$0 = accumulate(JSCompiler_temp$jscomp$0, shouldSetEventType); - } else JSCompiler_temp$jscomp$0 = accumulate(JSCompiler_temp$jscomp$0, shouldSetEventType), changeResponder(JSCompiler_temp, targetInst); - } else JSCompiler_temp$jscomp$0 = null; - } else JSCompiler_temp$jscomp$0 = null; - shouldSetEventType = responderInst && isStartish(topLevelType); - JSCompiler_temp = responderInst && isMoveish(topLevelType); - targetInst = responderInst && ("topTouchEnd" === topLevelType || "topTouchCancel" === topLevelType); - if (shouldSetEventType = shouldSetEventType ? eventTypes.responderStart : JSCompiler_temp ? eventTypes.responderMove : targetInst ? eventTypes.responderEnd : null) shouldSetEventType = ResponderSyntheticEvent.getPooled(shouldSetEventType, responderInst, nativeEvent, nativeEventTarget), shouldSetEventType.touchHistory = ResponderTouchHistoryStore.touchHistory, forEachAccumulated(shouldSetEventType, accumulateDirectDispatchesSingle), JSCompiler_temp$jscomp$0 = accumulate(JSCompiler_temp$jscomp$0, shouldSetEventType); - shouldSetEventType = responderInst && "topTouchCancel" === topLevelType; - if (topLevelType = responderInst && !shouldSetEventType && ("topTouchEnd" === topLevelType || "topTouchCancel" === topLevelType)) a: { - if ((topLevelType = nativeEvent.touches) && 0 !== topLevelType.length) for (JSCompiler_temp = 0; JSCompiler_temp < topLevelType.length; JSCompiler_temp++) if (targetInst = topLevelType[JSCompiler_temp].target, null !== targetInst && undefined !== targetInst && 0 !== targetInst) { - depthA = getInstanceFromNode(targetInst); - b: { - for (targetInst = responderInst; depthA;) { - if (targetInst === depthA || targetInst === depthA.alternate) { - targetInst = true; - break b; - } - depthA = getParent(depthA); - } - targetInst = false; - } - if (targetInst) { - topLevelType = false; - break a; - } - } - topLevelType = true; - } - if (topLevelType = shouldSetEventType ? eventTypes.responderTerminate : topLevelType ? eventTypes.responderRelease : null) nativeEvent = ResponderSyntheticEvent.getPooled(topLevelType, responderInst, nativeEvent, nativeEventTarget), nativeEvent.touchHistory = ResponderTouchHistoryStore.touchHistory, forEachAccumulated(nativeEvent, accumulateDirectDispatchesSingle), JSCompiler_temp$jscomp$0 = accumulate(JSCompiler_temp$jscomp$0, nativeEvent), changeResponder(null); - return JSCompiler_temp$jscomp$0; - }, - GlobalResponderHandler: null, - injection: { - injectGlobalResponderHandler: function injectGlobalResponderHandler(GlobalResponderHandler) { - ResponderEventPlugin.GlobalResponderHandler = GlobalResponderHandler; - } - } - }, - eventPluginOrder = null, - namesToPlugins = {}; - function recomputePluginOrdering() { - if (eventPluginOrder) for (var pluginName in namesToPlugins) { - var pluginModule = namesToPlugins[pluginName], - pluginIndex = eventPluginOrder.indexOf(pluginName); - if (-1 >= pluginIndex) throw Error("EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `" + (pluginName + "`.")); - if (!plugins[pluginIndex]) { - if (!pluginModule.extractEvents) throw Error("EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `" + (pluginName + "` does not.")); - plugins[pluginIndex] = pluginModule; - pluginIndex = pluginModule.eventTypes; - for (var eventName in pluginIndex) { - var JSCompiler_inline_result = undefined; - var dispatchConfig = pluginIndex[eventName], - eventName$jscomp$0 = eventName; - if (eventNameDispatchConfigs.hasOwnProperty(eventName$jscomp$0)) throw Error("EventPluginRegistry: More than one plugin attempted to publish the same event name, `" + (eventName$jscomp$0 + "`.")); - eventNameDispatchConfigs[eventName$jscomp$0] = dispatchConfig; - var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames; - if (phasedRegistrationNames) { - for (JSCompiler_inline_result in phasedRegistrationNames) phasedRegistrationNames.hasOwnProperty(JSCompiler_inline_result) && publishRegistrationName(phasedRegistrationNames[JSCompiler_inline_result], pluginModule, eventName$jscomp$0); - JSCompiler_inline_result = true; - } else dispatchConfig.registrationName ? (publishRegistrationName(dispatchConfig.registrationName, pluginModule, eventName$jscomp$0), JSCompiler_inline_result = true) : JSCompiler_inline_result = false; - if (!JSCompiler_inline_result) throw Error("EventPluginRegistry: Failed to publish event `" + eventName + "` for plugin `" + pluginName + "`."); - } - } - } - } - function publishRegistrationName(registrationName, pluginModule) { - if (registrationNameModules[registrationName]) throw Error("EventPluginRegistry: More than one plugin attempted to publish the same registration name, `" + (registrationName + "`.")); - registrationNameModules[registrationName] = pluginModule; - } - var plugins = [], - eventNameDispatchConfigs = {}, - registrationNameModules = {}; - function getListeners(inst, registrationName, phase, dispatchToImperativeListeners) { - var stateNode = inst.stateNode; - if (null === stateNode) return null; - inst = getFiberCurrentPropsFromNode(stateNode); - if (null === inst) return null; - if ((inst = inst[registrationName]) && "function" !== typeof inst) throw Error("Expected `" + registrationName + "` listener to be a function, instead got a value of `" + typeof inst + "` type."); - if (!(dispatchToImperativeListeners && stateNode.canonical && stateNode.canonical._eventListeners)) return inst; - var listeners = []; - inst && listeners.push(inst); - var requestedPhaseIsCapture = "captured" === phase, - mangledImperativeRegistrationName = requestedPhaseIsCapture ? "rn:" + registrationName.replace(/Capture$/, "") : "rn:" + registrationName; - stateNode.canonical._eventListeners[mangledImperativeRegistrationName] && 0 < stateNode.canonical._eventListeners[mangledImperativeRegistrationName].length && stateNode.canonical._eventListeners[mangledImperativeRegistrationName].forEach(function (listenerObj) { - if ((null != listenerObj.options.capture && listenerObj.options.capture) === requestedPhaseIsCapture) { - var listenerFnWrapper = function listenerFnWrapper(syntheticEvent) { - var eventInst = new (_$$_REQUIRE(_dependencyMap[2]).CustomEvent)(mangledImperativeRegistrationName, { - detail: syntheticEvent.nativeEvent - }); - eventInst.isTrusted = true; - eventInst.setSyntheticEvent(syntheticEvent); - for (var _len = arguments.length, args = Array(1 < _len ? _len - 1 : 0), _key = 1; _key < _len; _key++) args[_key - 1] = arguments[_key]; - listenerObj.listener.apply(listenerObj, [eventInst].concat(args)); - }; - listenerObj.options.once ? listeners.push(function () { - stateNode.canonical.removeEventListener_unstable(mangledImperativeRegistrationName, listenerObj.listener, listenerObj.capture); - listenerObj.invalidated || (listenerObj.invalidated = true, listenerObj.listener.apply(listenerObj, arguments)); - }) : listeners.push(listenerFnWrapper); - } - }); - return 0 === listeners.length ? null : 1 === listeners.length ? listeners[0] : listeners; - } - var customBubblingEventTypes = _$$_REQUIRE(_dependencyMap[2]).ReactNativeViewConfigRegistry.customBubblingEventTypes, - customDirectEventTypes = _$$_REQUIRE(_dependencyMap[2]).ReactNativeViewConfigRegistry.customDirectEventTypes; - function accumulateListenersAndInstances(inst, event, listeners) { - var listenersLength = listeners ? isArrayImpl(listeners) ? listeners.length : 1 : 0; - if (0 < listenersLength) if (event._dispatchListeners = accumulateInto(event._dispatchListeners, listeners), null == event._dispatchInstances && 1 === listenersLength) event._dispatchInstances = inst;else for (event._dispatchInstances = event._dispatchInstances || [], isArrayImpl(event._dispatchInstances) || (event._dispatchInstances = [event._dispatchInstances]), listeners = 0; listeners < listenersLength; listeners++) event._dispatchInstances.push(inst); - } - function accumulateDirectionalDispatches$1(inst, phase, event) { - phase = getListeners(inst, event.dispatchConfig.phasedRegistrationNames[phase], phase, true); - accumulateListenersAndInstances(inst, event, phase); - } - function traverseTwoPhase$1(inst, fn, arg, skipBubbling) { - for (var path = []; inst;) { - path.push(inst); - do inst = inst.return; while (inst && 5 !== inst.tag); - inst = inst ? inst : null; - } - for (inst = path.length; 0 < inst--;) fn(path[inst], "captured", arg); - if (skipBubbling) fn(path[0], "bubbled", arg);else for (inst = 0; inst < path.length; inst++) fn(path[inst], "bubbled", arg); - } - function accumulateTwoPhaseDispatchesSingle$1(event) { - event && event.dispatchConfig.phasedRegistrationNames && traverseTwoPhase$1(event._targetInst, accumulateDirectionalDispatches$1, event, false); - } - function accumulateDirectDispatchesSingle$1(event) { - if (event && event.dispatchConfig.registrationName) { - var inst = event._targetInst; - if (inst && event && event.dispatchConfig.registrationName) { - var listeners = getListeners(inst, event.dispatchConfig.registrationName, "bubbled", false); - accumulateListenersAndInstances(inst, event, listeners); - } - } - } - if (eventPluginOrder) throw Error("EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React."); - eventPluginOrder = Array.prototype.slice.call(["ResponderEventPlugin", "ReactNativeBridgeEventPlugin"]); - recomputePluginOrdering(); - var injectedNamesToPlugins$jscomp$inline_229 = { - ResponderEventPlugin: ResponderEventPlugin, - ReactNativeBridgeEventPlugin: { - eventTypes: {}, - extractEvents: function extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget) { - if (null == targetInst) return null; - var bubbleDispatchConfig = customBubblingEventTypes[topLevelType], - directDispatchConfig = customDirectEventTypes[topLevelType]; - if (!bubbleDispatchConfig && !directDispatchConfig) throw Error('Unsupported top level event type "' + topLevelType + '" dispatched'); - topLevelType = SyntheticEvent.getPooled(bubbleDispatchConfig || directDispatchConfig, targetInst, nativeEvent, nativeEventTarget); - if (bubbleDispatchConfig) null != topLevelType && null != topLevelType.dispatchConfig.phasedRegistrationNames && topLevelType.dispatchConfig.phasedRegistrationNames.skipBubbling ? topLevelType && topLevelType.dispatchConfig.phasedRegistrationNames && traverseTwoPhase$1(topLevelType._targetInst, accumulateDirectionalDispatches$1, topLevelType, true) : forEachAccumulated(topLevelType, accumulateTwoPhaseDispatchesSingle$1);else if (directDispatchConfig) forEachAccumulated(topLevelType, accumulateDirectDispatchesSingle$1);else return null; - return topLevelType; - } - } - }, - isOrderingDirty$jscomp$inline_230 = false, - pluginName$jscomp$inline_231; - for (pluginName$jscomp$inline_231 in injectedNamesToPlugins$jscomp$inline_229) if (injectedNamesToPlugins$jscomp$inline_229.hasOwnProperty(pluginName$jscomp$inline_231)) { - var pluginModule$jscomp$inline_232 = injectedNamesToPlugins$jscomp$inline_229[pluginName$jscomp$inline_231]; - if (!namesToPlugins.hasOwnProperty(pluginName$jscomp$inline_231) || namesToPlugins[pluginName$jscomp$inline_231] !== pluginModule$jscomp$inline_232) { - if (namesToPlugins[pluginName$jscomp$inline_231]) throw Error("EventPluginRegistry: Cannot inject two different event plugins using the same name, `" + (pluginName$jscomp$inline_231 + "`.")); - namesToPlugins[pluginName$jscomp$inline_231] = pluginModule$jscomp$inline_232; - isOrderingDirty$jscomp$inline_230 = true; - } - } - isOrderingDirty$jscomp$inline_230 && recomputePluginOrdering(); - var instanceCache = new Map(), - instanceProps = new Map(); - function getInstanceFromTag(tag) { - return instanceCache.get(tag) || null; - } - function batchedUpdatesImpl(fn, bookkeeping) { - return fn(bookkeeping); - } - var isInsideEventHandler = false; - function batchedUpdates(fn, bookkeeping) { - if (isInsideEventHandler) return fn(bookkeeping); - isInsideEventHandler = true; - try { - return batchedUpdatesImpl(fn, bookkeeping); - } finally { - isInsideEventHandler = false; - } - } - var eventQueue = null; - function executeDispatchesAndReleaseTopLevel(e) { - if (e) { - var dispatchListeners = e._dispatchListeners, - dispatchInstances = e._dispatchInstances; - if (isArrayImpl(dispatchListeners)) for (var i = 0; i < dispatchListeners.length && !e.isPropagationStopped(); i++) executeDispatch(e, dispatchListeners[i], dispatchInstances[i]);else dispatchListeners && executeDispatch(e, dispatchListeners, dispatchInstances); - e._dispatchListeners = null; - e._dispatchInstances = null; - e.isPersistent() || e.constructor.release(e); - } - } - var EMPTY_NATIVE_EVENT = {}; - function _receiveRootNodeIDEvent(rootNodeID, topLevelType, nativeEventParam) { - var nativeEvent = nativeEventParam || EMPTY_NATIVE_EVENT, - inst = getInstanceFromTag(rootNodeID), - target = null; - null != inst && (target = inst.stateNode); - batchedUpdates(function () { - var JSCompiler_inline_result = target; - for (var events = null, legacyPlugins = plugins, i = 0; i < legacyPlugins.length; i++) { - var possiblePlugin = legacyPlugins[i]; - possiblePlugin && (possiblePlugin = possiblePlugin.extractEvents(topLevelType, inst, nativeEvent, JSCompiler_inline_result)) && (events = accumulateInto(events, possiblePlugin)); - } - JSCompiler_inline_result = events; - null !== JSCompiler_inline_result && (eventQueue = accumulateInto(eventQueue, JSCompiler_inline_result)); - JSCompiler_inline_result = eventQueue; - eventQueue = null; - if (JSCompiler_inline_result) { - forEachAccumulated(JSCompiler_inline_result, executeDispatchesAndReleaseTopLevel); - if (eventQueue) throw Error("processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented."); - if (hasRethrowError) throw JSCompiler_inline_result = rethrowError, hasRethrowError = false, rethrowError = null, JSCompiler_inline_result; - } - }); - } - _$$_REQUIRE(_dependencyMap[2]).RCTEventEmitter.register({ - receiveEvent: function receiveEvent(rootNodeID, topLevelType, nativeEventParam) { - _receiveRootNodeIDEvent(rootNodeID, topLevelType, nativeEventParam); - }, - receiveTouches: function receiveTouches(eventTopLevelType, touches, changedIndices) { - if ("topTouchEnd" === eventTopLevelType || "topTouchCancel" === eventTopLevelType) { - var JSCompiler_temp = []; - for (var i = 0; i < changedIndices.length; i++) { - var index$0 = changedIndices[i]; - JSCompiler_temp.push(touches[index$0]); - touches[index$0] = null; - } - for (i = changedIndices = 0; i < touches.length; i++) index$0 = touches[i], null !== index$0 && (touches[changedIndices++] = index$0); - touches.length = changedIndices; - } else for (JSCompiler_temp = [], i = 0; i < changedIndices.length; i++) JSCompiler_temp.push(touches[changedIndices[i]]); - for (changedIndices = 0; changedIndices < JSCompiler_temp.length; changedIndices++) { - i = JSCompiler_temp[changedIndices]; - i.changedTouches = JSCompiler_temp; - i.touches = touches; - index$0 = null; - var target = i.target; - null === target || undefined === target || 1 > target || (index$0 = target); - _receiveRootNodeIDEvent(index$0, eventTopLevelType, i); - } - } - }); - getFiberCurrentPropsFromNode = function getFiberCurrentPropsFromNode(stateNode) { - return instanceProps.get(stateNode._nativeTag) || null; - }; - getInstanceFromNode = getInstanceFromTag; - getNodeFromInstance = function getNodeFromInstance(inst) { - inst = inst.stateNode; - var tag = inst._nativeTag; - undefined === tag && (inst = inst.canonical, tag = inst._nativeTag); - if (!tag) throw Error("All native instances should have a tag."); - return inst; - }; - ResponderEventPlugin.injection.injectGlobalResponderHandler({ - onChange: function onChange(from, to, blockNativeResponder) { - null !== to ? _$$_REQUIRE(_dependencyMap[2]).UIManager.setJSResponder(to.stateNode._nativeTag, blockNativeResponder) : _$$_REQUIRE(_dependencyMap[2]).UIManager.clearJSResponder(); - } - }); - var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, - REACT_ELEMENT_TYPE = Symbol.for("react.element"), - REACT_PORTAL_TYPE = Symbol.for("react.portal"), - REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), - REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), - REACT_PROFILER_TYPE = Symbol.for("react.profiler"), - REACT_PROVIDER_TYPE = Symbol.for("react.provider"), - REACT_CONTEXT_TYPE = Symbol.for("react.context"), - REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), - REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), - REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"), - REACT_MEMO_TYPE = Symbol.for("react.memo"), - REACT_LAZY_TYPE = Symbol.for("react.lazy"); - Symbol.for("react.scope"); - Symbol.for("react.debug_trace_mode"); - var REACT_OFFSCREEN_TYPE = Symbol.for("react.offscreen"); - Symbol.for("react.legacy_hidden"); - Symbol.for("react.cache"); - Symbol.for("react.tracing_marker"); - var MAYBE_ITERATOR_SYMBOL = Symbol.iterator; - function getIteratorFn(maybeIterable) { - if (null === maybeIterable || "object" !== typeof maybeIterable) return null; - maybeIterable = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable["@@iterator"]; - return "function" === typeof maybeIterable ? maybeIterable : null; - } - function getComponentNameFromType(type) { - if (null == type) return null; - if ("function" === typeof type) return type.displayName || type.name || null; - if ("string" === typeof type) return type; - switch (type) { - case REACT_FRAGMENT_TYPE: - return "Fragment"; - case REACT_PORTAL_TYPE: - return "Portal"; - case REACT_PROFILER_TYPE: - return "Profiler"; - case REACT_STRICT_MODE_TYPE: - return "StrictMode"; - case REACT_SUSPENSE_TYPE: - return "Suspense"; - case REACT_SUSPENSE_LIST_TYPE: - return "SuspenseList"; - } - if ("object" === typeof type) switch (type.$$typeof) { - case REACT_CONTEXT_TYPE: - return (type.displayName || "Context") + ".Consumer"; - case REACT_PROVIDER_TYPE: - return (type._context.displayName || "Context") + ".Provider"; - case REACT_FORWARD_REF_TYPE: - var innerType = type.render; - type = type.displayName; - type || (type = innerType.displayName || innerType.name || "", type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"); - return type; - case REACT_MEMO_TYPE: - return innerType = type.displayName || null, null !== innerType ? innerType : getComponentNameFromType(type.type) || "Memo"; - case REACT_LAZY_TYPE: - innerType = type._payload; - type = type._init; - try { - return getComponentNameFromType(type(innerType)); - } catch (x) {} - } - return null; - } - function getComponentNameFromFiber(fiber) { - var type = fiber.type; - switch (fiber.tag) { - case 24: - return "Cache"; - case 9: - return (type.displayName || "Context") + ".Consumer"; - case 10: - return (type._context.displayName || "Context") + ".Provider"; - case 18: - return "DehydratedFragment"; - case 11: - return fiber = type.render, fiber = fiber.displayName || fiber.name || "", type.displayName || ("" !== fiber ? "ForwardRef(" + fiber + ")" : "ForwardRef"); - case 7: - return "Fragment"; - case 5: - return type; - case 4: - return "Portal"; - case 3: - return "Root"; - case 6: - return "Text"; - case 16: - return getComponentNameFromType(type); - case 8: - return type === REACT_STRICT_MODE_TYPE ? "StrictMode" : "Mode"; - case 22: - return "Offscreen"; - case 12: - return "Profiler"; - case 21: - return "Scope"; - case 13: - return "Suspense"; - case 19: - return "SuspenseList"; - case 25: - return "TracingMarker"; - case 1: - case 0: - case 17: - case 2: - case 14: - case 15: - if ("function" === typeof type) return type.displayName || type.name || null; - if ("string" === typeof type) return type; - } - return null; - } - function getNearestMountedFiber(fiber) { - var node = fiber, - nearestMounted = fiber; - if (fiber.alternate) for (; node.return;) node = node.return;else { - fiber = node; - do node = fiber, 0 !== (node.flags & 4098) && (nearestMounted = node.return), fiber = node.return; while (fiber); - } - return 3 === node.tag ? nearestMounted : null; - } - function assertIsMounted(fiber) { - if (getNearestMountedFiber(fiber) !== fiber) throw Error("Unable to find node on an unmounted component."); - } - function findCurrentFiberUsingSlowPath(fiber) { - var alternate = fiber.alternate; - if (!alternate) { - alternate = getNearestMountedFiber(fiber); - if (null === alternate) throw Error("Unable to find node on an unmounted component."); - return alternate !== fiber ? null : fiber; - } - for (var a = fiber, b = alternate;;) { - var parentA = a.return; - if (null === parentA) break; - var parentB = parentA.alternate; - if (null === parentB) { - b = parentA.return; - if (null !== b) { - a = b; - continue; - } - break; - } - if (parentA.child === parentB.child) { - for (parentB = parentA.child; parentB;) { - if (parentB === a) return assertIsMounted(parentA), fiber; - if (parentB === b) return assertIsMounted(parentA), alternate; - parentB = parentB.sibling; - } - throw Error("Unable to find node on an unmounted component."); - } - if (a.return !== b.return) a = parentA, b = parentB;else { - for (var didFindChild = false, child$1 = parentA.child; child$1;) { - if (child$1 === a) { - didFindChild = true; - a = parentA; - b = parentB; - break; - } - if (child$1 === b) { - didFindChild = true; - b = parentA; - a = parentB; - break; - } - child$1 = child$1.sibling; - } - if (!didFindChild) { - for (child$1 = parentB.child; child$1;) { - if (child$1 === a) { - didFindChild = true; - a = parentB; - b = parentA; - break; - } - if (child$1 === b) { - didFindChild = true; - b = parentB; - a = parentA; - break; - } - child$1 = child$1.sibling; - } - if (!didFindChild) throw Error("Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue."); - } - } - if (a.alternate !== b) throw Error("Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue."); - } - if (3 !== a.tag) throw Error("Unable to find node on an unmounted component."); - return a.stateNode.current === a ? fiber : alternate; - } - function findCurrentHostFiber(parent) { - parent = findCurrentFiberUsingSlowPath(parent); - return null !== parent ? findCurrentHostFiberImpl(parent) : null; - } - function findCurrentHostFiberImpl(node) { - if (5 === node.tag || 6 === node.tag) return node; - for (node = node.child; null !== node;) { - var match = findCurrentHostFiberImpl(node); - if (null !== match) return match; - node = node.sibling; - } - return null; - } - var emptyObject = {}, - removedKeys = null, - removedKeyCount = 0, - deepDifferOptions = { - unsafelyIgnoreFunctions: true - }; - function defaultDiffer(prevProp, nextProp) { - return "object" !== typeof nextProp || null === nextProp ? true : _$$_REQUIRE(_dependencyMap[2]).deepDiffer(prevProp, nextProp, deepDifferOptions); - } - function restoreDeletedValuesInNestedArray(updatePayload, node, validAttributes) { - if (isArrayImpl(node)) for (var i = node.length; i-- && 0 < removedKeyCount;) restoreDeletedValuesInNestedArray(updatePayload, node[i], validAttributes);else if (node && 0 < removedKeyCount) for (i in removedKeys) if (removedKeys[i]) { - var nextProp = node[i]; - if (undefined !== nextProp) { - var attributeConfig = validAttributes[i]; - if (attributeConfig) { - "function" === typeof nextProp && (nextProp = true); - "undefined" === typeof nextProp && (nextProp = null); - if ("object" !== typeof attributeConfig) updatePayload[i] = nextProp;else if ("function" === typeof attributeConfig.diff || "function" === typeof attributeConfig.process) nextProp = "function" === typeof attributeConfig.process ? attributeConfig.process(nextProp) : nextProp, updatePayload[i] = nextProp; - removedKeys[i] = false; - removedKeyCount--; - } - } - } - } - function diffNestedProperty(updatePayload, prevProp, nextProp, validAttributes) { - if (!updatePayload && prevProp === nextProp) return updatePayload; - if (!prevProp || !nextProp) return nextProp ? addNestedProperty(updatePayload, nextProp, validAttributes) : prevProp ? clearNestedProperty(updatePayload, prevProp, validAttributes) : updatePayload; - if (!isArrayImpl(prevProp) && !isArrayImpl(nextProp)) return diffProperties(updatePayload, prevProp, nextProp, validAttributes); - if (isArrayImpl(prevProp) && isArrayImpl(nextProp)) { - var minLength = prevProp.length < nextProp.length ? prevProp.length : nextProp.length, - i; - for (i = 0; i < minLength; i++) updatePayload = diffNestedProperty(updatePayload, prevProp[i], nextProp[i], validAttributes); - for (; i < prevProp.length; i++) updatePayload = clearNestedProperty(updatePayload, prevProp[i], validAttributes); - for (; i < nextProp.length; i++) updatePayload = addNestedProperty(updatePayload, nextProp[i], validAttributes); - return updatePayload; - } - return isArrayImpl(prevProp) ? diffProperties(updatePayload, _$$_REQUIRE(_dependencyMap[2]).flattenStyle(prevProp), nextProp, validAttributes) : diffProperties(updatePayload, prevProp, _$$_REQUIRE(_dependencyMap[2]).flattenStyle(nextProp), validAttributes); - } - function addNestedProperty(updatePayload, nextProp, validAttributes) { - if (!nextProp) return updatePayload; - if (!isArrayImpl(nextProp)) return diffProperties(updatePayload, emptyObject, nextProp, validAttributes); - for (var i = 0; i < nextProp.length; i++) updatePayload = addNestedProperty(updatePayload, nextProp[i], validAttributes); - return updatePayload; - } - function clearNestedProperty(updatePayload, prevProp, validAttributes) { - if (!prevProp) return updatePayload; - if (!isArrayImpl(prevProp)) return diffProperties(updatePayload, prevProp, emptyObject, validAttributes); - for (var i = 0; i < prevProp.length; i++) updatePayload = clearNestedProperty(updatePayload, prevProp[i], validAttributes); - return updatePayload; - } - function diffProperties(updatePayload, prevProps, nextProps, validAttributes) { - var attributeConfig, propKey; - for (propKey in nextProps) if (attributeConfig = validAttributes[propKey]) { - var prevProp = prevProps[propKey]; - var nextProp = nextProps[propKey]; - "function" === typeof nextProp && (nextProp = true, "function" === typeof prevProp && (prevProp = true)); - "undefined" === typeof nextProp && (nextProp = null, "undefined" === typeof prevProp && (prevProp = null)); - removedKeys && (removedKeys[propKey] = false); - if (updatePayload && undefined !== updatePayload[propKey]) { - if ("object" !== typeof attributeConfig) updatePayload[propKey] = nextProp;else { - if ("function" === typeof attributeConfig.diff || "function" === typeof attributeConfig.process) attributeConfig = "function" === typeof attributeConfig.process ? attributeConfig.process(nextProp) : nextProp, updatePayload[propKey] = attributeConfig; - } - } else if (prevProp !== nextProp) if ("object" !== typeof attributeConfig) defaultDiffer(prevProp, nextProp) && ((updatePayload || (updatePayload = {}))[propKey] = nextProp);else if ("function" === typeof attributeConfig.diff || "function" === typeof attributeConfig.process) { - if (undefined === prevProp || ("function" === typeof attributeConfig.diff ? attributeConfig.diff(prevProp, nextProp) : defaultDiffer(prevProp, nextProp))) attributeConfig = "function" === typeof attributeConfig.process ? attributeConfig.process(nextProp) : nextProp, (updatePayload || (updatePayload = {}))[propKey] = attributeConfig; - } else removedKeys = null, removedKeyCount = 0, updatePayload = diffNestedProperty(updatePayload, prevProp, nextProp, attributeConfig), 0 < removedKeyCount && updatePayload && (restoreDeletedValuesInNestedArray(updatePayload, nextProp, attributeConfig), removedKeys = null); - } - for (var propKey$3 in prevProps) undefined === nextProps[propKey$3] && (!(attributeConfig = validAttributes[propKey$3]) || updatePayload && undefined !== updatePayload[propKey$3] || (prevProp = prevProps[propKey$3], undefined !== prevProp && ("object" !== typeof attributeConfig || "function" === typeof attributeConfig.diff || "function" === typeof attributeConfig.process ? ((updatePayload || (updatePayload = {}))[propKey$3] = null, removedKeys || (removedKeys = {}), removedKeys[propKey$3] || (removedKeys[propKey$3] = true, removedKeyCount++)) : updatePayload = clearNestedProperty(updatePayload, prevProp, attributeConfig)))); - return updatePayload; - } - function mountSafeCallback_NOT_REALLY_SAFE(context, callback) { - return function () { - if (callback && ("boolean" !== typeof context.__isMounted || context.__isMounted)) return callback.apply(context, arguments); - }; - } - var ReactNativeFiberHostComponent = function () { - function ReactNativeFiberHostComponent(tag, viewConfig) { - this._nativeTag = tag; - this._children = []; - this.viewConfig = viewConfig; - } - var _proto = ReactNativeFiberHostComponent.prototype; - _proto.blur = function () { - _$$_REQUIRE(_dependencyMap[2]).TextInputState.blurTextInput(this); - }; - _proto.focus = function () { - _$$_REQUIRE(_dependencyMap[2]).TextInputState.focusTextInput(this); - }; - _proto.measure = function (callback) { - _$$_REQUIRE(_dependencyMap[2]).UIManager.measure(this._nativeTag, mountSafeCallback_NOT_REALLY_SAFE(this, callback)); - }; - _proto.measureInWindow = function (callback) { - _$$_REQUIRE(_dependencyMap[2]).UIManager.measureInWindow(this._nativeTag, mountSafeCallback_NOT_REALLY_SAFE(this, callback)); - }; - _proto.measureLayout = function (relativeToNativeNode, onSuccess, onFail) { - if ("number" === typeof relativeToNativeNode) var relativeNode = relativeToNativeNode;else relativeToNativeNode._nativeTag && (relativeNode = relativeToNativeNode._nativeTag); - null != relativeNode && _$$_REQUIRE(_dependencyMap[2]).UIManager.measureLayout(this._nativeTag, relativeNode, mountSafeCallback_NOT_REALLY_SAFE(this, onFail), mountSafeCallback_NOT_REALLY_SAFE(this, onSuccess)); - }; - _proto.setNativeProps = function (nativeProps) { - nativeProps = diffProperties(null, emptyObject, nativeProps, this.viewConfig.validAttributes); - null != nativeProps && _$$_REQUIRE(_dependencyMap[2]).UIManager.updateView(this._nativeTag, this.viewConfig.uiViewClassName, nativeProps); - }; - return ReactNativeFiberHostComponent; - }(), - rendererID = null, - injectedHook = null; - function onCommitRoot(root) { - if (injectedHook && "function" === typeof injectedHook.onCommitFiberRoot) try { - injectedHook.onCommitFiberRoot(rendererID, root, undefined, 128 === (root.current.flags & 128)); - } catch (err) {} - } - var clz32 = Math.clz32 ? Math.clz32 : clz32Fallback, - log = Math.log, - LN2 = Math.LN2; - function clz32Fallback(x) { - x >>>= 0; - return 0 === x ? 32 : 31 - (log(x) / LN2 | 0) | 0; - } - var nextTransitionLane = 64, - nextRetryLane = 4194304; - function getHighestPriorityLanes(lanes) { - switch (lanes & -lanes) { - case 1: - return 1; - case 2: - return 2; - case 4: - return 4; - case 8: - return 8; - case 16: - return 16; - case 32: - return 32; - case 64: - case 128: - case 256: - case 512: - case 1024: - case 2048: - case 4096: - case 8192: - case 16384: - case 32768: - case 65536: - case 131072: - case 262144: - case 524288: - case 1048576: - case 2097152: - return lanes & 4194240; - case 4194304: - case 8388608: - case 16777216: - case 33554432: - case 67108864: - return lanes & 130023424; - case 134217728: - return 134217728; - case 268435456: - return 268435456; - case 536870912: - return 536870912; - case 1073741824: - return 1073741824; - default: - return lanes; - } - } - function getNextLanes(root, wipLanes) { - var pendingLanes = root.pendingLanes; - if (0 === pendingLanes) return 0; - var nextLanes = 0, - suspendedLanes = root.suspendedLanes, - pingedLanes = root.pingedLanes, - nonIdlePendingLanes = pendingLanes & 268435455; - if (0 !== nonIdlePendingLanes) { - var nonIdleUnblockedLanes = nonIdlePendingLanes & ~suspendedLanes; - 0 !== nonIdleUnblockedLanes ? nextLanes = getHighestPriorityLanes(nonIdleUnblockedLanes) : (pingedLanes &= nonIdlePendingLanes, 0 !== pingedLanes && (nextLanes = getHighestPriorityLanes(pingedLanes))); - } else nonIdlePendingLanes = pendingLanes & ~suspendedLanes, 0 !== nonIdlePendingLanes ? nextLanes = getHighestPriorityLanes(nonIdlePendingLanes) : 0 !== pingedLanes && (nextLanes = getHighestPriorityLanes(pingedLanes)); - if (0 === nextLanes) return 0; - if (0 !== wipLanes && wipLanes !== nextLanes && 0 === (wipLanes & suspendedLanes) && (suspendedLanes = nextLanes & -nextLanes, pingedLanes = wipLanes & -wipLanes, suspendedLanes >= pingedLanes || 16 === suspendedLanes && 0 !== (pingedLanes & 4194240))) return wipLanes; - 0 !== (nextLanes & 4) && (nextLanes |= pendingLanes & 16); - wipLanes = root.entangledLanes; - if (0 !== wipLanes) for (root = root.entanglements, wipLanes &= nextLanes; 0 < wipLanes;) pendingLanes = 31 - clz32(wipLanes), suspendedLanes = 1 << pendingLanes, nextLanes |= root[pendingLanes], wipLanes &= ~suspendedLanes; - return nextLanes; - } - function computeExpirationTime(lane, currentTime) { - switch (lane) { - case 1: - case 2: - case 4: - return currentTime + 250; - case 8: - case 16: - case 32: - case 64: - case 128: - case 256: - case 512: - case 1024: - case 2048: - case 4096: - case 8192: - case 16384: - case 32768: - case 65536: - case 131072: - case 262144: - case 524288: - case 1048576: - case 2097152: - return currentTime + 5e3; - case 4194304: - case 8388608: - case 16777216: - case 33554432: - case 67108864: - return -1; - case 134217728: - case 268435456: - case 536870912: - case 1073741824: - return -1; - default: - return -1; - } - } - function getLanesToRetrySynchronouslyOnError(root) { - root = root.pendingLanes & -1073741825; - return 0 !== root ? root : root & 1073741824 ? 1073741824 : 0; - } - function claimNextTransitionLane() { - var lane = nextTransitionLane; - nextTransitionLane <<= 1; - 0 === (nextTransitionLane & 4194240) && (nextTransitionLane = 64); - return lane; - } - function createLaneMap(initial) { - for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial); - return laneMap; - } - function markRootUpdated(root, updateLane, eventTime) { - root.pendingLanes |= updateLane; - 536870912 !== updateLane && (root.suspendedLanes = 0, root.pingedLanes = 0); - root = root.eventTimes; - updateLane = 31 - clz32(updateLane); - root[updateLane] = eventTime; - } - function markRootFinished(root, remainingLanes) { - var noLongerPendingLanes = root.pendingLanes & ~remainingLanes; - root.pendingLanes = remainingLanes; - root.suspendedLanes = 0; - root.pingedLanes = 0; - root.expiredLanes &= remainingLanes; - root.mutableReadLanes &= remainingLanes; - root.entangledLanes &= remainingLanes; - remainingLanes = root.entanglements; - var eventTimes = root.eventTimes; - for (root = root.expirationTimes; 0 < noLongerPendingLanes;) { - var index$8 = 31 - clz32(noLongerPendingLanes), - lane = 1 << index$8; - remainingLanes[index$8] = 0; - eventTimes[index$8] = -1; - root[index$8] = -1; - noLongerPendingLanes &= ~lane; - } - } - function markRootEntangled(root, entangledLanes) { - var rootEntangledLanes = root.entangledLanes |= entangledLanes; - for (root = root.entanglements; rootEntangledLanes;) { - var index$9 = 31 - clz32(rootEntangledLanes), - lane = 1 << index$9; - lane & entangledLanes | root[index$9] & entangledLanes && (root[index$9] |= entangledLanes); - rootEntangledLanes &= ~lane; - } - } - var currentUpdatePriority = 0; - function lanesToEventPriority(lanes) { - lanes &= -lanes; - return 1 < lanes ? 4 < lanes ? 0 !== (lanes & 268435455) ? 16 : 536870912 : 4 : 1; - } - function shim() { - throw Error("The current renderer does not support hydration. This error is likely caused by a bug in React. Please file an issue."); - } - var getViewConfigForType = _$$_REQUIRE(_dependencyMap[2]).ReactNativeViewConfigRegistry.get, - UPDATE_SIGNAL = {}, - nextReactTag = 3; - function allocateTag() { - var tag = nextReactTag; - 1 === tag % 10 && (tag += 2); - nextReactTag = tag + 2; - return tag; - } - function recursivelyUncacheFiberNode(node) { - if ("number" === typeof node) instanceCache.delete(node), instanceProps.delete(node);else { - var tag = node._nativeTag; - instanceCache.delete(tag); - instanceProps.delete(tag); - node._children.forEach(recursivelyUncacheFiberNode); - } - } - function finalizeInitialChildren(parentInstance) { - if (0 === parentInstance._children.length) return false; - var nativeTags = parentInstance._children.map(function (child) { - return "number" === typeof child ? child : child._nativeTag; - }); - _$$_REQUIRE(_dependencyMap[2]).UIManager.setChildren(parentInstance._nativeTag, nativeTags); - return false; - } - var scheduleTimeout = setTimeout, - cancelTimeout = clearTimeout; - function describeComponentFrame(name, source, ownerName) { - source = ""; - ownerName && (source = " (created by " + ownerName + ")"); - return "\n in " + (name || "Unknown") + source; - } - function describeFunctionComponentFrame(fn, source) { - return fn ? describeComponentFrame(fn.displayName || fn.name || null, source, null) : ""; - } - var hasOwnProperty = Object.prototype.hasOwnProperty, - valueStack = [], - index = -1; - function createCursor(defaultValue) { - return { - current: defaultValue - }; - } - function pop(cursor) { - 0 > index || (cursor.current = valueStack[index], valueStack[index] = null, index--); - } - function push(cursor, value) { - index++; - valueStack[index] = cursor.current; - cursor.current = value; - } - var emptyContextObject = {}, - contextStackCursor = createCursor(emptyContextObject), - didPerformWorkStackCursor = createCursor(false), - previousContext = emptyContextObject; - function getMaskedContext(workInProgress, unmaskedContext) { - var contextTypes = workInProgress.type.contextTypes; - if (!contextTypes) return emptyContextObject; - var instance = workInProgress.stateNode; - if (instance && instance.__reactInternalMemoizedUnmaskedChildContext === unmaskedContext) return instance.__reactInternalMemoizedMaskedChildContext; - var context = {}, - key; - for (key in contextTypes) context[key] = unmaskedContext[key]; - instance && (workInProgress = workInProgress.stateNode, workInProgress.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext, workInProgress.__reactInternalMemoizedMaskedChildContext = context); - return context; - } - function isContextProvider(type) { - type = type.childContextTypes; - return null !== type && undefined !== type; - } - function popContext() { - pop(didPerformWorkStackCursor); - pop(contextStackCursor); - } - function pushTopLevelContextObject(fiber, context, didChange) { - if (contextStackCursor.current !== emptyContextObject) throw Error("Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue."); - push(contextStackCursor, context); - push(didPerformWorkStackCursor, didChange); - } - function processChildContext(fiber, type, parentContext) { - var instance = fiber.stateNode; - type = type.childContextTypes; - if ("function" !== typeof instance.getChildContext) return parentContext; - instance = instance.getChildContext(); - for (var contextKey in instance) if (!(contextKey in type)) throw Error((getComponentNameFromFiber(fiber) || "Unknown") + '.getChildContext(): key "' + contextKey + '" is not defined in childContextTypes.'); - return assign({}, parentContext, instance); - } - function pushContextProvider(workInProgress) { - workInProgress = (workInProgress = workInProgress.stateNode) && workInProgress.__reactInternalMemoizedMergedChildContext || emptyContextObject; - previousContext = contextStackCursor.current; - push(contextStackCursor, workInProgress); - push(didPerformWorkStackCursor, didPerformWorkStackCursor.current); - return true; - } - function invalidateContextProvider(workInProgress, type, didChange) { - var instance = workInProgress.stateNode; - if (!instance) throw Error("Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue."); - didChange ? (workInProgress = processChildContext(workInProgress, type, previousContext), instance.__reactInternalMemoizedMergedChildContext = workInProgress, pop(didPerformWorkStackCursor), pop(contextStackCursor), push(contextStackCursor, workInProgress)) : pop(didPerformWorkStackCursor); - push(didPerformWorkStackCursor, didChange); - } - function is(x, y) { - return x === y && (0 !== x || 1 / x === 1 / y) || x !== x && y !== y; - } - var objectIs = "function" === typeof Object.is ? Object.is : is, - syncQueue = null, - includesLegacySyncCallbacks = false, - isFlushingSyncQueue = false; - function flushSyncCallbacks() { - if (!isFlushingSyncQueue && null !== syncQueue) { - isFlushingSyncQueue = true; - var i = 0, - previousUpdatePriority = currentUpdatePriority; - try { - var queue = syncQueue; - for (currentUpdatePriority = 1; i < queue.length; i++) { - var callback = queue[i]; - do callback = callback(true); while (null !== callback); - } - syncQueue = null; - includesLegacySyncCallbacks = false; - } catch (error) { - throw null !== syncQueue && (syncQueue = syncQueue.slice(i + 1)), _$$_REQUIRE(_dependencyMap[3]).unstable_scheduleCallback(_$$_REQUIRE(_dependencyMap[3]).unstable_ImmediatePriority, flushSyncCallbacks), error; - } finally { - currentUpdatePriority = previousUpdatePriority, isFlushingSyncQueue = false; - } - } - return null; - } - var forkStack = [], - forkStackIndex = 0, - treeForkProvider = null, - idStack = [], - idStackIndex = 0, - treeContextProvider = null; - function popTreeContext(workInProgress) { - for (; workInProgress === treeForkProvider;) treeForkProvider = forkStack[--forkStackIndex], forkStack[forkStackIndex] = null, --forkStackIndex, forkStack[forkStackIndex] = null; - for (; workInProgress === treeContextProvider;) treeContextProvider = idStack[--idStackIndex], idStack[idStackIndex] = null, --idStackIndex, idStack[idStackIndex] = null, --idStackIndex, idStack[idStackIndex] = null; - } - var hydrationErrors = null, - ReactCurrentBatchConfig = ReactSharedInternals.ReactCurrentBatchConfig; - function shallowEqual(objA, objB) { - if (objectIs(objA, objB)) return true; - if ("object" !== typeof objA || null === objA || "object" !== typeof objB || null === objB) return false; - var keysA = Object.keys(objA), - keysB = Object.keys(objB); - if (keysA.length !== keysB.length) return false; - for (keysB = 0; keysB < keysA.length; keysB++) { - var currentKey = keysA[keysB]; - if (!hasOwnProperty.call(objB, currentKey) || !objectIs(objA[currentKey], objB[currentKey])) return false; - } - return true; - } - function describeFiber(fiber) { - switch (fiber.tag) { - case 5: - return describeComponentFrame(fiber.type, null, null); - case 16: - return describeComponentFrame("Lazy", null, null); - case 13: - return describeComponentFrame("Suspense", null, null); - case 19: - return describeComponentFrame("SuspenseList", null, null); - case 0: - case 2: - case 15: - return describeFunctionComponentFrame(fiber.type, null); - case 11: - return describeFunctionComponentFrame(fiber.type.render, null); - case 1: - return fiber = describeFunctionComponentFrame(fiber.type, null), fiber; - default: - return ""; - } - } - function getStackByFiberInDevAndProd(workInProgress) { - try { - var info = ""; - do info += describeFiber(workInProgress), workInProgress = workInProgress.return; while (workInProgress); - return info; - } catch (x) { - return "\nError generating stack: " + x.message + "\n" + x.stack; - } - } - function resolveDefaultProps(Component, baseProps) { - if (Component && Component.defaultProps) { - baseProps = assign({}, baseProps); - Component = Component.defaultProps; - for (var propName in Component) undefined === baseProps[propName] && (baseProps[propName] = Component[propName]); - return baseProps; - } - return baseProps; - } - var valueCursor = createCursor(null), - currentlyRenderingFiber = null, - lastContextDependency = null, - lastFullyObservedContext = null; - function resetContextDependencies() { - lastFullyObservedContext = lastContextDependency = currentlyRenderingFiber = null; - } - function popProvider(context) { - var currentValue = valueCursor.current; - pop(valueCursor); - context._currentValue = currentValue; - } - function scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) { - for (; null !== parent;) { - var alternate = parent.alternate; - (parent.childLanes & renderLanes) !== renderLanes ? (parent.childLanes |= renderLanes, null !== alternate && (alternate.childLanes |= renderLanes)) : null !== alternate && (alternate.childLanes & renderLanes) !== renderLanes && (alternate.childLanes |= renderLanes); - if (parent === propagationRoot) break; - parent = parent.return; - } - } - function prepareToReadContext(workInProgress, renderLanes) { - currentlyRenderingFiber = workInProgress; - lastFullyObservedContext = lastContextDependency = null; - workInProgress = workInProgress.dependencies; - null !== workInProgress && null !== workInProgress.firstContext && (0 !== (workInProgress.lanes & renderLanes) && (didReceiveUpdate = true), workInProgress.firstContext = null); - } - function readContext(context) { - var value = context._currentValue; - if (lastFullyObservedContext !== context) if (context = { - context: context, - memoizedValue: value, - next: null - }, null === lastContextDependency) { - if (null === currentlyRenderingFiber) throw Error("Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."); - lastContextDependency = context; - currentlyRenderingFiber.dependencies = { - lanes: 0, - firstContext: context - }; - } else lastContextDependency = lastContextDependency.next = context; - return value; - } - var concurrentQueues = null; - function pushConcurrentUpdateQueue(queue) { - null === concurrentQueues ? concurrentQueues = [queue] : concurrentQueues.push(queue); - } - function enqueueConcurrentHookUpdate(fiber, queue, update, lane) { - var interleaved = queue.interleaved; - null === interleaved ? (update.next = update, pushConcurrentUpdateQueue(queue)) : (update.next = interleaved.next, interleaved.next = update); - queue.interleaved = update; - return markUpdateLaneFromFiberToRoot(fiber, lane); - } - function markUpdateLaneFromFiberToRoot(sourceFiber, lane) { - sourceFiber.lanes |= lane; - var alternate = sourceFiber.alternate; - null !== alternate && (alternate.lanes |= lane); - alternate = sourceFiber; - for (sourceFiber = sourceFiber.return; null !== sourceFiber;) sourceFiber.childLanes |= lane, alternate = sourceFiber.alternate, null !== alternate && (alternate.childLanes |= lane), alternate = sourceFiber, sourceFiber = sourceFiber.return; - return 3 === alternate.tag ? alternate.stateNode : null; - } - var hasForceUpdate = false; - function initializeUpdateQueue(fiber) { - fiber.updateQueue = { - baseState: fiber.memoizedState, - firstBaseUpdate: null, - lastBaseUpdate: null, - shared: { - pending: null, - interleaved: null, - lanes: 0 - }, - effects: null - }; - } - function cloneUpdateQueue(current, workInProgress) { - current = current.updateQueue; - workInProgress.updateQueue === current && (workInProgress.updateQueue = { - baseState: current.baseState, - firstBaseUpdate: current.firstBaseUpdate, - lastBaseUpdate: current.lastBaseUpdate, - shared: current.shared, - effects: current.effects - }); - } - function createUpdate(eventTime, lane) { - return { - eventTime: eventTime, - lane: lane, - tag: 0, - payload: null, - callback: null, - next: null - }; - } - function enqueueUpdate(fiber, update, lane) { - var updateQueue = fiber.updateQueue; - if (null === updateQueue) return null; - updateQueue = updateQueue.shared; - if (0 !== (executionContext & 2)) { - var pending = updateQueue.pending; - null === pending ? update.next = update : (update.next = pending.next, pending.next = update); - updateQueue.pending = update; - return markUpdateLaneFromFiberToRoot(fiber, lane); - } - pending = updateQueue.interleaved; - null === pending ? (update.next = update, pushConcurrentUpdateQueue(updateQueue)) : (update.next = pending.next, pending.next = update); - updateQueue.interleaved = update; - return markUpdateLaneFromFiberToRoot(fiber, lane); - } - function entangleTransitions(root, fiber, lane) { - fiber = fiber.updateQueue; - if (null !== fiber && (fiber = fiber.shared, 0 !== (lane & 4194240))) { - var queueLanes = fiber.lanes; - queueLanes &= root.pendingLanes; - lane |= queueLanes; - fiber.lanes = lane; - markRootEntangled(root, lane); - } - } - function enqueueCapturedUpdate(workInProgress, capturedUpdate) { - var queue = workInProgress.updateQueue, - current = workInProgress.alternate; - if (null !== current && (current = current.updateQueue, queue === current)) { - var newFirst = null, - newLast = null; - queue = queue.firstBaseUpdate; - if (null !== queue) { - do { - var clone = { - eventTime: queue.eventTime, - lane: queue.lane, - tag: queue.tag, - payload: queue.payload, - callback: queue.callback, - next: null - }; - null === newLast ? newFirst = newLast = clone : newLast = newLast.next = clone; - queue = queue.next; - } while (null !== queue); - null === newLast ? newFirst = newLast = capturedUpdate : newLast = newLast.next = capturedUpdate; - } else newFirst = newLast = capturedUpdate; - queue = { - baseState: current.baseState, - firstBaseUpdate: newFirst, - lastBaseUpdate: newLast, - shared: current.shared, - effects: current.effects - }; - workInProgress.updateQueue = queue; - return; - } - workInProgress = queue.lastBaseUpdate; - null === workInProgress ? queue.firstBaseUpdate = capturedUpdate : workInProgress.next = capturedUpdate; - queue.lastBaseUpdate = capturedUpdate; - } - function processUpdateQueue(workInProgress$jscomp$0, props, instance, renderLanes) { - var queue = workInProgress$jscomp$0.updateQueue; - hasForceUpdate = false; - var firstBaseUpdate = queue.firstBaseUpdate, - lastBaseUpdate = queue.lastBaseUpdate, - pendingQueue = queue.shared.pending; - if (null !== pendingQueue) { - queue.shared.pending = null; - var lastPendingUpdate = pendingQueue, - firstPendingUpdate = lastPendingUpdate.next; - lastPendingUpdate.next = null; - null === lastBaseUpdate ? firstBaseUpdate = firstPendingUpdate : lastBaseUpdate.next = firstPendingUpdate; - lastBaseUpdate = lastPendingUpdate; - var current = workInProgress$jscomp$0.alternate; - null !== current && (current = current.updateQueue, pendingQueue = current.lastBaseUpdate, pendingQueue !== lastBaseUpdate && (null === pendingQueue ? current.firstBaseUpdate = firstPendingUpdate : pendingQueue.next = firstPendingUpdate, current.lastBaseUpdate = lastPendingUpdate)); - } - if (null !== firstBaseUpdate) { - var newState = queue.baseState; - lastBaseUpdate = 0; - current = firstPendingUpdate = lastPendingUpdate = null; - pendingQueue = firstBaseUpdate; - do { - var updateLane = pendingQueue.lane, - updateEventTime = pendingQueue.eventTime; - if ((renderLanes & updateLane) === updateLane) { - null !== current && (current = current.next = { - eventTime: updateEventTime, - lane: 0, - tag: pendingQueue.tag, - payload: pendingQueue.payload, - callback: pendingQueue.callback, - next: null - }); - a: { - var workInProgress = workInProgress$jscomp$0, - update = pendingQueue; - updateLane = props; - updateEventTime = instance; - switch (update.tag) { - case 1: - workInProgress = update.payload; - if ("function" === typeof workInProgress) { - newState = workInProgress.call(updateEventTime, newState, updateLane); - break a; - } - newState = workInProgress; - break a; - case 3: - workInProgress.flags = workInProgress.flags & -65537 | 128; - case 0: - workInProgress = update.payload; - updateLane = "function" === typeof workInProgress ? workInProgress.call(updateEventTime, newState, updateLane) : workInProgress; - if (null === updateLane || undefined === updateLane) break a; - newState = assign({}, newState, updateLane); - break a; - case 2: - hasForceUpdate = true; - } - } - null !== pendingQueue.callback && 0 !== pendingQueue.lane && (workInProgress$jscomp$0.flags |= 64, updateLane = queue.effects, null === updateLane ? queue.effects = [pendingQueue] : updateLane.push(pendingQueue)); - } else updateEventTime = { - eventTime: updateEventTime, - lane: updateLane, - tag: pendingQueue.tag, - payload: pendingQueue.payload, - callback: pendingQueue.callback, - next: null - }, null === current ? (firstPendingUpdate = current = updateEventTime, lastPendingUpdate = newState) : current = current.next = updateEventTime, lastBaseUpdate |= updateLane; - pendingQueue = pendingQueue.next; - if (null === pendingQueue) if (pendingQueue = queue.shared.pending, null === pendingQueue) break;else updateLane = pendingQueue, pendingQueue = updateLane.next, updateLane.next = null, queue.lastBaseUpdate = updateLane, queue.shared.pending = null; - } while (1); - null === current && (lastPendingUpdate = newState); - queue.baseState = lastPendingUpdate; - queue.firstBaseUpdate = firstPendingUpdate; - queue.lastBaseUpdate = current; - props = queue.shared.interleaved; - if (null !== props) { - queue = props; - do lastBaseUpdate |= queue.lane, queue = queue.next; while (queue !== props); - } else null === firstBaseUpdate && (queue.shared.lanes = 0); - workInProgressRootSkippedLanes |= lastBaseUpdate; - workInProgress$jscomp$0.lanes = lastBaseUpdate; - workInProgress$jscomp$0.memoizedState = newState; - } - } - function commitUpdateQueue(finishedWork, finishedQueue, instance) { - finishedWork = finishedQueue.effects; - finishedQueue.effects = null; - if (null !== finishedWork) for (finishedQueue = 0; finishedQueue < finishedWork.length; finishedQueue++) { - var effect = finishedWork[finishedQueue], - callback = effect.callback; - if (null !== callback) { - effect.callback = null; - if ("function" !== typeof callback) throw Error("Invalid argument passed as callback. Expected a function. Instead received: " + callback); - callback.call(instance); - } - } - } - var emptyRefsObject = new React.Component().refs; - function applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, nextProps) { - ctor = workInProgress.memoizedState; - getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor); - getDerivedStateFromProps = null === getDerivedStateFromProps || undefined === getDerivedStateFromProps ? ctor : assign({}, ctor, getDerivedStateFromProps); - workInProgress.memoizedState = getDerivedStateFromProps; - 0 === workInProgress.lanes && (workInProgress.updateQueue.baseState = getDerivedStateFromProps); - } - var classComponentUpdater = { - isMounted: function isMounted(component) { - return (component = component._reactInternals) ? getNearestMountedFiber(component) === component : false; - }, - enqueueSetState: function enqueueSetState(inst, payload, callback) { - inst = inst._reactInternals; - var eventTime = requestEventTime(), - lane = requestUpdateLane(inst), - update = createUpdate(eventTime, lane); - update.payload = payload; - undefined !== callback && null !== callback && (update.callback = callback); - payload = enqueueUpdate(inst, update, lane); - null !== payload && (scheduleUpdateOnFiber(payload, inst, lane, eventTime), entangleTransitions(payload, inst, lane)); - }, - enqueueReplaceState: function enqueueReplaceState(inst, payload, callback) { - inst = inst._reactInternals; - var eventTime = requestEventTime(), - lane = requestUpdateLane(inst), - update = createUpdate(eventTime, lane); - update.tag = 1; - update.payload = payload; - undefined !== callback && null !== callback && (update.callback = callback); - payload = enqueueUpdate(inst, update, lane); - null !== payload && (scheduleUpdateOnFiber(payload, inst, lane, eventTime), entangleTransitions(payload, inst, lane)); - }, - enqueueForceUpdate: function enqueueForceUpdate(inst, callback) { - inst = inst._reactInternals; - var eventTime = requestEventTime(), - lane = requestUpdateLane(inst), - update = createUpdate(eventTime, lane); - update.tag = 2; - undefined !== callback && null !== callback && (update.callback = callback); - callback = enqueueUpdate(inst, update, lane); - null !== callback && (scheduleUpdateOnFiber(callback, inst, lane, eventTime), entangleTransitions(callback, inst, lane)); - } - }; - function checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext) { - workInProgress = workInProgress.stateNode; - return "function" === typeof workInProgress.shouldComponentUpdate ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext) : ctor.prototype && ctor.prototype.isPureReactComponent ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState) : true; - } - function constructClassInstance(workInProgress, ctor, props) { - var isLegacyContextConsumer = false, - unmaskedContext = emptyContextObject; - var context = ctor.contextType; - "object" === typeof context && null !== context ? context = readContext(context) : (unmaskedContext = isContextProvider(ctor) ? previousContext : contextStackCursor.current, isLegacyContextConsumer = ctor.contextTypes, context = (isLegacyContextConsumer = null !== isLegacyContextConsumer && undefined !== isLegacyContextConsumer) ? getMaskedContext(workInProgress, unmaskedContext) : emptyContextObject); - ctor = new ctor(props, context); - workInProgress.memoizedState = null !== ctor.state && undefined !== ctor.state ? ctor.state : null; - ctor.updater = classComponentUpdater; - workInProgress.stateNode = ctor; - ctor._reactInternals = workInProgress; - isLegacyContextConsumer && (workInProgress = workInProgress.stateNode, workInProgress.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext, workInProgress.__reactInternalMemoizedMaskedChildContext = context); - return ctor; - } - function callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext) { - workInProgress = instance.state; - "function" === typeof instance.componentWillReceiveProps && instance.componentWillReceiveProps(newProps, nextContext); - "function" === typeof instance.UNSAFE_componentWillReceiveProps && instance.UNSAFE_componentWillReceiveProps(newProps, nextContext); - instance.state !== workInProgress && classComponentUpdater.enqueueReplaceState(instance, instance.state, null); - } - function mountClassInstance(workInProgress, ctor, newProps, renderLanes) { - var instance = workInProgress.stateNode; - instance.props = newProps; - instance.state = workInProgress.memoizedState; - instance.refs = emptyRefsObject; - initializeUpdateQueue(workInProgress); - var contextType = ctor.contextType; - "object" === typeof contextType && null !== contextType ? instance.context = readContext(contextType) : (contextType = isContextProvider(ctor) ? previousContext : contextStackCursor.current, instance.context = getMaskedContext(workInProgress, contextType)); - instance.state = workInProgress.memoizedState; - contextType = ctor.getDerivedStateFromProps; - "function" === typeof contextType && (applyDerivedStateFromProps(workInProgress, ctor, contextType, newProps), instance.state = workInProgress.memoizedState); - "function" === typeof ctor.getDerivedStateFromProps || "function" === typeof instance.getSnapshotBeforeUpdate || "function" !== typeof instance.UNSAFE_componentWillMount && "function" !== typeof instance.componentWillMount || (ctor = instance.state, "function" === typeof instance.componentWillMount && instance.componentWillMount(), "function" === typeof instance.UNSAFE_componentWillMount && instance.UNSAFE_componentWillMount(), ctor !== instance.state && classComponentUpdater.enqueueReplaceState(instance, instance.state, null), processUpdateQueue(workInProgress, newProps, instance, renderLanes), instance.state = workInProgress.memoizedState); - "function" === typeof instance.componentDidMount && (workInProgress.flags |= 4); - } - function coerceRef(returnFiber, current, element) { - returnFiber = element.ref; - if (null !== returnFiber && "function" !== typeof returnFiber && "object" !== typeof returnFiber) { - if (element._owner) { - element = element._owner; - if (element) { - if (1 !== element.tag) throw Error("Function components cannot have string refs. We recommend using useRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref"); - var inst = element.stateNode; - } - if (!inst) throw Error("Missing owner for string ref " + returnFiber + ". This error is likely caused by a bug in React. Please file an issue."); - var resolvedInst = inst, - stringRef = "" + returnFiber; - if (null !== current && null !== current.ref && "function" === typeof current.ref && current.ref._stringRef === stringRef) return current.ref; - current = function current(value) { - var refs = resolvedInst.refs; - refs === emptyRefsObject && (refs = resolvedInst.refs = {}); - null === value ? delete refs[stringRef] : refs[stringRef] = value; - }; - current._stringRef = stringRef; - return current; - } - if ("string" !== typeof returnFiber) throw Error("Expected ref to be a function, a string, an object returned by React.createRef(), or null."); - if (!element._owner) throw Error("Element ref was specified as a string (" + returnFiber + ") but no owner was set. This could happen for one of the following reasons:\n1. You may be adding a ref to a function component\n2. You may be adding a ref to a component that was not created inside a component's render method\n3. You have multiple copies of React loaded\nSee https://reactjs.org/link/refs-must-have-owner for more information."); - } - return returnFiber; - } - function throwOnInvalidObjectType(returnFiber, newChild) { - returnFiber = Object.prototype.toString.call(newChild); - throw Error("Objects are not valid as a React child (found: " + ("[object Object]" === returnFiber ? "object with keys {" + Object.keys(newChild).join(", ") + "}" : returnFiber) + "). If you meant to render a collection of children, use an array instead."); - } - function resolveLazy(lazyType) { - var init = lazyType._init; - return init(lazyType._payload); - } - function ChildReconciler(shouldTrackSideEffects) { - function deleteChild(returnFiber, childToDelete) { - if (shouldTrackSideEffects) { - var deletions = returnFiber.deletions; - null === deletions ? (returnFiber.deletions = [childToDelete], returnFiber.flags |= 16) : deletions.push(childToDelete); - } - } - function deleteRemainingChildren(returnFiber, currentFirstChild) { - if (!shouldTrackSideEffects) return null; - for (; null !== currentFirstChild;) deleteChild(returnFiber, currentFirstChild), currentFirstChild = currentFirstChild.sibling; - return null; - } - function mapRemainingChildren(returnFiber, currentFirstChild) { - for (returnFiber = new Map(); null !== currentFirstChild;) null !== currentFirstChild.key ? returnFiber.set(currentFirstChild.key, currentFirstChild) : returnFiber.set(currentFirstChild.index, currentFirstChild), currentFirstChild = currentFirstChild.sibling; - return returnFiber; - } - function useFiber(fiber, pendingProps) { - fiber = createWorkInProgress(fiber, pendingProps); - fiber.index = 0; - fiber.sibling = null; - return fiber; - } - function placeChild(newFiber, lastPlacedIndex, newIndex) { - newFiber.index = newIndex; - if (!shouldTrackSideEffects) return newFiber.flags |= 1048576, lastPlacedIndex; - newIndex = newFiber.alternate; - if (null !== newIndex) return newIndex = newIndex.index, newIndex < lastPlacedIndex ? (newFiber.flags |= 2, lastPlacedIndex) : newIndex; - newFiber.flags |= 2; - return lastPlacedIndex; - } - function placeSingleChild(newFiber) { - shouldTrackSideEffects && null === newFiber.alternate && (newFiber.flags |= 2); - return newFiber; - } - function updateTextNode(returnFiber, current, textContent, lanes) { - if (null === current || 6 !== current.tag) return current = createFiberFromText(textContent, returnFiber.mode, lanes), current.return = returnFiber, current; - current = useFiber(current, textContent); - current.return = returnFiber; - return current; - } - function updateElement(returnFiber, current, element, lanes) { - var elementType = element.type; - if (elementType === REACT_FRAGMENT_TYPE) return updateFragment(returnFiber, current, element.props.children, lanes, element.key); - if (null !== current && (current.elementType === elementType || "object" === typeof elementType && null !== elementType && elementType.$$typeof === REACT_LAZY_TYPE && resolveLazy(elementType) === current.type)) return lanes = useFiber(current, element.props), lanes.ref = coerceRef(returnFiber, current, element), lanes.return = returnFiber, lanes; - lanes = createFiberFromTypeAndProps(element.type, element.key, element.props, null, returnFiber.mode, lanes); - lanes.ref = coerceRef(returnFiber, current, element); - lanes.return = returnFiber; - return lanes; - } - function updatePortal(returnFiber, current, portal, lanes) { - if (null === current || 4 !== current.tag || current.stateNode.containerInfo !== portal.containerInfo || current.stateNode.implementation !== portal.implementation) return current = createFiberFromPortal(portal, returnFiber.mode, lanes), current.return = returnFiber, current; - current = useFiber(current, portal.children || []); - current.return = returnFiber; - return current; - } - function updateFragment(returnFiber, current, fragment, lanes, key) { - if (null === current || 7 !== current.tag) return current = createFiberFromFragment(fragment, returnFiber.mode, lanes, key), current.return = returnFiber, current; - current = useFiber(current, fragment); - current.return = returnFiber; - return current; - } - function createChild(returnFiber, newChild, lanes) { - if ("string" === typeof newChild && "" !== newChild || "number" === typeof newChild) return newChild = createFiberFromText("" + newChild, returnFiber.mode, lanes), newChild.return = returnFiber, newChild; - if ("object" === typeof newChild && null !== newChild) { - switch (newChild.$$typeof) { - case REACT_ELEMENT_TYPE: - return lanes = createFiberFromTypeAndProps(newChild.type, newChild.key, newChild.props, null, returnFiber.mode, lanes), lanes.ref = coerceRef(returnFiber, null, newChild), lanes.return = returnFiber, lanes; - case REACT_PORTAL_TYPE: - return newChild = createFiberFromPortal(newChild, returnFiber.mode, lanes), newChild.return = returnFiber, newChild; - case REACT_LAZY_TYPE: - var init = newChild._init; - return createChild(returnFiber, init(newChild._payload), lanes); - } - if (isArrayImpl(newChild) || getIteratorFn(newChild)) return newChild = createFiberFromFragment(newChild, returnFiber.mode, lanes, null), newChild.return = returnFiber, newChild; - throwOnInvalidObjectType(returnFiber, newChild); - } - return null; - } - function updateSlot(returnFiber, oldFiber, newChild, lanes) { - var key = null !== oldFiber ? oldFiber.key : null; - if ("string" === typeof newChild && "" !== newChild || "number" === typeof newChild) return null !== key ? null : updateTextNode(returnFiber, oldFiber, "" + newChild, lanes); - if ("object" === typeof newChild && null !== newChild) { - switch (newChild.$$typeof) { - case REACT_ELEMENT_TYPE: - return newChild.key === key ? updateElement(returnFiber, oldFiber, newChild, lanes) : null; - case REACT_PORTAL_TYPE: - return newChild.key === key ? updatePortal(returnFiber, oldFiber, newChild, lanes) : null; - case REACT_LAZY_TYPE: - return key = newChild._init, updateSlot(returnFiber, oldFiber, key(newChild._payload), lanes); - } - if (isArrayImpl(newChild) || getIteratorFn(newChild)) return null !== key ? null : updateFragment(returnFiber, oldFiber, newChild, lanes, null); - throwOnInvalidObjectType(returnFiber, newChild); - } - return null; - } - function updateFromMap(existingChildren, returnFiber, newIdx, newChild, lanes) { - if ("string" === typeof newChild && "" !== newChild || "number" === typeof newChild) return existingChildren = existingChildren.get(newIdx) || null, updateTextNode(returnFiber, existingChildren, "" + newChild, lanes); - if ("object" === typeof newChild && null !== newChild) { - switch (newChild.$$typeof) { - case REACT_ELEMENT_TYPE: - return existingChildren = existingChildren.get(null === newChild.key ? newIdx : newChild.key) || null, updateElement(returnFiber, existingChildren, newChild, lanes); - case REACT_PORTAL_TYPE: - return existingChildren = existingChildren.get(null === newChild.key ? newIdx : newChild.key) || null, updatePortal(returnFiber, existingChildren, newChild, lanes); - case REACT_LAZY_TYPE: - var init = newChild._init; - return updateFromMap(existingChildren, returnFiber, newIdx, init(newChild._payload), lanes); - } - if (isArrayImpl(newChild) || getIteratorFn(newChild)) return existingChildren = existingChildren.get(newIdx) || null, updateFragment(returnFiber, existingChildren, newChild, lanes, null); - throwOnInvalidObjectType(returnFiber, newChild); - } - return null; - } - function reconcileChildrenArray(returnFiber, currentFirstChild, newChildren, lanes) { - for (var resultingFirstChild = null, previousNewFiber = null, oldFiber = currentFirstChild, newIdx = currentFirstChild = 0, nextOldFiber = null; null !== oldFiber && newIdx < newChildren.length; newIdx++) { - oldFiber.index > newIdx ? (nextOldFiber = oldFiber, oldFiber = null) : nextOldFiber = oldFiber.sibling; - var newFiber = updateSlot(returnFiber, oldFiber, newChildren[newIdx], lanes); - if (null === newFiber) { - null === oldFiber && (oldFiber = nextOldFiber); - break; - } - shouldTrackSideEffects && oldFiber && null === newFiber.alternate && deleteChild(returnFiber, oldFiber); - currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx); - null === previousNewFiber ? resultingFirstChild = newFiber : previousNewFiber.sibling = newFiber; - previousNewFiber = newFiber; - oldFiber = nextOldFiber; - } - if (newIdx === newChildren.length) return deleteRemainingChildren(returnFiber, oldFiber), resultingFirstChild; - if (null === oldFiber) { - for (; newIdx < newChildren.length; newIdx++) oldFiber = createChild(returnFiber, newChildren[newIdx], lanes), null !== oldFiber && (currentFirstChild = placeChild(oldFiber, currentFirstChild, newIdx), null === previousNewFiber ? resultingFirstChild = oldFiber : previousNewFiber.sibling = oldFiber, previousNewFiber = oldFiber); - return resultingFirstChild; - } - for (oldFiber = mapRemainingChildren(returnFiber, oldFiber); newIdx < newChildren.length; newIdx++) nextOldFiber = updateFromMap(oldFiber, returnFiber, newIdx, newChildren[newIdx], lanes), null !== nextOldFiber && (shouldTrackSideEffects && null !== nextOldFiber.alternate && oldFiber.delete(null === nextOldFiber.key ? newIdx : nextOldFiber.key), currentFirstChild = placeChild(nextOldFiber, currentFirstChild, newIdx), null === previousNewFiber ? resultingFirstChild = nextOldFiber : previousNewFiber.sibling = nextOldFiber, previousNewFiber = nextOldFiber); - shouldTrackSideEffects && oldFiber.forEach(function (child) { - return deleteChild(returnFiber, child); - }); - return resultingFirstChild; - } - function reconcileChildrenIterator(returnFiber, currentFirstChild, newChildrenIterable, lanes) { - var iteratorFn = getIteratorFn(newChildrenIterable); - if ("function" !== typeof iteratorFn) throw Error("An object is not an iterable. This error is likely caused by a bug in React. Please file an issue."); - newChildrenIterable = iteratorFn.call(newChildrenIterable); - if (null == newChildrenIterable) throw Error("An iterable object provided no iterator."); - for (var previousNewFiber = iteratorFn = null, oldFiber = currentFirstChild, newIdx = currentFirstChild = 0, nextOldFiber = null, step = newChildrenIterable.next(); null !== oldFiber && !step.done; newIdx++, step = newChildrenIterable.next()) { - oldFiber.index > newIdx ? (nextOldFiber = oldFiber, oldFiber = null) : nextOldFiber = oldFiber.sibling; - var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes); - if (null === newFiber) { - null === oldFiber && (oldFiber = nextOldFiber); - break; - } - shouldTrackSideEffects && oldFiber && null === newFiber.alternate && deleteChild(returnFiber, oldFiber); - currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx); - null === previousNewFiber ? iteratorFn = newFiber : previousNewFiber.sibling = newFiber; - previousNewFiber = newFiber; - oldFiber = nextOldFiber; - } - if (step.done) return deleteRemainingChildren(returnFiber, oldFiber), iteratorFn; - if (null === oldFiber) { - for (; !step.done; newIdx++, step = newChildrenIterable.next()) step = createChild(returnFiber, step.value, lanes), null !== step && (currentFirstChild = placeChild(step, currentFirstChild, newIdx), null === previousNewFiber ? iteratorFn = step : previousNewFiber.sibling = step, previousNewFiber = step); - return iteratorFn; - } - for (oldFiber = mapRemainingChildren(returnFiber, oldFiber); !step.done; newIdx++, step = newChildrenIterable.next()) step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes), null !== step && (shouldTrackSideEffects && null !== step.alternate && oldFiber.delete(null === step.key ? newIdx : step.key), currentFirstChild = placeChild(step, currentFirstChild, newIdx), null === previousNewFiber ? iteratorFn = step : previousNewFiber.sibling = step, previousNewFiber = step); - shouldTrackSideEffects && oldFiber.forEach(function (child) { - return deleteChild(returnFiber, child); - }); - return iteratorFn; - } - function reconcileChildFibers(returnFiber, currentFirstChild, newChild, lanes) { - "object" === typeof newChild && null !== newChild && newChild.type === REACT_FRAGMENT_TYPE && null === newChild.key && (newChild = newChild.props.children); - if ("object" === typeof newChild && null !== newChild) { - switch (newChild.$$typeof) { - case REACT_ELEMENT_TYPE: - a: { - for (var key = newChild.key, child = currentFirstChild; null !== child;) { - if (child.key === key) { - key = newChild.type; - if (key === REACT_FRAGMENT_TYPE) { - if (7 === child.tag) { - deleteRemainingChildren(returnFiber, child.sibling); - currentFirstChild = useFiber(child, newChild.props.children); - currentFirstChild.return = returnFiber; - returnFiber = currentFirstChild; - break a; - } - } else if (child.elementType === key || "object" === typeof key && null !== key && key.$$typeof === REACT_LAZY_TYPE && resolveLazy(key) === child.type) { - deleteRemainingChildren(returnFiber, child.sibling); - currentFirstChild = useFiber(child, newChild.props); - currentFirstChild.ref = coerceRef(returnFiber, child, newChild); - currentFirstChild.return = returnFiber; - returnFiber = currentFirstChild; - break a; - } - deleteRemainingChildren(returnFiber, child); - break; - } else deleteChild(returnFiber, child); - child = child.sibling; - } - newChild.type === REACT_FRAGMENT_TYPE ? (currentFirstChild = createFiberFromFragment(newChild.props.children, returnFiber.mode, lanes, newChild.key), currentFirstChild.return = returnFiber, returnFiber = currentFirstChild) : (lanes = createFiberFromTypeAndProps(newChild.type, newChild.key, newChild.props, null, returnFiber.mode, lanes), lanes.ref = coerceRef(returnFiber, currentFirstChild, newChild), lanes.return = returnFiber, returnFiber = lanes); - } - return placeSingleChild(returnFiber); - case REACT_PORTAL_TYPE: - a: { - for (child = newChild.key; null !== currentFirstChild;) { - if (currentFirstChild.key === child) { - if (4 === currentFirstChild.tag && currentFirstChild.stateNode.containerInfo === newChild.containerInfo && currentFirstChild.stateNode.implementation === newChild.implementation) { - deleteRemainingChildren(returnFiber, currentFirstChild.sibling); - currentFirstChild = useFiber(currentFirstChild, newChild.children || []); - currentFirstChild.return = returnFiber; - returnFiber = currentFirstChild; - break a; - } else { - deleteRemainingChildren(returnFiber, currentFirstChild); - break; - } - } else deleteChild(returnFiber, currentFirstChild); - currentFirstChild = currentFirstChild.sibling; - } - currentFirstChild = createFiberFromPortal(newChild, returnFiber.mode, lanes); - currentFirstChild.return = returnFiber; - returnFiber = currentFirstChild; - } - return placeSingleChild(returnFiber); - case REACT_LAZY_TYPE: - return child = newChild._init, reconcileChildFibers(returnFiber, currentFirstChild, child(newChild._payload), lanes); - } - if (isArrayImpl(newChild)) return reconcileChildrenArray(returnFiber, currentFirstChild, newChild, lanes); - if (getIteratorFn(newChild)) return reconcileChildrenIterator(returnFiber, currentFirstChild, newChild, lanes); - throwOnInvalidObjectType(returnFiber, newChild); - } - return "string" === typeof newChild && "" !== newChild || "number" === typeof newChild ? (newChild = "" + newChild, null !== currentFirstChild && 6 === currentFirstChild.tag ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling), currentFirstChild = useFiber(currentFirstChild, newChild), currentFirstChild.return = returnFiber, returnFiber = currentFirstChild) : (deleteRemainingChildren(returnFiber, currentFirstChild), currentFirstChild = createFiberFromText(newChild, returnFiber.mode, lanes), currentFirstChild.return = returnFiber, returnFiber = currentFirstChild), placeSingleChild(returnFiber)) : deleteRemainingChildren(returnFiber, currentFirstChild); - } - return reconcileChildFibers; - } - var reconcileChildFibers = ChildReconciler(true), - mountChildFibers = ChildReconciler(false), - NO_CONTEXT = {}, - contextStackCursor$1 = createCursor(NO_CONTEXT), - contextFiberStackCursor = createCursor(NO_CONTEXT), - rootInstanceStackCursor = createCursor(NO_CONTEXT); - function requiredContext(c) { - if (c === NO_CONTEXT) throw Error("Expected host context to exist. This error is likely caused by a bug in React. Please file an issue."); - return c; - } - function pushHostContainer(fiber, nextRootInstance) { - push(rootInstanceStackCursor, nextRootInstance); - push(contextFiberStackCursor, fiber); - push(contextStackCursor$1, NO_CONTEXT); - pop(contextStackCursor$1); - push(contextStackCursor$1, { - isInAParentText: false - }); - } - function popHostContainer() { - pop(contextStackCursor$1); - pop(contextFiberStackCursor); - pop(rootInstanceStackCursor); - } - function pushHostContext(fiber) { - requiredContext(rootInstanceStackCursor.current); - var context = requiredContext(contextStackCursor$1.current); - var JSCompiler_inline_result = fiber.type; - JSCompiler_inline_result = "AndroidTextInput" === JSCompiler_inline_result || "RCTMultilineTextInputView" === JSCompiler_inline_result || "RCTSinglelineTextInputView" === JSCompiler_inline_result || "RCTText" === JSCompiler_inline_result || "RCTVirtualText" === JSCompiler_inline_result; - JSCompiler_inline_result = context.isInAParentText !== JSCompiler_inline_result ? { - isInAParentText: JSCompiler_inline_result - } : context; - context !== JSCompiler_inline_result && (push(contextFiberStackCursor, fiber), push(contextStackCursor$1, JSCompiler_inline_result)); - } - function popHostContext(fiber) { - contextFiberStackCursor.current === fiber && (pop(contextStackCursor$1), pop(contextFiberStackCursor)); - } - var suspenseStackCursor = createCursor(0); - function findFirstSuspended(row) { - for (var node = row; null !== node;) { - if (13 === node.tag) { - var state = node.memoizedState; - if (null !== state && (null === state.dehydrated || shim() || shim())) return node; - } else if (19 === node.tag && undefined !== node.memoizedProps.revealOrder) { - if (0 !== (node.flags & 128)) return node; - } else if (null !== node.child) { - node.child.return = node; - node = node.child; - continue; - } - if (node === row) break; - for (; null === node.sibling;) { - if (null === node.return || node.return === row) return null; - node = node.return; - } - node.sibling.return = node.return; - node = node.sibling; - } - return null; - } - var workInProgressSources = []; - function resetWorkInProgressVersions() { - for (var i = 0; i < workInProgressSources.length; i++) workInProgressSources[i]._workInProgressVersionPrimary = null; - workInProgressSources.length = 0; - } - var ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher, - ReactCurrentBatchConfig$1 = ReactSharedInternals.ReactCurrentBatchConfig, - renderLanes = 0, - currentlyRenderingFiber$1 = null, - currentHook = null, - workInProgressHook = null, - didScheduleRenderPhaseUpdate = false, - didScheduleRenderPhaseUpdateDuringThisPass = false, - globalClientIdCounter = 0; - function throwInvalidHookError() { - throw Error("Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem."); - } - function areHookInputsEqual(nextDeps, prevDeps) { - if (null === prevDeps) return false; - for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++) if (!objectIs(nextDeps[i], prevDeps[i])) return false; - return true; - } - function renderWithHooks(current, workInProgress, Component, props, secondArg, nextRenderLanes) { - renderLanes = nextRenderLanes; - currentlyRenderingFiber$1 = workInProgress; - workInProgress.memoizedState = null; - workInProgress.updateQueue = null; - workInProgress.lanes = 0; - ReactCurrentDispatcher$1.current = null === current || null === current.memoizedState ? HooksDispatcherOnMount : HooksDispatcherOnUpdate; - current = Component(props, secondArg); - if (didScheduleRenderPhaseUpdateDuringThisPass) { - nextRenderLanes = 0; - do { - didScheduleRenderPhaseUpdateDuringThisPass = false; - if (25 <= nextRenderLanes) throw Error("Too many re-renders. React limits the number of renders to prevent an infinite loop."); - nextRenderLanes += 1; - workInProgressHook = currentHook = null; - workInProgress.updateQueue = null; - ReactCurrentDispatcher$1.current = HooksDispatcherOnRerender; - current = Component(props, secondArg); - } while (didScheduleRenderPhaseUpdateDuringThisPass); - } - ReactCurrentDispatcher$1.current = ContextOnlyDispatcher; - workInProgress = null !== currentHook && null !== currentHook.next; - renderLanes = 0; - workInProgressHook = currentHook = currentlyRenderingFiber$1 = null; - didScheduleRenderPhaseUpdate = false; - if (workInProgress) throw Error("Rendered fewer hooks than expected. This may be caused by an accidental early return statement."); - return current; - } - function mountWorkInProgressHook() { - var hook = { - memoizedState: null, - baseState: null, - baseQueue: null, - queue: null, - next: null - }; - null === workInProgressHook ? currentlyRenderingFiber$1.memoizedState = workInProgressHook = hook : workInProgressHook = workInProgressHook.next = hook; - return workInProgressHook; - } - function updateWorkInProgressHook() { - if (null === currentHook) { - var nextCurrentHook = currentlyRenderingFiber$1.alternate; - nextCurrentHook = null !== nextCurrentHook ? nextCurrentHook.memoizedState : null; - } else nextCurrentHook = currentHook.next; - var nextWorkInProgressHook = null === workInProgressHook ? currentlyRenderingFiber$1.memoizedState : workInProgressHook.next; - if (null !== nextWorkInProgressHook) workInProgressHook = nextWorkInProgressHook, currentHook = nextCurrentHook;else { - if (null === nextCurrentHook) throw Error("Rendered more hooks than during the previous render."); - currentHook = nextCurrentHook; - nextCurrentHook = { - memoizedState: currentHook.memoizedState, - baseState: currentHook.baseState, - baseQueue: currentHook.baseQueue, - queue: currentHook.queue, - next: null - }; - null === workInProgressHook ? currentlyRenderingFiber$1.memoizedState = workInProgressHook = nextCurrentHook : workInProgressHook = workInProgressHook.next = nextCurrentHook; - } - return workInProgressHook; - } - function basicStateReducer(state, action) { - return "function" === typeof action ? action(state) : action; - } - function updateReducer(reducer) { - var hook = updateWorkInProgressHook(), - queue = hook.queue; - if (null === queue) throw Error("Should have a queue. This is likely a bug in React. Please file an issue."); - queue.lastRenderedReducer = reducer; - var current = currentHook, - baseQueue = current.baseQueue, - pendingQueue = queue.pending; - if (null !== pendingQueue) { - if (null !== baseQueue) { - var baseFirst = baseQueue.next; - baseQueue.next = pendingQueue.next; - pendingQueue.next = baseFirst; - } - current.baseQueue = baseQueue = pendingQueue; - queue.pending = null; - } - if (null !== baseQueue) { - pendingQueue = baseQueue.next; - current = current.baseState; - var newBaseQueueFirst = baseFirst = null, - newBaseQueueLast = null, - update = pendingQueue; - do { - var updateLane = update.lane; - if ((renderLanes & updateLane) === updateLane) null !== newBaseQueueLast && (newBaseQueueLast = newBaseQueueLast.next = { - lane: 0, - action: update.action, - hasEagerState: update.hasEagerState, - eagerState: update.eagerState, - next: null - }), current = update.hasEagerState ? update.eagerState : reducer(current, update.action);else { - var clone = { - lane: updateLane, - action: update.action, - hasEagerState: update.hasEagerState, - eagerState: update.eagerState, - next: null - }; - null === newBaseQueueLast ? (newBaseQueueFirst = newBaseQueueLast = clone, baseFirst = current) : newBaseQueueLast = newBaseQueueLast.next = clone; - currentlyRenderingFiber$1.lanes |= updateLane; - workInProgressRootSkippedLanes |= updateLane; - } - update = update.next; - } while (null !== update && update !== pendingQueue); - null === newBaseQueueLast ? baseFirst = current : newBaseQueueLast.next = newBaseQueueFirst; - objectIs(current, hook.memoizedState) || (didReceiveUpdate = true); - hook.memoizedState = current; - hook.baseState = baseFirst; - hook.baseQueue = newBaseQueueLast; - queue.lastRenderedState = current; - } - reducer = queue.interleaved; - if (null !== reducer) { - baseQueue = reducer; - do pendingQueue = baseQueue.lane, currentlyRenderingFiber$1.lanes |= pendingQueue, workInProgressRootSkippedLanes |= pendingQueue, baseQueue = baseQueue.next; while (baseQueue !== reducer); - } else null === baseQueue && (queue.lanes = 0); - return [hook.memoizedState, queue.dispatch]; - } - function rerenderReducer(reducer) { - var hook = updateWorkInProgressHook(), - queue = hook.queue; - if (null === queue) throw Error("Should have a queue. This is likely a bug in React. Please file an issue."); - queue.lastRenderedReducer = reducer; - var dispatch = queue.dispatch, - lastRenderPhaseUpdate = queue.pending, - newState = hook.memoizedState; - if (null !== lastRenderPhaseUpdate) { - queue.pending = null; - var update = lastRenderPhaseUpdate = lastRenderPhaseUpdate.next; - do newState = reducer(newState, update.action), update = update.next; while (update !== lastRenderPhaseUpdate); - objectIs(newState, hook.memoizedState) || (didReceiveUpdate = true); - hook.memoizedState = newState; - null === hook.baseQueue && (hook.baseState = newState); - queue.lastRenderedState = newState; - } - return [newState, dispatch]; - } - function updateMutableSource() {} - function updateSyncExternalStore(subscribe, getSnapshot) { - var fiber = currentlyRenderingFiber$1, - hook = updateWorkInProgressHook(), - nextSnapshot = getSnapshot(), - snapshotChanged = !objectIs(hook.memoizedState, nextSnapshot); - snapshotChanged && (hook.memoizedState = nextSnapshot, didReceiveUpdate = true); - hook = hook.queue; - updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [subscribe]); - if (hook.getSnapshot !== getSnapshot || snapshotChanged || null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1) { - fiber.flags |= 2048; - pushEffect(9, updateStoreInstance.bind(null, fiber, hook, nextSnapshot, getSnapshot), undefined, null); - if (null === workInProgressRoot) throw Error("Expected a work-in-progress root. This is a bug in React. Please file an issue."); - 0 !== (renderLanes & 30) || pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot); - } - return nextSnapshot; - } - function pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) { - fiber.flags |= 16384; - fiber = { - getSnapshot: getSnapshot, - value: renderedSnapshot - }; - getSnapshot = currentlyRenderingFiber$1.updateQueue; - null === getSnapshot ? (getSnapshot = { - lastEffect: null, - stores: null - }, currentlyRenderingFiber$1.updateQueue = getSnapshot, getSnapshot.stores = [fiber]) : (renderedSnapshot = getSnapshot.stores, null === renderedSnapshot ? getSnapshot.stores = [fiber] : renderedSnapshot.push(fiber)); - } - function updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) { - inst.value = nextSnapshot; - inst.getSnapshot = getSnapshot; - checkIfSnapshotChanged(inst) && forceStoreRerender(fiber); - } - function subscribeToStore(fiber, inst, subscribe) { - return subscribe(function () { - checkIfSnapshotChanged(inst) && forceStoreRerender(fiber); - }); - } - function checkIfSnapshotChanged(inst) { - var latestGetSnapshot = inst.getSnapshot; - inst = inst.value; - try { - var nextValue = latestGetSnapshot(); - return !objectIs(inst, nextValue); - } catch (error) { - return true; - } - } - function forceStoreRerender(fiber) { - var root = markUpdateLaneFromFiberToRoot(fiber, 1); - null !== root && scheduleUpdateOnFiber(root, fiber, 1, -1); - } - function mountState(initialState) { - var hook = mountWorkInProgressHook(); - "function" === typeof initialState && (initialState = initialState()); - hook.memoizedState = hook.baseState = initialState; - initialState = { - pending: null, - interleaved: null, - lanes: 0, - dispatch: null, - lastRenderedReducer: basicStateReducer, - lastRenderedState: initialState - }; - hook.queue = initialState; - initialState = initialState.dispatch = dispatchSetState.bind(null, currentlyRenderingFiber$1, initialState); - return [hook.memoizedState, initialState]; - } - function pushEffect(tag, create, destroy, deps) { - tag = { - tag: tag, - create: create, - destroy: destroy, - deps: deps, - next: null - }; - create = currentlyRenderingFiber$1.updateQueue; - null === create ? (create = { - lastEffect: null, - stores: null - }, currentlyRenderingFiber$1.updateQueue = create, create.lastEffect = tag.next = tag) : (destroy = create.lastEffect, null === destroy ? create.lastEffect = tag.next = tag : (deps = destroy.next, destroy.next = tag, tag.next = deps, create.lastEffect = tag)); - return tag; - } - function updateRef() { - return updateWorkInProgressHook().memoizedState; - } - function mountEffectImpl(fiberFlags, hookFlags, create, deps) { - var hook = mountWorkInProgressHook(); - currentlyRenderingFiber$1.flags |= fiberFlags; - hook.memoizedState = pushEffect(1 | hookFlags, create, undefined, undefined === deps ? null : deps); - } - function updateEffectImpl(fiberFlags, hookFlags, create, deps) { - var hook = updateWorkInProgressHook(); - deps = undefined === deps ? null : deps; - var destroy = undefined; - if (null !== currentHook) { - var prevEffect = currentHook.memoizedState; - destroy = prevEffect.destroy; - if (null !== deps && areHookInputsEqual(deps, prevEffect.deps)) { - hook.memoizedState = pushEffect(hookFlags, create, destroy, deps); - return; - } - } - currentlyRenderingFiber$1.flags |= fiberFlags; - hook.memoizedState = pushEffect(1 | hookFlags, create, destroy, deps); - } - function mountEffect(create, deps) { - return mountEffectImpl(8390656, 8, create, deps); - } - function updateEffect(create, deps) { - return updateEffectImpl(2048, 8, create, deps); - } - function updateInsertionEffect(create, deps) { - return updateEffectImpl(4, 2, create, deps); - } - function updateLayoutEffect(create, deps) { - return updateEffectImpl(4, 4, create, deps); - } - function imperativeHandleEffect(create, ref) { - if ("function" === typeof ref) return create = create(), ref(create), function () { - ref(null); - }; - if (null !== ref && undefined !== ref) return create = create(), ref.current = create, function () { - ref.current = null; - }; - } - function updateImperativeHandle(ref, create, deps) { - deps = null !== deps && undefined !== deps ? deps.concat([ref]) : null; - return updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps); - } - function mountDebugValue() {} - function updateCallback(callback, deps) { - var hook = updateWorkInProgressHook(); - deps = undefined === deps ? null : deps; - var prevState = hook.memoizedState; - if (null !== prevState && null !== deps && areHookInputsEqual(deps, prevState[1])) return prevState[0]; - hook.memoizedState = [callback, deps]; - return callback; - } - function updateMemo(nextCreate, deps) { - var hook = updateWorkInProgressHook(); - deps = undefined === deps ? null : deps; - var prevState = hook.memoizedState; - if (null !== prevState && null !== deps && areHookInputsEqual(deps, prevState[1])) return prevState[0]; - nextCreate = nextCreate(); - hook.memoizedState = [nextCreate, deps]; - return nextCreate; - } - function updateDeferredValueImpl(hook, prevValue, value) { - if (0 === (renderLanes & 21)) return hook.baseState && (hook.baseState = false, didReceiveUpdate = true), hook.memoizedState = value; - objectIs(value, prevValue) || (value = claimNextTransitionLane(), currentlyRenderingFiber$1.lanes |= value, workInProgressRootSkippedLanes |= value, hook.baseState = true); - return prevValue; - } - function startTransition(setPending, callback) { - var previousPriority = currentUpdatePriority; - currentUpdatePriority = 0 !== previousPriority && 4 > previousPriority ? previousPriority : 4; - setPending(true); - var prevTransition = ReactCurrentBatchConfig$1.transition; - ReactCurrentBatchConfig$1.transition = {}; - try { - setPending(false), callback(); - } finally { - currentUpdatePriority = previousPriority, ReactCurrentBatchConfig$1.transition = prevTransition; - } - } - function updateId() { - return updateWorkInProgressHook().memoizedState; - } - function dispatchReducerAction(fiber, queue, action) { - var lane = requestUpdateLane(fiber); - action = { - lane: lane, - action: action, - hasEagerState: false, - eagerState: null, - next: null - }; - if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, action);else if (action = enqueueConcurrentHookUpdate(fiber, queue, action, lane), null !== action) { - var eventTime = requestEventTime(); - scheduleUpdateOnFiber(action, fiber, lane, eventTime); - entangleTransitionUpdate(action, queue, lane); - } - } - function dispatchSetState(fiber, queue, action) { - var lane = requestUpdateLane(fiber), - update = { - lane: lane, - action: action, - hasEagerState: false, - eagerState: null, - next: null - }; - if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);else { - var alternate = fiber.alternate; - if (0 === fiber.lanes && (null === alternate || 0 === alternate.lanes) && (alternate = queue.lastRenderedReducer, null !== alternate)) try { - var currentState = queue.lastRenderedState, - eagerState = alternate(currentState, action); - update.hasEagerState = true; - update.eagerState = eagerState; - if (objectIs(eagerState, currentState)) { - var interleaved = queue.interleaved; - null === interleaved ? (update.next = update, pushConcurrentUpdateQueue(queue)) : (update.next = interleaved.next, interleaved.next = update); - queue.interleaved = update; - return; - } - } catch (error) {} finally {} - action = enqueueConcurrentHookUpdate(fiber, queue, update, lane); - null !== action && (update = requestEventTime(), scheduleUpdateOnFiber(action, fiber, lane, update), entangleTransitionUpdate(action, queue, lane)); - } - } - function isRenderPhaseUpdate(fiber) { - var alternate = fiber.alternate; - return fiber === currentlyRenderingFiber$1 || null !== alternate && alternate === currentlyRenderingFiber$1; - } - function enqueueRenderPhaseUpdate(queue, update) { - didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate = true; - var pending = queue.pending; - null === pending ? update.next = update : (update.next = pending.next, pending.next = update); - queue.pending = update; - } - function entangleTransitionUpdate(root, queue, lane) { - if (0 !== (lane & 4194240)) { - var queueLanes = queue.lanes; - queueLanes &= root.pendingLanes; - lane |= queueLanes; - queue.lanes = lane; - markRootEntangled(root, lane); - } - } - var ContextOnlyDispatcher = { - readContext: readContext, - useCallback: throwInvalidHookError, - useContext: throwInvalidHookError, - useEffect: throwInvalidHookError, - useImperativeHandle: throwInvalidHookError, - useInsertionEffect: throwInvalidHookError, - useLayoutEffect: throwInvalidHookError, - useMemo: throwInvalidHookError, - useReducer: throwInvalidHookError, - useRef: throwInvalidHookError, - useState: throwInvalidHookError, - useDebugValue: throwInvalidHookError, - useDeferredValue: throwInvalidHookError, - useTransition: throwInvalidHookError, - useMutableSource: throwInvalidHookError, - useSyncExternalStore: throwInvalidHookError, - useId: throwInvalidHookError, - unstable_isNewReconciler: false - }, - HooksDispatcherOnMount = { - readContext: readContext, - useCallback: function useCallback(callback, deps) { - mountWorkInProgressHook().memoizedState = [callback, undefined === deps ? null : deps]; - return callback; - }, - useContext: readContext, - useEffect: mountEffect, - useImperativeHandle: function useImperativeHandle(ref, create, deps) { - deps = null !== deps && undefined !== deps ? deps.concat([ref]) : null; - return mountEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps); - }, - useLayoutEffect: function useLayoutEffect(create, deps) { - return mountEffectImpl(4, 4, create, deps); - }, - useInsertionEffect: function useInsertionEffect(create, deps) { - return mountEffectImpl(4, 2, create, deps); - }, - useMemo: function useMemo(nextCreate, deps) { - var hook = mountWorkInProgressHook(); - deps = undefined === deps ? null : deps; - nextCreate = nextCreate(); - hook.memoizedState = [nextCreate, deps]; - return nextCreate; - }, - useReducer: function useReducer(reducer, initialArg, init) { - var hook = mountWorkInProgressHook(); - initialArg = undefined !== init ? init(initialArg) : initialArg; - hook.memoizedState = hook.baseState = initialArg; - reducer = { - pending: null, - interleaved: null, - lanes: 0, - dispatch: null, - lastRenderedReducer: reducer, - lastRenderedState: initialArg - }; - hook.queue = reducer; - reducer = reducer.dispatch = dispatchReducerAction.bind(null, currentlyRenderingFiber$1, reducer); - return [hook.memoizedState, reducer]; - }, - useRef: function useRef(initialValue) { - var hook = mountWorkInProgressHook(); - initialValue = { - current: initialValue - }; - return hook.memoizedState = initialValue; - }, - useState: mountState, - useDebugValue: mountDebugValue, - useDeferredValue: function useDeferredValue(value) { - return mountWorkInProgressHook().memoizedState = value; - }, - useTransition: function useTransition() { - var _mountState = mountState(false), - isPending = _mountState[0]; - _mountState = startTransition.bind(null, _mountState[1]); - mountWorkInProgressHook().memoizedState = _mountState; - return [isPending, _mountState]; - }, - useMutableSource: function useMutableSource() {}, - useSyncExternalStore: function useSyncExternalStore(subscribe, getSnapshot) { - var fiber = currentlyRenderingFiber$1, - hook = mountWorkInProgressHook(); - var nextSnapshot = getSnapshot(); - if (null === workInProgressRoot) throw Error("Expected a work-in-progress root. This is a bug in React. Please file an issue."); - 0 !== (renderLanes & 30) || pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot); - hook.memoizedState = nextSnapshot; - var inst = { - value: nextSnapshot, - getSnapshot: getSnapshot - }; - hook.queue = inst; - mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [subscribe]); - fiber.flags |= 2048; - pushEffect(9, updateStoreInstance.bind(null, fiber, inst, nextSnapshot, getSnapshot), undefined, null); - return nextSnapshot; - }, - useId: function useId() { - var hook = mountWorkInProgressHook(), - identifierPrefix = workInProgressRoot.identifierPrefix, - globalClientId = globalClientIdCounter++; - identifierPrefix = ":" + identifierPrefix + "r" + globalClientId.toString(32) + ":"; - return hook.memoizedState = identifierPrefix; - }, - unstable_isNewReconciler: false - }, - HooksDispatcherOnUpdate = { - readContext: readContext, - useCallback: updateCallback, - useContext: readContext, - useEffect: updateEffect, - useImperativeHandle: updateImperativeHandle, - useInsertionEffect: updateInsertionEffect, - useLayoutEffect: updateLayoutEffect, - useMemo: updateMemo, - useReducer: updateReducer, - useRef: updateRef, - useState: function useState() { - return updateReducer(basicStateReducer); - }, - useDebugValue: mountDebugValue, - useDeferredValue: function useDeferredValue(value) { - var hook = updateWorkInProgressHook(); - return updateDeferredValueImpl(hook, currentHook.memoizedState, value); - }, - useTransition: function useTransition() { - var isPending = updateReducer(basicStateReducer)[0], - start = updateWorkInProgressHook().memoizedState; - return [isPending, start]; - }, - useMutableSource: updateMutableSource, - useSyncExternalStore: updateSyncExternalStore, - useId: updateId, - unstable_isNewReconciler: false - }, - HooksDispatcherOnRerender = { - readContext: readContext, - useCallback: updateCallback, - useContext: readContext, - useEffect: updateEffect, - useImperativeHandle: updateImperativeHandle, - useInsertionEffect: updateInsertionEffect, - useLayoutEffect: updateLayoutEffect, - useMemo: updateMemo, - useReducer: rerenderReducer, - useRef: updateRef, - useState: function useState() { - return rerenderReducer(basicStateReducer); - }, - useDebugValue: mountDebugValue, - useDeferredValue: function useDeferredValue(value) { - var hook = updateWorkInProgressHook(); - return null === currentHook ? hook.memoizedState = value : updateDeferredValueImpl(hook, currentHook.memoizedState, value); - }, - useTransition: function useTransition() { - var isPending = rerenderReducer(basicStateReducer)[0], - start = updateWorkInProgressHook().memoizedState; - return [isPending, start]; - }, - useMutableSource: updateMutableSource, - useSyncExternalStore: updateSyncExternalStore, - useId: updateId, - unstable_isNewReconciler: false - }; - function createCapturedValueAtFiber(value, source) { - return { - value: value, - source: source, - stack: getStackByFiberInDevAndProd(source), - digest: null - }; - } - function createCapturedValue(value, digest, stack) { - return { - value: value, - source: null, - stack: null != stack ? stack : null, - digest: null != digest ? digest : null - }; - } - if ("function" !== typeof _$$_REQUIRE(_dependencyMap[2]).ReactFiberErrorDialog.showErrorDialog) throw Error("Expected ReactFiberErrorDialog.showErrorDialog to be a function."); - function logCapturedError(boundary, errorInfo) { - try { - false !== _$$_REQUIRE(_dependencyMap[2]).ReactFiberErrorDialog.showErrorDialog({ - componentStack: null !== errorInfo.stack ? errorInfo.stack : "", - error: errorInfo.value, - errorBoundary: null !== boundary && 1 === boundary.tag ? boundary.stateNode : null - }) && console.error(errorInfo.value); - } catch (e) { - setTimeout(function () { - throw e; - }); - } - } - var PossiblyWeakMap = "function" === typeof WeakMap ? WeakMap : Map; - function createRootErrorUpdate(fiber, errorInfo, lane) { - lane = createUpdate(-1, lane); - lane.tag = 3; - lane.payload = { - element: null - }; - var error = errorInfo.value; - lane.callback = function () { - hasUncaughtError || (hasUncaughtError = true, firstUncaughtError = error); - logCapturedError(fiber, errorInfo); - }; - return lane; - } - function createClassErrorUpdate(fiber, errorInfo, lane) { - lane = createUpdate(-1, lane); - lane.tag = 3; - var getDerivedStateFromError = fiber.type.getDerivedStateFromError; - if ("function" === typeof getDerivedStateFromError) { - var error = errorInfo.value; - lane.payload = function () { - return getDerivedStateFromError(error); - }; - lane.callback = function () { - logCapturedError(fiber, errorInfo); - }; - } - var inst = fiber.stateNode; - null !== inst && "function" === typeof inst.componentDidCatch && (lane.callback = function () { - logCapturedError(fiber, errorInfo); - "function" !== typeof getDerivedStateFromError && (null === legacyErrorBoundariesThatAlreadyFailed ? legacyErrorBoundariesThatAlreadyFailed = new Set([this]) : legacyErrorBoundariesThatAlreadyFailed.add(this)); - var stack = errorInfo.stack; - this.componentDidCatch(errorInfo.value, { - componentStack: null !== stack ? stack : "" - }); - }); - return lane; - } - function attachPingListener(root, wakeable, lanes) { - var pingCache = root.pingCache; - if (null === pingCache) { - pingCache = root.pingCache = new PossiblyWeakMap(); - var threadIDs = new Set(); - pingCache.set(wakeable, threadIDs); - } else threadIDs = pingCache.get(wakeable), undefined === threadIDs && (threadIDs = new Set(), pingCache.set(wakeable, threadIDs)); - threadIDs.has(lanes) || (threadIDs.add(lanes), root = pingSuspendedRoot.bind(null, root, wakeable, lanes), wakeable.then(root, root)); - } - var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner, - didReceiveUpdate = false; - function reconcileChildren(current, workInProgress, nextChildren, renderLanes) { - workInProgress.child = null === current ? mountChildFibers(workInProgress, null, nextChildren, renderLanes) : reconcileChildFibers(workInProgress, current.child, nextChildren, renderLanes); - } - function updateForwardRef(current, workInProgress, Component, nextProps, renderLanes) { - Component = Component.render; - var ref = workInProgress.ref; - prepareToReadContext(workInProgress, renderLanes); - nextProps = renderWithHooks(current, workInProgress, Component, nextProps, ref, renderLanes); - if (null !== current && !didReceiveUpdate) return workInProgress.updateQueue = current.updateQueue, workInProgress.flags &= -2053, current.lanes &= ~renderLanes, bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes); - workInProgress.flags |= 1; - reconcileChildren(current, workInProgress, nextProps, renderLanes); - return workInProgress.child; - } - function updateMemoComponent(current, workInProgress, Component, nextProps, renderLanes) { - if (null === current) { - var type = Component.type; - if ("function" === typeof type && !shouldConstruct(type) && undefined === type.defaultProps && null === Component.compare && undefined === Component.defaultProps) return workInProgress.tag = 15, workInProgress.type = type, updateSimpleMemoComponent(current, workInProgress, type, nextProps, renderLanes); - current = createFiberFromTypeAndProps(Component.type, null, nextProps, workInProgress, workInProgress.mode, renderLanes); - current.ref = workInProgress.ref; - current.return = workInProgress; - return workInProgress.child = current; - } - type = current.child; - if (0 === (current.lanes & renderLanes)) { - var prevProps = type.memoizedProps; - Component = Component.compare; - Component = null !== Component ? Component : shallowEqual; - if (Component(prevProps, nextProps) && current.ref === workInProgress.ref) return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes); - } - workInProgress.flags |= 1; - current = createWorkInProgress(type, nextProps); - current.ref = workInProgress.ref; - current.return = workInProgress; - return workInProgress.child = current; - } - function updateSimpleMemoComponent(current, workInProgress, Component, nextProps, renderLanes) { - if (null !== current) { - var prevProps = current.memoizedProps; - if (shallowEqual(prevProps, nextProps) && current.ref === workInProgress.ref) if (didReceiveUpdate = false, workInProgress.pendingProps = nextProps = prevProps, 0 !== (current.lanes & renderLanes)) 0 !== (current.flags & 131072) && (didReceiveUpdate = true);else return workInProgress.lanes = current.lanes, bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes); - } - return updateFunctionComponent(current, workInProgress, Component, nextProps, renderLanes); - } - function updateOffscreenComponent(current, workInProgress, renderLanes) { - var nextProps = workInProgress.pendingProps, - nextChildren = nextProps.children, - prevState = null !== current ? current.memoizedState : null; - if ("hidden" === nextProps.mode) { - if (0 === (workInProgress.mode & 1)) workInProgress.memoizedState = { - baseLanes: 0, - cachePool: null, - transitions: null - }, push(subtreeRenderLanesCursor, subtreeRenderLanes), subtreeRenderLanes |= renderLanes;else { - if (0 === (renderLanes & 1073741824)) return current = null !== prevState ? prevState.baseLanes | renderLanes : renderLanes, workInProgress.lanes = workInProgress.childLanes = 1073741824, workInProgress.memoizedState = { - baseLanes: current, - cachePool: null, - transitions: null - }, workInProgress.updateQueue = null, push(subtreeRenderLanesCursor, subtreeRenderLanes), subtreeRenderLanes |= current, null; - workInProgress.memoizedState = { - baseLanes: 0, - cachePool: null, - transitions: null - }; - nextProps = null !== prevState ? prevState.baseLanes : renderLanes; - push(subtreeRenderLanesCursor, subtreeRenderLanes); - subtreeRenderLanes |= nextProps; - } - } else null !== prevState ? (nextProps = prevState.baseLanes | renderLanes, workInProgress.memoizedState = null) : nextProps = renderLanes, push(subtreeRenderLanesCursor, subtreeRenderLanes), subtreeRenderLanes |= nextProps; - reconcileChildren(current, workInProgress, nextChildren, renderLanes); - return workInProgress.child; - } - function markRef(current, workInProgress) { - var ref = workInProgress.ref; - if (null === current && null !== ref || null !== current && current.ref !== ref) workInProgress.flags |= 512; - } - function updateFunctionComponent(current, workInProgress, Component, nextProps, renderLanes) { - var context = isContextProvider(Component) ? previousContext : contextStackCursor.current; - context = getMaskedContext(workInProgress, context); - prepareToReadContext(workInProgress, renderLanes); - Component = renderWithHooks(current, workInProgress, Component, nextProps, context, renderLanes); - if (null !== current && !didReceiveUpdate) return workInProgress.updateQueue = current.updateQueue, workInProgress.flags &= -2053, current.lanes &= ~renderLanes, bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes); - workInProgress.flags |= 1; - reconcileChildren(current, workInProgress, Component, renderLanes); - return workInProgress.child; - } - function updateClassComponent(current, workInProgress, Component, nextProps, renderLanes) { - if (isContextProvider(Component)) { - var hasContext = true; - pushContextProvider(workInProgress); - } else hasContext = false; - prepareToReadContext(workInProgress, renderLanes); - if (null === workInProgress.stateNode) resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress), constructClassInstance(workInProgress, Component, nextProps), mountClassInstance(workInProgress, Component, nextProps, renderLanes), nextProps = true;else if (null === current) { - var instance = workInProgress.stateNode, - oldProps = workInProgress.memoizedProps; - instance.props = oldProps; - var oldContext = instance.context, - contextType = Component.contextType; - "object" === typeof contextType && null !== contextType ? contextType = readContext(contextType) : (contextType = isContextProvider(Component) ? previousContext : contextStackCursor.current, contextType = getMaskedContext(workInProgress, contextType)); - var getDerivedStateFromProps = Component.getDerivedStateFromProps, - hasNewLifecycles = "function" === typeof getDerivedStateFromProps || "function" === typeof instance.getSnapshotBeforeUpdate; - hasNewLifecycles || "function" !== typeof instance.UNSAFE_componentWillReceiveProps && "function" !== typeof instance.componentWillReceiveProps || (oldProps !== nextProps || oldContext !== contextType) && callComponentWillReceiveProps(workInProgress, instance, nextProps, contextType); - hasForceUpdate = false; - var oldState = workInProgress.memoizedState; - instance.state = oldState; - processUpdateQueue(workInProgress, nextProps, instance, renderLanes); - oldContext = workInProgress.memoizedState; - oldProps !== nextProps || oldState !== oldContext || didPerformWorkStackCursor.current || hasForceUpdate ? ("function" === typeof getDerivedStateFromProps && (applyDerivedStateFromProps(workInProgress, Component, getDerivedStateFromProps, nextProps), oldContext = workInProgress.memoizedState), (oldProps = hasForceUpdate || checkShouldComponentUpdate(workInProgress, Component, oldProps, nextProps, oldState, oldContext, contextType)) ? (hasNewLifecycles || "function" !== typeof instance.UNSAFE_componentWillMount && "function" !== typeof instance.componentWillMount || ("function" === typeof instance.componentWillMount && instance.componentWillMount(), "function" === typeof instance.UNSAFE_componentWillMount && instance.UNSAFE_componentWillMount()), "function" === typeof instance.componentDidMount && (workInProgress.flags |= 4)) : ("function" === typeof instance.componentDidMount && (workInProgress.flags |= 4), workInProgress.memoizedProps = nextProps, workInProgress.memoizedState = oldContext), instance.props = nextProps, instance.state = oldContext, instance.context = contextType, nextProps = oldProps) : ("function" === typeof instance.componentDidMount && (workInProgress.flags |= 4), nextProps = false); - } else { - instance = workInProgress.stateNode; - cloneUpdateQueue(current, workInProgress); - oldProps = workInProgress.memoizedProps; - contextType = workInProgress.type === workInProgress.elementType ? oldProps : resolveDefaultProps(workInProgress.type, oldProps); - instance.props = contextType; - hasNewLifecycles = workInProgress.pendingProps; - oldState = instance.context; - oldContext = Component.contextType; - "object" === typeof oldContext && null !== oldContext ? oldContext = readContext(oldContext) : (oldContext = isContextProvider(Component) ? previousContext : contextStackCursor.current, oldContext = getMaskedContext(workInProgress, oldContext)); - var getDerivedStateFromProps$jscomp$0 = Component.getDerivedStateFromProps; - (getDerivedStateFromProps = "function" === typeof getDerivedStateFromProps$jscomp$0 || "function" === typeof instance.getSnapshotBeforeUpdate) || "function" !== typeof instance.UNSAFE_componentWillReceiveProps && "function" !== typeof instance.componentWillReceiveProps || (oldProps !== hasNewLifecycles || oldState !== oldContext) && callComponentWillReceiveProps(workInProgress, instance, nextProps, oldContext); - hasForceUpdate = false; - oldState = workInProgress.memoizedState; - instance.state = oldState; - processUpdateQueue(workInProgress, nextProps, instance, renderLanes); - var newState = workInProgress.memoizedState; - oldProps !== hasNewLifecycles || oldState !== newState || didPerformWorkStackCursor.current || hasForceUpdate ? ("function" === typeof getDerivedStateFromProps$jscomp$0 && (applyDerivedStateFromProps(workInProgress, Component, getDerivedStateFromProps$jscomp$0, nextProps), newState = workInProgress.memoizedState), (contextType = hasForceUpdate || checkShouldComponentUpdate(workInProgress, Component, contextType, nextProps, oldState, newState, oldContext) || false) ? (getDerivedStateFromProps || "function" !== typeof instance.UNSAFE_componentWillUpdate && "function" !== typeof instance.componentWillUpdate || ("function" === typeof instance.componentWillUpdate && instance.componentWillUpdate(nextProps, newState, oldContext), "function" === typeof instance.UNSAFE_componentWillUpdate && instance.UNSAFE_componentWillUpdate(nextProps, newState, oldContext)), "function" === typeof instance.componentDidUpdate && (workInProgress.flags |= 4), "function" === typeof instance.getSnapshotBeforeUpdate && (workInProgress.flags |= 1024)) : ("function" !== typeof instance.componentDidUpdate || oldProps === current.memoizedProps && oldState === current.memoizedState || (workInProgress.flags |= 4), "function" !== typeof instance.getSnapshotBeforeUpdate || oldProps === current.memoizedProps && oldState === current.memoizedState || (workInProgress.flags |= 1024), workInProgress.memoizedProps = nextProps, workInProgress.memoizedState = newState), instance.props = nextProps, instance.state = newState, instance.context = oldContext, nextProps = contextType) : ("function" !== typeof instance.componentDidUpdate || oldProps === current.memoizedProps && oldState === current.memoizedState || (workInProgress.flags |= 4), "function" !== typeof instance.getSnapshotBeforeUpdate || oldProps === current.memoizedProps && oldState === current.memoizedState || (workInProgress.flags |= 1024), nextProps = false); - } - return finishClassComponent(current, workInProgress, Component, nextProps, hasContext, renderLanes); - } - function finishClassComponent(current, workInProgress, Component, shouldUpdate, hasContext, renderLanes) { - markRef(current, workInProgress); - var didCaptureError = 0 !== (workInProgress.flags & 128); - if (!shouldUpdate && !didCaptureError) return hasContext && invalidateContextProvider(workInProgress, Component, false), bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes); - shouldUpdate = workInProgress.stateNode; - ReactCurrentOwner$1.current = workInProgress; - var nextChildren = didCaptureError && "function" !== typeof Component.getDerivedStateFromError ? null : shouldUpdate.render(); - workInProgress.flags |= 1; - null !== current && didCaptureError ? (workInProgress.child = reconcileChildFibers(workInProgress, current.child, null, renderLanes), workInProgress.child = reconcileChildFibers(workInProgress, null, nextChildren, renderLanes)) : reconcileChildren(current, workInProgress, nextChildren, renderLanes); - workInProgress.memoizedState = shouldUpdate.state; - hasContext && invalidateContextProvider(workInProgress, Component, true); - return workInProgress.child; - } - function pushHostRootContext(workInProgress) { - var root = workInProgress.stateNode; - root.pendingContext ? pushTopLevelContextObject(workInProgress, root.pendingContext, root.pendingContext !== root.context) : root.context && pushTopLevelContextObject(workInProgress, root.context, false); - pushHostContainer(workInProgress, root.containerInfo); - } - var SUSPENDED_MARKER = { - dehydrated: null, - treeContext: null, - retryLane: 0 - }; - function mountSuspenseOffscreenState(renderLanes) { - return { - baseLanes: renderLanes, - cachePool: null, - transitions: null - }; - } - function updateSuspenseComponent(current, workInProgress, renderLanes) { - var nextProps = workInProgress.pendingProps, - suspenseContext = suspenseStackCursor.current, - showFallback = false, - didSuspend = 0 !== (workInProgress.flags & 128), - JSCompiler_temp; - (JSCompiler_temp = didSuspend) || (JSCompiler_temp = null !== current && null === current.memoizedState ? false : 0 !== (suspenseContext & 2)); - if (JSCompiler_temp) showFallback = true, workInProgress.flags &= -129;else if (null === current || null !== current.memoizedState) suspenseContext |= 1; - push(suspenseStackCursor, suspenseContext & 1); - if (null === current) { - current = workInProgress.memoizedState; - if (null !== current && null !== current.dehydrated) return 0 === (workInProgress.mode & 1) ? workInProgress.lanes = 1 : shim() ? workInProgress.lanes = 8 : workInProgress.lanes = 1073741824, null; - didSuspend = nextProps.children; - current = nextProps.fallback; - return showFallback ? (nextProps = workInProgress.mode, showFallback = workInProgress.child, didSuspend = { - mode: "hidden", - children: didSuspend - }, 0 === (nextProps & 1) && null !== showFallback ? (showFallback.childLanes = 0, showFallback.pendingProps = didSuspend) : showFallback = createFiberFromOffscreen(didSuspend, nextProps, 0, null), current = createFiberFromFragment(current, nextProps, renderLanes, null), showFallback.return = workInProgress, current.return = workInProgress, showFallback.sibling = current, workInProgress.child = showFallback, workInProgress.child.memoizedState = mountSuspenseOffscreenState(renderLanes), workInProgress.memoizedState = SUSPENDED_MARKER, current) : mountSuspensePrimaryChildren(workInProgress, didSuspend); - } - suspenseContext = current.memoizedState; - if (null !== suspenseContext && (JSCompiler_temp = suspenseContext.dehydrated, null !== JSCompiler_temp)) return updateDehydratedSuspenseComponent(current, workInProgress, didSuspend, nextProps, JSCompiler_temp, suspenseContext, renderLanes); - if (showFallback) { - showFallback = nextProps.fallback; - didSuspend = workInProgress.mode; - suspenseContext = current.child; - JSCompiler_temp = suspenseContext.sibling; - var primaryChildProps = { - mode: "hidden", - children: nextProps.children - }; - 0 === (didSuspend & 1) && workInProgress.child !== suspenseContext ? (nextProps = workInProgress.child, nextProps.childLanes = 0, nextProps.pendingProps = primaryChildProps, workInProgress.deletions = null) : (nextProps = createWorkInProgress(suspenseContext, primaryChildProps), nextProps.subtreeFlags = suspenseContext.subtreeFlags & 14680064); - null !== JSCompiler_temp ? showFallback = createWorkInProgress(JSCompiler_temp, showFallback) : (showFallback = createFiberFromFragment(showFallback, didSuspend, renderLanes, null), showFallback.flags |= 2); - showFallback.return = workInProgress; - nextProps.return = workInProgress; - nextProps.sibling = showFallback; - workInProgress.child = nextProps; - nextProps = showFallback; - showFallback = workInProgress.child; - didSuspend = current.child.memoizedState; - didSuspend = null === didSuspend ? mountSuspenseOffscreenState(renderLanes) : { - baseLanes: didSuspend.baseLanes | renderLanes, - cachePool: null, - transitions: didSuspend.transitions - }; - showFallback.memoizedState = didSuspend; - showFallback.childLanes = current.childLanes & ~renderLanes; - workInProgress.memoizedState = SUSPENDED_MARKER; - return nextProps; - } - showFallback = current.child; - current = showFallback.sibling; - nextProps = createWorkInProgress(showFallback, { - mode: "visible", - children: nextProps.children - }); - 0 === (workInProgress.mode & 1) && (nextProps.lanes = renderLanes); - nextProps.return = workInProgress; - nextProps.sibling = null; - null !== current && (renderLanes = workInProgress.deletions, null === renderLanes ? (workInProgress.deletions = [current], workInProgress.flags |= 16) : renderLanes.push(current)); - workInProgress.child = nextProps; - workInProgress.memoizedState = null; - return nextProps; - } - function mountSuspensePrimaryChildren(workInProgress, primaryChildren) { - primaryChildren = createFiberFromOffscreen({ - mode: "visible", - children: primaryChildren - }, workInProgress.mode, 0, null); - primaryChildren.return = workInProgress; - return workInProgress.child = primaryChildren; - } - function retrySuspenseComponentWithoutHydrating(current, workInProgress, renderLanes, recoverableError) { - null !== recoverableError && (null === hydrationErrors ? hydrationErrors = [recoverableError] : hydrationErrors.push(recoverableError)); - reconcileChildFibers(workInProgress, current.child, null, renderLanes); - current = mountSuspensePrimaryChildren(workInProgress, workInProgress.pendingProps.children); - current.flags |= 2; - workInProgress.memoizedState = null; - return current; - } - function updateDehydratedSuspenseComponent(current, workInProgress, didSuspend, nextProps, suspenseInstance, suspenseState, renderLanes) { - if (didSuspend) { - if (workInProgress.flags & 256) return workInProgress.flags &= -257, suspenseState = createCapturedValue(Error("There was an error while hydrating this Suspense boundary. Switched to client rendering.")), retrySuspenseComponentWithoutHydrating(current, workInProgress, renderLanes, suspenseState); - if (null !== workInProgress.memoizedState) return workInProgress.child = current.child, workInProgress.flags |= 128, null; - suspenseState = nextProps.fallback; - didSuspend = workInProgress.mode; - nextProps = createFiberFromOffscreen({ - mode: "visible", - children: nextProps.children - }, didSuspend, 0, null); - suspenseState = createFiberFromFragment(suspenseState, didSuspend, renderLanes, null); - suspenseState.flags |= 2; - nextProps.return = workInProgress; - suspenseState.return = workInProgress; - nextProps.sibling = suspenseState; - workInProgress.child = nextProps; - 0 !== (workInProgress.mode & 1) && reconcileChildFibers(workInProgress, current.child, null, renderLanes); - workInProgress.child.memoizedState = mountSuspenseOffscreenState(renderLanes); - workInProgress.memoizedState = SUSPENDED_MARKER; - return suspenseState; - } - if (0 === (workInProgress.mode & 1)) return retrySuspenseComponentWithoutHydrating(current, workInProgress, renderLanes, null); - if (shim()) return suspenseState = shim().digest, suspenseState = createCapturedValue(Error("The server could not finish this Suspense boundary, likely due to an error during server rendering. Switched to client rendering."), suspenseState, undefined), retrySuspenseComponentWithoutHydrating(current, workInProgress, renderLanes, suspenseState); - didSuspend = 0 !== (renderLanes & current.childLanes); - if (didReceiveUpdate || didSuspend) { - nextProps = workInProgressRoot; - if (null !== nextProps) { - switch (renderLanes & -renderLanes) { - case 4: - didSuspend = 2; - break; - case 16: - didSuspend = 8; - break; - case 64: - case 128: - case 256: - case 512: - case 1024: - case 2048: - case 4096: - case 8192: - case 16384: - case 32768: - case 65536: - case 131072: - case 262144: - case 524288: - case 1048576: - case 2097152: - case 4194304: - case 8388608: - case 16777216: - case 33554432: - case 67108864: - didSuspend = 32; - break; - case 536870912: - didSuspend = 268435456; - break; - default: - didSuspend = 0; - } - didSuspend = 0 !== (didSuspend & (nextProps.suspendedLanes | renderLanes)) ? 0 : didSuspend; - 0 !== didSuspend && didSuspend !== suspenseState.retryLane && (suspenseState.retryLane = didSuspend, markUpdateLaneFromFiberToRoot(current, didSuspend), scheduleUpdateOnFiber(nextProps, current, didSuspend, -1)); - } - renderDidSuspendDelayIfPossible(); - suspenseState = createCapturedValue(Error("This Suspense boundary received an update before it finished hydrating. This caused the boundary to switch to client rendering. The usual way to fix this is to wrap the original update in startTransition.")); - return retrySuspenseComponentWithoutHydrating(current, workInProgress, renderLanes, suspenseState); - } - if (shim()) return workInProgress.flags |= 128, workInProgress.child = current.child, retryDehydratedSuspenseBoundary.bind(null, current), shim(), null; - current = mountSuspensePrimaryChildren(workInProgress, nextProps.children); - current.flags |= 4096; - return current; - } - function scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) { - fiber.lanes |= renderLanes; - var alternate = fiber.alternate; - null !== alternate && (alternate.lanes |= renderLanes); - scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot); - } - function initSuspenseListRenderState(workInProgress, isBackwards, tail, lastContentRow, tailMode) { - var renderState = workInProgress.memoizedState; - null === renderState ? workInProgress.memoizedState = { - isBackwards: isBackwards, - rendering: null, - renderingStartTime: 0, - last: lastContentRow, - tail: tail, - tailMode: tailMode - } : (renderState.isBackwards = isBackwards, renderState.rendering = null, renderState.renderingStartTime = 0, renderState.last = lastContentRow, renderState.tail = tail, renderState.tailMode = tailMode); - } - function updateSuspenseListComponent(current, workInProgress, renderLanes) { - var nextProps = workInProgress.pendingProps, - revealOrder = nextProps.revealOrder, - tailMode = nextProps.tail; - reconcileChildren(current, workInProgress, nextProps.children, renderLanes); - nextProps = suspenseStackCursor.current; - if (0 !== (nextProps & 2)) nextProps = nextProps & 1 | 2, workInProgress.flags |= 128;else { - if (null !== current && 0 !== (current.flags & 128)) a: for (current = workInProgress.child; null !== current;) { - if (13 === current.tag) null !== current.memoizedState && scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);else if (19 === current.tag) scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);else if (null !== current.child) { - current.child.return = current; - current = current.child; - continue; - } - if (current === workInProgress) break a; - for (; null === current.sibling;) { - if (null === current.return || current.return === workInProgress) break a; - current = current.return; - } - current.sibling.return = current.return; - current = current.sibling; - } - nextProps &= 1; - } - push(suspenseStackCursor, nextProps); - if (0 === (workInProgress.mode & 1)) workInProgress.memoizedState = null;else switch (revealOrder) { - case "forwards": - renderLanes = workInProgress.child; - for (revealOrder = null; null !== renderLanes;) current = renderLanes.alternate, null !== current && null === findFirstSuspended(current) && (revealOrder = renderLanes), renderLanes = renderLanes.sibling; - renderLanes = revealOrder; - null === renderLanes ? (revealOrder = workInProgress.child, workInProgress.child = null) : (revealOrder = renderLanes.sibling, renderLanes.sibling = null); - initSuspenseListRenderState(workInProgress, false, revealOrder, renderLanes, tailMode); - break; - case "backwards": - renderLanes = null; - revealOrder = workInProgress.child; - for (workInProgress.child = null; null !== revealOrder;) { - current = revealOrder.alternate; - if (null !== current && null === findFirstSuspended(current)) { - workInProgress.child = revealOrder; - break; - } - current = revealOrder.sibling; - revealOrder.sibling = renderLanes; - renderLanes = revealOrder; - revealOrder = current; - } - initSuspenseListRenderState(workInProgress, true, renderLanes, null, tailMode); - break; - case "together": - initSuspenseListRenderState(workInProgress, false, null, null, undefined); - break; - default: - workInProgress.memoizedState = null; - } - return workInProgress.child; - } - function resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress) { - 0 === (workInProgress.mode & 1) && null !== current && (current.alternate = null, workInProgress.alternate = null, workInProgress.flags |= 2); - } - function bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) { - null !== current && (workInProgress.dependencies = current.dependencies); - workInProgressRootSkippedLanes |= workInProgress.lanes; - if (0 === (renderLanes & workInProgress.childLanes)) return null; - if (null !== current && workInProgress.child !== current.child) throw Error("Resuming work not yet implemented."); - if (null !== workInProgress.child) { - current = workInProgress.child; - renderLanes = createWorkInProgress(current, current.pendingProps); - workInProgress.child = renderLanes; - for (renderLanes.return = workInProgress; null !== current.sibling;) current = current.sibling, renderLanes = renderLanes.sibling = createWorkInProgress(current, current.pendingProps), renderLanes.return = workInProgress; - renderLanes.sibling = null; - } - return workInProgress.child; - } - function attemptEarlyBailoutIfNoScheduledUpdate(current, workInProgress, renderLanes) { - switch (workInProgress.tag) { - case 3: - pushHostRootContext(workInProgress); - break; - case 5: - pushHostContext(workInProgress); - break; - case 1: - isContextProvider(workInProgress.type) && pushContextProvider(workInProgress); - break; - case 4: - pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo); - break; - case 10: - var context = workInProgress.type._context, - nextValue = workInProgress.memoizedProps.value; - push(valueCursor, context._currentValue); - context._currentValue = nextValue; - break; - case 13: - context = workInProgress.memoizedState; - if (null !== context) { - if (null !== context.dehydrated) return push(suspenseStackCursor, suspenseStackCursor.current & 1), workInProgress.flags |= 128, null; - if (0 !== (renderLanes & workInProgress.child.childLanes)) return updateSuspenseComponent(current, workInProgress, renderLanes); - push(suspenseStackCursor, suspenseStackCursor.current & 1); - current = bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes); - return null !== current ? current.sibling : null; - } - push(suspenseStackCursor, suspenseStackCursor.current & 1); - break; - case 19: - context = 0 !== (renderLanes & workInProgress.childLanes); - if (0 !== (current.flags & 128)) { - if (context) return updateSuspenseListComponent(current, workInProgress, renderLanes); - workInProgress.flags |= 128; - } - nextValue = workInProgress.memoizedState; - null !== nextValue && (nextValue.rendering = null, nextValue.tail = null, nextValue.lastEffect = null); - push(suspenseStackCursor, suspenseStackCursor.current); - if (context) break;else return null; - case 22: - case 23: - return workInProgress.lanes = 0, updateOffscreenComponent(current, workInProgress, renderLanes); - } - return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes); - } - var appendAllChildren, updateHostContainer, updateHostComponent$1, updateHostText$1; - appendAllChildren = function appendAllChildren(parent, workInProgress) { - for (var node = workInProgress.child; null !== node;) { - if (5 === node.tag || 6 === node.tag) parent._children.push(node.stateNode);else if (4 !== node.tag && null !== node.child) { - node.child.return = node; - node = node.child; - continue; - } - if (node === workInProgress) break; - for (; null === node.sibling;) { - if (null === node.return || node.return === workInProgress) return; - node = node.return; - } - node.sibling.return = node.return; - node = node.sibling; - } - }; - updateHostContainer = function updateHostContainer() {}; - updateHostComponent$1 = function updateHostComponent$1(current, workInProgress, type, newProps) { - current.memoizedProps !== newProps && (requiredContext(contextStackCursor$1.current), workInProgress.updateQueue = UPDATE_SIGNAL) && (workInProgress.flags |= 4); - }; - updateHostText$1 = function updateHostText$1(current, workInProgress, oldText, newText) { - oldText !== newText && (workInProgress.flags |= 4); - }; - function cutOffTailIfNeeded(renderState, hasRenderedATailFallback) { - switch (renderState.tailMode) { - case "hidden": - hasRenderedATailFallback = renderState.tail; - for (var lastTailNode = null; null !== hasRenderedATailFallback;) null !== hasRenderedATailFallback.alternate && (lastTailNode = hasRenderedATailFallback), hasRenderedATailFallback = hasRenderedATailFallback.sibling; - null === lastTailNode ? renderState.tail = null : lastTailNode.sibling = null; - break; - case "collapsed": - lastTailNode = renderState.tail; - for (var lastTailNode$62 = null; null !== lastTailNode;) null !== lastTailNode.alternate && (lastTailNode$62 = lastTailNode), lastTailNode = lastTailNode.sibling; - null === lastTailNode$62 ? hasRenderedATailFallback || null === renderState.tail ? renderState.tail = null : renderState.tail.sibling = null : lastTailNode$62.sibling = null; - } - } - function bubbleProperties(completedWork) { - var didBailout = null !== completedWork.alternate && completedWork.alternate.child === completedWork.child, - newChildLanes = 0, - subtreeFlags = 0; - if (didBailout) for (var child$63 = completedWork.child; null !== child$63;) newChildLanes |= child$63.lanes | child$63.childLanes, subtreeFlags |= child$63.subtreeFlags & 14680064, subtreeFlags |= child$63.flags & 14680064, child$63.return = completedWork, child$63 = child$63.sibling;else for (child$63 = completedWork.child; null !== child$63;) newChildLanes |= child$63.lanes | child$63.childLanes, subtreeFlags |= child$63.subtreeFlags, subtreeFlags |= child$63.flags, child$63.return = completedWork, child$63 = child$63.sibling; - completedWork.subtreeFlags |= subtreeFlags; - completedWork.childLanes = newChildLanes; - return didBailout; - } - function completeWork(current, workInProgress, renderLanes) { - var newProps = workInProgress.pendingProps; - popTreeContext(workInProgress); - switch (workInProgress.tag) { - case 2: - case 16: - case 15: - case 0: - case 11: - case 7: - case 8: - case 12: - case 9: - case 14: - return bubbleProperties(workInProgress), null; - case 1: - return isContextProvider(workInProgress.type) && popContext(), bubbleProperties(workInProgress), null; - case 3: - return renderLanes = workInProgress.stateNode, popHostContainer(), pop(didPerformWorkStackCursor), pop(contextStackCursor), resetWorkInProgressVersions(), renderLanes.pendingContext && (renderLanes.context = renderLanes.pendingContext, renderLanes.pendingContext = null), null !== current && null !== current.child || null === current || current.memoizedState.isDehydrated && 0 === (workInProgress.flags & 256) || (workInProgress.flags |= 1024, null !== hydrationErrors && (queueRecoverableErrors(hydrationErrors), hydrationErrors = null)), updateHostContainer(current, workInProgress), bubbleProperties(workInProgress), null; - case 5: - popHostContext(workInProgress); - renderLanes = requiredContext(rootInstanceStackCursor.current); - var type = workInProgress.type; - if (null !== current && null != workInProgress.stateNode) updateHostComponent$1(current, workInProgress, type, newProps, renderLanes), current.ref !== workInProgress.ref && (workInProgress.flags |= 512);else { - if (!newProps) { - if (null === workInProgress.stateNode) throw Error("We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue."); - bubbleProperties(workInProgress); - return null; - } - requiredContext(contextStackCursor$1.current); - current = allocateTag(); - type = getViewConfigForType(type); - var updatePayload = diffProperties(null, emptyObject, newProps, type.validAttributes); - _$$_REQUIRE(_dependencyMap[2]).UIManager.createView(current, type.uiViewClassName, renderLanes, updatePayload); - renderLanes = new ReactNativeFiberHostComponent(current, type, workInProgress); - instanceCache.set(current, workInProgress); - instanceProps.set(current, newProps); - appendAllChildren(renderLanes, workInProgress, false, false); - workInProgress.stateNode = renderLanes; - finalizeInitialChildren(renderLanes) && (workInProgress.flags |= 4); - null !== workInProgress.ref && (workInProgress.flags |= 512); - } - bubbleProperties(workInProgress); - return null; - case 6: - if (current && null != workInProgress.stateNode) updateHostText$1(current, workInProgress, current.memoizedProps, newProps);else { - if ("string" !== typeof newProps && null === workInProgress.stateNode) throw Error("We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue."); - current = requiredContext(rootInstanceStackCursor.current); - if (!requiredContext(contextStackCursor$1.current).isInAParentText) throw Error("Text strings must be rendered within a component."); - renderLanes = allocateTag(); - _$$_REQUIRE(_dependencyMap[2]).UIManager.createView(renderLanes, "RCTRawText", current, { - text: newProps - }); - instanceCache.set(renderLanes, workInProgress); - workInProgress.stateNode = renderLanes; - } - bubbleProperties(workInProgress); - return null; - case 13: - pop(suspenseStackCursor); - newProps = workInProgress.memoizedState; - if (null === current || null !== current.memoizedState && null !== current.memoizedState.dehydrated) { - if (null !== newProps && null !== newProps.dehydrated) { - if (null === current) { - throw Error("A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React."); - throw Error("Expected prepareToHydrateHostSuspenseInstance() to never be called. This error is likely caused by a bug in React. Please file an issue."); - } - 0 === (workInProgress.flags & 128) && (workInProgress.memoizedState = null); - workInProgress.flags |= 4; - bubbleProperties(workInProgress); - type = false; - } else null !== hydrationErrors && (queueRecoverableErrors(hydrationErrors), hydrationErrors = null), type = true; - if (!type) return workInProgress.flags & 65536 ? workInProgress : null; - } - if (0 !== (workInProgress.flags & 128)) return workInProgress.lanes = renderLanes, workInProgress; - renderLanes = null !== newProps; - renderLanes !== (null !== current && null !== current.memoizedState) && renderLanes && (workInProgress.child.flags |= 8192, 0 !== (workInProgress.mode & 1) && (null === current || 0 !== (suspenseStackCursor.current & 1) ? 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 3) : renderDidSuspendDelayIfPossible())); - null !== workInProgress.updateQueue && (workInProgress.flags |= 4); - bubbleProperties(workInProgress); - return null; - case 4: - return popHostContainer(), updateHostContainer(current, workInProgress), bubbleProperties(workInProgress), null; - case 10: - return popProvider(workInProgress.type._context), bubbleProperties(workInProgress), null; - case 17: - return isContextProvider(workInProgress.type) && popContext(), bubbleProperties(workInProgress), null; - case 19: - pop(suspenseStackCursor); - type = workInProgress.memoizedState; - if (null === type) return bubbleProperties(workInProgress), null; - newProps = 0 !== (workInProgress.flags & 128); - updatePayload = type.rendering; - if (null === updatePayload) { - if (newProps) cutOffTailIfNeeded(type, false);else { - if (0 !== workInProgressRootExitStatus || null !== current && 0 !== (current.flags & 128)) for (current = workInProgress.child; null !== current;) { - updatePayload = findFirstSuspended(current); - if (null !== updatePayload) { - workInProgress.flags |= 128; - cutOffTailIfNeeded(type, false); - current = updatePayload.updateQueue; - null !== current && (workInProgress.updateQueue = current, workInProgress.flags |= 4); - workInProgress.subtreeFlags = 0; - current = renderLanes; - for (renderLanes = workInProgress.child; null !== renderLanes;) newProps = renderLanes, type = current, newProps.flags &= 14680066, updatePayload = newProps.alternate, null === updatePayload ? (newProps.childLanes = 0, newProps.lanes = type, newProps.child = null, newProps.subtreeFlags = 0, newProps.memoizedProps = null, newProps.memoizedState = null, newProps.updateQueue = null, newProps.dependencies = null, newProps.stateNode = null) : (newProps.childLanes = updatePayload.childLanes, newProps.lanes = updatePayload.lanes, newProps.child = updatePayload.child, newProps.subtreeFlags = 0, newProps.deletions = null, newProps.memoizedProps = updatePayload.memoizedProps, newProps.memoizedState = updatePayload.memoizedState, newProps.updateQueue = updatePayload.updateQueue, newProps.type = updatePayload.type, type = updatePayload.dependencies, newProps.dependencies = null === type ? null : { - lanes: type.lanes, - firstContext: type.firstContext - }), renderLanes = renderLanes.sibling; - push(suspenseStackCursor, suspenseStackCursor.current & 1 | 2); - return workInProgress.child; - } - current = current.sibling; - } - null !== type.tail && _$$_REQUIRE(_dependencyMap[3]).unstable_now() > workInProgressRootRenderTargetTime && (workInProgress.flags |= 128, newProps = true, cutOffTailIfNeeded(type, false), workInProgress.lanes = 4194304); - } - } else { - if (!newProps) if (current = findFirstSuspended(updatePayload), null !== current) { - if (workInProgress.flags |= 128, newProps = true, current = current.updateQueue, null !== current && (workInProgress.updateQueue = current, workInProgress.flags |= 4), cutOffTailIfNeeded(type, true), null === type.tail && "hidden" === type.tailMode && !updatePayload.alternate) return bubbleProperties(workInProgress), null; - } else 2 * _$$_REQUIRE(_dependencyMap[3]).unstable_now() - type.renderingStartTime > workInProgressRootRenderTargetTime && 1073741824 !== renderLanes && (workInProgress.flags |= 128, newProps = true, cutOffTailIfNeeded(type, false), workInProgress.lanes = 4194304); - type.isBackwards ? (updatePayload.sibling = workInProgress.child, workInProgress.child = updatePayload) : (current = type.last, null !== current ? current.sibling = updatePayload : workInProgress.child = updatePayload, type.last = updatePayload); - } - if (null !== type.tail) return workInProgress = type.tail, type.rendering = workInProgress, type.tail = workInProgress.sibling, type.renderingStartTime = _$$_REQUIRE(_dependencyMap[3]).unstable_now(), workInProgress.sibling = null, current = suspenseStackCursor.current, push(suspenseStackCursor, newProps ? current & 1 | 2 : current & 1), workInProgress; - bubbleProperties(workInProgress); - return null; - case 22: - case 23: - return popRenderLanes(), renderLanes = null !== workInProgress.memoizedState, null !== current && null !== current.memoizedState !== renderLanes && (workInProgress.flags |= 8192), renderLanes && 0 !== (workInProgress.mode & 1) ? 0 !== (subtreeRenderLanes & 1073741824) && (bubbleProperties(workInProgress), workInProgress.subtreeFlags & 6 && (workInProgress.flags |= 8192)) : bubbleProperties(workInProgress), null; - case 24: - return null; - case 25: - return null; - } - throw Error("Unknown unit of work tag (" + workInProgress.tag + "). This error is likely caused by a bug in React. Please file an issue."); - } - function unwindWork(current, workInProgress) { - popTreeContext(workInProgress); - switch (workInProgress.tag) { - case 1: - return isContextProvider(workInProgress.type) && popContext(), current = workInProgress.flags, current & 65536 ? (workInProgress.flags = current & -65537 | 128, workInProgress) : null; - case 3: - return popHostContainer(), pop(didPerformWorkStackCursor), pop(contextStackCursor), resetWorkInProgressVersions(), current = workInProgress.flags, 0 !== (current & 65536) && 0 === (current & 128) ? (workInProgress.flags = current & -65537 | 128, workInProgress) : null; - case 5: - return popHostContext(workInProgress), null; - case 13: - pop(suspenseStackCursor); - current = workInProgress.memoizedState; - if (null !== current && null !== current.dehydrated && null === workInProgress.alternate) throw Error("Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue."); - current = workInProgress.flags; - return current & 65536 ? (workInProgress.flags = current & -65537 | 128, workInProgress) : null; - case 19: - return pop(suspenseStackCursor), null; - case 4: - return popHostContainer(), null; - case 10: - return popProvider(workInProgress.type._context), null; - case 22: - case 23: - return popRenderLanes(), null; - case 24: - return null; - default: - return null; - } - } - var PossiblyWeakSet = "function" === typeof WeakSet ? WeakSet : Set, - nextEffect = null; - function safelyDetachRef(current, nearestMountedAncestor) { - var ref = current.ref; - if (null !== ref) if ("function" === typeof ref) try { - ref(null); - } catch (error) { - captureCommitPhaseError(current, nearestMountedAncestor, error); - } else ref.current = null; - } - function safelyCallDestroy(current, nearestMountedAncestor, destroy) { - try { - destroy(); - } catch (error) { - captureCommitPhaseError(current, nearestMountedAncestor, error); - } - } - var shouldFireAfterActiveInstanceBlur = false; - function commitBeforeMutationEffects(root, firstChild) { - for (nextEffect = firstChild; null !== nextEffect;) if (root = nextEffect, firstChild = root.child, 0 !== (root.subtreeFlags & 1028) && null !== firstChild) firstChild.return = root, nextEffect = firstChild;else for (; null !== nextEffect;) { - root = nextEffect; - try { - var current = root.alternate; - if (0 !== (root.flags & 1024)) switch (root.tag) { - case 0: - case 11: - case 15: - break; - case 1: - if (null !== current) { - var prevProps = current.memoizedProps, - prevState = current.memoizedState, - instance = root.stateNode, - snapshot = instance.getSnapshotBeforeUpdate(root.elementType === root.type ? prevProps : resolveDefaultProps(root.type, prevProps), prevState); - instance.__reactInternalSnapshotBeforeUpdate = snapshot; - } - break; - case 3: - break; - case 5: - case 6: - case 4: - case 17: - break; - default: - throw Error("This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue."); - } - } catch (error) { - captureCommitPhaseError(root, root.return, error); - } - firstChild = root.sibling; - if (null !== firstChild) { - firstChild.return = root.return; - nextEffect = firstChild; - break; - } - nextEffect = root.return; - } - current = shouldFireAfterActiveInstanceBlur; - shouldFireAfterActiveInstanceBlur = false; - return current; - } - function commitHookEffectListUnmount(flags, finishedWork, nearestMountedAncestor) { - var updateQueue = finishedWork.updateQueue; - updateQueue = null !== updateQueue ? updateQueue.lastEffect : null; - if (null !== updateQueue) { - var effect = updateQueue = updateQueue.next; - do { - if ((effect.tag & flags) === flags) { - var destroy = effect.destroy; - effect.destroy = undefined; - undefined !== destroy && safelyCallDestroy(finishedWork, nearestMountedAncestor, destroy); - } - effect = effect.next; - } while (effect !== updateQueue); - } - } - function commitHookEffectListMount(flags, finishedWork) { - finishedWork = finishedWork.updateQueue; - finishedWork = null !== finishedWork ? finishedWork.lastEffect : null; - if (null !== finishedWork) { - var effect = finishedWork = finishedWork.next; - do { - if ((effect.tag & flags) === flags) { - var create$75 = effect.create; - effect.destroy = create$75(); - } - effect = effect.next; - } while (effect !== finishedWork); - } - } - function detachFiberAfterEffects(fiber) { - var alternate = fiber.alternate; - null !== alternate && (fiber.alternate = null, detachFiberAfterEffects(alternate)); - fiber.child = null; - fiber.deletions = null; - fiber.sibling = null; - fiber.stateNode = null; - fiber.return = null; - fiber.dependencies = null; - fiber.memoizedProps = null; - fiber.memoizedState = null; - fiber.pendingProps = null; - fiber.stateNode = null; - fiber.updateQueue = null; - } - function isHostParent(fiber) { - return 5 === fiber.tag || 3 === fiber.tag || 4 === fiber.tag; - } - function getHostSibling(fiber) { - a: for (;;) { - for (; null === fiber.sibling;) { - if (null === fiber.return || isHostParent(fiber.return)) return null; - fiber = fiber.return; - } - fiber.sibling.return = fiber.return; - for (fiber = fiber.sibling; 5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;) { - if (fiber.flags & 2) continue a; - if (null === fiber.child || 4 === fiber.tag) continue a;else fiber.child.return = fiber, fiber = fiber.child; - } - if (!(fiber.flags & 2)) return fiber.stateNode; - } - } - function insertOrAppendPlacementNodeIntoContainer(node, before, parent) { - var tag = node.tag; - if (5 === tag || 6 === tag) { - if (node = node.stateNode, before) { - if ("number" === typeof parent) throw Error("Container does not support insertBefore operation"); - } else _$$_REQUIRE(_dependencyMap[2]).UIManager.setChildren(parent, ["number" === typeof node ? node : node._nativeTag]); - } else if (4 !== tag && (node = node.child, null !== node)) for (insertOrAppendPlacementNodeIntoContainer(node, before, parent), node = node.sibling; null !== node;) insertOrAppendPlacementNodeIntoContainer(node, before, parent), node = node.sibling; - } - function insertOrAppendPlacementNode(node, before, parent) { - var tag = node.tag; - if (5 === tag || 6 === tag) { - if (node = node.stateNode, before) { - tag = parent._children; - var index = tag.indexOf(node); - 0 <= index ? (tag.splice(index, 1), before = tag.indexOf(before), tag.splice(before, 0, node), _$$_REQUIRE(_dependencyMap[2]).UIManager.manageChildren(parent._nativeTag, [index], [before], [], [], [])) : (before = tag.indexOf(before), tag.splice(before, 0, node), _$$_REQUIRE(_dependencyMap[2]).UIManager.manageChildren(parent._nativeTag, [], [], ["number" === typeof node ? node : node._nativeTag], [before], [])); - } else before = "number" === typeof node ? node : node._nativeTag, tag = parent._children, index = tag.indexOf(node), 0 <= index ? (tag.splice(index, 1), tag.push(node), _$$_REQUIRE(_dependencyMap[2]).UIManager.manageChildren(parent._nativeTag, [index], [tag.length - 1], [], [], [])) : (tag.push(node), _$$_REQUIRE(_dependencyMap[2]).UIManager.manageChildren(parent._nativeTag, [], [], [before], [tag.length - 1], [])); - } else if (4 !== tag && (node = node.child, null !== node)) for (insertOrAppendPlacementNode(node, before, parent), node = node.sibling; null !== node;) insertOrAppendPlacementNode(node, before, parent), node = node.sibling; - } - var hostParent = null, - hostParentIsContainer = false; - function recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, parent) { - for (parent = parent.child; null !== parent;) commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent), parent = parent.sibling; - } - function commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, deletedFiber) { - if (injectedHook && "function" === typeof injectedHook.onCommitFiberUnmount) try { - injectedHook.onCommitFiberUnmount(rendererID, deletedFiber); - } catch (err) {} - switch (deletedFiber.tag) { - case 5: - safelyDetachRef(deletedFiber, nearestMountedAncestor); - case 6: - var prevHostParent = hostParent, - prevHostParentIsContainer = hostParentIsContainer; - hostParent = null; - recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber); - hostParent = prevHostParent; - hostParentIsContainer = prevHostParentIsContainer; - null !== hostParent && (hostParentIsContainer ? (finishedRoot = hostParent, recursivelyUncacheFiberNode(deletedFiber.stateNode), _$$_REQUIRE(_dependencyMap[2]).UIManager.manageChildren(finishedRoot, [], [], [], [], [0])) : (finishedRoot = hostParent, nearestMountedAncestor = deletedFiber.stateNode, recursivelyUncacheFiberNode(nearestMountedAncestor), deletedFiber = finishedRoot._children, nearestMountedAncestor = deletedFiber.indexOf(nearestMountedAncestor), deletedFiber.splice(nearestMountedAncestor, 1), _$$_REQUIRE(_dependencyMap[2]).UIManager.manageChildren(finishedRoot._nativeTag, [], [], [], [], [nearestMountedAncestor]))); - break; - case 18: - null !== hostParent && shim(hostParent, deletedFiber.stateNode); - break; - case 4: - prevHostParent = hostParent; - prevHostParentIsContainer = hostParentIsContainer; - hostParent = deletedFiber.stateNode.containerInfo; - hostParentIsContainer = true; - recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber); - hostParent = prevHostParent; - hostParentIsContainer = prevHostParentIsContainer; - break; - case 0: - case 11: - case 14: - case 15: - prevHostParent = deletedFiber.updateQueue; - if (null !== prevHostParent && (prevHostParent = prevHostParent.lastEffect, null !== prevHostParent)) { - prevHostParentIsContainer = prevHostParent = prevHostParent.next; - do { - var _effect = prevHostParentIsContainer, - destroy = _effect.destroy; - _effect = _effect.tag; - undefined !== destroy && (0 !== (_effect & 2) ? safelyCallDestroy(deletedFiber, nearestMountedAncestor, destroy) : 0 !== (_effect & 4) && safelyCallDestroy(deletedFiber, nearestMountedAncestor, destroy)); - prevHostParentIsContainer = prevHostParentIsContainer.next; - } while (prevHostParentIsContainer !== prevHostParent); - } - recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber); - break; - case 1: - safelyDetachRef(deletedFiber, nearestMountedAncestor); - prevHostParent = deletedFiber.stateNode; - if ("function" === typeof prevHostParent.componentWillUnmount) try { - prevHostParent.props = deletedFiber.memoizedProps, prevHostParent.state = deletedFiber.memoizedState, prevHostParent.componentWillUnmount(); - } catch (error) { - captureCommitPhaseError(deletedFiber, nearestMountedAncestor, error); - } - recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber); - break; - case 21: - recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber); - break; - case 22: - recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber); - break; - default: - recursivelyTraverseDeletionEffects(finishedRoot, nearestMountedAncestor, deletedFiber); - } - } - function attachSuspenseRetryListeners(finishedWork) { - var wakeables = finishedWork.updateQueue; - if (null !== wakeables) { - finishedWork.updateQueue = null; - var retryCache = finishedWork.stateNode; - null === retryCache && (retryCache = finishedWork.stateNode = new PossiblyWeakSet()); - wakeables.forEach(function (wakeable) { - var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable); - retryCache.has(wakeable) || (retryCache.add(wakeable), wakeable.then(retry, retry)); - }); - } - } - function recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) { - var deletions = parentFiber.deletions; - if (null !== deletions) for (var i = 0; i < deletions.length; i++) { - var childToDelete = deletions[i]; - try { - var root = root$jscomp$0, - returnFiber = parentFiber, - parent = returnFiber; - a: for (; null !== parent;) { - switch (parent.tag) { - case 5: - hostParent = parent.stateNode; - hostParentIsContainer = false; - break a; - case 3: - hostParent = parent.stateNode.containerInfo; - hostParentIsContainer = true; - break a; - case 4: - hostParent = parent.stateNode.containerInfo; - hostParentIsContainer = true; - break a; - } - parent = parent.return; - } - if (null === hostParent) throw Error("Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue."); - commitDeletionEffectsOnFiber(root, returnFiber, childToDelete); - hostParent = null; - hostParentIsContainer = false; - var alternate = childToDelete.alternate; - null !== alternate && (alternate.return = null); - childToDelete.return = null; - } catch (error) { - captureCommitPhaseError(childToDelete, parentFiber, error); - } - } - if (parentFiber.subtreeFlags & 12854) for (parentFiber = parentFiber.child; null !== parentFiber;) commitMutationEffectsOnFiber(parentFiber, root$jscomp$0), parentFiber = parentFiber.sibling; - } - function commitMutationEffectsOnFiber(finishedWork, root) { - var current = finishedWork.alternate, - flags = finishedWork.flags; - switch (finishedWork.tag) { - case 0: - case 11: - case 14: - case 15: - recursivelyTraverseMutationEffects(root, finishedWork); - commitReconciliationEffects(finishedWork); - if (flags & 4) { - try { - commitHookEffectListUnmount(3, finishedWork, finishedWork.return), commitHookEffectListMount(3, finishedWork); - } catch (error) { - captureCommitPhaseError(finishedWork, finishedWork.return, error); - } - try { - commitHookEffectListUnmount(5, finishedWork, finishedWork.return); - } catch (error$85) { - captureCommitPhaseError(finishedWork, finishedWork.return, error$85); - } - } - break; - case 1: - recursivelyTraverseMutationEffects(root, finishedWork); - commitReconciliationEffects(finishedWork); - flags & 512 && null !== current && safelyDetachRef(current, current.return); - break; - case 5: - recursivelyTraverseMutationEffects(root, finishedWork); - commitReconciliationEffects(finishedWork); - flags & 512 && null !== current && safelyDetachRef(current, current.return); - if (flags & 4) { - var instance$87 = finishedWork.stateNode; - if (null != instance$87) { - var newProps = finishedWork.memoizedProps, - oldProps = null !== current ? current.memoizedProps : newProps, - updatePayload = finishedWork.updateQueue; - finishedWork.updateQueue = null; - if (null !== updatePayload) try { - var viewConfig = instance$87.viewConfig; - instanceProps.set(instance$87._nativeTag, newProps); - var updatePayload$jscomp$0 = diffProperties(null, oldProps, newProps, viewConfig.validAttributes); - null != updatePayload$jscomp$0 && _$$_REQUIRE(_dependencyMap[2]).UIManager.updateView(instance$87._nativeTag, viewConfig.uiViewClassName, updatePayload$jscomp$0); - } catch (error$88) { - captureCommitPhaseError(finishedWork, finishedWork.return, error$88); - } - } - } - break; - case 6: - recursivelyTraverseMutationEffects(root, finishedWork); - commitReconciliationEffects(finishedWork); - if (flags & 4) { - if (null === finishedWork.stateNode) throw Error("This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue."); - viewConfig = finishedWork.stateNode; - updatePayload$jscomp$0 = finishedWork.memoizedProps; - try { - _$$_REQUIRE(_dependencyMap[2]).UIManager.updateView(viewConfig, "RCTRawText", { - text: updatePayload$jscomp$0 - }); - } catch (error$89) { - captureCommitPhaseError(finishedWork, finishedWork.return, error$89); - } - } - break; - case 3: - recursivelyTraverseMutationEffects(root, finishedWork); - commitReconciliationEffects(finishedWork); - break; - case 4: - recursivelyTraverseMutationEffects(root, finishedWork); - commitReconciliationEffects(finishedWork); - break; - case 13: - recursivelyTraverseMutationEffects(root, finishedWork); - commitReconciliationEffects(finishedWork); - viewConfig = finishedWork.child; - viewConfig.flags & 8192 && (updatePayload$jscomp$0 = null !== viewConfig.memoizedState, viewConfig.stateNode.isHidden = updatePayload$jscomp$0, !updatePayload$jscomp$0 || null !== viewConfig.alternate && null !== viewConfig.alternate.memoizedState || (globalMostRecentFallbackTime = _$$_REQUIRE(_dependencyMap[3]).unstable_now())); - flags & 4 && attachSuspenseRetryListeners(finishedWork); - break; - case 22: - recursivelyTraverseMutationEffects(root, finishedWork); - commitReconciliationEffects(finishedWork); - if (flags & 8192) a: for (viewConfig = null !== finishedWork.memoizedState, finishedWork.stateNode.isHidden = viewConfig, updatePayload$jscomp$0 = null, current = finishedWork;;) { - if (5 === current.tag) { - if (null === updatePayload$jscomp$0) { - updatePayload$jscomp$0 = current; - try { - if (instance$87 = current.stateNode, viewConfig) newProps = instance$87.viewConfig, oldProps = diffProperties(null, emptyObject, { - style: { - display: "none" - } - }, newProps.validAttributes), _$$_REQUIRE(_dependencyMap[2]).UIManager.updateView(instance$87._nativeTag, newProps.uiViewClassName, oldProps);else { - updatePayload = current.stateNode; - var props = current.memoizedProps, - viewConfig$jscomp$0 = updatePayload.viewConfig, - prevProps = assign({}, props, { - style: [props.style, { - display: "none" - }] - }); - var updatePayload$jscomp$1 = diffProperties(null, prevProps, props, viewConfig$jscomp$0.validAttributes); - _$$_REQUIRE(_dependencyMap[2]).UIManager.updateView(updatePayload._nativeTag, viewConfig$jscomp$0.uiViewClassName, updatePayload$jscomp$1); - } - } catch (error) { - captureCommitPhaseError(finishedWork, finishedWork.return, error); - } - } - } else if (6 === current.tag) { - if (null === updatePayload$jscomp$0) try { - throw Error("Not yet implemented."); - } catch (error$80) { - captureCommitPhaseError(finishedWork, finishedWork.return, error$80); - } - } else if ((22 !== current.tag && 23 !== current.tag || null === current.memoizedState || current === finishedWork) && null !== current.child) { - current.child.return = current; - current = current.child; - continue; - } - if (current === finishedWork) break a; - for (; null === current.sibling;) { - if (null === current.return || current.return === finishedWork) break a; - updatePayload$jscomp$0 === current && (updatePayload$jscomp$0 = null); - current = current.return; - } - updatePayload$jscomp$0 === current && (updatePayload$jscomp$0 = null); - current.sibling.return = current.return; - current = current.sibling; - } - break; - case 19: - recursivelyTraverseMutationEffects(root, finishedWork); - commitReconciliationEffects(finishedWork); - flags & 4 && attachSuspenseRetryListeners(finishedWork); - break; - case 21: - break; - default: - recursivelyTraverseMutationEffects(root, finishedWork), commitReconciliationEffects(finishedWork); - } - } - function commitReconciliationEffects(finishedWork) { - var flags = finishedWork.flags; - if (flags & 2) { - try { - a: { - for (var parent = finishedWork.return; null !== parent;) { - if (isHostParent(parent)) { - var JSCompiler_inline_result = parent; - break a; - } - parent = parent.return; - } - throw Error("Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue."); - } - switch (JSCompiler_inline_result.tag) { - case 5: - var parent$jscomp$0 = JSCompiler_inline_result.stateNode; - JSCompiler_inline_result.flags & 32 && (JSCompiler_inline_result.flags &= -33); - var before = getHostSibling(finishedWork); - insertOrAppendPlacementNode(finishedWork, before, parent$jscomp$0); - break; - case 3: - case 4: - var parent$81 = JSCompiler_inline_result.stateNode.containerInfo, - before$82 = getHostSibling(finishedWork); - insertOrAppendPlacementNodeIntoContainer(finishedWork, before$82, parent$81); - break; - default: - throw Error("Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue."); - } - } catch (error) { - captureCommitPhaseError(finishedWork, finishedWork.return, error); - } - finishedWork.flags &= -3; - } - flags & 4096 && (finishedWork.flags &= -4097); - } - function commitLayoutEffects(finishedWork) { - for (nextEffect = finishedWork; null !== nextEffect;) { - var fiber = nextEffect, - firstChild = fiber.child; - if (0 !== (fiber.subtreeFlags & 8772) && null !== firstChild) firstChild.return = fiber, nextEffect = firstChild;else for (fiber = finishedWork; null !== nextEffect;) { - firstChild = nextEffect; - if (0 !== (firstChild.flags & 8772)) { - var current = firstChild.alternate; - try { - if (0 !== (firstChild.flags & 8772)) switch (firstChild.tag) { - case 0: - case 11: - case 15: - commitHookEffectListMount(5, firstChild); - break; - case 1: - var instance = firstChild.stateNode; - if (firstChild.flags & 4) if (null === current) instance.componentDidMount();else { - var prevProps = firstChild.elementType === firstChild.type ? current.memoizedProps : resolveDefaultProps(firstChild.type, current.memoizedProps); - instance.componentDidUpdate(prevProps, current.memoizedState, instance.__reactInternalSnapshotBeforeUpdate); - } - var updateQueue = firstChild.updateQueue; - null !== updateQueue && commitUpdateQueue(firstChild, updateQueue, instance); - break; - case 3: - var updateQueue$76 = firstChild.updateQueue; - if (null !== updateQueue$76) { - current = null; - if (null !== firstChild.child) switch (firstChild.child.tag) { - case 5: - current = firstChild.child.stateNode; - break; - case 1: - current = firstChild.child.stateNode; - } - commitUpdateQueue(firstChild, updateQueue$76, current); - } - break; - case 5: - break; - case 6: - break; - case 4: - break; - case 12: - break; - case 13: - break; - case 19: - case 17: - case 21: - case 22: - case 23: - case 25: - break; - default: - throw Error("This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue."); - } - if (firstChild.flags & 512) { - current = undefined; - var ref = firstChild.ref; - if (null !== ref) { - var instance$jscomp$0 = firstChild.stateNode; - switch (firstChild.tag) { - case 5: - current = instance$jscomp$0; - break; - default: - current = instance$jscomp$0; - } - "function" === typeof ref ? ref(current) : ref.current = current; - } - } - } catch (error) { - captureCommitPhaseError(firstChild, firstChild.return, error); - } - } - if (firstChild === fiber) { - nextEffect = null; - break; - } - current = firstChild.sibling; - if (null !== current) { - current.return = firstChild.return; - nextEffect = current; - break; - } - nextEffect = firstChild.return; - } - } - } - var ceil = Math.ceil, - ReactCurrentDispatcher$2 = ReactSharedInternals.ReactCurrentDispatcher, - ReactCurrentOwner$2 = ReactSharedInternals.ReactCurrentOwner, - ReactCurrentBatchConfig$2 = ReactSharedInternals.ReactCurrentBatchConfig, - executionContext = 0, - workInProgressRoot = null, - workInProgress = null, - workInProgressRootRenderLanes = 0, - subtreeRenderLanes = 0, - subtreeRenderLanesCursor = createCursor(0), - workInProgressRootExitStatus = 0, - workInProgressRootFatalError = null, - workInProgressRootSkippedLanes = 0, - workInProgressRootInterleavedUpdatedLanes = 0, - workInProgressRootPingedLanes = 0, - workInProgressRootConcurrentErrors = null, - workInProgressRootRecoverableErrors = null, - globalMostRecentFallbackTime = 0, - workInProgressRootRenderTargetTime = Infinity, - workInProgressTransitions = null, - hasUncaughtError = false, - firstUncaughtError = null, - legacyErrorBoundariesThatAlreadyFailed = null, - rootDoesHavePassiveEffects = false, - rootWithPendingPassiveEffects = null, - pendingPassiveEffectsLanes = 0, - nestedUpdateCount = 0, - rootWithNestedUpdates = null, - currentEventTime = -1, - currentEventTransitionLane = 0; - function requestEventTime() { - return 0 !== (executionContext & 6) ? _$$_REQUIRE(_dependencyMap[3]).unstable_now() : -1 !== currentEventTime ? currentEventTime : currentEventTime = _$$_REQUIRE(_dependencyMap[3]).unstable_now(); - } - function requestUpdateLane(fiber) { - if (0 === (fiber.mode & 1)) return 1; - if (0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes) return workInProgressRootRenderLanes & -workInProgressRootRenderLanes; - if (null !== ReactCurrentBatchConfig.transition) return 0 === currentEventTransitionLane && (currentEventTransitionLane = claimNextTransitionLane()), currentEventTransitionLane; - fiber = currentUpdatePriority; - return 0 !== fiber ? fiber : 16; - } - function scheduleUpdateOnFiber(root, fiber, lane, eventTime) { - if (50 < nestedUpdateCount) throw nestedUpdateCount = 0, rootWithNestedUpdates = null, Error("Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops."); - markRootUpdated(root, lane, eventTime); - if (0 === (executionContext & 2) || root !== workInProgressRoot) root === workInProgressRoot && (0 === (executionContext & 2) && (workInProgressRootInterleavedUpdatedLanes |= lane), 4 === workInProgressRootExitStatus && markRootSuspended$1(root, workInProgressRootRenderLanes)), ensureRootIsScheduled(root, eventTime), 1 === lane && 0 === executionContext && 0 === (fiber.mode & 1) && (workInProgressRootRenderTargetTime = _$$_REQUIRE(_dependencyMap[3]).unstable_now() + 500, includesLegacySyncCallbacks && flushSyncCallbacks()); - } - function ensureRootIsScheduled(root, currentTime) { - for (var existingCallbackNode = root.callbackNode, suspendedLanes = root.suspendedLanes, pingedLanes = root.pingedLanes, expirationTimes = root.expirationTimes, lanes = root.pendingLanes; 0 < lanes;) { - var index$6 = 31 - clz32(lanes), - lane = 1 << index$6, - expirationTime = expirationTimes[index$6]; - if (-1 === expirationTime) { - if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes)) expirationTimes[index$6] = computeExpirationTime(lane, currentTime); - } else expirationTime <= currentTime && (root.expiredLanes |= lane); - lanes &= ~lane; - } - suspendedLanes = getNextLanes(root, root === workInProgressRoot ? workInProgressRootRenderLanes : 0); - if (0 === suspendedLanes) null !== existingCallbackNode && _$$_REQUIRE(_dependencyMap[3]).unstable_cancelCallback(existingCallbackNode), root.callbackNode = null, root.callbackPriority = 0;else if (currentTime = suspendedLanes & -suspendedLanes, root.callbackPriority !== currentTime) { - null != existingCallbackNode && _$$_REQUIRE(_dependencyMap[3]).unstable_cancelCallback(existingCallbackNode); - if (1 === currentTime) 0 === root.tag ? (existingCallbackNode = performSyncWorkOnRoot.bind(null, root), includesLegacySyncCallbacks = true, null === syncQueue ? syncQueue = [existingCallbackNode] : syncQueue.push(existingCallbackNode)) : (existingCallbackNode = performSyncWorkOnRoot.bind(null, root), null === syncQueue ? syncQueue = [existingCallbackNode] : syncQueue.push(existingCallbackNode)), _$$_REQUIRE(_dependencyMap[3]).unstable_scheduleCallback(_$$_REQUIRE(_dependencyMap[3]).unstable_ImmediatePriority, flushSyncCallbacks), existingCallbackNode = null;else { - switch (lanesToEventPriority(suspendedLanes)) { - case 1: - existingCallbackNode = _$$_REQUIRE(_dependencyMap[3]).unstable_ImmediatePriority; - break; - case 4: - existingCallbackNode = _$$_REQUIRE(_dependencyMap[3]).unstable_UserBlockingPriority; - break; - case 16: - existingCallbackNode = _$$_REQUIRE(_dependencyMap[3]).unstable_NormalPriority; - break; - case 536870912: - existingCallbackNode = _$$_REQUIRE(_dependencyMap[3]).unstable_IdlePriority; - break; - default: - existingCallbackNode = _$$_REQUIRE(_dependencyMap[3]).unstable_NormalPriority; - } - existingCallbackNode = scheduleCallback$1(existingCallbackNode, performConcurrentWorkOnRoot.bind(null, root)); - } - root.callbackPriority = currentTime; - root.callbackNode = existingCallbackNode; - } - } - function performConcurrentWorkOnRoot(root, didTimeout) { - currentEventTime = -1; - currentEventTransitionLane = 0; - if (0 !== (executionContext & 6)) throw Error("Should not already be working."); - var originalCallbackNode = root.callbackNode; - if (flushPassiveEffects() && root.callbackNode !== originalCallbackNode) return null; - var lanes = getNextLanes(root, root === workInProgressRoot ? workInProgressRootRenderLanes : 0); - if (0 === lanes) return null; - if (0 !== (lanes & 30) || 0 !== (lanes & root.expiredLanes) || didTimeout) didTimeout = renderRootSync(root, lanes);else { - didTimeout = lanes; - var prevExecutionContext = executionContext; - executionContext |= 2; - var prevDispatcher = pushDispatcher(); - if (workInProgressRoot !== root || workInProgressRootRenderLanes !== didTimeout) workInProgressTransitions = null, workInProgressRootRenderTargetTime = _$$_REQUIRE(_dependencyMap[3]).unstable_now() + 500, prepareFreshStack(root, didTimeout); - do try { - workLoopConcurrent(); - break; - } catch (thrownValue) { - handleError(root, thrownValue); - } while (1); - resetContextDependencies(); - ReactCurrentDispatcher$2.current = prevDispatcher; - executionContext = prevExecutionContext; - null !== workInProgress ? didTimeout = 0 : (workInProgressRoot = null, workInProgressRootRenderLanes = 0, didTimeout = workInProgressRootExitStatus); - } - if (0 !== didTimeout) { - 2 === didTimeout && (prevExecutionContext = getLanesToRetrySynchronouslyOnError(root), 0 !== prevExecutionContext && (lanes = prevExecutionContext, didTimeout = recoverFromConcurrentError(root, prevExecutionContext))); - if (1 === didTimeout) throw originalCallbackNode = workInProgressRootFatalError, prepareFreshStack(root, 0), markRootSuspended$1(root, lanes), ensureRootIsScheduled(root, _$$_REQUIRE(_dependencyMap[3]).unstable_now()), originalCallbackNode; - if (6 === didTimeout) markRootSuspended$1(root, lanes);else { - prevExecutionContext = root.current.alternate; - if (0 === (lanes & 30) && !isRenderConsistentWithExternalStores(prevExecutionContext) && (didTimeout = renderRootSync(root, lanes), 2 === didTimeout && (prevDispatcher = getLanesToRetrySynchronouslyOnError(root), 0 !== prevDispatcher && (lanes = prevDispatcher, didTimeout = recoverFromConcurrentError(root, prevDispatcher))), 1 === didTimeout)) throw originalCallbackNode = workInProgressRootFatalError, prepareFreshStack(root, 0), markRootSuspended$1(root, lanes), ensureRootIsScheduled(root, _$$_REQUIRE(_dependencyMap[3]).unstable_now()), originalCallbackNode; - root.finishedWork = prevExecutionContext; - root.finishedLanes = lanes; - switch (didTimeout) { - case 0: - case 1: - throw Error("Root did not complete. This is a bug in React."); - case 2: - commitRoot(root, workInProgressRootRecoverableErrors, workInProgressTransitions); - break; - case 3: - markRootSuspended$1(root, lanes); - if ((lanes & 130023424) === lanes && (didTimeout = globalMostRecentFallbackTime + 500 - _$$_REQUIRE(_dependencyMap[3]).unstable_now(), 10 < didTimeout)) { - if (0 !== getNextLanes(root, 0)) break; - prevExecutionContext = root.suspendedLanes; - if ((prevExecutionContext & lanes) !== lanes) { - requestEventTime(); - root.pingedLanes |= root.suspendedLanes & prevExecutionContext; - break; - } - root.timeoutHandle = scheduleTimeout(commitRoot.bind(null, root, workInProgressRootRecoverableErrors, workInProgressTransitions), didTimeout); - break; - } - commitRoot(root, workInProgressRootRecoverableErrors, workInProgressTransitions); - break; - case 4: - markRootSuspended$1(root, lanes); - if ((lanes & 4194240) === lanes) break; - didTimeout = root.eventTimes; - for (prevExecutionContext = -1; 0 < lanes;) { - var index$5 = 31 - clz32(lanes); - prevDispatcher = 1 << index$5; - index$5 = didTimeout[index$5]; - index$5 > prevExecutionContext && (prevExecutionContext = index$5); - lanes &= ~prevDispatcher; - } - lanes = prevExecutionContext; - lanes = _$$_REQUIRE(_dependencyMap[3]).unstable_now() - lanes; - lanes = (120 > lanes ? 120 : 480 > lanes ? 480 : 1080 > lanes ? 1080 : 1920 > lanes ? 1920 : 3e3 > lanes ? 3e3 : 4320 > lanes ? 4320 : 1960 * ceil(lanes / 1960)) - lanes; - if (10 < lanes) { - root.timeoutHandle = scheduleTimeout(commitRoot.bind(null, root, workInProgressRootRecoverableErrors, workInProgressTransitions), lanes); - break; - } - commitRoot(root, workInProgressRootRecoverableErrors, workInProgressTransitions); - break; - case 5: - commitRoot(root, workInProgressRootRecoverableErrors, workInProgressTransitions); - break; - default: - throw Error("Unknown root exit status."); - } - } - } - ensureRootIsScheduled(root, _$$_REQUIRE(_dependencyMap[3]).unstable_now()); - return root.callbackNode === originalCallbackNode ? performConcurrentWorkOnRoot.bind(null, root) : null; - } - function recoverFromConcurrentError(root, errorRetryLanes) { - var errorsFromFirstAttempt = workInProgressRootConcurrentErrors; - root.current.memoizedState.isDehydrated && (prepareFreshStack(root, errorRetryLanes).flags |= 256); - root = renderRootSync(root, errorRetryLanes); - 2 !== root && (errorRetryLanes = workInProgressRootRecoverableErrors, workInProgressRootRecoverableErrors = errorsFromFirstAttempt, null !== errorRetryLanes && queueRecoverableErrors(errorRetryLanes)); - return root; - } - function queueRecoverableErrors(errors) { - null === workInProgressRootRecoverableErrors ? workInProgressRootRecoverableErrors = errors : workInProgressRootRecoverableErrors.push.apply(workInProgressRootRecoverableErrors, errors); - } - function isRenderConsistentWithExternalStores(finishedWork) { - for (var node = finishedWork;;) { - if (node.flags & 16384) { - var updateQueue = node.updateQueue; - if (null !== updateQueue && (updateQueue = updateQueue.stores, null !== updateQueue)) for (var i = 0; i < updateQueue.length; i++) { - var check = updateQueue[i], - getSnapshot = check.getSnapshot; - check = check.value; - try { - if (!objectIs(getSnapshot(), check)) return false; - } catch (error) { - return false; - } - } - } - updateQueue = node.child; - if (node.subtreeFlags & 16384 && null !== updateQueue) updateQueue.return = node, node = updateQueue;else { - if (node === finishedWork) break; - for (; null === node.sibling;) { - if (null === node.return || node.return === finishedWork) return true; - node = node.return; - } - node.sibling.return = node.return; - node = node.sibling; - } - } - return true; - } - function markRootSuspended$1(root, suspendedLanes) { - suspendedLanes &= ~workInProgressRootPingedLanes; - suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes; - root.suspendedLanes |= suspendedLanes; - root.pingedLanes &= ~suspendedLanes; - for (root = root.expirationTimes; 0 < suspendedLanes;) { - var index$7 = 31 - clz32(suspendedLanes), - lane = 1 << index$7; - root[index$7] = -1; - suspendedLanes &= ~lane; - } - } - function performSyncWorkOnRoot(root) { - if (0 !== (executionContext & 6)) throw Error("Should not already be working."); - flushPassiveEffects(); - var lanes = getNextLanes(root, 0); - if (0 === (lanes & 1)) return ensureRootIsScheduled(root, _$$_REQUIRE(_dependencyMap[3]).unstable_now()), null; - var exitStatus = renderRootSync(root, lanes); - if (0 !== root.tag && 2 === exitStatus) { - var errorRetryLanes = getLanesToRetrySynchronouslyOnError(root); - 0 !== errorRetryLanes && (lanes = errorRetryLanes, exitStatus = recoverFromConcurrentError(root, errorRetryLanes)); - } - if (1 === exitStatus) throw exitStatus = workInProgressRootFatalError, prepareFreshStack(root, 0), markRootSuspended$1(root, lanes), ensureRootIsScheduled(root, _$$_REQUIRE(_dependencyMap[3]).unstable_now()), exitStatus; - if (6 === exitStatus) throw Error("Root did not complete. This is a bug in React."); - root.finishedWork = root.current.alternate; - root.finishedLanes = lanes; - commitRoot(root, workInProgressRootRecoverableErrors, workInProgressTransitions); - ensureRootIsScheduled(root, _$$_REQUIRE(_dependencyMap[3]).unstable_now()); - return null; - } - function popRenderLanes() { - subtreeRenderLanes = subtreeRenderLanesCursor.current; - pop(subtreeRenderLanesCursor); - } - function prepareFreshStack(root, lanes) { - root.finishedWork = null; - root.finishedLanes = 0; - var timeoutHandle = root.timeoutHandle; - -1 !== timeoutHandle && (root.timeoutHandle = -1, cancelTimeout(timeoutHandle)); - if (null !== workInProgress) for (timeoutHandle = workInProgress.return; null !== timeoutHandle;) { - var interruptedWork = timeoutHandle; - popTreeContext(interruptedWork); - switch (interruptedWork.tag) { - case 1: - interruptedWork = interruptedWork.type.childContextTypes; - null !== interruptedWork && undefined !== interruptedWork && popContext(); - break; - case 3: - popHostContainer(); - pop(didPerformWorkStackCursor); - pop(contextStackCursor); - resetWorkInProgressVersions(); - break; - case 5: - popHostContext(interruptedWork); - break; - case 4: - popHostContainer(); - break; - case 13: - pop(suspenseStackCursor); - break; - case 19: - pop(suspenseStackCursor); - break; - case 10: - popProvider(interruptedWork.type._context); - break; - case 22: - case 23: - popRenderLanes(); - } - timeoutHandle = timeoutHandle.return; - } - workInProgressRoot = root; - workInProgress = root = createWorkInProgress(root.current, null); - workInProgressRootRenderLanes = subtreeRenderLanes = lanes; - workInProgressRootExitStatus = 0; - workInProgressRootFatalError = null; - workInProgressRootPingedLanes = workInProgressRootInterleavedUpdatedLanes = workInProgressRootSkippedLanes = 0; - workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors = null; - if (null !== concurrentQueues) { - for (lanes = 0; lanes < concurrentQueues.length; lanes++) if (timeoutHandle = concurrentQueues[lanes], interruptedWork = timeoutHandle.interleaved, null !== interruptedWork) { - timeoutHandle.interleaved = null; - var firstInterleavedUpdate = interruptedWork.next, - lastPendingUpdate = timeoutHandle.pending; - if (null !== lastPendingUpdate) { - var firstPendingUpdate = lastPendingUpdate.next; - lastPendingUpdate.next = firstInterleavedUpdate; - interruptedWork.next = firstPendingUpdate; - } - timeoutHandle.pending = interruptedWork; - } - concurrentQueues = null; - } - return root; - } - function handleError(root$jscomp$0, thrownValue) { - do { - var erroredWork = workInProgress; - try { - resetContextDependencies(); - ReactCurrentDispatcher$1.current = ContextOnlyDispatcher; - if (didScheduleRenderPhaseUpdate) { - for (var hook = currentlyRenderingFiber$1.memoizedState; null !== hook;) { - var queue = hook.queue; - null !== queue && (queue.pending = null); - hook = hook.next; - } - didScheduleRenderPhaseUpdate = false; - } - renderLanes = 0; - workInProgressHook = currentHook = currentlyRenderingFiber$1 = null; - didScheduleRenderPhaseUpdateDuringThisPass = false; - ReactCurrentOwner$2.current = null; - if (null === erroredWork || null === erroredWork.return) { - workInProgressRootExitStatus = 1; - workInProgressRootFatalError = thrownValue; - workInProgress = null; - break; - } - a: { - var root = root$jscomp$0, - returnFiber = erroredWork.return, - sourceFiber = erroredWork, - value = thrownValue; - thrownValue = workInProgressRootRenderLanes; - sourceFiber.flags |= 32768; - if (null !== value && "object" === typeof value && "function" === typeof value.then) { - var wakeable = value, - sourceFiber$jscomp$0 = sourceFiber, - tag = sourceFiber$jscomp$0.tag; - if (0 === (sourceFiber$jscomp$0.mode & 1) && (0 === tag || 11 === tag || 15 === tag)) { - var currentSource = sourceFiber$jscomp$0.alternate; - currentSource ? (sourceFiber$jscomp$0.updateQueue = currentSource.updateQueue, sourceFiber$jscomp$0.memoizedState = currentSource.memoizedState, sourceFiber$jscomp$0.lanes = currentSource.lanes) : (sourceFiber$jscomp$0.updateQueue = null, sourceFiber$jscomp$0.memoizedState = null); - } - b: { - sourceFiber$jscomp$0 = returnFiber; - do { - var JSCompiler_temp; - if (JSCompiler_temp = 13 === sourceFiber$jscomp$0.tag) { - var nextState = sourceFiber$jscomp$0.memoizedState; - JSCompiler_temp = null !== nextState ? null !== nextState.dehydrated ? true : false : true; - } - if (JSCompiler_temp) { - var suspenseBoundary = sourceFiber$jscomp$0; - break b; - } - sourceFiber$jscomp$0 = sourceFiber$jscomp$0.return; - } while (null !== sourceFiber$jscomp$0); - suspenseBoundary = null; - } - if (null !== suspenseBoundary) { - suspenseBoundary.flags &= -257; - value = suspenseBoundary; - sourceFiber$jscomp$0 = thrownValue; - if (0 === (value.mode & 1)) { - if (value === returnFiber) value.flags |= 65536;else { - value.flags |= 128; - sourceFiber.flags |= 131072; - sourceFiber.flags &= -52805; - if (1 === sourceFiber.tag) if (null === sourceFiber.alternate) sourceFiber.tag = 17;else { - var update = createUpdate(-1, 1); - update.tag = 2; - enqueueUpdate(sourceFiber, update, 1); - } - sourceFiber.lanes |= 1; - } - } else value.flags |= 65536, value.lanes = sourceFiber$jscomp$0; - suspenseBoundary.mode & 1 && attachPingListener(root, wakeable, thrownValue); - thrownValue = suspenseBoundary; - root = wakeable; - var wakeables = thrownValue.updateQueue; - if (null === wakeables) { - var updateQueue = new Set(); - updateQueue.add(root); - thrownValue.updateQueue = updateQueue; - } else wakeables.add(root); - break a; - } else { - if (0 === (thrownValue & 1)) { - attachPingListener(root, wakeable, thrownValue); - renderDidSuspendDelayIfPossible(); - break a; - } - value = Error("A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition."); - } - } - root = value = createCapturedValueAtFiber(value, sourceFiber); - 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2); - null === workInProgressRootConcurrentErrors ? workInProgressRootConcurrentErrors = [root] : workInProgressRootConcurrentErrors.push(root); - root = returnFiber; - do { - switch (root.tag) { - case 3: - wakeable = value; - root.flags |= 65536; - thrownValue &= -thrownValue; - root.lanes |= thrownValue; - var update$jscomp$0 = createRootErrorUpdate(root, wakeable, thrownValue); - enqueueCapturedUpdate(root, update$jscomp$0); - break a; - case 1: - wakeable = value; - var ctor = root.type, - instance = root.stateNode; - if (0 === (root.flags & 128) && ("function" === typeof ctor.getDerivedStateFromError || null !== instance && "function" === typeof instance.componentDidCatch && (null === legacyErrorBoundariesThatAlreadyFailed || !legacyErrorBoundariesThatAlreadyFailed.has(instance)))) { - root.flags |= 65536; - thrownValue &= -thrownValue; - root.lanes |= thrownValue; - var update$34 = createClassErrorUpdate(root, wakeable, thrownValue); - enqueueCapturedUpdate(root, update$34); - break a; - } - } - root = root.return; - } while (null !== root); - } - completeUnitOfWork(erroredWork); - } catch (yetAnotherThrownValue) { - thrownValue = yetAnotherThrownValue; - workInProgress === erroredWork && null !== erroredWork && (workInProgress = erroredWork = erroredWork.return); - continue; - } - break; - } while (1); - } - function pushDispatcher() { - var prevDispatcher = ReactCurrentDispatcher$2.current; - ReactCurrentDispatcher$2.current = ContextOnlyDispatcher; - return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher; - } - function renderDidSuspendDelayIfPossible() { - if (0 === workInProgressRootExitStatus || 3 === workInProgressRootExitStatus || 2 === workInProgressRootExitStatus) workInProgressRootExitStatus = 4; - null === workInProgressRoot || 0 === (workInProgressRootSkippedLanes & 268435455) && 0 === (workInProgressRootInterleavedUpdatedLanes & 268435455) || markRootSuspended$1(workInProgressRoot, workInProgressRootRenderLanes); - } - function renderRootSync(root, lanes) { - var prevExecutionContext = executionContext; - executionContext |= 2; - var prevDispatcher = pushDispatcher(); - if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes) workInProgressTransitions = null, prepareFreshStack(root, lanes); - do try { - workLoopSync(); - break; - } catch (thrownValue) { - handleError(root, thrownValue); - } while (1); - resetContextDependencies(); - executionContext = prevExecutionContext; - ReactCurrentDispatcher$2.current = prevDispatcher; - if (null !== workInProgress) throw Error("Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue."); - workInProgressRoot = null; - workInProgressRootRenderLanes = 0; - return workInProgressRootExitStatus; - } - function workLoopSync() { - for (; null !== workInProgress;) performUnitOfWork(workInProgress); - } - function workLoopConcurrent() { - for (; null !== workInProgress && !_$$_REQUIRE(_dependencyMap[3]).unstable_shouldYield();) performUnitOfWork(workInProgress); - } - function performUnitOfWork(unitOfWork) { - var next = beginWork$1(unitOfWork.alternate, unitOfWork, subtreeRenderLanes); - unitOfWork.memoizedProps = unitOfWork.pendingProps; - null === next ? completeUnitOfWork(unitOfWork) : workInProgress = next; - ReactCurrentOwner$2.current = null; - } - function completeUnitOfWork(unitOfWork) { - var completedWork = unitOfWork; - do { - var current = completedWork.alternate; - unitOfWork = completedWork.return; - if (0 === (completedWork.flags & 32768)) { - if (current = completeWork(current, completedWork, subtreeRenderLanes), null !== current) { - workInProgress = current; - return; - } - } else { - current = unwindWork(current, completedWork); - if (null !== current) { - current.flags &= 32767; - workInProgress = current; - return; - } - if (null !== unitOfWork) unitOfWork.flags |= 32768, unitOfWork.subtreeFlags = 0, unitOfWork.deletions = null;else { - workInProgressRootExitStatus = 6; - workInProgress = null; - return; - } - } - completedWork = completedWork.sibling; - if (null !== completedWork) { - workInProgress = completedWork; - return; - } - workInProgress = completedWork = unitOfWork; - } while (null !== completedWork); - 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5); - } - function commitRoot(root, recoverableErrors, transitions) { - var previousUpdateLanePriority = currentUpdatePriority, - prevTransition = ReactCurrentBatchConfig$2.transition; - try { - ReactCurrentBatchConfig$2.transition = null, currentUpdatePriority = 1, commitRootImpl(root, recoverableErrors, transitions, previousUpdateLanePriority); - } finally { - ReactCurrentBatchConfig$2.transition = prevTransition, currentUpdatePriority = previousUpdateLanePriority; - } - return null; - } - function commitRootImpl(root, recoverableErrors, transitions, renderPriorityLevel) { - do flushPassiveEffects(); while (null !== rootWithPendingPassiveEffects); - if (0 !== (executionContext & 6)) throw Error("Should not already be working."); - transitions = root.finishedWork; - var lanes = root.finishedLanes; - if (null === transitions) return null; - root.finishedWork = null; - root.finishedLanes = 0; - if (transitions === root.current) throw Error("Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue."); - root.callbackNode = null; - root.callbackPriority = 0; - var remainingLanes = transitions.lanes | transitions.childLanes; - markRootFinished(root, remainingLanes); - root === workInProgressRoot && (workInProgress = workInProgressRoot = null, workInProgressRootRenderLanes = 0); - 0 === (transitions.subtreeFlags & 2064) && 0 === (transitions.flags & 2064) || rootDoesHavePassiveEffects || (rootDoesHavePassiveEffects = true, scheduleCallback$1(_$$_REQUIRE(_dependencyMap[3]).unstable_NormalPriority, function () { - flushPassiveEffects(); - return null; - })); - remainingLanes = 0 !== (transitions.flags & 15990); - if (0 !== (transitions.subtreeFlags & 15990) || remainingLanes) { - remainingLanes = ReactCurrentBatchConfig$2.transition; - ReactCurrentBatchConfig$2.transition = null; - var previousPriority = currentUpdatePriority; - currentUpdatePriority = 1; - var prevExecutionContext = executionContext; - executionContext |= 4; - ReactCurrentOwner$2.current = null; - commitBeforeMutationEffects(root, transitions); - commitMutationEffectsOnFiber(transitions, root); - root.current = transitions; - commitLayoutEffects(transitions, root, lanes); - _$$_REQUIRE(_dependencyMap[3]).unstable_requestPaint(); - executionContext = prevExecutionContext; - currentUpdatePriority = previousPriority; - ReactCurrentBatchConfig$2.transition = remainingLanes; - } else root.current = transitions; - rootDoesHavePassiveEffects && (rootDoesHavePassiveEffects = false, rootWithPendingPassiveEffects = root, pendingPassiveEffectsLanes = lanes); - remainingLanes = root.pendingLanes; - 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null); - onCommitRoot(transitions.stateNode, renderPriorityLevel); - ensureRootIsScheduled(root, _$$_REQUIRE(_dependencyMap[3]).unstable_now()); - if (null !== recoverableErrors) for (renderPriorityLevel = root.onRecoverableError, transitions = 0; transitions < recoverableErrors.length; transitions++) lanes = recoverableErrors[transitions], renderPriorityLevel(lanes.value, { - componentStack: lanes.stack, - digest: lanes.digest - }); - if (hasUncaughtError) throw hasUncaughtError = false, root = firstUncaughtError, firstUncaughtError = null, root; - 0 !== (pendingPassiveEffectsLanes & 1) && 0 !== root.tag && flushPassiveEffects(); - remainingLanes = root.pendingLanes; - 0 !== (remainingLanes & 1) ? root === rootWithNestedUpdates ? nestedUpdateCount++ : (nestedUpdateCount = 0, rootWithNestedUpdates = root) : nestedUpdateCount = 0; - flushSyncCallbacks(); - return null; - } - function flushPassiveEffects() { - if (null !== rootWithPendingPassiveEffects) { - var renderPriority = lanesToEventPriority(pendingPassiveEffectsLanes), - prevTransition = ReactCurrentBatchConfig$2.transition, - previousPriority = currentUpdatePriority; - try { - ReactCurrentBatchConfig$2.transition = null; - currentUpdatePriority = 16 > renderPriority ? 16 : renderPriority; - if (null === rootWithPendingPassiveEffects) var JSCompiler_inline_result = false;else { - renderPriority = rootWithPendingPassiveEffects; - rootWithPendingPassiveEffects = null; - pendingPassiveEffectsLanes = 0; - if (0 !== (executionContext & 6)) throw Error("Cannot flush passive effects while already rendering."); - var prevExecutionContext = executionContext; - executionContext |= 4; - for (nextEffect = renderPriority.current; null !== nextEffect;) { - var fiber = nextEffect, - child = fiber.child; - if (0 !== (nextEffect.flags & 16)) { - var deletions = fiber.deletions; - if (null !== deletions) { - for (var i = 0; i < deletions.length; i++) { - var fiberToDelete = deletions[i]; - for (nextEffect = fiberToDelete; null !== nextEffect;) { - var fiber$jscomp$0 = nextEffect; - switch (fiber$jscomp$0.tag) { - case 0: - case 11: - case 15: - commitHookEffectListUnmount(8, fiber$jscomp$0, fiber); - } - var child$jscomp$0 = fiber$jscomp$0.child; - if (null !== child$jscomp$0) child$jscomp$0.return = fiber$jscomp$0, nextEffect = child$jscomp$0;else for (; null !== nextEffect;) { - fiber$jscomp$0 = nextEffect; - var sibling = fiber$jscomp$0.sibling, - returnFiber = fiber$jscomp$0.return; - detachFiberAfterEffects(fiber$jscomp$0); - if (fiber$jscomp$0 === fiberToDelete) { - nextEffect = null; - break; - } - if (null !== sibling) { - sibling.return = returnFiber; - nextEffect = sibling; - break; - } - nextEffect = returnFiber; - } - } - } - var previousFiber = fiber.alternate; - if (null !== previousFiber) { - var detachedChild = previousFiber.child; - if (null !== detachedChild) { - previousFiber.child = null; - do { - var detachedSibling = detachedChild.sibling; - detachedChild.sibling = null; - detachedChild = detachedSibling; - } while (null !== detachedChild); - } - } - nextEffect = fiber; - } - } - if (0 !== (fiber.subtreeFlags & 2064) && null !== child) child.return = fiber, nextEffect = child;else b: for (; null !== nextEffect;) { - fiber = nextEffect; - if (0 !== (fiber.flags & 2048)) switch (fiber.tag) { - case 0: - case 11: - case 15: - commitHookEffectListUnmount(9, fiber, fiber.return); - } - var sibling$jscomp$0 = fiber.sibling; - if (null !== sibling$jscomp$0) { - sibling$jscomp$0.return = fiber.return; - nextEffect = sibling$jscomp$0; - break b; - } - nextEffect = fiber.return; - } - } - var finishedWork = renderPriority.current; - for (nextEffect = finishedWork; null !== nextEffect;) { - child = nextEffect; - var firstChild = child.child; - if (0 !== (child.subtreeFlags & 2064) && null !== firstChild) firstChild.return = child, nextEffect = firstChild;else b: for (child = finishedWork; null !== nextEffect;) { - deletions = nextEffect; - if (0 !== (deletions.flags & 2048)) try { - switch (deletions.tag) { - case 0: - case 11: - case 15: - commitHookEffectListMount(9, deletions); - } - } catch (error) { - captureCommitPhaseError(deletions, deletions.return, error); - } - if (deletions === child) { - nextEffect = null; - break b; - } - var sibling$jscomp$1 = deletions.sibling; - if (null !== sibling$jscomp$1) { - sibling$jscomp$1.return = deletions.return; - nextEffect = sibling$jscomp$1; - break b; - } - nextEffect = deletions.return; - } - } - executionContext = prevExecutionContext; - flushSyncCallbacks(); - if (injectedHook && "function" === typeof injectedHook.onPostCommitFiberRoot) try { - injectedHook.onPostCommitFiberRoot(rendererID, renderPriority); - } catch (err) {} - JSCompiler_inline_result = true; - } - return JSCompiler_inline_result; - } finally { - currentUpdatePriority = previousPriority, ReactCurrentBatchConfig$2.transition = prevTransition; - } - } - return false; - } - function captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) { - sourceFiber = createCapturedValueAtFiber(error, sourceFiber); - sourceFiber = createRootErrorUpdate(rootFiber, sourceFiber, 1); - rootFiber = enqueueUpdate(rootFiber, sourceFiber, 1); - sourceFiber = requestEventTime(); - null !== rootFiber && (markRootUpdated(rootFiber, 1, sourceFiber), ensureRootIsScheduled(rootFiber, sourceFiber)); - } - function captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) { - if (3 === sourceFiber.tag) captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);else for (nearestMountedAncestor = sourceFiber.return; null !== nearestMountedAncestor;) { - if (3 === nearestMountedAncestor.tag) { - captureCommitPhaseErrorOnRoot(nearestMountedAncestor, sourceFiber, error); - break; - } else if (1 === nearestMountedAncestor.tag) { - var instance = nearestMountedAncestor.stateNode; - if ("function" === typeof nearestMountedAncestor.type.getDerivedStateFromError || "function" === typeof instance.componentDidCatch && (null === legacyErrorBoundariesThatAlreadyFailed || !legacyErrorBoundariesThatAlreadyFailed.has(instance))) { - sourceFiber = createCapturedValueAtFiber(error, sourceFiber); - sourceFiber = createClassErrorUpdate(nearestMountedAncestor, sourceFiber, 1); - nearestMountedAncestor = enqueueUpdate(nearestMountedAncestor, sourceFiber, 1); - sourceFiber = requestEventTime(); - null !== nearestMountedAncestor && (markRootUpdated(nearestMountedAncestor, 1, sourceFiber), ensureRootIsScheduled(nearestMountedAncestor, sourceFiber)); - break; - } - } - nearestMountedAncestor = nearestMountedAncestor.return; - } - } - function pingSuspendedRoot(root, wakeable, pingedLanes) { - var pingCache = root.pingCache; - null !== pingCache && pingCache.delete(wakeable); - wakeable = requestEventTime(); - root.pingedLanes |= root.suspendedLanes & pingedLanes; - workInProgressRoot === root && (workInProgressRootRenderLanes & pingedLanes) === pingedLanes && (4 === workInProgressRootExitStatus || 3 === workInProgressRootExitStatus && (workInProgressRootRenderLanes & 130023424) === workInProgressRootRenderLanes && 500 > _$$_REQUIRE(_dependencyMap[3]).unstable_now() - globalMostRecentFallbackTime ? prepareFreshStack(root, 0) : workInProgressRootPingedLanes |= pingedLanes); - ensureRootIsScheduled(root, wakeable); - } - function retryTimedOutBoundary(boundaryFiber, retryLane) { - 0 === retryLane && (0 === (boundaryFiber.mode & 1) ? retryLane = 1 : (retryLane = nextRetryLane, nextRetryLane <<= 1, 0 === (nextRetryLane & 130023424) && (nextRetryLane = 4194304))); - var eventTime = requestEventTime(); - boundaryFiber = markUpdateLaneFromFiberToRoot(boundaryFiber, retryLane); - null !== boundaryFiber && (markRootUpdated(boundaryFiber, retryLane, eventTime), ensureRootIsScheduled(boundaryFiber, eventTime)); - } - function retryDehydratedSuspenseBoundary(boundaryFiber) { - var suspenseState = boundaryFiber.memoizedState, - retryLane = 0; - null !== suspenseState && (retryLane = suspenseState.retryLane); - retryTimedOutBoundary(boundaryFiber, retryLane); - } - function resolveRetryWakeable(boundaryFiber, wakeable) { - var retryLane = 0; - switch (boundaryFiber.tag) { - case 13: - var retryCache = boundaryFiber.stateNode; - var suspenseState = boundaryFiber.memoizedState; - null !== suspenseState && (retryLane = suspenseState.retryLane); - break; - case 19: - retryCache = boundaryFiber.stateNode; - break; - default: - throw Error("Pinged unknown suspense boundary type. This is probably a bug in React."); - } - null !== retryCache && retryCache.delete(wakeable); - retryTimedOutBoundary(boundaryFiber, retryLane); - } - var beginWork$1; - beginWork$1 = function beginWork$1(current, workInProgress, renderLanes) { - if (null !== current) { - if (current.memoizedProps !== workInProgress.pendingProps || didPerformWorkStackCursor.current) didReceiveUpdate = true;else { - if (0 === (current.lanes & renderLanes) && 0 === (workInProgress.flags & 128)) return didReceiveUpdate = false, attemptEarlyBailoutIfNoScheduledUpdate(current, workInProgress, renderLanes); - didReceiveUpdate = 0 !== (current.flags & 131072) ? true : false; - } - } else didReceiveUpdate = false; - workInProgress.lanes = 0; - switch (workInProgress.tag) { - case 2: - var Component = workInProgress.type; - resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress); - current = workInProgress.pendingProps; - var context = getMaskedContext(workInProgress, contextStackCursor.current); - prepareToReadContext(workInProgress, renderLanes); - context = renderWithHooks(null, workInProgress, Component, current, context, renderLanes); - workInProgress.flags |= 1; - if ("object" === typeof context && null !== context && "function" === typeof context.render && undefined === context.$$typeof) { - workInProgress.tag = 1; - workInProgress.memoizedState = null; - workInProgress.updateQueue = null; - if (isContextProvider(Component)) { - var hasContext = true; - pushContextProvider(workInProgress); - } else hasContext = false; - workInProgress.memoizedState = null !== context.state && undefined !== context.state ? context.state : null; - initializeUpdateQueue(workInProgress); - context.updater = classComponentUpdater; - workInProgress.stateNode = context; - context._reactInternals = workInProgress; - mountClassInstance(workInProgress, Component, current, renderLanes); - workInProgress = finishClassComponent(null, workInProgress, Component, true, hasContext, renderLanes); - } else workInProgress.tag = 0, reconcileChildren(null, workInProgress, context, renderLanes), workInProgress = workInProgress.child; - return workInProgress; - case 16: - Component = workInProgress.elementType; - a: { - resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress); - current = workInProgress.pendingProps; - context = Component._init; - Component = context(Component._payload); - workInProgress.type = Component; - context = workInProgress.tag = resolveLazyComponentTag(Component); - current = resolveDefaultProps(Component, current); - switch (context) { - case 0: - workInProgress = updateFunctionComponent(null, workInProgress, Component, current, renderLanes); - break a; - case 1: - workInProgress = updateClassComponent(null, workInProgress, Component, current, renderLanes); - break a; - case 11: - workInProgress = updateForwardRef(null, workInProgress, Component, current, renderLanes); - break a; - case 14: - workInProgress = updateMemoComponent(null, workInProgress, Component, resolveDefaultProps(Component.type, current), renderLanes); - break a; - } - throw Error("Element type is invalid. Received a promise that resolves to: " + Component + ". Lazy element type must resolve to a class or function."); - } - return workInProgress; - case 0: - return Component = workInProgress.type, context = workInProgress.pendingProps, context = workInProgress.elementType === Component ? context : resolveDefaultProps(Component, context), updateFunctionComponent(current, workInProgress, Component, context, renderLanes); - case 1: - return Component = workInProgress.type, context = workInProgress.pendingProps, context = workInProgress.elementType === Component ? context : resolveDefaultProps(Component, context), updateClassComponent(current, workInProgress, Component, context, renderLanes); - case 3: - pushHostRootContext(workInProgress); - if (null === current) throw Error("Should have a current fiber. This is a bug in React."); - context = workInProgress.pendingProps; - Component = workInProgress.memoizedState.element; - cloneUpdateQueue(current, workInProgress); - processUpdateQueue(workInProgress, context, null, renderLanes); - context = workInProgress.memoizedState.element; - context === Component ? workInProgress = bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) : (reconcileChildren(current, workInProgress, context, renderLanes), workInProgress = workInProgress.child); - return workInProgress; - case 5: - return pushHostContext(workInProgress), Component = workInProgress.pendingProps.children, markRef(current, workInProgress), reconcileChildren(current, workInProgress, Component, renderLanes), workInProgress.child; - case 6: - return null; - case 13: - return updateSuspenseComponent(current, workInProgress, renderLanes); - case 4: - return pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo), Component = workInProgress.pendingProps, null === current ? workInProgress.child = reconcileChildFibers(workInProgress, null, Component, renderLanes) : reconcileChildren(current, workInProgress, Component, renderLanes), workInProgress.child; - case 11: - return Component = workInProgress.type, context = workInProgress.pendingProps, context = workInProgress.elementType === Component ? context : resolveDefaultProps(Component, context), updateForwardRef(current, workInProgress, Component, context, renderLanes); - case 7: - return reconcileChildren(current, workInProgress, workInProgress.pendingProps, renderLanes), workInProgress.child; - case 8: - return reconcileChildren(current, workInProgress, workInProgress.pendingProps.children, renderLanes), workInProgress.child; - case 12: - return reconcileChildren(current, workInProgress, workInProgress.pendingProps.children, renderLanes), workInProgress.child; - case 10: - a: { - Component = workInProgress.type._context; - context = workInProgress.pendingProps; - hasContext = workInProgress.memoizedProps; - var newValue = context.value; - push(valueCursor, Component._currentValue); - Component._currentValue = newValue; - if (null !== hasContext) if (objectIs(hasContext.value, newValue)) { - if (hasContext.children === context.children && !didPerformWorkStackCursor.current) { - workInProgress = bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes); - break a; - } - } else for (hasContext = workInProgress.child, null !== hasContext && (hasContext.return = workInProgress); null !== hasContext;) { - var list = hasContext.dependencies; - if (null !== list) { - newValue = hasContext.child; - for (var dependency = list.firstContext; null !== dependency;) { - if (dependency.context === Component) { - if (1 === hasContext.tag) { - dependency = createUpdate(-1, renderLanes & -renderLanes); - dependency.tag = 2; - var updateQueue = hasContext.updateQueue; - if (null !== updateQueue) { - updateQueue = updateQueue.shared; - var pending = updateQueue.pending; - null === pending ? dependency.next = dependency : (dependency.next = pending.next, pending.next = dependency); - updateQueue.pending = dependency; - } - } - hasContext.lanes |= renderLanes; - dependency = hasContext.alternate; - null !== dependency && (dependency.lanes |= renderLanes); - scheduleContextWorkOnParentPath(hasContext.return, renderLanes, workInProgress); - list.lanes |= renderLanes; - break; - } - dependency = dependency.next; - } - } else if (10 === hasContext.tag) newValue = hasContext.type === workInProgress.type ? null : hasContext.child;else if (18 === hasContext.tag) { - newValue = hasContext.return; - if (null === newValue) throw Error("We just came from a parent so we must have had a parent. This is a bug in React."); - newValue.lanes |= renderLanes; - list = newValue.alternate; - null !== list && (list.lanes |= renderLanes); - scheduleContextWorkOnParentPath(newValue, renderLanes, workInProgress); - newValue = hasContext.sibling; - } else newValue = hasContext.child; - if (null !== newValue) newValue.return = hasContext;else for (newValue = hasContext; null !== newValue;) { - if (newValue === workInProgress) { - newValue = null; - break; - } - hasContext = newValue.sibling; - if (null !== hasContext) { - hasContext.return = newValue.return; - newValue = hasContext; - break; - } - newValue = newValue.return; - } - hasContext = newValue; - } - reconcileChildren(current, workInProgress, context.children, renderLanes); - workInProgress = workInProgress.child; - } - return workInProgress; - case 9: - return context = workInProgress.type, Component = workInProgress.pendingProps.children, prepareToReadContext(workInProgress, renderLanes), context = readContext(context), Component = Component(context), workInProgress.flags |= 1, reconcileChildren(current, workInProgress, Component, renderLanes), workInProgress.child; - case 14: - return Component = workInProgress.type, context = resolveDefaultProps(Component, workInProgress.pendingProps), context = resolveDefaultProps(Component.type, context), updateMemoComponent(current, workInProgress, Component, context, renderLanes); - case 15: - return updateSimpleMemoComponent(current, workInProgress, workInProgress.type, workInProgress.pendingProps, renderLanes); - case 17: - return Component = workInProgress.type, context = workInProgress.pendingProps, context = workInProgress.elementType === Component ? context : resolveDefaultProps(Component, context), resetSuspendedCurrentOnMountInLegacyMode(current, workInProgress), workInProgress.tag = 1, isContextProvider(Component) ? (current = true, pushContextProvider(workInProgress)) : current = false, prepareToReadContext(workInProgress, renderLanes), constructClassInstance(workInProgress, Component, context), mountClassInstance(workInProgress, Component, context, renderLanes), finishClassComponent(null, workInProgress, Component, true, current, renderLanes); - case 19: - return updateSuspenseListComponent(current, workInProgress, renderLanes); - case 22: - return updateOffscreenComponent(current, workInProgress, renderLanes); - } - throw Error("Unknown unit of work tag (" + workInProgress.tag + "). This error is likely caused by a bug in React. Please file an issue."); - }; - function scheduleCallback$1(priorityLevel, callback) { - return _$$_REQUIRE(_dependencyMap[3]).unstable_scheduleCallback(priorityLevel, callback); - } - function FiberNode(tag, pendingProps, key, mode) { - this.tag = tag; - this.key = key; - this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null; - this.index = 0; - this.ref = null; - this.pendingProps = pendingProps; - this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null; - this.mode = mode; - this.subtreeFlags = this.flags = 0; - this.deletions = null; - this.childLanes = this.lanes = 0; - this.alternate = null; - } - function createFiber(tag, pendingProps, key, mode) { - return new FiberNode(tag, pendingProps, key, mode); - } - function shouldConstruct(Component) { - Component = Component.prototype; - return !(!Component || !Component.isReactComponent); - } - function resolveLazyComponentTag(Component) { - if ("function" === typeof Component) return shouldConstruct(Component) ? 1 : 0; - if (undefined !== Component && null !== Component) { - Component = Component.$$typeof; - if (Component === REACT_FORWARD_REF_TYPE) return 11; - if (Component === REACT_MEMO_TYPE) return 14; - } - return 2; - } - function createWorkInProgress(current, pendingProps) { - var workInProgress = current.alternate; - null === workInProgress ? (workInProgress = createFiber(current.tag, pendingProps, current.key, current.mode), workInProgress.elementType = current.elementType, workInProgress.type = current.type, workInProgress.stateNode = current.stateNode, workInProgress.alternate = current, current.alternate = workInProgress) : (workInProgress.pendingProps = pendingProps, workInProgress.type = current.type, workInProgress.flags = 0, workInProgress.subtreeFlags = 0, workInProgress.deletions = null); - workInProgress.flags = current.flags & 14680064; - workInProgress.childLanes = current.childLanes; - workInProgress.lanes = current.lanes; - workInProgress.child = current.child; - workInProgress.memoizedProps = current.memoizedProps; - workInProgress.memoizedState = current.memoizedState; - workInProgress.updateQueue = current.updateQueue; - pendingProps = current.dependencies; - workInProgress.dependencies = null === pendingProps ? null : { - lanes: pendingProps.lanes, - firstContext: pendingProps.firstContext - }; - workInProgress.sibling = current.sibling; - workInProgress.index = current.index; - workInProgress.ref = current.ref; - return workInProgress; - } - function createFiberFromTypeAndProps(type, key, pendingProps, owner, mode, lanes) { - var fiberTag = 2; - owner = type; - if ("function" === typeof type) shouldConstruct(type) && (fiberTag = 1);else if ("string" === typeof type) fiberTag = 5;else a: switch (type) { - case REACT_FRAGMENT_TYPE: - return createFiberFromFragment(pendingProps.children, mode, lanes, key); - case REACT_STRICT_MODE_TYPE: - fiberTag = 8; - mode |= 8; - break; - case REACT_PROFILER_TYPE: - return type = createFiber(12, pendingProps, key, mode | 2), type.elementType = REACT_PROFILER_TYPE, type.lanes = lanes, type; - case REACT_SUSPENSE_TYPE: - return type = createFiber(13, pendingProps, key, mode), type.elementType = REACT_SUSPENSE_TYPE, type.lanes = lanes, type; - case REACT_SUSPENSE_LIST_TYPE: - return type = createFiber(19, pendingProps, key, mode), type.elementType = REACT_SUSPENSE_LIST_TYPE, type.lanes = lanes, type; - case REACT_OFFSCREEN_TYPE: - return createFiberFromOffscreen(pendingProps, mode, lanes, key); - default: - if ("object" === typeof type && null !== type) switch (type.$$typeof) { - case REACT_PROVIDER_TYPE: - fiberTag = 10; - break a; - case REACT_CONTEXT_TYPE: - fiberTag = 9; - break a; - case REACT_FORWARD_REF_TYPE: - fiberTag = 11; - break a; - case REACT_MEMO_TYPE: - fiberTag = 14; - break a; - case REACT_LAZY_TYPE: - fiberTag = 16; - owner = null; - break a; - } - throw Error("Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: " + ((null == type ? type : typeof type) + ".")); - } - key = createFiber(fiberTag, pendingProps, key, mode); - key.elementType = type; - key.type = owner; - key.lanes = lanes; - return key; - } - function createFiberFromFragment(elements, mode, lanes, key) { - elements = createFiber(7, elements, key, mode); - elements.lanes = lanes; - return elements; - } - function createFiberFromOffscreen(pendingProps, mode, lanes, key) { - pendingProps = createFiber(22, pendingProps, key, mode); - pendingProps.elementType = REACT_OFFSCREEN_TYPE; - pendingProps.lanes = lanes; - pendingProps.stateNode = { - isHidden: false - }; - return pendingProps; - } - function createFiberFromText(content, mode, lanes) { - content = createFiber(6, content, null, mode); - content.lanes = lanes; - return content; - } - function createFiberFromPortal(portal, mode, lanes) { - mode = createFiber(4, null !== portal.children ? portal.children : [], portal.key, mode); - mode.lanes = lanes; - mode.stateNode = { - containerInfo: portal.containerInfo, - pendingChildren: null, - implementation: portal.implementation - }; - return mode; - } - function FiberRootNode(containerInfo, tag, hydrate, identifierPrefix, onRecoverableError) { - this.tag = tag; - this.containerInfo = containerInfo; - this.finishedWork = this.pingCache = this.current = this.pendingChildren = null; - this.timeoutHandle = -1; - this.callbackNode = this.pendingContext = this.context = null; - this.callbackPriority = 0; - this.eventTimes = createLaneMap(0); - this.expirationTimes = createLaneMap(-1); - this.entangledLanes = this.finishedLanes = this.mutableReadLanes = this.expiredLanes = this.pingedLanes = this.suspendedLanes = this.pendingLanes = 0; - this.entanglements = createLaneMap(0); - this.identifierPrefix = identifierPrefix; - this.onRecoverableError = onRecoverableError; - } - function createPortal(children, containerInfo, implementation) { - var key = 3 < arguments.length && undefined !== arguments[3] ? arguments[3] : null; - return { - $$typeof: REACT_PORTAL_TYPE, - key: null == key ? null : "" + key, - children: children, - containerInfo: containerInfo, - implementation: implementation - }; - } - function findHostInstance(component) { - var fiber = component._reactInternals; - if (undefined === fiber) { - if ("function" === typeof component.render) throw Error("Unable to find node on an unmounted component."); - component = Object.keys(component).join(","); - throw Error("Argument appears to not be a ReactComponent. Keys: " + component); - } - component = findCurrentHostFiber(fiber); - return null === component ? null : component.stateNode; - } - function updateContainer(element, container, parentComponent, callback) { - var current = container.current, - eventTime = requestEventTime(), - lane = requestUpdateLane(current); - a: if (parentComponent) { - parentComponent = parentComponent._reactInternals; - b: { - if (getNearestMountedFiber(parentComponent) !== parentComponent || 1 !== parentComponent.tag) throw Error("Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue."); - var JSCompiler_inline_result = parentComponent; - do { - switch (JSCompiler_inline_result.tag) { - case 3: - JSCompiler_inline_result = JSCompiler_inline_result.stateNode.context; - break b; - case 1: - if (isContextProvider(JSCompiler_inline_result.type)) { - JSCompiler_inline_result = JSCompiler_inline_result.stateNode.__reactInternalMemoizedMergedChildContext; - break b; - } - } - JSCompiler_inline_result = JSCompiler_inline_result.return; - } while (null !== JSCompiler_inline_result); - throw Error("Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue."); - } - if (1 === parentComponent.tag) { - var Component = parentComponent.type; - if (isContextProvider(Component)) { - parentComponent = processChildContext(parentComponent, Component, JSCompiler_inline_result); - break a; - } - } - parentComponent = JSCompiler_inline_result; - } else parentComponent = emptyContextObject; - null === container.context ? container.context = parentComponent : container.pendingContext = parentComponent; - container = createUpdate(eventTime, lane); - container.payload = { - element: element - }; - callback = undefined === callback ? null : callback; - null !== callback && (container.callback = callback); - element = enqueueUpdate(current, container, lane); - null !== element && (scheduleUpdateOnFiber(element, current, lane, eventTime), entangleTransitions(element, current, lane)); - return lane; - } - function emptyFindFiberByHostInstance() { - return null; - } - function findNodeHandle(componentOrHandle) { - if (null == componentOrHandle) return null; - if ("number" === typeof componentOrHandle) return componentOrHandle; - if (componentOrHandle._nativeTag) return componentOrHandle._nativeTag; - if (componentOrHandle.canonical && componentOrHandle.canonical._nativeTag) return componentOrHandle.canonical._nativeTag; - componentOrHandle = findHostInstance(componentOrHandle); - return null == componentOrHandle ? componentOrHandle : componentOrHandle.canonical ? componentOrHandle.canonical._nativeTag : componentOrHandle._nativeTag; - } - function onRecoverableError(error) { - console.error(error); - } - function unmountComponentAtNode(containerTag) { - var root = roots.get(containerTag); - root && updateContainer(null, root, null, function () { - roots.delete(containerTag); - }); - } - batchedUpdatesImpl = function batchedUpdatesImpl(fn, a) { - var prevExecutionContext = executionContext; - executionContext |= 1; - try { - return fn(a); - } finally { - executionContext = prevExecutionContext, 0 === executionContext && (workInProgressRootRenderTargetTime = _$$_REQUIRE(_dependencyMap[3]).unstable_now() + 500, includesLegacySyncCallbacks && flushSyncCallbacks()); - } - }; - var roots = new Map(), - devToolsConfig$jscomp$inline_979 = { - findFiberByHostInstance: getInstanceFromTag, - bundleType: 0, - version: "18.2.0-next-9e3b772b8-20220608", - rendererPackageName: "react-native-renderer", - rendererConfig: { - getInspectorDataForViewTag: function getInspectorDataForViewTag() { - throw Error("getInspectorDataForViewTag() is not available in production"); - }, - getInspectorDataForViewAtPoint: function () { - throw Error("getInspectorDataForViewAtPoint() is not available in production."); - }.bind(null, findNodeHandle) - } - }; - var internals$jscomp$inline_1247 = { - bundleType: devToolsConfig$jscomp$inline_979.bundleType, - version: devToolsConfig$jscomp$inline_979.version, - rendererPackageName: devToolsConfig$jscomp$inline_979.rendererPackageName, - rendererConfig: devToolsConfig$jscomp$inline_979.rendererConfig, - overrideHookState: null, - overrideHookStateDeletePath: null, - overrideHookStateRenamePath: null, - overrideProps: null, - overridePropsDeletePath: null, - overridePropsRenamePath: null, - setErrorHandler: null, - setSuspenseHandler: null, - scheduleUpdate: null, - currentDispatcherRef: ReactSharedInternals.ReactCurrentDispatcher, - findHostInstanceByFiber: function findHostInstanceByFiber(fiber) { - fiber = findCurrentHostFiber(fiber); - return null === fiber ? null : fiber.stateNode; - }, - findFiberByHostInstance: devToolsConfig$jscomp$inline_979.findFiberByHostInstance || emptyFindFiberByHostInstance, - findHostInstancesForRefresh: null, - scheduleRefresh: null, - scheduleRoot: null, - setRefreshHandler: null, - getCurrentFiber: null, - reconcilerVersion: "18.2.0-next-9e3b772b8-20220608" - }; - if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { - var hook$jscomp$inline_1248 = __REACT_DEVTOOLS_GLOBAL_HOOK__; - if (!hook$jscomp$inline_1248.isDisabled && hook$jscomp$inline_1248.supportsFiber) try { - rendererID = hook$jscomp$inline_1248.inject(internals$jscomp$inline_1247), injectedHook = hook$jscomp$inline_1248; - } catch (err) {} - } - exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = { - computeComponentStackForErrorReporting: function computeComponentStackForErrorReporting(reactTag) { - return (reactTag = getInstanceFromTag(reactTag)) ? getStackByFiberInDevAndProd(reactTag) : ""; - } - }; - exports.createPortal = function (children, containerTag) { - return createPortal(children, containerTag, null, 2 < arguments.length && undefined !== arguments[2] ? arguments[2] : null); - }; - exports.dispatchCommand = function (handle, command, args) { - null != handle._nativeTag && (null != handle._internalInstanceHandle ? (handle = handle._internalInstanceHandle.stateNode, null != handle && nativeFabricUIManager.dispatchCommand(handle.node, command, args)) : _$$_REQUIRE(_dependencyMap[2]).UIManager.dispatchViewManagerCommand(handle._nativeTag, command, args)); - }; - exports.findHostInstance_DEPRECATED = function (componentOrHandle) { - if (null == componentOrHandle) return null; - if (componentOrHandle._nativeTag) return componentOrHandle; - if (componentOrHandle.canonical && componentOrHandle.canonical._nativeTag) return componentOrHandle.canonical; - componentOrHandle = findHostInstance(componentOrHandle); - return null == componentOrHandle ? componentOrHandle : componentOrHandle.canonical ? componentOrHandle.canonical : componentOrHandle; - }; - exports.findNodeHandle = findNodeHandle; - exports.getInspectorDataForInstance = undefined; - exports.render = function (element, containerTag, callback) { - var root = roots.get(containerTag); - if (!root) { - root = new FiberRootNode(containerTag, 0, false, "", onRecoverableError); - var JSCompiler_inline_result = createFiber(3, null, null, 0); - root.current = JSCompiler_inline_result; - JSCompiler_inline_result.stateNode = root; - JSCompiler_inline_result.memoizedState = { - element: null, - isDehydrated: false, - cache: null, - transitions: null, - pendingSuspenseBoundaries: null - }; - initializeUpdateQueue(JSCompiler_inline_result); - roots.set(containerTag, root); - } - updateContainer(element, root, null, callback); - a: if (element = root.current, element.child) switch (element.child.tag) { - case 5: - element = element.child.stateNode; - break a; - default: - element = element.child.stateNode; - } else element = null; - return element; - }; - exports.sendAccessibilityEvent = function (handle, eventType) { - null != handle._nativeTag && (null != handle._internalInstanceHandle ? (handle = handle._internalInstanceHandle.stateNode, null != handle && nativeFabricUIManager.sendAccessibilityEvent(handle.node, eventType)) : _$$_REQUIRE(_dependencyMap[2]).legacySendAccessibilityEvent(handle._nativeTag, eventType)); - }; - exports.unmountComponentAtNode = unmountComponentAtNode; - exports.unmountComponentAtNodeAndRemoveContainer = function (containerTag) { - unmountComponentAtNode(containerTag); - _$$_REQUIRE(_dependencyMap[2]).UIManager.removeRootView(containerTag); - }; - exports.unstable_batchedUpdates = batchedUpdates; -},246,[61,3,227,243]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - * @generate-docs - */ - - 'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var _objectWithoutProperties2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _StyleSheet = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _Platform = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _View = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var React = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[5])); - var _excluded = ["animating", "color", "hidesWhenStopped", "onLayout", "size", "style"]; - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - var PlatformActivityIndicator = _Platform.default.OS === 'android' ? _$$_REQUIRE(_dependencyMap[6]) : _$$_REQUIRE(_dependencyMap[7]).default; - var GRAY = '#999999'; - var ActivityIndicator = function ActivityIndicator(_ref, forwardedRef) { - var _ref$animating = _ref.animating, - animating = _ref$animating === undefined ? true : _ref$animating, - _ref$color = _ref.color, - color = _ref$color === undefined ? _Platform.default.OS === 'ios' ? GRAY : null : _ref$color, - _ref$hidesWhenStopped = _ref.hidesWhenStopped, - hidesWhenStopped = _ref$hidesWhenStopped === undefined ? true : _ref$hidesWhenStopped, - onLayout = _ref.onLayout, - _ref$size = _ref.size, - size = _ref$size === undefined ? 'small' : _ref$size, - style = _ref.style, - restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded); - var sizeStyle; - var sizeProp; - switch (size) { - case 'small': - sizeStyle = styles.sizeSmall; - sizeProp = 'small'; - break; - case 'large': - sizeStyle = styles.sizeLarge; - sizeProp = 'large'; - break; - default: - sizeStyle = { - height: size, - width: size - }; - break; - } - var nativeProps = Object.assign({ - animating: animating, - color: color, - hidesWhenStopped: hidesWhenStopped - }, restProps, { - ref: forwardedRef, - style: sizeStyle, - size: sizeProp - }); - var androidProps = { - styleAttr: 'Normal', - indeterminate: true - }; - return /*#__PURE__*/(0, _$$_REQUIRE(_dependencyMap[8]).jsx)(_View.default, { - onLayout: onLayout, - style: _StyleSheet.default.compose(styles.container, style), - children: _Platform.default.OS === 'android' ? - /*#__PURE__*/ - // $FlowFixMe[prop-missing] Flow doesn't know when this is the android component - (0, _$$_REQUIRE(_dependencyMap[8]).jsx)(PlatformActivityIndicator, Object.assign({}, nativeProps, androidProps)) : - /*#__PURE__*/ - /* $FlowFixMe[prop-missing] (>=0.106.0 site=react_native_android_fb) This comment - * suppresses an error found when Flow v0.106 was deployed. To see the - * error, delete this comment and run Flow. */ - (0, _$$_REQUIRE(_dependencyMap[8]).jsx)(PlatformActivityIndicator, Object.assign({}, nativeProps)) - }); - }; - - /** - Displays a circular loading indicator. - - ```SnackPlayer name=ActivityIndicator%20Function%20Component%20Example - import React from "react"; - import { ActivityIndicator, StyleSheet, Text, View } from "react-native"; - - const App = () => ( - - - - - - - ); - - const styles = StyleSheet.create({ - container: { - flex: 1, - justifyContent: "center" - }, - horizontal: { - flexDirection: "row", - justifyContent: "space-around", - padding: 10 - } - }); - export default App; - ``` - - ```SnackPlayer name=ActivityIndicator%20Class%20Component%20Example - import React, { Component } from "react"; - import { ActivityIndicator, StyleSheet, Text, View } from "react-native"; - - class App extends Component { - render() { - return ( - - - - - - - ); - } - } - - const styles = StyleSheet.create({ - container: { - flex: 1, - justifyContent: "center" - }, - horizontal: { - flexDirection: "row", - justifyContent: "space-around", - padding: 10 - } - }); - export default App; - ``` - */ - - var ActivityIndicatorWithRef = React.forwardRef(ActivityIndicator); - ActivityIndicatorWithRef.displayName = 'ActivityIndicator'; - var styles = _StyleSheet.default.create({ - container: { - alignItems: 'center', - justifyContent: 'center' - }, - sizeSmall: { - width: 20, - height: 20 - }, - sizeLarge: { - width: 36, - height: 36 - } - }); - var _default = exports.default = ActivityIndicatorWithRef; -},247,[1,130,214,43,167,3,248,249,211]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - */ - - 'use strict'; - - module.exports = _$$_REQUIRE(_dependencyMap[0]); -},248,[242]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = undefined; - var _codegenNativeComponent = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - */ - var _default = exports.default = (0, _codegenNativeComponent.default)('ActivityIndicatorView', { - paperComponentName: 'RCTActivityIndicatorView' - }); -},249,[1,224]); -__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) { - /** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @format - * - * @generate-docs - */ - - 'use strict'; - - var _classCallCheck2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[1])); - var _createClass2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[2])); - var _inherits2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[3])); - var _possibleConstructorReturn2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[4])); - var _getPrototypeOf2 = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[5])); - var _StyleSheet = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[6])); - var _Text = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[7])); - var _Platform = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[8])); - var _TouchableNativeFeedback = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[9])); - var _TouchableOpacity = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[10])); - var _View = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[11])); - var _invariant = _$$_REQUIRE(_dependencyMap[0])(_$$_REQUIRE(_dependencyMap[12])); - var React = _interopRequireWildcard(_$$_REQUIRE(_dependencyMap[13])); - function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } - function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } - function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } - function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } - /** - A basic button component that should render nicely on any platform. Supports a - minimal level of customization. - - If this button doesn't look right for your app, you can build your own button - using [TouchableOpacity](touchableopacity) or - [TouchableWithoutFeedback](touchablewithoutfeedback). For inspiration, look at - the [source code for this button component][button:source]. Or, take a look at - the [wide variety of button components built by the community] - [button:examples]. - - [button:source]: - https://github.com/facebook/react-native/blob/HEAD/Libraries/Components/Button.js - - [button:examples]: - https://js.coach/?menu%5Bcollections%5D=React%20Native&page=1&query=button - - ```jsx -